Nest | Дата: Вівторок, 21.06.2011, 15:46 | Сообщение # 7 |
Скаут
Группа: Пользователи
|
Вообщето можно декомпилить программу!,для этого существуют дизассемблеры с функцией перевода машинного кода в язык ассемблера и исполняемый C код,так что я поддерживаю мнение Stalker,а
Добавлено (21.06.2011, 15:46) ---------------------------------------------
часть кода ядра trinity на ассемблере Code _MINIDUMP_EXCEPTION_INFORMATION struc ; (sizeof=0xC, standard type) ThreadId dd ? ExceptionPointers dd ? ; offset ClientPointers dd ? _MINIDUMP_EXCEPTION_INFORMATION ends
tagPOINT struc ; (sizeof=0x8, standard type) x dd ? y dd ? tagPOINT ends
SERVICE_TABLE_ENTRYA struc ; (sizeof=0x8, standard type) lpServiceName dd ? ; offset lpServiceProc dd ? ; offset SERVICE_TABLE_ENTRYA ends
_SERVICE_STATUS struc ; (sizeof=0x1C, standard type) dwServiceType dd ? dwCurrentState dd ? dwControlsAccepted dd ? dwWin32ExitCode dd ? dwServiceSpecificExitCode dd ? dwCheckPoint dd ? dwWaitHint dd ? _SERVICE_STATUS ends
_SYSTEMTIME struc ; (sizeof=0x10, standard type) wYear dw ? wMonth dw ? wDayOfWeek dw ? wDay dw ? wHour dw ? wMinute dw ? wSecond dw ? wMilliseconds dw ? _SYSTEMTIME ends
FLOATING_SAVE_AREA struc ; (sizeof=0x70, standard type) ControlWord dd ? StatusWord dd ? TagWord dd ? ErrorOffset dd ? ErrorSelector dd ? DataOffset dd ? DataSelector dd ? RegisterArea db 80 dup(?) Cr0NpxState dd ? FLOATING_SAVE_AREA ends
CONTEXT struc ; (sizeof=0x2CC, standard type) ContextFlags dd ? Dr0 dd ? Dr1 dd ? Dr2 dd ? Dr3 dd ? Dr6 dd ? Dr7 dd ? FloatSave FLOATING_SAVE_AREA ? SegGs dd ? SegFs dd ? SegEs dd ? SegDs dd ? _Edi dd ? _Esi dd ? _Ebx dd ? _Edx dd ? _Ecx dd ? _Eax dd ? _Ebp dd ? _Eip dd ? SegCs dd ? EFlags dd ? _Esp dd ? SegSs dd ? ExtendedRegisters db 512 dup(?) CONTEXT ends
THREADENTRY32 struc ; (sizeof=0x1C, standard type) dwSize dd ? cntUsage dd ? th32ThreadID dd ? th32OwnerProcessID dd ? tpBasePri dd ? tpDeltaPri dd ? dwFlags dd ? THREADENTRY32 ends
_IMAGEHLP_STACK_FRAME struc ; (sizeof=0x80, standard type) InstructionOffset dq ? ReturnOffset dq ? FrameOffset dq ? StackOffset dq ? BackingStoreOffset dq ? FuncTableEntry dq ? Params dq 4 dup(?) Reserved dq 5 dup(?) Virtual dd ? Reserved2 dd ? _IMAGEHLP_STACK_FRAME ends
_IMAGEHLP_LINE64 struc ; (sizeof=0x18, standard type) SizeOfStruct dd ? Key dd ? ; offset LineNumber dd ? FileName dd ? ; offset Address dq ? _IMAGEHLP_LINE64 ends
_SYMBOL_INFO struc ; (sizeof=0x54, standard type) SizeOfStruct dd ? TypeIndex dd ? Reserved dq 2 dup(?) Index dd ? Size dd ? ModBase dq ? Flags dd ? Value dq ? Address dq ? Register dd ? Scope dd ? Tag dd ? NameLen dd ? MaxNameLen dd ? Name db ? _padding db 3 dup(?) _SYMBOL_INFO ends
_MEMORYSTATUS struc ; (sizeof=0x20, standard type) dwLength dd ? dwMemoryLoad dd ? dwTotalPhys dd ? dwAvailPhys dd ? dwTotalPageFile dd ? dwAvailPageFile dd ? dwTotalVirtual dd ? dwAvailVirtual dd ? _MEMORYSTATUS ends
_SYSTEM_INFO::$844D9DC795B618992E421200B564E811::$AA04DEB0C6383F89F13D312A174572A9 struc ; (sizeof=0x4, standard type) wProcessorArchitecture dw ? wReserved dw ? _SYSTEM_INFO::$844D9DC795B618992E421200B564E811::$AA04DEB0C6383F89F13D312A174572A9 ends
_SYSTEM_INFO::$844D9DC795B618992E421200B564E811 union ; (sizeof=0x4, standard type) dwOemId dd ? anonymous_0 _SYSTEM_INFO::$844D9DC795B618992E421200B564E811::$AA04DEB0C6383F89F13D312A174572A9 ? _SYSTEM_INFO::$844D9DC795B618992E421200B564E811 ends
KEY_EVENT_RECORD struc ; (sizeof=0x10, standard type) bKeyDown dd ? wRepeatCount dw ? wVirtualKeyCode dw ? wVirtualScanCode dw ? uChar _KEY_EVENT_RECORD::$0E79EC4DAC98A4AB202537FA8C3F69FC ? dwControlKeyState dd ? KEY_EVENT_RECORD ends
_INPUT_RECORD::$56C9F45CD5AB058B1B4FD5A9AB9216C4 union ; (sizeof=0x10, standard type) KeyEvent KEY_EVENT_RECORD ? MouseEvent MOUSE_EVENT_RECORD ? WindowBufferSizeEvent WINDOW_BUFFER_SIZE_RECORD ? MenuEvent MENU_EVENT_RECORD ? FocusEvent FOCUS_EVENT_RECORD ? _INPUT_RECORD::$56C9F45CD5AB058B1B4FD5A9AB9216C4 ends
; +-------------------------------------------------------------------------+ ; | This file has been generated by The Interactive Disassembler (IDA) | ; | Copyright (c) 2009 by Hex-Rays, <support@hex-rays.com> | ; | License info: 36-DE73-413A-E6 | ; | Licensed User | ; +-------------------------------------------------------------------------+ ; ; Input MD5 : 1BD3CCD6C2C524AF167B5E5A4EC4FCE9
; File Name : home\ilyanes\\worldserver.exe ; Format : Portable executable for 80386 (PE) ; Imagebase : 400000 ; Section 1. (virtual address 00001000) ; Virtual size : 004C8AD4 (5016276.) ; Section size in file : 004C8C00 (5016576.) ; Offset to raw data for section: 00000400 ; Flags 60000020: Text Executable Readable ; Alignment : default
include uni.inc ; see unicode subdir of ida for info on unicode
.686p .mmx .model flat
; Segment type: Pure code ; Segment permissions: Read/Execute _text segment para public 'CODE' use32 assume cs:_text ;org 401000h assume es:nothing, ss:nothing, ds:_data, fs:nothing, gs:nothing
; Attributes: bp-based frame
sub_401000 proc near
arg_0= dword ptr 8
push ebp mov ebp, esp mov eax, [ebp+arg_0] movzx eax, word ptr [eax+6] cmp eax, 4000h ja short loc_401022 jz short loc_40102C test eax, eax jz short loc_40102C cmp eax, 1F50h jz short loc_40102C
loc_40101E: mov al, 1 pop ebp retn
loc_401022: add eax, 0FFFF0F00h cmp eax, 1 ja short loc_40101E
loc_40102C: xor al, al pop ebp retn sub_401000 endp
sub_401030 proc near mov dword ptr [ecx], offset off_8CAF4C jmp ds:__imp_??1exception@std@@UAE@XZ ; std::exception::~exception(void) sub_401030 endp
align 10h
; Attributes: bp-based frame
; int __thiscall sub_401040(void *, char) sub_401040 proc near
arg_0= byte ptr 8
push ebp mov ebp, esp push esi mov esi, ecx mov dword ptr [esi], offset off_8CAF4C call ds:__imp_??1exception@std@@UAE@XZ ; std::exception::~exception(void) test [ebp+arg_0], 1 jz short loc_401061 push esi ; void * call ??3@YAXPAX@Z ; operator delete(void *) add esp, 4
loc_401061: mov eax, esi pop esi pop ebp retn 4 sub_401040 endp
align 10h
; Attributes: bp-based frame
sub_401070 proc near
arg_0= word ptr 8
push ebp mov ebp, esp push esi push edi movzx edi, [ebp+arg_0] mov esi, ecx movzx eax, word ptr [esi+18h] lea ecx, [edi+1] cmp ecx, eax jl short loc_4010C4 push 0 push edi mov ecx, esi call sub_410D40 test al, al jnz short loc_4010C4 push offset aIndex1M_values ; "index + 1 < m_valuesCount || PrintIndex"... push offset aObjectGetuint6 ; "Object::GetUInt64Value" push 0BAh push offset aDTrinitycoreTr ; "D:\\TrinityCore-TrinityCore-UP36-281-g66"... push offset Format ; "\n%s:%i in %s ASSERTION FAILED2:\n %s\n" call ds:__iob_func add eax, 40h push eax ; File call ds:fprintf add esp, 18h xor edx, edx call edx
loc_4010C4: mov eax, [esi+10h] lea eax, [eax+edi*4] pop edi pop esi pop ebp retn 4 sub_401070 endp
; START OF FUNCTION CHUNK FOR sub_89BB50
loc_4010D0: mov ecx, [ecx] test ecx, ecx jz short locret_4010EA call ds:?_Decref@facet@locale@std@@QAEPAV123@XZ ; std::locale::facet::_Decref(void) test eax, eax jz short locret_4010EA mov edx, [eax] mov ecx, eax mov eax, [edx] push 1 call eax
locret_4010EA: retn ; END OF FUNCTION CHUNK FOR sub_89BB50 align 10h
; Attributes: bp-based frame
sub_4010F0 proc near
var_4658= dword ptr -4658h szSrc= word ptr -4654h Format= byte ptr -1774h var_4= dword ptr -4 arg_4= dword ptr 0Ch
push ebp mov ebp, esp mov eax, 4658h call sub_89AA70 mov eax, dword_A53044 xor eax, ebp mov [ebp+var_4], eax mov edx, [ebp+arg_4] mov eax, edx push esi mov [ebp+var_4658], 176Fh lea esi, [eax+1] lea ebx, [ebx+0]
loc_401120: mov cl, [eax] inc eax test cl, cl jnz short loc_401120 lea ecx, [ebp+var_4658] push ecx lea ecx, [ebp+szSrc] push ecx sub eax, esi push eax push edx call sub_6B6960 add esp, 10h pop esi test al, al jz short loc_401172 mov edx, [ebp+var_4658] inc edx push edx ; cchDstLength lea eax, [ebp+Format] push eax ; lpszDst lea ecx, [ebp+szSrc] push ecx ; lpszSrc call ds:CharToOemBuffW lea edx, [ebp+Format] push edx ; Format call ds:printf add esp, 4
loc_401172: mov ecx, [ebp+var_4] xor ecx, ebp call sub_89AA52 mov esp, ebp pop ebp retn sub_4010F0 endp
sub_401180 proc near push offset aTc_0 ; "TC> " call ds:printf call ds:__iob_func add eax, 20h push eax ; File call ds:fflush add esp, 8 retn sub_401180 endp
align 10h
sub_4011A0 proc near mov eax, [ecx+4] test eax, eax jnz short loc_4011A8 retn
loc_4011A8: cmp byte ptr [ecx+0Ch], 0 jz short loc_4011B1 mov eax, [eax] retn
loc_4011B1: ; Radix push 0Ah push 0 ; EndPtr push eax ; Str call ds:strtoul add esp, 0Ch retn sub_4011A0 endp
; Attributes: bp-based frame
; int __stdcall sub_4011C0(int, void *Src, int, int) sub_4011C0 proc near
arg_0= dword ptr 8 Src= dword ptr 0Ch arg_8= dword ptr 10h arg_C= dword ptr 14h
push ebp mov ebp, esp mov eax, [ebp+arg_0] mov edx, [ebp+arg_C] push ebx mov ebx, [ebp+Src] push esi mov esi, ecx mov ecx, [ebp+arg_8] mov [esi], eax mov eax, ebx mov [esi+0Ch], edx push edi mov [esi+8], ecx lea edx, [eax+1]
loc_4011E1: mov cl, [eax] inc eax test cl, cl jnz short loc_4011E1 sub eax, edx lea edi, [eax+1] push edi call sub_89A9A6 push edi ; Size push ebx ; Src push eax ; Dst mov [esi+4], eax call memcpy add esp, 10h pop edi mov eax, esi pop esi pop ebx pop ebp retn 10h sub_4011C0 endp
align 10h
; Attributes: bp-based frame
sub_401210 proc near
arg_0= dword ptr 8
push ebp mov ebp, esp mov eax, [ebp+arg_0] cmp eax, 8Ah jge short loc_401228 mov eax, [ecx+eax*4+2D4h] pop ebp retn 4
loc_401228: xor eax, eax pop ebp retn 4 sub_401210 endp
align 10h
; Attributes: bp-based frame
sub_401230 proc near
arg_0= dword ptr 8
push ebp mov ebp, esp mov ecx, [ebp+arg_0] mov al, [ecx] test al, al jz short loc_40124E lea esp, [esp+0]
loc_401240: sub al, 30h cmp al, 9 ja short loc_401252 mov al, [ecx+1] inc ecx test al, al jnz short loc_401240
loc_40124E: mov al, 1 pop ebp retn
loc_401252: xor al, al pop ebp retn sub_401230 endp
align 10h ; START OF FUNCTION CHUNK FOR sub_89B8F0
loc_401260: push esi mov esi, ecx mov eax, [esi] mov ecx, [eax] mov ecx, [ecx+4] add ecx, eax call ds:?rdbuf@?$basic_ios@DU?$char_traits@D@std@@@std@@QBEPAV?$basic_streambuf@DU?$char_traits@D@std@@@2@XZ ; std::basic_ios<char,std::char_traits<char>>::rdbuf(void) test eax, eax jz short loc_40128F mov eax, [esi] mov edx, [eax] mov ecx, [edx+4] add ecx, eax call ds:?rdbuf@?$basic_ios@DU?$char_traits@D@std@@@std@@QBEPAV?$basic_streambuf@DU?$char_traits@D@std@@@2@XZ ; std::basic_ios<char,std::char_traits<char>>::rdbuf(void) mov edx, [eax] mov ecx, eax mov eax, [edx+8] pop esi jmp eax
loc_40128F: pop esi retn ; END OF FUNCTION CHUNK FOR sub_89B8F0 align 10h
; Attributes: bp-based frame
; int __stdcall sub_4012A0(int, size_t Size, char) sub_4012A0 proc near
arg_0= dword ptr 8 Size= dword ptr 0Ch arg_8= byte ptr 10h
push ebp mov ebp, esp mov eax, [ebp+Size] cmp eax, 1 jnz short loc_4012C0 cmp dword ptr [ecx+14h], 10h jb short loc_4012B3 mov ecx, [ecx] ; Attributes: bp-based frame
sub_401340 proc near
var_20= byte ptr -20h var_14= byte ptr -14h var_10= dword ptr -10h var_C= dword ptr -0Ch var_4= dword ptr -4 arg_0= dword ptr 8
push ebp mov ebp, esp push 0FFFFFFFFh push offset loc_89B899 mov eax, large fs:0 push eax sub esp, 14h push esi push edi mov eax, dword_A53044 xor eax, ebp push eax lea eax, [ebp+var_C] mov large fs:0, eax push 0 lea ecx, [ebp+var_14] call ds:??0_Lockit@std@@QAE@H@Z ; std::_Lockit::_Lockit(int) mov eax, dword_A53060 mov ecx, ds:?id@?$ctype@D@std@@2V0locale@2@A ; std::locale::id std::ctype<char>::id mov [ebp+var_4], 0 mov [ebp+var_10], eax call ds:??Bid@locale@std@@QAEIXZ ; std::locale::id::operator uint(void) mov edi, [ebp+arg_0] mov esi, eax mov eax, [edi] cmp esi, [eax+0Ch] jnb short loc_4013BC mov ecx, [eax+8] mov ecx, [ecx+esi*4] test ecx, ecx jnz short loc_4013C0
loc_4013A3: cmp byte ptr [eax+14h], 0 jz short loc_4013C0 call ds:?_Getgloballocale@locale@std@@CAPAV_Locimp@12@XZ ; std::locale::_Getgloballocale(void) cmp esi, [eax+0Ch] jnb short loc_4013C6 mov edx, [eax+8] mov esi, [edx+esi*4] jmp short loc_4013C2
loc_4013BC: xor ecx, ecx jmp short loc_4013A3
loc_4013C0: mov esi, ecx
loc_4013C2: test esi, esi jnz short loc_401418
loc_4013C6: mov esi, [ebp+var_10] test esi, esi jnz short loc_401418 lea eax, [ebp+var_10] push edi push eax call ds:?_Getcat@?$ctype@D@std@@SAIPAPBVfacet@locale@2@PBV42@@Z ; std::ctype<char>::_Getcat(std::locale::facet const * *,std::locale const *) add esp, 8 cmp eax, 0FFFFFFFFh jnz short loc_4013FC push offset aBadCast ; "bad cast" lea ecx, [ebp+var_20] call ds:??0bad_cast@std@@QAE@PBD@Z ; std::bad_cast::bad_cast(char const *) push offset unk_9EDE48 lea ecx, [ebp+var_20] push ecx call _CxxThrowException
loc_4013FC: mov ecx, [ebp+var_10] mov esi, ecx mov dword_A53060, ecx mov edi, ecx call ds:?_Incref@facet@locale@std@@QAEXXZ ; std::locale::facet::_Incref(void) push edi call sub_89A92C add esp, 4
loc_401418: lea ecx, [ebp+var_14] mov [ebp+var_4], 0FFFFFFFFh call ds:??1_Lockit@std@@QAE@XZ ; std::_Lockit::~_Lockit(void) mov eax, esi mov ecx, [ebp+var_C] mov large fs:0, ecx pop ecx pop edi pop esi mov esp, ebp pop ebp retn sub_401340 endp
align 10h
; Attributes: bp-based frame
sub_401440 proc near
arg_0= dword ptr 8
push ebp mov ebp, esp mov eax, [ebp+arg_0] push esi push eax mov esi, ecx call ds:__imp_??0exception@std@@QAE@ABV01@@Z ; std::exception::exception(exception::exception const &) mov dword ptr [esi], offset off_8CAF4C mov eax, esi pop esi pop ebp retn 4 sub_401440 endp
sub_4014D0 proc near push esi mov esi, ecx call ds:?gptr@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IBEPADXZ ; std::basic_streambuf<char,std::char_traits<char>>::gptr(void) test eax, eax jnz short loc_4014E2 or eax, 0FFFFFFFFh pop esi retn
loc_4014E2: mov eax, [esi+30h] mov ecx, [esi+20h] push edi mov edi, [eax] add edi, [ecx] mov ecx, esi call ds:?gptr@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IBEPADXZ ; std::basic_streambuf<char,std::char_traits<char>>::gptr(void) cmp eax, edi jnb short loc_401507 mov ecx, esi call ds:?gptr@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IBEPADXZ ; std::basic_streambuf<char,std::char_traits<char>>::gptr(void) movzx eax, byte ptr [eax] pop edi pop esi retn
loc_401507: test byte ptr [esi+40h], 4 jnz short loc_401585 mov ecx, esi call ds:?pptr@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IBEPADXZ ; std::basic_streambuf<char,std::char_traits<char>>::pptr(void) test eax, eax jz short loc_401585 mov ecx, esi call ds:?pptr@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IBEPADXZ ; std::basic_streambuf<char,std::char_traits<char>>::pptr(void) mov ecx, esi mov edi, eax call ds:?gptr@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IBEPADXZ ; std::basic_streambuf<char,std::char_traits<char>>::gptr(void) cmp edi, eax ja short loc_40153C mov ecx, esi call ds:?gptr@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IBEPADXZ ; std::basic_streambuf<char,std::char_traits<char>>::gptr(void) cmp [esi+3Ch], eax jbe short loc_401585
loc_40153C: mov ecx, esi call ds:?pptr@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IBEPADXZ ; std::basic_streambuf<char,std::char_traits<char>>::pptr(void) cmp [esi+3Ch], eax jnb short loc_401554 mov ecx, esi call ds:?pptr@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IBEPADXZ ; std::basic_streambuf<char,std::char_traits<char>>::pptr(void) mov [esi+3Ch], eax
loc_401554: mov edx, [esi+10h] mov edi, [esi+3Ch] push ebx mov ebx, [edx] mov ecx, esi call ds:?gptr@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IBEPADXZ ; std::basic_streambuf<char,std::char_traits<char>>::gptr(void) mov ecx, [esi+10h] mov [ecx], ebx mov edx, [esi+20h] mov [edx], eax sub edi, eax mov eax, [esi+30h] mov ecx, esi mov [eax], edi call ds:?gptr@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IBEPADXZ ; std::basic_streambuf<char,std::char_traits<char>>::gptr(void) movzx eax, byte ptr [eax] pop ebx pop edi pop esi retn
loc_401585: pop edi or eax, 0FFFFFFFFh pop esi retn sub_4014D0 endp
align 10h
; Attributes: bp-based frame
sub_401590 proc near
arg_0= dword ptr 8
push ebp mov ebp, esp push ebx push esi mov esi, ecx call ds:?gptr@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IBEPADXZ ; std::basic_streambuf<char,std::char_traits<char>>::gptr(void) test eax, eax jz short loc_4015F8 mov eax, [esi+10h] push edi mov edi, [eax] mov ecx, esi call ds:?gptr@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IBEPADXZ ; std::basic_streambuf<char,std::char_traits<char>>::gptr(void) cmp eax, edi pop edi jbe short loc_4015F8 mov ebx, [ebp+arg_0] cmp ebx, 0FFFFFFFFh jz short loc_4015CF mov ecx, esi call ds:?gptr@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IBEPADXZ ; std::basic_streambuf<char,std::char_traits<char>>::gptr(void) cmp bl, [eax-1] jz short loc_4015CF test byte ptr [esi+40h], 2 jnz short loc_4015F8
loc_4015CF: push 0FFFFFFFFh mov ecx, esi call ds:?gbump@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IAEXH@Z ; std::basic_streambuf<char,std::char_traits<char>>::gbump(int) cmp ebx, 0FFFFFFFFh jz short loc_4015F0 mov ecx, esi call ds:?gptr@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IBEPADXZ ; std::basic_streambuf<char,std::char_traits<char>>::gptr(void) mov [eax], bl pop esi mov eax, ebx pop ebx pop ebp retn 4
loc_4015F0: pop esi xor eax, eax pop ebx pop ebp retn 4
loc_4015F8: pop esi or eax, 0FFFFFFFFh pop ebx pop ebp retn 4 sub_401590 endp
align 10h
; Attributes: bp-based frame
sub_401610 proc near
arg_0= dword ptr 8 arg_4= dword ptr 0Ch arg_8= dword ptr 10h arg_C= dword ptr 14h arg_10= dword ptr 18h
push ebp mov ebp, esp push ebx push esi push edi mov esi, ecx call ds:?pptr@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IBEPADXZ ; std::basic_streambuf<char,std::char_traits<char>>::pptr(void) test eax, eax jz short loc_40163A mov ecx, esi call ds:?pptr@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IBEPADXZ ; std::basic_streambuf<char,std::char_traits<char>>::pptr(void) cmp [esi+3Ch], eax jnb short loc_40163A mov ecx, esi call ds:?pptr@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IBEPADXZ ; std::basic_streambuf<char,std::char_traits<char>>::pptr(void) mov [esi+3Ch], eax
loc_40163A: mov bl, byte ptr [ebp+arg_10] test bl, 1 jz loc_40174D mov ecx, esi call ds:?gptr@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IBEPADXZ ; std::basic_streambuf<char,std::char_traits<char>>::gptr(void) test eax, eax jz loc_40174D mov eax, [ebp+arg_C] cmp eax, 2 jnz short loc_401673 mov ecx, [esi+10h] mov eax, [esi+3Ch] sub eax, [ecx] mov edi, [ebp+arg_4] mov ebx, [ebp+arg_8] cdq add edi, eax adc ebx, edx jmp short loc_4016AF
loc_401673: cmp eax, 1 jnz short loc_401699 test bl, 2 jnz short loc_40169D mov edx, [esi+10h] mov edi, [edx] mov ecx, esi call ds:?gptr@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IBEPADXZ ; std::basic_streambuf<char,std::char_traits<char>>::gptr(void) mov ebx, [ebp+arg_8] sub eax, edi mov edi, [ebp+arg_4] cdq add edi, eax adc ebx, edx jmp short loc_4016AF
loc_401699: test eax, eax jz short loc_4016A9
loc_40169D: ; __int64 const std::_BADOFF mov eax, ds:?_BADOFF@std@@3_JB mov edi, [eax] mov ebx, [eax+4] jmp short loc_4016AF
loc_4016A9: mov ebx, [ebp+arg_8] mov edi, [ebp+arg_4]
loc_4016AF: test ebx, ebx jl loc_401803 jg short loc_4016C1 test edi, edi jb loc_401803
loc_4016C1: mov eax, [esi+10h] mov ecx, [eax] mov eax, [esi+3Ch] sub eax, ecx cdq mov [ebp+arg_C], ecx cmp ebx, edx jg loc_401803 jl short loc_4016E1 cmp edi, eax ja loc_401803
loc_4016E1: mov ecx, esi call ds:?gptr@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IBEPADXZ ; std::basic_streambuf<char,std::char_traits<char>>::gptr(void) mov ecx, [ebp+arg_C] lea edx, [edi+ecx] sub edx, eax push edx mov ecx, esi call ds:?gbump@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IAEXH@Z ; std::basic_streambuf<char,std::char_traits<char>>::gbump(int) test byte ptr [ebp+arg_10], 2 jz loc_40180D mov ecx, esi call ds:?pptr@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IBEPADXZ ; std::basic_streambuf<char,std::char_traits<char>>::pptr(void) test eax, eax jz loc_40180D mov eax, [esi+24h] mov ecx, [esi+34h] mov eax, [eax] add eax, [ecx] mov edx, [esi+14h] mov [ebp+arg_C], eax mov eax, [edx] mov ecx, esi mov [ebp+arg_10], eax call ds:?gptr@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IBEPADXZ ; std::basic_streambuf<char,std::char_traits<char>>::gptr(void) mov ecx, [esi+14h] mov edx, [ebp+arg_10] mov [ecx], edx mov ecx, [esi+24h] mov [ecx], eax mov ecx, [ebp+arg_C] mov edx, [esi+34h] sub ecx, eax mov [edx], ecx jmp loc_40180D
loc_40174D: test bl, 2 jz loc_4017F7 mov ecx, esi call ds:?pptr@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IBEPADXZ ; std::basic_streambuf<char,std::char_traits<char>>::pptr(void) test eax, eax jz loc_4017F7 mov eax, [ebp+arg_C] cmp eax, 2 jnz short loc_401783 mov ecx, [esi+10h] mov eax, [esi+3Ch] sub eax, [ecx] mov edi, [ebp+arg_4] mov ebx, [ebp+arg_8] cdq add edi, eax adc ebx, edx jmp short loc_4017BA
loc_401783: cmp eax, 1 jnz short loc_4017A4 mov edx, [esi+10h] mov edi, [edx] mov ecx, esi call ds:?pptr@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IBEPADXZ ; std::basic_streambuf<char,std::char_traits<char>>::pptr(void) mov ebx, [ebp+arg_8] sub eax, edi mov edi, [ebp+arg_4] cdq add edi, eax adc ebx, edx jmp short loc_4017BA
loc_4017A4: test eax, eax jz short loc_4017B4 mov eax, ds:?_BADOFF@std@@3_JB ; __int64 const std::_BADOFF mov edi, [eax] mov ebx, [eax+4] jmp short loc_4017BA
loc_4017B4: mov ebx, [ebp+arg_8] mov edi, [ebp+arg_4]
loc_4017BA: test ebx, ebx jl short loc_401803 jg short loc_4017C4 test edi, edi jb short loc_401803
loc_4017C4: mov eax, [esi+10h] mov ecx, [eax] mov eax, [esi+3Ch] sub eax, ecx cdq mov [ebp+arg_C], ecx cmp ebx, edx jg short loc_401803 jl short loc_4017DC cmp edi, eax ja short loc_401803
; Attributes: bp-based frame
sub_401830 proc near
var_8= dword ptr -8 var_4= dword ptr -4 arg_0= dword ptr 8 arg_4= dword ptr 0Ch arg_8= dword ptr 10h arg_C= dword ptr 14h arg_1C= dword ptr 24h
push ebp mov ebp, esp sub esp, 0Ch mov eax, [ebp+arg_C] push ebx push esi cdq push edi mov edi, eax add edi, [ebp+arg_4] mov ebx, edx adc ebx, [ebp+arg_8] mov esi, ecx mov [ebp+var_8], ebx call ds:?pptr@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IBEPADXZ ; std::basic_streambuf<char,std::char_traits<char>>::pptr(void) test eax, eax jz short loc_40186E mov ecx, esi call ds:?pptr@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IBEPADXZ ; std::basic_streambuf<char,std::char_traits<char>>::pptr(void) cmp [esi+3Ch], eax jnb short loc_40186E mov ecx, esi call ds:?pptr@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IBEPADXZ ; std::basic_streambuf<char,std::char_traits<char>>::pptr(void) mov [esi+3Ch], eax
loc_40186E: ; __int64 const std::_BADOFF mov eax, ds:?_BADOFF@std@@3_JB cmp edi, [eax] jnz short loc_401880 cmp ebx, [eax+4] jz loc_4019A2
loc_401880: test byte ptr [ebp+arg_1C], 1 jz loc_401934 mov ecx, esi call ds:?gptr@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IBEPADXZ ; std::basic_streambuf<char,std::char_traits<char>>::gptr(void) test eax, eax jz loc_40192F test ebx, ebx jl loc_401992 jg short loc_4018AC test edi, edi jb loc_401992
loc_4018AC: mov eax, [esi+10h] mov ecx, [eax] mov eax, [esi+3Ch] sub eax, ecx cdq mov [ebp+var_4], ecx cmp ebx, edx jg loc_401992 jl short loc_4018CC cmp edi, eax ja loc_401992
loc_4018CC: mov ecx, esi call ds:?gptr@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IBEPADXZ ; std::basic_streambuf<char,std::char_traits<char>>::gptr(void) mov ecx, [ebp+var_4] lea edx, [edi+ecx] sub edx, eax push edx mov ecx, esi call ds:?gbump@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IAEXH@Z ; std::basic_streambuf<char,std::char_traits<char>>::gbump(int) test byte ptr [ebp+arg_1C], 2 jz loc_4019A2 mov ecx, esi call ds:?pptr@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IBEPADXZ ; std::basic_streambuf<char,std::char_traits<char>>::pptr(void) test eax, eax jz loc_4019A2 mov eax, [esi+34h] mov ecx, [esi+24h] mov ebx, [eax] mov edx, [esi+14h] add ebx, [ecx] mov eax, [edx] mov ecx, esi mov [ebp+arg_1C], eax call ds:?gptr@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IBEPADXZ ; std::basic_streambuf<char,std::char_traits<char>>::gptr(void) mov ecx, [esi+14h] mov edx, [ebp+arg_1C] mov [ecx], edx mov ecx, [esi+24h] mov [ecx], eax mov edx, [esi+34h] sub ebx, eax mov [edx], ebx jmp short loc_40199F
loc_401968: mov ecx, esi call ds:?pptr@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IBEPADXZ ; std::basic_streambuf<char,std::char_traits<char>>::pptr(void) mov edx, [ebp+var_4] lea ecx, [edi+edx] sub ecx, eax push ecx mov ecx, esi call ds:?pbump@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IAEXH@Z ; std::basic_streambuf<char,std::char_traits<char>>::pbump(int) jmp short loc_4019A2
loc_401983: ; __int64 const std::_BADOFF mov eax, ds:?_BADOFF@std@@3_JB mov edx, [eax+4] mov edi, [eax] mov [ebp+var_8], edx jmp short loc_40199F
sub_4019C0 proc near mov eax, ecx cmp dword ptr [eax+14h], 10h jb short locret_4019CA mov eax, [eax]
locret_4019CA: retn sub_4019C0 endp
align 10h
; Attributes: bp-based frame
; int __thiscall sub_4019D0(void *, char) sub_4019D0 proc near
var_10= dword ptr -10h var_C= dword ptr -0Ch var_4= dword ptr -4 arg_0= byte ptr 8
push ebp mov ebp, esp push 0FFFFFFFFh push offset sub_89B8C9 mov eax, large fs:0 push eax push ecx push esi mov eax, dword_A53044 xor eax, ebp push eax lea eax, [ebp+var_C] mov large fs:0, eax mov esi, ecx mov [ebp+var_10], esi mov dword ptr [esi], offset off_8CB0FC mov [ebp+var_4], 0 call sub_4012E0 mov ecx, esi mov [ebp+var_4], 0FFFFFFFFh call ds:??1?$basic_streambuf@DU?$char_traits@D@std@@@std@@UAE@XZ ; std::basic_streambuf<char,std::char_traits<char>>::~basic_streambuf<char,std::char_traits<char>>(void) test [ebp+arg_0], 1 jz short loc_401A29 push esi ; void * call ??3@YAXPAX@Z ; operator delete(void *) add esp, 4
loc_401A29: mov eax, esi mov ecx, [ebp+var_C] mov large fs:0, ecx pop ecx pop esi mov esp, ebp pop ebp retn 4 sub_4019D0 endp
align 10h
; Attributes: bp-based frame
; int __stdcall sub_401A40(char *Src) sub_401A40 proc near
var_C= dword ptr -0Ch var_4= dword ptr -4 Src= dword ptr 8
loc_401A91: mov ecx, [edi] push 0 push eax mov [ebp+var_4], 0FFFFFFFFh call ds:?enqueue@ACE_Activation_Queue@@QAEHPAVACE_Method_Request@@PAVACE_Time_Value@@@Z ; ACE_Activation_Queue::enqueue(ACE_Method_Request *,ACE_Time_Value *)
loc_401B18: mov ecx, [esi] mov ecx, [ecx+4] add ecx, esi mov [ebp+var_4], 0 call ds:?good@ios_base@std@@QBE_NXZ ; std::ios_base::good(void) test al, al jz short loc_401B56 mov edx, [esi] mov ecx, [edx+4] add ecx, esi call ds:?tie@?$basic_ios@DU?$char_traits@D@std@@@std@@QBEPAV?$basic_ostream@DU?$char_traits@D@std@@@2@XZ ; std::basic_ios<char,std::char_traits<char>>::tie(void) test eax, eax jz short loc_401B56 mov eax, [esi] mov ecx, [eax+4] add ecx, esi call ds:?tie@?$basic_ios@DU?$char_traits@D@std@@@std@@QBEPAV?$basic_ostream@DU?$char_traits@D@std@@@2@XZ ; std::basic_ios<char,std::char_traits<char>>::tie(void) mov ecx, eax call ds:?flush@?$basic_ostream@DU?$char_traits@D@std@@@std@@QAEAAV12@XZ ; std::basic_ostream<char,std::char_traits<char>>::flush(void)
loc_401B56: mov ecx, [esi] mov ecx, [ecx+4] add ecx, esi call ds:?good@ios_base@std@@QBE_NXZ ; std::ios_base::good(void) mov [edi+4], al mov eax, edi mov ecx, [ebp+var_C] mov large fs:0, ecx pop ecx pop edi pop esi mov esp, ebp pop ebp retn 4 sub_401AC0 endp
align 10h
; Attributes: bp-based frame
sub_401B80 proc near
var_10= dword ptr -10h var_C= dword ptr -0Ch var_4= dword ptr -4 call ds:?_Osfx@?$basic_ostream@DU?$char_traits@D@std@@@std@@QAEXXZ ; std::basic_ostream<char,std::char_traits<char>>::_Osfx(void)
loc_401BC2: mov eax, [esi] mov ecx, [eax] mov ecx, [ecx+4] add ecx, eax mov [ebp+var_4], 0FFFFFFFFh call ds:?rdbuf@?$basic_ios@DU?$char_traits@D@std@@@std@@QBEPAV?$basic_streambuf@DU?$char_traits@D@std@@@2@XZ ; std::basic_ios<char,std::char_traits<char>>::rdbuf(void) test eax, eax jz short loc_401BF4 mov eax, [esi] mov edx, [eax] mov ecx, [edx+4] add ecx, eax call ds:?rdbuf@?$basic_ios@DU?$char_traits@D@std@@@std@@QBEPAV?$basic_streambuf@DU?$char_traits@D@std@@@2@XZ ; std::basic_ios<char,std::char_traits<char>>::rdbuf(void) mov edx, [eax] mov ecx, eax mov eax, [edx+8] call eax
loc_401BF4: mov ecx, [ebp+var_C] mov large fs:0, ecx pop ecx pop esi mov esp, ebp pop ebp retn sub_401B80 endp
align 10h
; Attributes: bp-based frame
sub_401C10 proc near
var_C= dword ptr -0Ch arg_0= dword ptr 8 ; START OF FUNCTION CHUNK FOR sub_89B950
loc_401C60: or eax, 0FFFFFFFFh cmp [ecx+4], eax jz short locret_401C73 mov [ecx+4], eax mov ecx, [ecx] jmp ds:?release@ACE_Thread_Mutex@@QAEHXZ ; ACE_Thread_Mutex::release(void)
locret_401C73: retn ; END OF FUNCTION CHUNK FOR sub_89B950 align 10h loc_401D90: push offset unk_A6B35C mov ecx, offset off_A1A390 call ds:?_name_internal_method@type_info@@QBEPBDPAU__type_info_node@@@Z ; type_info::_name_internal_method(__type_info_node *) push eax mov eax, dword_A53064 push 0 push eax call ds:?at_exit@ACE_Object_Manager@@SAHPAVACE_Cleanup@@PAXPBD@Z ; ACE_Object_Manager::at_exit(ACE_Cleanup *,void *,char const *) add esp, 0Ch
loc_401DB2: mov ecx, edi mov [ebp+var_4], 0FFFFFFFFh call ds:?release@ACE_Thread_Mutex@@QAE
Уехал на всё лето
Сообщение отредактировал Nest - Вівторок, 21.06.2011, 15:49 |
|
|
|