; ; +-------------------------------------------------------------------------+ ; | This file is generated by The Interactive Disassembler (IDA) | ; | Copyright (c) 2007 by DataRescue sa/nv, <ida@datarescue.com> | ; | Licensed to: SRI, 1 computer, std, 05/2007 | ; +-------------------------------------------------------------------------+ ; ; ; +-------------------------------------------------------------------------+ ; | This file is generated by The Interactive Disassembler (IDA) | ; | Copyright (c) 2007 by DataRescue sa/nv, <ida@datarescue.com> | ; | Licensed to: SRI, 1 computer, std, 05/2007 | ; +-------------------------------------------------------------------------+ ; ; Input MD5 : 3D4D3708FC74D4A8FA7EDC4E8165643D ; File Name : u:\work\3d4d3708fc74d4a8fa7edc4e8165643d_unpacked.exe ; Format : Portable executable for 80386 (PE) ; Imagebase : 400000 ; Section 1. (virtual address 00001000) ; Virtual size : 00002F08 ( 12040.) ; Section size in file : 00002F08 ( 12040.) ; Offset to raw data for section: 00001000 ; Flags E0000020: Text Executable Readable Writable ; Alignment : default .686p .mmx .model flat ; =========================================================================== ; Segment type: Pure code ; Segment permissions: Read/Write/Execute seg000 segment para public 'CODE' use32 assume cs:seg000 ;org 401000h assume es:nothing, ss:nothing, ds:seg000, fs:nothing, gs:nothing ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_401000 proc near ; CODE XREF: sub_40352E+13Ap arg_0 = dword ptr 8 arg_8 = dword ptr 10h push ebp mov ebp, esp sub esp, 4 mov ebx, dword_403200 mov dword ptr [ebx+69Ah], 0 xor cl, 9 loc_401019: ; CODE XREF: sub_401000+54j sub dl, 58h mov eax, [ebp+arg_8] cmp [ebx+69Ah], eax jl short loc_40102C and cl, 24h jmp short locret_401056 ; --------------------------------------------------------------------------- loc_40102C: ; CODE XREF: sub_401000+25j mov esi, [ebp+arg_0] add esi, [ebx+69Ah] mov byte ptr [esi], 0 mov eax, [ebx+69Ah] mov [ebx+100h], eax xor ch, 87h and dl, 7Ch add dword ptr [ebx+69Ah], 1 or cl, 0FEh jmp short loc_401019 ; --------------------------------------------------------------------------- locret_401056: ; CODE XREF: sub_401000+2Aj leave retn 0Ch sub_401000 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40105A proc near ; CODE XREF: sub_40352E+1D3p arg_0 = dword ptr 8 push ebp mov ebp, esp sub esp, 4 mov ebx, dword_403200 mov dword ptr [ebx+623h], 0 loc_401070: ; CODE XREF: sub_40105A+3Dj mov esi, [ebp+arg_0] cmp byte ptr [esi], 0 jnz short loc_40107A jmp short loc_401099 ; --------------------------------------------------------------------------- loc_40107A: ; CODE XREF: sub_40105A+1Cj add [ebp+arg_0], 1 mov eax, [ebx+623h] mov [ebx+5D1h], eax and cl, 57h add dword ptr [ebx+623h], 1 add dh, 2Fh jmp short loc_401070 ; --------------------------------------------------------------------------- loc_401099: ; CODE XREF: sub_40105A+1Ej mov eax, [ebx+623h] jmp short $+2 leave retn 4 sub_40105A endp ; --------------------------------------------------------------------------- push ebp mov ebp, esp sub esp, 14h mov ebx, dword_403200 mov dword ptr [ebx+1C0h], 0 mov edi, [ebp+10h] add edi, 20h add ah, 22h mov eax, [edi] mov [ebx+0A6h], eax sub dl, 0F4h xor dh, 0FFh mov edi, [ebp+10h] add edi, 3Ch mov eax, [edi] mov [ebx+794h], eax xor eax, eax xor edx, edx mov ch, 49h sub ch, 2Ch xor ecx, ecx mov eax, [ebx+794h] mov ecx, [ebx+0A6h] div ecx mov [ebx+794h], edx mov ch, 0B6h cmp dword ptr [ebx+794h], 0 jz short loc_40110C jmp short loc_40111F ; --------------------------------------------------------------------------- loc_40110C: ; CODE XREF: seg000:00401108j mov edi, [ebp+10h] add edi, 3Ch mov eax, [edi] add [ebx+1C0h], eax jmp loc_4011B4 ; --------------------------------------------------------------------------- loc_40111F: ; CODE XREF: seg000:0040110Aj mov edi, [ebp+10h] add edi, 3Ch and al, 28h mov eax, [edi] mov [ebx+778h], eax xor eax, eax and dh, 0F8h and dh, 51h xor edx, edx add ch, 50h or cl, 19h xor ecx, ecx mov eax, [ebx+778h] mov ecx, [ebx+0A6h] div ecx mov [ebx+778h], eax mov eax, [ebx+778h] mov [ebx+471h], eax mov ch, 52h mov eax, [ebx+471h] mov [ebx+5F7h], eax add dword ptr [ebx+471h], 1 mov eax, [ebx+471h] mov [ebx+46Dh], eax xor eax, eax add dl, 45h xor dl, 0CBh xor edx, edx or ch, 2Bh sub cl, 8 xor ecx, ecx mov eax, [ebx+46Dh] mov ecx, [ebx+0A6h] mul ecx mov [ebx+46Dh], eax mov eax, [ebx+46Dh] add [ebx+1C0h], eax loc_4011B4: ; CODE XREF: seg000:0040111Aj mov dword ptr [ebx+6AAh], 0 or ch, 72h and dl, 0C4h loc_4011C4: ; CODE XREF: seg000:004013AAj mov edi, [ebp+0Ch] add edi, 6 mov al, 0D4h xor eax, eax mov ax, [edi] cmp [ebx+6AAh], eax jl short loc_4011E1 or dl, 6 jmp loc_4013AF ; --------------------------------------------------------------------------- loc_4011E1: ; CODE XREF: seg000:004011D7j mov eax, [ebx+6AAh] mov [ebx+161h], eax mov cl, 61h xor eax, eax and dl, 10h xor edx, edx sub ch, 0CEh xor ecx, ecx mov eax, [ebx+161h] mov ecx, 28h mul ecx mov [ebx+161h], eax and dh, 10h mov esi, [ebp+14h] add esi, [ebx+161h] add esi, 8 sub ch, 0F7h cmp dword ptr [esi], 0 jnz short loc_40122A jmp loc_401394 ; --------------------------------------------------------------------------- loc_40122A: ; CODE XREF: seg000:00401223j mov eax, [ebx+6AAh] mov [ebx+60h], eax add dh, 62h xor eax, eax xor cl, 0ECh xor edx, edx or ch, 4Eh and ch, 6Ch xor ecx, ecx mov eax, [ebx+60h] mov ecx, 28h mul ecx mov [ebx+60h], eax mov edi, [ebp+14h] add edi, [ebx+60h] add edi, 8 mov eax, [edi] mov [ebx+0C7h], eax xor eax, eax xor edx, edx mov cl, 2Dh xor ecx, ecx mov eax, [ebx+0C7h] mov ecx, [ebx+0A6h] div ecx mov [ebx+0C7h], edx cmp dword ptr [ebx+0C7h], 0 jz short loc_40128A jmp short loc_4012D7 ; --------------------------------------------------------------------------- loc_40128A: ; CODE XREF: seg000:00401286j mov eax, [ebx+6AAh] mov [ebx+206h], eax sub ch, 27h xor eax, eax sub dh, 0D9h add cl, 3Fh xor edx, edx xor cl, 0E3h xor ecx, ecx mov eax, [ebx+206h] mov ecx, 28h mul ecx mov [ebx+206h], eax mov edi, [ebp+14h] add edi, [ebx+206h] add edi, 8 add dl, 9Ch mov eax, [edi] add [ebx+1C0h], eax jmp loc_401394 ; --------------------------------------------------------------------------- loc_4012D7: ; CODE XREF: seg000:00401288j mov eax, [ebx+6AAh] mov [ebx+0AEh], eax xor eax, eax sub ch, 0B2h xor edx, edx mov ch, 60h or cl, 24h xor ecx, ecx mov eax, [ebx+0AEh] mov ecx, 28h mul ecx mov [ebx+0AEh], eax mov edi, [ebp+14h] add edi, [ebx+0AEh] add edi, 8 mov eax, [edi] mov [ebx+603h], eax and dl, 16h xor eax, eax xor edx, edx xor ch, 6Bh mov ch, 22h xor ecx, ecx mov eax, [ebx+603h] mov ecx, [ebx+0A6h] div ecx mov [ebx+603h], eax mov eax, [ebx+603h] mov [ebx+471h], eax sub ch, 0A2h mov eax, [ebx+471h] mov [ebx+254h], eax add dword ptr [ebx+471h], 1 mov eax, [ebx+471h] mov [ebx+151h], eax xor ch, 0BBh xor eax, eax xor ch, 0DDh xor edx, edx xor ecx, ecx mov eax, [ebx+151h] mov ecx, [ebx+0A6h] mul ecx mov [ebx+151h], eax mov eax, [ebx+151h] add [ebx+1C0h], eax loc_401394: ; CODE XREF: seg000:00401225j ; seg000:004012D2j mov eax, [ebx+6AAh] mov [ebx+0CBh], eax add dword ptr [ebx+6AAh], 1 add cl, 10h jmp loc_4011C4 ; --------------------------------------------------------------------------- loc_4013AF: ; CODE XREF: seg000:004011DCj mov eax, [ebx+1C0h] jmp short $+2 leave retn 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4013BB proc near ; CODE XREF: sub_401A70+69p ; sub_401A70+2ADp ... arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp sub esp, 4 mov ebx, dword_403200 mov eax, [ebp+arg_0] mov [ebx+33Eh], eax xor cl, 73h xor eax, eax xor edx, edx xor ecx, ecx mov eax, [ebx+33Eh] mov ecx, [ebp+arg_4] div ecx mov [ebx+33Eh], edx cmp dword ptr [ebx+33Eh], 0 jz short loc_4013F5 jmp short loc_4013FC ; --------------------------------------------------------------------------- loc_4013F5: ; CODE XREF: sub_4013BB+36j mov eax, [ebp+arg_0] jmp short locret_40146C ; --------------------------------------------------------------------------- jmp short locret_40146C ; --------------------------------------------------------------------------- loc_4013FC: ; CODE XREF: sub_4013BB+38j mov eax, [ebp+arg_0] mov [ebx+20Bh], eax and dh, 0Ah or dl, 17h xor eax, eax add cl, 0CBh xor edx, edx add ch, 46h xor ecx, ecx mov eax, [ebx+20Bh] mov ecx, [ebp+arg_4] div ecx mov [ebx+20Bh], eax mov eax, [ebx+20Bh] mov [ebx+27Ah], eax mov eax, [ebx+27Ah] mov [ebx+392h], eax xor dl, 0F0h add dword ptr [ebx+27Ah], 1 mov eax, [ebx+27Ah] mov [ebx+68h], eax mov ch, 0A0h xor eax, eax xor edx, edx or ch, 5Bh add ch, 57h xor ecx, ecx mov eax, [ebx+68h] mov ecx, [ebp+arg_4] mul ecx mov [ebx+68h], eax locret_40146C: ; CODE XREF: sub_4013BB+3Dj ; sub_4013BB+3Fj leave retn 8 sub_4013BB endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_401470 proc near ; CODE XREF: start+AAp var_64 = dword ptr -64h var_60 = dword ptr -60h var_5C = dword ptr -5Ch var_58 = dword ptr -58h var_54 = dword ptr -54h var_50 = dword ptr -50h var_4C = dword ptr -4Ch arg_0 = dword ptr 8 push ebp mov ebp, esp sub esp, 48h mov ebx, dword_403200 mov dword ptr [ebx+43Fh], 0 add ch, 90h or ch, 0CFh call dword ptr [ebx+607h] mov [ebx+5A1h], eax mov eax, [ebx+5A1h] mov [ebx+21Fh], eax mov dh, 5 cmp dword ptr [ebx+21Fh], 0 jz short loc_4014B1 jmp short loc_4014BB ; --------------------------------------------------------------------------- loc_4014B1: ; CODE XREF: sub_401470+3Dj mov eax, 0 jmp locret_4019D8 ; --------------------------------------------------------------------------- loc_4014BB: ; CODE XREF: sub_401470+3Fj call dword ptr [ebx+37Ah] mov [ebx+104h], eax sub esp, 0Ch or ch, 3Ch mov eax, [ebx+104h] mov [esp+54h+var_54], eax sub ch, 56h xor al, 71h mov [esp+54h+var_50], 0 or dh, 0C9h sub ch, 8Eh mov [esp+54h+var_4C], 400h xor dh, 0E9h call dword ptr [ebx+617h] mov [ebx+0F4h], eax mov eax, [ebx+0F4h] mov [ebx+376h], eax mov eax, [ebx+376h] mov [ebx+1B3h], eax or cl, 9Dh mov esi, [ebx+21Fh] cmp byte ptr [esi], 22h jz short loc_401528 jmp short loc_401591 ; --------------------------------------------------------------------------- loc_401528: ; CODE XREF: sub_401470+B4j mov eax, [ebx+21Fh] mov [ebx+38Eh], eax add dword ptr [ebx+38Eh], 1 mov eax, [ebx+38Eh] mov [ebx+202h], eax loc_401547: ; CODE XREF: sub_401470+11Dj or dl, 0D2h mov esi, [ebx+202h] cmp byte ptr [esi], 0 jnz short loc_401557 jmp short loc_40158F ; --------------------------------------------------------------------------- loc_401557: ; CODE XREF: sub_401470+E3j xor ah, 0F8h mov esi, [ebx+202h] cmp byte ptr [esi], 22h jnz short loc_40156A add cl, 0DEh jmp short loc_40158F ; --------------------------------------------------------------------------- loc_40156A: ; CODE XREF: sub_401470+F3j mov esi, [ebx+1B3h] mov edi, [ebx+202h] mov al, [edi] mov [esi], al xor dl, 70h mov cl, 3Bh add dword ptr [ebx+1B3h], 1 add dword ptr [ebx+202h], 1 jmp short loc_401547 ; --------------------------------------------------------------------------- loc_40158F: ; CODE XREF: sub_401470+E5j ; sub_401470+F8j jmp short loc_4015E9 ; --------------------------------------------------------------------------- loc_401591: ; CODE XREF: sub_401470+B6j mov eax, [ebx+21Fh] mov [ebx+202h], eax and cl, 10h loc_4015A0: ; CODE XREF: sub_401470+177j and dl, 7Eh mov esi, [ebx+202h] cmp byte ptr [esi], 0 jnz short loc_4015B0 jmp short loc_4015E9 ; --------------------------------------------------------------------------- loc_4015B0: ; CODE XREF: sub_401470+13Cj mov esi, [ebx+202h] cmp byte ptr [esi], 20h jnz short loc_4015C3 and ch, 79h and dh, 22h jmp short loc_4015E9 ; --------------------------------------------------------------------------- loc_4015C3: ; CODE XREF: sub_401470+149j mov esi, [ebx+1B3h] mov edi, [ebx+202h] mov al, [edi] mov [esi], al or dl, 0F6h or cl, 8Ah add dword ptr [ebx+1B3h], 1 add dword ptr [ebx+202h], 1 jmp short loc_4015A0 ; --------------------------------------------------------------------------- loc_4015E9: ; CODE XREF: sub_401470:loc_40158Fj ; sub_401470+13Ej ... mov esi, [ebx+1B3h] mov byte ptr [esi], 0 add dh, 0D8h mov esi, [ebx+376h] add esi, 0 cmp byte ptr [esi], 0 jz short loc_401605 jmp short loc_40160F ; --------------------------------------------------------------------------- loc_401605: ; CODE XREF: sub_401470+191j mov eax, 0 jmp locret_4019D8 ; --------------------------------------------------------------------------- loc_40160F: ; CODE XREF: sub_401470+193j sub esp, 1Ch mov eax, [ebx+376h] mov [esp+64h+var_64], eax xor ch, 0F4h and cl, 3Dh mov [esp+64h+var_60], 80000000h mov [esp+64h+var_5C], 1 mov dl, 79h mov dl, 3 mov [esp+64h+var_58], 0 sub cl, 96h mov cl, 27h mov [esp+64h+var_54], 3 xor cl, 15h mov [esp+64h+var_50], 0 mov [esp+64h+var_4C], 0 xor cl, 79h call dword ptr [ebx+264h] mov [ebx+258h], eax mov eax, [ebx+258h] mov [ebx+0Ch], eax mov al, 8Eh cmp dword ptr [ebx+0Ch], 0 jz short loc_40167F jmp short loc_401689 ; --------------------------------------------------------------------------- loc_40167F: ; CODE XREF: sub_401470+20Bj mov eax, 0 jmp locret_4019D8 ; --------------------------------------------------------------------------- loc_401689: ; CODE XREF: sub_401470+20Dj sub esp, 8 mov cl, 4Bh mov eax, [ebx+0Ch] mov [esp+50h+var_50], eax add ah, 1Ch mov [esp+50h+var_4C], 0 call dword ptr [ebx+326h] mov [ebx+32Eh], eax mov eax, [ebx+32Eh] mov [ebx+66Eh], eax or ch, 0E4h call dword ptr [ebx+37Ah] mov [ebx+276h], eax sub esp, 0Ch and ah, 0EDh mov eax, [ebx+276h] mov [esp+54h+var_54], eax mov dl, 59h mov [esp+54h+var_50], 0 sub dl, 82h mov dl, 0BAh mov eax, [ebx+66Eh] mov [esp+54h+var_4C], eax or dl, 40h call dword ptr [ebx+617h] mov [ebx+788h], eax mov eax, [ebx+788h] mov [ebx+169h], eax mov cl, 71h or dh, 0A9h sub esp, 14h mov eax, [ebx+0Ch] mov [esp+5Ch+var_5C], eax mov dh, 0F5h mov eax, [ebx+169h] mov [esp+5Ch+var_58], eax mov cl, 69h mov eax, [ebx+66Eh] mov [esp+5Ch+var_54], eax and ch, 0D8h lea edi, [ebx+31Ah] mov [esp+5Ch+var_50], edi or cl, 22h mov [esp+5Ch+var_4C], 0 or cl, 3Bh call dword ptr [ebx+5B5h] mov [ebx+171h], eax or dh, 0EBh cmp dword ptr [ebx+171h], 0 jz short loc_401764 jmp short loc_40176E ; --------------------------------------------------------------------------- loc_401764: ; CODE XREF: sub_401470+2F0j mov eax, 0 jmp locret_4019D8 ; --------------------------------------------------------------------------- loc_40176E: ; CODE XREF: sub_401470+2F2j sub esp, 4 mov eax, [ebx+0Ch] mov [esp+4Ch+var_4C], eax call dword ptr [ebx+798h] mov [ebx+465h], eax mov eax, [ebx+169h] mov [ebx+202h], eax mov eax, [ebx+169h] mov [ebx+1E6h], eax add dh, 0E8h xor dl, 82h mov eax, [ebx+66Eh] add [ebx+1E6h], eax mov eax, [ebx+1E6h] mov [ebx+27Eh], eax or dh, 8Dh or cl, 0D0h sub dword ptr [ebx+27Eh], 8 mov eax, [ebx+27Eh] mov [ebx+22Bh], eax loc_4017D2: ; CODE XREF: sub_401470+3EEj mov eax, [ebx+22Bh] cmp [ebx+202h], eax jnz short loc_4017E8 xor dh, 87h sub dl, 48h jmp short loc_401863 ; --------------------------------------------------------------------------- loc_4017E8: ; CODE XREF: sub_401470+36Ej mov esi, [ebx+202h] cmp dword ptr [esi], 41414141h jz short loc_4017F8 jmp short loc_401849 ; --------------------------------------------------------------------------- loc_4017F8: ; CODE XREF: sub_401470+384j mov eax, [ebx+202h] mov [ebx+25h], eax mov cl, 2Ch sub dh, 5Fh add dword ptr [ebx+25h], 4 mov eax, [ebx+25h] mov [ebx+1B3h], eax mov esi, [ebx+1B3h] cmp dword ptr [esi], 53524358h jz short loc_401823 jmp short loc_401849 ; --------------------------------------------------------------------------- loc_401823: ; CODE XREF: sub_401470+3AFj mov eax, [ebx+202h] mov [ebx+372h], eax mov dh, 62h or ch, 5 add dword ptr [ebx+372h], 8 mov eax, [ebx+372h] mov [ebx+202h], eax jmp short loc_401863 ; --------------------------------------------------------------------------- loc_401849: ; CODE XREF: sub_401470+386j ; sub_401470+3B1j mov eax, [ebx+202h] mov [ebx+67Ah], eax add dword ptr [ebx+202h], 1 mov cl, 0FCh jmp loc_4017D2 ; --------------------------------------------------------------------------- loc_401863: ; CODE XREF: sub_401470+376j ; sub_401470+3D7j mov eax, [ebp+arg_0] mov [ebx+581h], eax mov eax, [ebx+22Bh] cmp [ebx+202h], eax jl short loc_40187F jmp loc_401986 ; --------------------------------------------------------------------------- loc_40187F: ; CODE XREF: sub_401470+408j mov eax, [ebx+22Bh] mov [ebx+599h], eax mov eax, [ebx+202h] sub [ebx+599h], eax mov eax, [ebx+599h] mov [ebx+64Ah], eax add dword ptr [ebx+64Ah], 8 sub esp, 0Ch mov cl, 25h mov eax, [ebp+arg_0] mov [esp+54h+var_54], eax and cl, 90h mov eax, [ebx+202h] mov [esp+54h+var_50], eax or dl, 11h mov eax, [ebx+64Ah] mov [esp+54h+var_4C], eax or cl, 99h call sub_402E80 mov [ebx+227h], eax mov eax, [ebx+22Bh] mov [ebx+14Dh], eax mov eax, [ebx+202h] sub [ebx+14Dh], eax mov eax, [ebx+14Dh] mov [ebx+579h], eax add cl, 0C4h and cl, 0D7h add dword ptr [ebx+579h], 8 sub esp, 8 add dh, 5Ah mov eax, [ebp+arg_0] mov [esp+50h+var_50], eax xor dh, 0ECh or ch, 78h mov ch, 2Fh mov eax, [ebx+579h] mov [esp+50h+var_4C], eax or dh, 9Ch call sub_4019DC mov [ebx+743h], eax mov eax, [ebx+22Bh] mov [ebx+77Ch], eax and dl, 98h or dl, 0E7h mov eax, [ebx+202h] sub [ebx+77Ch], eax mov eax, [ebx+77Ch] mov [ebx+60Bh], eax add dword ptr [ebx+60Bh], 8 mov esi, [ebp+arg_0] add esi, [ebx+60Bh] mov byte ptr [esi], 0 or ch, 1Fh mov dword ptr [ebx+43Fh], 1 mov dh, 7Ah loc_401986: ; CODE XREF: sub_401470+40Aj call dword ptr [ebx+37Ah] mov [ebx+59Dh], eax sub esp, 0Ch mov eax, [ebx+59Dh] mov [esp+54h+var_54], eax and dh, 0C8h add ch, 75h mov [esp+54h+var_50], 0 sub dl, 0ECh mov cl, 0CDh add ch, 0D1h mov eax, [ebx+169h] mov [esp+54h+var_4C], eax or cl, 6Dh xor cl, 4Dh call dword ptr [ebx+1DEh] mov [ebx+682h], eax mov eax, [ebx+43Fh] jmp short $+2 locret_4019D8: ; CODE XREF: sub_401470+46j ; sub_401470+19Aj ... leave retn 4 sub_401470 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4019DC proc near ; CODE XREF: sub_401470+4BFp ; start+2A7p arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp sub esp, 8 mov ebx, dword_403200 mov byte ptr [ebx+268h], 6Fh add dh, 5Ch and dh, 43h mov dword ptr [ebx+61Fh], 0 and cl, 52h loc_401A02: ; CODE XREF: sub_4019DC+8Ej mov eax, [ebp+arg_4] cmp [ebx+61Fh], eax jl short loc_401A12 and ch, 0E5h jmp short locret_401A6C ; --------------------------------------------------------------------------- loc_401A12: ; CODE XREF: sub_4019DC+2Fj mov edi, [ebp+arg_0] add edi, [ebx+61Fh] mov al, [edi] mov [ebx+1D0h], al or dl, 0 add cl, 0DEh mov al, [ebx+268h] xor [ebx+1D0h], al mov esi, [ebp+arg_0] add esi, [ebx+61Fh] mov al, [ebx+1D0h] mov [esi], al mov cl, 3Eh add byte ptr [ebx+268h], 93h mov eax, [ebx+61Fh] mov [ebx+773h], eax or ch, 6Bh add dword ptr [ebx+61Fh], 1 add cl, 88h mov dh, 87h jmp short loc_401A02 ; --------------------------------------------------------------------------- locret_401A6C: ; CODE XREF: sub_4019DC+34j leave retn 8 sub_4019DC endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_401A70 proc near ; CODE XREF: sub_403CF9+159p var_20 = dword ptr -20h var_1C = dword ptr -1Ch var_18 = dword ptr -18h arg_0 = dword ptr 8 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, 14h mov ebx, dword_403200 mov eax, [ebp+arg_14] mov [ebx+109h], eax mov cl, 0BAh mov ch, 87h sub esp, 0Ch mov eax, [ebx+109h] mov [esp+20h+var_20], eax mov dh, 68h mov eax, [ebp+arg_0] mov [esp+20h+var_1C], eax mov edi, [ebp+arg_C] add edi, 3Ch mov cl, 0CEh mov eax, [edi] mov [esp+20h+var_18], eax call sub_402E80 mov [ebx+790h], eax sub esp, 8 mov edi, [ebp+arg_C] add edi, 3Ch mov eax, [edi] mov [esp+1Ch+var_1C], eax xor ch, 65h mov al, 75h mov edi, [ebp+arg_C] add edi, 20h mov eax, [edi] mov [esp+1Ch+var_18], eax or cl, 3Fh call sub_4013BB mov [ebx+16Dh], eax mov eax, [ebx+16Dh] add [ebx+109h], eax mov dword ptr [ebx+79Ch], 0 add cl, 0D2h or cl, 28h loc_401B00: ; CODE XREF: sub_401A70+348j mov edi, [ebp+arg_8] add edi, 6 mov al, 4Ch xor eax, eax mov ax, [edi] cmp [ebx+79Ch], eax jl short loc_401B20 or dl, 1Fh or dl, 68h jmp loc_401DBD ; --------------------------------------------------------------------------- loc_401B20: ; CODE XREF: sub_401A70+A3j mov eax, [ebx+79Ch] mov [ebx+33Ah], eax mov dl, 0CDh xor eax, eax or cl, 0B2h xor edx, edx xor ecx, ecx mov eax, [ebx+33Ah] mov ecx, 28h mul ecx mov [ebx+33Ah], eax sub dh, 0CAh mov esi, [ebp+arg_10] add esi, [ebx+33Ah] add esi, 10h cmp dword ptr [esi], 0 jg short loc_401B63 jmp loc_401D36 ; --------------------------------------------------------------------------- loc_401B63: ; CODE XREF: sub_401A70+ECj mov eax, [ebx+79Ch] mov [ebx+61Bh], eax sub cl, 0Ch mov dh, 0FDh xor eax, eax and cl, 1 add dl, 4Ch xor edx, edx xor ecx, ecx mov eax, [ebx+61Bh] mov ecx, 28h mul ecx mov [ebx+61Bh], eax mov edi, [ebp+arg_10] add edi, [ebx+61Bh] add edi, 10h or dh, 72h mov eax, [edi] mov [ebx+613h], eax and dl, 87h mov dl, 9Eh mov eax, [ebx+79Ch] mov [ebx+332h], eax mov dl, 12h sub dh, 3Bh xor eax, eax and cl, 0A4h mov ch, 3Fh xor edx, edx or cl, 52h sub ch, 0D5h xor ecx, ecx mov eax, [ebx+332h] mov ecx, 28h mul ecx mov [ebx+332h], eax xor al, 5Fh mov edi, [ebp+arg_10] add edi, [ebx+332h] add edi, 8 mov eax, [edi] cmp [ebx+613h], eax jg short loc_401BFE jmp short loc_401C3F ; --------------------------------------------------------------------------- loc_401BFE: ; CODE XREF: sub_401A70+18Aj mov eax, [ebx+79Ch] mov [ebx+50h], eax sub ch, 6 add dh, 16h xor eax, eax xor edx, edx mov ch, 0FCh add cl, 0B4h xor ecx, ecx mov eax, [ebx+50h] mov ecx, 28h mul ecx mov [ebx+50h], eax mov edi, [ebp+arg_10] add edi, [ebx+50h] add edi, 8 xor ah, 24h mov eax, [edi] mov [ebx+613h], eax sub dh, 0AFh add cl, 25h loc_401C3F: ; CODE XREF: sub_401A70+18Cj mov eax, [ebx+79Ch] mov [ebx+69Eh], eax mov cl, 0Ch add ch, 0B7h xor eax, eax xor edx, edx and ch, 0D7h xor ecx, ecx mov eax, [ebx+69Eh] mov ecx, 28h mul ecx mov [ebx+69Eh], eax mov eax, [ebp+arg_0] mov [ebx+6A6h], eax or dl, 29h mov edi, [ebp+arg_10] add edi, [ebx+69Eh] add edi, 14h mov eax, [edi] add [ebx+6A6h], eax sub esp, 0Ch add al, 0C6h mov eax, [ebx+109h] mov [esp+20h+var_20], eax sub cl, 0C5h and ch, 0B2h or dh, 0FBh mov eax, [ebx+6A6h] mov [esp+20h+var_1C], eax and dl, 0B1h or dh, 39h xor ah, 3 mov eax, [ebx+613h] mov [esp+20h+var_18], eax add ch, 0DDh call sub_402E80 mov [ebx+4], eax mov eax, [ebx+79Ch] mov [ebx+1E2h], eax xor eax, eax sub dl, 92h xor edx, edx xor ecx, ecx mov eax, [ebx+1E2h] mov ecx, 28h mul ecx mov [ebx+1E2h], eax sub esp, 8 mov dl, 0D1h mov edi, [ebp+arg_10] add edi, [ebx+1E2h] add edi, 8 mov eax, [edi] mov [esp+1Ch+var_1C], eax add dl, 0E5h mov edi, [ebp+arg_C] add edi, 20h mov eax, [edi] mov [esp+1Ch+var_18], eax mov dh, 8 or ch, 87h call sub_4013BB mov [ebx+64Eh], eax mov eax, [ebx+64Eh] add [ebx+109h], eax jmp short loc_401D9C ; --------------------------------------------------------------------------- loc_401D36: ; CODE XREF: sub_401A70+EEj mov eax, [ebx+79Ch] mov [ebx+1EAh], eax xor eax, eax xor edx, edx xor ecx, ecx mov eax, [ebx+1EAh] mov ecx, 28h mul ecx mov [ebx+1EAh], eax sub esp, 8 xor al, 58h mov edi, [ebp+arg_10] add edi, [ebx+1EAh] add edi, 8 mov eax, [edi] mov [esp+1Ch+var_1C], eax mov edi, [ebp+arg_C] add edi, 20h and dl, 59h mov eax, [edi] mov [esp+1Ch+var_18], eax add dh, 80h mov dh, 0AAh call sub_4013BB mov [ebx+32Ah], eax mov eax, [ebx+32Ah] add [ebx+109h], eax loc_401D9C: ; CODE XREF: sub_401A70+2C4j mov eax, [ebx+79Ch] mov [ebx+642h], eax xor dh, 0C8h or ch, 6Eh add dword ptr [ebx+79Ch], 1 sub dh, 0Ah jmp loc_401B00 ; --------------------------------------------------------------------------- loc_401DBD: ; CODE XREF: sub_401A70+ABj mov eax, 1 jmp short $+2 leave retn 18h sub_401A70 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_401DC8 proc near ; CODE XREF: start+2Ap var_44 = dword ptr -44h var_40 = dword ptr -40h push ebp mov ebp, esp sub esp, 3Ch mov ebx, dword_403200 mov byte ptr [ebx+272h], 64h or cl, 38h mov byte ptr [ebx+26Dh], 65h mov byte ptr [ebx+274h], 6Ch add dh, 0FBh mov byte ptr [ebx+275h], 0 mov byte ptr [ebx+271h], 2Eh sub dl, 0B7h sub cl, 0FFh mov byte ptr [ebx+269h], 6Bh sub cl, 3Dh mov byte ptr [ebx+26Ch], 6Eh mov byte ptr [ebx+26Bh], 72h or ch, 19h xor ch, 19h mov byte ptr [ebx+270h], 32h mov byte ptr [ebx+26Eh], 6Ch mov dl, 0BCh mov byte ptr [ebx+26Ah], 65h sub dh, 45h mov byte ptr [ebx+273h], 6Ch xor ch, 0CFh and dh, 74h mov byte ptr [ebx+26Fh], 33h or cl, 0FFh sub esp, 4 add al, 0DBh lea edi, [ebx+269h] mov [esp+40h+var_40], edi and dl, 75h add cl, 47h call dword ptr [ebx+437h] mov [ebx+94h], eax mov eax, [ebx+94h] mov [ebx+22Fh], eax add dh, 0C5h mov byte ptr [ebx+427h], 72h mov cl, 0FAh or ch, 0A7h mov byte ptr [ebx+42Bh], 73h sub dh, 5Bh or ch, 7Eh mov byte ptr [ebx+426h], 50h xor cl, 0D7h xor dh, 4Bh mov byte ptr [ebx+42Ah], 65h add ch, 0C8h or cl, 99h mov byte ptr [ebx+422h], 45h mov byte ptr [ebx+425h], 74h sub dl, 48h xor cl, 0B9h mov byte ptr [ebx+42Dh], 0 add ch, 0CCh mov cl, 1Ah mov byte ptr [ebx+429h], 63h mov byte ptr [ebx+428h], 6Fh or dl, 30h and cl, 0CAh mov byte ptr [ebx+42Ch], 73h or ch, 61h and cl, 73h mov byte ptr [ebx+423h], 78h xor cl, 25h mov dl, 0D3h mov byte ptr [ebx+424h], 69h and cl, 57h sub esp, 8 add dl, 54h mov eax, [ebx+22Fh] mov [esp+44h+var_44], eax or ch, 0BCh lea edi, [ebx+422h] mov [esp+44h+var_40], edi add dh, 0C6h call dword ptr [ebx+1C4h] mov [ebx+58h], eax mov eax, [ebx+58h] mov [ebx+5FFh], eax add dh, 6Ch mov byte ptr [ebx+2Dh], 47h mov byte ptr [ebx+30h], 50h mov ch, 0BCh mov byte ptr [ebx+3Bh], 0 add cl, 28h mov ch, 23h mov byte ptr [ebx+2Eh], 65h mov byte ptr [ebx+2Fh], 74h mov cl, 12h add dh, 15h mov byte ptr [ebx+31h], 72h xor dh, 56h add cl, 19h mov byte ptr [ebx+36h], 73h mov byte ptr [ebx+34h], 65h or dl, 82h mov byte ptr [ebx+35h], 73h and ch, 0FDh mov byte ptr [ebx+39h], 61h add dh, 42h mov byte ptr [ebx+33h], 63h mov byte ptr [ebx+37h], 48h and cl, 0E1h mov byte ptr [ebx+38h], 65h and cl, 0E7h sub cl, 44h mov byte ptr [ebx+32h], 6Fh sub ch, 0CFh sub cl, 0EDh mov byte ptr [ebx+3Ah], 70h mov cl, 1Bh sub esp, 8 add cl, 0E0h mov eax, [ebx+22Fh] mov [esp+44h+var_44], eax xor cl, 5Bh or cl, 0BBh lea edi, [ebx+2Dh] mov [esp+44h+var_40], edi call dword ptr [ebx+1C4h] mov [ebx+54h], eax mov eax, [ebx+54h] mov [ebx+37Ah], eax add dl, 0ABh mov byte ptr [ebx+1A2h], 6Ch mov byte ptr [ebx+1A3h], 6Ch or ch, 77h add ch, 66h mov byte ptr [ebx+19Fh], 61h or cl, 3Fh add dl, 2Ah mov byte ptr [ebx+1A5h], 63h mov ch, 4Dh add dl, 0D1h mov byte ptr [ebx+1A0h], 70h mov dl, 1Bh add dl, 26h mov byte ptr [ebx+19Dh], 48h xor dh, 0DAh or cl, 0Fh mov byte ptr [ebx+1A1h], 41h or dh, 0B7h mov byte ptr [ebx+1A6h], 0 mov byte ptr [ebx+1A4h], 6Fh add cl, 12h sub dl, 0A2h mov byte ptr [ebx+19Eh], 65h sub esp, 8 mov eax, [ebx+22Fh] mov [esp+44h+var_44], eax xor dh, 0A3h or dl, 0CFh lea edi, [ebx+19Dh] mov [esp+44h+var_40], edi call dword ptr [ebx+1C4h] mov [ebx+692h], eax mov eax, [ebx+692h] mov [ebx+617h], eax xor dh, 7Fh mov byte ptr [ebx+42Eh], 48h and dh, 0F1h sub ch, 62h mov byte ptr [ebx+434h], 65h add ch, 8Eh or dh, 27h mov byte ptr [ebx+436h], 0 mov byte ptr [ebx+42Fh], 65h mov cl, 0A6h and dh, 0E1h mov byte ptr [ebx+433h], 72h add ch, 26h and dl, 0E7h mov byte ptr [ebx+431h], 70h mov byte ptr [ebx+432h], 46h add ch, 0F2h mov byte ptr [ebx+430h], 61h mov byte ptr [ebx+435h], 65h add dl, 4Ah mov dl, 0D1h sub esp, 8 and cl, 95h mov eax, [ebx+22Fh] mov [esp+44h+var_44], eax sub al, 0A6h lea edi, [ebx+42Eh] mov [esp+44h+var_40], edi or ch, 2Dh or dh, 8Dh call dword ptr [ebx+1C4h] mov [ebx+696h], eax mov eax, [ebx+696h] mov [ebx+1DEh], eax xor dh, 20h mov byte ptr [ebx+367h], 6Ch mov byte ptr [ebx+36Ch], 63h and cl, 0DEh mov byte ptr [ebx+366h], 61h mov ch, 0B4h mov byte ptr [ebx+363h], 72h xor dl, 0C1h add dl, 98h mov byte ptr [ebx+36Bh], 6Fh xor cl, 18h add cl, 0CFh mov byte ptr [ebx+362h], 69h and dh, 24h mov byte ptr [ebx+36Ah], 6Ch add ch, 0CCh mov byte ptr [ebx+36Dh], 0 add dh, 0C1h xor dh, 8Fh mov byte ptr [ebx+365h], 75h or dl, 0EDh mov byte ptr [ebx+369h], 6Ch sub dh, 0A2h or cl, 14h mov byte ptr [ebx+361h], 56h and cl, 0C5h sub cl, 0E8h mov byte ptr [ebx+364h], 74h mov byte ptr [ebx+368h], 41h add cl, 51h sub esp, 8 mov eax, [ebx+22Fh] mov [esp+44h+var_44], eax or dl, 39h lea edi, [ebx+361h] mov [esp+44h+var_40], edi add cl, 0D3h sub dl, 50h call dword ptr [ebx+1C4h] mov [ebx+30Ah], eax mov eax, [ebx+30Ah] mov [ebx+1F6h], eax mov byte ptr [ebx+5F1h], 53h and cl, 0C5h mov byte ptr [ebx+5F5h], 70h mov byte ptr [ebx+5F6h], 0 sub cl, 99h mov byte ptr [ebx+5F2h], 6Ch add dh, 2Eh mov byte ptr [ebx+5F3h], 65h sub ch, 0C3h mov byte ptr [ebx+5F4h], 65h sub esp, 8 mov eax, [ebx+22Fh] mov [esp+44h+var_44], eax xor ch, 53h lea edi, [ebx+5F1h] mov [esp+44h+var_40], edi call dword ptr [ebx+1C4h] mov [ebx+60Fh], eax mov eax, [ebx+60Fh] mov [ebx+6BFh], eax and dh, 24h and dl, 8Bh mov byte ptr [ebx+662h], 43h mov byte ptr [ebx+664h], 65h mov dl, 0Eh mov byte ptr [ebx+66Dh], 0 add dh, 0ECh mov ch, 0C2h mov byte ptr [ebx+66Bh], 65h mov dl, 8Dh mov byte ptr [ebx+665h], 61h mov dl, 14h mov byte ptr [ebx+666h], 74h mov byte ptr [ebx+66Ch], 41h mov byte ptr [ebx+669h], 69h and cl, 0AEh and ch, 87h mov byte ptr [ebx+667h], 65h mov byte ptr [ebx+668h], 46h mov dl, 0B5h mov byte ptr [ebx+66Ah], 6Ch or cl, 0F8h mov byte ptr [ebx+663h], 72h or dl, 0BDh xor cl, 76h sub esp, 8 mov eax, [ebx+22Fh] mov [esp+44h+var_44], eax or ch, 0E4h or ch, 9Eh lea edi, [ebx+662h] mov [esp+44h+var_40], edi and ch, 6Ah xor dl, 3Dh call dword ptr [ebx+1C4h] mov [ebx+74Fh], eax mov eax, [ebx+74Fh] mov [ebx+264h], eax mov dh, 92h and dh, 0DBh mov byte ptr [ebx+1DCh], 65h xor ch, 0D1h mov byte ptr [ebx+1D8h], 64h xor dl, 81h mov byte ptr [ebx+1D9h], 46h add dh, 32h mov byte ptr [ebx+1D5h], 52h mov cl, 3Ah mov byte ptr [ebx+1DDh], 0 mov dh, 1Ch xor dh, 6Ah mov byte ptr [ebx+1D6h], 65h mov byte ptr [ebx+1D7h], 61h mov byte ptr [ebx+1DBh], 6Ch xor dl, 0BEh mov byte ptr [ebx+1DAh], 69h or dl, 8Bh sub esp, 8 mov eax, [ebx+22Fh] mov [esp+44h+var_44], eax or dl, 28h sub dl, 6Ch add cl, 0B3h lea edi, [ebx+1D5h] mov [esp+44h+var_40], edi xor cl, 0FCh call dword ptr [ebx+1C4h] mov [ebx+78Ch], eax mov eax, [ebx+78Ch] mov [ebx+5B5h], eax add ch, 0FCh or dh, 1Bh mov byte ptr [ebx+233h], 43h or cl, 8Eh mov byte ptr [ebx+23Eh], 0 xor dl, 31h and ch, 0Eh mov byte ptr [ebx+23Bh], 64h or cl, 85h mov byte ptr [ebx+237h], 65h xor dl, 0C3h mov byte ptr [ebx+236h], 73h sub dh, 78h mov ch, 57h mov byte ptr [ebx+23Ah], 6Eh or cl, 5Eh add dl, 12h mov byte ptr [ebx+239h], 61h and dl, 0BAh add dh, 50h mov byte ptr [ebx+238h], 48h mov byte ptr [ebx+23Ch], 6Ch sub dl, 64h mov ch, 0BAh mov byte ptr [ebx+23Dh], 65h or ch, 0E2h mov ch, 91h mov byte ptr [ebx+235h], 6Fh mov byte ptr [ebx+234h], 6Ch add dh, 0C3h sub esp, 8 mov eax, [ebx+22Fh] mov [esp+44h+var_44], eax and dl, 0F5h and cl, 76h lea edi, [ebx+233h] mov [esp+44h+var_40], edi sub ch, 25h call dword ptr [ebx+1C4h] mov [ebx+0F8h], eax mov eax, [ebx+0F8h] mov [ebx+798h], eax add dl, 0F1h add dh, 0BEh mov byte ptr [ebx+5ABh], 6Dh and dl, 80h add cl, 0CAh mov byte ptr [ebx+5AEh], 64h sub dl, 6Dh and cl, 93h mov byte ptr [ebx+5A5h], 47h mov byte ptr [ebx+5A7h], 74h mov byte ptr [ebx+5ACh], 61h add ch, 4Fh sub ch, 0C6h mov byte ptr [ebx+5B1h], 6Eh mov byte ptr [ebx+5B4h], 0 or cl, 0BCh mov byte ptr [ebx+5B0h], 69h mov dh, 8Dh mov dl, 0A3h mov byte ptr [ebx+5ADh], 6Eh xor ch, 0D7h and dh, 3Ah mov byte ptr [ebx+5AAh], 6Dh sub cl, 8 mov byte ptr [ebx+5A9h], 6Fh and cl, 96h mov dh, 43h mov byte ptr [ebx+5B3h], 41h mov byte ptr [ebx+5A8h], 43h mov byte ptr [ebx+5B2h], 65h add dl, 7Ah sub dl, 71h mov byte ptr [ebx+5AFh], 4Ch mov byte ptr [ebx+5A6h], 65h xor dl, 0CCh sub esp, 8 and ah, 7Dh mov eax, [ebx+22Fh] mov [esp+44h+var_44], eax and ch, 1Dh and dh, 8Bh xor ah, 21h lea edi, [ebx+5A5h] mov [esp+44h+var_40], edi call dword ptr [ebx+1C4h] mov [ebx+0AAh], eax mov eax, [ebx+0AAh] mov [ebx+607h], eax and dh, 0D6h mov byte ptr [ebx+596h], 7Ah xor dl, 91h xor cl, 89h mov byte ptr [ebx+58Eh], 65h sub cl, 47h and dl, 0FCh mov byte ptr [ebx+593h], 65h sub cl, 60h add dh, 22h mov byte ptr [ebx+591h], 69h or dl, 0C6h mov byte ptr [ebx+590h], 46h mov byte ptr [ebx+595h], 69h add dl, 50h add dh, 0DAh mov byte ptr [ebx+58Fh], 74h mov byte ptr [ebx+58Dh], 47h or cl, 0B0h or dh, 7Eh mov byte ptr [ebx+597h], 65h and cl, 37h sub dh, 0A4h mov byte ptr [ebx+594h], 53h mov byte ptr [ebx+598h], 0 and dh, 0B0h mov byte ptr [ebx+592h], 6Ch sub esp, 8 mov eax, [ebx+22Fh] mov [esp+44h+var_44], eax xor al, 9Bh lea edi, [ebx+58Dh] mov [esp+44h+var_40], edi mov cl, 0D9h call dword ptr [ebx+1C4h] mov [ebx+40h], eax mov eax, [ebx+40h] mov [ebx+326h], eax mov ch, 0A7h xor ch, 34h mov byte ptr [ebx+5C4h], 2Eh and ch, 7Dh sub dl, 0EAh mov byte ptr [ebx+5C0h], 69h mov dh, 6Ah and ch, 0D0h mov byte ptr [ebx+5BEh], 69h mov byte ptr [ebx+5C6h], 6Ch sub dh, 0FEh and dl, 0E4h mov byte ptr [ebx+5C1h], 6Eh mov byte ptr [ebx+5BDh], 77h mov byte ptr [ebx+5C5h], 64h mov byte ptr [ebx+5C2h], 65h mov byte ptr [ebx+5C8h], 0 mov byte ptr [ebx+5BFh], 6Eh mov byte ptr [ebx+5C7h], 6Ch mov byte ptr [ebx+5C3h], 74h sub esp, 4 lea edi, [ebx+5BDh] mov [esp+40h+var_40], edi or dl, 0A5h mov ch, 0D6h call dword ptr [ebx+437h] mov [ebx+179h], eax mov eax, [ebx+179h] mov [ebx+1B7h], eax mov dh, 0FDh sub cl, 26h cmp dword ptr [ebx+1B7h], 0 jnz short loc_402671 jmp locret_402E7E ; --------------------------------------------------------------------------- loc_402671: ; CODE XREF: sub_401DC8+8A2j mov byte ptr [ebx+453h], 49h add dh, 4Fh mov byte ptr [ebx+45Ah], 74h sub ch, 2Eh and dh, 8Dh mov byte ptr [ebx+45Ch], 72h mov byte ptr [ebx+45Bh], 43h xor ch, 42h mov byte ptr [ebx+457h], 72h mov byte ptr [ebx+458h], 6Eh sub dh, 55h xor ch, 0CBh mov byte ptr [ebx+463h], 41h add dh, 0EBh and cl, 3 mov byte ptr [ebx+461h], 72h add dh, 45h mov byte ptr [ebx+462h], 6Ch and dh, 0B8h and dh, 0CAh mov byte ptr [ebx+456h], 65h mov byte ptr [ebx+455h], 74h xor dh, 8Bh mov byte ptr [ebx+464h], 0 mov byte ptr [ebx+45Fh], 6Bh mov byte ptr [ebx+460h], 55h sub dl, 0DEh or dl, 0F8h mov byte ptr [ebx+45Dh], 61h and cl, 9Ch mov byte ptr [ebx+45Eh], 63h sub ch, 0D9h sub cl, 2 mov byte ptr [ebx+454h], 6Eh mov byte ptr [ebx+459h], 65h or dl, 2Ch sub esp, 8 or ch, 0A9h mov eax, [ebx+1B7h] mov [esp+44h+var_44], eax sub dh, 0AFh xor ah, 0E9h lea edi, [ebx+453h] mov [esp+44h+var_40], edi sub dh, 0E5h add dh, 4Ah call dword ptr [ebx+1C4h] mov [ebx+312h], eax mov eax, [ebx+312h] mov [ebx+1FEh], eax sub cl, 7Ah mov dh, 73h mov byte ptr [ebx+0A2h], 65h sub dh, 50h mov byte ptr [ebx+98h], 49h mov ch, 6 mov byte ptr [ebx+9Dh], 6Eh mov byte ptr [ebx+9Ch], 72h xor ch, 0FAh add cl, 29h mov byte ptr [ebx+99h], 6Eh mov byte ptr [ebx+0A3h], 6Eh or ch, 87h mov byte ptr [ebx+9Fh], 74h mov byte ptr [ebx+9Eh], 65h mov byte ptr [ebx+9Ah], 74h xor dh, 7Eh xor dh, 7 mov byte ptr [ebx+0A4h], 41h mov byte ptr [ebx+0A0h], 4Fh mov byte ptr [ebx+0A5h], 0 mov byte ptr [ebx+0A1h], 70h and cl, 7Ch mov byte ptr [ebx+9Bh], 65h add cl, 48h sub esp, 8 mov eax, [ebx+1B7h] mov [esp+44h+var_44], eax and dh, 51h sub dh, 30h lea edi, [ebx+98h] mov [esp+44h+var_40], edi sub dh, 77h call dword ptr [ebx+1C4h] mov [ebx+191h], eax mov eax, [ebx+191h] mov [ebx+75Fh], eax mov byte ptr [ebx+247h], 72h mov dl, 73h add cl, 9Ah mov byte ptr [ebx+24Ah], 74h xor ch, 99h sub ch, 50h mov byte ptr [ebx+251h], 74h mov ch, 68h mov byte ptr [ebx+249h], 65h or dl, 11h mov byte ptr [ebx+246h], 65h mov dh, 0EEh mov dh, 0F5h mov byte ptr [ebx+250h], 63h mov byte ptr [ebx+245h], 74h mov byte ptr [ebx+24Bh], 43h mov cl, 0E4h mov ch, 39h mov byte ptr [ebx+24Eh], 6Eh xor ch, 7Ch mov byte ptr [ebx+248h], 6Eh or cl, 74h add cl, 7Fh mov byte ptr [ebx+243h], 49h or ch, 0C1h sub ch, 0DCh mov byte ptr [ebx+244h], 6Eh mov byte ptr [ebx+253h], 0 or ch, 18h add cl, 0C3h mov byte ptr [ebx+24Fh], 65h and dl, 0Ah or dh, 10h mov byte ptr [ebx+252h], 41h mov byte ptr [ebx+24Dh], 6Eh and dl, 0E6h xor dl, 63h mov byte ptr [ebx+24Ch], 6Fh add dl, 5Eh sub esp, 8 add cl, 93h mov eax, [ebx+1B7h] mov [esp+44h+var_44], eax xor ch, 12h xor al, 4Ah lea edi, [ebx+243h] mov [esp+44h+var_40], edi call dword ptr [ebx+1C4h] mov [ebx+5B9h], eax mov eax, [ebx+5B9h] mov [ebx+0D3h], eax xor dl, 89h mov cl, 0EBh mov byte ptr [ebx+14h], 4Fh mov dh, 6Bh xor dl, 0CEh mov byte ptr [ebx+1Bh], 75h sub cl, 0B7h or dh, 3 mov byte ptr [ebx+10h], 48h sub dh, 87h xor dl, 11h mov byte ptr [ebx+18h], 52h sub dh, 0A1h mov byte ptr [ebx+1Eh], 74h or ch, 0BBh add ch, 0B8h mov byte ptr [ebx+19h], 65h and dl, 37h mov byte ptr [ebx+1Ch], 65h mov byte ptr [ebx+16h], 65h mov byte ptr [ebx+1Fh], 41h mov ch, 44h or dl, 0B0h mov byte ptr [ebx+1Dh], 73h sub dh, 0EEh and cl, 9Dh mov byte ptr [ebx+13h], 70h or dl, 97h mov byte ptr [ebx+15h], 70h mov byte ptr [ebx+11h], 74h sub cl, 0CDh or ch, 8Dh mov byte ptr [ebx+17h], 6Eh sub cl, 0A1h mov byte ptr [ebx+1Ah], 71h mov byte ptr [ebx+12h], 74h mov dh, 8Eh add cl, 0A0h mov byte ptr [ebx+20h], 0 or cl, 58h sub esp, 8 mov eax, [ebx+1B7h] mov [esp+44h+var_44], eax lea edi, [ebx+10h] mov [esp+44h+var_40], edi call dword ptr [ebx+1C4h] mov [ebx+63Eh], eax mov eax, [ebx+63Eh] mov [ebx+382h], eax mov dh, 0ABh xor cl, 41h mov byte ptr [ebx+0BFh], 73h or dl, 90h mov byte ptr [ebx+0B3h], 74h add dl, 90h sub dl, 36h mov byte ptr [ebx+0BBh], 65h mov cl, 23h or dh, 0D6h mov byte ptr [ebx+0B8h], 6Eh mov dl, 57h mov byte ptr [ebx+0BEh], 65h xor dh, 2Bh mov ch, 1Eh mov byte ptr [ebx+0B4h], 74h mov byte ptr [ebx+0BCh], 71h mov byte ptr [ebx+0BAh], 52h mov byte ptr [ebx+0C0h], 74h mov dh, 15h mov byte ptr [ebx+0B2h], 48h xor dl, 9Fh mov cl, 0EAh mov byte ptr [ebx+0B5h], 70h xor ch, 9Bh mov dl, 0D6h mov byte ptr [ebx+0B6h], 53h or ch, 0CBh mov byte ptr [ebx+0C2h], 0 sub cl, 0CDh mov byte ptr [ebx+0C1h], 41h mov byte ptr [ebx+0B7h], 65h mov dl, 8Ch mov byte ptr [ebx+0B9h], 64h or dh, 12h mov byte ptr [ebx+0BDh], 75h or dh, 0C9h sub esp, 8 sub ah, 0E7h mov eax, [ebx+1B7h] mov [esp+44h+var_44], eax or dh, 9Dh lea edi, [ebx+0B2h] mov [esp+44h+var_40], edi call dword ptr [ebx+1C4h] mov [ebx+17Dh], eax mov eax, [ebx+17Dh] mov [ebx+155h], eax mov byte ptr [ebx+638h], 41h add ch, 0AFh add dh, 1Fh mov byte ptr [ebx+636h], 66h xor cl, 67h add dl, 0FEh mov byte ptr [ebx+635h], 6Eh mov dh, 53h mov byte ptr [ebx+62Fh], 51h mov byte ptr [ebx+62Ch], 74h add dh, 52h or dl, 0D2h mov byte ptr [ebx+62Eh], 70h xor dl, 0FEh mov dl, 9Ah mov byte ptr [ebx+632h], 72h mov byte ptr [ebx+631h], 65h mov dh, 5Dh mov byte ptr [ebx+634h], 49h sub cl, 6Ch mov byte ptr [ebx+630h], 75h xor ch, 0BEh mov byte ptr [ebx+639h], 0 mov byte ptr [ebx+633h], 79h or dl, 96h xor ch, 1Bh mov byte ptr [ebx+62Dh], 74h mov byte ptr [ebx+637h], 6Fh mov byte ptr [ebx+62Bh], 48h sub esp, 8 mov eax, [ebx+1B7h] mov [esp+44h+var_44], eax xor ch, 89h and dh, 0C7h and ah, 4Dh lea edi, [ebx+62Bh] mov [esp+44h+var_40], edi mov dl, 98h call dword ptr [ebx+1C4h] mov [ebx+5E1h], eax mov eax, [ebx+5E1h] mov [ebx+447h], eax mov byte ptr [ebx+355h], 74h mov byte ptr [ebx+34Ah], 72h or cl, 7Dh mov byte ptr [ebx+353h], 44h sub cl, 17h sub dh, 36h mov byte ptr [ebx+35Bh], 6Ch mov byte ptr [ebx+35Dh], 62h mov byte ptr [ebx+346h], 49h and ch, 0A6h sub dh, 3Dh mov byte ptr [ebx+348h], 74h xor dh, 0CFh mov cl, 19h mov byte ptr [ebx+34Eh], 51h mov dl, 6 mov byte ptr [ebx+35Ah], 69h xor dl, 0D2h mov byte ptr [ebx+35Ch], 61h xor cl, 0EFh mov ch, 7Dh mov byte ptr [ebx+354h], 61h sub dl, 8Ah or cl, 91h mov byte ptr [ebx+350h], 65h xor dl, 41h mov byte ptr [ebx+357h], 41h mov ch, 32h mov byte ptr [ebx+349h], 65h add dl, 52h or dl, 58h mov byte ptr [ebx+34Dh], 74h or ch, 61h add cl, 30h mov byte ptr [ebx+34Bh], 6Eh add cl, 0D3h mov dh, 74h mov byte ptr [ebx+34Fh], 75h mov byte ptr [ebx+360h], 0 sub dh, 0CAh mov byte ptr [ebx+347h], 6Eh mov byte ptr [ebx+34Ch], 65h mov byte ptr [ebx+351h], 72h and dl, 0D9h mov byte ptr [ebx+35Fh], 65h or dh, 96h mov dh, 6Eh mov byte ptr [ebx+352h], 79h mov byte ptr [ebx+356h], 61h mov ch, 9Ch mov byte ptr [ebx+358h], 76h or dl, 0Ah and cl, 2Fh mov byte ptr [ebx+359h], 61h and cl, 8Bh mov byte ptr [ebx+35Eh], 6Ch sub esp, 8 mov eax, [ebx+1B7h] mov [esp+44h+var_44], eax or ch, 74h xor cl, 0FEh lea edi, [ebx+346h] mov [esp+44h+var_40], edi and dl, 0FFh add dh, 0A5h call dword ptr [ebx+1C4h] mov [ebx+1A7h], eax mov eax, [ebx+1A7h] mov [ebx+8Ch], eax mov byte ptr [ebx+6BBh], 69h xor dh, 42h and cl, 8 mov byte ptr [ebx+6B2h], 72h add dl, 0A0h mov byte ptr [ebx+6BCh], 6Ch mov byte ptr [ebx+6BDh], 65h mov byte ptr [ebx+6AFh], 6Eh xor cl, 70h mov byte ptr [ebx+6B8h], 61h mov dl, 0FCh mov byte ptr [ebx+6B1h], 65h sub dl, 0Bh add cl, 25h mov byte ptr [ebx+6AEh], 49h sub dh, 18h mov byte ptr [ebx+6B0h], 74h mov byte ptr [ebx+6BAh], 46h xor dh, 0E0h and dh, 0E8h mov byte ptr [ebx+6B3h], 6Eh add dl, 75h mov byte ptr [ebx+6B7h], 65h add ch, 3Bh mov byte ptr [ebx+6B6h], 52h and dh, 10h mov byte ptr [ebx+6B5h], 74h or dl, 0F6h mov byte ptr [ebx+6B4h], 65h or dl, 0C1h sub cl, 64h mov byte ptr [ebx+6B9h], 64h and cl, 38h or dh, 0FEh mov byte ptr [ebx+6BEh], 0 xor dh, 9Fh sub esp, 8 mov eax, [ebx+1B7h] mov [esp+44h+var_44], eax sub cl, 0CDh lea edi, [ebx+6AEh] mov [esp+44h+var_40], edi or dh, 42h call dword ptr [ebx+1C4h] mov [ebx+5E9h], eax mov eax, [ebx+5E9h] mov [ebx+31Eh], eax mov byte ptr [ebx+0EAh], 6Fh mov byte ptr [ebx+0E6h], 65h mov byte ptr [ebx+0E1h], 6Eh or dh, 0E8h mov byte ptr [ebx+0E0h], 49h mov byte ptr [ebx+0EFh], 6Eh add ch, 0B6h mov byte ptr [ebx+0F3h], 0 mov dh, 57h xor dh, 0BEh mov byte ptr [ebx+0ECh], 65h or dh, 0DDh mov byte ptr [ebx+0E5h], 6Eh xor ch, 0A1h add ch, 49h mov byte ptr [ebx+0EDh], 48h mov byte ptr [ebx+0EBh], 73h xor dh, 0EAh or dl, 9 mov byte ptr [ebx+0E2h], 74h mov byte ptr [ebx+0E4h], 72h and dh, 67h and dl, 65h mov byte ptr [ebx+0E8h], 43h mov byte ptr [ebx+0F0h], 64h add cl, 8Ah mov cl, 0BEh mov byte ptr [ebx+0EEh], 61h mov byte ptr [ebx+0E7h], 74h add ch, 23h mov byte ptr [ebx+0F2h], 65h mov byte ptr [ebx+0F1h], 6Ch mov byte ptr [ebx+0E3h], 65h mov dl, 0E6h mov byte ptr [ebx+0E9h], 6Ch sub esp, 8 xor ch, 0A4h mov eax, [ebx+1B7h] mov [esp+44h+var_44], eax and ch, 53h add dl, 0A8h lea edi, [ebx+0E0h] mov [esp+44h+var_40], edi xor ch, 6Fh sub dh, 21h call dword ptr [ebx+1C4h] mov [ebx+41Eh], eax mov eax, [ebx+41Eh] mov [ebx+767h], eax add cl, 94h and cl, 37h locret_402E7E: ; CODE XREF: sub_401DC8+8A4j leave retn sub_401DC8 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_402E80 proc near ; CODE XREF: sub_401470+462p ; sub_401A70+3Cp ... arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h push ebp mov ebp, esp sub esp, 4 mov ebx, dword_403200 mov dword ptr [ebx+316h], 0 mov dl, 0F7h sub dh, 17h loc_402E9B: ; CODE XREF: sub_402E80+60j sub ah, 38h mov eax, [ebp+arg_8] cmp [ebx+316h], eax jl short loc_402EB1 sub dl, 0E6h add cl, 32h jmp short locret_402EE2 ; --------------------------------------------------------------------------- loc_402EB1: ; CODE XREF: sub_402E80+27j mov esi, [ebp+arg_0] add esi, [ebx+316h] mov edi, [ebp+arg_4] add edi, [ebx+316h] mov al, [edi] mov [esi], al xor dl, 0A7h mov eax, [ebx+316h] mov [ebx+5FBh], eax add dword ptr [ebx+316h], 1 and dh, 0E5h jmp short loc_402E9B ; --------------------------------------------------------------------------- locret_402EE2: ; CODE XREF: sub_402E80+2Fj leave retn 0Ch sub_402E80 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_402EE6 proc near ; CODE XREF: sub_403CF9+181p var_30 = dword ptr -30h var_2C = dword ptr -2Ch arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp sub esp, 28h mov ebx, dword_403200 mov eax, [ebp+arg_0] mov [ebx+0D7h], eax add ch, 23h and dl, 55h mov esi, [ebx+0D7h] add esi, 0 cmp word ptr [esi], 5A4Dh jnz short loc_402F13 jmp short loc_402F1D ; --------------------------------------------------------------------------- loc_402F13: ; CODE XREF: sub_402EE6+29j mov eax, 0 jmp locret_40318D ; --------------------------------------------------------------------------- loc_402F1D: ; CODE XREF: sub_402EE6+2Bj mov eax, [ebx+0D7h] mov [ebx], eax mov edi, [ebx+0D7h] add edi, 3Ch and ch, 1Fh mov eax, [edi] add [ebx], eax mov eax, [ebx] mov [ebx+575h], eax mov esi, [ebx+575h] add esi, 0 cmp dword ptr [esi], 4550h jnz short loc_402F50 jmp short loc_402F5A ; --------------------------------------------------------------------------- loc_402F50: ; CODE XREF: sub_402EE6+66j mov eax, 0 jmp locret_40318D ; --------------------------------------------------------------------------- loc_402F5A: ; CODE XREF: sub_402EE6+68j mov edi, [ebx+575h] add edi, 18h add edi, 60h add edi, 8 mov [ebx+23Fh], edi mov esi, [ebx+23Fh] add esi, 0 cmp dword ptr [esi], 0 jz short loc_402F7F jmp short loc_402F89 ; --------------------------------------------------------------------------- loc_402F7F: ; CODE XREF: sub_402EE6+95j mov eax, 0 jmp locret_40318D ; --------------------------------------------------------------------------- loc_402F89: ; CODE XREF: sub_402EE6+97j mov eax, [ebp+arg_0] mov [ebx+336h], eax and ch, 0D3h xor dh, 0B2h mov edi, [ebx+23Fh] add edi, 0 and dl, 0E4h mov eax, [edi] add [ebx+336h], eax mov eax, [ebx+336h] mov [ebx+165h], eax mov esi, [ebx+165h] add esi, 4 mov eax, [ebp+arg_0] mov [esi], eax add cl, 94h mov edi, [ebp+arg_4] add edi, 10h mov eax, [edi] mov [ebx+784h], eax mov dl, 0F8h mov eax, [ebp+arg_0] add [ebx+784h], eax mov esi, [ebx+165h] add esi, 8 mov al, 10h mov eax, [ebx+784h] mov [esi], eax sub cl, 0F5h add cl, 8Ch loc_402FFB: ; CODE XREF: sub_402EE6+29Bj mov al, 0FAh mov esi, [ebx+165h] add esi, 10h cmp dword ptr [esi], 0 jnz short loc_403016 or dl, 4Fh and cl, 0BAh jmp loc_403186 ; --------------------------------------------------------------------------- loc_403016: ; CODE XREF: sub_402EE6+123j mov eax, [ebp+arg_0] mov [ebx+672h], eax and cl, 0E0h mov dh, 56h mov edi, [ebx+165h] add edi, 0Ch and dh, 78h mov eax, [edi] add [ebx+672h], eax mov eax, [ebx+672h] mov [ebx+1CCh], eax and ch, 95h add dl, 9Fh sub esp, 4 mov ch, 0D4h mov eax, [ebx+1CCh] mov [esp+2Ch+var_2C], eax and dl, 7 call dword ptr [ebx+437h] mov [ebx+322h], eax mov eax, [ebx+322h] mov [ebx+38Ah], eax and al, 23h cmp dword ptr [ebx+38Ah], 0 jz short loc_403080 jmp short loc_40308A ; --------------------------------------------------------------------------- loc_403080: ; CODE XREF: sub_402EE6+196j mov eax, 0 jmp locret_40318D ; --------------------------------------------------------------------------- loc_40308A: ; CODE XREF: sub_402EE6+198j mov eax, [ebp+arg_0] mov [ebx+260h], eax mov edi, [ebx+165h] add edi, 10h mov eax, [edi] add [ebx+260h], eax mov eax, [ebx+260h] mov [ebx+1D1h], eax loc_4030B0: ; CODE XREF: sub_402EE6+28Fj mov al, 0C9h mov esi, [ebx+1D1h] cmp dword ptr [esi], 0 jnz short loc_4030C2 jmp loc_40317A ; --------------------------------------------------------------------------- loc_4030C2: ; CODE XREF: sub_402EE6+1D5j mov esi, [ebx+1D1h] cmp dword ptr [esi], 8000000h jl short loc_4030DA sub dh, 8Dh mov ch, 40h jmp loc_40317A ; --------------------------------------------------------------------------- loc_4030DA: ; CODE XREF: sub_402EE6+1E8j mov edi, [ebx+1D1h] mov eax, [edi] mov [ebx+37Eh], eax mov eax, [ebp+arg_0] add [ebx+37Eh], eax mov eax, [ebx+37Eh] mov [ebx+217h], eax or dh, 56h add dword ptr [ebx+217h], 2 mov eax, [ebx+217h] mov [ebx+5DDh], eax sub esp, 8 add ah, 0D6h mov eax, [ebx+38Ah] mov [esp+30h+var_30], eax add dl, 0D6h or ah, 9Dh mov eax, [ebx+5DDh] mov [esp+30h+var_2C], eax add dh, 98h mov dh, 8Fh call dword ptr [ebx+1C4h] mov [ebx+175h], eax mov eax, [ebx+175h] mov [ebx+64h], eax mov dl, 4 cmp dword ptr [ebx+64h], 0 jz short loc_403156 jmp short loc_40315D ; --------------------------------------------------------------------------- loc_403156: ; CODE XREF: sub_402EE6+26Cj mov eax, 0 jmp short locret_40318D ; --------------------------------------------------------------------------- loc_40315D: ; CODE XREF: sub_402EE6+26Ej mov esi, [ebx+1D1h] mov eax, [ebx+64h] mov [esi], eax add dword ptr [ebx+1D1h], 4 xor cl, 2Eh add dl, 9Ch jmp loc_4030B0 ; --------------------------------------------------------------------------- loc_40317A: ; CODE XREF: sub_402EE6+1D7j ; sub_402EE6+1EFj add dword ptr [ebx+165h], 14h jmp loc_402FFB ; --------------------------------------------------------------------------- loc_403186: ; CODE XREF: sub_402EE6+12Bj mov eax, 1 jmp short $+2 locret_40318D: ; CODE XREF: sub_402EE6+32j ; sub_402EE6+6Fj ... leave retn 8 sub_402EE6 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_403191 proc near ; CODE XREF: start+1D0p arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp sub esp, 4 mov ebx, dword_403200 mov dword ptr [ebx+65Eh], 0 loc_4031A7: ; CODE XREF: sub_403191+5Aj sub cl, 93h mov esi, [ebp+arg_4] add esi, [ebx+65Eh] cmp byte ptr [esi], 0 jnz short loc_4031BF sub ch, 36h mov dl, 67h jmp short loc_4031ED ; --------------------------------------------------------------------------- loc_4031BF: ; CODE XREF: sub_403191+25j mov esi, [ebp+arg_0] add esi, [ebx+65Eh] mov edi, [ebp+arg_4] add edi, [ebx+65Eh] mov al, [edi] mov [esi], al mov eax, [ebx+65Eh] mov [ebx+189h], eax add dword ptr [ebx+65Eh], 1 or cl, 27h jmp short loc_4031A7 ; --------------------------------------------------------------------------- loc_4031ED: ; CODE XREF: sub_403191+2Cj mov esi, [ebp+arg_0] add esi, [ebx+65Eh] mov byte ptr [esi], 0 xor dl, 0A9h leave retn 8 sub_403191 endp ; --------------------------------------------------------------------------- dword_403200 dd 6F7F8h ; DATA XREF: sub_401000+6r ; sub_40105A+6r ... ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame public start start proc near var_7D8 = dword ptr -7D8h var_7D4 = dword ptr -7D4h var_7D0 = dword ptr -7D0h var_7CC = dword ptr -7CCh var_44 = dword ptr -44h var_40 = dword ptr -40h var_3C = dword ptr -3Ch var_38 = dword ptr -38h var_34 = dword ptr -34h var_30 = dword ptr -30h var_2C = dword ptr -2Ch 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, 28h sub esp, 7A0h mov ebx, esp mov dword_403200, esp mov eax, ds:dword_404037 mov [ebx+437h], eax mov eax, ds:dword_40403B mov [ebx+1C4h], eax call sub_401DC8 mov [ebx+195h], eax mov dword ptr [ebx+20Fh], 100000h mov dword ptr [ebx+5D9h], 300000h and ch, 0B3h sub esp, 10h mov [esp+7D8h+var_7D8], 6000000h add ch, 73h mov ah, 18h mov [esp+7D8h+var_7D4], 300000h and dh, 53h add ch, 0EFh mov al, 1Fh mov [esp+7D8h+var_7D0], 3000h sub dl, 8Eh mov [esp+7D8h+var_7CC], 40h mov cl, 0F4h call dword ptr [ebx+1F6h] mov [ebx+1ABh], eax mov eax, [ebx+1ABh] mov [ebx+5CDh], eax sub esp, 4 lea eax, [ebx+475h] mov [esp+2Ch+var_2C], eax and cl, 0B2h xor ch, 0D9h call sub_401470 mov [ebx+1EEh], eax cmp dword ptr [ebx+1EEh], 0 jz short loc_4032C7 jmp loc_4033DF ; --------------------------------------------------------------------------- loc_4032C7: ; CODE XREF: start+BCj mov byte ptr [ebx+77h], 31h sub dh, 24h mov byte ptr [ebx+89h], 78h mov byte ptr [ebx+7Bh], 31h sub cl, 8Eh mov byte ptr [ebx+7Ah], 2Eh mov byte ptr [ebx+73h], 31h xor dh, 0D1h mov byte ptr [ebx+7Eh], 2Fh add ch, 0FEh mov byte ptr [ebx+8Ah], 65h and cl, 6Bh mov byte ptr [ebx+75h], 32h add cl, 0C2h or ch, 0BDh mov byte ptr [ebx+80h], 68h sub cl, 13h xor dl, 1Ch mov byte ptr [ebx+72h], 2Fh mov byte ptr [ebx+86h], 65h sub dl, 77h mov byte ptr [ebx+81h], 70h or dl, 28h mov byte ptr [ebx+7Dh], 33h mov byte ptr [ebx+79h], 38h mov dh, 85h sub ch, 25h mov byte ptr [ebx+74h], 39h xor ch, 5Ch mov dh, 0EEh mov byte ptr [ebx+70h], 3Ah or dh, 6Ch mov byte ptr [ebx+6Dh], 74h xor dh, 0CEh mov byte ptr [ebx+84h], 69h mov byte ptr [ebx+85h], 6Ch xor ch, 58h and dl, 64h mov byte ptr [ebx+82h], 2Fh sub dl, 67h mov byte ptr [ebx+8Bh], 0 mov byte ptr [ebx+7Fh], 70h mov byte ptr [ebx+6Ch], 68h sub cl, 87h mov byte ptr [ebx+78h], 36h mov byte ptr [ebx+76h], 2Eh mov byte ptr [ebx+71h], 2Fh mov byte ptr [ebx+88h], 65h mov byte ptr [ebx+6Fh], 70h add ch, 76h or dh, 0CAh mov byte ptr [ebx+87h], 2Eh mov byte ptr [ebx+7Ch], 2Eh add cl, 97h mov byte ptr [ebx+83h], 66h and dh, 32h xor ch, 0ABh mov byte ptr [ebx+6Eh], 74h sub esp, 8 mov cl, 0Dh lea eax, [ebx+475h] mov [esp+30h+var_30], eax or ch, 42h xor al, 7Ah lea edi, [ebx+6Ch] mov [esp+30h+var_2C], edi and dh, 0CDh call sub_403191 mov [ebx+18Dh], eax loc_4033DF: ; CODE XREF: start+BEj sub esp, 8 mov dl, 98h lea eax, [ebx+475h] mov [esp+30h+var_30], eax mov dl, 2Fh mov dl, 3Dh lea edi, [ebx+76Bh] mov [esp+30h+var_2C], edi xor cl, 0D0h add dh, 73h call sub_40352E mov [ebx+747h], eax mov eax, [ebx+747h] mov [ebx+627h], eax mov eax, [ebx+627h] mov [ebx+1C8h], eax add cl, 0F1h mov dl, 0EEh cmp dword ptr [ebx+1C8h], 0 jnz short loc_403437 jmp loc_403511 ; --------------------------------------------------------------------------- loc_403437: ; CODE XREF: start+22Cj mov esi, [ebx+1C8h] cmp dword ptr [esi], 53524358h jz short loc_403447 jmp short loc_4034B6 ; --------------------------------------------------------------------------- loc_403447: ; CODE XREF: start+23Fj mov eax, [ebx+1C8h] mov [ebx+0CFh], eax sub dh, 9Bh add dword ptr [ebx+0CFh], 4 mov eax, [ebx+0CFh] mov [ebx+1C8h], eax or dh, 70h mov eax, [ebx+76Bh] mov [ebx+656h], eax mov ch, 7Ch sub dword ptr [ebx+656h], 4 mov eax, [ebx+656h] mov [ebx+76Bh], eax sub ch, 0DAh sub cl, 0A1h sub esp, 8 mov eax, [ebx+1C8h] mov [esp+30h+var_30], eax sub al, 2Ah mov eax, [ebx+76Bh] mov [esp+30h+var_2C], eax call sub_4019DC mov [ebx+199h], eax loc_4034B6: ; CODE XREF: start+241j sub esp, 1Ch mov ch, 0B9h mov eax, [ebx+1C8h] mov [esp+44h+var_44], eax mov eax, [ebx+5CDh] mov [esp+44h+var_40], eax add ah, 73h mov eax, [ebx+76Bh] mov [esp+44h+var_3C], eax and ch, 3Fh xor ah, 3Fh mov eax, [ebp+arg_0] mov [esp+44h+var_38], eax or al, 46h mov eax, [ebp+arg_4] mov [esp+44h+var_34], eax mov dh, 0BDh mov eax, [ebp+arg_8] mov [esp+44h+var_30], eax mov eax, [ebp+arg_C] mov [esp+44h+var_2C], eax mov ch, 1 add cl, 48h call sub_403CF9 mov [ebx+76Fh], eax loc_403511: ; CODE XREF: start+22Ej sub esp, 4 mov [esp+2Ch+var_2C], 0 or dh, 0ABh mov ch, 0C6h call dword ptr [ebx+5FFh] mov [ebx+15Dh], eax leave retn start endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40352E proc near ; CODE XREF: start+1FDp var_B4 = dword ptr -0B4h var_B0 = dword ptr -0B0h var_AC = dword ptr -0ACh var_A8 = dword ptr -0A8h var_A4 = dword ptr -0A4h var_A0 = dword ptr -0A0h var_9C = dword ptr -9Ch var_98 = dword ptr -98h arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp sub esp, 94h mov ebx, dword_403200 cmp dword ptr [ebx+617h], 0 jz short loc_4035C2 or al, 6Fh cmp dword ptr [ebx+1FEh], 0 jz short loc_4035C2 sub dl, 1Eh cmp dword ptr [ebx+75Fh], 0 jz short loc_4035C2 cmp dword ptr [ebx+0D3h], 0 jz short loc_4035C2 or dl, 4Fh cmp dword ptr [ebx+382h], 0 jz short loc_4035C2 xor ah, 0EDh cmp dword ptr [ebx+37Ah], 0 jz short loc_4035C2 mov dh, 0FCh cmp dword ptr [ebx+155h], 0 jz short loc_4035C2 mov al, 0C5h cmp dword ptr [ebx+447h], 0 jz short loc_4035C2 mov ch, 0BFh cmp dword ptr [ebx+8Ch], 0 jz short loc_4035C2 add ch, 53h cmp dword ptr [ebx+6BFh], 0 jz short loc_4035C2 sub dh, 0B5h cmp dword ptr [ebx+31Eh], 0 jz short loc_4035C2 cmp dword ptr [ebx+767h], 0 jz short loc_4035C2 jmp short loc_4035CC ; --------------------------------------------------------------------------- loc_4035C2: ; CODE XREF: sub_40352E+16j ; sub_40352E+21j ... mov eax, 0 jmp locret_403CF5 ; --------------------------------------------------------------------------- loc_4035CC: ; CODE XREF: sub_40352E+92j lea esi, [ebx+6C3h] add esi, 0 mov byte ptr [esi], 0 add cl, 3Eh lea esi, [ebx+396h] add esi, 0 mov byte ptr [esi], 0 or dl, 12h lea esi, [ebx+286h] add esi, 0 mov byte ptr [esi], 0 mov dword ptr [ebx+585h], 0 mov dword ptr [ebx+25Ch], 0 xor dh, 85h sub dh, 96h mov dword ptr [ebx+90h], 0 mov dword ptr [ebx+6A2h], 0 mov cl, 2Eh mov dword ptr [ebx+589h], 0 mov dword ptr [ebx+306h], 0 mov esi, [ebp+arg_4] mov dword ptr [esi], 0 sub dh, 2Dh sub ch, 41h sub esp, 0Ch and ah, 0F2h lea edi, [ebx+10Dh] mov [esp+0A0h+var_A0], edi mov [esp+0A0h+var_9C], 0 mov [esp+0A0h+var_98], 3Ch call sub_401000 mov [ebx+159h], eax lea esi, [ebx+10Dh] add esi, 0 sub cl, 28h mov dword ptr [esi], 3Ch lea esi, [ebx+10Dh] add esi, 10h lea eax, [ebx+6C3h] mov [esi], eax mov dl, 7Fh sub ch, 0 mov dword ptr [ebx+223h], 7Fh lea esi, [ebx+10Dh] add esi, 14h mov dword ptr [esi], 7Fh xor ch, 13h and dh, 0FBh lea esi, [ebx+10Dh] add esi, 2Ch add dh, 9Ch lea eax, [ebx+396h] mov [esi], eax mov dl, 0A0h xor dh, 8Eh mov dword ptr [ebx+74Bh], 7Fh sub dh, 30h lea esi, [ebx+10Dh] add esi, 30h or ch, 4Dh mov dword ptr [esi], 7Fh or ch, 8Bh sub esp, 4 and ah, 28h mov eax, [ebp+arg_0] mov [esp+98h+var_98], eax call sub_40105A mov [ebx+181h], eax sub esp, 10h mov eax, [ebp+arg_0] mov [esp+0A4h+var_A4], eax xor cl, 78h mov eax, [ebx+181h] mov [esp+0A4h+var_A0], eax mov cl, 76h and dh, 0BCh mov ah, 1 mov [esp+0A4h+var_9C], 0 add dl, 94h and dh, 0A6h add ch, 97h lea edi, [ebx+10Dh] mov [esp+0A4h+var_98], edi mov dl, 90h and ch, 78h call dword ptr [ebx+1FEh] mov [ebx+29h], eax mov ah, 0C0h cmp dword ptr [ebx+29h], 0 jz short loc_40375C jmp short loc_403766 ; --------------------------------------------------------------------------- loc_40375C: ; CODE XREF: sub_40352E+22Aj mov eax, 0 jmp locret_403CF5 ; --------------------------------------------------------------------------- loc_403766: ; CODE XREF: sub_40352E+22Cj mov byte ptr [ebx+777h], 0 sub esp, 14h lea edi, [ebx+777h] mov [esp+0A8h+var_A8], edi sub dl, 3 sub cl, 0C9h sub al, 1 mov [esp+0A8h+var_A4], 0 mov [esp+0A8h+var_A0], 0 or dl, 4Ch or ch, 7Bh mov [esp+0A8h+var_9C], 0 mov ch, 9Eh sub dh, 80h and cl, 0A8h mov [esp+0A8h+var_98], 0 call dword ptr [ebx+75Fh] mov [ebx+149h], eax mov eax, [ebx+149h] mov [ebx+6A2h], eax sub ch, 5Bh add cl, 27h cmp dword ptr [ebx+6A2h], 0 jz short loc_4037D8 jmp short loc_4037E2 ; --------------------------------------------------------------------------- loc_4037D8: ; CODE XREF: sub_40352E+2A6j mov eax, 0 jmp locret_403CF5 ; --------------------------------------------------------------------------- loc_4037E2: ; CODE XREF: sub_40352E+2A8j mov byte ptr [ebx+0DFh], 0 mov ch, 7Eh sub dh, 1 mov byte ptr [ebx+1BBh], 0 add dh, 87h sub esp, 20h mov eax, [ebx+6A2h] mov [esp+0B4h+var_B4], eax lea eax, [ebx+6C3h] mov [esp+0B4h+var_B0], eax and dl, 76h lea edi, [ebx+10Dh] add edi, 18h mov eax, [edi] mov [esp+0B4h+var_AC], eax sub ch, 31h or dl, 6Ch lea edi, [ebx+0DFh] mov [esp+0B4h+var_A8], edi mov cl, 0B2h lea edi, [ebx+1BBh] mov [esp+0B4h+var_A4], edi and dh, 0CDh mov [esp+0B4h+var_A0], 3 add ah, 0D6h mov [esp+0B4h+var_9C], 0 mov [esp+0B4h+var_98], 0 call dword ptr [ebx+0D3h] mov [ebx+68Eh], eax mov eax, [ebx+68Eh] mov [ebx+589h], eax sub dl, 57h xor dh, 6Dh cmp dword ptr [ebx+589h], 0 jz short loc_403883 jmp short loc_40388D ; --------------------------------------------------------------------------- loc_403883: ; CODE XREF: sub_40352E+351j mov eax, 0 jmp locret_403CF5 ; --------------------------------------------------------------------------- loc_40388D: ; CODE XREF: sub_40352E+353j mov byte ptr [ebx+5C9h], 47h sub dh, 79h mov byte ptr [ebx+5CAh], 45h xor dl, 0D9h and cl, 0BFh mov byte ptr [ebx+5CBh], 54h and cl, 0CDh mov byte ptr [ebx+5CCh], 0 mov dh, 66h or cl, 0E8h mov dword ptr [ebx+48h], 84000000h and ch, 0FEh add cl, 0C9h sub esp, 20h or dh, 0C1h mov eax, [ebx+589h] mov [esp+0B4h+var_B4], eax xor dl, 0FBh add dh, 8 lea edi, [ebx+5C9h] mov [esp+0B4h+var_B0], edi lea eax, [ebx+396h] mov [esp+0B4h+var_AC], eax and dl, 9Fh or ch, 0AAh or dh, 0B3h mov [esp+0B4h+var_A8], 0 and dh, 0Bh mov [esp+0B4h+var_A4], 0 mov [esp+0B4h+var_A0], 0 sub cl, 84h mov [esp+0B4h+var_9C], 84000000h sub dh, 0Bh xor cl, 80h mov [esp+0B4h+var_98], 0 sub cl, 0BBh or dl, 0F1h call dword ptr [ebx+382h] mov [ebx+342h], eax mov eax, [ebx+342h] mov [ebx+306h], eax sub cl, 45h xor cl, 7 cmp dword ptr [ebx+306h], 0 jz short loc_40395C jmp short loc_403966 ; --------------------------------------------------------------------------- loc_40395C: ; CODE XREF: sub_40352E+42Aj mov eax, 0 jmp locret_403CF5 ; --------------------------------------------------------------------------- loc_403966: ; CODE XREF: sub_40352E+42Cj sub esp, 14h add al, 8Ah mov eax, [ebx+306h] mov [esp+0A8h+var_A8], eax sub dh, 62h mov [esp+0A8h+var_A4], 0 or dl, 0B8h or ch, 83h mov [esp+0A8h+var_A0], 0 or cl, 4Dh mov cl, 31h mov [esp+0A8h+var_9C], 0 mov [esp+0A8h+var_98], 0 call dword ptr [ebx+155h] mov [ebx+30Eh], eax mov ch, 2Dh cmp dword ptr [ebx+30Eh], 0 jz short loc_4039BB jmp short loc_4039C5 ; --------------------------------------------------------------------------- loc_4039BB: ; CODE XREF: sub_40352E+489j mov eax, 0 jmp locret_403CF5 ; --------------------------------------------------------------------------- loc_4039C5: ; CODE XREF: sub_40352E+48Bj mov dword ptr [ebx+5E5h], 7Eh mov dword ptr [ebx+780h], 7Eh add dh, 1Ch xor dl, 23h sub esp, 14h mov al, 0EEh mov eax, [ebx+306h] mov [esp+0A8h+var_A8], eax sub ch, 76h or cl, 5Dh sub ch, 7 mov [esp+0A8h+var_A4], 5 and dh, 0FEh lea edi, [ebx+286h] mov [esp+0A8h+var_A0], edi sub dh, 7Eh or ah, 0CEh lea edi, [ebx+780h] mov [esp+0A8h+var_9C], edi xor cl, 77h mov [esp+0A8h+var_98], 0 mov dh, 0D3h call dword ptr [ebx+447h] mov [ebx+753h], eax or dh, 1Dh cmp dword ptr [ebx+753h], 0 jz short loc_403A42 jmp short loc_403A4C ; --------------------------------------------------------------------------- loc_403A42: ; CODE XREF: sub_40352E+510j mov eax, 0 jmp locret_403CF5 ; --------------------------------------------------------------------------- loc_403A4C: ; CODE XREF: sub_40352E+512j lea esi, [ebx+286h] add esi, [ebx+780h] mov byte ptr [esi], 0 mov cl, 21h add cl, 0Bh lea edi, [ebx+286h] add edi, 0 mov [ebx+44Fh], edi and ch, 9 and dh, 0F6h loc_403A75: ; CODE XREF: sub_40352E+5A8j mov esi, [ebx+44Fh] cmp byte ptr [esi], 0 jnz short loc_403A82 jmp short loc_403AD8 ; --------------------------------------------------------------------------- loc_403A82: ; CODE XREF: sub_40352E+550j xor eax, eax or dl, 0EBh add cl, 0B4h xor edx, edx mov cl, 65h xor ecx, ecx mov eax, [ebx+585h] mov ecx, 0Ah mul ecx mov [ebx+585h], eax mov edi, [ebx+44Fh] mov al, [edi] mov [ebx+108h], al xor dl, 94h sub byte ptr [ebx+108h], 30h xor eax, eax mov al, [ebx+108h] add [ebx+585h], eax add dword ptr [ebx+44Fh], 1 or dh, 0F5h xor cl, 49h jmp short loc_403A75 ; --------------------------------------------------------------------------- loc_403AD8: ; CODE XREF: sub_40352E+552j call dword ptr [ebx+37Ah] mov [ebx+763h], eax sub esp, 0Ch mov eax, [ebx+763h] mov [esp+0A0h+var_A0], eax xor ch, 4 mov dl, 0A5h or cl, 90h mov [esp+0A0h+var_9C], 0 mov eax, [ebx+585h] mov [esp+0A0h+var_98], eax mov dh, 0D2h and cl, 1Ch call dword ptr [ebx+617h] mov [ebx+416h], eax mov eax, [ebx+416h] mov [ebx+44h], eax add dl, 0Eh cmp dword ptr [ebx+44h], 0 jz short loc_403B2F jmp short loc_403B39 ; --------------------------------------------------------------------------- loc_403B2F: ; CODE XREF: sub_40352E+5FDj mov eax, 0 jmp locret_403CF5 ; --------------------------------------------------------------------------- loc_403B39: ; CODE XREF: sub_40352E+5FFj ; sub_40352E+6A4j ... or al, 4Bh mov eax, [ebx+585h] cmp [ebx+90h], eax jl short loc_403B4E jmp loc_403C88 ; --------------------------------------------------------------------------- loc_403B4E: ; CODE XREF: sub_40352E+619j mov dword ptr [ebx+25Ch], 0 mov dh, 45h sub ch, 0E8h sub esp, 10h xor cl, 0C8h mov eax, [ebx+306h] mov [esp+0A4h+var_A4], eax or cl, 63h mov al, 93h lea edi, [ebx+25Ch] mov [esp+0A4h+var_A0], edi mov [esp+0A4h+var_9C], 0 mov [esp+0A4h+var_98], 0 or cl, 13h call dword ptr [ebx+8Ch] mov [ebx+757h], eax cmp dword ptr [ebx+757h], 0 jz short loc_403BA5 jmp short loc_403BAA ; --------------------------------------------------------------------------- loc_403BA5: ; CODE XREF: sub_40352E+673j jmp loc_403C88 ; --------------------------------------------------------------------------- loc_403BAA: ; CODE XREF: sub_40352E+675j mov al, 2Eh cmp dword ptr [ebx+25Ch], 0 jz short loc_403BB7 jmp short loc_403BD7 ; --------------------------------------------------------------------------- loc_403BB7: ; CODE XREF: sub_40352E+685j sub esp, 4 mov [esp+98h+var_98], 64h add dh, 19h mov cl, 8Dh call dword ptr [ebx+6BFh] mov [ebx+44Bh], eax jmp loc_403B39 ; --------------------------------------------------------------------------- loc_403BD7: ; CODE XREF: sub_40352E+687j mov dword ptr [ebx+25Ch], 0 sub dl, 0BBh or dl, 7Fh mov eax, [ebx+585h] mov [ebx+0DBh], eax add dl, 7Ch and cl, 0Fh mov eax, [ebx+90h] sub [ebx+0DBh], eax sub esp, 10h mov eax, [ebx+306h] mov [esp+0A4h+var_A4], eax mov edi, [ebx+44h] add edi, [ebx+90h] mov [esp+0A4h+var_A0], edi add cl, 9Fh xor ch, 0A5h sub al, 8Bh mov eax, [ebx+0DBh] mov [esp+0A4h+var_9C], eax lea edi, [ebx+25Ch] mov [esp+0A4h+var_98], edi and cl, 0C4h call dword ptr [ebx+31Eh] mov [ebx+469h], eax xor dh, 82h cmp dword ptr [ebx+469h], 0 jz short loc_403C57 jmp short loc_403C59 ; --------------------------------------------------------------------------- loc_403C57: ; CODE XREF: sub_40352E+725j jmp short loc_403C88 ; --------------------------------------------------------------------------- loc_403C59: ; CODE XREF: sub_40352E+727j or ch, 0Fh cmp dword ptr [ebx+25Ch], 0 jz short loc_403C67 jmp short loc_403C69 ; --------------------------------------------------------------------------- loc_403C67: ; CODE XREF: sub_40352E+735j jmp short loc_403C88 ; --------------------------------------------------------------------------- loc_403C69: ; CODE XREF: sub_40352E+737j mov eax, [ebx+25Ch] add [ebx+90h], eax mov esi, [ebp+arg_4] mov eax, [ebx+25Ch] add [esi], eax or cl, 0A0h jmp loc_403B39 ; --------------------------------------------------------------------------- loc_403C88: ; CODE XREF: sub_40352E+61Bj ; sub_40352E:loc_403BA5j ... or dh, 78h mov eax, [ebx+585h] cmp [ebx+90h], eax jnz short loc_403C9B jmp short loc_403CA2 ; --------------------------------------------------------------------------- loc_403C9B: ; CODE XREF: sub_40352E+769j mov eax, 0 jmp short locret_403CF5 ; --------------------------------------------------------------------------- loc_403CA2: ; CODE XREF: sub_40352E+76Bj sub esp, 4 mov eax, [ebx+306h] mov [esp+98h+var_98], eax add ch, 0A3h call dword ptr [ebx+767h] mov [ebx+3Ch], eax sub esp, 4 mov eax, [ebx+589h] mov [esp+98h+var_98], eax xor cl, 15h or cl, 0CDh call dword ptr [ebx+767h] mov [ebx+686h], eax sub esp, 4 mov eax, [ebx+6A2h] mov [esp+98h+var_98], eax call dword ptr [ebx+767h] mov [ebx+185h], eax mov eax, [ebx+44h] jmp short $+2 locret_403CF5: ; CODE XREF: sub_40352E+99j ; sub_40352E+233j ... leave retn 8 sub_40352E endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_403CF9 proc near ; CODE XREF: start+302p var_5C = dword ptr -5Ch var_58 = dword ptr -58h var_54 = dword ptr -54h var_50 = dword ptr -50h var_44 = dword ptr -44h var_40 = dword ptr -40h var_3C = dword ptr -3Ch var_38 = dword ptr -38h var_34 = dword ptr -34h var_30 = dword ptr -30h arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_C = dword ptr 14h arg_10 = dword ptr 18h arg_14 = dword ptr 1Ch arg_18 = dword ptr 20h push ebp mov ebp, esp sub esp, 2Ch mov ebx, dword_403200 mov dword ptr [ebx+43Bh], 0 cmp dword ptr [ebx+1F6h], 0 jz short loc_403D1A jmp short loc_403D1F ; --------------------------------------------------------------------------- loc_403D1A: ; CODE XREF: sub_403CF9+1Dj jmp locret_403F04 ; --------------------------------------------------------------------------- loc_403D1F: ; CODE XREF: sub_403CF9+1Fj mov eax, [ebp+arg_0] mov [ebx+1BCh], eax or dl, 8Bh mov ch, 0CEh mov esi, [ebx+1BCh] add esi, 0 sub ah, 0E0h cmp word ptr [esi], 5A4Dh jnz short loc_403D42 jmp short loc_403D47 ; --------------------------------------------------------------------------- loc_403D42: ; CODE XREF: sub_403CF9+45j jmp locret_403F04 ; --------------------------------------------------------------------------- loc_403D47: ; CODE XREF: sub_403CF9+47j mov eax, [ebp+arg_0] mov [ebx+0FCh], eax mov ch, 0D3h mov cl, 0A9h mov edi, [ebx+1BCh] add edi, 3Ch mov eax, [edi] add [ebx+0FCh], eax mov eax, [ebx+0FCh] mov [ebx+282h], eax mov ch, 0AAh or dh, 0D9h and ch, 0A5h mov esi, [ebx+282h] add esi, 14h mov cl, 0B4h cmp word ptr [esi], 0E0h jnz short loc_403D8D jmp short loc_403D92 ; --------------------------------------------------------------------------- loc_403D8D: ; CODE XREF: sub_403CF9+90j jmp locret_403F04 ; --------------------------------------------------------------------------- loc_403D92: ; CODE XREF: sub_403CF9+92j mov eax, [ebx+282h] mov [ebx+68Ah], eax sub dl, 79h or ch, 62h add dword ptr [ebx+68Ah], 18h mov eax, [ebx+68Ah] mov [ebx+75Bh], eax and ch, 0DDh mov eax, [ebx+75Bh] mov [ebx+386h], eax xor dl, 5Eh add dword ptr [ebx+386h], 0E0h mov eax, [ebx+386h] mov [ebx+652h], eax cmp [ebp+arg_4], 0 jz short loc_403DFA mov edi, [ebx+75Bh] add edi, 1Ch or ch, 24h mov eax, [edi] cmp [ebp+arg_4], eax jnz short loc_403DFA jmp short loc_403DFF ; --------------------------------------------------------------------------- loc_403DFA: ; CODE XREF: sub_403CF9+EAj ; sub_403CF9+FDj jmp locret_403F04 ; --------------------------------------------------------------------------- loc_403DFF: ; CODE XREF: sub_403CF9+FFj sub esp, 18h mov eax, [ebp+arg_0] mov [esp+44h+var_44], eax sub dh, 20h and ah, 0C6h mov eax, [ebx+1BCh] mov [esp+44h+var_40], eax mov dl, 7Dh sub al, 90h mov eax, [ebx+282h] mov [esp+44h+var_3C], eax xor dl, 0C2h mov eax, [ebx+75Bh] mov [esp+44h+var_38], eax sub dl, 6Ch or cl, 3Fh xor ch, 20h mov eax, [ebx+652h] mov [esp+44h+var_34], eax mov dh, 0B9h xor cl, 63h mov eax, [ebp+arg_4] mov [esp+44h+var_30], eax call sub_401A70 mov [ebx+0C3h], eax sub esp, 8 mov eax, [ebp+arg_4] mov [esp+34h+var_34], eax mov ch, 0EEh or dl, 56h mov ah, 4Ch mov eax, [ebx+75Bh] mov [esp+34h+var_30], eax sub cl, 0Ch call sub_402EE6 mov [ebx+41Ah], eax cmp dword ptr [ebx+41Ah], 0 jz short loc_403E90 jmp short loc_403E92 ; --------------------------------------------------------------------------- loc_403E90: ; CODE XREF: sub_403CF9+193j jmp short locret_403F04 ; --------------------------------------------------------------------------- loc_403E92: ; CODE XREF: sub_403CF9+195j mov eax, [ebp+arg_4] mov [ebx+57Dh], eax mov dh, 0BAh mov edi, [ebx+75Bh] add edi, 10h or ch, 0DFh mov eax, [edi] add [ebx+57Dh], eax mov eax, [ebx+57Dh] mov [ebx+646h], eax sub dl, 0CBh pusha sub esp, 10h mov eax, [ebp+arg_C] mov [esp+5Ch+var_5C], eax or cl, 0Ch xor dh, 0E8h xor ch, 66h mov eax, [ebp+arg_10] mov [esp+5Ch+var_58], eax add ch, 11h and ch, 63h xor ah, 5Eh mov eax, [ebp+arg_14] mov [esp+5Ch+var_54], eax and dl, 1Ch sub dl, 58h mov eax, [ebp+arg_18] mov [esp+5Ch+var_50], eax call dword ptr [ebx+646h] add esp, 10h popa mov [ebx+8], eax locret_403F04: ; CODE XREF: sub_403CF9:loc_403D1Aj ; sub_403CF9:loc_403D42j ... leave retn 1Ch sub_403CF9 endp seg000 ends ; Section 2. (virtual address 00004000) ; Virtual size : 00000061 ( 97.) ; Section size in file : 00000061 ( 97.) ; Offset to raw data for section: 00004000 ; Flags C0000040: Data Readable Writable ; Alignment : default ; =========================================================================== ; Segment type: Pure data ; Segment permissions: Read/Write seg001 segment para public 'DATA' use32 assume cs:seg001 ;org 404000h dd 3 dup(0) dd 4054h, 4037h, 5 dup(0) dd 6F4C0000h, 694C6461h, 72617262h db 79h, 41h, 0 dword_404037 dd 77E805D8h ; DATA XREF: start+14r dword_40403B dd 77E7A5FDh ; DATA XREF: start+1Fr align 10h dd 0 dd 74654700h, 636F7250h, 72646441h, 737365h, 4E52454Bh dd 32334C45h, 4C4C442Eh db 0 seg001 ends ; Section 3. (virtual address 00005000) ; Virtual size : 00001000 ( 4096.) ; Section size in file : 00000200 ( 512.) ; Offset to raw data for section: 00004200 ; 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 405000h align 2000h _idata2 ends end start