Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- ; Listing generated by Microsoft (R) Optimizing Compiler Version 15.00.30729.01
- TITLE c:\Documents and Settings\student.MULTIMEDIA\Desktop\case study\case study\main_case_study.cpp
- .686P
- .XMM
- include listing.inc
- .model flat
- INCLUDELIB OLDNAMES
- PUBLIC ??_C@_0P@GHFPNOJB@bad?5allocation?$AA@ ; `string'
- PUBLIC ??0_Sentry_base@?$basic_ostream@DU?$char_traits@D@std@@@std@@QAE@AAV12@@Z ; std::basic_ostream<char,std::char_traits<char> >::_Sentry_base::_Sentry_base
- PUBLIC ??0sentry@?$basic_ostream@DU?$char_traits@D@std@@@std@@QAE@AAV12@@Z ; std::basic_ostream<char,std::char_traits<char> >::sentry::sentry
- PUBLIC ??1_Sentry_base@?$basic_ostream@DU?$char_traits@D@std@@@std@@QAE@XZ ; std::basic_ostream<char,std::char_traits<char> >::_Sentry_base::~_Sentry_base
- PUBLIC ??1sentry@?$basic_ostream@DU?$char_traits@D@std@@@std@@QAE@XZ ; std::basic_ostream<char,std::char_traits<char> >::sentry::~sentry
- PUBLIC ??Bsentry@?$basic_ostream@DU?$char_traits@D@std@@@std@@QBE_NXZ ; std::basic_ostream<char,std::char_traits<char> >::sentry::operator bool
- PUBLIC ??$?6U?$char_traits@D@std@@@std@@YAAAV?$basic_ostream@DU?$char_traits@D@std@@@0@AAV10@PBD@Z ; std::operator<<<std::char_traits<char> >
- PUBLIC ??_C@_0L@NFAOJDFF@?5seconds?4?6?$AA@ ; `string'
- PUBLIC ??_C@_0CE@KABODEEL@?5calls?5to?5non?5inline?5function?5to@ ; `string'
- PUBLIC ??_C@_0CA@OLIKOKKF@?5calls?5to?5inline?5function?5took?5?$AA@ ; `string'
- EXTRN @__security_check_cookie@4:PROC
- EXTRN __imp__getchar:PROC
- EXTRN __imp_??6?$basic_ostream@DU?$char_traits@D@std@@@std@@QAEAAV01@I@Z:PROC
- EXTRN __imp_??6?$basic_ostream@DU?$char_traits@D@std@@@std@@QAEAAV01@J@Z:PROC
- EXTRN __imp_?cout@std@@3V?$basic_ostream@DU?$char_traits@D@std@@@1@A:BYTE
- EXTRN __imp__clock:PROC
- EXTRN __imp_?length@?$char_traits@D@std@@SAIPBD@Z:PROC
- EXTRN __imp_?eq_int_type@?$char_traits@D@std@@SA_NABH0@Z:PROC
- EXTRN __imp_?eof@?$char_traits@D@std@@SAHXZ:PROC
- EXTRN __imp_?flags@ios_base@std@@QBEHXZ:PROC
- EXTRN __imp_?width@ios_base@std@@QBEHXZ:PROC
- EXTRN __imp_?width@ios_base@std@@QAEHH@Z:PROC
- EXTRN __imp_?sputc@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QAEHD@Z:PROC
- EXTRN __imp_?sputn@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QAEHPBDH@Z:PROC
- EXTRN __imp_?setstate@?$basic_ios@DU?$char_traits@D@std@@@std@@QAEXH_N@Z:PROC
- EXTRN __imp_?fill@?$basic_ios@DU?$char_traits@D@std@@@std@@QBEDXZ:PROC
- EXTRN __imp_?rdstate@ios_base@std@@QBEHXZ:PROC
- EXTRN __imp_?good@ios_base@std@@QBE_NXZ:PROC
- EXTRN __imp_?tie@?$basic_ios@DU?$char_traits@D@std@@@std@@QBEPAV?$basic_ostream@DU?$char_traits@D@std@@@2@XZ:PROC
- EXTRN __imp_?flush@?$basic_ostream@DU?$char_traits@D@std@@@std@@QAEAAV12@XZ:PROC
- EXTRN __imp_?_Lock@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QAEXXZ:PROC
- EXTRN __imp_?uncaught_exception@std@@YA_NXZ:PROC
- EXTRN __imp_?_Osfx@?$basic_ostream@DU?$char_traits@D@std@@@std@@QAEXXZ:PROC
- EXTRN __imp_?_Unlock@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QAEXXZ:PROC
- EXTRN __imp_?rdbuf@?$basic_ios@DU?$char_traits@D@std@@@std@@QBEPAV?$basic_streambuf@DU?$char_traits@D@std@@@2@XZ:PROC
- ; COMDAT ??_C@_0CA@OLIKOKKF@?5calls?5to?5inline?5function?5took?5?$AA@
- CONST SEGMENT
- ??_C@_0CA@OLIKOKKF@?5calls?5to?5inline?5function?5took?5?$AA@ DB ' calls '
- DB 'to inline function took ', 00H ; `string'
- CONST ENDS
- ; COMDAT ??_C@_0CE@KABODEEL@?5calls?5to?5non?5inline?5function?5to@
- CONST SEGMENT
- ??_C@_0CE@KABODEEL@?5calls?5to?5non?5inline?5function?5to@ DB ' calls to '
- DB 'non inline function took ', 00H ; `string'
- CONST ENDS
- ; COMDAT ??_C@_0L@NFAOJDFF@?5seconds?4?6?$AA@
- CONST SEGMENT
- ??_C@_0L@NFAOJDFF@?5seconds?4?6?$AA@ DB ' seconds.', 0aH, 00H ; `string'
- __bad_alloc_Message DD FLAT:??_C@_0P@GHFPNOJB@bad?5allocation?$AA@
- ; COMDAT ??_C@_0P@GHFPNOJB@bad?5allocation?$AA@
- CONST SEGMENT
- ??_C@_0P@GHFPNOJB@bad?5allocation?$AA@ DB 'bad allocation', 00H ; `string'
- ; Function compile flags: /Ogtpy
- ; File c:\program files\microsoft visual studio 9.0\vc\include\ostream
- CONST ENDS
- ; COMDAT ??1_Sentry_base@?$basic_ostream@DU?$char_traits@D@std@@@std@@QAE@XZ
- _TEXT SEGMENT
- ??1_Sentry_base@?$basic_ostream@DU?$char_traits@D@std@@@std@@QAE@XZ PROC ; std::basic_ostream<char,std::char_traits<char> >::_Sentry_base::~_Sentry_base, COMDAT
- ; _this$ = eax
- ; 82 : if (_Myostr.rdbuf() != 0)
- mov eax, DWORD PTR [eax]
- mov ecx, DWORD PTR [eax]
- mov edx, DWORD PTR [ecx+4]
- mov eax, DWORD PTR [edx+eax+40]
- test eax, eax
- je SHORT $LN1@Sentry_bas
- ; 83 : _Myostr.rdbuf()->_Unlock();
- mov ecx, eax
- jmp DWORD PTR __imp_?_Unlock@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QAEXXZ
- $LN1@Sentry_bas:
- ; 84 : }
- ret 0
- ??1_Sentry_base@?$basic_ostream@DU?$char_traits@D@std@@@std@@QAE@XZ ENDP ; std::basic_ostream<char,std::char_traits<char> >::_Sentry_base::~_Sentry_base
- ; Function compile flags: /Ogtpy
- _TEXT ENDS
- ; COMDAT ??0_Sentry_base@?$basic_ostream@DU?$char_traits@D@std@@@std@@QAE@AAV12@@Z
- _TEXT SEGMENT
- ??0_Sentry_base@?$basic_ostream@DU?$char_traits@D@std@@@std@@QAE@AAV12@@Z PROC ; std::basic_ostream<char,std::char_traits<char> >::_Sentry_base::_Sentry_base, COMDAT
- ; _this$ = esi
- ; __Ostr$ = eax
- ; 75 : { // lock the stream buffer, if there
- mov DWORD PTR [esi], eax
- ; 76 : if (_Myostr.rdbuf() != 0)
- mov ecx, DWORD PTR [eax]
- mov edx, DWORD PTR [ecx+4]
- mov eax, DWORD PTR [edx+eax+40]
- test eax, eax
- je SHORT $LN8@Sentry_bas@2
- ; 77 : _Myostr.rdbuf()->_Lock();
- mov ecx, eax
- call DWORD PTR __imp_?_Lock@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QAEXXZ
- $LN8@Sentry_bas@2:
- ; 78 : }
- mov eax, esi
- ret 0
- ??0_Sentry_base@?$basic_ostream@DU?$char_traits@D@std@@@std@@QAE@AAV12@@Z ENDP ; std::basic_ostream<char,std::char_traits<char> >::_Sentry_base::_Sentry_base
- ; Function compile flags: /Ogtpy
- _TEXT ENDS
- ; COMDAT ??Bsentry@?$basic_ostream@DU?$char_traits@D@std@@@std@@QBE_NXZ
- _TEXT SEGMENT
- ??Bsentry@?$basic_ostream@DU?$char_traits@D@std@@@std@@QBE_NXZ PROC ; std::basic_ostream<char,std::char_traits<char> >::sentry::operator bool, COMDAT
- ; _this$ = eax
- ; 116 : return (_Ok);
- mov al, BYTE PTR [eax+4]
- ; 117 : }
- ret 0
- ??Bsentry@?$basic_ostream@DU?$char_traits@D@std@@@std@@QBE_NXZ ENDP ; std::basic_ostream<char,std::char_traits<char> >::sentry::operator bool
- _TEXT ENDS
- EXTRN ___security_cookie:DWORD
- EXTRN ___CxxFrameHandler3:PROC
- ; COMDAT xdata$x
- ; File c:\program files\microsoft visual studio 9.0\vc\include\ios
- xdata$x SEGMENT
- __unwindtable$??1sentry@?$basic_ostream@DU?$char_traits@D@std@@@std@@QAE@XZ DD 0ffffffffH
- DD FLAT:__unwindfunclet$??1sentry@?$basic_ostream@DU?$char_traits@D@std@@@std@@QAE@XZ$0
- __ehfuncinfo$??1sentry@?$basic_ostream@DU?$char_traits@D@std@@@std@@QAE@XZ DD 019930522H
- DD 01H
- DD FLAT:__unwindtable$??1sentry@?$basic_ostream@DU?$char_traits@D@std@@@std@@QAE@XZ
- DD 2 DUP(00H)
- DD 2 DUP(00H)
- DD 00H
- DD 01H
- ; Function compile flags: /Ogtpy
- ; File c:\program files\microsoft visual studio 9.0\vc\include\ostream
- xdata$x ENDS
- ; COMDAT ??1sentry@?$basic_ostream@DU?$char_traits@D@std@@@std@@QAE@XZ
- _TEXT SEGMENT
- __$EHRec$ = -12 ; size = 12
- _this$ = 8 ; size = 4
- ??1sentry@?$basic_ostream@DU?$char_traits@D@std@@@std@@QAE@XZ PROC ; std::basic_ostream<char,std::char_traits<char> >::sentry::~sentry, COMDAT
- ; 102 : { // destroy the object
- push -1
- push __ehhandler$??1sentry@?$basic_ostream@DU?$char_traits@D@std@@@std@@QAE@XZ
- mov eax, DWORD PTR fs:0
- push eax
- push esi
- mov eax, DWORD PTR ___security_cookie
- xor eax, esp
- push eax
- lea eax, DWORD PTR __$EHRec$[esp+20]
- mov DWORD PTR fs:0, eax
- mov esi, DWORD PTR _this$[esp+16]
- mov DWORD PTR __$EHRec$[esp+28], 0
- ; 103 :
- ; 104 : #if _HAS_EXCEPTIONS
- ; 105 : if (!_XSTD uncaught_exception())
- call DWORD PTR __imp_?uncaught_exception@std@@YA_NXZ
- test al, al
- jne SHORT $LN1@sentry
- ; 106 : this->_Myostr._Osfx();
- mov ecx, DWORD PTR [esi]
- call DWORD PTR __imp_?_Osfx@?$basic_ostream@DU?$char_traits@D@std@@@std@@QAEXXZ
- $LN1@sentry:
- ; 107 : }
- mov DWORD PTR __$EHRec$[esp+28], -1
- mov eax, DWORD PTR [esi]
- mov ecx, DWORD PTR [eax]
- mov edx, DWORD PTR [ecx+4]
- mov eax, DWORD PTR [edx+eax+40]
- test eax, eax
- je SHORT $LN5@sentry
- mov ecx, eax
- call DWORD PTR __imp_?_Unlock@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QAEXXZ
- $LN5@sentry:
- mov ecx, DWORD PTR __$EHRec$[esp+20]
- mov DWORD PTR fs:0, ecx
- pop ecx
- pop esi
- add esp, 12 ; 0000000cH
- ret 4
- _TEXT ENDS
- ; COMDAT text$x
- text$x SEGMENT
- __unwindfunclet$??1sentry@?$basic_ostream@DU?$char_traits@D@std@@@std@@QAE@XZ$0:
- mov eax, DWORD PTR _this$[ebp-4]
- jmp ??1_Sentry_base@?$basic_ostream@DU?$char_traits@D@std@@@std@@QAE@XZ ; std::basic_ostream<char,std::char_traits<char> >::_Sentry_base::~_Sentry_base
- __ehhandler$??1sentry@?$basic_ostream@DU?$char_traits@D@std@@@std@@QAE@XZ:
- mov edx, DWORD PTR [esp+8]
- lea eax, DWORD PTR [edx-4]
- mov ecx, DWORD PTR [edx-8]
- xor ecx, eax
- call @__security_check_cookie@4
- mov eax, OFFSET __ehfuncinfo$??1sentry@?$basic_ostream@DU?$char_traits@D@std@@@std@@QAE@XZ
- jmp ___CxxFrameHandler3
- text$x ENDS
- ??1sentry@?$basic_ostream@DU?$char_traits@D@std@@@std@@QAE@XZ ENDP ; std::basic_ostream<char,std::char_traits<char> >::sentry::~sentry
- ; COMDAT xdata$x
- ; File c:\program files\microsoft visual studio 9.0\vc\include\xiosbase
- xdata$x SEGMENT
- __unwindtable$??0sentry@?$basic_ostream@DU?$char_traits@D@std@@@std@@QAE@AAV12@@Z DD 0ffffffffH
- DD FLAT:__unwindfunclet$??0sentry@?$basic_ostream@DU?$char_traits@D@std@@@std@@QAE@AAV12@@Z$0
- __ehfuncinfo$??0sentry@?$basic_ostream@DU?$char_traits@D@std@@@std@@QAE@AAV12@@Z DD 019930522H
- DD 01H
- DD FLAT:__unwindtable$??0sentry@?$basic_ostream@DU?$char_traits@D@std@@@std@@QAE@AAV12@@Z
- DD 2 DUP(00H)
- DD 2 DUP(00H)
- DD 00H
- DD 01H
- ; Function compile flags: /Ogtpy
- ; File c:\program files\microsoft visual studio 9.0\vc\include\ostream
- xdata$x ENDS
- ; COMDAT ??0sentry@?$basic_ostream@DU?$char_traits@D@std@@@std@@QAE@AAV12@@Z
- _TEXT SEGMENT
- __$EHRec$ = -12 ; size = 12
- _this$ = 8 ; size = 4
- ??0sentry@?$basic_ostream@DU?$char_traits@D@std@@@std@@QAE@AAV12@@Z PROC ; std::basic_ostream<char,std::char_traits<char> >::sentry::sentry, COMDAT
- ; __Ostr$ = esi
- ; 95 : { // construct locking and testing stream
- push -1
- push __ehhandler$??0sentry@?$basic_ostream@DU?$char_traits@D@std@@@std@@QAE@AAV12@@Z
- mov eax, DWORD PTR fs:0
- push eax
- push edi
- mov eax, DWORD PTR ___security_cookie
- xor eax, esp
- push eax
- lea eax, DWORD PTR __$EHRec$[esp+20]
- mov DWORD PTR fs:0, eax
- mov edi, DWORD PTR _this$[esp+16]
- mov DWORD PTR [edi], esi
- mov eax, DWORD PTR [esi]
- mov ecx, DWORD PTR [eax+4]
- mov ecx, DWORD PTR [ecx+esi+40]
- test ecx, ecx
- je SHORT $LN5@sentry@2
- call DWORD PTR __imp_?_Lock@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QAEXXZ
- $LN5@sentry@2:
- mov DWORD PTR __$EHRec$[esp+28], 0
- ; 96 : if (_Ostr.good() && _Ostr.tie() != 0)
- mov edx, DWORD PTR [esi]
- mov eax, DWORD PTR [edx+4]
- add eax, esi
- cmp DWORD PTR [eax+8], 0
- jne SHORT $LN1@sentry@2
- mov eax, DWORD PTR [eax+44]
- test eax, eax
- je SHORT $LN1@sentry@2
- ; 97 : _Ostr.tie()->flush();
- mov ecx, eax
- call DWORD PTR __imp_?flush@?$basic_ostream@DU?$char_traits@D@std@@@std@@QAEAAV12@XZ
- $LN1@sentry@2:
- ; 98 : _Ok = _Ostr.good(); // store test only after flushing tie
- mov ecx, DWORD PTR [esi]
- mov edx, DWORD PTR [ecx+4]
- cmp DWORD PTR [edx+esi+8], 0
- sete al
- mov BYTE PTR [edi+4], al
- ; 99 : }
- mov eax, edi
- mov ecx, DWORD PTR __$EHRec$[esp+20]
- mov DWORD PTR fs:0, ecx
- pop ecx
- pop edi
- add esp, 12 ; 0000000cH
- ret 4
- _TEXT ENDS
- ; COMDAT text$x
- text$x SEGMENT
- __unwindfunclet$??0sentry@?$basic_ostream@DU?$char_traits@D@std@@@std@@QAE@AAV12@@Z$0:
- mov eax, DWORD PTR _this$[ebp-4]
- jmp ??1_Sentry_base@?$basic_ostream@DU?$char_traits@D@std@@@std@@QAE@XZ ; std::basic_ostream<char,std::char_traits<char> >::_Sentry_base::~_Sentry_base
- __ehhandler$??0sentry@?$basic_ostream@DU?$char_traits@D@std@@@std@@QAE@AAV12@@Z:
- mov edx, DWORD PTR [esp+8]
- lea eax, DWORD PTR [edx-4]
- mov ecx, DWORD PTR [edx-8]
- xor ecx, eax
- call @__security_check_cookie@4
- mov eax, OFFSET __ehfuncinfo$??0sentry@?$basic_ostream@DU?$char_traits@D@std@@@std@@QAE@AAV12@@Z
- jmp ___CxxFrameHandler3
- text$x ENDS
- ??0sentry@?$basic_ostream@DU?$char_traits@D@std@@@std@@QAE@AAV12@@Z ENDP ; std::basic_ostream<char,std::char_traits<char> >::sentry::sentry
- PUBLIC __real@4067a1557d6ec409
- PUBLIC ?blank@@YANNNN@Z ; blank
- EXTRN __fltused:DWORD
- ; COMDAT __real@4067a1557d6ec409
- ; File c:\documents and settings\student.multimedia\desktop\case study\case study\main_case_study.cpp
- CONST SEGMENT
- __real@4067a1557d6ec409 DQ 04067a1557d6ec409r ; 189.042
- ; Function compile flags: /Ogtpy
- CONST ENDS
- ; COMDAT ?blank@@YANNNN@Z
- _TEXT SEGMENT
- ?blank@@YANNNN@Z PROC ; blank, COMDAT
- ; 13 : a = (3.1415 / 1.2345) / 4 + 5;
- ; 14 : b = 9.999 / a + (a * a);
- ; 15 : c = a *=b;
- ; 16 : return c;
- fld QWORD PTR __real@4067a1557d6ec409
- ; 17 : }
- ret 0
- ?blank@@YANNNN@Z ENDP ; blank
- _TEXT ENDS
- ; COMDAT xdata$x
- ; File c:\program files\microsoft visual studio 9.0\vc\include\ios
- xdata$x SEGMENT
- __unwindtable$??$?6U?$char_traits@D@std@@@std@@YAAAV?$basic_ostream@DU?$char_traits@D@std@@@0@AAV10@PBD@Z DD 0ffffffffH
- DD FLAT:__unwindfunclet$??$?6U?$char_traits@D@std@@@std@@YAAAV?$basic_ostream@DU?$char_traits@D@std@@@0@AAV10@PBD@Z$2
- DD 00H
- DD 00H
- DD 00H
- DD 00H
- DD 0ffffffffH
- DD FLAT:__unwindfunclet$??$?6U?$char_traits@D@std@@@std@@YAAAV?$basic_ostream@DU?$char_traits@D@std@@@0@AAV10@PBD@Z$3
- __catchsym$??$?6U?$char_traits@D@std@@@std@@YAAAV?$basic_ostream@DU?$char_traits@D@std@@@0@AAV10@PBD@Z$4 DD 040H
- DD 00H
- DD 00H
- DD FLAT:__catch$??$?6U?$char_traits@D@std@@@std@@YAAAV?$basic_ostream@DU?$char_traits@D@std@@@0@AAV10@PBD@Z$0
- __tryblocktable$??$?6U?$char_traits@D@std@@@std@@YAAAV?$basic_ostream@DU?$char_traits@D@std@@@0@AAV10@PBD@Z DD 01H
- DD 01H
- DD 02H
- DD 01H
- DD FLAT:__catchsym$??$?6U?$char_traits@D@std@@@std@@YAAAV?$basic_ostream@DU?$char_traits@D@std@@@0@AAV10@PBD@Z$4
- __ehfuncinfo$??$?6U?$char_traits@D@std@@@std@@YAAAV?$basic_ostream@DU?$char_traits@D@std@@@0@AAV10@PBD@Z DD 019930522H
- DD 04H
- DD FLAT:__unwindtable$??$?6U?$char_traits@D@std@@@std@@YAAAV?$basic_ostream@DU?$char_traits@D@std@@@0@AAV10@PBD@Z
- DD 01H
- DD FLAT:__tryblocktable$??$?6U?$char_traits@D@std@@@std@@YAAAV?$basic_ostream@DU?$char_traits@D@std@@@0@AAV10@PBD@Z
- DD 2 DUP(00H)
- DD 00H
- DD 01H
- ; Function compile flags: /Ogtpy
- ; File c:\program files\microsoft visual studio 9.0\vc\include\ostream
- xdata$x ENDS
- ; COMDAT ??$?6U?$char_traits@D@std@@@std@@YAAAV?$basic_ostream@DU?$char_traits@D@std@@@0@AAV10@PBD@Z
- _TEXT SEGMENT
- __Ok$ = -32 ; size = 8
- $T23720 = -24 ; size = 1
- $T23702 = -24 ; size = 1
- __State$ = -20 ; size = 4
- __$EHRec$ = -16 ; size = 16
- __Ostr$ = 8 ; size = 4
- __Val$ = 12 ; size = 4
- ??$?6U?$char_traits@D@std@@@std@@YAAAV?$basic_ostream@DU?$char_traits@D@std@@@0@AAV10@PBD@Z PROC ; std::operator<<<std::char_traits<char> >, COMDAT
- ; 741 : { // insert NTBS into char stream
- push ebp
- mov ebp, esp
- push -1
- push __ehhandler$??$?6U?$char_traits@D@std@@@std@@YAAAV?$basic_ostream@DU?$char_traits@D@std@@@0@AAV10@PBD@Z
- mov eax, DWORD PTR fs:0
- push eax
- sub esp, 20 ; 00000014H
- push ebx
- push esi
- push edi
- mov eax, DWORD PTR ___security_cookie
- xor eax, ebp
- push eax
- lea eax, DWORD PTR __$EHRec$[ebp+4]
- mov DWORD PTR fs:0, eax
- mov DWORD PTR __$EHRec$[ebp], esp
- mov esi, DWORD PTR __Ostr$[ebp]
- ; 742 : typedef char _Elem;
- ; 743 : typedef basic_ostream<_Elem, _Traits> _Myos;
- ; 744 : ios_base::iostate _State = ios_base::goodbit;
- ; 745 : streamsize _Count = (streamsize)_Traits::length(_Val); // may overflow
- mov eax, DWORD PTR __Val$[ebp]
- xor ebx, ebx
- mov DWORD PTR __State$[ebp], ebx
- lea edx, DWORD PTR [eax+1]
- npad 7
- $LL72@operator:
- mov cl, BYTE PTR [eax]
- inc eax
- test cl, cl
- jne SHORT $LL72@operator
- sub eax, edx
- mov edi, eax
- ; 746 : streamsize _Pad = _Ostr.width() <= 0 || _Ostr.width() <= _Count
- ; 747 : ? 0 : _Ostr.width() - _Count;
- mov eax, DWORD PTR [esi]
- mov ecx, DWORD PTR [eax+4]
- mov eax, DWORD PTR [ecx+esi+24]
- cmp eax, ebx
- jle SHORT $LN17@operator
- cmp eax, edi
- jle SHORT $LN17@operator
- sub eax, edi
- mov ebx, eax
- $LN17@operator:
- ; 748 : const typename _Myos::sentry _Ok(_Ostr);
- lea edx, DWORD PTR __Ok$[ebp]
- push edx
- call ??0sentry@?$basic_ostream@DU?$char_traits@D@std@@@std@@QAE@AAV12@@Z ; std::basic_ostream<char,std::char_traits<char> >::sentry::sentry
- mov DWORD PTR __$EHRec$[ebp+12], 0
- ; 749 :
- ; 750 : if (!_Ok)
- cmp BYTE PTR __Ok$[ebp+4], 0
- jne SHORT $LN14@operator
- ; 751 : _State |= ios_base::badbit;
- mov DWORD PTR __State$[ebp], 4
- ; 752 : else
- jmp SHORT $LN22@operator
- $LN14@operator:
- ; 753 : { // state okay, insert
- ; 754 : _TRY_IO_BEGIN
- mov BYTE PTR __$EHRec$[ebp+12], 1
- ; 755 : if ((_Ostr.flags() & ios_base::adjustfield) != ios_base::left)
- mov eax, DWORD PTR [esi]
- mov ecx, DWORD PTR [eax+4]
- mov eax, DWORD PTR [ecx+esi+16]
- and eax, 448 ; 000001c0H
- cmp eax, 64 ; 00000040H
- je SHORT $LN70@operator
- $LL10@operator:
- ; 756 : for (; 0 < _Pad; --_Pad) // pad on left
- test ebx, ebx
- jle SHORT $LN8@operator
- ; 757 : if (_Traits::eq_int_type(_Traits::eof(),
- ; 758 : _Ostr.rdbuf()->sputc(_Ostr.fill())))
- mov edx, DWORD PTR [esi]
- mov eax, DWORD PTR [edx+4]
- mov cl, BYTE PTR [eax+esi+48]
- add eax, esi
- mov eax, DWORD PTR [eax+40]
- mov BYTE PTR $T23702[ebp], cl
- mov edx, DWORD PTR $T23702[ebp]
- push edx
- mov ecx, eax
- call DWORD PTR __imp_?sputc@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QAEHD@Z
- cmp eax, -1
- jne $LN9@operator
- ; 759 : { // insertion failed, quit
- ; 760 : _State |= ios_base::badbit;
- or DWORD PTR __State$[ebp], 4
- $LN8@operator:
- ; 761 : break;
- ; 762 : }
- ; 763 :
- ; 764 : if (_State == ios_base::goodbit
- ; 765 : && _Ostr.rdbuf()->sputn(_Val, _Count) != _Count)
- cmp DWORD PTR __State$[ebp], 0
- jne SHORT $LN2@operator
- $LN70@operator:
- mov eax, DWORD PTR [esi]
- mov ecx, DWORD PTR [eax+4]
- mov edx, DWORD PTR __Val$[ebp]
- mov ecx, DWORD PTR [ecx+esi+40]
- push edi
- push edx
- call DWORD PTR __imp_?sputn@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QAEHPBDH@Z
- cmp eax, edi
- je SHORT $LL71@operator
- ; 766 : _State |= ios_base::badbit;
- mov DWORD PTR __State$[ebp], 4
- $LN2@operator:
- ; 775 : }
- ; 776 : _Ostr.width(0);
- mov eax, DWORD PTR [esi]
- mov eax, DWORD PTR [eax+4]
- add eax, esi
- xor ecx, ecx
- mov DWORD PTR [eax+24], ecx
- mov DWORD PTR __$EHRec$[ebp+12], ecx
- $LN22@operator:
- ; 778 : }
- ; 779 :
- ; 780 : _Ostr.setstate(_State);
- mov ecx, DWORD PTR __State$[ebp]
- mov edx, DWORD PTR [esi]
- push 0
- push ecx
- mov ecx, DWORD PTR [edx+4]
- add ecx, esi
- call DWORD PTR __imp_?setstate@?$basic_ios@DU?$char_traits@D@std@@@std@@QAEXH_N@Z
- ; 781 : return (_Ostr);
- mov DWORD PTR __$EHRec$[ebp+12], 3
- call DWORD PTR __imp_?uncaught_exception@std@@YA_NXZ
- test al, al
- jne SHORT $LN56@operator
- mov ecx, DWORD PTR __Ok$[ebp]
- call DWORD PTR __imp_?_Osfx@?$basic_ostream@DU?$char_traits@D@std@@@std@@QAEXXZ
- $LN56@operator:
- mov DWORD PTR __$EHRec$[ebp+12], -1
- mov eax, DWORD PTR __Ok$[ebp]
- mov ecx, DWORD PTR [eax]
- mov edx, DWORD PTR [ecx+4]
- mov ecx, DWORD PTR [edx+eax+40]
- test ecx, ecx
- je SHORT $LN74@operator
- call DWORD PTR __imp_?_Unlock@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QAEXXZ
- $LN74@operator:
- mov eax, esi
- ; 782 : }
- mov ecx, DWORD PTR __$EHRec$[ebp+4]
- mov DWORD PTR fs:0, ecx
- pop ecx
- pop edi
- pop esi
- pop ebx
- mov esp, ebp
- pop ebp
- ret 0
- $LN9@operator:
- ; 756 : for (; 0 < _Pad; --_Pad) // pad on left
- dec ebx
- jmp $LL10@operator
- npad 4
- $LL71@operator:
- ; 767 :
- ; 768 : if (_State == ios_base::goodbit)
- ; 769 : for (; 0 < _Pad; --_Pad) // pad on right
- test ebx, ebx
- jle SHORT $LN2@operator
- ; 770 : if (_Traits::eq_int_type(_Traits::eof(),
- ; 771 : _Ostr.rdbuf()->sputc(_Ostr.fill())))
- mov eax, DWORD PTR [esi]
- mov ecx, DWORD PTR [eax+4]
- mov dl, BYTE PTR [ecx+esi+48]
- lea eax, DWORD PTR [ecx+esi]
- mov eax, DWORD PTR [eax+40]
- mov BYTE PTR $T23720[ebp], dl
- mov ecx, DWORD PTR $T23720[ebp]
- push ecx
- mov ecx, eax
- call DWORD PTR __imp_?sputc@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QAEHD@Z
- cmp eax, -1
- jne SHORT $LN3@operator
- ; 772 : { // insertion failed, quit
- ; 773 : _State |= ios_base::badbit;
- or DWORD PTR __State$[ebp], 4
- ; 774 : break;
- jmp $LN2@operator
- $LN3@operator:
- ; 767 :
- ; 768 : if (_State == ios_base::goodbit)
- ; 769 : for (; 0 < _Pad; --_Pad) // pad on right
- dec ebx
- jmp SHORT $LL71@operator
- __catch$??$?6U?$char_traits@D@std@@@std@@YAAAV?$basic_ostream@DU?$char_traits@D@std@@@0@AAV10@PBD@Z$0:
- ; 777 : _CATCH_IO_(_Ostr)
- mov eax, DWORD PTR __Ostr$[ebp]
- mov edx, DWORD PTR [eax]
- mov ecx, DWORD PTR [edx+4]
- push 1
- push 4
- add ecx, eax
- call DWORD PTR __imp_?setstate@?$basic_ios@DU?$char_traits@D@std@@@std@@QAEXH_N@Z
- mov DWORD PTR __$EHRec$[ebp+12], 0
- mov eax, $LN23@operator
- ret 0
- $LN23@operator:
- mov esi, DWORD PTR __Ostr$[ebp]
- jmp $LN22@operator
- _TEXT ENDS
- ; COMDAT text$x
- text$x SEGMENT
- __unwindfunclet$??$?6U?$char_traits@D@std@@@std@@YAAAV?$basic_ostream@DU?$char_traits@D@std@@@0@AAV10@PBD@Z$2:
- lea eax, DWORD PTR __Ok$[ebp]
- push eax
- call ??1sentry@?$basic_ostream@DU?$char_traits@D@std@@@std@@QAE@XZ ; std::basic_ostream<char,std::char_traits<char> >::sentry::~sentry
- ret 0
- __unwindfunclet$??$?6U?$char_traits@D@std@@@std@@YAAAV?$basic_ostream@DU?$char_traits@D@std@@@0@AAV10@PBD@Z$3:
- lea eax, DWORD PTR __Ok$[ebp]
- jmp ??1_Sentry_base@?$basic_ostream@DU?$char_traits@D@std@@@std@@QAE@XZ ; std::basic_ostream<char,std::char_traits<char> >::_Sentry_base::~_Sentry_base
- __ehhandler$??$?6U?$char_traits@D@std@@@std@@YAAAV?$basic_ostream@DU?$char_traits@D@std@@@0@AAV10@PBD@Z:
- mov edx, DWORD PTR [esp+8]
- lea eax, DWORD PTR [edx+12]
- mov ecx, DWORD PTR [edx-36]
- xor ecx, eax
- call @__security_check_cookie@4
- mov eax, OFFSET __ehfuncinfo$??$?6U?$char_traits@D@std@@@std@@YAAAV?$basic_ostream@DU?$char_traits@D@std@@@0@AAV10@PBD@Z
- jmp ___CxxFrameHandler3
- text$x ENDS
- ??$?6U?$char_traits@D@std@@@std@@YAAAV?$basic_ostream@DU?$char_traits@D@std@@@0@AAV10@PBD@Z ENDP ; std::operator<<<std::char_traits<char> >
- PUBLIC _main
- ; Function compile flags: /Ogtpy
- ; File c:\documents and settings\student.multimedia\desktop\case study\case study\main_case_study.cpp
- ; COMDAT _main
- _TEXT SEGMENT
- _main PROC ; COMDAT
- ; 29 : int main(){
- push ebp
- mov ebp, esp
- and esp, -8 ; fffffff8H
- push esi
- ; 30 : const unsigned int maxUINT = -1;
- ; 31 : clock_t start = clock();
- mov esi, DWORD PTR __imp__clock
- push edi
- call esi
- mov edi, eax
- ; 32 :
- ; 33 : //============================ NON-INLINE TEST ===============================//
- ; 34 : for(unsigned int i = 0; i < maxUINT; ++i)
- ; 35 : blank(1.1,2.2,3.3);
- ; 36 :
- ; 37 : clock_t end = clock();
- call esi
- ; 38 : std::cout << maxUINT << " calls to non inline function took "
- ; 39 : << (end - start)/CLOCKS_PER_SEC << " seconds.\n";
- sub eax, edi
- mov ecx, eax
- mov eax, 274877907 ; 10624dd3H
- imul ecx
- mov ecx, DWORD PTR __imp_?cout@std@@3V?$basic_ostream@DU?$char_traits@D@std@@@1@A
- sar edx, 6
- mov eax, edx
- push OFFSET ??_C@_0L@NFAOJDFF@?5seconds?4?6?$AA@
- shr eax, 31 ; 0000001fH
- add eax, edx
- push eax
- push OFFSET ??_C@_0CE@KABODEEL@?5calls?5to?5non?5inline?5function?5to@
- push -1
- call DWORD PTR __imp_??6?$basic_ostream@DU?$char_traits@D@std@@@std@@QAEAAV01@I@Z
- push eax
- call ??$?6U?$char_traits@D@std@@@std@@YAAAV?$basic_ostream@DU?$char_traits@D@std@@@0@AAV10@PBD@Z ; std::operator<<<std::char_traits<char> >
- add esp, 8
- mov ecx, eax
- call DWORD PTR __imp_??6?$basic_ostream@DU?$char_traits@D@std@@@std@@QAEAAV01@J@Z
- push eax
- call ??$?6U?$char_traits@D@std@@@std@@YAAAV?$basic_ostream@DU?$char_traits@D@std@@@0@AAV10@PBD@Z ; std::operator<<<std::char_traits<char> >
- add esp, 8
- ; 40 :
- ; 41 : start = clock();
- call esi
- mov edi, eax
- ; 42 :
- ; 43 : //============================ INLINE TEST ===================================//
- ; 44 : for(unsigned int i = 0; i < maxUINT; ++i)
- ; 45 : blank(1.1,2.2,3.3);
- ; 46 :
- ; 47 : end = clock();
- call esi
- ; 48 : std::cout << maxUINT << " calls to inline function took "
- ; 49 : << (end - start)/CLOCKS_PER_SEC << " seconds.\n";
- sub eax, edi
- mov ecx, eax
- mov eax, 274877907 ; 10624dd3H
- imul ecx
- sar edx, 6
- mov ecx, edx
- shr ecx, 31 ; 0000001fH
- push OFFSET ??_C@_0L@NFAOJDFF@?5seconds?4?6?$AA@
- add ecx, edx
- push ecx
- mov ecx, DWORD PTR __imp_?cout@std@@3V?$basic_ostream@DU?$char_traits@D@std@@@1@A
- push OFFSET ??_C@_0CA@OLIKOKKF@?5calls?5to?5inline?5function?5took?5?$AA@
- push -1
- call DWORD PTR __imp_??6?$basic_ostream@DU?$char_traits@D@std@@@std@@QAEAAV01@I@Z
- push eax
- call ??$?6U?$char_traits@D@std@@@std@@YAAAV?$basic_ostream@DU?$char_traits@D@std@@@0@AAV10@PBD@Z ; std::operator<<<std::char_traits<char> >
- add esp, 8
- mov ecx, eax
- call DWORD PTR __imp_??6?$basic_ostream@DU?$char_traits@D@std@@@std@@QAEAAV01@J@Z
- push eax
- call ??$?6U?$char_traits@D@std@@@std@@YAAAV?$basic_ostream@DU?$char_traits@D@std@@@0@AAV10@PBD@Z ; std::operator<<<std::char_traits<char> >
- add esp, 8
- ; 50 :
- ; 51 : getchar(); // Wait for input.
- call DWORD PTR __imp__getchar
- ; 52 : return 0;
- ; 53 : } // Main.
- pop edi
- xor eax, eax
- pop esi
- mov esp, ebp
- pop ebp
- ret 0
- _main ENDP
- _TEXT ENDS
- END
Advertisement
Add Comment
Please, Sign In to add comment