; ; +-------------------------------------------------------------------------+ ; | This file is generated by The Interactive Disassembler (IDA) | ; | Copyright (c) 2007 by DataRescue sa/nv, <ida@datarescue.com> | ; | Licensed to: 48-377D-7114-93 SRI International, 1 computer, std, 11/2007 | ; +-------------------------------------------------------------------------+ ; ; ; +-------------------------------------------------------------------------+ ; | This file is generated by The Interactive Disassembler (IDA) | ; | Copyright (c) 2007 by DataRescue sa/nv, <ida@datarescue.com> | ; | Licensed to: 48-377D-7114-93 SRI International, 1 computer, std, 11/2007 | ; +-------------------------------------------------------------------------+ ; ; Input MD5 : C65B35C625F4E8F5BC789E4E0E3BEA4A ; File Name : u:\work\c65b35c625f4e8f5bc789e4e0e3bea4a_unpacked.exe ; Format : Portable executable for 80386 (PE) ; Imagebase : 10000000 ; Section 1. (virtual address 00001000) ; Virtual size : 0000510E ( 20750.) ; Section size in file : 0000510E ( 20750.) ; Offset to raw data for section: 00001000 ; Flags 60000020: Text Executable Readable ; Alignment : default ; OS type : MS Windows ; Application type: Executable 32bit 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 10001000h assume es:nothing, ss:nothing, ds:_data, fs:nothing, gs:nothing ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_10001000 proc near ; CODE XREF: sub_1000102A+14p ; WinMain(x,x,x,x):loc_10002C8Dp var_4 = dword ptr -4 push ebp mov ebp, esp push ecx push ebx push esi push edi and [ebp+var_4], 0 push esi push ebx mov eax, large fs:30h mov eax, [eax+0Ch] mov esi, [eax+1Ch] lodsd mov ebx, [eax+8] mov [ebp+var_4], ebx pop ebx pop esi mov eax, [ebp+var_4] pop edi pop esi pop ebx leave retn sub_10001000 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_1000102A proc near ; CODE XREF: WinMain(x,x,x,x):loc_10002C73p var_4 = dword ptr -4 push ebp mov ebp, esp push ecx push ebx push esi push edi and [ebp+var_4], 0 push eax push ebx push ecx push edx push ebp push esi push edi nop nop call sub_10001000 xor ebp, ebp nop nop mov ebx, [eax+3Ch] add ebx, eax mov edx, [ebx+78h] add edx, eax nop nop mov ecx, [edx+20h] add ecx, eax nop nop mov esi, [edx+1Ch] add esi, eax loc_1000105F: ; CODE XREF: sub_1000102A+5Aj mov edi, [ecx] add edi, eax nop nop cmp dword ptr [edi+4], 41636F72h jnz short loc_1000107C add esi, ebp mov esi, [esi] nop nop add esi, eax mov eax, esi jmp short loc_10001086 ; --------------------------------------------------------------------------- align 4 loc_1000107C: ; CODE XREF: sub_1000102A+42j add ecx, 4 add ebp, 4 nop nop jmp short loc_1000105F ; --------------------------------------------------------------------------- loc_10001086: ; CODE XREF: sub_1000102A+4Ej pop edi nop nop pop esi pop ebp pop edx pop ecx pop ebx nop nop mov [ebp+var_4], eax pop eax nop nop mov eax, [ebp+var_4] pop edi pop esi pop ebx leave retn sub_1000102A endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame ; int __cdecl sub_1000109E(char *Str, int, int) sub_1000109E proc near ; CODE XREF: sub_10001D53+1Cp ; sub_10001D53+3Dp ... var_118 = dword ptr -118h var_114 = dword ptr -114h var_110 = dword ptr -110h var_10C = dword ptr -10Ch var_108 = dword ptr -108h var_104 = byte ptr -104h var_100 = byte ptr -100h Str = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h push ebp mov ebp, esp sub esp, 118h push ebx push esi push edi push 1 ; int mov eax, [ebp+arg_8] imul eax, 0Ah push eax ; Size call sub_10002DEB pop ecx pop ecx mov [ebp+var_118], eax nop nop nop nop cmp [ebp+var_118], 0 jnz short loc_100010D4 xor eax, eax jmp loc_100012DF ; --------------------------------------------------------------------------- loc_100010D4: ; CODE XREF: sub_1000109E+2Dj and [ebp+var_114], 0 jmp short loc_100010EA ; --------------------------------------------------------------------------- loc_100010DD: ; CODE XREF: sub_1000109E+6Fj mov eax, [ebp+var_114] inc eax mov [ebp+var_114], eax loc_100010EA: ; CODE XREF: sub_1000109E+3Dj cmp [ebp+var_114], 0FFh jg short loc_1000110F nop nop nop nop mov eax, [ebp+var_114] mov cl, byte ptr [ebp+var_114] mov [ebp+eax+var_100], cl jmp short loc_100010DD ; --------------------------------------------------------------------------- loc_1000110F: ; CODE XREF: sub_1000109E+56j and [ebp+var_110], 0 and [ebp+var_108], 0 jmp short loc_1000112C ; --------------------------------------------------------------------------- loc_1000111F: ; CODE XREF: sub_1000109E+12Aj mov eax, [ebp+var_108] inc eax mov [ebp+var_108], eax loc_1000112C: ; CODE XREF: sub_1000109E+7Fj cmp [ebp+var_108], 0FFh jg loc_100011CD nop nop nop nop push [ebp+Str] ; Str call _strlen pop ecx mov ecx, eax mov eax, [ebp+var_108] xor edx, edx div ecx mov eax, [ebp+Str] movsx eax, byte ptr [eax+edx] mov ecx, [ebp+var_108] movzx ecx, [ebp+ecx+var_100] mov edx, [ebp+var_110] add edx, eax add ecx, edx mov eax, ecx cdq mov ecx, 100h idiv ecx mov [ebp+var_110], edx nop nop nop nop mov eax, [ebp+var_108] mov al, [ebp+eax+var_100] mov [ebp+var_104], al mov eax, [ebp+var_108] mov ecx, [ebp+var_110] mov cl, [ebp+ecx+var_100] mov [ebp+eax+var_100], cl mov eax, [ebp+var_110] mov cl, [ebp+var_104] mov [ebp+eax+var_100], cl jmp loc_1000111F ; --------------------------------------------------------------------------- loc_100011CD: ; CODE XREF: sub_1000109E+98j and [ebp+var_108], 0 and [ebp+var_110], 0 and [ebp+var_108], 0 jmp short loc_100011F1 ; --------------------------------------------------------------------------- loc_100011E4: ; CODE XREF: sub_1000109E+236j mov eax, [ebp+var_108] inc eax mov [ebp+var_108], eax loc_100011F1: ; CODE XREF: sub_1000109E+144j mov eax, [ebp+var_108] cmp eax, [ebp+arg_8] jge loc_100012D9 mov eax, [ebp+var_108] cdq mov ecx, 100h idiv ecx mov [ebp+var_10C], edx nop nop nop nop nop nop nop nop mov eax, [ebp+var_10C] movzx eax, [ebp+eax+var_100] add eax, [ebp+var_110] cdq mov ecx, 100h idiv ecx mov [ebp+var_110], edx mov eax, [ebp+var_10C] mov al, [ebp+eax+var_100] mov [ebp+var_104], al mov eax, [ebp+var_10C] mov ecx, [ebp+var_110] mov cl, [ebp+ecx+var_100] mov [ebp+eax+var_100], cl mov eax, [ebp+var_110] mov cl, [ebp+var_104] mov [ebp+eax+var_100], cl nop nop nop nop nop nop nop nop mov eax, [ebp+arg_4] add eax, [ebp+var_108] movsx ecx, byte ptr [eax] mov eax, [ebp+var_10C] movzx eax, [ebp+eax+var_100] mov edx, [ebp+var_110] movzx edx, [ebp+edx+var_100] add eax, edx cdq mov esi, 100h idiv esi movzx eax, [ebp+edx+var_100] xor ecx, eax mov eax, [ebp+var_118] add eax, [ebp+var_108] mov [eax], cl nop nop nop nop jmp loc_100011E4 ; --------------------------------------------------------------------------- loc_100012D9: ; CODE XREF: sub_1000109E+15Cj mov eax, [ebp+var_118] loc_100012DF: ; CODE XREF: sub_1000109E+31j pop edi pop esi pop ebx leave retn sub_1000109E endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_100012E4 proc near ; CODE XREF: WinMain(x,x,x,x)+172p var_10 = dword ptr -10h var_C = byte ptr -0Ch var_8 = byte ptr -8 Size = dword ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h push ebp mov ebp, esp sub esp, 10h mov eax, [ebp+arg_4] shl eax, 4 mov [ebp+Size], eax push 1 ; int push [ebp+Size] ; Size call sub_10002DEB pop ecx pop ecx mov [ebp+var_10], eax cmp [ebp+var_10], 0 jnz short loc_1000130C xor eax, eax jmp short locret_10001336 ; --------------------------------------------------------------------------- loc_1000130C: ; CODE XREF: sub_100012E4+22j lea eax, [ebp+var_8] push eax lea eax, [ebp+var_C] push eax push 2 call dword_1000A7DC push [ebp+arg_8] push [ebp+arg_4] push [ebp+arg_0] push [ebp+Size] push [ebp+var_10] push 2 call dword_1000A7C8 mov eax, [ebp+var_10] locret_10001336: ; CODE XREF: sub_100012E4+26j leave retn sub_100012E4 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_10001338 proc near ; CODE XREF: sub_10001365+18p ; sub_10001365+AFp ... arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp push ebx push esi push edi nop nop nop nop mov eax, [ebp+arg_0] xor edx, edx div [ebp+arg_4] test edx, edx jnz short loc_10001353 mov eax, [ebp+arg_0] jmp short loc_10001360 ; --------------------------------------------------------------------------- loc_10001353: ; CODE XREF: sub_10001338+14j mov eax, [ebp+arg_0] xor edx, edx div [ebp+arg_4] inc eax imul eax, [ebp+arg_4] loc_10001360: ; CODE XREF: sub_10001338+19j pop edi pop esi pop ebx pop ebp retn sub_10001338 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_10001365 proc near ; CODE XREF: sub_100014CA+A9p var_8 = dword ptr -8 var_4 = dword ptr -4 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h arg_C = dword ptr 14h push ebp mov ebp, esp push ecx push ecx push ebx push esi push edi nop nop nop nop mov eax, [ebp+arg_8] push dword ptr [eax+38h] mov eax, [ebp+arg_8] push dword ptr [eax+54h] call sub_10001338 pop ecx pop ecx mov [ebp+var_4], eax and [ebp+var_8], 0 jmp short loc_10001394 ; --------------------------------------------------------------------------- loc_1000138D: ; CODE XREF: sub_10001365:loc_100014BDj mov eax, [ebp+var_8] inc eax mov [ebp+var_8], eax loc_10001394: ; CODE XREF: sub_10001365+26j mov eax, [ebp+arg_8] movzx eax, word ptr [eax+6] cmp [ebp+var_8], eax jge loc_100014C2 nop nop nop nop mov eax, [ebp+var_8] imul eax, 28h mov ecx, [ebp+var_8] imul ecx, 28h mov edx, [ebp+arg_C] mov eax, [edx+eax+14h] mov edx, [ebp+arg_C] add eax, [edx+ecx+10h] cmp eax, [ebp+arg_4] jbe short loc_100013CE xor eax, eax jmp loc_100014C5 ; --------------------------------------------------------------------------- loc_100013CE: ; CODE XREF: sub_10001365+60j mov eax, [ebp+var_8] imul eax, 28h mov ecx, [ebp+arg_C] cmp dword ptr [ecx+eax+0Ch], 0 jz short loc_10001455 nop nop nop nop nop mov eax, [ebp+var_8] imul eax, 28h mov ecx, [ebp+arg_C] cmp dword ptr [ecx+eax+8], 0 jz short loc_10001424 mov eax, [ebp+arg_8] push dword ptr [eax+38h] mov eax, [ebp+var_8] imul eax, 28h mov ecx, [ebp+var_8] imul ecx, 28h mov edx, [ebp+arg_C] mov eax, [edx+eax+0Ch] mov edx, [ebp+arg_C] add eax, [edx+ecx+8] push eax call sub_10001338 pop ecx pop ecx mov [ebp+var_4], eax nop nop nop nop jmp short loc_10001453 ; --------------------------------------------------------------------------- loc_10001424: ; CODE XREF: sub_10001365+8Cj nop nop nop nop mov eax, [ebp+arg_8] push dword ptr [eax+38h] mov eax, [ebp+var_8] imul eax, 28h mov ecx, [ebp+var_8] imul ecx, 28h mov edx, [ebp+arg_C] mov eax, [edx+eax+0Ch] mov edx, [ebp+arg_C] add eax, [edx+ecx+10h] push eax call sub_10001338 pop ecx pop ecx mov [ebp+var_4], eax loc_10001453: ; CODE XREF: sub_10001365+BDj jmp short loc_100014BD ; --------------------------------------------------------------------------- loc_10001455: ; CODE XREF: sub_10001365+77j mov eax, [ebp+var_8] imul eax, 28h mov ecx, [ebp+var_8] imul ecx, 28h mov edx, [ebp+arg_C] mov esi, [ebp+arg_C] mov eax, [edx+eax+8] cmp eax, [esi+ecx+10h] jnb short loc_10001498 nop nop nop mov eax, [ebp+arg_8] push dword ptr [eax+38h] mov eax, [ebp+var_8] imul eax, 28h mov ecx, [ebp+arg_C] push dword ptr [ecx+eax+8] call sub_10001338 pop ecx pop ecx mov ecx, [ebp+var_4] add ecx, eax mov [ebp+var_4], ecx jmp short loc_100014BD ; --------------------------------------------------------------------------- loc_10001498: ; CODE XREF: sub_10001365+10Aj mov eax, [ebp+arg_8] push dword ptr [eax+38h] mov eax, [ebp+var_8] imul eax, 28h mov ecx, [ebp+arg_C] push dword ptr [ecx+eax+8] call sub_10001338 pop ecx pop ecx mov ecx, [ebp+var_4] add ecx, eax mov [ebp+var_4], ecx nop nop nop loc_100014BD: ; CODE XREF: sub_10001365:loc_10001453j ; sub_10001365+131j jmp loc_1000138D ; --------------------------------------------------------------------------- loc_100014C2: ; CODE XREF: sub_10001365+39j mov eax, [ebp+var_4] loc_100014C5: ; CODE XREF: sub_10001365+64j pop edi pop esi pop ebx leave retn sub_10001365 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_100014CA proc near ; CODE XREF: sub_10001CF2+20p var_18 = dword ptr -18h var_14 = dword ptr -14h var_10 = dword ptr -10h var_C = dword ptr -0Ch 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_10 = dword ptr 18h arg_14 = dword ptr 1Ch push ebp mov ebp, esp sub esp, 18h push ebx push esi push edi mov eax, [ebp+arg_0] mov [ebp+var_18], eax cmp [ebp+arg_4], 40h jnb short loc_100014E6 xor eax, eax jmp loc_100017AD ; --------------------------------------------------------------------------- loc_100014E6: ; CODE XREF: sub_100014CA+13j mov eax, [ebp+var_18] movzx eax, word ptr [eax] cmp eax, 5A4Dh jz short loc_100014FA xor eax, eax jmp loc_100017AD ; --------------------------------------------------------------------------- loc_100014FA: ; CODE XREF: sub_100014CA+27j mov eax, [ebp+var_18] mov eax, [eax+3Ch] add eax, 0F8h cmp [ebp+arg_4], eax jge short loc_10001511 xor eax, eax jmp loc_100017AD ; --------------------------------------------------------------------------- loc_10001511: ; CODE XREF: sub_100014CA+3Ej mov eax, [ebp+var_18] mov ecx, [ebp+var_18] add ecx, [eax+3Ch] mov [ebp+var_8], ecx mov eax, [ebp+var_8] cmp dword ptr [eax], 4550h jz short loc_1000152F xor eax, eax jmp loc_100017AD ; --------------------------------------------------------------------------- loc_1000152F: ; CODE XREF: sub_100014CA+5Cj mov eax, [ebp+var_8] movzx eax, word ptr [eax+16h] and eax, 2000h test eax, eax jnz short loc_10001553 xor eax, eax test eax, eax jnz short loc_10001553 mov eax, [ebp+var_8] movzx eax, word ptr [eax+14h] cmp eax, 0E0h jz short loc_1000155A loc_10001553: ; CODE XREF: sub_100014CA+73j ; sub_100014CA+79j xor eax, eax jmp loc_100017AD ; --------------------------------------------------------------------------- loc_1000155A: ; CODE XREF: sub_100014CA+87j nop nop mov eax, [ebp+var_8] add eax, 0F8h mov [ebp+var_4], eax push [ebp+var_4] push [ebp+var_8] push [ebp+arg_4] push [ebp+var_18] call sub_10001365 add esp, 10h mov ecx, [ebp+arg_14] mov [ecx], eax nop nop nop nop mov eax, [ebp+arg_14] cmp dword ptr [eax], 0 jnz short loc_10001593 xor eax, eax jmp loc_100017AD ; --------------------------------------------------------------------------- loc_10001593: ; CODE XREF: sub_100014CA+C0j push 40h push 1000h mov eax, [ebp+arg_14] push dword ptr [eax] push 0 call dword_1000A858 mov ecx, [ebp+arg_10] mov [ecx], eax mov eax, [ebp+arg_10] cmp dword ptr [eax], 0 jz loc_100017AA mov eax, [ebp+var_8] mov eax, [eax+54h] mov [ebp+var_14], eax nop nop nop nop nop nop nop and [ebp+var_10], 0 jmp short loc_100015D5 ; --------------------------------------------------------------------------- loc_100015CE: ; CODE XREF: sub_100014CA:loc_10001613j mov eax, [ebp+var_10] inc eax mov [ebp+var_10], eax loc_100015D5: ; CODE XREF: sub_100014CA+102j mov eax, [ebp+var_8] movzx eax, word ptr [eax+6] cmp [ebp+var_10], eax jge short loc_10001615 mov eax, [ebp+var_10] imul eax, 28h mov ecx, [ebp+var_4] cmp dword ptr [ecx+eax+14h], 0 jz short loc_10001613 mov eax, [ebp+var_10] imul eax, 28h mov ecx, [ebp+var_4] mov eax, [ecx+eax+14h] cmp eax, [ebp+var_14] jnb short loc_10001613 mov eax, [ebp+var_10] imul eax, 28h mov ecx, [ebp+var_4] mov eax, [ecx+eax+14h] mov [ebp+var_14], eax loc_10001613: ; CODE XREF: sub_100014CA+125j ; sub_100014CA+137j jmp short loc_100015CE ; --------------------------------------------------------------------------- loc_10001615: ; CODE XREF: sub_100014CA+115j nop nop nop nop nop nop push [ebp+var_14] push [ebp+var_18] mov eax, [ebp+arg_10] push dword ptr [eax] call sub_100027F9 add esp, 0Ch nop nop nop nop mov eax, [ebp+arg_10] mov eax, [eax] mov ecx, [ebp+arg_10] mov ecx, [ecx] add ecx, [eax+3Ch] mov eax, [ebp+arg_8] mov [eax], ecx nop nop nop nop nop mov eax, [ebp+arg_8] mov eax, [eax] add eax, 0F8h mov ecx, [ebp+arg_C] mov [ecx], eax nop nop nop mov eax, [ebp+arg_8] mov eax, [eax] push dword ptr [eax+38h] mov eax, [ebp+arg_8] mov eax, [eax] push dword ptr [eax+54h] call sub_10001338 pop ecx pop ecx mov ecx, [ebp+arg_10] mov ecx, [ecx] add ecx, eax mov [ebp+var_C], ecx nop nop nop nop nop nop and [ebp+var_10], 0 jmp short loc_1000168F ; --------------------------------------------------------------------------- loc_10001688: ; CODE XREF: sub_100014CA:loc_100017A5j mov eax, [ebp+var_10] inc eax mov [ebp+var_10], eax loc_1000168F: ; CODE XREF: sub_100014CA+1BCj mov eax, [ebp+arg_8] mov eax, [eax] movzx eax, word ptr [eax+6] cmp [ebp+var_10], eax jge loc_100017AA mov eax, [ebp+var_10] imul eax, 28h mov ecx, [ebp+arg_C] mov ecx, [ecx] cmp dword ptr [ecx+eax+0Ch], 0 jz short loc_100016CA mov eax, [ebp+var_10] imul eax, 28h mov ecx, [ebp+arg_C] mov ecx, [ecx] mov edx, [ebp+arg_10] mov edx, [edx] add edx, [ecx+eax+0Ch] mov [ebp+var_C], edx loc_100016CA: ; CODE XREF: sub_100014CA+1E7j mov eax, [ebp+var_10] imul eax, 28h mov ecx, [ebp+arg_C] mov ecx, [ecx] cmp dword ptr [ecx+eax+10h], 0 jz loc_1000177F nop nop mov eax, [ebp+var_10] imul eax, 28h mov ecx, [ebp+arg_C] mov ecx, [ecx] push dword ptr [ecx+eax+10h] mov eax, [ebp+var_10] imul eax, 28h mov ecx, [ebp+arg_C] mov ecx, [ecx] mov edx, [ebp+var_18] add edx, [ecx+eax+14h] push edx push [ebp+var_C] call sub_100027F9 add esp, 0Ch mov eax, [ebp+var_10] imul eax, 28h mov ecx, [ebp+arg_C] mov ecx, [ecx] mov edx, [ebp+var_10] imul edx, 28h mov esi, [ebp+arg_C] mov esi, [esi] mov eax, [ecx+eax+8] cmp eax, [esi+edx+10h] jnb short loc_10001757 mov eax, [ebp+arg_8] mov eax, [eax] push dword ptr [eax+38h] mov eax, [ebp+var_10] imul eax, 28h mov ecx, [ebp+arg_C] mov ecx, [ecx] push dword ptr [ecx+eax+10h] call sub_10001338 pop ecx pop ecx mov ecx, [ebp+var_C] add ecx, eax mov [ebp+var_C], ecx jmp short loc_1000177D ; --------------------------------------------------------------------------- loc_10001757: ; CODE XREF: sub_100014CA+263j mov eax, [ebp+arg_8] mov eax, [eax] push dword ptr [eax+38h] mov eax, [ebp+var_10] imul eax, 28h mov ecx, [ebp+arg_C] mov ecx, [ecx] push dword ptr [ecx+eax+8] call sub_10001338 pop ecx pop ecx mov ecx, [ebp+var_C] add ecx, eax mov [ebp+var_C], ecx loc_1000177D: ; CODE XREF: sub_100014CA+28Bj jmp short loc_100017A5 ; --------------------------------------------------------------------------- loc_1000177F: ; CODE XREF: sub_100014CA+210j mov eax, [ebp+arg_8] mov eax, [eax] push dword ptr [eax+38h] mov eax, [ebp+var_10] imul eax, 28h mov ecx, [ebp+arg_C] mov ecx, [ecx] push dword ptr [ecx+eax+8] call sub_10001338 pop ecx pop ecx mov ecx, [ebp+var_C] add ecx, eax mov [ebp+var_C], ecx loc_100017A5: ; CODE XREF: sub_100014CA:loc_1000177Dj jmp loc_10001688 ; --------------------------------------------------------------------------- loc_100017AA: ; CODE XREF: sub_100014CA+E8j ; sub_100014CA+1D1j push 1 pop eax loc_100017AD: ; CODE XREF: sub_100014CA+17j ; sub_100014CA+2Bj ... pop edi pop esi pop ebx leave retn sub_100014CA endp ; [00000011 BYTES: COLLAPSED FUNCTION __uncaught_exception(void). PRESS KEYPAD "+" TO EXPAND] ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame ; int __cdecl sub_100017C3(char *Source) sub_100017C3 proc near ; CODE XREF: sub_10001A2B+1Fp Dst = dword ptr -4 Source = dword ptr 8 push ebp mov ebp, esp push ecx push ebx push esi push edi push 1 ; int push 100h ; Size call sub_10002DEB pop ecx pop ecx mov [ebp+Dst], eax call ?__uncaught_exception@@YA_NXZ ; __uncaught_exception(void) test eax, eax jz short loc_1000181E push 100h ; Size push 0 ; Val push [ebp+Dst] ; Dst call _memset add esp, 0Ch nop nop nop nop nop nop push 100h push [ebp+Dst] push 0 call dword_1000A808 push [ebp+Source] ; Source push [ebp+Dst] ; Dest call _strcat pop ecx pop ecx mov eax, [ebp+Dst] jmp short loc_10001820 ; --------------------------------------------------------------------------- loc_1000181E: ; CODE XREF: sub_100017C3+1Fj xor eax, eax loc_10001820: ; CODE XREF: sub_100017C3+59j pop edi pop esi pop ebx leave retn sub_100017C3 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_10001825 proc near ; CODE XREF: sub_10001A2B+12Bp var_4 = dword ptr -4 arg_0 = dword ptr 8 push ebp mov ebp, esp push ecx mov eax, [ebp+arg_0] cmp dword ptr [eax+0A0h], 0 jz short loc_1000184A mov eax, [ebp+arg_0] cmp dword ptr [eax+0A4h], 0 jz short loc_1000184A mov [ebp+var_4], 1 jmp short loc_1000184E ; --------------------------------------------------------------------------- loc_1000184A: ; CODE XREF: sub_10001825+Ej ; sub_10001825+1Aj and [ebp+var_4], 0 loc_1000184E: ; CODE XREF: sub_10001825+23j mov eax, [ebp+var_4] leave retn sub_10001825 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_10001853 proc near ; CODE XREF: sub_10001A2B+16Bp var_14 = dword ptr -14h var_10 = dword ptr -10h var_C = dword ptr -0Ch 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 push ebp mov ebp, esp sub esp, 14h push ebx push esi push edi mov eax, [ebp+arg_0] mov ecx, [ebp+arg_8] sub ecx, [eax+34h] mov [ebp+var_8], ecx nop nop nop nop mov eax, [ebp+arg_0] mov ecx, [ebp+arg_4] add ecx, [eax+0A0h] mov [ebp+var_4], ecx loc_1000187B: ; CODE XREF: sub_10001853+A2j mov eax, [ebp+var_4] mov eax, [eax] mov ecx, [ebp+var_4] add eax, [ecx+4] test eax, eax jz short loc_100018F7 mov eax, [ebp+var_4] add eax, 8 mov [ebp+var_14], eax mov [ebp+var_10], 1 jmp short loc_100018A3 ; --------------------------------------------------------------------------- loc_1000189C: ; CODE XREF: sub_10001853+9Aj mov eax, [ebp+var_10] inc eax mov [ebp+var_10], eax loc_100018A3: ; CODE XREF: sub_10001853+47j mov eax, [ebp+var_4] mov eax, [eax+4] sub eax, 8 shr eax, 1 cmp [ebp+var_10], eax ja short loc_100018EF xor eax, eax test eax, eax jz short loc_100018E5 nop nop nop nop nop nop nop mov eax, [ebp+var_4] mov ecx, [ebp+arg_4] add ecx, [eax] mov eax, [ebp+var_14] movzx eax, word ptr [eax] and eax, 0FFFh add ecx, eax mov [ebp+var_C], ecx mov eax, [ebp+var_C] mov eax, [eax] add eax, [ebp+var_8] mov ecx, [ebp+var_C] mov [ecx], eax loc_100018E5: ; CODE XREF: sub_10001853+64j mov eax, [ebp+var_14] inc eax inc eax mov [ebp+var_14], eax jmp short loc_1000189C ; --------------------------------------------------------------------------- loc_100018EF: ; CODE XREF: sub_10001853+5Ej mov eax, [ebp+var_14] mov [ebp+var_4], eax jmp short loc_1000187B ; --------------------------------------------------------------------------- loc_100018F7: ; CODE XREF: sub_10001853+35j pop edi pop esi pop ebx leave retn sub_10001853 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_100018FC proc near ; CODE XREF: sub_10001A2B+EFp var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp push ecx and [ebp+var_4], 0 push [ebp+arg_4] push [ebp+arg_0] call dword_1000A7D4 neg eax sbb eax, eax inc eax mov [ebp+var_4], eax mov eax, [ebp+var_4] leave retn sub_100018FC endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_1000191D proc near ; CODE XREF: sub_10001A2B+71p var_7C = dword ptr -7Ch var_78 = byte ptr -78h Dst = dword ptr -74h var_30 = byte ptr -30h var_24 = dword ptr -24h var_20 = dword ptr -20h var_14 = dword ptr -14h var_10 = dword ptr -10h var_C = dword ptr -0Ch var_8 = dword ptr -8 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 arg_14 = dword ptr 1Ch arg_18 = dword ptr 20h arg_1C = dword ptr 24h push ebp mov ebp, esp sub esp, 7Ch push ebx push esi push edi push 44h ; Size push 0 ; Val lea eax, [ebp+Dst] push eax ; Dst call _memset add esp, 0Ch nop nop nop nop push 10h ; Size push 0 ; Val lea eax, [ebp+var_10] push eax ; Dst call _memset add esp, 0Ch mov [ebp+Dst], 44h lea eax, [ebp+var_10] push eax lea eax, [ebp+Dst] push eax push 0 push 0 push 4 push 0 push 0 push 0 push [ebp+arg_4] push [ebp+arg_0] call dword_1000A7F0 mov [ebp+var_14], eax cmp [ebp+var_14], 0 jz loc_10001A23 mov eax, [ebp+arg_C] mov ecx, [ebp+var_10] mov [eax], ecx mov eax, [ebp+arg_10] mov ecx, [ebp+var_C] mov [eax], ecx mov eax, [ebp+arg_14] mov ecx, [ebp+var_8] mov [eax], ecx nop nop nop nop nop nop mov eax, [ebp+arg_8] mov dword ptr [eax], 10007h push [ebp+arg_8] mov eax, [ebp+arg_10] push dword ptr [eax] call dword_1000A7CC lea eax, [ebp+var_78] push eax push 4 push [ebp+arg_18] mov eax, [ebp+arg_8] mov eax, [eax+0A4h] add eax, 8 push eax mov eax, [ebp+arg_C] push dword ptr [eax] call dword_1000A7F4 mov eax, [ebp+arg_18] mov eax, [eax] mov [ebp+var_7C], eax loc_100019DC: ; CODE XREF: sub_1000191D+F7j push 1Ch lea eax, [ebp+var_30] push eax push [ebp+var_7C] mov eax, [ebp+arg_C] push dword ptr [eax] call dword_1000A7FC test eax, eax jz short loc_10001A16 nop nop nop nop mov [ebp+var_20], 10000h cmp [ebp+var_20], 0 jz short loc_10001A07 jmp short loc_10001A16 ; --------------------------------------------------------------------------- loc_10001A07: ; CODE XREF: sub_1000191D+E6j nop nop nop nop mov eax, [ebp+var_7C] add eax, [ebp+var_24] mov [ebp+var_7C], eax jmp short loc_100019DC ; --------------------------------------------------------------------------- loc_10001A16: ; CODE XREF: sub_1000191D+D5j ; sub_1000191D+E8j mov eax, [ebp+arg_18] mov ecx, [ebp+var_7C] sub ecx, [eax] mov eax, [ebp+arg_1C] mov [eax], ecx loc_10001A23: ; CODE XREF: sub_1000191D+5Bj mov eax, [ebp+var_14] pop edi pop esi pop ebx leave retn sub_1000191D endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame ; int __cdecl sub_10001A2B(char *Source, int, int, int, int, int, int) sub_10001A2B proc near ; CODE XREF: sub_10001CF2+43p var_2E8 = byte ptr -2E8h var_2E4 = dword ptr -2E4h var_2E0 = dword ptr -2E0h var_2DC = dword ptr -2DCh var_2D8 = dword ptr -2D8h var_2D4 = dword ptr -2D4h var_230 = dword ptr -230h var_224 = dword ptr -224h var_8 = dword ptr -8 var_4 = dword ptr -4 Source = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h arg_10 = dword ptr 18h arg_14 = dword ptr 1Ch arg_18 = dword ptr 20h push ebp mov ebp, esp sub esp, 2E8h push ebx push esi push edi or [ebp+var_2DC], 0FFFFFFFFh push [ebp+arg_14] mov eax, [ebp+arg_8] push dword ptr [eax+34h] push [ebp+Source] ; Source call sub_100017C3 add esp, 0Ch mov [ebp+var_2D8], eax cmp [ebp+var_2D8], 0 jnz short loc_10001A6C mov eax, [ebp+var_2DC] jmp loc_10001CED ; --------------------------------------------------------------------------- loc_10001A6C: ; CODE XREF: sub_10001A2B+34j nop nop nop nop nop nop nop lea eax, [ebp+var_4] push eax lea eax, [ebp+var_2E0] push eax push [ebp+arg_18] lea eax, [ebp+var_8] push eax lea eax, [ebp+var_2DC] push eax lea eax, [ebp+var_2D4] push eax push [ebp+arg_4] push [ebp+var_2D8] call sub_1000191D add esp, 20h test eax, eax jz loc_10001CDB and [ebp+var_2E4], 0 mov eax, [ebp+arg_8] mov eax, [eax+34h] cmp eax, [ebp+var_2E0] jnz short loc_10001AFE mov eax, [ebp+var_4] cmp eax, [ebp+arg_14] jb short loc_10001AFE nop nop nop mov eax, [ebp+var_2E0] mov [ebp+var_2E4], eax lea eax, [ebp+var_2E8] push eax push 40h push [ebp+var_4] push [ebp+var_2E4] push [ebp+var_2DC] call dword_1000A804 nop nop nop jmp loc_10001BA1 ; --------------------------------------------------------------------------- loc_10001AFE: ; CODE XREF: sub_10001A2B+94j ; sub_10001A2B+9Cj call ?__uncaught_exception@@YA_NXZ ; __uncaught_exception(void) test eax, eax jz loc_10001BA1 nop nop nop push [ebp+var_2E0] push [ebp+var_2DC] call sub_100018FC pop ecx pop ecx test eax, eax jz short loc_10001B4A push 40h push 3000h push [ebp+arg_14] mov eax, [ebp+arg_8] push dword ptr [eax+34h] push [ebp+var_2DC] call dword_1000A838 mov [ebp+var_2E4], eax nop nop nop loc_10001B4A: ; CODE XREF: sub_10001A2B+F8j cmp [ebp+var_2E4], 0 jnz short loc_10001BA1 push [ebp+arg_8] call sub_10001825 pop ecx test eax, eax jz short loc_10001BA1 nop nop nop push 40h push 3000h push [ebp+arg_14] push 0 push [ebp+var_2DC] call dword_1000A838 mov [ebp+var_2E4], eax cmp [ebp+var_2E4], 0 jz short loc_10001B9E push [ebp+var_2E4] push [ebp+arg_10] push [ebp+arg_8] call sub_10001853 add esp, 0Ch loc_10001B9E: ; CODE XREF: sub_10001A2B+15Dj nop nop nop loc_10001BA1: ; CODE XREF: sub_10001A2B+CEj ; sub_10001A2B+DAj ... cmp [ebp+var_2E4], 0 jz loc_10001CAD nop nop nop nop nop nop nop nop lea eax, [ebp+var_2E8] push eax push 4 lea eax, [ebp+var_2E4] push eax mov eax, [ebp+var_230] add eax, 8 push eax push [ebp+var_2DC] call dword_1000A83C mov eax, [ebp+arg_8] mov ecx, [ebp+var_2E4] mov [eax+34h], ecx nop nop nop nop lea eax, [ebp+var_2E8] push eax push [ebp+arg_14] push [ebp+arg_10] push [ebp+var_2E4] push [ebp+var_2DC] call dword_1000A83C test eax, eax jz short loc_10001C7D mov [ebp+var_2D4], 10007h nop nop nop nop mov eax, [ebp+var_2E4] cmp eax, [ebp+var_2E0] jnz short loc_10001C3F mov eax, [ebp+arg_8] mov eax, [eax+34h] mov ecx, [ebp+arg_8] add eax, [ecx+28h] mov [ebp+var_224], eax jmp short loc_10001C51 ; --------------------------------------------------------------------------- loc_10001C3F: ; CODE XREF: sub_10001A2B+1FEj mov eax, [ebp+arg_8] mov ecx, [ebp+var_2E4] add ecx, [eax+28h] mov [ebp+var_224], ecx loc_10001C51: ; CODE XREF: sub_10001A2B+212j lea eax, [ebp+var_2D4] push eax push [ebp+var_8] call dword_1000A830 nop nop nop nop nop nop nop nop push [ebp+var_8] call dword_1000A824 push [ebp+var_8] call dword_1000A7D0 jmp short loc_10001CAB ; --------------------------------------------------------------------------- loc_10001C7D: ; CODE XREF: sub_10001A2B+1E2j push 0 push [ebp+var_2DC] call dword_1000A84C push [ebp+var_8] call dword_1000A7D0 nop nop nop nop push [ebp+var_2DC] call dword_1000A7D0 or [ebp+var_2DC], 0FFFFFFFFh loc_10001CAB: ; CODE XREF: sub_10001A2B+250j jmp short loc_10001CDB ; --------------------------------------------------------------------------- loc_10001CAD: ; CODE XREF: sub_10001A2B+17Dj push 0 push [ebp+var_2DC] call dword_1000A84C push [ebp+var_8] call dword_1000A7D0 nop nop nop nop push [ebp+var_2DC] call dword_1000A7D0 or [ebp+var_2DC], 0FFFFFFFFh loc_10001CDB: ; CODE XREF: sub_10001A2B+7Bj ; sub_10001A2B:loc_10001CABj push [ebp+var_2D8] call sub_10002E9C pop ecx mov eax, [ebp+var_2DC] loc_10001CED: ; CODE XREF: sub_10001A2B+3Cj pop edi pop esi pop ebx leave retn sub_10001A2B endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_10001CF2 proc near ; CODE XREF: WinMain(x,x,x,x)+191p var_14 = dword ptr -14h var_10 = dword ptr -10h var_C = dword ptr -0Ch 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 push ebp mov ebp, esp sub esp, 14h or [ebp+var_10], 0FFFFFFFFh lea eax, [ebp+var_4] push eax lea eax, [ebp+var_C] push eax lea eax, [ebp+var_8] push eax lea eax, [ebp+var_14] push eax push [ebp+arg_8] push [ebp+arg_0] call sub_100014CA add esp, 18h test eax, eax jz short loc_10001D4E push [ebp+arg_C] ; int push [ebp+var_4] ; int push [ebp+var_C] ; int push [ebp+var_8] ; int push [ebp+var_14] ; int push [ebp+arg_4] ; int push offset dword_1000A85C ; Source call sub_10001A2B add esp, 1Ch push 4000h push [ebp+var_4] push [ebp+var_C] call dword_1000A800 loc_10001D4E: ; CODE XREF: sub_10001CF2+2Aj mov eax, [ebp+var_10] leave retn sub_10001CF2 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_10001D53 proc near ; CODE XREF: WinMain(x,x,x,x)+74p ; WinMain(x,x,x,x)+D1p arg_0 = dword ptr 8 push ebp mov ebp, esp push ebx push esi push edi cmp [ebp+arg_0], 0 jz loc_1000231F push 9 ; int push offset dword_10008044 ; int push offset aLulhelloworldc ; "lulhelloworldcppftw" call sub_1000109E add esp, 0Ch push eax ; Source push offset dword_10008044 ; Dest call _strcpy pop ecx pop ecx push 0Ch ; int push offset dword_10008050 ; int push offset aLulhelloworldc ; "lulhelloworldcppftw" call sub_1000109E add esp, 0Ch push eax ; Source push offset dword_10008050 ; Dest call _strcpy pop ecx pop ecx push 0Ch ; int push offset dword_10008220 ; int push offset aLulhelloworldc ; "lulhelloworldcppftw" call sub_1000109E add esp, 0Ch push eax ; Source push offset dword_10008220 ; Dest call _strcpy pop ecx pop ecx nop nop nop nop nop nop nop nop push 0Ch ; int push offset Dest ; "ί&fxR@" push offset aLulhelloworldc ; "lulhelloworldcppftw" call sub_1000109E add esp, 0Ch push eax ; Source push offset Dest ; "ί&fxR@" call _strcpy pop ecx pop ecx push 0Eh ; int push offset aPFXR@U ; "ί&fxR@ԓ" push offset aLulhelloworldc ; "lulhelloworldcppftw" call sub_1000109E add esp, 0Ch push eax ; Source push offset aPFXR@U ; "ί&fxR@ԓ" call _strcpy pop ecx pop ecx nop nop nop nop push 12h ; int push offset aGAAqUf ; "ߣ |a[F۳" push offset aLulhelloworldc ; "lulhelloworldcppftw" call sub_1000109E add esp, 0Ch push eax ; Source push offset aGAAqUf ; "ߣ |a[F۳" call _strcpy pop ecx pop ecx push 14h ; int push offset asc_10008094 ; "±" push offset aLulhelloworldc ; "lulhelloworldcppftw" call sub_1000109E add esp, 0Ch push eax ; Source push offset asc_10008094 ; "±" call _strcpy pop ecx pop ecx push 0Bh ; int push offset a1i_Vb_zv ; "1_v_V" push offset aLulhelloworldc ; "lulhelloworldcppftw" call sub_1000109E add esp, 0Ch push eax ; Source push offset a1i_Vb_zv ; "1_v_V" call _strcpy pop ecx pop ecx nop nop nop nop push 0Eh ; int push offset a1mgDbqJE ; "۴1gDQJĥ" push offset aLulhelloworldc ; "lulhelloworldcppftw" call sub_1000109E add esp, 0Ch push eax ; Source push offset a1mgDbqJE ; "۴1gDQJĥ" call _strcpy pop ecx pop ecx push 10h ; int push offset aGSQtzc@VT ; "ߣ {qZ@٢ќt" push offset aLulhelloworldc ; "lulhelloworldcppftw" call sub_1000109E add esp, 0Ch push eax ; Source push offset aGSQtzc@VT ; "ߣ {qZ@٢ќt" call _strcpy pop ecx pop ecx push 11h ; int push offset aG5icRJ ; "ʣ5C{[\\" push offset aLulhelloworldc ; "lulhelloworldcppftw" call sub_1000109E add esp, 0Ch push eax ; Source push offset aG5icRJ ; "ʣ5C{[\\" call _strcpy pop ecx pop ecx push 0Eh ; int push offset aPFXvkU ; "ί&fxK]Γ" push offset aLulhelloworldc ; "lulhelloworldcppftw" call sub_1000109E add esp, 0Ch push eax ; Source push offset aPFXvkU ; "ί&fxK]Γ" call _strcpy pop ecx pop ecx push 10h ; int push offset aPFXglBx ; "ί&fxL[ҵx" push offset aLulhelloworldc ; "lulhelloworldcppftw" call sub_1000109E add esp, 0Ch push eax ; Source push offset aPFXglBx ; "ί&fxL[ҵx" call _strcpy pop ecx pop ecx push 12h ; int push offset aV ; "ϴ=v" push offset aLulhelloworldc ; "lulhelloworldcppftw" call sub_1000109E add esp, 0Ch push eax ; Source push offset aV ; "ϴ=v" call _strcpy pop ecx pop ecx push 10h ; int push offset aGSQtzc@VT_0 ; "ˣ {qZ@٢ќt" push offset aLulhelloworldc ; "lulhelloworldcppftw" call sub_1000109E add esp, 0Ch push eax ; Source push offset aGSQtzc@VT_0 ; "ˣ {qZ@٢ќt" call _strcpy pop ecx pop ecx push 0Ch ; int push offset aG@ilN ; "ʣ'~@LN" push offset aLulhelloworldc ; "lulhelloworldcppftw" call sub_1000109E add esp, 0Ch push eax ; Source push offset aG@ilN ; "ʣ'~@LN" call _strcpy pop ecx pop ecx push 0Bh ; int push offset aKVquazJ ; "۪;vuZJ" push offset aLulhelloworldc ; "lulhelloworldcppftw" call sub_1000109E add esp, 0Ch push eax ; Source push offset aKVquazJ ; "۪;vuZJ" call _strcpy pop ecx pop ecx nop nop nop nop nop nop nop nop nop nop nop nop push 10h ; int push offset aGAzUzECs ; "̣&zu[]صїs" push offset aLulhelloworldc ; "lulhelloworldcppftw" call sub_1000109E add esp, 0Ch push eax ; Source push offset aGAzUzECs ; "̣&zu[]صїs" call _strcpy pop ecx pop ecx push 0Bh ; int push offset aPFXLJ ; "ί&fxLJ" push offset aLulhelloworldc ; "lulhelloworldcppftw" call sub_1000109E add esp, 0Ch push eax ; Source push offset aPFXLJ ; "ί&fxLJ" call _strcpy pop ecx pop ecx push 0Ch ; int push offset aGBUqjB ; "ˣ |ujB" push offset aLulhelloworldc ; "lulhelloworldcppftw" call sub_1000109E add esp, 0Ch push eax ; Source push offset aGBUqjB ; "ˣ |ujB" call _strcpy pop ecx pop ecx push 0Ch ; int push offset aGBUqjB_0 ; "ߣ |ujB" push offset aLulhelloworldc ; "lulhelloworldcppftw" call sub_1000109E add esp, 0Ch push eax ; Source push offset aGBUqjB_0 ; "ߣ |ujB" call _strcpy pop ecx pop ecx push 5 ; int push offset aK1ic ; "˪1c" push offset aLulhelloworldc ; "lulhelloworldcppftw" call sub_1000109E add esp, 0Ch push eax ; Source push offset aK1ic ; "˪1c" call _strcpy pop ecx pop ecx nop nop nop nop nop nop nop nop nop nop nop nop push 11h ; int push offset a8oDbJ ; "ʲ8|d[\\" push offset aLulhelloworldc ; "lulhelloworldcppftw" call sub_1000109E add esp, 0Ch push eax ; Source push offset a8oDbJ ; "ʲ8|d[\\" call _strcpy pop ecx pop ecx push 13h ; int push offset a8ivUnzjE ; "ʲ8v{NJĥ" push offset aLulhelloworldc ; "lulhelloworldcppftw" call sub_1000109E add esp, 0Ch push eax ; Source push offset a8ivUnzjE ; "ʲ8v{NJĥ" call _strcpy pop ecx pop ecx push 1Eh ; int push offset a8kvWSeENonOK ; "ʲ8vWS]ҥǍo{ [k" push offset aLulhelloworldc ; "lulhelloworldcppftw" call sub_1000109E add esp, 0Ch push eax ; Source push offset a8kvWSeENonOK ; "ʲ8vWS]ҥǍo{ [k" call _strcpy pop ecx pop ecx nop nop nop nop nop nop nop nop nop nop nop nop push 0Bh ; int push offset a1mgRRN ; "۴1gRRn" push offset aLulhelloworldc ; "lulhelloworldcppftw" call sub_1000109E add esp, 0Ch push eax ; Source push offset a1mgRRN ; "۴1gRRn" call _strcpy pop ecx pop ecx push 8 ; int push offset aG5iuXc ; "ʣ5Ux" push offset aLulhelloworldc ; "lulhelloworldcppftw" call sub_1000109E add esp, 0Ch push eax ; Source push offset aG5iuXc ; "ʣ5Ux" call _strcpy pop ecx pop ecx push 0Dh ; int push offset aGLzQawpj ; "ߣ zqWJ" push offset aLulhelloworldc ; "lulhelloworldcppftw" call sub_1000109E add esp, 0Ch push eax ; Source push offset aGLzQawpj ; "ߣ zqWJ" call _strcpy pop ecx pop ecx push 0Eh ; int push offset aGLzQgqA ; "ˣ zqQAó" push offset aLulhelloworldc ; "lulhelloworldcppftw" call sub_1000109E add esp, 0Ch push eax ; Source push offset aGLzQgqA ; "ˣ zqQAó" call _strcpy pop ecx pop ecx push 0Ch ; int push offset aGSF_J ; "ߣ `f_J" push offset aLulhelloworldc ; "lulhelloworldcppftw" call sub_1000109E add esp, 0Ch push eax ; Source push offset aGSF_J ; "ߣ `f_J" call _strcpy pop ecx pop ecx push 0Bh ; int push offset aG3vcZMn ; "ʣ3cz[n" push offset aLulhelloworldc ; "lulhelloworldcppftw" call sub_1000109E add esp, 0Ch push eax ; Source push offset aG3vcZMn ; "ʣ3cz[n" call _strcpy pop ecx pop ecx push 10h ; int push offset aG3FFkhC ; "ʣ3ffhC³" push offset aLulhelloworldc ; "lulhelloworldcppftw" call sub_1000109E add esp, 0Ch push eax ; Source push offset aG3FFkhC ; "ʣ3ffhC³" call _strcpy pop ecx pop ecx nop nop nop nop nop nop nop nop nop nop nop nop push 0Bh ; int push offset aG3o ; "ʣ3" push offset aLulhelloworldc ; "lulhelloworldcppftw" call sub_1000109E add esp, 0Ch push eax ; Source push offset aG3o ; "ʣ3" call _strcpy pop ecx pop ecx push 0Bh ; int push offset aVJm ; "۳&v`M]" push offset aLulhelloworldc ; "lulhelloworldcppftw" call sub_1000109E add esp, 0Ch push eax ; Source push offset aVJm ; "۳&v`M]" call _strcpy pop ecx pop ecx push 7 ; int push offset aIzIqL ; ":ql" push offset aLulhelloworldc ; "lulhelloworldcppftw" call sub_1000109E add esp, 0Ch push eax ; Source push offset aIzIqL ; ":ql" call _strcpy pop ecx pop ecx push 6 ; int push offset aUlMa ; "#a" push offset aLulhelloworldc ; "lulhelloworldcppftw" call sub_1000109E add esp, 0Ch push eax ; Source push offset aUlMa ; "#a" call _strcpy pop ecx pop ecx push 0Ch ; int push offset aI5i_Vb_zv ; "ԩ5_v_V" push offset aLulhelloworldc ; "lulhelloworldcppftw" call sub_1000109E add esp, 0Ch push eax ; Source push offset aI5i_Vb_zv ; "ԩ5_v_V" call _strcpy pop ecx pop ecx push 10h ; int push offset aGAAqAnBa ; "ߣ |a[NٲA" push offset aLulhelloworldc ; "lulhelloworldcppftw" call sub_1000109E add esp, 0Ch push eax ; Source push offset aGAAqAnBa ; "ߣ |a[NٲA" call _strcpy pop ecx pop ecx push 0Ah ; int push offset aKPrRb ; "ߪ;rR[" push offset aLulhelloworldc ; "lulhelloworldcppftw" call sub_1000109E add esp, 0Ch push eax ; Source push offset aKPrRb ; "ߪ;rR[" call _strcpy pop ecx pop ecx push 0Bh ; int push offset aKPrUqrL ; "ߪ;rURL" push offset aLulhelloworldc ; "lulhelloworldcppftw" call sub_1000109E add esp, 0Ch push eax ; Source push offset aKPrUqrL ; "ߪ;rURL" call _strcpy pop ecx pop ecx nop nop nop nop nop nop nop nop nop nop nop nop push 0Ch ; int push offset aGBrLz@ ; "ˣ r`L@" push offset aLulhelloworldc ; "lulhelloworldcppftw" call sub_1000109E add esp, 0Ch push eax ; Source push offset aGBrLz@ ; "ˣ r`L@" call _strcpy pop ecx pop ecx push 0Ch ; int push offset aGBrLz@_0 ; "ߣ r`L@" push offset aLulhelloworldc ; "lulhelloworldcppftw" call sub_1000109E add esp, 0Ch push eax ; Source push offset aGBrLz@_0 ; "ߣ r`L@" call _strcpy pop ecx pop ecx nop nop nop nop jmp short loc_10002361 ; --------------------------------------------------------------------------- loc_1000231F: ; CODE XREF: sub_10001D53+Aj push 24h ; int push offset aIAXNASOI ; "۩:axnAҺoI" push offset aLulhelloworldc ; "lulhelloworldcppftw" call sub_1000109E add esp, 0Ch push eax ; Source push offset aIAXNASOI ; "۩:axnAҺoI" call _strcpy pop ecx pop ecx push 4 ; int push offset aG1 ; "ڣ1" push offset aLulhelloworldc ; "lulhelloworldcppftw" call sub_1000109E add esp, 0Ch push eax ; Source push offset aG1 ; "ڣ1" call _strcpy pop ecx pop ecx loc_10002361: ; CODE XREF: sub_10001D53+5CAj pop edi pop esi pop ebx pop ebp retn sub_10001D53 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_10002366 proc near ; CODE XREF: WinMain(x,x,x,x)+E1p var_8 = dword ptr -8 var_4 = dword ptr -4 arg_0 = dword ptr 8 push ebp mov ebp, esp push ecx push ecx push ebx push esi push edi push offset aI5i_Vb_zv ; "ԩ5_v_V" push [ebp+arg_0] call dword_1000A80C mov dword_1000A828, eax push offset dword_10008044 call dword_1000A828 mov [ebp+var_8], eax push offset dword_10008220 call dword_1000A828 mov [ebp+var_4], eax nop nop nop nop push offset Dest ; "ί&fxR@" push [ebp+arg_0] call dword_1000A80C mov dword_1000A858, eax nop nop nop nop push offset aPFXR@U ; "ί&fxR@ԓ" push [ebp+arg_0] call dword_1000A80C mov dword_1000A838, eax push offset aGAAqUf ; "ߣ |a[F۳" push [ebp+arg_0] call dword_1000A80C mov dword_1000A808, eax push offset asc_10008094 ; "±" push [ebp+var_8] call dword_1000A80C mov dword_1000A7D4, eax nop nop nop nop push offset a1i_Vb_zv ; "1_v_V" push [ebp+arg_0] call dword_1000A80C mov dword_1000A7D8, eax push offset a1mgDbqJE ; "۴1gDQJĥ" push [ebp+arg_0] call dword_1000A80C mov dword_1000A7F0, eax push offset aGSQtzc@VT ; "ߣ {qZ@٢ќt" push [ebp+arg_0] call dword_1000A80C mov dword_1000A7CC, eax push offset aG5icRJ ; "ʣ5C{[\\" push [ebp+arg_0] call dword_1000A80C mov dword_1000A7F4, eax nop nop nop nop push offset aPFXvkU ; "ί&fxK]Γ" push [ebp+arg_0] call dword_1000A80C mov dword_1000A7FC, eax push offset aPFXglBx ; "ί&fxL[ҵx" push [ebp+arg_0] call dword_1000A80C mov dword_1000A804, eax push offset aV ; "ϴ=v" push [ebp+arg_0] call dword_1000A80C mov dword_1000A83C, eax push offset aGSQtzc@VT_0 ; "ˣ {qZ@٢ќt" push [ebp+arg_0] call dword_1000A80C mov dword_1000A830, eax push offset aG@ilN ; "ʣ'~@LN" push [ebp+arg_0] call dword_1000A80C mov dword_1000A824, eax push offset aKVquazJ ; "۪;vuZJ" push [ebp+arg_0] call dword_1000A80C mov dword_1000A7D0, eax nop nop nop nop push offset aGAzUzECs ; "̣&zu[]صїs" push [ebp+arg_0] call dword_1000A80C mov dword_1000A84C, eax push offset aPFXLJ ; "ί&fxLJ" push [ebp+arg_0] call dword_1000A80C mov dword_1000A800, eax push offset aGBUqjB_0 ; "ߣ |ujB" push [ebp+arg_0] call dword_1000A80C mov dword_1000A848, eax push offset aGBUqjB ; "ˣ |ujB" push [ebp+arg_0] call dword_1000A80C mov dword_1000A81C, eax nop nop nop nop push offset aK1ic ; "˪1c" push [ebp+arg_0] call dword_1000A80C mov dword_1000A7E8, eax push offset a8oDbJ ; "ʲ8|d[\\" push [ebp+var_8] call dword_1000A80C mov dword_1000A82C, eax push offset a8ivUnzjE ; "ʲ8v{NJĥ" push [ebp+var_8] call dword_1000A80C mov dword_1000A7C8, eax push offset a8kvWSeENonOK ; "ʲ8vWS]ҥǍo{ [k" push [ebp+var_8] call dword_1000A80C mov dword_1000A7DC, eax nop nop nop nop nop nop nop nop push offset a1mgRRN ; "۴1gRRn" push [ebp+arg_0] call dword_1000A80C mov dword_1000A818, eax push offset aG5iuXc ; "ʣ5Ux" push [ebp+arg_0] call dword_1000A80C mov dword_1000A7F8, eax push offset aGLzQgqA ; "ˣ zqQAó" push [ebp+arg_0] call dword_1000A80C mov dword_1000A850, eax push offset aGLzQawpj ; "ߣ zqWJ" push [ebp+arg_0] call dword_1000A80C mov dword_1000A820, eax nop nop nop nop push offset aGSF_J ; "ߣ `f_J" push [ebp+var_4] call dword_1000A80C mov dword_1000A840, eax push offset aG3vcZMn ; "ʣ3cz[n" push [ebp+var_4] call dword_1000A80C mov dword_1000A834, eax push offset aG3FFkhC ; "ʣ3ffhC³" push [ebp+var_4] call dword_1000A80C mov dword_1000A7EC, eax push offset aG3o ; "ʣ3" push [ebp+var_4] call dword_1000A80C mov dword_1000A844, eax nop nop nop nop nop nop nop nop push offset aGAAqAnBa ; "ߣ |a[NٲA" push [ebp+arg_0] call dword_1000A80C mov dword_1000A814, eax push offset aGBrLz@ ; "ˣ r`L@" push [ebp+arg_0] call dword_1000A80C mov dword_1000A7E0, eax push offset aGBrLz@_0 ; "ߣ r`L@" push [ebp+arg_0] call dword_1000A80C mov dword_1000A854, eax nop nop nop nop cmp dword_1000A858, 0 jz loc_1000278A cmp dword_1000A838, 0 jz loc_1000278A cmp dword_1000A808, 0 jz loc_1000278A cmp dword_1000A7D4, 0 jz loc_1000278A cmp dword_1000A7D8, 0 jz loc_1000278A cmp dword_1000A7F0, 0 jz loc_1000278A cmp dword_1000A7CC, 0 jz loc_1000278A cmp dword_1000A7F4, 0 jz loc_1000278A cmp dword_1000A7FC, 0 jz loc_1000278A cmp dword_1000A804, 0 jz loc_1000278A cmp dword_1000A83C, 0 jz loc_1000278A cmp dword_1000A830, 0 jz loc_1000278A cmp dword_1000A824, 0 jz loc_1000278A cmp dword_1000A7D0, 0 jz loc_1000278A cmp dword_1000A84C, 0 jz loc_1000278A cmp dword_1000A800, 0 jz short loc_1000278A cmp dword_1000A848, 0 jz short loc_1000278A cmp dword_1000A81C, 0 jz short loc_1000278A cmp dword_1000A7E8, 0 jz short loc_1000278A cmp dword_1000A82C, 0 jz short loc_1000278A cmp dword_1000A7C8, 0 jz short loc_1000278A cmp dword_1000A7DC, 0 jz short loc_1000278A cmp dword_1000A818, 0 jz short loc_1000278A cmp dword_1000A7F8, 0 jz short loc_1000278A cmp dword_1000A850, 0 jz short loc_1000278A cmp dword_1000A820, 0 jz short loc_1000278A cmp dword_1000A840, 0 jz short loc_1000278A cmp dword_1000A834, 0 jz short loc_1000278A cmp dword_1000A7EC, 0 jz short loc_1000278A cmp dword_1000A844, 0 jnz short loc_1000278E loc_1000278A: ; CODE XREF: sub_10002366+2E1j ; sub_10002366+2EEj ... xor al, al jmp short loc_10002790 ; --------------------------------------------------------------------------- loc_1000278E: ; CODE XREF: sub_10002366+422j mov al, 1 loc_10002790: ; CODE XREF: sub_10002366+426j pop edi pop esi pop ebx leave retn sub_10002366 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_10002795 proc near ; CODE XREF: sub_10002A2D+69p ; sub_10002A2D+87p var_8 = dword ptr -8 var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp push ecx push ecx mov eax, [ebp+arg_4] movsx eax, byte ptr [eax] test eax, eax jnz short loc_100027A9 mov eax, [ebp+arg_0] jmp short locret_100027F7 ; --------------------------------------------------------------------------- loc_100027A9: ; CODE XREF: sub_10002795+Dj ; sub_10002795+5Ej mov eax, [ebp+arg_0] movsx eax, byte ptr [eax] test eax, eax jz short loc_100027F5 mov eax, [ebp+arg_0] mov [ebp+var_8], eax mov eax, [ebp+arg_4] mov [ebp+var_4], eax loc_100027BF: ; CODE XREF: sub_10002795+55j mov eax, [ebp+var_4] movsx eax, byte ptr [eax] test eax, eax jnz short loc_100027CE mov eax, [ebp+arg_0] jmp short locret_100027F7 ; --------------------------------------------------------------------------- loc_100027CE: ; CODE XREF: sub_10002795+32j mov eax, [ebp+var_8] movsx eax, byte ptr [eax] mov ecx, [ebp+var_4] movsx ecx, byte ptr [ecx] mov edx, [ebp+var_4] inc edx mov [ebp+var_4], edx mov edx, [ebp+var_8] inc edx mov [ebp+var_8], edx cmp eax, ecx jz short loc_100027BF mov eax, [ebp+arg_0] inc eax mov [ebp+arg_0], eax jmp short loc_100027A9 ; --------------------------------------------------------------------------- loc_100027F5: ; CODE XREF: sub_10002795+1Cj xor eax, eax locret_100027F7: ; CODE XREF: sub_10002795+12j ; sub_10002795+37j leave retn sub_10002795 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_100027F9 proc near ; CODE XREF: sub_100014CA+15Cp ; sub_100014CA+23Dp ... 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 push ebp mov ebp, esp push ecx push ecx mov eax, [ebp+arg_0] mov [ebp+var_4], eax mov eax, [ebp+arg_4] mov [ebp+var_8], eax mov eax, [ebp+var_8] cmp eax, [ebp+var_4] jnb short loc_1000284F mov eax, [ebp+var_8] add eax, [ebp+arg_8] mov [ebp+var_8], eax mov eax, [ebp+var_4] add eax, [ebp+arg_8] mov [ebp+var_4], eax jmp short loc_1000282D ; --------------------------------------------------------------------------- loc_10002826: ; CODE XREF: sub_100027F9+52j mov eax, [ebp+arg_8] dec eax mov [ebp+arg_8], eax loc_1000282D: ; CODE XREF: sub_100027F9+2Bj cmp [ebp+arg_8], 0 jz short loc_1000284D mov eax, [ebp+var_8] dec eax mov [ebp+var_8], eax mov eax, [ebp+var_4] dec eax mov [ebp+var_4], eax mov eax, [ebp+var_4] mov ecx, [ebp+var_8] mov cl, [ecx] mov [eax], cl jmp short loc_10002826 ; --------------------------------------------------------------------------- loc_1000284D: ; CODE XREF: sub_100027F9+38j jmp short loc_10002880 ; --------------------------------------------------------------------------- loc_1000284F: ; CODE XREF: sub_100027F9+17j mov eax, [ebp+var_8] cmp eax, [ebp+var_4] jz short loc_10002880 jmp short loc_10002860 ; --------------------------------------------------------------------------- loc_10002859: ; CODE XREF: sub_100027F9+85j mov eax, [ebp+arg_8] dec eax mov [ebp+arg_8], eax loc_10002860: ; CODE XREF: sub_100027F9+5Ej cmp [ebp+arg_8], 0 jz short loc_10002880 mov eax, [ebp+var_4] mov ecx, [ebp+var_8] mov cl, [ecx] mov [eax], cl mov eax, [ebp+var_4] inc eax mov [ebp+var_4], eax mov eax, [ebp+var_8] inc eax mov [ebp+var_8], eax jmp short loc_10002859 ; --------------------------------------------------------------------------- loc_10002880: ; CODE XREF: sub_100027F9:loc_1000284Dj ; sub_100027F9+5Cj ... mov eax, [ebp+arg_0] leave retn sub_100027F9 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_10002885 proc near ; CODE XREF: WinMain(x,x,x,x)+136p var_30 = dword ptr -30h var_2C = dword ptr -2Ch var_28 = dword ptr -28h var_24 = dword ptr -24h var_20 = dword ptr -20h var_1C = dword ptr -1Ch var_18 = dword ptr -18h var_14 = dword ptr -14h var_10 = dword ptr -10h var_C = dword ptr -0Ch var_8 = byte ptr -8 var_4 = byte ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h push ebp mov ebp, esp sub esp, 30h and [ebp+var_18], 0 and [ebp+var_4], 0 push 0 call dword_1000A814 mov [ebp+var_C], eax mov eax, [ebp+var_C] mov [ebp+var_30], eax mov eax, [ebp+var_30] mov eax, [eax+3Ch] mov ecx, [ebp+var_C] lea eax, [ecx+eax+4] mov [ebp+var_20], eax mov eax, [ebp+var_20] add eax, 14h mov [ebp+var_24], eax mov eax, [ebp+var_20] movzx eax, word ptr [eax+10h] mov ecx, [ebp+var_24] add ecx, eax mov [ebp+var_1C], ecx mov eax, [ebp+var_20] movzx eax, word ptr [eax+2] dec eax imul eax, 28h mov ecx, [ebp+var_20] movzx ecx, word ptr [ecx+2] dec ecx imul ecx, 28h mov edx, [ebp+var_1C] mov eax, [edx+eax+10h] mov edx, [ebp+var_1C] add eax, [edx+ecx+14h] mov [ebp+var_10], eax push [ebp+var_C] call dword_1000A7D0 push 0 call dword_1000A7E0 push 0 push 80h push 3 push 0 push 1 push 80000000h push [ebp+arg_0] call dword_1000A818 mov [ebp+var_2C], eax call dword_1000A854 test eax, eax jnz short loc_10002932 cmp [ebp+var_2C], 0FFFFFFFFh jnz short loc_10002936 loc_10002932: ; CODE XREF: sub_10002885+A5j xor al, al jmp short locret_100029AA ; --------------------------------------------------------------------------- loc_10002936: ; CODE XREF: sub_10002885+ABj lea eax, [ebp+var_28] push eax push [ebp+var_2C] call dword_1000A820 mov eax, [ebp+var_28] cmp eax, [ebp+var_10] jbe short loc_1000299E mov eax, [ebp+var_28] sub eax, [ebp+var_10] mov [ebp+var_18], eax push 1 ; int mov eax, [ebp+var_18] inc eax push eax ; Size call sub_10002DEB pop ecx pop ecx mov [ebp+var_14], eax push 0 push 0 push [ebp+var_10] push [ebp+var_2C] call dword_1000A850 push 0 lea eax, [ebp+var_8] push eax push [ebp+var_18] push [ebp+var_14] push [ebp+var_2C] call dword_1000A7F8 mov eax, [ebp+arg_4] mov ecx, [ebp+var_14] mov [eax], ecx mov eax, [ebp+arg_8] mov ecx, [ebp+var_18] mov [eax], ecx mov [ebp+var_4], 1 loc_1000299E: ; CODE XREF: sub_10002885+C4j push [ebp+var_2C] call dword_1000A7D0 mov al, [ebp+var_4] locret_100029AA: ; CODE XREF: sub_10002885+AFj leave retn sub_10002885 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame ; int __cdecl sub_100029AC(char *Str) sub_100029AC proc near ; CODE XREF: sub_10002A2D+62p ; sub_10002A2D+80p var_C = dword ptr -0Ch var_8 = dword ptr -8 var_4 = dword ptr -4 Str = dword ptr 8 push ebp mov ebp, esp sub esp, 0Ch push [ebp+Str] ; Str call _strlen pop ecx mov [ebp+var_8], eax push 1 ; int mov eax, [ebp+var_8] inc eax push eax ; Size call sub_10002DEB pop ecx pop ecx mov [ebp+var_C], eax and [ebp+var_4], 0 jmp short loc_100029DC ; --------------------------------------------------------------------------- loc_100029D5: ; CODE XREF: sub_100029AC:loc_10002A26j mov eax, [ebp+var_4] inc eax mov [ebp+var_4], eax loc_100029DC: ; CODE XREF: sub_100029AC+27j mov eax, [ebp+var_4] cmp eax, [ebp+var_8] jge short loc_10002A28 mov eax, [ebp+Str] add eax, [ebp+var_4] movsx eax, byte ptr [eax] cmp eax, 41h jl short loc_10002A16 mov eax, [ebp+Str] add eax, [ebp+var_4] movsx eax, byte ptr [eax] cmp eax, 5Ah jg short loc_10002A16 mov eax, [ebp+Str] add eax, [ebp+var_4] movsx eax, byte ptr [eax] add eax, 20h mov ecx, [ebp+var_C] add ecx, [ebp+var_4] mov [ecx], al jmp short loc_10002A26 ; --------------------------------------------------------------------------- loc_10002A16: ; CODE XREF: sub_100029AC+44j ; sub_100029AC+52j mov eax, [ebp+var_C] add eax, [ebp+var_4] mov ecx, [ebp+Str] add ecx, [ebp+var_4] mov cl, [ecx] mov [eax], cl loc_10002A26: ; CODE XREF: sub_100029AC+68j jmp short loc_100029D5 ; --------------------------------------------------------------------------- loc_10002A28: ; CODE XREF: sub_100029AC+36j mov eax, [ebp+var_C] leave retn sub_100029AC endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_10002A2D proc near ; CODE XREF: WinMain(x,x,x,x)+EEp var_108 = dword ptr -108h Str = byte ptr -104h var_103 = byte ptr -103h push ebp mov ebp, esp sub esp, 108h push edi mov [ebp+var_108], 104h and [ebp+Str], 0 push 40h pop ecx xor eax, eax lea edi, [ebp+var_103] rep stosd stosw stosb lea eax, [ebp+var_108] push eax lea eax, [ebp+Str] push eax call dword_1000A840 push offset aVJm ; "۳&v`M]" lea eax, [ebp+Str] push eax ; Str1 call _strcmp pop ecx pop ecx test eax, eax jz short loc_10002ABF push offset aIzIqL ; ":ql" lea eax, [ebp+Str] push eax ; Str call sub_100029AC pop ecx push eax call sub_10002795 pop ecx pop ecx test eax, eax jnz short loc_10002ABF push offset aUlMa ; "#a" lea eax, [ebp+Str] push eax ; Str call sub_100029AC pop ecx push eax call sub_10002795 pop ecx pop ecx test eax, eax jz short loc_10002AC3 loc_10002ABF: ; CODE XREF: sub_10002A2D+54j ; sub_10002A2D+72j mov al, 1 jmp short loc_10002AC5 ; --------------------------------------------------------------------------- loc_10002AC3: ; CODE XREF: sub_10002A2D+90j xor al, al loc_10002AC5: ; CODE XREF: sub_10002A2D+94j pop edi leave retn sub_10002A2D endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_10002AC8 proc near ; CODE XREF: WinMain(x,x,x,x)+7Ap var_20 = dword ptr -20h var_1C = dword ptr -1Ch var_18 = dword ptr -18h var_10 = dword ptr -10h var_4 = dword ptr -4 push ebp mov ebp, esp push 0FFFFFFFFh push offset dword_100070A8 push offset unknown_libname_1 ; Microsoft VisualC 2-8/net runtime mov eax, large fs:0 push eax mov large fs:0, esp push ecx push ecx push ecx push ecx push ebx push esi push edi mov [ebp+var_18], esp and [ebp+var_4], 0 push ebx mov eax, 564D5868h mov ebx, 8685D465h mov ecx, 0Ah mov dx, 5658h in eax, dx mov [ebp+var_1C], ebx pop ebx or [ebp+var_4], 0FFFFFFFFh jmp short loc_10002B26 ; --------------------------------------------------------------------------- push 1 pop eax retn ; --------------------------------------------------------------------------- mov esp, [ebp+var_18] and [ebp+var_20], 0 or [ebp+var_4], 0FFFFFFFFh mov eax, [ebp+var_20] jmp short loc_10002B32 ; --------------------------------------------------------------------------- loc_10002B26: ; CODE XREF: sub_10002AC8+48j xor eax, eax cmp [ebp+var_1C], 564D5868h setz al loc_10002B32: ; CODE XREF: sub_10002AC8+5Cj mov ecx, [ebp+var_10] mov large fs:0, ecx pop edi pop esi pop ebx leave retn sub_10002AC8 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_10002B41 proc near ; CODE XREF: WinMain(x,x,x,x):loc_10002C63p var_4 = dword ptr -4 push ebp mov ebp, esp push ecx push ebx push esi push edi and [ebp+var_4], 0 mov eax, large fs:30h mov eax, [eax+68h] mov [ebp+var_4], eax mov eax, [ebp+var_4] and eax, 70h pop edi pop esi pop ebx leave retn sub_10002B41 endp ; --------------------------------------------------------------------------- loc_10002B63: ; CODE XREF: WinMain(x,x,x,x):loc_10002C53p push ebp mov ebp, esp push 0FFFFFFFFh push offset dword_100070B8 push offset unknown_libname_1 ; Microsoft VisualC 2-8/net runtime mov eax, large fs:0 push eax mov large fs:0, esp push ecx push ecx push ecx push ebx push esi push edi mov [ebp-18h], esp and dword ptr [ebp-4], 0 mov eax, 1 ; --------------------------------------------------------------------------- dw 3F0Fh dd 45C70B07h, 0FFFFFFFCh, 0FC4D83FFh, 6A14EBFFh, 8BC35801h dd 6583E865h, 4D8300E4h, 458BFFFCh, 6A03EBE4h, 4D8B5801h dd 0D8964F0h, 0 ; --------------------------------------------------------------------------- pop edi pop esi pop ebx leave retn ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame ; int __stdcall WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nShowCmd) _WinMain@16 proc near ; CODE XREF: start+C9p var_11C = dword ptr -11Ch var_118 = dword ptr -118h var_114 = dword ptr -114h var_110 = dword ptr -110h var_10C = byte ptr -10Ch var_10B = byte ptr -10Bh var_8 = dword ptr -8 var_4 = dword ptr -4 hInstance = dword ptr 8 hPrevInstance = dword ptr 0Ch lpCmdLine = dword ptr 10h nShowCmd = dword ptr 14h push ebp mov ebp, esp sub esp, 11Ch push ebx push esi push edi and [ebp+var_10C], 0 push 40h pop ecx xor eax, eax lea edi, [ebp+var_10B] rep stosd stosw stosb and [ebp+var_8], 0 and [ebp+var_114], 0 push 24h ; int push offset aIAXNASOI ; "۩:axnAҺoI" push offset aLulhelloworldc ; "lulhelloworldcppftw" call sub_1000109E add esp, 0Ch push eax ; Source push offset aIAXNASOI ; "۩:axnAҺoI" call _strcpy pop ecx pop ecx lea eax, [ebp+var_114] push eax push offset aIAXNASOI ; "۩:axnAҺoI" push 80000001h call ds:dword_10007000 test eax, eax jz short loc_10002C3B push 0 call ds:dword_10007008 loc_10002C3B: ; CODE XREF: WinMain(x,x,x,x)+68j push 0 call sub_10001D53 pop ecx call sub_10002AC8 test eax, eax jz short loc_10002C53 xor eax, eax jmp loc_10002D69 ; --------------------------------------------------------------------------- loc_10002C53: ; CODE XREF: WinMain(x,x,x,x)+81j call loc_10002B63 test eax, eax jz short loc_10002C63 xor eax, eax jmp loc_10002D69 ; --------------------------------------------------------------------------- loc_10002C63: ; CODE XREF: WinMain(x,x,x,x)+91j call sub_10002B41 test eax, eax jz short loc_10002C73 xor eax, eax jmp loc_10002D69 ; --------------------------------------------------------------------------- loc_10002C73: ; CODE XREF: WinMain(x,x,x,x)+A1j call sub_1000102A mov dword_1000A80C, eax cmp dword_1000A80C, 0 jnz short loc_10002C8D xor eax, eax jmp loc_10002D69 ; --------------------------------------------------------------------------- loc_10002C8D: ; CODE XREF: WinMain(x,x,x,x)+BBj call sub_10001000 mov [ebp+var_110], eax push 1 call sub_10001D53 pop ecx nop nop nop nop push [ebp+var_110] call sub_10002366 pop ecx movzx eax, al test eax, eax jz short loc_10002CC3 call sub_10002A2D movzx eax, al test eax, eax jz short loc_10002CCA loc_10002CC3: ; CODE XREF: WinMain(x,x,x,x)+ECj xor eax, eax jmp loc_10002D69 ; --------------------------------------------------------------------------- loc_10002CCA: ; CODE XREF: WinMain(x,x,x,x)+F8j nop nop push 104h lea eax, [ebp+var_10C] push eax push 0 call ds:dword_1000700C push eax call dword_1000A808 nop nop nop nop nop nop lea eax, [ebp+var_11C] push eax lea eax, [ebp+var_4] push eax lea eax, [ebp+var_10C] push eax call sub_10002885 add esp, 0Ch movzx eax, al test eax, eax jz short loc_10002D67 push [ebp+var_11C] ; int push [ebp+var_4] ; int push offset aLulhelloworldc ; "lulhelloworldcppftw" call sub_1000109E add esp, 0Ch mov [ebp+var_4], eax nop nop nop nop lea eax, [ebp+var_118] push eax push [ebp+var_11C] push [ebp+var_4] call sub_100012E4 add esp, 0Ch mov [ebp+var_4], eax nop nop nop nop lea eax, [ebp+var_8] push eax push [ebp+var_118] push [ebp+lpCmdLine] push [ebp+var_4] call sub_10001CF2 add esp, 10h nop nop nop nop nop loc_10002D67: ; CODE XREF: WinMain(x,x,x,x)+143j xor eax, eax loc_10002D69: ; CODE XREF: WinMain(x,x,x,x)+85j ; WinMain(x,x,x,x)+95j ... pop edi pop esi pop ebx leave retn 10h _WinMain@16 endp ; [0000007B BYTES: COLLAPSED FUNCTION _strlen. PRESS KEYPAD "+" TO EXPAND] ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame ; int __cdecl sub_10002DEB(size_t Size, int) sub_10002DEB proc near ; CODE XREF: sub_1000109E+15p ; sub_100012E4+14p ... Size = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp push esi mov esi, [ebp+Size] imul esi, [ebp+arg_4] cmp esi, 0FFFFFFE0h push edi mov [ebp+Size], esi ja short loc_10002E0C test esi, esi jnz short loc_10002E06 push 1 pop esi loc_10002E06: ; CODE XREF: sub_10002DEB+16j add esi, 0Fh and esi, 0FFFFFFF0h loc_10002E0C: ; CODE XREF: sub_10002DEB+12j ; sub_10002DEB+94j xor edi, edi cmp esi, 0FFFFFFE0h ja short loc_10002E6B mov eax, dword_1000AD78 cmp eax, 3 jnz short loc_10002E37 mov eax, [ebp+Size] cmp eax, dword_1000AD70 ja short loc_10002E56 push eax call ___sbh_alloc_block mov edi, eax pop ecx test edi, edi jnz short loc_10002E81 jmp short loc_10002E56 ; --------------------------------------------------------------------------- loc_10002E37: ; CODE XREF: sub_10002DEB+30j cmp eax, 2 jnz short loc_10002E56 cmp esi, dword_1000A384 ja short loc_10002E56 mov eax, esi shr eax, 4 push eax call sub_10004129 mov edi, eax pop ecx test edi, edi jnz short loc_10002E95 loc_10002E56: ; CODE XREF: sub_10002DEB+3Bj ; sub_10002DEB+4Aj ... push esi push 8 push dword_1000AD74 call ds:dword_10007010 mov edi, eax test edi, edi jnz short loc_10002E8F loc_10002E6B: ; CODE XREF: sub_10002DEB+26j cmp dword_1000A870, 0 jz short loc_10002E8F push esi call __callnewh test eax, eax pop ecx jz short loc_10002E98 jmp short loc_10002E0C ; --------------------------------------------------------------------------- loc_10002E81: ; CODE XREF: sub_10002DEB+48j push [ebp+Size] ; Size loc_10002E84: ; CODE XREF: sub_10002DEB+ABj push 0 ; Val push edi ; Dst call _memset add esp, 0Ch loc_10002E8F: ; CODE XREF: sub_10002DEB+7Ej ; sub_10002DEB+87j mov eax, edi loc_10002E91: ; CODE XREF: sub_10002DEB+AFj pop edi pop esi pop ebp retn ; --------------------------------------------------------------------------- loc_10002E95: ; CODE XREF: sub_10002DEB+69j push esi jmp short loc_10002E84 ; --------------------------------------------------------------------------- loc_10002E98: ; CODE XREF: sub_10002DEB+92j xor eax, eax jmp short loc_10002E91 sub_10002DEB endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_10002E9C proc near ; CODE XREF: sub_10001A2B+2B6p ; __setenvp+9Dp ... var_4 = dword ptr -4 arg_0 = dword ptr 8 push ebp mov ebp, esp push ecx push esi mov esi, [ebp+arg_0] test esi, esi jz short loc_10002F02 mov eax, dword_1000AD78 cmp eax, 3 jnz short loc_10002EC8 push esi call ___sbh_find_block pop ecx test eax, eax push esi jz short loc_10002EF4 push eax call sub_10003653 pop ecx pop ecx jmp short loc_10002F02 ; --------------------------------------------------------------------------- loc_10002EC8: ; CODE XREF: sub_10002E9C+14j cmp eax, 2 jnz short loc_10002EF3 lea eax, [ebp+arg_0] push eax lea eax, [ebp+var_4] push eax push esi call sub_1000408D add esp, 0Ch test eax, eax jz short loc_10002EF3 push eax push [ebp+arg_0] push [ebp+var_4] call sub_100040E4 add esp, 0Ch jmp short loc_10002F02 ; --------------------------------------------------------------------------- loc_10002EF3: ; CODE XREF: sub_10002E9C+2Fj ; sub_10002E9C+44j push esi loc_10002EF4: ; CODE XREF: sub_10002E9C+20j push 0 push dword_1000AD74 call ds:dword_10007014 loc_10002F02: ; CODE XREF: sub_10002E9C+Aj ; sub_10002E9C+2Aj ... pop esi leave retn sub_10002E9C endp ; --------------------------------------------------------------------------- align 10h ; [00000007 BYTES: COLLAPSED FUNCTION _strcpy. PRESS KEYPAD "+" TO EXPAND] align 10h ; [000000E0 BYTES: COLLAPSED FUNCTION _strcat. PRESS KEYPAD "+" TO EXPAND] ; [00000058 BYTES: COLLAPSED FUNCTION _memset. PRESS KEYPAD "+" TO EXPAND] align 10h ; [00000084 BYTES: COLLAPSED FUNCTION _strcmp. PRESS KEYPAD "+" TO EXPAND] ; [00000020 BYTES: COLLAPSED FUNCTION __global_unwind2. PRESS KEYPAD "+" TO EXPAND] ; [00000022 BYTES: COLLAPSED FUNCTION __unwind_handler. PRESS KEYPAD "+" TO EXPAND] ; [00000068 BYTES: COLLAPSED FUNCTION __local_unwind2. PRESS KEYPAD "+" TO EXPAND] ; [00000023 BYTES: COLLAPSED FUNCTION __abnormal_termination. PRESS KEYPAD "+" TO EXPAND] ; --------------------------------------------------------------------------- __NLG_Notify1: push ebx push ecx mov ebx, offset dword_10008340 jmp short loc_100031C4 ; [00000018 BYTES: COLLAPSED FUNCTION __NLG_Notify. PRESS KEYPAD "+" TO EXPAND] align 4 push esi inc ebx xor dh, [eax] pop eax inc ebx xor [eax], dh ; [000000BD BYTES: COLLAPSED FUNCTION unknown_libname_1. PRESS KEYPAD "+" TO EXPAND] ; --------------------------------------------------------------------------- unknown_libname_2: ; Microsoft VisualC 2-8/net runtime push ebp mov ecx, [esp+8] mov ebp, [ecx] mov eax, [ecx+1Ch] push eax mov eax, [ecx+18h] push eax call __local_unwind2 add esp, 8 pop ebp retn 4 ; [000000D7 BYTES: COLLAPSED FUNCTION start. PRESS KEYPAD "+" TO EXPAND] ; --------------------------------------------------------------------------- mov eax, [ebp-14h] mov ecx, [eax] mov ecx, [ecx] mov [ebp-68h], ecx push eax push ecx call __XcptFilter pop ecx pop ecx retn ; --------------------------------------------------------------------------- mov esp, [ebp-18h] push dword ptr [ebp-68h] call __exit ; [00000022 BYTES: COLLAPSED FUNCTION __amsg_exit. PRESS KEYPAD "+" TO EXPAND] pop ecx pop ecx retn ; [00000024 BYTES: COLLAPSED FUNCTION _fast_error_exit. PRESS KEYPAD "+" TO EXPAND] ; [0000001B BYTES: COLLAPSED FUNCTION __callnewh. PRESS KEYPAD "+" TO EXPAND] ; =============== S U B R O U T I N E ======================================= sub_1000340E proc near ; CODE XREF: sub_1000343B+136p arg_0 = dword ptr 4 push esi mov esi, [esp+4+arg_0] push 0 and dword ptr [esi], 0 call ds:dword_1000700C cmp word ptr [eax], 5A4Dh jnz short loc_10003439 mov ecx, [eax+3Ch] test ecx, ecx jz short loc_10003439 add eax, ecx mov cl, [eax+1Ah] mov [esi], cl mov al, [eax+1Bh] mov [esi+1], al loc_10003439: ; CODE XREF: sub_1000340E+15j ; sub_1000340E+1Cj pop esi retn sub_1000340E endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_1000343B proc near ; CODE XREF: sub_10003583+20p Str = byte ptr -122Ch SubStr = byte ptr -19Ch var_98 = dword ptr -98h var_94 = dword ptr -94h var_88 = dword ptr -88h var_4 = byte ptr -4 push ebp mov ebp, esp mov eax, 122Ch call __alloca_probe lea eax, [ebp+var_98] push ebx push eax mov [ebp+var_98], 94h call ds:dword_10007030 test eax, eax jz short loc_1000347E cmp [ebp+var_88], 2 jnz short loc_1000347E cmp [ebp+var_94], 5 jb short loc_1000347E push 1 pop eax jmp loc_10003580 ; --------------------------------------------------------------------------- loc_1000347E: ; CODE XREF: sub_1000343B+27j ; sub_1000343B+30j ... lea eax, [ebp+Str] push 1090h push eax push offset a__msvcrt_heap_ ; "__MSVCRT_HEAP_SELECT" call ds:dword_1000702C test eax, eax jz loc_1000356D xor ebx, ebx lea ecx, [ebp+Str] cmp [ebp+Str], bl jz short loc_100034C0 loc_100034AD: ; CODE XREF: sub_1000343B+83j mov al, [ecx] cmp al, 61h jl short loc_100034BB cmp al, 7Ah jg short loc_100034BB sub al, 20h mov [ecx], al loc_100034BB: ; CODE XREF: sub_1000343B+76j ; sub_1000343B+7Aj inc ecx cmp [ecx], bl jnz short loc_100034AD loc_100034C0: ; CODE XREF: sub_1000343B+70j lea eax, [ebp+Str] push 16h ; MaxCount push eax ; Str2 push offset Str1 ; "__GLOBAL_HEAP_SELECTED" call _strncmp add esp, 0Ch test eax, eax jnz short loc_100034E2 lea eax, [ebp+Str] jmp short loc_1000352B ; --------------------------------------------------------------------------- loc_100034E2: ; CODE XREF: sub_1000343B+9Dj lea eax, [ebp+SubStr] push 104h push eax push ebx call ds:dword_10007028 cmp [ebp+SubStr], bl lea ecx, [ebp+SubStr] jz short loc_10003516 loc_10003503: ; CODE XREF: sub_1000343B+D9j mov al, [ecx] cmp al, 61h jl short loc_10003511 cmp al, 7Ah jg short loc_10003511 sub al, 20h mov [ecx], al loc_10003511: ; CODE XREF: sub_1000343B+CCj ; sub_1000343B+D0j inc ecx cmp [ecx], bl jnz short loc_10003503 loc_10003516: ; CODE XREF: sub_1000343B+C6j lea eax, [ebp+SubStr] push eax ; SubStr lea eax, [ebp+Str] push eax ; Str call _strstr pop ecx pop ecx loc_1000352B: ; CODE XREF: sub_1000343B+A5j cmp eax, ebx jz short loc_1000356D push 2Ch ; Val push eax ; Str call _strchr pop ecx cmp eax, ebx pop ecx jz short loc_1000356D inc eax mov ecx, eax cmp [eax], bl jz short loc_10003552 loc_10003544: ; CODE XREF: sub_1000343B+115j cmp byte ptr [ecx], 3Bh jnz short loc_1000354D mov [ecx], bl jmp short loc_1000354E ; --------------------------------------------------------------------------- loc_1000354D: ; CODE XREF: sub_1000343B+10Cj inc ecx loc_1000354E: ; CODE XREF: sub_1000343B+110j cmp [ecx], bl jnz short loc_10003544 loc_10003552: ; CODE XREF: sub_1000343B+107j push 0Ah ; Radix push ebx ; EndPtr push eax ; Str call _strtol add esp, 0Ch cmp eax, 2 jz short loc_10003580 cmp eax, 3 jz short loc_10003580 cmp eax, 1 jz short loc_10003580 loc_1000356D: ; CODE XREF: sub_1000343B+5Cj ; sub_1000343B+F2j ... lea eax, [ebp+var_4] push eax call sub_1000340E cmp [ebp+var_4], 6 pop ecx sbb eax, eax add eax, 3 loc_10003580: ; CODE XREF: sub_1000343B+3Ej ; sub_1000343B+126j ... pop ebx leave retn sub_1000343B endp ; =============== S U B R O U T I N E ======================================= sub_10003583 proc near ; CODE XREF: start+5Ap arg_0 = dword ptr 4 xor eax, eax push 0 cmp [esp+4+arg_0], eax push 1000h setz al push eax call ds:dword_10007038 test eax, eax mov dword_1000AD74, eax jz short loc_100035D9 call sub_1000343B cmp eax, 3 mov dword_1000AD78, eax jnz short loc_100035BF push 3F8h call ___sbh_heap_init pop ecx jmp short loc_100035C9 ; --------------------------------------------------------------------------- loc_100035BF: ; CODE XREF: sub_10003583+2Dj cmp eax, 2 jnz short loc_100035DC call sub_10003E31 loc_100035C9: ; CODE XREF: sub_10003583+3Aj test eax, eax jnz short loc_100035DC push dword_1000AD74 call ds:dword_10007034 loc_100035D9: ; CODE XREF: sub_10003583+1Ej xor eax, eax retn ; --------------------------------------------------------------------------- loc_100035DC: ; CODE XREF: sub_10003583+3Fj ; sub_10003583+48j push 1 pop eax retn sub_10003583 endp ; [00000048 BYTES: COLLAPSED FUNCTION ___sbh_heap_init. PRESS KEYPAD "+" TO EXPAND] ; [0000002B BYTES: COLLAPSED FUNCTION ___sbh_find_block. PRESS KEYPAD "+" TO EXPAND] ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_10003653 proc near ; CODE XREF: sub_10002E9C+23p var_10 = dword ptr -10h var_C = dword ptr -0Ch var_8 = dword ptr -8 var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp sub esp, 10h mov ecx, [ebp+arg_0] push ebx push esi mov esi, [ebp+arg_4] mov eax, [ecx+10h] push edi mov edi, esi add esi, 0FFFFFFFCh sub edi, [ecx+0Ch] shr edi, 0Fh mov ecx, edi imul ecx, 204h lea ecx, [ecx+eax+144h] mov [ebp+var_10], ecx mov ecx, [esi] dec ecx test cl, 1 mov [ebp+var_4], ecx jnz loc_10003977 mov edx, [ecx+esi] lea ebx, [ecx+esi] mov [ebp+var_C], edx mov edx, [esi-4] mov [ebp+var_8], edx mov edx, [ebp+var_C] test dl, 1 mov [ebp+arg_4], ebx jnz short loc_10003729 sar edx, 4 dec edx cmp edx, 3Fh jbe short loc_100036B7 push 3Fh pop edx loc_100036B7: ; CODE XREF: sub_10003653+5Fj mov ecx, [ebx+4] cmp ecx, [ebx+8] jnz short loc_1000370B cmp edx, 20h jnb short loc_100036E2 mov ebx, 80000000h mov ecx, edx shr ebx, cl lea ecx, [edx+eax+4] not ebx and [eax+edi*4+44h], ebx dec byte ptr [ecx] jnz short loc_10003703 mov ecx, [ebp+arg_0] and [ecx], ebx jmp short loc_10003703 ; --------------------------------------------------------------------------- loc_100036E2: ; CODE XREF: sub_10003653+6Fj lea ecx, [edx-20h] mov ebx, 80000000h shr ebx, cl lea ecx, [edx+eax+4] not ebx and [eax+edi*4+0C4h], ebx dec byte ptr [ecx] jnz short loc_10003703 mov ecx, [ebp+arg_0] and [ecx+4], ebx loc_10003703: ; CODE XREF: sub_10003653+86j ; sub_10003653+8Dj ... mov ecx, [ebp+var_4] mov ebx, [ebp+arg_4] jmp short loc_1000370E ; --------------------------------------------------------------------------- loc_1000370B: ; CODE XREF: sub_10003653+6Aj mov ecx, [ebp+var_4] loc_1000370E: ; CODE XREF: sub_10003653+B6j mov edx, [ebx+8] mov ebx, [ebx+4] add ecx, [ebp+var_C] mov [edx+4], ebx mov edx, [ebp+arg_4] mov [ebp+var_4], ecx mov ebx, [edx+4] mov edx, [edx+8] mov [ebx+8], edx loc_10003729: ; CODE XREF: sub_10003653+56j mov edx, ecx sar edx, 4 dec edx cmp edx, 3Fh jbe short loc_10003737 push 3Fh pop edx loc_10003737: ; CODE XREF: sub_10003653+DFj mov ebx, [ebp+var_8] and ebx, 1 mov [ebp+var_C], ebx jnz loc_100037DA sub esi, [ebp+var_8] mov ebx, [ebp+var_8] sar ebx, 4 push 3Fh mov [ebp+arg_4], esi dec ebx pop esi cmp ebx, esi jbe short loc_1000375C mov ebx, esi loc_1000375C: ; CODE XREF: sub_10003653+105j add ecx, [ebp+var_8] mov edx, ecx mov [ebp+var_4], ecx sar edx, 4 dec edx cmp edx, esi jbe short loc_1000376E mov edx, esi loc_1000376E: ; CODE XREF: sub_10003653+117j cmp ebx, edx jz short loc_100037D5 mov ecx, [ebp+arg_4] mov esi, [ecx+4] cmp esi, [ecx+8] jnz short loc_100037BD cmp ebx, 20h jnb short loc_1000379E mov esi, 80000000h mov ecx, ebx shr esi, cl not esi and [eax+edi*4+44h], esi dec byte ptr [ebx+eax+4] jnz short loc_100037BD mov ecx, [ebp+arg_0] and [ecx], esi jmp short loc_100037BD ; --------------------------------------------------------------------------- loc_1000379E: ; CODE XREF: sub_10003653+12Dj lea ecx, [ebx-20h] mov esi, 80000000h shr esi, cl not esi and [eax+edi*4+0C4h], esi dec byte ptr [ebx+eax+4] jnz short loc_100037BD mov ecx, [ebp+arg_0] and [ecx+4], esi loc_100037BD: ; CODE XREF: sub_10003653+128j ; sub_10003653+142j ... mov ecx, [ebp+arg_4] mov esi, [ecx+8] mov ecx, [ecx+4] mov [esi+4], ecx mov ecx, [ebp+arg_4] mov esi, [ecx+4] mov ecx, [ecx+8] mov [esi+8], ecx loc_100037D5: ; CODE XREF: sub_10003653+11Dj mov esi, [ebp+arg_4] jmp short loc_100037DD ; --------------------------------------------------------------------------- loc_100037DA: ; CODE XREF: sub_10003653+EDj mov ebx, [ebp+arg_0] loc_100037DD: ; CODE XREF: sub_10003653+185j cmp [ebp+var_C], 0 jnz short loc_100037EB cmp ebx, edx jz loc_1000386C loc_100037EB: ; CODE XREF: sub_10003653+18Ej mov ecx, [ebp+var_10] mov ebx, [ecx+edx*8+4] lea ecx, [ecx+edx*8] mov [esi+4], ebx mov [esi+8], ecx mov [ecx+4], esi mov ecx, [esi+4] mov [ecx+8], esi mov ecx, [esi+4] cmp ecx, [esi+8] jnz short loc_1000386C mov cl, [edx+eax+4] cmp edx, 20h mov byte ptr [ebp+arg_4+3], cl inc cl mov [edx+eax+4], cl jnb short loc_10003843 cmp byte ptr [ebp+arg_4+3], 0 jnz short loc_10003832 mov ebx, 80000000h mov ecx, edx shr ebx, cl mov ecx, [ebp+arg_0] or [ecx], ebx loc_10003832: ; CODE XREF: sub_10003653+1CFj mov ebx, 80000000h mov ecx, edx shr ebx, cl lea eax, [eax+edi*4+44h] or [eax], ebx jmp short loc_1000386C ; --------------------------------------------------------------------------- loc_10003843: ; CODE XREF: sub_10003653+1C9j cmp byte ptr [ebp+arg_4+3], 0 jnz short loc_10003859 lea ecx, [edx-20h] mov ebx, 80000000h shr ebx, cl mov ecx, [ebp+arg_0] or [ecx+4], ebx loc_10003859: ; CODE XREF: sub_10003653+1F4j lea ecx, [edx-20h] mov edx, 80000000h shr edx, cl lea eax, [eax+edi*4+0C4h] or [eax], edx loc_1000386C: ; CODE XREF: sub_10003653+192j ; sub_10003653+1B7j ... mov eax, [ebp+var_4] mov [esi], eax mov [eax+esi-4], eax mov eax, [ebp+var_10] dec dword ptr [eax] jnz loc_10003977 mov eax, dword_1000AD64 test eax, eax jz loc_10003969 mov ecx, dword_1000AD5C mov esi, ds:dword_1000703C shl ecx, 0Fh add ecx, [eax+0Ch] mov ebx, 8000h push 4000h push ebx push ecx call esi ; dword_1000703C mov ecx, dword_1000AD5C mov eax, dword_1000AD64 mov edx, 80000000h shr edx, cl or [eax+8], edx mov eax, dword_1000AD64 mov ecx, dword_1000AD5C mov eax, [eax+10h] and dword ptr [eax+ecx*4+0C4h], 0 mov eax, dword_1000AD64 mov eax, [eax+10h] dec byte ptr [eax+43h] mov eax, dword_1000AD64 mov ecx, [eax+10h] cmp byte ptr [ecx+43h], 0 jnz short loc_100038FA and dword ptr [eax+4], 0FFFFFFFEh mov eax, dword_1000AD64 loc_100038FA: ; CODE XREF: sub_10003653+29Cj cmp dword ptr [eax+8], 0FFFFFFFFh jnz short loc_10003969 push ebx push 0 push dword ptr [eax+0Ch] call esi ; dword_1000703C mov eax, dword_1000AD64 push dword ptr [eax+10h] push 0 push dword_1000AD74 call ds:dword_10007014 mov eax, dword_1000AD68 mov edx, dword_1000AD6C lea eax, [eax+eax*4] shl eax, 2 mov ecx, eax mov eax, dword_1000AD64 sub ecx, eax lea ecx, [ecx+edx-14h] push ecx lea ecx, [eax+14h] push ecx push eax call sub_100027F9 mov eax, [ebp+arg_0] add esp, 0Ch dec dword_1000AD68 cmp eax, dword_1000AD64 jbe short loc_1000395F sub [ebp+arg_0], 14h loc_1000395F: ; CODE XREF: sub_10003653+306j mov eax, dword_1000AD6C mov dword_1000AD60, eax loc_10003969: ; CODE XREF: sub_10003653+234j ; sub_10003653+2ABj mov eax, [ebp+arg_0] mov dword_1000AD5C, edi mov dword_1000AD64, eax loc_10003977: ; CODE XREF: sub_10003653+38j ; sub_10003653+227j pop edi pop esi pop ebx leave retn sub_10003653 endp ; [00000309 BYTES: COLLAPSED FUNCTION ___sbh_alloc_block. PRESS KEYPAD "+" TO EXPAND] ; [000000B1 BYTES: COLLAPSED FUNCTION ___sbh_alloc_new_region. PRESS KEYPAD "+" TO EXPAND] ; [000000FB BYTES: COLLAPSED FUNCTION ___sbh_alloc_new_group. PRESS KEYPAD "+" TO EXPAND] ; =============== S U B R O U T I N E ======================================= sub_10003E31 proc near ; CODE XREF: sub_10003583+41p ; sub_10004129:loc_100042F8p cmp dword_10008370, 0FFFFFFFFh push ebx push ebp push esi push edi jnz short loc_10003E45 mov esi, offset off_10008360 jmp short loc_10003E62 ; --------------------------------------------------------------------------- loc_10003E45: ; CODE XREF: sub_10003E31+Bj push 2020h push 0 push dword_1000AD74 call ds:dword_10007010 mov esi, eax test esi, esi jz loc_10003F6E loc_10003E62: ; CODE XREF: sub_10003E31+12j mov ebp, ds:dword_10007040 push 4 push 2000h push 400000h push 0 call ebp ; dword_10007040 mov edi, eax test edi, edi jz loc_10003F57 push 4 mov ebx, 10000h push 1000h push ebx push edi call ebp ; dword_10007040 test eax, eax jz loc_10003F49 mov eax, offset off_10008360 cmp esi, eax jnz short loc_10003EC1 cmp off_10008360, 0 jnz short loc_10003EB1 mov off_10008360, eax loc_10003EB1: ; CODE XREF: sub_10003E31+79j cmp off_10008364, 0 jnz short loc_10003ED6 mov off_10008364, eax jmp short loc_10003ED6 ; --------------------------------------------------------------------------- loc_10003EC1: ; CODE XREF: sub_10003E31+70j mov [esi], eax mov eax, off_10008364 mov [esi+4], eax mov off_10008364, esi mov eax, [esi+4] mov [eax], esi loc_10003ED6: ; CODE XREF: sub_10003E31+87j ; sub_10003E31+8Ej lea eax, [edi+400000h] lea ecx, [esi+98h] mov [esi+14h], eax lea eax, [esi+18h] mov [esi+0Ch], ecx mov [esi+10h], edi mov [esi+8], eax xor ebp, ebp mov ecx, 0F1h loc_10003EF8: ; CODE XREF: sub_10003E31+E2j xor edx, edx cmp ebp, 10h setnl dl dec edx and edx, ecx dec edx inc ebp mov [eax], edx mov [eax+4], ecx add eax, 8 cmp ebp, 400h jl short loc_10003EF8 push ebx ; Size push 0 ; Val push edi ; Dst call _memset add esp, 0Ch loc_10003F21: ; CODE XREF: sub_10003E31+112j mov eax, [esi+10h] add eax, ebx cmp edi, eax jnb short loc_10003F45 or byte ptr [edi+0F8h], 0FFh lea eax, [edi+8] mov [edi], eax mov dword ptr [edi+4], 0F0h add edi, 1000h jmp short loc_10003F21 ; --------------------------------------------------------------------------- loc_10003F45: ; CODE XREF: sub_10003E31+F7j mov eax, esi jmp short loc_10003F70 ; --------------------------------------------------------------------------- loc_10003F49: ; CODE XREF: sub_10003E31+63j push 8000h push 0 push edi call ds:dword_1000703C loc_10003F57: ; CODE XREF: sub_10003E31+4Bj cmp esi, offset off_10008360 jz short loc_10003F6E push esi push 0 push dword_1000AD74 call ds:dword_10007014 loc_10003F6E: ; CODE XREF: sub_10003E31+2Bj ; sub_10003E31+12Cj xor eax, eax loc_10003F70: ; CODE XREF: sub_10003E31+116j pop edi pop esi pop ebp pop ebx retn sub_10003E31 endp ; =============== S U B R O U T I N E ======================================= sub_10003F75 proc near ; CODE XREF: sub_10003FCB+A5p arg_0 = dword ptr 4 push esi mov esi, [esp+4+arg_0] push 8000h push 0 push dword ptr [esi+10h] call ds:dword_1000703C cmp off_1000A380, esi jnz short loc_10003F9A mov eax, [esi+4] mov off_1000A380, eax loc_10003F9A: ; CODE XREF: sub_10003F75+1Bj cmp esi, offset off_10008360 jz short loc_10003FC2 mov eax, [esi+4] mov ecx, [esi] push esi push 0 mov [eax], ecx mov eax, [esi] mov ecx, [esi+4] mov [eax+4], ecx push dword_1000AD74 call ds:dword_10007014 pop esi retn ; --------------------------------------------------------------------------- loc_10003FC2: ; CODE XREF: sub_10003F75+2Bj or dword_10008370, 0FFFFFFFFh pop esi retn sub_10003F75 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_10003FCB proc near ; CODE XREF: sub_100040E4+3Ep var_4 = dword ptr -4 arg_0 = dword ptr 8 push ebp mov ebp, esp push ecx push ebx push esi mov esi, off_10008364 push edi loc_10003FD8: ; CODE XREF: sub_10003FCB+B7j cmp dword ptr [esi+10h], 0FFFFFFFFh jz loc_10004076 and [ebp+var_4], 0 lea edi, [esi+2010h] mov ebx, 3FF000h loc_10003FF1: ; CODE XREF: sub_10003FCB+72j cmp dword ptr [edi], 0F0h jnz short loc_10004032 mov eax, ebx push 4000h add eax, [esi+10h] push 1000h push eax call ds:dword_1000703C test eax, eax jz short loc_10004032 or dword ptr [edi], 0FFFFFFFFh dec dword_1000A874 mov eax, [esi+0Ch] test eax, eax jz short loc_10004027 cmp eax, edi jbe short loc_1000402A loc_10004027: ; CODE XREF: sub_10003FCB+56j mov [esi+0Ch], edi loc_1000402A: ; CODE XREF: sub_10003FCB+5Aj inc [ebp+var_4] dec [ebp+arg_0] jz short loc_1000403F loc_10004032: ; CODE XREF: sub_10003FCB+2Cj ; sub_10003FCB+46j sub ebx, 1000h sub edi, 8 test ebx, ebx jge short loc_10003FF1 loc_1000403F: ; CODE XREF: sub_10003FCB+65j cmp [ebp+var_4], 0 mov ecx, esi mov esi, [esi+4] jz short loc_10004076 cmp dword ptr [ecx+18h], 0FFFFFFFFh jnz short loc_10004076 push 1 lea eax, [ecx+20h] pop edx loc_10004056: ; CODE XREF: sub_10003FCB+9Aj cmp dword ptr [eax], 0FFFFFFFFh jnz short loc_10004067 inc edx add eax, 8 cmp edx, 400h jl short loc_10004056 loc_10004067: ; CODE XREF: sub_10003FCB+8Ej cmp edx, 400h jnz short loc_10004076 push ecx call sub_10003F75 pop ecx loc_10004076: ; CODE XREF: sub_10003FCB+11j ; sub_10003FCB+7Dj ... cmp esi, off_10008364 jz short loc_10004088 cmp [ebp+arg_0], 0 jg loc_10003FD8 loc_10004088: ; CODE XREF: sub_10003FCB+B1j pop edi pop esi pop ebx leave retn sub_10003FCB endp ; =============== S U B R O U T I N E ======================================= sub_1000408D proc near ; CODE XREF: sub_10002E9C+3Ap arg_0 = dword ptr 4 arg_4 = dword ptr 8 arg_8 = dword ptr 0Ch mov eax, [esp+arg_0] mov edx, offset off_10008360 push esi mov ecx, edx loc_10004099: ; CODE XREF: sub_1000408D+1Cj cmp eax, [ecx+10h] jbe short loc_100040A3 cmp eax, [ecx+14h] jb short loc_100040AB loc_100040A3: ; CODE XREF: sub_1000408D+Fj mov ecx, [ecx] cmp ecx, edx jz short loc_100040E0 jmp short loc_10004099 ; --------------------------------------------------------------------------- loc_100040AB: ; CODE XREF: sub_1000408D+14j test al, 0Fh jnz short loc_100040E0 mov esi, eax mov edx, 100h and esi, 0FFFh cmp esi, edx jb short loc_100040E0 mov esi, [esp+4+arg_4] mov [esi], ecx mov esi, [esp+4+arg_8] mov ecx, eax and cx, 0F000h sub eax, ecx mov [esi], ecx sub eax, edx pop esi sar eax, 4 lea eax, [eax+ecx+8] retn ; --------------------------------------------------------------------------- loc_100040E0: ; CODE XREF: sub_1000408D+1Aj ; sub_1000408D+20j ... xor eax, eax pop esi retn sub_1000408D endp ; =============== S U B R O U T I N E ======================================= sub_100040E4 proc near ; CODE XREF: sub_10002E9C+4Dp arg_0 = dword ptr 4 arg_4 = dword ptr 8 arg_8 = dword ptr 0Ch mov eax, [esp+arg_0] mov ecx, [esp+arg_4] sub ecx, [eax+10h] sar ecx, 0Ch lea eax, [eax+ecx*8+18h] mov ecx, [esp+arg_8] movzx edx, byte ptr [ecx] add [eax], edx and byte ptr [ecx], 0 cmp dword ptr [eax], 0F0h mov dword ptr [eax+4], 0F1h jnz short locret_10004128 inc dword_1000A874 cmp dword_1000A874, 20h jnz short locret_10004128 push 10h call sub_10003FCB pop ecx locret_10004128: ; CODE XREF: sub_100040E4+2Bj ; sub_100040E4+3Aj retn sub_100040E4 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_10004129 proc near ; CODE XREF: sub_10002DEB+5Fp ; sub_100056EF+4Ap Val = dword ptr -8 var_4 = dword ptr -4 arg_0 = dword ptr 8 push ebp mov ebp, esp push ecx push ecx push ebx push esi mov esi, off_1000A380 push edi loc_10004137: ; CODE XREF: sub_10004129+C6j mov edx, [esi+10h] cmp edx, 0FFFFFFFFh jz loc_100041E2 mov edi, [esi+8] lea ecx, [esi+2018h] mov eax, edi sub eax, esi sub eax, 18h sar eax, 3 shl eax, 0Ch add eax, edx cmp edi, ecx mov [ebp+var_4], eax jnb short loc_1000419C loc_10004162: ; CODE XREF: sub_10004129+6Fj mov ecx, [edi] mov ebx, [ebp+arg_0] cmp ecx, ebx jl short loc_10004185 cmp [edi+4], ebx jbe short loc_10004185 push ebx push ecx push eax call sub_10004331 add esp, 0Ch test eax, eax jnz short loc_100041F4 mov eax, [ebp+var_4] mov [edi+4], ebx loc_10004185: ; CODE XREF: sub_10004129+40j ; sub_10004129+45j add edi, 8 lea ecx, [esi+2018h] add eax, 1000h cmp edi, ecx mov [ebp+var_4], eax jb short loc_10004162 jmp short loc_1000419F ; --------------------------------------------------------------------------- loc_1000419C: ; CODE XREF: sub_10004129+37j mov ebx, [ebp+arg_0] loc_1000419F: ; CODE XREF: sub_10004129+71j mov eax, [esi+8] mov ecx, [esi+10h] lea edi, [esi+18h] mov [ebp+Val], eax cmp edi, eax mov [ebp+var_4], ecx jnb short loc_100041E5 loc_100041B2: ; CODE XREF: sub_10004129+B5j mov eax, [edi] cmp eax, ebx jl short loc_100041D1 cmp [edi+4], ebx jbe short loc_100041D1 push ebx push eax push [ebp+var_4] call sub_10004331 add esp, 0Ch test eax, eax jnz short loc_100041F4 mov [edi+4], ebx loc_100041D1: ; CODE XREF: sub_10004129+8Dj ; sub_10004129+92j add [ebp+var_4], 1000h add edi, 8 cmp edi, [ebp+Val] jb short loc_100041B2 jmp short loc_100041E5 ; --------------------------------------------------------------------------- loc_100041E2: ; CODE XREF: sub_10004129+14j mov ebx, [ebp+arg_0] loc_100041E5: ; CODE XREF: sub_10004129+87j ; sub_10004129+B7j mov esi, [esi] cmp esi, off_1000A380 jz short loc_10004204 jmp loc_10004137 ; --------------------------------------------------------------------------- loc_100041F4: ; CODE XREF: sub_10004129+54j ; sub_10004129+A3j mov off_1000A380, esi sub [edi], ebx mov [esi+8], edi jmp loc_1000432C ; --------------------------------------------------------------------------- loc_10004204: ; CODE XREF: sub_10004129+C4j mov eax, offset off_10008360 mov edi, eax loc_1000420B: ; CODE XREF: sub_10004129+F8j cmp dword ptr [edi+10h], 0FFFFFFFFh jz short loc_10004217 cmp dword ptr [edi+0Ch], 0 jnz short loc_10004223 loc_10004217: ; CODE XREF: sub_10004129+E6j mov edi, [edi] cmp edi, eax jz loc_100042F8 jmp short loc_1000420B ; --------------------------------------------------------------------------- loc_10004223: ; CODE XREF: sub_10004129+ECj mov ebx, [edi+0Ch] and [ebp+var_4], 0 mov esi, ebx mov eax, ebx sub esi, edi sub esi, 18h sar esi, 3 shl esi, 0Ch add esi, [edi+10h] cmp dword ptr [ebx], 0FFFFFFFFh jnz short loc_10004252 loc_10004241: ; CODE XREF: sub_10004129+127j cmp [ebp+var_4], 10h jge short loc_10004252 add eax, 8 inc [ebp+var_4] cmp dword ptr [eax], 0FFFFFFFFh jz short loc_10004241 loc_10004252: ; CODE XREF: sub_10004129+116j ; sub_10004129+11Cj mov eax, [ebp+var_4] push 4 shl eax, 0Ch push 1000h push eax push esi mov [ebp+Val], eax call ds:dword_10007040 cmp eax, esi jnz loc_1000432A push 0 ; Size push [ebp+Val] ; Val push esi ; Dst call _memset mov edx, [ebp+var_4] add esp, 0Ch test edx, edx mov ecx, ebx jle short loc_100042B9 lea eax, [esi+4] mov [ebp+var_4], edx loc_1000428F: ; CODE XREF: sub_10004129+18Ej or byte ptr [eax+0F4h], 0FFh lea edx, [eax+4] mov [eax-4], edx mov edx, 0F0h mov [eax], edx mov [ecx], edx mov dword ptr [ecx+4], 0F1h add eax, 1000h add ecx, 8 dec [ebp+var_4] jnz short loc_1000428F loc_100042B9: ; CODE XREF: sub_10004129+15Ej mov off_1000A380, edi lea eax, [edi+2018h] loc_100042C5: ; CODE XREF: sub_10004129+1A8j cmp ecx, eax jnb short loc_100042D5 cmp dword ptr [ecx], 0FFFFFFFFh jz short loc_100042D3 add ecx, 8 jmp short loc_100042C5 ; --------------------------------------------------------------------------- loc_100042D3: ; CODE XREF: sub_10004129+1A3j cmp ecx, eax loc_100042D5: ; CODE XREF: sub_10004129+19Ej sbb eax, eax and eax, ecx mov [edi+0Ch], eax mov eax, [ebp+arg_0] mov [esi+8], al mov [edi+8], ebx sub [ebx], eax sub [esi+4], eax lea ecx, [esi+eax+8] lea eax, [esi+100h] mov [esi], ecx jmp short loc_1000432C ; --------------------------------------------------------------------------- loc_100042F8: ; CODE XREF: sub_10004129+F2j call sub_10003E31 test eax, eax jz short loc_1000432A mov ecx, [eax+10h] mov [ecx+8], bl lea edx, [ecx+ebx+8] mov off_1000A380, eax mov [ecx], edx mov edx, 0F0h sub edx, ebx mov [ecx+4], edx movzx edx, bl sub [eax+18h], edx lea eax, [ecx+100h] jmp short loc_1000432C ; --------------------------------------------------------------------------- loc_1000432A: ; CODE XREF: sub_10004129+143j ; sub_10004129+1D6j xor eax, eax loc_1000432C: ; CODE XREF: sub_10004129+D6j ; sub_10004129+1CDj ... pop edi pop esi pop ebx leave retn sub_10004129 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_10004331 proc near ; CODE XREF: sub_10004129+4Ap ; sub_10004129+99p var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h push ebp mov ebp, esp push ecx mov ecx, [ebp+arg_0] mov edx, [ebp+arg_8] push ebx push esi mov esi, [ecx+4] push edi mov edi, [ecx] lea ebx, [ecx+0F8h] cmp esi, edx mov [ebp+var_4], edi mov eax, edi mov [ebp+arg_0], ebx jb short loc_10004376 lea eax, [edi+edx] mov [edi], dl cmp eax, ebx jnb short loc_10004365 add [ecx], edx sub [ecx+4], edx jmp short loc_1000436E ; --------------------------------------------------------------------------- loc_10004365: ; CODE XREF: sub_10004331+2Bj and dword ptr [ecx+4], 0 lea eax, [ecx+8] mov [ecx], eax loc_1000436E: ; CODE XREF: sub_10004331+32j lea eax, [edi+8] jmp loc_10004444 ; --------------------------------------------------------------------------- loc_10004376: ; CODE XREF: sub_10004331+22j add esi, edi cmp byte ptr [esi], 0 jz short loc_1000437F mov eax, esi loc_1000437F: ; CODE XREF: sub_10004331+4Aj lea esi, [eax+edx] cmp esi, ebx jnb short loc_100043C9 loc_10004386: ; CODE XREF: sub_10004331+96j mov bl, [eax] test bl, bl jnz short loc_100043BC push 1 lea ebx, [eax+1] pop esi loc_10004392: ; CODE XREF: sub_10004331+68j cmp byte ptr [ebx], 0 jnz short loc_1000439B inc ebx inc esi jmp short loc_10004392 ; --------------------------------------------------------------------------- loc_1000439B: ; CODE XREF: sub_10004331+64j cmp esi, edx jnb short loc_100043ED cmp eax, [ebp+var_4] jnz short loc_100043A9 mov [ecx+4], esi jmp short loc_100043B5 ; --------------------------------------------------------------------------- loc_100043A9: ; CODE XREF: sub_10004331+71j sub [ebp+arg_4], esi cmp [ebp+arg_4], edx jb loc_1000444E loc_100043B5: ; CODE XREF: sub_10004331+76j mov edi, [ebp+var_4] mov eax, ebx jmp short loc_100043C1 ; --------------------------------------------------------------------------- loc_100043BC: ; CODE XREF: sub_10004331+59j movzx esi, bl add eax, esi loc_100043C1: ; CODE XREF: sub_10004331+89j lea esi, [eax+edx] cmp esi, [ebp+arg_0] jb short loc_10004386 loc_100043C9: ; CODE XREF: sub_10004331+53j lea esi, [ecx+8] loc_100043CC: ; CODE XREF: sub_10004331+EBj ; sub_10004331+F2j cmp esi, edi jnb short loc_1000444E lea eax, [esi+edx] cmp eax, [ebp+arg_0] jnb short loc_1000444E mov al, [esi] test al, al jnz short loc_1000441E push 1 lea ebx, [esi+1] pop eax loc_100043E4: ; CODE XREF: sub_10004331+BAj cmp byte ptr [ebx], 0 jnz short loc_1000440E inc ebx inc eax jmp short loc_100043E4 ; --------------------------------------------------------------------------- loc_100043ED: ; CODE XREF: sub_10004331+6Cj lea ebx, [eax+edx] cmp ebx, [ebp+arg_0] jnb short loc_100043FE sub esi, edx mov [ecx], ebx mov [ecx+4], esi jmp short loc_10004407 ; --------------------------------------------------------------------------- loc_100043FE: ; CODE XREF: sub_10004331+C2j and dword ptr [ecx+4], 0 lea esi, [ecx+8] mov [ecx], esi loc_10004407: ; CODE XREF: sub_10004331+CBj mov [eax], dl add eax, 8 jmp short loc_10004444 ; --------------------------------------------------------------------------- loc_1000440E: ; CODE XREF: sub_10004331+B6j cmp eax, edx jnb short loc_10004425 sub [ebp+arg_4], eax cmp [ebp+arg_4], edx jb short loc_1000444E mov esi, ebx jmp short loc_100043CC ; --------------------------------------------------------------------------- loc_1000441E: ; CODE XREF: sub_10004331+ABj movzx eax, al add esi, eax jmp short loc_100043CC ; --------------------------------------------------------------------------- loc_10004425: ; CODE XREF: sub_10004331+DFj lea ebx, [esi+edx] cmp ebx, [ebp+arg_0] jnb short loc_10004436 sub eax, edx mov [ecx], ebx mov [ecx+4], eax jmp short loc_1000443F ; --------------------------------------------------------------------------- loc_10004436: ; CODE XREF: sub_10004331+FAj and dword ptr [ecx+4], 0 lea eax, [ecx+8] mov [ecx], eax loc_1000443F: ; CODE XREF: sub_10004331+103j mov [esi], dl lea eax, [esi+8] loc_10004444: ; CODE XREF: sub_10004331+40j ; sub_10004331+DBj imul ecx, 0Fh shl eax, 4 sub eax, ecx jmp short loc_10004450 ; --------------------------------------------------------------------------- loc_1000444E: ; CODE XREF: sub_10004331+7Ej ; sub_10004331+9Dj ... xor eax, eax loc_10004450: ; CODE XREF: sub_10004331+11Bj pop edi pop esi pop ebx leave retn sub_10004331 endp ; [0000002D BYTES: COLLAPSED FUNCTION __cinit. PRESS KEYPAD "+" TO EXPAND] ; [00000011 BYTES: COLLAPSED FUNCTION _exit. PRESS KEYPAD "+" TO EXPAND] ; [00000011 BYTES: COLLAPSED FUNCTION __exit. PRESS KEYPAD "+" TO EXPAND] ; [00000099 BYTES: COLLAPSED FUNCTION _doexit. PRESS KEYPAD "+" TO EXPAND] ; [0000001A BYTES: COLLAPSED FUNCTION __initterm. PRESS KEYPAD "+" TO EXPAND] ; [00000141 BYTES: COLLAPSED FUNCTION __XcptFilter. PRESS KEYPAD "+" TO EXPAND] ; [00000043 BYTES: COLLAPSED FUNCTION _xcptlookup. PRESS KEYPAD "+" TO EXPAND] ; [00000058 BYTES: COLLAPSED FUNCTION __wincmdln. PRESS KEYPAD "+" TO EXPAND] ; [000000B9 BYTES: COLLAPSED FUNCTION __setenvp. PRESS KEYPAD "+" TO EXPAND] ; [00000099 BYTES: COLLAPSED FUNCTION __setargv. PRESS KEYPAD "+" TO EXPAND] ; [000001B4 BYTES: COLLAPSED FUNCTION _parse_cmdline. PRESS KEYPAD "+" TO EXPAND] ; [00000132 BYTES: COLLAPSED FUNCTION ___crtGetEnvironmentStringsA. PRESS KEYPAD "+" TO EXPAND] ; [000001AB BYTES: COLLAPSED FUNCTION __ioinit. PRESS KEYPAD "+" TO EXPAND] ; [00000039 BYTES: COLLAPSED FUNCTION __FF_MSGBANNER. PRESS KEYPAD "+" TO EXPAND] ; [00000153 BYTES: COLLAPSED FUNCTION __NMSG_WRITE. PRESS KEYPAD "+" TO EXPAND] ; [00000017 BYTES: COLLAPSED FUNCTION _strtol. PRESS KEYPAD "+" TO EXPAND] ; [00000208 BYTES: COLLAPSED FUNCTION _strtoxl. PRESS KEYPAD "+" TO EXPAND] align 10h ; [00000005 BYTES: COLLAPSED CHUNK OF FUNCTION _strchr. PRESS KEYPAD "+" TO EXPAND] align 10h ; [000000BC BYTES: COLLAPSED FUNCTION _strchr. PRESS KEYPAD "+" TO EXPAND] align 10h ; [00000080 BYTES: COLLAPSED FUNCTION _strstr. PRESS KEYPAD "+" TO EXPAND] ; [00000038 BYTES: COLLAPSED FUNCTION _strncmp. PRESS KEYPAD "+" TO EXPAND] align 10h ; [0000002F BYTES: COLLAPSED FUNCTION __alloca_probe. PRESS KEYPAD "+" TO EXPAND] ; [00000011 BYTES: COLLAPSED FUNCTION __ismbblead. PRESS KEYPAD "+" TO EXPAND] ; [00000031 BYTES: COLLAPSED FUNCTION _x_ismbbtype. PRESS KEYPAD "+" TO EXPAND] ; [00000199 BYTES: COLLAPSED FUNCTION __setmbcp. PRESS KEYPAD "+" TO EXPAND] ; [0000004A BYTES: COLLAPSED FUNCTION _getSystemCP. PRESS KEYPAD "+" TO EXPAND] ; [00000033 BYTES: COLLAPSED FUNCTION _CPtoLCID. PRESS KEYPAD "+" TO EXPAND] ; [00000029 BYTES: COLLAPSED FUNCTION _setSBCS. PRESS KEYPAD "+" TO EXPAND] ; [00000185 BYTES: COLLAPSED FUNCTION _setSBUpLow. PRESS KEYPAD "+" TO EXPAND] ; [0000001C BYTES: COLLAPSED FUNCTION ___initmbctable. PRESS KEYPAD "+" TO EXPAND] ; [00000012 BYTES: COLLAPSED FUNCTION _malloc. PRESS KEYPAD "+" TO EXPAND] ; [0000002C BYTES: COLLAPSED FUNCTION __nh_malloc. PRESS KEYPAD "+" TO EXPAND] ; =============== S U B R O U T I N E ======================================= sub_100056EF proc near ; CODE XREF: __nh_malloc+Bp arg_0 = dword ptr 4 mov eax, dword_1000AD78 push esi mov esi, [esp+4+arg_0] cmp eax, 3 jnz short loc_10005713 cmp esi, dword_1000AD70 ja short loc_10005745 push esi call ___sbh_alloc_block test eax, eax pop ecx jz short loc_10005745 pop esi retn ; --------------------------------------------------------------------------- loc_10005713: ; CODE XREF: sub_100056EF+Dj cmp eax, 2 jnz short loc_10005745 mov eax, [esp+4+arg_0] test eax, eax jz short loc_10005728 lea esi, [eax+0Fh] and esi, 0FFFFFFF0h jmp short loc_1000572B ; --------------------------------------------------------------------------- loc_10005728: ; CODE XREF: sub_100056EF+2Fj push 10h pop esi loc_1000572B: ; CODE XREF: sub_100056EF+37j cmp esi, dword_1000A384 ja short loc_10005752 mov eax, esi shr eax, 4 push eax call sub_10004129 test eax, eax pop ecx jnz short loc_10005761 jmp short loc_10005752 ; --------------------------------------------------------------------------- loc_10005745: ; CODE XREF: sub_100056EF+15j ; sub_100056EF+20j ... test esi, esi jnz short loc_1000574C push 1 pop esi loc_1000574C: ; CODE XREF: sub_100056EF+58j add esi, 0Fh and esi, 0FFFFFFF0h loc_10005752: ; CODE XREF: sub_100056EF+42j ; sub_100056EF+54j push esi push 0 push dword_1000AD74 call ds:dword_10007010 loc_10005761: ; CODE XREF: sub_100056EF+52j pop esi retn sub_100056EF endp ; --------------------------------------------------------------------------- align 10h ; [00000335 BYTES: COLLAPSED FUNCTION _memcpy. PRESS KEYPAD "+" TO EXPAND] ; [00000089 BYTES: COLLAPSED FUNCTION ___crtMessageBoxA. PRESS KEYPAD "+" TO EXPAND] align 10h ; [000000FE BYTES: COLLAPSED FUNCTION _strncpy. PRESS KEYPAD "+" TO EXPAND] ; [000000CC BYTES: COLLAPSED FUNCTION _toupper. PRESS KEYPAD "+" TO EXPAND] ; [00000075 BYTES: COLLAPSED FUNCTION __isctype. PRESS KEYPAD "+" TO EXPAND] ; [00000224 BYTES: COLLAPSED FUNCTION ___crtLCMapStringA. PRESS KEYPAD "+" TO EXPAND] ; [0000002B BYTES: COLLAPSED FUNCTION _strncnt. PRESS KEYPAD "+" TO EXPAND] ; [00000149 BYTES: COLLAPSED FUNCTION ___crtGetStringTypeA. PRESS KEYPAD "+" TO EXPAND] align 4 ; =============== S U B R O U T I N E ======================================= ; Attributes: thunk sub_10006108 proc near ; CODE XREF: __global_unwind2+13p jmp ds:dword_10007018 sub_10006108 endp ; --------------------------------------------------------------------------- dw ? dd 3Ch dup(?) _text ends ; Section 2. (virtual address 00007000) ; Virtual size : 00000800 ( 2048.) ; Section size in file : 00000800 ( 2048.) ; Offset to raw data for section: 00007000 ; Flags 40000040: Data Readable ; Alignment : default ; =========================================================================== ; Segment type: Pure data ; Segment permissions: Read _rdata segment para public 'DATA' use32 assume cs:_rdata ;org 10007000h dword_10007000 dd 756Ch align 8 dword_10007008 dd 7550h ; _fast_error_exit+1Dr ... dword_1000700C dd 753Ch ; start+C2r ... dword_10007010 dd 7588h ; ___sbh_heap_init+Dr ... dword_10007014 dd 7594h ; sub_10003653+2C5r ... dword_10007018 dd 75A0h dword_1000701C dd 75ACh dword_10007020 dd 75BEh dword_10007024 dd 75D0h dword_10007028 dd 75DEh ; __setargv+23r ... dword_1000702C dd 75F4h dword_10007030 dd 760Eh dword_10007034 dd 761Eh dword_10007038 dd 762Ch dword_1000703C dd 763Ah ; sub_10003E31+120r ... dword_10007040 dd 7648h ; ___sbh_alloc_new_group+51r ... dword_10007044 dd 7658h dword_10007048 dd 7666h dword_1000704C dd 767Ah dword_10007050 dd 768Eh dword_10007054 dd 76AAh dword_10007058 dd 76C4h dword_1000705C dd 76DEh ; ___crtLCMapStringA+20Dr dword_10007060 dd 76F4h ; ___crtGetEnvironmentStringsA+E1r dword_10007064 dd 770Ch dword_10007068 dd 7726h dword_1000706C dd 7738h ; __NMSG_WRITE+143r dword_10007070 dd 7748h ; __ioinit+166r dword_10007074 dd 7756h dword_10007078 dd 7762h ; _setSBUpLow+14r dword_1000707C dd 776Eh dword_10007080 dd 7778h dword_10007084 dd 7784h dword_10007088 dd 7796h dword_1000708C dd 77A6h ; ___crtLCMapStringA+137r ... dword_10007090 dd 77BCh ; ___crtLCMapStringA+A7r dword_10007094 dd 77CCh ; ___crtLCMapStringA+14Dr ... dword_10007098 dd 77DCh ; ___crtGetStringTypeA+8Dr dword_1000709C dd 77EEh ; ___crtGetStringTypeA+12Dr dd 2 dup(0) dword_100070A8 dd 0FFFFFFFFh, 10002B12h, 10002B16h, 0dword_100070B8 dd 0FFFFFFFFh, 10002BA3h, 10002BA7h, 0dword_100070C8 dd 0FFFFFFFFh, 1000338Bh, 1000339Fh; char Str1[] Str1 db '__GLOBAL_HEAP_SELECTED',0 ; DATA XREF: sub_1000343B+8Eo align 4 a__msvcrt_heap_ db '__MSVCRT_HEAP_SELECT',0 ; DATA XREF: sub_1000343B+4Fo align 4 aRuntimeError db 'runtime error ',0 align 4 db 0Dh,0Ah,0 align 4 aTlossError db 'TLOSS error',0Dh,0Ah,0 align 4 aSingError db 'SING error',0Dh,0Ah,0 align 4 aDomainError db 'DOMAIN error',0Dh,0Ah,0 align 4 aR6028UnableToI db 'R6028',0Dh,0Ah db '- unable to initialize heap',0Dh,0Ah,0 align 10h aR6027NotEnough db 'R6027',0Dh,0Ah db '- not enough space for lowio initialization',0Dh,0Ah,0 align 4 aR6026NotEnough db 'R6026',0Dh,0Ah db '- not enough space for stdio initialization',0Dh,0Ah,0 align 10h aR6025PureVirtu db 'R6025',0Dh,0Ah db '- pure virtual function call',0Dh,0Ah,0 align 4 aR6024NotEnough db 'R6024',0Dh,0Ah db '- not enough space for _onexit/atexit table',0Dh,0Ah,0 align 10h aR6019UnableToO db 'R6019',0Dh,0Ah db '- unable to open console device',0Dh,0Ah,0 align 4 aR6018Unexpecte db 'R6018',0Dh,0Ah db '- unexpected heap error',0Dh,0Ah,0 align 10h aR6017Unexpecte db 'R6017',0Dh,0Ah db '- unexpected multithread lock error',0Dh,0Ah,0 align 10h aR6016NotEnough db 'R6016',0Dh,0Ah db '- not enough space for thread data',0Dh,0Ah,0 aAbnormalProgra db 0Dh,0Ah db 'abnormal program termination',0Dh,0Ah,0 align 10h aR6009NotEnough db 'R6009',0Dh,0Ah db '- not enough space for environment',0Dh,0Ah,0 aR6008NotEnough db 'R6008',0Dh,0Ah db '- not enough space for arguments',0Dh,0Ah,0 align 4 aR6002FloatingP db 'R6002',0Dh,0Ah ; DATA XREF: .data:off_1000A41Co db '- floating point not loaded',0Dh,0Ah,0 align 10h aMicrosoftVisua db 'Microsoft Visual C++ Runtime Library',0 ; DATA XREF: __NMSG_WRITE+119o align 4 ; char asc_100073B8[] asc_100073B8 db 0Ah ; DATA XREF: __NMSG_WRITE+F1o db 0Ah,0 align 4 ; char aRuntimeErrorPr[] aRuntimeErrorPr db 'Runtime Error!',0Ah ; DATA XREF: __NMSG_WRITE+D3o db 0Ah db 'Program: ',0 align 4 ; char a___[] a___ db '...',0 ; DATA XREF: __NMSG_WRITE+BFo ; char Source[] Source db '<program name unknown>',0 ; DATA XREF: __NMSG_WRITE+7Do align 4 aGetlastactivep db 'GetLastActivePopup',0 ; DATA XREF: ___crtMessageBoxA+3Do align 4 aGetactivewindo db 'GetActiveWindow',0 ; DATA XREF: ___crtMessageBoxA+35o aMessageboxa db 'MessageBoxA',0 ; DATA XREF: ___crtMessageBoxA+24o aUser32_dll db 'user32.dll',0 ; DATA XREF: ___crtMessageBoxA+Do align 10h dword_10007430 dd 0 ; ___crtGetStringTypeA+52o dword_10007434 dd 0 ; ___crtGetStringTypeA+39o dword_10007438 dd 0FFFFFFFFh, 10005E7Fh, 10005E83h, 0FFFFFFFFh, 10005F33h ; DATA XREF: ___crtLCMapStringA+5o dd 10005F37h dword_10007450 dd 0FFFFFFFFh, 100060B7h, 100060BBh, 74A0h, 2 dup(0) ; DATA XREF: ___crtGetStringTypeA+5o dd 755Eh, 7008h, 7498h, 2 dup(0) dd 757Ah, 7000h, 5 dup(0) dd 756Ch, 0 dd 7550h, 753Ch, 7588h, 7594h, 75A0h, 75ACh, 75BEh, 75D0h dd 75DEh, 75F4h, 760Eh, 761Eh, 762Ch, 763Ah, 7648h, 7658h dd 7666h, 767Ah, 768Eh, 76AAh, 76C4h, 76DEh, 76F4h, 770Ch dd 7726h, 7738h, 7748h, 7756h, 7762h, 776Eh, 7778h, 7784h dd 7796h, 77A6h, 77BCh, 77CCh, 77DCh, 77EEh, 0 dd 6547017Fh, 646F4D74h, 48656C75h, 6C646E61h, 4165h, 784500B9h dd 72507469h, 7365636Fh, 454B0073h, 4C454E52h, 642E3233h dd 6C6Ch, 655201EBh, 65704F67h, 79654B6Eh, 44410041h, 49504156h dd 642E3233h, 6C6Ch, 65480210h, 6C417061h, 636F6Ch, 65480216h dd 72467061h, 6565h, 745202D7h, 776E556Ch, 646E69h, 654701B7h dd 61745374h, 70757472h, 6F666E49h, 1100041h, 43746547h dd 616D6D6Fh, 694C646Eh, 41656Eh, 654701E8h, 72655674h dd 6E6F6973h, 17D0000h aGetmodulefilen db 'GetModuleFileNameA',0 align 4 db 58h ; X db 1, 47h, 65h aTenvironmentva db 'tEnvironmentVariableA',0 dw 1E9h aGetversionexa db 'GetVersionExA',0 dw 214h aHeapdestroy db 'HeapDestroy',0 dd 65480212h, 72437061h, 65746165h, 3830000h, 74726956h dd 466C6175h, 656572h, 69560381h, 61757472h, 6C6C416Ch dd 636Fh, 6548021Ah, 65527061h, 6F6C6C41h, 35E0063h, 6D726554h dd 74616E69h, 6F725065h, 73736563h, 1420000h aGetcurrentproc db 'GetCurrentProcess',0 dw 36Eh aUnhandledexcep db 'UnhandledExceptionFilter',0 align 2 dw 0F6h aFreeenvironmen db 'FreeEnvironmentStringsA',0 db 0F7h ; align 2 aFreeenvironm_0 db 'FreeEnvironmentStringsW',0 dw 394h aWidechartomult db 'WideCharToMultiByte',0 db 55h ; U db 1, 47h, 65h aTenvironmentst db 'tEnvironmentStrings',0 db 57h ; W db 1, 47h, 65h aTenvironment_0 db 'tEnvironmentStringsW',0 align 2 dw 324h aSethandlecount db 'SetHandleCount',0 align 4 dd 654701B9h, 64745374h, 646E6148h, 656Ch, 65470166h, 6C694674h dd 70795465h, 3A40065h, 74697257h, 6C694665h, 1040065h dd 43746547h, 666E4950h, 0FD006Fh, 41746547h, 5043h, 65470193h dd 4D454F74h, 5043h, 654701A0h, 6F725074h, 64644163h, 73736572h dd 2520000h, 64616F4Ch, 7262694Ch, 41797261h, 2750000h aMultibytetowid db 'MultiByteToWideChar',0 dd 434C0244h, 5370614Dh, 6E697274h, 4167h, 434C0245h, 5370614Dh dd 6E697274h, 5767h, 654701BAh, 72745374h, 54676E69h, 41657079h dd 1BD0000h, 53746547h, 6E697274h, 70795467h, 5765h _rdata ends ; Section 3. (virtual address 00008000) ; Virtual size : 00002D80 ( 11648.) ; Section size in file : 00002D80 ( 11648.) ; Offset to raw data for section: 00008000 ; Flags C0000040: Data Readable Writable ; Alignment : default ; =========================================================================== ; Segment type: Pure data ; Segment permissions: Read/Write _data segment para public 'DATA' use32 assume cs:_data ;org 10008000h dword_10008000 dd 0 dword_10008004 dd 0 dword_10008008 dd 0 dd offset ___initmbctable dword_10008010 dd 0 dword_10008014 dd 0 dword_10008018 dd 0 dword_1000801C dd 0 dword_10008020 dd 4 dup(0) ; char aLulhelloworldc[] aLulhelloworldc db 'lulhelloworldcppftw',0 ; DATA XREF: sub_10001D53+17o ; sub_10001D53+38o ... ; char dword_10008044 dword_10008044 dd 0A130B2F6h, 9F70897Fh, 52h ; sub_10001D53+25o ... ; char dword_10008050 dword_10008050 dd 0A326A3F3h, 0C127CB76h, 0DB43B110h, 0 ; sub_10001D53+46o ; char Dest[] Dest db 'ί&fxR@',0 ; DATA XREF: sub_10001D53+7Do ; sub_10001D53+90o ... align 10h ; char aPFXR[] aPFXR@U db 'ί&fxR@ԓ',0 ; DATA XREF: sub_10001D53+9Eo ; sub_10001D53+B1o ... align 10h ; char aGAAqUf[] aGAAqUf db 'ߣ |a[F۳' ; DATA XREF: sub_10001D53+C3o ; sub_10001D53+D6o ... db 0FAh, 85h, 6Dh dd 6DA6h ; char asc_10008094[] asc_10008094 db '±' ; DATA XREF: sub_10001D53+E4o ; sub_10001D53+F7o ... dw 0A301h dd 0A564C67Eh, 0F858B057h, 6381E7B0h, 3CAE45B7h, 0 ; char a1i_Vb_zv[] a1i_Vb_zv db '1_v_V',0 ; DATA XREF: sub_10001D53+105o ; sub_10001D53+118o ... ; char a1mgDbqJE[] a1mgDbqJE db '۴1gDQJĥ' ; DATA XREF: sub_10001D53+12Ao ; sub_10001D53+13Do ... db 0F5h, 2 dup(0) ; char aGSQtzc[] aGSQtzc@VT db 'ߣ {qZ@٢ќt',0 ; DATA XREF: sub_10001D53+14Bo ; sub_10001D53+15Eo ... align 4 ; char aG5icRJ[] aG5icRJ db 'ʣ5C{[\' ; DATA XREF: sub_10001D53+16Co ; sub_10001D53+17Fo ... db 0FAh aLr db 'ًr',0 align 10h ; char aPFXvkU[] aPFXvkU db 'ί&fxK]Γ',0 ; DATA XREF: sub_10001D53+18Do ; sub_10001D53+1A0o ... align 10h ; char aPFXglBx[] aPFXglBx db 'ί&fxL[ҵx',0 ; DATA XREF: sub_10001D53+1AEo ; sub_10001D53+1C1o ... align 4 ; char aV[] aV db 'ϴ=v' ; DATA XREF: sub_10001D53+1CFo ; sub_10001D53+1E2o ... db 0F7h, 66h, 9Ch aIIoU db ']\ěщoU',0 align 4 ; char aGSQtzc[] aGSQtzc@VT_0 db 'ˣ {qZ@٢ќt',0 ; DATA XREF: sub_10001D53+1F0o ; sub_10001D53+203o ... align 4 ; char aG[] aG@ilN db 'ʣ',27h,'~@LN',0 ; DATA XREF: sub_10001D53+211o ; sub_10001D53+224o ... align 4 ; char aKVquazJ[] aKVquazJ db '۪;vuZJ',0 ; DATA XREF: sub_10001D53+232o ; sub_10001D53+245o ... ; char aGAzUzECs[] aGAzUzECs db '̣&zu[]صїs',0 ; DATA XREF: sub_10001D53+25Fo ; sub_10001D53+272o ... align 4 ; char aPFXLJ[] aPFXLJ db 'ί&fxLJ',0 ; DATA XREF: sub_10001D53+280o ; sub_10001D53+293o ... ; char aK1ic[] aK1ic db '˪1c',0 ; DATA XREF: sub_10001D53+2E3o ; sub_10001D53+2F6o ... align 10h ; char aGBUqjB[] aGBUqjB db 'ˣ |ujB',0 ; DATA XREF: sub_10001D53+2A1o ; sub_10001D53+2B4o ... align 10h ; char aGBUqjB_0[] aGBUqjB_0 db 'ߣ |ujB',0 ; DATA XREF: sub_10001D53+2C2o ; sub_10001D53+2D5o ... align 10h ; char a8oDbJ[] a8oDbJ db 'ʲ8|d[\' ; DATA XREF: sub_10001D53+310o ; sub_10001D53+323o ... db 0F5h aGVe db '҂e',0 align 4 ; char a8ivUnzjE[] a8ivUnzjE db 'ʲ8v{NJĥ' ; DATA XREF: sub_10001D53+331o ; sub_10001D53+344o ... db 0F6h, 91h, 66h dd 0B349A5h ; char a8kvWSeENonOK[] a8kvWSeENonOK db 'ʲ8vWS]ҥǍo{ [k' ; DATA XREF: sub_10001D53+352o ; sub_10001D53+365o ... dw 8F6h dd 0D5107191h, 1BCFh ; char a1mgRRN[] a1mgRRN db '۴1gRRn',0 ; DATA XREF: sub_10001D53+37Fo ; sub_10001D53+392o ... ; char aG5iuXc[] aG5iuXc db 'ʣ5Ux',0 ; DATA XREF: sub_10001D53+3A0o ; sub_10001D53+3B3o ... align 10h ; char aGLzQawpj[] aGLzQawpj db 'ߣ zqWJ' ; DATA XREF: sub_10001D53+3C1o ; sub_10001D53+3D4o ... db 0F2h dd 0AEh ; char aGLzQgqA[] aGLzQgqA db 'ˣ zqQAó',0 ; DATA XREF: sub_10001D53+3E2o ; sub_10001D53+3F5o ... align 10h ; char dword_10008220 dword_10008220 dd 0AC22A2F9h, 0C127CE63h, 0DB43B110h, 0 ; sub_10001D53+67o ... ; char aGSF_J[] aGSF_J db 'ߣ `f_J' ; DATA XREF: sub_10001D53+403o ; sub_10001D53+416o ... db 0F6h align 10h ; char aG3vcZMn[] aG3vcZMn db 'ʣ3cz[n',0 ; DATA XREF: sub_10001D53+424o ; sub_10001D53+437o ... ; char aG3FFkhC[] aG3FFkhC db 'ʣ3ffhC³' ; DATA XREF: sub_10001D53+445o ; sub_10001D53+458o ... db 0F1h, 9Ch, 41h align 10h ; char aG3o[] aG3o db 'ʣ3' ; DATA XREF: sub_10001D53+472o ; sub_10001D53+485o ... dd 9667C87Fh, 56B075h ; char aVJm[] aVJm db '۳&v`M]',0 ; DATA XREF: sub_10001D53+493o ; sub_10001D53+4A6o ... ; char aIzIqL[] aIzIqL db ':ql',0 ; DATA XREF: sub_10001D53+4B4o ; sub_10001D53+4C7o ... ; char aUlMa[] aUlMa db '#a',0 ; DATA XREF: sub_10001D53+4D5o ; sub_10001D53+4E8o ... align 4 ; char aIAXNASOI[] aIAXNASOI db '۩:axnAҺoI' ; DATA XREF: sub_10001D53+5CEo ; sub_10001D53+5E1o ... db 11h dd 39DA5F56h, 0CE26639Dh, 0A84C11E5h, 96645E6Ah, 0 ; char aG1[] aG1 db 'ڣ1',0 ; DATA XREF: sub_10001D53+5EFo ; sub_10001D53+602o align 4 ; char aKPrUqrL[] aKPrUqrL db 'ߪ;rURL',0 ; DATA XREF: sub_10001D53+559o ; sub_10001D53+56Co ; char aKPrRb[] aKPrRb db 'ߪ;rR[',0 ; DATA XREF: sub_10001D53+538o ; sub_10001D53+54Bo align 10h ; char aGBrLz[] aGBrLz@ db 'ˣ r`L@',0 ; DATA XREF: sub_10001D53+586o ; sub_10001D53+599o ... align 10h ; char aGBrLz[] aGBrLz@_0 db 'ߣ r`L@',0 ; DATA XREF: sub_10001D53+5A7o ; sub_10001D53+5BAo ... align 10h ; char aI5i_Vb_zv[] aI5i_Vb_zv db 'ԩ5_v_V' ; DATA XREF: sub_10001D53+4F6o ; sub_10001D53+509o ... db 0F6h align 10h ; char aGAAqAnBa[] aGAAqAnBa db 'ߣ |a[NٲA',0 ; DATA XREF: sub_10001D53+517o ; sub_10001D53+52Ao ... align 4 dd offset aSbiedll_dll ; "SbieDll.dll" dd offset aDbghelp_dll ; "dbghelp.dll" aDbghelp_dll db 'dbghelp.dll',0 ; DATA XREF: .data:10008318o aSbiedll_dll db 'SbieDll.dll',0 ; DATA XREF: .data:10008314o align 10h dword_10008340 dd 19930520h, 3 dup(0) ; __NLG_Notify+2o off_10008350 dd offset __exit ; DATA XREF: __amsg_exit+1Cr dword_10008354 dd 2 ; __NMSG_WRITE+46r dd 10h, 0 off_10008360 dd offset off_10008360 ; DATA XREF: sub_10003E31+Do ; sub_10003E31+69o ... off_10008364 dd offset off_10008360 ; DATA XREF: sub_10003E31:loc_10003EB1r ; sub_10003E31+89w ... dd offset dword_10008378 dd offset dword_10008378 dword_10008370 dd 0FFFFFFFFh ; sub_10003F75:loc_10003FC2w dd 0FFFFFFFFh dword_10008378 dd 0F0h, 0F1h, 800h dup(0) ; .data:1000836Co off_1000A380 dd offset off_10008360 ; DATA XREF: sub_10003F75+15r ; sub_10003F75+20w ... dword_1000A384 dd 1E0h ; sub_100056EF:loc_1000572Br dword_1000A388 dd 0C0000005h ; _xcptlookup+11o dd 0Bh, 0 dd 0C000001Dh, 4, 0 dd 0C0000096h, 4, 0 dd 0C000008Dh, 8, 0 dd 0C000008Eh, 8, 0 dd 0C000008Fh, 8, 0 dd 0C0000090h, 8, 0 dd 0C0000091h, 8, 0 dd 0C0000092h, 8, 0 dd 0C0000093h, 8, 0 dword_1000A400 dd 3 dword_1000A404 dd 7 dword_1000A408 dd 0Ah dword_1000A40C dd 8Ch ; __XcptFilter+8Fw ... dd 0FFFFFFFFh, 0A00h dword_1000A418 dd 2 ; __NMSG_WRITE+28r off_1000A41C dd offset aR6002FloatingP ; DATA XREF: __NMSG_WRITE+FCr ; __NMSG_WRITE+12Dr ; "R6002\r\n- floating point not loaded\r\n" dd 8, 1000733Ch, 9, 10007310h, 0Ah, 100072ECh, 10h, 100072C0h dd 11h, 10007290h, 12h, 1000726Ch, 13h, 10007240h, 18h dd 10007208h, 19h, 100071E0h, 1Ah, 100071A8h, 1Bh, 10007170h dd 1Ch, 10007148h, 78h, 10007138h, 79h, 10007128h, 7Ah dd 10007118h, 0FCh, 10007114h, 0FFh, 10007104h dword_1000A4A8 dd 2 dup(0) byte_1000A4B0 db 1 ; DATA XREF: __setmbcp+E1r db 2, 4, 8 align 8 dword_1000A4B8 dd 3A4h dword_1000A4BC dd 82798260h dd 21h, 0 dword_1000A4C8 dd 0DFA6h align 10h dd 0A5A1h, 0 dd 0FCE09F81h, 0 dd 0FC807E40h, 0 dd 3A8h, 0A3DAA3C1h, 20h, 5 dup(0) dd 0FE81h, 0 dd 0FE40h, 0 dd 3B5h, 0A3DAA3C1h, 20h, 5 dup(0) dd 0FE81h, 0 dd 0FE41h, 0 dd 3B6h, 0A2E4A2CFh, 0A2E5001Ah, 5BA2E8h, 4 dup(0) dd 0FE81h, 0 dd 0FEA17E40h, 0 dd 551h, 0DA5EDA51h, 0DA5F0020h, 32DA6Ah, 4 dup(0) dd 0DED8D381h, 0F9E0h, 0FE817E31h, 0 dword_1000A5A8 dd 2 dup(0) off_1000A5B0 dd offset __wctype+2 ; DATA XREF: _strtoxl:loc_10004EE9r ; _strtoxl:loc_10004FA6r ... dd offset __wctype+2 public __wctype ; const unsigned __int16 _wctype[] __wctype dd 200000h ; DATA XREF: _x_ismbbtype+18r ; .data:off_1000A5B0o ... unicode 0, < ((((( H> dd 7 dup(100010h), 840010h, 4 dup(840084h), 100084h, 3 dup(100010h) dd 3 dup(810081h), 0Ah dup(10001h), 3 dup(100010h), 3 dup(820082h) dd 0Ah dup(20002h), 2 dup(100010h), 20h, 40h dup(0) dword_1000A7BC dd 1 ; _strtoxl:loc_10004F8Er ... dd 2Eh, 1 dword_1000A7C8 dd 0 ; sub_10002366+1D9w ... dword_1000A7CC dd 0 ; sub_10002366+C3w ... dword_1000A7D0 dd 0 ; sub_10001A2B+263r ... dword_1000A7D4 dd 0 ; sub_10002366+86w ... dword_1000A7D8 dd 0 ; sub_10002366+30Er dword_1000A7DC dd 0 ; sub_10002366+1ECw ... dword_1000A7E0 dd 0 ; sub_10002885+79r align 8 dword_1000A7E8 dd 0 ; sub_10002366+3B8r dword_1000A7EC dd 0 ; sub_10002366+412r dword_1000A7F0 dd 0 ; sub_10002366+B0w ... dword_1000A7F4 dd 0 ; sub_10002366+D6w ... dword_1000A7F8 dd 0 ; sub_10002366+3E5r ... dword_1000A7FC dd 0 ; sub_10002366+EDw ... dword_1000A800 dd 0 ; sub_10002366+176w ... dword_1000A804 dd 0 ; sub_10002366+100w ... dword_1000A808 dd 0 ; sub_10002366+73w ... dword_1000A80C dd 0 ; sub_10002366+43r ... dd 0 dword_1000A814 dd 0 ; sub_10002885+10r dword_1000A818 dd 0 ; sub_10002366+3DCr ... dword_1000A81C dd 0 ; sub_10002366+3AFr dword_1000A820 dd 0 ; sub_10002366+3F7r ... dword_1000A824 dd 0 ; sub_10002366+139w ... dword_1000A828 dd 0 ; sub_10002366+20r ... dword_1000A82C dd 0 ; sub_10002366+3C1r dword_1000A830 dd 0 ; sub_10002366+126w ... dword_1000A834 dd 0 ; sub_10002366+409r dword_1000A838 dd 0 ; sub_10001A2B+110r ... dword_1000A83C dd 0 ; sub_10001A2B+1DAr ... dword_1000A840 dd 0 ; sub_10002366+400r ... dword_1000A844 dd 0 ; sub_10002366+41Br dword_1000A848 dd 0 ; sub_10002366+3A6r dword_1000A84C dd 0 ; sub_10001A2B+28Ar ... dword_1000A850 dd 0 ; sub_10002366+3EEr ... dword_1000A854 dd 0 ; sub_10002885+9Dr dword_1000A858 dd 0 ; sub_10002366+49w ... ; char dword_1000A85C[] dword_1000A85C dd 0 ; char *Str Str dd 0 ; DATA XREF: start+84w ; __setenvp:loc_10004745r ... align 8 dword_1000A868 dd 0 ; _fast_error_exitr ... dword_1000A86C dd 0 dword_1000A870 dd 0 ; _mallocr dword_1000A874 dd 0 ; sub_100040E4+2Dw ... dword_1000A878 dd 0 dd 2 dup(0) dword_1000A884 dd 0 dword_1000A888 dd 0 dword_1000A88C dd 0 dword_1000A890 dd 0 dword_1000A894 dd 0 dword_1000A898 dd 0 align 10h dword_1000A8A0 dd 0 align 10h dword_1000A8B0 dd 0 align 8 byte_1000A8B8 db 0 ; DATA XREF: _doexit+2Dw align 4 dword_1000A8BC dd 0 dword_1000A8C0 dd 0 dword_1000A8C4 dd 0 ; __XcptFilter+46w ... dword_1000A8C8 dd 41h dup(0) dword_1000A9CC dd 0 ; ___crtGetEnvironmentStringsA+23w ... dword_1000A9D0 dd 0 dword_1000A9D4 dd 0 ; _getSystemCP+4w ... dword_1000A9D8 dd 0 ; ___crtMessageBoxA+2Ew ... dword_1000A9DC dd 0 ; ___crtMessageBoxA:loc_10005AF4r dword_1000A9E0 dd 0 ; ___crtMessageBoxA+60r dd 2 dup(0) dword_1000A9EC dd 0 dd 3 dup(0) dword_1000A9FC dd 0 ; ___crtLCMapStringA+C0r ... dd 0 dword_1000AA04 dd 0 ; ___crtLCMapStringA+4Cw ... dword_1000AA08 dd 0 ; ___crtGetStringTypeA:loc_10006028w dword_1000AA0C dd 0 ; __setmbcp+65w ... dword_1000AA10 dd 3 dup(0) ; __setmbcp+171o ... dword_1000AA1C dd 0 ; __setmbcp+15Dw ... byte_1000AA20 db 0 ; DATA XREF: _setSBUpLow:loc_1000561Cw ; _setSBUpLow:loc_10005639w ... align 4 dd 3Fh dup(0) byte_1000AB20 db 0 ; DATA XREF: __setmbcp+5Co ; __setmbcp+AFo ... byte_1000AB21 db 0 ; DATA XREF: _parse_cmdline+3Fr ; _parse_cmdline+84r ... align 4 dd 40h dup(0) dword_1000AC24 dd 0 ; __setmbcp+12Bw ... dd 6 dup(0) dword_1000AC40 dd 0 ; __ioinit+45r ... dword_1000AC44 dd 3Fh dup(0) dword_1000AD40 dd 0 ; __ioinit:loc_10004BF5r ... dword_1000AD44 dd 0 dword_1000AD48 dd 0 dword_1000AD4C dd 0 dword_1000AD50 dd 0 dword_1000AD54 dd 0 dword_1000AD58 dd 0 ; ___sbh_alloc_new_region+5r ... dword_1000AD5C dd 0 ; sub_10003653+25Ar ... dword_1000AD60 dd 0 ; sub_10003653+311w ... dword_1000AD64 dd 0 ; sub_10003653+22Dr ... dword_1000AD68 dd 0 ; ___sbh_find_blockr ... dword_1000AD6C dd 0 ; ___sbh_find_block+8r ... dword_1000AD70 dd 0 ; ___sbh_heap_init+36w ... dword_1000AD74 dd 0 ; sub_10002E9C+5Ar ... dword_1000AD78 dd 0 ; sub_10002E9C+Cr ... dword_1000AD7C dd 0 align 100h _data ends ; Section 4. (virtual address 0000B000) ; Virtual size : 00001000 ( 4096.) ; Section size in file : 00000200 ( 512.) ; Offset to raw data for section: 0000AE00 ; Flags C0000040: Data Readable Writable ; Alignment : default ; =========================================================================== ; Segment type: Pure data ; Segment permissions: Read/Write _idata2 segment para public 'DATA' use32 assume cs:_idata2 ;org 1000B000h align 2000h _idata2 ends end start