; ; ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ» ; º This file is generated by The Interactive Disassembler (IDA) º ; º Copyright (c) 2005 by DataRescue sa/nv, º ; º Licensed to: F-Secure Corp, 1 user, adv upg, 12/2003 º ; ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ ; ; File Name : /home/carrer/mnt/work/Samples/tmp/tmp/Test App.exe ; Format : Portable executable for 80386 (PE) ; Imagebase : 400000 ; Section 1. (virtual address 00001000) ; Virtual size : 000008D4 ( 2260.) ; Section size in file : 00000A00 ( 2560.) ; Offset to raw data for section: 00000400 ; Flags 60000060: Text Data Executable Readable ; Alignment : default .686p .mmx .model flat ; ÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ ; Segment type: Pure code ; Segment permissions: Read/Execute _text segment para public 'CODE' use32 assume cs:_text ;org 401000h assume es:nothing, ss:nothing, ds:_data, fs:nothing, gs:nothing ; ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ S U B R O U T I N E ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ ; Attributes: bp-based frame sub_401000 proc near ; DATA XREF: sub_401100+Ao var_18 = dword ptr -18h var_14 = dword ptr -14h var_8 = dword ptr -8 var_4 = dword ptr -4 arg_0 = dword ptr 8 push ebp mov ebp, esp sub esp, 18h ; int mov [ebp+var_8], ebx mov edx, [ebp+arg_0] xor ebx, ebx mov [ebp+var_4], esi mov eax, [edx] xor esi, esi mov eax, [eax] cmp eax, 0C0000091h ja short loc_401061 cmp eax, 0C000008Dh jb short loc_401080 loc_401025: ; CODE XREF: sub_401000+66j mov esi, 1 loc_40102A: ; CODE XREF: sub_401000+6Dj mov [esp+18h+var_18], 8 xor eax, eax mov [esp+18h+var_14], eax call signal cmp eax, 1 jz short loc_4010AD test eax, eax jz short loc_40106F mov [esp+18h+var_18], 8 call eax loc_40104E: ; CODE XREF: sub_401000+ABj ; sub_401000+C4j mov ebx, 0FFFFFFFFh loc_401053: ; CODE XREF: sub_401000+D0j ; sub_401000+ECj mov eax, ebx mov esi, [ebp+var_4] mov ebx, [ebp+var_8] mov esp, ebp pop ebp retn 4 ; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ loc_401061: ; CODE XREF: sub_401000+1Cj cmp eax, 0C0000093h jz short loc_401025 cmp eax, 0C0000094h jz short loc_40102A loc_40106F: ; CODE XREF: sub_401000+43j ; sub_401000+85j sub_401000+A0j mov eax, ebx mov esi, [ebp+var_4] mov ebx, [ebp+var_8] mov esp, ebp pop ebp retn 4 ; int ; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ align 10h loc_401080: ; CODE XREF: sub_401000+23j cmp eax, 0C0000005h jnz short loc_40106F mov [esp+18h+var_18], 0Bh xor esi, esi mov [esp+18h+var_14], esi call signal cmp eax, 1 jz short loc_4010D2 test eax, eax jz short loc_40106F mov [esp+18h+var_18], 0Bh call eax jmp short loc_40104E ; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ loc_4010AD: ; CODE XREF: sub_401000+3Fj mov [esp+18h+var_18], 8 mov ebx, 1 mov [esp+18h+var_14], ebx call signal test esi, esi jz short loc_40104E call sub_401300 mov ebx, 0FFFFFFFFh jmp short loc_401053 ; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ loc_4010D2: ; CODE XREF: sub_401000+9Cj mov [esp+18h+var_18], 0Bh mov ecx, 1 mov ebx, 0FFFFFFFFh mov [esp+18h+var_14], ecx call signal jmp loc_401053 sub_401000 endp ; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ jmp short sub_401100 ; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ align 10h ; ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ S U B R O U T I N E ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ ; Attributes: bp-based frame sub_401100 proc near ; CODE XREF: .text:004010F1j start+13p ; start+33p 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_C = dword ptr -0Ch var_8 = dword ptr -8 push ebp mov ebp, esp push ebx sub esp, 24h ; lpTopLevelExceptionFilter lea ebx, [ebp+var_8] mov [esp+28h+var_28], offset sub_401000 call SetUnhandledExceptionFilter sub esp, 4 ; uExitCode call sub_401300 mov [ebp+var_8], 0 mov eax, offset dword_404000 lea edx, [ebp+var_C] mov [esp+28h+var_18], ebx mov ecx, dword_402000 mov [esp+28h+var_24], eax mov [esp+28h+var_20], edx mov [esp+28h+var_1C], ecx mov [esp+28h+var_28], offset dword_404004 call __getmainargs mov eax, ds:dword_404010 test eax, eax jz short loc_4011B0 mov dword_402010, eax mov edx, ds:_iob test edx, edx jnz loc_4011F6 loc_40116B: ; CODE XREF: sub_401100+111j cmp edx, 0FFFFFFE0h jz short loc_401190 mov eax, ds:dword_404010 mov [esp+28h+var_24], eax mov ebx, ds:_iob mov ecx, [ebx+30h] mov [esp+28h+var_28], ecx call _setmode mov edx, ds:_iob loc_401190: ; CODE XREF: sub_401100+6Ej cmp edx, 0FFFFFFC0h jz short loc_4011B0 mov ebx, ds:dword_404010 mov [esp+28h+var_24], ebx mov ecx, ds:_iob mov edx, [ecx+50h] mov [esp+28h+var_28], edx call _setmode loc_4011B0: ; CODE XREF: sub_401100+56j ; sub_401100+93j call __p__fmode mov ebx, dword_402010 mov [eax], ebx call sub_4012D0 and esp, 0FFFFFFF0h call __p__environ mov ecx, [eax] mov [esp+28h+var_20], ecx mov edx, ds:dword_404000 mov [esp+28h+var_24], edx mov eax, ds:dword_404004 mov [esp+28h+var_28], eax call main mov ebx, eax call _cexit mov [esp+28h+var_28], ebx call ExitProcess loc_4011F6: ; CODE XREF: sub_401100+65j mov [esp+24h+var_20], eax mov edx, ds:_iob mov eax, [edx+10h] mov [esp+24h+var_24], eax call _setmode mov edx, ds:_iob jmp loc_40116B sub_401100 endp ; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ align 10h ; ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ S U B R O U T I N E ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ ; Attributes: bp-based frame public start start proc near var_14 = dword ptr -14h var_8 = dword ptr -8 push ebp mov ebp, esp sub esp, 8 mov [esp+8+var_8], 1 call ds:__set_app_type call sub_401100 nop lea esi, [esi+0] push ebp mov ebp, esp sub esp, 8 mov [esp+14h+var_14], 2 call ds:__set_app_type call sub_401100 nop lea esi, [esi+0] start endp ; ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ S U B R O U T I N E ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ ; Attributes: bp-based frame sub_401260 proc near ; CODE XREF: .text:00401381p ; sub_4013B0+41p push ebp mov ecx, ds:atexit mov ebp, esp pop ebp jmp ecx sub_401260 endp ; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ align 10h push ebp mov ecx, ds:_onexit mov ebp, esp pop ebp jmp ecx ; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ align 10h loc_401280: ; CODE XREF: .text:004018B4j push ebp mov ebp, esp pop ebp jmp loc_4014D0 ; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ align 10h ; ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ S U B R O U T I N E ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ ; Attributes: bp-based frame main proc near ; CODE XREF: sub_401100+E2p var_8 = dword ptr -8 var_4 = dword ptr -4 push ebp mov ebp, esp sub esp, 8 ; char * and esp, 0FFFFFFF0h mov eax, 0 add eax, 0Fh add eax, 0Fh shr eax, 4 shl eax, 4 mov [ebp+var_4], eax mov eax, [ebp+var_4] call sub_401710 call sub_4013B0 mov [esp+8+var_8], offset aHelloWorld ; "Hello world!\n" call printf leave retn main endp ; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ align 10h ; ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ S U B R O U T I N E ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ ; Attributes: bp-based frame sub_4012D0 proc near ; CODE XREF: sub_401100+BDp push ebp mov ecx, offset unk_4030F0 mov ebp, esp jmp short loc_4012EE ; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ align 10h loc_4012E0: ; CODE XREF: sub_4012D0+24j mov edx, [ecx+4] mov eax, [ecx] add ecx, 8 add [edx+400000h], eax loc_4012EE: ; CODE XREF: sub_4012D0+8j cmp ecx, offset unk_4030F0 jb short loc_4012E0 pop ebp retn sub_4012D0 endp ; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ align 10h ; ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ S U B R O U T I N E ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ ; Attributes: bp-based frame sub_401300 proc near ; CODE XREF: sub_401000+C6p ; sub_401100+19p push ebp mov ebp, esp fninit pop ebp retn sub_401300 endp ; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ align 10h ; ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ S U B R O U T I N E ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ ; Attributes: bp-based frame sub_401310 proc near ; DATA XREF: .text:loc_40137Ao ; sub_4013B0:loc_4013EAo push ebp mov ebp, esp sub esp, 8 mov eax, dword_402020 mov ecx, [eax] test ecx, ecx jz short locret_401347 jmp short loc_401330 ; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ align 10h loc_401330: ; CODE XREF: sub_401310+11j ; sub_401310+35j call dword ptr [eax] mov ecx, dword_402020 mov edx, [ecx+4] lea eax, [ecx+4] mov dword_402020, eax test edx, edx jnz short loc_401330 locret_401347: ; CODE XREF: sub_401310+Fj leave retn sub_401310 endp ; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ align 10h push ebp mov ebp, esp push ebx sub esp, 4 mov eax, ds:dword_4018C0 cmp eax, 0FFFFFFFFh jz short loc_40138A loc_401361: ; CODE XREF: .text:004013A2j test eax, eax mov ebx, eax jz short loc_40137A mov esi, esi lea edi, [edi+0] loc_401370: ; CODE XREF: .text:00401378j call ds:dword_4018C0[ebx*4] dec ebx jnz short loc_401370 loc_40137A: ; CODE XREF: .text:00401365j mov dword ptr [esp], offset sub_401310 call sub_401260 pop ebx pop ebx pop ebp retn ; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ loc_40138A: ; CODE XREF: .text:0040135Fj mov ecx, ds:dword_4018C4 xor eax, eax test ecx, ecx jmp short loc_4013A0 ; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ loc_401396: ; CODE XREF: .text:loc_4013A0j inc eax mov edx, ds:dword_4018C4[eax*4] test edx, edx loc_4013A0: ; CODE XREF: .text:00401394j jnz short loc_401396 jmp short loc_401361 ; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ align 10h ; ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ S U B R O U T I N E ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ ; Attributes: bp-based frame sub_4013B0 proc near ; CODE XREF: main+25p var_8 = dword ptr -8 push ebp mov ebp, esp push ebx sub esp, 4 mov eax, ds:dword_404020 test eax, eax jnz short loc_4013F6 mov eax, ds:dword_4018C0 mov ebx, 1 mov ds:dword_404020, ebx cmp eax, 0FFFFFFFFh jz short loc_4013FA loc_4013D5: ; CODE XREF: sub_4013B0+62j test eax, eax mov ebx, eax jz short loc_4013EA nop lea esi, [esi+0] loc_4013E0: ; CODE XREF: sub_4013B0+38j call ds:dword_4018C0[ebx*4] dec ebx jnz short loc_4013E0 loc_4013EA: ; CODE XREF: sub_4013B0+29j mov [esp+8+var_8], offset sub_401310 call sub_401260 loc_4013F6: ; CODE XREF: sub_4013B0+Ej pop ebx pop ebx pop ebp retn ; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ loc_4013FA: ; CODE XREF: sub_4013B0+23j mov ecx, ds:dword_4018C4 xor eax, eax test ecx, ecx jmp short loc_401410 ; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ loc_401406: ; CODE XREF: sub_4013B0:loc_401410j inc eax mov edx, ds:dword_4018C4[eax*4] test edx, edx loc_401410: ; CODE XREF: sub_4013B0+54j jnz short loc_401406 jmp short loc_4013D5 sub_4013B0 endp ; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ align 10h ; ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ S U B R O U T I N E ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ ; Attributes: bp-based frame sub_401420 proc near ; DATA XREF: .text:004015C3o push ebp mov eax, ds:dword_404070 mov ebp, esp pop ebp mov ecx, [eax+4] jmp ecx sub_401420 endp ; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ align 10h ; ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ S U B R O U T I N E ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ ; Attributes: bp-based frame sub_401430 proc near ; CODE XREF: .text:loc_4016CCp ; .text:004016F3p var_68 = dword ptr -68h var_64 = dword ptr -64h var_60 = dword ptr -60h var_5C = dword ptr -5Ch var_58 = dword ptr -58h var_4 = dword ptr -4 push ebp mov edx, 42h mov ebp, esp push ebx movzx eax, ax sub esp, 64h ; nAtom mov [esp+68h+var_60], edx lea edx, [ebp+var_58] xor ebx, ebx mov [esp+68h+var_64], edx mov [esp+68h+var_68], eax call ds:GetAtomNameA mov edx, 1Fh mov ecx, 1 sub esp, 0Ch test eax, eax jnz short loc_40146D jmp short loc_4014AE ; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ loc_401468: ; CODE XREF: sub_401430+42j add ecx, ecx dec edx js short loc_40147B loc_40146D: ; CODE XREF: sub_401430+34j ; sub_401430+49j cmp byte ptr [edx+ebp-58h], 41h jnz short loc_401468 or ebx, ecx add ecx, ecx dec edx jns short loc_40146D loc_40147B: ; CODE XREF: sub_401430+3Bj cmp dword ptr [ebx], 3Ch jnz short loc_401487 mov eax, ebx mov ebx, [ebp+var_4] leave retn ; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ loc_401487: ; CODE XREF: sub_401430+4Ej mov ecx, offset aW32_sharedptrSizeSizeofW32_eh_shared ; "w32_sharedptr->size == sizeof(W32_EH_SH"... mov edx, 0EAh mov [esp+68h+var_5C], ecx mov [esp+68h+var_60], edx loc_401499: ; CODE XREF: sub_401430+90j mov [esp+68h+var_68], offset aSUFailedAssertionS ; "%s:%u: failed assertion `%s'\n" mov eax, offset a____GccGccConfigI386W32SharedPtr_c ; "../../gcc/gcc/config/i386/w32-shared-pt"... mov [esp+68h+var_64], eax call sub_401740 loc_4014AE: ; CODE XREF: sub_401430+36j mov eax, offset aGetatomnameaAtomSSizeofS0 ; "GetAtomNameA (atom, s, sizeof(s)) != 0" mov ebx, 0E4h mov [esp+68h+var_5C], eax mov [esp+68h+var_60], ebx jmp short loc_401499 sub_401430 endp ; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ align 10h loc_4014D0: ; CODE XREF: .text:00401284j push ebp mov ebp, esp push edi push esi push ebx sub esp, 0CCh mov ecx, ds:dword_404070 test ecx, ecx jz short loc_4014EE lea esp, [ebp-0Ch] pop ebx pop esi pop edi pop ebp retn ; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ loc_4014EE: ; CODE XREF: .text:004014E4j mov dword ptr [ebp-68h], 41414141h mov eax, ds:dword_403010 lea esi, [ebp-68h] mov dword ptr [ebp-64h], 41414141h mov dword ptr [ebp-60h], 41414141h mov [ebp-48h], eax mov eax, ds:dword_403014 mov dword ptr [ebp-5Ch], 41414141h mov dword ptr [ebp-58h], 41414141h mov [ebp-44h], eax mov eax, ds:dword_403018 mov dword ptr [ebp-54h], 41414141h mov dword ptr [ebp-50h], 41414141h mov [ebp-40h], eax mov eax, ds:dword_40301C mov dword ptr [ebp-4Ch], 41414141h mov [ebp-3Ch], eax mov eax, ds:dword_403020 mov [ebp-38h], eax mov eax, ds:dword_403024 mov [ebp-34h], eax mov eax, ds:dword_403028 mov [ebp-30h], eax mov eax, ds:dword_40302C mov [ebp-2Ch], eax movzx eax, ds:word_403030 mov [ebp-28h], ax mov [esp], esi call ds:FindAtomA movzx eax, ax sub esp, 4 test eax, eax mov [ebp-0BCh], eax jnz loc_4016CC mov dword ptr [esp], 3Ch call malloc test eax, eax mov ebx, eax jz loc_401700 cld mov edi, eax mov eax, [ebp-0BCh] mov ecx, 0Fh rep stosd mov dword ptr [ebx+4], offset abort mov ecx, 1 mov dword ptr [ebx+8], offset sub_401420 mov eax, ds:dword_404040 mov dword ptr [ebx], 3Ch mov edx, ds:dword_404044 mov dword ptr [ebx+28h], 0 mov [ebx+14h], eax mov eax, dword_402030 mov [ebx+18h], edx mov edx, dword_402034 mov [ebx+1Ch], eax mov eax, ds:dword_404050 mov [ebx+20h], edx mov dword ptr [ebx+30h], 0FFFFFFFFh mov [ebx+2Ch], eax mov edx, dword_40203C mov eax, dword_402038 mov [ebx+38h], edx mov edx, 1Fh mov [ebx+34h], eax mov esi, esi loc_401620: ; CODE XREF: .text:00401637j mov eax, ebx and eax, ecx cmp eax, 1 sbb eax, eax and al, 20h add ecx, ecx add al, 41h mov [edx+ebp-0B8h], al dec edx jns short loc_401620 mov eax, ds:dword_403010 mov [ebp-98h], eax mov eax, ds:dword_403014 mov [ebp-94h], eax mov eax, ds:dword_403018 mov [ebp-90h], eax mov eax, ds:dword_40301C mov [ebp-8Ch], eax mov eax, ds:dword_403020 mov [ebp-88h], eax mov eax, ds:dword_403024 mov [ebp-84h], eax mov eax, ds:dword_403028 mov [ebp-80h], eax mov eax, ds:dword_40302C mov [ebp-7Ch], eax movzx eax, ds:word_403030 mov [ebp-78h], ax lea eax, [ebp-0B8h] mov [esp], eax call ds:AddAtomA movzx edi, ax sub esp, 4 test edi, edi jnz short loc_4016F1 loc_4016AF: ; CODE XREF: .text:004016FCj xor edx, edx loc_4016B1: ; CODE XREF: .text:004016FEj test edx, edx jnz short loc_4016D3 mov [esp], ebx call free mov [esp], esi call ds:FindAtomA sub esp, 4 movzx eax, ax loc_4016CC: ; CODE XREF: .text:0040158Bj call sub_401430 mov ebx, eax loc_4016D3: ; CODE XREF: .text:004016B3j mov ds:dword_404070, ebx lea eax, [ebx+4] mov ds:dword_404060, eax lea eax, [ebx+8] mov ds:dword_404080, eax lea esp, [ebp-0Ch] pop ebx pop esi pop edi pop ebp retn ; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ loc_4016F1: ; CODE XREF: .text:004016ADj mov eax, edi call sub_401430 cmp eax, ebx mov edx, edi jnz short loc_4016AF jmp short loc_4016B1 ; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ loc_401700: ; CODE XREF: .text:004015A1j call abort nop nop nop nop nop nop nop nop nop nop nop ; ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ S U B R O U T I N E ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ sub_401710 proc near ; CODE XREF: main+20p push ecx mov ecx, esp add ecx, 8 loc_401716: ; CODE XREF: sub_401710+1Bj cmp eax, 1000h jb short loc_40172D sub ecx, 1000h or dword ptr [ecx], 0 sub eax, 1000h jmp short loc_401716 ; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ loc_40172D: ; CODE XREF: sub_401710+Bj sub ecx, eax or dword ptr [ecx], 0 mov eax, esp mov esp, ecx mov ecx, [eax] mov eax, [eax+4] jmp eax sub_401710 endp ; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ align 10h ; ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ S U B R O U T I N E ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ ; Attributes: bp-based frame sub_401740 proc near ; CODE XREF: sub_401430+79p 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 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, 18h ; FILE * mov eax, [ebp+arg_C] mov [esp+18h+var_8], eax mov eax, [ebp+arg_8] mov [esp+18h+var_C], eax mov eax, [ebp+arg_4] mov [esp+18h+var_10], eax mov eax, [ebp+arg_0] mov [esp+18h+var_14], eax mov eax, ds:_iob add eax, 40h mov [esp+18h+var_18], eax call fprintf mov eax, ds:_iob add eax, 40h mov [esp+18h+var_18], eax call fflush call abort nop nop nop nop nop nop nop nop nop jmp ds:__set_app_type sub_401740 endp ; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ align 10h ; [00000006 BYTES: COLLAPSED FUNCTION _cexit. PRESS KEYPAD "+" TO EXPAND] align 10h ; [00000006 BYTES: COLLAPSED FUNCTION __p__environ. PRESS KEYPAD "+" TO EXPAND] align 10h ; [00000006 BYTES: COLLAPSED FUNCTION signal. PRESS KEYPAD "+" TO EXPAND] align 10h ; [00000006 BYTES: COLLAPSED FUNCTION __p__fmode. PRESS KEYPAD "+" TO EXPAND] align 10h ; [00000006 BYTES: COLLAPSED FUNCTION _setmode. PRESS KEYPAD "+" TO EXPAND] align 10h ; [00000006 BYTES: COLLAPSED FUNCTION __getmainargs. PRESS KEYPAD "+" TO EXPAND] align 10h ; [00000006 BYTES: COLLAPSED FUNCTION printf. PRESS KEYPAD "+" TO EXPAND] align 10h ; [00000006 BYTES: COLLAPSED FUNCTION free. PRESS KEYPAD "+" TO EXPAND] align 10h ; [00000006 BYTES: COLLAPSED FUNCTION malloc. PRESS KEYPAD "+" TO EXPAND] align 10h ; [00000006 BYTES: COLLAPSED FUNCTION abort. PRESS KEYPAD "+" TO EXPAND] align 10h ; [00000006 BYTES: COLLAPSED FUNCTION fflush. PRESS KEYPAD "+" TO EXPAND] align 10h ; [00000006 BYTES: COLLAPSED FUNCTION fprintf. PRESS KEYPAD "+" TO EXPAND] align 10h ; [00000006 BYTES: COLLAPSED FUNCTION SetUnhandledExceptionFilter. PRESS KEYPAD "+" TO EXPAND] align 10h ; [00000006 BYTES: COLLAPSED FUNCTION ExitProcess. PRESS KEYPAD "+" TO EXPAND] align 10h jmp ds:GetAtomNameA ; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ align 10h jmp ds:FindAtomA ; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ align 10h jmp ds:AddAtomA ; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ align 10h push ebp mov ebp, esp pop ebp jmp loc_401280 ; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ align 10h dword_4018C0 dd 0FFFFFFFFh ; DATA XREF: .text:00401357r ; .text:loc_401370r sub_4013B0+10r ; sub_4013B0:loc_4013E0r dword_4018C4 dd 4018B0h ; DATA XREF: .text:loc_40138Ar ; .text:00401397r ; sub_4013B0:loc_4013FAr ; sub_4013B0+57r dd 0 dd 0FFFFFFFFh, 4Ch dup(0) _text ends ; Section 2. (virtual address 00002000) ; Virtual size : 00000040 ( 64.) ; Section size in file : 00000200 ( 512.) ; Offset to raw data for section: 00000E00 ; 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 402000h dword_402000 dd 0FFFFFFFFh ; DATA XREF: sub_401100+31r db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0 dword_402010 dd 4000h ; DATA XREF: sub_401100+58w ; sub_401100+B5r db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0 dword_402020 dd 4018D0h ; DATA XREF: sub_401310+6r ; sub_401310+22r sub_401310+2Ew db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0 dword_402030 dd 0 ; DATA XREF: .text:004015E5r dword_402034 dd 0FFFFFFFFh ; DATA XREF: .text:004015EDr dword_402038 dd 0 ; DATA XREF: .text:0040160Er dword_40203C dd 0FFFFFFFFh ; DATA XREF: .text:00401608r align 200h _data ends ; Section 3. (virtual address 00003000) ; Virtual size : 000000F0 ( 240.) ; Section size in file : 00000200 ( 512.) ; Offset to raw data for section: 00001000 ; Flags 40000040: Data Readable ; Alignment : default ; ÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ ; Segment type: Pure data ; Segment permissions: Read _rdata segment para public 'DATA' use32 assume cs:_rdata ;org 403000h aHelloWorld db 'Hello world!',0Ah,0 ; DATA XREF: main+2Ao align 10h dword_403010 dd 42494C2Dh ; DATA XREF: .text:004014F5r ; .text:00401639r dword_403014 dd 57434347h ; DATA XREF: .text:0040150Er ; .text:00401644r dword_403018 dd 452D3233h ; DATA XREF: .text:00401524r ; .text:0040164Fr dword_40301C dd 2D322D48h ; DATA XREF: .text:0040153Ar ; .text:0040165Ar dword_403020 dd 4A4C4A53h ; DATA XREF: .text:00401549r ; .text:00401665r dword_403024 dd 4854472Dh ; DATA XREF: .text:00401551r ; .text:00401670r dword_403028 dd 494D2D52h ; DATA XREF: .text:00401559r ; .text:0040167Br dword_40302C dd 3357474Eh ; DATA XREF: .text:00401561r ; .text:00401683r word_403030 dw 32h ; DATA XREF: .text:00401569r ; .text:0040168Br align 4 aW32_sharedptrSizeSizeofW32_eh_shared db 'w32_sharedptr->size == sizeof(W32_EH_SHARED)',0 ; DATA XREF: sub_401430:loc_401487o aSUFailedAssertionS db '%s:%u: failed assertion `%s',27h,0Ah,0 ; DATA XREF: sub_401430:loc_401499o align 10h a____GccGccConfigI386W32SharedPtr_c db '../../gcc/gcc/config/i386/w32-shared-ptr.c',0 ; DATA XREF: sub_401430+70o align 4 aGetatomnameaAtomSSizeofS0 db 'GetAtomNameA (atom, s, sizeof(s)) != 0',0 ; DATA XREF: sub_401430:loc_4014AEo db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0 unk_4030F0 db 0 ; DATA XREF: sub_4012D0+1o ; sub_4012D0:loc_4012EEo db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0 _rdata ends ; Section 4. (virtual address 00004000) ; Virtual size : 000000B0 ( 176.) ; Section size in file : 00000000 ( 0.) ; Offset to raw data for section: 00000000 ; Flags C0000080: Bss Readable Writable ; Alignment : default ; ÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ ; Segment type: Uninitialized ; Segment permissions: Read/Write _bss segment para public 'BSS' use32 assume cs:_bss ;org 404000h assume es:nothing, ss:nothing, ds:_data, fs:nothing, gs:nothing dword_404000 dd ? ; DATA XREF: sub_401100+25o ; sub_401100+D0r dword_404004 dd ? ; DATA XREF: sub_401100+43o ; sub_401100+DAr db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; dword_404010 dd ? ; DATA XREF: sub_401100+4Fr ; sub_401100+70r sub_401100+95r db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; dword_404020 dd ? ; DATA XREF: sub_4013B0+7r ; sub_4013B0+1Aw db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; dword_404040 dd ? ; DATA XREF: .text:004015CAr dword_404044 dd ? ; DATA XREF: .text:004015D5r db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; dword_404050 dd ? ; DATA XREF: .text:004015F6r db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; dword_404060 dd ? ; DATA XREF: .text:004016DCw db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; dword_404070 dd ? ; DATA XREF: sub_401420+1r ; .text:004014DCr .text:loc_4016D3w db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; dword_404080 dd ? ; DATA XREF: .text:004016E4w db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; db ? ; _bss ends ; ; Imports from KERNEL32 ; ; Section 5. (virtual address 00005000) ; Virtual size : 00000294 ( 660.) ; Section size in file : 00000400 ( 1024.) ; Offset to raw data for section: 00001200 ; Flags C0000040: Data Readable Writable ; Alignment : default ; ÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ ; Segment type: Externs ; _idata ; ATOM __stdcall AddAtomA(LPCSTR lpString) extrn AddAtomA:dword ; DATA XREF: .text:0040169Fr ; .text:004018A0r ; void __stdcall __imp_ExitProcess(UINT uExitCode) extrn __imp_ExitProcess:dword ; DATA XREF: ExitProcessr ; ATOM __stdcall FindAtomA(LPCSTR lpString) extrn FindAtomA:dword ; DATA XREF: .text:00401577r ; .text:004016C0r .text:00401890r ; UINT __stdcall GetAtomNameA(ATOM nAtom,LPSTR lpBuffer,int nSize) extrn GetAtomNameA:dword ; DATA XREF: sub_401430+1Fr ; .text:00401880r ; LPTOP_LEVEL_EXCEPTION_FILTER __stdcall __imp_SetUnhandledExceptionFilter(LPTOP_LEVEL_EXCEPTION_FILTER lpTopLevelExceptionFilter) extrn __imp_SetUnhandledExceptionFilter:dword ; DATA XREF: SetUnhandledExceptionFilterr ; ; Imports from msvcrt ; extrn __imp___getmainargs:dword ; DATA XREF: __getmainargsr extrn __imp___p__environ:dword ; DATA XREF: __p__environr extrn __imp___p__fmode:dword ; DATA XREF: __p__fmoder extrn __set_app_type:dword ; DATA XREF: start+Dr start+2Dr ; sub_401740+50r ; void _imp__cexit(void) extrn __imp__cexit:dword ; DATA XREF: _cexitr ; FILE iob[] extrn _iob:dword ; DATA XREF: sub_401100+5Dr ; sub_401100+79r sub_401100+8Ar ; sub_401100+9Fr sub_401100+FAr ; sub_401100+10Br sub_401740+22r ; sub_401740+32r ; _onexit_t __cdecl onexit(_onexit_t) extrn _onexit:dword ; DATA XREF: .text:00401271r ; int __cdecl _imp__setmode(int,int) extrn __imp__setmode:dword ; DATA XREF: _setmoder ; void _imp_abort(void) extrn __imp_abort:dword ; DATA XREF: abortr ; int __cdecl atexit(void (*)(void)) extrn atexit:dword ; DATA XREF: sub_401260+1r ; int __cdecl _imp_fflush(FILE *) extrn __imp_fflush:dword ; DATA XREF: fflushr ; int _imp_fprintf(FILE *,const char *,...) extrn __imp_fprintf:dword ; DATA XREF: fprintfr ; void __cdecl _imp_free(void *) extrn __imp_free:dword ; DATA XREF: freer ; void *__cdecl _imp_malloc(size_t) extrn __imp_malloc:dword ; DATA XREF: mallocr ; int _imp_printf(const char *,...) extrn __imp_printf:dword ; DATA XREF: printfr ; void __cdecl (*__cdecl _imp_signal(int,void __cdecl (*)(int)))(int) extrn __imp_signal:dword ; DATA XREF: signalr end start